diff --git a/data/cd209/ATS1-out.stp b/data/ap209/ATS1-out.stp similarity index 100% rename from data/cd209/ATS1-out.stp rename to data/ap209/ATS1-out.stp diff --git a/data/cd209/ATS10-out.stp b/data/ap209/ATS10-out.stp similarity index 100% rename from data/cd209/ATS10-out.stp rename to data/ap209/ATS10-out.stp diff --git a/data/cd209/ATS10Mod0-out.stp b/data/ap209/ATS10Mod0-out.stp similarity index 100% rename from data/cd209/ATS10Mod0-out.stp rename to data/ap209/ATS10Mod0-out.stp diff --git a/data/cd209/ATS10Mod0-outresult.stp b/data/ap209/ATS10Mod0-outresult.stp similarity index 100% rename from data/cd209/ATS10Mod0-outresult.stp rename to data/ap209/ATS10Mod0-outresult.stp diff --git a/data/cd209/ATS1Mod0-out.stp b/data/ap209/ATS1Mod0-out.stp similarity index 100% rename from data/cd209/ATS1Mod0-out.stp rename to data/ap209/ATS1Mod0-out.stp diff --git a/data/cd209/ATS1Mod0-outresult.stp b/data/ap209/ATS1Mod0-outresult.stp similarity index 100% rename from data/cd209/ATS1Mod0-outresult.stp rename to data/ap209/ATS1Mod0-outresult.stp diff --git a/data/cd209/ATS2-out.stp b/data/ap209/ATS2-out.stp similarity index 100% rename from data/cd209/ATS2-out.stp rename to data/ap209/ATS2-out.stp diff --git a/data/cd209/ATS2Mod0-out.stp b/data/ap209/ATS2Mod0-out.stp similarity index 100% rename from data/cd209/ATS2Mod0-out.stp rename to data/ap209/ATS2Mod0-out.stp diff --git a/data/cd209/ATS2Mod0-outresult.stp b/data/ap209/ATS2Mod0-outresult.stp similarity index 100% rename from data/cd209/ATS2Mod0-outresult.stp rename to data/ap209/ATS2Mod0-outresult.stp diff --git a/data/cd209/ATS3-out.stp b/data/ap209/ATS3-out.stp similarity index 100% rename from data/cd209/ATS3-out.stp rename to data/ap209/ATS3-out.stp diff --git a/data/cd209/ATS3Mod0-out.stp b/data/ap209/ATS3Mod0-out.stp similarity index 100% rename from data/cd209/ATS3Mod0-out.stp rename to data/ap209/ATS3Mod0-out.stp diff --git a/data/cd209/ATS3Mod0-outresult.stp b/data/ap209/ATS3Mod0-outresult.stp similarity index 100% rename from data/cd209/ATS3Mod0-outresult.stp rename to data/ap209/ATS3Mod0-outresult.stp diff --git a/data/cd209/ATS4-out.stp b/data/ap209/ATS4-out.stp similarity index 100% rename from data/cd209/ATS4-out.stp rename to data/ap209/ATS4-out.stp diff --git a/data/cd209/ATS4Mod0-out.stp b/data/ap209/ATS4Mod0-out.stp similarity index 100% rename from data/cd209/ATS4Mod0-out.stp rename to data/ap209/ATS4Mod0-out.stp diff --git a/data/cd209/ATS4Mod0-outresult.stp b/data/ap209/ATS4Mod0-outresult.stp similarity index 100% rename from data/cd209/ATS4Mod0-outresult.stp rename to data/ap209/ATS4Mod0-outresult.stp diff --git a/data/cd209/ATS7-out.stp b/data/ap209/ATS7-out.stp similarity index 100% rename from data/cd209/ATS7-out.stp rename to data/ap209/ATS7-out.stp diff --git a/data/cd209/ATS7Mod0-out.stp b/data/ap209/ATS7Mod0-out.stp similarity index 100% rename from data/cd209/ATS7Mod0-out.stp rename to data/ap209/ATS7Mod0-out.stp diff --git a/data/cd209/ATS7Mod0-outresult.stp b/data/ap209/ATS7Mod0-outresult.stp similarity index 100% rename from data/cd209/ATS7Mod0-outresult.stp rename to data/ap209/ATS7Mod0-outresult.stp diff --git a/data/cd209/ATS8-out.stp b/data/ap209/ATS8-out.stp similarity index 100% rename from data/cd209/ATS8-out.stp rename to data/ap209/ATS8-out.stp diff --git a/data/cd209/ATS8Mod0-out.stp b/data/ap209/ATS8Mod0-out.stp similarity index 100% rename from data/cd209/ATS8Mod0-out.stp rename to data/ap209/ATS8Mod0-out.stp diff --git a/data/cd209/ATS8Mod0-outresult.stp b/data/ap209/ATS8Mod0-outresult.stp similarity index 100% rename from data/cd209/ATS8Mod0-outresult.stp rename to data/ap209/ATS8Mod0-outresult.stp diff --git a/data/ap209/ap209_N8334_mim_lf.exp b/data/ap209/ap209_N8334_mim_lf.exp new file mode 100644 index 00000000..68aa25f8 --- /dev/null +++ b/data/ap209/ap209_N8334_mim_lf.exp @@ -0,0 +1,41749 @@ +(* +$Id: mim_lf.exp,v 1.46 2014/05/22 15:19:23 jhaenisch Exp $ +WG12N8334 - ISO/TS 10303-409 ap209_multidisciplinary_analysis_and_design - EXPRESS MIM LF +*) + +(* ===================================================================================== *) +(* Long form schema generated by The EXPRESS Data Manager compiler version 9.8.3B 20121030*) +(* Fri Feb 07 11:23:49 2014 *) +(* The schema is converted from ISO10303 P11-2003 to ISO10303 P11-1994 *) +(* ===================================================================================== *) +(* + +This file was generated by the EXPRESS Pretty Printer exppp, +part of STEPcode (formerly NIST's SCL). exppp version: +git commit id: v0.7-353-g0a46b86, build timestamp 26 Feb 2014 19:15 +*) + +(* patches 4665, 4779, 4979, 4988, 4992, 5004, 5018, 5019, 5023, 5048, 5052, 5054, 5056, 5057 +*) + + +SCHEMA ap209_multidisciplinary_analysis_and_design_mim_lf; + + CONSTANT + schema_date_stamp : STRING := 'Mon Mar 24 10:53:49 2014'; + 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' ]; + schema_prefix : STRING := + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' ; + the_binarys : elementary_space := + make_elementary_space( + es_binarys ); + the_booleans : elementary_space := + make_elementary_space( + es_booleans ); + the_complex_numbers : elementary_space := + make_elementary_space( + es_complex_numbers ); + the_complex_tuples : extended_tuple_space := + make_extended_tuple_space( + the_zero_tuple_space, + the_complex_numbers ); + the_empty_maths_tuple : maths_tuple := + []; + the_empty_space : finite_space := + make_finite_space( + [] ); + the_generics : elementary_space := + make_elementary_space( + es_generics ); + the_integer_tuples : extended_tuple_space := + make_extended_tuple_space( + the_zero_tuple_space, + the_integers ); + the_integers : elementary_space := + make_elementary_space( + es_integers ); + the_logicals : elementary_space := + make_elementary_space( + es_logicals ); + the_maths_spaces : elementary_space := + make_elementary_space( + es_maths_spaces ); + the_neg1_one_interval : finite_real_interval := + make_finite_real_interval( + - + 1, + closed, + 1, + closed ); + the_neghalfpi_halfpi_interval : finite_real_interval := + make_finite_real_interval( + ( + - + 0.5 ) + * + PI, + closed, + 0.5 + * + PI, + closed ); + the_negpi_pi_interval : finite_real_interval := + make_finite_real_interval( + - + PI, + open, + PI, + closed ); + the_nonnegative_reals : real_interval_from_min := + make_real_interval_from_min( + 0, + closed ); + the_numbers : elementary_space := + make_elementary_space( + es_numbers ); + the_real_tuples : extended_tuple_space := + make_extended_tuple_space( + the_zero_tuple_space, + the_reals ); + the_reals : elementary_space := + make_elementary_space( + es_reals ); + the_strings : elementary_space := + make_elementary_space( + es_strings ); + the_tuples : extended_tuple_space := + make_extended_tuple_space( + the_zero_tuple_space, + the_generics ); + the_zero_pi_interval : finite_real_interval := + make_finite_real_interval( + 0, + closed, + PI, + closed ); + the_zero_tuple_space : listed_product_space := + make_listed_product_space( + [] ); + END_CONSTANT; + + TYPE absorbed_dose_measure = REAL; + END_TYPE; + + TYPE acceleration_measure = REAL; + END_TYPE; + + TYPE action_items = SELECT + ( action, + action_directive, + action_method, + action_property, + action_relationship, + action_request_solution, + alternate_product_relationship, + applied_action_assignment, + applied_classification_assignment, + applied_person_and_organization_assignment, + applied_state_type_assignment, + approval_status, + assembly_component_usage_substitute, + certification, + certification_item, + characterized_object, + class, + class_system, + classification_item, + configuration_design, + configuration_effectivity, + configuration_item, + configured_effectivity_assignment, + contract, + document_file, + document_reference_item, + draughting_model, + drawing_revision, + evaluated_characteristic, + executed_action, + general_property, + identification_item, + material_designation, + mechanical_design_geometric_presentation_representation, + organization, + organization_relationship, + organizational_project, + person_and_organization, + presentation_area, + product, + product_concept, + product_concept_feature, + product_concept_feature_association, + product_concept_feature_category, + product_concept_feature_category_usage, + product_definition, + product_definition_formation, + product_definition_formation_relationship, + product_definition_relationship, + product_definition_substitute, + property_definition, + requirement_assigned_item, + requirement_for_action_resource, + resource_property, + security_classification, + security_classification_level, + shape_aspect, + shape_representation, + versioned_action_request ); + END_TYPE; + + TYPE action_method_items = SELECT + ( action, + action_method, + action_property, + applied_action_assignment, + configuration_design, + contract, + document_file, + event_occurrence, + organization, + organizational_project, + person, + person_and_organization, + product, + product_concept, + product_definition, + product_definition_formation, + product_definition_formation_relationship, + product_definition_relationship, + property_definition ); + END_TYPE; + + TYPE action_request_item = SELECT + ( action, + action_method, + action_property, + action_relationship, + alternate_product_relationship, + assembly_component_usage_substitute, + configuration_design, + configuration_effectivity, + configuration_item, + configured_effectivity_assignment, + document_file, + draughting_model, + drawing_revision, + general_property, + material_designation, + mechanical_design_geometric_presentation_representation, + organizational_project, + presentation_area, + product, + product_concept, + product_concept_feature, + product_concept_feature_association, + product_concept_feature_category, + product_concept_feature_category_usage, + product_definition, + product_definition_formation, + product_definition_formation_relationship, + product_definition_relationship, + product_definition_substitute, + property_definition, + resource_property, + shape_aspect, + shape_representation, + versioned_action_request ); + END_TYPE; + + TYPE action_type = ENUMERATION OF + ( applied_loads, + residual_loads ); + END_TYPE; + + TYPE actuated_direction = ENUMERATION OF + ( bidirectional, + positive_only, + negative_only, + not_actuated ); + END_TYPE; + + TYPE aggregated_angular_variable = ENUMERATION OF + ( total_applied_moment, + application_defined_aggregated_angular_scalar_variable ); + END_TYPE; + + TYPE aggregated_scalar_variable = ENUMERATION OF + ( total_strain_energy, + mass, + volume ); + END_TYPE; + + TYPE aggregated_tensor2_3d_variable = ENUMERATION OF + ( rotational_inertia ); + END_TYPE; + + TYPE aggregated_vector_3d_variable = ENUMERATION OF + ( total_applied_force, + centre_of_mass_offset ); + END_TYPE; + + TYPE ahead_or_behind = ENUMERATION OF + ( ahead, + exact, + behind ); + END_TYPE; + + TYPE amount_of_substance_measure = REAL; + END_TYPE; + + TYPE analysed_item = SELECT + ( fea_model, + product_definition, + temporal_spatial_domain ); + 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 angular_value = context_dependent_measure; + END_TYPE; + + TYPE anisotropic_symmetric_tensor2_2d = ARRAY [1 : 3] OF context_dependent_measure; + END_TYPE; + + TYPE anisotropic_symmetric_tensor2_3d = ARRAY [1 : 6] OF context_dependent_measure; + END_TYPE; + + TYPE anisotropic_symmetric_tensor4_2d = ARRAY [1 : 6] OF context_dependent_measure; + END_TYPE; + + TYPE anisotropic_symmetric_tensor4_3d = ARRAY [1 : 21] OF context_dependent_measure; + END_TYPE; + + TYPE annotation_plane_element = SELECT + ( draughting_callout, + styled_item ); + END_TYPE; + + TYPE annotation_representation_select = SELECT + ( draughting_model, + 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, + defined_character_glyph, + composite_text ); + END_TYPE; + + TYPE application_defined_degree_of_freedom = STRING; + END_TYPE; + + TYPE application_defined_element_purpose = STRING; + END_TYPE; + + TYPE application_defined_matrix_property_type = STRING; + END_TYPE; + + TYPE application_defined_scalar_variable = STRING; + END_TYPE; + + TYPE application_defined_tensor2_2d_variable = STRING; + END_TYPE; + + TYPE application_defined_tensor2_3d_variable = STRING; + END_TYPE; + + TYPE application_defined_vector_2d_variable = STRING; + END_TYPE; + + TYPE application_defined_vector_3d_variable = STRING; + END_TYPE; + + TYPE approval_item = SELECT + ( action, + action_directive, + action_property, + action_request_solution, + alternate_product_relationship, + applied_action_assignment, + applied_classification_assignment, + applied_usage_right, + assembly_component_usage_substitute, + certification, + class, + class_system, + configuration_design, + configuration_effectivity, + configuration_item, + configured_effectivity_assignment, + contract, + control, + date, + directed_action, + document, + document_file, + draughting_model, + drawing_revision, + effectivity, + executed_action, + fea_model, + frozen_assignment, + general_property, + general_property_relationship, + group, + group_relationship, + information_usage_right, + material_designation, + mechanical_design_geometric_presentation_representation, + organizational_project, + presentation_area, + product, + product_concept, + product_concept_feature, + product_concept_feature_association, + product_concept_feature_category, + product_concept_feature_category_usage, + product_definition, + product_definition_formation, + product_definition_formation_relationship, + product_definition_relationship, + product_definition_substitute, + property_definition, + representation, + requirement_assignment, + resource_property, + result, + security_classification, + shape_aspect_relationship, + shape_representation, + temporal_spatial_domain, + 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 area_unit_type = ENUMERATION OF + ( circular, + rectangular, + square ); + END_TYPE; + + TYPE atom_based_tuple = LIST OF atom_based_value; + END_TYPE; + + TYPE atom_based_value = SELECT + ( maths_atom, + atom_based_tuple ); + 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_identifier = identifier; + WHERE + wr1: validate_attribute_id( SELF ); + END_TYPE; + + TYPE attribute_language_item = SELECT + ( action, + actuated_kinematic_pair, + 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, + data_environment, + date_role, + date_time_role, + descriptive_representation_item, + document_relationship, + document_usage_role, + draughting_title, + effectivity, + effectivity_relationship, + event_occurrence, + external_source, + general_property, + general_property_relationship, + geometric_representation_item, + geometric_tolerance, + group, + group_relationship, + identification_role, + information_right, + information_usage_right, + kinematic_pair, + make_from_usage_option, + mapped_item, + multi_language_attribute_assignment, + name_assignment, + object_role, + organization_relationship, + organization_role, + organizational_project, + organizational_project_relationship, + organizational_project_role, + person_and_organization, + person_and_organization_role, + presentation_layer_assignment, + process_product_association, + product, + product_concept, + product_concept_feature, + product_concept_feature_association, + product_concept_relationship, + product_definition, + product_definition_context, + product_definition_formation, + product_definition_formation_relationship, + product_definition_relationship, + product_definition_shape, + product_definition_substitute, + product_related_product_category, + property_definition, + property_definition_relationship, + representation, + representation_relationship, + requirement_for_action_resource, + resource_property, + resource_requirement_type, + security_classification, + security_classification_assignment, + shape_aspect, + shape_aspect_relationship, + shape_representation, + styled_item, + time_interval_role, + topological_representation_item, + uncertainty_measure_with_unit, + uncertainty_qualifier, + usage_association, + versioned_action_request, + versioned_action_request_relationship ); + END_TYPE; + + TYPE attribute_type = SELECT + ( label, + text ); + END_TYPE; + + TYPE axi_or_plane = ENUMERATION OF + ( axisymmetric, + planar ); + END_TYPE; + + TYPE axial_geometry_constraint_element = SELECT + ( point, + line, + circle, + plane, + cylindrical_surface, + conical_surface, + spherical_surface, + toroidal_surface, + surface_of_revolution, + sphere, + right_circular_cone, + right_circular_cylinder, + torus, + revolved_face_solid, + revolved_area_solid ); + 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_or_composite_curve_select = SELECT + ( b_spline_curve, + composite_curve ); + END_TYPE; + + TYPE b_spline_or_rectangular_composite_surface_select = SELECT + ( b_spline_surface, + rectangular_composite_surface ); + 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 ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 + ( boolean_result, + csg_primitive, + half_space_2d, + half_space_solid, + solid_model ); + END_TYPE; + + TYPE boolean_operand_2d = SELECT + ( bounded_primitive_2d, + boolean_result_2d ); + END_TYPE; + + TYPE boolean_operator = ENUMERATION OF + ( union, + intersection, + difference ); + END_TYPE; + + TYPE boolean_value = BOOLEAN; + END_TYPE; + + TYPE boundary_aggregated_variable = SELECT + ( aggregated_vector_3d_variable, + application_defined_vector_3d_variable ); + END_TYPE; + + TYPE boundary_curve_scalar_variable = ENUMERATION OF + ( normal_force_per_unit_length ); + END_TYPE; + + TYPE boundary_curve_vector_3d_variable = ENUMERATION OF + ( applied_force_per_unit_length, + applied_moment_per_unit_length ); + END_TYPE; + + TYPE boundary_edge_variable = SELECT + ( boundary_curve_scalar_variable, + boundary_curve_vector_3d_variable, + application_defined_scalar_variable, + application_defined_vector_3d_variable ); + END_TYPE; + + TYPE boundary_surface_scalar_variable = ENUMERATION OF + ( pressure ); + END_TYPE; + + TYPE boundary_surface_vector_3d_variable = ENUMERATION OF + ( applied_force_per_unit_area, + applied_moment_per_unit_area ); + END_TYPE; + + TYPE boundary_variable = SELECT + ( boundary_surface_scalar_variable, + boundary_surface_vector_3d_variable, + application_defined_scalar_variable, + application_defined_vector_3d_variable ); + END_TYPE; + + TYPE bounded_primitive_2d = SELECT + ( area_with_outer_boundary, + circular_area, + elliptic_area, + path_area_with_parameters, + polygonal_area, + rectangular_area ); + 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 cell_shape = SELECT + ( cell_shape_0d, + cell_shape_1d, + cell_shape_2d, + cell_shape_3d ); + END_TYPE; + + TYPE cell_shape_0d = ENUMERATION OF + ( single ); + END_TYPE; + + TYPE cell_shape_1d = ENUMERATION OF + ( line ); + END_TYPE; + + TYPE cell_shape_2d = ENUMERATION OF + ( quadrilateral, + triangle ); + END_TYPE; + + TYPE cell_shape_3d = ENUMERATION OF + ( hexahedron, + pyramid, + tetrahedron, + wedge ); + 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, + product_definition_formation, + product_definition_formation_relationship, + product_definition_relationship ); + END_TYPE; + + TYPE certified_item = SELECT + ( supplied_part_relationship ); + END_TYPE; + + TYPE chained_representation_link = SELECT + ( mapped_item, + representation_context, + representation_relationship ); + END_TYPE; + + TYPE change_management_object = SELECT + ( action, + action_items, + action_relationship, + class, + event_occurrence, + project_item ); + END_TYPE; + + TYPE change_relationship_select = SELECT + ( action_relationship, + product_definition_formation_relationship, + product_definition_relationship, + shape_aspect_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 characterized_resource_definition = SELECT + ( action_resource, + action_resource_requirement ); + END_TYPE; + + TYPE choose_general_property_identifier = SELECT + ( defined_data_name, + externally_defined_item ); + END_TYPE; + + TYPE choose_geometry_location = SELECT + ( externally_defined_item, + shape_representation ); + END_TYPE; + + TYPE choose_representation_context_identifier = SELECT + ( defined_data_class, + externally_defined_item ); + 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, + document_type, + effectivity, + event_occurrence, + executed_action, + feature_definition, + general_feature, + general_property, + general_property_relationship, + group, + identification_assignment, + information_right, + information_usage_right, + language, + material_designation, + 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, + plus_minus_tolerance, + process_operation, + product, + product_concept, + product_concept_feature, + product_concept_feature_category, + 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, + resource_property, + security_classification, + security_classification_level, + shape_aspect, + state_type, + state_type_assignment, + state_type_relationship, + uncertainty_measure_with_unit, + usage_association, + versioned_action_request ); + END_TYPE; + + TYPE classified_item = SELECT + ( product, + product_definition, + product_definition_formation ); + END_TYPE; + + TYPE closed_or_open_shell_select = SELECT + ( closed_shell, + open_shell ); + END_TYPE; + + TYPE common_datum_list = LIST [2 : ?] OF datum_reference_element; + WHERE + wr1: ( SIZEOF( QUERY ( dre <* SELF | ( dre\shape_aspect.of_shape <> SELF[1]\shape_aspect.of_shape ) ) ) = 0 ); + END_TYPE; + + TYPE compound_inner_area_boundary = SELECT + ( set_inner_area_boundary ); + 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 + ( action_relationship, + process_plan, + product_definition, + product_process_plan ); + END_TYPE; + + TYPE constraint_group_member = SELECT + ( explicit_constraint, + simultaneous_constraint_group ); + 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, + drawing_revision, + 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 coordinate_data_name = ENUMERATION OF + ( coordinate_eta, + coordinate_normal, + coordinate_phi, + coordinate_r, + coordinate_tangential, + coordinate_theta, + coordinate_transform, + coordinate_x, + coordinate_xi, + coordinate_y, + coordinate_z, + coordinate_zeta ); + END_TYPE; + + TYPE coordinate_system_type = ENUMERATION OF + ( cartesian, + cylindrical, + spherical ); + END_TYPE; + + TYPE count_measure = NUMBER; + END_TYPE; + + TYPE csg_2d_area_select = SELECT + ( axis2_placement_2d, + csg_primitive_solid_2d ); + END_TYPE; + + TYPE csg_2d_shape_select = SELECT + ( mapped_item, + axis2_placement_2d, + csg_solid_2d ); + END_TYPE; + + TYPE csg_primitive = SELECT + ( block, + bounded_primitive_2d, +(* The following five items have been added to resolve BZ#5057. *) + cyclide_segment_solid, + eccentric_cone, + ellipsoid, + faceted_primitive, + rectangular_pyramid, +(* end of insertion *) + right_angular_wedge, + right_circular_cone, + right_circular_cylinder, + sphere, + torus ); + END_TYPE; + + TYPE csg_select = SELECT + ( boolean_result, + csg_primitive ); + END_TYPE; + + TYPE csg_select_2d = SELECT + ( bounded_primitive_2d, + boolean_result_2d ); + END_TYPE; + + TYPE current_element_assignment_select = SELECT + ( modify_element, + add_element ); + END_TYPE; + + TYPE curve_2d_element_descriptor = SELECT + ( axisymmetric_curve_2d_element_descriptor, + plane_curve_2d_element_descriptor ); + END_TYPE; + + TYPE curve_2d_element_output_reference = SELECT + ( curve_2d_element_representation, + curve_2d_element_descriptor, + curve_2d_element_group, + curve_2d_substructure_element_reference, + analysis_item_within_representation ); + END_TYPE; + + TYPE curve_2d_element_representation = SELECT + ( axisymmetric_curve_2d_element_representation, + plane_curve_2d_element_representation ); + END_TYPE; + + TYPE curve_2d_state_coordinate_system = SELECT + ( fea_axis2_placement_3d, + curve_2d_element_coordinate_system ); + END_TYPE; + + TYPE curve_3d_element_coordinate_system = SELECT + ( aligned_curve_3d_element_coordinate_system, + parametric_curve_3d_element_coordinate_system ); + END_TYPE; + + TYPE curve_3d_element_length_integration = SELECT + ( element_integration_algebraic, + curve_3d_element_length_integration_rule, + curve_3d_element_length_integration_explicit ); + END_TYPE; + + TYPE curve_3d_element_output_reference = SELECT + ( curve_3d_element_representation, + curve_3d_element_descriptor, + curve_3d_element_group, + curve_3d_substructure_element_reference, + analysis_item_within_representation ); + END_TYPE; + + TYPE curve_3d_state_coordinate_system = SELECT + ( fea_axis2_placement_3d, + curve_3d_element_coordinate_system ); + END_TYPE; + + TYPE curve_edge = ENUMERATION OF + ( element_edge ); + END_TYPE; + + TYPE curve_element_end_coordinate_system = SELECT + ( fea_axis2_placement_3d, + curve_3d_element_coordinate_system ); + END_TYPE; + + TYPE curve_element_freedom = SELECT + ( enumerated_curve_element_freedom, + application_defined_degree_of_freedom ); + END_TYPE; + + TYPE curve_element_purpose = SELECT + ( enumerated_curve_element_purpose, + application_defined_element_purpose ); + END_TYPE; + + TYPE curve_element_variable = SELECT + ( volume_variable, + curve_scalar_variable, + curve_vector_2d_variable, + application_defined_vector_2d_variable, + curve_vector_3d_variable ); + END_TYPE; + + TYPE curve_font_or_scaled_curve_font_select = SELECT + ( curve_style_font_select, + curve_style_font_and_scaling ); + END_TYPE; + + TYPE curve_matrix_property_type = SELECT + ( enumerated_curve_matrix_property_type, + application_defined_matrix_property_type ); + END_TYPE; + + TYPE curve_on_surface = SELECT + ( composite_curve_on_surface, + pcurve, + surface_curve ); + END_TYPE; + + TYPE curve_or_annotation_curve_occurrence = SELECT + ( curve, + annotation_curve_occurrence ); + END_TYPE; + + TYPE curve_or_curve_set = SELECT + ( curve, + geometric_curve_set ); + END_TYPE; + + TYPE curve_or_render = SELECT + ( curve_style, + curve_style_rendering ); + END_TYPE; + + TYPE curve_or_surface_constraint_element = SELECT + ( curve, + surface ); + END_TYPE; + + TYPE curve_scalar_variable = ENUMERATION OF + ( curve_axial_force, + curve_axial_strain, + torque, + curve_warping, + bi_moment, + twist ); + END_TYPE; + + TYPE curve_style_font_select = SELECT + ( curve_style_font, + pre_defined_curve_font, + externally_defined_curve_font ); + END_TYPE; + + TYPE curve_vector_2d_variable = ENUMERATION OF + ( curve_shear_force, + curve_bending_moment, + curve_element_curvature, + curve_thermal_gradient, + reference_curve_thermal_gradient ); + END_TYPE; + + TYPE curve_vector_3d_variable = ENUMERATION OF + ( applied_force_per_unit_length, + applied_moment_per_unit_length ); + END_TYPE; + + TYPE curves_or_area = ENUMERATION OF + ( curves, + area ); + END_TYPE; + + TYPE cylindrical_harmonic_number = INTEGER; + WHERE + wr1: ( SELF >= 0 ); + END_TYPE; + + TYPE date_and_time_item = SELECT + ( action, + action_directive, + action_method, + action_property, + action_relationship, + action_request_solution, + alternate_product_relationship, + applied_action_assignment, + applied_classification_assignment, + applied_organization_assignment, + applied_person_and_organization_assignment, + applied_security_classification_assignment, + approval_person_organization, + approval_status, + assembly_component_usage_substitute, + certification, + class, + class_system, + configuration_design, + configuration_item, + configured_effectivity_assignment, + contract, + data_quality_definition, + directed_action, + document, + document_file, + draughting_model, + drawing_revision, + effectivity, + event_occurrence, + executed_action, + general_property, + information_usage_right, + material_designation, + mechanical_design_geometric_presentation_representation, + organization_relationship, + organizational_project, + person_and_organization, + presentation_area, + product, + product_concept, + product_concept_feature, + product_concept_feature_association, + product_concept_feature_category, + product_concept_feature_category_usage, + product_definition, + product_definition_formation, + product_definition_formation_relationship, + product_definition_relationship, + product_definition_substitute, + property_definition, + requirement_for_action_resource, + resource_property, + rule_action, + security_classification, + security_classification_level, + shape_representation, + versioned_action_request ); + END_TYPE; + + TYPE date_item = SELECT + ( action, + action_directive, + action_method, + action_property, + action_relationship, + action_request_solution, + alternate_product_relationship, + applied_action_assignment, + applied_classification_assignment, + applied_organization_assignment, + applied_person_and_organization_assignment, + applied_security_classification_assignment, + approval_person_organization, + approval_status, + assembly_component_usage_substitute, + certification, + class, + class_system, + configuration_design, + configuration_item, + configured_effectivity_assignment, + contract, + data_quality_definition, + directed_action, + document, + document_file, + draughting_model, + drawing_revision, + effectivity, + event_occurrence, + executed_action, + general_property, + information_usage_right, + material_designation, + mechanical_design_geometric_presentation_representation, + organization_relationship, + organizational_project, + person_and_organization, + presentation_area, + product, + product_concept, + product_concept_feature, + product_concept_feature_association, + product_concept_feature_category, + product_concept_feature_category_usage, + product_definition, + product_definition_formation, + product_definition_formation_relationship, + product_definition_relationship, + product_definition_substitute, + property_definition, + requirement_for_action_resource, + resource_property, + security_classification, + security_classification_level, + shape_representation, + 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 datum_or_common_datum = SELECT + ( common_datum_list, + datum ); + END_TYPE; + + TYPE datum_reference_modifier = SELECT + ( datum_reference_modifier_with_value, + simple_datum_reference_modifier ); + END_TYPE; + + TYPE datum_reference_modifier_type = ENUMERATION OF + ( circular_or_cylindrical, + distance, + projected, + spherical ); + END_TYPE; + + TYPE datum_system_or_reference = SELECT + ( datum_reference, + datum_system ); + END_TYPE; + + TYPE day_in_month_number = INTEGER; + WHERE + wr1: ( ( 1 <= SELF ) AND ( SELF <= 31 ) ); + END_TYPE; + + TYPE day_in_week_number = INTEGER; + WHERE + wr1: ( ( 1 <= SELF ) AND ( SELF <= 7 ) ); + END_TYPE; + + TYPE day_in_year_number = INTEGER; + WHERE + wr1: ( ( 1 <= SELF ) AND ( SELF <= 366 ) ); + END_TYPE; + + TYPE defined_data_class = ENUMERATION OF + ( application_defined, + dimensional, + dimensionless_constant, + dimensionless_parameter, + normalise_by_unknown_dimensional, + normalised_by_dimensional, + unspecified ); + END_TYPE; + + TYPE defined_data_name = SELECT + ( coordinate_data_name, + (* The following line is added as patch for BZ#5048 *) + property_3d_data_name, + fd_defined_data_name ); + END_TYPE; + + (* The following enumeration is added as patch for BZ#5048 *) + TYPE property_3d_data_name = ENUMERATION OF + ( acceleration, + displacement, + force, + momentum, + position, + skin_friction, + velocity, + vorticity ); + END_TYPE; + + TYPE defined_glyph_select = SELECT + ( pre_defined_character_glyph, + externally_defined_character_glyph ); + END_TYPE; + + TYPE defined_symbol_select = SELECT + ( pre_defined_symbol, + externally_defined_symbol ); + END_TYPE; + + TYPE degree_of_freedom = SELECT + ( enumerated_degree_of_freedom, + application_defined_degree_of_freedom ); + END_TYPE; + + TYPE derived_property_select = SELECT + ( property_definition, + action_property, + resource_property ); + END_TYPE; + + TYPE description_attribute_select = SELECT + ( action_request_solution, + application_context, + approval_role, + configuration_design, + context_dependent_shape_representation, + date_role, + date_time_role, + effectivity, + external_source, + organization_role, + organizational_project, + person_and_organization, + person_and_organization_role, + property_definition_representation, + representation ); + END_TYPE; + + TYPE descriptive_measure = STRING; + END_TYPE; + + TYPE detailed_report_type = ENUMERATION OF + ( measured_element, + inferior_quality_element ); + 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 directionally_explicit_element_coordinate_system = SELECT + ( directionally_explicit_element_coordinate_system_arbitrary, + directionally_explicit_element_coordinate_system_aligned ); + END_TYPE; + + TYPE discretised_action_model_select = SELECT + ( analysis_step, + model_action_domain ); + END_TYPE; + + TYPE discretised_distribution_model_select = SELECT + ( model_property_distribution, + state_definition ); + END_TYPE; + + TYPE discretised_product_model_select = SELECT + ( fea_model, + model_product_domain ); + END_TYPE; + + TYPE discretised_state_model_select = SELECT + ( model_state_domain, + state ); + END_TYPE; + + TYPE document_identifier_assigned_item = SELECT + ( document ); + END_TYPE; + + TYPE document_reference_item = SELECT + ( action_directive, + action_method, + action_relationship, + applied_action_assignment, + applied_external_identification_assignment, + approval, + assembly_component_usage, + certification, + characterized_class, + characterized_object, + class, + class_system, + configuration_design, + configuration_item, + contract, + descriptive_representation_item, + dimensional_size, + executed_action, + externally_conditioned_data_quality_criterion, + externally_defined_dimension_definition, + externally_defined_item, + feature_definition, + general_property, + group, + group_relationship, + information_right, + information_usage_right, + material_designation, + measure_representation_item, + organization, + organizational_project, + person, + presentation_area, + process_plan, + product, + product_category, + product_concept, + product_concept_feature, + product_concept_feature_category, + product_definition, + product_definition_context, + product_definition_formation, + product_definition_formation_relationship, + product_definition_process, + product_definition_relationship, + product_definition_substitute, + product_related_product_category, + property_definition, + representation, + representation_item, + resource_requirement_type, + retention, + rule_set, + security_classification, + 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_curve_occurrence, + annotation_fill_area_occurrence, + annotation_symbol_occurrence, + annotation_text_occurrence, + tessellated_annotation_occurrence ); + END_TYPE; + + TYPE draughting_model_item_association_select = SELECT + ( annotation_occurrence, + draughting_callout ); + END_TYPE; + + TYPE draughting_model_item_definition = SELECT + ( applied_action_assignment, + applied_action_method_assignment, + applied_action_request_assignment, + applied_approval_assignment, + applied_certification_assignment, + applied_classification_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_group_assignment, + applied_identification_assignment, + applied_ineffectivity_assignment, + applied_name_assignment, + applied_organization_assignment, + applied_organizational_project_assignment, + applied_person_and_organization_assignment, + applied_security_classification_assignment, + applied_time_interval_assignment, + applied_usage_right, + dimensional_size, + geometric_tolerance, + product_definition_relationship, + product_definition_shape, + property_definition, + shape_aspect, + shape_aspect_relationship ); + END_TYPE; + + TYPE draughting_model_item_select = SELECT + ( mapped_item, + styled_item, + axis2_placement, + camera_model, + draughting_callout ); + END_TYPE; + + TYPE draughting_subfigure_representation_item = SELECT + ( annotation_occurrence, + draughting_callout, + axis2_placement ); + END_TYPE; + + TYPE draughting_symbol_representation_item = SELECT + ( annotation_curve_occurrence, + annotation_symbol_occurrence, + annotation_fill_area_occurrence, + annotation_text_occurrence, + axis2_placement ); + END_TYPE; + + TYPE draughting_titled_item = SELECT + ( drawing_revision, + drawing_sheet_revision ); + END_TYPE; + + TYPE edge_or_curve = SELECT + ( curve, + edge ); + END_TYPE; + + TYPE effectivity_item = SELECT + ( action, + action_method, + action_method_relationship, + action_property, + action_relationship, + assembly_component_usage_substitute, + class, + class_system, + configuration_design, + configuration_item, + configured_effectivity_assignment, + document_file, + draughting_model, + drawing_revision, + general_property, + material_designation, + mechanical_design_geometric_presentation_representation, + presentation_area, + product, + product_concept, + product_concept_feature, + product_concept_feature_association, + product_concept_feature_category, + product_concept_feature_category_usage, + product_definition, + product_definition_formation, + product_definition_formation_relationship, + product_definition_relationship, + product_definition_substitute, + property_definition, + requirement_for_action_resource, + resource_property, + security_classification, + shape_aspect, + shape_representation ); + END_TYPE; + + TYPE electric_charge_measure = REAL; + END_TYPE; + + TYPE electric_current_measure = REAL; + END_TYPE; + + TYPE electric_potential_measure = REAL; + END_TYPE; + + TYPE element_2d_shape = ENUMERATION OF + ( quadrilateral, + triangle ); + END_TYPE; + + TYPE element_aspect = SELECT + ( element_volume, + volume_3d_face, + volume_2d_face, + volume_3d_edge, + volume_2d_edge, + surface_3d_face, + surface_2d_face, + surface_3d_edge, + surface_2d_edge, + curve_edge ); + END_TYPE; + + TYPE element_integration_algebraic = ENUMERATION OF + ( algebraic ); + END_TYPE; + + TYPE element_or_element_group = SELECT + ( element_representation, + element_group ); + END_TYPE; + + TYPE element_order = ENUMERATION OF + ( linear_order, + quadratic_order, + cubic_order ); + END_TYPE; + + TYPE element_volume = ENUMERATION OF + ( volume ); + END_TYPE; + + TYPE elementary_function_enumerators = ENUMERATION OF + ( ef_and, + ef_or, + ef_not, + ef_xor, + ef_negate_i, + ef_add_i, + ef_subtract_i, + ef_multiply_i, + ef_divide_i, + ef_mod_i, + ef_exponentiate_i, + ef_eq_i, + ef_ne_i, + ef_gt_i, + ef_lt_i, + ef_ge_i, + ef_le_i, + ef_abs_i, + ef_max_i, + ef_min_i, + ef_if_i, + ef_negate_r, + ef_reciprocal_r, + ef_add_r, + ef_subtract_r, + ef_multiply_r, + ef_divide_r, + ef_mod_r, + ef_exponentiate_r, + ef_exponentiate_ri, + ef_eq_r, + ef_ne_r, + ef_gt_r, + ef_lt_r, + ef_ge_r, + ef_le_r, + ef_abs_r, + ef_max_r, + ef_min_r, + ef_acos_r, + ef_asin_r, + ef_atan2_r, + ef_cos_r, + ef_exp_r, + ef_ln_r, + ef_log2_r, + ef_log10_r, + ef_sin_r, + ef_sqrt_r, + ef_tan_r, + ef_if_r, + ef_form_c, + ef_rpart_c, + ef_ipart_c, + ef_negate_c, + ef_reciprocal_c, + ef_add_c, + ef_subtract_c, + ef_multiply_c, + ef_divide_c, + ef_exponentiate_c, + ef_exponentiate_ci, + ef_eq_c, + ef_ne_c, + ef_conjugate_c, + ef_abs_c, + ef_arg_c, + ef_cos_c, + ef_exp_c, + ef_ln_c, + ef_sin_c, + ef_sqrt_c, + ef_tan_c, + ef_if_c, + ef_subscript_s, + ef_eq_s, + ef_ne_s, + ef_gt_s, + ef_lt_s, + ef_ge_s, + ef_le_s, + ef_subsequence_s, + ef_concat_s, + ef_size_s, + ef_format, + ef_value, + ef_like, + ef_if_s, + ef_subscript_b, + ef_eq_b, + ef_ne_b, + ef_gt_b, + ef_lt_b, + ef_ge_b, + ef_le_b, + ef_subsequence_b, + ef_concat_b, + ef_size_b, + ef_if_b, + ef_subscript_t, + ef_eq_t, + ef_ne_t, + ef_concat_t, + ef_size_t, + ef_entuple, + ef_detuple, + ef_insert, + ef_remove, + ef_if_t, + ef_sum_it, + ef_product_it, + ef_add_it, + ef_subtract_it, + ef_scalar_mult_it, + ef_dot_prod_it, + ef_sum_rt, + ef_product_rt, + ef_add_rt, + ef_subtract_rt, + ef_scalar_mult_rt, + ef_dot_prod_rt, + ef_norm_rt, + ef_sum_ct, + ef_product_ct, + ef_add_ct, + ef_subtract_ct, + ef_scalar_mult_ct, + ef_dot_prod_ct, + ef_norm_ct, + ef_if, + ef_ensemble, + ef_member_of ); + END_TYPE; + + TYPE elementary_space_enumerators = ENUMERATION OF + ( es_numbers, + es_complex_numbers, + es_reals, + es_integers, + es_logicals, + es_booleans, + es_strings, + es_binarys, + es_maths_spaces, + es_maths_functions, + es_generics ); + END_TYPE; + + TYPE energy_measure = REAL; + END_TYPE; + + TYPE enumerated_curve_element_freedom = ENUMERATION OF + ( x_translation, + y_translation, + z_translation, + x_rotation, + y_rotation, + z_rotation, + warp, + none ); + END_TYPE; + + TYPE enumerated_curve_element_purpose = ENUMERATION OF + ( axial, + y_y_bending, + z_z_bending, + torsion, + x_y_shear, + x_z_shear, + warping ); + END_TYPE; + + TYPE enumerated_curve_matrix_property_type = ENUMERATION OF + ( axial, + y_y_bending, + z_z_bending, + torsion, + x_y_shear, + x_z_shear, + warping, + axial_mass, + y_y_bending_mass, + z_z_bending_mass, + torsion_mass, + x_y_shear_mass, + x_z_shear_mass, + warping_mass, + mass ); + END_TYPE; + + TYPE enumerated_degree_of_freedom = ENUMERATION OF + ( x_translation, + y_translation, + z_translation, + x_rotation, + y_rotation, + z_rotation, + warp ); + END_TYPE; + + TYPE enumerated_matrix_property_type = ENUMERATION OF + ( stiffness, + mass, + damping ); + END_TYPE; + + TYPE enumerated_plane_2d_element_purpose = ENUMERATION OF + ( plane_stress, + plane_strain ); + END_TYPE; + + TYPE enumerated_surface_element_purpose = ENUMERATION OF + ( membrane_direct, + membrane_shear, + bending_direct, + bending_torsion, + normal_to_plane_shear ); + END_TYPE; + + TYPE enumerated_surface_matrix_property_type = ENUMERATION OF + ( membrane_direct, + membrane_shear, + bending_direct, + bending_torsion, + normal_to_plane_shear, + membrane_direct_mass, + membrane_shear_mass, + bending_direct_mass, + bending_torsion_mass, + normal_to_plane_shear_mass, + mass ); + END_TYPE; + + TYPE enumerated_volume_element_purpose = ENUMERATION OF + ( stress_displacement ); + END_TYPE; + + TYPE event_occurrence_item = SELECT + ( action, + action_directive, + action_method, + action_property, + action_request_solution, + alternate_product_relationship, + applied_action_assignment, + applied_classification_assignment, + assembly_component_usage_substitute, + certification, + class, + class_system, + configuration_design, + configuration_effectivity, + configuration_item, + configured_effectivity_assignment, + contract, + draughting_model, + drawing_revision, + executed_action, + general_property, + material_designation, + mechanical_design_geometric_presentation_representation, + organization_relationship, + organizational_project, + person_and_organization, + presentation_area, + product, + product_concept, + product_concept_feature, + product_concept_feature_association, + product_concept_feature_category, + product_concept_feature_category_usage, + product_definition_formation, + product_definition_formation_relationship, + product_definition_relationship, + product_definition_substitute, + property_definition, + requirement_for_action_resource, + resource_property, + security_classification_level, + shape_representation ); + END_TYPE; + + TYPE expression_extension_select = SELECT + ( expression_extension_string, + expression_extension_numeric ); + END_TYPE; + + TYPE extension_options = ENUMERATION OF + ( eo_none, + eo_cont, + eo_cont_right, + eo_cont_left ); + END_TYPE; + + TYPE external_identification_item = SELECT + ( action_relationship, + action_request_status, + applied_organization_assignment, + applied_person_and_organization_assignment, + approval, + approval_status, + assembly_bond_definition, + 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, + generic_product_definition_reference, + organizational_address, + product_definition, + security_classification, + trimmed_curve, + versioned_action_request ); + END_TYPE; + + TYPE face_or_surface = SELECT + ( face, + surface ); + END_TYPE; + + TYPE fd_bc_type_simple = mbna_bc_type_simple; + END_TYPE; + + TYPE fd_behaviour_models = SELECT + ( gas_model, + turbulence_closure, + turbulence_model, + viscosity_model ); + END_TYPE; + + TYPE fd_defined_data_name = SELECT + ( fd_nondimensional_parameter_name, + flow_solution_data_name, + force_moment_data_name, + gas_model_data_name, + riemann_1d_data_name, + thermal_conductivity_model_data_name, + turbulence_closure_data_name, + turbulence_model_data_name, + viscosity_model_data_name ); + END_TYPE; + + TYPE fd_governing_equation_type = mbna_governing_equation_type; + END_TYPE; + + TYPE fd_nondimensional_parameter_name = ENUMERATION OF + ( coef_pressure, + coef_pressure_dynamic, + coef_pressure_reference, + coef_skin_friction_x, + coef_skin_friction_y, + coef_skin_friction_z, + length_reference, + mach, + mach_velocity, + mach_velocity_sound, + prandtl, + prandtl_specific_heat_pressure, + prandtl_thermal_conductivity, + prandtl_viscosity_molecular, + reynolds, + reynolds_length, + reynolds_velocity, + reynolds_viscosity_kinematic, + specific_heat_ratio, + specific_heat_ratio_pressure, + specific_heat_ratio_volume ); + END_TYPE; + + TYPE fea_column_normalised_monoclinic_symmetric_tensor4_3d = ARRAY [1 : 13] OF context_dependent_measure; + END_TYPE; + + TYPE fea_column_normalised_orthotropic_symmetric_tensor4_3d = ARRAY [1 : 9] OF context_dependent_measure; + END_TYPE; + + TYPE fea_iso_orthotropic_symmetric_tensor4_3d = ARRAY [1 : 3] OF context_dependent_measure; + END_TYPE; + + TYPE fea_isotropic_symmetric_tensor4_3d = ARRAY [1 : 2] OF context_dependent_measure; + END_TYPE; + + TYPE fea_transverse_isotropic_symmetric_tensor4_3d = ARRAY [1 : 5] OF context_dependent_measure; + END_TYPE; + + TYPE field_value = SELECT + ( unspecified_value, + scalar, + tensor1_2d, + tensor1_3d, + anisotropic_symmetric_tensor2_2d, + isotropic_symmetric_tensor2_3d, + orthotropic_symmetric_tensor2_3d, + anisotropic_symmetric_tensor2_3d ); + 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 flow_solution_data_name = ENUMERATION OF + ( density, + density_stagnation, + energy_internal, + energy_kinetic, + energy_stagnation, + energy_stagnation_density, + enthalpy, + enthalpy_stagnation, + entropy, + entropy_approx, + ideal_gas_constant, + mass_flow, + momentum_magnitude, + momentum_x, + momentum_y, + momentum_z, + potential, + pressure, + pressure_dynamic, + pressure_stagnation, + reynolds_stress_xx, + reynolds_stress_xy, + reynolds_stress_xz, + reynolds_stress_yy, + reynolds_stress_yz, + reynolds_stress_zz, + skin_friction_magnitude, + skin_friction_x, + skin_friction_y, + skin_friction_z, + specific_heat_pressure, + specific_heat_volume, + stream_function, + temperature, + temperature_stagnation, + thermal_conductivity, + velocity_angle_x, + velocity_angle_y, + velocity_angle_z, + velocity_magnitude, + velocity_normal, + velocity_phi, + velocity_r, + velocity_sound, + velocity_sound_stagnation, + velocity_tangential, + velocity_theta, + velocity_unit_vector_x, + velocity_unit_vector_y, + velocity_unit_vector_z, + velocity_x, + velocity_y, + velocity_z, + viscosity_eddy, + viscosity_kinematic, + viscosity_molecular, + vorticity_magnitude, + vorticity_x, + vorticity_y, + vorticity_z ); + 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 force_moment_data_name = ENUMERATION OF + ( coef_drag, + coef_length, + coef_lift, + coef_moment_area, + coef_moment_eta, + coef_moment_phi, + coef_moment_pressure_dynamic, + coef_moment_r, + coef_moment_theta, + coef_moment_x, + coef_moment_xi, + coef_moment_y, + coef_moment_z, + coef_moment_zeta, + drag, + force_phi, + force_r, + force_theta, + force_x, + force_y, + force_z, + lift, + moment_center_x, + moment_center_y, + moment_center_z, + moment_eta, + moment_phi, + moment_r, + moment_theta, + moment_x, + moment_xi, + moment_y, + moment_z, + moment_zeta ); + END_TYPE; + + TYPE founded_item_select = SELECT + ( founded_item, + representation_item ); + END_TYPE; + + TYPE frequency_measure = REAL; + END_TYPE; + + TYPE gas_model_data_name = ENUMERATION OF + ( ideal_gas_constant, + specific_heat_pressure, + specific_heat_ratio, + specific_heat_volume ); + END_TYPE; + + TYPE gas_model_type = ENUMERATION OF + ( application_defined, + ideal, + unspecified, + van_der_waals ); + END_TYPE; + + TYPE generalized_surface_select = SELECT + ( surface, + face_surface, + surfaced_open_shell ); + END_TYPE; + + TYPE geometric_constraint_element = SELECT + ( point, + curve, + surface, + vector, + direction ); + END_TYPE; + + TYPE geometric_item_specific_usage_select = SELECT + ( shape_aspect, + shape_aspect_relationship ); + END_TYPE; + + TYPE geometric_model_item = SELECT + ( connected_face_set, + edge_loop, + geometric_representation_item ); + END_TYPE; + + TYPE geometric_set_select = SELECT + ( curve, + point, + surface ); + END_TYPE; + + TYPE geometric_tolerance_modifier = ENUMERATION OF + ( any_cross_section, + common_zone, + each_radial_element, + free_state, + least_material_requirement, + line_element, + major_diameter, + maximum_material_requirement, + minor_diameter, + not_convex, + pitch_diameter, + reciprocity_requirement, + separate_requirement, + statistical_tolerance, + tangent_plane ); + END_TYPE; + + TYPE geometric_tolerance_target = SELECT + ( dimensional_location, + dimensional_size, + product_definition_shape, + shape_aspect ); + END_TYPE; + + TYPE groupable_item = SELECT + ( address, + applied_approval_assignment, + applied_classification_assignment, + applied_document_reference, + applied_external_identification_assignment, + applied_group_assignment, + applied_identification_assignment, + applied_name_assignment, + applied_organization_assignment, + applied_person_and_organization_assignment, + applied_security_classification_assignment, + approval, + approval_person_organization, + approval_relationship, + approval_status, + assembly_component_usage, + calendar_date, + class, + collection_assignment, + collection_membership, + component_feature, + control, + coordinated_universal_time_offset, + date_and_time, + date_and_time_assignment, + date_assignment, + derived_unit, + derived_unit_element, + document_file, + document_relationship, + external_source, + fea_model, + general_property, + general_property_relationship, + geometric_representation_item, + group, + group_relationship, + local_time, + mapped_item, + measure_qualification, + measure_with_unit, + multi_language_attribute_assignment, + named_unit, + numerical_model, + organization, + organization_relationship, + package_product_concept_feature, + person, + person_and_organization, + precision_qualifier, + product, + product_concept_feature, + product_definition, + product_definition_context, + product_definition_formation, + product_definition_formation_relationship, + product_definition_group_assignment, + product_definition_relationship, + product_relationship, + property_definition, + property_definition_representation, + representation, + representation_context, + representation_item, + representation_relationship, + representation_relationship_with_transformation, + result, + security_classification, + shape_aspect, + shape_aspect_relationship, + shape_representation_relationship, + state, + state_definition, + state_relationship, + styled_item, + topological_representation_item, + type_qualifier, + uncertainty_qualifier ); + WHERE + wr1: ( NOT ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.GROUP' IN TYPEOF( SELF ) ) ); + END_TYPE; + + TYPE hour_in_day = INTEGER; + WHERE + wr1: ( ( 0 <= SELF ) AND ( SELF < 24 ) ); + END_TYPE; + + TYPE id_attribute_select = SELECT + ( action, + address, + application_context, + dimensional_size, + geometric_tolerance, + group, + organizational_project, + product_category, + property_definition, + representation, + shape_aspect, + shape_aspect_relationship ); + END_TYPE; + + TYPE idealised_action_select = SELECT + ( action, + physical_action_domain ); + END_TYPE; + + TYPE idealised_distribution_select = SELECT + ( domain_property, + property_definition ); + END_TYPE; + + TYPE idealised_product_select = SELECT + ( physical_product_domain, + product_definition ); + END_TYPE; + + TYPE idealised_state_select = SELECT + ( physical_state_domain, + state_type ); + END_TYPE; + + TYPE identification_item = SELECT + ( action, + action_directive, + action_method, + action_property, + applied_identification_assignment, + approval_status, + characterized_class, + class, + class_system, + configuration_item, + contract, + dimensional_size, + document_file, + document_type, + draughting_model, + effectivity, + general_property, + group, + group_relationship, + information_right, + information_usage_right, + material_designation, + measure_representation_item, + mechanical_design_geometric_presentation_representation, + organization, + organizational_project, + person_and_organization, + presentation_area, + product, + product_category, + product_class, + product_concept, + product_concept_feature, + product_concept_feature_category, + product_definition, + product_definition_formation, + product_definition_relationship, + product_identification, + property_definition, + property_definition_relationship, + representation, + rule_set, + security_classification, + security_classification_level, + shape_aspect_relationship, + shape_representation, + state_type, + state_type_relationship, + usage_association, + versioned_action_request ); + END_TYPE; + + TYPE identifier = STRING; + END_TYPE; + + TYPE ijk_minmax = ENUMERATION OF + ( i_min, + j_min, + k_min, + i_max, + j_max, + k_max ); + END_TYPE; + + TYPE illuminance_measure = REAL; + END_TYPE; + + TYPE indices_group = SELECT + ( indices_list, + indices_range ); + END_TYPE; + + TYPE inductance_measure = REAL; + END_TYPE; + + TYPE input_selector = positive_integer; + END_TYPE; + + TYPE inspected_ecdq_element_select = inspected_element_select; + END_TYPE; + + TYPE inspected_element_select = SELECT + ( assembly_component_usage, + axis2_placement_3d, + b_spline_or_composite_curve_select, + b_spline_or_rectangular_composite_surface_select, + cartesian_transformation_operator_3d, + closed_or_open_shell_select, + connected_face_set, + curve, + direction, + edge_curve, + edge_loop, + face_surface, + global_uncertainty_assigned_context, + global_unit_assigned_context, + group, + manifold_solid_brep, + placement, + point, + presentation_layer_assignment, + representation_item, + styled_item, + surface, + vertex_point ); + END_TYPE; + + TYPE inspected_shape_element_select = inspected_element_select; + END_TYPE; + + TYPE instance_usage_context_select = SELECT + ( product_definition_relationship, + product_definition_usage ); + END_TYPE; + + TYPE integration_rule = ENUMERATION OF + ( gaussian, + simpson ); + END_TYPE; + + TYPE internal_or_reflected_shape_aspect = SELECT + ( shape_aspect, + identifier ); + END_TYPE; + + TYPE interpolation_type = ENUMERATION OF + ( undefined_interpolation_type, + discontinuous_interpolation_type, + synchronous_interpolation_type, + linear_interpolation_type ); + 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; + END_TYPE; + + TYPE isotropic_symmetric_tensor2_3d = context_dependent_measure; + END_TYPE; + + TYPE item_identified_representation_usage_definition = SELECT + ( applied_action_assignment, + applied_action_method_assignment, + applied_action_request_assignment, + applied_approval_assignment, + applied_certification_assignment, + applied_classification_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_group_assignment, + applied_identification_assignment, + applied_ineffectivity_assignment, + applied_name_assignment, + applied_organization_assignment, + applied_organizational_project_assignment, + applied_person_and_organization_assignment, + applied_security_classification_assignment, + applied_time_interval_assignment, + applied_usage_right, + dimensional_size, + general_property, + geometric_tolerance, + product_definition_relationship, + property_definition, + property_definition_relationship, + shape_aspect, + shape_aspect_relationship ); + END_TYPE; + + TYPE item_identified_representation_usage_select = SELECT + ( representation_item, + list_representation_item, + set_representation_item ); + END_TYPE; + + TYPE kinematic_analysis_definition = SELECT + ( interpolated_configuration_sequence, + prescribed_path ); + END_TYPE; + + TYPE kinematic_link_representation_items = SELECT + ( curve, + point, + rigid_placement, + surface ); + END_TYPE; + + TYPE kinematic_result = SELECT + ( interpolated_configuration_sequence, + resulting_path ); + END_TYPE; + + TYPE kinematic_topology_representation_select = SELECT + ( kinematic_topology_structure, + kinematic_topology_directed_structure, + kinematic_topology_network_structure ); + 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 linear_geometry_constraint_element = SELECT + ( line, + plane, + direction, + vector ); + END_TYPE; + + TYPE link_or_shape_representation = SELECT + ( kinematic_link_representation, + shape_representation ); + 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 location_in_aggregate_item = LIST [1 : ?] OF integer_representation_item; + END_TYPE; + + TYPE location_of_extreme_value_select = SELECT + ( inspected_shape_element_select, + b_spline_surface_knot_locator, + b_spline_curve_knot_locator, + b_spline_curve_segment, + b_spline_surface_strip, + b_spline_surface_patch, + composite_curve_transition_locator, + rectangular_composite_surface_transition_locator, + boundary_curve_of_b_spline_or_rectangular_composite_surface, + oriented_edge, + face_bound, + point_on_edge_curve, + point_on_face_surface, + subedge, + subface ); + END_TYPE; + + TYPE lower_upper = ENUMERATION OF + ( lower, + upper ); + END_TYPE; + + TYPE luminous_flux_measure = REAL; + END_TYPE; + + TYPE luminous_intensity_measure = REAL; + END_TYPE; + +TYPE machining_feature_definition = SELECT ( + boss, + compound_feature, + externally_defined_feature_definition, + flat_face, + gear, + marking, + outer_round, + outside_profile, + pocket, + protrusion, + removal_volume, + replicate_feature, + revolved_profile, + rib_top, + round_hole, + rounded_end, + spherical_cap, + step, + slot, + thread, + turned_knurl); +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 maths_atom = SELECT + ( maths_simple_atom, + maths_enum_atom ); + END_TYPE; + + TYPE maths_binary = BINARY; + END_TYPE; + + TYPE maths_boolean = BOOLEAN; + END_TYPE; + + TYPE maths_enum_atom = SELECT + ( elementary_space_enumerators, + ordering_type, + lower_upper, + symmetry_type, + elementary_function_enumerators, + open_closed, + space_constraint_type, + repackage_options, + extension_options ); + END_TYPE; + + TYPE maths_expression = SELECT + ( atom_based_value, + maths_tuple, + generic_expression ); + END_TYPE; + + TYPE maths_function_select = SELECT + ( maths_function, + elementary_function_enumerators ); + END_TYPE; + + TYPE maths_integer = INTEGER; + END_TYPE; + + TYPE maths_logical = LOGICAL; + END_TYPE; + + TYPE maths_number = NUMBER; + END_TYPE; + + TYPE maths_real = REAL; + END_TYPE; + + TYPE maths_simple_atom = SELECT + ( maths_number, + maths_real, + maths_integer, + maths_logical, + maths_boolean, + maths_string, + maths_binary ); + END_TYPE; + + TYPE maths_space_or_function = SELECT + ( maths_space, + maths_function ); + END_TYPE; + + TYPE maths_string = STRING; + END_TYPE; + + TYPE maths_tuple = LIST [0 : ?] OF maths_value; + END_TYPE; + + TYPE maths_value = SELECT + ( atom_based_value, + maths_tuple, + generic_expression ); + WHERE + constancy: ( ( NOT ( 'GENERIC_EXPRESSION' IN stripped_typeof( SELF ) ) ) OR expression_is_constant( SELF ) ); + END_TYPE; + + TYPE matrix_property_type = SELECT + ( enumerated_matrix_property_type, + application_defined_matrix_property_type ); + END_TYPE; + + TYPE matrix_symmetry = ENUMERATION OF + ( symmetric, + diagonal ); + END_TYPE; + + TYPE mbna_bc_type = SELECT + ( mbna_bc_type_compound, + mbna_bc_type_simple ); + END_TYPE; + + TYPE mbna_bc_type_compound = ENUMERATION OF + ( application_defined, + bc_farfield, + bc_inflow, + bc_outflow, + unspecified ); + END_TYPE; + + TYPE mbna_bc_type_simple = ENUMERATION OF + ( application_defined, + bc_axissymmetric_wedge, + bc_degenerate_line, + bc_degenerate_point, + bc_dirichlet, + bc_extrapolate, + bc_general, + bc_inflow_subsonic, + bc_inflow_supersonic, + bc_neumann, + bc_outflow_subsonic, + bc_outflow_supersonic, + bc_symmetry_plane, + bc_symmetry_polar, + bc_tunnel_inflow, + bc_tunnel_outflow, + bc_wall, + bc_wall_inviscid, + bc_wall_viscous, + bc_wall_viscous_heat_flux, + bc_wall_viscous_isothermal, + unspecified ); + END_TYPE; + + TYPE mbna_behaviour_models = SELECT + ( thermal_conductivity_model ); + END_TYPE; + + TYPE mbna_governing_equation_type = ENUMERATION OF + ( application_defined, + euler, + full_potential, + ns_laminar, + ns_laminar_incompressible, + ns_turbulent, + ns_turbulent_incompressible, + unspecified ); + END_TYPE; + + TYPE measure_or_unspecified_value = SELECT + ( context_dependent_measure, + unspecified_value ); + 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 measured_value_select = SELECT + ( boolean_value, + measure_value, + plane_angle_and_ratio_pair, + plane_angle_and_length_pair ); + 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 mechanical_design_shaded_presentation_area_items = SELECT + ( axis2_placement, + mapped_item ); + END_TYPE; + + TYPE mechanical_design_shaded_presentation_representation_items = SELECT + ( axis2_placement, + camera_model_d3, + mapped_item, + styled_item ); + END_TYPE; + + TYPE mesh_location = ENUMERATION OF + ( application_defined, + cell_centre, + edge_centre, + face_centre, + iface_centre, + jface_centre, + kface_centre, + unspecified, + vertices ); + END_TYPE; + + TYPE mesh_maths_space_type = ENUMERATION OF + ( cells, + vertices ); + END_TYPE; + + TYPE message = STRING; + END_TYPE; + + TYPE message_level = ENUMERATION OF + ( error, + warning, + note ); + END_TYPE; + + TYPE minute_in_hour = INTEGER; + WHERE + wr1: ( ( 0 <= SELF ) AND ( SELF <= 59 ) ); + END_TYPE; + + TYPE mismatched_region_type = ENUMERATION OF + ( abutting, + overset ); + END_TYPE; + + TYPE model_or_control_element = SELECT + ( element_representation, + constraint_element ); + END_TYPE; + + TYPE month_in_year_number = INTEGER; + WHERE + wr1: ( ( 1 <= SELF ) AND ( SELF <= 12 ) ); + END_TYPE; + + TYPE multi_language_attribute_item = SELECT + ( action, + action_directive, + action_method, + action_property, + action_relationship, + actuated_kinematic_pair, + 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, + data_environment, + date_role, + date_time_role, + descriptive_representation_item, + document_relationship, + document_usage_role, + draughting_title, + effectivity, + effectivity_relationship, + event_occurrence, + external_source, + general_property, + general_property_relationship, + geometric_representation_item, + geometric_tolerance, + group, + group_relationship, + identification_role, + information_right, + information_usage_right, + kinematic_pair, + make_from_usage_option, + mapped_item, + name_assignment, + object_role, + organization_relationship, + organization_role, + organizational_project, + organizational_project_relationship, + organizational_project_role, + person_and_organization, + person_and_organization_role, + presentation_layer_assignment, + process_product_association, + product, + product_concept, + product_concept_feature, + product_concept_feature_association, + product_concept_relationship, + product_definition, + product_definition_context, + product_definition_formation, + product_definition_formation_relationship, + product_definition_relationship, + product_definition_shape, + product_definition_substitute, + product_related_product_category, + property_definition, + property_definition_relationship, + representation, + representation_relationship, + requirement_for_action_resource, + resource_property, + resource_requirement_type, + security_classification, + security_classification_assignment, + shape_aspect, + shape_aspect_relationship, + shape_representation, + styled_item, + time_interval_role, + topological_representation_item, + uncertainty_measure_with_unit, + uncertainty_qualifier, + usage_association, + versioned_action_request, + versioned_action_request_relationship ); + END_TYPE; + + TYPE multi_or_next_assembly_usage_occurrence = SELECT + ( multi_level_reference_designator, + next_assembly_usage_occurrence ); + 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 node_or_node_group = SELECT + ( node_representation, + node_group ); + END_TYPE; + + TYPE node_output_reference = SELECT + ( node_representation, + node_group, + substructure_node_reference, + analysis_item_within_representation ); + END_TYPE; + + TYPE non_negative_length_measure = length_measure; + WHERE + wr1: ( SELF >= 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 one_or_two = positive_integer; + WHERE + in_range: ( ( SELF = 1 ) OR ( SELF = 2 ) ); + END_TYPE; + + TYPE open_closed = ENUMERATION OF + ( open, + closed ); + END_TYPE; + + TYPE ordering_type = ENUMERATION OF + ( by_rows, + by_columns ); + END_TYPE; + + TYPE organization_item = SELECT + ( action, + action_directive, + action_method, + action_property, + action_relationship, + action_request_solution, + alternate_product_relationship, + applied_action_assignment, + applied_classification_assignment, + applied_identification_assignment, + applied_organization_assignment, + applied_person_and_organization_assignment, + applied_security_classification_assignment, + approval, + approval_status, + assembly_component_usage_substitute, + certification, + class, + class_system, + configuration_design, + configuration_effectivity, + configuration_item, + configured_effectivity_assignment, + contract, + data_quality_definition, + document_file, + document_type, + draughting_model, + drawing_revision, + effectivity, + event_occurrence, + executed_action, + general_property, + information_usage_right, + material_designation, + mechanical_design_geometric_presentation_representation, + organization, + organization_relationship, + organizational_project, + person_and_organization, + presentation_area, + product, + product_concept, + product_concept_feature, + product_concept_feature_association, + product_concept_feature_category, + product_concept_feature_category_usage, + product_definition, + product_definition_formation, + product_definition_formation_relationship, + product_definition_relationship, + product_definition_substitute, + property_definition, + requirement_for_action_resource, + resource_property, + rule_action, + security_classification, + security_classification_level, + shape_representation, + versioned_action_request ); + END_TYPE; + + TYPE orientation_basis_select = SELECT + ( axis2_placement_3d, + min_and_major_ply_orientation_basis ); + END_TYPE; + + TYPE orthotropic_symmetric_tensor2_3d = ARRAY [1 : 3] OF context_dependent_measure; + END_TYPE; + + TYPE parallel_offset_type = ENUMERATION OF + ( curve_2d_offset, + curve_3d_offset, + surface_offset ); + END_TYPE; + + TYPE parameter_value = REAL; + END_TYPE; + + TYPE path_or_composite_curve = SELECT + ( composite_curve, + path ); + END_TYPE; + + TYPE pcurve_or_surface = SELECT + ( pcurve, + surface ); + END_TYPE; + + TYPE person_and_organization_item = SELECT + ( action, + action_directive, + action_method, + action_property, + action_relationship, + action_request_solution, + alternate_product_relationship, + applied_action_assignment, + applied_classification_assignment, + applied_identification_assignment, + applied_organization_assignment, + applied_person_and_organization_assignment, + applied_security_classification_assignment, + approval, + approval_status, + assembly_component_usage_substitute, + certification, + class, + class_system, + configuration_design, + configuration_effectivity, + configuration_item, + configured_effectivity_assignment, + contract, + data_quality_definition, + document_file, + document_type, + draughting_model, + drawing_revision, + event_occurrence, + executed_action, + general_property, + information_usage_right, + material_designation, + mechanical_design_geometric_presentation_representation, + organization, + organization_relationship, + organizational_project, + person_and_organization, + presentation_area, + product, + product_concept, + product_concept_feature, + product_concept_feature_association, + product_concept_feature_category, + product_concept_feature_category_usage, + product_definition, + product_definition_formation, + product_definition_formation_relationship, + product_definition_relationship, + product_definition_substitute, + property_definition, + requirement_for_action_resource, + resource_property, + rule_action, + security_classification, + security_classification_level, + 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 planar_curve_select = SELECT + ( line, + conic, + trimmed_curve, + pcurve, + surface_curve ); + WHERE + wr1: ( SELF\geometric_representation_item.dim = 3 ); + wr2: check_curve_planarity( SELF ); + END_TYPE; + + TYPE plane_2d_element_purpose = SELECT + ( enumerated_plane_2d_element_purpose, + application_defined_element_purpose ); + 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_curve_or_surface_constraint_element = SELECT + ( point, + curve, + surface ); + END_TYPE; + + TYPE point_path_members = LIST [1 : ?] OF point_and_vector; + END_TYPE; + + TYPE point_placement_shape_representation_item = SELECT + ( compound_representation_item, + mapped_item, + axis2_placement_3d ); + 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 ); + END_TYPE; + + TYPE positive_plane_angle_measure = plane_angle_measure; + WHERE + wr1: ( SELF > 0 ); + END_TYPE; + + TYPE positive_ratio_measure = ratio_measure; + WHERE + wr1: ( SELF > 0 ); + END_TYPE; + + TYPE power_measure = REAL; + END_TYPE; + + TYPE preferred_ordering = ENUMERATION OF + ( extremity_order, + detected_order ); + 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, + externally_defined_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 previous_element_assignment_select = SELECT + ( modify_element, + delete_element ); + 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_definition_or_reference = SELECT + ( product_definition, + generic_product_definition_reference ); + END_TYPE; + + TYPE product_or_formation_or_definition = SELECT + ( product, + product_definition_formation, + product_definition ); + END_TYPE; + + TYPE product_space = SELECT + ( uniform_product_space, + listed_product_space ); + END_TYPE; + + TYPE project_item = SELECT + ( assembly_component_usage, + configuration_item, + executed_action, + product, + product_concept, + product_definition, + product_definition_formation ); + END_TYPE; + + TYPE property_distribution_select = SELECT + ( action_property, + general_property_relationship, + model_property_distribution, + property_definition, + resource_property ); + END_TYPE; + + TYPE property_or_shape_select = SELECT + ( property_definition, + shape_definition ); + END_TYPE; + + TYPE property_variable_rep_select = SELECT + ( dimensional_size, + representation ); + END_TYPE; + + TYPE radial_geometry_constraint_element = SELECT + ( circle, + cylindrical_surface, + conical_surface, + spherical_surface, + right_circular_cylinder, + right_circular_cone, + sphere ); + END_TYPE; + + TYPE radioactivity_measure = REAL; + END_TYPE; + + TYPE ratio_measure = REAL; + END_TYPE; + + TYPE real_interval = SELECT + ( real_interval_from_min, + real_interval_to_max, + finite_real_interval, + elementary_space ); + WHERE + wr1: ( ( NOT ( 'ELEMENTARY_SPACE' IN stripped_typeof( SELF ) ) ) OR ( SELF\elementary_space.space_id = es_reals ) ); + END_TYPE; + + TYPE rendering_properties_select = SELECT + ( surface_style_reflectance_ambient, + surface_style_transparent ); + END_TYPE; + + TYPE repackage_options = ENUMERATION OF + ( ro_nochange, + ro_wrap_as_tuple, + ro_unwrap_tuple ); + 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 + ( assembly_joint, + 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 riemann_1d_data_name = ENUMERATION OF + ( characteristic_acoustic_minus, + characteristic_acoustic_plus, + characteristic_entropy, + characteristic_vorticity1, + characteristic_vorticity2, + riemann_invariant_minus, + riemann_invariant_plus ); + END_TYPE; + + TYPE rigid_placement = SELECT + ( axis2_placement_3d, + su_parameters ); + 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 scalar = context_dependent_measure; + END_TYPE; + + TYPE second_in_minute = REAL; + WHERE + wr1: ( ( 0 <= SELF ) AND ( SELF < 60 ) ); + END_TYPE; + + TYPE security_classification_item = SELECT + ( action, + action_directive, + action_property, + applied_action_assignment, + assembly_component_usage, + assembly_component_usage_substitute, + class_system, + configuration_design, + configuration_effectivity, + configured_effectivity_assignment, + document, + document_file, + draughting_model, + drawing_revision, + executed_action, + general_property, + make_from_usage_option, + material_designation, + mechanical_design_geometric_presentation_representation, + organizational_project, + presentation_area, + product, + product_concept, + product_concept_feature, + product_concept_feature_category, + product_definition, + product_definition_formation, + product_definition_relationship, + product_definition_usage, + property_definition, + resource_property, + shape_representation, + versioned_action_request ); + END_TYPE; + + TYPE set_inner_area_boundary = SET [1 : ?] OF bounded_primitive_2d; + 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_data_quality_assessment_specification_select = SELECT + ( shape_data_quality_assessment_by_logical_test, + shape_data_quality_assessment_by_numerical_test ); + END_TYPE; + + TYPE shape_data_quality_value_limit_type_select = SELECT + ( shape_data_quality_value_range, + shape_data_quality_value_limit ); + END_TYPE; + + TYPE shape_definition = SELECT + ( product_definition_shape, + shape_aspect, + shape_aspect_relationship ); + END_TYPE; + + TYPE shape_dimension_representation_item = SELECT + ( compound_representation_item, + descriptive_representation_item, + measure_representation_item, + placement ); + END_TYPE; + + TYPE shape_function = ENUMERATION OF + ( lagrangian_function, + serendipity_function, + hermitian_function, + unspecified_function ); + END_TYPE; + + TYPE shape_model = SELECT + ( constructive_geometry_representation, + shape_representation ); + END_TYPE; + + TYPE shape_representation_item = SELECT + ( geometric_representation_item, + topological_representation_item ); + END_TYPE; + + TYPE shape_representation_with_parameters_items = SELECT + ( descriptive_representation_item, + direction, + measure_representation_item, + placement ); + 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 simple_datum_reference_modifier = ENUMERATION OF + ( any_cross_section, + any_longitudinal_section, + basic, + contacting_feature, + degree_of_freedom_constraint_u, + degree_of_freedom_constraint_v, + degree_of_freedom_constraint_w, + degree_of_freedom_constraint_x, + degree_of_freedom_constraint_y, + degree_of_freedom_constraint_z, + distance_variable, + free_state, + least_material_requirement, + line, + major_diameter, + maximum_material_requirement, + minor_diameter, + orientation, + pitch_diameter, + plane, + point, + translation ); + END_TYPE; + + TYPE size_select = SELECT + ( positive_length_measure, + measure_with_unit, + descriptive_measure ); + END_TYPE; + + TYPE sketch_basis_select = SELECT + ( planar_curve_select, + curve_bounded_surface, + face_surface ); + END_TYPE; + + TYPE sketch_element_select = SELECT + ( curve, + point ); + WHERE + wr1: ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.GEOMETRIC_REPRESENTATION_ITEM' IN TYPEOF( SELF ) ); + END_TYPE; + + TYPE sketch_type_select = SELECT + ( neutral_sketch_representation, + positioned_sketch, + subsketch ); + 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 space_constraint_type = ENUMERATION OF + ( sc_equal, + sc_subspace, + sc_member ); + END_TYPE; + + TYPE space_context_select = SELECT + ( action, + action_method, + general_property, + product_definition, + representation_item, + shape_aspect ); + END_TYPE; + + TYPE spatial_rotation = SELECT + ( ypr_rotation, + rotation_about_direction ); + END_TYPE; + + TYPE spherical_pair_select = SELECT + ( spherical_pair, + spherical_pair_with_pin ); + END_TYPE; + + TYPE start_request_item = SELECT + ( product_definition_formation ); + END_TYPE; + + TYPE statistical_value_type = ENUMERATION OF + ( number_of_inspected_instances, + number_of_quality_defects_detected ); + END_TYPE; + + TYPE string_representation_item_select = SELECT + ( descriptive_representation_item, + included_text_block, + structured_text_composition ); + END_TYPE; + + TYPE structured_mesh_type = ENUMERATION OF + ( pentahedral, + pyramidal, + rectangular, + tetrahedral ); + END_TYPE; + + TYPE style_context_select = SELECT + ( group, + presentation_layer_assignment, + presentation_set, + representation, + representation_item, + representation_relationship ); + END_TYPE; + + TYPE styled_item_target = SELECT + ( geometric_representation_item, + mapped_item, + representation, + topological_representation_item ); + END_TYPE; + + TYPE summary_report_type = ENUMERATION OF + ( unspecified, + conclusion_only, + number_of_quality_defects, + number_of_inspections_and_conclusion, + full_statistics ); + END_TYPE; + + TYPE supported_item = SELECT + ( action_directive, + action, + action_method ); + END_TYPE; + + TYPE surface_2d_edge = INTEGER; + WHERE + wr1: ( ( SELF >= 1 ) AND ( SELF <= 2 ) ); + END_TYPE; + + TYPE surface_2d_element_coordinate_system = SELECT + ( aligned_surface_2d_element_coordinate_system, + parametric_surface_2d_element_coordinate_system ); + END_TYPE; + + TYPE surface_2d_element_descriptor = SELECT + ( axisymmetric_surface_2d_element_descriptor, + plane_surface_2d_element_descriptor ); + END_TYPE; + + TYPE surface_2d_element_length_integration = SELECT + ( element_integration_algebraic, + surface_2d_element_length_integration_rule, + surface_2d_element_length_integration_explicit ); + END_TYPE; + + TYPE surface_2d_element_output_reference = SELECT + ( surface_2d_element_representation, + surface_2d_element_descriptor, + surface_2d_element_group, + surface_2d_substructure_element_reference, + analysis_item_within_representation ); + END_TYPE; + + TYPE surface_2d_element_representation = SELECT + ( axisymmetric_surface_2d_element_representation, + plane_surface_2d_element_representation ); + END_TYPE; + + TYPE surface_2d_face = INTEGER; + WHERE + wr1: ( ( SELF >= 1 ) AND ( SELF <= 2 ) ); + END_TYPE; + + TYPE surface_2d_state_coordinate_system = SELECT + ( fea_axis2_placement_3d, + surface_2d_element_coordinate_system ); + END_TYPE; + + TYPE surface_3d_edge = INTEGER; + WHERE + wr1: ( ( SELF >= 1 ) AND ( SELF <= 4 ) ); + END_TYPE; + + TYPE surface_3d_element_coordinate_system = SELECT + ( aligned_surface_3d_element_coordinate_system, + parametric_surface_3d_element_coordinate_system, + constant_surface_3d_element_coordinate_system ); + END_TYPE; + + TYPE surface_3d_element_field_integration = SELECT + ( element_integration_algebraic, + surface_3d_element_field_integration_rule, + surface_3d_element_field_integration_explicit ); + END_TYPE; + + TYPE surface_3d_element_output_reference = SELECT + ( surface_3d_element_representation, + surface_3d_element_descriptor, + surface_3d_element_group, + surface_3d_substructure_element_reference, + analysis_item_within_representation ); + END_TYPE; + + TYPE surface_3d_face = INTEGER; + WHERE + wr1: ( ( SELF >= 1 ) AND ( SELF <= 2 ) ); + END_TYPE; + + TYPE surface_3d_state_coordinate_system = SELECT + ( fea_axis2_placement_3d, + surface_3d_element_coordinate_system ); + END_TYPE; + + TYPE surface_boundary_type = ENUMERATION OF + ( u_parameter_min, + v_parameter_min, + u_parameter_max, + v_parameter_max ); + END_TYPE; + + TYPE surface_element_purpose = SELECT + ( enumerated_surface_element_purpose, + application_defined_element_purpose ); + END_TYPE; + + TYPE surface_element_variable = SELECT + ( volume_variable, + surface_scalar_variable, + surface_vector_2d_variable, + surface_vector_3d_variable, + surface_tensor2_2d_variable, + application_defined_tensor2_2d_variable ); + END_TYPE; + + TYPE surface_matrix_property_type = SELECT + ( enumerated_surface_matrix_property_type, + application_defined_matrix_property_type ); + END_TYPE; + + TYPE surface_model = SELECT + ( face_based_surface_model, + shell_based_surface_model ); + END_TYPE; + + TYPE surface_or_solid_model = SELECT + ( surface_model, + solid_model ); + END_TYPE; + + TYPE surface_scalar_variable = ENUMERATION OF + ( thickness, + surface_thermal_gradient, + reference_surface_thermal_gradient ); + END_TYPE; + + TYPE surface_section_integration = SELECT + ( element_integration_algebraic, + surface_section_integration_rule, + surface_section_integration_explicit ); + 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 surface_tensor2_2d_variable = ENUMERATION OF + ( surface_membrane_force, + surface_membrane_strain, + surface_bending_moment, + surface_curvature ); + END_TYPE; + + TYPE surface_vector_2d_variable = ENUMERATION OF + ( surface_out_of_plane_shear_force, + surface_out_of_plane_shear_strain ); + END_TYPE; + + TYPE surface_vector_3d_variable = ENUMERATION OF + ( applied_force_per_unit_area, + applied_moment_per_unit_area ); + END_TYPE; + + TYPE swept_surface_or_solid = SELECT + ( swept_surface, + swept_face_solid, + swept_area_solid ); + END_TYPE; + + TYPE symbol_style_select = SELECT + ( symbol_colour ); + END_TYPE; + + TYPE symmetric_tensor2_2d = SELECT + ( anisotropic_symmetric_tensor2_2d ); + END_TYPE; + + TYPE symmetric_tensor2_3d = SELECT + ( isotropic_symmetric_tensor2_3d, + orthotropic_symmetric_tensor2_3d, + anisotropic_symmetric_tensor2_3d ); + END_TYPE; + + TYPE symmetric_tensor4_2d = SELECT + ( anisotropic_symmetric_tensor4_2d ); + END_TYPE; + + TYPE symmetric_tensor4_3d = SELECT + ( anisotropic_symmetric_tensor4_3d, + fea_isotropic_symmetric_tensor4_3d, + fea_iso_orthotropic_symmetric_tensor4_3d, + fea_transverse_isotropic_symmetric_tensor4_3d, + fea_column_normalised_orthotropic_symmetric_tensor4_3d, + fea_column_normalised_monoclinic_symmetric_tensor4_3d ); + END_TYPE; + + TYPE symmetry_type = ENUMERATION OF + ( identity, + skew, + hermitian, + skew_hermitian ); + END_TYPE; + + TYPE tangent_contact_type = ENUMERATION OF + ( point_contact, + curve_contact, + surface_contact ); + END_TYPE; + + TYPE tensor1_2d = ARRAY [1 : 2] OF context_dependent_measure; + END_TYPE; + + TYPE tensor1_3d = ARRAY [1 : 3] OF context_dependent_measure; + END_TYPE; + + TYPE tensor_type = SELECT + ( scalar, + angular_value, + tensor1_2d, + tensor1_3d, + anisotropic_symmetric_tensor2_2d, + isotropic_symmetric_tensor2_3d, + orthotropic_symmetric_tensor2_3d, + anisotropic_symmetric_tensor2_3d, + anisotropic_symmetric_tensor4_2d, + anisotropic_symmetric_tensor4_3d, + fea_isotropic_symmetric_tensor4_3d, + fea_iso_orthotropic_symmetric_tensor4_3d, + fea_transverse_isotropic_symmetric_tensor4_3d, + fea_column_normalised_orthotropic_symmetric_tensor4_3d, + fea_column_normalised_monoclinic_symmetric_tensor4_3d ); + END_TYPE; + + TYPE tessellated_edge_or_vertex = SELECT + ( tessellated_edge, + tessellated_vertex ); + 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, + defined_character_glyph, + 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, + defined_character_glyph, + composite_text, + axis2_placement ); + END_TYPE; + + TYPE thermal_conductivity_model_data_name = ENUMERATION OF + ( constant_prandtl, + power_law_exponent, + sutherland_constant_conductivity, + temperature_reference, + thermal_conductivity_reference ); + END_TYPE; + + TYPE thermal_conductivity_model_type = ENUMERATION OF + ( application_defined, + constant_prandtl, + independent, + power_law, + sutherland_law, + unspecified ); + END_TYPE; + + TYPE thermodynamic_temperature_measure = REAL; + END_TYPE; + + TYPE time_interval_item = SELECT + ( action, + action_directive, + action_method, + action_property, + action_relationship, + action_request_solution, + alternate_product_relationship, + applied_action_assignment, + applied_classification_assignment, + applied_person_and_organization_assignment, + approval_status, + assembly_component_usage_substitute, + certification, + class, + class_system, + configuration_design, + configuration_effectivity, + configuration_item, + configured_effectivity_assignment, + contract, + document_file, + draughting_model, + drawing_revision, + executed_action, + general_property, + material_designation, + mechanical_design_geometric_presentation_representation, + organization_relationship, + organizational_project, + person_and_organization, + presentation_area, + product, + product_concept, + product_concept_feature, + product_concept_feature_association, + product_concept_feature_category, + product_concept_feature_category_usage, + product_definition, + product_definition_formation, + product_definition_formation_relationship, + product_definition_relationship, + product_definition_substitute, + property_definition, + requirement_for_action_resource, + resource_property, + security_classification, + security_classification_level, + shape_representation, + time_interval_based_effectivity, + versioned_action_request ); + END_TYPE; + + TYPE time_measure = REAL; + END_TYPE; + + TYPE tolerance_method_definition = SELECT + ( limits_and_fits, + tolerance_value ); + END_TYPE; + + TYPE tolerance_zone_target = SELECT + ( dimensional_location, + dimensional_size, + geometric_tolerance, + general_datum_reference ); + 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 tuple_space = SELECT + ( product_space, +(* next line added as patch for BZ#5023 *) + mesh_derived_maths_space, + extended_tuple_space ); + END_TYPE; + + TYPE turbulence_closure_data_name = ENUMERATION OF + ( eddy_viscosity, + prandtl_turbulent ); + END_TYPE; + + TYPE turbulence_closure_type = ENUMERATION OF + ( application_defined, + eddy_viscosity, + reynolds_stress, + reynolds_stress_algebraic, + unspecified ); + END_TYPE; + + TYPE turbulence_model_data_name = ENUMERATION OF + ( turbulent_bb_reynolds, + turbulent_dissipation, + turbulent_dissipation_rate, + turbulent_distance, + turbulent_energy_kinetic, + turbulent_sa_cb1, + turbulent_sa_cb2, + turbulent_sa_chi, + turbulent_sa_ct1, + turbulent_sa_ct2, + turbulent_sa_ct3, + turbulent_sa_ct4, + turbulent_sa_cv1, + turbulent_sa_cw1, + turbulent_sa_cw2, + turbulent_sa_cw3, + turbulent_sa_kappa, + turbulent_sa_nu_tilde, + turbulent_sa_sigma ); + END_TYPE; + + TYPE turbulence_model_type = ENUMERATION OF + ( algebraic_baldwin_lomax, + algebraic_cebeci_smith, + application_defined, + half_equation_johnson_king, + one_equation_baldwin_barth, + one_equation_spalart_allmaras, + two_equation_jones_launder, + two_equation_menter_sst, + two_equation_wilcox, + unspecified ); + END_TYPE; + + TYPE u_direction_count = INTEGER; + WHERE + wr1: ( SELF > 1 ); + END_TYPE; + + TYPE u_or_v_parameter = ENUMERATION OF + ( u_parameter, + v_parameter ); + END_TYPE; + + TYPE unit = SELECT + ( derived_unit, + named_unit ); + END_TYPE; + + TYPE unspecified_value = ENUMERATION OF + ( unspecified ); + END_TYPE; + + TYPE used_quality_representation_select = SELECT + ( data_quality_criteria_representation, + data_quality_inspection_result_representation ); + END_TYPE; + + TYPE v_direction_count = INTEGER; + WHERE + wr1: ( SELF > 1 ); + END_TYPE; + + TYPE value_format_type = identifier; + WHERE + wr1: ( LENGTH( SELF ) <= 80 ); + END_TYPE; + + TYPE value_qualifier = SELECT + ( precision_qualifier, + type_qualifier, + uncertainty_qualifier, + value_format_type_qualifier ); + END_TYPE; + + TYPE vector_or_direction = SELECT + ( direction, + vector ); + END_TYPE; + + TYPE velocity_measure = REAL; + END_TYPE; + + TYPE viscosity_model_data_name = ENUMERATION OF + ( sutherland_constant_viscosity, + viscosity_molecular_reference ); + END_TYPE; + + TYPE viscosity_model_type = ENUMERATION OF + ( application_defined, + constant_viscosity, + power_law, + sutherland_law, + unspecified ); + END_TYPE; + + TYPE volume_2d_edge = INTEGER; + WHERE + wr1: ( ( SELF >= 1 ) AND ( SELF <= 4 ) ); + END_TYPE; + + TYPE volume_2d_element_coordinate_system = SELECT + ( arbitrary_volume_2d_element_coordinate_system, + parametric_volume_2d_element_coordinate_system ); + END_TYPE; + + TYPE volume_2d_element_descriptor = SELECT + ( axisymmetric_volume_2d_element_descriptor, + plane_volume_2d_element_descriptor ); + END_TYPE; + + TYPE volume_2d_element_field_integration = SELECT + ( element_integration_algebraic, + volume_2d_element_field_integration_rule, + volume_2d_element_field_integration_explicit ); + END_TYPE; + + TYPE volume_2d_element_output_reference = SELECT + ( volume_2d_element_representation, + volume_2d_element_descriptor, + volume_2d_element_group, + volume_2d_substructure_element_reference, + analysis_item_within_representation ); + END_TYPE; + + TYPE volume_2d_element_representation = SELECT + ( axisymmetric_volume_2d_element_representation, + plane_volume_2d_element_representation ); + END_TYPE; + + TYPE volume_2d_face = INTEGER; + WHERE + wr1: ( ( SELF >= 1 ) AND ( SELF <= 4 ) ); + END_TYPE; + + TYPE volume_3d_edge = INTEGER; + WHERE + wr1: ( ( SELF >= 1 ) AND ( SELF <= 12 ) ); + END_TYPE; + + TYPE volume_3d_element_coordinate_system = SELECT + ( arbitrary_volume_3d_element_coordinate_system, + parametric_volume_3d_element_coordinate_system ); + END_TYPE; + + TYPE volume_3d_element_field_integration = SELECT + ( element_integration_algebraic, + volume_3d_element_field_integration_rule, + volume_3d_element_field_integration_explicit ); + END_TYPE; + + TYPE volume_3d_element_output_reference = SELECT + ( volume_3d_element_representation, + volume_3d_element_descriptor, + volume_3d_element_group, + volume_3d_substructure_element_reference, + analysis_item_within_representation ); + END_TYPE; + + TYPE volume_3d_element_shape = ENUMERATION OF + ( hexahedron, + wedge, + tetrahedron, + pyramid ); + END_TYPE; + + TYPE volume_3d_face = INTEGER; + WHERE + wr1: ( ( SELF >= 1 ) AND ( SELF <= 6 ) ); + END_TYPE; + + TYPE volume_aggregated_variable = SELECT + ( aggregated_scalar_variable, + aggregated_angular_variable, + aggregated_vector_3d_variable, + aggregated_tensor2_3d_variable, + application_defined_scalar_variable, + application_defined_vector_3d_variable, + application_defined_tensor2_3d_variable ); + END_TYPE; + + TYPE volume_angular_variable = ENUMERATION OF + ( constant_angular_acceleration, + application_defined_angular_scalar_variable ); + END_TYPE; + + TYPE volume_element_purpose = SELECT + ( enumerated_volume_element_purpose, + application_defined_element_purpose ); + END_TYPE; + + TYPE volume_measure = REAL; + END_TYPE; + + TYPE volume_scalar_variable = ENUMERATION OF + ( temperature, + moisture, + reference_temperature, + strain_energy_per_unit_volume ); + END_TYPE; + + TYPE volume_tensor2_3d_variable = ENUMERATION OF + ( total_strain, + stress ); + END_TYPE; + + TYPE volume_variable = SELECT + ( volume_scalar_variable, + volume_angular_variable, + volume_vector_3d_variable, + volume_tensor2_3d_variable, + application_defined_scalar_variable, + application_defined_vector_3d_variable, + application_defined_tensor2_3d_variable ); + END_TYPE; + + TYPE volume_vector_3d_variable = ENUMERATION OF + ( position, + applied_force_per_unit_volume, + applied_moment_per_unit_volume, + displacement, + infinitesimal_rotation, + acceleration ); + END_TYPE; + + TYPE week_in_year_number = INTEGER; + WHERE + wr1: ( ( 1 <= SELF ) AND ( SELF <= 53 ) ); + END_TYPE; + + TYPE work_item = SELECT + ( product_definition_formation ); + END_TYPE; + + TYPE year_number = INTEGER; + WHERE + wr1: ( SELF > 1581 ); + END_TYPE; + + TYPE ypr_enumeration = ENUMERATION OF + ( yaw, + pitch, + roll ); + END_TYPE; + + TYPE ypr_rotation = ARRAY [ypr_index( yaw ) : ypr_index( roll )] OF plane_angle_measure; + END_TYPE; + + TYPE zero_or_one = nonnegative_integer; + WHERE + in_range: ( ( SELF = 0 ) OR ( SELF = 1 ) ); + END_TYPE; + +(* + The following two ENTITIYs have been added to address Bug 5012 for the + initial ed2 version until they can properly be added to the consituent modules +*) + +ENTITY defined_maths_space_context + SUBTYPE OF (maths_space_context); +END_ENTITY; + +ENTITY representation_context_defined_maths_space_context + SUBTYPE OF (defined_maths_space_context); + representation_basis : representation_context; +END_ENTITY; + +(* End of added ENTITYs. KAH April 28, 2014*) + +(* + The following seven ENTITYs have been added to address Bug 5057 for the + initial ed2 version until they can properly be added to the constituent modules. +*) +ENTITY convex_hexahedron + SUBTYPE OF (faceted_primitive); +WHERE + WR1: SIZEOF(points) = 8; + WR2: above_plane(points[1], points[2], points[3], points[4]) = 0.0; + WR3: above_plane(points[5], points[8], points[7], points[6]) = 0.0; + WR4: above_plane(points[1], points[4], points[8], points[5]) = 0.0; + WR5: above_plane(points[4], points[3], points[7], points[8]) = 0.0; + WR6: above_plane(points[3], points[2], points[6], points[7]) = 0.0; + WR7: above_plane(points[1], points[5], points[6], points[2]) = 0.0; + WR8: same_side([points[1], points[2], points[3]], [points[5], points[6], points[7], points[8]]); + WR9: same_side([points[1], points[4], points[8]], [points[3], points[7], points[6], points[2]]); + WR10: same_side([points[1], points[2], points[5]], [points[3], points[7], points[8], points[4]]); + WR11: same_side([points[5], points[6], points[7]], [points[1], points[2], points[3], points[4]]); + WR12: same_side([points[3], points[7], points[6]], [points[1], points[4], points[8], points[5]]); + WR13: same_side([points[3], points[7], points[8]], [points[1], points[5], points[6], points[2]]); +END_ENTITY; + +ENTITY cyclide_segment_solid + SUBTYPE OF (geometric_representation_item); + position : axis2_placement_3d; + radius1 : positive_length_measure; + radius2 : positive_length_measure; + cone_angle1 : plane_angle_measure; + cone_angle2 : plane_angle_measure; + turn_angle : plane_angle_measure; +END_ENTITY; + +ENTITY eccentric_cone + SUBTYPE OF (geometric_representation_item); + position : axis2_placement_3d; + semi_axis_1 : positive_length_measure; + semi_axis_2 : positive_length_measure; + height : positive_length_measure; + x_offset : length_measure; + y_offset : length_measure; + ratio : REAL; +WHERE + WR1: ratio >= 0.0; +END_ENTITY; + +ENTITY ellipsoid + SUBTYPE OF (geometric_representation_item); + position : axis2_placement_3d; + semi_axis_1 : positive_length_measure; + semi_axis_2 : positive_length_measure; + semi_axis_3 : positive_length_measure; +END_ENTITY; + +ENTITY faceted_primitive + SUPERTYPE OF (ONEOF (tetrahedron, + convex_hexahedron)) + SUBTYPE OF (geometric_representation_item); + points : LIST[4:?] OF UNIQUE cartesian_point; +WHERE + WR1: points[1].dim = 3; +END_ENTITY; + +ENTITY rectangular_pyramid + SUBTYPE OF (geometric_representation_item); + position : axis2_placement_3d; + xlength : positive_length_measure; + ylength : positive_length_measure; + height : positive_length_measure; +END_ENTITY; + +ENTITY tetrahedron + SUBTYPE OF (faceted_primitive); +WHERE + WR1: SIZEOF(points) = 4; + WR2: above_plane(points[1], points[2], points[3], points[4]) <> 0.0; +END_ENTITY; + +(* End of added ENTITYs. JH 2014-05-22 *) + + + ENTITY abrupt_change_of_surface_normal + SUBTYPE OF ( geometry_with_local_irregularity ); + SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_logical_test; + small_vector_tolerance : length_measure; + test_point_distance_tolerance : length_measure; + WHERE + wr1: validate_measured_data_type( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.BOOLEAN_VALUE' ); + wr2: validate_inspected_elements_type( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SURFACE'] ); + wr3: validate_locations_of_extreme_value_type( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.POINT_ON_SURFACE', + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.POINT_ON_SURFACE' ] ); + wr4: validate_accuracy_types( SELF, [] ); + END_ENTITY; + + ENTITY abs_function + SUBTYPE OF ( unary_function_call ); + END_ENTITY; + + ENTITY absorbed_dose_measure_with_unit + SUBTYPE OF ( measure_with_unit ); + WHERE + wr1: ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 abstracted_expression_function + SUBTYPE OF ( maths_function, quantifier_expression ); + DERIVE + SELF\quantifier_expression.variables : LIST [1 : ?] OF UNIQUE generic_variable := remove_first( SELF\ + multiple_arity_generic_expression.operands ); + expr : generic_expression := SELF\multiple_arity_generic_expression.operands[1]; + WHERE + wr1: ( SIZEOF( QUERY ( operand <* SELF\multiple_arity_generic_expression.operands | ( NOT has_values_space( operand ) ) ) ) + = 0 ); + END_ENTITY; + + ENTITY acceleration_measure_with_unit + SUBTYPE OF ( measure_with_unit ); + WHERE + wr1: ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, -2, 0, 0, 0, 0 ) ); + END_ENTITY; + + ENTITY acos_function + SUBTYPE OF ( unary_function_call ); + 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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'DESCRIPTION_ATTRIBUTE.DESCRIBED_ITEM' ) ) + <= 1 ); + wr2: ( SIZEOF( USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'NAME_ATTRIBUTE.NAMED_ITEM' ) ) <= 1 ); + END_ENTITY; + + ENTITY action_request_status; + status : label; + assigned_request : versioned_action_request; + END_ENTITY; + + ENTITY action_resource; + name : label; + description : OPTIONAL text; + usage : SET [1 : ?] OF supported_item; + kind : action_resource_type; + END_ENTITY; + + ENTITY action_resource_requirement; + name : label; + description : text; + kind : resource_requirement_type; + operations : SET [1 : ?] OF characterized_action_definition; + END_ENTITY; + + ENTITY action_resource_type; + name : label; + END_ENTITY; + + ENTITY action_status; + status : label; + assigned_action : executed_action; + END_ENTITY; + + ENTITY action_view_relationship; + id : identifier; + name : label; + description : OPTIONAL text; + discretised_model : discretised_action_model_select; + idealised_action : idealised_action_select; + END_ENTITY; + + ENTITY actuated_kinematic_pair + SUBTYPE OF ( kinematic_pair ); + t_x : OPTIONAL actuated_direction; + t_y : OPTIONAL actuated_direction; + t_z : OPTIONAL actuated_direction; + r_x : OPTIONAL actuated_direction; + r_y : OPTIONAL actuated_direction; + r_z : OPTIONAL actuated_direction; + END_ENTITY; + + ENTITY add_element + SUBTYPE OF ( change_element ); + 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( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'MANIFOLD_SOLID_BREP' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FACETED_BREP', + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MAPPED_ITEM' , + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.AXIS2_PLACEMENT_3D' ] * TYPEOF( it ) ) = 1 ) ) ) ) = 0 ); + wr2: ( SIZEOF( QUERY ( it <* SELF.items | ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'MANIFOLD_SOLID_BREP' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MAPPED_ITEM'] * TYPEOF( it ) ) = 1 ) ) ) + > 0 ); + wr3: ( SIZEOF( QUERY ( msb <* QUERY ( it <* SELF.items | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'ADVANCED_FACE' IN TYPEOF( fcs ) ) ) ) ) = 0 ) ) ) ) = 0 ) ) ) ) = 0 ); + wr4: ( SIZEOF( QUERY ( msb <* QUERY ( it <* items | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'MANIFOLD_SOLID_BREP' IN TYPEOF( it ) ) ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'ORIENTED_CLOSED_SHELL' IN TYPEOF( msb\manifold_solid_brep.outer ) ) ) ) = 0 ); + wr5: ( SIZEOF( QUERY ( brv <* QUERY ( it <* items | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MAPPED_ITEM' IN + TYPEOF( it ) ) ) | ( NOT ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ELEMENTARY_SURFACE', + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.B_SPLINE_SURFACE' , + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SWEPT_SURFACE' ] * TYPEOF( face_geometry ) ) = 1 ); + wr2 : ( SIZEOF( QUERY ( elp_fbnds <* QUERY ( bnds <* bounds | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'EDGE_LOOP' IN TYPEOF( bnds.bound ) ) ) | ( NOT ( SIZEOF( QUERY ( oe <* elp_fbnds.bound\path.edge_list | ( + NOT ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.EDGE_CURVE' IN TYPEOF( oe\oriented_edge.edge_element ) ) ) ) ) + = 0 ) ) ) ) = 0 ); + wr3 : ( SIZEOF( QUERY ( elp_fbnds <* QUERY ( bnds <* bounds | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'EDGE_LOOP' IN TYPEOF( bnds.bound ) ) ) | ( NOT ( SIZEOF( QUERY ( oe <* elp_fbnds.bound\path.edge_list | ( + NOT ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LINE', + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CONIC' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'POLYLINE' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SURFACE_CURVE', + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.B_SPLINE_CURVE' ] * TYPEOF( oe.edge_element\edge_curve. + edge_geometry ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ); + wr4 : ( SIZEOF( QUERY ( elp_fbnds <* QUERY ( bnds <* bounds | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'EDGE_LOOP' IN TYPEOF( bnds.bound ) ) ) | ( NOT ( SIZEOF( QUERY ( oe <* elp_fbnds.bound\path.edge_list | ( + NOT ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.VERTEX_POINT' IN TYPEOF( oe\edge.edge_start ) ) AND ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CARTESIAN_POINT' IN TYPEOF( oe\edge.edge_start\vertex_point. + vertex_geometry ) ) AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.VERTEX_POINT' IN TYPEOF( oe\edge. + edge_end ) ) AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CARTESIAN_POINT' IN TYPEOF( oe\edge. + edge_end\vertex_point.vertex_geometry ) ) ) ) ) ) = 0 ) ) ) ) = 0 ); + wr5 : ( SIZEOF( QUERY ( elp_fbnds <* QUERY ( bnds <* bounds | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'EDGE_LOOP' IN TYPEOF( bnds.bound ) ) ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ORIENTED_PATH' + IN TYPEOF( elp_fbnds.bound ) ) ) ) = 0 ); + wr6 : ( ( NOT ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SWEPT_SURFACE' IN TYPEOF( face_geometry ) ) ) OR ( + SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LINE', + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CONIC' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'POLYLINE' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.B_SPLINE_CURVE'] * TYPEOF( face_geometry\ + swept_surface.swept_curve ) ) = 1 ) ); + wr7 : ( SIZEOF( QUERY ( vlp_fbnds <* QUERY ( bnds <* bounds | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'VERTEX_LOOP' IN TYPEOF( bnds.bound ) ) ) | ( NOT ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'VERTEX_POINT' IN TYPEOF( vlp_fbnds\face_bound.bound\vertex_loop.loop_vertex ) ) AND ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.EDGE_LOOP', + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.VERTEX_LOOP' ] * TYPEOF( bnd.bound ) ) = 1 ) ) ) ) = 0 ); + wr9 : ( SIZEOF( QUERY ( elp_fbnds <* QUERY ( bnds <* bounds | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'EDGE_LOOP' IN TYPEOF( bnds.bound ) ) ) | ( NOT ( SIZEOF( QUERY ( oe <* elp_fbnds.bound\path.edge_list | ( ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PCURVE' IN + TYPEOF( sc_ag ) ) ) ) ) = 0 ) ) ) ) ) = 0 ) ) ) ) = 0 ); + wr10: ( ( ( NOT ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SWEPT_SURFACE' IN TYPEOF( face_geometry ) ) ) OR ( + NOT ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.EDGE_LOOP' IN + TYPEOF( bnds.bound ) ) ) | ( NOT ( SIZEOF( QUERY ( oe <* elp_fbnds.bound\path.edge_list | ( ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 agc_with_dimension + SUBTYPE OF ( angle_geometric_constraint ); + angle_value : plane_angle_measure; + END_ENTITY; + + ENTITY aligned_axis_tolerance; + model_ref : fea_model; + tolerance : context_dependent_measure; + END_ENTITY; + + ENTITY aligned_curve_3d_element_coordinate_system + SUBTYPE OF ( fea_representation_item ); + coordinate_system : fea_axis2_placement_3d; + END_ENTITY; + + ENTITY aligned_surface_2d_element_coordinate_system + SUBTYPE OF ( fea_representation_item ); + orientation : direction; + WHERE + wr1: ( SELF\geometric_representation_item.dim = 2 ); + END_ENTITY; + + ENTITY aligned_surface_3d_element_coordinate_system + SUBTYPE OF ( fea_representation_item ); + coordinate_system : fea_axis2_placement_3d; + END_ENTITY; + + ENTITY all_around_shape_aspect + SUBTYPE OF ( continuous_shape_aspect ); + 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: ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ) AND ( SELF\named_unit.dimensions.mass_exponent = 0 ) AND ( SELF\ + named_unit.dimensions.time_exponent = 0 ) AND ( SELF\named_unit.dimensions.electric_current_exponent = 0 ) AND ( + SELF\named_unit.dimensions.thermodynamic_temperature_exponent = 0 ) AND ( SELF\named_unit.dimensions. + amount_of_substance_exponent = 1 ) AND ( SELF\named_unit.dimensions.luminous_intensity_exponent = 0 ) ); + END_ENTITY; + + ENTITY analysis_assignment + SUBTYPE OF ( group ); + END_ENTITY; + + ENTITY analysis_item + SUBTYPE OF ( group_assignment ); + items : SET [1 : 1] OF analysed_item; + SELF\group_assignment.assigned_group : analysis_assignment; + END_ENTITY; + + ENTITY analysis_item_within_representation; + name : label; + description : text; + item : representation_item; + rep : representation; + WHERE + wr1: ( SIZEOF( QUERY ( tmp <* using_representations( item ) | ( tmp :=: rep ) ) ) = 1 ); + END_ENTITY; + + ENTITY analysis_message + SUPERTYPE OF ( + ONEOF ( + whole_model_analysis_message, + element_analysis_message, + node_analysis_message, + element_group_analysis_message ) ) + SUBTYPE OF ( state_definition ); + level : message_level; + message_text : text; + END_ENTITY; + + ENTITY analysis_model + SUBTYPE OF ( representation ); + SELF\representation.context_of_items : analysis_representation_context; + END_ENTITY; + + ENTITY analysis_representation_context + SUBTYPE OF ( representation_context ); + END_ENTITY; + + ENTITY analysis_step + SUPERTYPE OF ( + ONEOF ( + control_analysis_step, + result_analysis_step ) ); + analysis_control : control; + END_ENTITY; + + ENTITY and_expression + SUBTYPE OF ( multiple_arity_boolean_expression ); + END_ENTITY; + + ENTITY angle_assembly_constraint_with_dimension + SUBTYPE OF ( binary_assembly_constraint, agc_with_dimension ); + END_ENTITY; + + ENTITY angle_direction_reference + SUBTYPE OF ( representation_item_relationship, geometric_representation_item ); + SELF\representation_item_relationship.relating_representation_item : orientation_basis_select; + SELF\representation_item_relationship.related_representation_item : angle_direction_reference_select; + WHERE + wr1: ( ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.POINT_PATH' IN TYPEOF( related_representation_item ) ) AND + ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MIN_AND_MAJOR_PLY_ORIENTATION_BASIS' IN TYPEOF( + relating_representation_item ) ) ) OR ( ( NOT ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.POINT_PATH' IN + TYPEOF( related_representation_item ) ) ) AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'AXIS2_PLACEMENT_3D' IN TYPEOF( relating_representation_item ) ) ) ); + END_ENTITY; + + ENTITY angle_geometric_constraint + SUBTYPE OF ( explicit_geometric_constraint ); + SELF\explicit_constraint.constrained_elements : SET [1 : ?] OF linear_geometry_constraint_element; + SELF\explicit_constraint.reference_elements : SET [0 : 1] OF linear_geometry_constraint_element; + WHERE + wr1: ( ( SIZEOF( SELF\explicit_constraint.reference_elements ) = 1 ) OR ( ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.AGC_WITH_DIMENSION' IN TYPEOF( SELF ) ) AND ( SIZEOF( SELF\ + explicit_constraint.constrained_elements ) = 2 ) ) ); + 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 ); + END_ENTITY; + + ENTITY annotation_curve_occurrence + SUPERTYPE OF ( + ONEOF ( + dimension_curve, + leader_curve, + projection_curve ) ) + SUBTYPE OF ( annotation_occurrence ); + SELF\styled_item.item : curve_or_curve_set; + 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 ( ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CIRCLE' IN TYPEOF( curve ) ) OR ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ELLIPSE' IN TYPEOF( curve ) ) OR ( ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.B_SPLINE_CURVE' IN TYPEOF( curve ) ) AND ( curve\ + b_spline_curve.closed_curve = TRUE ) ) OR ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.COMPOSITE_CURVE' + IN TYPEOF( curve ) ) AND ( curve\composite_curve.closed_curve = TRUE ) ) OR ( ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ) + ANDOR + ONEOF ( + annotation_curve_occurrence, + annotation_fill_area_occurrence, + annotation_plane, + annotation_symbol_occurrence, + annotation_text_occurrence, + tessellated_annotation_occurrence ) ) + SUBTYPE OF ( styled_item ); + WHERE + wr1: ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.GEOMETRIC_REPRESENTATION_ITEM' IN TYPEOF( SELF ) ); + wr2: ( SIZEOF( QUERY ( reps <* using_representations( SELF ) | ( NOT ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ) * [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'ANNOTATION_FILL_AREA_OCCURRENCE' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROJECTION_CURVE', + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PLANAR_BOX' ) IN TYPEOF( SELF\styled_item.item ) ) ) + OR ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'AXIS2_PLACEMENT_3D' ) IN TYPEOF( SELF\styled_item. + item\planar_box.placement ) ) ); + wr3: ( ( ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PLANAR_BOX' ) IN TYPEOF( SELF\styled_item.item ) ) + AND ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'CURVE_STYLE' ) IN TYPEOF( SELF\styled_item.styles[ + 1]\presentation_style_assignment.styles[1] ) ) ) OR ( ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'PLANE' ) IN TYPEOF( SELF\styled_item.item ) ) AND ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.NULL_STYLE' IN + TYPEOF( sty.styles[1] ) ) ) ) ) = 0 ); + wr3: ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ANNOTATION_SYMBOL' IN TYPEOF( SELF.item ) ); + wr4: ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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: ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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: ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.TEXT_STRING_REPRESENTATION' IN TYPEOF( SELF\mapped_item. + mapping_source.mapped_representation ) ); + wr2: ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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: ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CHARACTER_GLYPH_SYMBOL' IN TYPEOF( SELF\mapped_item. + mapping_source.mapped_representation ) ); + wr2: ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'DESCRIPTION_ATTRIBUTE.DESCRIBED_ITEM' ) ) + <= 1 ); + wr2: ( SIZEOF( USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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_defined_function + SUPERTYPE OF ( + ONEOF ( + mesh_function, + mesh_function_basis ) ) + SUBTYPE OF ( maths_function ); + explicit_domain : tuple_space; + explicit_range : tuple_space; + parameters : LIST OF maths_value; + WHERE + wr1: expression_is_constant( explicit_domain ); + wr2: expression_is_constant( explicit_range ); + 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_area + SUBTYPE OF ( shape_aspect ); + WHERE + wr1: ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF( SELF.of_shape ) ); + wr2: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + + 'DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) ) = 1 ) ) ) ) = 0 ); + wr3: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + + 'DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. + used_representation ) ) ) | ( NOT ( ( 2 <= SIZEOF( impl_rep.used_representation.items ) ) AND ( SIZEOF( impl_rep. + used_representation.items ) <= 3 ) ) ) ) ) = 0 ) ) ) ) = 0 ); + wr4: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + + 'DEFINITION' ) | ( SIZEOF( QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) AND ( SIZEOF( QUERY ( srwp_i <* + pdr.used_representation.items | ( NOT ( srwp_i.name IN [ 'orientation', 'effective length', 'maximum length'] ) ) ) ) + > 0 ) ) ) ) = 0 ) ) ) = 0 ); + wr5: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + + 'DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. + used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( SIZEOF( [ + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM' , + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( it ) ) = 2 ) AND ( it. + name = 'effective length' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) <= 1 ); + wr6: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + + 'DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. + used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( SIZEOF( [ + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM' , + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( it ) ) = 2 ) AND ( it. + name = 'maximum length' ) ) ) ) <= 1 ) ) ) ) = 0 ) ) ) ) = 0 ); + wr7: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + + 'DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. + used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PLACEMENT' IN TYPEOF( it ) ) AND ( it.name = 'orientation' ) ) ) ) + = 1 ) ) ) ) = 0 ) ) ) ) = 0 ); + END_ENTITY; + + ENTITY applied_attribute_classification_assignment + SUBTYPE OF ( attribute_classification_assignment ); + SELF\attribute_classification_assignment.assigned_class : class; + items : SET [1 : ?] OF attribute_classification_item; + END_ENTITY; + + ENTITY applied_certification_assignment + SUBTYPE OF ( certification_assignment ); + items : SET [1 : ?] OF certification_item; + END_ENTITY; + + ENTITY applied_classification_assignment + SUBTYPE OF ( classification_assignment ); + items : SET [1 : ?] OF classification_item; + END_ENTITY; + + ENTITY applied_contract_assignment + SUBTYPE OF ( contract_assignment ); + items : SET [1 : ?] OF contract_item; + END_ENTITY; + + ENTITY applied_date_and_time_assignment + SUBTYPE OF ( date_and_time_assignment ); + items : SET [1 : ?] OF date_and_time_item; + END_ENTITY; + + ENTITY applied_date_assignment + SUBTYPE OF ( date_assignment ); + items : SET [1 : ?] OF date_item; + END_ENTITY; + + ENTITY applied_document_reference + SUBTYPE OF ( document_reference ); + items : SET [1 : ?] OF document_reference_item; + END_ENTITY; + + ENTITY applied_document_usage_constraint_assignment + SUBTYPE OF ( document_usage_constraint_assignment ); + items : SET [1 : ?] OF document_reference_item; + END_ENTITY; + + ENTITY applied_effectivity_assignment + SUBTYPE OF ( effectivity_assignment ); + items : SET [1 : ?] OF effectivity_item; + END_ENTITY; + + ENTITY applied_event_occurrence_assignment + SUBTYPE OF ( event_occurrence_assignment ); + items : SET [1 : ?] OF event_occurrence_item; + END_ENTITY; + + ENTITY applied_external_identification_assignment + SUBTYPE OF ( external_identification_assignment ); + items : SET [1 : ?] OF external_identification_item; + END_ENTITY; + + ENTITY applied_group_assignment + SUBTYPE OF ( group_assignment ); + items : SET [1 : ?] OF groupable_item; + END_ENTITY; + + ENTITY applied_identification_assignment + SUBTYPE OF ( identification_assignment ); + items : SET [1 : ?] OF identification_item; + END_ENTITY; + + ENTITY applied_ineffectivity_assignment + SUBTYPE OF ( effectivity_assignment ); + items : SET [1 : ?] OF effectivity_item; + WHERE + wr1: ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LOT_EFFECTIVITY', + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SERIAL_NUMBERED_EFFECTIVITY' , + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRODUCT_DEFINITION_EFFECTIVITY' ] * TYPEOF( SELF. + assigned_effectivity ) ) = 0 ); + 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_state_type_assignment + SUBTYPE OF ( state_type_assignment ); + 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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'DESCRIPTION_ATTRIBUTE.DESCRIBED_ITEM' ) ) + <= 1 ); + END_ENTITY; + + ENTITY approval_status; + name : label; + END_ENTITY; + + ENTITY arbitrary_volume_2d_element_coordinate_system + SUBTYPE OF ( fea_representation_item ); + orientation : direction; + WHERE + wr1: ( SELF\geometric_representation_item.dim = 2 ); + END_ENTITY; + + ENTITY arbitrary_volume_3d_element_coordinate_system + SUBTYPE OF ( fea_representation_item ); + coordinate_system : fea_axis2_placement_3d; + 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: ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ) ); + END_ENTITY; + + ENTITY area_with_outer_boundary + SUBTYPE OF ( half_space_2d ); + SELF\half_space_2d.base_curve : composite_curve; + WHERE + wr1: ( base_curve\composite_curve.closed_curve = TRUE ); + END_ENTITY; + + ENTITY array_based_unstructured_mesh + SUBTYPE OF ( unstructured_mesh ); + cells : ARRAY [1 : SELF\unstructured_mesh.cell_count] OF vertex_defined_cell; + WHERE + wr1: ( SELF\mesh.index_count = 1 ); + END_ENTITY; + + ENTITY array_based_unstructured_mesh_and_vertices + SUBTYPE OF ( array_based_unstructured_mesh ); + vertex_count : INTEGER; + vertices : ARRAY [1 : vertex_count] OF UNIQUE vertex; + WHERE + wr1: all_mesh_vertices( SELF ); + END_ENTITY; + + ENTITY array_placement_group + SUPERTYPE OF ( + ONEOF ( + linear_array_placement_group_component, + rectangular_array_placement_group_component ) ) + SUBTYPE OF ( assembly_group_component ); + END_ENTITY; + + ENTITY asin_function + SUBTYPE OF ( unary_function_call ); + END_ENTITY; + + ENTITY assembly_bond_definition + SUBTYPE OF ( shape_aspect ); + UNIQUE + ur1 : SELF\shape_aspect.name; + END_ENTITY; + + ENTITY assembly_component + SUBTYPE OF ( component_definition, product_definition_shape ); + DERIVE + SELF\property_definition.definition : assembly_component := SELF; + WHERE + wr1: ( NOT EXISTS( SELF\property_definition.description ) ); + END_ENTITY; + + ENTITY assembly_component_usage + SUPERTYPE OF ( + quantified_assembly_component_usage + ANDOR + ONEOF ( + multi_level_reference_designator, + next_assembly_usage_occurrence, + promissory_usage_occurrence, + specified_higher_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 assembly_geometric_constraint + ABSTRACT SUPERTYPE OF ( + ONEOF ( + binary_assembly_constraint, + fixed_constituent_assembly_constraint ) ) + SUBTYPE OF ( explicit_constraint ); + END_ENTITY; + + ENTITY assembly_group_component + SUBTYPE OF ( assembly_component ); + END_ENTITY; + + ENTITY assembly_group_component_definition_placement_link + SUBTYPE OF ( product_definition, product_definition_relationship ); + SELF\product_definition_relationship.relating_product_definition : assembly_component; + SELF\product_definition_relationship.related_product_definition : assembly_component; + WHERE + wr1: ( SELF\product_definition_relationship.related_product_definition :<>: SELF\product_definition_relationship. + relating_product_definition ); + wr2: acyclic_product_definition_relationship( SELF, [SELF\product_definition_relationship.related_product_definition], + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ASSEMBLY_GROUP_COMPONENT_DEFINITION_PLACEMENT_LINK' ); + END_ENTITY; + + ENTITY assembly_joint + SUBTYPE OF ( component_feature_joint ); + WHERE + wr1: acyclic_shape_aspect_relationship( SELF, [SELF\shape_aspect_relationship.related_shape_aspect], + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'ASSEMBLY_JOINT' ); + END_ENTITY; + + ENTITY assigned_analysis + SUBTYPE OF ( group_assignment ); + items : SET [1 : 1] OF product_definition_formation; + SELF\group_assignment.assigned_group : analysis_assignment; + END_ENTITY; + + ENTITY assigned_requirement + SUBTYPE OF ( group_assignment ); + SELF\group_assignment.assigned_group : requirement_assignment; + items : SET [1 : 1] OF product_definition; + END_ENTITY; + + ENTITY atan_function + SUBTYPE OF ( binary_function_call ); + END_ENTITY; + + ENTITY atom_based_literal + SUBTYPE OF ( generic_literal ); + lit_value : atom_based_value; + 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 ); + SELF\attribute_classification_assignment.assigned_class : language; + items : SET [1 : ?] OF attribute_language_item; + WHERE + wr1: ( SELF\attribute_classification_assignment.role.name IN [ 'primary', 'translated'] ); + wr2: ( SELF\attribute_classification_assignment.attribute_name <> '' ); + END_ENTITY; + + ENTITY attribute_value_assignment + ABSTRACT SUPERTYPE; + attribute_name : label; + attribute_value : attribute_type; + role : attribute_value_role; + END_ENTITY; + + ENTITY attribute_value_role; + name : label; + description : OPTIONAL text; + END_ENTITY; + + ENTITY 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, 1] ) ); + 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 ) ); + END_ENTITY; + + ENTITY axisymmetric_2d_element_property; + angle : plane_angle_measure; + END_ENTITY; + + ENTITY axisymmetric_curve_2d_element_descriptor + SUBTYPE OF ( element_descriptor ); + purpose : SET [1 : ?] OF SET [1 : ?] OF curve_element_purpose; + END_ENTITY; + + ENTITY axisymmetric_curve_2d_element_representation + SUBTYPE OF ( element_representation ); + model_ref : fea_model_2d; + element_descriptor : axisymmetric_curve_2d_element_descriptor; + property : curve_2d_element_property; + angle_property : axisymmetric_2d_element_property; + material : element_material; + UNIQUE + ur1 : model_ref, SELF\representation.name; + WHERE + wr1: ( model_ref.type_of_2d_analysis = axisymmetric ); + wr2: ( SIZEOF( QUERY ( item <* SELF\representation.items | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'CURVE_2D_ELEMENT_COORDINATE_SYSTEM' ) IN TYPEOF( item ) ) ) ) = 1 ); + wr3: ( SIZEOF( QUERY ( item1 <* material.properties | ( SIZEOF( QUERY ( item2 <* item1\property_definition_representation. + used_representation.items | ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'FEA_LINEAR_ELASTICITY' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'FEA_MASS_DENSITY', + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'FEA_AREA_DENSITY', + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'FEA_TANGENTIAL_COEFFICIENT_OF_LINEAR_THERMAL_EXPANSION', + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'FEA_SECANT_COEFFICIENT_OF_LINEAR_THERMAL_EXPANSION', + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'FEA_MOISTURE_ABSORPTION'] * TYPEOF( item2 ) ) = 1 ) ) ) + = 1 ) ) ) >= 1 ); + wr4: ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PARAMETRIC_REPRESENTATION_CONTEXT' IN TYPEOF( SELF\ + representation.context_of_items ) ); + fu1: required_0d_nodes( SELF\element_representation.node_list ); + END_ENTITY; + + ENTITY axisymmetric_surface_2d_element_descriptor + SUBTYPE OF ( element_descriptor ); + purpose : SET [1 : ?] OF SET [1 : ?] OF surface_element_purpose; + END_ENTITY; + + ENTITY axisymmetric_surface_2d_element_representation + SUBTYPE OF ( element_representation ); + model_ref : fea_model_2d; + element_descriptor : axisymmetric_surface_2d_element_descriptor; + property : surface_element_property; + angle_property : axisymmetric_2d_element_property; + material : element_material; + UNIQUE + ur1 : model_ref, SELF\representation.name; + WHERE + wr1: ( model_ref.type_of_2d_analysis = axisymmetric ); + wr2: ( ( SIZEOF( QUERY ( item <* SELF\representation.items | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'PARAMETRIC_SURFACE_2D_ELEMENT_COORDINATE_SYSTEM' ) IN TYPEOF( item ) ) ) ) + SIZEOF( QUERY ( item <* SELF\ + representation.items | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'ALIGNED_SURFACE_2D_ELEMENT_COORDINATE_SYSTEM' ) IN TYPEOF( item ) ) ) ) ) = 1 ); + wr3: ( SIZEOF( QUERY ( item1 <* material.properties | ( SIZEOF( QUERY ( item2 <* item1\property_definition_representation. + used_representation.items | ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'FEA_LINEAR_ELASTICITY' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'FEA_MASS_DENSITY', + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'FEA_AREA_DENSITY', + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'FEA_TANGENTIAL_COEFFICIENT_OF_LINEAR_THERMAL_EXPANSION', + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'FEA_SECANT_COEFFICIENT_OF_LINEAR_THERMAL_EXPANSION', + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'FEA_MOISTURE_ABSORPTION', + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'FEA_SHELL_MEMBRANE_STIFFNESS', + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'FEA_SHELL_BENDING_STIFFNESS', + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'FEA_SHELL_MEMBRANE_BENDING_COUPLING_STIFFNESS', + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'FEA_SHELL_SHEAR_STIFFNESS'] * TYPEOF( item2 ) ) = 1 ) ) ) + = 1 ) ) ) >= 1 ); + wr4: ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PARAMETRIC_REPRESENTATION_CONTEXT' IN TYPEOF( SELF\ + representation.context_of_items ) ); + fu1: required_1d_nodes( SELF\element_representation.node_list, element_descriptor\element_descriptor.topology_order ); + END_ENTITY; + + ENTITY axisymmetric_volume_2d_element_descriptor + SUBTYPE OF ( element_descriptor ); + purpose : SET [1 : ?] OF SET [1 : ?] OF volume_element_purpose; + shape : element_2d_shape; + END_ENTITY; + + ENTITY axisymmetric_volume_2d_element_representation + SUBTYPE OF ( element_representation ); + model_ref : fea_model_2d; + element_descriptor : axisymmetric_volume_2d_element_descriptor; + angle_property : axisymmetric_2d_element_property; + material : element_material; + UNIQUE + ur1 : model_ref, SELF\representation.name; + WHERE + wr1: ( model_ref.type_of_2d_analysis = axisymmetric ); + wr2: ( ( SIZEOF( QUERY ( item <* SELF\representation.items | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'PARAMETRIC_VOLUME_2D_ELEMENT_COORDINATE_SYSTEM' ) IN TYPEOF( item ) ) ) ) + SIZEOF( QUERY ( item <* SELF\ + representation.items | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'ARBITRARY_VOLUME_2D_ELEMENT_COORDINATE_SYSTEM' ) IN TYPEOF( item ) ) ) ) ) = 1 ); + wr3: ( SIZEOF( QUERY ( item1 <* material.properties | ( SIZEOF( QUERY ( item2 <* item1\property_definition_representation. + used_representation.items | ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'FEA_LINEAR_ELASTICITY' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'FEA_MASS_DENSITY', + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'FEA_AREA_DENSITY', + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'FEA_TANGENTIAL_COEFFICIENT_OF_LINEAR_THERMAL_EXPANSION', + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'FEA_SECANT_COEFFICIENT_OF_LINEAR_THERMAL_EXPANSION', + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'FEA_MOISTURE_ABSORPTION'] * TYPEOF( item2 ) ) = 1 ) ) ) + = 1 ) ) ) >= 1 ); + wr4: ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PARAMETRIC_REPRESENTATION_CONTEXT' IN TYPEOF( SELF\ + representation.context_of_items ) ); + fu1: required_2d_nodes( SELF\element_representation.node_list, element_descriptor.shape, element_descriptor\ + element_descriptor.topology_order ); + END_ENTITY; + + ENTITY b_spline_basis + SUBTYPE OF ( maths_function, generic_literal ); + degree : nonnegative_integer; + repeated_knots : LIST [2 : ?] OF REAL; + DERIVE + order : positive_integer := degree + 1; + num_basis : positive_integer := SIZEOF( repeated_knots ) - order; + WHERE + wr1: ( num_basis >= order ); + wr2: nondecreasing( repeated_knots ); + wr3: ( repeated_knots[order] < repeated_knots[num_basis + 1] ); + END_ENTITY; + + ENTITY b_spline_curve + SUPERTYPE OF ( + ONEOF ( + uniform_curve, + b_spline_curve_with_knots, + quasi_uniform_curve, + bezier_curve ) + ANDOR + rational_b_spline_curve ) + SUBTYPE OF ( bounded_curve ); + degree : INTEGER; + control_points_list : LIST [2 : ?] OF cartesian_point; + curve_form : b_spline_curve_form; + closed_curve : LOGICAL; + self_intersect : LOGICAL; + DERIVE + upper_index_on_control_points : INTEGER := SIZEOF( control_points_list ) - 1; + control_points : ARRAY [0 : upper_index_on_control_points] OF cartesian_point := list_to_array( + control_points_list, 0, upper_index_on_control_points ); + WHERE + wr1: ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.UNIFORM_CURVE' IN TYPEOF( SELF ) ) OR ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.QUASI_UNIFORM_CURVE' IN TYPEOF( SELF ) ) OR ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.BEZIER_CURVE' IN TYPEOF( SELF ) ) OR ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.B_SPLINE_CURVE_WITH_KNOTS' IN TYPEOF( SELF ) ) ); + END_ENTITY; + + ENTITY b_spline_curve_knot_locator + SUBTYPE OF ( founded_item ); + basis_curve : b_spline_curve; + knot_index : INTEGER; + WHERE + wr1: ( SIZEOF( using_representations( SELF.basis_curve ) * relating_shape_representations_of_extreme_values( SELF ) ) > 0 ); + END_ENTITY; + + ENTITY b_spline_curve_segment + SUBTYPE OF ( founded_item ); + basis_curve : b_spline_curve; + start_knot_index : INTEGER; + WHERE + wr1: ( SIZEOF( using_representations( SELF.basis_curve ) * relating_shape_representations_of_extreme_values( SELF ) ) > 0 ); + 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_function + SUBTYPE OF ( maths_function, unary_generic_expression ); + SELF\unary_generic_expression.operand : maths_function; + basis : LIST [1 : ?] OF b_spline_basis; + DERIVE + coef : maths_function := SELF\unary_generic_expression.operand; + WHERE + wr1: function_is_table( coef ); + wr2: ( ( space_dimension( coef.range ) = 1 ) AND ( number_superspace_of( factor1( coef.range ) ) = the_reals ) ); + wr3: ( SIZEOF( basis ) <= SIZEOF( shape_of_array( coef ) ) ); + wr4: compare_basis_and_coef( basis, coef ); + END_ENTITY; + + ENTITY b_spline_surface + SUPERTYPE OF ( + ONEOF ( + b_spline_surface_with_knots, + uniform_surface, + quasi_uniform_surface, + bezier_surface ) + ANDOR + rational_b_spline_surface ) + SUBTYPE OF ( bounded_surface ); + u_degree : INTEGER; + v_degree : INTEGER; + control_points_list : LIST [2 : ?] OF LIST [2 : ?] OF cartesian_point; + surface_form : b_spline_surface_form; + u_closed : LOGICAL; + v_closed : LOGICAL; + self_intersect : LOGICAL; + DERIVE + u_upper : INTEGER := SIZEOF( control_points_list ) - 1; + v_upper : INTEGER := SIZEOF( control_points_list[1] ) - 1; + control_points : ARRAY [0 : u_upper] OF ARRAY [0 : v_upper] OF cartesian_point := make_array_of_array( control_points_list, + 0, u_upper, 0, v_upper ); + WHERE + wr1: ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.UNIFORM_SURFACE' IN TYPEOF( SELF ) ) OR ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.QUASI_UNIFORM_SURFACE' IN TYPEOF( SELF ) ) OR ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.BEZIER_SURFACE' IN TYPEOF( SELF ) ) OR ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.B_SPLINE_SURFACE_WITH_KNOTS' IN TYPEOF( SELF ) ) ); + END_ENTITY; + + ENTITY b_spline_surface_knot_locator + SUBTYPE OF ( founded_item ); + basis_surface : b_spline_surface; + knot_index : INTEGER; + surface_parameter : u_or_v_parameter; + WHERE + wr1: ( SIZEOF( using_representations( SELF.basis_surface ) * relating_shape_representations_of_extreme_values( SELF ) ) > 0 ); + END_ENTITY; + + ENTITY b_spline_surface_patch + SUBTYPE OF ( founded_item ); + basis_surface : b_spline_surface; + u_start_knot_index : INTEGER; + v_start_knot_index : INTEGER; + WHERE + wr1: ( SIZEOF( using_representations( SELF.basis_surface ) * relating_shape_representations_of_extreme_values( SELF ) ) > 0 ); + END_ENTITY; + + ENTITY b_spline_surface_strip + SUBTYPE OF ( founded_item ); + basis_surface : b_spline_surface; + start_knot_index : INTEGER; + surface_parameter : u_or_v_parameter; + WHERE + wr1: ( SIZEOF( using_representations( SELF.basis_surface ) * relating_shape_representations_of_extreme_values( SELF ) ) > 0 ); + 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 banded_matrix + SUBTYPE OF ( linearized_table_function ); + default_entry : maths_value; + below : INTEGER; + above : INTEGER; + order : ordering_type; + WHERE + wr1: ( SIZEOF( SELF\explicit_table_function.shape ) = 2 ); + wr2: ( ( -below ) <= above ); + wr3: member_of( default_entry, factor1( SELF\linearized_table_function.source.range ) ); + END_ENTITY; + + ENTITY barring_hole + SUBTYPE OF ( feature_definition ); + WHERE + wr1: ( SIZEOF( QUERY ( sa <* get_shape_aspects( SELF ) | ( ( sa.name = 'hole profile' ) AND ( sa.description = + 'closed profile occurrence' ) AND ( SIZEOF( QUERY ( sar <* USEDIN( sa, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT' ) | ( ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF( sar ) ) AND ( sar. + description = 'profile usage' ) AND ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'CIRCULAR_CLOSED_PROFILE' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.NGON_CLOSED_PROFILE', + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.RECTANGULAR_CLOSED_PROFILE' , + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CLOSED_PATH_PROFILE' ] * TYPEOF( sar.relating_shape_aspect ) ) + = 1 ) ) ) ) = 1 ) ) ) ) = 1 ); + wr2: ( SIZEOF( QUERY ( sa <* get_shape_aspects( SELF ) | ( ( sa.name = 'barring profile' ) AND ( sa.description = + 'closed profile occurrence' ) AND ( SIZEOF( QUERY ( sar <* USEDIN( sa, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT' ) | ( ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF( sar ) ) AND ( sar. + description = 'profile usage' ) ) ) ) = 1 ) ) ) ) = 1 ); + wr3: ( ( SIZEOF( QUERY ( pdr <* get_property_definition_representations( SELF ) | ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. + used_representation ) ) ) ) = 1 ) AND ( SIZEOF( QUERY ( pdr <* get_property_definition_representations( SELF ) | ( + ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. + used_representation ) ) AND ( 1 <= SIZEOF( pdr.used_representation.items ) ) AND ( SIZEOF( pdr.used_representation. + items ) <= 2 ) ) ) ) = 1 ) ); + wr4: ( SIZEOF( QUERY ( pdr <* get_property_definition_representations( SELF ) | ( ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. + used_representation ) ) AND ( SIZEOF( QUERY ( i <* pdr.used_representation.items | ( NOT ( i.name IN [ 'orientation', + 'base radius' ] ) ) ) ) > 0 ) ) ) ) = 0 ); + wr5: ( SIZEOF( QUERY ( pdr <* get_property_definition_representations( SELF ) | ( ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. + used_representation ) ) AND ( SIZEOF( QUERY ( i <* pdr.used_representation.items | ( ( i.name = 'base radius' ) AND + ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( i ) ) = 2 ) ) ) ) <> 1 ) ) ) ) + = 0 ); + END_ENTITY; + + ENTITY basic_sparse_matrix + SUBTYPE OF ( explicit_table_function, multiple_arity_generic_expression ); + SELF\multiple_arity_generic_expression.operands : LIST [3 : 3] OF maths_function; + default_entry : maths_value; + order : ordering_type; + DERIVE + index : maths_function := SELF\multiple_arity_generic_expression.operands[1]; + loc : maths_function := SELF\multiple_arity_generic_expression.operands[2]; + val : maths_function := SELF\multiple_arity_generic_expression.operands[3]; + WHERE + wr1: function_is_1d_table( index ); + wr2: function_is_1d_table( loc ); + wr3: function_is_1d_table( val ); + wr4: check_sparse_index_domain( index.domain, index_base, shape, order ); + wr5: check_sparse_index_to_loc( index.range, loc.domain ); + wr6: ( loc.domain = val.domain ); + wr7: check_sparse_loc_range( loc.range, index_base, shape, order ); + wr8: member_of( default_entry, val.range ); + END_ENTITY; + + ENTITY bead + SUBTYPE OF ( feature_definition ); + WHERE + wr1: ( ( SIZEOF( QUERY ( pdr <* get_property_definition_representations( SELF ) | ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. + used_representation ) ) ) ) <= 1 ) AND ( SIZEOF( QUERY ( pdr <* get_property_definition_representations( SELF ) | + ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. + used_representation ) ) AND ( SIZEOF( pdr.used_representation.items ) > 2 ) ) ) ) = 0 ) ); + wr2: ( SIZEOF( QUERY ( pdr <* get_property_definition_representations( SELF ) | ( ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. + used_representation ) ) AND ( SIZEOF( QUERY ( i <* pdr.used_representation.items | ( NOT ( i.name IN [ 'orientation', + 'base radius' ] ) ) ) ) > 0 ) ) ) ) = 0 ); + wr3: ( SIZEOF( QUERY ( pdr <* get_property_definition_representations( SELF ) | ( ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. + used_representation ) ) AND ( SIZEOF( QUERY ( i <* pdr.used_representation.items | ( ( i.name = 'base radius' ) AND + ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( i ) ) = 2 ) ) ) ) > 1 ) ) ) ) + = 0 ); + wr4: ( SIZEOF( QUERY ( sa <* get_shape_aspects( SELF ) | ( ( sa.name = 'sweep path' ) AND ( sa.description = + 'path feature component occurrence' ) AND ( SIZEOF( QUERY ( sar <* USEDIN( sa, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT' ) | ( ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF( sar ) ) AND ( sar. + description = 'path feature component usage' ) AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'PATH_FEATURE_COMPONENT' IN TYPEOF( sar.relating_shape_aspect ) ) ) ) ) = 1 ) ) ) ) = 1 ); + wr5: ( SIZEOF( QUERY ( sa <* get_shape_aspects( SELF ) | ( ( sa.name = 'bead profile' ) AND ( sa.description = + 'open profile occurrence' ) AND ( SIZEOF( QUERY ( sar <* USEDIN( sa, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT' ) | ( ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF( sar ) ) AND ( sar. + description = 'profile usage' ) AND ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'OPEN_PATH_PROFILE' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PARTIAL_CIRCULAR_PROFILE', + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ROUNDED_U_PROFILE' , + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SQUARE_U_PROFILE' , + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.TEE_PROFILE' , + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.VEE_PROFILE' ] * TYPEOF( sar.relating_shape_aspect ) ) = 1 ) ) ) ) + = 1 ) ) ) ) = 1 ); + wr6: ( SIZEOF( QUERY ( sa <* get_shape_aspects( SELF ) | ( ( sa.name = 'end condition' ) AND ( sa.description = + 'bead end occurrence' ) AND ( SIZEOF( QUERY ( sar <* USEDIN( sa, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT' ) | ( ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF( sar ) ) AND ( sar. + name = 'bead end usage' ) AND ( sar.description = 'starting' ) AND ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.BEAD_END' IN TYPEOF( sar.relating_shape_aspect ) ) ) ) ) = 1 ) ) ) ) + = 1 ); + wr7: ( SIZEOF( QUERY ( sa <* get_shape_aspects( SELF ) | ( ( sa.name = 'end condition' ) AND ( sa.description = + 'bead end occurrence' ) AND ( SIZEOF( QUERY ( sar <* USEDIN( sa, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT' ) | ( ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF( sar ) ) AND ( sar. + name = 'bead end usage' ) AND ( sar.description = 'ending' ) AND ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.BEAD_END' IN TYPEOF( sar.relating_shape_aspect ) ) ) ) ) = 1 ) ) ) ) + = 1 ); + END_ENTITY; + + ENTITY bead_end + SUBTYPE OF ( shape_aspect ); + WHERE + wr1: ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FEATURE_COMPONENT_DEFINITION' IN TYPEOF( SELF.of_shape. + definition ) ); + wr2: ( SELF.description IN [ 'linear', 'open', 'radiused'] ); + wr3: ( ( SELF.description <> 'linear' ) XOR ( SIZEOF( QUERY ( pdr <* get_shape_aspect_property_definition_representations( + SELF ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr + .used_representation ) ) ) ) > 0 ) ); + wr4: ( ( SELF.description <> 'linear' ) OR ( SIZEOF( QUERY ( pdr <* get_shape_aspect_property_definition_representations( + SELF ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( + pdr.used_representation ) ) AND ( SIZEOF( pdr.used_representation.items ) = 2 ) ) ) ) = 1 ) ); + wr5: ( ( SELF.description <> 'linear' ) OR ( SIZEOF( QUERY ( pdr <* get_shape_aspect_property_definition_representations( + SELF ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( + pdr.used_representation ) ) AND ( SIZEOF( QUERY ( i <* pdr.used_representation.items | ( ( i.name = 'end length' ) + AND ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( i ) ) = 2 ) ) ) ) = 1 ) ) ) ) + = 1 ) ); + wr6: ( ( SELF.description <> 'linear' ) OR ( SIZEOF( QUERY ( pdr <* get_shape_aspect_property_definition_representations( + SELF ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( + pdr.used_representation ) ) AND ( SIZEOF( QUERY ( i <* pdr.used_representation.items | ( ( i.name = 'end shape' ) + AND ( i\descriptive_representation_item.description IN [ 'straight', 'tapered'] ) AND ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF( i ) ) ) ) ) = 1 ) ) ) ) + = 1 ) ); + wr7: ( SIZEOF( QUERY ( sar <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'SHAPE_ASPECT_RELATIONSHIP.RELATING_SHAPE_ASPECT' ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF( sar ) ) AND ( sar.name = 'bead end usage' ) AND ( sar.description + IN [ 'starting', 'ending'] ) AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.BEAD' IN TYPEOF( sar. + related_shape_aspect.of_shape.definition ) ) AND ( sar.related_shape_aspect.of_shape.definition\ + characterized_object.name = 'end condition' ) AND ( sar.related_shape_aspect.of_shape.definition\ + characterized_object.description = 'bead end occurrence' ) ) ) ) = 1 ); + END_ENTITY; + + ENTITY behavioural_decomposition_of_numerical_model; + parts : SET [2 : ?] OF numerical_model; + whole : numerical_model; + END_ENTITY; + + ENTITY behavioural_decomposition_of_temporal_spatial_domain; + parts : SET [2 : ?] OF temporal_spatial_domain; + whole : temporal_spatial_domain; + END_ENTITY; + + ENTITY between_shape_aspect + SUBTYPE OF ( continuous_shape_aspect ); + 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_assembly_constraint + ABSTRACT SUPERTYPE OF ( + ONEOF ( + parallel_assembly_constraint, + surface_distance_assembly_constraint_with_dimension, + angle_assembly_constraint_with_dimension, + perpendicular_assembly_constraint, + incidence_assembly_constraint, + coaxial_assembly_constraint, + tangent_assembly_constraint ) ) + SUBTYPE OF ( assembly_geometric_constraint, representation_relationship_with_transformation ); + SELF\representation_relationship.rep_1 : representative_shape_representation; + SELF\representation_relationship.rep_2 : representative_shape_representation; + WHERE + wr1: ( ( SELF\explicit_constraint.constrained_elements[1]\geometric_representation_item.dim = 3 ) AND ( SELF\ + explicit_constraint.reference_elements[1]\geometric_representation_item.dim = 3 ) ); + wr2: ( ( SELF\representation_relationship.rep_1 IN ( using_representations( SELF\ + representation_relationship_with_transformation.transformation_operator\item_defined_transformation. + transform_item_1 ) + using_representation_with_mapping( SELF\representation_relationship_with_transformation. + transformation_operator\item_defined_transformation.transform_item_1 ) ) ) AND ( SELF\representation_relationship. + rep_2 IN ( using_representations( SELF\representation_relationship_with_transformation.transformation_operator\ + item_defined_transformation.transform_item_2 ) + using_representation_with_mapping( SELF\ + representation_relationship_with_transformation.transformation_operator\item_defined_transformation. + transform_item_2 ) ) ) ); + wr3: ( ( SIZEOF( SELF\explicit_constraint.constrained_elements ) = 1 ) AND ( SIZEOF( SELF\explicit_constraint. + reference_elements ) = 1 ) ); + wr4: ( ( SELF\representation_relationship_with_transformation.transformation_operator\item_defined_transformation. + transform_item_1 = SELF\explicit_constraint.reference_elements[1] ) AND ( SELF\ + representation_relationship_with_transformation.transformation_operator\item_defined_transformation. + transform_item_2 = SELF\explicit_constraint.constrained_elements[1] ) ); + END_ENTITY; + + ENTITY binary_boolean_expression + ABSTRACT SUPERTYPE OF ( + ONEOF ( + xor_expression, + equals_expression ) ) + SUBTYPE OF ( boolean_expression, binary_generic_expression ); + END_ENTITY; + + ENTITY binary_function_call + ABSTRACT SUPERTYPE + SUBTYPE OF ( binary_numeric_expression ); + END_ENTITY; + + ENTITY binary_generic_expression + ABSTRACT SUPERTYPE + SUBTYPE OF ( generic_expression ); + operands : LIST [2 : 2] OF generic_expression; + END_ENTITY; + + ENTITY binary_literal + SUBTYPE OF ( generic_literal ); + lit_value : BINARY; + END_ENTITY; + + ENTITY binary_numeric_expression + ABSTRACT SUPERTYPE OF ( + ONEOF ( + minus_expression, + div_expression, + mod_expression, + slash_expression, + power_expression, + binary_function_call ) ) + 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_defined_function + ABSTRACT SUPERTYPE + SUBTYPE OF ( defined_function, boolean_expression ); + END_ENTITY; + + ENTITY boolean_expression + ABSTRACT SUPERTYPE OF ( + ONEOF ( + simple_boolean_expression, + unary_boolean_expression, + binary_boolean_expression, + multiple_arity_boolean_expression, + comparison_expression, + interval_expression, + boolean_defined_function ) ) + 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 boolean_result_2d + SUBTYPE OF ( boolean_result ); + SELF\boolean_result.first_operand : boolean_operand_2d; + SELF\boolean_result.second_operand : boolean_operand_2d; + END_ENTITY; + + ENTITY boolean_variable + SUBTYPE OF ( simple_boolean_expression, variable ); + END_ENTITY; + + ENTITY boss + SUBTYPE OF ( feature_definition ); + WHERE + wr1 : ( SELF\characterized_object.description IN [ 'circular', 'complex', 'rectangular'] ); + wr2 : ( SIZEOF( QUERY ( pds <* QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) | ( NOT ( SIZEOF( QUERY ( sa_occ <* USEDIN( pds, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) | ( ( sa_occ.description = + 'boss height occurrence' ) AND ( SIZEOF( QUERY ( sdr <* QUERY ( sar <* USEDIN( sa_occ, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT' ) | ( ( sar. + description = 'path feature component usage' ) AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF( sar ) ) ) ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'PATH_FEATURE_COMPONENT' IN TYPEOF( sdr.relating_shape_aspect ) ) AND ( sdr.relating_shape_aspect.description + = 'linear' ) AND ( sdr.name = 'boss height' ) ) ) ) = 1 ) ) ) ) = 1 ) ) ) ) = 0 ); + wr3 : ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + + 'DEFINITION' ) | ( SIZEOF( QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) AND ( 1 <= SIZEOF( pdr. + used_representation.items ) ) AND ( SIZEOF( pdr.used_representation.items ) <= 2 ) ) ) ) = 1 ) ) ) = 1 ); + wr4 : ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + + 'DEFINITION' ) | ( SIZEOF( QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) AND ( SIZEOF( QUERY ( srwp_i <* + pdr.used_representation.items | ( ( srwp_i.name = 'orientation' ) OR ( srwp_i.name = 'fillet radius' ) ) ) ) = + SIZEOF( pdr.used_representation.items ) ) ) ) ) = 1 ) ) ) = 1 ); + wr5 : ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + + 'DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. + used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( SIZEOF( [ + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM' , + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( it ) ) = 2 ) AND ( it. + name = 'fillet radius' ) ) ) ) <= 1 ) ) ) ) = 0 ) ) ) ) = 0 ); + wr6 : ( ( NOT ( SELF\characterized_object.description = 'circular' ) ) OR ( SIZEOF( QUERY ( pds <* QUERY ( pd <* USEDIN( + SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) | ( NOT ( + SIZEOF( QUERY ( sa_occ <* USEDIN( pds, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) + | ( ( sa_occ.description = 'circular profile occurrence' ) AND ( SIZEOF( QUERY ( sdr <* QUERY ( sar <* USEDIN( + sa_occ, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT' ) | ( + ( sar.description = 'profile usage' ) AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF( sar ) ) ) ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'CIRCULAR_CLOSED_PROFILE' IN TYPEOF( sdr.relating_shape_aspect ) ) ) ) = 1 ) ) ) ) = 1 ) ) ) ) = 0 ) ); + wr7 : ( SIZEOF( QUERY ( pds <* QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) | ( NOT ( SIZEOF( QUERY ( sa_occ <* USEDIN( pds, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) | ( ( sa_occ.description = + 'top condition occurrence' ) AND ( SIZEOF( QUERY ( fcr <* QUERY ( sar <* USEDIN( sa_occ, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT' ) | ( ( sar. + description = 'boss top usage' ) AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF( sar ) ) ) ) | ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.BOSS_TOP' IN TYPEOF( fcr.relating_shape_aspect ) ) ) ) = 1 ) ) ) ) + = 1 ) ) ) ) = 0 ); + wr8 : ( ( NOT ( SELF\characterized_object.description = 'circular' ) ) OR ( SIZEOF( QUERY ( pds <* QUERY ( pd <* USEDIN( + SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) | ( NOT ( + SIZEOF( QUERY ( sa_occ <* USEDIN( pds, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) + | ( ( sa_occ.description = 'change in diameter occurrence' ) AND ( SIZEOF( QUERY ( fcr <* QUERY ( sar <* USEDIN( + sa_occ, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT' ) | ( + ( sar.description = 'taper usage' ) AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF( sar ) ) ) ) | ( ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.TAPER' IN TYPEOF( fcr.related_shape_aspect ) ) AND ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.BOSS' IN TYPEOF( fcr.relating_shape_aspect ) ) ) ) ) = 1 ) ) ) ) + <= 1 ) ) ) ) = 0 ) ); + wr9 : ( ( NOT ( SELF\characterized_object.description = 'complex' ) ) OR ( SIZEOF( QUERY ( pds <* QUERY ( pd <* USEDIN( + SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) | ( NOT ( + SIZEOF( QUERY ( sa_occ <* USEDIN( pds, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) + | ( ( sa_occ.description = 'enclosed boundary occurrence' ) AND ( SIZEOF( QUERY ( sdr <* QUERY ( sar <* USEDIN( + sa_occ, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT' ) | ( + ( sar.description = 'profile usage' ) AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF( sar ) ) ) ) | ( SIZEOF( [ + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.NGON_CLOSED_PROFILE' , + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CLOSED_PATH_PROFILE' ] * TYPEOF( sdr.relating_shape_aspect ) ) + = 1 ) ) ) = 1 ) ) ) ) = 1 ) ) ) ) = 0 ) ); + wr10: ( ( NOT ( SELF\characterized_object.description IN [ 'complex', 'rectangular'] ) ) OR ( SIZEOF( QUERY ( pds <* + QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) + | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) | ( NOT ( + SIZEOF( QUERY ( sa_occ <* USEDIN( pds, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) + | ( ( sa_occ.description = 'change in boundary occurrence' ) AND ( SIZEOF( QUERY ( fcr <* QUERY ( sar <* USEDIN( + sa_occ, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATING_SHAPE_ASPECT' ) | + ( ( sar.description = 'taper usage' ) AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF( sar ) ) ) ) | ( ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.TAPER' IN TYPEOF( fcr.related_shape_aspect ) ) AND ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.BOSS' IN TYPEOF( fcr.relating_shape_aspect ) ) AND ( fcr. + related_shape_aspect.description IN [ 'angle taper', 'directed taper'] ) ) ) ) = 1 ) ) ) ) <= 1 ) ) ) ) = 0 ) ); + wr11: ( ( NOT ( SELF\characterized_object.description = 'rectangular' ) ) OR ( SIZEOF( QUERY ( pds <* QUERY ( pd <* + USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) | ( NOT ( + SIZEOF( QUERY ( sa_occ <* USEDIN( pds, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) + | ( ( sa_occ.description = 'rectangular profile occurrence' ) AND ( SIZEOF( QUERY ( sdr <* QUERY ( sar <* USEDIN( + sa_occ, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT' ) | ( + ( sar.description = 'profile usage' ) AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF( sar ) ) ) ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'RECTANGULAR_CLOSED_PROFILE' IN TYPEOF( sdr.relating_shape_aspect ) ) ) ) = 1 ) ) ) ) = 1 ) ) ) ) = 0 ) ); + wr12: ( SIZEOF( QUERY ( pdr <* get_property_definition_representations( SELF ) | ( ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PLANAR_SHAPE_REPRESENTATION' IN TYPEOF( pdr. + used_representation ) ) AND ( pdr.used_representation.name = 'maximum feature limit' ) ) ) ) >= 0 ); + END_ENTITY; + + ENTITY boss_top + SUBTYPE OF ( shape_aspect ); + WHERE + wr1: ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FEATURE_COMPONENT_DEFINITION' IN TYPEOF( SELF.of_shape. + definition ) ); + wr2: ( SELF.description IN [ 'planar', 'complex'] ); + wr3: ( ( NOT ( SELF.description = 'planar' ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( + QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.' + + 'DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.DIRECTION_SHAPE_REPRESENTATION' IN + TYPEOF( pdr.used_representation ) ) ) ) = 1 ) ) ) ) = 0 ) ); + wr4: ( ( NOT ( SELF.description = 'planar' ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( + QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.' + + 'DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LOCATION_SHAPE_REPRESENTATION' IN + TYPEOF( pdr.used_representation ) ) ) ) = 1 ) ) ) ) = 0 ) ); + wr5: ( ( NOT ( SELF.description = 'complex' ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( + QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.' + + 'DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FACE_SHAPE_REPRESENTATION' IN TYPEOF( + pdr.used_representation ) ) ) ) = 1 ) ) ) ) = 0 ) ); + wr6: ( SIZEOF( QUERY ( fcr <* QUERY ( sar <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'SHAPE_ASPECT_RELATIONSHIP.' + 'RELATING_SHAPE_ASPECT' ) | ( ( sar.description = 'boss top usage' ) AND ( sar. + name IN [ 'boss height start', 'boss height end'] ) AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF( sar ) ) ) ) | ( ( fcr.related_shape_aspect.description = + 'top condition occurrence' ) AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.BOSS' IN TYPEOF( fcr. + related_shape_aspect.of_shape.definition ) ) AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.BOSS_TOP' IN + TYPEOF( fcr.relating_shape_aspect ) ) ) ) ) >= 1 ); + wr7: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + + 'DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) ) <= 1 ) ) ) ) = 0 ); + wr8: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + + 'DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. + used_representation ) ) ) | ( NOT ( SIZEOF( impl_rep.used_representation.items ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ); + wr9: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + + 'DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. + used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( SIZEOF( [ + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM' , + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( it ) ) = 2 ) AND ( it. + name = 'top radius' ) ) ) ) <= 1 ) ) ) ) = 0 ) ) ) ) = 0 ); + END_ENTITY; + + ENTITY bound_parameter_environment + SUBTYPE OF ( environment ); + WHERE + wr1: ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.BOUND_VARIATIONAL_PARAMETER' IN TYPEOF( SELF\environment. + syntactic_representation ) ) AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.INSTANCE_ATTRIBUTE_REFERENCE' + IN TYPEOF( SELF\environment.semantics ) ) ); + END_ENTITY; + + ENTITY bound_variable_semantics + SUBTYPE OF ( variable_semantics ); + END_ENTITY; + + ENTITY bound_variational_parameter + SUBTYPE OF ( variational_parameter ); + DERIVE + SELF\variational_parameter.parameter_current_value : maths_value := ?; + WHERE + wr1: ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.BOUND_PARAMETER_ENVIRONMENT' IN TYPEOF( SELF\generic_variable. + interpretation ) ); + END_ENTITY; + + ENTITY boundary_curve + SUBTYPE OF ( composite_curve_on_surface ); + WHERE + wr1: SELF\composite_curve.closed_curve; + END_ENTITY; + + ENTITY boundary_curve_of_b_spline_or_rectangular_composite_surface + SUBTYPE OF ( founded_item ); + basis_surface : b_spline_or_rectangular_composite_surface_select; + boundary_type : surface_boundary_type; + WHERE + wr1: ( SIZEOF( using_representations( SELF.basis_surface ) * relating_shape_representations_of_extreme_values( SELF ) ) > 0 ); + 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: ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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: ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ); + SELF\group_assignment.assigned_group : product_definition_element_relationship; + items : SET [1 : 1] OF product_definition_or_breakdown_element_usage; + 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 calculated_state + SUBTYPE OF ( state ); + 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 + SUPERTYPE OF ( + ONEOF ( + camera_image_2d_with_scale, + camera_image_3d_with_scale ) ) + SUBTYPE OF ( mapped_item ); + SELF\mapped_item.mapping_source : camera_usage; + SELF\mapped_item.mapping_target : planar_box; + WHERE + wr1: ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.GEOMETRIC_REPRESENTATION_ITEM' IN TYPEOF( SELF ) ); + END_ENTITY; + + ENTITY camera_image_2d_with_scale + SUBTYPE OF ( camera_image ); + DERIVE + scale : positive_ratio_measure := SELF\mapped_item.mapping_target\planar_extent.size_in_x / SELF\mapped_item. + mapping_source.mapping_origin\camera_model_d2.view_window\planar_extent.size_in_x; + WHERE + wr1: ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CAMERA_MODEL_D2' IN TYPEOF( SELF\mapped_item.mapping_source. + mapping_origin ) ); + wr2: ( aspect_ratio( SELF\mapped_item.mapping_target ) = aspect_ratio( SELF\mapped_item.mapping_source.mapping_origin\ + camera_model_d2.view_window ) ); + wr3: SELF\mapped_item.mapping_source.mapping_origin\camera_model_d2.view_window_clipping; + END_ENTITY; + + 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: ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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: ( ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'AXIS2_PLACEMENT_2D' ) IN TYPEOF( SELF\mapped_item. + mapping_target\planar_box.placement ) ) AND ( NOT ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'AXIS2_PLACEMENT_3D' ) IN TYPEOF( SELF\mapped_item.mapping_target\planar_box.placement ) ) ) ); + END_ENTITY; + + ENTITY camera_model + ABSTRACT SUPERTYPE OF ( + ONEOF ( + camera_model_d2, + camera_model_d3 ) ) + SUBTYPE OF ( geometric_representation_item ); + WHERE + wr1: ( ( SIZEOF( USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'ITEM_DEFINED_TRANSFORMATION.' + + 'TRANSFORM_ITEM_1' ) ) + SIZEOF( USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'REPRESENTATION_MAP.MAPPING_ORIGIN' ) ) ) > 0 ); + wr2: ( SIZEOF( USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'STYLED_ITEM.ITEM' ) ) = 0 ); + END_ENTITY; + + ENTITY camera_model_d2 + SUBTYPE OF ( camera_model ); + view_window : planar_box; + view_window_clipping : BOOLEAN; + WHERE + wr1: ( SELF\geometric_representation_item.dim = 2 ); + END_ENTITY; + + ENTITY camera_model_d3 + SUBTYPE OF ( camera_model ); + view_reference_system : axis2_placement_3d; + perspective_of_volume : view_volume; + WHERE + wr1: ( 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 ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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: ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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_complex_number_region + SUBTYPE OF ( maths_space, generic_literal ); + real_constraint : real_interval; + imag_constraint : real_interval; + WHERE + wr1: ( min_exists( real_constraint ) OR max_exists( real_constraint ) OR min_exists( imag_constraint ) OR max_exists( + imag_constraint ) ); + 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 ); + WHERE + wr1: ( scl > 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 cdgc_with_dimension + SUBTYPE OF ( curve_distance_geometric_constraint ); + distance_value : non_negative_length_measure; + END_ENTITY; + + ENTITY cell + SUPERTYPE OF ( + ONEOF ( + cell_of_structured_mesh, + vertex_defined_cell ) ) + SUBTYPE OF ( topological_representation_item ); + description : text; + dimension : INTEGER; + END_ENTITY; + + ENTITY cell_of_structured_mesh + SUBTYPE OF ( cell ); + the_mesh : structured_mesh; + cell_identifier : ARRAY [1 : index_count] OF INTEGER; + DERIVE + index_count : INTEGER := the_mesh\mesh.index_count; + END_ENTITY; + + ENTITY cell_with_explicit_boundary + SUBTYPE OF ( cell ); + boundary : SET [1 : ?] OF topological_representation_item; + END_ENTITY; + + ENTITY celsius_temperature_measure_with_unit + SUBTYPE OF ( measure_with_unit ); + WHERE + wr1: ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.THERMODYNAMIC_TEMPERATURE_UNIT' IN TYPEOF( SELF\ + measure_with_unit.unit_component ) ); + END_ENTITY; + + ENTITY centre_of_symmetry + SUBTYPE OF ( derived_shape_aspect ); + 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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'ROLE_ASSOCIATION.ITEM_WITH_ROLE' ) ) + <= 1 ); + END_ENTITY; + + ENTITY certification_type; + description : label; + END_ENTITY; + + ENTITY chain_based_geometric_item_specific_usage + SUBTYPE OF ( geometric_item_specific_usage, chain_based_item_identified_representation_usage ); + END_ENTITY; + + ENTITY chain_based_item_identified_representation_usage + SUBTYPE OF ( item_identified_representation_usage ); + nodes : LIST [2 : ?] OF UNIQUE representation; + undirected_link : LIST [1 : ?] OF chained_representation_link; + DERIVE + root : representation := nodes[1]; + SELF\item_identified_representation_usage.used_representation : representation := nodes[HIINDEX( nodes )]; + directed_link : LIST [1 : ?] OF representation_relationship := get_directed_link( nodes, + undirected_link ); + leaf : representation := SELF\item_identified_representation_usage.used_representation; + WHERE + wr1: EXISTS( directed_link ); + END_ENTITY; + + ENTITY chamfer + SUBTYPE OF ( transition_feature ); + WHERE + wr1: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + + 'DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'FACE_SHAPE_REPRESENTATION' IN TYPEOF( pdr.used_representation ) ) AND ( pdr.used_representation.name = + 'chamfer face' ) ) ) ) <= 1 ) ) ) ) = 0 ); + wr2: ( SIZEOF( QUERY ( fcr <* QUERY ( sar <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'SHAPE_ASPECT_RELATIONSHIP.RELATING_SHAPE_ASPECT' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF( sar ) ) ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'CHAMFER_OFFSET' IN TYPEOF( fcr.related_shape_aspect ) ) AND ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CHAMFER' IN TYPEOF( fcr.relating_shape_aspect ) ) AND ( fcr. + related_shape_aspect.description = 'first offset' ) ) ) ) = 1 ); + wr3: ( SIZEOF( QUERY ( fcr <* QUERY ( sar <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'SHAPE_ASPECT_RELATIONSHIP.RELATING_SHAPE_ASPECT' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF( sar ) ) ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'CHAMFER_OFFSET' IN TYPEOF( fcr.related_shape_aspect ) ) AND ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CHAMFER' IN TYPEOF( fcr.relating_shape_aspect ) ) AND ( fcr. + related_shape_aspect.description = 'second offset' ) ) ) ) = 1 ); + END_ENTITY; + + ENTITY chamfer_offset + SUBTYPE OF ( shape_aspect ); + WHERE + wr1: ( SELF.description IN [ 'first offset', 'second offset'] ); + wr2: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + + 'DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) ) = 1 ) ) ) ) = 0 ); + wr3: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + + 'DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. + used_representation ) ) ) | ( NOT ( SIZEOF( impl_rep.used_representation.items ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ); + wr4: ( ( NOT ( SELF.description = 'first offset' ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( + QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( + QUERY ( it <* impl_rep.used_representation.items | ( ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'MEASURE_REPRESENTATION_ITEM' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * + TYPEOF( it ) ) = 2 ) AND ( it.name = 'offset amount' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ) ); + wr5: ( ( NOT ( SELF.description = 'first offset' ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( + QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.' + + 'DEFINITION' ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FACE_SHAPE_REPRESENTATION' IN TYPEOF( + pdr.used_representation ) ) AND ( pdr.used_representation.name = 'first face shape' ) ) ) ) <= 1 ) ) ) ) = 0 ) ); + wr6: ( ( NOT ( SELF.description = 'second offset' ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( + QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( + QUERY ( it <* impl_rep.used_representation.items | ( ( ( SIZEOF( [ + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM' , + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( it ) ) = 2 ) AND ( it. + name = 'offset amount' ) ) OR ( ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'MEASURE_REPRESENTATION_ITEM' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'PLANE_ANGLE_MEASURE_WITH_UNIT' ] * TYPEOF( it ) ) = 2 ) AND ( it.name = 'offset angle' ) ) ) ) ) = 1 ) ) ) ) = + 0 ) ) ) ) = 0 ) ); + wr7: ( ( NOT ( SELF.description = 'second offset' ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( + QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.' + + 'DEFINITION' ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FACE_SHAPE_REPRESENTATION' IN TYPEOF( + pdr.used_representation ) ) AND ( pdr.used_representation.name = 'second face shape' ) ) ) ) <= 1 ) ) ) ) = 0 ) ); + wr8: ( SIZEOF( QUERY ( sdr <* QUERY ( sar <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF( sar ) ) ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'CHAMFER' IN TYPEOF( sdr.relating_shape_aspect ) ) AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'CHAMFER_OFFSET' IN TYPEOF( sdr.related_shape_aspect ) ) ) ) ) = 1 ); + END_ENTITY; + + ENTITY change + SUBTYPE OF ( action_assignment ); + items : SET [1 : ?] OF work_item; + END_ENTITY; + + ENTITY change_composition_relationship + SUBTYPE OF ( group_relationship ); + SELF\group_relationship.relating_group : change_group; + SELF\group_relationship.related_group : change_element; + DERIVE + composition : change_group := SELF\group_relationship.relating_group; + element : change_element := SELF\group_relationship.related_group; + END_ENTITY; + + ENTITY change_element + ABSTRACT SUPERTYPE OF ( + ONEOF ( + modify_element, + delete_element, + add_element ) ) + SUBTYPE OF ( group, characterized_object ); + END_ENTITY; + + ENTITY change_element_sequence + SUBTYPE OF ( group_relationship ); + SELF\group_relationship.relating_group : change_element; + SELF\group_relationship.related_group : change_element; + DERIVE + next : change_element := SELF\group_relationship.related_group; + previous : change_element := SELF\group_relationship.relating_group; + END_ENTITY; + + ENTITY change_group + SUBTYPE OF ( group ); + END_ENTITY; + + ENTITY change_group_assignment + SUBTYPE OF ( group_assignment ); + SELF\group_assignment.assigned_group : change_group; + item : change_relationship_select; + 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 <= baseline_ratio ) AND ( baseline_ratio <= 1 ) ); + wr2: item_in_context( SELF.character_box, SELF\representation.context_of_items ); + wr3: ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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_chain_based_item_within_representation + SUBTYPE OF ( characterized_item_within_representation ); + nodes : LIST [2 : ?] OF UNIQUE representation; + undirected_link : LIST [1 : ?] OF chained_representation_link; + DERIVE + root : representation := nodes[1]; + SELF\characterized_item_within_representation.rep : representation := nodes[HIINDEX( nodes )]; + directed_link : LIST [1 : ?] OF representation_relationship := get_directed_link( nodes, + undirected_link ); + leaf : representation := SELF\characterized_item_within_representation.rep; + WHERE + wr1: EXISTS( directed_link ); + END_ENTITY; + + ENTITY characterized_class + SUBTYPE OF ( characterized_object, class ); + END_ENTITY; + + ENTITY characterized_item_within_representation + SUBTYPE OF ( characterized_object ); + item : representation_item; + rep : representation; + UNIQUE + wr1 : item, rep; + WHERE + wr2: ( rep IN using_representations( item ) ); + END_ENTITY; + + ENTITY characterized_object; + name : label; + description : OPTIONAL text; + END_ENTITY; + + ENTITY characterized_representation + SUBTYPE OF ( representation, characterized_object ); + DERIVE + SELF\characterized_object.name : label := SELF\representation.name; + SELF\characterized_object.description : text := SELF\representation.description; + END_ENTITY; + + ENTITY circle + SUBTYPE OF ( conic ); + radius : positive_length_measure; + END_ENTITY; + + ENTITY circular_area + SUBTYPE OF ( primitive_2d ); + centre : cartesian_point; + radius : positive_length_measure; + END_ENTITY; + + ENTITY circular_closed_profile + SUBTYPE OF ( shape_aspect ); + WHERE + wr1: ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FEATURE_COMPONENT_DEFINITION' IN TYPEOF( SELF.of_shape. + definition ) ); + wr2: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + + 'DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) ) = 1 ) ) ) ) = 0 ); + wr3: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + + 'DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. + used_representation ) ) ) | ( NOT ( SIZEOF( impl_rep.used_representation.items ) = 2 ) ) ) ) = 0 ) ) ) ) = 0 ); + wr4: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + + 'DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. + used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PLACEMENT' IN TYPEOF( it ) ) AND ( it.name = 'orientation' ) ) ) ) + = 1 ) ) ) ) = 0 ) ) ) ) = 0 ); + wr5: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + + 'DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. + used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( SIZEOF( [ + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM' , + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( it ) ) = 2 ) AND ( it. + name = 'diameter' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ); + END_ENTITY; + + ENTITY circular_path + SUBTYPE OF ( path_node ); + via_point : cartesian_point; + END_ENTITY; + + ENTITY circular_pattern + SUBTYPE OF ( replicate_feature ); + WHERE + wr1: ( SIZEOF( QUERY ( pds <* QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) | ( NOT ( SIZEOF( QUERY ( sa_occ <* USEDIN( pds, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) | ( SIZEOF( QUERY ( sdr <* + QUERY ( sar <* USEDIN( sa_occ, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.' + + 'RELATING_SHAPE_ASPECT' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP' + IN TYPEOF( sar ) ) ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT' IN TYPEOF( sdr. + related_shape_aspect ) ) ) ) = 1 ) ) ) <= 3 ) ) ) ) = 0 ); + wr2: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + + 'DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) ) = 1 ) ) ) ) = 0 ); + wr3: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + + 'DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. + used_representation ) ) ) | ( NOT ( ( SIZEOF( impl_rep.used_representation.items ) >= 3 ) AND ( SIZEOF( impl_rep. + used_representation.items ) <= 5 ) ) ) ) ) = 0 ) ) ) ) = 0 ); + wr4: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + + 'DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. + used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( SIZEOF( [ + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM' , + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( it ) ) = 2 ) AND ( it. + name = 'diameter' ) ) ) ) <= 1 ) ) ) ) = 0 ) ) ) ) = 0 ); + wr5: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + + 'DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. + used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( SIZEOF( [ + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM' , + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PLANE_ANGLE_MEASURE_WITH_UNIT' ] * TYPEOF( it ) ) = 2 ) AND ( + it.name = 'base feature rotation' ) ) ) ) <= 1 ) ) ) ) = 0 ) ) ) ) = 0 ); + wr6: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + + 'DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. + used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM' IN TYPEOF( it ) ) AND ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.COUNT_MEASURE' IN TYPEOF( it\measure_with_unit. + value_component ) ) AND ( it.name = 'number of features' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ); + wr7: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + + 'DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. + used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( SIZEOF( [ + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM' , + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PLANE_ANGLE_MEASURE_WITH_UNIT' ] * TYPEOF( it ) ) = 2 ) AND ( + it.name = 'angular spacing' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ); + wr8: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + + 'DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. + used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PLACEMENT' IN TYPEOF( it ) ) AND ( it.name = 'orientation' ) ) ) ) + = 1 ) ) ) ) = 0 ) ) ) ) = 0 ); + END_ENTITY; + + ENTITY circular_runout_tolerance + SUBTYPE OF ( geometric_tolerance_with_datum_reference ); + 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 ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRODUCT_DEFINITION' IN + TYPEOF( i ) ) ) ) ) = 0 ); + wr3: ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 clgc_with_dimension + SUBTYPE OF ( curve_length_geometric_constraint ); + length_value : positive_length_measure; + END_ENTITY; + + ENTITY closed_curve_style_parameters + SUBTYPE OF ( curve_style_parameters_representation ); + END_ENTITY; + + ENTITY closed_path_profile + SUBTYPE OF ( shape_aspect ); + WHERE + wr1: ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FEATURE_COMPONENT_DEFINITION' IN TYPEOF( SELF.of_shape. + definition ) ); + wr2: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + + 'DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) ) = 1 ) ) ) ) = 0 ); + wr3: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + + 'DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. + used_representation ) ) ) | ( NOT ( SIZEOF( impl_rep.used_representation.items ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ); + wr4: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + + 'DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. + used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PLACEMENT' IN TYPEOF( it ) ) AND ( it.name = 'orientation' ) ) ) ) + = 1 ) ) ) ) = 0 ) ) ) ) = 0 ); + wr5: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + + 'DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'PATH_SHAPE_REPRESENTATION' IN TYPEOF( pdr.used_representation ) ) ) ) = 1 ) ) ) ) = 0 ); + END_ENTITY; + + ENTITY closed_shell + SUBTYPE OF ( connected_face_set ); + END_ENTITY; + + ENTITY coaxial_assembly_constraint + SUBTYPE OF ( binary_assembly_constraint, coaxial_geometric_constraint ); + END_ENTITY; + + ENTITY coaxial_geometric_constraint + SUBTYPE OF ( explicit_geometric_constraint ); + SELF\explicit_constraint.constrained_elements : SET [1 : ?] OF axial_geometry_constraint_element; + SELF\explicit_constraint.reference_elements : SET [0 : 1] OF axial_geometry_constraint_element; + WHERE + wr1: ( SIZEOF( QUERY ( q <* SELF\explicit_constraint.reference_elements | ( SIZEOF( TYPEOF( q ) * [ + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.POINT' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'PLANE' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SPHERICAL_SURFACE', + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SPHERE' ] ) > 0 ) ) ) = 0 ); + END_ENTITY; + + ENTITY coaxiality_tolerance + SUBTYPE OF ( geometric_tolerance_with_datum_reference ); + END_ENTITY; + + ENTITY collection + SUBTYPE OF ( product ); + END_ENTITY; + + ENTITY collection_assignment + SUBTYPE OF ( applied_group_assignment ); + END_ENTITY; + + ENTITY collection_membership + SUBTYPE OF ( applied_group_assignment ); + END_ENTITY; + + ENTITY collection_relationship + SUBTYPE OF ( product_relationship ); + SELF\product_relationship.relating_product : collection; + SELF\product_relationship.related_product : collection; + DERIVE + related_collection : collection := SELF\product_relationship.related_product; + relating_collection : collection := SELF\product_relationship.relating_product; + END_ENTITY; + + ENTITY collection_version + SUBTYPE OF ( product_definition_formation ); + SELF\product_definition_formation.of_product : collection; + DERIVE + of_collection : collection := SELF\product_definition_formation.of_product; + END_ENTITY; + + ENTITY collection_version_relationship + SUBTYPE OF ( product_definition_formation_relationship ); + SELF\product_definition_formation_relationship.relating_product_definition_formation : collection_version; + SELF\product_definition_formation_relationship.related_product_definition_formation : collection_version; + DERIVE + related_version : collection_version := SELF\product_definition_formation_relationship. + related_product_definition_formation; + relating_version : collection_version := SELF\product_definition_formation_relationship. + relating_product_definition_formation; + END_ENTITY; + + ENTITY collection_version_sequence_relationship + SUBTYPE OF ( product_definition_formation_relationship ); + SELF\product_definition_formation_relationship.relating_product_definition_formation : collection_version; + SELF\product_definition_formation_relationship.related_product_definition_formation : collection_version; + DERIVE + predecessor : collection_version := SELF\product_definition_formation_relationship.relating_product_definition_formation; + successor : collection_version := SELF\product_definition_formation_relationship.related_product_definition_formation; + END_ENTITY; + + ENTITY collection_view_definition + SUBTYPE OF ( product_definition ); + SELF\product_definition.formation : collection_version; + DERIVE + defined_version : collection_version := SELF\product_definition.formation; + END_ENTITY; + + ENTITY colour; + END_ENTITY; + + ENTITY colour_rgb + SUBTYPE OF ( colour_specification ); + red : REAL; + green : REAL; + blue : REAL; + WHERE + wr1: ( ( 0 <= red ) AND ( red <= 1 ) ); + wr2: ( ( 0 <= green ) AND ( green <= 1 ) ); + wr3: ( ( 0 <= blue ) AND ( blue <= 1 ) ); + END_ENTITY; + + 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 ( ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.DATUM' IN TYPEOF( sar.related_shape_aspect ) ) AND ( NOT ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.COMMON_DATUM' IN TYPEOF( sar.related_shape_aspect ) ) ) ) ) ) ) + = 0 ); + END_ENTITY; + + ENTITY comparison_equal + SUBTYPE OF ( comparison_expression ); + END_ENTITY; + + ENTITY comparison_expression + ABSTRACT SUPERTYPE OF ( + ONEOF ( + comparison_equal, + comparison_greater, + comparison_greater_equal, + comparison_less, + comparison_less_equal, + comparison_not_equal, + like_expression ) ) + SUBTYPE OF ( boolean_expression, binary_generic_expression ); + SELF\binary_generic_expression.operands : LIST [2 : 2] OF expression; + WHERE + wr1: ( ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.NUMERIC_EXPRESSION' IN TYPEOF( SELF\ + binary_generic_expression.operands[1] ) ) AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'NUMERIC_EXPRESSION' IN TYPEOF( SELF\binary_generic_expression.operands[2] ) ) ) OR ( ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.BOOLEAN_EXPRESSION' IN TYPEOF( SELF\binary_generic_expression + .operands[1] ) ) AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.BOOLEAN_EXPRESSION' IN TYPEOF( SELF\ + binary_generic_expression.operands[2] ) ) ) OR ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'STRING_EXPRESSION' IN TYPEOF( SELF\binary_generic_expression.operands[1] ) ) AND ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.STRING_EXPRESSION' IN TYPEOF( SELF\binary_generic_expression. + operands[2] ) ) ) ); + END_ENTITY; + + ENTITY comparison_greater + SUBTYPE OF ( comparison_expression ); + END_ENTITY; + + ENTITY comparison_greater_equal + SUBTYPE OF ( comparison_expression ); + END_ENTITY; + + ENTITY comparison_less + SUBTYPE OF ( comparison_expression ); + END_ENTITY; + + ENTITY comparison_less_equal + SUBTYPE OF ( comparison_expression ); + END_ENTITY; + + ENTITY comparison_not_equal + SUBTYPE OF ( comparison_expression ); + END_ENTITY; + + ENTITY complex_area + ABSTRACT SUPERTYPE OF ( + path_area_with_parameters + ANDOR + primitive_2d_with_inner_boundary ) + SUBTYPE OF ( primitive_2d ); + 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_number_literal + SUBTYPE OF ( generic_literal ); + real_part : REAL; + imag_part : REAL; + END_ENTITY; + + ENTITY complex_number_literal_polar + SUBTYPE OF ( complex_number_literal ); + modulus : REAL; + argument : REAL; + DERIVE + SELF\complex_number_literal.real_part : REAL := modulus * COS( argument ); + SELF\complex_number_literal.imag_part : REAL := modulus * SIN( argument ); + WHERE + wr1: ( modulus >= 0 ); + wr2: ( ( 0 <= argument ) AND ( argument <= ( 2 * PI ) ) ); + 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 complex_triangulated_face + SUBTYPE OF ( tessellated_face ); + pnindex : LIST [0 : ?] OF INTEGER; + triangle_strips : LIST [0 : ?] OF LIST [3 : ?] OF INTEGER; + triangle_fans : LIST [0 : ?] OF LIST [3 : ?] OF INTEGER; + WHERE + wr1: ( ( SIZEOF( pnindex ) = 0 ) OR ( SIZEOF( pnindex ) = SELF\tessellated_face.pnmax ) ); + wr2: ( NOT ( ( SIZEOF( pnindex ) = 0 ) AND ( SELF\tessellated_face.pnmax <> coordinates.npoints ) ) ); + wr3: ( NOT ( ( SIZEOF( triangle_strips ) = 0 ) AND ( SIZEOF( triangle_fans ) = 0 ) ) ); + END_ENTITY; + + ENTITY complex_triangulated_surface_set + SUBTYPE OF ( tessellated_surface_set ); + pnindex : LIST [0 : ?] OF INTEGER; + triangle_strips : LIST [0 : ?] OF LIST [3 : ?] OF INTEGER; + triangle_fans : LIST [0 : ?] OF LIST [3 : ?] OF INTEGER; + WHERE + wr1: ( ( SIZEOF( pnindex ) = 0 ) OR ( SIZEOF( pnindex ) = SELF\tessellated_surface_set.pnmax ) ); + wr2: ( NOT ( ( SIZEOF( pnindex ) = 0 ) AND ( SELF\tessellated_surface_set.pnmax <> coordinates.npoints ) ) ); + wr3: ( NOT ( ( SIZEOF( triangle_strips ) = 0 ) AND ( SIZEOF( triangle_fans ) = 0 ) ) ); + END_ENTITY; + + ENTITY component_definition + SUBTYPE OF ( product_definition, product_definition_relationship ); + DERIVE + SELF\product_definition_relationship.related_product_definition : component_definition := SELF; + WHERE + wr1: ( NOT EXISTS( SELF\product_definition_relationship.description ) ); + wr2: ( NOT EXISTS( SELF\property_definition.description ) ); + wr3: ( SELF\product_definition_relationship.id = SELF\product_definition.id ); + wr4: ( SELF\product_definition_relationship.name = 'definition usage' ); + wr5: ( NOT ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PRODUCT_DEFINITION_USAGE' ) IN TYPEOF( SELF ) ) ); + END_ENTITY; + + ENTITY component_feature + SUBTYPE OF ( shape_aspect ); + SELF\shape_aspect.of_shape : assembly_component; + END_ENTITY; + + ENTITY component_feature_joint + SUBTYPE OF ( shape_aspect_relationship, shape_aspect ); + SELF\shape_aspect_relationship.relating_shape_aspect : component_feature; + SELF\shape_aspect_relationship.related_shape_aspect : component_feature; + END_ENTITY; + + ENTITY component_feature_relationship + SUBTYPE OF ( shape_aspect_relationship ); + SELF\shape_aspect_relationship.relating_shape_aspect : component_feature; + SELF\shape_aspect_relationship.related_shape_aspect : component_feature; + WHERE + wr1: ( SELF\shape_aspect_relationship.related_shape_aspect :<>: SELF\shape_aspect_relationship.relating_shape_aspect ); + END_ENTITY; + + ENTITY component_mating_constraint_condition + SUBTYPE OF ( shape_aspect ); + UNIQUE + ur1 : SELF\shape_aspect.name, SELF\shape_aspect.of_shape; + END_ENTITY; + + ENTITY component_path_shape_aspect + SUBTYPE OF ( shape_aspect ); + location : multi_or_next_assembly_usage_occurrence; + component_shape_aspect : internal_or_reflected_shape_aspect; + UNIQUE + ur1 : location, component_shape_aspect; + END_ENTITY; + + ENTITY component_terminal + SUBTYPE OF ( component_feature ); + END_ENTITY; + + ENTITY composite_assembly_sequence_definition + SUBTYPE OF ( product_definition ); + WHERE + wr1: ( SIZEOF( QUERY ( pdr <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'PRODUCT_DEFINITION_RELATIONSHIP.' + 'RELATING_PRODUCT_DEFINITION' ) | ( ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 + n_segments : INTEGER := SIZEOF( segments ); + closed_curve : LOGICAL := segments[n_segments].transition <> discontinuous; + WHERE + wr1: ( ( ( NOT closed_curve ) AND ( SIZEOF( QUERY ( temp <* segments | ( temp.transition = discontinuous ) ) ) = 1 ) ) OR + ( closed_curve AND ( SIZEOF( QUERY ( temp <* segments | ( temp.transition = discontinuous ) ) ) = 0 ) ) ); + END_ENTITY; + + ENTITY composite_curve_on_surface + SUPERTYPE OF ( + boundary_curve ) + SUBTYPE OF ( composite_curve ); + DERIVE + basis_surface : SET [0 : 2] OF surface := get_basis_surface( SELF ); + WHERE + wr1: ( SIZEOF( basis_surface ) > 0 ); + wr2: constraints_composite_curve_on_surface( SELF ); + END_ENTITY; + + ENTITY composite_curve_segment + SUBTYPE OF ( founded_item ); + transition : transition_code; + same_sense : BOOLEAN; + parent_curve : curve; + INVERSE + using_curves : BAG [1 : ?] OF composite_curve FOR segments; + WHERE + wr1: ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.BOUNDED_CURVE' IN TYPEOF( parent_curve ) ); + END_ENTITY; + + ENTITY composite_curve_transition_locator + SUBTYPE OF ( founded_item ); + basis_curve : composite_curve; + transition_index : INTEGER; + WHERE + wr1: ( SIZEOF( using_representations( SELF.basis_curve ) * relating_shape_representations_of_extreme_values( SELF ) ) > 0 ); + END_ENTITY; + + ENTITY composite_group_shape_aspect + SUBTYPE OF ( composite_shape_aspect ); + END_ENTITY; + + ENTITY composite_hole + SUBTYPE OF ( compound_feature ); + WHERE + wr1: ( SELF\characterized_object.description IN [ 'counterbore', 'countersunk'] ); + wr2: ( SIZEOF( QUERY ( pds <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + + 'DEFINITION' ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF( + pds ) ) AND ( SIZEOF( QUERY ( csa <* USEDIN( pds, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT.' + + 'OF_SHAPE' ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.COMPOSITE_SHAPE_ASPECT' IN TYPEOF( csa ) ) + AND ( SIZEOF( QUERY ( sar <* csa.component_relationships | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF( sar ) ) AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'ROUND_HOLE' IN TYPEOF( sar.related_shape_aspect ) ) ) ) ) = 2 ) ) ) ) = 1 ) ) ) ) = 1 ); + wr3: ( ( NOT ( SELF\characterized_object.description = 'countersunk' ) ) OR ( SIZEOF( QUERY ( pds <* USEDIN( SELF, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pds ) ) AND ( SIZEOF( + QUERY ( csa <* USEDIN( pds, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) | ( ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.COMPOSITE_SHAPE_ASPECT' IN TYPEOF( csa ) ) AND ( SIZEOF( + QUERY ( sar <* csa.component_relationships | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ROUND_HOLE' IN + TYPEOF( sar.related_shape_aspect ) ) AND ( NOT ( SIZEOF( QUERY ( pds <* QUERY ( pd <* USEDIN( sar. + related_shape_aspect, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) | ( NOT ( + SIZEOF( QUERY ( sa_occ <* USEDIN( pds, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) + | ( ( sa_occ.description = 'change in diameter occurrence' ) AND ( SIZEOF( QUERY ( fcr2 <* QUERY ( sar2 <* USEDIN( + sa_occ, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATING_SHAPE_ASPECT' ) | ( + ( sar2.description = 'taper usage' ) AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF( sar2 ) ) ) ) | ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.TAPER' IN TYPEOF( fcr2.related_shape_aspect ) ) ) ) = 1 ) ) ) ) + = 0 ) ) ) ) = 0 ) ) ) ) ) = 1 ) ) ) ) = 1 ) ) ) ) = 1 ) ); + END_ENTITY; + + ENTITY composite_material_designation + SUBTYPE OF ( material_designation ); + END_ENTITY; + + ENTITY composite_shape_aspect + SUPERTYPE OF ( + ONEOF ( + continuous_shape_aspect, + common_datum, + composite_group_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( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'GEOMETRICALLY_BOUNDED_SURFACE_SHAPE_REPRESENTATION' , + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 composite_unit_shape_aspect + SUBTYPE OF ( composite_shape_aspect ); + END_ENTITY; + + ENTITY compound_feature + SUBTYPE OF ( feature_definition ); + WHERE + wr1: ( SIZEOF( QUERY ( pds <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + + 'DEFINITION' ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF( + pds ) ) AND ( SIZEOF( QUERY ( csa <* USEDIN( pds, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT.' + + 'OF_SHAPE' ) | ( ( csa.name = 'compound feature in solid' ) AND ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.COMPOSITE_SHAPE_ASPECT' IN TYPEOF( csa ) ) ) ) ) = 1 ) ) ) ) + = 1 ); + wr2: ( SIZEOF( QUERY ( pds <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + + 'DEFINITION' ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF( + pds ) ) AND ( SIZEOF( QUERY ( csa <* USEDIN( pds, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT.' + + 'OF_SHAPE' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.COMPOSITE_SHAPE_ASPECT' IN TYPEOF( csa ) ) ) ) + = 1 ) ) ) ) = 1 ); + wr3: ( SIZEOF( QUERY ( pds <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + + 'DEFINITION' ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF( + pds ) ) AND ( SIZEOF( QUERY ( csa <* USEDIN( pds, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT.' + + 'OF_SHAPE' ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.COMPOSITE_SHAPE_ASPECT' IN TYPEOF( csa ) ) + AND ( SIZEOF( QUERY ( fcr <* csa.component_relationships | ( NOT ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF( fcr ) ) ) ) ) = 0 ) ) ) ) + = 1 ) ) ) ) = 1 ); + wr4: ( SIZEOF( QUERY ( pds <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + + 'DEFINITION' ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF( + pds ) ) AND ( SIZEOF( QUERY ( csa <* USEDIN( pds, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT.' + + 'OF_SHAPE' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.COMPOSITE_SHAPE_ASPECT' IN TYPEOF( csa ) ) ) ) + = 1 ) ) ) ) = 1 ); + wr5: ( SIZEOF( QUERY ( pds <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + + 'DEFINITION' ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF( + pds ) ) AND ( SIZEOF( QUERY ( csa <* USEDIN( pds, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT.' + + 'OF_SHAPE' ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.COMPOSITE_SHAPE_ASPECT' IN TYPEOF( csa ) ) + AND ( SIZEOF( QUERY ( sar <* csa.component_relationships | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'THREAD' IN TYPEOF( sar.related_shape_aspect ) ) ) ) = 0 ) ) ) ) = 1 ) ) ) ) = 1 ); + wr6: ( SIZEOF( QUERY ( pds <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + + 'DEFINITION' ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF( + pds ) ) AND ( SIZEOF( QUERY ( csa <* USEDIN( pds, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT.' + + 'OF_SHAPE' ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.COMPOSITE_SHAPE_ASPECT' IN TYPEOF( csa ) ) + AND ( SIZEOF( QUERY ( sar <* csa.component_relationships | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'COMPOUND_FEATURE' IN TYPEOF( sar.related_shape_aspect ) ) AND ( sar.related_shape_aspect\characterized_object. + name <> SELF\characterized_object.name ) ) ) ) = 0 ) ) ) ) = 1 ) ) ) ) = 1 ); + END_ENTITY; + + ENTITY compound_representation_item + SUPERTYPE OF ( + ONEOF ( + point_and_vector, + point_path ) + ANDOR + ONEOF ( + 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: ( ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'EDGE_BASED_WIREFRAME_MODEL' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'FACE_BASED_SURFACE_MODEL', + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'MAPPED_ITEM', + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'AXIS2_PLACEMENT_3D'] * TYPEOF( cbsr_i ) ) <> 1 ) ) ) = 0 ); + wr3: ( SIZEOF( QUERY ( cbsr_i <* SELF.items | ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'EDGE_BASED_WIREFRAME_MODEL' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'FACE_BASED_SURFACE_MODEL', + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'MAPPED_ITEM'] * TYPEOF( cbsr_i ) ) = 1 ) ) ) > 0 ); + wr4: ( SIZEOF( QUERY ( cbsr_i <* SELF.items | ( ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'MAPPED_ITEM' ) + IN TYPEOF( cbsr_i ) ) AND ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'COMPOUND_SHAPE_REPRESENTATION' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'EDGE_BASED_WIREFRAME_SHAPE_REPRESENTATION' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'NON_MANIFOLD_SURFACE_SHAPE_REPRESENTATION' ] * TYPEOF( cbsr_i\mapped_item.mapping_source ) ) <> 1 ) ) ) ) = 0 ); + END_ENTITY; + + ENTITY concat_expression + SUBTYPE OF ( string_expression, multiple_arity_generic_expression ); + SELF\multiple_arity_generic_expression.operands : LIST [2 : ?] OF string_expression; + END_ENTITY; + + ENTITY concentricity_tolerance + SUBTYPE OF ( geometric_tolerance_with_datum_reference ); + 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: ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 + name : label := get_name_value( SELF ); + description : text := get_description_value( SELF ); + UNIQUE + ur1 : configuration, design; + WHERE + wr1: ( SIZEOF( USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'NAME_ATTRIBUTE.NAMED_ITEM' ) ) <= 1 ); + wr2: ( SIZEOF( USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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: ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 | ( ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 | ( ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'EFFECTIVITY_CONTEXT_ASSIGNMENT.ASSIGNED_EFFECTIVITY_ASSIGNMENT' ) | ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CONFIGURED_EFFECTIVITY_CONTEXT_ASSIGNMENT' IN TYPEOF( x ) ) ) ) + = 1 ); + END_ENTITY; + + ENTITY configured_effectivity_context_assignment + SUBTYPE OF ( effectivity_context_assignment ); + SELF\effectivity_context_assignment.assigned_effectivity_assignment : configured_effectivity_assignment; + items : SET [1 : ?] OF configured_effectivity_context_item; + 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 ); + 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 connection_zone_based_assembly_joint + SUBTYPE OF ( assembly_joint ); + END_ENTITY; + + ENTITY connection_zone_interface_plane_relationship + SUBTYPE OF ( shape_aspect, shape_aspect_relationship ); + UNIQUE + ur1 : SELF\shape_aspect_relationship.name; + END_ENTITY; + + ENTITY constant_function + SUBTYPE OF ( maths_function, generic_literal ); + sole_output : maths_value; + source_of_domain : maths_space_or_function; + WHERE + wr1: no_cyclic_domain_reference( source_of_domain, [SELF] ); + wr2: expression_is_constant( domain_from( source_of_domain ) ); + END_ENTITY; + + ENTITY constant_surface_3d_element_coordinate_system + SUBTYPE OF ( fea_representation_item ); + axis : INTEGER; + angle : plane_angle_measure; + WHERE + wr1: ( ( axis >= 1 ) AND ( axis <= 2 ) ); + END_ENTITY; + + ENTITY constrained_kinematic_motion_representation + SUBTYPE OF ( representation_relationship_with_transformation ); + SELF\representation_relationship.rep_1 : representative_shape_representation; + SELF\representation_relationship.rep_2 : representative_shape_representation; + WHERE + wr1: ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.AXIS2_PLACEMENT_3D' IN TYPEOF( SELF\ + representation_relationship_with_transformation.transformation_operator\item_defined_transformation. + transform_item_1 ) ) AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.AXIS2_PLACEMENT_3D' IN TYPEOF( SELF\ + representation_relationship_with_transformation.transformation_operator\item_defined_transformation. + transform_item_2 ) ) ); + wr2: ( ( dimension_of( SELF\representation_relationship_with_transformation.transformation_operator\ + item_defined_transformation.transform_item_1 ) = 3 ) AND ( dimension_of( SELF\ + representation_relationship_with_transformation.transformation_operator\item_defined_transformation. + transform_item_2 ) = 3 ) ); + wr3: ( ( SELF\representation_relationship.rep_1 IN ( using_representations( SELF\ + representation_relationship_with_transformation.transformation_operator\item_defined_transformation. + transform_item_1 ) + using_representation_with_mapping( SELF\representation_relationship_with_transformation. + transformation_operator\item_defined_transformation.transform_item_1 ) ) ) AND ( SELF\representation_relationship. + rep_2 IN ( using_representations( SELF\representation_relationship_with_transformation.transformation_operator\ + item_defined_transformation.transform_item_2 ) + using_representation_with_mapping( SELF\ + representation_relationship_with_transformation.transformation_operator\item_defined_transformation. + transform_item_2 ) ) ) ); + wr4: ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.KINEMATIC_PAIR' IN TYPEOF( SELF\ + representation_relationship_with_transformation.transformation_operator ) ); + END_ENTITY; + + ENTITY constraint_element + SUPERTYPE OF ( + ONEOF ( + single_point_constraint_element, + linear_constraint_equation_element, + nodal_dof_reduction, + point_constraint, + curve_constraint, + surface_constraint, + solid_constraint ) ); + element_id : identifier; + steps : SET [1 : ?] OF control_analysis_step; + END_ENTITY; + + ENTITY constructive_geometry_representation + SUBTYPE OF ( representation ); + WHERE + wr1: ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.GEOMETRIC_REPRESENTATION_CONTEXT' IN TYPEOF( SELF. + context_of_items ) ) AND ( 2 <= SELF.context_of_items\geometric_representation_context.coordinate_space_dimension ) + AND ( SELF.context_of_items\geometric_representation_context.coordinate_space_dimension <= 3 ) ); + wr2: ( SIZEOF( QUERY ( cgr_i <* SELF.items | ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PLACEMENT', + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CURVE' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'EDGE' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FACE', + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.POINT' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'SURFACE' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FACE_SURFACE', + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.VERTEX_POINT' ] * TYPEOF( cgr_i ) ) <> 1 ) ) ) = 0 ); + wr3: ( SIZEOF( USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'REPRESENTATION_RELATIONSHIP.REP_2' ) ) + > 0 ); + wr4: ( SIZEOF( USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.GEOMETRIC_REPRESENTATION_CONTEXT' IN TYPEOF( SELF.rep_1. + context_of_items ) ) ); + wr2: ( NOT ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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( [ + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'MEASURE_REPRESENTATION_ITEM', + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'VALUE_RANGE'] * TYPEOF( i ) ) = 1 ) AND ( i.name = + 'ratio value' ) ) ) ) = 1 ) ); + wr2: ( ( SIZEOF( QUERY ( pdr <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION_REPRESENTATION.' + 'USED_REPRESENTATION' ) | ( pdr\property_definition_representation.name = + 'contact ratio reference' ) ) ) = 1 ) AND ( SIZEOF( QUERY ( pdr <* USEDIN( SELF, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.' + + 'USED_REPRESENTATION' ) | ( ( pdr\property_definition_representation.name = 'contact ratio reference' ) AND ( ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PRODUCT_DEFINITION' ) IN TYPEOF( pdr\ + property_definition_representation.definition\property_definition.definition ) ) ) ) ) = 1 ) ); + wr3: ( ( SIZEOF( USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.' + + 'USED_REPRESENTATION' ) ) = 1 ) AND ( SIZEOF( QUERY ( pdr <* USEDIN( SELF, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.' + + 'USED_REPRESENTATION' ) | ( SIZEOF( QUERY ( gpa <* USEDIN( pdr.definition, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'GENERAL_PROPERTY_ASSOCIATION.' + 'DERIVED_DEFINITION' ) + | ( ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'GENERAL_PROPERTY' ) IN TYPEOF( gpa\ + general_property_association.base_definition ) ) AND ( gpa\general_property_association.base_definition\ + general_property.name = 'surface_condition' ) ) ) ) = 1 ) ) ) = 1 ) ); + END_ENTITY; + + ENTITY contacting_feature + SUBTYPE OF ( shape_aspect ); + WHERE + wr1: ( SELF\shape_aspect.product_definitional = FALSE ); + END_ENTITY; + + ENTITY context_dependent_invisibility + SUBTYPE OF ( invisibility ); + presentation_context : invisibility_context; + END_ENTITY; + + ENTITY context_dependent_kinematic_link_representation; + representation_relation : kinematic_link_representation_association; + represented_product_relation : product_definition_relationship_kinematics; + 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 | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'REPRESENTATION_ITEM' IN TYPEOF( sc ) ) ) ) = 1 ) OR ( SIZEOF( QUERY ( sc <* SELF.style_context | ( ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MAPPED_ITEM' IN TYPEOF( sc ) ) OR ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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: ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRODUCT_DEFINITION_RELATIONSHIP' IN TYPEOF( SELF. + represented_product_relation.definition ) ); + wr2: ( SIZEOF( USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'DESCRIPTION_ATTRIBUTE.DESCRIBED_ITEM' ) ) + <= 1 ); + wr3: ( SIZEOF( USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'NAME_ATTRIBUTE.NAMED_ITEM' ) ) <= 1 ); + END_ENTITY; + + ENTITY context_dependent_unit + SUBTYPE OF ( named_unit ); + name : label; + END_ENTITY; + + ENTITY continuous_shape_aspect + SUPERTYPE OF ( + ONEOF ( + between_shape_aspect, + all_around_shape_aspect ) ) + SUBTYPE OF ( composite_shape_aspect ); + 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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 control; + model_ref : fea_model; + control_id : identifier; + creating_software : text; + description : text; + user_defined_control : SET [1 : ?] OF text; + intended_analysis_code : SET [1 : ?] OF text; + UNIQUE + ur1 : model_ref, control_id; + END_ENTITY; + + ENTITY control_analysis_step + SUPERTYPE OF ( + ONEOF ( + control_linear_static_analysis_step, + control_linear_modes_and_frequencies_analysis_step ) ) + SUBTYPE OF ( analysis_step ); + step_id : identifier; + sequence : INTEGER; + initial_state : state; + description : text; + UNIQUE + ur1 : SELF\analysis_step.analysis_control, sequence; + ur2 : SELF\analysis_step.analysis_control, step_id; + END_ENTITY; + + ENTITY control_linear_modes_and_frequencies_analysis_step + SUBTYPE OF ( control_analysis_step ); + process : control_linear_modes_and_frequencies_process; + number_of_modes : count_measure; + frequency_range : ARRAY [1 : 2] OF context_dependent_measure; + END_ENTITY; + + ENTITY control_linear_modes_and_frequencies_process + SUBTYPE OF ( control_process ); + final_input_state : state; + END_ENTITY; + + ENTITY control_linear_static_analysis_step + SUBTYPE OF ( control_analysis_step ); + process : control_linear_static_load_increment_process; + END_ENTITY; + + ENTITY control_linear_static_analysis_step_with_harmonic + SUBTYPE OF ( control_linear_static_analysis_step ); + symmetry : cylindrical_symmetry_control; + END_ENTITY; + + ENTITY control_linear_static_load_increment_process + SUBTYPE OF ( control_process ); + final_input_state : state; + END_ENTITY; + + ENTITY control_process + SUPERTYPE OF ( + ONEOF ( + control_linear_static_load_increment_process, + control_linear_modes_and_frequencies_process ) ); + process_id : identifier; + description : text; + END_ENTITY; + + ENTITY control_result_relationship; + control : control_analysis_step; + result : result_analysis_step; + 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 ) AND ( hour_offset < 24 ) ); + wr2: ( ( 0 <= actual_minute_offset ) AND ( actual_minute_offset <= 59 ) ); + wr3: ( NOT ( ( ( hour_offset <> 0 ) OR ( actual_minute_offset <> 0 ) ) AND ( sense = exact ) ) ); + END_ENTITY; + + ENTITY coordinates_list + SUBTYPE OF ( tessellated_item ); + npoints : INTEGER; + position_coords : LIST [1 : ?] OF LIST [3 : 3] OF REAL; + WHERE + wr1: ( npoints = SIZEOF( position_coords ) ); + wr2: ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.REPOSITIONED_TESSELLATED_ITEM'] * TYPEOF( SELF ) ) = 0 ); + END_ENTITY; + + ENTITY cos_function + SUBTYPE OF ( unary_function_call ); + END_ENTITY; + + ENTITY csg_2d_shape_representation + SUBTYPE OF ( shape_representation ); + SELF\representation.items : SET [1 : ?] OF csg_2d_shape_select; + WHERE + wr1: ( SELF.context_of_items\geometric_representation_context.coordinate_space_dimension = 2 ); + wr2: ( SIZEOF( QUERY ( it <* SELF.items | ( ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CSG_SOLID'] * + TYPEOF( it ) ) = 1 ) OR ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MAPPED_ITEM' IN TYPEOF( it ) ) AND + ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'CSG_2D_SHAPE_REPRESENTATION' ) IN TYPEOF( it\ + mapped_item.mapping_source.mapped_representation ) ) ) ) ) ) >= 1 ); + wr3: ( SIZEOF( QUERY ( it <* SELF.items | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MAPPED_ITEM' IN TYPEOF( + it ) ) AND ( NOT ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'CSG_2D_SHAPE_REPRESENTATION' ) IN + TYPEOF( it\mapped_item.mapping_source.mapped_representation ) ) ) ) ) ) = 0 ); + END_ENTITY; + + ENTITY csg_primitive_solid_2d + SUBTYPE OF ( csg_solid_2d ); + SELF\csg_solid.tree_root_expression : bounded_primitive_2d; + 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( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CSG_SOLID', + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MAPPED_ITEM' , + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.AXIS2_PLACEMENT_3D' , + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SOLID_REPLICA' , + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.REVOLVED_FACE_SOLID' , + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.EXTRUDED_FACE_SOLID' ] * TYPEOF( it ) ) <> 1 ) ) ) = 0 ); + wr3: ( SIZEOF( QUERY ( mi <* QUERY ( it <* SELF.items | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MAPPED_ITEM' + IN TYPEOF( it ) ) ) | ( NOT ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CSG_SHAPE_REPRESENTATION' IN + TYPEOF( mi\mapped_item.mapping_source.mapped_representation ) ) ) ) ) = 0 ); + wr4: ( SIZEOF( QUERY ( sr <* QUERY ( it <* SELF.items | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SOLID_REPLICA' + IN TYPEOF( it ) ) ) | ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CSG_SOLID', + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.REVOLVED_FACE_SOLID' , + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.EXTRUDED_FACE_SOLID' ] * TYPEOF( sr\solid_replica.parent_solid ) ) + = 0 ) ) ) = 0 ); + wr5: ( SIZEOF( QUERY ( it <* SELF.items | ( NOT ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 csg_solid_2d + SUBTYPE OF ( csg_solid ); + SELF\csg_solid.tree_root_expression : csg_select_2d; + WHERE + wr1: valid_csg_2d_primitives( SELF ); + 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 ) AND ( SELF\named_unit.dimensions.mass_exponent = 0 ) AND ( SELF\ + named_unit.dimensions.time_exponent = 0 ) AND ( SELF\named_unit.dimensions.electric_current_exponent = 0 ) AND ( + SELF\named_unit.dimensions.thermodynamic_temperature_exponent = 0 ) AND ( SELF\named_unit.dimensions. + amount_of_substance_exponent = 0 ) AND ( SELF\named_unit.dimensions.luminous_intensity_exponent = 0 ) ); + END_ENTITY; + + ENTITY currency_measure_with_unit + SUBTYPE OF ( measure_with_unit ); + SELF\measure_with_unit.unit_component : currency; + END_ENTITY; + + ENTITY current_change_element_assignment + SUBTYPE OF ( group_assignment ); + SELF\group_assignment.assigned_group : current_element_assignment_select; + items : SET [1 : ?] OF change_management_object; + 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_2d_element_basis; + descriptor : curve_2d_element_descriptor; + variable : curve_element_variable; + END_ENTITY; + + ENTITY curve_2d_element_constant_specified_variable_value + SUBTYPE OF ( curve_2d_element_field_variable_definition ); + simple_value : field_value; + variable : surface_element_variable; + coordinate_system : OPTIONAL curve_2d_element_coordinate_system; + WHERE + wr1: necessary_value_coordinate_system( simple_value, coordinate_system ); + wr2: consistent_value( simple_value, variable ); + wr3: appropriate_value_existence( simple_value, TYPEOF( SELF\state_definition.defined_state ) ); + END_ENTITY; + + ENTITY curve_2d_element_constant_specified_volume_variable_value + SUBTYPE OF ( curve_2d_element_field_variable_definition ); + simple_value : field_value; + variable : volume_variable; + coordinate_system : OPTIONAL curve_2d_element_coordinate_system; + WHERE + wr1: necessary_value_coordinate_system( simple_value, coordinate_system ); + wr2: consistent_value( simple_value, variable ); + wr3: appropriate_value_existence( simple_value, TYPEOF( SELF\state_definition.defined_state ) ); + END_ENTITY; + + ENTITY curve_2d_element_coordinate_system + SUBTYPE OF ( fea_representation_item ); + orientation : direction; + WHERE + wr1: ( SELF\geometric_representation_item.dim = 2 ); + END_ENTITY; + + ENTITY curve_2d_element_field_variable_definition + SUPERTYPE OF ( + ONEOF ( + curve_2d_element_location_point_volume_variable_values, + curve_2d_element_location_point_variable_values, + curve_2d_whole_element_variable_value, + curve_2d_element_constant_specified_variable_value, + curve_2d_element_constant_specified_volume_variable_value ) ) + SUBTYPE OF ( field_variable_element_definition ); + element : curve_2d_element_output_reference; + END_ENTITY; + + ENTITY curve_2d_element_group + SUBTYPE OF ( element_group ); + WHERE + wr1: ( SIZEOF( QUERY ( item <* elements | ( ( NOT ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'AXISYMMETRIC_CURVE_2D_ELEMENT_REPRESENTATION' ) IN TYPEOF( item ) ) ) AND ( NOT ( ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PLANE_CURVE_2D_ELEMENT_REPRESENTATION' ) IN TYPEOF( item ) ) ) ) ) ) + = 0 ); + END_ENTITY; + + ENTITY curve_2d_element_integrated_matrix; + descriptor : curve_2d_element_descriptor; + property_type : curve_matrix_property_type; + integration_description : text; + END_ENTITY; + + ENTITY curve_2d_element_integrated_matrix_with_definition + SUBTYPE OF ( curve_2d_element_integrated_matrix ); + integration_definition : curve_2d_element_integration; + END_ENTITY; + + ENTITY curve_2d_element_integration; + section : LIST [1 : ?] OF curve_section_element_location; + END_ENTITY; + + ENTITY curve_2d_element_location_point_variable_values + SUBTYPE OF ( curve_2d_element_field_variable_definition ); + basis : BOOLEAN; + values_and_locations : SET [1 : ?] OF curve_2d_element_value_and_location; + variable : curve_element_variable; + WHERE + wr1: consistent_set_values( values_and_locations, variable ); + wr2: appropriate_set_value_existence( values_and_locations, TYPEOF( SELF\state_definition.defined_state ) ); + END_ENTITY; + + ENTITY curve_2d_element_location_point_volume_variable_values + SUBTYPE OF ( curve_2d_element_field_variable_definition ); + basis : BOOLEAN; + values_and_locations : SET [1 : ?] OF curve_2d_element_value_and_volume_location; + variable : curve_element_variable; + WHERE + wr1: consistent_set_values( values_and_locations, variable ); + wr2: appropriate_set_value_existence( values_and_locations, TYPEOF( SELF\state_definition.defined_state ) ); + END_ENTITY; + + ENTITY curve_2d_element_property; + property_id : identifier; + description : text; + section : curve_element_section_definition; + END_ENTITY; + + ENTITY curve_2d_element_value_and_location; + simple_value : field_value; + location : curve_section_element_location; + coordinate_system : OPTIONAL curve_2d_state_coordinate_system; + WHERE + wr1: necessary_value_coordinate_system( simple_value, coordinate_system ); + END_ENTITY; + + ENTITY curve_2d_element_value_and_volume_location; + simple_value : field_value; + location : curve_volume_element_location; + coordinate_system : OPTIONAL curve_2d_state_coordinate_system; + WHERE + wr1: necessary_value_coordinate_system( simple_value, coordinate_system ); + END_ENTITY; + + ENTITY curve_2d_node_field_aggregated_variable_values + SUBTYPE OF ( curve_2d_node_field_variable_definition ); + simple_value : field_value; + variable : volume_aggregated_variable; + coordinate_system : OPTIONAL curve_2d_state_coordinate_system; + WHERE + wr1: necessary_value_coordinate_system( simple_value, coordinate_system ); + wr2: consistent_value( simple_value, variable ); + wr3: appropriate_value_existence( simple_value, TYPEOF( SELF\state_definition.defined_state ) ); + END_ENTITY; + + ENTITY curve_2d_node_field_section_variable_values + SUBTYPE OF ( curve_2d_node_field_variable_definition ); + simple_value : field_value; + variable : curve_element_variable; + location : curve_section_element_location; + coordinate_system : OPTIONAL curve_2d_state_coordinate_system; + WHERE + wr1: necessary_value_coordinate_system( simple_value, coordinate_system ); + wr2: consistent_value( simple_value, variable ); + wr3: appropriate_value_existence( simple_value, TYPEOF( SELF\state_definition.defined_state ) ); + END_ENTITY; + + ENTITY curve_2d_node_field_variable_definition + SUPERTYPE OF ( + ONEOF ( + curve_2d_node_field_section_variable_values, + curve_2d_node_field_aggregated_variable_values ) ) + SUBTYPE OF ( field_variable_node_definition ); + END_ENTITY; + + ENTITY curve_2d_substructure_element_reference; + substructure_element_ref : substructure_element_representation; + element_ref : curve_2d_element_representation; + END_ENTITY; + + ENTITY curve_2d_whole_element_variable_value + SUBTYPE OF ( curve_2d_element_field_variable_definition ); + simple_value : field_value; + variable : volume_aggregated_variable; + coordinate_system : OPTIONAL curve_2d_element_coordinate_system; + WHERE + wr1: necessary_value_coordinate_system( simple_value, coordinate_system ); + wr2: consistent_value( simple_value, variable ); + wr3: appropriate_value_existence( simple_value, TYPEOF( SELF\state_definition.defined_state ) ); + END_ENTITY; + + ENTITY curve_3d_element_basis; + descriptor : curve_3d_element_descriptor; + variable : curve_element_variable; + variable_order : element_order; + variable_shape_function : shape_function; + evaluation_points : LIST [1 : ?] OF curve_element_location; + END_ENTITY; + + ENTITY curve_3d_element_constant_specified_variable_value + SUBTYPE OF ( curve_3d_element_field_variable_definition ); + simple_value : field_value; + variable : curve_element_variable; + coordinate_system : OPTIONAL curve_3d_element_coordinate_system; + WHERE + wr1: necessary_value_coordinate_system( simple_value, coordinate_system ); + wr2: consistent_value( simple_value, variable ); + wr3: appropriate_value_existence( simple_value, TYPEOF( SELF\state_definition.defined_state ) ); + END_ENTITY; + + ENTITY curve_3d_element_constant_specified_volume_variable_value + SUBTYPE OF ( curve_3d_element_field_variable_definition ); + simple_value : field_value; + variable : volume_variable; + coordinate_system : OPTIONAL curve_3d_element_coordinate_system; + WHERE + wr1: necessary_value_coordinate_system( simple_value, coordinate_system ); + wr2: consistent_value( simple_value, variable ); + wr3: appropriate_value_existence( simple_value, TYPEOF( SELF\state_definition.defined_state ) ); + END_ENTITY; + + ENTITY curve_3d_element_descriptor + SUBTYPE OF ( element_descriptor ); + purpose : SET [1 : ?] OF SET [1 : ?] OF curve_element_purpose; + END_ENTITY; + + ENTITY curve_3d_element_field_variable_definition + SUPERTYPE OF ( + ONEOF ( + curve_3d_element_location_point_volume_variable_values, + curve_3d_element_location_point_variable_values, + curve_3d_whole_element_variable_value, + curve_3d_element_constant_specified_variable_value, + curve_3d_element_constant_specified_volume_variable_value, + curve_3d_element_nodal_specified_variable_values ) ) + SUBTYPE OF ( field_variable_element_definition ); + element : curve_3d_element_output_reference; + END_ENTITY; + + ENTITY curve_3d_element_group + SUBTYPE OF ( element_group ); + WHERE + wr1: ( SIZEOF( QUERY ( item <* elements | ( NOT ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'CURVE_3D_ELEMENT_REPRESENTATION' ) IN TYPEOF( item ) ) ) ) ) = 0 ); + END_ENTITY; + + ENTITY curve_3d_element_integrated_matrix; + descriptor : curve_3d_element_descriptor; + property_type : curve_matrix_property_type; + integration_description : text; + END_ENTITY; + + ENTITY curve_3d_element_integrated_matrix_with_definition + SUBTYPE OF ( curve_3d_element_integrated_matrix ); + integration_definition : curve_3d_element_integration; + END_ENTITY; + + ENTITY curve_3d_element_integration; + element_length : curve_3d_element_length_integration; + section : curve_section_integration_explicit; + END_ENTITY; + + ENTITY curve_3d_element_length_integration_explicit; + integration_positions_and_weights : SET [1 : ?] OF curve_3d_element_position_weight; + END_ENTITY; + + ENTITY curve_3d_element_length_integration_rule; + integration_method : integration_rule; + integration_order : INTEGER; + END_ENTITY; + + ENTITY curve_3d_element_location_point_variable_values + SUBTYPE OF ( curve_3d_element_field_variable_definition ); + basis : BOOLEAN; + values_and_locations : SET [1 : ?] OF curve_3d_element_value_and_location; + variable : curve_element_variable; + WHERE + wr1: consistent_set_values( values_and_locations, variable ); + wr2: appropriate_set_value_existence( values_and_locations, TYPEOF( SELF\state_definition.defined_state ) ); + END_ENTITY; + + ENTITY curve_3d_element_location_point_volume_variable_values + SUBTYPE OF ( curve_3d_element_field_variable_definition ); + basis : BOOLEAN; + values_and_locations : SET [1 : ?] OF curve_3d_element_value_and_volume_location; + variable : volume_variable; + WHERE + wr1: consistent_set_values( values_and_locations, variable ); + wr2: appropriate_set_value_existence( values_and_locations, TYPEOF( SELF\state_definition.defined_state ) ); + END_ENTITY; + + ENTITY curve_3d_element_nodal_specified_variable_values + SUBTYPE OF ( curve_3d_element_field_variable_definition ); + values : LIST [1 : ?] OF field_value; + additional_node_values : BOOLEAN; + variable : curve_element_variable; + WHERE + wr1: consistent_list_values( values, variable ); + wr2: appropriate_list_value_existence( values, TYPEOF( SELF\state_definition.defined_state ) ); + END_ENTITY; + + ENTITY curve_3d_element_position_weight; + integration_position : curve_volume_element_location; + integration_weight : context_dependent_measure; + END_ENTITY; + + ENTITY curve_3d_element_property; + property_id : identifier; + description : text; + interval_definitions : LIST [1 : ?] OF curve_element_interval; + end_offsets : ARRAY [1 : 2] OF curve_element_end_offset; + end_releases : ARRAY [1 : 2] OF curve_element_end_release; + END_ENTITY; + + ENTITY curve_3d_element_representation + SUBTYPE OF ( element_representation ); + model_ref : fea_model_3d; + element_descriptor : curve_3d_element_descriptor; + property : curve_3d_element_property; + material : element_material; + UNIQUE + ur1 : model_ref, SELF\representation.name; + WHERE + wr1: ( ( SIZEOF( QUERY ( item <* SELF\representation.items | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'PARAMETRIC_CURVE_3D_ELEMENT_COORDINATE_SYSTEM' ) IN TYPEOF( item ) ) ) ) + SIZEOF( QUERY ( item <* SELF\ + representation.items | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'ALIGNED_CURVE_3D_ELEMENT_COORDINATE_SYSTEM' ) IN TYPEOF( item ) ) ) ) ) = 1 ); + wr2: ( SIZEOF( QUERY ( item1 <* material.properties | ( SIZEOF( QUERY ( item2 <* item1\property_definition_representation. + used_representation.items | ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'FEA_LINEAR_ELASTICITY' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'FEA_MASS_DENSITY', + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'FEA_AREA_DENSITY', + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'FEA_TANGENTIAL_COEFFICIENT_OF_LINEAR_THERMAL_EXPANSION', + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'FEA_SECANT_COEFFICIENT_OF_LINEAR_THERMAL_EXPANSION', + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'FEA_MOISTURE_ABSORPTION'] * TYPEOF( item2 ) ) = 1 ) ) ) + = 1 ) ) ) >= 1 ); + wr3: ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PARAMETRIC_REPRESENTATION_CONTEXT' IN TYPEOF( SELF\ + representation.context_of_items ) ); + fu1: required_1d_nodes( SELF\element_representation.node_list, element_descriptor\element_descriptor.topology_order ); + END_ENTITY; + + ENTITY curve_3d_element_value_and_location; + simple_value : field_value; + location : curve_element_location; + coordinate_system : OPTIONAL curve_3d_state_coordinate_system; + WHERE + wr1: necessary_value_coordinate_system( simple_value, coordinate_system ); + END_ENTITY; + + ENTITY curve_3d_element_value_and_volume_location; + simple_value : field_value; + location : curve_volume_element_location; + coordinate_system : OPTIONAL curve_3d_state_coordinate_system; + WHERE + wr1: necessary_value_coordinate_system( simple_value, coordinate_system ); + END_ENTITY; + + ENTITY curve_3d_node_field_aggregated_variable_values + SUBTYPE OF ( curve_3d_node_field_variable_definition ); + simple_value : field_value; + variable : volume_aggregated_variable; + coordinate_system : OPTIONAL curve_3d_state_coordinate_system; + WHERE + wr1: necessary_value_coordinate_system( simple_value, coordinate_system ); + wr2: consistent_value( simple_value, variable ); + wr3: appropriate_value_existence( simple_value, TYPEOF( SELF\state_definition.defined_state ) ); + END_ENTITY; + + ENTITY curve_3d_node_field_section_variable_values + SUBTYPE OF ( curve_3d_node_field_variable_definition ); + simple_value : field_value; + variable : curve_element_variable; + location : curve_section_element_location; + coordinate_system : OPTIONAL curve_3d_state_coordinate_system; + WHERE + wr1: necessary_value_coordinate_system( simple_value, coordinate_system ); + wr2: consistent_value( simple_value, variable ); + wr3: appropriate_value_existence( simple_value, TYPEOF( SELF\state_definition.defined_state ) ); + END_ENTITY; + + ENTITY curve_3d_node_field_variable_definition + SUPERTYPE OF ( + ONEOF ( + curve_3d_node_field_section_variable_values, + curve_3d_node_field_aggregated_variable_values ) ) + SUBTYPE OF ( field_variable_node_definition ); + END_ENTITY; + + ENTITY curve_3d_substructure_element_reference; + substructure_element_ref : substructure_element_representation; + element_ref : curve_3d_element_representation; + END_ENTITY; + + ENTITY curve_3d_whole_element_variable_value + SUBTYPE OF ( curve_3d_element_field_variable_definition ); + simple_value : field_value; + variable : volume_aggregated_variable; + coordinate_system : OPTIONAL curve_3d_element_coordinate_system; + WHERE + wr1: necessary_value_coordinate_system( simple_value, coordinate_system ); + wr2: consistent_value( simple_value, variable ); + wr3: appropriate_value_existence( simple_value, TYPEOF( SELF\state_definition.defined_state ) ); + END_ENTITY; + + ENTITY curve_based_path + SUBTYPE OF ( path_node ); + path_curve : curve; + END_ENTITY; + + ENTITY curve_based_path_with_orientation + SUBTYPE OF ( kinematic_path_segment ); + position_curve : bounded_curve; + orientation_curve : bounded_curve; + WHERE + wr1: ( TYPEOF( position_curve ) = TYPEOF( orientation_curve ) ); + END_ENTITY; + + ENTITY curve_based_path_with_orientation_and_parameters + SUBTYPE OF ( curve_based_path_with_orientation ); + parameters : path_parameter_representation; + 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 | ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.OUTER_BOUNDARY_CURVE' IN TYPEOF( temp ) ) ) ) = 0 ) ); + wr2: ( ( NOT implicit_outer ) OR ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.BOUNDED_SURFACE' IN TYPEOF( + basis_surface ) ) ); + wr3: ( SIZEOF( QUERY ( temp <* boundaries | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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_constraint + SUBTYPE OF ( constraint_element ); + required_curve : analysis_item_within_representation; + coordinate_system : fea_axis2_placement_3d; + freedoms_and_coefficients : SET [1 : ?] OF freedom_and_coefficient; + description : text; + WHERE + wr1: ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CURVE' IN TYPEOF( required_curve.item ) ) OR ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.EDGE_CURVE' IN TYPEOF( required_curve.item ) ) ); + END_ENTITY; + + ENTITY curve_dimension + SUBTYPE OF ( dimension_curve_directed_callout ); + END_ENTITY; + + ENTITY curve_distance_geometric_constraint + SUBTYPE OF ( explicit_geometric_constraint ); + SELF\explicit_constraint.constrained_elements : SET [1 : 2] OF curve; + SELF\explicit_constraint.reference_elements : SET [0 : 4] OF point_curve_or_surface_constraint_element; + near_points : SET [0 : 4] OF near_point_relationship; + WHERE + wr1: ( ( SIZEOF( SELF\explicit_constraint.reference_elements ) > 0 ) OR ( ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CDGC_WITH_DIMENSION' IN TYPEOF( SELF ) ) AND ( SIZEOF( SELF\ + explicit_constraint.constrained_elements ) = 2 ) ) ); + wr2: ( SIZEOF( near_points ) <= SIZEOF( SELF\explicit_constraint.reference_elements ) ); + wr3: ( SIZEOF( QUERY ( q <* near_points | ( NOT ( q\representation_item_relationship.relating_representation_item IN SELF\ + explicit_constraint.reference_elements ) ) ) ) = 0 ); + END_ENTITY; + + ENTITY curve_element_end_offset; + coordinate_system : curve_element_end_coordinate_system; + offset_vector : ARRAY [1 : 3] OF context_dependent_measure; + END_ENTITY; + + ENTITY curve_element_end_release; + coordinate_system : curve_element_end_coordinate_system; + releases : LIST [1 : ?] OF curve_element_end_release_packet; + END_ENTITY; + + ENTITY curve_element_end_release_packet; + release_freedom : curve_element_freedom; + release_stiffness : context_dependent_measure; + END_ENTITY; + + ENTITY curve_element_interval + SUPERTYPE OF ( + ONEOF ( + curve_element_interval_constant, + curve_element_interval_linearly_varying ) ); + finish_position : curve_element_location; + eu_angles : euler_angles; + END_ENTITY; + + ENTITY curve_element_interval_constant + SUBTYPE OF ( curve_element_interval ); + section : curve_element_section_definition; + END_ENTITY; + + ENTITY curve_element_interval_linearly_varying + SUBTYPE OF ( curve_element_interval ); + sections : ARRAY [1 : 2] OF curve_element_section_definition; + END_ENTITY; + + ENTITY curve_element_location; + coordinate : fea_parametric_point; + END_ENTITY; + + ENTITY curve_element_section_definition + SUPERTYPE OF ( + curve_element_section_derived_definitions ); + description : text; + section_angle : plane_angle_measure; + END_ENTITY; + + ENTITY curve_element_section_derived_definitions + SUBTYPE OF ( curve_element_section_definition ); + cross_sectional_area : context_dependent_measure; + shear_area : ARRAY [1 : 2] OF measure_or_unspecified_value; + second_moment_of_area : ARRAY [1 : 3] OF context_dependent_measure; + torsional_constant : context_dependent_measure; + warping_constant : measure_or_unspecified_value; + location_of_centroid : ARRAY [1 : 2] OF measure_or_unspecified_value; + location_of_shear_centre : ARRAY [1 : 2] OF measure_or_unspecified_value; + location_of_non_structural_mass : ARRAY [1 : 2] OF measure_or_unspecified_value; + non_structural_mass : measure_or_unspecified_value; + polar_moment : measure_or_unspecified_value; + END_ENTITY; + + ENTITY curve_freedom_action_definition + SUBTYPE OF ( curve_freedom_and_value_definition ); + action : action_type; + END_ENTITY; + + ENTITY curve_freedom_and_value_definition + SUPERTYPE OF ( + ONEOF ( + curve_freedom_values, + curve_freedom_action_definition ) ) + SUBTYPE OF ( state_definition ); + required_curve : analysis_item_within_representation; + coordinate_system : fea_axis2_placement_3d; + degrees_of_freedom : freedoms_list; + values : LIST [1 : ?] OF measure_or_unspecified_value; + WHERE + wr1: ( SIZEOF( degrees_of_freedom.freedoms ) = SIZEOF( values ) ); + wr2: ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CURVE' IN TYPEOF( required_curve.item ) ) OR ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.EDGE_CURVE' IN TYPEOF( required_curve.item ) ) ); + END_ENTITY; + + ENTITY curve_freedom_values + SUBTYPE OF ( curve_freedom_and_value_definition ); + END_ENTITY; + + ENTITY curve_length_geometric_constraint + SUBTYPE OF ( explicit_geometric_constraint ); + SELF\explicit_constraint.constrained_elements : SET [1 : ?] OF bounded_curve; + WHERE + wr1: ( SIZEOF( SELF\explicit_constraint.reference_elements ) = 0 ); + 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_section_element_location; + offsets : ARRAY [1 : 2] OF context_dependent_measure; + END_ENTITY; + + ENTITY curve_section_integration_explicit; + integration_positions : SET [1 : ?] OF curve_section_element_location; + END_ENTITY; + + ENTITY curve_segment_set + SUBTYPE OF ( geometric_representation_item ); + segments : SET [1 : ?] OF composite_curve_segment; + END_ENTITY; + + ENTITY curve_smoothness_geometric_constraint + SUBTYPE OF ( explicit_geometric_constraint ); + SELF\explicit_constraint.constrained_elements : SET [1 : 1] OF curve_segment_set; + smoothness : transition_code; + WHERE + wr1: ( SIZEOF( SELF\explicit_constraint.reference_elements ) = 0 ); + END_ENTITY; + + ENTITY curve_style + SUBTYPE OF ( founded_item ); + name : label; + curve_font : OPTIONAL curve_font_or_scaled_curve_font_select; + curve_width : OPTIONAL size_select; + curve_colour : OPTIONAL colour; + WHERE + wr1: ( EXISTS( curve_font ) OR EXISTS( curve_width ) OR EXISTS( curve_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_parameters_representation + SUBTYPE OF ( representation ); + END_ENTITY; + + ENTITY curve_style_parameters_with_ends + SUBTYPE OF ( curve_style_parameters_representation ); + 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( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'SWEPT_AREA_SOLID' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SWEPT_DISK_SOLID', + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MAPPED_ITEM' , + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.AXIS2_PLACEMENT_3D' ] * TYPEOF( it ) ) = 1 ) ) ) ) = 0 ); + wr2: ( SIZEOF( QUERY ( it <* SELF.items | ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SWEPT_AREA_SOLID', + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SWEPT_DISK_SOLID' , + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MAPPED_ITEM' ] * TYPEOF( it ) ) = 1 ) ) ) > 0 ); + wr3: ( SIZEOF( QUERY ( mi <* QUERY ( it <* items | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MAPPED_ITEM' IN + TYPEOF( it ) ) ) | ( NOT ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'SURFACE_CURVE_SWEPT_AREA_SOLID' IN TYPEOF( it ) ) ) | ( NOT ( ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SURFACE_CURVE' IN TYPEOF( scsas\ + surface_curve_swept_area_solid.directrix ) ) OR ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PCURVE' IN + TYPEOF( scsas\surface_curve_swept_area_solid.directrix ) ) ) ) ) ) = 0 ); + END_ENTITY; + + ENTITY curve_volume_element_location; + field_location : curve_element_location; + section_location : curve_section_element_location; + END_ENTITY; + + ENTITY curve_with_excessive_segments + SUBTYPE OF ( overcomplex_geometry ); + SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; + WHERE + wr1: ( ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' ) IN TYPEOF( SELF + \shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold ) ) + AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.COUNT_MEASURE' IN value_limit_type( SELF\ + shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold ) ) ); + wr2: validate_measured_data_type( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.COUNT_MEASURE' ); + wr3: validate_inspected_elements_type( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'B_SPLINE_OR_COMPOSITE_CURVE_SELECT' ] ); + wr4: validate_locations_of_extreme_value_type( SELF, [] ); + wr5: validate_accuracy_types( SELF, [] ); + END_ENTITY; + + ENTITY curve_with_small_curvature_radius + SUBTYPE OF ( geometry_with_local_near_degeneracy ); + SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; + WHERE + wr1: ( ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'SHAPE_DATA_QUALITY_UPPER_VALUE_LIMIT' ) IN TYPEOF( SELF + \shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold ) ) + AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE' IN value_limit_type( SELF\ + shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold ) ) ); + wr2: validate_measured_data_type( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE' ); + wr3: validate_inspected_elements_type( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CURVE'] ); + wr4: validate_locations_of_extreme_value_type( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.POINT_ON_CURVE'] ); + wr5: validate_accuracy_types( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE'] ); + END_ENTITY; + + ENTITY cylindrical_pair + SUBTYPE OF ( low_order_kinematic_pair ); + DERIVE + SELF\low_order_kinematic_pair.t_x : BOOLEAN := FALSE; + SELF\low_order_kinematic_pair.t_y : BOOLEAN := FALSE; + SELF\low_order_kinematic_pair.t_z : BOOLEAN := TRUE; + SELF\low_order_kinematic_pair.r_x : BOOLEAN := FALSE; + SELF\low_order_kinematic_pair.r_y : BOOLEAN := FALSE; + SELF\low_order_kinematic_pair.r_z : BOOLEAN := TRUE; + END_ENTITY; + + ENTITY cylindrical_pair_value + SUBTYPE OF ( pair_value ); + SELF\pair_value.applies_to_pair : cylindrical_pair; + actual_translation : length_measure; + actual_rotation : plane_angle_measure; + END_ENTITY; + + ENTITY cylindrical_pair_with_range + SUBTYPE OF ( cylindrical_pair ); + lower_limit_actual_translation : OPTIONAL length_measure; + upper_limit_actual_translation : OPTIONAL length_measure; + lower_limit_actual_rotation : OPTIONAL plane_angle_measure; + upper_limit_actual_rotation : OPTIONAL plane_angle_measure; + WHERE + wr1: ( ( ( NOT EXISTS( lower_limit_actual_translation ) ) OR ( NOT EXISTS( upper_limit_actual_translation ) ) ) XOR ( + lower_limit_actual_translation < upper_limit_actual_translation ) ); + wr2: ( ( ( NOT EXISTS( lower_limit_actual_rotation ) ) OR ( NOT EXISTS( upper_limit_actual_rotation ) ) ) XOR ( + lower_limit_actual_rotation < upper_limit_actual_rotation ) ); + END_ENTITY; + + ENTITY cylindrical_surface + SUBTYPE OF ( elementary_surface ); + radius : positive_length_measure; + END_ENTITY; + + ENTITY cylindrical_symmetry_control + SUBTYPE OF ( symmetry_control ); + harmonic : cylindrical_harmonic_number; + phase : measure_or_unspecified_value; + END_ENTITY; + + ENTITY cylindricity_tolerance + SUBTYPE OF ( geometric_tolerance ); + WHERE + wr1: ( NOT ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 data_quality_assessment_measurement_association; + assessment_specification : data_quality_criterion_assessment_association; + measurement_requirement : data_quality_criterion_measurement_association; + WHERE + wr1: ( SELF.measurement_requirement\representation_item_relationship.relating_representation_item :=: SELF. + assessment_specification.criterion ); + END_ENTITY; + + ENTITY data_quality_assessment_specification; + description : text; + END_ENTITY; + + ENTITY data_quality_criteria_representation + SUBTYPE OF ( representation ); + WHERE + wr1: ( SIZEOF( QUERY ( q <* SELF\representation.items | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'DATA_QUALITY_CRITERION' ) IN TYPEOF( q ) ) ) ) > 0 ); + END_ENTITY; + + ENTITY data_quality_criterion + SUBTYPE OF ( representation_item ); + WHERE + wr1: ( SIZEOF( QUERY ( q <* bag_to_set( USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.REPRESENTATION.' + + 'ITEMS' ) ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'DATA_QUALITY_INSPECTION_RESULT_REPRESENTATION' ) IN TYPEOF( q ) ) ) ) = 0 ); + END_ENTITY; + + ENTITY data_quality_criterion_assessment_association; + criterion : data_quality_criterion; + assessment_specification : data_quality_assessment_specification; + END_ENTITY; + + ENTITY data_quality_criterion_measurement_association + SUBTYPE OF ( representation_item_relationship ); + SELF\representation_item_relationship.relating_representation_item : data_quality_criterion; + SELF\representation_item_relationship.related_representation_item : data_quality_measurement_requirement; + END_ENTITY; + + ENTITY data_quality_definition; + description : text; + END_ENTITY; + + ENTITY data_quality_definition_relationship; + description : text; + relating_data_quality_definition : data_quality_definition; + related_data_quality_definition : data_quality_definition; + END_ENTITY; + + ENTITY data_quality_definition_representation_relationship; + description : text; + definition : data_quality_definition; + used_representation : used_quality_representation_select; + END_ENTITY; + + ENTITY data_quality_inspection_criterion_report + SUBTYPE OF ( data_quality_inspection_report ); + statistical_values : SET [1 : 2] OF data_quality_inspection_criterion_report_item; + WHERE + wr1: ( SIZEOF( QUERY ( i1 <* bag_to_set( USEDIN( SELF\data_quality_inspection_report.inspection_result.criterion_inspected, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'DATA_QUALITY_REPORT_REQUEST.CRITERION_OF_REPORT_REQUEST' ) ) + | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'SUMMARY_REPORT_REQUEST' ) IN TYPEOF( i1 ) ) ) ) > 0 ); + wr2: ( ( SIZEOF( SELF.statistical_values ) = 1 ) OR ( SELF.statistical_values[1].value_type <> SELF.statistical_values[2]. + value_type ) ); + END_ENTITY; + + ENTITY data_quality_inspection_criterion_report_item + SUBTYPE OF ( representation_item ); + statistical_value : INTEGER; + value_type : statistical_value_type; + WHERE + wr1: ( SIZEOF( QUERY ( q <* bag_to_set( USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.REPRESENTATION.' + + 'ITEMS' ) ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'DATA_QUALITY_CRITERIA_REPRESENTATION' ) + IN TYPEOF( q ) ) ) ) = 0 ); + END_ENTITY; + + ENTITY data_quality_inspection_instance_report + SUBTYPE OF ( data_quality_inspection_report ); + inspected_instances : LIST [1 : ?] OF data_quality_inspection_instance_report_item; + WHERE + wr1: ( SIZEOF( QUERY ( i1 <* bag_to_set( USEDIN( SELF\data_quality_inspection_report.inspection_result.criterion_inspected, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'DATA_QUALITY_REPORT_REQUEST.CRITERION_OF_REPORT_REQUEST' ) ) + | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'DETAILED_REPORT_REQUEST' ) IN TYPEOF( i1 ) ) ) ) > 0 ); + END_ENTITY; + + ENTITY data_quality_inspection_instance_report_item + SUBTYPE OF ( representation_item ); + inspected_elements : SET [1 : ?] OF inspected_element_select; + WHERE + wr1: ( SIZEOF( QUERY ( q <* bag_to_set( USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.REPRESENTATION.' + + 'ITEMS' ) ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'DATA_QUALITY_CRITERIA_REPRESENTATION' ) + IN TYPEOF( q ) ) ) ) = 0 ); + END_ENTITY; + + ENTITY data_quality_inspection_report + SUPERTYPE OF ( + ONEOF ( + data_quality_inspection_criterion_report, + data_quality_inspection_instance_report ) ) + SUBTYPE OF ( representation_item ); + inspection_result : data_quality_inspection_result; + WHERE + wr1: ( SIZEOF( QUERY ( q <* bag_to_set( USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.REPRESENTATION.' + + 'ITEMS' ) ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'DATA_QUALITY_CRITERIA_REPRESENTATION' ) + IN TYPEOF( q ) ) ) ) = 0 ); + END_ENTITY; + + ENTITY data_quality_inspection_result + SUBTYPE OF ( representation_item ); + criterion_inspected : data_quality_criterion; + WHERE + wr1: ( SIZEOF( QUERY ( q <* bag_to_set( USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.REPRESENTATION.' + + 'ITEMS' ) ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'DATA_QUALITY_CRITERIA_REPRESENTATION' ) + IN TYPEOF( q ) ) ) ) = 0 ); + END_ENTITY; + + ENTITY data_quality_inspection_result_representation + SUBTYPE OF ( representation ); + criteria_inspected : data_quality_criteria_representation; + WHERE + wr1: ( SIZEOF( QUERY ( q <* SELF\representation.items | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'DATA_QUALITY_INSPECTION_RESULT' ) IN TYPEOF( q ) ) ) ) > 0 ); + wr2: ( SIZEOF( inspected_product_definition( SELF ) ) > 0 ); + END_ENTITY; + + ENTITY data_quality_inspection_result_with_judgement + SUBTYPE OF ( data_quality_inspection_result ); + judgement : BOOLEAN; + END_ENTITY; + + ENTITY data_quality_measurement_requirement + SUBTYPE OF ( representation_item ); + WHERE + wr1: ( SIZEOF( QUERY ( q <* bag_to_set( USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.REPRESENTATION.' + + 'ITEMS' ) ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'DATA_QUALITY_INSPECTION_RESULT_REPRESENTATION' ) IN TYPEOF( q ) ) ) ) = 0 ); + END_ENTITY; + + ENTITY data_quality_report_measurement_association + SUBTYPE OF ( representation_item_relationship ); + SELF\representation_item_relationship.relating_representation_item : data_quality_measurement_requirement; + SELF\representation_item_relationship.related_representation_item : data_quality_inspection_report; + END_ENTITY; + + ENTITY data_quality_report_request + ABSTRACT SUPERTYPE OF ( + ONEOF ( + summary_report_request, + detailed_report_request ) ); + description : text; + criterion_of_report_request : data_quality_criterion; + 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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 : OPTIONAL date_time_or_event_occurrence; + WHERE + wr1: ( EXISTS( effectivity_end_date ) OR EXISTS( effectivity_start_date ) ); + END_ENTITY; + + ENTITY datum + SUBTYPE OF ( shape_aspect ); + identification : identifier; + INVERSE + established_by_relationships : SET [1 : ?] OF shape_aspect_relationship FOR related_shape_aspect; + UNIQUE + ur1 : identification, SELF\shape_aspect.of_shape; + WHERE + wr1: ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.COMMON_DATUM' IN TYPEOF( SELF ) ) XOR ( SIZEOF( QUERY ( x <* + SELF\datum.established_by_relationships | ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'DATUM_FEATURE' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.DATUM_TARGET'] * TYPEOF( x\ + shape_aspect_relationship.relating_shape_aspect ) ) = 1 ) ) ) >= 1 ) ); + wr2: ( SIZEOF( QUERY ( x <* SELF\datum.established_by_relationships | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'DATUM_FEATURE' IN TYPEOF( x\shape_aspect_relationship.relating_shape_aspect ) ) ) ) <= 1 ); + wr3: ( SELF\shape_aspect.product_definitional = FALSE ); + wr4: ( SELF\shape_aspect.name = '' ); + END_ENTITY; + + ENTITY datum_feature + SUPERTYPE OF ( + ONEOF ( + dimensional_location_with_datum_feature, + dimensional_size_with_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 | ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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_reference_compartment + SUBTYPE OF ( general_datum_reference ); + INVERSE + owner : datum_system FOR constituents; + END_ENTITY; + + ENTITY datum_reference_element + SUBTYPE OF ( general_datum_reference ); + DERIVE + owner : general_datum_reference := sts_get_general_datum_reference( SELF ); + WHERE + wr1: ( SELF <> owner ); + wr2: EXISTS( owner ); + wr3: ( SELF\shape_aspect.of_shape = owner\shape_aspect.of_shape ); + END_ENTITY; + + ENTITY datum_reference_modifier_with_value; + modifier_type : datum_reference_modifier_type; + modifier_value : length_measure_with_unit; + WHERE + wr1: ( modifier_value\measure_with_unit.value_component > 0 ); + END_ENTITY; + + ENTITY datum_system + SUBTYPE OF ( shape_aspect ); + constituents : LIST [1 : 3] OF UNIQUE datum_reference_compartment; + UNIQUE + ur1 : SELF\shape_aspect.of_shape, SELF\shape_aspect.name; + WHERE + wr1: ( SELF\shape_aspect.product_definitional = FALSE ); + 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 | ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'DEFAULT_TOLERANCE_TABLE_CELL' IN TYPEOF( i ) ) ) ) ) = 0 ); + wr2: ( ( SIZEOF( QUERY ( rr <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'REPRESENTATION_RELATIONSHIP.REP_1' ) | ( rr.name < 'general tolerance definition' ) ) ) = 0 ) AND ( SIZEOF( + QUERY ( rr <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'REPRESENTATION_RELATIONSHIP.' + + 'REP_1' ) | ( ( rr.name = 'general tolerance definition' ) AND ( rr.rep_2.name < 'default tolerance' ) ) ) ) = + 0 ) AND ( SIZEOF( USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'REPRESENTATION.ITEMS' ) + | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'DEFAULT_TOLERANCE_TABLE' ) IN TYPEOF( x ) ) ) ) = 1 ); + wr2: default_tolerance_table_cell_wr2( SELF\compound_representation_item.item_element ); + wr3: default_tolerance_table_cell_wr3( SELF\compound_representation_item.item_element ); + wr4: default_tolerance_table_cell_wr4( SELF\compound_representation_item.item_element ); + wr5: default_tolerance_table_cell_wr5( SELF\compound_representation_item.item_element ); + END_ENTITY; + + ENTITY defined_character_glyph + SUBTYPE OF ( geometric_representation_item ); + definition : defined_glyph_select; + placement : axis2_placement; + END_ENTITY; + + ENTITY defined_constraint + ABSTRACT SUPERTYPE OF ( + equal_parameter_constraint ) + SUBTYPE OF ( explicit_constraint ); + END_ENTITY; + + ENTITY defined_function + ABSTRACT SUPERTYPE OF ( + ONEOF ( + numeric_defined_function, + string_defined_function, + boolean_defined_function ) + ANDOR + sql_mappable_defined_function ); + END_ENTITY; + + ENTITY defined_symbol + SUBTYPE OF ( geometric_representation_item ); + definition : defined_symbol_select; + target : symbol_target; + END_ENTITY; + + ENTITY definite_integral_expression + SUBTYPE OF ( quantifier_expression ); + lower_limit_neg_infinity : BOOLEAN; + upper_limit_pos_infinity : BOOLEAN; + DERIVE + integrand : generic_expression := SELF\multiple_arity_generic_expression.operands[1]; + variable_of_integration : maths_variable := SELF\multiple_arity_generic_expression.operands[2]; + SELF\quantifier_expression.variables : LIST [1 : 1] OF UNIQUE generic_variable := [variable_of_integration]; + WHERE + wr1: has_values_space( integrand ); + wr2: space_is_continuum( values_space_of( integrand ) ); + wr3: definite_integral_expr_check( SELF\multiple_arity_generic_expression.operands, lower_limit_neg_infinity, + upper_limit_pos_infinity ); + END_ENTITY; + + ENTITY definite_integral_function + SUBTYPE OF ( maths_function, unary_generic_expression ); + SELF\unary_generic_expression.operand : maths_function; + variable_of_integration : input_selector; + lower_limit_neg_infinity : BOOLEAN; + upper_limit_pos_infinity : BOOLEAN; + DERIVE + integrand : maths_function := SELF\unary_generic_expression.operand; + WHERE + wr1: space_is_continuum( integrand.range ); + wr2: definite_integral_check( integrand.domain, variable_of_integration, lower_limit_neg_infinity, upper_limit_pos_infinity ); + END_ENTITY; + + ENTITY definitional_representation + SUBTYPE OF ( representation ); + WHERE + wr1: ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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], + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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: ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 delete_element + SUBTYPE OF ( change_element ); + END_ENTITY; + + ENTITY dependent_variable_definition + SUBTYPE OF ( unary_generic_expression ); + name : label; + description : text; + END_ENTITY; + + ENTITY derived_shape_aspect + SUPERTYPE OF ( + ONEOF ( + apex, + centre_of_symmetry, + geometric_alignment, + geometric_contact, + geometric_intersection, + parallel_offset, + perpendicular_to, + extension, + tangent ) ) + SUBTYPE OF ( shape_aspect ); + INVERSE + deriving_relationships : SET [1 : ?] OF shape_aspect_deriving_relationship FOR relating_shape_aspect; + 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 ) ) ); + wr2: ( SIZEOF( USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 detailed_report_request + SUBTYPE OF ( data_quality_report_request ); + detailed_report_request_type : detailed_report_type; + report_sequence : preferred_ordering; + END_ENTITY; + + ENTITY detailed_report_request_with_number_of_data + SUBTYPE OF ( detailed_report_request ); + number_of_data : INTEGER; + DERIVE + SELF\detailed_report_request.detailed_report_request_type : detailed_report_type := measured_element; + 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: ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LEADER_DIRECTED_CALLOUT' IN TYPEOF( SELF ) ) XOR ( SIZEOF( + QUERY ( dce_1 <* SELF\draughting_callout.contents | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'LEADER_CURVE' IN TYPEOF( dce_1 ) ) ) ) = 0 ) ); + wr2: ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROJECTION_DIRECTED_CALLOUT' IN TYPEOF( SELF ) ) XOR ( + SIZEOF( QUERY ( dce_1 <* SELF\draughting_callout.contents | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'PROJECTION_CURVE' IN TYPEOF( dce_1 ) ) ) ) = 0 ) ); + wr3: ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.DIMENSION_CURVE_DIRECTED_CALLOUT' IN TYPEOF( SELF ) ) XOR ( + SIZEOF( QUERY ( dce_1 <* SELF\draughting_callout.contents | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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: ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.STRUCTURED_DIMENSION_CALLOUT' IN TYPEOF( SELF. + relating_draughting_callout ) ); + wr3: ( SIZEOF( TYPEOF( SELF.related_draughting_callout ) * [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'LEADER_DIRECTED_CALLOUT' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROJECTION_DIRECTED_CALLOUT', + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.DIMENSION_CURVE_DIRECTED_CALLOUT' , + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 | ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 | ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ) * [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'ANGULAR_DIMENSION' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CURVE_DIMENSION', + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.DIAMETER_DIMENSION' , + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LEADER_DIRECTED_DIMENSION' , + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LINEAR_DIMENSION' , + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ORDINATE_DIMENSION' , + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.RADIUS_DIMENSION' ] ) >= 1 ); + wr3: ( SIZEOF( TYPEOF( SELF.related_draughting_callout ) * [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'DIMENSION_CURVE_DIRECTED_CALLOUT' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'PROJECTION_DIRECTED_CALLOUT' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'TERMINATOR_SYMBOL.' + + 'ANNOTATED_CURVE' ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'DIMENSION_CURVE_TERMINATOR' ) + IN TYPEOF( dct ) ) ) ) <= 2 ); + wr2: ( SIZEOF( QUERY ( dcdc <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'DRAUGHTING_CALLOUT.' + + 'CONTENTS' ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'DIMENSION_CURVE_DIRECTED_CALLOUT' ) + IN TYPEOF( dcdc ) ) ) ) >= 1 ); + wr3: ( ( SIZEOF( QUERY ( dct1 <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'TERMINATOR_SYMBOL.' + + 'ANNOTATED_CURVE' ) | ( ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'TERMINATOR_SYMBOL.' + + 'ANNOTATED_CURVE' ) | ( ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'DIMENSION_CURVE' IN TYPEOF( d_c ) ) ) ) <= 2 ); + wr2: ( SIZEOF( SELF\draughting_callout.contents ) >= 2 ); + END_ENTITY; + + ENTITY dimension_curve_terminator + SUBTYPE OF ( terminator_symbol ); + role : dimension_extent_usage; + WHERE + wr1: ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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.relating_annotation_occurrence : dimension_curve_terminator; + SELF\annotation_occurrence_relationship.related_annotation_occurrence : projection_curve; + END_ENTITY; + + ENTITY dimension_pair + SUBTYPE OF ( draughting_callout_relationship ); + WHERE + wr1: ( SELF.name IN [ 'chained', 'parallel'] ); + wr2: ( SIZEOF( TYPEOF( SELF.relating_draughting_callout ) * [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'ANGULAR_DIMENSION' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CURVE_DIMENSION', + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.DIAMETER_DIMENSION' , + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LINEAR_DIMENSION' , + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ORDINATE_DIMENSION' , + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.RADIUS_DIMENSION' ] ) = 1 ); + wr3: ( SIZEOF( TYPEOF( SELF.related_draughting_callout ) * [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'ANGULAR_DIMENSION' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CURVE_DIMENSION', + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.DIAMETER_DIMENSION' , + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LINEAR_DIMENSION' , + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ORDINATE_DIMENSION' , + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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: ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_DIMENSION_REPRESENTATION' IN TYPEOF( SELF\mapped_item. + mapping_source.mapped_representation ) ); + wr2: ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.DRAUGHTING_CALLOUT' IN TYPEOF( SELF\mapped_item.mapping_target ) ); + wr3: ( SIZEOF( QUERY ( ato <* QUERY ( si <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.STYLED_ITEM.' + + 'ITEM' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ANNOTATION_TEXT_OCCURRENCE' IN TYPEOF( si ) ) ) + | ( NOT ( SIZEOF( QUERY ( dc <* USEDIN( ato, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'DRAUGHTING_CALLOUT.CONTENTS' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ); + WHERE + wr1: ( SELF\shape_aspect_relationship.relating_shape_aspect :<>: SELF\shape_aspect_relationship.related_shape_aspect ); + wr2: ( SELF\shape_aspect_relationship.relating_shape_aspect.of_shape :=: SELF\shape_aspect_relationship. + related_shape_aspect.of_shape ); + END_ENTITY; + + ENTITY dimensional_location_with_datum_feature + SUBTYPE OF ( datum_feature, dimensional_location ); + 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; + DERIVE + id : identifier := get_id_value( SELF ); + UNIQUE + ur1 : id, applies_to; + WHERE + wr1: ( applies_to.product_definitional = TRUE ); + wr2: ( SIZEOF( USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'ID_ATTRIBUTE.IDENTIFIED_ITEM' ) ) <= + 1 ); + END_ENTITY; + + ENTITY dimensional_size_with_datum_feature + SUBTYPE OF ( datum_feature, dimensional_size ); + 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_angle + SUBTYPE OF ( shape_aspect ); + WHERE + wr1: ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FEATURE_COMPONENT_DEFINITION' IN TYPEOF( SELF.of_shape. + definition ) ); + wr2: ( SIZEOF( QUERY ( pdr <* get_shape_aspect_property_definition_representations( SELF ) | ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. + used_representation ) ) ) ) = 1 ); + wr3: ( SIZEOF( QUERY ( pdr <* get_shape_aspect_property_definition_representations( SELF ) | ( ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. + used_representation ) ) AND ( SIZEOF( pdr.used_representation.items ) = 1 ) ) ) ) = 1 ); + wr4: ( SELF.description IN [ 'punch direction', 'profile normal', 'surface normal'] ); + wr5: ( SIZEOF( QUERY ( pdr <* get_shape_aspect_property_definition_representations( SELF ) | ( ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. + used_representation ) ) AND ( SIZEOF( QUERY ( i <* pdr.used_representation.items | ( ( i.name = 'angle' ) AND ( + SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PLANE_ANGLE_MEASURE_WITH_UNIT' ] * TYPEOF( i ) ) = 2 ) ) ) ) = + 1 ) ) ) ) = 1 ); + 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 ); + END_ENTITY; + + ENTITY direction_node + SUBTYPE OF ( direction ); + node_1 : node_representation; + node_2 : node_representation; + DERIVE + SELF\direction.direction_ratios : LIST [2 : 3] OF REAL := build_direction_node( node_1, node_2 ); + WHERE + wr1: ( SIZEOF( QUERY ( item <* node_1\representation.items | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'CARTESIAN_POINT' IN TYPEOF( item ) ) ) ) = 1 ); + wr2: ( SIZEOF( QUERY ( item <* node_2\representation.items | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'CARTESIAN_POINT' IN TYPEOF( item ) ) ) ) = 1 ); + wr3: ( NOT ( ( direction_ratios[1] = 0 ) AND ( direction_ratios[2] = 0 ) AND ( direction_ratios[3] = 0 ) ) ); + END_ENTITY; + + ENTITY direction_shape_representation + SUBTYPE OF ( shape_representation ); + WHERE + wr1: ( SIZEOF( SELF.items ) = 1 ); + wr2: ( SIZEOF( QUERY ( it <* SELF.items | ( NOT ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.DIRECTION' IN + TYPEOF( it ) ) ) ) ) = 0 ); + END_ENTITY; + + ENTITY directionally_explicit_element_coefficient; + property_type : matrix_property_type; + coefficient : context_dependent_measure; + END_ENTITY; + + ENTITY directionally_explicit_element_coordinate_system_aligned + SUBTYPE OF ( fea_representation_item ); + aligned_system : curve_3d_element_coordinate_system; + END_ENTITY; + + ENTITY directionally_explicit_element_coordinate_system_arbitrary + SUBTYPE OF ( fea_representation_item ); + arbitrary_system : fea_axis2_placement_3d; + END_ENTITY; + + ENTITY directionally_explicit_element_representation + SUBTYPE OF ( element_representation ); + model_ref : fea_model; + systems_and_freedoms : LIST [2 : 2] OF system_and_freedom; + coefficient : directionally_explicit_element_coefficient; + UNIQUE + ur1 : model_ref, SELF\representation.name; + WHERE + fu1: required_1d_nodes( SELF\element_representation.node_list, linear_order ); + END_ENTITY; + + ENTITY disallowed_assembly_relationship_usage + SUBTYPE OF ( externally_conditioned_data_quality_criterion ); + WHERE + wr1: validate_ecdq_inspected_elements_type( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'ASSEMBLY_COMPONENT_USAGE' ] ); + END_ENTITY; + + ENTITY disconnected_face_set + SUBTYPE OF ( erroneous_topology ); + SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_logical_test; + WHERE + wr1: validate_measured_data_type( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.BOOLEAN_VALUE' ); + wr2: validate_inspected_elements_type( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CONNECTED_FACE_SET'] ); + wr3: validate_locations_of_extreme_value_type( SELF, [] ); + wr4: validate_accuracy_types( SELF, [] ); + END_ENTITY; + + ENTITY discontinuous_geometry + ABSTRACT SUPERTYPE OF ( + ONEOF ( + g1_discontinuous_curve, + g2_discontinuous_curve, + g1_discontinuous_surface, + g2_discontinuous_surface ) ) + SUBTYPE OF ( inapt_geometry ); + END_ENTITY; + + ENTITY distribution_view_relationship; + id : identifier; + name : label; + description : OPTIONAL text; + discretised_model : discretised_distribution_model_select; + idealised_distribution : idealised_distribution_select; + END_ENTITY; + + ENTITY div_expression + SUBTYPE OF ( binary_numeric_expression ); + 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 ); + SELF\group_assignment.assigned_group : document_identifier; + items : SET [1 : ?] OF document_identifier_assigned_item; + END_ENTITY; + + ENTITY document_product_association + ABSTRACT SUPERTYPE; + 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 ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PRODUCT_RELATED_PRODUCT_CATEGORY.PRODUCTS' ) + | ( prpc.name = 'document' ) ) ) = 1 ) ) ); + wr3: ( ( NOT ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'PRODUCT_RELATED_PRODUCT_CATEGORY.PRODUCTS' ) | ( prpc.name = 'document' ) ) ) = 1 ) ) ); + wr4: ( ( NOT ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 domain_property; + domain : temporal_spatial_domain; + property_type : general_property; + END_ENTITY; + + ENTITY dose_equivalent_measure_with_unit + SUBTYPE OF ( measure_with_unit ); + WHERE + wr1: ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ANNOTATION_CURVE_OCCURRENCE' IN TYPEOF( SELF ) ) ) OR + ( SIZEOF( QUERY ( sty <* SELF.styles | ( NOT ( ( SIZEOF( sty.styles ) = 1 ) AND ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CURVE_STYLE' IN TYPEOF( sty.styles[1] ) ) ) ) ) ) = 0 ) ); + wr2 : ( ( NOT ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ANNOTATION_FILL_AREA_OCCURRENCE' IN TYPEOF( SELF ) ) ) + OR ( SIZEOF( QUERY ( sty <* SELF.styles | ( NOT ( ( SIZEOF( sty.styles ) = 1 ) AND ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FILL_AREA_STYLE' IN TYPEOF( sty.styles[1] ) ) ) ) ) ) = 0 ) ); + wr3 : ( ( NOT ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'STYLED_ITEM.ITEM' ) | ( ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'ANNOTATION_CURVE_OCCURRENCE' ) IN TYPEOF( si ) ) ) ) > + 0 ) ) ) ) = 0 ) ); + wr4 : ( ( NOT ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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] ) + * [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SYMBOL_STYLE', + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.NULL_STYLE' ] ) = 1 ) ) ) ) ) = 0 ) ); + wr5 : ( ( NOT ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ANNOTATION_SYMBOL_OCCURRENCE' IN TYPEOF( SELF ) ) AND + ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ANNOTATION_SYMBOL' IN TYPEOF( SELF.item ) ) ) ) OR ( + SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'DRAUGHTING_SYMBOL_REPRESENTATION', + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'DRAUGHTING_SUBFIGURE_REPRESENTATION'] * TYPEOF( SELF. + item\mapped_item.mapping_source.mapped_representation ) ) = 1 ) ); + wr6 : ( ( NOT ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ANNOTATION_TEXT_OCCURRENCE' IN TYPEOF( SELF ) ) ) OR ( + SIZEOF( QUERY ( sty <* SELF.styles | ( NOT ( ( SIZEOF( sty.styles ) = 1 ) AND ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.TEXT_STYLE' IN TYPEOF( sty.styles[1] ) ) ) ) ) ) = 0 ) ); + wr7 : ( ( NOT ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ANNOTATION_TEXT_OCCURRENCE' IN TYPEOF( SELF ) ) ) OR ( + SIZEOF( TYPEOF( SELF.item ) * [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.COMPOSITE_TEXT', + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.TEXT_LITERAL' ] ) = 1 ) ); + wr8 : ( ( NOT ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ANNOTATION_TEXT_OCCURRENCE' IN TYPEOF( SELF ) ) AND + ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.COMPOSITE_TEXT' IN TYPEOF( SELF.item ) ) ) ) OR ( SIZEOF( + QUERY ( tl <* SELF.item\composite_text.collected_text | ( NOT ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.TEXT_LITERAL' IN TYPEOF( tl ) ) ) ) ) = 0 ) ); + wr9 : ( ( NOT ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ANNOTATION_TEXT_OCCURRENCE' IN TYPEOF( SELF ) ) AND + ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.TEXT_LITERAL' IN TYPEOF( SELF.item ) ) ) ) OR ( SELF.item\ + text_literal.alignment IN [ 'baseline left', 'baseline centre', 'baseline right'] ) ); + wr10: ( ( NOT ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ANNOTATION_TEXT_OCCURRENCE' IN TYPEOF( SELF ) ) AND + ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.COMPOSITE_TEXT' IN TYPEOF( SELF.item ) ) ) ) OR ( SIZEOF( + QUERY ( tl <* QUERY ( text <* SELF.item\composite_text.collected_text | ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.TEXT_LITERAL' IN TYPEOF( text ) ) ) | ( NOT ( tl\ + text_literal.alignment IN [ 'baseline left', 'baseline centre', 'baseline right'] ) ) ) ) = 0 ) ); + wr11: ( ( NOT ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ANNOTATION_TEXT_OCCURRENCE' IN TYPEOF( SELF ) ) AND + ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.COMPOSITE_TEXT' IN TYPEOF( SELF.item ) ) ) ) OR + check_text_alignment( SELF.item ) ); + wr12: ( ( NOT ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ANNOTATION_TEXT_OCCURRENCE' IN TYPEOF( SELF ) ) AND + ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.COMPOSITE_TEXT' IN TYPEOF( SELF.item ) ) ) ) OR + check_text_font( SELF.item ) ); + wr13: ( ( NOT ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ANNOTATION_TEXT_OCCURRENCE' IN TYPEOF( SELF ) ) AND + ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.COMPOSITE_TEXT' IN TYPEOF( SELF.item ) ) ) ) OR ( SIZEOF( + QUERY ( tl <* QUERY ( text <* SELF.item\composite_text.collected_text | ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.TEXT_LITERAL' IN TYPEOF( text ) ) ) | ( NOT ( SIZEOF( + TYPEOF( tl ) * [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'TEXT_LITERAL_WITH_BLANKING_BOX', + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'TEXT_LITERAL_WITH_ASSOCIATED_CURVES'] ) = 0 ) ) ) ) = 0 ) ); + wr14: ( ( NOT ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ANNOTATION_TEXT_OCCURRENCE' IN TYPEOF( SELF ) ) AND + ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.STYLED_ITEM.ITEM' ) | ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ANNOTATION_CURVE_OCCURRENCE' IN TYPEOF( si ) ) ) ) > 0 ) ) ) ) + = 0 ) ); + wr15: ( ( NOT ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ANNOTATION_TEXT_OCCURRENCE' IN TYPEOF( SELF ) ) AND + ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.STYLED_ITEM.ITEM' ) | ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ANNOTATION_CURVE_OCCURRENCE' IN TYPEOF( si ) ) ) ) > 0 ) ) ) ) + = 0 ) ); + wr16: ( SIZEOF( QUERY ( cs <* QUERY ( sty <* SELF.styles | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'CURVE_STYLE' IN TYPEOF( sty.styles[1] ) ) ) | ( NOT ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'LENGTH_MEASURE_WITH_UNIT' IN TYPEOF( cs.styles[1]\curve_style.curve_width ) ) AND ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'FILL_AREA_STYLE' IN TYPEOF( sty.styles[1] ) ) ) | ( NOT ( ( SIZEOF( QUERY ( fs <* fas.styles[1]\ + fill_area_style.fill_styles | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FILL_AREA_STYLE_TILES' IN + TYPEOF( fs ) ) ) ) <= 1 ) AND ( SIZEOF( QUERY ( fst <* QUERY ( fs <* fas.styles[1]\fill_area_style.fill_styles | + ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'FILL_AREA_STYLE' IN TYPEOF( sty.styles[1] ) ) ) | ( NOT ( SIZEOF( QUERY ( fsh <* QUERY ( fs <* fas.styles[1]\ + fill_area_style.fill_styles | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.TEXT_STYLE' + IN TYPEOF( sty.styles[1] ) ) ) | ( NOT ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'TEXT_STYLE_WITH_BOX_CHARACTERISTICS' ) IN TYPEOF( ts.styles[1] ) ) ) ) ) = 0 ); + wr20: ( SIZEOF( QUERY ( ts <* QUERY ( sty <* SELF.styles | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'TEXT_STYLE_WITH_BOX_CHARACTERISTICS' IN TYPEOF( sty.styles[1] ) ) ) | ( NOT ( SIZEOF( ts.styles[1]\ + text_style_with_box_characteristics.characteristics ) = 4 ) ) ) ) = 0 ); + END_ENTITY; + + ENTITY draughting_callout + SUBTYPE OF ( geometric_representation_item ); + contents : SET [1 : ?] OF draughting_callout_element; + WHERE + wr1: ( ( SIZEOF( QUERY ( l_1 <* SELF\draughting_callout.contents | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'LEADER_CURVE' IN TYPEOF( l_1 ) ) ) ) = 0 ) OR ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'LEADER_DIRECTED_CALLOUT' IN TYPEOF( SELF ) ) AND ( SIZEOF( QUERY ( l_1 <* SELF\draughting_callout.contents | + ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROJECTION_CURVE' IN TYPEOF( l_1 ) ) ) ) = 0 ) ) OR ( ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROJECTION_DIRECTED_CALLOUT' IN TYPEOF( SELF ) ) AND ( + SIZEOF( QUERY ( l_1 <* SELF\draughting_callout.contents | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'DIMENSION_CURVE' IN TYPEOF( l_1 ) ) ) ) = 0 ) ) OR ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'LEADER_CURVE' IN TYPEOF( con ) ) ) | ( NOT ( SIZEOF( QUERY ( ldc <* USEDIN( l_c, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'DRAUGHTING_CALLOUT.CONTENTS' ) | ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LEADER_DIRECTED_CALLOUT' IN TYPEOF( ldc ) ) ) ) <= 1 ) ) ) ) + = 0 ); + wr2: ( ( NOT ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.DIMENSION_CURVE_DIRECTED_CALLOUT' IN TYPEOF( SELF ) ) ) + OR ( SIZEOF( QUERY ( con <* SELF.contents | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROJECTION_CURVE' + IN TYPEOF( con ) ) ) ) <= 2 ) ); + wr3: ( SIZEOF( QUERY ( rc <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.DRAUGHTING_CALLOUT_' + + 'RELATIONSHIP.RELATING_DRAUGHTING_CALLOUT' ) | ( ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'DIMENSION_CALLOUT_RELATIONSHIP' ) IN TYPEOF( rc ) ) AND ( rc.name = 'primary' ) ) ) ) <= 1 ); + wr4: ( SIZEOF( QUERY ( rc <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.DRAUGHTING_CALLOUT_' + + 'RELATIONSHIP.RELATING_DRAUGHTING_CALLOUT' ) | ( ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'DIMENSION_CALLOUT_RELATIONSHIP' ) IN TYPEOF( rc ) ) AND ( rc.name = 'secondary' ) ) ) ) <= 1 ); + wr5: ( SIZEOF( QUERY ( sec <* QUERY ( rc <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'DRAUGHTING_CALLOUT_' + 'RELATIONSHIP.RELATING_DRAUGHTING_CALLOUT' ) | ( ( ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'DIMENSION_CALLOUT_RELATIONSHIP' ) IN TYPEOF( rc ) ) AND + ( rc.name = 'secondary' ) ) ) | ( NOT ( SIZEOF( QUERY ( prim <* USEDIN( SELF, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.DRAUGHTING_CALLOUT_' + 'RELATIONSHIP.' + + 'RELATING_DRAUGHTING_CALLOUT' ) | ( ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MAPPED_ITEM' + IN TYPEOF( it ) ) ) | ( NOT ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION', + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.DRAUGHTING_MODEL' ] * TYPEOF( mi\mapped_item.mapping_source. + mapped_representation ) ) = 1 ) ) ) ) = 0 ); + wr2: ( SIZEOF( QUERY ( smi <* QUERY ( si <* QUERY ( it <* SELF.items | ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.STYLED_ITEM' IN TYPEOF( it ) ) ) | ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MAPPED_ITEM' IN TYPEOF( si\styled_item.item ) ) ) | ( NOT ( + ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 : draughting_model_item_definition; + SELF\item_identified_representation_usage.used_representation : annotation_representation_select; + SELF\item_identified_representation_usage.identified_item : draughting_model_item_association_select; + 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 ); + SELF\representation.items : SET [1 : ?] OF draughting_subfigure_representation_item; + WHERE + wr1: ( SIZEOF( QUERY ( item <* SELF\representation.items | ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'ANNOTATION_OCCURRENCE' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.DRAUGHTING_CALLOUT'] * TYPEOF( + item ) ) = 1 ) ) ) >= 1 ); + wr2: ( SIZEOF( QUERY ( srm <* QUERY ( rm <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'REPRESENTATION_MAP.MAPPED_REPRESENTATION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'SYMBOL_REPRESENTATION_MAP' IN TYPEOF( rm ) ) ) | ( NOT ( SIZEOF( QUERY ( a_s <* QUERY ( mi <* srm.map_usage | + ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ANNOTATION_SYMBOL' IN TYPEOF( mi ) ) ) | ( NOT ( SIZEOF( + QUERY ( aso <* USEDIN( a_s, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'STYLED_ITEM.ITEM' ) | ( NOT ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ANNOTATION_SUBFIGURE_OCCURRENCE' IN TYPEOF( aso ) ) ) ) ) = 0 ) ) ) ) + = 0 ) ) ) ) > 0 ); + wr3: ( SIZEOF( SELF.context_of_items.representations_in_context ) = 1 ); + END_ENTITY; + + ENTITY draughting_symbol_representation + SUBTYPE OF ( symbol_representation ); + SELF\representation.items : SET [1 : ?] OF draughting_symbol_representation_item; + UNIQUE + ur1 : SELF\representation.name; + WHERE + wr1: ( SIZEOF( QUERY ( item <* SELF\representation.items | ( SIZEOF( TYPEOF( item ) * [ + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ANNOTATION_CURVE_OCCURRENCE' , + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ANNOTATION_SYMBOL_OCCURRENCE' , + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ANNOTATION_FILL_AREA_OCCURRENCE' , + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ANNOTATION_TEXT_OCCURRENCE' ] ) = 1 ) ) ) >= 1 ); + wr2: ( SIZEOF( QUERY ( item <* SELF\representation.items | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'ANNOTATION_SUBFIGURE_OCCURRENCE' IN TYPEOF( item ) ) ) ) = 0 ); + wr3: ( SIZEOF( QUERY ( rm <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'REPRESENTATION_MAP.' + + 'MAPPED_REPRESENTATION' ) | ( NOT ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'SYMBOL_REPRESENTATION_MAP' IN TYPEOF( rm ) ) ) ) ) = 0 ); + wr4: ( 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_layout + SUBTYPE OF ( draughting_symbol_representation ); + END_ENTITY; + + ENTITY drawing_sheet_revision + SUBTYPE OF ( presentation_area ); + revision_identifier : identifier; + WHERE + wr1: ( SIZEOF( QUERY ( item <* SELF\representation.items | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'MAPPED_ITEM' IN TYPEOF( item ) ) AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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: ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.DRAWING_SHEET_REVISION' IN TYPEOF( SELF\ + representation_relationship.rep_1 ) ); + wr3: ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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: ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.DRAWING_SHEET_REVISION' IN TYPEOF( SELF\area_in_set.area ) ) + AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.DRAWING_REVISION' IN TYPEOF( SELF\area_in_set.in_set ) ) ); + END_ENTITY; + + ENTITY dummy_node + SUBTYPE OF ( node_representation ); + 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( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'EDGE_BASED_WIREFRAME_MODEL' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MAPPED_ITEM', + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.AXIS2_PLACEMENT_3D' ] * TYPEOF( it ) ) = 1 ) ) ) ) = 0 ); + wr2: ( SIZEOF( QUERY ( it <* SELF.items | ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'EDGE_BASED_WIREFRAME_MODEL' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MAPPED_ITEM'] * TYPEOF( it ) ) + = 1 ) ) ) >= 1 ); + wr3: ( SIZEOF( QUERY ( ebwm <* QUERY ( it <* SELF.items | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.EDGE_CURVE' IN TYPEOF( edges ) ) ) ) ) = 0 ) ) ) ) = 0 ) ) ) ) + = 0 ); + wr4: ( SIZEOF( QUERY ( ebwm <* QUERY ( it <* SELF.items | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 | + ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ( ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.VERTEX_POINT' IN TYPEOF( edges.edge_start ) ) AND ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.VERTEX_POINT' IN TYPEOF( edges.edge_end ) ) ) ) ) ) = 0 ) ) ) ) + = 0 ) ) ) ) = 0 ); + wr6: ( SIZEOF( QUERY ( ebwm <* QUERY ( it <* SELF.items | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MAPPED_ITEM' + IN TYPEOF( it ) ) ) | ( NOT ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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_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 edge_round + SUBTYPE OF ( transition_feature ); + WHERE + wr1: ( ( NOT ( SELF\shape_aspect.description = 'constant radius' ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( + QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.' + + 'DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN + TYPEOF( pdr.used_representation ) ) ) ) = 1 ) ) ) ) = 0 ) ); + wr2: ( ( NOT ( SELF\shape_aspect.description = 'constant radius' ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( + QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( ( NOT ( SIZEOF( impl_rep. + used_representation.items ) >= 1 ) ) AND ( SIZEOF( impl_rep.used_representation.items ) <= 3 ) ) ) ) = 0 ) ) ) ) = + 0 ) ); + wr3: ( ( NOT ( SELF.description = 'constant radius' ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( + QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( + QUERY ( it <* impl_rep.used_representation.items | ( ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'MEASURE_REPRESENTATION_ITEM' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * + TYPEOF( it ) ) = 2 ) AND ( it.name = 'radius' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ) ); + wr4: ( ( NOT ( SELF.description = 'constant radius' ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( + QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( + QUERY ( it <* impl_rep.used_representation.items | ( ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'MEASURE_REPRESENTATION_ITEM' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * + TYPEOF( it ) ) = 2 ) AND ( it.name = 'first offset' ) ) ) ) <= 1 ) ) ) ) = 0 ) ) ) ) = 0 ) ); + wr5: ( ( NOT ( SELF.description = 'constant radius' ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( + QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( + QUERY ( it <* impl_rep.used_representation.items | ( ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'MEASURE_REPRESENTATION_ITEM' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * + TYPEOF( it ) ) = 2 ) AND ( it.name = 'second offset' ) ) ) ) <= 1 ) ) ) ) = 0 ) ) ) ) = 0 ) ); + wr6: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + + 'DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'FACE_SHAPE_REPRESENTATION' IN TYPEOF( pdr.used_representation ) ) AND ( pdr.used_representation.name = + 'edge round face' ) ) ) ) <= 1 ) ) ) ) = 0 ); + wr7: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + + 'DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'FACE_SHAPE_REPRESENTATION' IN TYPEOF( pdr.used_representation ) ) AND ( pdr.used_representation.name = + 'first face shape' ) ) ) ) <= 1 ) ) ) ) = 0 ); + wr8: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + + 'DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'FACE_SHAPE_REPRESENTATION' IN TYPEOF( pdr.used_representation ) ) AND ( pdr.used_representation.name = + 'second face shape' ) ) ) ) <= 1 ) ) ) ) = 0 ); + END_ENTITY; + + ENTITY edge_with_excessive_segments + SUBTYPE OF ( overcomplex_topology_and_geometry_relationship ); + SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; + WHERE + wr1: ( ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' ) IN TYPEOF( SELF + \shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold ) ) + AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.COUNT_MEASURE' IN value_limit_type( SELF\ + shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold ) ) ); + wr2: validate_measured_data_type( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.COUNT_MEASURE' ); + wr3: validate_inspected_elements_type( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.EDGE_CURVE'] ); + wr4: validate_locations_of_extreme_value_type( SELF, [] ); + wr5: validate_accuracy_types( SELF, [] ); + END_ENTITY; + + ENTITY effectivity + SUPERTYPE OF ( + ONEOF ( + serial_numbered_effectivity, + dated_effectivity, + lot_effectivity, + time_interval_based_effectivity ) ); + id : identifier; + DERIVE + name : label := get_name_value( SELF ); + description : text := get_description_value( SELF ); + WHERE + wr1: ( SIZEOF( USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'NAME_ATTRIBUTE.NAMED_ITEM' ) ) <= 1 ); + wr2: ( SIZEOF( USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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: ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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: ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ) AND ( SELF\named_unit.dimensions.mass_exponent = 0 ) AND ( SELF\ + named_unit.dimensions.time_exponent = 0 ) AND ( SELF\named_unit.dimensions.electric_current_exponent = 1 ) AND ( + SELF\named_unit.dimensions.thermodynamic_temperature_exponent = 0 ) AND ( SELF\named_unit.dimensions. + amount_of_substance_exponent = 0 ) AND ( SELF\named_unit.dimensions.luminous_intensity_exponent = 0 ) ); + END_ENTITY; + + ENTITY electric_potential_measure_with_unit + SUBTYPE OF ( measure_with_unit ); + WHERE + wr1: ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 element_analysis_message + SUBTYPE OF ( analysis_message ); + element : element_representation; + END_ENTITY; + + ENTITY element_definition + SUBTYPE OF ( shape_aspect ); + END_ENTITY; + + ENTITY element_descriptor + SUPERTYPE OF ( + ONEOF ( + volume_3d_element_descriptor, + axisymmetric_volume_2d_element_descriptor, + plane_volume_2d_element_descriptor, + surface_3d_element_descriptor, + axisymmetric_surface_2d_element_descriptor, + plane_surface_2d_element_descriptor, + curve_3d_element_descriptor, + axisymmetric_curve_2d_element_descriptor, + plane_curve_2d_element_descriptor ) ); + topology_order : element_order; + description : text; + END_ENTITY; + + ENTITY element_geometric_relationship; + element_ref : element_or_element_group; + item : analysis_item_within_representation; + aspect : element_aspect; + WHERE + wr1: ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.GEOMETRIC_REPRESENTATION_ITEM' IN TYPEOF( item.item ) ); + wr2: consistent_geometric_reference( aspect, item.item ); + wr3: consistent_element_or_group_reference( aspect, element_ref ); + END_ENTITY; + + ENTITY element_group + SUBTYPE OF ( fea_group ); + elements : SET [1 : ?] OF element_representation; + END_ENTITY; + + ENTITY element_group_analysis_message + SUBTYPE OF ( analysis_message ); + group : element_group; + END_ENTITY; + + ENTITY element_material; + material_id : identifier; + description : text; + properties : SET [1 : ?] OF material_property_representation; + END_ENTITY; + + ENTITY element_nodal_freedom_actions + SUBTYPE OF ( state_definition ); + element : model_or_control_element; + nodal_action : LIST [1 : ?] OF element_nodal_freedom_terms; + END_ENTITY; + + ENTITY element_nodal_freedom_terms; + coordinate_system : fea_axis2_placement_3d; + degrees_of_freedom : freedoms_list; + values : LIST [1 : ?] OF measure_or_unspecified_value; + WHERE + wr1: ( SIZEOF( degrees_of_freedom.freedoms ) = SIZEOF( values ) ); + END_ENTITY; + + ENTITY element_representation + SUPERTYPE OF ( + ONEOF ( + volume_3d_element_representation, + axisymmetric_volume_2d_element_representation, + plane_volume_2d_element_representation, + surface_3d_element_representation, + axisymmetric_surface_2d_element_representation, + plane_surface_2d_element_representation, + curve_3d_element_representation, + axisymmetric_curve_2d_element_representation, + plane_curve_2d_element_representation, + point_element_representation, + directionally_explicit_element_representation, + explicit_element_representation, + substructure_element_representation ) ) + SUBTYPE OF ( representation ); + node_list : LIST [1 : ?] OF node_representation; + WHERE + wr1: ( SIZEOF( QUERY ( item <* node_list | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'GEOMETRIC_NODE' ) + IN TYPEOF( item ) ) ) ) = 0 ); + END_ENTITY; + + ENTITY element_sequence; + order_id : identifier; + control_ref : control; + purpose : text; + elements : LIST [1 : ?] OF model_or_control_element; + UNIQUE + ur1 : order_id, control_ref; + END_ENTITY; + + ENTITY element_topological_relationship; + aspect : element_aspect; + element_ref : element_representation; + item : analysis_item_within_representation; + WHERE + wr1: ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.TOPOLOGICAL_REPRESENTATION_ITEM' IN TYPEOF( item.item ) ); + wr2: consistent_topological_reference( aspect, item.item ); + wr3: consistent_element_reference( aspect, element_ref ); + END_ENTITY; + + ENTITY elementary_brep_shape_representation + SUBTYPE OF ( shape_representation ); + WHERE + wr1 : ( SIZEOF( QUERY ( it <* SELF.items | ( NOT ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'MANIFOLD_SOLID_BREP' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FACETED_BREP', + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MAPPED_ITEM' , + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.AXIS2_PLACEMENT_3D' ] * TYPEOF( it ) ) = 1 ) ) ) ) = 0 ); + wr2 : ( SIZEOF( QUERY ( it <* SELF.items | ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'MANIFOLD_SOLID_BREP' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MAPPED_ITEM'] * TYPEOF( it ) ) = 1 ) ) ) + > 0 ); + wr3 : ( SIZEOF( QUERY ( msb <* QUERY ( it <* SELF.items | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'MANIFOLD_SOLID_BREP' IN TYPEOF( it ) ) ) | ( NOT ( SIZEOF( QUERY ( csh <* msb_shells( msb ) | ( NOT ( + SIZEOF( QUERY ( fcs <* csh.cfs_faces | ( NOT ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FACE_SURFACE' + IN TYPEOF( fcs ) ) ) ) ) = 0 ) ) ) ) = 0 ) ) ) ) = 0 ); + wr4 : ( SIZEOF( QUERY ( msb <* QUERY ( it <* SELF.items | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ELEMENTARY_SURFACE' IN TYPEOF( fcs\face_surface. + face_geometry ) ) ) ) ) = 0 ) ) ) ) = 0 ) ) ) ) = 0 ); + wr5 : ( SIZEOF( QUERY ( msb <* QUERY ( it <* SELF.items | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.EDGE_LOOP' IN TYPEOF( bnds.bound ) ) ) | ( NOT ( + SIZEOF( QUERY ( oe <* elp_fbnds.bound\path.edge_list | ( NOT ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'EDGE_CURVE' IN TYPEOF( oe.edge_element ) ) ) ) ) = 0 ) ) ) ) = 0 ) ) ) ) = 0 ) ) ) ) = 0 ) ) ) ) = 0 ); + wr6 : ( SIZEOF( QUERY ( msb <* QUERY ( it <* SELF.items | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.EDGE_LOOP' IN TYPEOF( bnds.bound ) ) ) | ( NOT ( + SIZEOF( QUERY ( oe <* elp_fbnds.bound\path.edge_list | ( NOT ( SIZEOF( [ + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LINE' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'CONIC' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.EDGE_LOOP' IN TYPEOF( bnds.bound ) ) ) | ( NOT ( + SIZEOF( QUERY ( oe <* elp_fbnds.bound\path.edge_list | ( NOT ( ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.VERTEX_POINT' IN TYPEOF( oe.edge_start ) ) AND ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.VERTEX_POINT' IN TYPEOF( oe.edge_end ) ) ) ) ) ) = 0 ) ) ) ) + = 0 ) ) ) ) = 0 ) ) ) ) = 0 ) ) ) ) = 0 ); + wr8 : ( SIZEOF( QUERY ( msb <* QUERY ( it <* SELF.items | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.EDGE_LOOP' IN TYPEOF( bnds.bound ) ) ) | ( NOT ( + SIZEOF( QUERY ( oe <* elp_fbnds.bound\path.edge_list | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'MANIFOLD_SOLID_BREP' IN TYPEOF( it ) ) ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'ORIENTED_CLOSED_SHELL' IN TYPEOF( msb\manifold_solid_brep.outer ) ) ) ) = 0 ); + wr10: ( SIZEOF( QUERY ( brv <* QUERY ( it <* items | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MAPPED_ITEM' IN + TYPEOF( it ) ) ) | ( NOT ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'ELEMENTARY_BREP_SHAPE_REPRESENTATION' IN TYPEOF( mi\mapped_item.mapping_source.mapped_representation ) ) ) ) ) + = 0 ); + wr12: ( SIZEOF( QUERY ( msb <* QUERY ( it <* SELF.items | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.VERTEX_LOOP' IN TYPEOF( bnds.bound ) ) ) | ( NOT + ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.VERTEX_POINT' IN TYPEOF( vlp_fbnds\face_bound.bound\ + vertex_loop.loop_vertex ) ) AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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_function + SUBTYPE OF ( maths_function, generic_literal ); + func_id : elementary_function_enumerators; + END_ENTITY; + + ENTITY elementary_space + SUBTYPE OF ( maths_space, generic_literal ); + space_id : elementary_space_enumerators; + 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 elements_bc + SUBTYPE OF ( mbna_bc ); + elements : LIST OF vertex_defined_cell; + END_ENTITY; + + ENTITY ellipse + SUBTYPE OF ( conic ); + semi_axis_1 : positive_length_measure; + semi_axis_2 : positive_length_measure; + END_ENTITY; + + ENTITY elliptic_area + SUBTYPE OF ( primitive_2d ); + position : axis2_placement_2d; + 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: ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 entirely_narrow_face + SUBTYPE OF ( topology_related_to_nearly_degenerate_geometry ); + SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_logical_test; + width_tolerance : length_measure; + WHERE + wr1: validate_measured_data_type( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.BOOLEAN_VALUE' ); + wr2: validate_inspected_elements_type( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FACE_SURFACE'] ); + wr3: validate_locations_of_extreme_value_type( SELF, [] ); + wr4: validate_accuracy_types( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE'] ); + END_ENTITY; + + ENTITY entirely_narrow_solid + SUBTYPE OF ( inapt_manifold_solid_brep ); + SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_logical_test; + width_tolerance : length_measure; + WHERE + wr1: validate_measured_data_type( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.BOOLEAN_VALUE' ); + wr2: validate_inspected_elements_type( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MANIFOLD_SOLID_BREP'] ); + wr3: validate_locations_of_extreme_value_type( SELF, [] ); + wr4: validate_accuracy_types( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE'] ); + END_ENTITY; + + ENTITY entirely_narrow_surface + SUBTYPE OF ( nearly_degenerate_geometry ); + SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_logical_test; + width_tolerance : length_measure; + WHERE + wr1: validate_measured_data_type( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.BOOLEAN_VALUE' ); + wr2: validate_inspected_elements_type( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.BOUNDED_SURFACE'] ); + wr3: validate_locations_of_extreme_value_type( SELF, [] ); + wr4: validate_accuracy_types( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE'] ); + 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 equal_parameter_constraint + SUBTYPE OF ( defined_constraint ); + SELF\explicit_constraint.constrained_elements : SET [1 : ?] OF variational_parameter; + SELF\explicit_constraint.reference_elements : SET [0 : 1] OF variational_parameter; + WHERE + wr1: ( SIZEOF( SELF\explicit_constraint.constrained_elements + SELF\explicit_constraint.reference_elements ) >= 2 ); + END_ENTITY; + + ENTITY equals_expression + SUBTYPE OF ( binary_boolean_expression ); + END_ENTITY; + + ENTITY erroneous_b_spline_curve_definition + SUBTYPE OF ( erroneous_geometry ); + SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_logical_test; + WHERE + wr1: validate_measured_data_type( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.BOOLEAN_VALUE' ); + wr2: validate_inspected_elements_type( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.B_SPLINE_CURVE_WITH_KNOTS'] ); + wr3: validate_locations_of_extreme_value_type( SELF, [] ); + wr4: validate_accuracy_types( SELF, [] ); + END_ENTITY; + + ENTITY erroneous_b_spline_surface_definition + SUBTYPE OF ( erroneous_geometry ); + SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_logical_test; + WHERE + wr1: validate_measured_data_type( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.BOOLEAN_VALUE' ); + wr2: validate_inspected_elements_type( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'B_SPLINE_SURFACE_WITH_KNOTS' ] ); + wr3: validate_locations_of_extreme_value_type( SELF, [] ); + wr4: validate_accuracy_types( SELF, [] ); + END_ENTITY; + + ENTITY erroneous_data + ABSTRACT SUPERTYPE OF ( + ONEOF ( + erroneous_topology, + erroneous_geometry, + erroneous_topology_and_geometry_relationship, + erroneous_manifold_solid_brep ) ) + SUBTYPE OF ( shape_data_quality_criterion ); + END_ENTITY; + + ENTITY erroneous_geometry + ABSTRACT SUPERTYPE OF ( + ONEOF ( + inconsistent_curve_transition_code, + erroneous_b_spline_curve_definition, + inconsistent_surface_transition_code, + erroneous_b_spline_surface_definition ) ) + SUBTYPE OF ( erroneous_data ); + END_ENTITY; + + ENTITY erroneous_manifold_solid_brep + ABSTRACT SUPERTYPE OF ( + ONEOF ( + wrongly_oriented_void, + wrongly_placed_void, + intersecting_shells_in_solid, + solid_with_wrong_number_of_voids ) ) + SUBTYPE OF ( erroneous_data ); + END_ENTITY; + + ENTITY erroneous_topology + ABSTRACT SUPERTYPE OF ( + ONEOF ( + open_edge_loop, + open_closed_shell, + inconsistent_adjacent_face_normals, + disconnected_face_set ) ) + SUBTYPE OF ( erroneous_data ); + END_ENTITY; + + ENTITY erroneous_topology_and_geometry_relationship + ABSTRACT SUPERTYPE OF ( + ONEOF ( + inconsistent_edge_and_curve_directions, + inconsistent_face_and_surface_normals, + inconsistent_face_and_closed_shell_normals, + intersecting_loops_in_face, + wrongly_placed_loop ) ) + SUBTYPE OF ( erroneous_data ); + END_ENTITY; + + ENTITY euler_angles; + angles : ARRAY [1 : 3] OF plane_angle_measure; + 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_characteristic_of_product_as_individual_test_result + SUBTYPE OF ( evaluated_characteristic ); + 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 excessive_use_of_groups + SUBTYPE OF ( externally_conditioned_data_quality_criterion ); + WHERE + wr1: validate_ecdq_inspected_elements_type( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.GROUP'] ); + END_ENTITY; + + ENTITY excessive_use_of_layers + SUBTYPE OF ( externally_conditioned_data_quality_criterion ); + WHERE + wr1: validate_ecdq_inspected_elements_type( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'PRESENTATION_LAYER_ASSIGNMENT' ] ); + END_ENTITY; + + ENTITY excessively_high_degree_curve + SUBTYPE OF ( overcomplex_geometry ); + SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; + WHERE + wr1: ( ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' ) IN TYPEOF( SELF + \shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold ) ) + AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.COUNT_MEASURE' IN value_limit_type( SELF\ + shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold ) ) ); + wr2: validate_measured_data_type( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.COUNT_MEASURE' ); + wr3: validate_inspected_elements_type( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.B_SPLINE_CURVE'] ); + wr4: validate_locations_of_extreme_value_type( SELF, [] ); + wr5: validate_accuracy_types( SELF, [] ); + END_ENTITY; + + ENTITY excessively_high_degree_surface + SUBTYPE OF ( overcomplex_geometry ); + SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; + WHERE + wr1: ( ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' ) IN TYPEOF( SELF + \shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold ) ) + AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.COUNT_MEASURE' IN value_limit_type( SELF\ + shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold ) ) ); + wr2: validate_measured_data_type( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.COUNT_MEASURE' ); + wr3: validate_inspected_elements_type( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.B_SPLINE_SURFACE'] ); + wr4: validate_locations_of_extreme_value_type( SELF, [] ); + wr5: validate_accuracy_types( SELF, [] ); + 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 exp_function + SUBTYPE OF ( unary_function_call ); + END_ENTITY; + + ENTITY expanded_uncertainty + SUBTYPE OF ( standard_uncertainty ); + coverage_factor : REAL; + END_ENTITY; + + ENTITY explicit_constraint + ABSTRACT SUPERTYPE OF ( + ONEOF ( + defined_constraint, + free_form_constraint ) ) + SUBTYPE OF ( variational_representation_item ); + description : OPTIONAL text; + constrained_elements : SET [1 : ?] OF representation_item; + reference_elements : SET [0 : ?] OF representation_item; + WHERE + wr1: ( SIZEOF( constrained_elements * reference_elements ) = 0 ); + END_ENTITY; + + ENTITY explicit_element_matrix; + property_type : matrix_property_type; + symmetry : matrix_symmetry; + node_dof_list : LIST [1 : ?] OF LIST [1 : ?] OF degree_of_freedom; + matrix_values : LIST [1 : ?] OF context_dependent_measure; + WHERE + wr1: ( SIZEOF( matrix_values ) = number_of_terms( node_dof_list, symmetry ) ); + END_ENTITY; + + ENTITY explicit_element_representation + SUBTYPE OF ( element_representation ); + model_ref : fea_model; + matrix : explicit_element_matrix; + UNIQUE + ur1 : model_ref, SELF\representation.name; + WHERE + wr1: ( SIZEOF( QUERY ( item <* SELF\representation.items | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'FEA_AXIS2_PLACEMENT_3D' ) IN TYPEOF( item ) ) ) ) = 1 ); + wr2: ( SIZEOF( matrix.node_dof_list ) = SIZEOF( SELF\element_representation.node_list ) ); + END_ENTITY; + + ENTITY explicit_geometric_constraint + ABSTRACT SUPERTYPE OF ( + ONEOF ( + fixed_element_geometric_constraint, + parallel_geometric_constraint, + point_distance_geometric_constraint, + skew_line_distance_geometric_constraint, + curve_distance_geometric_constraint, + surface_distance_geometric_constraint, + radius_geometric_constraint, + curve_length_geometric_constraint, + parallel_offset_geometric_constraint, + angle_geometric_constraint, + perpendicular_geometric_constraint, + incidence_geometric_constraint, + coaxial_geometric_constraint, + tangent_geometric_constraint, + symmetry_geometric_constraint, + swept_point_curve_geometric_constraint, + swept_curve_surface_geometric_constraint, + curve_smoothness_geometric_constraint, + surface_smoothness_geometric_constraint ) ) + SUBTYPE OF ( defined_constraint, geometric_representation_item ); + SELF\explicit_constraint.constrained_elements : SET [1 : ?] OF geometric_representation_item; + SELF\explicit_constraint.reference_elements : SET [0 : ?] OF geometric_representation_item; + END_ENTITY; + + ENTITY explicit_procedural_geometric_representation_item_relationship + SUBTYPE OF ( explicit_procedural_representation_item_relationship ); + SELF\representation_item_relationship.relating_representation_item : procedural_shape_representation_sequence; + SELF\representation_item_relationship.related_representation_item : geometric_representation_item; + WHERE + wr1: ( NOT ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROCEDURAL_REPRESENTATION' IN TYPEOF( SELF\ + representation_relationship.rep_2 ) ) ) AND ( NOT ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 explicit_table_function + ABSTRACT SUPERTYPE OF ( + ONEOF ( + listed_real_data, + listed_integer_data, + listed_logical_data, + listed_string_data, + listed_complex_number_data, + listed_data, + externally_listed_data, + linearized_table_function, + basic_sparse_matrix ) ) + SUBTYPE OF ( maths_function ); + index_base : zero_or_one; + shape : LIST [1 : ?] OF positive_integer; + END_ENTITY; + + ENTITY explicit_unstructured_mesh + SUBTYPE OF ( unstructured_mesh ); + explicit_model : fea_model; + cells : ARRAY [1 : SELF\unstructured_mesh.cell_count] OF UNIQUE element_representation; + END_ENTITY; + + ENTITY expression + ABSTRACT SUPERTYPE OF ( + ONEOF ( + numeric_expression, + boolean_expression, + string_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 expression_denoted_function + SUBTYPE OF ( maths_function, unary_generic_expression ); + DERIVE + expr : generic_expression := SELF\unary_generic_expression.operand; + WHERE + wr1: ( ( schema_prefix + 'FUNCTION_SPACE' ) IN TYPEOF( values_space_of( expr ) ) ); + END_ENTITY; + + ENTITY expression_extension_numeric + SUBTYPE OF ( measure_with_unit, numeric_expression ); + END_ENTITY; + + ENTITY expression_extension_string + SUBTYPE OF ( measure_with_unit, string_expression ); + END_ENTITY; + + ENTITY expression_extension_to_select; + type_expression_associated : expression_extension_select; + END_ENTITY; + + ENTITY extended_tuple_space + SUBTYPE OF ( maths_space, generic_literal ); +(* next line replaced by the line thereafter as patch for BZ#5052 + base : product_space; *) + base : tuple_space; + extender : maths_space; + WHERE + wr1: ( expression_is_constant( base ) AND expression_is_constant( extender ) ); + wr2: no_cyclic_space_reference( SELF, [] ); + wr3: ( extender <> the_empty_space ); + 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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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_conditioned_data_quality_criteria_representation + SUBTYPE OF ( data_quality_criteria_representation ); + WHERE + wr1: ( SIZEOF( QUERY ( q <* SELF\representation.items | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'EXTERNALLY_CONDITIONED_DATA_QUALITY_CRITERION' ) IN TYPEOF( q ) ) ) ) > 0 ); + END_ENTITY; + + ENTITY externally_conditioned_data_quality_criterion + SUBTYPE OF ( data_quality_criterion, data_quality_measurement_requirement ); + WHERE + wr1: ( SIZEOF( USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'DATA_QUALITY_CRITERION_ASSESSMENT_ASSOCIATION.' + 'CRITERION' ) ) = 0 ); + wr2: ( SIZEOF( QUERY ( i1 <* bag_to_set( USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'REPRESENTATION_ITEM_RELATIONSHIP.' + 'RELATED_REPRESENTATION_ITEM' ) ) | ( ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'DATA_QUALITY_CRITERION_MEASUREMENT_ASSOCIATION' ) IN + TYPEOF( i1 ) ) ) ) = 0 ); + wr3: ( SIZEOF( QUERY ( i1 <* bag_to_set( USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'REPRESENTATION_ITEM_RELATIONSHIP.' + 'RELATING_REPRESENTATION_ITEM' ) ) | ( ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'DATA_QUALITY_CRITERION_MEASUREMENT_ASSOCIATION' ) IN + TYPEOF( i1 ) ) ) ) = 0 ); + END_ENTITY; + + ENTITY externally_conditioned_data_quality_inspection_instance_report_item + SUBTYPE OF ( data_quality_inspection_instance_report_item ); + SELF\data_quality_inspection_instance_report_item.inspected_elements : SET [1 : ?] OF inspected_ecdq_element_select; + WHERE + wr1: ( SIZEOF( QUERY ( i1 <* bag_to_set( USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'DATA_QUALITY_INSPECTION_INSTANCE_REPORT.' + 'INSPECTED_INSTANCES' ) ) | ( NOT ( ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'EXTERNALLY_CONDITIONED_DATA_QUALITY_INSPECTION_RESULT' ) + IN TYPEOF( i1.inspection_result ) ) ) ) ) = 0 ); + END_ENTITY; + + ENTITY externally_conditioned_data_quality_inspection_result + SUBTYPE OF ( data_quality_inspection_result ); + WHERE + wr1: ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'EXTERNALLY_CONDITIONED_DATA_QUALITY_CRITERION' ) IN + TYPEOF( SELF\data_quality_inspection_result.criterion_inspected ) ); + END_ENTITY; + + ENTITY externally_conditioned_data_quality_inspection_result_representation + SUBTYPE OF ( data_quality_inspection_result_representation ); + WHERE + wr1: ( SIZEOF( QUERY ( q <* SELF\representation.items | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'EXTERNALLY_CONDITIONED_DATA_QUALITY_INSPECTION_RESULT' ) IN TYPEOF( q ) ) ) ) > 0 ); + END_ENTITY; + + ENTITY externally_defined_character_glyph + SUBTYPE OF ( externally_defined_item ); + 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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'APPLIED_DOCUMENT_REFERENCE.ITEMS' ) | ( adr.assigned_document.description = + 'external size dimension specification' ) ) ) ); + END_ENTITY; + + ENTITY externally_defined_feature_definition + SUBTYPE OF ( feature_definition, externally_defined_item ); + WHERE + wr1 : ( ( ( SELF\characterized_object.description = 'thread' ) AND ( SELF\externally_defined_item.item_id = 'external thread' ) + AND ( SELF\externally_defined_item.source.source_id = 'external feature specification' ) ) OR ( ( SELF\ + characterized_object.description = 'gear' ) AND ( SELF\externally_defined_item.item_id = 'external gear' ) AND ( + SELF\externally_defined_item.source.source_id = 'external feature specification' ) ) OR ( ( SELF\ + characterized_object.description = 'marking' ) AND ( SELF\externally_defined_item.item_id = 'external marking' ) + AND ( SELF\externally_defined_item.source.source_id = 'external feature specification' ) ) OR ( ( SELF\ + characterized_object.description = 'knurl' ) AND ( SELF\externally_defined_item.item_id = 'external knurl' ) AND + ( SELF\externally_defined_item.source.source_id = 'external feature specification' ) ) ); + wr2 : ( ( NOT ( SELF\characterized_object.description = 'thread' ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( SIZEOF( + QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.' + + 'DEFINITION' ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' + IN TYPEOF( pdr.used_representation ) ) AND ( 5 <= SIZEOF( pdr.used_representation.items ) ) AND ( SIZEOF( pdr. + used_representation.items ) <= 10 ) ) ) ) = 1 ) ) ) = 1 ) ); + wr3 : ( ( NOT ( SELF\characterized_object.description = 'marking' ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( SIZEOF( + QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.' + + 'DEFINITION' ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' + IN TYPEOF( pdr.used_representation ) ) AND ( SIZEOF( pdr.used_representation.items ) = 2 ) ) ) ) = 1 ) ) ) = 1 ) ); + wr4 : ( ( NOT ( SELF\characterized_object.description = 'knurl' ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( SIZEOF( + QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.' + + 'DEFINITION' ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' + IN TYPEOF( pdr.used_representation ) ) AND ( SIZEOF( pdr.used_representation.items ) = 1 ) ) ) ) = 1 ) ) ) = 1 ) ); + wr5 : ( ( NOT ( SELF\characterized_object.description IN [ 'knurl', 'thread'] ) ) OR ( SIZEOF( QUERY ( pds <* + QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) + | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) | ( NOT ( + SIZEOF( QUERY ( sa_occ <* USEDIN( pds, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) + | ( ( sa_occ.description = 'partial area occurrence' ) AND ( SIZEOF( QUERY ( sdr <* QUERY ( sar <* USEDIN( sa_occ, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.' + 'RELATED_SHAPE_ASPECT' ) | ( + ( sar.description = 'applied area usage' ) AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF( sar ) ) ) ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'APPLIED_AREA' IN TYPEOF( sdr.relating_shape_aspect ) ) ) ) = 1 ) ) ) ) <= 1 ) ) ) ) = 0 ) ); + wr6 : ( ( NOT ( SELF\characterized_object.description = 'marking' ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( + QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( + QUERY ( it <* impl_rep.used_representation.items | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF( it ) ) AND ( it.name = 'marking text' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) + = 0 ) ); + wr7 : ( ( NOT ( SELF\characterized_object.description = 'thread' ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( + QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( + QUERY ( it <* impl_rep.used_representation.items | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF( it ) ) AND ( it.name = 'removal direction' ) AND ( ( it. + description = 'internal' ) OR ( it.description = 'external' ) ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ) ); + wr8 : ( ( NOT ( SELF\characterized_object.description = 'thread' ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( + QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( + QUERY ( it <* impl_rep.used_representation.items | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF( it ) ) AND ( it.name = 'qualifier' ) ) ) ) <= 1 ) ) ) ) = 0 ) ) ) ) + = 0 ) ); + wr9 : ( ( NOT ( SELF\characterized_object.description = 'thread' ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( + QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( + QUERY ( it <* impl_rep.used_representation.items | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF( it ) ) AND ( it.name = 'hand' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ) ); + wr10: ( ( NOT ( SELF\characterized_object.description = 'thread' ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( + QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( + QUERY ( it <* impl_rep.used_representation.items | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF( it ) ) AND ( it.name = 'fit class' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) + = 0 ) ); + wr11: ( ( NOT ( SELF\characterized_object.description = 'thread' ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( + QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( + QUERY ( it <* impl_rep.used_representation.items | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF( it ) ) AND ( it.name = 'form' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ) ); + wr12: ( ( NOT ( SELF\characterized_object.description = 'thread' ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( + QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( + QUERY ( it <* impl_rep.used_representation.items | ( ( SIZEOF( [ + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM' , + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( it ) ) = 2 ) AND ( it. + name = 'major diameter' ) ) ) ) <= 1 ) ) ) ) = 0 ) ) ) ) = 0 ) ); + wr13: ( ( NOT ( SELF\characterized_object.description = 'thread' ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( + QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( + QUERY ( it <* impl_rep.used_representation.items | ( ( SIZEOF( [ + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM' , + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.RATIO_MEASURE_WITH_UNIT' ] * TYPEOF( it ) ) = 2 ) AND ( it. + name = 'number of threads' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ) ); + wr14: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + + 'DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. + used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF( it ) ) AND ( it. + name = 'fit class 2' ) ) ) ) <= 1 ) ) ) ) = 0 ) ) ) ) = 0 ); + wr15: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + + 'DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. + used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( SIZEOF( [ + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM' , + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( it ) ) = 2 ) AND ( it. + name = 'nominal size' ) ) ) ) <= 1 ) ) ) ) = 0 ) ) ) ) = 0 ); + wr16: ( ( NOT ( SELF\characterized_object.description IN [ 'knurl', 'gear', 'thread'] ) ) OR ( SIZEOF( QUERY ( pds <* + QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) + | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) | ( NOT ( + SIZEOF( QUERY ( sa_occ <* USEDIN( pds, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) + | ( SIZEOF( QUERY ( sdr <* QUERY ( sar <* USEDIN( sa_occ, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'SHAPE_ASPECT_RELATIONSHIP.' + 'RELATED_SHAPE_ASPECT' ) | ( ( sar.description = 'applied shape' ) AND ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF( sar ) ) ) ) | ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT' IN TYPEOF( sdr.relating_shape_aspect ) ) ) ) = + 1 ) ) ) <= 1 ) ) ) ) = 0 ) ); + wr17: ( ( NOT ( SELF\characterized_object.description IN [ 'gear'] ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( SIZEOF( + QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.' + + 'DEFINITION' ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' + IN TYPEOF( pdr.used_representation ) ) AND ( 10 <= SIZEOF( pdr.used_representation.items ) ) AND ( SIZEOF( pdr. + used_representation.items ) >= 11 ) ) ) ) = 1 ) ) ) = 1 ) ); + wr18: ( ( NOT ( SELF\characterized_object.description IN [ 'gear'] ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( + QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( + QUERY ( it <* impl_rep.used_representation.items | ( ( SIZEOF( [ + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM' , + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.RATIO_MEASURE_WITH_UNIT' ] * TYPEOF( it ) ) = 2 ) AND ( it. + name = 'number of teeth' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ) ); + wr19: ( ( NOT ( SELF\characterized_object.description IN [ 'gear'] ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( + QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( + QUERY ( it <* impl_rep.used_representation.items | ( ( SIZEOF( [ + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM' , + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PLANE_ANGLE_MEASURE_WITH_UNIT' ] * TYPEOF( it ) ) = 2 ) AND + ( it.name = 'reference pressure angle' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ) ); + wr20: ( ( NOT ( SELF\characterized_object.description IN [ 'gear'] ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( + QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( + QUERY ( it <* impl_rep.used_representation.items | ( ( SIZEOF( [ + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM' , + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( it ) ) = 2 ) AND ( it. + name = 'rake shift factor' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ) ); + wr21: ( ( NOT ( SELF\characterized_object.description IN [ 'gear'] ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( + QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( + QUERY ( it <* impl_rep.used_representation.items | ( ( SIZEOF( [ + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM' , + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( it ) ) = 2 ) AND ( it. + name = 'nominal tooth depth' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ) ); + wr22: ( ( NOT ( SELF\characterized_object.description IN [ 'gear'] ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( + QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( + QUERY ( it <* impl_rep.used_representation.items | ( ( SIZEOF( [ + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM' , + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( it ) ) = 2 ) AND ( it. + name = 'face width' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ) ); + wr23: ( ( NOT ( SELF\characterized_object.description IN [ 'gear'] ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( + QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( + QUERY ( it <* impl_rep.used_representation.items | ( ( SIZEOF( [ + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM' , + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( it ) ) = 2 ) AND ( it. + name = 'tip diameter' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ) ); + wr24: ( ( NOT ( SELF\characterized_object.description IN [ 'gear'] ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( + QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( + QUERY ( it <* impl_rep.used_representation.items | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF( it ) ) AND ( it.name = 'module or diametral pitch' ) AND ( ( it. + description = 'module' ) OR ( it.description = 'diametral pitch' ) ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ) ); + wr25: ( ( NOT ( SELF\characterized_object.description IN [ 'gear'] ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( + QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( + QUERY ( it <* impl_rep.used_representation.items | ( ( SIZEOF( [ + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM' , + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( it ) ) = 2 ) AND ( it. + name = 'normal attribute' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ) ); + wr26: ( ( NOT ( SELF\characterized_object.description IN [ 'gear'] ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( + QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( + QUERY ( it <* impl_rep.used_representation.items | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF( it ) ) AND ( it.name = 'internal or external gear' ) AND ( ( it. + description = 'internal' ) OR ( it.description = 'external' ) ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ) ); + wr27: ( ( NOT ( SELF\characterized_object.description IN [ 'gear'] ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( + QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( + QUERY ( it <* impl_rep.used_representation.items | ( ( SIZEOF( [ + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM' , + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PLANE_ANGLE_MEASURE_WITH_UNIT' ] * TYPEOF( it ) ) = 2 ) AND + ( it.name = 'root fillet radius' ) ) ) ) <= 1 ) ) ) ) = 0 ) ) ) ) = 0 ) ); + 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_item_with_multiple_references + SUBTYPE OF ( externally_defined_item ); + references : LIST [1 : ?] OF UNIQUE source_item; + UNIQUE + ur1 : references; + WHERE + wr1: ( NOT ( SELF\externally_defined_item.item_id IN references ) ); + 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 + SUBTYPE OF ( representation, externally_defined_item ); + SELF\representation.items : SET [1 : ?] OF externally_defined_representation_item; + 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_style + SUBTYPE OF ( externally_defined_item, founded_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 externally_listed_data + SUBTYPE OF ( explicit_table_function, generic_literal, externally_defined_item ); + value_range : maths_space; + WHERE + wr1: expression_is_constant( value_range ); + END_ENTITY; + + ENTITY extraction_of_structured_submesh + SUBTYPE OF ( extraction_of_submesh ); + lower_vertex : ARRAY [1 : whole_indices] OF INTEGER; + used_indices : ARRAY [1 : part_indices] OF INTEGER; + used_senses : ARRAY [1 : part_indices] OF BOOLEAN; + DERIVE + whole_indices : INTEGER := whole\mesh.index_count; + part_indices : INTEGER := part\mesh.index_count; + WHERE + wr1: ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.STRUCTURED_MESH' IN TYPEOF( SELF\extraction_of_submesh.whole ) ); + wr2: ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.STRUCTURED_MESH' IN TYPEOF( SELF\extraction_of_submesh.part ) ); + END_ENTITY; + + ENTITY extraction_of_submesh; + whole : mesh; + part : submesh; + END_ENTITY; + + ENTITY extraction_of_submesh_by_cells + SUBTYPE OF ( extraction_of_submesh ); + cell_count : INTEGER; + cells : ARRAY [1 : cell_count] OF cell; + END_ENTITY; + + ENTITY extraction_of_submesh_by_vertices + SUBTYPE OF ( extraction_of_submesh ); + vertex_count : INTEGER; + vertices : ARRAY [1 : vertex_count] OF vertex; + END_ENTITY; + + ENTITY extreme_instance; + locations_of_extreme_value : SET [1 : ?] OF location_of_extreme_value_select; + measured_value : measured_value_select; + END_ENTITY; + + ENTITY extreme_patch_width_variation + SUBTYPE OF ( geometry_with_local_irregularity ); + SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; + WHERE + wr1: ( ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' ) IN TYPEOF( SELF + \shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold ) ) + AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.RATIO_MEASURE' IN value_limit_type( SELF\ + shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold ) ) ); + wr2: validate_measured_data_type( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.RATIO_MEASURE' ); + wr3: validate_inspected_elements_type( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.B_SPLINE_SURFACE'] ); + wr4: validate_locations_of_extreme_value_type( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'B_SPLINE_SURFACE_KNOT_LOCATOR' ] ); + wr5: validate_accuracy_types( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE'] ); + 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 ); + 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 ); + 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 ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PLANE_ANGLE_MEASURE' IN TYPEOF( first_trim_condition ) ) + OR ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PLANE_ANGLE_MEASURE' IN TYPEOF( second_trim_condition ) ) ) ); + wr2: ( NOT ( ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ( ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 + ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE' IN TYPEOF( first_trim_condition ) ) AND + ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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_shape_representation + SUBTYPE OF ( shape_representation ); + WHERE + wr1: ( SIZEOF( SELF.items ) >= 1 ); + wr2: ( SIZEOF( QUERY ( it <* SELF.items | ( NOT ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FACE_SURFACE' IN + TYPEOF( it ) ) OR ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ORIENTED_FACE' IN TYPEOF( it ) ) ) ) ) ) = + 0 ); + END_ENTITY; + + ENTITY face_shape_representation_relationship + SUBTYPE OF ( representation_relationship ); + WHERE + wr1: ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FACE_SHAPE_REPRESENTATION' IN TYPEOF( SELF.rep_1 ) ); + wr2: ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FACE_SHAPE_REPRESENTATION' IN TYPEOF( SELF.rep_2 ) ); + END_ENTITY; + + ENTITY face_surface + SUBTYPE OF ( face, geometric_representation_item ); + face_geometry : surface; + same_sense : BOOLEAN; + WHERE + wr1: ( NOT ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ORIENTED_SURFACE' IN TYPEOF( face_geometry ) ) ); + END_ENTITY; + + ENTITY face_surface_with_excessive_patches_in_one_direction + SUBTYPE OF ( overcomplex_topology_and_geometry_relationship ); + SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; + WHERE + wr1: ( ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' ) IN TYPEOF( SELF + \shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold ) ) + AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.COUNT_MEASURE' IN value_limit_type( SELF\ + shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold ) ) ); + wr2: validate_measured_data_type( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.COUNT_MEASURE' ); + wr3: validate_inspected_elements_type( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FACE_SURFACE'] ); + wr4: validate_locations_of_extreme_value_type( SELF, [] ); + wr5: validate_accuracy_types( SELF, [] ); + 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( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FACETED_BREP', + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MAPPED_ITEM' , + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.AXIS2_PLACEMENT_3D' ] * TYPEOF( it ) ) = 1 ) ) ) ) = 0 ); + wr2: ( SIZEOF( QUERY ( it <* items | ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FACETED_BREP', + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MAPPED_ITEM' ] * TYPEOF( it ) ) = 1 ) ) ) > 0 ); + wr3: ( SIZEOF( QUERY ( fbrep <* QUERY ( it <* items | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FACE_SURFACE' IN + TYPEOF( fcs ) ) AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PLANE' IN TYPEOF( fcs\face_surface. + face_geometry ) ) AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 | ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FACE_OUTER_BOUND' IN TYPEOF( bnds ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) + = 0 ) ) ) ) = 0 ); + wr5: ( SIZEOF( QUERY ( msb <* QUERY ( it <* items | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'MANIFOLD_SOLID_BREP' IN TYPEOF( it ) ) ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'ORIENTED_CLOSED_SHELL' IN TYPEOF( msb\manifold_solid_brep.outer ) ) ) ) = 0 ); + wr6: ( SIZEOF( QUERY ( brv <* QUERY ( it <* items | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MAPPED_ITEM' IN + TYPEOF( it ) ) ) | ( NOT ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 fd_bc + SUBTYPE OF ( mbna_bc ); + SELF\mbna_bc.datasets : SET OF fd_bc_dataset; + END_ENTITY; + + ENTITY fd_bc_dataset + SUBTYPE OF ( mbna_bc_dataset ); + SELF\mbna_bc_dataset.the_type : fd_bc_type_simple; + END_ENTITY; + + ENTITY fd_diffusion_equation + SUBTYPE OF ( fd_governing_equation ); + diffusion_model : fd_diffusion_model; + END_ENTITY; + + ENTITY fd_diffusion_model; + terms : ARRAY [1 : diff] OF BOOLEAN; + diff : INTEGER; + END_ENTITY; + + ENTITY fd_governing_equation + SUBTYPE OF ( mbna_governing_equation ); + SELF\mbna_governing_equation.equation_type : fd_governing_equation_type; + END_ENTITY; + + ENTITY fd_step + SUBTYPE OF ( mbna_step ); + SELF\mbna_step.equations : SET OF flow_equation_set; + SELF\mbna_step.zones : LIST OF fd_zone; + END_ENTITY; + + ENTITY fd_zone + SUBTYPE OF ( mbna_zone ); + SELF\mbna_zone.conditions : SET OF fd_zone_bc; + SELF\mbna_zone.equations : SET OF flow_equation_set; + END_ENTITY; + + ENTITY fd_zone_bc + SUBTYPE OF ( mbna_zone_bc ); + SELF\mbna_zone_bc.conditions : SET OF fd_bc; + END_ENTITY; + + ENTITY fea_area_density + SUBTYPE OF ( fea_material_property_representation_item ); + fea_constant : scalar; + END_ENTITY; + + ENTITY fea_axis2_placement_2d + SUBTYPE OF ( axis2_placement_2d ); + system_type : coordinate_system_type; + description : text; + END_ENTITY; + + ENTITY fea_axis2_placement_3d + SUBTYPE OF ( axis2_placement_3d ); + system_type : coordinate_system_type; + description : text; + END_ENTITY; + + ENTITY fea_beam_section_idealisation_relationship; + id : identifier; + name : label; + description : OPTIONAL text; + idealised : general_property; + idealising : curve_element_section_definition; + END_ENTITY; + + ENTITY fea_curve_section_geometric_relationship; + section_ref : curve_element_section_definition; + item : analysis_item_within_representation; + WHERE + wr1: ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.GEOMETRIC_REPRESENTATION_ITEM' IN TYPEOF( item.item ) ); + END_ENTITY; + + ENTITY fea_group + SUPERTYPE OF ( + ONEOF ( + element_group, + node_group ) ) + SUBTYPE OF ( group ); + model_ref : fea_model; + END_ENTITY; + + ENTITY fea_group_relation + SUBTYPE OF ( group_relationship ); + WHERE + wr1: ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FEA_GROUP' IN TYPEOF( SELF\group_relationship.relating_group ) ); + wr2: ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FEA_GROUP' IN TYPEOF( SELF\group_relationship.related_group ) ); + END_ENTITY; + + ENTITY fea_linear_elasticity + SUBTYPE OF ( fea_material_property_representation_item ); + fea_constants : symmetric_tensor4_3d; + END_ENTITY; + + ENTITY fea_mass_density + SUBTYPE OF ( fea_material_property_representation_item ); + fea_constant : scalar; + END_ENTITY; + + ENTITY fea_material_property_geometric_relationship; + material_ref : fea_material_property_representation; + item : analysis_item_within_representation; + WHERE + wr1: ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.GEOMETRIC_REPRESENTATION_ITEM' IN TYPEOF( item.item ) ); + END_ENTITY; + + ENTITY fea_material_property_representation + SUBTYPE OF ( material_property_representation ); + WHERE + wr1: ( SIZEOF( QUERY ( item <* SELF\property_definition_representation.used_representation.items | ( SIZEOF( [ + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'FEA_LINEAR_ELASTICITY', + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'FEA_MASS_DENSITY', + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'FEA_AREA_DENSITY', + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'FEA_TANGENTIAL_COEFFICIENT_OF_LINEAR_THERMAL_EXPANSION', + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'FEA_SECANT_COEFFICIENT_OF_LINEAR_THERMAL_EXPANSION', + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'FEA_MOISTURE_ABSORPTION', + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'FEA_SHELL_MEMBRANE_STIFFNESS', + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'FEA_SHELL_BENDING_STIFFNESS', + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'FEA_SHELL_MEMBRANE_BENDING_COUPLING_STIFFNESS', + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'FEA_SHELL_SHEAR_STIFFNESS'] * TYPEOF( item ) ) = 1 ) ) ) + = 1 ); + wr2: ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MATERIAL_PROPERTY' IN TYPEOF( SELF\ + property_definition_representation.definition ) ); + END_ENTITY; + + ENTITY fea_material_property_representation_item + SUPERTYPE OF ( + ONEOF ( + fea_linear_elasticity, + fea_mass_density, + fea_area_density, + fea_tangential_coefficient_of_linear_thermal_expansion, + fea_secant_coefficient_of_linear_thermal_expansion, + fea_moisture_absorption, + fea_shell_membrane_stiffness, + fea_shell_bending_stiffness, + fea_shell_membrane_bending_coupling_stiffness, + fea_shell_shear_stiffness ) ) + SUBTYPE OF ( representation_item ); + END_ENTITY; + + ENTITY fea_model + SUPERTYPE OF ( + ONEOF ( + fea_model_2d, + fea_model_3d ) ) + SUBTYPE OF ( representation ); + creating_software : text; + intended_analysis_code : SET [1 : ?] OF text; + analysis_type : text; + UNIQUE + ur1 : SELF\representation.name; + END_ENTITY; + + ENTITY fea_model_2d + SUBTYPE OF ( fea_model ); + type_of_2d_analysis : axi_or_plane; + WHERE + wr1: ( SELF\representation.context_of_items\geometric_representation_context.coordinate_space_dimension = 2 ); + END_ENTITY; + + ENTITY fea_model_3d + SUBTYPE OF ( fea_model ); + WHERE + wr1: ( SELF\representation.context_of_items\geometric_representation_context.coordinate_space_dimension = 3 ); + END_ENTITY; + + ENTITY fea_model_definition + SUBTYPE OF ( shape_aspect ); + END_ENTITY; + + ENTITY fea_model_topological_relationship; + item : analysis_item_within_representation; + model_ref : fea_model; + WHERE + wr1: ( 'TOPOLOGICAL_DEFINITION_AND_MESH_SCHEMA.MESH' IN TYPEOF( item.item ) ); + END_ENTITY; + + ENTITY fea_moisture_absorption + SUBTYPE OF ( fea_material_property_representation_item ); + fea_constants : symmetric_tensor2_3d; + END_ENTITY; + + ENTITY fea_parametric_point + SUBTYPE OF ( point ); + coordinates : LIST [1 : 3] OF parameter_value; + WHERE + wr1: valid_parametric_coordinate( coordinates ); + wr2: ( SIZEOF( TYPEOF( SELF ) * [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CARTESIAN_POINT', + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.POINT_ON_CURVE' , + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.POINT_ON_SURFACE' , + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.DEGENERATE_PCURVE' , + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.POINT_REPLICA' , + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SPHERICAL_POINT' , + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CYLINDRICAL_POINT' ] ) = 0 ); + END_ENTITY; + + ENTITY fea_representation_item + SUPERTYPE OF ( + ONEOF ( + arbitrary_volume_3d_element_coordinate_system, + parametric_volume_3d_element_coordinate_system, + arbitrary_volume_2d_element_coordinate_system, + parametric_volume_2d_element_coordinate_system, + aligned_surface_3d_element_coordinate_system, + parametric_surface_3d_element_coordinate_system, + constant_surface_3d_element_coordinate_system, + aligned_surface_2d_element_coordinate_system, + parametric_surface_2d_element_coordinate_system, + aligned_curve_3d_element_coordinate_system, + parametric_curve_3d_element_coordinate_system, + parametric_curve_3d_element_coordinate_direction, + curve_2d_element_coordinate_system, + directionally_explicit_element_coordinate_system_arbitrary, + directionally_explicit_element_coordinate_system_aligned ) ) + SUBTYPE OF ( representation_item ); + END_ENTITY; + + ENTITY fea_secant_coefficient_of_linear_thermal_expansion + SUBTYPE OF ( fea_material_property_representation_item ); + fea_constants : symmetric_tensor2_3d; + reference_temperature : thermodynamic_temperature_measure; + END_ENTITY; + + ENTITY fea_shell_bending_stiffness + SUBTYPE OF ( fea_material_property_representation_item ); + fea_constants : symmetric_tensor4_2d; + END_ENTITY; + + ENTITY fea_shell_membrane_bending_coupling_stiffness + SUBTYPE OF ( fea_material_property_representation_item ); + fea_constants : symmetric_tensor4_2d; + END_ENTITY; + + ENTITY fea_shell_membrane_stiffness + SUBTYPE OF ( fea_material_property_representation_item ); + fea_constants : symmetric_tensor4_2d; + END_ENTITY; + + ENTITY fea_shell_section_distribution_idealisation_relationship; + id : identifier; + name : label; + description : OPTIONAL text; + idealised : property_definition; + idealising : surface_section_field; + END_ENTITY; + + ENTITY fea_shell_section_idealisation_relationship; + id : identifier; + name : label; + description : OPTIONAL text; + idealised : general_property; + idealising : surface_section; + END_ENTITY; + + ENTITY fea_shell_shear_stiffness + SUBTYPE OF ( fea_material_property_representation_item ); + fea_constants : symmetric_tensor2_2d; + END_ENTITY; + + ENTITY fea_surface_section_geometric_relationship; + section_ref : surface_section; + item : analysis_item_within_representation; + WHERE + wr1: ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.GEOMETRIC_REPRESENTATION_ITEM' IN TYPEOF( item.item ) ); + END_ENTITY; + + ENTITY fea_tangential_coefficient_of_linear_thermal_expansion + SUBTYPE OF ( fea_material_property_representation_item ); + fea_constants : symmetric_tensor2_3d; + END_ENTITY; + + ENTITY feature_component_definition + SUBTYPE OF ( characterized_object ); + WHERE + wr1: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + + 'DEFINITION' ) | ( NOT ( SIZEOF( USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT.' + + 'OF_SHAPE' ) ) = 1 ) ) ) ) = 0 ); + END_ENTITY; + + ENTITY feature_component_relationship + SUPERTYPE OF ( + ONEOF ( + pattern_omit_membership, + pattern_offset_membership ) ) + SUBTYPE OF ( shape_aspect_relationship ); + WHERE + wr1: ( ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.COMPOSITE_SHAPE_ASPECT', + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.REPLICATE_FEATURE' , + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.TRANSITION_FEATURE' , + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MODIFIED_PATTERN' ] * TYPEOF( SELF.relating_shape_aspect ) ) = + 1 ) OR ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MACHINING_FEATURE_DEFINITION' IN TYPEOF( SELF. + relating_shape_aspect.of_shape.definition ) ) OR ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'FEATURE_COMPONENT_DEFINITION' IN TYPEOF( SELF.relating_shape_aspect.of_shape.definition ) ) ); + END_ENTITY; + + ENTITY feature_definition + SUPERTYPE OF ( + ONEOF ( + boss, + compound_feature, + externally_defined_feature_definition, + flat_face, + gear, + marking, + outer_round, + outside_profile, + pocket, + protrusion, + removal_volume, + replicate_feature, + revolved_profile, + rib_top, + round_hole, + rounded_end, + spherical_cap, + step, + slot, + thread, + turned_knurl ) ) + SUBTYPE OF ( characterized_object ); + END_ENTITY; + + ENTITY feature_definition_with_connection_area + SUBTYPE OF ( shape_feature_definition ); + END_ENTITY; + + ENTITY feature_for_datum_target_relationship + SUBTYPE OF ( shape_aspect_relationship ); + SELF\shape_aspect_relationship.related_shape_aspect : datum_target; + UNIQUE + ur1 : related_shape_aspect; + WHERE + wr1: ( relating_shape_aspect.of_shape :=: related_shape_aspect.of_shape ); + wr2: ( relating_shape_aspect\shape_aspect.product_definitional = TRUE ); + END_ENTITY; + + ENTITY feature_in_panel + SUBTYPE OF ( feature_definition ); + WHERE + wr1 : ( SELF.description IN [ 'pocket', 'boss', 'stairstep'] ); + wr2 : ( SIZEOF( QUERY ( pdr <* get_property_definition_representations( SELF ) | ( ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. + used_representation ) ) AND ( NOT ( ( 2 <= SIZEOF( pdr.used_representation.items ) ) AND ( SIZEOF( pdr. + used_representation.items ) <= 3 ) ) ) ) ) ) = 0 ); + wr3 : ( SIZEOF( QUERY ( pdr <* get_property_definition_representations( SELF ) | ( ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. + used_representation ) ) AND ( SIZEOF( QUERY ( i <* pdr.used_representation.items | ( NOT ( i.name IN [ 'orientation', + 'base radius' , 'target radius'] ) ) ) ) > 0 ) ) ) ) = 0 ); + wr4 : ( SIZEOF( QUERY ( pdr <* get_property_definition_representations( SELF ) | ( ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. + used_representation ) ) AND ( SIZEOF( QUERY ( i <* pdr.used_representation.items | ( ( i.name = 'base radius' ) + AND ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( i ) ) = 2 ) ) ) ) = 1 ) ) ) ) + = 1 ); + wr5 : ( SIZEOF( QUERY ( pdr <* get_property_definition_representations( SELF ) | ( ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. + used_representation ) ) AND ( SIZEOF( QUERY ( i <* pdr.used_representation.items | ( ( i.name = 'target radius' ) + AND ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( i ) ) = 2 ) ) ) ) = 1 ) ) ) ) + = 1 ); + wr6 : ( SIZEOF( QUERY ( sa <* get_shape_aspects( SELF ) | ( ( sa.name = 'base boundary' ) AND ( sa.description IN [ + 'directed angle occurrence' , 'closed profile occurrence'] ) ) ) ) = 1 ); + wr7 : ( SIZEOF( QUERY ( sa <* get_shape_aspects( SELF ) | ( ( sa.name = 'target boundary' ) AND ( sa.description IN [ + 'directed angle occurrence' , 'closed profile occurrence'] ) ) ) ) = 1 ); + wr8 : ( SIZEOF( QUERY ( sa <* get_shape_aspects( SELF ) | ( sa.description = 'directed angle occurrence' ) ) ) <= 1 ); + wr9 : ( SIZEOF( QUERY ( sa <* get_shape_aspects( SELF ) | ( ( sa.description = 'directed angle occurrence' ) AND ( SIZEOF( + QUERY ( sar <* USEDIN( sa, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'SHAPE_ASPECT_RELATIONSHIP.' + + 'RELATED_SHAPE_ASPECT' ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_DEFINING_RELATIONSHIP' + IN TYPEOF( sar ) ) AND ( sar.name = 'directed angle usage' ) AND ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.DIRECTED_ANGLE' IN TYPEOF( sar.relating_shape_aspect ) ) ) ) ) + = 1 ) ) ) ) = SIZEOF( QUERY ( sa <* get_shape_aspects( SELF ) | ( sa.description = 'directed angle occurrence' ) ) ) ); + wr10: ( SIZEOF( QUERY ( sa <* get_shape_aspects( SELF ) | ( ( sa.description = 'closed profile occurrence' ) AND ( SIZEOF( + QUERY ( sar <* USEDIN( sa, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'SHAPE_ASPECT_RELATIONSHIP.' + + 'RELATED_SHAPE_ASPECT' ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_DEFINING_RELATIONSHIP' + IN TYPEOF( sar ) ) AND ( sar.description = 'profile usage' ) AND ( SIZEOF( [ + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CIRCULAR_CLOSED_PROFILE' , + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.NGON_CLOSED_PROFILE' , + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.RECTANGULAR_CLOSED_PROFILE' , + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CLOSED_PATH_PROFILE' ] * TYPEOF( sar.relating_shape_aspect ) ) + = 1 ) ) ) ) = 1 ) ) ) ) = SIZEOF( QUERY ( sa <* get_shape_aspects( SELF ) | ( sa.description = + 'closed profile occurrence' ) ) ) ); + wr11: ( ( SIZEOF( QUERY ( pdr <* get_property_definition_representations( SELF ) | ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FACE_SHAPE_REPRESENTATION' IN TYPEOF( pdr. + used_representation ) ) ) ) <= 1 ) AND ( SIZEOF( QUERY ( pdr <* get_property_definition_representations( SELF ) | + ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FACE_SHAPE_REPRESENTATION' IN TYPEOF( pdr. + used_representation ) ) AND ( NOT ( pdr.used_representation.name = 'target face' ) ) ) ) ) = 0 ) ); + wr12: ( ( SIZEOF( QUERY ( sa <* get_shape_aspects( SELF ) | ( ( sa.name = 'target boundary' ) AND ( sa.description = + 'directed angle occurrence' ) ) ) ) = 0 ) OR ( SIZEOF( QUERY ( pdr <* get_property_definition_representations( + SELF ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FACE_SHAPE_REPRESENTATION' IN TYPEOF( pdr. + used_representation ) ) ) ) = 1 ) ); + END_ENTITY; + + ENTITY feature_pattern + SUBTYPE OF ( replicate_feature ); + WHERE + wr1: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + + 'DEFINITION' ) | ( SIZEOF( QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) AND ( SIZEOF( QUERY ( srwp_i <* + pdr.used_representation.items | ( NOT ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PLACEMENT' IN TYPEOF( + srwp_i ) ) ) ) ) > 0 ) ) ) ) > 0 ) ) ) = 0 ); + wr2: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + + 'DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. + used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PLACEMENT' IN TYPEOF( it ) ) AND ( it.name = + 'base feature placement' ) ) ) ) > 1 ) ) ) ) = 0 ) ) ) ) = 0 ); + END_ENTITY; + + ENTITY field_variable_definition + SUPERTYPE OF ( + ONEOF ( + field_variable_element_definition, + field_variable_element_group_value, + field_variable_whole_model_value, + field_variable_node_definition ) ) + SUBTYPE OF ( state_definition ); + END_ENTITY; + + ENTITY field_variable_element_definition + SUPERTYPE OF ( + ONEOF ( + volume_3d_element_field_variable_definition, + volume_2d_element_field_variable_definition, + surface_3d_element_field_variable_definition, + surface_2d_element_field_variable_definition, + curve_3d_element_field_variable_definition, + curve_2d_element_field_variable_definition ) ) + SUBTYPE OF ( field_variable_definition ); + END_ENTITY; + + ENTITY field_variable_element_group_value + SUBTYPE OF ( field_variable_definition ); + group : element_group; + simple_value : field_value; + variable : volume_aggregated_variable; + coordinate_system : OPTIONAL fea_axis2_placement_3d; + WHERE + wr1: necessary_value_coordinate_system( simple_value, coordinate_system ); + wr2: consistent_value( simple_value, variable ); + wr3: appropriate_value_existence( simple_value, TYPEOF( SELF\state_definition.defined_state ) ); + END_ENTITY; + + ENTITY field_variable_node_definition + SUPERTYPE OF ( + ONEOF ( + volume_3d_node_field_variable_definition, + volume_2d_node_field_variable_definition, + surface_3d_node_field_variable_definition, + surface_2d_node_field_variable_definition, + curve_3d_node_field_variable_definition, + curve_2d_node_field_variable_definition ) ) + SUBTYPE OF ( field_variable_definition ); + node : node_output_reference; + group : OPTIONAL element_group; + END_ENTITY; + + ENTITY field_variable_whole_model_value + SUBTYPE OF ( field_variable_definition ); + simple_value : field_value; + variable : volume_aggregated_variable; + coordinate_system : OPTIONAL fea_axis2_placement_3d; + WHERE + wr1: necessary_value_coordinate_system( simple_value, coordinate_system ); + wr2: consistent_value( simple_value, variable ); + wr3: appropriate_value_existence( simple_value, TYPEOF( SELF\state_definition.defined_state ) ); + 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 | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CURVE' IN TYPEOF( closed_curve ) ) ) OR ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CIRCLE' IN TYPEOF( closed_curve ) ) OR ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ELLIPSE' IN TYPEOF( closed_curve ) ) OR ( ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.B_SPLINE_CURVE' IN TYPEOF( closed_curve ) ) AND ( + closed_curve\b_spline_curve.closed_curve = TRUE ) ) OR ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'COMPOSITE_CURVE' IN TYPEOF( closed_curve ) ) AND ( closed_curve\composite_curve.closed_curve = TRUE ) ) OR ( + ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 fillet + SUBTYPE OF ( transition_feature ); + WHERE + wr1: ( ( NOT ( SELF\shape_aspect.description = 'constant radius' ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( + QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.' + + 'DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN + TYPEOF( pdr.used_representation ) ) ) ) = 1 ) ) ) ) = 0 ) ); + wr2: ( ( NOT ( SELF\shape_aspect.description = 'constant radius' ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( + QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( ( NOT ( SIZEOF( impl_rep. + used_representation.items ) >= 1 ) ) AND ( SIZEOF( impl_rep.used_representation.items ) <= 3 ) ) ) ) = 0 ) ) ) ) = + 0 ) ); + wr3: ( ( NOT ( SELF.description = 'constant radius' ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( + QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( + QUERY ( it <* impl_rep.used_representation.items | ( ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'MEASURE_REPRESENTATION_ITEM' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * + TYPEOF( it ) ) = 2 ) AND ( it.name = 'radius' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ) ); + wr4: ( ( NOT ( SELF.description = 'constant radius' ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( + QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( + QUERY ( it <* impl_rep.used_representation.items | ( ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'MEASURE_REPRESENTATION_ITEM' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * + TYPEOF( it ) ) = 2 ) AND ( it.name = 'first offset' ) ) ) ) <= 1 ) ) ) ) = 0 ) ) ) ) = 0 ) ); + wr5: ( ( NOT ( SELF.description = 'constant radius' ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( + QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( + QUERY ( it <* impl_rep.used_representation.items | ( ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'MEASURE_REPRESENTATION_ITEM' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * + TYPEOF( it ) ) = 2 ) AND ( it.name = 'second offset' ) ) ) ) <= 1 ) ) ) ) = 0 ) ) ) ) = 0 ) ); + wr6: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + + 'DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'FACE_SHAPE_REPRESENTATION' IN TYPEOF( pdr.used_representation ) ) AND ( pdr.used_representation.name = + 'fillet face' ) ) ) ) = 1 ) ) ) ) = 0 ); + wr7: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + + 'DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'FACE_SHAPE_REPRESENTATION' IN TYPEOF( pdr.used_representation ) ) AND ( pdr.used_representation.name = + 'first face shape' ) ) ) ) = 1 ) ) ) ) = 0 ); + wr8: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + + 'DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'FACE_SHAPE_REPRESENTATION' IN TYPEOF( pdr.used_representation ) ) AND ( pdr.used_representation.name = + 'second face shape' ) ) ) ) = 1 ) ) ) ) = 0 ); + END_ENTITY; + + ENTITY finite_function + SUBTYPE OF ( maths_function, generic_literal ); + pairs : SET [1 : ?] OF LIST [2 : 2] OF maths_value; + WHERE + wr1: VALUE_UNIQUE( list_selected_components( pairs, 1 ) ); + END_ENTITY; + + ENTITY finite_integer_interval + SUBTYPE OF ( maths_space, generic_literal ); + min : INTEGER; + max : INTEGER; + DERIVE + size : positive_integer := ( max - min ) + 1; + WHERE + wr1: ( min <= max ); + END_ENTITY; + + ENTITY finite_real_interval + SUBTYPE OF ( maths_space, generic_literal ); + min : REAL; + min_closure : open_closed; + max : REAL; + max_closure : open_closed; + WHERE + wr1: ( min < max ); + END_ENTITY; + + ENTITY finite_space + SUBTYPE OF ( maths_space, generic_literal ); + members : SET OF maths_value; + WHERE + wr1: VALUE_UNIQUE( members ); + wr2: ( SIZEOF( QUERY ( expr <* QUERY ( member <* members | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'GENERIC_EXPRESSION' IN TYPEOF( member ) ) ) | ( NOT expression_is_constant( expr ) ) ) ) = 0 ); + wr3: no_cyclic_space_reference( SELF, [] ); + END_ENTITY; + + ENTITY fixed_constituent_assembly_constraint + SUBTYPE OF ( assembly_geometric_constraint, fixed_element_geometric_constraint ); + fixed_constituent : representative_shape_representation; + WHERE + wr1: ( SELF\explicit_constraint.constrained_elements[1]\geometric_representation_item.dim = 3 ); + wr2: assembly_leaf( using_product_definition_of_shape_representation( fixed_constituent )[1] ); + wr3: ( ( SIZEOF( SELF\explicit_constraint.constrained_elements ) = 1 ) AND ( SIZEOF( SELF\explicit_constraint. + reference_elements ) = 0 ) ); + wr4: ( fixed_constituent IN ( using_representations( SELF\explicit_constraint.constrained_elements[1] ) + + using_representation_with_mapping( SELF\explicit_constraint.constrained_elements[1] ) ) ); + END_ENTITY; + + ENTITY fixed_element_geometric_constraint + SUBTYPE OF ( explicit_geometric_constraint ); + SELF\explicit_constraint.constrained_elements : SET [1 : ?] OF geometric_constraint_element; + WHERE + wr1: ( SIZEOF( SELF\explicit_constraint.reference_elements ) = 0 ); + END_ENTITY; + + ENTITY fixed_instance_attribute_set + SUBTYPE OF ( variational_representation_item ); + fixed_attributes : SET [1 : ?] OF instance_attribute_reference; + WHERE + wr1: ( SIZEOF( QUERY ( q <* using_representations( SELF ) | ( SIZEOF( QUERY ( r <* q.items | ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FIXED_INSTANCE_ATTRIBUTE_SET' IN TYPEOF( r ) ) ) ) > 1 ) ) ) + = 0 ); + END_ENTITY; + + ENTITY flat_face + SUBTYPE OF ( feature_definition ); + WHERE + wr1: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + + 'DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'DIRECTION_SHAPE_REPRESENTATION' IN TYPEOF( pdr.used_representation ) ) AND ( pdr.used_representation.name = + 'removal direction' ) ) ) ) = 1 ) ) ) ) = 0 ); + wr2: ( SIZEOF( QUERY ( pds <* QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) | ( NOT ( SIZEOF( QUERY ( sa_occ <* USEDIN( pds, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) | ( ( sa_occ.description = + 'course of travel occurrence' ) AND ( SIZEOF( QUERY ( sdr <* QUERY ( sar <* USEDIN( sa_occ, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT' ) | ( ( sar. + description = 'path feature component usage' ) AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF( sar ) ) ) ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'PATH_FEATURE_COMPONENT' IN TYPEOF( sdr.relating_shape_aspect ) ) AND ( sdr.relating_shape_aspect.description = + 'linear' ) AND ( sdr.name = 'course of travel' ) ) ) ) = 1 ) ) ) ) = 1 ) ) ) ) = 0 ); + wr3: ( SIZEOF( QUERY ( pds <* QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) | ( NOT ( SIZEOF( QUERY ( sa_occ <* USEDIN( pds, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) | ( ( sa_occ.description = + 'removal boundary occurrence' ) AND ( SIZEOF( QUERY ( sdr <* QUERY ( sar <* USEDIN( sa_occ, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT' ) | ( ( sar. + description = 'profile usage' ) AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF( sar ) ) ) ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'LINEAR_PROFILE' IN TYPEOF( sdr.relating_shape_aspect ) ) AND ( sdr.name = 'removal boundary' ) ) ) ) = 1 ) ) ) ) + = 1 ) ) ) ) = 0 ); + wr4: ( SIZEOF( QUERY ( pds <* QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) | ( NOT ( SIZEOF( QUERY ( sa_occ <* USEDIN( pds, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) | ( ( sa_occ.description = + 'enclosed boundary occurrence' ) AND ( SIZEOF( QUERY ( sdr <* QUERY ( sar <* USEDIN( sa_occ, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT' ) | ( ( sar. + description = 'profile usage' ) AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF( sar ) ) ) ) | ( ( SIZEOF( [ + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CIRCULAR_CLOSED_PROFILE' , + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.NGON_CLOSED_PROFILE' , + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.RECTANGULAR_CLOSED_PROFILE' , + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CLOSED_PATH_PROFILE' ] * TYPEOF( sdr.relating_shape_aspect ) ) + = 1 ) AND ( sdr.relating_shape_aspect.description = 'boundary' ) ) ) ) = 1 ) ) ) ) <= 1 ) ) ) ) = 0 ); + wr5: ( SIZEOF( QUERY ( pdr <* get_property_definition_representations( SELF ) | ( ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PLANAR_SHAPE_REPRESENTATION' IN TYPEOF( pdr. + used_representation ) ) AND ( pdr.used_representation.name = 'maximum feature limit' ) ) ) ) >= 0 ); + wr6: ( SIZEOF( QUERY ( pds <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + + 'DEFINITION' ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF( + pds ) ) AND ( SIZEOF( QUERY ( csa <* USEDIN( pds, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT.' + + 'OF_SHAPE' ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.COMPOSITE_SHAPE_ASPECT' IN TYPEOF( csa ) ) + AND ( csa.name = 'uncut volume' ) AND ( SIZEOF( QUERY ( sar <* csa.component_relationships | ( ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF( sar ) ) AND ( + SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.BOSS', + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROTRUSION' ] * TYPEOF( sar.related_shape_aspect ) ) = 1 ) ) ) ) + = 1 ) ) ) ) <= 1 ) ) ) ) = 1 ); + wr7: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + + 'DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. + used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( SIZEOF( [ + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM' , + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( it ) ) = 2 ) AND ( it. + name = 'removal depth' ) ) ) ) <= 1 ) ) ) ) = 0 ) ) ) ) = 0 ); + END_ENTITY; + + ENTITY flat_pattern_ply_representation_relationship + SUBTYPE OF ( shape_representation_relationship ); + WHERE + wr1: ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'GEOMETRIC_TOLERANCE_WITH_DATUM_REFERENCE' ) IN + TYPEOF( SELF ) ) ); + END_ENTITY; + + ENTITY flow_equation_set + SUBTYPE OF ( mbna_equation_set ); + SELF\mbna_equation_set.equations : fd_governing_equation; + fd_models : SET OF fd_behaviour_models; + END_ENTITY; + + ENTITY force_measure_with_unit + SUBTYPE OF ( measure_with_unit ); + WHERE + wr1: ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 format_function + SUBTYPE OF ( string_expression, binary_generic_expression ); + DERIVE + value_to_format : generic_expression := SELF\binary_generic_expression.operands[1]; + format_string : generic_expression := SELF\binary_generic_expression.operands[2]; + WHERE + wr1: ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.NUMERIC_EXPRESSION' IN TYPEOF( value_to_format ) ) AND ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.STRING_EXPRESSION' IN TYPEOF( format_string ) ) ); + 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 ( + b_spline_curve_knot_locator, + b_spline_curve_segment, + b_spline_surface_knot_locator, + b_spline_surface_patch, + b_spline_surface_strip, + boundary_curve_of_b_spline_or_rectangular_composite_surface, + box_domain, + character_glyph_style_outline, + character_glyph_style_stroke, + composite_curve_segment, + composite_curve_transition_locator, + curve_style, + curve_style_font, + curve_style_font_and_scaling, + curve_style_font_pattern, + externally_defined_style, + fill_area_style, + interpolated_configuration_segment, + kinematic_path_segment, + plane_angle_and_length_pair, + plane_angle_and_ratio_pair, + point_style, + presentation_style_assignment, + rectangular_composite_surface_transition_locator, + surface_patch, + 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, + view_volume ) + ANDOR + ONEOF ( + character_glyph_style_outline, + character_glyph_style_stroke, + curve_style, + curve_style_font, + curve_style_font_and_scaling, + curve_style_font_pattern, + externally_defined_style, + 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 free_edge + SUBTYPE OF ( inapt_topology ); + SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_logical_test; + WHERE + wr1: validate_measured_data_type( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.BOOLEAN_VALUE' ); + wr2: validate_inspected_elements_type( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CONNECTED_FACE_SET'] ); + wr3: validate_locations_of_extreme_value_type( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.EDGE_CURVE'] ); + wr4: validate_accuracy_types( SELF, [] ); + wr5: ( SIZEOF( QUERY ( sdqr <* bag_to_set( USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'DATA_QUALITY_INSPECTION_RESULT.' + 'CRITERION_INSPECTED' ) ) | ( ( ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'SHAPE_DATA_QUALITY_INSPECTION_RESULT' ) IN TYPEOF( sdqr ) ) + AND ( SIZEOF( QUERY ( sdqiir <* bag_to_set( USEDIN( sdqr, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'DATA_QUALITY_INSPECTION_REPORT.' + 'INSPECTION_RESULT' ) ) | ( ( ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'SHAPE_DATA_QUALITY_INSPECTION_INSTANCE_REPORT' ) IN + TYPEOF( sdqiir ) ) AND ( SIZEOF( QUERY ( sdqiri <* sdqiir.inspected_instances | ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CLOSED_SHELL' IN TYPEOF( sdqiri.inspected_elements[1] ) ) ) ) + = 0 ) ) ) ) = 0 ) ) ) ) = 0 ); + END_ENTITY; + + ENTITY free_form_assignment + SUBTYPE OF ( free_form_constraint ); + WHERE + wr1: ( SIZEOF( QUERY ( q <* SELF\free_form_constraint.constrained_elements | ( q IN used_variables( SELF\ + free_form_constraint.constraining_expression ) ) ) ) = 0 ); + wr2: ( SIZEOF( QUERY ( q <* SELF\free_form_constraint.reference_elements | ( NOT ( q IN used_variables( SELF\ + free_form_constraint.constraining_expression ) ) ) ) ) = 0 ); + wr3: ( SIZEOF( SELF\free_form_constraint.reference_elements ) >= 1 ); + wr4: ( SIZEOF( QUERY ( q <* SELF\free_form_constraint.constrained_elements | ( NOT compatible_spaces( values_space_of( SELF + \free_form_constraint.constraining_expression ), q\maths_variable.values_space ) ) ) ) = 0 ); + END_ENTITY; + + ENTITY free_form_constraint + ABSTRACT SUPERTYPE OF ( + ONEOF ( + free_form_assignment, + free_form_relation ) ) + SUBTYPE OF ( explicit_constraint ); + SELF\explicit_constraint.constrained_elements : SET [1 : ?] OF variational_parameter; + SELF\explicit_constraint.reference_elements : SET [0 : ?] OF variational_parameter; + constraining_expression : expression; + END_ENTITY; + + ENTITY free_form_relation + SUBTYPE OF ( free_form_constraint ); + WHERE + wr1: ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.BOOLEAN_EXPRESSION' IN TYPEOF( SELF\free_form_constraint. + constraining_expression ) ); + wr2: ( SIZEOF( QUERY ( q <* ( SELF\free_form_constraint.constrained_elements + SELF\free_form_constraint.reference_elements ) + | ( NOT ( q IN used_variables( SELF\free_form_constraint.constraining_expression ) ) ) ) ) = 0 ); + END_ENTITY; + + ENTITY free_kinematic_motion_representation + SUBTYPE OF ( representation_relationship_with_transformation ); + SELF\representation_relationship.rep_1 : representative_shape_representation; + SELF\representation_relationship.rep_2 : representative_shape_representation; + motion : kinematic_path; + WHERE + wr1: ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ITEM_DEFINED_TRANSFORMATION' IN TYPEOF( SELF\ + representation_relationship_with_transformation.transformation_operator ) ); + wr2: ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.GEOMETRIC_REPRESENTATION_ITEM' IN TYPEOF( SELF\ + representation_relationship_with_transformation.transformation_operator\item_defined_transformation. + transform_item_1 ) ) AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.GEOMETRIC_REPRESENTATION_ITEM' IN + TYPEOF( SELF\representation_relationship_with_transformation.transformation_operator\item_defined_transformation. + transform_item_2 ) ) ); + wr3: ( ( dimension_of( SELF\representation_relationship_with_transformation.transformation_operator\ + item_defined_transformation.transform_item_1 ) = 3 ) AND ( dimension_of( SELF\ + representation_relationship_with_transformation.transformation_operator\item_defined_transformation. + transform_item_2 ) = 3 ) ); + wr4: ( ( SELF\representation_relationship.rep_1 IN ( using_representations( SELF\ + representation_relationship_with_transformation.transformation_operator\item_defined_transformation. + transform_item_1 ) + using_representation_with_mapping( SELF\representation_relationship_with_transformation. + transformation_operator\item_defined_transformation.transform_item_1 ) ) ) AND ( SELF\representation_relationship. + rep_2 IN ( using_representations( SELF\representation_relationship_with_transformation.transformation_operator\ + item_defined_transformation.transform_item_2 ) + using_representation_with_mapping( SELF\ + representation_relationship_with_transformation.transformation_operator\item_defined_transformation. + transform_item_2 ) ) ) ); + END_ENTITY; + + ENTITY free_variable_semantics + SUBTYPE OF ( variable_semantics ); + END_ENTITY; + + ENTITY freedom_and_coefficient; + freedom : degree_of_freedom; + a : measure_or_unspecified_value; + END_ENTITY; + + ENTITY freedoms_list; + freedoms : LIST [1 : ?] OF degree_of_freedom; + END_ENTITY; + + ENTITY frequency_measure_with_unit + SUBTYPE OF ( measure_with_unit ); + WHERE + wr1: ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 frozen_assignment + SUBTYPE OF ( approval_assignment ); + items : SET [1 : ?] OF change_management_object; + END_ENTITY; + + ENTITY fully_constrained_pair + SUBTYPE OF ( low_order_kinematic_pair ); + DERIVE + SELF\low_order_kinematic_pair.t_x : BOOLEAN := FALSE; + SELF\low_order_kinematic_pair.t_y : BOOLEAN := FALSE; + SELF\low_order_kinematic_pair.t_z : BOOLEAN := FALSE; + SELF\low_order_kinematic_pair.r_x : BOOLEAN := FALSE; + SELF\low_order_kinematic_pair.r_y : BOOLEAN := FALSE; + SELF\low_order_kinematic_pair.r_z : BOOLEAN := FALSE; + END_ENTITY; + + ENTITY func + SUBTYPE OF ( compound_representation_item ); + END_ENTITY; + + ENTITY function_application + SUBTYPE OF ( multiple_arity_generic_expression ); + func : maths_function_select; + arguments : LIST [1 : ?] OF maths_expression; + DERIVE + SELF\multiple_arity_generic_expression.operands : LIST [2 : ?] OF generic_expression := [convert_to_maths_function( func )] + + convert_to_operands( arguments ); + WHERE + wr1: function_applicability( func, arguments ); + END_ENTITY; + + ENTITY function_space + SUBTYPE OF ( maths_space, generic_literal ); + domain_constraint : space_constraint_type; + domain_argument : maths_space; + range_constraint : space_constraint_type; + range_argument : maths_space; + WHERE + wr1: ( expression_is_constant( domain_argument ) AND expression_is_constant( range_argument ) ); + wr2: ( ( domain_argument <> the_empty_space ) AND ( range_argument <> the_empty_space ) ); + wr3: ( ( domain_constraint <> sc_member ) OR ( NOT member_of( the_empty_space, domain_argument ) ) ); + wr4: ( ( range_constraint <> sc_member ) OR ( NOT member_of( the_empty_space, range_argument ) ) ); + wr5: ( NOT ( any_space_satisfies( domain_constraint, domain_argument ) AND any_space_satisfies( range_constraint, + range_argument ) ) ); + 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 g1_discontinuity_between_adjacent_faces + SUBTYPE OF ( non_smooth_geometry_transition_across_edge ); + SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; + WHERE + wr1: ( ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' ) IN TYPEOF( SELF + \shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold ) ) + AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PLANE_ANGLE_MEASURE' IN value_limit_type( SELF\ + shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold ) ) ); + wr2: validate_measured_data_type( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PLANE_ANGLE_MEASURE' ); + wr3: validate_inspected_elements_type( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CONNECTED_FACE_SET'] ); + wr4: validate_locations_of_extreme_value_type( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'POINT_ON_EDGE_CURVE' ] ); + wr5: validate_accuracy_types( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PLANE_ANGLE_MEASURE'] ); + END_ENTITY; + + ENTITY g1_discontinuous_curve + SUBTYPE OF ( discontinuous_geometry ); + SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; + WHERE + wr1: ( ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' ) IN TYPEOF( SELF + \shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold ) ) + AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PLANE_ANGLE_MEASURE' IN value_limit_type( SELF\ + shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold ) ) ); + wr2: validate_measured_data_type( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PLANE_ANGLE_MEASURE' ); + wr3: validate_inspected_elements_type( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.B_SPLINE_CURVE'] ); + wr4: validate_locations_of_extreme_value_type( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'B_SPLINE_CURVE_KNOT_LOCATOR' ] ); + wr5: validate_accuracy_types( SELF, [] ); + END_ENTITY; + + ENTITY g1_discontinuous_surface + SUBTYPE OF ( discontinuous_geometry ); + SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; + WHERE + wr1: ( ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' ) IN TYPEOF( SELF + \shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold ) ) + AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PLANE_ANGLE_MEASURE' IN value_limit_type( SELF\ + shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold ) ) ); + wr2: validate_measured_data_type( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PLANE_ANGLE_MEASURE' ); + wr3: validate_inspected_elements_type( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.B_SPLINE_SURFACE'] ); + wr4: validate_locations_of_extreme_value_type( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'B_SPLINE_SURFACE_KNOT_LOCATOR' ] ); + wr5: validate_accuracy_types( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PLANE_ANGLE_MEASURE'] ); + END_ENTITY; + + ENTITY g2_discontinuity_between_adjacent_faces + SUBTYPE OF ( non_smooth_geometry_transition_across_edge ); + SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; + assessment_specification_2 : shape_data_quality_assessment_by_numerical_test; + flat_curvature_radius_tolerance : length_measure; + WHERE + wr1: ( ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' ) IN TYPEOF( SELF + \shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold ) ) + AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PLANE_ANGLE_MEASURE' IN value_limit_type( SELF\ + shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold ) ) ); + wr2: ( ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' ) IN TYPEOF( + assessment_specification_2\shape_data_quality_assessment_by_numerical_test.threshold ) ) AND ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.RATIO_MEASURE' IN value_limit_type( + assessment_specification_2\shape_data_quality_assessment_by_numerical_test.threshold ) ) ); + wr3: validate_measured_data_type( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PLANE_ANGLE_AND_RATIO_PAIR' ); + wr4: validate_inspected_elements_type( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CONNECTED_FACE_SET'] ); + wr5: validate_locations_of_extreme_value_type( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'POINT_ON_EDGE_CURVE' ] ); + wr6: validate_accuracy_types( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.RATIO_MEASURE'] ); + END_ENTITY; + + ENTITY g2_discontinuous_curve + SUBTYPE OF ( discontinuous_geometry ); + SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; + assessment_specification_2 : shape_data_quality_assessment_by_numerical_test; + flat_curvature_radius_tolerance : length_measure; + WHERE + wr1: ( ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' ) IN TYPEOF( SELF + \shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold ) ) + AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PLANE_ANGLE_MEASURE' IN value_limit_type( SELF\ + shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold ) ) ); + wr2: ( ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' ) IN TYPEOF( + assessment_specification_2\shape_data_quality_assessment_by_numerical_test.threshold ) ) AND ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.RATIO_MEASURE' IN value_limit_type( + assessment_specification_2\shape_data_quality_assessment_by_numerical_test.threshold ) ) ); + wr3: validate_measured_data_type( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PLANE_ANGLE_AND_RATIO_PAIR' ); + wr4: validate_inspected_elements_type( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.B_SPLINE_CURVE'] ); + wr5: validate_locations_of_extreme_value_type( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'B_SPLINE_CURVE_KNOT_LOCATOR' ] ); + wr6: validate_accuracy_types( SELF, [] ); + END_ENTITY; + + ENTITY g2_discontinuous_surface + SUBTYPE OF ( discontinuous_geometry ); + SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; + assessment_specification_2 : shape_data_quality_assessment_by_numerical_test; + flat_curvature_radius_tolerance : length_measure; + WHERE + wr1: ( ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' ) IN TYPEOF( SELF + \shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold ) ) + AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PLANE_ANGLE_MEASURE' IN value_limit_type( SELF\ + shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold ) ) ); + wr2: ( ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' ) IN TYPEOF( + assessment_specification_2\shape_data_quality_assessment_by_numerical_test.threshold ) ) AND ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.RATIO_MEASURE' IN value_limit_type( + assessment_specification_2\shape_data_quality_assessment_by_numerical_test.threshold ) ) ); + wr3: validate_measured_data_type( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PLANE_ANGLE_AND_RATIO_PAIR' ); + wr4: validate_inspected_elements_type( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.B_SPLINE_SURFACE'] ); + wr5: validate_locations_of_extreme_value_type( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'B_SPLINE_SURFACE_KNOT_LOCATOR' ] ); + wr6: validate_accuracy_types( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.RATIO_MEASURE'] ); + END_ENTITY; + + ENTITY gap_between_adjacent_edges_in_loop + SUBTYPE OF ( geometric_gap_in_topology ); + SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; + WHERE + wr1: ( ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' ) IN TYPEOF( SELF + \shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold ) ) + AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE' IN value_limit_type( SELF\ + shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold ) ) ); + wr2: validate_measured_data_type( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE' ); + wr3: validate_inspected_elements_type( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.EDGE_LOOP'] ); + wr4: validate_locations_of_extreme_value_type( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ORIENTED_EDGE'] ); + wr5: validate_accuracy_types( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE'] ); + END_ENTITY; + + ENTITY gap_between_edge_and_base_surface + SUBTYPE OF ( geometric_gap_in_topology ); + SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; + WHERE + wr1: ( ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' ) IN TYPEOF( SELF + \shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold ) ) + AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE' IN value_limit_type( SELF\ + shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold ) ) ); + wr2: validate_measured_data_type( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE' ); + wr3: validate_inspected_elements_type( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FACE_SURFACE'] ); + wr4: validate_locations_of_extreme_value_type( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'POINT_ON_EDGE_CURVE' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'POINT_ON_FACE_SURFACE'] ); + wr5: validate_accuracy_types( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE'] ); + END_ENTITY; + + ENTITY gap_between_faces_related_to_an_edge + SUBTYPE OF ( geometric_gap_in_topology ); + SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; + WHERE + wr1: ( ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' ) IN TYPEOF( SELF + \shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold ) ) + AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE' IN value_limit_type( SELF\ + shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold ) ) ); + wr2: validate_measured_data_type( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE' ); + wr3: validate_inspected_elements_type( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CONNECTED_FACE_SET'] ); + wr4: validate_locations_of_extreme_value_type( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'POINT_ON_EDGE_CURVE' ] ); + wr5: validate_accuracy_types( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE'] ); + END_ENTITY; + + ENTITY gap_between_pcurves_related_to_an_edge + SUBTYPE OF ( geometric_gap_in_topology ); + SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; + WHERE + wr1: ( ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' ) IN TYPEOF( SELF + \shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold ) ) + AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE' IN value_limit_type( SELF\ + shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold ) ) ); + wr2: validate_measured_data_type( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE' ); + wr3: validate_inspected_elements_type( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CONNECTED_FACE_SET'] ); + wr4: validate_locations_of_extreme_value_type( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.POINT_ON_SURFACE', + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.POINT_ON_SURFACE' ] ); + wr5: validate_accuracy_types( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE'] ); + END_ENTITY; + + ENTITY gap_between_vertex_and_base_surface + SUBTYPE OF ( geometric_gap_in_topology ); + SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; + WHERE + wr1: ( ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' ) IN TYPEOF( SELF + \shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold ) ) + AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE' IN value_limit_type( SELF\ + shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold ) ) ); + wr2: validate_measured_data_type( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE' ); + wr3: validate_inspected_elements_type( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FACE_SURFACE'] ); + wr4: validate_locations_of_extreme_value_type( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.VERTEX_POINT', + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'POINT_ON_FACE_SURFACE'] ); + wr5: validate_accuracy_types( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE'] ); + END_ENTITY; + + ENTITY gap_between_vertex_and_edge + SUBTYPE OF ( geometric_gap_in_topology ); + SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; + WHERE + wr1: ( ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' ) IN TYPEOF( SELF + \shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold ) ) + AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE' IN value_limit_type( SELF\ + shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold ) ) ); + wr2: validate_measured_data_type( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE' ); + wr3: validate_inspected_elements_type( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.EDGE_CURVE'] ); + wr4: validate_locations_of_extreme_value_type( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.VERTEX_POINT', + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'POINT_ON_EDGE_CURVE'] ); + wr5: validate_accuracy_types( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE'] ); + END_ENTITY; + + ENTITY gas_model + SUBTYPE OF ( mbna_behaviour_model ); + model_type : gas_model_type; + END_ENTITY; + + ENTITY gear + SUBTYPE OF ( feature_definition ); + WHERE + wr1 : ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + + 'DEFINITION' ) | ( SIZEOF( QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) AND ( 10 <= SIZEOF( pdr. + used_representation.items ) ) AND ( SIZEOF( pdr.used_representation.items ) <= 13 ) ) ) ) = 1 ) ) ) = 1 ); + wr2 : ( ( NOT ( SELF\characterized_object.description IN [ 'straight bevel gear', 'helical bevel gear', 'spur gear', + 'helical gear' ] ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. + used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( SIZEOF( [ + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM' , + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.RATIO_MEASURE_WITH_UNIT' ] * TYPEOF( it ) ) = 2 ) AND ( it. + name = 'number of teeth' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ) ); + wr3 : ( ( NOT ( SELF\characterized_object.description IN [ 'straight bevel gear', 'helical bevel gear', 'spur gear', + 'helical gear' ] ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. + used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( SIZEOF( [ + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM' , + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PLANE_ANGLE_MEASURE_WITH_UNIT' ] * TYPEOF( it ) ) = 2 ) AND + ( it.name = 'reference pressure angle' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ) ); + wr4 : ( ( NOT ( SELF\characterized_object.description IN [ 'straight bevel gear', 'helical bevel gear', 'spur gear', + 'helical gear' ] ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. + used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( SIZEOF( [ + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM' , + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( it ) ) = 2 ) AND ( it. + name = 'rake shift factor' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ) ); + wr5 : ( ( NOT ( SELF\characterized_object.description IN [ 'straight bevel gear', 'helical bevel gear', 'spur gear', + 'helical gear' ] ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. + used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( SIZEOF( [ + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM' , + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( it ) ) = 2 ) AND ( it. + name = 'nominal tooth depth' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ) ); + wr6 : ( ( NOT ( SELF\characterized_object.description IN [ 'straight bevel gear', 'helical bevel gear', 'spur gear', + 'helical gear' ] ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. + used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( SIZEOF( [ + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM' , + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( it ) ) = 2 ) AND ( it. + name = 'face width' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ) ); + wr7 : ( ( NOT ( SELF\characterized_object.description IN [ 'straight bevel gear', 'helical bevel gear', 'spur gear', + 'helical gear' ] ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. + used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( SIZEOF( [ + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM' , + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( it ) ) = 2 ) AND ( it. + name = 'tip diameter' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ) ); + wr8 : ( ( NOT ( SELF\characterized_object.description IN [ 'straight bevel gear', 'helical bevel gear', 'spur gear', + 'helical gear' ] ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. + used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF( it ) ) AND ( it. + name = 'module or diametral pitch' ) AND ( ( it.description = 'module' ) OR ( it.description = 'diametral pitch' ) ) ) ) ) + = 1 ) ) ) ) = 0 ) ) ) ) = 0 ) ); + wr9 : ( ( NOT ( SELF\characterized_object.description IN [ 'straight bevel gear', 'helical bevel gear', 'spur gear', + 'helical gear' ] ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. + used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF( it ) ) AND ( it. + name = 'internal or external gear' ) AND ( ( it.description = 'internal' ) OR ( it.description = 'external' ) ) ) ) ) + = 1 ) ) ) ) = 0 ) ) ) ) = 0 ) ); + wr10: ( ( NOT ( SELF\characterized_object.description IN [ 'straight bevel gear', 'helical bevel gear', 'spur gear', + 'helical gear' ] ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. + used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( SIZEOF( [ + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM' , + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( it ) ) = 2 ) AND ( it. + name = 'normal attribute' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ) ); + wr11: ( ( NOT ( SELF\characterized_object.description IN [ 'straight bevel gear', 'helical bevel gear', 'spur gear', + 'helical gear' ] ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. + used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( SIZEOF( [ + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM' , + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( it ) ) = 2 ) AND ( it. + name = 'root fillet radius' ) ) ) ) <= 1 ) ) ) ) = 0 ) ) ) ) = 0 ) ); + wr12: ( ( NOT ( SELF\characterized_object.description IN [ 'helix gear', 'helical bevel gear'] ) ) OR ( SIZEOF( + QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) + | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. + used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( SIZEOF( [ + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM' , + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PLANE_ANGLE_MEASURE_WITH_UNIT' ] * TYPEOF( it ) ) = 2 ) AND + ( it.name = 'reference helix angle' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ) ); + wr13: ( ( NOT ( SELF\characterized_object.description IN [ 'helix gear', 'helical bevel gear'] ) ) OR ( SIZEOF( + QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) + | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. + used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF( it ) ) AND ( it. + name = 'gear tooth' ) AND ( ( it.description = 'left hand tooth' ) OR ( it.description = 'right hand tooth' ) ) ) ) ) + = 1 ) ) ) ) = 0 ) ) ) ) = 0 ) ); + wr14: ( ( NOT ( SELF\characterized_object.description IN [ 'straight bevel gear', 'helical bevel gear'] ) ) OR ( SIZEOF( + QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) + | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. + used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( SIZEOF( [ + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM' , + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PLANE_ANGLE_MEASURE_WITH_UNIT' ] * TYPEOF( it ) ) = 2 ) AND + ( it.name = 'tip angle' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ) ); + wr15: ( ( NOT ( SELF\characterized_object.description IN [ 'straight bevel gear', 'helical bevel gear'] ) ) OR ( SIZEOF( + QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) + | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. + used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( SIZEOF( [ + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM' , + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PLANE_ANGLE_MEASURE_WITH_UNIT' ] * TYPEOF( it ) ) = 2 ) AND + ( it.name = 'root angle' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ) ); + wr16: ( SIZEOF( QUERY ( pds <* QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) | ( NOT ( SIZEOF( QUERY ( sa_occ <* USEDIN( pds, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) | ( SIZEOF( QUERY ( sdr <* + QUERY ( sar <* USEDIN( sa_occ, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.' + + 'RELATED_SHAPE_ASPECT' ) | ( ( sar.description = 'applied shape' ) AND ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF( sar ) ) ) ) | ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT' IN TYPEOF( sdr.relating_shape_aspect ) ) ) ) = + 1 ) ) ) = 1 ) ) ) ) = 0 ); + END_ENTITY; + + ENTITY gear_pair + SUBTYPE OF ( low_order_kinematic_pair_with_motion_coupling ); + radius_first_link : length_measure; + radius_second_link : length_measure; + bevel : plane_angle_measure; + helical_angle : plane_angle_measure; + gear_ratio : REAL; + WHERE + wr1: ( SIZEOF( QUERY ( lr <* SELF\kinematic_pair.associated_link_representations_1 | ( NOT ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.RIGID_LINK_REPRESENTATION' IN TYPEOF( lr ) ) ) ) ) = 0 ); + END_ENTITY; + + ENTITY gear_pair_value + SUBTYPE OF ( pair_value ); + SELF\pair_value.applies_to_pair : gear_pair; + actual_rotation_1 : plane_angle_measure; + DERIVE + actual_rotation_2 : plane_angle_measure := ( -actual_rotation_1 ) * SELF\pair_value.applies_to_pair\gear_pair.gear_ratio; + END_ENTITY; + + ENTITY gear_pair_with_range + SUBTYPE OF ( gear_pair ); + lower_limit_actual_rotation_1 : OPTIONAL plane_angle_measure; + upper_limit_actual_rotation_1 : OPTIONAL plane_angle_measure; + WHERE + wr1: ( ( ( NOT EXISTS( lower_limit_actual_rotation_1 ) ) OR ( NOT EXISTS( upper_limit_actual_rotation_1 ) ) ) XOR ( + lower_limit_actual_rotation_1 < upper_limit_actual_rotation_1 ) ); + END_ENTITY; + + ENTITY general_datum_reference + ABSTRACT SUPERTYPE OF ( + ONEOF ( + datum_reference_compartment, + datum_reference_element ) ) + SUBTYPE OF ( shape_aspect ); + base : datum_or_common_datum; + modifiers : OPTIONAL SET [1 : ?] OF datum_reference_modifier; + WHERE + wr1: ( SELF\shape_aspect.name = '' ); + wr2: ( NOT EXISTS( SELF\shape_aspect.description ) ); + wr3: ( NOT EXISTS( SELF\shape_aspect.id ) ); + wr4: ( SELF\shape_aspect.product_definitional = FALSE ); + wr5: ( ( NOT ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.DATUM' IN TYPEOF( base ) ) ) OR ( SELF\shape_aspect. + of_shape = base\shape_aspect.of_shape ) ); + wr6: ( ( NOT ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.COMMON_DATUM_LIST' IN TYPEOF( base ) ) ) OR ( SELF\ + shape_aspect.of_shape = base[1]\shape_aspect.of_shape ) ); + END_ENTITY; + + ENTITY general_feature + SUBTYPE OF ( shape_feature_definition ); + WHERE + wr1: ( ( SIZEOF( get_property_definition_representations( SELF ) ) <= 1 ) AND ( SIZEOF( QUERY ( pdr <* + get_property_definition_representations( SELF ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) ) <= 1 ) ); + wr2: ( SIZEOF( QUERY ( sa <* get_shape_aspects( SELF ) | ( sa.description = 'course of travel occurrence' ) ) ) = SIZEOF( + QUERY ( sa <* get_shape_aspects( SELF ) | ( ( sa.description = 'course of travel occurrence' ) AND ( SIZEOF( + QUERY ( sar <* USEDIN( sa, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.' + + 'RELATED_SHAPE_ASPECT' ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_DEFINING_RELATIONSHIP' + IN TYPEOF( sar ) ) AND ( sar.name = 'course of travel' ) ) ) ) = 1 ) ) ) ) ); + wr3: ( SIZEOF( QUERY ( sa <* get_shape_aspects( SELF ) | ( sa.description = 'course of travel occurrence' ) ) ) = SIZEOF( + QUERY ( sa <* get_shape_aspects( SELF ) | ( ( sa.description = 'course of travel occurrence' ) AND ( SIZEOF( + QUERY ( sar <* USEDIN( sa, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.' + + 'RELATED_SHAPE_ASPECT' ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_DEFINING_RELATIONSHIP' + IN TYPEOF( sar ) ) AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PATH_FEATURE_COMPONENT' IN TYPEOF( sar + .relating_shape_aspect ) ) ) ) ) = 1 ) ) ) ) ); + wr4: ( SIZEOF( QUERY ( sa <* get_shape_aspects( SELF ) | ( sa.description = 'boundary occurrence' ) ) ) = SIZEOF( + QUERY ( sa <* get_shape_aspects( SELF ) | ( ( sa.description = 'boundary occurrence' ) AND ( SIZEOF( + QUERY ( sar <* USEDIN( sa, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.' + + 'RELATED_SHAPE_ASPECT' ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_DEFINING_RELATIONSHIP' + IN TYPEOF( sar ) ) AND ( sar.description = 'profile usage' ) ) ) ) = 1 ) ) ) ) ); + wr5: ( ( SIZEOF( QUERY ( sa <* get_shape_aspects( SELF ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'COMPOSITE_SHAPE_ASPECT' IN TYPEOF( sa ) ) ) ) <= 1 ) AND ( SIZEOF( QUERY ( sa <* get_shape_aspects( SELF ) | + ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.COMPOSITE_SHAPE_ASPECT' IN TYPEOF( sa ) ) AND ( sa.name = + 'general compound feature' ) AND ( SIZEOF( QUERY ( sar <* USEDIN( sa, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATING_SHAPE_ASPECT' ) | ( ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF( sar ) ) AND ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.INSTANCED_FEATURE' IN TYPEOF( sar.related_shape_aspect ) ) ) ) ) + >= 2 ) ) ) ) <= 1 ) ); + END_ENTITY; + + ENTITY general_linear_function + SUBTYPE OF ( maths_function, unary_generic_expression ); + SELF\unary_generic_expression.operand : maths_function; + sum_index : one_or_two; + DERIVE + mat : maths_function := SELF\unary_generic_expression.operand; + WHERE + wr1: function_is_2d_table( mat ); + wr2: ( ( space_dimension( mat.range ) = 1 ) AND subspace_of_es( factor1( mat.range ), es_numbers ) ); + END_ENTITY; + + ENTITY general_material_property + SUBTYPE OF ( general_property ); + WHERE + wr1: ( SIZEOF( QUERY ( gpa <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'GENERAL_PROPERTY_ASSOCIATION.BASE_DEFINITION' ) | ( NOT ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'MATERIAL_PROPERTY' IN TYPEOF( gpa\general_property_association.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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 generated_finite_numeric_space + SUBTYPE OF ( finite_space ); + start_value : maths_number; + increment_value : maths_number; + increment_number : positive_integer; + DERIVE + SELF\finite_space.members : SET [2 : ?] OF maths_number := make_numeric_set( start_value, increment_value, + increment_number ); + WHERE + wr1: ( increment_value <> 0 ); + 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_product_definition_reference + ABSTRACT SUPERTYPE OF ( + ONEOF ( + product_definition_reference, + product_definition_reference_with_local_representation ) ); + source : external_source; + 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_contact + SUBTYPE OF ( derived_shape_aspect ); + WHERE + wr1: ( SIZEOF( SELF\derived_shape_aspect.deriving_relationships ) = 2 ); + END_ENTITY; + + ENTITY geometric_curve_set + SUBTYPE OF ( geometric_set ); + WHERE + wr1: ( SIZEOF( QUERY ( temp <* SELF\geometric_set.elements | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SURFACE' + IN TYPEOF( temp ) ) ) ) = 0 ); + END_ENTITY; + + ENTITY geometric_gap_in_topology + ABSTRACT SUPERTYPE OF ( + ONEOF ( + gap_between_adjacent_edges_in_loop, + gap_between_vertex_and_base_surface, + gap_between_vertex_and_edge, + gap_between_edge_and_base_surface, + gap_between_pcurves_related_to_an_edge, + gap_between_faces_related_to_an_edge ) ) + SUBTYPE OF ( inapt_topology_and_geometry_relationship ); + 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.used_representation : shape_model; + SELF\item_identified_representation_usage.identified_item : geometric_model_item; + UNIQUE + ur1 : definition; + END_ENTITY; + + ENTITY geometric_model_element_relationship + SUBTYPE OF ( geometric_representation_item, representation_item_relationship ); + SELF\representation_item_relationship.relating_representation_item : geometric_representation_item; + SELF\representation_item_relationship.related_representation_item : geometric_representation_item; + UNIQUE + ur1 : SELF\representation_item_relationship.relating_representation_item, SELF\representation_item_relationship. + related_representation_item; + WHERE + wr1: ( SELF\representation_item_relationship.relating_representation_item :<>: SELF\representation_item_relationship. + related_representation_item ); + END_ENTITY; + + ENTITY geometric_node + SUBTYPE OF ( node_representation ); + WHERE + wr1: ( SIZEOF( QUERY ( item <* SELF\representation.items | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.POINT' IN + TYPEOF( item ) ) ) ) = 1 ); + END_ENTITY; + + ENTITY geometric_representation_context + SUPERTYPE OF ( + ONEOF ( + geometric_representation_context_with_parameter, + path_parameter_representation_context ) ) + SUBTYPE OF ( representation_context ); + coordinate_space_dimension : dimension_count; + END_ENTITY; + + ENTITY geometric_representation_context_with_parameter + SUBTYPE OF ( geometric_representation_context ); + parameter_unit : OPTIONAL unit; + 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, + primitive_2d, + right_angular_wedge, + volume, + half_space_solid, + shell_based_surface_model, + face_based_surface_model, + shell_based_wireframe_model, + edge_based_wireframe_model, + geometric_set, + tessellated_item ) + ANDOR + ONEOF ( + camera_model, + camera_model_d3_multi_clipping_intersection, + camera_model_d3_multi_clipping_union, + curve, + direction, + light_source ) + ANDOR + ONEOF ( + annotation_fill_area, + composite_text, + curve, + defined_character_glyph, + defined_symbol, + point, + symbol_target, + text_literal ) + ANDOR + ONEOF ( + kinematic_path, + placement ) + ANDOR + ONEOF ( + curve, + externally_defined_hatch_style, + externally_defined_tile_style, + fill_area_style_hatching, + fill_area_style_tile_coloured_region, + fill_area_style_tile_curve_with_style, + fill_area_style_tile_symbol_with_style, + fill_area_style_tiles, + one_direction_repeat_factor, + point, + vector ) + ANDOR + ONEOF ( + curve, + planar_extent ) + ANDOR + ONEOF ( + rotation_about_direction, + su_parameters ) ) + SUBTYPE OF ( representation_item ); + DERIVE + dim : dimension_count := dimension_of( SELF ); + WHERE + wr1: ( SIZEOF( QUERY ( using_rep <* using_representations( SELF ) | ( NOT ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 + ABSTRACT SUPERTYPE OF ( + geometric_tolerance_with_datum_reference + ANDOR + geometric_tolerance_with_defined_unit + ANDOR + ONEOF ( + geometric_tolerance_with_modifiers, + modified_geometric_tolerance ) + ANDOR + unequally_disposed_geometric_tolerance + ANDOR + ONEOF ( + cylindricity_tolerance, + flatness_tolerance, + line_profile_tolerance, + position_tolerance, + roundness_tolerance, + straightness_tolerance, + surface_profile_tolerance ) ); + name : label; + description : OPTIONAL text; + magnitude : OPTIONAL length_measure_with_unit; + toleranced_shape_aspect : geometric_tolerance_target; + DERIVE + controlling_shape : product_definition_shape := sts_get_product_definition_shape( toleranced_shape_aspect ); + id : identifier := get_id_value( SELF ); + UNIQUE + ur1 : id, controlling_shape; + WHERE + wr1: ( magnitude\measure_with_unit.value_component >= 0 ); + wr2: EXISTS( controlling_shape ); + wr3: ( ( NOT ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP' IN TYPEOF( + toleranced_shape_aspect ) ) ) OR ( toleranced_shape_aspect\shape_aspect_relationship.relating_shape_aspect.of_shape + :=: toleranced_shape_aspect\shape_aspect_relationship.related_shape_aspect.of_shape ) ); + wr4: ( SIZEOF( USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'ID_ATTRIBUTE.IDENTIFIED_ITEM' ) ) <= + 1 ); + 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 + SUPERTYPE OF ( + ONEOF ( + angularity_tolerance, + circular_runout_tolerance, + coaxiality_tolerance, + concentricity_tolerance, + parallelism_tolerance, + perpendicularity_tolerance, + symmetry_tolerance, + total_runout_tolerance ) ) + SUBTYPE OF ( geometric_tolerance ); + datum_system : SET [1 : ?] OF datum_system_or_reference; + WHERE + wr1: ( ( SIZEOF( QUERY ( ds <* datum_system | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'DATUM_SYSTEM' ) + IN TYPEOF( ds ) ) ) ) = 0 ) OR ( SIZEOF( datum_system ) = 1 ) ); + END_ENTITY; + + ENTITY geometric_tolerance_with_defined_area_unit + SUBTYPE OF ( geometric_tolerance_with_defined_unit ); + area_type : area_unit_type; + second_unit_size : OPTIONAL length_measure_with_unit; + WHERE + wr1: ( NOT ( EXISTS( second_unit_size ) XOR ( area_type = area_unit_type.rectangular ) ) ); + END_ENTITY; + + ENTITY geometric_tolerance_with_defined_unit + SUBTYPE OF ( geometric_tolerance ); + unit_size : length_measure_with_unit; + WHERE + wr1: ( ( 'NUMBER' IN TYPEOF( unit_size\measure_with_unit.value_component ) ) AND ( unit_size\measure_with_unit. + value_component > 0 ) ); + END_ENTITY; + + ENTITY geometric_tolerance_with_maximum_tolerance + SUBTYPE OF ( geometric_tolerance_with_modifiers ); + maximum_upper_tolerance : length_measure_with_unit; + WHERE + wr1: ( ( geometric_tolerance_modifier.maximum_material_requirement IN SELF\geometric_tolerance_with_modifiers.modifiers ) + OR ( geometric_tolerance_modifier.least_material_requirement IN SELF\geometric_tolerance_with_modifiers.modifiers ) ); + wr2: ( ( maximum_upper_tolerance\measure_with_unit.unit_component = SELF\geometric_tolerance.magnitude\measure_with_unit. + unit_component ) AND ( maximum_upper_tolerance\measure_with_unit.value_component > SELF\geometric_tolerance. + magnitude\measure_with_unit.value_component ) ); + END_ENTITY; + + ENTITY geometric_tolerance_with_modifiers + SUBTYPE OF ( geometric_tolerance ); + modifiers : SET [1 : ?] OF geometric_tolerance_modifier; + 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 ) * [ + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.GEOMETRIC_CURVE_SET' , + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.AXIS2_PLACEMENT_2D' , + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MAPPED_ITEM' ] ) = 1 ) ) ) ) = 0 ); + wr3: ( SIZEOF( QUERY ( item <* SELF.items | ( SIZEOF( TYPEOF( item ) * [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'GEOMETRIC_CURVE_SET' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MAPPED_ITEM'] ) = 1 ) ) ) >= 1 ); + wr4: ( SIZEOF( QUERY ( mi <* QUERY ( item <* SELF.items | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MAPPED_ITEM' + IN TYPEOF( item ) ) ) | ( NOT ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'GEOMETRIC_CURVE_SET' IN TYPEOF( item ) ) ) | ( NOT ( SIZEOF( QUERY ( elem <* gcs\geometric_set.elements | ( + NOT ( SIZEOF( TYPEOF( elem ) * [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.B_SPLINE_CURVE', + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CIRCLE' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'COMPOSITE_CURVE' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ELLIPSE', + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.OFFSET_CURVE_2D' , + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.POINT' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'POLYLINE' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.TRIMMED_CURVE'] ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ); + wr6: ( SIZEOF( QUERY ( gcs <* QUERY ( item <* SELF.items | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'GEOMETRIC_CURVE_SET' IN TYPEOF( item ) ) ) | ( NOT ( SIZEOF( QUERY ( crv <* QUERY ( elem <* gcs\geometric_set. + elements | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CURVE' IN TYPEOF( elem ) ) ) | ( NOT + valid_basis_curve_in_2d_wireframe( crv ) ) ) ) = 0 ) ) ) ) = 0 ); + wr7: ( SIZEOF( QUERY ( gcs <* QUERY ( item <* SELF.items | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'GEOMETRIC_CURVE_SET' IN TYPEOF( item ) ) ) | ( NOT ( SIZEOF( QUERY ( pnt <* QUERY ( elem <* gcs\geometric_set. + elements | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.POINT' IN TYPEOF( elem ) ) ) | ( NOT ( SIZEOF( + TYPEOF( pnt ) * [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CARTESIAN_POINT', + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'GEOMETRIC_SET' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MAPPED_ITEM', + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.AXIS2_PLACEMENT_3D' ] * TYPEOF( it ) ) = 1 ) ) ) ) = 0 ); + wr2: ( SIZEOF( QUERY ( it <* SELF.items | ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.GEOMETRIC_SET', + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MAPPED_ITEM' ] * TYPEOF( it ) ) = 1 ) ) ) > 0 ); + wr3: ( SIZEOF( QUERY ( mi <* QUERY ( it <* SELF.items | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MAPPED_ITEM' + IN TYPEOF( it ) ) ) | ( NOT ( ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 + | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.GEOMETRIC_SET' IN TYPEOF( mr_it ) ) ) ) > 0 ) ) ) ) ) = 0 ); + wr4: ( SIZEOF( QUERY ( gs <* QUERY ( it <* SELF.items | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.GEOMETRIC_SET' + IN TYPEOF( it ) ) ) | ( NOT ( SIZEOF( QUERY ( pnt <* QUERY ( gsel <* gs\geometric_set.elements | ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.POINT' IN TYPEOF( gsel ) ) ) | ( NOT gbsf_check_point( pnt ) ) ) ) + = 0 ) ) ) ) = 0 ); + wr5: ( SIZEOF( QUERY ( gs <* QUERY ( it <* SELF.items | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.GEOMETRIC_SET' + IN TYPEOF( it ) ) ) | ( NOT ( SIZEOF( QUERY ( cv <* QUERY ( gsel <* gs\geometric_set.elements | ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CURVE' IN TYPEOF( gsel ) ) ) | ( NOT gbsf_check_curve( cv ) ) ) ) + = 0 ) ) ) ) = 0 ); + wr6: ( SIZEOF( QUERY ( gs <* QUERY ( it <* SELF.items | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.GEOMETRIC_SET' + IN TYPEOF( it ) ) ) | ( NOT ( SIZEOF( QUERY ( sf <* QUERY ( gsel <* gs\geometric_set.elements | ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SURFACE' IN TYPEOF( gsel ) ) ) | ( NOT gbsf_check_surface( sf ) ) ) ) + = 0 ) ) ) ) = 0 ); + wr7: ( SIZEOF( QUERY ( gs <* QUERY ( it <* SELF.items | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.GEOMETRIC_SET' + IN TYPEOF( it ) ) ) | ( SIZEOF( QUERY ( gsel <* gs\geometric_set.elements | ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ) * [ + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.GEOMETRIC_CURVE_SET' , + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.AXIS2_PLACEMENT_3D' , + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MAPPED_ITEM' ] ) = 1 ) ) ) ) = 0 ); + wr2: ( SIZEOF( QUERY ( it <* SELF.items | ( SIZEOF( TYPEOF( it ) * [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'GEOMETRIC_CURVE_SET' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MAPPED_ITEM'] ) = 1 ) ) ) >= 1 ); + wr3: ( SIZEOF( QUERY ( gcs <* QUERY ( it <* SELF.items | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'GEOMETRIC_CURVE_SET' IN TYPEOF( it ) ) ) | ( NOT ( SIZEOF( QUERY ( crv <* QUERY ( elem <* gcs\geometric_set. + elements | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CURVE' IN TYPEOF( elem ) ) ) | ( NOT + valid_geometrically_bounded_wf_curve( crv ) ) ) ) = 0 ) ) ) ) = 0 ); + wr4: ( SIZEOF( QUERY ( gcs <* QUERY ( it <* SELF.items | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'GEOMETRIC_CURVE_SET' IN TYPEOF( it ) ) ) | ( NOT ( SIZEOF( QUERY ( pnts <* QUERY ( elem <* gcs\geometric_set. + elements | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.POINT' IN TYPEOF( elem ) ) ) | ( NOT + valid_geometrically_bounded_wf_point( pnts ) ) ) ) = 0 ) ) ) ) = 0 ); + wr5: ( SIZEOF( QUERY ( gcs <* QUERY ( it <* SELF.items | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'GEOMETRIC_CURVE_SET' IN TYPEOF( it ) ) ) | ( NOT ( SIZEOF( QUERY ( cnc <* QUERY ( elem <* gcs\geometric_set. + elements | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CONIC' IN TYPEOF( elem ) ) ) | ( NOT ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.AXIS2_PLACEMENT_3D' IN TYPEOF( cnc\conic.position ) ) ) ) ) = + 0 ) ) ) ) = 0 ); + wr6: ( SIZEOF( QUERY ( gcs <* QUERY ( it <* SELF.items | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'GEOMETRIC_CURVE_SET' IN TYPEOF( it ) ) ) | ( NOT ( SIZEOF( QUERY ( pline <* QUERY ( elem <* gcs\geometric_set. + elements | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.POLYLINE' IN TYPEOF( elem ) ) ) | ( NOT ( SIZEOF( + pline\polyline.points ) > 2 ) ) ) ) = 0 ) ) ) ) = 0 ); + wr7: ( SIZEOF( QUERY ( mi <* QUERY ( it <* SELF.items | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MAPPED_ITEM' + IN TYPEOF( it ) ) ) | ( NOT ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'GEOMETRICALLY_BOUNDED_WIREFRAME_SHAPE_REPRESENTATION' ) IN TYPEOF( mi\mapped_item.mapping_source. + mapped_representation ) ) ) ) ) = 0 ); + END_ENTITY; + + ENTITY geometry_reference; + description : text; + data : choose_geometry_location; + END_ENTITY; + + ENTITY geometry_with_local_irregularity + ABSTRACT SUPERTYPE OF ( + ONEOF ( + extreme_patch_width_variation, + zero_surface_normal, + abrupt_change_of_surface_normal ) ) + SUBTYPE OF ( inapt_geometry ); + END_ENTITY; + + ENTITY geometry_with_local_near_degeneracy + ABSTRACT SUPERTYPE OF ( + ONEOF ( + curve_with_small_curvature_radius, + short_length_curve_segment, + surface_with_small_curvature_radius, + small_area_surface_patch, + narrow_surface_patch, + indistinct_surface_knots, + indistinct_curve_knots, + nearly_degenerate_surface_boundary, + nearly_degenerate_surface_patch ) ) + SUBTYPE OF ( inapt_geometry ); + 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 grid_coordinates + SUBTYPE OF ( model_property_distribution ); + SELF\model_property_distribution.domain : model_product_domain_with_mesh; + SELF\model_property_distribution.range : specified_general_property; + INVERSE + data : SET OF property_distribution_description FOR physical_function; + WHERE + wr1: is_coordinate_property( range ); + END_ENTITY; + + ENTITY grid_coordinates_with_rind + SUBTYPE OF ( grid_coordinates ); + rind_planes : rind; + END_ENTITY; + + ENTITY ground_fact + SUBTYPE OF ( atomic_formula ); + END_ENTITY; + + ENTITY grounded_damper + SUBTYPE OF ( point_element_matrix ); + damping_coefficients : ARRAY [1 : 6] OF context_dependent_measure; + END_ENTITY; + + ENTITY grounded_spring + SUBTYPE OF ( point_element_matrix ); + stiffness_coefficients : ARRAY [1 : 6] OF context_dependent_measure; + END_ENTITY; + + ENTITY group + SUPERTYPE OF ( + ONEOF ( + change_group, + change_element ) ); + name : label; + description : OPTIONAL text; + DERIVE + id : identifier := get_id_value( SELF ); + WHERE + wr1: ( SIZEOF( USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'ID_ATTRIBUTE.IDENTIFIED_ITEM' ) ) <= + 1 ); + END_ENTITY; + + ENTITY group_assignment + ABSTRACT SUPERTYPE OF ( + ONEOF ( + current_change_element_assignment, + previous_change_element_assignment, + change_group_assignment ) ); + assigned_group : group; + DERIVE + role : object_role := get_role( SELF ); + WHERE + wr1: ( SIZEOF( USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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_2d + SUBTYPE OF ( primitive_2d ); + base_curve : curve; + agreement_flag : BOOLEAN; + 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 ) ) AND ( SIZEOF( SELF.items ) <= 4 ) AND ( ( SIZEOF( QUERY ( i <* items | ( ( ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'DESCRIPTIVE_REPRESENTATION_ITEM' ) IN TYPEOF( i ) ) AND + ( i.name IN [ 'measuring method', 'measuring position'] ) ) ) ) + SIZEOF( QUERY ( i <* items | ( ( SIZEOF( [ + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'MEASURE_REPRESENTATION_ITEM', + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.' + + 'USED_REPRESENTATION' ) ) = 1 ) AND ( SIZEOF( QUERY ( pdr <* USEDIN( SELF, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.' + + 'USED_REPRESENTATION' ) | ( SIZEOF( QUERY ( gpa <* USEDIN( pdr.definition, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'GENERAL_PROPERTY_ASSOCIATION.' + 'DERIVED_DEFINITION' ) + | ( ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'GENERAL_PROPERTY' ) IN TYPEOF( gpa.base_definition ) ) + AND ( gpa\general_property_association.base_definition\general_property.name = 'surface_condition' ) ) ) ) = 1 ) ) ) + = 1 ) ); + END_ENTITY; + + ENTITY hidden_element_over_riding_styled_item + SUBTYPE OF ( context_dependent_over_riding_styled_item ); + SELF\context_dependent_over_riding_styled_item.style_context : LIST [1 : 1] OF presentation_view; + SELF\styled_item.item : camera_image; + INVERSE + container : SET [1 : ?] OF presentation_view FOR items; + WHERE + wr1: ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CAMERA_MODEL_D3_WITH_HLHSR' IN TYPEOF( SELF.item\mapped_item. + mapping_source.mapping_origin ) ); + END_ENTITY; + + ENTITY high_degree_axi_symmetric_surface + SUBTYPE OF ( overcomplex_geometry ); + SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; + approximation_tolerance : length_measure; + WHERE + wr1: ( ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' ) IN TYPEOF( SELF + \shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold ) ) + AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.COUNT_MEASURE' IN value_limit_type( SELF\ + shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold ) ) ); + wr2: validate_measured_data_type( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.COUNT_MEASURE' ); + wr3: validate_inspected_elements_type( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.B_SPLINE_SURFACE'] ); + wr4: validate_locations_of_extreme_value_type( SELF, [] ); + wr5: validate_accuracy_types( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE'] ); + END_ENTITY; + + ENTITY high_degree_conic + SUBTYPE OF ( overcomplex_geometry ); + SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; + approximation_tolerance : length_measure; + WHERE + wr1: ( ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' ) IN TYPEOF( SELF + \shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold ) ) + AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.COUNT_MEASURE' IN value_limit_type( SELF\ + shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold ) ) ); + wr2: validate_measured_data_type( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.COUNT_MEASURE' ); + wr3: validate_inspected_elements_type( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.B_SPLINE_CURVE'] ); + wr4: validate_locations_of_extreme_value_type( SELF, [] ); + wr5: validate_accuracy_types( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE'] ); + END_ENTITY; + + ENTITY high_degree_linear_curve + SUBTYPE OF ( overcomplex_geometry ); + SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; + approximation_tolerance : length_measure; + WHERE + wr1: ( ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' ) IN TYPEOF( SELF + \shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold ) ) + AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.COUNT_MEASURE' IN value_limit_type( SELF\ + shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold ) ) ); + wr2: validate_measured_data_type( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.COUNT_MEASURE' ); + wr3: validate_inspected_elements_type( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.B_SPLINE_CURVE'] ); + wr4: validate_locations_of_extreme_value_type( SELF, [] ); + wr5: validate_accuracy_types( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE'] ); + END_ENTITY; + + ENTITY high_degree_planar_surface + SUBTYPE OF ( overcomplex_geometry ); + SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; + approximation_tolerance : length_measure; + WHERE + wr1: ( ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' ) IN TYPEOF( SELF + \shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold ) ) + AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.COUNT_MEASURE' IN value_limit_type( SELF\ + shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold ) ) ); + wr2: validate_measured_data_type( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.COUNT_MEASURE' ); + wr3: validate_inspected_elements_type( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.B_SPLINE_SURFACE'] ); + wr4: validate_locations_of_extreme_value_type( SELF, [] ); + wr5: validate_accuracy_types( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE'] ); + END_ENTITY; + + ENTITY high_order_kinematic_pair + ABSTRACT SUPERTYPE OF ( + ONEOF ( + linear_flexible_and_planar_curve_pair, + point_on_surface_pair, + point_on_planar_curve_pair, + planar_curve_pair, + surface_pair ) ) + SUBTYPE OF ( kinematic_pair ); + WHERE + wr1: ( SIZEOF( QUERY ( lr <* SELF\kinematic_pair.associated_link_representations_2 | ( NOT ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.RIGID_LINK_REPRESENTATION' IN TYPEOF( lr ) ) ) ) ) = 0 ); + END_ENTITY; + + ENTITY hole_bottom + SUBTYPE OF ( shape_aspect ); + WHERE + wr1 : ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FEATURE_COMPONENT_DEFINITION' IN TYPEOF( SELF.of_shape. + definition ) ); + wr2 : ( SELF.description IN [ 'through', 'flat', 'flat with radius', 'flat with taper', 'spherical', 'conical'] ); + wr3 : ( ( NOT ( SELF.description = 'through' ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( USEDIN( + pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) ) = 0 ) ) ) ) + = 0 ) ); + wr4 : ( ( NOT ( SELF.description IN [ 'flat with radius', 'flat with taper', 'spherical', 'conical'] ) ) OR ( SIZEOF( + QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) + | ( NOT ( SIZEOF( QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) ) = 1 ) ) ) ) = 0 ) ); + wr5 : ( ( NOT ( SELF.description = 'flat' ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( + QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( impl_rep. + used_representation.items ) = 0 ) ) ) ) = 0 ) ) ) ) = 0 ) ); + wr6 : ( ( NOT ( SELF.description IN [ 'flat with radius', 'spherical'] ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( + QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( impl_rep. + used_representation.items ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ) ); + wr7 : ( ( NOT ( SELF.description = 'flat with taper' ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( + QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( impl_rep. + used_representation.items ) = 2 ) ) ) ) = 0 ) ) ) ) = 0 ) ); + wr8 : ( ( NOT ( SELF.description = 'conical' ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( + QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( ( NOT ( SIZEOF( impl_rep. + used_representation.items ) >= 1 ) ) AND ( SIZEOF( impl_rep.used_representation.items ) <= 2 ) ) ) ) = 0 ) ) ) ) = + 0 ) ); + wr9 : ( ( SELF.description = 'through' ) OR ( SIZEOF( QUERY ( fcr <* QUERY ( sar <* USEDIN( SELF, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATING_SHAPE_ASPECT' ) | ( ( sar + .description = 'hole bottom usage' ) AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF( sar ) ) ) ) | ( fcr.name IN [ 'hole depth start', 'hole depth end'] ) ) ) + >= 1 ) ); + wr10: ( ( NOT ( SELF.description = 'flat with radius' ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( + QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( + QUERY ( it <* impl_rep.used_representation.items | ( ( SIZEOF( [ + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM' , + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( it ) ) = 2 ) AND ( it. + name = 'corner radius' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ) ); + wr11: ( ( NOT ( SELF.description = 'spherical' ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( + QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( + QUERY ( it <* impl_rep.used_representation.items | ( ( SIZEOF( [ + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM' , + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( it ) ) = 2 ) AND ( it. + name = 'radius' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ) ); + wr12: ( ( NOT ( SELF.description = 'conical' ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( + QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( + QUERY ( it <* impl_rep.used_representation.items | ( ( SIZEOF( [ + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM' , + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( it ) ) = 2 ) AND ( it. + name = 'tip radius' ) ) ) ) <= 1 ) ) ) ) = 0 ) ) ) ) = 0 ) ); + wr13: ( ( NOT ( SELF.description = 'conical' ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( + QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( + QUERY ( it <* impl_rep.used_representation.items | ( ( SIZEOF( [ + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM' , + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PLANE_ANGLE_MEASURE_WITH_UNIT' ] * TYPEOF( it ) ) = 2 ) AND + ( it.name = 'tip angle' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ) ); + wr14: ( SIZEOF( QUERY ( fcr <* QUERY ( sar <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'SHAPE_ASPECT_RELATIONSHIP.RELATING_SHAPE_ASPECT' ) | ( ( sar.description = 'hole bottom usage' ) AND ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF( sar ) ) ) ) | ( + ( fcr.related_shape_aspect.description = 'bottom condition occurrence' ) AND ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ROUND_HOLE' IN TYPEOF( fcr.related_shape_aspect.of_shape. + definition ) ) AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.HOLE_BOTTOM' IN TYPEOF( fcr. + relating_shape_aspect ) ) ) ) ) >= 1 ); + wr15: ( ( NOT ( SELF.description = 'flat with taper' ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( + QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( + QUERY ( it <* impl_rep.used_representation.items | ( ( SIZEOF( [ + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM' , + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( it ) ) = 2 ) AND ( it. + name = 'final diameter' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ) ); + wr16: ( ( NOT ( SELF.description = 'flat with taper' ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( + QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( + QUERY ( it <* impl_rep.used_representation.items | ( ( SIZEOF( [ + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM' , + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PLANE_ANGLE_MEASURE_WITH_UNIT' ] * TYPEOF( it ) ) = 2 ) AND + ( it.name = 'taper diameter' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ) ); + END_ENTITY; + + ENTITY hole_in_panel + SUBTYPE OF ( feature_definition ); + WHERE + wr1: ( SIZEOF( QUERY ( sa <* get_shape_aspects( SELF ) | ( ( sa.name = 'hole profile' ) AND ( sa.description = + 'closed profile occurrence' ) AND ( SIZEOF( QUERY ( sar <* USEDIN( sa, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT' ) | ( ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF( sar ) ) AND ( sar. + description = 'profile usage' ) AND ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'CIRCULAR_CLOSED_PROFILE' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.NGON_CLOSED_PROFILE', + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.RECTANGULAR_CLOSED_PROFILE' , + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CLOSED_PATH_PROFILE' ] * TYPEOF( sar.relating_shape_aspect ) ) + = 1 ) ) ) ) = 1 ) ) ) ) = 1 ); + wr2: ( SIZEOF( get_property_definition_representations( SELF ) ) = SIZEOF( QUERY ( pdr <* + get_property_definition_representations( SELF ) | ( SIZEOF( pdr.used_representation.items ) = 1 ) ) ) ); + END_ENTITY; + + ENTITY homogeneous_linear_function + SUBTYPE OF ( maths_function, unary_generic_expression ); + SELF\unary_generic_expression.operand : maths_function; + sum_index : one_or_two; + DERIVE + mat : maths_function := SELF\unary_generic_expression.operand; + WHERE + wr1: function_is_2d_table( mat ); + wr2: ( ( space_dimension( mat.range ) = 1 ) AND subspace_of_es( factor1( mat.range ), es_numbers ) ); + END_ENTITY; + + ENTITY homokinetic_pair + SUBTYPE OF ( universal_pair ); + WHERE + wr1: ( NOT EXISTS( SELF.input_skew_angle ) ); + 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 idealisation_relationship; + id : identifier; + name : label; + description : text; + idealised : product_definition; + idealisation : temporal_spatial_domain; + 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: ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 implicit_explicit_positioned_sketch_relationship + SUBTYPE OF ( representation_item_relationship ); + SELF\representation_item_relationship.relating_representation_item : repositioned_neutral_sketch; + SELF\representation_item_relationship.related_representation_item : positioned_sketch; + WHERE + wr1: ( 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 implicit_intersection_curve + SUBTYPE OF ( implicit_planar_curve ); + external_surface : surface; + END_ENTITY; + + ENTITY implicit_model_intersection_curve + SUBTYPE OF ( implicit_planar_curve ); + intersected_model : surface_or_solid_model; + END_ENTITY; + + ENTITY implicit_planar_curve + ABSTRACT SUPERTYPE OF ( + ONEOF ( + implicit_intersection_curve, + implicit_projected_curve, + implicit_model_intersection_curve, + implicit_silhouette_curve ) ) + SUBTYPE OF ( curve, auxiliary_geometric_representation_item ); + using_sketch : positioned_sketch; + computed_representation : curve; + DERIVE + curve_plane : plane := get_plane_of_implicit_geometry( using_sketch ); + WHERE + wr1: ( SIZEOF( TYPEOF( computed_representation ) * [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'IMPLICIT_PLANAR_CURVE' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CURVE_REPLICA'] ) = 0 ); + END_ENTITY; + + ENTITY implicit_planar_intersection_point + SUBTYPE OF ( implicit_point_on_plane ); + external_curve : curve; + END_ENTITY; + + ENTITY implicit_planar_projection_point + SUBTYPE OF ( implicit_point_on_plane ); + external_point : point; + projection_direction : direction; + END_ENTITY; + + ENTITY implicit_point_on_plane + ABSTRACT SUPERTYPE OF ( + ONEOF ( + implicit_planar_intersection_point, + implicit_planar_projection_point ) ) + SUBTYPE OF ( point, auxiliary_geometric_representation_item ); + using_sketch : positioned_sketch; + computed_representation : cartesian_point; + DERIVE + plane_of_point : plane := get_plane_of_implicit_geometry( using_sketch ); + WHERE + wr1: ( ( plane_of_point\elementary_surface.position.location = computed_representation ) XOR ( dot_product( plane_of_point\ + elementary_surface.position.p[3], get_relative_direction_2points( plane_of_point\elementary_surface.position. + location, computed_representation ) ) = 0 ) ); + wr2: ( SIZEOF( TYPEOF( computed_representation ) * [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'IMPLICIT_POINT_ON_PLANE' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.POINT_REPLICA'] ) = 0 ); + END_ENTITY; + + ENTITY implicit_projected_curve + SUBTYPE OF ( implicit_planar_curve ); + external_curve : curve; + projection_direction : direction; + END_ENTITY; + + ENTITY implicit_silhouette_curve + SUBTYPE OF ( implicit_planar_curve ); + silhouetted_model : surface_or_solid_model; + view_direction : direction; + END_ENTITY; + + ENTITY imported_curve_function + SUBTYPE OF ( maths_function, generic_literal ); + geometry : curve; + parametric_domain : tuple_space; + WHERE + wr1: expression_is_constant( parametric_domain ); + END_ENTITY; + + ENTITY imported_point_function + SUBTYPE OF ( maths_function, generic_literal ); + geometry : point; + END_ENTITY; + + ENTITY imported_surface_function + SUBTYPE OF ( maths_function, generic_literal ); + geometry : surface; + parametric_domain : tuple_space; + WHERE + wr1: expression_is_constant( parametric_domain ); + END_ENTITY; + + ENTITY imported_volume_function + SUBTYPE OF ( maths_function, generic_literal ); + geometry : volume; + parametric_domain : tuple_space; + WHERE + wr1: expression_is_constant( parametric_domain ); + END_ENTITY; + + ENTITY inappropriate_element_visibility + SUBTYPE OF ( externally_conditioned_data_quality_criterion ); + WHERE + wr1: validate_ecdq_inspected_elements_type( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.STYLED_ITEM'] ); + END_ENTITY; + + ENTITY inappropriate_use_of_layer + SUBTYPE OF ( externally_conditioned_data_quality_criterion ); + WHERE + wr1: validate_ecdq_inspected_elements_type( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'PRESENTATION_LAYER_ASSIGNMENT' ] ); + END_ENTITY; + + ENTITY inapt_data + ABSTRACT SUPERTYPE OF ( + ONEOF ( + inapt_topology, + inapt_geometry, + inapt_topology_and_geometry_relationship, + inapt_manifold_solid_brep ) ) + SUBTYPE OF ( shape_data_quality_criterion ); + END_ENTITY; + + ENTITY inapt_geometry + ABSTRACT SUPERTYPE OF ( + ONEOF ( + nearly_degenerate_geometry, + discontinuous_geometry, + self_intersecting_geometry, + geometry_with_local_near_degeneracy, + overlapping_geometry, + multiply_defined_geometry, + geometry_with_local_irregularity, + overcomplex_geometry ) ) + SUBTYPE OF ( inapt_data ); + END_ENTITY; + + ENTITY inapt_manifold_solid_brep + ABSTRACT SUPERTYPE OF ( + ONEOF ( + partly_overlapping_solids, + small_volume_solid, + multiply_defined_solids, + entirely_narrow_solid, + solid_with_excessive_number_of_voids ) ) + SUBTYPE OF ( inapt_data ); + END_ENTITY; + + ENTITY inapt_topology + ABSTRACT SUPERTYPE OF ( + ONEOF ( + free_edge, + non_manifold_at_edge, + non_manifold_at_vertex, + over_used_vertex ) ) + SUBTYPE OF ( inapt_data ); + END_ENTITY; + + ENTITY inapt_topology_and_geometry_relationship + ABSTRACT SUPERTYPE OF ( + ONEOF ( + topology_related_to_nearly_degenerate_geometry, + geometric_gap_in_topology, + non_smooth_geometry_transition_across_edge, + topology_related_to_self_intersecting_geometry, + steep_geometry_transition_across_edge, + topology_related_to_overlapping_geometry, + topology_related_to_multiply_defined_geometry, + overcomplex_topology_and_geometry_relationship ) ) + SUBTYPE OF ( inapt_data ); + END_ENTITY; + + ENTITY incidence_assembly_constraint + SUBTYPE OF ( binary_assembly_constraint, incidence_geometric_constraint ); + END_ENTITY; + + ENTITY incidence_geometric_constraint + SUBTYPE OF ( explicit_geometric_constraint ); + SELF\explicit_constraint.constrained_elements : SET [1 : ?] OF geometric_constraint_element; + SELF\explicit_constraint.reference_elements : SET [0 : ?] OF geometric_constraint_element; + near_points : SET [0 : ?] OF near_point_relationship; + WHERE + wr1: ( ( SIZEOF( SELF\explicit_constraint.reference_elements ) > 0 ) OR ( SIZEOF( SELF\explicit_constraint. + constrained_elements ) = 2 ) ); + wr2: ( SIZEOF( near_points ) <= SIZEOF( SELF\explicit_constraint.reference_elements ) ); + wr3: ( SIZEOF( QUERY ( q <* near_points | ( NOT ( q\representation_item_relationship.relating_representation_item IN SELF\ + explicit_constraint.reference_elements ) ) ) ) = 0 ); + END_ENTITY; + + ENTITY included_text_block + SUBTYPE OF ( mapped_item ); + WHERE + wr1: ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PACKAGE_PRODUCT_CONCEPT_FEATURE' ) IN TYPEOF( SELF ) ) ); + wr2: ( ( SIZEOF( QUERY ( cfr <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'CONCEPT_FEATURE_RELATIONSHIP.RELATING_PRODUCT_CONCEPT_FEATURE' ) | ( ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'CONCEPT_FEATURE_RELATIONSHIP_WITH_CONDITION' ) IN + TYPEOF( cfr ) ) ) ) + SIZEOF( QUERY ( cfr <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'CONCEPT_FEATURE_RELATIONSHIP.RELATED_PRODUCT_CONCEPT_FEATURE' ) | ( ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'CONCEPT_FEATURE_RELATIONSHIP_WITH_CONDITION' ) IN + TYPEOF( cfr ) ) ) ) ) = 0 ); + wr3: ( SELF.condition.conditional_operator.name = 'implication' ); + END_ENTITY; + + ENTITY inconsistent_adjacent_face_normals + SUBTYPE OF ( erroneous_topology ); + SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_logical_test; + WHERE + wr1: validate_measured_data_type( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.BOOLEAN_VALUE' ); + wr2: validate_inspected_elements_type( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'CLOSED_OR_OPEN_SHELL_SELECT' ] ); + wr3: validate_locations_of_extreme_value_type( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.EDGE_CURVE'] ); + wr4: validate_accuracy_types( SELF, [] ); + END_ENTITY; + + ENTITY inconsistent_curve_transition_code + SUBTYPE OF ( erroneous_geometry ); + SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_logical_test; + angle_tolerance : plane_angle_measure; + curvature_ratio_tolerance : ratio_measure; + distance_tolerance : length_measure; + flat_curvature_radius_tolerance : length_measure; + WHERE + wr1: validate_measured_data_type( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.BOOLEAN_VALUE' ); + wr2: validate_inspected_elements_type( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.COMPOSITE_CURVE'] ); + wr3: validate_locations_of_extreme_value_type( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'COMPOSITE_CURVE_TRANSITION_LOCATOR' ] ); + wr4: validate_accuracy_types( SELF, [] ); + END_ENTITY; + + ENTITY inconsistent_edge_and_curve_directions + SUBTYPE OF ( erroneous_topology_and_geometry_relationship ); + SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_logical_test; + distance_tolerance : length_measure; + WHERE + wr1: validate_measured_data_type( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.BOOLEAN_VALUE' ); + wr2: validate_inspected_elements_type( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.EDGE_CURVE'] ); + wr3: validate_locations_of_extreme_value_type( SELF, [] ); + wr4: validate_accuracy_types( SELF, [] ); + END_ENTITY; + + ENTITY inconsistent_element_reference + SUBTYPE OF ( externally_conditioned_data_quality_criterion ); + WHERE + wr1: validate_ecdq_inspected_elements_type( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.REPRESENTATION_ITEM'] ); + END_ENTITY; + + ENTITY inconsistent_face_and_closed_shell_normals + SUBTYPE OF ( erroneous_topology_and_geometry_relationship ); + SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_logical_test; + WHERE + wr1: validate_measured_data_type( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.BOOLEAN_VALUE' ); + wr2: validate_inspected_elements_type( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FACE_SURFACE'] ); + wr3: validate_locations_of_extreme_value_type( SELF, [] ); + wr4: validate_accuracy_types( SELF, [] ); + END_ENTITY; + + ENTITY inconsistent_face_and_surface_normals + SUBTYPE OF ( erroneous_topology_and_geometry_relationship ); + SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_logical_test; + WHERE + wr1: validate_measured_data_type( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.BOOLEAN_VALUE' ); + wr2: validate_inspected_elements_type( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FACE_SURFACE'] ); + wr3: validate_locations_of_extreme_value_type( SELF, [] ); + wr4: validate_accuracy_types( SELF, [] ); + END_ENTITY; + + ENTITY inconsistent_surface_transition_code + SUBTYPE OF ( erroneous_geometry ); + SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_logical_test; + angle_tolerance : plane_angle_measure; + curvature_ratio_tolerance : ratio_measure; + distance_tolerance : length_measure; + flat_curvature_radius_tolerance : length_measure; + WHERE + wr1: validate_measured_data_type( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.BOOLEAN_VALUE' ); + wr2: validate_inspected_elements_type( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'RECTANGULAR_COMPOSITE_SURFACE' ] ); + wr3: validate_locations_of_extreme_value_type( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'RECTANGULAR_COMPOSITE_SURFACE_TRANSITION_LOCATOR' ] ); + wr4: validate_accuracy_types( SELF, [] ); + END_ENTITY; + + ENTITY index_expression + SUBTYPE OF ( string_expression, binary_generic_expression ); + DERIVE + operand : generic_expression := SELF\binary_generic_expression.operands[1]; + index : generic_expression := SELF\binary_generic_expression.operands[2]; + WHERE + wr1: ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.STRING_EXPRESSION' IN TYPEOF( operand ) ) AND ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.NUMERIC_EXPRESSION' IN TYPEOF( index ) ) ); + wr2: is_int_expr( index ); + END_ENTITY; + + ENTITY indexed_elements_bc + SUBTYPE OF ( mbna_bc ); + element_indices : indices_group; + END_ENTITY; + + ENTITY indexed_points_bc + SUBTYPE OF ( mbna_bc ); + point_indices : indices_group; + END_ENTITY; + + ENTITY indices_list; + nindices : INTEGER; + indices : LIST [1 : ?] OF ARRAY [1 : nindices] OF INTEGER; + END_ENTITY; + + ENTITY indices_range; + nindices : INTEGER; + start : ARRAY [1 : nindices] OF INTEGER; + finish : ARRAY [1 : nindices] OF INTEGER; + 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 ); + SELF\indirectly_selected_elements.indirectly_picked_items : SET [1 : ?] OF shape_representation_item; + END_ENTITY; + + ENTITY indistinct_curve_knots + SUBTYPE OF ( geometry_with_local_near_degeneracy ); + SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; + WHERE + wr1: ( ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'SHAPE_DATA_QUALITY_UPPER_VALUE_LIMIT' ) IN TYPEOF( SELF + \shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold ) ) + AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PARAMETER_VALUE' IN value_limit_type( SELF\ + shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold ) ) ); + wr2: validate_measured_data_type( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PARAMETER_VALUE' ); + wr3: validate_inspected_elements_type( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.B_SPLINE_CURVE_WITH_KNOTS'] ); + wr4: validate_locations_of_extreme_value_type( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'B_SPLINE_CURVE_KNOT_LOCATOR' ] ); + wr5: validate_accuracy_types( SELF, [] ); + END_ENTITY; + + ENTITY indistinct_surface_knots + SUBTYPE OF ( geometry_with_local_near_degeneracy ); + SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; + WHERE + wr1: ( ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'SHAPE_DATA_QUALITY_UPPER_VALUE_LIMIT' ) IN TYPEOF( SELF + \shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold ) ) + AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PARAMETER_VALUE' IN value_limit_type( SELF\ + shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold ) ) ); + wr2: validate_measured_data_type( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PARAMETER_VALUE' ); + wr3: validate_inspected_elements_type( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'B_SPLINE_SURFACE_WITH_KNOTS' ] ); + wr4: validate_locations_of_extreme_value_type( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'B_SPLINE_SURFACE_KNOT_LOCATOR' ] ); + wr5: validate_accuracy_types( SELF, [] ); + END_ENTITY; + + ENTITY inductance_measure_with_unit + SUBTYPE OF ( measure_with_unit ); + WHERE + wr1: ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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_attribute_reference + SUBTYPE OF ( variable_semantics ); + attribute_name : attribute_identifier; + owning_instance : representation_item; + END_ENTITY; + + ENTITY instance_report_item_with_extreme_instances + SUBTYPE OF ( shape_data_quality_inspection_instance_report_item ); + extreme_instances : LIST [1 : ?] OF extreme_instance; + 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 ( feature_definition, shape_aspect ); + WHERE + wr1: ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRODUCT_DEFINITION' IN TYPEOF( SELF.of_shape.definition ) ); + wr2: SELF.product_definitional; + END_ENTITY; + + ENTITY int_literal + SUBTYPE OF ( literal_number ); + SELF\literal_number.the_value : INTEGER; + END_ENTITY; + + ENTITY int_numeric_variable + SUBTYPE OF ( numeric_variable ); + END_ENTITY; + + ENTITY int_value_function + SUBTYPE OF ( value_function ); + END_ENTITY; + + ENTITY integer_defined_function + ABSTRACT SUPERTYPE + SUBTYPE OF ( numeric_defined_function ); + END_ENTITY; + + ENTITY integer_interval_from_min + SUBTYPE OF ( maths_space, generic_literal ); + min : INTEGER; + END_ENTITY; + + ENTITY integer_interval_to_max + SUBTYPE OF ( maths_space, generic_literal ); + max : INTEGER; + END_ENTITY; + + ENTITY integer_representation_item + SUBTYPE OF ( representation_item, int_literal ); + END_ENTITY; + + ENTITY integer_tuple_literal + SUBTYPE OF ( generic_literal ); + lit_value : LIST [1 : ?] OF INTEGER; + END_ENTITY; + + ENTITY interfaced_group_component + SUBTYPE OF ( assembly_group_component ); + END_ENTITY; + + ENTITY interpolated_configuration_representation + SUBTYPE OF ( representation ); + SELF\representation.context_of_items : geometric_representation_context_with_parameter; + SELF\representation.items : SET [1 : ?] OF interpolated_configuration_sequence; + END_ENTITY; + + ENTITY interpolated_configuration_segment + SUBTYPE OF ( founded_item ); + state : mechanism_state_representation; + t_parameter : parameter_value; + interpolation : interpolation_type; + END_ENTITY; + + ENTITY interpolated_configuration_sequence + SUBTYPE OF ( representation_item ); + segments : LIST [2 : ?] OF interpolated_configuration_segment; + DERIVE + n_segments : INTEGER := SIZEOF( segments ); + closed_interpolation : LOGICAL := segments[n_segments].interpolation <> discontinuous_interpolation_type; + configured_mechanism : mechanism_representation := segments[1].state.represented_mechanism; + WHERE + wr1: ( SIZEOF( QUERY ( ics <* segments | ( ics.state.represented_mechanism :<>: configured_mechanism ) ) ) = 0 ); + END_ENTITY; + + ENTITY intersecting_connected_face_sets + SUBTYPE OF ( topology_related_to_self_intersecting_geometry ); + SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_logical_test; + interference_tolerance : length_measure; + WHERE + wr1: validate_measured_data_type( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.BOOLEAN_VALUE' ); + wr2: validate_inspected_elements_type( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CONNECTED_FACE_SET', + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CONNECTED_FACE_SET' ] ); + wr3: validate_locations_of_extreme_value_type( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'POINT_ON_FACE_SURFACE' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'POINT_ON_FACE_SURFACE'] ); + wr4: validate_accuracy_types( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE'] ); + END_ENTITY; + + ENTITY intersecting_loops_in_face + SUBTYPE OF ( erroneous_topology_and_geometry_relationship ); + SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_logical_test; + interference_tolerance : length_measure; + WHERE + wr1: validate_measured_data_type( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.BOOLEAN_VALUE' ); + wr2: validate_inspected_elements_type( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FACE'] ); + wr3: validate_locations_of_extreme_value_type( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'POINT_ON_EDGE_CURVE' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'POINT_ON_EDGE_CURVE'] ); + wr4: validate_accuracy_types( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE'] ); + END_ENTITY; + + ENTITY intersecting_shells_in_solid + SUBTYPE OF ( erroneous_manifold_solid_brep ); + SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_logical_test; + interference_tolerance : length_measure; + WHERE + wr1: validate_measured_data_type( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.BOOLEAN_VALUE' ); + wr2: validate_inspected_elements_type( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.BREP_WITH_VOIDS'] ); + wr3: validate_locations_of_extreme_value_type( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SURFACE_CURVE'] ); + wr4: validate_accuracy_types( SELF, [] ); + 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_low : generic_expression := SELF\multiple_arity_generic_expression.operands[1]; + interval_item : generic_expression := SELF\multiple_arity_generic_expression.operands[2]; + interval_high : generic_expression := SELF\multiple_arity_generic_expression.operands[3]; + WHERE + wr1: ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.EXPRESSION' IN TYPEOF( interval_low ) ) AND ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.EXPRESSION' IN TYPEOF( interval_item ) ) AND ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.EXPRESSION' IN TYPEOF( interval_high ) ) ); + wr2: ( ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.STRING_EXPRESSION' IN TYPEOF( SELF.interval_low ) ) AND ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.STRING_EXPRESSION' IN TYPEOF( SELF.interval_high ) ) AND ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.STRING_EXPRESSION' IN TYPEOF( SELF.interval_item ) ) ) OR ( + ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.NUMERIC_EXPRESSION' IN TYPEOF( SELF.interval_low ) ) AND ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.NUMERIC_EXPRESSION' IN TYPEOF( SELF.interval_item ) ) AND ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 : item_identified_representation_usage_definition; + used_representation : representation; + identified_item : item_identified_representation_usage_select; + WHERE + wr1: ( SELF.used_representation IN using_representations( SELF.identified_item ) ); + END_ENTITY; + + ENTITY item_link_motion_relationship + SUBTYPE OF ( link_motion_relationship ); + SELF\representation_relationship.rep_1 : shape_representation; + item : geometric_representation_item; + END_ENTITY; + + ENTITY joggle + SUBTYPE OF ( feature_definition ); + WHERE + wr1 : ( SIZEOF( QUERY ( pdr <* get_property_definition_representations( SELF ) | ( ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. + used_representation ) ) AND ( NOT ( ( 5 <= SIZEOF( pdr.used_representation.items ) ) AND ( SIZEOF( pdr. + used_representation.items ) <= 10 ) ) ) ) ) ) = 0 ); + wr2 : ( SIZEOF( QUERY ( pdr <* get_property_definition_representations( SELF ) | ( ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. + used_representation ) ) AND ( SIZEOF( QUERY ( i <* pdr.used_representation.items | ( NOT ( i.name IN [ 'orientation', + 'base radius 1' , 'base radius 2', 'direction angle 1', 'direction angle 2', 'height', 'slope angle 1', + 'slope angle 2' , 'top radius 1', 'top radius 2'] ) ) ) ) > 0 ) ) ) ) = 0 ); + wr3 : ( SIZEOF( QUERY ( pdr <* get_property_definition_representations( SELF ) | ( ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. + used_representation ) ) AND ( SIZEOF( QUERY ( i <* pdr.used_representation.items | ( ( i.name = 'direction angle 1' ) + AND ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PLANE_ANGLE_MEASURE_WITH_UNIT' ] * TYPEOF( i ) ) = 2 ) ) ) ) + = 1 ) ) ) ) = 1 ); + wr4 : ( SIZEOF( QUERY ( pdr <* get_property_definition_representations( SELF ) | ( ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. + used_representation ) ) AND ( SIZEOF( QUERY ( i <* pdr.used_representation.items | ( ( i.name = 'direction angle 2' ) + AND ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PLANE_ANGLE_MEASURE_WITH_UNIT' ] * TYPEOF( i ) ) = 2 ) ) ) ) + = 1 ) ) ) ) = 1 ); + wr5 : ( SIZEOF( QUERY ( pdr <* get_property_definition_representations( SELF ) | ( ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. + used_representation ) ) AND ( SIZEOF( QUERY ( i <* pdr.used_representation.items | ( ( i.name = 'height' ) AND ( + SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( i ) ) = 2 ) ) ) ) = 1 ) ) ) ) + <= 1 ); + wr6 : ( SIZEOF( QUERY ( pdr <* get_property_definition_representations( SELF ) | ( ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. + used_representation ) ) AND ( SIZEOF( QUERY ( i <* pdr.used_representation.items | ( ( i.name = 'slope angle 1' ) + AND ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PLANE_ANGLE_MEASURE_WITH_UNIT' ] * TYPEOF( i ) ) = 2 ) ) ) ) + = 1 ) ) ) ) = 1 ); + wr7 : ( SIZEOF( QUERY ( pdr <* get_property_definition_representations( SELF ) | ( ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. + used_representation ) ) AND ( SIZEOF( QUERY ( i <* pdr.used_representation.items | ( ( i.name = 'slope angle 2' ) + AND ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PLANE_ANGLE_MEASURE_WITH_UNIT' ] * TYPEOF( i ) ) = 2 ) ) ) ) + = 1 ) ) ) ) = 1 ); + wr8 : ( SIZEOF( QUERY ( sa <* get_shape_aspects( SELF ) | ( ( sa.name = 'defining path' ) AND ( sa.description = + 'path feature component occurrence' ) AND ( SIZEOF( QUERY ( sar <* USEDIN( sa, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT' ) | ( + ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF( sar ) ) AND ( sar. + description = 'path feature component usage' ) AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'PATH_FEATURE_COMPONENT' IN TYPEOF( sar.relating_shape_aspect ) ) AND ( sar.relating_shape_aspect.description + = 'linear' ) ) ) ) = 1 ) ) ) ) = 1 ); + wr9 : ( SIZEOF( QUERY ( sa <* get_shape_aspects( SELF ) | ( ( sa.name = 'termination' ) AND ( sa.description = + 'joggle termination occurrence' ) AND ( SIZEOF( QUERY ( sar <* USEDIN( sa, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT' ) | ( + ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF( sar ) ) AND ( sar + .name = 'joggle termination usage' ) AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.JOGGLE_TERMINATION' + IN TYPEOF( sar.relating_shape_aspect ) ) ) ) ) = 1 ) ) ) ) = 1 ); + wr10: ( SIZEOF( QUERY ( pdr <* get_property_definition_representations( SELF ) | ( ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. + used_representation ) ) AND ( SIZEOF( QUERY ( i <* pdr.used_representation.items | ( ( i.name = 'base radius 1' ) + AND ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( i ) ) = 2 ) ) ) ) = 1 ) ) ) ) + <= 1 ); + wr11: ( SIZEOF( QUERY ( pdr <* get_property_definition_representations( SELF ) | ( ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. + used_representation ) ) AND ( SIZEOF( QUERY ( i <* pdr.used_representation.items | ( ( i.name = 'base radius 2' ) + AND ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( i ) ) = 2 ) ) ) ) = 1 ) ) ) ) + <= 1 ); + wr12: ( SIZEOF( QUERY ( pdr <* get_property_definition_representations( SELF ) | ( ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. + used_representation ) ) AND ( SIZEOF( QUERY ( i <* pdr.used_representation.items | ( ( i.name = 'top radius 1' ) + AND ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( i ) ) = 2 ) ) ) ) = 1 ) ) ) ) + <= 1 ); + wr13: ( SIZEOF( QUERY ( pdr <* get_property_definition_representations( SELF ) | ( ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. + used_representation ) ) AND ( SIZEOF( QUERY ( i <* pdr.used_representation.items | ( ( i.name = 'top radius 2' ) + AND ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( i ) ) = 2 ) ) ) ) = 1 ) ) ) ) + <= 1 ); + END_ENTITY; + + ENTITY joggle_termination + SUBTYPE OF ( shape_aspect ); + WHERE + wr1: ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FEATURE_COMPONENT_DEFINITION' IN TYPEOF( SELF.of_shape. + definition ) ); + wr2: ( SELF.description IN [ 'value termination', 'face termination'] ); + wr3: ( ( SELF.description = 'value termination' ) XOR ( SIZEOF( QUERY ( pdr <* + get_shape_aspect_property_definition_representations( SELF ) | ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. + used_representation ) ) ) ) = 0 ) ); + wr4: ( ( SELF.description <> 'value termination' ) OR ( SIZEOF( QUERY ( pdr <* + get_shape_aspect_property_definition_representations( SELF ) | ( ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. + used_representation ) ) AND ( SIZEOF( pdr.used_representation.items ) = 2 ) ) ) ) = 1 ) ); + wr5: ( ( SELF.description <> 'value termination' ) OR ( SIZEOF( QUERY ( pdr <* + get_shape_aspect_property_definition_representations( SELF ) | ( ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. + used_representation ) ) AND ( SIZEOF( QUERY ( i <* pdr.used_representation.items | ( ( i.name = 'depth' ) AND ( + SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( i ) ) = 2 ) ) ) ) = 1 ) ) ) ) + = 1 ) ); + wr6: ( ( SELF.description <> 'value termination' ) OR ( SIZEOF( QUERY ( pdr <* + get_shape_aspect_property_definition_representations( SELF ) | ( ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. + used_representation ) ) AND ( SIZEOF( QUERY ( i <* pdr.used_representation.items | ( ( i.name = 'angle' ) AND ( + SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PLANE_ANGLE_MEASURE_WITH_UNIT' ] * TYPEOF( i ) ) = 2 ) ) ) ) = + 1 ) ) ) ) = 1 ) ); + wr7: ( SIZEOF( QUERY ( sar <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'SHAPE_ASPECT_RELATIONSHIP.RELATING_SHAPE_ASPECT' ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF( sar ) ) AND ( sar.name = 'joggle termination usage' ) AND ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.JOGGLE' IN TYPEOF( sar.related_shape_aspect.of_shape. + definition ) ) AND ( sar.related_shape_aspect.of_shape.definition\characterized_object.name = 'termination' ) AND + ( sar.related_shape_aspect.of_shape.definition\characterized_object.description = 'joggle termination occurrence' ) ) ) ) + = 1 ); + END_ENTITY; + + ENTITY kinematic_analysis_consistency; + control : kinematic_control; + result : kinematic_analysis_result; + WHERE + wr1: ( control.controlled_mechanism :=: result.analysed_mechanism ); + END_ENTITY; + + ENTITY kinematic_analysis_result; + analysed_mechanism : mechanism_representation; + result : kinematic_result; + END_ENTITY; + + ENTITY kinematic_control; + controlled_mechanism : mechanism_representation; + contained_kinematic_programs : kinematic_analysis_definition; + END_ENTITY; + + ENTITY kinematic_joint + SUBTYPE OF ( edge ); + SELF\edge.edge_start : kinematic_link; + SELF\edge.edge_end : kinematic_link; + UNIQUE + ur1 : edge_start, edge_end; + WHERE + wr1: ( edge_start :<>: edge_end ); + END_ENTITY; + + ENTITY kinematic_link + SUBTYPE OF ( vertex ); + END_ENTITY; + + ENTITY kinematic_link_representation + ABSTRACT SUPERTYPE OF ( + ONEOF ( + linear_flexible_link_representation, + rigid_link_representation ) ) + SUBTYPE OF ( representation ); + SELF\representation.context_of_items : geometric_representation_context; + SELF\representation.items : SET [1 : ?] OF kinematic_link_representation_items; + represented_link : kinematic_link; + INVERSE + associated_shape_representation : SET [0 : 1] OF kinematic_link_representation_association FOR rep_1; + END_ENTITY; + + ENTITY kinematic_link_representation_association + SUBTYPE OF ( representation_relationship ); + SELF\representation_relationship.rep_1 : kinematic_link_representation; + SELF\representation_relationship.rep_2 : shape_representation; + WHERE + wr1: ( ( SELF\representation_relationship.rep_2.context_of_items :=: SELF\representation_relationship.rep_1. + context_of_items ) OR ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'REPRESENTATION_RELATIONSHIP_WITH_TRANSFORMATION' IN TYPEOF( SELF ) ) ); + END_ENTITY; + + ENTITY kinematic_loop + SUBTYPE OF ( edge_loop ); + SELF\path.edge_list : LIST [1 : ?] OF UNIQUE oriented_joint; + END_ENTITY; + + ENTITY kinematic_pair + ABSTRACT SUPERTYPE OF ( + ONEOF ( + high_order_kinematic_pair, + low_order_kinematic_pair_with_motion_coupling, + low_order_kinematic_pair ) + ANDOR + actuated_kinematic_pair ) + SUBTYPE OF ( geometric_representation_item, item_defined_transformation ); + joint : kinematic_joint; + SELF\item_defined_transformation.transform_item_1 : rigid_placement; + SELF\item_defined_transformation.transform_item_2 : rigid_placement; + DERIVE + associated_link_representations_1 : SET [1 : ?] OF kinematic_link_representation := sort_link_associations( + link_representation_associations, TRUE ); + associated_link_representations_2 : SET [1 : ?] OF kinematic_link_representation := sort_link_associations( + link_representation_associations, FALSE ); + SELF\item_defined_transformation.name : label := SELF\representation_item.name; + INVERSE + link_representation_associations : SET [1 : ?] OF pair_representation_relationship FOR transformation_operator; + END_ENTITY; + + ENTITY kinematic_path + ABSTRACT SUPERTYPE OF ( + ONEOF ( + kinematic_path_defined_by_nodes, + kinematic_path_defined_by_curves ) ) + SUBTYPE OF ( geometric_representation_item ); + segments : LIST [1 : ?] OF kinematic_path_segment; + t_start : parameter_value; + DERIVE + n_segments : INTEGER := SIZEOF( segments ); + closed_path : LOGICAL := segments[n_segments].transition <> discontinuous; + WHERE + wr1: ( SIZEOF( QUERY ( using_rep <* using_representations( SELF ) | ( NOT ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.GEOMETRIC_REPRESENTATION_CONTEXT_WITH_PARAMETER' IN TYPEOF( + using_rep.context_of_items ) ) ) ) ) = 0 ); + END_ENTITY; + + ENTITY kinematic_path_defined_by_curves + SUBTYPE OF ( kinematic_path ); + SELF\kinematic_path.segments : LIST [1 : ?] OF curve_based_path_with_orientation; + END_ENTITY; + + ENTITY kinematic_path_defined_by_nodes + SUBTYPE OF ( kinematic_path ); + SELF\kinematic_path.segments : LIST [1 : ?] OF path_node; + placement_start : placement; + END_ENTITY; + + ENTITY kinematic_path_segment + ABSTRACT SUPERTYPE OF ( + ONEOF ( + path_node, + curve_based_path_with_orientation ) ) + SUBTYPE OF ( founded_item ); + t_end : parameter_value; + transition : transition_code; + END_ENTITY; + + ENTITY kinematic_property_definition_representation + ABSTRACT SUPERTYPE OF ( + ONEOF ( + kinematic_property_topology_representation, + kinematic_property_mechanism_representation ) ) + SUBTYPE OF ( property_definition_representation ); + SELF\property_definition_representation.definition : product_definition_kinematics; + END_ENTITY; + + ENTITY kinematic_property_mechanism_representation + SUBTYPE OF ( kinematic_property_definition_representation ); + SELF\property_definition_representation.used_representation : mechanism_representation; + base : kinematic_link_representation; + WHERE + wr1: ( SIZEOF( QUERY ( i <* used_representation.items | ( ( base :=: i\representation_relationship.rep_1 ) OR ( base :=: i\ + representation_relationship.rep_2 ) ) ) ) > 0 ); + END_ENTITY; + + ENTITY kinematic_property_topology_representation + SUBTYPE OF ( kinematic_property_definition_representation ); + SELF\property_definition_representation.used_representation : kinematic_topology_representation_select; + base : kinematic_link; + WHERE + wr1: ( used_representation IN using_representations( base ) ); + END_ENTITY; + + ENTITY kinematic_topology_directed_structure + SUBTYPE OF ( representation ); + SELF\representation.items : SET [1 : ?] OF oriented_joint; + parent : kinematic_topology_structure; + WHERE + wr1: ( context_of_items :=: parent.context_of_items ); + wr2: ( get_kinematic_joints_from_oriented_joints( items ) <= parent.items ); + END_ENTITY; + + ENTITY kinematic_topology_network_structure + SUBTYPE OF ( representation ); + SELF\representation.items : SET [1 : ?] OF kinematic_loop; + parent : kinematic_topology_structure; + WHERE + wr1: ( context_of_items :=: parent.context_of_items ); + wr2: ( get_kinematic_joints_from_kinematic_loops( items ) <= parent.items ); + END_ENTITY; + + ENTITY kinematic_topology_structure + SUBTYPE OF ( representation ); + SELF\representation.items : SET [1 : ?] OF kinematic_joint; + WHERE + wr1: ( SIZEOF( QUERY ( item <* items | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ORIENTED_EDGE' IN TYPEOF( item ) ) ) ) + = 0 ); + END_ENTITY; + + ENTITY kinematic_topology_substructure + SUBTYPE OF ( kinematic_topology_structure ); + parent : kinematic_topology_structure; + WHERE + wr1: ( context_of_items :=: parent.context_of_items ); + wr2: ( SELF\kinematic_topology_structure.items <= parent\kinematic_topology_structure.items ); + END_ENTITY; + + ENTITY kinematic_topology_tree_structure + SUBTYPE OF ( kinematic_topology_directed_structure ); + 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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'DRAUGHTING_CALLOUT.' + + 'CONTENTS' ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LEADER_CURVE' IN + TYPEOF( con ) ) ) ) = 1 ); + END_ENTITY; + + ENTITY leader_terminator + SUBTYPE OF ( terminator_symbol ); + WHERE + wr1: ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LEADER_CURVE' IN TYPEOF( SELF\terminator_symbol.annotated_curve ) ); + END_ENTITY; + + ENTITY length_function + SUBTYPE OF ( numeric_expression, unary_generic_expression ); + SELF\unary_generic_expression.operand : string_expression; + END_ENTITY; + + ENTITY length_measure_with_unit + SUBTYPE OF ( measure_with_unit ); + WHERE + wr1: ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ) AND ( SELF\named_unit.dimensions.mass_exponent = 0 ) AND ( SELF\ + named_unit.dimensions.time_exponent = 0 ) AND ( SELF\named_unit.dimensions.electric_current_exponent = 0 ) AND ( + SELF\named_unit.dimensions.thermodynamic_temperature_exponent = 0 ) AND ( SELF\named_unit.dimensions. + amount_of_substance_exponent = 0 ) AND ( SELF\named_unit.dimensions.luminous_intensity_exponent = 0 ) ); + END_ENTITY; + + 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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 like_expression + SUBTYPE OF ( comparison_expression ); + WHERE + wr1: ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.STRING_EXPRESSION' IN TYPEOF( SELF\binary_generic_expression. + operands[1] ) ) AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.STRING_EXPRESSION' IN TYPEOF( SELF\ + binary_generic_expression.operands[2] ) ) ); + 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 ); + END_ENTITY; + + ENTITY linear_array_component_definition_link + SUBTYPE OF ( product_definition, product_definition_relationship ); + SELF\product_definition_relationship.relating_product_definition : linear_array_placement_group_component; + SELF\product_definition_relationship.related_product_definition : linear_array_placement_group_component; + WHERE + wr1: ( SELF\product_definition_relationship.related_product_definition :<>: SELF\product_definition_relationship. + relating_product_definition ); + wr2: acyclic_product_definition_relationship( SELF, [SELF\product_definition_relationship.related_product_definition], + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LINEAR_ARRAY_COMPONENT_DEFINITION_LINK' ); + END_ENTITY; + + ENTITY linear_array_placement_group_component + SUBTYPE OF ( array_placement_group ); + END_ENTITY; + + ENTITY linear_constraint_equation_element + SUBTYPE OF ( constraint_element ); + freedoms_and_coefficients : SET [1 : ?] OF linear_constraint_equation_nodal_term; + description : text; + END_ENTITY; + + ENTITY linear_constraint_equation_element_value + SUBTYPE OF ( state_definition ); + element : linear_constraint_equation_element; + b : measure_or_unspecified_value; + END_ENTITY; + + ENTITY linear_constraint_equation_nodal_term; + node : node_representation; + coordinate_system : fea_axis2_placement_3d; + freedom_and_coefficient_term : freedom_and_coefficient; + dependent : LOGICAL; + END_ENTITY; + + ENTITY linear_dimension + SUBTYPE OF ( dimension_curve_directed_callout ); + END_ENTITY; + + ENTITY linear_flexible_and_pinion_pair + SUBTYPE OF ( low_order_kinematic_pair_with_motion_coupling ); + pinion_radius : length_measure; + WHERE + wr1: ( SIZEOF( QUERY ( lr <* SELF\kinematic_pair.associated_link_representations_1 | ( NOT ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LINEAR_FLEXIBLE_LINK_REPRESENTATION' IN TYPEOF( lr ) ) ) ) ) + = 0 ); + END_ENTITY; + + ENTITY linear_flexible_and_planar_curve_pair + SUBTYPE OF ( high_order_kinematic_pair ); + pair_curve : curve; + orientation : BOOLEAN; + WHERE + wr1: ( SIZEOF( QUERY ( r <* SELF\kinematic_pair.associated_link_representations_1 | ( NOT ( pair_curve IN r.items ) ) ) ) = + 0 ); + wr2: ( SIZEOF( QUERY ( lr <* SELF\kinematic_pair.associated_link_representations_1 | ( NOT ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LINEAR_FLEXIBLE_LINK_REPRESENTATION' IN TYPEOF( lr ) ) ) ) ) + = 0 ); + END_ENTITY; + + ENTITY linear_flexible_link_representation + SUBTYPE OF ( kinematic_link_representation ); + END_ENTITY; + + ENTITY linear_path + SUBTYPE OF ( path_node ); + DERIVE + SELF\kinematic_path_segment.transition : transition_code := continuous; + END_ENTITY; + + ENTITY linear_profile + SUBTYPE OF ( shape_aspect ); + WHERE + wr1: ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FEATURE_COMPONENT_DEFINITION' IN TYPEOF( SELF.of_shape. + definition ) ); + wr2: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + + 'DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) ) = 1 ) ) ) ) = 0 ); + wr3: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + + 'DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. + used_representation ) ) ) | ( NOT ( SIZEOF( impl_rep.used_representation.items ) = 2 ) ) ) ) = 0 ) ) ) ) = 0 ); + wr4: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + + 'DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. + used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PLACEMENT' IN TYPEOF( it ) ) AND ( it.name = 'orientation' ) ) ) ) + = 1 ) ) ) ) = 0 ) ) ) ) = 0 ); + wr5: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + + 'DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. + used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( SIZEOF( [ + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM' , + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( it ) ) = 2 ) AND ( it. + name = 'profile length' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ); + END_ENTITY; + + ENTITY linearized_table_function + SUPERTYPE OF ( + ONEOF ( + standard_table_function, + regular_table_function, + triangular_matrix, + symmetric_matrix, + banded_matrix ) ) + SUBTYPE OF ( explicit_table_function, unary_generic_expression ); + SELF\unary_generic_expression.operand : maths_function; + first : INTEGER; + DERIVE + source : maths_function := SELF\unary_generic_expression.operand; + WHERE + wr1: function_is_1d_array( source ); + wr2: member_of( first, source\maths_function.domain ); + END_ENTITY; + + ENTITY linearly_superimposed_state + SUBTYPE OF ( state ); + INVERSE + components : SET [1 : ?] OF state_component FOR state; + END_ENTITY; + + ENTITY link_motion_relationship + SUBTYPE OF ( definitional_representation_relationship, representation_relationship_with_transformation ); + SELF\representation_relationship.rep_1 : link_or_shape_representation; + SELF\representation_relationship.rep_2 : link_motion_representation_along_path; + SELF\representation_relationship_with_transformation.transformation_operator : link_motion_transformation; + WHERE + (* JH removed WR1 on 2014-05-14 for the following compilation error; fix is not ISO confirmed: + ERROR : Line 19237: C3001:Unresolved attribute qualification in WHERE clause. + Attribute qualification: REP_1[].ITEMS + wr1: ( transformation_operator\item_defined_transformation.transform_item_1 IN rep_1.items ); *) + wr2: ( transformation_operator\item_defined_transformation.transform_item_2 IN rep_2.items ); + END_ENTITY; + + ENTITY link_motion_representation_along_path + SUPERTYPE OF ( + ONEOF ( + prescribed_path, + resulting_path ) ) + SUBTYPE OF ( representation ); + SELF\representation.items : SET [1 : ?] OF kinematic_path; + SELF\representation.context_of_items : geometric_representation_context_with_parameter; + END_ENTITY; + + ENTITY link_motion_transformation + SUBTYPE OF ( item_defined_transformation ); + SELF\item_defined_transformation.transform_item_1 : rigid_placement; + SELF\item_defined_transformation.transform_item_2 : kinematic_path; + END_ENTITY; + + ENTITY listed_complex_number_data + SUBTYPE OF ( explicit_table_function, generic_literal ); + values : LIST [2 : ?] OF REAL; + DERIVE + SELF\explicit_table_function.shape : LIST [1 : ?] OF positive_integer := [SIZEOF( values ) DIV 2]; + WHERE + wr1: ( NOT ODD( SIZEOF( values ) ) ); + END_ENTITY; + + ENTITY listed_data + SUBTYPE OF ( explicit_table_function, generic_literal ); + values : LIST [1 : ?] OF maths_value; + value_range : maths_space; + DERIVE + SELF\explicit_table_function.shape : LIST [1 : ?] OF positive_integer := [SIZEOF( values )]; + WHERE + wr1: expression_is_constant( value_range ); + wr2: ( SIZEOF( QUERY ( val <* values | ( NOT member_of( val, value_range ) ) ) ) = 0 ); + END_ENTITY; + + ENTITY listed_integer_data + SUBTYPE OF ( explicit_table_function, generic_literal ); + values : LIST [1 : ?] OF INTEGER; + DERIVE + SELF\explicit_table_function.shape : LIST [1 : ?] OF positive_integer := [SIZEOF( values )]; + END_ENTITY; + + ENTITY listed_logical_data + SUBTYPE OF ( explicit_table_function, generic_literal ); + values : LIST [1 : ?] OF LOGICAL; + DERIVE + SELF\explicit_table_function.shape : LIST [1 : ?] OF positive_integer := [SIZEOF( values )]; + END_ENTITY; + + ENTITY listed_product_space + SUBTYPE OF ( maths_space, generic_literal ); + factors : LIST OF maths_space; + WHERE + wr1: ( SIZEOF( QUERY ( space <* factors | ( NOT expression_is_constant( space ) ) ) ) = 0 ); + wr2: no_cyclic_space_reference( SELF, [] ); + wr3: ( NOT ( the_empty_space IN factors ) ); + END_ENTITY; + + ENTITY listed_real_data + SUBTYPE OF ( explicit_table_function, generic_literal ); + values : LIST [1 : ?] OF REAL; + DERIVE + SELF\explicit_table_function.shape : LIST [1 : ?] OF positive_integer := [SIZEOF( values )]; + END_ENTITY; + + ENTITY listed_string_data + SUBTYPE OF ( explicit_table_function, generic_literal ); + values : LIST [1 : ?] OF STRING; + DERIVE + SELF\explicit_table_function.shape : LIST [1 : ?] OF positive_integer := [SIZEOF( values )]; + 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 location_in_aggregate_representation_item + SUBTYPE OF ( compound_representation_item ); + SELF\compound_representation_item.item_element : location_in_aggregate_item; + END_ENTITY; + + ENTITY location_shape_representation + SUBTYPE OF ( shape_representation ); + WHERE + wr1: ( SIZEOF( SELF.items ) = 1 ); + wr2: ( SIZEOF( QUERY ( it <* SELF.items | ( NOT ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.POINT' IN TYPEOF( it ) ) ) ) ) + = 0 ); + END_ENTITY; + + ENTITY locator + SUBTYPE OF ( feature_definition ); + WHERE + wr1: ( SIZEOF( QUERY ( pdr <* get_property_definition_representations( SELF ) | ( ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. + used_representation ) ) AND ( NOT ( ( 2 <= SIZEOF( pdr.used_representation.items ) ) AND ( SIZEOF( pdr. + used_representation.items ) <= 5 ) ) ) ) ) ) = 0 ); + wr2: ( SIZEOF( QUERY ( pdr <* get_property_definition_representations( SELF ) | ( ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. + used_representation ) ) AND ( SIZEOF( QUERY ( i <* pdr.used_representation.items | ( ( i.name = 'diameter' ) AND ( + SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( i ) ) = 2 ) ) ) ) = 1 ) ) ) ) + = 1 ); + wr3: ( SIZEOF( QUERY ( pdr <* get_property_definition_representations( SELF ) | ( ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. + used_representation ) ) AND ( SIZEOF( QUERY ( i <* pdr.used_representation.items | ( ( i.name = 'tip radius' ) AND + ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( i ) ) = 2 ) ) ) ) = 1 ) ) ) ) + <= 1 ); + wr4: ( SIZEOF( QUERY ( pdr <* get_property_definition_representations( SELF ) | ( ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. + used_representation ) ) AND ( SIZEOF( QUERY ( i <* pdr.used_representation.items | ( ( i.name = 'tip angle' ) AND + ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PLANE_ANGLE_MEASURE_WITH_UNIT' ] * TYPEOF( i ) ) = 2 ) ) ) ) = + 1 ) ) ) ) = 1 ); + wr5: ( SIZEOF( QUERY ( pdr <* get_property_definition_representations( SELF ) | ( ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. + used_representation ) ) AND ( SIZEOF( QUERY ( i <* pdr.used_representation.items | ( ( i.name = 'base radius' ) AND + ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( i ) ) = 2 ) ) ) ) = 1 ) ) ) ) + <= 1 ); + END_ENTITY; + + ENTITY log10_function + SUBTYPE OF ( unary_function_call ); + END_ENTITY; + + ENTITY log2_function + SUBTYPE OF ( unary_function_call ); + END_ENTITY; + + ENTITY log_function + SUBTYPE OF ( unary_function_call ); + 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 low_order_kinematic_pair + SUPERTYPE OF ( + ONEOF ( + revolute_pair, + cylindrical_pair, + spherical_pair, + spherical_pair_with_pin, + planar_pair, + unconstrained_pair, + fully_constrained_pair, + prismatic_pair, + universal_pair, + low_order_kinematic_pair_with_range ) ) + SUBTYPE OF ( kinematic_pair ); + t_x : BOOLEAN; + t_y : BOOLEAN; + t_z : BOOLEAN; + r_x : BOOLEAN; + r_y : BOOLEAN; + r_z : BOOLEAN; + WHERE + wr1: ( SIZEOF( QUERY ( lr <* SELF\kinematic_pair.associated_link_representations_1 | ( NOT ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.RIGID_LINK_REPRESENTATION' IN TYPEOF( lr ) ) ) ) ) = 0 ); + wr2: ( SIZEOF( QUERY ( lr <* SELF\kinematic_pair.associated_link_representations_2 | ( NOT ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.RIGID_LINK_REPRESENTATION' IN TYPEOF( lr ) ) ) ) ) = 0 ); + END_ENTITY; + + ENTITY low_order_kinematic_pair_value + SUBTYPE OF ( pair_value ); + SELF\pair_value.applies_to_pair : low_order_kinematic_pair; + actual_translation_x : length_measure; + actual_translation_y : length_measure; + actual_translation_z : length_measure; + actual_rotation_x : plane_angle_measure; + actual_rotation_y : plane_angle_measure; + actual_rotation_z : plane_angle_measure; + END_ENTITY; + + ENTITY low_order_kinematic_pair_with_motion_coupling + ABSTRACT SUPERTYPE OF ( + ONEOF ( + gear_pair, + linear_flexible_and_pinion_pair, + rack_and_pinion_pair, + screw_pair ) ) + SUBTYPE OF ( kinematic_pair ); + WHERE + wr1: ( SIZEOF( QUERY ( lr <* SELF\kinematic_pair.associated_link_representations_2 | ( NOT ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.RIGID_LINK_REPRESENTATION' IN TYPEOF( lr ) ) ) ) ) = 0 ); + END_ENTITY; + + ENTITY low_order_kinematic_pair_with_range + SUBTYPE OF ( low_order_kinematic_pair ); + lower_limit_actual_rotation_x : OPTIONAL plane_angle_measure; + upper_limit_actual_rotation_x : OPTIONAL plane_angle_measure; + lower_limit_actual_rotation_y : OPTIONAL plane_angle_measure; + upper_limit_actual_rotation_y : OPTIONAL plane_angle_measure; + lower_limit_actual_rotation_z : OPTIONAL plane_angle_measure; + upper_limit_actual_rotation_z : OPTIONAL plane_angle_measure; + lower_limit_actual_translation_x : OPTIONAL length_measure; + upper_limit_actual_translation_x : OPTIONAL length_measure; + lower_limit_actual_translation_y : OPTIONAL length_measure; + upper_limit_actual_translation_y : OPTIONAL length_measure; + lower_limit_actual_translation_z : OPTIONAL length_measure; + upper_limit_actual_translation_z : OPTIONAL length_measure; + END_ENTITY; + + ENTITY luminous_flux_measure_with_unit + SUBTYPE OF ( measure_with_unit ); + WHERE + wr1: ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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: ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ) AND ( SELF\named_unit.dimensions.mass_exponent = 0 ) AND ( SELF\ + named_unit.dimensions.time_exponent = 0 ) AND ( SELF\named_unit.dimensions.electric_current_exponent = 0 ) AND ( + SELF\named_unit.dimensions.thermodynamic_temperature_exponent = 0 ) AND ( SELF\named_unit.dimensions. + amount_of_substance_exponent = 0 ) AND ( SELF\named_unit.dimensions.luminous_intensity_exponent = 1 ) ); + END_ENTITY; + + ENTITY magnetic_flux_density_measure_with_unit + SUBTYPE OF ( measure_with_unit ); + WHERE + wr1: ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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: ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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_feature_relationship + SUBTYPE OF ( component_feature_relationship ); + 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( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'CONNECTED_FACE_SUB_SET' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MAPPED_ITEM', + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.AXIS2_PLACEMENT_3D' ] * TYPEOF( it ) ) = 1 ) ) ) ) = 0 ); + wr2 : ( SIZEOF( QUERY ( it <* SELF.items | ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'CONNECTED_FACE_SUB_SET' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MAPPED_ITEM'] * TYPEOF( it ) ) = + 1 ) ) ) > 0 ); + wr3 : ( SIZEOF( QUERY ( mi <* QUERY ( it <* items | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MAPPED_ITEM' IN + TYPEOF( it ) ) ) | ( NOT ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'MANIFOLD_SUBSURFACE_SHAPE_REPRESENTATION' IN TYPEOF( mi\mapped_item.mapping_source.mapped_representation ) ) ) ) ) + = 0 ); + wr4 : ( SIZEOF( QUERY ( cfss <* QUERY ( it <* SELF.items | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'CONNECTED_FACE_SUB_SET' IN TYPEOF( it ) ) ) | ( NOT ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'OPEN_SHELL' IN TYPEOF( cfss ) ) ) ) ) = 0 ); + wr5 : ( SIZEOF( QUERY ( cfss <* QUERY ( it <* SELF.items | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'CONNECTED_FACE_SUB_SET' IN TYPEOF( it ) ) ) | ( NOT ( ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'ADVANCED_FACE' IN TYPEOF( fac ) ) ) ) ) = 0 ) ) ) ) ) = 0 ); + wr6 : ( SIZEOF( QUERY ( cfss <* QUERY ( it <* SELF.items | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'CONNECTED_FACE_SUB_SET' IN TYPEOF( it ) ) ) | ( NOT ( SIZEOF( QUERY ( fcs <* cfss\connected_face_set. + cfs_faces | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SUBFACE' IN TYPEOF( fcs ) ) AND ( NOT ( + SIZEOF( QUERY ( elp_fbnds <* QUERY ( bnds <* fcs.bounds | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'EDGE_LOOP' IN TYPEOF( bnds.bound ) ) ) | ( NOT ( SIZEOF( QUERY ( oe <* elp_fbnds.bound\path.edge_list | ( + NOT ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.EDGE_CURVE' IN TYPEOF( oe.edge_element ) ) OR ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SUBEDGE' IN TYPEOF( oe.edge_element ) ) ) ) ) ) = 0 ) ) ) ) + = 0 ) ) ) ) ) = 0 ) ) ) ) = 0 ); + wr8 : ( SIZEOF( QUERY ( cfss <* QUERY ( it <* SELF.items | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'CONNECTED_FACE_SUB_SET' IN TYPEOF( it ) ) ) | ( NOT ( SIZEOF( QUERY ( fcs <* cfss\connected_face_set. + cfs_faces | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SUBFACE' IN TYPEOF( fcs ) ) AND ( NOT ( + SIZEOF( QUERY ( elp_fbnds <* QUERY ( bnds <* fcs.bounds | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'EDGE_LOOP' IN TYPEOF( bnds.bound ) ) ) | ( NOT ( SIZEOF( QUERY ( oe <* elp_fbnds.bound\path.edge_list | ( + NOT ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.VERTEX_POINT' IN TYPEOF( oe.edge_start ) ) AND ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.VERTEX_POINT' IN TYPEOF( oe.edge_end ) ) ) ) ) ) = 0 ) ) ) ) + = 0 ) ) ) ) ) = 0 ) ) ) ) = 0 ); + wr9 : ( SIZEOF( QUERY ( cfss <* QUERY ( it <* SELF.items | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'CONNECTED_FACE_SUB_SET' IN TYPEOF( it ) ) ) | ( NOT ( SIZEOF( QUERY ( fcs <* cfss\connected_face_set. + cfs_faces | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SUBFACE' IN TYPEOF( fcs ) ) AND ( NOT ( + SIZEOF( QUERY ( bnds <* fcs.bounds | ( NOT ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'EDGE_LOOP' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.VERTEX_LOOP'] * TYPEOF( bnds.bound ) ) = 1 ) ) ) ) + = 0 ) ) ) ) ) = 0 ) ) ) ) = 0 ); + wr10: ( SIZEOF( QUERY ( cfss <* QUERY ( it <* SELF.items | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'CONNECTED_FACE_SUB_SET' IN TYPEOF( it ) ) ) | ( NOT ( SIZEOF( QUERY ( fcs <* cfss\connected_face_set. + cfs_faces | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SUBFACE' IN TYPEOF( fcs ) ) AND ( NOT ( + SIZEOF( QUERY ( elp_fbnds <* QUERY ( bnds <* fcs.bounds | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'EDGE_LOOP' IN TYPEOF( bnds.bound ) ) ) | ( NOT ( SIZEOF( QUERY ( oe <* elp_fbnds.bound\path.edge_list | ( + NOT ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LINE', + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CONIC' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'POLYLINE' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SURFACE_CURVE', + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'CONNECTED_FACE_SUB_SET' IN TYPEOF( it ) ) ) | ( NOT ( SIZEOF( QUERY ( fcs <* cfss\connected_face_set. + cfs_faces | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SUBFACE' IN TYPEOF( fcs ) ) AND ( NOT ( + SIZEOF( QUERY ( elp_fbnds <* QUERY ( bnds <* fcs.bounds | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'EDGE_LOOP' IN TYPEOF( bnds.bound ) ) ) | ( NOT ( SIZEOF( QUERY ( oe <* elp_fbnds.bound\path.edge_list | ( ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PCURVE' IN TYPEOF( sc_ag ) ) ) ) ) + = 0 ) ) ) ) ) = 0 ) ) ) ) = 0 ) ) ) ) ) = 0 ) ) ) ) = 0 ); + wr12: ( SIZEOF( QUERY ( cfss <* QUERY ( it <* SELF.items | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'CONNECTED_FACE_SUB_SET' IN TYPEOF( it ) ) ) | ( NOT ( SIZEOF( QUERY ( fcs <* cfss\connected_face_set. + cfs_faces | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SUBFACE' IN TYPEOF( fcs ) ) AND ( NOT ( + SIZEOF( QUERY ( elp_fbnds <* QUERY ( bnds <* fcs.bounds | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'EDGE_LOOP' IN TYPEOF( bnds.bound ) ) ) | ( NOT ( SIZEOF( QUERY ( oe <* elp_fbnds.bound\path.edge_list | ( ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'SHELL_BASED_SURFACE_MODEL' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MAPPED_ITEM', + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.AXIS2_PLACEMENT_3D' ] * TYPEOF( it ) ) = 1 ) ) ) ) = 0 ); + wr2 : ( SIZEOF( QUERY ( it <* SELF.items | ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'SHELL_BASED_SURFACE_MODEL' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MAPPED_ITEM'] * TYPEOF( it ) ) + = 1 ) ) ) > 0 ); + wr3 : ( SIZEOF( QUERY ( mi <* QUERY ( it <* SELF.items | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MAPPED_ITEM' + IN TYPEOF( it ) ) ) | ( NOT ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 | ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHELL_BASED_SURFACE_MODEL' IN TYPEOF( mr_it ) ) ) ) > 0 ) ) ) ) ) + = 0 ); + wr4 : ( SIZEOF( QUERY ( sbsm <* QUERY ( it <* SELF.items | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'SHELL_BASED_SURFACE_MODEL' IN TYPEOF( it ) ) ) | ( NOT ( SIZEOF( QUERY ( sh <* sbsm\shell_based_surface_model + .sbsm_boundary | ( NOT ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.OPEN_SHELL', + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ORIENTED_CLOSED_SHELL' , + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CLOSED_SHELL' ] * TYPEOF( sh ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ); + wr5 : ( SIZEOF( QUERY ( sbsm <* QUERY ( it <* SELF.items | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 + ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FACE_SURFACE' IN TYPEOF( fa ) ) ) ) ) = 0 ) ) ) ) = 0 ) ) ) ) + = 0 ); + wr6 : ( SIZEOF( QUERY ( sbsm <* QUERY ( it <* SELF.items | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 + ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 + ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ADVANCED_FACE' IN TYPEOF( fa ) ) OR ( SIZEOF( + QUERY ( bnds <* fa.bounds | ( NOT ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.EDGE_LOOP', + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.VERTEX_LOOP' ] * TYPEOF( bnds.bound ) ) = 1 ) ) ) ) = 0 ) ) ) ) ) + = 0 ) ) ) ) = 0 ) ) ) ) = 0 ); + wr8 : ( SIZEOF( QUERY ( sbsm <* QUERY ( it <* SELF.items | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 + ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ADVANCED_FACE' IN TYPEOF( fa ) ) OR ( SIZEOF( + QUERY ( elp_fbnds <* QUERY ( bnds <* fa.bounds | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.EDGE_LOOP' + IN TYPEOF( bnds.bound ) ) ) | ( NOT ( SIZEOF( QUERY ( oe <* elp_fbnds\path.edge_list | ( NOT ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.EDGE_CURVE' IN TYPEOF( oe.edge_element ) ) ) ) ) = 0 ) ) ) ) + = 0 ) ) ) ) ) = 0 ) ) ) ) = 0 ) ) ) ) = 0 ); + wr9 : ( SIZEOF( QUERY ( sbsm <* QUERY ( it <* SELF.items | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 + ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ADVANCED_FACE' IN TYPEOF( fa ) ) OR ( SIZEOF( + QUERY ( elp_fbnds <* QUERY ( bnds <* fa.bounds | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.EDGE_LOOP' + IN TYPEOF( bnds.bound ) ) ) | ( NOT ( SIZEOF( QUERY ( oe_cv <* QUERY ( oe <* elp_fbnds\path.edge_list | ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.EDGE_CURVE' IN TYPEOF( oe.edge_element ) ) ) | ( NOT ( + SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.B_SPLINE_CURVE', + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CONIC' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'CURVE_REPLICA' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LINE', + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.OFFSET_CURVE_3D' , + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PCURVE' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'POLYLINE' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 + ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ADVANCED_FACE' IN TYPEOF( fa ) ) OR ( SIZEOF( + QUERY ( elp_fbnds <* QUERY ( bnds <* fa.bounds | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 + ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ADVANCED_FACE' IN TYPEOF( fa ) ) OR ( SIZEOF( + QUERY ( elp_fbnds <* QUERY ( bnds <* fa.bounds | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.EDGE_LOOP' + IN TYPEOF( bnds.bound ) ) ) | ( NOT ( SIZEOF( QUERY ( oe <* elp_fbnds\path.edge_list | ( NOT ( ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.VERTEX_POINT' IN TYPEOF( oe.edge_element.edge_start ) ) AND + ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.VERTEX_POINT' IN TYPEOF( oe.edge_element.edge_end ) ) ) ) ) ) + = 0 ) ) ) ) = 0 ) ) ) ) ) = 0 ) ) ) ) = 0 ) ) ) ) = 0 ); + wr12: ( SIZEOF( QUERY ( sbsm <* QUERY ( it <* SELF.items | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 + ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ADVANCED_FACE' IN TYPEOF( fa ) ) OR ( SIZEOF( + QUERY ( elp_fbnds <* QUERY ( bnds <* fa.bounds | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.EDGE_LOOP' + IN TYPEOF( bnds.bound ) ) ) | ( NOT ( SIZEOF( QUERY ( oe <* elp_fbnds\path.edge_list | ( NOT ( ( SIZEOF( [ + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CARTESIAN_POINT' , + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.DEGENERATE_PCURVE' , + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.POINT_ON_CURVE' , + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.POINT_ON_SURFACE' ] * TYPEOF( oe.edge_element.edge_start\ + vertex_point.vertex_geometry ) ) = 1 ) AND ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'CARTESIAN_POINT' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.DEGENERATE_PCURVE', + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.POINT_ON_CURVE' , + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 + ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ADVANCED_FACE' IN TYPEOF( fa ) ) OR ( SIZEOF( + QUERY ( vlp_fbnds <* QUERY ( bnds <* fa.bounds | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.VERTEX_LOOP' + IN TYPEOF( bnds.bound ) ) ) | ( NOT ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.VERTEX_POINT' IN + TYPEOF( vlp_fbnds\vertex_loop.loop_vertex ) ) ) ) ) = 0 ) ) ) ) ) = 0 ) ) ) ) = 0 ) ) ) ) = 0 ); + wr14: ( SIZEOF( QUERY ( sbsm <* QUERY ( it <* SELF.items | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 + ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ADVANCED_FACE' IN TYPEOF( fa ) ) OR ( SIZEOF( + QUERY ( vlp_fbnds <* QUERY ( bnds <* fa.bounds | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.VERTEX_LOOP' + IN TYPEOF( bnds.bound ) ) ) | ( NOT ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CARTESIAN_POINT', + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.DEGENERATE_PCURVE' , + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.POINT_ON_CURVE' , + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 marking + SUBTYPE OF ( feature_definition ); + WHERE + wr1: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + + 'DEFINITION' ) | ( SIZEOF( QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) AND ( 2 <= SIZEOF( pdr. + used_representation.items ) ) AND ( SIZEOF( pdr.used_representation.items ) <= 6 ) ) ) ) = 1 ) ) ) = 1 ); + wr2: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + + 'DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. + used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF( it ) ) AND ( it. + name = 'marking text' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ); + wr3: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + + 'DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. + used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF( it ) ) AND ( it. + name = 'special instructions' ) ) ) ) <= 1 ) ) ) ) = 0 ) ) ) ) = 0 ); + wr4: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + + 'DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. + used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF( it ) ) AND ( it. + name = 'font name' ) ) ) ) <= 1 ) ) ) ) = 0 ) ) ) ) = 0 ); + wr5: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + + 'DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. + used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( SIZEOF( [ + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM' , + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( it ) ) = 2 ) AND ( it. + name = 'character height' ) ) ) ) <= 1 ) ) ) ) = 0 ) ) ) ) = 0 ); + wr6: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + + 'DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. + used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( SIZEOF( [ + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM' , + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( it ) ) = 2 ) AND ( it. + name = 'character spacing' ) ) ) ) <= 1 ) ) ) ) = 0 ) ) ) ) = 0 ); + wr7: ( SIZEOF( QUERY ( pds <* QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) | ( NOT ( SIZEOF( QUERY ( sa_occ <* USEDIN( pds, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) | ( SIZEOF( QUERY ( sdr <* + QUERY ( sar <* USEDIN( sa_occ, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.' + + 'RELATED_SHAPE_ASPECT' ) | ( ( sar.description = 'applied shape' ) AND ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF( sar ) ) ) ) | ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT' IN TYPEOF( sdr.relating_shape_aspect ) ) ) ) = + 1 ) ) ) = 1 ) ) ) ) = 0 ); + END_ENTITY; + + ENTITY mass_measure_with_unit + SUBTYPE OF ( measure_with_unit ); + WHERE + wr1: ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ) AND ( SELF\named_unit.dimensions.mass_exponent = 1 ) AND ( SELF\ + named_unit.dimensions.time_exponent = 0 ) AND ( SELF\named_unit.dimensions.electric_current_exponent = 0 ) AND ( + SELF\named_unit.dimensions.thermodynamic_temperature_exponent = 0 ) AND ( SELF\named_unit.dimensions. + amount_of_substance_exponent = 0 ) AND ( SELF\named_unit.dimensions.luminous_intensity_exponent = 0 ) ); + END_ENTITY; + + ENTITY matched_mesh_connection + SUBTYPE OF ( mesh_connectivity ); + SELF\mesh_connectivity.current : structured_mesh; + range : indices_range; + donor : structured_mesh; + donor_range : indices_range; + transform : ARRAY [1 : SELF\mesh_connectivity.index_count] OF INTEGER; + WHERE + wr1: ( current :<>: donor ); + wr2: ( donor\mesh.index_count = SELF\mesh_connectivity.index_count ); + wr3: ( range\indices_range.nindices = SELF\mesh_connectivity.index_count ); + wr4: ( donor_range\indices_range.nindices = SELF\mesh_connectivity.index_count ); + END_ENTITY; + + ENTITY mated_part_relationship + SUBTYPE OF ( group, group_assignment, product_definition_shape, product_definition_relationship, shape_aspect ); + items : SET [0 : ?] OF product_definition; + DERIVE + SELF\group_assignment.assigned_group : mated_part_relationship := SELF; + SELF\property_definition.definition : mated_part_relationship := SELF; + SELF\shape_aspect.of_shape : mated_part_relationship := SELF; + 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: ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CHARACTERIZED_OBJECT' IN TYPEOF( SELF\property_definition. + definition ) ) OR ( SIZEOF( bag_to_set( USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) ) - QUERY ( temp <* bag_to_set( USEDIN( SELF, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) ) | ( + ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 mathematical_description; + described : maths_expression; + describing : STRING; + encoding : label; + END_ENTITY; + + ENTITY maths_boolean_variable + SUBTYPE OF ( maths_variable, boolean_variable ); + WHERE + wr1: subspace_of_es( SELF\maths_variable.values_space, es_booleans ); + END_ENTITY; + + ENTITY maths_enum_literal + SUBTYPE OF ( generic_literal ); + lit_value : maths_enum_atom; + END_ENTITY; + + ENTITY maths_function + ABSTRACT SUPERTYPE OF ( + ONEOF ( + finite_function, + constant_function, + selector_function, + elementary_function, + restriction_function, + repackaging_function, + reindexed_array_function, + series_composed_function, + parallel_composed_function, + explicit_table_function, + homogeneous_linear_function, + general_linear_function, + b_spline_basis, + b_spline_function, + rationalize_function, + partial_derivative_function, + definite_integral_function, + abstracted_expression_function, + expression_denoted_function, + imported_point_function, + imported_curve_function, + imported_surface_function, + imported_volume_function, + application_defined_function ) ) + SUBTYPE OF ( generic_expression ); + DERIVE + domain : tuple_space := derive_function_domain( SELF ); + range : tuple_space := derive_function_range( SELF ); + END_ENTITY; + + ENTITY maths_integer_variable + SUBTYPE OF ( maths_variable, int_numeric_variable ); + WHERE + wr1: subspace_of_es( SELF\maths_variable.values_space, es_integers ); + END_ENTITY; + + ENTITY maths_real_variable + SUBTYPE OF ( maths_variable, real_numeric_variable ); + WHERE + wr1: subspace_of_es( SELF\maths_variable.values_space, es_reals ); + END_ENTITY; + + ENTITY maths_space + ABSTRACT SUPERTYPE OF ( + ONEOF ( + elementary_space, + finite_integer_interval, + integer_interval_from_min, + integer_interval_to_max, + finite_real_interval, + real_interval_from_min, + real_interval_to_max, + cartesian_complex_number_region, + polar_complex_number_region, + finite_space, + uniform_product_space, + listed_product_space, + extended_tuple_space, + function_space ) ) + SUBTYPE OF ( generic_expression ); + END_ENTITY; + + ENTITY maths_space_context; + id : identifier; + name : label; + description : OPTIONAL text; + abstract_space : maths_space; + physical_space : space_context_select; + END_ENTITY; + + ENTITY maths_string_variable + SUBTYPE OF ( maths_variable, string_variable ); + WHERE + wr1: subspace_of_es( SELF\maths_variable.values_space, es_strings ); + END_ENTITY; + + ENTITY maths_tuple_literal + SUBTYPE OF ( generic_literal ); + lit_value : LIST OF maths_value; + END_ENTITY; + + ENTITY maths_variable + SUBTYPE OF ( generic_variable ); + values_space : maths_space; + name : label; + WHERE + wr1: expression_is_constant( values_space ); + END_ENTITY; + + ENTITY maximum_function + SUBTYPE OF ( multiple_arity_function_call ); + END_ENTITY; + + ENTITY mbna_bc + SUPERTYPE OF ( + ONEOF ( + elements_bc, + indexed_elements_bc, + indexed_points_bc ) ) + SUBTYPE OF ( mbna_condition ); + datasets : SET OF mbna_bc_dataset; + gridloc : mesh_location; + inward_normal_index : OPTIONAL ijk_minmax; + inward_normal_list : OPTIONAL indices_list; + rstate : SET OF mbna_reference_state; + the_type : mbna_bc_type; + END_ENTITY; + + ENTITY mbna_bc_data + SUBTYPE OF ( mbna_condition ); + END_ENTITY; + + ENTITY mbna_bc_data_global + SUBTYPE OF ( mbna_bc_data ); + INVERSE + data_global : SET OF model_property_distribution FOR domain; + END_ENTITY; + + ENTITY mbna_bc_data_local + SUBTYPE OF ( mbna_bc_data ); + INVERSE + data_local : SET OF model_property_distribution FOR domain; + END_ENTITY; + + ENTITY mbna_bc_dataset + SUPERTYPE OF ( + ONEOF ( + mbna_dirichlet_bc_dataset, + mbna_neumann_bc_dataset ) ) + SUBTYPE OF ( mbna_condition ); + gridloc : mesh_location; + rstate : SET OF mbna_reference_state; + the_type : mbna_bc_type_simple; + END_ENTITY; + + ENTITY mbna_behaviour_model + SUPERTYPE OF ( + ONEOF ( + thermal_conductivity_model, + gas_model, + turbulence_closure, + turbulence_model, + viscosity_model ) ) + SUBTYPE OF ( mbna_equation ); + INVERSE + data : SET OF model_property_distribution FOR domain; + END_ENTITY; + + ENTITY mbna_condition + ABSTRACT SUPERTYPE OF ( + ONEOF ( + mbna_zone_bc, + mbna_bc, + mbna_bc_dataset, + mbna_bc_data, + mbna_reference_state ) ) + SUBTYPE OF ( model_state_domain ); + END_ENTITY; + + ENTITY mbna_dirichlet_bc_dataset + SUBTYPE OF ( mbna_bc_dataset ); + data : mbna_bc_data; + END_ENTITY; + + ENTITY mbna_discrete_data + SUBTYPE OF ( mbna_result ); + gridloc : mesh_location; + INVERSE + data : SET OF property_distribution_description FOR physical_function; + END_ENTITY; + + ENTITY mbna_discrete_data_with_rind + SUBTYPE OF ( mbna_discrete_data ); + rind_planes : rind; + END_ENTITY; + + ENTITY mbna_equation + SUPERTYPE OF ( + ONEOF ( + mbna_equation_set, + mbna_governing_equation, + mbna_behaviour_model ) ) + SUBTYPE OF ( model_product_domain ); + END_ENTITY; + + ENTITY mbna_equation_set + SUBTYPE OF ( mbna_equation ); + dimension : INTEGER; + equations : mbna_governing_equation; + mbna_models : SET OF mbna_behaviour_models; + END_ENTITY; + + ENTITY mbna_governing_equation + SUBTYPE OF ( mbna_equation ); + equation_type : mbna_governing_equation_type; + END_ENTITY; + + ENTITY mbna_history + SUBTYPE OF ( mbna_result ); + notes : LIST OF text; + INVERSE + data : SET OF property_distribution_description FOR physical_function; + END_ENTITY; + + ENTITY mbna_model + SUBTYPE OF ( model_product_domain ); + SELF\model_product_domain.temporal_parts : LIST OF mbna_step; + equations : SET OF mbna_equation_set; + INVERSE + history : SET OF mbna_history FOR domain; + END_ENTITY; + + ENTITY mbna_neumann_bc_dataset + SUBTYPE OF ( mbna_bc_dataset ); + data : mbna_bc_data; + END_ENTITY; + + ENTITY mbna_reference_state + SUBTYPE OF ( mbna_condition ); + INVERSE + data : SET OF model_property_distribution FOR domain; + END_ENTITY; + + ENTITY mbna_result + SUPERTYPE OF ( + ONEOF ( + mbna_solution, + mbna_history, + mbna_discrete_data ) ) + SUBTYPE OF ( model_property_distribution ); + END_ENTITY; + + ENTITY mbna_solution + SUBTYPE OF ( mbna_result ); + gridloc : mesh_location; + INVERSE + solution : SET OF property_distribution_description FOR physical_function; + END_ENTITY; + + ENTITY mbna_solution_with_rind + SUBTYPE OF ( mbna_solution ); + rind_planes : rind; + END_ENTITY; + + ENTITY mbna_state + SUBTYPE OF ( model_state_domain ); + END_ENTITY; + + ENTITY mbna_step + SUBTYPE OF ( model_action_domain ); + SELF\model_action_domain.final : mbna_state; + equations : SET OF mbna_equation_set; + refstate : SET OF mbna_reference_state; + zones : LIST OF mbna_zone; + INVERSE + history : SET OF mbna_history FOR domain; + END_ENTITY; + + ENTITY mbna_zone + SUBTYPE OF ( model_product_domain_with_mesh ); + conditions : SET OF mbna_zone_bc; + equations : SET OF mbna_equation_set; + grid_connectivity : OPTIONAL multiple_mesh_block; + rstate : SET OF mbna_reference_state; + INVERSE + coordinates : SET OF grid_coordinates FOR domain; + field_data : SET OF mbna_discrete_data FOR domain; + history : SET OF mbna_history FOR domain; + solution : SET OF mbna_solution FOR domain; + END_ENTITY; + + ENTITY mbna_zone_bc + SUBTYPE OF ( mbna_condition ); + conditions : SET OF mbna_bc; + rstate : SET OF mbna_reference_state; + 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 | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRECISION_QUALIFIER' IN + TYPEOF( temp ) ) ) ) < 2 ); + wr2: ( NOT ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'DRAUGHTING_MODEL' ) IN TYPEOF( rep_2 ) ) ) OR ( + ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'DRAUGHTING_MODEL' ) IN TYPEOF( rep_1 ) ) OR ( ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'SHAPE_REPRESENTATION' ) IN TYPEOF( rep_1 ) ) ); + wr2: ( ( NOT ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'MECHANICAL_DESIGN_GEOMETRIC_PRESENTATION_REPRESENTATION' ) IN TYPEOF( rep_2 ) ) ) OR ( ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'MECHANICAL_DESIGN_GEOMETRIC_PRESENTATION_REPRESENTATION' ) + IN TYPEOF( rep_1 ) ) OR ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'SHAPE_REPRESENTATION' ) IN + TYPEOF( rep_1 ) ) ); + wr3: ( ( NOT ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'MECHANICAL_DESIGN_SHADED_PRESENTATION_REPRESENTATION' ) IN TYPEOF( rep_2 ) ) ) OR ( ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'MECHANICAL_DESIGN_SHADED_PRESENTATION_REPRESENTATION' ) + IN TYPEOF( rep_1 ) ) OR ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MAPPED_ITEM' IN + TYPEOF( it1 ) ) ) OR ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRESENTATION_VIEW' IN TYPEOF( it1\ + mapped_item.mapping_source.mapped_representation ) ) ) ) ) = 0 ); + wr2: ( SIZEOF( QUERY ( pv <* QUERY ( mi1 <* QUERY ( it1 <* SELF.items | ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MAPPED_ITEM' IN TYPEOF( it1 ) ) ) | ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRESENTATION_VIEW' IN TYPEOF( mi1\mapped_item.mapping_source. + mapped_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it2 <* pv\mapped_item.mapping_source.mapped_representation\ + representation.items | ( ( NOT ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.AXIS2_PLACEMENT' IN TYPEOF( + it2 ) ) OR ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MAPPED_ITEM' IN TYPEOF( it2 ) ) AND ( NOT ( ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'CAMERA_IMAGE_3D_WITH_SCALE' ) IN TYPEOF( it2 ) ) ) AND + ( NOT ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRESENTATION_VIEW' IN TYPEOF( it2\mapped_item. + mapping_source.mapped_representation ) ) ) ) ) ) OR ( ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'CAMERA_IMAGE_3D_WITH_SCALE' ) IN TYPEOF( it2 ) ) AND ( NOT ( ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'MECHANICAL_DESIGN_GEOMETRIC_PRESENTATION_REPRESENTATION' ) + IN TYPEOF( it2\mapped_item.mapping_source.mapped_representation ) ) ) ) ) ) ) = 0 ) ) ) ) = 0 ); + wr3: ( ( SIZEOF( QUERY ( ps <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PRESENTATION_SIZE.' + + 'UNIT' ) | ( ( ps\presentation_size.size.size_in_x <= 0 ) OR ( ps\presentation_size.size.size_in_y <= 0 ) ) ) ) + = 0 ) AND ( SIZEOF( QUERY ( ais <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'AREA_IN_SET.AREA' ) | ( SIZEOF( QUERY ( ps <* USEDIN( ais, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'PRESENTATION_SIZE.UNIT' ) | ( ( ps\presentation_size.size.size_in_x <= 0 ) OR ( ps\presentation_size.size. + size_in_y <= 0 ) ) ) ) > 0 ) ) ) = 0 ) ); + wr4: ( ( ( SIZEOF( QUERY ( ps <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PRESENTATION_SIZE.' + + 'UNIT' ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'AXIS2_PLACEMENT_2D' ) IN TYPEOF( ps. + size.placement ) ) ) ) = 1 ) AND ( SIZEOF( QUERY ( ps <* USEDIN( SELF, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PRESENTATION_SIZE.UNIT' ) | ( ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'AXIS2_PLACEMENT_3D' ) IN TYPEOF( ps.size.placement ) ) ) ) + = 0 ) ) OR ( ( SIZEOF( QUERY ( ais <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'AREA_IN_SET.AREA' ) | ( SIZEOF( QUERY ( ps <* USEDIN( ais, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'PRESENTATION_SIZE.UNIT' ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'AXIS2_PLACEMENT_2D' ) + IN TYPEOF( ps.size.placement ) ) ) ) = 1 ) ) ) = 1 ) AND ( SIZEOF( QUERY ( ais <* USEDIN( SELF, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'AREA_IN_SET.AREA' ) | ( SIZEOF( QUERY ( ps <* USEDIN( + ais, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PRESENTATION_SIZE.UNIT' ) | ( ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MAPPED_ITEM' + IN TYPEOF( it ) ) ) | ( NOT ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'SHAPE_REPRESENTATION' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 | ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.STYLED_ITEM' IN TYPEOF( it ) ) ) | ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MAPPED_ITEM' IN TYPEOF( si\styled_item.item ) ) ) | ( NOT ( + ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.STYLED_ITEM' + IN TYPEOF( it ) ) ) | ( NOT ( SIZEOF( QUERY ( psa <* si\styled_item.styles | ( NOT ( SIZEOF( QUERY ( pss <* psa. + styles | ( NOT ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.POINT_STYLE', + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CURVE_STYLE' , + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SURFACE_STYLE_USAGE' ] * TYPEOF( pss ) ) = 1 ) ) ) ) = 0 ) ) ) ) + = 0 ) ) ) ) = 0 ); + wr4 : ( SIZEOF( QUERY ( si <* QUERY ( it <* SELF.items | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.STYLED_ITEM' + IN TYPEOF( it ) ) ) | ( NOT ( SIZEOF( QUERY ( psbc <* QUERY ( psa <* si\styled_item.styles | ( ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PRESENTATION_STYLE_BY_CONTEXT' ) IN TYPEOF( psa ) ) ) + | ( NOT ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'REPRESENTATION_ITEM', + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.REPRESENTATION' ] * TYPEOF( psbc\ + presentation_style_by_context.style_context ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ); + wr5 : ( SIZEOF( QUERY ( si <* QUERY ( it <* SELF.items | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.STYLED_ITEM' + IN TYPEOF( it ) ) ) | ( NOT ( SIZEOF( QUERY ( psa <* si\styled_item.styles | ( NOT ( SIZEOF( QUERY ( ps <* + QUERY ( pss <* psa.styles | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.POINT_STYLE' IN TYPEOF( pss ) ) ) + | ( NOT ( ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'POSITIVE_LENGTH_MEASURE' ) IN TYPEOF( ps\ + point_style.marker_size ) ) AND ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.COLOUR_RGB', + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'DRAUGHTING_PRE_DEFINED_COLOUR'] * TYPEOF( ps\ + point_style.marker_colour ) ) = 1 ) ) ) ) ) = 0 ) ) ) ) = 0 ) ) ) ) = 0 ); + wr6 : ( SIZEOF( QUERY ( si <* QUERY ( it <* SELF.items | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.STYLED_ITEM' + IN TYPEOF( it ) ) ) | ( NOT ( SIZEOF( QUERY ( psa <* si\styled_item.styles | ( NOT ( SIZEOF( QUERY ( cs <* + QUERY ( pss <* psa.styles | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CURVE_STYLE' IN TYPEOF( pss ) ) ) + | ( NOT ( ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.COLOUR_RGB', + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'DRAUGHTING_PRE_DEFINED_COLOUR'] * TYPEOF( cs\ + curve_style.curve_colour ) ) = 1 ) AND ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'POSITIVE_LENGTH_MEASURE' ) IN TYPEOF( cs\curve_style.curve_width ) ) AND ( SIZEOF( [ + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CURVE_STYLE_FONT' , + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.STYLED_ITEM' + IN TYPEOF( it ) ) ) | ( NOT ( SIZEOF( QUERY ( psa <* si\styled_item.styles | ( NOT ( SIZEOF( QUERY ( ssu <* + QUERY ( pss <* psa.styles | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SURFACE_STYLE_USAGE' IN TYPEOF( + pss ) ) ) | ( NOT ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'SURFACE_SIDE_STYLE' ) IN TYPEOF( + ssu\surface_style_usage.style ) ) ) ) ) = 0 ) ) ) ) = 0 ) ) ) ) = 0 ); + wr8 : ( SIZEOF( QUERY ( si <* QUERY ( it <* SELF.items | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.STYLED_ITEM' + IN TYPEOF( it ) ) ) | ( NOT ( SIZEOF( QUERY ( psa <* si\styled_item.styles | ( NOT ( SIZEOF( QUERY ( ssu <* + QUERY ( pss <* psa.styles | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SURFACE_STYLE_USAGE' IN TYPEOF( + pss ) ) ) | ( NOT ( SIZEOF( QUERY ( sses <* ssu\surface_style_usage.style\surface_side_style.styles | ( NOT ( + SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'SURFACE_STYLE_PARAMETER_LINE', + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'SURFACE_STYLE_CONTROL_GRID', + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'SURFACE_STYLE_SILHOUETTE', + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'SURFACE_STYLE_SEGMENTATION_CURVE', + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'SURFACE_STYLE_FILL_AREA', + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'SURFACE_STYLE_BOUNDARY'] * TYPEOF( sses ) ) = 1 ) ) ) ) + = 0 ) ) ) ) = 0 ) ) ) ) = 0 ) ) ) ) = 0 ); + wr9 : ( SIZEOF( QUERY ( si <* QUERY ( it <* SELF.items | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.STYLED_ITEM' + IN TYPEOF( it ) ) ) | ( NOT ( SIZEOF( QUERY ( psa <* si\styled_item.styles | ( NOT ( SIZEOF( QUERY ( ssu <* + QUERY ( pss <* psa.styles | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SURFACE_STYLE_USAGE' IN TYPEOF( + pss ) ) ) | ( NOT ( SIZEOF( QUERY ( sspl <* QUERY ( sses <* ssu\surface_style_usage.style\surface_side_style. + styles | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'SURFACE_STYLE_PARAMETER_LINE' ) IN TYPEOF( + sses ) ) ) | ( NOT ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CURVE_STYLE' IN TYPEOF( sspl\ + surface_style_parameter_line.style_of_parameter_lines ) ) AND ( SIZEOF( [ + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.COLOUR_RGB' , + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'DRAUGHTING_PRE_DEFINED_COLOUR'] * TYPEOF( sspl\ + surface_style_parameter_line.style_of_parameter_lines\curve_style.curve_colour ) ) = 1 ) AND ( ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'POSITIVE_LENGTH_MEASURE' ) IN TYPEOF( sspl\ + surface_style_parameter_line.style_of_parameter_lines\curve_style.curve_width ) ) AND ( SIZEOF( [ + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CURVE_STYLE_FONT' , + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.STYLED_ITEM' + IN TYPEOF( it ) ) ) | ( NOT ( SIZEOF( QUERY ( psa <* si\styled_item.styles | ( NOT ( SIZEOF( QUERY ( ssu <* + QUERY ( pss <* psa.styles | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SURFACE_STYLE_USAGE' IN TYPEOF( + pss ) ) ) | ( NOT ( SIZEOF( QUERY ( sscg <* QUERY ( sses <* ssu\surface_style_usage.style\surface_side_style. + styles | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'SURFACE_STYLE_CONTROL_GRID' ) IN TYPEOF( + sses ) ) ) | ( NOT ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CURVE_STYLE' IN TYPEOF( sscg\ + surface_style_control_grid.style_of_control_grid ) ) AND ( SIZEOF( [ + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.COLOUR_RGB' , + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'DRAUGHTING_PRE_DEFINED_COLOUR'] * TYPEOF( sscg\ + surface_style_control_grid.style_of_control_grid\curve_style.curve_colour ) ) = 1 ) AND ( ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'POSITIVE_LENGTH_MEASURE' ) IN TYPEOF( sscg\ + surface_style_control_grid.style_of_control_grid\curve_style.curve_width ) ) AND ( SIZEOF( [ + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CURVE_STYLE_FONT' , + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.STYLED_ITEM' + IN TYPEOF( it ) ) ) | ( NOT ( SIZEOF( QUERY ( psa <* si\styled_item.styles | ( NOT ( SIZEOF( QUERY ( ssu <* + QUERY ( pss <* psa.styles | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SURFACE_STYLE_USAGE' IN TYPEOF( + pss ) ) ) | ( NOT ( SIZEOF( QUERY ( sssh <* QUERY ( sses <* ssu\surface_style_usage.style\surface_side_style. + styles | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'SURFACE_STYLE_SILHOUETTE' ) IN TYPEOF( sses ) ) ) + | ( NOT ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CURVE_STYLE' IN TYPEOF( sssh\ + surface_style_silhouette.style_of_silhouette ) ) AND ( SIZEOF( [ + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.COLOUR_RGB' , + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'DRAUGHTING_PRE_DEFINED_COLOUR'] * TYPEOF( sssh\ + surface_style_silhouette.style_of_silhouette\curve_style.curve_colour ) ) = 1 ) AND ( ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'POSITIVE_LENGTH_MEASURE' ) IN TYPEOF( sssh\ + surface_style_silhouette.style_of_silhouette\curve_style.curve_width ) ) AND ( SIZEOF( [ + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CURVE_STYLE_FONT' , + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.STYLED_ITEM' + IN TYPEOF( it ) ) ) | ( NOT ( SIZEOF( QUERY ( psa <* si\styled_item.styles | ( NOT ( SIZEOF( QUERY ( ssu <* + QUERY ( pss <* psa.styles | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SURFACE_STYLE_USAGE' IN TYPEOF( + pss ) ) ) | ( NOT ( SIZEOF( QUERY ( sssc <* QUERY ( sses <* ssu\surface_style_usage.style\surface_side_style. + styles | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'SURFACE_STYLE_SEGMENTATION_CURVE' ) IN + TYPEOF( sses ) ) ) | ( NOT ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CURVE_STYLE' IN TYPEOF( sssc\ + surface_style_segmentation_curve.style_of_segmentation_curve ) ) AND ( SIZEOF( [ + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.COLOUR_RGB' , + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'DRAUGHTING_PRE_DEFINED_COLOUR'] * TYPEOF( sssc\ + surface_style_segmentation_curve.style_of_segmentation_curve\curve_style.curve_colour ) ) = 1 ) AND ( ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'POSITIVE_LENGTH_MEASURE' ) IN TYPEOF( sssc\ + surface_style_segmentation_curve.style_of_segmentation_curve\curve_style.curve_width ) ) AND ( SIZEOF( [ + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CURVE_STYLE_FONT' , + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.STYLED_ITEM' + IN TYPEOF( it ) ) ) | ( NOT ( SIZEOF( QUERY ( psa <* si\styled_item.styles | ( NOT ( SIZEOF( QUERY ( ssu <* + QUERY ( pss <* psa.styles | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SURFACE_STYLE_USAGE' IN TYPEOF( + pss ) ) ) | ( NOT ( SIZEOF( QUERY ( ssbd <* QUERY ( sses <* ssu\surface_style_usage.style\surface_side_style. + styles | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'SURFACE_STYLE_BOUNDARY' ) IN TYPEOF( sses ) ) ) + | ( NOT ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CURVE_STYLE' IN TYPEOF( ssbd\ + surface_style_boundary.style_of_boundary ) ) AND ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'COLOUR_RGB' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'DRAUGHTING_PRE_DEFINED_COLOUR'] * + TYPEOF( ssbd\surface_style_boundary.style_of_boundary\curve_style.curve_colour ) ) = 1 ) AND ( ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'POSITIVE_LENGTH_MEASURE' ) IN TYPEOF( ssbd\ + surface_style_boundary.style_of_boundary\curve_style.curve_width ) ) AND ( SIZEOF( [ + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CURVE_STYLE_FONT' , + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ); + SELF\representation.items : SET [1 : ?] OF mechanical_design_shaded_presentation_area_items; + WHERE + wr1: ( SIZEOF( QUERY ( it1 <* SELF.items | ( NOT ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.AXIS2_PLACEMENT' + IN TYPEOF( it1 ) ) OR ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MAPPED_ITEM' IN TYPEOF( it1 ) ) AND + ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRESENTATION_VIEW' IN TYPEOF( it1\mapped_item.mapping_source. + mapped_representation ) ) ) ) ) ) ) = 0 ); + wr2: ( SIZEOF( QUERY ( pv <* QUERY ( mi1 <* QUERY ( it1 <* SELF.items | ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MAPPED_ITEM' IN TYPEOF( it1 ) ) ) | ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRESENTATION_VIEW' IN TYPEOF( mi1\mapped_item.mapping_source. + mapped_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it2 <* pv\mapped_item.mapping_source.mapped_representation\ + representation.items | ( ( NOT ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.AXIS2_PLACEMENT' IN TYPEOF( + it2 ) ) OR ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MAPPED_ITEM' IN TYPEOF( it2 ) ) AND ( NOT ( ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'CAMERA_IMAGE_3D_WITH_SCALE' ) IN TYPEOF( it2 ) ) ) AND + ( NOT ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRESENTATION_VIEW' IN TYPEOF( it2\mapped_item. + mapping_source.mapped_representation ) ) ) ) ) ) OR ( ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'CAMERA_IMAGE_3D_WITH_SCALE' ) IN TYPEOF( it2 ) ) AND ( NOT ( ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'MECHANICAL_DESIGN_SHADED_PRESENTATION_REPRESENTATION' ) + IN TYPEOF( it2\mapped_item.mapping_source.mapped_representation ) ) ) ) ) ) ) = 0 ) ) ) ) = 0 ); + wr3: ( ( SIZEOF( QUERY ( ps <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PRESENTATION_SIZE.' + + 'UNIT' ) | ( NOT ( ( ps\presentation_size.size.size_in_x > 0 ) AND ( ps\presentation_size.size.size_in_y > 0 ) ) ) ) ) + = 0 ) AND ( SIZEOF( QUERY ( pset <* QUERY ( ais <* USEDIN( SELF, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'AREA_IN_SET.AREA' ) | ( ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PRESENTATION_SET' ) IN TYPEOF( ais.in_set ) ) ) | ( + SIZEOF( QUERY ( ps <* USEDIN( pset, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PRESENTATION_SIZE.UNIT' ) + | ( NOT ( ( ps\presentation_size.size.size_in_x > 0 ) AND ( ps\presentation_size.size.size_in_y > 0 ) ) ) ) ) = 0 ) ) ) + = 0 ) ); + wr4: ( ( SIZEOF( QUERY ( psize <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PRESENTATION_SIZE.' + + 'UNIT' ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'AXIS2_PLACEMENT_2D' ) IN TYPEOF( psize. + size.placement ) ) ) ) = 1 ) AND ( SIZEOF( QUERY ( pset <* QUERY ( ais <* USEDIN( SELF, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'AREA_IN_SET.AREA' ) | ( ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PRESENTATION_SET' ) IN TYPEOF( ais.in_set ) ) ) | ( + SIZEOF( QUERY ( psize <* USEDIN( pset, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PRESENTATION_SIZE.' + + 'UNIT' ) | ( NOT ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'AXIS2_PLACEMENT_2D' ) IN TYPEOF( + psize.size.placement ) ) ) ) ) = 0 ) ) ) = 0 ) ); + wr5: ( SIZEOF( QUERY ( pv <* QUERY ( mi1 <* QUERY ( it1 <* SELF.items | ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MAPPED_ITEM' IN TYPEOF( it1 ) ) ) | ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRESENTATION_VIEW' IN TYPEOF( mi1\mapped_item.mapping_source. + mapped_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( ci <* pv\mapped_item.mapping_source.mapped_representation\ + representation.items | ( ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'CAMERA_IMAGE_3D_WITH_SCALE' ) + IN TYPEOF( ci ) ) AND ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'CAMERA_MODEL_D3', + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'CAMERA_MODEL_D3_WITH_HLHSR', + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ); + SELF\representation.items : SET [1 : ?] OF mechanical_design_shaded_presentation_representation_items; + WHERE + wr1 : ( SIZEOF( QUERY ( mi <* QUERY ( it <* SELF.items | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MAPPED_ITEM' + IN TYPEOF( it ) ) ) | ( NOT ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'SHAPE_REPRESENTATION' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'MECHANICAL_DESIGN_SHADED_PRESENTATION_REPRESENTATION' ] * TYPEOF( mi\mapped_item.mapping_source. + mapped_representation ) ) = 1 ) ) ) ) = 0 ); + wr2 : ( SIZEOF( QUERY ( smi <* QUERY ( si <* QUERY ( it <* SELF.items | ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.STYLED_ITEM' IN TYPEOF( it ) ) ) | ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MAPPED_ITEM' IN TYPEOF( si\styled_item.item ) ) ) | ( NOT ( + ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.STYLED_ITEM' + IN TYPEOF( it ) ) ) | ( NOT ( SIZEOF( QUERY ( psa <* si\styled_item.styles | ( NOT ( SIZEOF( QUERY ( pss <* psa. + styles | ( NOT ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.POINT_STYLE', + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CURVE_STYLE' , + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SURFACE_STYLE_USAGE' ] * TYPEOF( pss ) ) = 1 ) ) ) ) = 0 ) ) ) ) + = 0 ) ) ) ) = 0 ); + wr4 : ( SIZEOF( QUERY ( si <* QUERY ( it <* SELF.items | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.STYLED_ITEM' + IN TYPEOF( it ) ) ) | ( NOT ( SIZEOF( QUERY ( psbc <* QUERY ( psa <* si\styled_item.styles | ( ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PRESENTATION_STYLE_BY_CONTEXT' ) IN TYPEOF( psa ) ) ) + | ( NOT ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.REPRESENTATION_ITEM', + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.REPRESENTATION' ] * TYPEOF( psbc\ + presentation_style_by_context.style_context ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ); + wr5 : ( SIZEOF( QUERY ( si <* QUERY ( it <* SELF.items | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.STYLED_ITEM' + IN TYPEOF( it ) ) ) | ( NOT ( SIZEOF( QUERY ( psa <* si\styled_item.styles | ( NOT ( SIZEOF( QUERY ( ps <* + QUERY ( pss <* psa.styles | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.POINT_STYLE' IN TYPEOF( pss ) ) ) + | ( NOT ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MARKER_TYPE' IN TYPEOF( ps\point_style.marker ) ) + AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.POSITIVE_LENGTH_MEASURE' IN TYPEOF( ps\point_style. + marker_size ) ) AND ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.COLOUR_RGB', + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'DRAUGHTING_PRE_DEFINED_COLOUR'] * TYPEOF( ps\ + point_style.marker_colour ) ) = 1 ) ) ) ) ) = 0 ) ) ) ) = 0 ) ) ) ) = 0 ); + wr6 : ( SIZEOF( QUERY ( si <* QUERY ( it <* SELF.items | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.STYLED_ITEM' + IN TYPEOF( it ) ) ) | ( NOT ( SIZEOF( QUERY ( psa <* si\styled_item.styles | ( NOT ( SIZEOF( QUERY ( cs <* + QUERY ( pss <* psa.styles | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CURVE_STYLE' IN TYPEOF( pss ) ) ) + | ( NOT ( ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.COLOUR_RGB', + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'DRAUGHTING_PRE_DEFINED_COLOUR'] * TYPEOF( cs\ + curve_style.curve_colour ) ) = 1 ) AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'POSITIVE_LENGTH_MEASURE' IN TYPEOF( cs\curve_style.curve_width ) ) AND ( SIZEOF( [ + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'CURVE_STYLE_FONT', + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.STYLED_ITEM' + IN TYPEOF( it ) ) ) | ( NOT ( SIZEOF( QUERY ( psa <* si\styled_item.styles | ( NOT ( SIZEOF( QUERY ( ssu <* + QUERY ( pss <* psa.styles | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SURFACE_STYLE_USAGE' IN TYPEOF( + pss ) ) ) | ( NOT ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SURFACE_SIDE_STYLE' IN TYPEOF( ssu\ + surface_style_usage.style ) ) ) ) ) = 0 ) ) ) ) = 0 ) ) ) ) = 0 ); + wr8 : ( SIZEOF( QUERY ( si <* QUERY ( it <* SELF.items | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.STYLED_ITEM' + IN TYPEOF( it ) ) ) | ( NOT ( SIZEOF( QUERY ( psa <* si\styled_item.styles | ( NOT ( SIZEOF( QUERY ( ssu <* + QUERY ( pss <* psa.styles | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SURFACE_STYLE_USAGE' IN TYPEOF( + pss ) ) ) | ( NOT ( SIZEOF( QUERY ( sses <* ssu\surface_style_usage.style\surface_side_style.styles | ( NOT ( + SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'SURFACE_STYLE_PARAMETER_LINE', + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'SURFACE_STYLE_CONTROL_GRID', + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'SURFACE_STYLE_SILHOUETTE', + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'SURFACE_STYLE_SEGMENTATION_CURVE', + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'SURFACE_STYLE_BOUNDARY', + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'SURFACE_STYLE_FILL_AREA', + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'SURFACE_STYLE_RENDERING'] * TYPEOF( sses ) ) = 1 ) ) ) ) + = 0 ) ) ) ) = 0 ) ) ) ) = 0 ) ) ) ) = 0 ); + wr9 : ( SIZEOF( QUERY ( si <* QUERY ( it <* SELF.items | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.STYLED_ITEM' + IN TYPEOF( it ) ) ) | ( NOT ( SIZEOF( QUERY ( psa <* si\styled_item.styles | ( NOT ( SIZEOF( QUERY ( ssu <* + QUERY ( pss <* psa.styles | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SURFACE_STYLE_USAGE' IN TYPEOF( + pss ) ) ) | ( NOT ( SIZEOF( QUERY ( ssfa <* QUERY ( sses <* ssu\surface_style_usage.style\surface_side_style. + styles | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SURFACE_STYLE_FILL_AREA' IN TYPEOF( sses ) ) ) | ( + NOT ( SIZEOF( QUERY ( fss <* ssfa\surface_style_fill_area.fill_area.fill_styles | ( NOT ( ( ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'FILL_AREA_STYLE_COLOUR' ) IN TYPEOF( fss ) ) AND ( + SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.COLOUR_RGB', + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'DRAUGHTING_PRE_DEFINED_COLOUR'] * TYPEOF( fss\ + fill_area_style_colour.fill_colour ) ) = 1 ) ) ) ) ) = 0 ) ) ) ) = 0 ) ) ) ) = 0 ) ) ) ) = 0 ) ) ) ) = 0 ); + wr10: ( SIZEOF( QUERY ( si <* QUERY ( it <* SELF.items | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.STYLED_ITEM' + IN TYPEOF( it ) ) ) | ( NOT ( SIZEOF( QUERY ( psa <* si\styled_item.styles | ( NOT ( SIZEOF( QUERY ( ssu <* + QUERY ( pss <* psa.styles | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SURFACE_STYLE_USAGE' IN TYPEOF( + pss ) ) ) | ( NOT ( SIZEOF( QUERY ( sspl <* QUERY ( sses <* ssu\surface_style_usage.style\surface_side_style. + styles | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'SURFACE_STYLE_PARAMETER_LINE' ) IN TYPEOF( + sses ) ) ) | ( NOT ( ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CURVE_STYLE' IN TYPEOF( sspl\ + surface_style_parameter_line.style_of_parameter_lines ) ) AND ( SIZEOF( [ + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.COLOUR_RGB' , + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'DRAUGHTING_PRE_DEFINED_COLOUR'] * TYPEOF( sspl\ + surface_style_parameter_line.style_of_parameter_lines\curve_style.curve_colour ) ) = 1 ) AND ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.POSITIVE_LENGTH_MEASURE' IN TYPEOF( sspl\ + surface_style_parameter_line.style_of_parameter_lines\curve_style.curve_width ) ) AND ( SIZEOF( [ + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'CURVE_STYLE_FONT', + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'DRAUGHTING_PRE_DEFINED_CURVE_FONT'] * TYPEOF( sspl\ + surface_style_parameter_line.style_of_parameter_lines\curve_style.curve_font ) ) = 1 ) ) OR ( ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CURVE_STYLE_RENDERING' IN TYPEOF( sspl\ + surface_style_parameter_line.style_of_parameter_lines ) ) AND ( SIZEOF( [ + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.COLOUR_RGB' , + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ); + wr11: ( SIZEOF( QUERY ( si <* QUERY ( it <* SELF.items | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.STYLED_ITEM' + IN TYPEOF( it ) ) ) | ( NOT ( SIZEOF( QUERY ( psa <* si\styled_item.styles | ( NOT ( SIZEOF( QUERY ( ssu <* + QUERY ( pss <* psa.styles | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SURFACE_STYLE_USAGE' IN TYPEOF( + pss ) ) ) | ( NOT ( SIZEOF( QUERY ( sscg <* QUERY ( sses <* ssu\surface_style_usage.style\surface_side_style. + styles | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'SURFACE_STYLE_CONTROL_GRID' ) IN TYPEOF( + sses ) ) ) | ( NOT ( ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CURVE_STYLE' IN TYPEOF( sscg\ + surface_style_control_grid.style_of_control_grid ) ) AND ( SIZEOF( [ + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.COLOUR_RGB' , + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'DRAUGHTING_PRE_DEFINED_COLOUR'] * TYPEOF( sscg\ + surface_style_control_grid.style_of_control_grid\curve_style.curve_colour ) ) = 1 ) AND ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.POSITIVE_LENGTH_MEASURE' IN TYPEOF( sscg\ + surface_style_control_grid.style_of_control_grid\curve_style.curve_width ) ) AND ( SIZEOF( [ + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'CURVE_STYLE_FONT', + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'DRAUGHTING_PRE_DEFINED_CURVE_FONT'] * TYPEOF( sscg\ + surface_style_control_grid.style_of_control_grid\curve_style.curve_font ) ) = 1 ) ) OR ( ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CURVE_STYLE_RENDERING' IN TYPEOF( sscg\ + surface_style_control_grid.style_of_control_grid ) ) AND ( SIZEOF( [ + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.COLOUR_RGB' , + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ); + wr12: ( SIZEOF( QUERY ( si <* QUERY ( it <* SELF.items | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.STYLED_ITEM' + IN TYPEOF( it ) ) ) | ( NOT ( SIZEOF( QUERY ( psa <* si\styled_item.styles | ( NOT ( SIZEOF( QUERY ( ssu <* + QUERY ( pss <* psa.styles | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SURFACE_STYLE_USAGE' IN TYPEOF( + pss ) ) ) | ( NOT ( SIZEOF( QUERY ( sssh <* QUERY ( sses <* ssu\surface_style_usage.style\surface_side_style. + styles | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'SURFACE_STYLE_SILHOUETTE' ) IN TYPEOF( sses ) ) ) + | ( NOT ( ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CURVE_STYLE' IN TYPEOF( sssh\ + surface_style_silhouette.style_of_silhouette ) ) AND ( SIZEOF( [ + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.COLOUR_RGB' , + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'DRAUGHTING_PRE_DEFINED_COLOUR'] * TYPEOF( sssh\ + surface_style_silhouette.style_of_silhouette\curve_style.curve_colour ) ) = 1 ) AND ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.POSITIVE_LENGTH_MEASURE' IN TYPEOF( sssh\ + surface_style_silhouette.style_of_silhouette\curve_style.curve_width ) ) AND ( SIZEOF( [ + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'CURVE_STYLE_FONT', + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'DRAUGHTING_PRE_DEFINED_CURVE_FONT'] * TYPEOF( sssh\ + surface_style_silhouette.style_of_silhouette\curve_style.curve_font ) ) = 1 ) ) OR ( ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CURVE_STYLE_RENDERING' IN TYPEOF( sssh\ + surface_style_silhouette.style_of_silhouette ) ) AND ( SIZEOF( [ + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.COLOUR_RGB' , + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ); + wr13: ( SIZEOF( QUERY ( si <* QUERY ( it <* SELF.items | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.STYLED_ITEM' + IN TYPEOF( it ) ) ) | ( NOT ( SIZEOF( QUERY ( psa <* si\styled_item.styles | ( NOT ( SIZEOF( QUERY ( ssu <* + QUERY ( pss <* psa.styles | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SURFACE_STYLE_USAGE' IN TYPEOF( + pss ) ) ) | ( NOT ( SIZEOF( QUERY ( sssc <* QUERY ( sses <* ssu\surface_style_usage.style\surface_side_style. + styles | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'SURFACE_STYLE_SEGMENTATION_CURVE' ) IN + TYPEOF( sses ) ) ) | ( NOT ( ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CURVE_STYLE' IN TYPEOF( sssc\ + surface_style_segmentation_curve.style_of_segmentation_curve ) ) AND ( SIZEOF( [ + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.COLOUR_RGB' , + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'DRAUGHTING_PRE_DEFINED_COLOUR'] * TYPEOF( sssc\ + surface_style_segmentation_curve.style_of_segmentation_curve\curve_style.curve_colour ) ) = 1 ) AND ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.POSITIVE_LENGTH_MEASURE' IN TYPEOF( sssc\ + surface_style_segmentation_curve.style_of_segmentation_curve\curve_style.curve_width ) ) AND ( SIZEOF( [ + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'CURVE_STYLE_FONT', + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'DRAUGHTING_PRE_DEFINED_CURVE_FONT'] * TYPEOF( sssc\ + surface_style_segmentation_curve.style_of_segmentation_curve\curve_style.curve_font ) ) = 1 ) ) OR ( ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CURVE_STYLE_RENDERING' IN TYPEOF( sssc\ + surface_style_segmentation_curve.style_of_segmentation_curve ) ) AND ( SIZEOF( [ + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.COLOUR_RGB' , + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ); + wr14: ( SIZEOF( QUERY ( si <* QUERY ( it <* SELF.items | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.STYLED_ITEM' + IN TYPEOF( it ) ) ) | ( NOT ( SIZEOF( QUERY ( psa <* si\styled_item.styles | ( NOT ( SIZEOF( QUERY ( ssu <* + QUERY ( pss <* psa.styles | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SURFACE_STYLE_USAGE' IN TYPEOF( + pss ) ) ) | ( NOT ( SIZEOF( QUERY ( ssbd <* QUERY ( sses <* ssu\surface_style_usage.style\surface_side_style. + styles | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'SURFACE_STYLE_BOUNDARY' ) IN TYPEOF( sses ) ) ) + | ( NOT ( ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CURVE_STYLE' IN TYPEOF( ssbd\ + surface_style_boundary.style_of_boundary ) ) AND ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'COLOUR_RGB' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'DRAUGHTING_PRE_DEFINED_COLOUR'] * + TYPEOF( ssbd\surface_style_boundary.style_of_boundary\curve_style.curve_colour ) ) = 1 ) AND ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.POSITIVE_LENGTH_MEASURE' IN TYPEOF( ssbd\ + surface_style_boundary.style_of_boundary\curve_style.curve_width ) ) AND ( SIZEOF( [ + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'CURVE_STYLE_FONT', + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'DRAUGHTING_PRE_DEFINED_CURVE_FONT'] * TYPEOF( ssbd\ + surface_style_boundary.style_of_boundary\curve_style.curve_font ) ) = 1 ) ) OR ( ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CURVE_STYLE_RENDERING' IN TYPEOF( ssbd\ + surface_style_boundary.style_of_boundary ) ) AND ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'COLOUR_RGB' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ); + wr15: ( SIZEOF( QUERY ( si <* QUERY ( it <* SELF.items | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.STYLED_ITEM' + IN TYPEOF( it ) ) ) | ( NOT ( SIZEOF( QUERY ( psa <* si\styled_item.styles | ( NOT ( SIZEOF( QUERY ( ssu <* + QUERY ( pss <* psa.styles | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SURFACE_STYLE_USAGE' IN TYPEOF( + pss ) ) ) | ( NOT ( SIZEOF( QUERY ( ssre <* QUERY ( sses <* ssu\surface_style_usage.style\surface_side_style. + styles | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'SURFACE_STYLE_RENDERING' ) IN TYPEOF( sses ) ) ) + | ( NOT ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.COLOUR_RGB', + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'DRAUGHTING_PRE_DEFINED_COLOUR'] * TYPEOF( ssre\ + surface_style_rendering.surface_colour ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ) ) ) ) = 0 ) ) ) ) = 0 ); + END_ENTITY; + + ENTITY mechanism_representation + SUBTYPE OF ( representation ); + SELF\representation.context_of_items : geometric_representation_context; + SELF\representation.items : SET [1 : ?] OF pair_representation_relationship; + represented_topology : kinematic_topology_representation_select; + DERIVE + represented_joints : SET [1 : ?] OF kinematic_joint := collect_joints( items ); + WHERE + wr1: ( ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.KINEMATIC_TOPOLOGY_STRUCTURE' IN TYPEOF( + represented_topology ) ) AND ( represented_joints :=: represented_topology.items ) ) OR ( ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.KINEMATIC_TOPOLOGY_DIRECTED_STRUCTURE' IN TYPEOF( + represented_topology ) ) AND ( represented_joints :=: get_kinematic_joints_from_oriented_joints( + represented_topology.items ) ) ) OR ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'KINEMATIC_TOPOLOGY_NETWORK_STRUCTURE' IN TYPEOF( represented_topology ) ) AND ( represented_joints :=: + get_kinematic_joints_from_kinematic_loops( represented_topology.items ) ) ) ); + END_ENTITY; + + ENTITY mechanism_state_representation + SUBTYPE OF ( representation ); + SELF\representation.items : SET [1 : ?] OF pair_value; + represented_mechanism : mechanism_representation; + DERIVE + SELF\representation.context_of_items : geometric_representation_context := represented_mechanism.context_of_items; + END_ENTITY; + + ENTITY mesh + ABSTRACT SUPERTYPE OF ( + ONEOF ( + structured_mesh, + unstructured_mesh ) + ANDOR + submesh ) + SUBTYPE OF ( topological_representation_item ); + description : text; + index_count : INTEGER; + END_ENTITY; + + ENTITY mesh_connectivity + ABSTRACT SUPERTYPE OF ( + ONEOF ( + matched_mesh_connection, + mismatched_mesh_connection ) ); + name : label; + description : text; + id : identifier; + current : mesh; + DERIVE + index_count : INTEGER := current.index_count; + END_ENTITY; + + ENTITY mesh_derived_maths_space + SUBTYPE OF ( maths_space ); + description : text; + name : label; + id : identifier; + the_mesh : mesh; + kind : mesh_maths_space_type; + END_ENTITY; + + ENTITY mesh_function + SUBTYPE OF ( application_defined_function, unary_generic_expression ); + mesh : mesh; + basis : LIST OF mesh_function_basis; + uniform : BOOLEAN; + vertex_values : BOOLEAN; + DERIVE + control_values : maths_function := SELF\unary_generic_expression.operand; + WHERE + wr1: function_is_table( control_values ); + wr2: ( ( uniform AND ( SIZEOF( basis ) = 1 ) ) XOR ( NOT uniform ) ); + END_ENTITY; + + ENTITY mesh_function_basis + SUBTYPE OF ( application_defined_function, unary_generic_expression ); + cell_topological_dimension : INTEGER; + value_array_dimension : INTEGER; + value_array_order : ARRAY [1 : value_array_dimension] OF INTEGER; + DERIVE + value_positions : maths_function := SELF\unary_generic_expression.operand; + WHERE + value_positions_as_table: function_is_table( value_positions ); + END_ENTITY; + + ENTITY mesh_overset_hole + SUBTYPE OF ( mismatched_mesh_connection ); + END_ENTITY; + + ENTITY min_and_major_ply_orientation_basis + SUBTYPE OF ( representation_item_relationship, geometric_representation_item ); + SELF\representation_item_relationship.relating_representation_item : axis2_placement_3d; + SELF\representation_item_relationship.related_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 minimum_function + SUBTYPE OF ( multiple_arity_function_call ); + END_ENTITY; + + ENTITY minus_expression + SUBTYPE OF ( binary_numeric_expression ); + END_ENTITY; + + ENTITY minus_function + SUBTYPE OF ( unary_function_call ); + END_ENTITY; + + ENTITY mismatched_donor_mesh + ABSTRACT SUPERTYPE OF ( + ONEOF ( + structured_donor_mesh, + unstructured_donor_mesh ) ); + donor : mesh; + INVERSE + connect : mismatched_mesh_region FOR donor; + END_ENTITY; + + ENTITY mismatched_mesh_connection + ABSTRACT SUPERTYPE OF ( + ONEOF ( + mismatched_mesh_region, + mesh_overset_hole ) ) + SUBTYPE OF ( mesh_connectivity ); + points : indices_group; + gridloc : mesh_location; + END_ENTITY; + + ENTITY mismatched_mesh_region + SUBTYPE OF ( mismatched_mesh_connection ); + donor : mismatched_donor_mesh; + kind : mismatched_region_type; + WHERE + wr1: ( donor.donor :<>: SELF\mesh_connectivity.current ); + END_ENTITY; + + ENTITY mod_expression + SUBTYPE OF ( binary_numeric_expression ); + END_ENTITY; + + ENTITY model_action_domain + SUBTYPE OF ( numerical_model ); + initial : model_state_domain; + final : model_state_domain; + END_ENTITY; + + ENTITY model_product_domain + SUBTYPE OF ( numerical_model ); + temporal_parts : LIST [0 : ?] OF model_action_domain; + END_ENTITY; + + ENTITY model_product_domain_with_mesh + SUBTYPE OF ( model_product_domain ); + model_mesh : mesh; + END_ENTITY; + + ENTITY model_property_distribution; + creating_software : text; + domain : numerical_model; + range : general_property; + END_ENTITY; + + ENTITY model_state_domain + SUBTYPE OF ( numerical_model ); + END_ENTITY; + + ENTITY modified_geometric_tolerance + SUBTYPE OF ( geometric_tolerance ); + modifier : limit_condition; + END_ENTITY; + + ENTITY modified_pattern + SUBTYPE OF ( shape_aspect ); + WHERE + wr1: ( SIZEOF( QUERY ( fcr <* QUERY ( sar <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'SHAPE_ASPECT_RELATIONSHIP.RELATING_SHAPE_ASPECT' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF( sar ) ) ) | ( ( SIZEOF( [ + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.REPLICATE_FEATURE' , + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.INSTANCED_FEATURE' ] * TYPEOF( fcr.related_shape_aspect. + of_shape.definition ) ) >= 1 ) AND ( fcr.description = 'base shape' ) ) ) ) = 1 ); + wr2: ( SIZEOF( QUERY ( fcr <* QUERY ( sar <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'SHAPE_ASPECT_RELATIONSHIP.RELATING_SHAPE_ASPECT' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF( sar ) ) ) | ( ( SIZEOF( [ + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CIRCULAR_PATTERN' , + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.RECTANGULAR_PATTERN' ] * TYPEOF( fcr.related_shape_aspect. + of_shape.definition ) ) = 1 ) AND ( fcr.description = 'base pattern' ) ) ) ) = 1 ); + wr3: ( SIZEOF( QUERY ( sar <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.' + + 'RELATING_SHAPE_ASPECT' ) | ( SIZEOF( QUERY ( msar <* USEDIN( sar.related_shape_aspect, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT' ) | ( ( + SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PATTERN_OFFSET_MEMBERSHIP', + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PATTERN_OMIT_MEMBERSHIP' ] * TYPEOF( sar ) ) = 1 ) AND ( sar. + description = 'modified pattern' ) AND ( sar :<>: msar ) ) ) ) >= 1 ) ) ) = 0 ); + 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 modify_element + SUBTYPE OF ( change_element ); + END_ENTITY; + + ENTITY moments_of_inertia_representation + SUBTYPE OF ( representation ); + WHERE + wr1: ( ( SIZEOF( SELF.items ) = 1 ) AND ( SIZEOF( QUERY ( i <* SELF.items | ( ( ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'COMPOUND_REPRESENTATION_ITEM' ) IN TYPEOF( i ) ) AND ( i + .name = 'moments of inertia matrix' ) ) ) ) = 1 ) ); + wr2: ( SIZEOF( QUERY ( i <* SELF.items | ( ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'COMPOUND_REPRESENTATION_ITEM' ) IN TYPEOF( i ) ) AND ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 mult_expression + SUBTYPE OF ( multiple_arity_numeric_expression ); + 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, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 multi_level_reference_designator + SUBTYPE OF ( assembly_component_usage ); + location : LIST [1 : ?] OF UNIQUE next_assembly_usage_occurrence; + DERIVE + SELF\product_definition_relationship.relating_product_definition : product_definition := location[1]\ + product_definition_relationship.relating_product_definition; + SELF\product_definition_relationship.related_product_definition : product_definition_or_reference := location[HIINDEX( + location )]\product_definition_relationship.related_product_definition; + leaf : product_definition_or_reference := SELF\product_definition_relationship. + related_product_definition; + root : product_definition := SELF\product_definition_relationship. + relating_product_definition; + WHERE + wr1: unambiguously_specified_multi_level_reference_designator( location ); + wr2: ( SIZEOF( QUERY ( cp <* location | ( NOT EXISTS( cp\assembly_component_usage.reference_designator ) ) ) ) = 0 ); + END_ENTITY; + + ENTITY multiple_arity_boolean_expression + ABSTRACT SUPERTYPE OF ( + ONEOF ( + and_expression, + or_expression ) ) + SUBTYPE OF ( boolean_expression, multiple_arity_generic_expression ); + SELF\multiple_arity_generic_expression.operands : LIST [2 : ?] OF boolean_expression; + END_ENTITY; + + ENTITY multiple_arity_function_call + ABSTRACT SUPERTYPE OF ( + ONEOF ( + maximum_function, + minimum_function ) ) + SUBTYPE OF ( multiple_arity_numeric_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 OF ( + ONEOF ( + plus_expression, + mult_expression, + multiple_arity_function_call ) ) + SUBTYPE OF ( numeric_expression, multiple_arity_generic_expression ); + SELF\multiple_arity_generic_expression.operands : LIST [2 : ?] OF numeric_expression; + END_ENTITY; + + ENTITY multiple_mesh_block; + name : label; + description : text; + id : identifier; + connectivities : LIST OF mesh_connectivity; + END_ENTITY; + + ENTITY multiply_defined_cartesian_points + SUBTYPE OF ( multiply_defined_geometry ); + SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; + WHERE + wr1: ( ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'SHAPE_DATA_QUALITY_UPPER_VALUE_LIMIT' ) IN TYPEOF( SELF + \shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold ) ) + AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE' IN value_limit_type( SELF\ + shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold ) ) ); + wr2: validate_measured_data_type( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE' ); + wr3: validate_inspected_elements_type( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CARTESIAN_POINT', + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CARTESIAN_POINT' ] ); + wr4: validate_locations_of_extreme_value_type( SELF, [] ); + wr5: validate_accuracy_types( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE'] ); + END_ENTITY; + + ENTITY multiply_defined_curves + SUBTYPE OF ( multiply_defined_geometry ); + SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; + WHERE + wr1: ( ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'SHAPE_DATA_QUALITY_UPPER_VALUE_LIMIT' ) IN TYPEOF( SELF + \shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold ) ) + AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE' IN value_limit_type( SELF\ + shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold ) ) ); + wr2: validate_measured_data_type( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE' ); + wr3: validate_inspected_elements_type( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CURVE', + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CURVE' ] ); + wr4: validate_locations_of_extreme_value_type( SELF, [] ); + wr5: validate_accuracy_types( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE'] ); + END_ENTITY; + + ENTITY multiply_defined_directions + SUBTYPE OF ( multiply_defined_geometry ); + SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; + WHERE + wr1: ( ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'SHAPE_DATA_QUALITY_UPPER_VALUE_LIMIT' ) IN TYPEOF( SELF + \shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold ) ) + AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PLANE_ANGLE_MEASURE' IN value_limit_type( SELF\ + shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold ) ) ); + wr2: validate_measured_data_type( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PLANE_ANGLE_MEASURE' ); + wr3: validate_inspected_elements_type( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.DIRECTION', + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.DIRECTION' ] ); + wr4: validate_locations_of_extreme_value_type( SELF, [] ); + wr5: validate_accuracy_types( SELF, [] ); + END_ENTITY; + + ENTITY multiply_defined_edges + SUBTYPE OF ( topology_related_to_multiply_defined_geometry ); + SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; + WHERE + wr1: ( ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'SHAPE_DATA_QUALITY_UPPER_VALUE_LIMIT' ) IN TYPEOF( SELF + \shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold ) ) + AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE' IN value_limit_type( SELF\ + shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold ) ) ); + wr2: validate_measured_data_type( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE' ); + wr3: validate_inspected_elements_type( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.EDGE_CURVE', + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.EDGE_CURVE' ] ); + wr4: validate_locations_of_extreme_value_type( SELF, [] ); + wr5: validate_accuracy_types( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE'] ); + END_ENTITY; + + ENTITY multiply_defined_faces + SUBTYPE OF ( topology_related_to_multiply_defined_geometry ); + SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; + WHERE + wr1: ( ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'SHAPE_DATA_QUALITY_UPPER_VALUE_LIMIT' ) IN TYPEOF( SELF + \shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold ) ) + AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE' IN value_limit_type( SELF\ + shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold ) ) ); + wr2: validate_measured_data_type( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE' ); + wr3: validate_inspected_elements_type( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FACE_SURFACE', + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FACE_SURFACE' ] ); + wr4: validate_locations_of_extreme_value_type( SELF, [] ); + wr5: validate_accuracy_types( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE'] ); + END_ENTITY; + + ENTITY multiply_defined_geometry + ABSTRACT SUPERTYPE OF ( + ONEOF ( + multiply_defined_curves, + multiply_defined_surfaces, + multiply_defined_cartesian_points, + multiply_defined_directions, + multiply_defined_placements ) ) + SUBTYPE OF ( inapt_geometry ); + END_ENTITY; + + ENTITY multiply_defined_placements + SUBTYPE OF ( multiply_defined_geometry ); + SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; + assessment_specification_2 : shape_data_quality_assessment_by_numerical_test; + WHERE + wr1: ( ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'SHAPE_DATA_QUALITY_UPPER_VALUE_LIMIT' ) IN TYPEOF( SELF + \shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold ) ) + AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE' IN value_limit_type( SELF\ + shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold ) ) ); + wr2: ( ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'SHAPE_DATA_QUALITY_UPPER_VALUE_LIMIT' ) IN TYPEOF( + assessment_specification_2\shape_data_quality_assessment_by_numerical_test.threshold ) ) AND ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PLANE_ANGLE_MEASURE' IN value_limit_type( + assessment_specification_2\shape_data_quality_assessment_by_numerical_test.threshold ) ) ); + wr3: validate_measured_data_type( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PLANE_ANGLE_AND_LENGTH_PAIR' ); + wr4: validate_inspected_elements_type( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PLACEMENT', + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PLACEMENT' ] ); + wr5: validate_locations_of_extreme_value_type( SELF, [] ); + wr6: validate_accuracy_types( SELF, [] ); + wr7: ( SIZEOF( QUERY ( sdqr <* bag_to_set( USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'DATA_QUALITY_INSPECTION_RESULT.' + 'CRITERION_INSPECTED' ) ) | ( ( ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'SHAPE_DATA_QUALITY_INSPECTION_RESULT' ) IN TYPEOF( sdqr ) ) + AND ( SIZEOF( QUERY ( sdqiir <* bag_to_set( USEDIN( sdqr, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'DATA_QUALITY_INSPECTION_REPORT.' + 'INSPECTION_RESULT' ) ) | ( ( ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'SHAPE_DATA_QUALITY_INSPECTION_INSTANCE_REPORT' ) IN + TYPEOF( sdqiir ) ) AND ( SIZEOF( QUERY ( sdqiri <* sdqiir.inspected_instances | ( TYPEOF( sdqiri.inspected_elements + [1] ) <> TYPEOF( sdqiri.inspected_elements[2] ) ) ) ) = 0 ) ) ) ) = 0 ) ) ) ) = 0 ); + END_ENTITY; + + ENTITY multiply_defined_solids + SUBTYPE OF ( inapt_manifold_solid_brep ); + SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; + WHERE + wr1: ( ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'SHAPE_DATA_QUALITY_UPPER_VALUE_LIMIT' ) IN TYPEOF( SELF + \shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold ) ) + AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE' IN value_limit_type( SELF\ + shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold ) ) ); + wr2: validate_measured_data_type( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE' ); + wr3: validate_inspected_elements_type( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MANIFOLD_SOLID_BREP', + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MANIFOLD_SOLID_BREP' ] ); + wr4: validate_locations_of_extreme_value_type( SELF, [] ); + wr5: validate_accuracy_types( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE'] ); + END_ENTITY; + + ENTITY multiply_defined_surfaces + SUBTYPE OF ( multiply_defined_geometry ); + SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; + WHERE + wr1: ( ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'SHAPE_DATA_QUALITY_UPPER_VALUE_LIMIT' ) IN TYPEOF( SELF + \shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold ) ) + AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE' IN value_limit_type( SELF\ + shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold ) ) ); + wr2: validate_measured_data_type( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE' ); + wr3: validate_inspected_elements_type( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SURFACE', + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SURFACE' ] ); + wr4: validate_locations_of_extreme_value_type( SELF, [] ); + wr5: validate_accuracy_types( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE'] ); + END_ENTITY; + + ENTITY multiply_defined_vertices + SUBTYPE OF ( topology_related_to_multiply_defined_geometry ); + SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; + WHERE + wr1: ( ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'SHAPE_DATA_QUALITY_UPPER_VALUE_LIMIT' ) IN TYPEOF( SELF + \shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold ) ) + AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE' IN value_limit_type( SELF\ + shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold ) ) ); + wr2: validate_measured_data_type( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE' ); + wr3: validate_inspected_elements_type( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.VERTEX_POINT', + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.VERTEX_POINT' ] ); + wr4: validate_locations_of_extreme_value_type( SELF, [] ); + wr5: validate_accuracy_types( SELF, [] ); + END_ENTITY; + + ENTITY name_assignment + ABSTRACT SUPERTYPE; + assigned_name : label; + DERIVE + role : object_role := get_role( SELF ); + WHERE + wr1: ( SIZEOF( USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 narrow_surface_patch + SUBTYPE OF ( geometry_with_local_near_degeneracy ); + SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_logical_test; + width_tolerance : length_measure; + WHERE + wr1: validate_measured_data_type( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.BOOLEAN_VALUE' ); + wr2: validate_inspected_elements_type( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.B_SPLINE_SURFACE'] ); + wr3: validate_locations_of_extreme_value_type( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'B_SPLINE_SURFACE_PATCH' ] ); + wr4: validate_accuracy_types( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE'] ); + END_ENTITY; + + ENTITY near_point_relationship + SUBTYPE OF ( representation_item_relationship ); + SELF\representation_item_relationship.relating_representation_item : curve_or_surface_constraint_element; + SELF\representation_item_relationship.related_representation_item : point; + END_ENTITY; + + ENTITY nearly_degenerate_geometry + ABSTRACT SUPERTYPE OF ( + ONEOF ( + small_area_surface, + short_length_curve, + entirely_narrow_surface ) ) + SUBTYPE OF ( inapt_geometry ); + END_ENTITY; + + ENTITY nearly_degenerate_surface_boundary + SUBTYPE OF ( geometry_with_local_near_degeneracy ); + SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; + WHERE + wr1: ( ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'SHAPE_DATA_QUALITY_VALUE_RANGE' ) IN TYPEOF( SELF\ + shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold ) ) + AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE' IN value_limit_type( SELF\ + shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold ) ) ); + wr2: validate_measured_data_type( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE' ); + wr3: validate_inspected_elements_type( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'B_SPLINE_OR_RECTANGULAR_COMPOSITE_SURFACE_SELECT' ] ); + wr4: validate_locations_of_extreme_value_type( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'BOUNDARY_CURVE_OF_B_SPLINE_OR_RECTANGULAR_COMPOSITE_SURFACE' ] ); + wr5: validate_accuracy_types( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE'] ); + END_ENTITY; + + ENTITY nearly_degenerate_surface_patch + SUBTYPE OF ( geometry_with_local_near_degeneracy ); + SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; + WHERE + wr1: ( ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'SHAPE_DATA_QUALITY_VALUE_RANGE' ) IN TYPEOF( SELF\ + shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold ) ) + AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE' IN value_limit_type( SELF\ + shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold ) ) ); + wr2: validate_measured_data_type( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE' ); + wr3: validate_inspected_elements_type( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.B_SPLINE_SURFACE'] ); + wr4: validate_locations_of_extreme_value_type( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'B_SPLINE_SURFACE_PATCH' ] ); + wr5: validate_accuracy_types( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE'] ); + END_ENTITY; + + ENTITY neutral_sketch_representation + SUBTYPE OF ( shape_representation ); + neutral_sketch_semantics : curves_or_area; + SELF\representation.items : SET [1 : ?] OF sketch_element_select; + WHERE + wr1: ( SIZEOF( QUERY ( q <* items | ( NOT ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'GEOMETRIC_REPRESENTATION_ITEM' IN TYPEOF( q ) ) AND ( q\geometric_representation_item.dim = 3 ) ) ) ) ) = 0 ); + END_ENTITY; + + ENTITY next_assembly_usage_occurrence + SUBTYPE OF ( assembly_component_usage ); + UNIQUE + ur1 : SELF\assembly_component_usage.reference_designator, SELF\product_definition_relationship.relating_product_definition; + END_ENTITY; + + ENTITY ngon_closed_profile + SUBTYPE OF ( shape_aspect ); + WHERE + wr1: ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FEATURE_COMPONENT_DEFINITION' IN TYPEOF( SELF.of_shape. + definition ) ); + wr2: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + + 'DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) ) = 1 ) ) ) ) = 0 ); + wr3: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + + 'DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. + used_representation ) ) ) | ( NOT ( ( SIZEOF( impl_rep.used_representation.items ) >= 3 ) AND ( SIZEOF( impl_rep. + used_representation.items ) <= 4 ) ) ) ) ) = 0 ) ) ) ) = 0 ); + wr4: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + + 'DEFINITION' ) | ( SIZEOF( QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) AND ( SIZEOF( QUERY ( srwp_i <* + pdr.used_representation.items | ( ( srwp_i.name = 'orientation' ) OR ( srwp_i.name = 'number of sides' ) OR ( + srwp_i.name = 'circumscribed diameter' ) OR ( srwp_i.name = 'corner radius' ) OR ( srwp_i.name = + 'diameter across flats' ) ) ) ) = SIZEOF( pdr.used_representation.items ) ) ) ) ) = 1 ) ) ) = 1 ); + wr5: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + + 'DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. + used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PLACEMENT' IN TYPEOF( it ) ) AND ( it.name = 'orientation' ) ) ) ) + = 1 ) ) ) ) = 0 ) ) ) ) = 0 ); + wr6: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + + 'DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. + used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM' IN TYPEOF( it ) ) AND ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.COUNT_MEASURE' IN TYPEOF( it\measure_with_unit. + value_component ) ) AND ( it.name = 'number of sides' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ); + wr7: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + + 'DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. + used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( SIZEOF( [ + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM' , + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( it ) ) = 2 ) AND ( it. + name IN [ 'circumscribed diameter', 'diameter across flats'] ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ); + wr8: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + + 'DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. + used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( SIZEOF( [ + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM' , + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( it ) ) = 2 ) AND ( it. + name = 'corner radius' ) ) ) ) <= 1 ) ) ) ) = 0 ) ) ) ) = 0 ); + END_ENTITY; + + ENTITY no_symmetry_control + SUBTYPE OF ( symmetry_control ); + END_ENTITY; + + ENTITY nodal_dof_reduction + SUBTYPE OF ( constraint_element ); + required_node : node_output_reference; + coordinate_system : fea_axis2_placement_3d; + freedoms : SET [1 : ?] OF degree_of_freedom; + description : text; + END_ENTITY; + + ENTITY nodal_freedom_action_definition + SUBTYPE OF ( nodal_freedom_and_value_definition ); + action : action_type; + END_ENTITY; + + ENTITY nodal_freedom_and_value_definition + SUPERTYPE OF ( + ONEOF ( + nodal_freedom_values, + nodal_freedom_action_definition ) ) + SUBTYPE OF ( state_definition ); + node : node_output_reference; + coordinate_system : fea_axis2_placement_3d; + degrees_of_freedom : freedoms_list; + values : LIST [1 : ?] OF measure_or_unspecified_value; + WHERE + wr1: ( SIZEOF( degrees_of_freedom.freedoms ) = SIZEOF( values ) ); + END_ENTITY; + + ENTITY nodal_freedom_values + SUBTYPE OF ( nodal_freedom_and_value_definition ); + END_ENTITY; + + ENTITY node + SUPERTYPE OF ( + node_with_vector + ANDOR + node_with_solution_coordinate_system ) + SUBTYPE OF ( node_representation ); + WHERE + wr1: ( SIZEOF( QUERY ( item <* SELF\representation.items | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.POINT' IN + TYPEOF( item ) ) ) ) = 1 ); + END_ENTITY; + + ENTITY node_analysis_message + SUBTYPE OF ( analysis_message ); + node : node_output_reference; + END_ENTITY; + + ENTITY node_definition + SUBTYPE OF ( shape_aspect ); + END_ENTITY; + + ENTITY node_geometric_relationship; + node_ref : node_or_node_group; + item : analysis_item_within_representation; + WHERE + wr1: ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.GEOMETRIC_REPRESENTATION_ITEM' IN TYPEOF( item.item ) ); + END_ENTITY; + + ENTITY node_group + SUBTYPE OF ( fea_group ); + nodes : SET [1 : ?] OF node_representation; + END_ENTITY; + + ENTITY node_representation + SUPERTYPE OF ( + ONEOF ( + node, + dummy_node, + geometric_node ) ) + SUBTYPE OF ( representation ); + model_ref : fea_model; + UNIQUE + ur1 : model_ref, SELF\representation.name; + END_ENTITY; + + ENTITY node_sequence; + order_id : identifier; + control_ref : control; + purpose : text; + nodes : LIST [1 : ?] OF node_representation; + UNIQUE + ur1 : order_id, control_ref; + END_ENTITY; + + ENTITY node_set + SUBTYPE OF ( geometric_representation_item ); + nodes : SET [1 : ?] OF node_representation; + WHERE + wr1: ( SIZEOF( QUERY ( tmp <* nodes | ( tmp\representation.context_of_items :<>: nodes[1]\representation.context_of_items ) ) ) + = 0 ); + END_ENTITY; + + ENTITY node_topological_relationship; + item : analysis_item_within_representation; + node_ref : node_representation; + WHERE + wr1: ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.VERTEX' IN TYPEOF( item.item ) ); + END_ENTITY; + + ENTITY node_with_solution_coordinate_system + SUBTYPE OF ( node ); + WHERE + wr1: ( ( ( SIZEOF( QUERY ( item <* SELF\representation.items | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'FEA_AXIS2_PLACEMENT_3D' ) IN TYPEOF( item ) ) ) ) = 1 ) AND ( SELF\representation.context_of_items\ + geometric_representation_context.coordinate_space_dimension = 3 ) ) OR ( ( SIZEOF( QUERY ( item <* SELF\ + representation.items | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'FEA_AXIS2_PLACEMENT_2D' ) IN + TYPEOF( item ) ) ) ) = 1 ) AND ( SELF\representation.context_of_items\geometric_representation_context. + coordinate_space_dimension = 2 ) ) ); + END_ENTITY; + + ENTITY node_with_vector + SUBTYPE OF ( node ); + WHERE + wr1: ( SIZEOF( QUERY ( item <* SELF\representation.items | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.DIRECTION' + IN TYPEOF( item ) ) ) ) = 1 ); + END_ENTITY; + + ENTITY non_agreed_accuracy_parameter_usage + SUBTYPE OF ( externally_conditioned_data_quality_criterion ); + WHERE + wr1: validate_ecdq_inspected_elements_type( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'GLOBAL_UNCERTAINTY_ASSIGNED_CONTEXT' ] ); + END_ENTITY; + + ENTITY non_agreed_scale_usage + SUBTYPE OF ( externally_conditioned_data_quality_criterion ); + WHERE + wr1: validate_ecdq_inspected_elements_type( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'CARTESIAN_TRANSFORMATION_OPERATOR_3D' ] ); + END_ENTITY; + + ENTITY non_agreed_unit_usage + SUBTYPE OF ( externally_conditioned_data_quality_criterion ); + WHERE + wr1: validate_ecdq_inspected_elements_type( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'GLOBAL_UNIT_ASSIGNED_CONTEXT' ] ); + END_ENTITY; + + ENTITY non_manifold_at_edge + SUBTYPE OF ( inapt_topology ); + SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_logical_test; + WHERE + wr1: validate_measured_data_type( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.BOOLEAN_VALUE' ); + wr2: validate_inspected_elements_type( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CONNECTED_FACE_SET'] ); + wr3: validate_locations_of_extreme_value_type( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.EDGE_CURVE'] ); + wr4: validate_accuracy_types( SELF, [] ); + END_ENTITY; + + ENTITY non_manifold_at_vertex + SUBTYPE OF ( inapt_topology ); + SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_logical_test; + WHERE + wr1: validate_measured_data_type( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.BOOLEAN_VALUE' ); + wr2: validate_inspected_elements_type( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CONNECTED_FACE_SET'] ); + wr3: validate_locations_of_extreme_value_type( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.VERTEX_POINT'] ); + wr4: validate_accuracy_types( SELF, [] ); + END_ENTITY; + + ENTITY non_manifold_surface_shape_representation + SUBTYPE OF ( shape_representation ); + WHERE + wr1 : ( SIZEOF( QUERY ( it <* SELF.items | ( NOT ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'FACE_BASED_SURFACE_MODEL' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MAPPED_ITEM', + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.AXIS2_PLACEMENT_3D' ] * TYPEOF( it ) ) = 1 ) ) ) ) = 0 ); + wr2 : ( SIZEOF( QUERY ( it <* SELF.items | ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'FACE_BASED_SURFACE_MODEL' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MAPPED_ITEM'] * TYPEOF( it ) ) + = 1 ) ) ) > 0 ); + wr3 : ( SIZEOF( QUERY ( mi <* QUERY ( it <* SELF.items | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MAPPED_ITEM' + IN TYPEOF( it ) ) ) | ( NOT ( ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 | ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FACE_BASED_SURFACE_MODEL' IN TYPEOF( mr_it ) ) ) ) > 0 ) ) ) ) ) + = 0 ); + wr4 : ( SIZEOF( QUERY ( fbsm <* QUERY ( it <* SELF.items | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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( [ + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FACE_SURFACE' , + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ORIENTED_FACE' ] * TYPEOF( fa ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ) ) ) ) + = 0 ); + wr5 : ( SIZEOF( QUERY ( fbsm <* QUERY ( it <* SELF.items | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 | ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FACE_SURFACE' IN TYPEOF( fa ) ) ) | ( NOT ( ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 | ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ORIENTED_FACE' IN TYPEOF( fa ) ) ) | ( NOT ( ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ( ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ADVANCED_FACE' IN TYPEOF( fa ) ) OR ( SIZEOF( + QUERY ( bnds <* fa.bounds | ( NOT ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.EDGE_LOOP', + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.VERTEX_LOOP' ] * TYPEOF( bnds.bound ) ) = 1 ) ) ) ) = 0 ) ) ) ) ) + = 0 ) ) ) ) = 0 ) ) ) ) = 0 ); + wr8 : ( SIZEOF( QUERY ( fbsm <* QUERY ( it <* SELF.items | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ( ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ADVANCED_FACE' IN TYPEOF( fa ) ) OR ( SIZEOF( + QUERY ( elp_fbnds <* QUERY ( bnds <* fa.bounds | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.EDGE_LOOP' + IN TYPEOF( bnds.bound ) ) ) | ( NOT ( SIZEOF( QUERY ( oe <* elp_fbnds\path.edge_list | ( NOT ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.EDGE_CURVE' IN TYPEOF( oe.edge_element ) ) ) ) ) = 0 ) ) ) ) + = 0 ) ) ) ) ) = 0 ) ) ) ) = 0 ) ) ) ) = 0 ); + wr9 : ( SIZEOF( QUERY ( fbsm <* QUERY ( it <* SELF.items | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ( ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ADVANCED_FACE' IN TYPEOF( fa ) ) OR ( SIZEOF( + QUERY ( elp_fbnds <* QUERY ( bnds <* fa.bounds | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.EDGE_LOOP' + IN TYPEOF( bnds.bound ) ) ) | ( NOT ( SIZEOF( QUERY ( oe_cv <* QUERY ( oe <* elp_fbnds\path.edge_list | ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.EDGE_CURVE' IN TYPEOF( oe.edge_element ) ) ) | ( NOT ( + SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.B_SPLINE_CURVE', + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CONIC' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'CURVE_REPLICA' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LINE', + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.OFFSET_CURVE_3D' , + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PCURVE' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'POLYLINE' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ( ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ADVANCED_FACE' IN TYPEOF( fa ) ) OR ( SIZEOF( + QUERY ( elp_fbnds <* QUERY ( bnds <* fa.bounds | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ( ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ADVANCED_FACE' IN TYPEOF( fa ) ) OR ( SIZEOF( + QUERY ( elp_fbnds <* QUERY ( bnds <* fa.bounds | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.EDGE_LOOP' + IN TYPEOF( bnds.bound ) ) ) | ( NOT ( SIZEOF( QUERY ( oe <* elp_fbnds\path.edge_list | ( NOT ( ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.VERTEX_POINT' IN TYPEOF( oe.edge_element.edge_start ) ) AND + ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.VERTEX_POINT' IN TYPEOF( oe.edge_element.edge_end ) ) ) ) ) ) + = 0 ) ) ) ) = 0 ) ) ) ) ) = 0 ) ) ) ) = 0 ) ) ) ) = 0 ); + wr12: ( SIZEOF( QUERY ( fbsm <* QUERY ( it <* SELF.items | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ( ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ADVANCED_FACE' IN TYPEOF( fa ) ) OR ( SIZEOF( + QUERY ( elp_fbnds <* QUERY ( bnds <* fa.bounds | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.EDGE_LOOP' + IN TYPEOF( bnds.bound ) ) ) | ( NOT ( SIZEOF( QUERY ( oe <* elp_fbnds\path.edge_list | ( NOT ( ( SIZEOF( [ + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CARTESIAN_POINT' , + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.DEGENERATE_PCURVE' , + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.POINT_ON_CURVE' , + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.POINT_ON_SURFACE' ] * TYPEOF( oe.edge_element.edge_start\ + vertex_point.vertex_geometry ) ) = 1 ) AND ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'CARTESIAN_POINT' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.DEGENERATE_PCURVE', + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.POINT_ON_CURVE' , + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ( ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ADVANCED_FACE' IN TYPEOF( fa ) ) OR ( SIZEOF( + QUERY ( vlp_fbnds <* QUERY ( bnds <* fa.bounds | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.VERTEX_LOOP' + IN TYPEOF( bnds.bound ) ) ) | ( NOT ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.VERTEX_POINT' IN + TYPEOF( vlp_fbnds\vertex_loop.loop_vertex ) ) ) ) ) = 0 ) ) ) ) ) = 0 ) ) ) ) = 0 ) ) ) ) = 0 ); + wr14: ( SIZEOF( QUERY ( fbsm <* QUERY ( it <* SELF.items | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ( ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ADVANCED_FACE' IN TYPEOF( fa ) ) OR ( SIZEOF( + QUERY ( vlp_fbnds <* QUERY ( bnds <* fa.bounds | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.VERTEX_LOOP' + IN TYPEOF( bnds.bound ) ) ) | ( NOT ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CARTESIAN_POINT', + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.DEGENERATE_PCURVE' , + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.POINT_ON_CURVE' , + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.POINT_ON_SURFACE' ] * TYPEOF( vlp_fbnds\vertex_loop. + loop_vertex\vertex_point.vertex_geometry ) ) = 1 ) ) ) ) = 0 ) ) ) ) ) = 0 ) ) ) ) = 0 ) ) ) ) = 0 ); + END_ENTITY; + + ENTITY non_referenced_coordinate_system + SUBTYPE OF ( externally_conditioned_data_quality_criterion ); + WHERE + wr1: validate_ecdq_inspected_elements_type( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.AXIS2_PLACEMENT_3D'] ); + END_ENTITY; + + ENTITY non_smooth_geometry_transition_across_edge + ABSTRACT SUPERTYPE OF ( + ONEOF ( + g1_discontinuity_between_adjacent_faces, + g2_discontinuity_between_adjacent_faces ) ) + SUBTYPE OF ( inapt_topology_and_geometry_relationship ); + END_ENTITY; + + ENTITY non_uniform_zone_definition + SUBTYPE OF ( tolerance_zone_definition ); + END_ENTITY; + + ENTITY not_expression + SUBTYPE OF ( unary_boolean_expression ); + SELF\unary_generic_expression.operand : boolean_expression; + END_ENTITY; + + ENTITY null_representation_item + SUBTYPE OF ( representation_item ); + END_ENTITY; + + ENTITY numeric_defined_function + ABSTRACT SUPERTYPE OF ( + ONEOF ( + integer_defined_function, + real_defined_function ) ) + SUBTYPE OF ( numeric_expression, defined_function ); + END_ENTITY; + + ENTITY numeric_expression + ABSTRACT SUPERTYPE OF ( + ONEOF ( + simple_numeric_expression, + unary_numeric_expression, + binary_numeric_expression, + multiple_arity_numeric_expression, + length_function, + value_function, + numeric_defined_function ) ) + SUBTYPE OF ( expression ); + DERIVE + is_int : BOOLEAN := is_int_expr( SELF ); + sql_mappable : BOOLEAN := is_sql_mappable( SELF ); + END_ENTITY; + + ENTITY numeric_variable + SUPERTYPE OF ( + ONEOF ( + int_numeric_variable, + real_numeric_variable ) ) + SUBTYPE OF ( simple_numeric_expression, variable ); + WHERE + wr1: ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.INT_NUMERIC_VARIABLE' IN TYPEOF( SELF ) ) OR ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.REAL_NUMERIC_VARIABLE' IN TYPEOF( SELF ) ) ); + END_ENTITY; + + ENTITY numerical_model; + id : identifier; + name : label; + description : text; + creating_software : text; + intended_analysis_code : SET [1 : ?] OF text; + analysis_type : text; + WHERE + wr1: temporal_spatial_domain_for_model( SELF ); + END_ENTITY; + + ENTITY object_role; + name : label; + description : OPTIONAL text; + END_ENTITY; + + ENTITY odd_function + SUBTYPE OF ( unary_boolean_expression ); + SELF\unary_generic_expression.operand : numeric_expression; + WHERE + wr1: is_int_expr( operand ); + 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_closed_shell + SUBTYPE OF ( erroneous_topology ); + SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_logical_test; + WHERE + wr1: validate_measured_data_type( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.BOOLEAN_VALUE' ); + wr2: validate_inspected_elements_type( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CLOSED_SHELL'] ); + wr3: validate_locations_of_extreme_value_type( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.EDGE_CURVE'] ); + wr4: validate_accuracy_types( SELF, [] ); + END_ENTITY; + + ENTITY open_edge_loop + SUBTYPE OF ( erroneous_topology ); + SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_logical_test; + WHERE + wr1: validate_measured_data_type( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.BOOLEAN_VALUE' ); + wr2: validate_inspected_elements_type( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.EDGE_LOOP'] ); + wr3: validate_locations_of_extreme_value_type( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ORIENTED_EDGE'] ); + wr4: validate_accuracy_types( SELF, [] ); + END_ENTITY; + + ENTITY open_path_profile + SUBTYPE OF ( shape_aspect ); + WHERE + wr1: ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FEATURE_COMPONENT_DEFINITION' IN TYPEOF( SELF.of_shape. + definition ) ); + wr2: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + + 'DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) ) = 1 ) ) ) ) = 0 ); + wr3: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + + 'DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. + used_representation ) ) ) | ( NOT ( SIZEOF( impl_rep.used_representation.items ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ); + wr4: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + + 'DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. + used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PLACEMENT' IN TYPEOF( it ) ) AND ( it.name = 'orientation' ) ) ) ) + = 1 ) ) ) ) = 0 ) ) ) ) = 0 ); + wr5: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + + 'DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'PATH_SHAPE_REPRESENTATION' IN TYPEOF( pdr.used_representation ) ) ) ) = 1 ) ) ) ) = 0 ); + wr6: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + + 'DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'PLANAR_SHAPE_REPRESENTATION' IN TYPEOF( pdr.used_representation ) ) AND ( pdr.used_representation.name = + 'profile limit' ) ) ) ) <= 1 ) ) ) ) = 0 ); + END_ENTITY; + + ENTITY open_shell + SUBTYPE OF ( connected_face_set ); + END_ENTITY; + + ENTITY or_expression + SUBTYPE OF ( multiple_arity_boolean_expression ); + 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 ) AND ( day_component <= 365 ) ) OR ( + leap_year( SELF.year_component ) AND ( 1 <= day_component ) AND ( 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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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_start : vertex := boolean_choose( SELF.orientation, SELF.edge_element.edge_start, SELF.edge_element. + edge_end ); + SELF\edge.edge_end : vertex := boolean_choose( SELF.orientation, SELF.edge_element.edge_end, SELF.edge_element. + edge_start ); + WHERE + wr1: ( NOT ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ORIENTED_FACE' IN TYPEOF( SELF.face_element ) ) ); + END_ENTITY; + + ENTITY oriented_joint + SUBTYPE OF ( oriented_edge ); + SELF\oriented_edge.edge_element : kinematic_joint; + 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 ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 outer_round + SUBTYPE OF ( feature_definition ); + WHERE + wr1: ( ( NOT ( SELF\characterized_object.description = 'outer diameter' ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( SIZEOF( QUERY ( pdr <* + USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | + ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. + used_representation ) ) AND ( SIZEOF( pdr.used_representation.items ) = 3 ) ) ) ) = 1 ) ) ) = 1 ) ); + wr2: ( ( NOT ( SELF\characterized_object.description = 'outer diameter to shoulder' ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( + SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( SIZEOF( + QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.' + + 'DEFINITION' ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' + IN TYPEOF( pdr.used_representation ) ) AND ( 2 <= SIZEOF( pdr.used_representation.items ) ) AND ( SIZEOF( pdr. + used_representation.items ) <= 3 ) ) ) ) = 1 ) ) ) = 1 ) ); + wr3: ( SELF\characterized_object.description IN [ 'outer diameter', 'outer diameter to shoulder'] ); + wr4: ( ( NOT ( SELF\characterized_object.description = 'outer diameter' ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( + QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( + QUERY ( it <* impl_rep.used_representation.items | ( ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'MEASURE_REPRESENTATION_ITEM' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * + TYPEOF( it ) ) = 2 ) AND ( it.name = 'length' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ) ); + wr5: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + + 'DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. + used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( SIZEOF( [ + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM' , + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( it ) ) = 2 ) AND ( it. + name = 'diameter' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ); + wr6: ( ( NOT ( SELF\characterized_object.description = 'outer diameter to shoulder' ) ) OR ( SIZEOF( QUERY ( pds <* + QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) + | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) | ( NOT ( + SIZEOF( QUERY ( sa_occ <* USEDIN( pds, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) + | ( ( sa_occ.description = 'v-shape boundary occurrence' ) AND ( SIZEOF( QUERY ( sdr <* QUERY ( sar <* USEDIN( + sa_occ, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT' ) | ( + ( sar.description = 'profile usage' ) AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF( sar ) ) ) ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'VEE_PROFILE' IN TYPEOF( sdr.relating_shape_aspect ) ) AND ( sdr.relating_shape_aspect.description = 'v-shape' ) ) ) ) + = 1 ) ) ) ) = 1 ) ) ) ) = 0 ) ); + wr7: ( ( NOT ( SELF\characterized_object.description = 'outer diameter' ) ) OR ( SIZEOF( QUERY ( pds <* QUERY ( pd <* + USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) | ( NOT ( + SIZEOF( QUERY ( sa_occ <* USEDIN( pds, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) + | ( ( sa_occ.description = 'reduced size occurrence' ) AND ( SIZEOF( QUERY ( sdr <* QUERY ( sar <* USEDIN( sa_occ, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT' ) | ( ( sar. + description = 'taper usage' ) AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF( sar ) ) ) ) | ( ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.TAPER' IN TYPEOF( sdr.relating_shape_aspect ) ) AND ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.OUTER_ROUND' IN TYPEOF( sdr.related_shape_aspect.of_shape. + definition ) ) AND ( sdr.name = 'reduced size' ) ) ) ) = 1 ) ) ) ) <= 1 ) ) ) ) = 0 ) ); + wr8: ( ( NOT ( SELF\characterized_object.description = 'outer diameter to shoulder' ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( + SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( + QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( + QUERY ( it <* impl_rep.used_representation.items | ( ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'MEASURE_REPRESENTATION_ITEM' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * + TYPEOF( it ) ) = 2 ) AND ( it.name = 'length' ) ) ) ) <= 1 ) ) ) ) = 0 ) ) ) ) = 0 ) ); + wr9: ( ( NOT ( SELF\characterized_object.description = 'outer diameter to shoulder' ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( + SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( + QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( + QUERY ( it <* impl_rep.used_representation.items | ( ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'MEASURE_REPRESENTATION_ITEM' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * + TYPEOF( it ) ) = 2 ) AND ( it.name = 'feature length' ) ) ) ) <= 1 ) ) ) ) = 0 ) ) ) ) = 0 ) ); + END_ENTITY; + + ENTITY output_request_state + SUBTYPE OF ( state ); + steps : SET [1 : ?] OF control_analysis_step; + END_ENTITY; + + ENTITY outside_profile + SUBTYPE OF ( feature_definition ); + WHERE + wr1 : ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + + 'DEFINITION' ) | ( SIZEOF( QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) AND ( SIZEOF( pdr. + used_representation.items ) = 1 ) ) ) ) = 1 ) ) ) = 1 ); + wr2 : ( SIZEOF( QUERY ( pds <* QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) | ( NOT ( SIZEOF( QUERY ( sa_occ <* USEDIN( pds, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) | ( sa_occ.description IN [ + 'boundary occurrence' , 'non-planar boundary occurrence', 'partial circular boundary occurrence', + 'closed circular boundary occurrence' , 'open rectangular boundary occurrence', + 'closed rectangular boundary occurrence' ] ) ) ) = 1 ) ) ) ) = 0 ); + wr3 : ( ( NOT ( SIZEOF( QUERY ( pds <* QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) | ( NOT ( SIZEOF( QUERY ( sa_occ <* USEDIN( pds, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) | ( sa_occ.description = + 'boundary occurrence' ) ) ) = 1 ) ) ) ) = 0 ) ) OR ( SIZEOF( QUERY ( pds <* QUERY ( pd <* USEDIN( SELF, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) | ( NOT ( + SIZEOF( QUERY ( sa_occ <* USEDIN( pds, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) + | ( SIZEOF( QUERY ( sdr <* QUERY ( sar <* USEDIN( sa_occ, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT' ) | ( ( sar.description = 'profile usage' ) AND ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF( sar ) ) ) ) | ( ( + SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CIRCULAR_CLOSED_PROFILE', + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.NGON_CLOSED_PROFILE' , + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.RECTANGULAR_CLOSED_PROFILE' , + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CLOSED_PATH_PROFILE' , + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SQUARE_U_PROFILE' , + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PARTIAL_CIRCULAR_PROFILE' , + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ROUNDED_U_PROFILE' , + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LINEAR_PROFILE' , + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.VEE_PROFILE' , + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.TEE_PROFILE' , + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.OPEN_PATH_PROFILE' ] * TYPEOF( sdr.relating_shape_aspect ) ) + = 1 ) AND ( sdr.relating_shape_aspect.description = 'outside boundary' ) ) ) ) = 1 ) ) ) = 1 ) ) ) ) = 0 ) ); + wr4 : ( ( NOT ( SIZEOF( QUERY ( pds <* QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) | ( NOT ( SIZEOF( QUERY ( sa_occ <* USEDIN( pds, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) | ( sa_occ.description IN [ + 'complex boundary occurrence' , 'partial circular boundary occurrence', 'closed circular boundary occurrence', + 'open rectangular boundary occurrence' , 'closed rectangular boundary occurrence'] ) ) ) = 1 ) ) ) ) = 0 ) ) OR + ( SIZEOF( QUERY ( pds <* QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) | ( NOT ( SIZEOF( QUERY ( sa_occ <* USEDIN( pds, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) | ( NOT ( SIZEOF( QUERY ( sdr <* + QUERY ( sar <* USEDIN( sa_occ, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.' + + 'RELATED_SHAPE_ASPECT' ) | ( ( sar.description = 'profile floor usage' ) AND ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF( sar ) ) ) ) | ( + ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROFILE_FLOOR' IN TYPEOF( sdr.relating_shape_aspect ) ) AND + ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.OUTSIDE_PROFILE' IN TYPEOF( sdr.related_shape_aspect. + of_shape.definition ) ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ) ); + wr5 : ( ( NOT ( SIZEOF( QUERY ( pds <* QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) | ( NOT ( SIZEOF( QUERY ( sa_occ <* USEDIN( pds, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) | ( sa_occ.description IN [ + 'outside boundary' , 'complex boundary occurrence', 'partial circular boundary occurrence', + 'closed circular boundary occurrence' , 'open rectangular boundary occurrence', + 'closed rectangular boundary occurrence' ] ) ) ) = 1 ) ) ) ) = 0 ) ) OR ( SIZEOF( QUERY ( pds <* QUERY ( pd <* + USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) | ( NOT ( + SIZEOF( QUERY ( sa_occ <* USEDIN( pds, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) + | ( SIZEOF( QUERY ( sdr <* QUERY ( sar <* USEDIN( sa_occ, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT' ) | ( ( sar.description = 'path feature component usage' ) + AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF( sar ) ) ) ) | ( + ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PATH_FEATURE_COMPONENT'] * TYPEOF( sdr. + relating_shape_aspect ) ) = 1 ) AND ( sdr.name = 'profile swept shape' ) AND ( sdr.relating_shape_aspect. + description = 'linear' ) ) ) ) = 1 ) ) ) = 1 ) ) ) ) = 0 ) ); + wr6 : ( ( NOT ( SIZEOF( QUERY ( pds <* QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) | ( NOT ( SIZEOF( QUERY ( sa_occ <* USEDIN( pds, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) | ( sa_occ.description = + 'complex boundary occurrence' ) ) ) = 1 ) ) ) ) = 0 ) ) OR ( SIZEOF( QUERY ( pds <* QUERY ( pd <* USEDIN( SELF, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) | ( NOT ( + SIZEOF( QUERY ( sa_occ <* USEDIN( pds, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) + | ( SIZEOF( QUERY ( sdr <* QUERY ( sar <* USEDIN( sa_occ, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT' ) | ( ( sar.description = 'profile usage' ) AND ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF( sar ) ) ) ) | ( + SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CIRCULAR_CLOSED_PROFILE', + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.NGON_CLOSED_PROFILE' , + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.RECTANGULAR_CLOSED_PROFILE' , + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CLOSED_PATH_PROFILE' , + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SQUARE_U_PROFILE' , + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PARTIAL_CIRCULAR_PROFILE' , + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ROUNDED_U_PROFILE' , + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.VEE_PROFILE' , + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.TEE_PROFILE' , + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LINEAR_PROFILE' , + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.OPEN_PATH_PROFILE' ] * TYPEOF( sdr.relating_shape_aspect ) ) + = 1 ) ) ) = 1 ) ) ) = 1 ) ) ) ) = 0 ) ); + wr7 : ( ( NOT ( SIZEOF( QUERY ( pds <* QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) | ( NOT ( SIZEOF( QUERY ( sa_occ <* USEDIN( pds, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) | ( sa_occ.description = + 'partial circular boundary occurrence' ) ) ) = 1 ) ) ) ) = 0 ) ) OR ( SIZEOF( QUERY ( pds <* QUERY ( pd <* + USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) | ( NOT ( + SIZEOF( QUERY ( sa_occ <* USEDIN( pds, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) + | ( SIZEOF( QUERY ( sdr <* QUERY ( sar <* USEDIN( sa_occ, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT' ) | ( ( sar.description = 'profile usage' ) AND ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF( sar ) ) ) ) | ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PARTIAL_CIRCULAR_PROFILE' IN TYPEOF( sdr. + relating_shape_aspect ) ) ) ) = 1 ) ) ) = 1 ) ) ) ) = 0 ) ); + wr8 : ( ( NOT ( SIZEOF( QUERY ( pds <* QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) | ( NOT ( SIZEOF( QUERY ( sa_occ <* USEDIN( pds, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) | ( sa_occ.description = + 'closed circular boundary occurrence' ) ) ) = 1 ) ) ) ) = 0 ) ) OR ( SIZEOF( QUERY ( pds <* QUERY ( pd <* + USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) | ( NOT ( + SIZEOF( QUERY ( sa_occ <* USEDIN( pds, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) + | ( SIZEOF( QUERY ( sdr <* QUERY ( sar <* USEDIN( sa_occ, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT' ) | ( ( sar.description = 'profile usage' ) AND ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF( sar ) ) ) ) | ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CIRCULAR_CLOSED_PROFILE' IN TYPEOF( sdr. + relating_shape_aspect ) ) ) ) = 1 ) ) ) = 1 ) ) ) ) = 0 ) ); + wr9 : ( ( NOT ( SIZEOF( QUERY ( pds <* QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) | ( NOT ( SIZEOF( QUERY ( sa_occ <* USEDIN( pds, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) | ( sa_occ.description = + 'open rectangular boundary occurrence' ) ) ) = 1 ) ) ) ) = 0 ) ) OR ( SIZEOF( QUERY ( pds <* QUERY ( pd <* + USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) | ( NOT ( + SIZEOF( QUERY ( sa_occ <* USEDIN( pds, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) + | ( SIZEOF( QUERY ( sdr <* QUERY ( sar <* USEDIN( sa_occ, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT' ) | ( ( sar.description = 'profile usage' ) AND ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF( sar ) ) ) ) | ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SQUARE_U_PROFILE' IN TYPEOF( sdr.relating_shape_aspect ) ) ) ) + = 1 ) ) ) = 1 ) ) ) ) = 0 ) ); + wr10: ( ( NOT ( SIZEOF( QUERY ( pds <* QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) | ( NOT ( SIZEOF( QUERY ( sa_occ <* USEDIN( pds, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) | ( sa_occ.description = + 'closed rectangular boundary occurrence' ) ) ) = 1 ) ) ) ) = 0 ) ) OR ( SIZEOF( QUERY ( pds <* QUERY ( pd <* + USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) | ( NOT ( + SIZEOF( QUERY ( sa_occ <* USEDIN( pds, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) + | ( SIZEOF( QUERY ( sdr <* QUERY ( sar <* USEDIN( sa_occ, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT' ) | ( ( sar.description = 'profile usage' ) AND ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF( sar ) ) ) ) | ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.RECTANGULAR_CLOSED_PROFILE' IN TYPEOF( sdr. + relating_shape_aspect ) ) ) ) = 1 ) ) ) = 1 ) ) ) ) = 0 ) ); + wr11: ( ( SIZEOF( QUERY ( pds <* QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) | ( NOT ( SIZEOF( QUERY ( sa_occ <* USEDIN( pds, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) | ( sa_occ.description IN [ + 'boundary occurrence' , 'complex boundary occurrence', 'partial circular boundary occurrence', + 'closed circular boundary occurrence' , 'open rectangular boundary occurrence', + 'closed rectangular boundary occurrence' ] ) ) ) = 1 ) ) ) ) = 0 ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( + QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.' + + 'DEFINITION' ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.DIRECTION_SHAPE_REPRESENTATION' IN + TYPEOF( pdr.used_representation ) ) AND ( pdr.used_representation.name = 'removal direction' ) ) ) ) = 1 ) ) ) ) = + 0 ) ); + wr12: ( SIZEOF( QUERY ( pdr <* get_property_definition_representations( SELF ) | ( ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PLANAR_SHAPE_REPRESENTATION' IN TYPEOF( pdr. + used_representation ) ) AND ( pdr.used_representation.name = 'maximum feature limit' ) ) ) ) >= 0 ); + END_ENTITY; + + ENTITY over_riding_styled_item + SUBTYPE OF ( styled_item ); + over_ridden_style : styled_item; + END_ENTITY; + + ENTITY over_used_vertex + SUBTYPE OF ( inapt_topology ); + SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; + WHERE + wr1: ( ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' ) IN TYPEOF( SELF + \shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold ) ) + AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.COUNT_MEASURE' IN value_limit_type( SELF\ + shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold ) ) ); + wr2: validate_measured_data_type( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.COUNT_MEASURE' ); + wr3: validate_inspected_elements_type( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.VERTEX_POINT'] ); + wr4: validate_locations_of_extreme_value_type( SELF, [] ); + wr5: validate_accuracy_types( SELF, [] ); + END_ENTITY; + + ENTITY overcomplex_geometry + ABSTRACT SUPERTYPE OF ( + ONEOF ( + excessively_high_degree_curve, + excessively_high_degree_surface, + surface_with_excessive_patches_in_one_direction, + curve_with_excessive_segments, + high_degree_linear_curve, + high_degree_planar_surface, + high_degree_conic, + high_degree_axi_symmetric_surface ) ) + SUBTYPE OF ( inapt_geometry ); + END_ENTITY; + + ENTITY overcomplex_topology_and_geometry_relationship + ABSTRACT SUPERTYPE OF ( + ONEOF ( + unused_patches, + edge_with_excessive_segments, + face_surface_with_excessive_patches_in_one_direction ) ) + SUBTYPE OF ( inapt_topology_and_geometry_relationship ); + END_ENTITY; + + ENTITY overlapping_geometry + ABSTRACT SUPERTYPE OF ( + ONEOF ( + partly_overlapping_curves, + partly_overlapping_surfaces ) ) + SUBTYPE OF ( inapt_geometry ); + END_ENTITY; + + ENTITY package_product_concept_feature + SUBTYPE OF ( product_concept_feature ); + WHERE + wr1: ( NOT ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'CONDITIONAL_CONCEPT_FEATURE' ) IN TYPEOF( SELF ) ) ); + wr2: ( SIZEOF( QUERY ( cfr <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'CONCEPT_FEATURE_RELATIONSHIP.' + 'RELATING_PRODUCT_CONCEPT_FEATURE' ) | ( ( ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'CONCEPT_FEATURE_RELATIONSHIP_WITH_CONDITION' ) IN + TYPEOF( cfr ) ) AND ( SIZEOF( QUERY ( ipcf <* USEDIN( cfr, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'CONDITIONAL_CONCEPT_FEATURE.' + 'CONDITION' ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'INCLUSION_PRODUCT_CONCEPT_FEATURE' ) IN TYPEOF( ipcf ) ) ) ) = 1 ) ) ) ) > 0 ); + END_ENTITY; + + ENTITY pair_representation_relationship + SUBTYPE OF ( geometric_representation_item, representation_relationship_with_transformation ); + SELF\representation_relationship.rep_1 : kinematic_link_representation; + SELF\representation_relationship.rep_2 : kinematic_link_representation; + SELF\representation_relationship_with_transformation.transformation_operator : kinematic_pair; + WHERE + wr1: ( transformation_operator\item_defined_transformation.transform_item_1 IN rep_1.items ); + wr2: ( transformation_operator\item_defined_transformation.transform_item_2 IN rep_2.items ); + wr3: ( rep_1\kinematic_link_representation.represented_link = transformation_operator\kinematic_pair.joint.edge_start ); + wr4: ( rep_2\kinematic_link_representation.represented_link = transformation_operator\kinematic_pair.joint.edge_end ); + END_ENTITY; + + ENTITY pair_value + ABSTRACT SUPERTYPE OF ( + ONEOF ( + sliding_surface_pair_value, + rolling_surface_pair_value, + revolute_pair_value, + prismatic_pair_value, + screw_pair_value, + cylindrical_pair_value, + spherical_pair_value, + sliding_curve_pair_value, + rolling_curve_pair_value, + gear_pair_value, + rack_and_pinion_pair_value, + universal_pair_value, + planar_pair_value, + unconstrained_pair_value, + point_on_surface_pair_value, + point_on_planar_curve_pair_value, + low_order_kinematic_pair_value ) ) + SUBTYPE OF ( geometric_representation_item ); + applies_to_pair : kinematic_pair; + END_ENTITY; + + ENTITY parabola + SUBTYPE OF ( conic ); + focal_dist : length_measure; + WHERE + wr1: ( focal_dist <> 0 ); + END_ENTITY; + + ENTITY parallel_assembly_constraint + SUBTYPE OF ( binary_assembly_constraint, parallel_geometric_constraint ); + END_ENTITY; + + ENTITY parallel_assembly_constraint_with_dimension + SUBTYPE OF ( parallel_assembly_constraint, pgc_with_dimension ); + END_ENTITY; + + ENTITY parallel_composed_function + SUBTYPE OF ( maths_function, multiple_arity_generic_expression ); + source_of_domain : maths_space_or_function; + prep_functions : LIST [1 : ?] OF maths_function; + final_function : maths_function_select; + DERIVE + SELF\multiple_arity_generic_expression.operands : LIST [2 : ?] OF generic_expression := convert_to_operands_prcmfn( + source_of_domain, prep_functions, final_function ); + WHERE + wr1: no_cyclic_domain_reference( source_of_domain, [SELF] ); + wr2: expression_is_constant( domain_from( source_of_domain ) ); + wr3: parallel_composed_function_domain_check( domain_from( source_of_domain ), prep_functions ); + wr4: parallel_composed_function_composability_check( prep_functions, final_function ); + END_ENTITY; + + ENTITY parallel_geometric_constraint + SUBTYPE OF ( explicit_geometric_constraint ); + SELF\explicit_constraint.constrained_elements : SET [1 : ?] OF linear_geometry_constraint_element; + SELF\explicit_constraint.reference_elements : SET [0 : 1] OF linear_geometry_constraint_element; + 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 parallel_offset_geometric_constraint + SUBTYPE OF ( explicit_geometric_constraint ); + SELF\explicit_constraint.constrained_elements : SET [1 : ?] OF curve_or_surface_constraint_element; + SELF\explicit_constraint.reference_elements : SET [0 : 1] OF curve_or_surface_constraint_element; + offset_type : parallel_offset_type; + WHERE + wr1: ( NOT ( ( ( offset_type = curve_2d_offset ) OR ( offset_type = curve_3d_offset ) ) AND ( SIZEOF( QUERY ( q <* ( SELF\ + explicit_constraint.constrained_elements + SELF\explicit_constraint.reference_elements ) | ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SURFACE' IN TYPEOF( q ) ) ) ) > 0 ) ) ); + wr2: ( NOT ( ( offset_type = surface_offset ) AND ( SIZEOF( QUERY ( q <* ( SELF\explicit_constraint.constrained_elements + + SELF\explicit_constraint.reference_elements ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CURVE' IN + TYPEOF( q ) ) ) ) > 0 ) ) ); + END_ENTITY; + + ENTITY parallelism_tolerance + SUBTYPE OF ( geometric_tolerance_with_datum_reference ); + END_ENTITY; + + ENTITY parametric_curve_3d_element_coordinate_direction + SUBTYPE OF ( fea_representation_item ); + orientation : direction; + WHERE + wr1: ( SELF\geometric_representation_item.dim = 3 ); + END_ENTITY; + + ENTITY parametric_curve_3d_element_coordinate_system + SUBTYPE OF ( fea_representation_item ); + direction : parametric_curve_3d_element_coordinate_direction; + END_ENTITY; + + ENTITY parametric_representation_context + SUBTYPE OF ( representation_context ); + END_ENTITY; + + ENTITY parametric_surface_2d_element_coordinate_system + SUBTYPE OF ( fea_representation_item ); + END_ENTITY; + + ENTITY parametric_surface_3d_element_coordinate_system + SUBTYPE OF ( fea_representation_item ); + axis : INTEGER; + angle : plane_angle_measure; + WHERE + wr1: ( ( axis >= 1 ) AND ( axis <= 2 ) ); + END_ENTITY; + + ENTITY parametric_volume_2d_element_coordinate_system + SUBTYPE OF ( fea_representation_item ); + axis : INTEGER; + angle : plane_angle_measure; + WHERE + wr1: ( ( axis >= 1 ) AND ( axis <= 2 ) ); + END_ENTITY; + + ENTITY parametric_volume_3d_element_coordinate_system + SUBTYPE OF ( fea_representation_item ); + axis_1 : INTEGER; + axis_2 : INTEGER; + eu_angles : euler_angles; + WHERE + wr1: ( ( axis_1 >= 1 ) AND ( axis_1 <= 3 ) AND ( axis_2 >= 1 ) AND ( axis_2 <= 3 ) AND ( NOT ( axis_1 = axis_2 ) ) ); + END_ENTITY; + + ENTITY part_laminate_table + SUPERTYPE OF ( + ONEOF ( + composite_assembly_table, + ply_laminate_table ) ) + SUBTYPE OF ( laminate_table ); + END_ENTITY; + + ENTITY partial_circular_profile + SUBTYPE OF ( shape_aspect ); + WHERE + wr1: ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FEATURE_COMPONENT_DEFINITION' IN TYPEOF( SELF.of_shape. + definition ) ); + wr2: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + + 'DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) ) = 1 ) ) ) ) = 0 ); + wr3: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + + 'DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. + used_representation ) ) ) | ( NOT ( SIZEOF( impl_rep.used_representation.items ) >= 3 ) ) ) ) = 0 ) ) ) ) = 0 ); + wr4: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + + 'DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. + used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PLACEMENT' IN TYPEOF( it ) ) AND ( it.name = 'orientation' ) ) ) ) + = 1 ) ) ) ) = 0 ) ) ) ) = 0 ); + wr5: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + + 'DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. + used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( SIZEOF( [ + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM' , + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( it ) ) = 2 ) AND ( it. + name = 'radius' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ); + wr6: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + + 'DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. + used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( SIZEOF( [ + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM' , + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PLANE_ANGLE_MEASURE_WITH_UNIT' ] * TYPEOF( it ) ) = 2 ) AND ( + it.name = 'sweep angle' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ); + wr7: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + + 'DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'PLANAR_SHAPE_REPRESENTATION' IN TYPEOF( pdr.used_representation ) ) AND ( pdr.used_representation.name = + 'profile limit' ) ) ) ) <= 1 ) ) ) ) = 0 ); + END_ENTITY; + + ENTITY partial_derivative_expression + SUBTYPE OF ( unary_generic_expression ); + d_variables : LIST [1 : ?] OF maths_variable; + extension : extension_options; + DERIVE + derivand : generic_expression := SELF\unary_generic_expression.operand; + WHERE + wr1: has_values_space( derivand ); + wr2: space_is_continuum( values_space_of( derivand ) ); + wr3: ( SIZEOF( QUERY ( vbl <* d_variables | ( ( NOT subspace_of( values_space_of( vbl ), the_reals ) ) AND ( NOT + subspace_of( values_space_of( vbl ), the_complex_numbers ) ) ) ) ) = 0 ); + END_ENTITY; + + ENTITY partial_derivative_function + SUBTYPE OF ( maths_function, unary_generic_expression ); + SELF\unary_generic_expression.operand : maths_function; + d_variables : LIST [1 : ?] OF input_selector; + extension : extension_options; + DERIVE + derivand : maths_function := SELF\unary_generic_expression.operand; + WHERE + wr1: space_is_continuum( derivand.range ); + wr2: partial_derivative_check( derivand.domain, d_variables ); + END_ENTITY; + + ENTITY partial_document_with_structured_text_representation_assignment + SUBTYPE OF ( applied_document_usage_constraint_assignment, characterized_object ); + END_ENTITY; + + ENTITY partly_overlapping_curves + SUBTYPE OF ( overlapping_geometry ); + SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; + interference_tolerance : length_measure; + WHERE + wr1: ( ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' ) IN TYPEOF( SELF + \shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold ) ) + AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE' IN value_limit_type( SELF\ + shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold ) ) ); + wr2: validate_measured_data_type( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE' ); + wr3: validate_inspected_elements_type( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CURVE', + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CURVE' ] ); + wr4: validate_locations_of_extreme_value_type( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.TRIMMED_CURVE', + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.TRIMMED_CURVE' ] ); + wr5: validate_accuracy_types( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE'] ); + END_ENTITY; + + ENTITY partly_overlapping_edges + SUBTYPE OF ( topology_related_to_overlapping_geometry ); + SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; + interference_tolerance : length_measure; + WHERE + wr1: ( ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' ) IN TYPEOF( SELF + \shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold ) ) + AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE' IN value_limit_type( SELF\ + shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold ) ) ); + wr2: validate_measured_data_type( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE' ); + wr3: validate_inspected_elements_type( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.EDGE_CURVE', + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.EDGE_CURVE' ] ); + wr4: validate_locations_of_extreme_value_type( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SUBEDGE', + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SUBEDGE' ] ); + wr5: validate_accuracy_types( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE'] ); + END_ENTITY; + + ENTITY partly_overlapping_faces + SUBTYPE OF ( topology_related_to_overlapping_geometry ); + SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; + interference_tolerance : length_measure; + WHERE + wr1: ( ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' ) IN TYPEOF( SELF + \shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold ) ) + AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.AREA_MEASURE' IN value_limit_type( SELF\ + shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold ) ) ); + wr2: validate_measured_data_type( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.AREA_MEASURE' ); + wr3: validate_inspected_elements_type( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FACE_SURFACE', + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FACE_SURFACE' ] ); + wr4: validate_locations_of_extreme_value_type( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SUBFACE', + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SUBFACE' ] ); + wr5: validate_accuracy_types( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.AREA_MEASURE'] ); + END_ENTITY; + + ENTITY partly_overlapping_solids + SUBTYPE OF ( inapt_manifold_solid_brep ); + SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; + interference_tolerance : length_measure; + WHERE + wr1: ( ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' ) IN TYPEOF( SELF + \shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold ) ) + AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.AREA_MEASURE' IN value_limit_type( SELF\ + shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold ) ) ); + wr2: validate_measured_data_type( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.AREA_MEASURE' ); + wr3: validate_inspected_elements_type( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MANIFOLD_SOLID_BREP', + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MANIFOLD_SOLID_BREP' ] ); + wr4: validate_locations_of_extreme_value_type( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SUBFACE', + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SUBFACE' ] ); + wr5: validate_accuracy_types( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.AREA_MEASURE'] ); + END_ENTITY; + + ENTITY partly_overlapping_surfaces + SUBTYPE OF ( overlapping_geometry ); + SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; + interference_tolerance : length_measure; + WHERE + wr1: ( ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' ) IN TYPEOF( SELF + \shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold ) ) + AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.AREA_MEASURE' IN value_limit_type( SELF\ + shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold ) ) ); + wr2: validate_measured_data_type( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.AREA_MEASURE' ); + wr3: validate_inspected_elements_type( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SURFACE', + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SURFACE' ] ); + wr4: validate_locations_of_extreme_value_type( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'CURVE_BOUNDED_SURFACE' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CURVE_BOUNDED_SURFACE'] ); + wr5: validate_accuracy_types( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.AREA_MEASURE'] ); + 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 path_area_with_parameters + SUBTYPE OF ( complex_area, mapped_item ); + WHERE + wr1: ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CURVE' IN TYPEOF( SELF\mapped_item.mapping_target ) ); + wr2: ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CURVE_STYLE_PARAMETERS_REPRESENTATION' IN TYPEOF( SELF\ + mapped_item.mapping_source\representation_map.mapped_representation ) ); + wr3: ( SELF\mapped_item.mapping_source\representation_map.mapping_origin\representation_item.name = 'curve width' ); + END_ENTITY; + + ENTITY path_feature_component + SUBTYPE OF ( shape_aspect ); + WHERE + wr1 : ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FEATURE_COMPONENT_DEFINITION' IN TYPEOF( SELF.of_shape. + definition ) ); + wr2 : ( SELF.description IN [ 'partial circular', 'complete circular', 'linear', 'complex'] ); + wr3 : ( ( NOT ( SELF.description = 'complex' ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( + QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.' + + 'DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' + IN TYPEOF( pdr.used_representation ) ) ) ) = 1 ) ) ) ) = 0 ) ); + wr4 : ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + + 'DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. + used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PLACEMENT' IN TYPEOF( it ) ) AND ( it.name = 'orientation' ) ) ) ) + = 1 ) ) ) ) = 0 ) ) ) ) = 0 ); + wr5 : ( ( NOT ( SELF.description = 'partial circular' ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( + QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( impl_rep. + used_representation.items ) = 3 ) ) ) ) = 0 ) ) ) ) = 0 ) ); + wr6 : ( ( NOT ( SELF.description = 'partial circular' ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( + QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( + QUERY ( it <* impl_rep.used_representation.items | ( ( SIZEOF( [ + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM' , + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( it ) ) = 2 ) AND ( it. + name = 'radius' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ) ); + wr7 : ( ( NOT ( SELF.description = 'partial circular' ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( + QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( + QUERY ( it <* impl_rep.used_representation.items | ( ( SIZEOF( [ + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM' , + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PLANE_ANGLE_MEASURE_WITH_UNIT' ] * TYPEOF( it ) ) = 2 ) AND + ( it.name = 'sweep angle' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ) ); + wr8 : ( ( NOT ( SELF.description = 'complete circular' ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( + QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( impl_rep. + used_representation.items ) = 2 ) ) ) ) = 0 ) ) ) ) = 0 ) ); + wr9 : ( ( NOT ( SELF.description = 'complete circular' ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( + QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( + QUERY ( it <* impl_rep.used_representation.items | ( ( SIZEOF( [ + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM' , + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( it ) ) = 2 ) AND ( it. + name = 'radius' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ) ); + wr10: ( ( NOT ( SELF.description = 'linear' ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( + QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( impl_rep. + used_representation.items ) = 2 ) ) ) ) = 0 ) ) ) ) = 0 ) ); + wr11: ( ( NOT ( SELF.description = 'linear' ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( + QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( + QUERY ( it <* impl_rep.used_representation.items | ( ( SIZEOF( [ + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM' , + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( it ) ) = 2 ) AND ( it. + name = 'distance' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ) ); + wr12: ( ( NOT ( SELF.description = 'linear' ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( + QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.' + + 'DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.DIRECTION_SHAPE_REPRESENTATION' IN + TYPEOF( pdr.used_representation ) ) ) ) = 1 ) ) ) ) = 0 ) ); + wr13: ( ( NOT ( SELF.description = 'complex' ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( + QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.' + + 'DEFINITION' ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PATH_SHAPE_REPRESENTATION' IN + TYPEOF( pdr.used_representation ) ) AND ( pdr.used_representation.name = 'sweep path' ) AND ( SIZEOF( + QUERY ( srwp_i <* pdr.used_representation.items | ( srwp_i.name = 'profile shape' ) ) ) = 1 ) ) ) ) = 1 ) ) ) ) = + 0 ) ); + END_ENTITY; + + ENTITY path_node + ABSTRACT SUPERTYPE OF ( + ONEOF ( + point_to_point_path, + circular_path, + linear_path, + curve_based_path ) ) + SUBTYPE OF ( kinematic_path_segment ); + placement_end : placement; + END_ENTITY; + + ENTITY path_parameter_representation + SUBTYPE OF ( definitional_representation ); + SELF\representation.context_of_items : path_parameter_representation_context; + SELF\representation.items : SET [1 : ?] OF bounded_curve; + WHERE + wr1: ( SELF\representation.context_of_items\geometric_representation_context.coordinate_space_dimension = 2 ); + END_ENTITY; + + ENTITY path_parameter_representation_context + SUBTYPE OF ( geometric_representation_context, parametric_representation_context ); + END_ENTITY; + + ENTITY path_shape_representation + SUBTYPE OF ( shape_representation ); + WHERE + wr1: ( SIZEOF( SELF.items ) >= 1 ); + wr2: ( SIZEOF( QUERY ( i <* SELF.items | ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.BOUNDED_CURVE', + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.EDGE_CURVE' , + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PATH' ] * TYPEOF( i ) ) = 1 ) ) ) >= 1 ); + END_ENTITY; + + ENTITY pattern_offset_membership + SUBTYPE OF ( feature_component_relationship ); + WHERE + wr1 : ( SIZEOF( QUERY ( fcr <* QUERY ( sar <* USEDIN( SELF.relating_shape_aspect, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.' + 'RELATING_SHAPE_ASPECT' ) | ( + ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF( sar ) ) AND ( sar + :<>: SELF ) ) ) | ( SIZEOF( QUERY ( pdr <* QUERY ( pd <* USEDIN( fcr.related_shape_aspect.of_shape, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) | ( SIZEOF( [ + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CIRCULAR_PATTERN' , + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.RECTANGULAR_PATTERN' ] * TYPEOF( pdr.definition ) ) = 1 ) ) ) + = 0 ) ) ) = 0 ); + wr2 : ( SIZEOF( QUERY ( fcr <* QUERY ( sar <* USEDIN( SELF.related_shape_aspect, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT' ) | ( ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF( sar ) ) AND ( sar + :<>: SELF ) ) ) | ( ( fcr.description = 'modified pattern' ) AND ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MODIFIED_PATTERN' IN TYPEOF( fcr.relating_shape_aspect ) ) ) ) ) + >= 1 ); + wr3 : ( SIZEOF( QUERY ( fcr <* QUERY ( sar <* USEDIN( SELF.related_shape_aspect, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT' ) | ( ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF( sar ) ) AND ( sar + :<>: SELF ) ) ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MODIFIED_PATTERN' IN TYPEOF( fcr. + relating_shape_aspect ) ) AND ( NOT ( SIZEOF( QUERY ( modfcr <* QUERY ( modsar <* USEDIN( fcr. + relating_shape_aspect, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.' + + 'RELATING_SHAPE_ASPECT' ) | ( ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CIRCULAR_PATTERN', + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.RECTANGULAR_PATTERN' ] * TYPEOF( modsar.related_shape_aspect. + of_shape.definition ) ) = 1 ) AND ( modsar :<>: fcr ) ) ) | ( NOT ( modfcr.related_shape_aspect.of_shape. + definition :=: SELF.relating_shape_aspect.of_shape.definition ) ) ) ) = 0 ) ) ) ) ) = 0 ); + wr4 : ( ( NOT ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.RECTANGULAR_PATTERN' IN TYPEOF( SELF. + relating_shape_aspect.of_shape.definition ) ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF.related_shape_aspect, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( USEDIN( + pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) ) = 2 ) ) ) ) + = 0 ) ); + wr5 : ( ( NOT ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CIRCULAR_PATTERN' IN TYPEOF( SELF.relating_shape_aspect + .of_shape.definition ) ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF.related_shape_aspect, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( USEDIN( + pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) ) = 1 ) ) ) ) + = 0 ) ); + wr6 : ( ( NOT ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CIRCULAR_PATTERN' IN TYPEOF( SELF.relating_shape_aspect + .of_shape.definition ) ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF.related_shape_aspect, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( + QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.' + + 'DEFINITION' ) | ( NOT ( SIZEOF( pdr.used_representation.items ) = 2 ) ) ) ) = 0 ) ) ) ) = 0 ) ); + wr7 : ( ( NOT ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CIRCULAR_PATTERN' IN TYPEOF( SELF.relating_shape_aspect + .of_shape.definition ) ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF.related_shape_aspect, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( + QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( + QUERY ( it <* impl_rep.used_representation.items | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'MEASURE_REPRESENTATION_ITEM' IN TYPEOF( it ) ) AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'COUNT_MEASURE' IN TYPEOF( it\measure_with_unit.value_component ) ) AND ( it.name = 'index number' ) ) ) ) = 1 ) ) ) ) + = 0 ) ) ) ) = 0 ) ); + wr8 : ( ( NOT ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CIRCULAR_PATTERN' IN TYPEOF( SELF.relating_shape_aspect + .of_shape.definition ) ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF.related_shape_aspect, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( + QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( + QUERY ( it <* impl_rep.used_representation.items | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'PLANE_ANGLE_MEASURE_WITH_UNIT' IN TYPEOF( it ) ) AND ( it.name = 'offset' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ) ); + wr9 : ( ( NOT ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.RECTANGULAR_PATTERN' IN TYPEOF( SELF. + relating_shape_aspect.of_shape.definition ) ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF.related_shape_aspect, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( + QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( impl_rep. + used_representation.items ) = 3 ) ) ) ) = 0 ) ) ) ) = 0 ) ); + wr10: ( ( NOT ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.RECTANGULAR_PATTERN' IN TYPEOF( SELF. + relating_shape_aspect.of_shape.definition ) ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF.related_shape_aspect, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( + QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( + QUERY ( it <* impl_rep.used_representation.items | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'MEASURE_REPRESENTATION_ITEM' IN TYPEOF( it ) ) AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'COUNT_MEASURE' IN TYPEOF( it\measure_with_unit.value_component ) ) AND ( it.name = 'row index' ) ) ) ) = 1 ) ) ) ) + = 0 ) ) ) ) = 0 ) ); + wr11: ( ( NOT ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.RECTANGULAR_PATTERN' IN TYPEOF( SELF. + relating_shape_aspect.of_shape.definition ) ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF.related_shape_aspect, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( + QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( + QUERY ( it <* impl_rep.used_representation.items | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'MEASURE_REPRESENTATION_ITEM' IN TYPEOF( it ) ) AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'COUNT_MEASURE' IN TYPEOF( it\measure_with_unit.value_component ) ) AND ( it.name = 'column index' ) ) ) ) = 1 ) ) ) ) + = 0 ) ) ) ) = 0 ) ); + wr12: ( ( NOT ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.RECTANGULAR_PATTERN' IN TYPEOF( SELF. + relating_shape_aspect.of_shape.definition ) ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF.related_shape_aspect, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( + QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( + QUERY ( it <* impl_rep.used_representation.items | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'LENGTH_MEASURE_WITH_UNIT' IN TYPEOF( it ) ) AND ( it.name = 'offset distance' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) + = 0 ) ); + wr13: ( ( NOT ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.RECTANGULAR_PATTERN' IN TYPEOF( SELF. + relating_shape_aspect.of_shape.definition ) ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF.related_shape_aspect, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( + QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.' + + 'DEFINITION' ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.DIRECTION_SHAPE_REPRESENTATION' IN + TYPEOF( pdr.used_representation ) ) AND ( pdr.used_representation.name = 'offset direction' ) ) ) ) = 1 ) ) ) ) = + 0 ) ); + END_ENTITY; + + ENTITY pattern_omit_membership + SUBTYPE OF ( feature_component_relationship ); + WHERE + wr1: ( SIZEOF( QUERY ( fcr <* QUERY ( sar <* USEDIN( SELF.relating_shape_aspect, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.' + 'RELATING_SHAPE_ASPECT' ) | ( + ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF( sar ) ) AND ( sar + :<>: SELF ) ) ) | ( SIZEOF( QUERY ( pdr <* QUERY ( pd <* USEDIN( fcr.related_shape_aspect.of_shape, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) | ( SIZEOF( [ + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CIRCULAR_PATTERN' , + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.RECTANGULAR_PATTERN' ] * TYPEOF( pdr.definition ) ) = 1 ) ) ) + = 0 ) ) ) = 0 ); + wr2: ( SIZEOF( QUERY ( fcr <* QUERY ( sar <* USEDIN( SELF.related_shape_aspect, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT' ) | ( ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF( sar ) ) AND ( sar + :<>: SELF ) ) ) | ( ( fcr.description = 'modified pattern' ) AND ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MODIFIED_PATTERN' IN TYPEOF( fcr.relating_shape_aspect ) ) ) ) ) + >= 1 ); + wr3: ( SIZEOF( QUERY ( fcr <* QUERY ( sar <* USEDIN( SELF.related_shape_aspect, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT' ) | ( ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF( sar ) ) AND ( sar + :<>: SELF ) ) ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MODIFIED_PATTERN' IN TYPEOF( fcr. + relating_shape_aspect ) ) AND ( NOT ( SIZEOF( QUERY ( modfcr <* QUERY ( modsar <* USEDIN( fcr.relating_shape_aspect, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATING_SHAPE_ASPECT' ) | ( ( + SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CIRCULAR_PATTERN', + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.RECTANGULAR_PATTERN' ] * TYPEOF( modsar.related_shape_aspect. + of_shape.definition ) ) = 1 ) AND ( modsar :<>: fcr ) ) ) | ( NOT ( modfcr.related_shape_aspect.of_shape.definition + :=: SELF.relating_shape_aspect.of_shape.definition ) ) ) ) = 0 ) ) ) ) ) = 0 ); + wr4: ( SIZEOF( QUERY ( pd <* USEDIN( SELF.related_shape_aspect, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( USEDIN( pd, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) ) = 1 ) ) ) ) + = 0 ); + wr5: ( ( NOT ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CIRCULAR_PATTERN' IN TYPEOF( SELF.relating_shape_aspect. + of_shape.definition ) ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF.related_shape_aspect, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( + QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.' + + 'DEFINITION' ) | ( NOT ( SIZEOF( pdr.used_representation.items ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ) ); + wr6: ( ( NOT ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CIRCULAR_PATTERN' IN TYPEOF( SELF.relating_shape_aspect. + of_shape.definition ) ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF.related_shape_aspect, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( + QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( + QUERY ( it <* impl_rep.used_representation.items | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'MEASURE_REPRESENTATION_ITEM' IN TYPEOF( it ) ) AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'COUNT_MEASURE' IN TYPEOF( it\measure_with_unit.value_component ) ) AND ( it.name = 'index number' ) ) ) ) = 1 ) ) ) ) + = 0 ) ) ) ) = 0 ) ); + wr7: ( ( NOT ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.RECTANGULAR_PATTERN' IN TYPEOF( SELF. + relating_shape_aspect.of_shape.definition ) ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF.related_shape_aspect, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( + QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.' + + 'DEFINITION' ) | ( NOT ( SIZEOF( pdr.used_representation.items ) = 2 ) ) ) ) = 0 ) ) ) ) = 0 ) ); + wr8: ( ( NOT ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.RECTANGULAR_PATTERN' IN TYPEOF( SELF. + relating_shape_aspect.of_shape.definition ) ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF.related_shape_aspect, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( + QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( + QUERY ( it <* impl_rep.used_representation.items | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'MEASURE_REPRESENTATION_ITEM' IN TYPEOF( it ) ) AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'COUNT_MEASURE' IN TYPEOF( it\measure_with_unit.value_component ) ) AND ( it.name = 'row index' ) ) ) ) = 1 ) ) ) ) + = 0 ) ) ) ) = 0 ) ); + wr9: ( ( NOT ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.RECTANGULAR_PATTERN' IN TYPEOF( SELF. + relating_shape_aspect.of_shape.definition ) ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF.related_shape_aspect, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( + QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( + QUERY ( it <* impl_rep.used_representation.items | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'MEASURE_REPRESENTATION_ITEM' IN TYPEOF( it ) ) AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'COUNT_MEASURE' IN TYPEOF( it\measure_with_unit.value_component ) ) AND ( it.name = 'column index' ) ) ) ) = 1 ) ) ) ) + = 0 ) ) ) ) = 0 ) ); + 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: ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 pdgc_with_dimension + SUBTYPE OF ( point_distance_geometric_constraint ); + distance_value : non_negative_length_measure; + END_ENTITY; + + ENTITY percentage_laminate_table + SUBTYPE OF ( zone_structural_makeup ); + END_ENTITY; + + ENTITY perpendicular_assembly_constraint + SUBTYPE OF ( binary_assembly_constraint, perpendicular_geometric_constraint ); + END_ENTITY; + + ENTITY perpendicular_geometric_constraint + SUBTYPE OF ( explicit_geometric_constraint ); + SELF\explicit_constraint.constrained_elements : SET [1 : ?] OF linear_geometry_constraint_element; + SELF\explicit_constraint.reference_elements : SET [0 : 2] OF linear_geometry_constraint_element; + WHERE + wr1: ( NOT ( ( SIZEOF( SELF\explicit_constraint.reference_elements ) = 2 ) AND ( NOT ( ( SIZEOF( QUERY ( q <* ( SELF\ + explicit_constraint.constrained_elements + SELF\explicit_constraint.reference_elements ) | ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LINE' IN TYPEOF( q ) ) ) ) = SIZEOF( SELF\explicit_constraint + .reference_elements + SELF\explicit_constraint.constrained_elements ) ) XOR ( SIZEOF( QUERY ( q <* ( SELF\ + explicit_constraint.constrained_elements + SELF\explicit_constraint.reference_elements ) | ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PLANE' IN TYPEOF( q ) ) ) ) = SIZEOF( SELF\ + explicit_constraint.reference_elements + SELF\explicit_constraint.constrained_elements ) ) ) ) ) ); + wr2: ( ( SIZEOF( SELF\explicit_constraint.reference_elements ) > 0 ) OR ( SIZEOF( SELF\explicit_constraint. + constrained_elements ) IN [2, 3] ) ); + wr3: ( ( NOT ( ( SIZEOF( SELF\explicit_constraint.reference_elements ) = 0 ) AND ( SIZEOF( SELF\explicit_constraint. + constrained_elements ) = 3 ) ) ) AND ( NOT ( ( SIZEOF( QUERY ( q <* SELF\explicit_constraint.constrained_elements + | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LINE' IN TYPEOF( q ) ) ) ) = 3 ) XOR ( SIZEOF( + QUERY ( q <* SELF\explicit_constraint.constrained_elements | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'PLANE' IN TYPEOF( q ) ) ) ) = 3 ) ) ) ); + 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 ); + 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 + name : label := get_name_value( SELF ); + description : text := get_description_value( SELF ); + WHERE + wr1: ( SIZEOF( USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'NAME_ATTRIBUTE.NAMED_ITEM' ) ) <= 1 ); + wr2: ( SIZEOF( USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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], 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 pgc_with_dimension + SUBTYPE OF ( parallel_geometric_constraint ); + distance_value : non_negative_length_measure; + negative_direction : BOOLEAN; + WHERE + wr1: ( ( SIZEOF( SELF\explicit_constraint.reference_elements ) = 1 ) OR ( SIZEOF( SELF\explicit_constraint. + constrained_elements ) = 2 ) ); + wr2: ( SIZEOF( QUERY ( q <* ( SELF\explicit_constraint.reference_elements + SELF\explicit_constraint.constrained_elements ) + | ( SIZEOF( TYPEOF( q ) * [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.DIRECTION', + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.VECTOR' ] ) > 0 ) ) ) = 0 ); + END_ENTITY; + + ENTITY physical_action_domain + SUBTYPE OF ( temporal_spatial_domain ); + initial : physical_state_domain; + final : physical_state_domain; + END_ENTITY; + + ENTITY physical_breakdown_context + SUBTYPE OF ( breakdown_context ); + END_ENTITY; + + ENTITY physical_component + SUBTYPE OF ( assembly_component ); + END_ENTITY; + + ENTITY physical_component_feature + SUBTYPE OF ( component_feature ); + END_ENTITY; + + ENTITY physical_component_terminal + SUBTYPE OF ( component_terminal, physical_component_feature ); + END_ENTITY; + + ENTITY physical_element_usage + SUBTYPE OF ( breakdown_element_usage ); + END_ENTITY; + + ENTITY physical_product_domain + SUBTYPE OF ( temporal_spatial_domain ); + temporal_parts : SET [0 : ?] OF physical_action_domain; + END_ENTITY; + + ENTITY physical_state_domain + SUBTYPE OF ( temporal_spatial_domain ); + 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 | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.STYLED_ITEM' IN TYPEOF( item ) ) ) ) + = 1 ); + wr2: ( SIZEOF( QUERY ( se <* QUERY ( item <* SELF.items | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.STYLED_ITEM' + IN TYPEOF( item ) ) ) | ( NOT ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 curve'] ); + wr2: ( SIZEOF( QUERY ( pdr <* representation_associations | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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_curve_pair + SUPERTYPE OF ( + ONEOF ( + sliding_curve_pair, + rolling_curve_pair ) + ANDOR + planar_curve_pair_range ) + SUBTYPE OF ( high_order_kinematic_pair ); + curve_1 : curve; + curve_2 : curve; + orientation : BOOLEAN; + WHERE + wr1: ( SIZEOF( QUERY ( r <* SELF\kinematic_pair.associated_link_representations_1 | ( NOT ( curve_1 IN r.items ) ) ) ) = 0 ); + wr2: ( SIZEOF( QUERY ( r <* SELF\kinematic_pair.associated_link_representations_2 | ( NOT ( curve_2 IN r.items ) ) ) ) = 0 ); + wr3: ( SIZEOF( QUERY ( lr <* SELF\kinematic_pair.associated_link_representations_1 | ( NOT ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.RIGID_LINK_REPRESENTATION' IN TYPEOF( lr ) ) ) ) ) = 0 ); + END_ENTITY; + + ENTITY planar_curve_pair_range + SUBTYPE OF ( planar_curve_pair ); + range_on_curve_1 : trimmed_curve; + range_on_curve_2 : trimmed_curve; + WHERE + wr1: ( SELF\planar_curve_pair.curve_1 :=: range_on_curve_1.basis_curve ); + wr2: ( SELF\planar_curve_pair.curve_2 :=: range_on_curve_2.basis_curve ); + wr3: ( SIZEOF( QUERY ( r <* SELF\kinematic_pair.associated_link_representations_1 | ( NOT ( range_on_curve_1 IN r.items ) ) ) ) + = 0 ); + wr4: ( SIZEOF( QUERY ( r <* SELF\kinematic_pair.associated_link_representations_2 | ( NOT ( range_on_curve_2 IN r.items ) ) ) ) + = 0 ); + END_ENTITY; + + ENTITY planar_extent + SUBTYPE OF ( geometric_representation_item ); + size_in_x : length_measure; + size_in_y : length_measure; + END_ENTITY; + + ENTITY planar_pair + SUBTYPE OF ( low_order_kinematic_pair ); + DERIVE + SELF\low_order_kinematic_pair.t_x : BOOLEAN := TRUE; + SELF\low_order_kinematic_pair.t_y : BOOLEAN := TRUE; + SELF\low_order_kinematic_pair.t_z : BOOLEAN := FALSE; + SELF\low_order_kinematic_pair.r_x : BOOLEAN := FALSE; + SELF\low_order_kinematic_pair.r_y : BOOLEAN := FALSE; + SELF\low_order_kinematic_pair.r_z : BOOLEAN := TRUE; + END_ENTITY; + + ENTITY planar_pair_value + SUBTYPE OF ( pair_value ); + SELF\pair_value.applies_to_pair : planar_pair; + actual_rotation : plane_angle_measure; + actual_translation_x : length_measure; + actual_translation_y : length_measure; + END_ENTITY; + + ENTITY planar_pair_with_range + SUBTYPE OF ( planar_pair ); + lower_limit_actual_rotation : OPTIONAL plane_angle_measure; + upper_limit_actual_rotation : OPTIONAL plane_angle_measure; + lower_limit_actual_translation_x : OPTIONAL length_measure; + upper_limit_actual_translation_x : OPTIONAL length_measure; + lower_limit_actual_translation_y : OPTIONAL length_measure; + upper_limit_actual_translation_y : OPTIONAL length_measure; + WHERE + wr1: ( ( ( NOT EXISTS( lower_limit_actual_rotation ) ) OR ( NOT EXISTS( upper_limit_actual_rotation ) ) ) XOR ( + lower_limit_actual_rotation < upper_limit_actual_rotation ) ); + wr2: ( ( ( NOT EXISTS( lower_limit_actual_translation_x ) ) OR ( NOT EXISTS( upper_limit_actual_translation_x ) ) ) XOR ( + lower_limit_actual_translation_x < upper_limit_actual_translation_x ) ); + wr3: ( ( ( NOT EXISTS( lower_limit_actual_translation_y ) ) OR ( NOT EXISTS( upper_limit_actual_translation_y ) ) ) XOR ( + lower_limit_actual_translation_y < upper_limit_actual_translation_y ) ); + END_ENTITY; + + ENTITY planar_shape_representation + SUBTYPE OF ( shape_representation ); + WHERE + wr1: ( SIZEOF( SELF.items ) = 1 ); + wr2: ( SIZEOF( QUERY ( it <* SELF.items | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PLANE' IN TYPEOF( it ) ) ) ) + = 1 ); + END_ENTITY; + + ENTITY plane + SUBTYPE OF ( elementary_surface ); + END_ENTITY; + + ENTITY plane_2d_element_property + SUPERTYPE OF ( + simple_plane_2d_element_property ); + depth : context_dependent_measure; + END_ENTITY; + + ENTITY plane_angle_and_length_pair + SUBTYPE OF ( founded_item ); + plane_angle_value : plane_angle_measure; + length_value : length_measure; + END_ENTITY; + + ENTITY plane_angle_and_ratio_pair + SUBTYPE OF ( founded_item ); + plane_angle_value : plane_angle_measure; + ratio_value : ratio_measure; + END_ENTITY; + + ENTITY plane_angle_measure_with_unit + SUBTYPE OF ( measure_with_unit ); + WHERE + wr1: ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ) AND ( SELF\named_unit.dimensions.mass_exponent = 0 ) AND ( SELF\ + named_unit.dimensions.time_exponent = 0 ) AND ( SELF\named_unit.dimensions.electric_current_exponent = 0 ) AND ( + SELF\named_unit.dimensions.thermodynamic_temperature_exponent = 0 ) AND ( SELF\named_unit.dimensions. + amount_of_substance_exponent = 0 ) AND ( SELF\named_unit.dimensions.luminous_intensity_exponent = 0 ) ); + END_ENTITY; + + ENTITY plane_curve_2d_element_descriptor + SUBTYPE OF ( element_descriptor ); + purpose : SET [1 : ?] OF SET [1 : ?] OF curve_element_purpose; + assumption : plane_2d_element_purpose; + END_ENTITY; + + ENTITY plane_curve_2d_element_representation + SUBTYPE OF ( element_representation ); + model_ref : fea_model_2d; + element_descriptor : plane_curve_2d_element_descriptor; + property : curve_2d_element_property; + depth_property : plane_2d_element_property; + material : element_material; + UNIQUE + ur1 : model_ref, SELF\representation.name; + WHERE + wr1: ( model_ref.type_of_2d_analysis = planar ); + wr2: ( SIZEOF( QUERY ( item <* SELF\representation.items | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'CURVE_2D_ELEMENT_COORDINATE_SYSTEM' ) IN TYPEOF( item ) ) ) ) = 1 ); + wr3: ( SIZEOF( QUERY ( item1 <* material.properties | ( SIZEOF( QUERY ( item2 <* item1\property_definition_representation. + used_representation.items | ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'FEA_LINEAR_ELASTICITY' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'FEA_MASS_DENSITY', + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'FEA_AREA_DENSITY', + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'FEA_TANGENTIAL_COEFFICIENT_OF_LINEAR_THERMAL_EXPANSION', + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'FEA_SECANT_COEFFICIENT_OF_LINEAR_THERMAL_EXPANSION', + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'FEA_MOISTURE_ABSORPTION'] * TYPEOF( item2 ) ) = 1 ) ) ) + = 1 ) ) ) >= 1 ); + wr4: ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PARAMETRIC_REPRESENTATION_CONTEXT' IN TYPEOF( SELF\ + representation.context_of_items ) ); + fu1: required_0d_nodes( SELF\element_representation.node_list ); + END_ENTITY; + + ENTITY plane_surface_2d_element_descriptor + SUBTYPE OF ( element_descriptor ); + purpose : SET [1 : ?] OF SET [1 : ?] OF surface_element_purpose; + assumption : plane_2d_element_purpose; + END_ENTITY; + + ENTITY plane_surface_2d_element_representation + SUBTYPE OF ( element_representation ); + model_ref : fea_model_2d; + element_descriptor : plane_surface_2d_element_descriptor; + property : surface_element_property; + depth_property : plane_2d_element_property; + material : element_material; + UNIQUE + ur1 : model_ref, SELF\representation.name; + WHERE + wr1: ( model_ref.type_of_2d_analysis = planar ); + wr2: ( ( SIZEOF( QUERY ( item <* SELF\representation.items | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'PARAMETRIC_SURFACE_2D_ELEMENT_COORDINATE_SYSTEM' ) IN TYPEOF( item ) ) ) ) + SIZEOF( QUERY ( item <* SELF\ + representation.items | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'ALIGNED_SURFACE_2D_ELEMENT_COORDINATE_SYSTEM' ) IN TYPEOF( item ) ) ) ) ) = 1 ); + wr3: ( SIZEOF( QUERY ( item1 <* material.properties | ( SIZEOF( QUERY ( item2 <* item1\property_definition_representation. + used_representation.items | ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'FEA_LINEAR_ELASTICITY' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'FEA_MASS_DENSITY', + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'FEA_AREA_DENSITY', + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'FEA_TANGENTIAL_COEFFICIENT_OF_LINEAR_THERMAL_EXPANSION', + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'FEA_SECANT_COEFFICIENT_OF_LINEAR_THERMAL_EXPANSION', + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'FEA_MOISTURE_ABSORPTION', + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'FEA_SHELL_MEMBRANE_STIFFNESS', + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'FEA_SHELL_BENDING_STIFFNESS', + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'FEA_SHELL_MEMBRANE_BENDING_COUPLING_STIFFNESS', + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'FEA_SHELL_SHEAR_STIFFNESS'] * TYPEOF( item2 ) ) = 1 ) ) ) + = 1 ) ) ) >= 1 ); + wr4: ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PARAMETRIC_REPRESENTATION_CONTEXT' IN TYPEOF( SELF\ + representation.context_of_items ) ); + fu1: required_1d_nodes( SELF\element_representation.node_list, element_descriptor\element_descriptor.topology_order ); + END_ENTITY; + + ENTITY plane_volume_2d_element_descriptor + SUBTYPE OF ( element_descriptor ); + purpose : SET [1 : ?] OF SET [1 : ?] OF volume_element_purpose; + shape : element_2d_shape; + assumption : plane_2d_element_purpose; + END_ENTITY; + + ENTITY plane_volume_2d_element_representation + SUBTYPE OF ( element_representation ); + model_ref : fea_model_2d; + element_descriptor : plane_volume_2d_element_descriptor; + depth_property : plane_2d_element_property; + material : element_material; + UNIQUE + ur1 : model_ref, SELF\representation.name; + WHERE + wr1: ( model_ref.type_of_2d_analysis = planar ); + wr2: ( ( SIZEOF( QUERY ( item <* SELF\representation.items | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'PARAMETRIC_VOLUME_2D_ELEMENT_COORDINATE_SYSTEM' ) IN TYPEOF( item ) ) ) ) + SIZEOF( QUERY ( item <* SELF\ + representation.items | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'ARBITRARY_VOLUME_2D_ELEMENT_COORDINATE_SYSTEM' ) IN TYPEOF( item ) ) ) ) ) = 1 ); + wr3: ( SIZEOF( QUERY ( item1 <* material.properties | ( SIZEOF( QUERY ( item2 <* item1\property_definition_representation. + used_representation.items | ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'FEA_LINEAR_ELASTICITY' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'FEA_MASS_DENSITY', + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'FEA_AREA_DENSITY', + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'FEA_TANGENTIAL_COEFFICIENT_OF_LINEAR_THERMAL_EXPANSION', + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'FEA_SECANT_COEFFICIENT_OF_LINEAR_THERMAL_EXPANSION', + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'FEA_MOISTURE_ABSORPTION'] * TYPEOF( item2 ) ) = 1 ) ) ) + = 1 ) ) ) >= 1 ); + wr4: ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PARAMETRIC_REPRESENTATION_CONTEXT' IN TYPEOF( SELF\ + representation.context_of_items ) ); + fu1: required_2d_nodes( SELF\element_representation.node_list, element_descriptor.shape, element_descriptor\ + element_descriptor.topology_order ); + END_ENTITY; + + ENTITY plus_expression + SUBTYPE OF ( multiple_arity_numeric_expression ); + END_ENTITY; + + ENTITY plus_minus_tolerance; + range : tolerance_method_definition; + toleranced_dimension : dimensional_characteristic; + UNIQUE + ur1 : toleranced_dimension; + END_ENTITY; + + ENTITY ply_laminate_sequence_definition + SUBTYPE OF ( product_definition ); + WHERE + wr1: ( SIZEOF( QUERY ( pdr <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'PRODUCT_DEFINITION_RELATIONSHIP.' + 'RELATING_PRODUCT_DEFINITION' ) | ( ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'NEXT_ASSEMBLY_USAGE_OCCURRENCE' ) IN TYPEOF( pdr ) ) ) ) + > 0 ); + END_ENTITY; + + ENTITY ply_laminate_table + SUBTYPE OF ( part_laminate_table ); + END_ENTITY; + + ENTITY pocket + SUBTYPE OF ( feature_definition ); + WHERE + wr1 : ( SELF\characterized_object.description IN [ 'closed rectangular', 'open rectangular', 'complex', 'circular cutout', + 'complex cutout' , 'recess'] ); + wr2 : ( SIZEOF( QUERY ( pds <* QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) | ( NOT ( SIZEOF( QUERY ( sa_occ <* USEDIN( pds, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) | ( ( sa_occ.description = + 'pocket depth occurrence' ) AND ( SIZEOF( QUERY ( sdr <* QUERY ( sar <* USEDIN( sa_occ, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT' ) | ( ( sar. + description = 'path feature component usage' ) AND ( sar.name = 'pocket depth' ) AND ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF( sar ) ) ) ) | ( ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PATH_FEATURE_COMPONENT' IN TYPEOF( sdr.relating_shape_aspect ) ) + AND ( sdr.relating_shape_aspect.description = 'linear' ) ) ) ) = 1 ) ) ) ) = 1 ) ) ) ) = 0 ); + wr3 : ( SIZEOF( QUERY ( pdr <* get_property_definition_representations( SELF ) | ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. + used_representation ) ) ) ) = 1 ); + wr4 : ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + + 'DEFINITION' ) | ( SIZEOF( QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) AND ( 1 <= SIZEOF( pdr. + used_representation.items ) ) AND ( SIZEOF( pdr.used_representation.items ) <= 2 ) ) ) ) = 1 ) ) ) = 1 ); + wr5 : ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + + 'DEFINITION' ) | ( SIZEOF( QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) AND ( SIZEOF( QUERY ( srwp_i <* + pdr.used_representation.items | ( ( srwp_i.name = 'orientation' ) OR ( srwp_i.name = 'fillet radius' ) ) ) ) = + SIZEOF( pdr.used_representation.items ) ) ) ) ) = 1 ) ) ) = 1 ); + wr6 : ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + + 'DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. + used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( SIZEOF( [ + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM' , + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( it ) ) = 2 ) AND ( it. + name = 'fillet radius' ) ) ) ) <= 1 ) ) ) ) = 0 ) ) ) ) = 0 ); + wr7 : ( ( NOT ( SELF\characterized_object.description IN [ 'complex', 'non-circular cutout', 'recess'] ) ) OR ( SIZEOF( + QUERY ( pds <* QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) | ( NOT ( SIZEOF( QUERY ( sa_occ <* USEDIN( pds, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) | ( ( sa_occ.description = + 'boundary occurrence' ) AND ( SIZEOF( QUERY ( sdr <* QUERY ( sar <* USEDIN( sa_occ, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT' ) | ( ( sar. + description = 'profile usage' ) AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF( sar ) ) ) ) | ( SIZEOF( [ + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CIRCULAR_CLOSED_PROFILE' , + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.NGON_CLOSED_PROFILE' , + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.RECTANGULAR_CLOSED_PROFILE' , + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CLOSED_PATH_PROFILE' , + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SQUARE_U_PROFILE' , + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PARTIAL_CIRCULAR_PROFILE' , + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ROUNDED_U_PROFILE' , + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.VEE_PROFILE' , + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.TEE_PROFILE' , + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.OPEN_PATH_PROFILE' ] * TYPEOF( sdr.relating_shape_aspect ) ) + = 1 ) ) ) = 1 ) ) ) ) = 1 ) ) ) ) = 0 ) ); + wr8 : ( ( NOT ( SELF\characterized_object.description = 'closed rectangular' ) ) OR ( SIZEOF( QUERY ( pds <* QUERY ( pd <* + USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) | ( NOT ( + SIZEOF( QUERY ( sa_occ <* USEDIN( pds, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) + | ( ( sa_occ.description = 'closed boundary occurrence' ) AND ( SIZEOF( QUERY ( sdr <* QUERY ( sar <* USEDIN( + sa_occ, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT' ) | ( + ( sar.description = 'profile usage' ) AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF( sar ) ) ) ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'RECTANGULAR_CLOSED_PROFILE' IN TYPEOF( sdr.relating_shape_aspect ) ) ) ) = 1 ) ) ) ) = 1 ) ) ) ) = 0 ) ); + wr9 : ( ( NOT ( SELF\characterized_object.description = 'open rectangular' ) ) OR ( SIZEOF( QUERY ( pds <* QUERY ( pd <* + USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) | ( NOT ( + SIZEOF( QUERY ( sa_occ <* USEDIN( pds, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) + | ( ( sa_occ.description = 'open boundary occurrence' ) AND ( SIZEOF( QUERY ( sdr <* QUERY ( sar <* USEDIN( sa_occ, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT' ) | ( ( sar. + description = 'profile usage' ) AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF( sar ) ) ) ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'SQUARE_U_PROFILE' IN TYPEOF( sdr.relating_shape_aspect ) ) ) ) = 1 ) ) ) ) = 1 ) ) ) ) = 0 ) ); + wr10: ( SIZEOF( QUERY ( pds <* QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) | ( NOT ( SIZEOF( QUERY ( sa_occ <* USEDIN( pds, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) | ( ( sa_occ.description = + 'bottom condition occurrence' ) AND ( SIZEOF( QUERY ( sdr <* QUERY ( sar <* USEDIN( sa_occ, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT' ) | ( ( sar. + description = 'pocket bottom usage' ) AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF( sar ) ) ) ) | ( ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.POCKET_BOTTOM' IN TYPEOF( sdr.relating_shape_aspect ) ) AND + ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.POCKET' IN TYPEOF( sdr.related_shape_aspect.of_shape. + definition ) ) ) ) ) = 1 ) ) ) ) = 1 ) ) ) ) = 0 ); + wr11: ( ( NOT ( SELF\characterized_object.description IN [ 'complex', 'non-circular cutout', 'recess'] ) ) OR ( SIZEOF( + QUERY ( pds <* QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) | ( NOT ( SIZEOF( QUERY ( sa_occ <* USEDIN( pds, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) | ( ( sa_occ.description = + 'change in boundary occurrence' ) AND ( SIZEOF( QUERY ( fcr <* QUERY ( sar <* USEDIN( sa_occ, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATING_SHAPE_ASPECT' ) | ( ( sar + .description = 'taper usage' ) AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF( sar ) ) ) ) | ( ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.TAPER' IN TYPEOF( fcr.relating_shape_aspect ) ) AND ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.POCKET' IN TYPEOF( fcr.related_shape_aspect.of_shape. + definition ) ) AND ( fcr.related_shape_aspect.description IN [ 'angle taper', 'directed taper'] ) ) ) ) = 1 ) ) ) ) + <= 1 ) ) ) ) = 0 ) ); + wr12: ( ( NOT ( SELF\characterized_object.description = 'circular cutout' ) ) OR ( SIZEOF( QUERY ( pds <* QUERY ( pd <* + USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) | ( NOT ( + SIZEOF( QUERY ( sa_occ <* USEDIN( pds, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) + | ( ( sa_occ.description = 'enclosed boundary occurrence' ) AND ( SIZEOF( QUERY ( sdr <* QUERY ( sar <* USEDIN( + sa_occ, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT' ) | ( + ( sar.description = 'profile usage' ) AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF( sar ) ) ) ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'CIRCULAR_CLOSED_PROFILE' IN TYPEOF( sdr.relating_shape_aspect ) ) ) ) = 1 ) ) ) ) = 1 ) ) ) ) = 0 ) ); + wr13: ( ( NOT ( SELF\characterized_object.description IN [ 'circular cutout', 'complex cutout'] ) ) OR ( SIZEOF( + QUERY ( pds <* QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) | ( NOT ( SIZEOF( QUERY ( sa_occ <* USEDIN( pds, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) | ( ( sa_occ.description = + 'bottom condition occurrence' ) AND ( SIZEOF( QUERY ( sdr <* QUERY ( sar <* USEDIN( sa_occ, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT' ) | ( ( sar. + description = 'pocket bottom usage' ) AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF( sar ) ) ) ) | ( ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.POCKET_BOTTOM' IN TYPEOF( sdr.relating_shape_aspect ) ) AND + ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.POCKET' IN TYPEOF( sdr.related_shape_aspect.of_shape. + definition ) ) AND ( sdr.relating_shape_aspect.description = 'through' ) ) ) ) = 1 ) ) ) ) = 1 ) ) ) ) = 0 ) ); + wr14: ( ( NOT ( SELF\characterized_object.description = 'recess' ) ) OR ( SIZEOF( QUERY ( pds <* QUERY ( pd <* USEDIN( SELF, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) | ( NOT ( + SIZEOF( QUERY ( sa_occ <* USEDIN( pds, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) + | ( ( sa_occ.description = 'bottom condition occurrence' ) AND ( SIZEOF( QUERY ( sdr <* QUERY ( sar <* USEDIN( + sa_occ, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT' ) | ( + ( sar.description = 'pocket bottom usage' ) AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF( sar ) ) ) ) | ( ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.POCKET_BOTTOM' IN TYPEOF( sdr.relating_shape_aspect ) ) AND + ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.POCKET' IN TYPEOF( sdr.related_shape_aspect.of_shape. + definition ) ) AND ( sdr.relating_shape_aspect.description IN [ 'planar', 'complex'] ) ) ) ) = 1 ) ) ) ) = 1 ) ) ) ) + = 0 ) ); + wr15: ( SIZEOF( QUERY ( pdr <* get_property_definition_representations( SELF ) | ( ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PLANAR_SHAPE_REPRESENTATION' IN TYPEOF( pdr. + used_representation ) ) AND ( pdr.used_representation.name = 'maximum feature limit' ) ) ) ) >= 0 ); + wr16: ( ( NOT ( SELF\characterized_object.description IN [ 'closed rectangular', 'open rectangular', 'complex', 'recess'] ) ) + OR ( SIZEOF( QUERY ( pds <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + + 'DEFINITION' ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF( + pds ) ) AND ( SIZEOF( QUERY ( csa <* USEDIN( pds, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'SHAPE_ASPECT.OF_SHAPE' ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.COMPOSITE_SHAPE_ASPECT' IN + TYPEOF( csa ) ) AND ( csa.name = 'uncut volume' ) AND ( SIZEOF( QUERY ( sar <* csa.component_relationships | ( ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF( sar ) ) AND ( + SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.BOSS', + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROTRUSION' ] * TYPEOF( sar.related_shape_aspect ) ) = 1 ) ) ) ) + = 1 ) ) ) ) <= 1 ) ) ) ) = 1 ) ); + wr17: ( ( NOT ( SELF\characterized_object.description IN [ 'closed rectangular', 'open rectangular'] ) ) OR ( SIZEOF( + QUERY ( pds <* QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) | ( NOT ( SIZEOF( QUERY ( sa_occ <* USEDIN( pds, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) | ( ( sa_occ.description = + 'change in boundary occurrence' ) AND ( SIZEOF( QUERY ( fcr <* QUERY ( sar <* USEDIN( sa_occ, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATING_SHAPE_ASPECT' ) | ( ( sar + .description = 'taper usage' ) AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF( sar ) ) ) ) | ( ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.TAPER' IN TYPEOF( fcr.relating_shape_aspect ) ) AND ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.POCKET' IN TYPEOF( fcr.related_shape_aspect.of_shape. + definition ) ) AND ( fcr.related_shape_aspect.description IN [ 'angle taper', 'directed taper'] ) ) ) ) >= 1 ) ) ) ) + <= 1 ) ) ) ) = 0 ) ); + END_ENTITY; + + ENTITY pocket_bottom + SUBTYPE OF ( shape_aspect ); + WHERE + wr1 : ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FEATURE_COMPONENT_DEFINITION' IN TYPEOF( SELF.of_shape. + definition ) ); + wr2 : ( SELF.description IN [ 'planar', 'complex', 'through'] ); + wr3 : ( ( NOT ( SELF.description = 'planar' ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( + QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.' + + 'DEFINITION' ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.DIRECTION_SHAPE_REPRESENTATION' IN + TYPEOF( pdr.used_representation ) ) AND ( pdr.used_representation.name = 'floor normal' ) ) ) ) = 1 ) ) ) ) = 0 ) ); + wr4 : ( ( NOT ( SELF.description = 'planar' ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( + QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.' + + 'DEFINITION' ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LOCATION_SHAPE_REPRESENTATION' IN + TYPEOF( pdr.used_representation ) ) AND ( pdr.used_representation.name = 'floor location' ) ) ) ) = 1 ) ) ) ) = 0 ) ); + wr5 : ( ( NOT ( SELF.description = 'complex' ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( + QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.' + + 'DEFINITION' ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FACE_SHAPE_REPRESENTATION' IN + TYPEOF( pdr.used_representation ) ) AND ( pdr.used_representation.name = 'floor face' ) ) ) ) = 1 ) ) ) ) = 0 ) ); + wr6 : ( ( NOT ( SELF.description IN [ 'planar', 'complex'] ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( + QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.' + + 'DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' + IN TYPEOF( pdr.used_representation ) ) ) ) = 1 ) ) ) ) = 0 ) ); + wr7 : ( ( NOT ( SELF.description IN [ 'planar', 'complex'] ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( + QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( impl_rep. + used_representation.items ) <= 1 ) ) ) ) = 0 ) ) ) ) = 0 ) ); + wr8 : ( ( NOT ( SELF.description = 'through' ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( + QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.' + + 'DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' + IN TYPEOF( pdr.used_representation ) ) ) ) = 0 ) ) ) ) = 0 ) ); + wr9 : ( ( NOT ( SELF.description IN [ 'planar', 'complex'] ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( + QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( + QUERY ( it <* impl_rep.used_representation.items | ( ( SIZEOF( [ + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM' , + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( it ) ) = 2 ) AND ( it. + name = 'radius' ) ) ) ) <= 1 ) ) ) ) = 0 ) ) ) ) = 0 ) ); + wr10: ( SIZEOF( QUERY ( fcr <* QUERY ( sar <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'SHAPE_ASPECT_RELATIONSHIP.RELATING_SHAPE_ASPECT' ) | ( ( sar.description = 'pocket bottom usage' ) AND ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF( sar ) ) ) ) | ( + ( fcr.related_shape_aspect.description = 'bottom condition occurrence' ) AND ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.POCKET' IN TYPEOF( fcr.related_shape_aspect.of_shape. + definition ) ) AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.POCKET_BOTTOM' IN TYPEOF( fcr. + relating_shape_aspect ) ) ) ) ) >= 1 ); + wr11: ( ( NOT ( SELF.description IN [ 'planar', 'complex'] ) ) OR ( SIZEOF( QUERY ( fcr <* QUERY ( sar <* USEDIN( SELF, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATING_SHAPE_ASPECT' ) | ( ( sar + .description = 'pocket bottom usage' ) AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF( sar ) ) ) ) | ( ( fcr.related_shape_aspect.description = + 'bottom condition occurrence' ) AND ( fcr.related_shape_aspect.name IN [ 'pocket depth start', 'pocket depth end'] ) ) ) ) + = 0 ) ); + END_ENTITY; + + ENTITY pogc_with_dimension + SUBTYPE OF ( parallel_offset_geometric_constraint ); + offset_value : positive_length_measure; + offset_direction_constrained : BOOLEAN; + WHERE + wr1: ( ( SIZEOF( SELF\explicit_constraint.reference_elements ) = 1 ) OR ( SIZEOF( SELF\explicit_constraint. + constrained_elements ) = 2 ) ); + wr2: ( ( NOT ( offset_direction_constrained = TRUE ) ) AND ( ( offset_type = curve_2d_offset ) OR ( offset_type = + surface_offset ) ) ); + 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_constraint + SUBTYPE OF ( constraint_element ); + required_point : analysis_item_within_representation; + coordinate_system : fea_axis2_placement_3d; + freedoms_and_coefficients : SET [1 : ?] OF freedom_and_coefficient; + description : text; + WHERE + wr1: ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.POINT' IN TYPEOF( required_point.item ) ) OR ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.VERTEX_POINT' IN TYPEOF( required_point.item ) ) ); + END_ENTITY; + + ENTITY point_distance_geometric_constraint + SUBTYPE OF ( explicit_geometric_constraint ); + SELF\explicit_constraint.constrained_elements : SET [1 : ?] OF point; + SELF\explicit_constraint.reference_elements : SET [0 : 4] OF point_curve_or_surface_constraint_element; + WHERE + wr1: ( ( SIZEOF( SELF\explicit_constraint.reference_elements ) > 0 ) OR ( ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PDGC_WITH_DIMENSION' IN TYPEOF( SELF ) ) AND ( SIZEOF( SELF\ + explicit_constraint.constrained_elements ) = 2 ) ) ); + END_ENTITY; + + ENTITY point_element_matrix + SUPERTYPE OF ( + ONEOF ( + stationary_mass, + grounded_spring, + grounded_damper ) ); + END_ENTITY; + + ENTITY point_element_representation + SUBTYPE OF ( element_representation ); + model_ref : fea_model; + matrix_set : SET [1 : ?] OF point_element_matrix; + UNIQUE + ur1 : model_ref, SELF\representation.name; + WHERE + wr1: ( SIZEOF( QUERY ( item <* SELF\representation.items | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'FEA_AXIS2_PLACEMENT_3D' ) IN TYPEOF( item ) ) ) ) = 1 ); + fu1: required_0d_nodes( SELF\element_representation.node_list ); + END_ENTITY; + + ENTITY point_freedom_action_definition + SUBTYPE OF ( point_freedom_and_value_definition ); + action : action_type; + END_ENTITY; + + ENTITY point_freedom_and_value_definition + SUPERTYPE OF ( + ONEOF ( + point_freedom_values, + point_freedom_action_definition ) ) + SUBTYPE OF ( state_definition ); + required_point : analysis_item_within_representation; + coordinate_system : fea_axis2_placement_3d; + degrees_of_freedom : freedoms_list; + values : LIST [1 : ?] OF measure_or_unspecified_value; + WHERE + wr1: ( SIZEOF( degrees_of_freedom.freedoms ) = SIZEOF( values ) ); + wr2: ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.POINT' IN TYPEOF( required_point.item ) ) OR ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.VERTEX_POINT' IN TYPEOF( required_point.item ) ) ); + END_ENTITY; + + ENTITY point_freedom_values + SUBTYPE OF ( point_freedom_and_value_definition ); + END_ENTITY; + + ENTITY point_on_curve + SUBTYPE OF ( point ); + basis_curve : curve; + point_parameter : parameter_value; + END_ENTITY; + + ENTITY point_on_edge_curve + SUBTYPE OF ( point_on_curve ); + basis_edge_curve : edge_curve; + DERIVE + SELF\point_on_curve.basis_curve : curve := SELF.basis_edge_curve.edge_geometry; + WHERE + wr1: ( SIZEOF( using_representations( SELF.basis_edge_curve ) * relating_shape_representations_of_extreme_values( SELF ) ) + > 0 ); + END_ENTITY; + + ENTITY point_on_face_surface + SUBTYPE OF ( point_on_surface ); + basis_face_surface : face_surface; + DERIVE + SELF\point_on_surface.basis_surface : surface := SELF.basis_face_surface.face_geometry; + WHERE + wr1: ( SIZEOF( using_representations( SELF.basis_face_surface ) * relating_shape_representations_of_extreme_values( SELF ) ) + > 0 ); + END_ENTITY; + + ENTITY point_on_planar_curve_pair + SUBTYPE OF ( high_order_kinematic_pair ); + pair_curve : curve; + orientation : BOOLEAN; + WHERE + wr1: ( SIZEOF( QUERY ( r <* SELF\kinematic_pair.associated_link_representations_1 | ( NOT ( pair_curve IN r.items ) ) ) ) = + 0 ); + wr2: ( SIZEOF( QUERY ( lr <* SELF\kinematic_pair.associated_link_representations_1 | ( NOT ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.RIGID_LINK_REPRESENTATION' IN TYPEOF( lr ) ) ) ) ) = 0 ); + END_ENTITY; + + ENTITY point_on_planar_curve_pair_value + SUBTYPE OF ( pair_value ); + SELF\pair_value.applies_to_pair : point_on_planar_curve_pair; + actual_point_on_curve : point_on_curve; + input_orientation : spatial_rotation; + DERIVE + actual_orientation : ypr_rotation := convert_spatial_to_ypr_rotation( SELF\pair_value.applies_to_pair, input_orientation ); + WHERE + wr1: ( SELF\pair_value.applies_to_pair\point_on_planar_curve_pair.pair_curve :=: actual_point_on_curve.basis_curve ); + END_ENTITY; + + ENTITY point_on_planar_curve_pair_with_range + SUBTYPE OF ( point_on_planar_curve_pair ); + range_on_pair_curve : trimmed_curve; + lower_limit_yaw : OPTIONAL plane_angle_measure; + upper_limit_yaw : OPTIONAL plane_angle_measure; + lower_limit_pitch : OPTIONAL plane_angle_measure; + upper_limit_pitch : OPTIONAL plane_angle_measure; + lower_limit_roll : OPTIONAL plane_angle_measure; + upper_limit_roll : OPTIONAL plane_angle_measure; + WHERE + wr1: ( ( ( NOT EXISTS( lower_limit_pitch ) ) OR ( NOT EXISTS( upper_limit_pitch ) ) ) XOR ( lower_limit_pitch < + upper_limit_pitch ) ); + wr2: ( ( ( NOT EXISTS( lower_limit_yaw ) ) OR ( NOT EXISTS( upper_limit_yaw ) ) ) XOR ( lower_limit_yaw < upper_limit_yaw ) ); + wr3: ( ( ( NOT EXISTS( lower_limit_roll ) ) OR ( NOT EXISTS( upper_limit_roll ) ) ) XOR ( lower_limit_roll < + upper_limit_roll ) ); + wr4: ( SIZEOF( QUERY ( r <* SELF\kinematic_pair.associated_link_representations_1 | ( NOT ( range_on_pair_curve IN r.items ) ) ) ) + = 0 ); + 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_on_surface_pair + SUBTYPE OF ( high_order_kinematic_pair ); + pair_surface : surface; + WHERE + wr1: ( SIZEOF( QUERY ( r <* SELF\kinematic_pair.associated_link_representations_1 | ( NOT ( pair_surface IN r.items ) ) ) ) + = 0 ); + wr2: ( SIZEOF( QUERY ( lr <* SELF\kinematic_pair.associated_link_representations_1 | ( NOT ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.RIGID_LINK_REPRESENTATION' IN TYPEOF( lr ) ) ) ) ) = 0 ); + END_ENTITY; + + ENTITY point_on_surface_pair_value + SUBTYPE OF ( pair_value ); + SELF\pair_value.applies_to_pair : point_on_surface_pair; + actual_point_on_surface : point_on_surface; + input_orientation : spatial_rotation; + DERIVE + actual_orientation : ypr_rotation := convert_spatial_to_ypr_rotation( SELF\pair_value.applies_to_pair, input_orientation ); + WHERE + wr1: ( SELF\pair_value.applies_to_pair\point_on_surface_pair.pair_surface :=: actual_point_on_surface.basis_surface ); + END_ENTITY; + + ENTITY point_on_surface_pair_with_range + SUBTYPE OF ( point_on_surface_pair ); + range_on_pair_surface : rectangular_trimmed_surface; + lower_limit_yaw : OPTIONAL plane_angle_measure; + upper_limit_yaw : OPTIONAL plane_angle_measure; + lower_limit_pitch : OPTIONAL plane_angle_measure; + upper_limit_pitch : OPTIONAL plane_angle_measure; + lower_limit_roll : OPTIONAL plane_angle_measure; + upper_limit_roll : OPTIONAL plane_angle_measure; + WHERE + wr1: ( ( ( NOT EXISTS( lower_limit_pitch ) ) OR ( NOT EXISTS( upper_limit_pitch ) ) ) XOR ( lower_limit_pitch < + upper_limit_pitch ) ); + wr2: ( ( ( NOT EXISTS( lower_limit_yaw ) ) OR ( NOT EXISTS( upper_limit_yaw ) ) ) XOR ( lower_limit_yaw < upper_limit_yaw ) ); + wr3: ( ( ( NOT EXISTS( lower_limit_roll ) ) OR ( NOT EXISTS( upper_limit_roll ) ) ) XOR ( lower_limit_roll < + upper_limit_roll ) ); + wr4: ( SIZEOF( QUERY ( r <* SELF\kinematic_pair.associated_link_representations_1 | ( NOT ( range_on_pair_surface IN r. + items ) ) ) ) = 0 ); + 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_placement_shape_representation + SUBTYPE OF ( shape_representation ); + SELF\representation.items : SET [1 : ?] OF point_placement_shape_representation_item; + WHERE + wr1: ( SIZEOF( QUERY ( i <* SELF.items | ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'COMPOUND_REPRESENTATION_ITEM' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MAPPED_ITEM'] * TYPEOF( i ) ) + = 1 ) ) ) > 0 ); + 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_representation + SUBTYPE OF ( shape_representation ); + WHERE + wr1: ( SIZEOF( QUERY ( it <* SELF\representation.items | ( NOT ( SIZEOF( [ + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.NODE_SET' , + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MAPPED_ITEM' , + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'FEA_AXIS2_PLACEMENT_3D'] * TYPEOF( it ) ) = 1 ) ) ) ) = + 0 ); + wr2: ( SIZEOF( QUERY ( it <* SELF\representation.items | ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'NODE_SET' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MAPPED_ITEM'] * TYPEOF( it ) ) = 1 ) ) ) >= 1 ); + END_ENTITY; + + ENTITY point_style + SUBTYPE OF ( founded_item ); + name : label; + marker : marker_select; + marker_size : size_select; + marker_colour : colour; + END_ENTITY; + + ENTITY point_to_point_path + SUBTYPE OF ( path_node ); + DERIVE + SELF\kinematic_path_segment.transition : transition_code := discontinuous; + END_ENTITY; + + ENTITY polar_complex_number_region + SUBTYPE OF ( maths_space, generic_literal ); + centre : complex_number_literal; + distance_constraint : real_interval; + direction_constraint : finite_real_interval; + WHERE + wr1: ( min_exists( distance_constraint ) AND ( real_min( distance_constraint ) >= 0 ) ); + wr2: ( ( ( -PI ) <= direction_constraint.min ) AND ( direction_constraint.min < PI ) ); + wr3: ( ( direction_constraint.max - direction_constraint.min ) <= ( 2 * PI ) ); + wr4: ( ( ( direction_constraint.max - direction_constraint.min ) < ( 2 * PI ) ) OR ( direction_constraint.min_closure = + open ) ); + wr5: ( ( ( direction_constraint.max - direction_constraint.min ) < ( 2 * PI ) ) OR ( direction_constraint.max_closure = + open ) OR ( direction_constraint.min = ( -PI ) ) ); + wr6: ( ( real_min( distance_constraint ) > 0 ) OR max_exists( distance_constraint ) OR ( ( direction_constraint.max - + direction_constraint.min ) < ( 2 * PI ) ) OR ( direction_constraint.max_closure = open ) ); + END_ENTITY; + + ENTITY poly_loop + SUBTYPE OF ( loop, geometric_representation_item ); + polygon : LIST [3 : ?] OF UNIQUE cartesian_point; + END_ENTITY; + + ENTITY polygonal_area + SUBTYPE OF ( primitive_2d ); + bounds : 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 ); + 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 ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CURVE_BOUNDED_SURFACE' IN TYPEOF( sketch_basis ) ) AND + ( NOT ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PLANE' IN TYPEOF( sketch_basis\curve_bounded_surface. + basis_surface ) ) ) ) ); + wr2: ( NOT ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FACE_SURFACE' IN TYPEOF( sketch_basis ) ) AND ( NOT ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PLANE' IN TYPEOF( sketch_basis\face_surface.face_geometry ) ) ) ) ); + wr3: ( SIZEOF( QUERY ( q <* auxiliary_elements | ( SIZEOF( TYPEOF( q ) * [ + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.POINT' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'CURVE' ] ) = 0 ) ) ) = 0 ); + wr4: ( SIZEOF( QUERY ( q <* auxiliary_elements | ( q\geometric_representation_item.dim <> 3 ) ) ) = 0 ); + END_ENTITY; + + ENTITY power_expression + SUBTYPE OF ( binary_numeric_expression ); + END_ENTITY; + + ENTITY power_measure_with_unit + SUBTYPE OF ( measure_with_unit ); + WHERE + wr1: ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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_character_glyph + SUBTYPE OF ( pre_defined_item ); + 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 prescribed_path + SUBTYPE OF ( link_motion_representation_along_path ); + controlling_joints : OPTIONAL SET [1 : 6] OF kinematic_joint; + END_ENTITY; + + ENTITY presentation_area + SUBTYPE OF ( presentation_representation ); + WHERE + wr1: ( ( SIZEOF( QUERY ( ais <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'AREA_IN_SET.AREA' ) + | ( SIZEOF( USEDIN( ais, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PRESENTATION_SIZE.UNIT' ) ) = 1 ) ) ) + > 0 ) OR ( SIZEOF( USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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: ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRESENTATION_AREA' IN TYPEOF( SELF ) ) OR ( SIZEOF( + QUERY ( prr <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'REPRESENTATION_RELATIONSHIP.' + + 'REP_2' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRESENTATION_REPRESENTATION' IN TYPEOF( prr\ + representation_relationship.rep_1 ) ) ) ) > 0 ) OR ( SIZEOF( QUERY ( rm <* USEDIN( SELF, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'REPRESENTATION_MAP.' + 'MAPPED_REPRESENTATION' ) | ( + SIZEOF( QUERY ( mi <* USEDIN( rm, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'MAPPED_ITEM.' + + 'MAPPING_SOURCE' ) | ( SIZEOF( QUERY ( rep <* using_representations( mi ) | ( ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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: ( ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRESENTATION_REPRESENTATION' IN TYPEOF( SELF.unit ) ) AND + item_in_context( SELF.size, SELF.unit\representation.context_of_items ) ) OR ( ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'SURFACE_STYLE_USAGE' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'EXTERNALLY_DEFINED_STYLE'] * + TYPEOF( style1 ) ) = 1 ) ) ) ) ) = 0 ) ) ) ) = 0 ); + wr2: ( SIZEOF( QUERY ( style1 <* SELF.styles | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SURFACE_STYLE_USAGE' + IN TYPEOF( style1 ) ) ) ) <= 2 ); + wr3: ( SIZEOF( QUERY ( style1 <* SELF.styles | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SURFACE_STYLE_USAGE' + IN TYPEOF( style1 ) ) AND ( SIZEOF( QUERY ( style2 <* ( SELF.styles - style1 ) | ( ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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: ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 previous_change_element_assignment + SUBTYPE OF ( group_assignment ); + SELF\group_assignment.assigned_group : previous_element_assignment_select; + items : SET [1 : ?] OF change_management_object; + END_ENTITY; + + ENTITY primitive_2d + SUPERTYPE OF ( + ONEOF ( + circular_area, + elliptic_area, + rectangular_area, + polygonal_area, + half_space_2d ) ) + SUBTYPE OF ( geometric_representation_item ); + WHERE + wr1: ( SELF\geometric_representation_item.dim = 2 ); + END_ENTITY; + + ENTITY primitive_2d_with_inner_boundary + SUBTYPE OF ( complex_area, compound_representation_item ); +(* Thurman: next line added for BZ#5056 *) + SELF\compound_representation_item.item_element : compound_inner_area_boundary; + DERIVE +(* Thurman: next line replaced by the line thereafter for BZ#5056 + inner_boundary : compound_inner_area_boundary := SELF\compound_representation_item.item_element; *) + inner_boundary : compound_inner_area_boundary := item_element; + WHERE + wr1: ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CIRCULAR_AREA', + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ELLIPTIC_AREA' , + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.RECTANGULAR_AREA' , + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.POLYGONAL_AREA' , + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.AREA_WITH_OUTER_BOUNDARY' , + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PATH_AREA_WITH_PARAMETERS' ] * TYPEOF( SELF ) ) > 0 ); + wr2: ( SIZEOF( QUERY ( inner <* inner_boundary | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'PRIMITIVE_2D_WITH_INNER_BOUNDARY' IN TYPEOF( inner ) ) ) ) = 0 ); + wr3: open_path_based_inner_boundary( inner_boundary ); + END_ENTITY; + + ENTITY prismatic_pair + SUBTYPE OF ( low_order_kinematic_pair ); + DERIVE + SELF\low_order_kinematic_pair.t_x : BOOLEAN := TRUE; + SELF\low_order_kinematic_pair.t_y : BOOLEAN := FALSE; + SELF\low_order_kinematic_pair.t_z : BOOLEAN := FALSE; + SELF\low_order_kinematic_pair.r_x : BOOLEAN := FALSE; + SELF\low_order_kinematic_pair.r_y : BOOLEAN := FALSE; + SELF\low_order_kinematic_pair.r_z : BOOLEAN := FALSE; + END_ENTITY; + + ENTITY prismatic_pair_value + SUBTYPE OF ( pair_value ); + SELF\pair_value.applies_to_pair : prismatic_pair; + actual_translation : length_measure; + END_ENTITY; + + ENTITY prismatic_pair_with_range + SUBTYPE OF ( prismatic_pair ); + lower_limit_actual_translation : OPTIONAL length_measure; + upper_limit_actual_translation : OPTIONAL length_measure; + WHERE + wr1: ( ( ( NOT EXISTS( lower_limit_actual_translation ) ) OR ( NOT EXISTS( upper_limit_actual_translation ) ) ) XOR ( + lower_limit_actual_translation < upper_limit_actual_translation ) ); + 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 ); + SELF\procedural_representation_sequence.elements : LIST [1 : ?] OF shape_representation_item; + END_ENTITY; + + ENTITY process_operation + SUBTYPE OF ( action_method ); + WHERE + wr1: ( SIZEOF( QUERY ( amr <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ACTION_METHOD_RELATIONSHIP.' + + 'RELATING_METHOD' ) | ( ( NOT ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROCESS_OPERATION' IN + TYPEOF( amr\action_method_relationship.related_method ) ) ) OR ( SELF :=: amr\action_method_relationship. + related_method ) ) ) ) = 0 ); + wr2: ( SIZEOF( QUERY ( amr <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ACTION_METHOD_RELATIONSHIP.' + + 'RELATED_METHOD' ) | ( ( NOT ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROCESS_OPERATION' IN TYPEOF( + amr\action_method_relationship.relating_method ) ) ) OR ( SELF :=: amr\action_method_relationship.relating_method ) ) ) ) + = 0 ); + END_ENTITY; + + ENTITY process_plan + SUBTYPE OF ( action ); + WHERE + wr1: ( SIZEOF( QUERY ( ar <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'ACTION_RELATIONSHIP.' + + 'RELATED_ACTION' ) | ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROCESS_PLAN', + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRODUCT_PROCESS_PLAN' ] * TYPEOF( ar.relating_action ) ) <> 1 ) ) ) + = 0 ); + wr2: ( SIZEOF( QUERY ( ar <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'ACTION_RELATIONSHIP.' + + 'RELATING_ACTION' ) | ( ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROCESS_PLAN', + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRODUCT_PROCESS_PLAN' ] * TYPEOF( ar.related_action ) ) = 1 ) + OR ( ( ar.name = 'process operation occurrence' ) AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'PROCESS_OPERATION' IN TYPEOF( ar.related_action.chosen_method ) ) ) ) ) ) = SIZEOF( USEDIN( SELF, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'ACTION_RELATIONSHIP.RELATING_ACTION' ) ) ); + END_ENTITY; + + ENTITY process_product_association; + name : label; + description : text; + defined_product : characterized_product_definition; + process : product_definition_process; + END_ENTITY; + + ENTITY process_property_association; + name : label; + description : text; + process : property_process; + property_or_shape : property_or_shape_select; + END_ENTITY; + + ENTITY product; + id : identifier; + name : label; + description : OPTIONAL text; + frame_of_reference : SET [1 : ?] OF product_context; + END_ENTITY; + + ENTITY product_as_planned + SUBTYPE OF ( product_definition_formation ); + END_ENTITY; + + ENTITY product_category; + name : label; + description : OPTIONAL text; + DERIVE + id : identifier := get_id_value( SELF ); + WHERE + wr1: ( SIZEOF( USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'ID_ATTRIBUTE.IDENTIFIED_ITEM' ) ) <= + 1 ); + END_ENTITY; + + ENTITY product_category_relationship; + name : label; + description : OPTIONAL text; + category : product_category; + sub_category : product_category; + WHERE + wr1: acyclic_product_category_relationship( SELF, [SELF.sub_category] ); + 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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'GROUP_ASSIGNMENT.' + + 'ASSIGNED_GROUP' ) | ( ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'APPLIED_GROUP_ASSIGNMENT' ) + IN TYPEOF( aga ) ) AND ( ( aga\group_assignment.role\object_role.name <> 'specification category member' ) OR ( + SIZEOF( QUERY ( i <* aga\applied_group_assignment.items | ( ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'PRODUCT_CONCEPT_FEATURE' ) IN TYPEOF( i ) ) AND ( NOT ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'CONDITIONAL_CONCEPT_FEATURE' ) IN TYPEOF( i ) ) ) ) ) ) <> SIZEOF( aga\applied_group_assignment.items ) ) ) ) ) ) + = 0 ); + END_ENTITY; + + ENTITY product_concept_feature_category_usage + SUBTYPE OF ( group_assignment ); + SELF\group_assignment.assigned_group : product_concept_feature_category; + items : SET [1 : ?] OF category_usage_item; + 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_data_and_data_quality_relationship; + description : text; + product_data : product_definition; + data_quality : data_quality_definition; + END_ENTITY; + + ENTITY product_definition + SUPERTYPE OF ( + ONEOF ( + composite_assembly_sequence_definition, + laminate_table, + ply_laminate_sequence_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ); + SELF\group_assignment.assigned_group : product_definition_element_relationship; + items : SET [1 : 1] OF product_definition_or_product_definition_relationship; + END_ENTITY; + + ENTITY product_definition_kinematics + SUBTYPE OF ( property_definition ); + SELF\property_definition.definition : product_definition; + INVERSE + representation_relation : kinematic_property_definition_representation FOR definition; + UNIQUE + ur1 : definition; + 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_process + SUBTYPE OF ( action ); + identification : identifier; + INVERSE + product_definitions : SET [1 : ?] OF process_product_association FOR process; + END_ENTITY; + + ENTITY product_definition_reference + SUBTYPE OF ( generic_product_definition_reference ); + product_id : identifier; + product_definition_formation_id : identifier; + product_definition_id : identifier; + id_owning_organization_name : OPTIONAL label; + END_ENTITY; + + ENTITY product_definition_reference_with_local_representation + SUBTYPE OF ( generic_product_definition_reference, product_definition ); + END_ENTITY; + + ENTITY product_definition_relationship; + id : identifier; + name : label; + description : OPTIONAL text; + relating_product_definition : product_definition_or_reference; + related_product_definition : product_definition_or_reference; + END_ENTITY; + + ENTITY product_definition_relationship_kinematics + SUBTYPE OF ( property_definition ); + SELF\property_definition.definition : product_definition_relationship; + UNIQUE + ur1 : definition; + END_ENTITY; + + ENTITY product_definition_resource + SUBTYPE OF ( action_resource, product_definition ); + WHERE + wr1: ( SIZEOF( USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'REQUIREMENT_FOR_ACTION_RESOURCE.' + + 'RESOURCES' ) ) > 0 ); + wr2: ( SELF.frame_of_reference.name IN [ 'part definition', 'part occurrence', 'physical occurrence'] ); + END_ENTITY; + + ENTITY product_definition_shape + SUBTYPE OF ( property_definition ); + UNIQUE + ur1 : SELF\property_definition.definition; + WHERE + wr1: ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CHARACTERIZED_PRODUCT_DEFINITION', + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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], + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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_design_to_individual + SUBTYPE OF ( product_relationship ); + DERIVE + individual_product : product := SELF\product_relationship.related_product; + product_design : product := SELF\product_relationship.relating_product; + END_ENTITY; + + ENTITY product_design_version_to_individual + SUBTYPE OF ( product_definition_formation_relationship ); + DERIVE + individual_product : product_definition_formation := SELF\product_definition_formation_relationship. + related_product_definition_formation; + product_design_version : product_definition_formation := SELF\product_definition_formation_relationship. + relating_product_definition_formation; + 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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CONFIGURATION_DESIGN.' + + 'CONFIGURATION' ) | ( ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PRODUCT_DEFINITION_FORMATION' ) + IN TYPEOF( cd.design ) ) AND ( SIZEOF( QUERY ( prpc <* USEDIN( cd.design\product_definition_formation.of_product, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRODUCT_RELATED_PRODUCT_CATEGORY.PRODUCTS' ) | ( prpc.name IN + [ 'part', 'raw material', 'tool'] ) ) ) > 0 ) ) ) ) <= 1 ); + wr2: ( ( NOT ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'CONFIGURABLE_ITEM' ) IN TYPEOF( SELF ) ) ) XOR ( + ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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_of_mesh; + operands : LIST [2 : 2] OF mesh; + product : mesh; + WHERE + wr1: ( ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF' + '.STRUCTURED_MESH' ) IN TYPEOF( operands[1] ) ) AND ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF' + '.' + + 'STRUCTURED_MESH' ) IN TYPEOF( operands[2] ) ) AND ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF' + '.STRUCTURED_MESH' ) IN + TYPEOF( product ) ) ); + wr2: ( operands[1].index_count = 1 ); + wr3: ( ( operands[1].index_count + operands[2].index_count ) = product.index_count ); + END_ENTITY; + + ENTITY product_planned_to_realized + SUBTYPE OF ( product_definition_formation_relationship ); + DERIVE + planned_product : product_definition_formation := SELF\product_definition_formation_relationship. + relating_product_definition_formation; + realized_product : product_definition_formation := SELF\product_definition_formation_relationship. + related_product_definition_formation; + END_ENTITY; + + ENTITY product_process_plan + SUBTYPE OF ( product_definition_process ); + WHERE + wr1: ( SIZEOF( QUERY ( ar <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'ACTION_RELATIONSHIP.' + + 'RELATED_ACTION' ) | ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROCESS_PLAN', + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRODUCT_PROCESS_PLAN' ] * TYPEOF( ar.relating_action ) ) <> 1 ) ) ) + = 0 ); + wr2: ( SIZEOF( QUERY ( ar <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'ACTION_RELATIONSHIP.' + + 'RELATING_ACTION' ) | ( ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROCESS_PLAN', + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRODUCT_PROCESS_PLAN' ] * TYPEOF( ar.related_action ) ) = 1 ) + OR ( ( ar.name = 'process operation occurrence' ) AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'PROCESS_OPERATION' IN TYPEOF( ar.related_action.chosen_method ) ) ) ) ) ) = SIZEOF( USEDIN( SELF, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'ACTION_RELATIONSHIP.RELATING_ACTION' ) ) ); + wr3: ( SIZEOF( QUERY ( ppa <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'PROCESS_PRODUCT_ASSOCIATION.PROCESS' ) | ( ( ppa.name <> 'produced output' ) OR ( NOT ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRODUCT_DEFINITION' IN TYPEOF( ppa.defined_product ) ) ) ) ) ) + = 0 ); + END_ENTITY; + + ENTITY product_related_product_category + SUBTYPE OF ( product_category ); + products : SET [1 : ?] OF product; + END_ENTITY; + + ENTITY product_relationship; + id : identifier; + name : label; + description : OPTIONAL text; + relating_product : product; + related_product : product; + END_ENTITY; + + ENTITY product_specification + SUBTYPE OF ( product_identification, configurable_item ); + END_ENTITY; + + ENTITY product_view_relationship; + id : identifier; + name : label; + description : OPTIONAL text; + discretised_model : discretised_product_model_select; + idealised_product : idealised_product_select; + END_ENTITY; + + ENTITY profile_floor + SUBTYPE OF ( shape_aspect ); + WHERE + wr1 : ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FEATURE_COMPONENT_DEFINITION' IN TYPEOF( SELF.of_shape. + definition ) ); + wr2 : ( SELF.description IN [ 'planar', 'complex', 'through'] ); + wr3 : ( ( NOT ( SELF.description IN [ 'planar', 'complex'] ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( + QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.' + + 'DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' + IN TYPEOF( pdr.used_representation ) ) ) ) = 1 ) ) ) ) = 0 ) ); + wr4 : ( ( NOT ( SELF.description IN [ 'planar', 'complex'] ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( + QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( ( NOT ( SIZEOF( impl_rep. + used_representation.items ) >= 1 ) ) AND ( SIZEOF( impl_rep.used_representation.items ) <= 2 ) ) ) ) = 0 ) ) ) ) = + 0 ) ); + wr5 : ( ( NOT ( SELF.description = 'through' ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( + QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.' + + 'DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' + IN TYPEOF( pdr.used_representation ) ) ) ) = 0 ) ) ) ) = 0 ) ); + wr6 : ( ( NOT ( SELF.description IN [ 'planar', 'complex'] ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( + QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( + QUERY ( it <* impl_rep.used_representation.items | ( ( SIZEOF( [ + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM' , + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( it ) ) = 2 ) AND ( it. + name = 'radius' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ) ); + wr7 : ( SIZEOF( QUERY ( fcr <* QUERY ( sar <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'SHAPE_ASPECT_RELATIONSHIP.RELATING_SHAPE_ASPECT' ) | ( ( sar.description = 'profile floor usage' ) AND ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF( sar ) ) ) ) | ( + ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.OUTSIDE_PROFILE' IN TYPEOF( fcr.related_shape_aspect. + of_shape.definition ) ) AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROFILE_FLOOR' IN TYPEOF( fcr. + relating_shape_aspect ) ) ) ) ) >= 1 ); + wr8 : ( ( NOT ( SELF.description IN [ 'planar', 'complex'] ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( + QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( + QUERY ( it <* impl_rep.used_representation.items | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF( it ) ) AND ( it.name = 'shape profile floor orientation' ) AND ( + it.description IN [ 'shape profile start', 'shape profile end'] ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ) ); + wr9 : ( ( NOT ( SELF.description = 'complex' ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( + QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.' + + 'DEFINITION' ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FACE_SHAPE_REPRESENTATION' IN + TYPEOF( pdr.used_representation ) ) AND ( pdr.used_representation.name = 'floor' ) ) ) ) = 1 ) ) ) ) = 1 ) ); + wr10: ( ( NOT ( SELF.description = 'planar' ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( + QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.' + + 'DEFINITION' ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PLANAR_SHAPE_REPRESENTATION' IN + TYPEOF( pdr.used_representation ) ) AND ( pdr.used_representation.name = 'floor' ) ) ) ) = 1 ) ) ) ) = 1 ) ); + END_ENTITY; + + ENTITY projected_zone_definition + SUBTYPE OF ( tolerance_zone_definition ); + projection_end : shape_aspect; + projected_length : 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 ) ); + wr2: ( derive_dimensional_exponents( projected_length\measure_with_unit.unit_component ) = dimensional_exponents( 1, 0, 0, + 0, 0, 0, 0 ) ); + END_ENTITY; + + ENTITY projected_zone_definition_with_offset + SUBTYPE OF ( projected_zone_definition ); + offset : length_measure_with_unit; + 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 | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'PROJECTION_CURVE' IN TYPEOF( p_1 ) ) ) ) <= 2 ); + wr2: ( SIZEOF( SELF\draughting_callout.contents ) >= 2 ); + END_ENTITY; + + ENTITY promissory_usage_occurrence + SUBTYPE OF ( assembly_component_usage ); + END_ENTITY; + + ENTITY property_definition + SUPERTYPE OF ( + ONEOF ( + product_definition_kinematics, + product_definition_relationship_kinematics, + product_definition_shape ) ); + name : label; + description : OPTIONAL text; + definition : characterized_definition; + DERIVE + id : identifier := get_id_value( SELF ); + WHERE + wr1: ( SIZEOF( USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'DESCRIPTION_ATTRIBUTE.DESCRIBED_ITEM' ) ) + <= 1 ); + wr2: ( SIZEOF( USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'NAME_ATTRIBUTE.NAMED_ITEM' ) ) <= 1 ); + END_ENTITY; + + ENTITY property_distribution_description; + id : identifier; + name : label; + description : OPTIONAL text; + abstract_function : maths_function; + domain_context : maths_space_context; + physical_function : property_distribution_select; + range_context : maths_space_context; + END_ENTITY; + + ENTITY property_process + SUBTYPE OF ( action ); + identification : identifier; + INVERSE + properties : SET [1 : ?] OF process_property_association FOR process; + END_ENTITY; + + ENTITY protrusion + SUBTYPE OF ( feature_definition ); + WHERE + wr1: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + + 'DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. + used_representation ) ) ) | ( NOT ( SIZEOF( impl_rep.used_representation.items ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ); + wr2: ( SIZEOF( QUERY ( pds <* QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) | ( NOT ( SIZEOF( QUERY ( sa_occ <* USEDIN( pds, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) | ( ( sa_occ.description = + 'shape volume occurrence' ) AND ( SIZEOF( QUERY ( sdr <* QUERY ( sar <* USEDIN( sa_occ, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT' ) | ( ( sar. + description = 'volume shape usage' ) AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF( sar ) ) ) ) | ( sdr.relating_shape_aspect.description = 'volume shape' ) ) ) + = 1 ) ) ) ) = 1 ) ) ) ) = 0 ); + wr3: ( SIZEOF( QUERY ( pdr <* get_property_definition_representations( SELF ) | ( ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PLANAR_SHAPE_REPRESENTATION' IN TYPEOF( pdr. + used_representation ) ) AND ( pdr.used_representation.name = 'maximum feature limit' ) ) ) ) >= 0 ); + END_ENTITY; + + ENTITY qualified_representation_item + SUBTYPE OF ( representation_item ); + qualifiers : SET [1 : ?] OF value_qualifier; + WHERE + wr1: ( SIZEOF( QUERY ( temp <* qualifiers | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 quantifier_expression + ABSTRACT SUPERTYPE + SUBTYPE OF ( multiple_arity_generic_expression ); + variables : LIST [1 : ?] OF UNIQUE generic_variable; + WHERE + wr1: ( SIZEOF( QUERY ( vrbl <* variables | ( NOT ( vrbl IN SELF\multiple_arity_generic_expression.operands ) ) ) ) = 0 ); + wr2: ( SIZEOF( QUERY ( vrbl <* variables | ( NOT ( ( schema_prefix + 'BOUND_VARIABLE_SEMANTICS' ) IN TYPEOF( vrbl. + interpretation.semantics ) ) ) ) ) = 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 rack_and_pinion_pair + SUBTYPE OF ( low_order_kinematic_pair_with_motion_coupling ); + pinion_radius : length_measure; + WHERE + wr1: ( SIZEOF( QUERY ( lr <* SELF\kinematic_pair.associated_link_representations_1 | ( NOT ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.RIGID_LINK_REPRESENTATION' IN TYPEOF( lr ) ) ) ) ) = 0 ); + END_ENTITY; + + ENTITY rack_and_pinion_pair_value + SUBTYPE OF ( pair_value ); + SELF\pair_value.applies_to_pair : rack_and_pinion_pair; + actual_displacement : length_measure; + DERIVE + actual_rotation : plane_angle_measure := 0; + END_ENTITY; + + ENTITY rack_and_pinion_pair_with_range + SUBTYPE OF ( rack_and_pinion_pair ); + lower_limit_rack_displacement : OPTIONAL length_measure; + upper_limit_rack_displacement : OPTIONAL length_measure; + WHERE + wr1: ( ( ( NOT EXISTS( lower_limit_rack_displacement ) ) OR ( NOT EXISTS( upper_limit_rack_displacement ) ) ) XOR ( + lower_limit_rack_displacement < upper_limit_rack_displacement ) ); + END_ENTITY; + + ENTITY radioactivity_measure_with_unit + SUBTYPE OF ( measure_with_unit ); + WHERE + wr1: ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROJECTION_CURVE' IN + TYPEOF( con ) ) ) ) <= 1 ); + END_ENTITY; + + ENTITY radius_geometric_constraint + SUBTYPE OF ( explicit_geometric_constraint ); + SELF\explicit_constraint.constrained_elements : SET [1 : ?] OF radial_geometry_constraint_element; + WHERE + wr1: ( SIZEOF( SELF\explicit_constraint.reference_elements ) = 0 ); + 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: ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ) AND ( SELF\named_unit.dimensions.mass_exponent = 0 ) AND ( SELF\ + named_unit.dimensions.time_exponent = 0 ) AND ( SELF\named_unit.dimensions.electric_current_exponent = 0 ) AND ( + SELF\named_unit.dimensions.thermodynamic_temperature_exponent = 0 ) AND ( SELF\named_unit.dimensions. + amount_of_substance_exponent = 0 ) AND ( SELF\named_unit.dimensions.luminous_intensity_exponent = 0 ) ); + END_ENTITY; + + 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 ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.INT_LITERAL' IN TYPEOF( operand ) ) ) ) ) = 0 ); + END_ENTITY; + + ENTITY rationalize_function + SUBTYPE OF ( maths_function, unary_generic_expression ); + SELF\unary_generic_expression.operand : maths_function; + DERIVE + fun : maths_function := SELF\unary_generic_expression.operand; + WHERE + wr1: ( ( space_dimension( fun.domain ) = 1 ) AND ( space_dimension( fun.range ) = 1 ) ); + wr2: number_tuple_subspace_check( factor1( fun.range ) ); + wr3: ( space_dimension( factor1( fun.range ) ) > 1 ); + END_ENTITY; + + ENTITY real_defined_function + ABSTRACT SUPERTYPE + SUBTYPE OF ( numeric_defined_function ); + END_ENTITY; + + ENTITY real_interval_from_min + SUBTYPE OF ( maths_space, generic_literal ); + min : REAL; + min_closure : open_closed; + END_ENTITY; + + ENTITY real_interval_to_max + SUBTYPE OF ( maths_space, generic_literal ); + max : REAL; + max_closure : open_closed; + END_ENTITY; + + ENTITY real_literal + SUBTYPE OF ( literal_number ); + SELF\literal_number.the_value : REAL; + END_ENTITY; + + ENTITY real_numeric_variable + SUBTYPE OF ( numeric_variable ); + END_ENTITY; + + ENTITY real_representation_item + SUBTYPE OF ( representation_item, real_literal ); + END_ENTITY; + + ENTITY real_tuple_literal + SUBTYPE OF ( generic_literal ); + lit_value : LIST [1 : ?] OF REAL; + END_ENTITY; + + ENTITY rectangular_area + SUBTYPE OF ( primitive_2d ); + position : axis2_placement_2d; + x : positive_length_measure; + y : positive_length_measure; + END_ENTITY; + + ENTITY rectangular_array_placement_group_component + SUBTYPE OF ( array_placement_group ); + END_ENTITY; + + ENTITY rectangular_closed_profile + SUBTYPE OF ( shape_aspect ); + WHERE + wr1: ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FEATURE_COMPONENT_DEFINITION' IN TYPEOF( SELF.of_shape. + definition ) ); + wr2: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + + 'DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) ) = 1 ) ) ) ) = 0 ); + wr3: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + + 'DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. + used_representation ) ) ) | ( NOT ( ( SIZEOF( impl_rep.used_representation.items ) >= 3 ) AND ( SIZEOF( impl_rep. + used_representation.items ) <= 4 ) ) ) ) ) = 0 ) ) ) ) = 0 ); + wr4: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + + 'DEFINITION' ) | ( SIZEOF( QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) AND ( SIZEOF( QUERY ( srwp_i <* + pdr.used_representation.items | ( ( srwp_i.name = 'orientation' ) OR ( srwp_i.name = 'length' ) OR ( srwp_i.name = + 'width' ) OR ( srwp_i.name = 'corner radius' ) ) ) ) = SIZEOF( pdr.used_representation.items ) ) ) ) ) = 1 ) ) ) + = 1 ); + wr5: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + + 'DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. + used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PLACEMENT' IN TYPEOF( it ) ) AND ( it.name = 'orientation' ) ) ) ) + = 1 ) ) ) ) = 0 ) ) ) ) = 0 ); + wr6: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + + 'DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. + used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( SIZEOF( [ + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM' , + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( it ) ) = 2 ) AND ( it. + name = 'width' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ); + wr7: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + + 'DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. + used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( SIZEOF( [ + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM' , + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( it ) ) = 2 ) AND ( it. + name = 'length' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ); + wr8: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + + 'DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. + used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( SIZEOF( [ + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM' , + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( it ) ) = 2 ) AND ( it. + name = 'corner radius' ) ) ) ) <= 1 ) ) ) ) = 0 ) ) ) ) = 0 ); + 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_composite_surface_transition_locator + SUBTYPE OF ( founded_item ); + basis_surface : rectangular_composite_surface; + surface_parameter : u_or_v_parameter; + u_transition_index : INTEGER; + v_transition_index : INTEGER; + WHERE + wr1: ( SIZEOF( using_representations( SELF.basis_surface ) * relating_shape_representations_of_extreme_values( SELF ) ) > 0 ); + END_ENTITY; + + ENTITY rectangular_pattern + SUBTYPE OF ( replicate_feature ); + WHERE + wr1 : ( SIZEOF( QUERY ( pds <* QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) | ( NOT ( SIZEOF( QUERY ( sa_occ <* USEDIN( pds, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) | ( SIZEOF( QUERY ( sdr <* + QUERY ( sar <* USEDIN( sa_occ, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.' + + 'RELATING_SHAPE_ASPECT' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP' + IN TYPEOF( sar ) ) ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT' IN TYPEOF( sdr. + related_shape_aspect ) ) ) ) = 1 ) ) ) <= 5 ) ) ) ) = 0 ); + wr2 : ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + + 'DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( pdr <* USEDIN( pd, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.DIRECTION_SHAPE_REPRESENTATION' IN TYPEOF( pdr. + used_representation ) ) AND ( pdr.used_representation.name = 'row layout direction' ) ) ) ) = 1 ) ) ) ) = 0 ); + wr3 : ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + + 'DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( pdr <* USEDIN( pd, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.DIRECTION_SHAPE_REPRESENTATION' IN TYPEOF( pdr. + used_representation ) ) AND ( pdr.used_representation.name = 'column layout direction' ) ) ) ) = 1 ) ) ) ) = 0 ); + wr4 : ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + + 'DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( pdr <* USEDIN( pd, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. + used_representation ) ) ) ) = 1 ) ) ) ) = 0 ); + wr5 : ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + + 'DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. + used_representation ) ) ) | ( NOT ( SIZEOF( impl_rep.used_representation.items ) = 5 ) ) ) ) = 0 ) ) ) ) = 0 ); + wr6 : ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + + 'DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. + used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM' IN TYPEOF( it ) ) AND ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.COUNT_MEASURE' IN TYPEOF( it\measure_with_unit. + value_component ) ) AND ( it.name = 'number of rows' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ); + wr7 : ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + + 'DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. + used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM' IN TYPEOF( it ) ) AND ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.COUNT_MEASURE' IN TYPEOF( it\measure_with_unit. + value_component ) ) AND ( it.name = 'number of columns' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ); + wr8 : ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + + 'DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. + used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( SIZEOF( [ + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM' , + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( it ) ) = 2 ) AND ( it. + name = 'row spacing' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ); + wr9 : ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + + 'DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. + used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( SIZEOF( [ + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM' , + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( it ) ) = 2 ) AND ( it. + name = 'column spacing' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ); + wr10: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + + 'DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. + used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PLACEMENT' IN TYPEOF( it ) ) AND ( it.name = 'orientation' ) ) ) ) + = 1 ) ) ) ) = 0 ) ) ) ) = 0 ); + 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: ( ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ELEMENTARY_SURFACE' IN TYPEOF( basis_surface ) ) AND ( NOT + ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PLANE' IN TYPEOF( basis_surface ) ) ) ) OR ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SURFACE_OF_REVOLUTION' IN TYPEOF( basis_surface ) ) OR ( + usense = ( u2 > u1 ) ) ); + wr4: ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SPHERICAL_SURFACE' IN TYPEOF( basis_surface ) ) OR ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 regular_table_function + SUBTYPE OF ( linearized_table_function ); + increments : LIST [1 : ?] OF INTEGER; + WHERE + wr1: ( SIZEOF( increments ) = SIZEOF( SELF\explicit_table_function.shape ) ); + wr2: extremal_position_check( SELF ); + END_ENTITY; + + ENTITY reindexed_array_function + SUBTYPE OF ( maths_function, unary_generic_expression ); + SELF\unary_generic_expression.operand : maths_function; + starting_indices : LIST [1 : ?] OF INTEGER; + WHERE + wr1: function_is_array( SELF\unary_generic_expression.operand ); + wr2: ( SIZEOF( starting_indices ) = SIZEOF( shape_of_array( SELF\unary_generic_expression.operand ) ) ); + END_ENTITY; + + ENTITY relative_event_occurrence + SUBTYPE OF ( event_occurrence ); + base_event : event_occurrence; + offset : time_measure_with_unit; + END_ENTITY; + + ENTITY removal_volume + SUBTYPE OF ( feature_definition ); + WHERE + wr1: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + + 'DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. + used_representation ) ) ) | ( NOT ( SIZEOF( impl_rep.used_representation.items ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ); + wr2: ( SIZEOF( QUERY ( pds <* QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) | ( NOT ( SIZEOF( QUERY ( sa_occ <* USEDIN( pds, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) | ( ( sa_occ.description = + 'shape volume occurrence' ) AND ( SIZEOF( QUERY ( sdr <* QUERY ( sar <* USEDIN( sa_occ, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.' + 'RELATED_SHAPE_ASPECT' ) | ( ( + sar.description = 'volume shape usage' ) AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF( sar ) ) ) ) | ( sdr.relating_shape_aspect.description = 'volume shape' ) ) ) + = 1 ) ) ) ) = 1 ) ) ) ) = 0 ); + END_ENTITY; + + ENTITY rep_item_group + SUBTYPE OF ( group, representation_item ); + WHERE + wr1: ( SIZEOF( USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PRESENTATION_LAYER_ASSIGNMENT.' + + 'ASSIGNED_ITEMS' ) ) > 0 ); + wr2: ( SIZEOF( QUERY ( r <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'REPRESENTATION.' + 'ITEMS' ) + | ( r.name = 'group representation' ) ) ) > 0 ); + wr3: ( SIZEOF( QUERY ( ga <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'GROUP_ASSIGNMENT.' + + 'ASSIGNED_GROUP' ) | ( ga.role.name <> 'group membership' ) ) ) = 0 ); + wr4: ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'GEOMETRIC_REPRESENTATION_ITEM', + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'TOPOLOGICAL_REPRESENTATION_ITEM', + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'MAPPED_ITEM', + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'STYLED_ITEM'] * TYPEOF( SELF ) ) = 1 ); + END_ENTITY; + + ENTITY repackaging_function + SUBTYPE OF ( maths_function, unary_generic_expression ); + SELF\unary_generic_expression.operand : maths_function; + input_repack : repackage_options; + output_repack : repackage_options; + selected_output : nonnegative_integer; + WHERE + wr1: ( ( input_repack <> ro_wrap_as_tuple ) OR ( ( space_dimension( operand.domain ) = 1 ) AND ( ( schema_prefix + + 'TUPLE_SPACE' ) IN TYPEOF( factor1( operand.domain ) ) ) ) ); + wr2: ( ( output_repack <> ro_unwrap_tuple ) OR ( ( space_dimension( operand.range ) = 1 ) AND ( ( schema_prefix + + 'TUPLE_SPACE' ) IN TYPEOF( factor1( operand.range ) ) ) ) ); + wr3: ( selected_output <= space_dimension( repackage( operand.range, output_repack ) ) ); + END_ENTITY; + + ENTITY reparametrised_composite_curve_segment + SUBTYPE OF ( composite_curve_segment ); + param_length : parameter_value; + WHERE + wr1: ( param_length > 0 ); + END_ENTITY; + + ENTITY replicate_feature + SUPERTYPE OF ( + ONEOF ( + circular_pattern, + rectangular_pattern, + feature_pattern ) ) + SUBTYPE OF ( feature_definition ); + WHERE + wr1: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + + 'DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) ) = 1 ) ) ) ) = 0 ); + wr2: ( SIZEOF( QUERY ( fcr <* QUERY ( sar <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'SHAPE_ASPECT_RELATIONSHIP.' + 'RELATING_SHAPE_ASPECT' ) | ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF( sar ) ) ) | ( ( + SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.REPLICATE_FEATURE', + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.INSTANCED_FEATURE' ] * TYPEOF( fcr.related_shape_aspect ) ) >= + 1 ) AND ( fcr.name = 'pattern basis' ) ) ) ) = 1 ); + wr3: ( ( SIZEOF( QUERY ( sar <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'SHAPE_ASPECT_RELATIONSHIP.' + 'RELATING_SHAPE_ASPECT' ) | ( NOT ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF( sar ) ) ) ) ) + + SIZEOF( QUERY ( sar <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.' + + 'RELATED_SHAPE_ASPECT' ) | ( NOT ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF( sar ) ) ) ) ) ) = 0 ); + END_ENTITY; + + ENTITY repositioned_neutral_sketch + SUBTYPE OF ( mapped_item, geometric_representation_item ); + DERIVE + map : representation_map := SELF\mapped_item.mapping_source; + WHERE + wr1: ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.NEUTRAL_SKETCH_REPRESENTATION' IN TYPEOF( map. + mapped_representation ) ); + wr2: ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.AXIS2_PLACEMENT_2D' IN TYPEOF( map.mapping_origin ) ); + wr3: ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.AXIS2_PLACEMENT_3D' IN TYPEOF( SELF\mapped_item.mapping_target ) ); + END_ENTITY; + + ENTITY repositioned_tessellated_item + SUBTYPE OF ( tessellated_item ); + location : axis2_placement_3d; + WHERE + wr1: ( NOT ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.TESSELLATED_CURVE_SET', + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.TESSELLATED_GEOMETRIC_SET' , + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.TESSELLATED_POINT_SET' , + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.TESSELLATED_SURFACE_SET' , + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.TESSELLATED_SHELL' , + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.TESSELLATED_SOLID' , + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.TESSELLATED_WIRE' ] * TYPEOF( SELF ) ) = 0 ) ); + END_ENTITY; + + ENTITY representation + SUPERTYPE OF ( + ONEOF ( + interpolated_configuration_representation, + link_motion_representation_along_path ) + ANDOR + ONEOF ( + kinematic_link_representation, + kinematic_topology_structure, + kinematic_topology_directed_structure, + kinematic_topology_network_structure, + mechanism_representation, + shape_representation ) + ANDOR + ONEOF ( + kinematic_topology_structure, + kinematic_topology_directed_structure, + kinematic_topology_network_structure ) ); + name : label; + items : SET [1 : ?] OF representation_item; + context_of_items : representation_context; + DERIVE + id : identifier := get_id_value( SELF ); + description : text := get_description_value( SELF ); + WHERE + wr1: ( SIZEOF( USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'ID_ATTRIBUTE.IDENTIFIED_ITEM' ) ) <= + 1 ); + wr2: ( SIZEOF( USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ) + ANDOR + ONEOF ( + mapped_item, + styled_item ) + ANDOR + ONEOF ( + 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_proxy_item + SUBTYPE OF ( representation_item ); + 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 representative_shape_representation + SUBTYPE OF ( shape_representation ); + WHERE + wr1: ( unique_in_product_definition( SELF ) OR unique_in_shape_aspect( SELF ) ); + END_ENTITY; + + ENTITY requirement_assigned_object + SUBTYPE OF ( group_assignment ); + SELF\group_assignment.assigned_group : requirement_assignment; + items : SET [1 : 1] OF requirement_assigned_item; + END_ENTITY; + + ENTITY requirement_assignment + SUBTYPE OF ( characterized_object, group ); + END_ENTITY; + + ENTITY requirement_for_action_resource + SUBTYPE OF ( action_resource_requirement ); + resources : SET [1 : ?] OF action_resource; + 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: ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 resource_property; + name : label; + description : text; + resource : characterized_resource_definition; + END_ENTITY; + + ENTITY resource_property_representation; + name : label; + description : text; + property : resource_property; + representation : representation; + END_ENTITY; + + ENTITY resource_requirement_type; + name : label; + description : text; + END_ENTITY; + + ENTITY restriction_function + SUBTYPE OF ( maths_function, unary_generic_expression ); + SELF\unary_generic_expression.operand : maths_space; + END_ENTITY; + + ENTITY result; + result_id : identifier; + creating_software : text; + description : text; + END_ENTITY; + + ENTITY result_analysis_step + SUPERTYPE OF ( + ONEOF ( + result_linear_static_analysis_sub_step, + result_linear_modes_and_frequencies_analysis_sub_step ) ) + SUBTYPE OF ( analysis_step ); + analysis_result : result; + UNIQUE + ur1 : SELF\analysis_step.analysis_control, analysis_result; + END_ENTITY; + + ENTITY result_linear_modes_and_frequencies_analysis_sub_step + SUBTYPE OF ( result_analysis_step ); + states : SET [1 : ?] OF calculated_state; + END_ENTITY; + + ENTITY result_linear_static_analysis_sub_step + SUBTYPE OF ( result_analysis_step ); + state : calculated_state; + END_ENTITY; + + ENTITY resulting_path + SUBTYPE OF ( link_motion_representation_along_path ); + controlling_joints : SET [1 : ?] OF kinematic_joint; + END_ENTITY; + + ENTITY retention + SUBTYPE OF ( action ); + WHERE + wr1: ( SIZEOF( QUERY ( aa <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'ACTION_ASSIGNMENT.' + + 'ASSIGNED_ACTION' ) | ( ( 'ACTIVITY.APPLIED_ACTION_ASSIGNMENT' IN TYPEOF( aa ) ) AND ( aa.role.name = 'retention' ) ) ) ) + >= 1 ); + wr2: ( ( SIZEOF( QUERY ( atia <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'APPLIED_TIME_INTERVAL_ASSIGNMENT.ITEMS' ) | ( atia.role.name = 'minimum retention period' ) ) ) = 1 ) AND ( + SIZEOF( QUERY ( atia <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'APPLIED_TIME_INTERVAL_ASSIGNMENT.ITEMS' ) | ( atia.role.name = 'maximum retention period' ) ) ) = 1 ) AND ( + SIZEOF( QUERY ( atia1 <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'APPLIED_TIME_INTERVAL_ASSIGNMENT.ITEMS' ) | ( ( atia1.role.name = 'minimum retention period' ) AND ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.TIME_INTERVAL_WITH_BOUNDS' IN TYPEOF( atia1. + assigned_time_interval ) ) AND ( EXISTS( atia1.assigned_time_interval\time_interval_with_bounds.secondary_bound ) + OR EXISTS( atia1.assigned_time_interval\time_interval_with_bounds.duration ) ) AND ( SIZEOF( QUERY ( atia2 <* + USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'APPLIED_TIME_INTERVAL_ASSIGNMENT.ITEMS' ) | + ( ( atia2.role.name = 'maximum retention period' ) AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'TIME_INTERVAL_WITH_BOUNDS' IN TYPEOF( atia2.assigned_time_interval ) ) AND ( EXISTS( atia2. + assigned_time_interval\time_interval_with_bounds.secondary_bound ) OR EXISTS( atia2.assigned_time_interval\ + time_interval_with_bounds.duration ) ) AND ( atia1.assigned_time_interval\time_interval_with_bounds.primary_bound + :=: atia2.assigned_time_interval\time_interval_with_bounds.primary_bound ) ) ) ) = 1 ) ) ) ) = 1 ) ); + wr3: ( ( SIZEOF( USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'ACTION_RELATIONSHIP.RELATING_ACTION' ) ) + + SIZEOF( USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'ACTION_RELATIONSHIP.RELATED_ACTION' ) ) ) + = 0 ); + END_ENTITY; + + ENTITY revolute_pair + SUBTYPE OF ( low_order_kinematic_pair ); + DERIVE + SELF\low_order_kinematic_pair.t_x : BOOLEAN := FALSE; + SELF\low_order_kinematic_pair.t_y : BOOLEAN := FALSE; + SELF\low_order_kinematic_pair.t_z : BOOLEAN := FALSE; + SELF\low_order_kinematic_pair.r_x : BOOLEAN := FALSE; + SELF\low_order_kinematic_pair.r_y : BOOLEAN := FALSE; + SELF\low_order_kinematic_pair.r_z : BOOLEAN := TRUE; + END_ENTITY; + + ENTITY revolute_pair_value + SUBTYPE OF ( pair_value ); + SELF\pair_value.applies_to_pair : revolute_pair; + actual_rotation : plane_angle_measure; + END_ENTITY; + + ENTITY revolute_pair_with_range + SUBTYPE OF ( revolute_pair ); + lower_limit_actual_rotation : OPTIONAL plane_angle_measure; + upper_limit_actual_rotation : OPTIONAL plane_angle_measure; + WHERE + wr1: ( ( ( NOT EXISTS( lower_limit_actual_rotation ) ) OR ( NOT EXISTS( upper_limit_actual_rotation ) ) ) XOR ( + lower_limit_actual_rotation < upper_limit_actual_rotation ) ); + 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 ) ); + 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 ) ); + 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 ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE' IN TYPEOF( first_trim_condition ) ) OR + ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE' IN TYPEOF( second_trim_condition ) ) ) ); + wr2: ( NOT ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PLANE_ANGLE_MEASURE' IN TYPEOF( first_trim_condition ) ) + AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PLANE_ANGLE_MEASURE' IN TYPEOF( second_trim_condition ) ) + AND ( first_trim_condition = second_trim_condition ) ) ); + END_ENTITY; + + ENTITY revolved_profile + SUBTYPE OF ( feature_definition ); + WHERE + wr1: ( SELF\characterized_object.description IN [ 'groove', 'flat', 'round', 'open profile'] ); + wr2: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + + 'DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. + used_representation ) ) ) | ( NOT ( SIZEOF( impl_rep.used_representation.items ) = 2 ) ) ) ) = 0 ) ) ) ) = 0 ); + wr3: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + + 'DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. + used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( SIZEOF( [ + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM' , + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( it ) ) = 2 ) AND ( it. + name = 'radius' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ); + wr4: ( SIZEOF( QUERY ( pdr <* get_property_definition_representations( SELF ) | ( ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.DIRECTION_SHAPE_REPRESENTATION' IN TYPEOF( pdr. + used_representation ) ) AND ( pdr.used_representation.name = 'removal direction' ) ) ) ) = 1 ); + wr5: ( ( NOT ( SELF\characterized_object.description = 'open profile' ) ) OR ( SIZEOF( QUERY ( pds <* QUERY ( pd <* + USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) | ( NOT ( + SIZEOF( QUERY ( sa_occ <* USEDIN( pds, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) + | ( ( sa_occ.description = 'outer edge shape occurrence' ) AND ( SIZEOF( QUERY ( sdr <* QUERY ( sar <* USEDIN( + sa_occ, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT' ) | ( + ( sar.description = 'profile usage' ) AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF( sar ) ) ) ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'OPEN_PATH_PROFILE' IN TYPEOF( sdr.relating_shape_aspect ) ) AND ( sdr.relating_shape_aspect.description = + 'outer edge shape' ) ) ) ) = 1 ) ) ) ) = 1 ) ) ) ) = 0 ) ); + wr6: ( ( NOT ( SELF\characterized_object.description = 'flat' ) ) OR ( SIZEOF( QUERY ( pds <* QUERY ( pd <* USEDIN( SELF, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) | ( NOT ( + SIZEOF( QUERY ( sa_occ <* USEDIN( pds, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) + | ( ( sa_occ.description = 'flat edge shape occurrence' ) AND ( SIZEOF( QUERY ( sdr <* QUERY ( sar <* USEDIN( + sa_occ, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT' ) | ( + ( sar.description = 'profile usage' ) AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF( sar ) ) ) ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'LINEAR_PROFILE' IN TYPEOF( sdr.relating_shape_aspect ) ) AND ( sdr.relating_shape_aspect.description = + 'flat edge shape' ) ) ) ) = 1 ) ) ) ) = 1 ) ) ) ) = 0 ) ); + wr7: ( ( NOT ( SELF\characterized_object.description = 'round' ) ) OR ( SIZEOF( QUERY ( pds <* QUERY ( pd <* USEDIN( SELF, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) | ( NOT ( + SIZEOF( QUERY ( sa_occ <* USEDIN( pds, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) + | ( ( sa_occ.description = 'rounded edge shape occurrence' ) AND ( SIZEOF( QUERY ( sdr <* QUERY ( sar <* USEDIN( + sa_occ, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT' ) | ( + ( sar.description = 'profile usage' ) AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF( sar ) ) ) ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'PARTIAL_CIRCULAR_PROFILE' IN TYPEOF( sdr.relating_shape_aspect ) ) AND ( sdr.relating_shape_aspect.description + = 'rounded edge shape' ) ) ) ) = 1 ) ) ) ) = 1 ) ) ) ) = 0 ) ); + wr8: ( ( NOT ( SELF\characterized_object.description = 'groove' ) ) OR ( SIZEOF( QUERY ( pds <* QUERY ( pd <* USEDIN( SELF, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) | ( NOT ( + SIZEOF( QUERY ( sa_occ <* USEDIN( pds, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) + | ( ( sa_occ.description = 'sweep occurrence' ) AND ( SIZEOF( QUERY ( sdr <* QUERY ( sar <* USEDIN( sa_occ, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT' ) | ( ( sar. + description = 'profile usage' ) AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF( sar ) ) ) ) | ( ( SIZEOF( [ + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SQUARE_U_PROFILE' , + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PARTIAL_CIRCULAR_PROFILE' , + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ROUNDED_U_PROFILE' , + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.VEE_PROFILE' , + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.TEE_PROFILE' , + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.OPEN_PATH_PROFILE' ] * TYPEOF( sdr.relating_shape_aspect ) ) = + 1 ) AND ( sdr.relating_shape_aspect.description = 'sweep' ) ) ) ) = 1 ) ) ) ) = 1 ) ) ) ) = 0 ) ); + wr9: ( SIZEOF( QUERY ( pdr <* get_property_definition_representations( SELF ) | ( ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PLANAR_SHAPE_REPRESENTATION' IN TYPEOF( pdr. + used_representation ) ) AND ( pdr.used_representation.name = 'maximum feature limit' ) ) ) ) >= 0 ); + END_ENTITY; + + ENTITY rgc_with_dimension + SUBTYPE OF ( radius_geometric_constraint ); + radius_value : positive_length_measure; + END_ENTITY; + + ENTITY rib_top + SUBTYPE OF ( feature_definition ); + WHERE + wr1: ( SIZEOF( QUERY ( pds <* QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) | ( NOT ( SIZEOF( QUERY ( sa_occ <* USEDIN( pds, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) | ( ( sa_occ.description = + 'rib top condition occurrence' ) AND ( SIZEOF( QUERY ( sdr <* QUERY ( sar <* USEDIN( sa_occ, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT' ) | ( ( sar. + description = 'rib top usage' ) AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF( sar ) ) ) ) | ( ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.RIB_TOP_FLOOR' IN TYPEOF( sdr.relating_shape_aspect ) ) AND + ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.RIB_TOP' IN TYPEOF( sdr.related_shape_aspect.of_shape. + definition ) ) ) ) ) = 1 ) ) ) ) = 1 ) ) ) ) = 0 ); + wr2: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + + 'DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'DIRECTION_SHAPE_REPRESENTATION' IN TYPEOF( pdr.used_representation ) ) AND ( pdr.used_representation.name = + 'removal direction' ) ) ) ) = 1 ) ) ) ) = 1 ); + wr3: ( SIZEOF( QUERY ( pdr <* get_property_definition_representations( SELF ) | ( ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PLANAR_SHAPE_REPRESENTATION' IN TYPEOF( pdr. + used_representation ) ) AND ( pdr.used_representation.name = 'maximum feature limit' ) ) ) ) >= 0 ); + END_ENTITY; + + ENTITY rib_top_floor + SUBTYPE OF ( shape_aspect ); + WHERE + wr1: ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FEATURE_COMPONENT_DEFINITION' IN TYPEOF( SELF.of_shape. + definition ) ); + wr2: ( SELF.description IN [ 'planar', 'complex'] ); + wr3: ( SIZEOF( QUERY ( fcr <* QUERY ( sar <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'SHAPE_ASPECT_RELATIONSHIP.RELATING_SHAPE_ASPECT' ) | ( ( sar.description = 'rib top usage' ) AND ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF( sar ) ) ) ) | ( ( + fcr.related_shape_aspect.description = 'rib top condition occurrence' ) AND ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.RIB_TOP' IN TYPEOF( fcr.related_shape_aspect.of_shape. + definition ) ) AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.RIB_TOP_FLOOR' IN TYPEOF( fcr. + relating_shape_aspect ) ) ) ) ) >= 1 ); + wr4: ( ( NOT ( SELF.description = 'complex' ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( + QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.' + + 'DEFINITION' ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FACE_SHAPE_REPRESENTATION' IN TYPEOF( + pdr.used_representation ) ) AND ( pdr.used_representation.name = 'rib top face' ) ) ) ) = 1 ) ) ) ) = 0 ) ); + wr5: ( ( NOT ( SELF.description = 'planar' ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( + QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.' + + 'DEFINITION' ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PLANAR_SHAPE_REPRESENTATION' IN + TYPEOF( pdr.used_representation ) ) AND ( pdr.used_representation.name = 'rib top face' ) ) ) ) = 1 ) ) ) ) = 0 ) ); + wr6: ( ( NOT ( SELF.description = 'planar' ) ) OR ( SIZEOF( QUERY ( pds <* QUERY ( pd <* USEDIN( SELF, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) | ( NOT ( + SIZEOF( QUERY ( sa_occ <* USEDIN( pds, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) + | ( ( sa_occ.description = 'boundary occurrence' ) AND ( SIZEOF( QUERY ( sdr <* QUERY ( sar <* USEDIN( sa_occ, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT' ) | ( ( sar. + description = 'profile usage' ) AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF( sar ) ) ) ) | ( ( SIZEOF( [ + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CIRCULAR_CLOSED_PROFILE' , + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.NGON_CLOSED_PROFILE' , + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.RECTANGULAR_CLOSED_PROFILE' , + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CLOSED_PATH_PROFILE' ] * TYPEOF( sdr.relating_shape_aspect ) ) + = 1 ) AND ( sdr.relating_shape_aspect.description = 'rib top floor boundary' ) ) ) ) = 1 ) ) ) ) = 1 ) ) ) ) = 0 ) ); + 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 <= 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 ); + 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.relating_method : information_usage_right; + SELF\action_method_relationship.related_method : information_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 rigid_link_representation + SUBTYPE OF ( kinematic_link_representation ); + END_ENTITY; + + ENTITY rigid_subsketch + SUBTYPE OF ( subsketch ); + END_ENTITY; + + ENTITY rind; + index_count : INTEGER; + planes : ARRAY [1 : 2 * index_count] OF INTEGER; + END_ENTITY; + + ENTITY role_association; + role : object_role; + item_with_role : role_select; + END_ENTITY; + + ENTITY rolling_curve_pair + SUBTYPE OF ( planar_curve_pair ); + END_ENTITY; + + ENTITY rolling_curve_pair_value + SUBTYPE OF ( pair_value ); + SELF\pair_value.applies_to_pair : rolling_curve_pair; + actual_point_on_curve_1 : point_on_curve; + WHERE + wr1: ( SELF\pair_value.applies_to_pair\planar_curve_pair.curve_1 :=: actual_point_on_curve_1.basis_curve ); + END_ENTITY; + + ENTITY rolling_surface_pair + SUBTYPE OF ( surface_pair ); + END_ENTITY; + + ENTITY rolling_surface_pair_value + SUBTYPE OF ( pair_value ); + SELF\pair_value.applies_to_pair : rolling_surface_pair; + actual_point_on_surface : point_on_surface; + actual_rotation : plane_angle_measure; + WHERE + wr1: ( SELF\pair_value.applies_to_pair\surface_pair.surface_1 :=: actual_point_on_surface.basis_surface ); + END_ENTITY; + + ENTITY rotation_about_direction + SUBTYPE OF ( geometric_representation_item ); + direction_of_axis : direction; + rotation_angle : plane_angle_measure; + WHERE + wr1: ( SIZEOF( direction_of_axis.direction_ratios ) = 3 ); + END_ENTITY; + + ENTITY round_hole + SUBTYPE OF ( feature_definition ); + WHERE + wr1: ( SIZEOF( QUERY ( pds <* QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) | ( NOT ( SIZEOF( QUERY ( sa_occ <* USEDIN( pds, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) | ( ( sa_occ.description = + 'diameter occurrence' ) AND ( SIZEOF( QUERY ( sdr <* QUERY ( sar <* USEDIN( sa_occ, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT' ) | ( ( sar. + description = 'profile usage' ) AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF( sar ) ) ) ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'CIRCULAR_CLOSED_PROFILE' IN TYPEOF( sdr.relating_shape_aspect ) ) AND ( sdr.name = 'diameter' ) ) ) ) = 1 ) ) ) ) + = 1 ) ) ) ) = 0 ); + wr2: ( SIZEOF( QUERY ( pds <* QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) | ( NOT ( SIZEOF( QUERY ( sa_occ <* USEDIN( pds, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) | ( ( sa_occ.description = + 'hole depth occurrence' ) AND ( SIZEOF( QUERY ( sdr <* QUERY ( sar <* USEDIN( sa_occ, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT' ) | ( ( sar. + description = 'path feature component usage' ) AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF( sar ) ) ) ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'PATH_FEATURE_COMPONENT' IN TYPEOF( sdr.relating_shape_aspect ) ) AND ( sdr.name = 'hole depth' ) AND ( sdr. + relating_shape_aspect.description = 'linear' ) ) ) ) = 1 ) ) ) ) = 1 ) ) ) ) = 0 ); + wr3: ( SIZEOF( QUERY ( pds <* QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) | ( NOT ( SIZEOF( QUERY ( sa_occ <* USEDIN( pds, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) | ( ( sa_occ.description = + 'bottom condition occurrence' ) AND ( SIZEOF( QUERY ( fcr <* QUERY ( sar <* USEDIN( sa_occ, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT' ) | ( ( sar. + description = 'hole bottom usage' ) AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF( sar ) ) ) ) | ( ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.HOLE_BOTTOM' IN TYPEOF( fcr.relating_shape_aspect ) ) AND ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ROUND_HOLE' IN TYPEOF( fcr.related_shape_aspect.of_shape. + definition ) ) ) ) ) = 1 ) ) ) ) = 1 ) ) ) ) = 0 ); + wr4: ( SIZEOF( QUERY ( pds <* QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) | ( NOT ( SIZEOF( QUERY ( sa_occ <* USEDIN( pds, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) | ( ( sa_occ.description = + 'change in diameter occurrence' ) AND ( SIZEOF( QUERY ( fcr <* QUERY ( sar <* USEDIN( sa_occ, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT' ) | ( ( sar. + description = 'taper usage' ) AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF( sar ) ) ) ) | ( ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.TAPER' IN TYPEOF( fcr.relating_shape_aspect ) ) AND ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ROUND_HOLE' IN TYPEOF( fcr.related_shape_aspect.of_shape. + definition ) ) ) ) ) = 1 ) ) ) ) <= 1 ) ) ) ) = 0 ); + wr5: ( SIZEOF( QUERY ( pdr <* get_property_definition_representations( SELF ) | ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. + used_representation ) ) ) ) = 1 ); + END_ENTITY; + + ENTITY rounded_end + SUBTYPE OF ( feature_definition ); + WHERE + wr1: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + + 'DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. + used_representation ) ) ) | ( NOT ( SIZEOF( impl_rep.used_representation.items ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ); + wr2: ( SIZEOF( QUERY ( pds <* QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) | ( NOT ( SIZEOF( QUERY ( sa_occ <* USEDIN( pds, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) | ( ( sa_occ.description = + 'partial circular boundary occurrence' ) AND ( SIZEOF( QUERY ( sdr <* QUERY ( sar <* USEDIN( sa_occ, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT' ) | ( ( sar. + description = 'profile usage' ) AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF( sar ) ) ) ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'PARTIAL_CIRCULAR_PROFILE' IN TYPEOF( sdr.relating_shape_aspect ) ) ) ) = 1 ) ) ) ) = 1 ) ) ) ) = 0 ); + wr3: ( SIZEOF( QUERY ( pds <* QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) | ( NOT ( SIZEOF( QUERY ( sa_occ <* USEDIN( pds, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) | ( ( sa_occ.description = + 'course of travel occurrence' ) AND ( SIZEOF( QUERY ( sdr <* QUERY ( sar <* USEDIN( sa_occ, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT' ) | ( ( sar. + description = 'path feature component usage' ) AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF( sar ) ) ) ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'PATH_FEATURE_COMPONENT' IN TYPEOF( sdr.relating_shape_aspect ) ) AND ( sdr.relating_shape_aspect.description = + 'linear' ) ) ) ) = 1 ) ) ) ) = 1 ) ) ) ) = 0 ); + wr4: ( SIZEOF( QUERY ( pdr <* get_property_definition_representations( SELF ) | ( ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PLANAR_SHAPE_REPRESENTATION' IN TYPEOF( pdr. + used_representation ) ) AND ( pdr.used_representation.name = 'maximum feature limit' ) ) ) ) >= 0 ); + END_ENTITY; + + ENTITY rounded_u_profile + SUBTYPE OF ( shape_aspect ); + WHERE + wr1: ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FEATURE_COMPONENT_DEFINITION' IN TYPEOF( SELF.of_shape. + definition ) ); + wr2: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + + 'DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) ) = 1 ) ) ) ) = 0 ); + wr3: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + + 'DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. + used_representation ) ) ) | ( ( NOT ( SIZEOF( impl_rep.used_representation.items ) >= 1 ) ) AND ( SIZEOF( impl_rep. + used_representation.items ) <= 2 ) ) ) ) = 0 ) ) ) ) = 0 ); + wr4: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + + 'DEFINITION' ) | ( SIZEOF( QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) AND ( SIZEOF( QUERY ( srwp_i <* + pdr.used_representation.items | ( ( srwp_i.name = 'orientation' ) OR ( srwp_i.name = 'depth' ) ) ) ) = SIZEOF( pdr. + used_representation.items ) ) ) ) ) = 1 ) ) ) = 1 ); + wr5: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + + 'DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. + used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( SIZEOF( [ + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM' , + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( it ) ) = 2 ) AND ( it. + name = 'width' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ); + wr6: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + + 'DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'PLANAR_SHAPE_REPRESENTATION' IN TYPEOF( pdr.used_representation ) ) AND ( pdr.used_representation.name = + 'profile limit' ) ) ) ) <= 1 ) ) ) ) = 0 ); + wr7: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + + 'DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. + used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( SIZEOF( [ + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM' , + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( it ) ) = 2 ) AND ( it. + name = 'depth' ) ) ) ) <= 1 ) ) ) ) = 0 ) ) ) ) = 0 ); + END_ENTITY; + + ENTITY roundness_tolerance + SUBTYPE OF ( geometric_tolerance ); + WHERE + wr1: ( NOT ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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: ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.B_SPLINE_SURFACE' IN TYPEOF( SELF.reference_surface ) ) AND ( + SELF.reference_surface\b_spline_surface.u_degree = 1 ) ); + wr2: ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PCURVE' IN TYPEOF( SELF.directrix ) ) OR ( ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 : plane_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 same_discretised_action_model; + id : identifier; + name : label; + description : OPTIONAL text; + equivalent_records : SET [2 : ?] OF discretised_action_model_select; + END_ENTITY; + + ENTITY same_discretised_distribution_model; + id : identifier; + name : label; + description : OPTIONAL text; + equivalent_records : SET [1 : ?] OF discretised_distribution_model_select; + END_ENTITY; + + ENTITY same_discretised_state_model; + id : identifier; + name : label; + description : OPTIONAL text; + equivalent_records : SET [2 : ?] OF discretised_state_model_select; + END_ENTITY; + + ENTITY same_idealised_action; + id : identifier; + name : label; + description : OPTIONAL text; + equivalent_records : SET [2 : ?] OF idealised_action_select; + END_ENTITY; + + ENTITY same_idealised_distribution; + id : identifier; + name : label; + description : OPTIONAL text; + equivalent_records : LIST [2 : ?] OF idealised_distribution_select; + END_ENTITY; + + ENTITY same_idealised_state; + id : identifier; + name : label; + description : OPTIONAL text; + equivalent_records : SET [2 : ?] OF idealised_state_select; + END_ENTITY; + + ENTITY satisfied_requirement + SUBTYPE OF ( group_assignment ); + SELF\group_assignment.assigned_group : satisfies_requirement; + items : SET [1 : 1] OF product_definition; + END_ENTITY; + + ENTITY satisfies_requirement + SUBTYPE OF ( group ); + END_ENTITY; + + ENTITY satisfying_item + SUBTYPE OF ( group_assignment ); + SELF\group_assignment.assigned_group : satisfies_requirement; + items : SET [1 : 1] OF requirement_satisfaction_item; + END_ENTITY; + + ENTITY scalar_variable + SUBTYPE OF ( abstract_variable ); + END_ENTITY; + + ENTITY screw_pair + SUBTYPE OF ( low_order_kinematic_pair_with_motion_coupling ); + pitch : length_measure; + WHERE + wr1: ( SIZEOF( QUERY ( lr <* SELF\kinematic_pair.associated_link_representations_1 | ( NOT ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.RIGID_LINK_REPRESENTATION' IN TYPEOF( lr ) ) ) ) ) = 0 ); + END_ENTITY; + + ENTITY screw_pair_value + SUBTYPE OF ( pair_value ); + SELF\pair_value.applies_to_pair : screw_pair; + actual_rotation : plane_angle_measure; + DERIVE + actual_translation : length_measure := ( SELF\pair_value.applies_to_pair\screw_pair.pitch * + plane_angle_for_pair_in_radian( SELF\pair_value.applies_to_pair, actual_rotation ) ) / ( 2 * PI ); + END_ENTITY; + + ENTITY screw_pair_with_range + SUBTYPE OF ( screw_pair ); + lower_limit_actual_rotation : OPTIONAL plane_angle_measure; + upper_limit_actual_rotation : OPTIONAL plane_angle_measure; + WHERE + wr1: ( ( ( NOT EXISTS( lower_limit_actual_rotation ) ) OR ( NOT EXISTS( upper_limit_actual_rotation ) ) ) XOR ( + lower_limit_actual_rotation < upper_limit_actual_rotation ) ); + END_ENTITY; + + ENTITY sculptured_solid + SUBTYPE OF ( modified_solid ); + sculpturing_element : generalized_surface_select; + positive_side : BOOLEAN; + END_ENTITY; + + ENTITY sdgc_with_dimension + SUBTYPE OF ( surface_distance_geometric_constraint ); + distance_value : non_negative_length_measure; + 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: ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PCURVE' IN TYPEOF( SELF\surface_curve.associated_geometry[1] ) ); + wr4: ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'ROLE_ASSOCIATION.ITEM_WITH_ROLE' ) ) + <= 1 ); + END_ENTITY; + + ENTITY security_classification_level; + name : label; + END_ENTITY; + + ENTITY selector_function + SUBTYPE OF ( maths_function, generic_literal ); + selector : input_selector; + source_of_domain : maths_space_or_function; + WHERE + wr1: no_cyclic_domain_reference( source_of_domain, [SELF] ); + wr2: expression_is_constant( domain_from( source_of_domain ) ); + END_ENTITY; + + ENTITY self_intersecting_curve + SUBTYPE OF ( self_intersecting_geometry ); + SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_logical_test; + arc_length_separation_factor : REAL; + interference_tolerance : length_measure; + WHERE + wr1: validate_measured_data_type( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.BOOLEAN_VALUE' ); + wr2: validate_inspected_elements_type( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CURVE'] ); + wr3: validate_locations_of_extreme_value_type( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.POINT_ON_CURVE', + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.POINT_ON_CURVE' ] ); + wr4: validate_accuracy_types( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE'] ); + END_ENTITY; + + ENTITY self_intersecting_geometry + ABSTRACT SUPERTYPE OF ( + ONEOF ( + self_intersecting_curve, + self_intersecting_surface ) ) + SUBTYPE OF ( inapt_geometry ); + END_ENTITY; + + ENTITY self_intersecting_loop + SUBTYPE OF ( topology_related_to_self_intersecting_geometry ); + SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_logical_test; + arc_length_distance_factor : REAL; + interference_tolerance : length_measure; + WHERE + wr1: validate_measured_data_type( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.BOOLEAN_VALUE' ); + wr2: validate_inspected_elements_type( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.EDGE_LOOP'] ); + wr3: validate_locations_of_extreme_value_type( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'POINT_ON_EDGE_CURVE' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'POINT_ON_EDGE_CURVE'] ); + wr4: validate_accuracy_types( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE'] ); + END_ENTITY; + + ENTITY self_intersecting_shell + SUBTYPE OF ( topology_related_to_self_intersecting_geometry ); + SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_logical_test; + geodesic_separation_factor : REAL; + interference_tolerance : length_measure; + WHERE + wr1: validate_measured_data_type( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.BOOLEAN_VALUE' ); + wr2: validate_inspected_elements_type( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CONNECTED_FACE_SET'] ); + wr3: validate_locations_of_extreme_value_type( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'POINT_ON_FACE_SURFACE' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'POINT_ON_FACE_SURFACE'] ); + wr4: validate_accuracy_types( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE'] ); + END_ENTITY; + + ENTITY self_intersecting_surface + SUBTYPE OF ( self_intersecting_geometry ); + SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_logical_test; + geodesic_separation_factor : REAL; + interference_tolerance : length_measure; + WHERE + wr1: validate_measured_data_type( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.BOOLEAN_VALUE' ); + wr2: validate_inspected_elements_type( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SURFACE'] ); + wr3: validate_locations_of_extreme_value_type( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.POINT_ON_SURFACE', + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.POINT_ON_SURFACE' ] ); + wr4: validate_accuracy_types( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE'] ); + END_ENTITY; + + ENTITY serial_numbered_effectivity + SUBTYPE OF ( effectivity ); + effectivity_start_id : identifier; + effectivity_end_id : OPTIONAL identifier; + END_ENTITY; + + ENTITY series_composed_function + SUBTYPE OF ( maths_function, multiple_arity_generic_expression ); + SELF\multiple_arity_generic_expression.operands : LIST [2 : ?] OF maths_function; + WHERE + wr1: composable_sequence( SELF\multiple_arity_generic_expression.operands ); + END_ENTITY; + + ENTITY shape_aspect + SUPERTYPE OF ( + ONEOF ( + contacting_feature, + datum, + datum_feature, + datum_target, + datum_system, + general_datum_reference ) ); + name : label; + description : OPTIONAL text; + of_shape : product_definition_shape; + product_definitional : LOGICAL; + DERIVE + id : identifier := get_id_value( SELF ); + UNIQUE + ur1 : id, of_shape; + WHERE + wr1: ( SIZEOF( USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ); + SELF\shape_aspect_relationship.relating_shape_aspect : derived_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'ID_ATTRIBUTE.IDENTIFIED_ITEM' ) ) <= + 1 ); + END_ENTITY; + + ENTITY shape_aspect_relationship_representation_association; + represented_shape_aspect_relationship : shape_aspect_relationship; + representing_representation_relationship : representation_relationship; + WHERE + wr1: ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.REPRESENTATIVE_SHAPE_REPRESENTATION' IN TYPEOF( + representing_representation_relationship\representation_relationship.rep_1 ) ) AND ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.REPRESENTATIVE_SHAPE_REPRESENTATION' IN TYPEOF( + representing_representation_relationship\representation_relationship.rep_2 ) ) ); + wr2: ( ( represented_shape_aspect_relationship.relating_shape_aspect IN using_shape_aspect_of_shape_representation( + representing_representation_relationship.rep_1 ) ) AND ( represented_shape_aspect_relationship.related_shape_aspect + IN using_shape_aspect_of_shape_representation( representing_representation_relationship.rep_2 ) ) ); + wr3: ( ( find_representative_shape_representation_of_product_definition( using_product_definition_of_shape_aspect( + represented_shape_aspect_relationship.relating_shape_aspect ) ).context_of_items :=: + find_representative_shape_representation_of_shape_aspect( represented_shape_aspect_relationship. + relating_shape_aspect ).context_of_items ) AND ( find_representative_shape_representation_of_product_definition( + using_product_definition_of_shape_aspect( represented_shape_aspect_relationship.related_shape_aspect ) ). + context_of_items :=: find_representative_shape_representation_of_shape_aspect( + represented_shape_aspect_relationship.related_shape_aspect ).context_of_items ) ); + wr4: ( using_product_definition_of_shape_aspect( represented_shape_aspect_relationship.relating_shape_aspect ) :<>: + using_product_definition_of_shape_aspect( represented_shape_aspect_relationship.related_shape_aspect ) ); + wr5: ( find_assembly_root( [using_product_definition_of_shape_aspect( represented_shape_aspect_relationship. + relating_shape_aspect )] ) :=: find_assembly_root( [using_product_definition_of_shape_aspect( + represented_shape_aspect_relationship.related_shape_aspect )] ) ); + END_ENTITY; + + ENTITY shape_criteria_representation_with_accuracy + SUBTYPE OF ( shape_data_quality_criteria_representation ); + required_general_accuracy : SET [1 : ?] OF shape_measurement_accuracy; + END_ENTITY; + + ENTITY shape_data_quality_assessment_by_logical_test + SUBTYPE OF ( data_quality_assessment_specification ); + END_ENTITY; + + ENTITY shape_data_quality_assessment_by_numerical_test + SUBTYPE OF ( data_quality_assessment_specification ); + threshold : shape_data_quality_value_limit_type_select; + END_ENTITY; + + ENTITY shape_data_quality_criteria_representation + SUBTYPE OF ( data_quality_criteria_representation ); + WHERE + wr1: ( SIZEOF( QUERY ( q <* SELF\representation.items | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'SHAPE_DATA_QUALITY_CRITERION' ) IN TYPEOF( q ) ) ) ) > 0 ); + END_ENTITY; + + ENTITY shape_data_quality_criterion + SUPERTYPE OF ( + ONEOF ( + erroneous_data, + inapt_data ) ) + SUBTYPE OF ( data_quality_criterion, data_quality_measurement_requirement ); + assessment_specification : shape_data_quality_assessment_specification_select; + WHERE + wr1: ( SIZEOF( USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'DATA_QUALITY_CRITERION_ASSESSMENT_ASSOCIATION.' + 'CRITERION' ) ) = 0 ); + wr2: ( SIZEOF( QUERY ( i1 <* bag_to_set( USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'REPRESENTATION_ITEM_RELATIONSHIP.' + 'RELATED_REPRESENTATION_ITEM' ) ) | ( ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'DATA_QUALITY_CRITERION_MEASUREMENT_ASSOCIATION' ) IN + TYPEOF( i1 ) ) ) ) = 0 ); + wr3: ( SIZEOF( QUERY ( i1 <* bag_to_set( USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'REPRESENTATION_ITEM_RELATIONSHIP.' + 'RELATING_REPRESENTATION_ITEM' ) ) | ( ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'DATA_QUALITY_CRITERION_MEASUREMENT_ASSOCIATION' ) IN + TYPEOF( i1 ) ) ) ) = 0 ); + END_ENTITY; + + ENTITY shape_data_quality_criterion_and_accuracy_association; + required_specific_accuracy : shape_measurement_accuracy; + shape_data_quality_criterion : shape_data_quality_criterion; + END_ENTITY; + + ENTITY shape_data_quality_inspected_shape_and_result_relationship + SUBTYPE OF ( shape_representation_relationship ); + SELF\representation_relationship.rep_1 : shape_representation; + SELF\representation_relationship.rep_2 : shape_data_quality_inspection_result_representation; + WHERE + wr1: ( SIZEOF( using_product_definition_of_shape_representation( SELF.rep_1 ) * bag_to_set( inspected_product_definition( + SELF.rep_2 ) ) ) > 0 ); + wr2: ( SELF.rep_1\representation.context_of_items :=: SELF.rep_2\representation.context_of_items ); + END_ENTITY; + + ENTITY shape_data_quality_inspection_criterion_report + SUBTYPE OF ( data_quality_inspection_criterion_report ); + representative_measured_value : measured_value_select; + END_ENTITY; + + ENTITY shape_data_quality_inspection_instance_report + SUBTYPE OF ( data_quality_inspection_instance_report ); + SELF\data_quality_inspection_instance_report.inspected_instances : LIST [1 : ?] OF + shape_data_quality_inspection_instance_report_item; + END_ENTITY; + + ENTITY shape_data_quality_inspection_instance_report_item + SUBTYPE OF ( data_quality_inspection_instance_report_item ); + SELF\data_quality_inspection_instance_report_item.inspected_elements : SET [1 : ?] OF inspected_shape_element_select; + measured_value : measured_value_select; + END_ENTITY; + + ENTITY shape_data_quality_inspection_result + SUBTYPE OF ( data_quality_inspection_result ); + SELF\data_quality_inspection_result.criterion_inspected : shape_data_quality_criterion; + END_ENTITY; + + ENTITY shape_data_quality_inspection_result_representation + SUBTYPE OF ( data_quality_inspection_result_representation ); + WHERE + wr1: ( SIZEOF( QUERY ( q <* SELF\representation.items | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'SHAPE_DATA_QUALITY_INSPECTION_RESULT' ) IN TYPEOF( q ) ) ) ) > 0 ); + wr2: ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.GEOMETRIC_REPRESENTATION_CONTEXT' IN TYPEOF( SELF\representation + .context_of_items ) ); + wr3: ( SIZEOF( USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'SHAPE_DATA_QUALITY_INSPECTED_SHAPE_AND_RESULT_RELATIONSHIP.' + 'REP_2' ) ) > 0 ); + END_ENTITY; + + ENTITY shape_data_quality_lower_value_limit + SUBTYPE OF ( shape_data_quality_value_limit ); + WHERE + wr1: ( SELF\qualified_representation_item.qualifiers[1].name = 'minimum' ); + END_ENTITY; + + ENTITY shape_data_quality_upper_value_limit + SUBTYPE OF ( shape_data_quality_value_limit ); + WHERE + wr1: ( SELF\qualified_representation_item.qualifiers[1].name = 'maximum' ); + END_ENTITY; + + ENTITY shape_data_quality_value_limit + ABSTRACT SUPERTYPE OF ( + ONEOF ( + shape_data_quality_upper_value_limit, + shape_data_quality_lower_value_limit ) ) + SUBTYPE OF ( measure_representation_item, qualified_representation_item ); + END_ENTITY; + + ENTITY shape_data_quality_value_range + SUBTYPE OF ( compound_representation_item ); + WHERE + wr1: ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SET_REPRESENTATION_ITEM' IN TYPEOF( SELF\ + compound_representation_item.item_element ) ) AND ( SIZEOF( SELF\compound_representation_item.item_element ) = 2 ) + AND ( ( SIZEOF( QUERY ( i1 <* SELF\compound_representation_item.item_element | ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM' IN TYPEOF( i1 ) ) ) ) = 2 ) OR + ( SIZEOF( QUERY ( i2 <* SELF\compound_representation_item.item_element | ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.VALUE_REPRESENTATION_ITEM' IN TYPEOF( i2 ) ) ) ) = 2 ) ) ); + wr2: ( ( SIZEOF( QUERY ( i <* SELF\compound_representation_item.item_element | ( i.name = 'upper limit' ) ) ) = 1 ) AND ( + SIZEOF( QUERY ( i <* SELF\compound_representation_item.item_element | ( i.name = 'lower limit' ) ) ) = 1 ) ); + wr3: ( ( SIZEOF( QUERY ( i1 <* SELF\compound_representation_item.item_element | ( ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM' IN TYPEOF( i1 ) ) AND ( SIZEOF( + QUERY ( i2 <* SELF\compound_representation_item.item_element | ( ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ) OR + ( SIZEOF( QUERY ( i1 <* SELF\compound_representation_item.item_element | ( ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.VALUE_REPRESENTATION_ITEM' IN TYPEOF( i1 ) ) AND ( SIZEOF( + QUERY ( i2 <* SELF\compound_representation_item.item_element | ( ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.VALUE_REPRESENTATION_ITEM' IN TYPEOF( i2 ) ) AND ( i1 :<>: i2 ) + AND ( TYPEOF( i1\value_representation_item.value_component ) = TYPEOF( i2\value_representation_item.value_component ) ) ) ) ) + = 1 ) ) ) ) = 2 ) ); + END_ENTITY; + + ENTITY shape_defining_relationship + SUBTYPE OF ( shape_aspect_relationship ); + END_ENTITY; + + ENTITY shape_definition_representation + SUBTYPE OF ( property_definition_representation ); + SELF\property_definition_representation.definition : property_definition; + SELF\property_definition_representation.used_representation : shape_representation; + WHERE + wr1: ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF( definition ) ) OR ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_DEFINITION' IN TYPEOF( definition\property_definition. + definition ) ) ); + END_ENTITY; + + ENTITY shape_dimension_representation + SUBTYPE OF ( shape_representation ); + SELF\representation.items : SET [1 : ?] OF shape_dimension_representation_item; + END_ENTITY; + + ENTITY shape_feature_definition + SUBTYPE OF ( feature_definition ); + END_ENTITY; + + ENTITY shape_inspection_result_accuracy_association; + applied_specific_accuracy : shape_measurement_accuracy; + shape_data_quality_result : shape_data_quality_inspection_result; + END_ENTITY; + + ENTITY shape_inspection_result_representation_with_accuracy + SUBTYPE OF ( shape_data_quality_inspection_result_representation ); + applied_general_accuracy : SET [1 : ?] OF shape_measurement_accuracy; + END_ENTITY; + + ENTITY shape_measurement_accuracy; + description : text; + range : shape_data_quality_value_limit_type_select; + END_ENTITY; + + ENTITY shape_representation + SUBTYPE OF ( representation ); + END_ENTITY; + + ENTITY shape_representation_relationship + SUBTYPE OF ( representation_relationship ); + WHERE + wr1: ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ); + SELF\representation.items : SET [1 : ?] OF shape_representation_with_parameters_items; + END_ENTITY; + + ENTITY shape_summary_request_with_representative_value + SUBTYPE OF ( summary_report_request ); + 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( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'SHELL_BASED_WIREFRAME_MODEL' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MAPPED_ITEM', + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.AXIS2_PLACEMENT_3D' ] * TYPEOF( it ) ) = 1 ) ) ) ) = 0 ); + wr2 : ( SIZEOF( QUERY ( it <* SELF.items | ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'SHELL_BASED_WIREFRAME_MODEL' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MAPPED_ITEM'] * TYPEOF( it ) ) + = 1 ) ) ) >= 1 ); + wr3 : ( SIZEOF( QUERY ( sbwm <* QUERY ( it <* SELF.items | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'SHELL_BASED_WIREFRAME_MODEL' IN TYPEOF( it ) ) ) | ( NOT ( SIZEOF( QUERY ( ws <* QUERY ( sb <* sbwm\ + shell_based_wireframe_model.sbwm_boundary | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.WIRE_SHELL' IN + TYPEOF( sb ) ) ) | ( NOT ( SIZEOF( QUERY ( eloop <* QUERY ( wsb <* ws\wire_shell.wire_shell_extent | ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.EDGE_LOOP' IN TYPEOF( wsb ) ) ) | ( NOT ( SIZEOF( + QUERY ( el <* eloop\path.edge_list | ( NOT ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.EDGE_CURVE' IN + TYPEOF( el.edge_element ) ) ) ) ) = 0 ) ) ) ) = 0 ) ) ) ) = 0 ) ) ) ) = 0 ); + wr4 : ( SIZEOF( QUERY ( sbwm <* QUERY ( it <* SELF.items | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'SHELL_BASED_WIREFRAME_MODEL' IN TYPEOF( it ) ) ) | ( NOT ( SIZEOF( QUERY ( ws <* QUERY ( sb <* sbwm\ + shell_based_wireframe_model.sbwm_boundary | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.WIRE_SHELL' IN + TYPEOF( sb ) ) ) | ( NOT ( SIZEOF( QUERY ( eloop <* QUERY ( wsb <* ws\wire_shell.wire_shell_extent | ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.EDGE_LOOP' IN TYPEOF( wsb ) ) ) | ( NOT ( SIZEOF( + QUERY ( pline_el <* QUERY ( el <* eloop\path.edge_list | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'SHELL_BASED_WIREFRAME_MODEL' IN TYPEOF( it ) ) ) | ( NOT ( SIZEOF( QUERY ( ws <* QUERY ( sb <* sbwm\ + shell_based_wireframe_model.sbwm_boundary | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.WIRE_SHELL' IN + TYPEOF( sb ) ) ) | ( NOT ( SIZEOF( QUERY ( eloop <* QUERY ( wsb <* ws\wire_shell.wire_shell_extent | ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'SHELL_BASED_WIREFRAME_MODEL' IN TYPEOF( it ) ) ) | ( NOT ( SIZEOF( QUERY ( ws <* QUERY ( sb <* sbwm\ + shell_based_wireframe_model.sbwm_boundary | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.WIRE_SHELL' IN + TYPEOF( sb ) ) ) | ( NOT ( SIZEOF( QUERY ( eloop <* QUERY ( wsb <* ws\wire_shell.wire_shell_extent | ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.EDGE_LOOP' IN TYPEOF( wsb ) ) ) | ( NOT ( SIZEOF( + QUERY ( el <* eloop\path.edge_list | ( NOT ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.VERTEX_POINT' + IN TYPEOF( el.edge_element.edge_start ) ) AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.VERTEX_POINT' + IN TYPEOF( el.edge_element.edge_end ) ) ) ) ) ) = 0 ) ) ) ) = 0 ) ) ) ) = 0 ) ) ) ) = 0 ); + wr7 : ( SIZEOF( QUERY ( sbwm <* QUERY ( it <* SELF.items | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'SHELL_BASED_WIREFRAME_MODEL' IN TYPEOF( it ) ) ) | ( NOT ( SIZEOF( QUERY ( ws <* QUERY ( sb <* sbwm\ + shell_based_wireframe_model.sbwm_boundary | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.WIRE_SHELL' IN + TYPEOF( sb ) ) ) | ( NOT ( SIZEOF( QUERY ( eloop <* QUERY ( wsb <* ws\wire_shell.wire_shell_extent | ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'SHELL_BASED_WIREFRAME_MODEL' IN TYPEOF( it ) ) ) | ( NOT ( SIZEOF( QUERY ( ws <* QUERY ( sb <* sbwm\ + shell_based_wireframe_model.sbwm_boundary | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.WIRE_SHELL' IN + TYPEOF( sb ) ) ) | ( NOT ( SIZEOF( QUERY ( vloop <* QUERY ( wsb <* ws\wire_shell.wire_shell_extent | ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.VERTEX_LOOP' IN TYPEOF( wsb ) ) ) | ( NOT ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.VERTEX_POINT' IN TYPEOF( vloop\vertex_loop.loop_vertex ) ) ) ) ) + = 0 ) ) ) ) = 0 ) ) ) ) = 0 ); + wr9 : ( SIZEOF( QUERY ( sbwm <* QUERY ( it <* SELF.items | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'SHELL_BASED_WIREFRAME_MODEL' IN TYPEOF( it ) ) ) | ( NOT ( SIZEOF( QUERY ( ws <* QUERY ( sb <* sbwm\ + shell_based_wireframe_model.sbwm_boundary | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.WIRE_SHELL' IN + TYPEOF( sb ) ) ) | ( NOT ( SIZEOF( QUERY ( vloop <* QUERY ( wsb <* ws\wire_shell.wire_shell_extent | ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'SHELL_BASED_WIREFRAME_MODEL' IN TYPEOF( it ) ) ) | ( NOT ( SIZEOF( QUERY ( vs <* QUERY ( sb <* sbwm\ + shell_based_wireframe_model.sbwm_boundary | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.VERTEX_SHELL' IN + TYPEOF( sb ) ) ) | ( NOT ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.VERTEX_POINT' IN TYPEOF( vs\ + vertex_shell.vertex_shell_extent.loop_vertex ) ) ) ) ) = 0 ) ) ) ) = 0 ); + wr11: ( SIZEOF( QUERY ( sbwm <* QUERY ( it <* SELF.items | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'SHELL_BASED_WIREFRAME_MODEL' IN TYPEOF( it ) ) ) | ( NOT ( SIZEOF( QUERY ( vs <* QUERY ( sb <* sbwm\ + shell_based_wireframe_model.sbwm_boundary | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MAPPED_ITEM' + IN TYPEOF( it ) ) ) | ( NOT ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 short_length_curve + SUBTYPE OF ( nearly_degenerate_geometry ); + SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; + WHERE + wr1: ( ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'SHAPE_DATA_QUALITY_UPPER_VALUE_LIMIT' ) IN TYPEOF( SELF + \shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold ) ) + AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE' IN value_limit_type( SELF\ + shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold ) ) ); + wr2: validate_measured_data_type( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE' ); + wr3: validate_inspected_elements_type( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CURVE'] ); + wr4: validate_locations_of_extreme_value_type( SELF, [] ); + wr5: validate_accuracy_types( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE'] ); + END_ENTITY; + + ENTITY short_length_curve_segment + SUBTYPE OF ( geometry_with_local_near_degeneracy ); + SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; + WHERE + wr1: ( ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'SHAPE_DATA_QUALITY_UPPER_VALUE_LIMIT' ) IN TYPEOF( SELF + \shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold ) ) + AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE' IN value_limit_type( SELF\ + shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold ) ) ); + wr2: validate_measured_data_type( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE' ); + wr3: validate_inspected_elements_type( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.B_SPLINE_CURVE'] ); + wr4: validate_locations_of_extreme_value_type( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'B_SPLINE_CURVE_SEGMENT' ] ); + wr5: validate_accuracy_types( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE'] ); + END_ENTITY; + + ENTITY short_length_edge + SUBTYPE OF ( topology_related_to_nearly_degenerate_geometry ); + SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; + WHERE + wr1: ( ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'SHAPE_DATA_QUALITY_UPPER_VALUE_LIMIT' ) IN TYPEOF( SELF + \shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold ) ) + AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE' IN value_limit_type( SELF\ + shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold ) ) ); + wr2: validate_measured_data_type( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE' ); + wr3: validate_inspected_elements_type( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.EDGE_CURVE'] ); + wr4: validate_locations_of_extreme_value_type( SELF, [] ); + wr5: validate_accuracy_types( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE'] ); + 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 ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MASS_UNIT' IN TYPEOF( SELF ) ) AND ( SIZEOF( USEDIN( + SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.DERIVED_UNIT_ELEMENT.UNIT' ) ) > 0 ) ) ) OR ( prefix = + si_prefix.kilo ) ); + END_ENTITY; + + ENTITY simple_boolean_expression + ABSTRACT SUPERTYPE OF ( + ONEOF ( + boolean_literal, + boolean_variable ) ) + 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 OF ( + ONEOF ( + literal_number, + numeric_variable ) ) + SUBTYPE OF ( numeric_expression, simple_generic_expression ); + END_ENTITY; + + ENTITY simple_plane_2d_element_property + SUBTYPE OF ( plane_2d_element_property ); + END_ENTITY; + + ENTITY simple_string_expression + ABSTRACT SUPERTYPE OF ( + ONEOF ( + string_literal, + string_variable ) ) + SUBTYPE OF ( string_expression, simple_generic_expression ); + END_ENTITY; + + ENTITY simulation_run; + id : identifier; + name : label; + description : text; + simulated : numerical_model; + results : SET [0 : ?] OF model_property_distribution; + END_ENTITY; + + ENTITY simultaneous_constraint_group + SUBTYPE OF ( variational_representation_item ); + constraint_group : SET [2 : ?] OF constraint_group_member; + WHERE + wr1: ( SIZEOF( QUERY ( q <* using_representations( SELF ) | ( SIZEOF( QUERY ( r <* q.items | ( ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SIMULTANEOUS_CONSTRAINT_GROUP' IN TYPEOF( r ) ) AND ( + SIZEOF( QUERY ( s <* constraint_group | ( ( s IN r\simultaneous_constraint_group.constraint_group ) AND ( NOT ( r + :=: SELF ) ) ) ) ) > 0 ) ) ) ) > 0 ) ) ) = 0 ); + wr2: ( SIZEOF( QUERY ( q <* using_representations( constraint_group[1] ) | ( SIZEOF( QUERY ( r <* constraint_group | + item_in_context( r, q.context_of_items ) ) ) = SIZEOF( constraint_group ) ) ) ) > 0 ); + wr3: ( SIZEOF( QUERY ( q <* constraint_group | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.EXPLICIT_CONSTRAINT' + IN TYPEOF( q ) ) AND ( SIZEOF( QUERY ( r <* q.constrained_elements | ( SIZEOF( QUERY ( s <* constraint_group | ( r + IN s.reference_elements ) ) ) > 0 ) ) ) > 0 ) ) ) ) = 0 ); + END_ENTITY; + + ENTITY sin_function + SUBTYPE OF ( unary_function_call ); + END_ENTITY; + + ENTITY single_area_csg_2d_shape_representation + SUBTYPE OF ( csg_2d_shape_representation ); + SELF\representation.items : SET [1 : ?] OF csg_2d_area_select; + WHERE + wr1: ( SIZEOF( QUERY ( it <* SELF.items | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MAPPED_ITEM' IN TYPEOF( it ) ) ) ) + = 0 ); + wr2: ( SIZEOF( QUERY ( it <* SELF.items | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CSG_SOLID_2D' IN TYPEOF( it ) ) ) ) + = 1 ); + END_ENTITY; + + ENTITY single_boundary_csg_2d_shape_representation + SUBTYPE OF ( single_area_csg_2d_shape_representation ); + WHERE + wr1: ( SIZEOF( QUERY ( it <* SELF.items | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CSG_PRIMITIVE_SOLID_2D' + IN TYPEOF( it ) ) AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRIMITIVE_2D_WITH_INNER_BOUNDARY' IN + TYPEOF( it\csg_primitive_solid_2d.tree_root_expression ) ) ) ) ) = 0 ); + END_ENTITY; + + ENTITY single_point_constraint_element + SUBTYPE OF ( constraint_element ); + required_node : node_output_reference; + coordinate_system : fea_axis2_placement_3d; + freedoms_and_values : SET [1 : ?] OF freedom_and_coefficient; + description : text; + END_ENTITY; + + ENTITY single_point_constraint_element_values + SUBTYPE OF ( state_definition ); + element : single_point_constraint_element; + degrees_of_freedom : freedoms_list; + b : LIST [1 : ?] OF measure_or_unspecified_value; + WHERE + wr1: ( SIZEOF( degrees_of_freedom.freedoms ) = SIZEOF( b ) ); + END_ENTITY; + + ENTITY single_property_is_definition + SUBTYPE OF ( property_definition ); + SELF\property_definition.definition : product_definition; + UNIQUE + ur1 : SELF\property_definition.definition; + END_ENTITY; + + ENTITY skew_line_distance_geometric_constraint + SUBTYPE OF ( explicit_geometric_constraint ); + SELF\explicit_constraint.constrained_elements : SET [1 : 2] OF line; + SELF\explicit_constraint.reference_elements : SET [0 : 1] OF line; + distance_value : non_negative_length_measure; + WHERE + wr1: ( SIZEOF( SELF\explicit_constraint.constrained_elements + SELF\explicit_constraint.reference_elements ) = 2 ); + END_ENTITY; + + ENTITY slash_expression + SUBTYPE OF ( binary_numeric_expression ); + END_ENTITY; + + ENTITY sliding_curve_pair + SUBTYPE OF ( planar_curve_pair ); + END_ENTITY; + + ENTITY sliding_curve_pair_value + SUBTYPE OF ( pair_value ); + SELF\pair_value.applies_to_pair : sliding_curve_pair; + actual_point_on_curve_1 : point_on_curve; + actual_point_on_curve_2 : point_on_curve; + WHERE + wr1: ( SELF\pair_value.applies_to_pair\planar_curve_pair.curve_1 :=: actual_point_on_curve_1.basis_curve ); + wr2: ( SELF\pair_value.applies_to_pair\planar_curve_pair.curve_2 :=: actual_point_on_curve_2.basis_curve ); + END_ENTITY; + + ENTITY sliding_surface_pair + SUBTYPE OF ( surface_pair ); + END_ENTITY; + + ENTITY sliding_surface_pair_value + SUBTYPE OF ( pair_value ); + SELF\pair_value.applies_to_pair : sliding_surface_pair; + actual_point_on_surface_1 : point_on_surface; + actual_point_on_surface_2 : point_on_surface; + actual_rotation : plane_angle_measure; + WHERE + wr1: ( SELF\pair_value.applies_to_pair\surface_pair.surface_1 :=: actual_point_on_surface_1.basis_surface ); + wr2: ( SELF\pair_value.applies_to_pair\surface_pair.surface_2 :=: actual_point_on_surface_2.basis_surface ); + END_ENTITY; + + ENTITY slot + SUBTYPE OF ( feature_definition ); + WHERE + wr1: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + + 'DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. + used_representation ) ) ) | ( NOT ( SIZEOF( impl_rep.used_representation.items ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ); + wr2: ( SIZEOF( QUERY ( pds <* QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) | ( NOT ( SIZEOF( QUERY ( sa_occ <* USEDIN( pds, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) | ( ( sa_occ.description = + 'swept shape occurrence' ) AND ( SIZEOF( QUERY ( sdr <* QUERY ( sar <* USEDIN( sa_occ, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.' + 'RELATED_SHAPE_ASPECT' ) | ( ( + sar.description = 'profile usage' ) AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF( sar ) ) ) ) | ( SIZEOF( [ + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SQUARE_U_PROFILE' , + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PARTIAL_CIRCULAR_PROFILE' , + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ROUNDED_U_PROFILE' , + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.VEE_PROFILE' , + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.TEE_PROFILE' , + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.OPEN_PATH_PROFILE' ] * TYPEOF( sdr.relating_shape_aspect ) ) = + 1 ) ) ) = 1 ) ) ) ) = 1 ) ) ) ) = 0 ); + wr3: ( SIZEOF( QUERY ( pds <* QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) | ( NOT ( SIZEOF( QUERY ( sa_occ <* USEDIN( pds, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) | ( ( sa_occ.description = + 'course of travel occurrence' ) AND ( SIZEOF( QUERY ( sdr <* QUERY ( sar <* USEDIN( sa_occ, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.' + 'RELATED_SHAPE_ASPECT' ) | ( ( + sar.description = 'path feature component usage' ) AND ( sar.name = 'course of travel' ) AND ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF( sar ) ) ) ) | ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PATH_FEATURE_COMPONENT' IN TYPEOF( sdr.relating_shape_aspect ) ) ) ) + = 1 ) ) ) ) = 1 ) ) ) ) = 0 ); + wr4: ( SIZEOF( QUERY ( pds <* QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) | ( NOT ( ( SIZEOF( QUERY ( sa_occ <* USEDIN( pds, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) | ( ( sa_occ.description = + 'end condition occurrence' ) AND ( SIZEOF( QUERY ( fcr <* QUERY ( sar <* USEDIN( sa_occ, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT' ) | ( ( sar. + description = 'slot end usage' ) AND ( sar.name IN [ 'course of travel start', 'course of travel end'] ) AND ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF( sar ) ) ) ) | ( ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SLOT_END' IN TYPEOF( fcr.relating_shape_aspect ) ) AND ( fcr. + relating_shape_aspect.description IN [ 'open', 'radiused', 'flat', 'woodruff'] ) AND ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SLOT' IN TYPEOF( fcr.related_shape_aspect.of_shape.definition ) ) ) ) ) + = 1 ) ) ) ) = 2 ) OR ( SIZEOF( QUERY ( sa_occ <* USEDIN( pds, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'SHAPE_ASPECT.OF_SHAPE' ) | ( ( sa_occ.description = 'end condition occurrence' ) AND ( SIZEOF( QUERY ( fcr <* + QUERY ( sar <* USEDIN( sa_occ, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.' + + 'RELATED_SHAPE_ASPECT' ) | ( ( sar.description = 'slot end usage' ) AND ( sar.name IN [ 'course of travel start', + 'course of travel end' ] ) AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF( sar ) ) ) ) | ( ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SLOT_END' IN TYPEOF( fcr.relating_shape_aspect ) ) AND ( fcr. + relating_shape_aspect.description IN [ 'loop'] ) AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SLOT' IN + TYPEOF( fcr.related_shape_aspect.of_shape.definition ) ) ) ) ) = 1 ) ) ) ) = 1 ) ) ) ) ) = 0 ); + wr5: ( ( NOT ( SIZEOF( QUERY ( pds <* QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) | ( NOT ( SIZEOF( QUERY ( sa_occ <* USEDIN( pds, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) | ( ( sa_occ.description = + 'end condition occurrence' ) AND ( SIZEOF( QUERY ( fcr <* QUERY ( sar <* USEDIN( sa_occ, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT' ) | ( ( sar. + description = 'slot end usage' ) AND ( sar.name IN [ 'course of travel start', 'course of travel end'] ) AND ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF( sar ) ) ) ) | ( ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SLOT_END' IN TYPEOF( fcr.relating_shape_aspect ) ) AND ( fcr. + relating_shape_aspect.description IN [ 'loop'] ) AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SLOT' IN + TYPEOF( fcr.related_shape_aspect.of_shape.definition ) ) ) ) ) = 1 ) ) ) ) = 1 ) ) ) ) = 0 ) ) OR ( SIZEOF( + QUERY ( pds <* QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + + 'DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) + | ( NOT ( SIZEOF( QUERY ( sa_occ <* USEDIN( pds, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT.' + + 'OF_SHAPE' ) | ( ( sa_occ.description = 'course of travel occurrence' ) AND ( SIZEOF( QUERY ( sdr <* + QUERY ( sar <* USEDIN( sa_occ, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.' + + 'RELATED_SHAPE_ASPECT' ) | ( ( sar.description = 'path feature component usage' ) AND ( sar.name = + 'course of travel' ) AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_DEFINING_RELATIONSHIP' IN + TYPEOF( sar ) ) ) ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PATH_FEATURE_COMPONENT' IN TYPEOF( + sdr.relating_shape_aspect ) ) AND ( sdr.relating_shape_aspect.description IN [ 'complex', 'complete circular'] ) ) ) ) + = 1 ) ) ) ) = 1 ) ) ) ) = 0 ) ); + wr6: ( SIZEOF( QUERY ( pdr <* get_property_definition_representations( SELF ) | ( ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PLANAR_SHAPE_REPRESENTATION' IN TYPEOF( pdr. + used_representation ) ) AND ( pdr.used_representation.name = 'maximum feature limit' ) ) ) ) >= 0 ); + END_ENTITY; + + ENTITY slot_end + SUBTYPE OF ( shape_aspect ); + WHERE + wr1 : ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FEATURE_COMPONENT_DEFINITION' IN TYPEOF( SELF.of_shape. + definition ) ); + wr2 : ( SELF.description IN [ 'open', 'radiused', 'flat', 'woodruff', 'loop'] ); + wr3 : ( ( NOT ( SELF.description IN [ 'open', 'radiused', 'loop'] ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( + QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.' + + 'DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' + IN TYPEOF( pdr.used_representation ) ) ) ) = 0 ) ) ) ) = 0 ) ); + wr4 : ( ( NOT ( SELF.description IN [ 'flat', 'woodruff'] ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( + QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.' + + 'DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' + IN TYPEOF( pdr.used_representation ) ) ) ) = 1 ) ) ) ) = 0 ) ); + wr5 : ( ( NOT ( SELF.description IN [ 'flat'] ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( + QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( impl_rep. + used_representation.items ) = 2 ) ) ) ) = 0 ) ) ) ) = 0 ) ); + wr6 : ( ( NOT ( SELF.description = 'flat' ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( + QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( + QUERY ( it <* impl_rep.used_representation.items | ( ( SIZEOF( [ + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM' , + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( it ) ) = 2 ) AND ( it. + name = 'first radius' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ) ); + wr7 : ( ( NOT ( SELF.description = 'flat' ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( + QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( + QUERY ( it <* impl_rep.used_representation.items | ( ( SIZEOF( [ + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM' , + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( it ) ) = 2 ) AND ( it. + name = 'second radius' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ) ); + wr8 : ( ( NOT ( SELF.description = 'woodruff' ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( + QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( + QUERY ( it <* impl_rep.used_representation.items | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'LENGTH_MEASURE_WITH_UNIT' IN TYPEOF( it ) ) AND ( it.name = 'radius' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ) ); + wr9 : ( ( NOT ( SELF.description IN [ 'woodruff'] ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( + QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( impl_rep. + used_representation.items ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ) ); + wr10: ( SIZEOF( QUERY ( fcr <* QUERY ( sar <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'SHAPE_ASPECT_RELATIONSHIP.' + 'RELATING_SHAPE_ASPECT' ) | ( ( sar.description = 'slot end usage' ) AND ( sar. + name IN [ 'course of travel start', 'course of travel end'] ) AND ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF( sar ) ) ) ) | ( + ( fcr.related_shape_aspect.description = 'end condition occurrence' ) AND ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SLOT' IN TYPEOF( fcr.related_shape_aspect.of_shape. + definition ) ) AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SLOT_END' IN TYPEOF( fcr. + relating_shape_aspect ) ) ) ) ) >= 1 ); + END_ENTITY; + + ENTITY small_area_face + SUBTYPE OF ( topology_related_to_nearly_degenerate_geometry ); + SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; + WHERE + wr1: ( ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'SHAPE_DATA_QUALITY_UPPER_VALUE_LIMIT' ) IN TYPEOF( SELF + \shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold ) ) + AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.AREA_MEASURE' IN value_limit_type( SELF\ + shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold ) ) ); + wr2: validate_measured_data_type( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.AREA_MEASURE' ); + wr3: validate_inspected_elements_type( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FACE_SURFACE'] ); + wr4: validate_locations_of_extreme_value_type( SELF, [] ); + wr5: validate_accuracy_types( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.AREA_MEASURE'] ); + END_ENTITY; + + ENTITY small_area_surface + SUBTYPE OF ( nearly_degenerate_geometry ); + SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; + WHERE + wr1: ( ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'SHAPE_DATA_QUALITY_UPPER_VALUE_LIMIT' ) IN TYPEOF( SELF + \shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold ) ) + AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.AREA_MEASURE' IN value_limit_type( SELF\ + shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold ) ) ); + wr2: validate_measured_data_type( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.AREA_MEASURE' ); + wr3: validate_inspected_elements_type( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SURFACE'] ); + wr4: validate_locations_of_extreme_value_type( SELF, [] ); + wr5: validate_accuracy_types( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.AREA_MEASURE'] ); + END_ENTITY; + + ENTITY small_area_surface_patch + SUBTYPE OF ( geometry_with_local_near_degeneracy ); + SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; + WHERE + wr1: ( ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'SHAPE_DATA_QUALITY_UPPER_VALUE_LIMIT' ) IN TYPEOF( SELF + \shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold ) ) + AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.AREA_MEASURE' IN value_limit_type( SELF\ + shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold ) ) ); + wr2: validate_measured_data_type( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.AREA_MEASURE' ); + wr3: validate_inspected_elements_type( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.B_SPLINE_SURFACE'] ); + wr4: validate_locations_of_extreme_value_type( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'B_SPLINE_SURFACE_PATCH' ] ); + wr5: validate_accuracy_types( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.AREA_MEASURE'] ); + END_ENTITY; + + ENTITY small_volume_solid + SUBTYPE OF ( inapt_manifold_solid_brep ); + SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; + WHERE + wr1: ( ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'SHAPE_DATA_QUALITY_UPPER_VALUE_LIMIT' ) IN TYPEOF( SELF + \shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold ) ) + AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.VOLUME_MEASURE' IN value_limit_type( SELF\ + shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold ) ) ); + wr2: validate_measured_data_type( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.VOLUME_MEASURE' ); + wr3: validate_inspected_elements_type( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MANIFOLD_SOLID_BREP'] ); + wr4: validate_locations_of_extreme_value_type( SELF, [] ); + wr5: validate_accuracy_types( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.VOLUME_MEASURE'] ); + END_ENTITY; + + ENTITY smeared_material_definition + SUBTYPE OF ( zone_structural_makeup ); + END_ENTITY; + + ENTITY software_for_data_quality_check; + description : text; + software_name : text; + software_version : text; + data_quality : data_quality_definition_representation_relationship; + END_ENTITY; + + ENTITY solid_angle_measure_with_unit + SUBTYPE OF ( measure_with_unit ); + WHERE + wr1: ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ) AND ( SELF\named_unit.dimensions.mass_exponent = 0 ) AND ( SELF\ + named_unit.dimensions.time_exponent = 0 ) AND ( SELF\named_unit.dimensions.electric_current_exponent = 0 ) AND ( + SELF\named_unit.dimensions.thermodynamic_temperature_exponent = 0 ) AND ( SELF\named_unit.dimensions. + amount_of_substance_exponent = 0 ) AND ( SELF\named_unit.dimensions.luminous_intensity_exponent = 0 ) ); + END_ENTITY; + + ENTITY solid_constraint + SUBTYPE OF ( constraint_element ); + required_solid : analysis_item_within_representation; + coordinate_system : fea_axis2_placement_3d; + freedoms_and_coefficients : SET [1 : ?] OF freedom_and_coefficient; + description : text; + WHERE + wr1: ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SOLID_MODEL' IN TYPEOF( required_solid.item ) ); + END_ENTITY; + + ENTITY solid_curve_font + SUBTYPE OF ( pre_defined_curve_font ); + END_ENTITY; + + ENTITY solid_freedom_action_definition + SUBTYPE OF ( solid_freedom_and_value_definition ); + action : action_type; + END_ENTITY; + + ENTITY solid_freedom_and_value_definition + SUPERTYPE OF ( + ONEOF ( + solid_freedom_values, + solid_freedom_action_definition ) ) + SUBTYPE OF ( state_definition ); + required_solid : analysis_item_within_representation; + coordinate_system : fea_axis2_placement_3d; + degrees_of_freedom : freedoms_list; + values : LIST [1 : ?] OF measure_or_unspecified_value; + WHERE + wr1: ( SIZEOF( degrees_of_freedom.freedoms ) = SIZEOF( values ) ); + wr2: ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SOLID_MODEL' IN TYPEOF( required_solid.item ) ); + END_ENTITY; + + ENTITY solid_freedom_values + SUBTYPE OF ( solid_freedom_and_value_definition ); + 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_excessive_number_of_voids + SUBTYPE OF ( inapt_manifold_solid_brep ); + SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; + WHERE + wr1: ( ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' ) IN TYPEOF( SELF + \shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold ) ) + AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.COUNT_MEASURE' IN value_limit_type( SELF\ + shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold ) ) ); + wr2: validate_measured_data_type( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.COUNT_MEASURE' ); + wr3: validate_inspected_elements_type( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MANIFOLD_SOLID_BREP'] ); + wr4: validate_locations_of_extreme_value_type( SELF, [] ); + wr5: validate_accuracy_types( SELF, [] ); + 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( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CURVE_BOUNDED_SURFACE', + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CURVE_BOUNDED_SURFACE', + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SOLID_WITH_THROUGH_DEPRESSION' IN TYPEOF( SELF ) ) AND + ( SIZEOF( TYPEOF( SELF ) * [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SOLID_WITH_FLAT_BOTTOM_ROUND_HOLE', + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SOLID_WITH_SPHERICAL_BOTTOM_ROUND_HOLE' , + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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: ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ) * [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SOLID_WITH_HOLE', + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SOLID_WITH_POCKET' , + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ( 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 solid_with_wrong_number_of_voids + SUBTYPE OF ( erroneous_manifold_solid_brep ); + SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_logical_test; + WHERE + wr1: validate_measured_data_type( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.BOOLEAN_VALUE' ); + wr2: validate_inspected_elements_type( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.BREP_WITH_VOIDS'] ); + wr3: validate_locations_of_extreme_value_type( SELF, [] ); + wr4: validate_accuracy_types( SELF, [] ); + END_ENTITY; + + ENTITY source_for_requirement + SUBTYPE OF ( group_assignment ); + SELF\group_assignment.assigned_group : requirement_source; + items : SET [1 : 1] OF requirement_source_item; + END_ENTITY; + + ENTITY sourced_requirement + SUBTYPE OF ( group_assignment ); + SELF\group_assignment.assigned_group : requirement_source; + items : SET [1 : 1] OF product_definition; + END_ENTITY; + + ENTITY spatial_decomposition_of_numerical_model; + parts : SET [2 : ?] OF numerical_model; + whole : numerical_model; + END_ENTITY; + + ENTITY spatial_decomposition_of_temporal_spatial_domain; + parts : SET [2 : ?] OF temporal_spatial_domain; + whole : temporal_spatial_domain; + END_ENTITY; + + ENTITY specification_definition + SUBTYPE OF ( product_definition ); + END_ENTITY; + + ENTITY specified_general_property + SUBTYPE OF ( general_property ); + name_specifier : choose_general_property_identifier; + 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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'PRODUCT_DEFINITION_RELATIONSHIP.' + 'RELATED_PRODUCT_DEFINITION' ) | ( pdr.relating_product_definition :=: + next_usage.relating_product_definition ) ) ) = 1 ) ); + wr5: ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.NEXT_ASSEMBLY_USAGE_OCCURRENCE', + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SPECIFIED_HIGHER_USAGE_OCCURRENCE' ] * TYPEOF( upper_usage ) ) + = 1 ); + END_ENTITY; + + ENTITY specified_representation_context + SUBTYPE OF ( representation_context ); + class_specifier : choose_representation_context_identifier; + END_ENTITY; + + ENTITY specified_state + SUBTYPE OF ( state ); + END_ENTITY; + + ENTITY sphere + SUBTYPE OF ( geometric_representation_item ); + radius : positive_length_measure; + centre : point; + END_ENTITY; + + ENTITY spherical_cap + SUBTYPE OF ( feature_definition ); + WHERE + wr1: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + + 'DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. + used_representation ) ) ) | ( NOT ( SIZEOF( impl_rep.used_representation.items ) = 3 ) ) ) ) = 0 ) ) ) ) = 0 ); + wr2: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + + 'DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. + used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( SIZEOF( [ + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM' , + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( it ) ) = 2 ) AND ( it. + name = 'radius' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ); + wr3: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + + 'DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. + used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( SIZEOF( [ + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM' , + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PLANE_ANGLE_MEASURE_WITH_UNIT' ] * TYPEOF( it ) ) = 2 ) AND ( + it.name = 'internal angle' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ); + END_ENTITY; + + ENTITY spherical_pair + SUBTYPE OF ( low_order_kinematic_pair ); + DERIVE + SELF\low_order_kinematic_pair.t_x : BOOLEAN := FALSE; + SELF\low_order_kinematic_pair.t_y : BOOLEAN := FALSE; + SELF\low_order_kinematic_pair.t_z : BOOLEAN := FALSE; + SELF\low_order_kinematic_pair.r_x : BOOLEAN := TRUE; + SELF\low_order_kinematic_pair.r_y : BOOLEAN := TRUE; + SELF\low_order_kinematic_pair.r_z : BOOLEAN := TRUE; + END_ENTITY; + + ENTITY spherical_pair_value + SUBTYPE OF ( pair_value ); + SELF\pair_value.applies_to_pair : spherical_pair_select; + input_orientation : spatial_rotation; + DERIVE + actual_orientation : ypr_rotation := convert_spatial_to_ypr_rotation( SELF\pair_value.applies_to_pair, input_orientation ); + END_ENTITY; + + ENTITY spherical_pair_with_pin + SUBTYPE OF ( low_order_kinematic_pair ); + DERIVE + SELF\low_order_kinematic_pair.t_x : BOOLEAN := FALSE; + SELF\low_order_kinematic_pair.t_y : BOOLEAN := FALSE; + SELF\low_order_kinematic_pair.t_z : BOOLEAN := FALSE; + SELF\low_order_kinematic_pair.r_x : BOOLEAN := FALSE; + SELF\low_order_kinematic_pair.r_y : BOOLEAN := TRUE; + SELF\low_order_kinematic_pair.r_z : BOOLEAN := TRUE; + END_ENTITY; + + ENTITY spherical_pair_with_pin_and_range + SUBTYPE OF ( spherical_pair_with_pin ); + lower_limit_yaw : OPTIONAL plane_angle_measure; + upper_limit_yaw : OPTIONAL plane_angle_measure; + lower_limit_roll : OPTIONAL plane_angle_measure; + upper_limit_roll : OPTIONAL plane_angle_measure; + WHERE + wr1: ( ( ( NOT EXISTS( lower_limit_yaw ) ) OR ( NOT EXISTS( upper_limit_yaw ) ) ) XOR ( lower_limit_yaw < upper_limit_yaw ) ); + wr2: ( ( ( NOT EXISTS( lower_limit_roll ) ) OR ( NOT EXISTS( upper_limit_roll ) ) ) XOR ( lower_limit_roll < + upper_limit_roll ) ); + END_ENTITY; + + ENTITY spherical_pair_with_range + SUBTYPE OF ( spherical_pair ); + lower_limit_yaw : OPTIONAL plane_angle_measure; + upper_limit_yaw : OPTIONAL plane_angle_measure; + lower_limit_pitch : OPTIONAL plane_angle_measure; + upper_limit_pitch : OPTIONAL plane_angle_measure; + lower_limit_roll : OPTIONAL plane_angle_measure; + upper_limit_roll : OPTIONAL plane_angle_measure; + WHERE + wr1: ( ( ( NOT EXISTS( lower_limit_yaw ) ) OR ( NOT EXISTS( upper_limit_yaw ) ) ) XOR ( lower_limit_yaw < upper_limit_yaw ) ); + wr2: ( ( ( NOT EXISTS( lower_limit_pitch ) ) OR ( NOT EXISTS( upper_limit_pitch ) ) ) XOR ( lower_limit_pitch < + upper_limit_pitch ) ); + wr3: ( ( ( NOT EXISTS( lower_limit_roll ) ) OR ( NOT EXISTS( upper_limit_roll ) ) ) XOR ( lower_limit_roll < + upper_limit_roll ) ); + END_ENTITY; + + ENTITY spherical_surface + SUBTYPE OF ( elementary_surface ); + radius : positive_length_measure; + END_ENTITY; + + ENTITY sql_mappable_defined_function + ABSTRACT SUPERTYPE + SUBTYPE OF ( defined_function ); + END_ENTITY; + + ENTITY square_root_function + SUBTYPE OF ( unary_function_call ); + END_ENTITY; + + ENTITY square_u_profile + SUBTYPE OF ( shape_aspect ); + WHERE + wr1 : ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FEATURE_COMPONENT_DEFINITION' IN TYPEOF( SELF.of_shape. + definition ) ); + wr2 : ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + + 'DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( pdr <* USEDIN( pd, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. + used_representation ) ) ) ) = 1 ) ) ) ) = 0 ); + wr3 : ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + + 'DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. + used_representation ) ) ) | ( ( NOT ( SIZEOF( impl_rep.used_representation.items ) >= 4 ) ) AND ( SIZEOF( impl_rep + .used_representation.items ) <= 7 ) ) ) ) = 0 ) ) ) ) = 0 ); + wr4 : ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + + 'DEFINITION' ) | ( SIZEOF( QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) AND ( SIZEOF( QUERY ( srwp_i <* + pdr.used_representation.items | ( ( srwp_i.name = 'orientation' ) OR ( srwp_i.name = 'width' ) OR ( srwp_i.name = + 'first angle' ) OR ( srwp_i.name = 'second angle' ) OR ( srwp_i.name = 'first radius' ) OR ( srwp_i.name = + 'second radius' ) OR ( srwp_i.name = 'profile limit' ) OR ( srwp_i.name = 'depth' ) ) ) ) = SIZEOF( pdr. + used_representation.items ) ) ) ) ) = 1 ) ) ) = 1 ); + wr5 : ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + + 'DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. + used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PLACEMENT' IN TYPEOF( it ) ) AND ( it.name = 'orientation' ) ) ) ) + = 1 ) ) ) ) = 0 ) ) ) ) = 0 ); + wr6 : ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + + 'DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. + used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( SIZEOF( [ + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM' , + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( it ) ) = 2 ) AND ( it. + name = 'width' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ); + wr7 : ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + + 'DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. + used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( SIZEOF( [ + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM' , + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( it ) ) = 2 ) AND ( it. + name = 'first radius' ) ) ) ) <= 1 ) ) ) ) = 0 ) ) ) ) = 0 ); + wr8 : ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + + 'DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. + used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( SIZEOF( [ + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM' , + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( it ) ) = 2 ) AND ( it. + name = 'second radius' ) ) ) ) <= 1 ) ) ) ) = 0 ) ) ) ) = 0 ); + wr9 : ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + + 'DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. + used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( SIZEOF( [ + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM' , + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PLANE_ANGLE_MEASURE_WITH_UNIT' ] * TYPEOF( it ) ) = 2 ) AND + ( it.name = 'first angle' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ); + wr10: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + + 'DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. + used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( SIZEOF( [ + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM' , + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PLANE_ANGLE_MEASURE_WITH_UNIT' ] * TYPEOF( it ) ) = 2 ) AND + ( it.name = 'second angle' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ); + wr11: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + + 'DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( pdr <* USEDIN( pd, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PLANAR_SHAPE_REPRESENTATION' IN TYPEOF( pdr. + used_representation ) ) AND ( pdr.used_representation.name = 'profile limit' ) ) ) ) <= 1 ) ) ) ) = 0 ); + wr12: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + + 'DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. + used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( SIZEOF( [ + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM' , + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( it ) ) = 2 ) AND ( it. + name = 'depth' ) ) ) ) <= 1 ) ) ) ) = 0 ) ) ) ) = 0 ); + END_ENTITY; + + ENTITY standard_table_function + SUBTYPE OF ( linearized_table_function ); + order : ordering_type; + WHERE + wr1: extremal_position_check( SELF ); + 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 state + SUPERTYPE OF ( + ONEOF ( + specified_state, + calculated_state, + linearly_superimposed_state, + output_request_state ) ); + state_id : identifier; + description : text; + END_ENTITY; + + ENTITY state_component + SUBTYPE OF ( state ); + state : linearly_superimposed_state; + factor : context_dependent_measure; + END_ENTITY; + + ENTITY state_definition + SUPERTYPE OF ( + ONEOF ( + field_variable_definition, + nodal_freedom_and_value_definition, + element_nodal_freedom_actions, + point_freedom_and_value_definition, + curve_freedom_and_value_definition, + surface_freedom_and_value_definition, + solid_freedom_and_value_definition, + linear_constraint_equation_element_value, + single_point_constraint_element_values, + analysis_message ) ); + defined_state : state; + END_ENTITY; + + ENTITY state_relationship; + name : label; + description : text; + relating_state : state; + related_state : state; + END_ENTITY; + + ENTITY state_type; + name : label; + description : OPTIONAL text; + END_ENTITY; + + ENTITY state_type_assignment + ABSTRACT SUPERTYPE; + assigned_state_type : state_type; + role : state_type_role; + END_ENTITY; + + ENTITY state_type_relationship; + name : label; + description : OPTIONAL text; + relating_state_type : SET [1 : ?] OF state_type; + related_state_type : SET [1 : ?] OF state_type; + END_ENTITY; + + ENTITY state_type_role; + name : label; + description : OPTIONAL text; + END_ENTITY; + + ENTITY state_view_relationship; + id : identifier; + name : label; + description : OPTIONAL text; + discretised_model : discretised_state_model_select; + idealised_state : idealised_state_select; + END_ENTITY; + + ENTITY state_with_harmonic + SUBTYPE OF ( state ); + symmetry : cylindrical_symmetry_control; + END_ENTITY; + + ENTITY stationary_mass + SUBTYPE OF ( point_element_matrix ); + mass : ARRAY [1 : 3] OF context_dependent_measure; + moments_of_inertia : symmetric_tensor2_3d; + coordinate_system : fea_axis2_placement_3d; + offset_vector : ARRAY [1 : 3] OF context_dependent_measure; + END_ENTITY; + + ENTITY steep_angle_between_adjacent_edges + SUBTYPE OF ( steep_geometry_transition_across_edge ); + SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; + WHERE + wr1: ( ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' ) IN TYPEOF( SELF + \shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold ) ) + AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PLANE_ANGLE_MEASURE' IN value_limit_type( SELF\ + shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold ) ) ); + wr2: validate_measured_data_type( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PLANE_ANGLE_MEASURE' ); + wr3: validate_inspected_elements_type( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.EDGE_LOOP'] ); + wr4: validate_locations_of_extreme_value_type( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ORIENTED_EDGE'] ); + wr5: validate_accuracy_types( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PLANE_ANGLE_MEASURE'] ); + END_ENTITY; + + ENTITY steep_angle_between_adjacent_faces + SUBTYPE OF ( steep_geometry_transition_across_edge ); + SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; + WHERE + wr1: ( ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' ) IN TYPEOF( SELF + \shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold ) ) + AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PLANE_ANGLE_MEASURE' IN value_limit_type( SELF\ + shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold ) ) ); + wr2: validate_measured_data_type( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PLANE_ANGLE_MEASURE' ); + wr3: validate_inspected_elements_type( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CONNECTED_FACE_SET'] ); + wr4: validate_locations_of_extreme_value_type( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'POINT_ON_EDGE_CURVE' ] ); + wr5: validate_accuracy_types( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PLANE_ANGLE_MEASURE'] ); + END_ENTITY; + + ENTITY steep_geometry_transition_across_edge + ABSTRACT SUPERTYPE OF ( + ONEOF ( + steep_angle_between_adjacent_edges, + steep_angle_between_adjacent_faces ) ) + SUBTYPE OF ( inapt_topology_and_geometry_relationship ); + END_ENTITY; + + ENTITY step + SUBTYPE OF ( feature_definition ); + WHERE + wr1: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + + 'DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. + used_representation ) ) ) | ( NOT ( SIZEOF( impl_rep.used_representation.items ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ); + wr2: ( SIZEOF( QUERY ( pds <* QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) | ( NOT ( SIZEOF( QUERY ( sa_occ <* USEDIN( pds, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) | ( ( sa_occ.description = + 'course of travel occurrence' ) AND ( SIZEOF( QUERY ( sdr <* QUERY ( sar <* USEDIN( sa_occ, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT' ) | ( ( sar. + description = 'path feature component usage' ) AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF( sar ) ) ) ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'PATH_FEATURE_COMPONENT' IN TYPEOF( sdr.relating_shape_aspect ) ) AND ( sdr.relating_shape_aspect.description = + 'linear' ) ) ) ) = 1 ) ) ) ) = 1 ) ) ) ) = 0 ); + wr3: ( SIZEOF( QUERY ( pds <* QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) | ( NOT ( SIZEOF( QUERY ( sa_occ <* USEDIN( pds, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) | ( ( sa_occ.description = + 'removal boundary occurrence' ) AND ( SIZEOF( QUERY ( sdr <* QUERY ( sar <* USEDIN( sa_occ, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT' ) | ( ( sar. + description = 'profile usage' ) AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF( sar ) ) ) ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'VEE_PROFILE' IN TYPEOF( sdr.relating_shape_aspect ) ) ) ) = 1 ) ) ) ) = 1 ) ) ) ) = 0 ); + wr4: ( SIZEOF( QUERY ( pdr <* get_property_definition_representations( SELF ) | ( ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PLANAR_SHAPE_REPRESENTATION' IN TYPEOF( pdr. + used_representation ) ) AND ( pdr.used_representation.name = 'maximum feature limit' ) ) ) ) >= 0 ); + wr5: ( SIZEOF( QUERY ( pds <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + + 'DEFINITION' ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF( + pds ) ) AND ( SIZEOF( QUERY ( csa <* USEDIN( pds, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT.' + + 'OF_SHAPE' ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.COMPOSITE_SHAPE_ASPECT' IN TYPEOF( csa ) ) + AND ( csa.name = 'uncut volume' ) AND ( SIZEOF( QUERY ( sar <* csa.component_relationships | ( ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF( sar ) ) AND ( + SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.BOSS', + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROTRUSION' ] * TYPEOF( sar.related_shape_aspect ) ) = 1 ) ) ) ) + = 1 ) ) ) ) <= 1 ) ) ) ) = 1 ); + END_ENTITY; + + ENTITY straightness_tolerance + SUBTYPE OF ( geometric_tolerance ); + WHERE + wr1: ( NOT ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'GEOMETRIC_TOLERANCE_WITH_DATUM_REFERENCE' ) IN + TYPEOF( SELF ) ) ); + END_ENTITY; + + ENTITY strict_triangular_matrix + SUBTYPE OF ( triangular_matrix ); + main_diagonal_value : maths_value; + END_ENTITY; + + ENTITY string_defined_function + ABSTRACT SUPERTYPE + SUBTYPE OF ( defined_function, string_expression ); + END_ENTITY; + + ENTITY string_expression + ABSTRACT SUPERTYPE OF ( + ONEOF ( + simple_string_expression, + index_expression, + substring_expression, + concat_expression, + format_function, + string_defined_function ) ) + SUBTYPE OF ( expression ); + END_ENTITY; + + ENTITY string_literal + SUBTYPE OF ( simple_string_expression, generic_literal ); + the_value : STRING; + END_ENTITY; + + ENTITY string_variable + SUBTYPE OF ( simple_string_expression, variable ); + END_ENTITY; + + ENTITY structural_response_property + SUBTYPE OF ( property_definition ); + END_ENTITY; + + ENTITY structural_response_property_definition_representation + SUBTYPE OF ( property_definition_representation ); + WHERE + wr1: ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'STRUCTURAL_RESPONSE_PROPERTY' ) IN TYPEOF( SELF\ + property_definition_representation.definition ) ); + wr2: ( ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FEA_MODEL' IN TYPEOF( SELF\ + property_definition_representation.used_representation ) ) AND ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FEA_MODEL_DEFINITION' IN TYPEOF( SELF\ + property_definition_representation.definition.definition ) ) ) OR ( ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ELEMENT_REPRESENTATION' IN TYPEOF( SELF\ + property_definition_representation.used_representation ) ) AND ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ELEMENT_DEFINITION' IN TYPEOF( SELF\ + property_definition_representation.definition.definition ) ) ) OR ( ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.NODE_REPRESENTATION' IN TYPEOF( SELF\ + property_definition_representation.used_representation ) ) AND ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.NODE_DEFINITION' IN TYPEOF( SELF\ + property_definition_representation.definition.definition ) ) ) ); + END_ENTITY; + + ENTITY structured_dimension_callout + SUBTYPE OF ( draughting_callout ); + WHERE + wr1: ( SIZEOF( TYPEOF( SELF ) * [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.DATUM_FEATURE_CALLOUT', + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.DATUM_TARGET_CALLOUT' , + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.GEOMETRICAL_TOLERANCE_CALLOUT' , + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LEADER_DIRECTED_CALLOUT' , + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROJECTION_DIRECTED_CALLOUT' , + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.DIMENSION_CURVE_DIRECTED_CALLOUT' ] ) = 0 ); + wr2: ( SIZEOF( QUERY ( ato <* QUERY ( con <* SELF.contents | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'ANNOTATION_TEXT_OCCURRENCE' IN TYPEOF( con ) ) ) | ( ato.name = 'dimension value' ) ) ) >= 1 ); + wr4: ( SIZEOF( QUERY ( dcr <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'DRAUGHTING_CALLOUT_RELATIONSHIP.' + 'RELATING_DRAUGHTING_CALLOUT' ) | ( ( ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'DIMENSION_CALLOUT_COMPONENT_RELATIONSHIP' ) IN TYPEOF( + dcr ) ) AND ( dcr.name = 'prefix' ) ) ) ) <= 1 ); + wr5: ( SIZEOF( QUERY ( dcr <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'DRAUGHTING_CALLOUT_RELATIONSHIP.' + 'RELATING_DRAUGHTING_CALLOUT' ) | ( ( ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'DIMENSION_CALLOUT_COMPONENT_RELATIONSHIP' ) IN TYPEOF( + dcr ) ) AND ( dcr.name = 'suffix' ) ) ) ) <= 1 ); + wr6: ( ( NOT ( SIZEOF( QUERY ( ato <* QUERY ( con <* SELF.contents | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'ANNOTATION_TEXT_OCCURRENCE' IN TYPEOF( con ) ) ) | ( ato.name = 'prefix text' ) ) ) > 0 ) ) OR ( SIZEOF( + QUERY ( dcr <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'DRAUGHTING_CALLOUT_RELATIONSHIP.' + 'RELATING_DRAUGHTING_CALLOUT' ) | ( ( ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'DIMENSION_CALLOUT_COMPONENT_RELATIONSHIP' ) IN TYPEOF( + dcr ) ) AND ( dcr.name = 'prefix' ) ) ) ) = 1 ) ); + wr7: ( ( NOT ( SIZEOF( QUERY ( ato <* QUERY ( con <* SELF.contents | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'ANNOTATION_TEXT_OCCURRENCE' IN TYPEOF( con ) ) ) | ( ato.name = 'suffix text' ) ) ) > 0 ) ) OR ( SIZEOF( + QUERY ( dcr <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'DRAUGHTING_CALLOUT_RELATIONSHIP.' + 'RELATING_DRAUGHTING_CALLOUT' ) | ( ( ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'DIMENSION_CALLOUT_COMPONENT_RELATIONSHIP' ) IN TYPEOF( + dcr ) ) AND ( dcr.name = 'suffix' ) ) ) ) = 1 ) ); + END_ENTITY; + + ENTITY structured_donor_mesh + SUBTYPE OF ( mismatched_donor_mesh ); + SELF\mismatched_donor_mesh.donor : structured_mesh; + points : listed_real_data; + vsize : INTEGER; + DERIVE + index_count : INTEGER := donor.index_count; + END_ENTITY; + + ENTITY structured_mesh + SUBTYPE OF ( mesh ); + vertex_counts : ARRAY [1 : SELF\mesh.index_count] OF INTEGER; + cell_counts : ARRAY [1 : SELF\mesh.index_count] OF INTEGER; + kind : structured_mesh_type; + END_ENTITY; + + ENTITY structured_mesh_with_rind + SUBTYPE OF ( structured_mesh ); + rind_planes : rind; + 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 : styled_item_target; + WHERE + wr1: ( ( SIZEOF( SELF.styles ) = 1 ) XOR ( SIZEOF( QUERY ( pres_style <* SELF.styles | ( NOT ( ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PRESENTATION_STYLE_BY_CONTEXT' ) IN TYPEOF( pres_style ) ) ) ) ) + = 0 ) ); + wr2: ( NOT ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.STYLED_ITEM' IN TYPEOF( item ) ) ); + wr3: ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MAPPED_ITEM' IN TYPEOF( item ) ) OR ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.GEOMETRIC_REPRESENTATION_ITEM' IN TYPEOF( item ) ) OR ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CONTEXT_DEPENDENT_OVER_RIDING_STYLED_ITEM' IN TYPEOF( SELF ) ) ); + END_ENTITY; + + ENTITY su_parameters + SUBTYPE OF ( geometric_representation_item ); + a : length_measure; + alpha : plane_angle_measure; + b : length_measure; + beta : plane_angle_measure; + c : length_measure; + gamma : plane_angle_measure; + WHERE + wr1: ( SELF\geometric_representation_item.dim = 3 ); + 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 submesh + SUBTYPE OF ( mesh ); + END_ENTITY; + + ENTITY subsketch + SUBTYPE OF ( geometric_representation_item ); + subsketch_elements : SET [1 : ?] OF sketch_element_select; + owning_sketch : sketch_type_select; + WHERE + wr1: ( ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.NEUTRAL_SKETCH_REPRESENTATION' IN TYPEOF( owning_sketch ) ) + AND ( SIZEOF( QUERY ( q <* subsketch_elements | ( NOT ( owning_sketch IN using_representations( q ) ) ) ) ) = 0 ) ) + XOR ( ( SIZEOF( TYPEOF( owning_sketch ) * [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.POSITIONED_SKETCH', + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SUBSKETCH' ] ) = 1 ) AND ( SIZEOF( QUERY ( q <* + subsketch_elements | ( NOT ( owning_sketch IN using_items( q, [] ) ) ) ) ) = 0 ) ) ); + END_ENTITY; + + ENTITY substring_expression + SUBTYPE OF ( string_expression, multiple_arity_generic_expression ); + DERIVE + operand : generic_expression := SELF\multiple_arity_generic_expression.operands[1]; + index1 : generic_expression := SELF\multiple_arity_generic_expression.operands[2]; + index2 : generic_expression := SELF\multiple_arity_generic_expression.operands[3]; + WHERE + wr1: ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.STRING_EXPRESSION' IN TYPEOF( operand ) ) AND ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.NUMERIC_EXPRESSION' IN TYPEOF( index1 ) ) AND ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.NUMERIC_EXPRESSION' IN TYPEOF( index2 ) ) ); + wr2: ( SIZEOF( SELF\multiple_arity_generic_expression.operands ) = 3 ); + wr3: is_int_expr( index1 ); + wr4: is_int_expr( index2 ); + END_ENTITY; + + ENTITY substructure_element_representation + SUBTYPE OF ( element_representation ); + model_ref : fea_model; + substructure_model_ref : fea_model; + UNIQUE + ur1 : model_ref, SELF\representation.name; + END_ENTITY; + + ENTITY substructure_node_reference; + substructure_element_ref : substructure_element_representation; + node_ref : node_representation; + END_ENTITY; + + ENTITY substructure_node_relationship + SUBTYPE OF ( representation_relationship ); + WHERE + wr1: ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.NODE_REPRESENTATION' IN TYPEOF( SELF\representation_relationship + .rep_1 ) ); + wr2: ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.NODE_REPRESENTATION' IN TYPEOF( SELF\representation_relationship + .rep_2 ) ); + END_ENTITY; + + ENTITY summary_report_request + SUBTYPE OF ( data_quality_report_request ); + summary_report_request_type : summary_report_type; + 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_2d_element_basis; + descriptor : surface_2d_element_descriptor; + variable : surface_element_variable; + variable_order : element_order; + variable_shape_function : shape_function; + evaluation_points : LIST [1 : ?] OF surface_element_location; + END_ENTITY; + + ENTITY surface_2d_element_boundary_constant_specified_surface_variable_value + SUBTYPE OF ( surface_2d_element_field_variable_definition ); + simple_value : field_value; + variable : boundary_variable; + element_face : surface_2d_face; + coordinate_system : OPTIONAL surface_2d_element_coordinate_system; + WHERE + wr1: necessary_value_coordinate_system( simple_value, coordinate_system ); + wr2: consistent_value( simple_value, variable ); + wr3: appropriate_value_existence( simple_value, TYPEOF( SELF\state_definition.defined_state ) ); + END_ENTITY; + + ENTITY surface_2d_element_boundary_constant_specified_variable_value + SUBTYPE OF ( surface_2d_element_field_variable_definition ); + simple_value : field_value; + variable : boundary_aggregated_variable; + element_face : surface_2d_face; + coordinate_system : OPTIONAL surface_2d_element_coordinate_system; + WHERE + wr1: necessary_value_coordinate_system( simple_value, coordinate_system ); + wr2: consistent_value( simple_value, variable ); + wr3: appropriate_value_existence( simple_value, TYPEOF( SELF\state_definition.defined_state ) ); + END_ENTITY; + + ENTITY surface_2d_element_boundary_edge_constant_specified_surface_variable_value + SUBTYPE OF ( surface_2d_element_field_variable_definition ); + simple_value : field_value; + variable : boundary_edge_variable; + element_edge : surface_2d_edge; + coordinate_system : OPTIONAL surface_2d_element_coordinate_system; + WHERE + wr1: necessary_value_coordinate_system( simple_value, coordinate_system ); + wr2: consistent_value( simple_value, variable ); + wr3: appropriate_value_existence( simple_value, TYPEOF( SELF\state_definition.defined_state ) ); + END_ENTITY; + + ENTITY surface_2d_element_boundary_edge_constant_specified_variable_value + SUBTYPE OF ( surface_2d_element_field_variable_definition ); + simple_value : field_value; + variable : boundary_edge_variable; + element_edge : surface_2d_edge; + coordinate_system : OPTIONAL surface_2d_element_coordinate_system; + WHERE + wr1: necessary_value_coordinate_system( simple_value, coordinate_system ); + wr2: consistent_value( simple_value, variable ); + wr3: appropriate_value_existence( simple_value, TYPEOF( SELF\state_definition.defined_state ) ); + END_ENTITY; + + ENTITY surface_2d_element_boundary_edge_location_point_surface_variable_values + SUBTYPE OF ( surface_2d_element_field_variable_definition ); + basis : BOOLEAN; + values_and_locations : SET [1 : ?] OF surface_2d_element_value_and_volume_location; + variable : boundary_edge_variable; + element_edge : surface_2d_edge; + WHERE + wr1: consistent_set_values( values_and_locations, variable ); + wr2: appropriate_set_value_existence( values_and_locations, TYPEOF( SELF\state_definition.defined_state ) ); + END_ENTITY; + + ENTITY surface_2d_element_boundary_edge_location_point_variable_values + SUBTYPE OF ( surface_2d_element_field_variable_definition ); + basis : BOOLEAN; + values_and_locations : SET [1 : ?] OF surface_2d_element_value_and_location; + variable : boundary_edge_variable; + element_edge : surface_2d_edge; + WHERE + wr1: consistent_set_values( values_and_locations, variable ); + wr2: appropriate_set_value_existence( values_and_locations, TYPEOF( SELF\state_definition.defined_state ) ); + END_ENTITY; + + ENTITY surface_2d_element_boundary_edge_nodal_specified_variable_values + SUBTYPE OF ( surface_2d_element_field_variable_definition ); + values : LIST [1 : ?] OF field_value; + additional_node_values : BOOLEAN; + variable : boundary_edge_variable; + element_edge : surface_2d_edge; + WHERE + wr1: consistent_list_values( values, variable ); + wr2: appropriate_list_value_existence( values, TYPEOF( SELF\state_definition.defined_state ) ); + END_ENTITY; + + ENTITY surface_2d_element_boundary_edge_whole_edge_variable_value + SUBTYPE OF ( surface_2d_element_field_variable_definition ); + simple_value : field_value; + variable : boundary_aggregated_variable; + element_edge : surface_2d_edge; + coordinate_system : OPTIONAL surface_2d_element_coordinate_system; + WHERE + wr1: necessary_value_coordinate_system( simple_value, coordinate_system ); + wr2: consistent_value( simple_value, variable ); + wr3: appropriate_value_existence( simple_value, TYPEOF( SELF\state_definition.defined_state ) ); + END_ENTITY; + + ENTITY surface_2d_element_boundary_location_point_surface_variable_values + SUBTYPE OF ( surface_2d_element_field_variable_definition ); + basis : BOOLEAN; + values_and_locations : SET [1 : ?] OF surface_2d_element_value_and_location; + variable : boundary_variable; + element_face : surface_2d_face; + WHERE + wr1: consistent_set_values( values_and_locations, variable ); + wr2: appropriate_set_value_existence( values_and_locations, TYPEOF( SELF\state_definition.defined_state ) ); + END_ENTITY; + + ENTITY surface_2d_element_boundary_nodal_specified_variable_values + SUBTYPE OF ( surface_2d_element_field_variable_definition ); + values : LIST [1 : ?] OF field_value; + additional_node_values : BOOLEAN; + variable : boundary_variable; + element_face : surface_2d_face; + WHERE + wr1: consistent_list_values( values, variable ); + wr2: appropriate_list_value_existence( values, TYPEOF( SELF\state_definition.defined_state ) ); + END_ENTITY; + + ENTITY surface_2d_element_boundary_whole_face_variable_value + SUBTYPE OF ( surface_2d_element_field_variable_definition ); + simple_value : field_value; + variable : boundary_aggregated_variable; + element_face : surface_2d_face; + coordinate_system : OPTIONAL surface_2d_element_coordinate_system; + WHERE + wr1: necessary_value_coordinate_system( simple_value, coordinate_system ); + wr2: consistent_value( simple_value, variable ); + wr3: appropriate_value_existence( simple_value, TYPEOF( SELF\state_definition.defined_state ) ); + END_ENTITY; + + ENTITY surface_2d_element_constant_specified_variable_value + SUBTYPE OF ( surface_2d_element_field_variable_definition ); + simple_value : field_value; + variable : surface_element_variable; + coordinate_system : OPTIONAL surface_2d_element_coordinate_system; + WHERE + wr1: necessary_value_coordinate_system( simple_value, coordinate_system ); + wr2: consistent_value( simple_value, variable ); + wr3: appropriate_value_existence( simple_value, TYPEOF( SELF\state_definition.defined_state ) ); + END_ENTITY; + + ENTITY surface_2d_element_constant_specified_volume_variable_value + SUBTYPE OF ( surface_2d_element_field_variable_definition ); + simple_value : field_value; + variable : volume_variable; + coordinate_system : OPTIONAL surface_2d_element_coordinate_system; + WHERE + wr1: necessary_value_coordinate_system( simple_value, coordinate_system ); + wr2: consistent_value( simple_value, variable ); + wr3: appropriate_value_existence( simple_value, TYPEOF( SELF\state_definition.defined_state ) ); + END_ENTITY; + + ENTITY surface_2d_element_field_variable_definition + SUPERTYPE OF ( + ONEOF ( + surface_2d_element_location_point_volume_variable_values, + surface_2d_element_location_point_variable_values, + surface_2d_whole_element_variable_value, + surface_2d_element_constant_specified_variable_value, + surface_2d_element_constant_specified_volume_variable_value, + surface_2d_element_nodal_specified_variable_values, + surface_2d_element_boundary_location_point_surface_variable_values, + surface_2d_element_boundary_whole_face_variable_value, + surface_2d_element_boundary_constant_specified_variable_value, + surface_2d_element_boundary_constant_specified_surface_variable_value, + surface_2d_element_boundary_nodal_specified_variable_values, + surface_2d_element_boundary_edge_location_point_surface_variable_values, + surface_2d_element_boundary_edge_location_point_variable_values, + surface_2d_element_boundary_edge_whole_edge_variable_value, + surface_2d_element_boundary_edge_constant_specified_variable_value, + surface_2d_element_boundary_edge_constant_specified_surface_variable_value, + surface_2d_element_boundary_edge_nodal_specified_variable_values ) ) + SUBTYPE OF ( field_variable_element_definition ); + element : surface_2d_element_output_reference; + END_ENTITY; + + ENTITY surface_2d_element_group + SUBTYPE OF ( element_group ); + WHERE + wr1: ( SIZEOF( QUERY ( item <* elements | ( ( NOT ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'AXISYMMETRIC_SURFACE_2D_ELEMENT_REPRESENTATION' ) IN TYPEOF( item ) ) ) AND ( NOT ( ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PLANE_SURFACE_2D_ELEMENT_REPRESENTATION' ) IN TYPEOF( + item ) ) ) ) ) ) = 0 ); + END_ENTITY; + + ENTITY surface_2d_element_integrated_matrix; + descriptor : surface_2d_element_descriptor; + property_type : surface_matrix_property_type; + integration_description : text; + END_ENTITY; + + ENTITY surface_2d_element_integrated_matrix_with_definition + SUBTYPE OF ( surface_2d_element_integrated_matrix ); + integration_definition : surface_2d_element_integration; + END_ENTITY; + + ENTITY surface_2d_element_integration; + element_length : surface_2d_element_length_integration; + section : surface_section_integration; + END_ENTITY; + + ENTITY surface_2d_element_length_integration_explicit; + integration_positions_and_weights : SET [1 : ?] OF surface_position_weight; + END_ENTITY; + + ENTITY surface_2d_element_length_integration_rule; + integration_method : integration_rule; + integration_order : INTEGER; + END_ENTITY; + + ENTITY surface_2d_element_location_point_variable_values + SUBTYPE OF ( surface_2d_element_field_variable_definition ); + basis : BOOLEAN; + values_and_locations : SET [1 : ?] OF surface_2d_element_value_and_location; + variable : surface_element_variable; + WHERE + wr1: consistent_set_values( values_and_locations, variable ); + wr2: appropriate_set_value_existence( values_and_locations, TYPEOF( SELF\state_definition.defined_state ) ); + END_ENTITY; + + ENTITY surface_2d_element_location_point_volume_variable_values + SUBTYPE OF ( surface_2d_element_field_variable_definition ); + basis : BOOLEAN; + values_and_locations : SET [1 : ?] OF surface_2d_element_value_and_volume_location; + variable : volume_variable; + WHERE + wr1: consistent_set_values( values_and_locations, variable ); + wr2: appropriate_set_value_existence( values_and_locations, TYPEOF( SELF\state_definition.defined_state ) ); + END_ENTITY; + + ENTITY surface_2d_element_nodal_specified_variable_values + SUBTYPE OF ( surface_2d_element_field_variable_definition ); + values : LIST [1 : ?] OF field_value; + additional_node_values : BOOLEAN; + variable : surface_element_variable; + WHERE + wr1: consistent_list_values( values, variable ); + wr2: appropriate_list_value_existence( values, TYPEOF( SELF\state_definition.defined_state ) ); + END_ENTITY; + + ENTITY surface_2d_element_value_and_location; + simple_value : field_value; + location : surface_element_location; + coordinate_system : OPTIONAL surface_2d_state_coordinate_system; + WHERE + wr1: necessary_value_coordinate_system( simple_value, coordinate_system ); + END_ENTITY; + + ENTITY surface_2d_element_value_and_volume_location; + simple_value : field_value; + location : surface_volume_element_location; + coordinate_system : OPTIONAL surface_2d_state_coordinate_system; + WHERE + wr1: necessary_value_coordinate_system( simple_value, coordinate_system ); + END_ENTITY; + + ENTITY surface_2d_node_field_aggregated_variable_values + SUBTYPE OF ( surface_2d_node_field_variable_definition ); + simple_value : field_value; + variable : volume_aggregated_variable; + coordinate_system : OPTIONAL surface_2d_state_coordinate_system; + WHERE + wr1: necessary_value_coordinate_system( simple_value, coordinate_system ); + wr2: consistent_value( simple_value, variable ); + wr3: appropriate_value_existence( simple_value, TYPEOF( SELF\state_definition.defined_state ) ); + END_ENTITY; + + ENTITY surface_2d_node_field_section_variable_values + SUBTYPE OF ( surface_2d_node_field_variable_definition ); + simple_value : field_value; + variable : surface_element_variable; + location : surface_section_element_location; + coordinate_system : OPTIONAL surface_2d_state_coordinate_system; + WHERE + wr1: necessary_value_coordinate_system( simple_value, coordinate_system ); + wr2: consistent_value( simple_value, variable ); + wr3: appropriate_value_existence( simple_value, TYPEOF( SELF\state_definition.defined_state ) ); + END_ENTITY; + + ENTITY surface_2d_node_field_variable_definition + SUPERTYPE OF ( + ONEOF ( + surface_2d_node_field_section_variable_values, + surface_2d_node_field_aggregated_variable_values ) ) + SUBTYPE OF ( field_variable_node_definition ); + END_ENTITY; + + ENTITY surface_2d_substructure_element_reference; + substructure_element_ref : substructure_element_representation; + element_ref : surface_2d_element_representation; + END_ENTITY; + + ENTITY surface_2d_whole_element_variable_value + SUBTYPE OF ( surface_2d_element_field_variable_definition ); + simple_value : field_value; + variable : volume_aggregated_variable; + coordinate_system : OPTIONAL surface_2d_element_coordinate_system; + WHERE + wr1: necessary_value_coordinate_system( simple_value, coordinate_system ); + wr2: consistent_value( simple_value, variable ); + wr3: appropriate_value_existence( simple_value, TYPEOF( SELF\state_definition.defined_state ) ); + END_ENTITY; + + ENTITY surface_3d_element_basis; + descriptor : surface_3d_element_descriptor; + variable : surface_element_variable; + variable_order : element_order; + variable_shape_function : shape_function; + evaluation_points : LIST [1 : ?] OF surface_element_location; + END_ENTITY; + + ENTITY surface_3d_element_boundary_constant_specified_surface_variable_value + SUBTYPE OF ( surface_3d_element_field_variable_definition ); + simple_value : field_value; + variable : boundary_variable; + element_face : surface_3d_face; + coordinate_system : OPTIONAL surface_3d_element_coordinate_system; + WHERE + wr1: necessary_value_coordinate_system( simple_value, coordinate_system ); + wr2: consistent_value( simple_value, variable ); + wr3: appropriate_value_existence( simple_value, TYPEOF( SELF\state_definition.defined_state ) ); + END_ENTITY; + + ENTITY surface_3d_element_boundary_constant_specified_variable_value + SUBTYPE OF ( surface_3d_element_field_variable_definition ); + simple_value : field_value; + variable : boundary_aggregated_variable; + element_face : surface_3d_face; + coordinate_system : OPTIONAL surface_3d_element_coordinate_system; + WHERE + wr1: necessary_value_coordinate_system( simple_value, coordinate_system ); + wr2: consistent_value( simple_value, variable ); + wr3: appropriate_value_existence( simple_value, TYPEOF( SELF\state_definition.defined_state ) ); + END_ENTITY; + + ENTITY surface_3d_element_boundary_edge_constant_specified_surface_variable_value + SUBTYPE OF ( surface_3d_element_field_variable_definition ); + simple_value : field_value; + variable : boundary_edge_variable; + element_edge : surface_3d_edge; + coordinate_system : OPTIONAL surface_3d_element_coordinate_system; + WHERE + wr1: necessary_value_coordinate_system( simple_value, coordinate_system ); + wr2: consistent_value( simple_value, variable ); + wr3: appropriate_value_existence( simple_value, TYPEOF( SELF\state_definition.defined_state ) ); + END_ENTITY; + + ENTITY surface_3d_element_boundary_edge_constant_specified_variable_value + SUBTYPE OF ( surface_3d_element_field_variable_definition ); + simple_value : field_value; + variable : boundary_edge_variable; + element_edge : surface_3d_edge; + coordinate_system : OPTIONAL surface_3d_element_coordinate_system; + WHERE + wr1: necessary_value_coordinate_system( simple_value, coordinate_system ); + wr2: consistent_value( simple_value, variable ); + wr3: appropriate_value_existence( simple_value, TYPEOF( SELF\state_definition.defined_state ) ); + END_ENTITY; + + ENTITY surface_3d_element_boundary_edge_location_point_surface_variable_values + SUBTYPE OF ( surface_3d_element_field_variable_definition ); + basis : BOOLEAN; + values_and_locations : SET [1 : ?] OF surface_3d_element_value_and_volume_location; + variable : boundary_edge_variable; + element_edge : surface_3d_edge; + WHERE + wr1: consistent_set_values( values_and_locations, variable ); + wr2: appropriate_set_value_existence( values_and_locations, TYPEOF( SELF\state_definition.defined_state ) ); + END_ENTITY; + + ENTITY surface_3d_element_boundary_edge_location_point_variable_values + SUBTYPE OF ( surface_3d_element_field_variable_definition ); + basis : BOOLEAN; + values_and_locations : SET [1 : ?] OF surface_3d_element_value_and_location; + variable : boundary_edge_variable; + element_edge : surface_3d_edge; + WHERE + wr1: consistent_set_values( values_and_locations, variable ); + wr2: appropriate_set_value_existence( values_and_locations, TYPEOF( SELF\state_definition.defined_state ) ); + END_ENTITY; + + ENTITY surface_3d_element_boundary_edge_nodal_specified_variable_values + SUBTYPE OF ( surface_3d_element_field_variable_definition ); + values : LIST [1 : ?] OF field_value; + additional_node_values : BOOLEAN; + variable : boundary_edge_variable; + element_edge : surface_3d_edge; + WHERE + wr1: consistent_list_values( values, variable ); + wr2: appropriate_list_value_existence( values, TYPEOF( SELF\state_definition.defined_state ) ); + END_ENTITY; + + ENTITY surface_3d_element_boundary_edge_whole_edge_variable_value + SUBTYPE OF ( surface_3d_element_field_variable_definition ); + simple_value : field_value; + variable : boundary_aggregated_variable; + element_edge : surface_3d_edge; + coordinate_system : OPTIONAL surface_3d_element_coordinate_system; + WHERE + wr1: necessary_value_coordinate_system( simple_value, coordinate_system ); + wr2: consistent_value( simple_value, variable ); + wr3: appropriate_value_existence( simple_value, TYPEOF( SELF\state_definition.defined_state ) ); + END_ENTITY; + + ENTITY surface_3d_element_boundary_location_point_surface_variable_values + SUBTYPE OF ( surface_3d_element_field_variable_definition ); + basis : BOOLEAN; + values_and_locations : SET [1 : ?] OF surface_3d_element_value_and_location; + variable : boundary_variable; + element_face : surface_3d_face; + WHERE + wr1: consistent_set_values( values_and_locations, variable ); + wr2: appropriate_set_value_existence( values_and_locations, TYPEOF( SELF\state_definition.defined_state ) ); + END_ENTITY; + + ENTITY surface_3d_element_boundary_nodal_specified_variable_values + SUBTYPE OF ( surface_3d_element_field_variable_definition ); + values : LIST [1 : ?] OF field_value; + additional_node_values : BOOLEAN; + variable : boundary_variable; + element_face : surface_3d_face; + WHERE + wr1: consistent_list_values( values, variable ); + wr2: appropriate_list_value_existence( values, TYPEOF( SELF\state_definition.defined_state ) ); + END_ENTITY; + + ENTITY surface_3d_element_boundary_whole_face_variable_value + SUBTYPE OF ( surface_3d_element_field_variable_definition ); + simple_value : field_value; + variable : boundary_aggregated_variable; + element_face : surface_3d_face; + coordinate_system : OPTIONAL surface_3d_element_coordinate_system; + WHERE + wr1: necessary_value_coordinate_system( simple_value, coordinate_system ); + wr2: consistent_value( simple_value, variable ); + wr3: appropriate_value_existence( simple_value, TYPEOF( SELF\state_definition.defined_state ) ); + END_ENTITY; + + ENTITY surface_3d_element_constant_specified_variable_value + SUBTYPE OF ( surface_3d_element_field_variable_definition ); + simple_value : field_value; + variable : surface_element_variable; + coordinate_system : OPTIONAL surface_3d_element_coordinate_system; + WHERE + wr1: necessary_value_coordinate_system( simple_value, coordinate_system ); + wr2: consistent_value( simple_value, variable ); + wr3: appropriate_value_existence( simple_value, TYPEOF( SELF\state_definition.defined_state ) ); + END_ENTITY; + + ENTITY surface_3d_element_constant_specified_volume_variable_value + SUBTYPE OF ( surface_3d_element_field_variable_definition ); + simple_value : field_value; + variable : volume_variable; + coordinate_system : OPTIONAL surface_3d_element_coordinate_system; + WHERE + wr1: necessary_value_coordinate_system( simple_value, coordinate_system ); + wr2: consistent_value( simple_value, variable ); + wr3: appropriate_value_existence( simple_value, TYPEOF( SELF\state_definition.defined_state ) ); + END_ENTITY; + + ENTITY surface_3d_element_descriptor + SUBTYPE OF ( element_descriptor ); + purpose : SET [1 : ?] OF SET [1 : ?] OF surface_element_purpose; + shape : element_2d_shape; + END_ENTITY; + + ENTITY surface_3d_element_field_integration_explicit; + integration_positions_and_weights : SET [1 : ?] OF surface_position_weight; + END_ENTITY; + + ENTITY surface_3d_element_field_integration_rule; + integration_method : integration_rule; + integration_order : ARRAY [1 : 2] OF INTEGER; + END_ENTITY; + + ENTITY surface_3d_element_field_variable_definition + SUPERTYPE OF ( + ONEOF ( + surface_3d_element_location_point_volume_variable_values, + surface_3d_element_location_point_variable_values, + surface_3d_whole_element_variable_value, + surface_3d_element_constant_specified_variable_value, + surface_3d_element_constant_specified_volume_variable_value, + surface_3d_element_nodal_specified_variable_values, + surface_3d_element_boundary_location_point_surface_variable_values, + surface_3d_element_boundary_whole_face_variable_value, + surface_3d_element_boundary_constant_specified_variable_value, + surface_3d_element_boundary_constant_specified_surface_variable_value, + surface_3d_element_boundary_nodal_specified_variable_values, + surface_3d_element_boundary_edge_location_point_surface_variable_values, + surface_3d_element_boundary_edge_location_point_variable_values, + surface_3d_element_boundary_edge_whole_edge_variable_value, + surface_3d_element_boundary_edge_constant_specified_variable_value, + surface_3d_element_boundary_edge_constant_specified_surface_variable_value, + surface_3d_element_boundary_edge_nodal_specified_variable_values ) ) + SUBTYPE OF ( field_variable_element_definition ); + element : surface_3d_element_output_reference; + END_ENTITY; + + ENTITY surface_3d_element_group + SUBTYPE OF ( element_group ); + WHERE + wr1: ( SIZEOF( QUERY ( item <* elements | ( NOT ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'SURFACE_3D_ELEMENT_REPRESENTATION' ) IN TYPEOF( item ) ) ) ) ) = 0 ); + END_ENTITY; + + ENTITY surface_3d_element_integrated_matrix; + descriptor : surface_3d_element_descriptor; + property_type : surface_matrix_property_type; + integration_description : text; + END_ENTITY; + + ENTITY surface_3d_element_integrated_matrix_with_definition + SUBTYPE OF ( surface_3d_element_integrated_matrix ); + integration_definition : surface_3d_element_integration; + END_ENTITY; + + ENTITY surface_3d_element_integration; + field : surface_3d_element_field_integration; + section : surface_section_integration; + END_ENTITY; + + ENTITY surface_3d_element_location_point_variable_values + SUBTYPE OF ( surface_3d_element_field_variable_definition ); + basis : BOOLEAN; + values_and_locations : SET [1 : ?] OF surface_3d_element_value_and_location; + variable : surface_element_variable; + WHERE + wr1: consistent_set_values( values_and_locations, variable ); + wr2: appropriate_set_value_existence( values_and_locations, TYPEOF( SELF\state_definition.defined_state ) ); + END_ENTITY; + + ENTITY surface_3d_element_location_point_volume_variable_values + SUBTYPE OF ( surface_3d_element_field_variable_definition ); + basis : BOOLEAN; + values_and_locations : SET [1 : ?] OF surface_3d_element_value_and_volume_location; + variable : volume_variable; + WHERE + wr1: consistent_set_values( values_and_locations, variable ); + wr2: appropriate_set_value_existence( values_and_locations, TYPEOF( SELF\state_definition.defined_state ) ); + END_ENTITY; + + ENTITY surface_3d_element_nodal_specified_variable_values + SUBTYPE OF ( surface_3d_element_field_variable_definition ); + values : LIST [1 : ?] OF field_value; + additional_node_values : BOOLEAN; + variable : surface_element_variable; + WHERE + wr1: consistent_list_values( values, variable ); + wr2: appropriate_list_value_existence( values, TYPEOF( SELF\state_definition.defined_state ) ); + END_ENTITY; + + ENTITY surface_3d_element_representation + SUBTYPE OF ( element_representation ); + model_ref : fea_model_3d; + element_descriptor : surface_3d_element_descriptor; + property : surface_element_property; + material : element_material; + UNIQUE + ur1 : model_ref, SELF\representation.name; + WHERE + wr1: ( ( SIZEOF( QUERY ( item <* SELF\representation.items | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'PARAMETRIC_SURFACE_3D_ELEMENT_COORDINATE_SYSTEM' ) IN TYPEOF( item ) ) ) ) + SIZEOF( QUERY ( item <* SELF\ + representation.items | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'CONSTANT_SURFACE_3D_ELEMENT_COORDINATE_SYSTEM' ) IN TYPEOF( item ) ) ) ) + SIZEOF( QUERY ( item <* SELF\ + representation.items | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'ALIGNED_SURFACE_3D_ELEMENT_COORDINATE_SYSTEM' ) IN TYPEOF( item ) ) ) ) ) = 1 ); + wr2: ( SIZEOF( QUERY ( item1 <* material.properties | ( SIZEOF( QUERY ( item2 <* item1\property_definition_representation. + used_representation.items | ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'FEA_LINEAR_ELASTICITY' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'FEA_MASS_DENSITY', + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'FEA_AREA_DENSITY', + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'FEA_TANGENTIAL_COEFFICIENT_OF_LINEAR_THERMAL_EXPANSION', + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'FEA_SECANT_COEFFICIENT_OF_LINEAR_THERMAL_EXPANSION', + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'FEA_MOISTURE_ABSORPTION', + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'FEA_SHELL_MEMBRANE_STIFFNESS', + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'FEA_SHELL_BENDING_STIFFNESS', + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'FEA_SHELL_MEMBRANE_BENDING_COUPLING_STIFFNESS', + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'FEA_SHELL_SHEAR_STIFFNESS'] * TYPEOF( item2 ) ) = 1 ) ) ) + = 1 ) ) ) >= 1 ); + wr3: ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PARAMETRIC_REPRESENTATION_CONTEXT' IN TYPEOF( SELF\ + representation.context_of_items ) ); + fu1: required_2d_nodes( SELF\element_representation.node_list, element_descriptor.shape, element_descriptor\ + element_descriptor.topology_order ); + END_ENTITY; + + ENTITY surface_3d_element_value_and_location; + simple_value : field_value; + location : surface_element_location; + coordinate_system : OPTIONAL surface_3d_state_coordinate_system; + WHERE + wr1: necessary_value_coordinate_system( simple_value, coordinate_system ); + END_ENTITY; + + ENTITY surface_3d_element_value_and_volume_location; + simple_value : field_value; + location : surface_volume_element_location; + coordinate_system : OPTIONAL surface_3d_state_coordinate_system; + WHERE + wr1: necessary_value_coordinate_system( simple_value, coordinate_system ); + END_ENTITY; + + ENTITY surface_3d_node_field_aggregated_variable_values + SUBTYPE OF ( surface_3d_node_field_variable_definition ); + simple_value : field_value; + variable : volume_aggregated_variable; + coordinate_system : OPTIONAL surface_3d_state_coordinate_system; + WHERE + wr1: necessary_value_coordinate_system( simple_value, coordinate_system ); + wr2: consistent_value( simple_value, variable ); + wr3: appropriate_value_existence( simple_value, TYPEOF( SELF\state_definition.defined_state ) ); + END_ENTITY; + + ENTITY surface_3d_node_field_section_variable_values + SUBTYPE OF ( surface_3d_node_field_variable_definition ); + simple_value : field_value; + variable : surface_element_variable; + location : surface_section_element_location; + coordinate_system : OPTIONAL surface_3d_state_coordinate_system; + WHERE + wr1: necessary_value_coordinate_system( simple_value, coordinate_system ); + wr2: consistent_value( simple_value, variable ); + wr3: appropriate_value_existence( simple_value, TYPEOF( SELF\state_definition.defined_state ) ); + END_ENTITY; + + ENTITY surface_3d_node_field_variable_definition + SUPERTYPE OF ( + ONEOF ( + surface_3d_node_field_section_variable_values, + surface_3d_node_field_aggregated_variable_values ) ) + SUBTYPE OF ( field_variable_node_definition ); + END_ENTITY; + + ENTITY surface_3d_substructure_element_reference; + substructure_element_ref : substructure_element_representation; + element_ref : surface_3d_element_representation; + END_ENTITY; + + ENTITY surface_3d_whole_element_variable_value + SUBTYPE OF ( surface_3d_element_field_variable_definition ); + simple_value : field_value; + variable : volume_aggregated_variable; + coordinate_system : OPTIONAL surface_3d_element_coordinate_system; + WHERE + wr1: necessary_value_coordinate_system( simple_value, coordinate_system ); + wr2: consistent_value( simple_value, variable ); + wr3: appropriate_value_existence( simple_value, TYPEOF( SELF\state_definition.defined_state ) ); + END_ENTITY; + + ENTITY surface_condition_callout + SUBTYPE OF ( draughting_callout ); + WHERE + wr1: ( SIZEOF( QUERY ( c <* SELF.contents | ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'ANNOTATION_CURVE_OCCURRENCE' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'ANNOTATION_SYMBOL_OCCURRENCE' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'ANNOTATION_TEXT_OCCURRENCE' ] * TYPEOF( c ) ) <> 1 ) ) ) = 0 ); + END_ENTITY; + + ENTITY surface_constraint + SUBTYPE OF ( constraint_element ); + required_surface : analysis_item_within_representation; + coordinate_system : fea_axis2_placement_3d; + freedoms_and_coefficients : SET [1 : ?] OF freedom_and_coefficient; + description : text; + WHERE + wr1: ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SURFACE' IN TYPEOF( required_surface.item ) ) OR ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FACE_SURFACE' IN TYPEOF( required_surface.item ) ) ); + 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: ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PCURVE' IN TYPEOF( associated_geometry[1] ) ) OR ( + master_representation <> pcurve_s1 ) ); + wr3: ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PCURVE' IN TYPEOF( associated_geometry[2] ) ) OR ( + master_representation <> pcurve_s2 ) ); + wr4: ( NOT ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SURFACE_CURVE' IN TYPEOF( directrix ) ) ) OR ( + reference_surface IN directrix\surface_curve.basis_surface ) ); + END_ENTITY; + + ENTITY surface_distance_assembly_constraint_with_dimension + SUBTYPE OF ( binary_assembly_constraint, sdgc_with_dimension ); + END_ENTITY; + + ENTITY surface_distance_geometric_constraint + SUBTYPE OF ( explicit_geometric_constraint ); + SELF\explicit_constraint.constrained_elements : SET [1 : 2] OF surface; + SELF\explicit_constraint.reference_elements : SET [0 : 4] OF point_curve_or_surface_constraint_element; + near_points : SET [0 : 4] OF near_point_relationship; + WHERE + wr1: ( ( SIZEOF( SELF\explicit_constraint.reference_elements ) > 0 ) OR ( ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SDGC_WITH_DIMENSION' IN TYPEOF( SELF ) ) AND ( SIZEOF( SELF\ + explicit_constraint.constrained_elements ) = 2 ) ) ); + wr2: ( SIZEOF( near_points ) <= SIZEOF( SELF\explicit_constraint.reference_elements ) ); + wr3: ( SIZEOF( QUERY ( q <* near_points | ( NOT ( q\representation_item_relationship.relating_representation_item IN SELF\ + explicit_constraint.reference_elements ) ) ) ) = 0 ); + END_ENTITY; + + ENTITY surface_element_location; + coordinates : fea_parametric_point; + END_ENTITY; + + ENTITY surface_element_property; + property_id : identifier; + description : text; + section : surface_section_field; + END_ENTITY; + + ENTITY surface_freedom_action_definition + SUBTYPE OF ( surface_freedom_and_value_definition ); + action : action_type; + END_ENTITY; + + ENTITY surface_freedom_and_value_definition + SUPERTYPE OF ( + ONEOF ( + surface_freedom_values, + surface_freedom_action_definition ) ) + SUBTYPE OF ( state_definition ); + required_surface : analysis_item_within_representation; + coordinate_system : fea_axis2_placement_3d; + degrees_of_freedom : freedoms_list; + values : LIST [1 : ?] OF measure_or_unspecified_value; + WHERE + wr1: ( SIZEOF( degrees_of_freedom.freedoms ) = SIZEOF( values ) ); + wr2: ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SURFACE' IN TYPEOF( required_surface.item ) ) OR ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FACE_SURFACE' IN TYPEOF( required_surface.item ) ) ); + END_ENTITY; + + ENTITY surface_freedom_values + SUBTYPE OF ( surface_freedom_and_value_definition ); + 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 ) ); + END_ENTITY; + + ENTITY surface_pair + ABSTRACT SUPERTYPE OF ( + ONEOF ( + sliding_surface_pair, + rolling_surface_pair ) + ANDOR + surface_pair_with_range ) + SUBTYPE OF ( high_order_kinematic_pair ); + surface_1 : surface; + surface_2 : surface; + orientation : BOOLEAN; + WHERE + wr1: ( SIZEOF( QUERY ( r <* SELF\kinematic_pair.associated_link_representations_1 | ( NOT ( surface_1 IN r.items ) ) ) ) = + 0 ); + wr2: ( SIZEOF( QUERY ( r <* SELF\kinematic_pair.associated_link_representations_2 | ( NOT ( surface_2 IN r.items ) ) ) ) = + 0 ); + wr3: ( SIZEOF( QUERY ( lr <* SELF\kinematic_pair.associated_link_representations_1 | ( NOT ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.RIGID_LINK_REPRESENTATION' IN TYPEOF( lr ) ) ) ) ) = 0 ); + END_ENTITY; + + ENTITY surface_pair_with_range + SUBTYPE OF ( surface_pair ); + range_on_surface_1 : rectangular_trimmed_surface; + range_on_surface_2 : rectangular_trimmed_surface; + lower_limit_actual_rotation : OPTIONAL plane_angle_measure; + upper_limit_actual_rotation : OPTIONAL plane_angle_measure; + WHERE + wr1: ( SELF\surface_pair.surface_1 :=: range_on_surface_1.basis_surface ); + wr2: ( SELF\surface_pair.surface_2 :=: range_on_surface_2.basis_surface ); + wr3: ( ( ( NOT EXISTS( lower_limit_actual_rotation ) ) OR ( NOT EXISTS( upper_limit_actual_rotation ) ) ) XOR ( + lower_limit_actual_rotation < upper_limit_actual_rotation ) ); + wr4: ( SIZEOF( QUERY ( r <* SELF\kinematic_pair.associated_link_representations_1 | ( NOT ( range_on_surface_1 IN r.items ) ) ) ) + = 0 ); + wr5: ( SIZEOF( QUERY ( r <* SELF\kinematic_pair.associated_link_representations_2 | ( NOT ( range_on_surface_2 IN r.items ) ) ) ) + = 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 ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CURVE_BOUNDED_SURFACE' IN TYPEOF( parent_surface ) ) ); + END_ENTITY; + + ENTITY surface_patch_set + SUBTYPE OF ( geometric_representation_item ); + patches : SET [1 : ?] OF surface_patch; + END_ENTITY; + + ENTITY surface_position_weight; + integration_position : surface_element_location; + integration_weight : context_dependent_measure; + END_ENTITY; + + ENTITY surface_profile_tolerance + SUBTYPE OF ( geometric_tolerance ); + 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_section + SUPERTYPE OF ( + ONEOF ( + uniform_surface_section, + uniform_surface_section_layered ) ); + offset : measure_or_unspecified_value; + non_structural_mass : measure_or_unspecified_value; + non_structural_mass_offset : measure_or_unspecified_value; + END_ENTITY; + + ENTITY surface_section_element_location + SUPERTYPE OF ( + ONEOF ( + surface_section_element_location_absolute, + surface_section_element_location_dimensionless ) ); + above_material_discontinuity : LOGICAL; + END_ENTITY; + + ENTITY surface_section_element_location_absolute + SUBTYPE OF ( surface_section_element_location ); + offset : context_dependent_measure; + END_ENTITY; + + ENTITY surface_section_element_location_dimensionless + SUBTYPE OF ( surface_section_element_location ); + coordinate : LIST [1 : 1] OF parameter_value; + WHERE + wr1: valid_parametric_coordinate( coordinate ); + END_ENTITY; + + ENTITY surface_section_field + SUPERTYPE OF ( + ONEOF ( + surface_section_field_constant, + surface_section_field_varying ) ); + END_ENTITY; + + ENTITY surface_section_field_constant + SUBTYPE OF ( surface_section_field ); + definition : surface_section; + END_ENTITY; + + ENTITY surface_section_field_varying + SUBTYPE OF ( surface_section_field ); + definitions : LIST [1 : ?] OF surface_section; + additional_node_values : BOOLEAN; + END_ENTITY; + + ENTITY surface_section_integration_explicit; + integration_positions_and_weights : SET [1 : ?] OF surface_section_position_weight; + END_ENTITY; + + ENTITY surface_section_integration_rule; + integration_method : integration_rule; + integration_order : INTEGER; + END_ENTITY; + + ENTITY surface_section_position_weight; + integration_position : surface_section_element_location; + integration_weight : context_dependent_measure; + 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_smoothness_geometric_constraint + SUBTYPE OF ( explicit_geometric_constraint ); + SELF\explicit_constraint.constrained_elements : SET [1 : 1] OF surface_patch_set; + u_smoothness : transition_code; + v_smoothness : transition_code; + WHERE + wr1: ( SIZEOF( SELF\explicit_constraint.reference_elements ) = 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 <= transparency ) AND ( transparency <= 1 ) ); + 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( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'MEASURE_REPRESENTATION_ITEM' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'VALUE_RANGE', + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'DESCRIPTIVE_REPRESENTATION_ITEM'] * TYPEOF( i ) ) <> 1 ) ) ) + = 0 ); + wr2: ( ( SIZEOF( QUERY ( i <* SELF.items | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'DESCRIPTIVE_REPRESENTATION_ITEM' ) IN TYPEOF( i ) ) ) ) = 1 ) AND ( SIZEOF( QUERY ( i <* SELF.items | ( ( ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'DESCRIPTIVE_REPRESENTATION_ITEM' ) IN TYPEOF( i ) ) AND + ( i.name = 'measuring method' ) ) ) ) = 1 ) ); + wr3: ( SIZEOF( QUERY ( i <* SELF.items | ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'MEASURE_REPRESENTATION_ITEM' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'VALUE_RANGE'] * TYPEOF( i ) ) + = 1 ) ) ) > 0 ); + wr4: ( ( SIZEOF( USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'REPRESENTATION_RELATIONSHIP.' + + 'REP_1' ) ) <= 1 ) AND ( SIZEOF( USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'REPRESENTATION_RELATIONSHIP.' + 'REP_2' ) ) = 0 ) AND ( SIZEOF( QUERY ( rr <* USEDIN( SELF, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'REPRESENTATION_RELATIONSHIP.' + 'REP_1' ) | ( rr.rep_2. + name = 'measuring direction' ) ) ) = SIZEOF( USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'REPRESENTATION_RELATIONSHIP.' + 'REP_1' ) ) ) ); + wr5: ( ( SIZEOF( USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.' + + 'USED_REPRESENTATION' ) ) = 1 ) AND ( SIZEOF( QUERY ( pdr <* USEDIN( SELF, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.' + + 'USED_REPRESENTATION' ) | ( SIZEOF( QUERY ( gpa <* USEDIN( pdr.definition, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'GENERAL_PROPERTY_ASSOCIATION.' + 'DERIVED_DEFINITION' ) + | ( ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'GENERAL_PROPERTY' ) IN TYPEOF( gpa.base_definition ) ) + AND ( gpa\general_property_association.base_definition\general_property.name = 'surface_condition' ) ) ) ) = 1 ) ) ) + = 1 ) ); + END_ENTITY; + + ENTITY surface_volume_element_location; + field_location : surface_element_location; + section_location : surface_section_element_location; + END_ENTITY; + + ENTITY surface_with_excessive_patches_in_one_direction + SUBTYPE OF ( overcomplex_geometry ); + SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; + WHERE + wr1: ( ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' ) IN TYPEOF( SELF + \shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold ) ) + AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.COUNT_MEASURE' IN value_limit_type( SELF\ + shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold ) ) ); + wr2: validate_measured_data_type( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.COUNT_MEASURE' ); + wr3: validate_inspected_elements_type( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'B_SPLINE_OR_RECTANGULAR_COMPOSITE_SURFACE_SELECT' ] ); + wr4: validate_locations_of_extreme_value_type( SELF, [] ); + wr5: validate_accuracy_types( SELF, [] ); + END_ENTITY; + + ENTITY surface_with_small_curvature_radius + SUBTYPE OF ( geometry_with_local_near_degeneracy ); + SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; + WHERE + wr1: ( ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'SHAPE_DATA_QUALITY_UPPER_VALUE_LIMIT' ) IN TYPEOF( SELF + \shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold ) ) + AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE' IN value_limit_type( SELF\ + shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold ) ) ); + wr2: validate_measured_data_type( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE' ); + wr3: validate_inspected_elements_type( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SURFACE'] ); + wr4: validate_locations_of_extreme_value_type( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.POINT_ON_SURFACE'] ); + wr5: validate_accuracy_types( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE'] ); + END_ENTITY; + + ENTITY surfaced_open_shell + SUBTYPE OF ( open_shell ); + WHERE + wr1: ( SIZEOF( QUERY ( q <* SELF\connected_face_set.cfs_faces | ( NOT ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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: ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PLANE' IN TYPEOF( swept_area.basis_surface ) ); + END_ENTITY; + + ENTITY swept_curve_surface_geometric_constraint + SUBTYPE OF ( explicit_geometric_constraint ); + SELF\explicit_constraint.constrained_elements : SET [1 : ?] OF surface; + SELF\explicit_constraint.reference_elements : SET [1 : 1] OF swept_surface_or_solid; + 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: ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PLANE' IN TYPEOF( swept_face.face_geometry ) ); + END_ENTITY; + + ENTITY swept_point_curve_geometric_constraint + SUBTYPE OF ( explicit_geometric_constraint ); + SELF\explicit_constraint.constrained_elements : SET [1 : ?] OF curve; + SELF\explicit_constraint.reference_elements : SET [1 : 1] OF swept_face_solid; + 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; + WHERE + wr1: ( SIZEOF( QUERY ( mi <* SELF\representation_map.map_usage | ( NOT ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ANNOTATION_SYMBOL' IN TYPEOF( mi ) ) ) ) ) = 0 ); + 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_banded_matrix + SUBTYPE OF ( symmetric_matrix ); + default_entry : maths_value; + above : nonnegative_integer; + WHERE + wr1: member_of( default_entry, factor1( SELF\linearized_table_function.source.range ) ); + END_ENTITY; + + ENTITY symmetric_matrix + SUBTYPE OF ( linearized_table_function ); + symmetry : symmetry_type; + triangle : lower_upper; + order : ordering_type; + WHERE + wr1: ( SIZEOF( SELF\explicit_table_function.shape ) = 2 ); + wr2: ( SELF\explicit_table_function.shape[1] = SELF\explicit_table_function.shape[2] ); + wr3: ( ( NOT ( symmetry = symmetry_type.skew ) ) OR ( ( space_dimension( SELF\linearized_table_function.source.range ) = 1 ) + AND subspace_of_es( factor1( SELF\linearized_table_function.source.range ), es_numbers ) ) ); + wr4: ( ( NOT ( ( symmetry = symmetry_type.hermitian ) OR ( symmetry = symmetry_type.skew_hermitian ) ) ) OR ( ( + space_dimension( SELF\linearized_table_function.source.range ) = 1 ) AND subspace_of_es( factor1( SELF\ + linearized_table_function.source.range ), es_complex_numbers ) ) ); + END_ENTITY; + + ENTITY symmetric_shape_aspect + SUBTYPE OF ( shape_aspect ); + INVERSE + basis_relationships : SET [1 : ?] OF shape_aspect_deriving_relationship FOR related_shape_aspect; + END_ENTITY; + + ENTITY symmetry_control + SUPERTYPE OF ( + ONEOF ( + no_symmetry_control, + cylindrical_symmetry_control ) ); + END_ENTITY; + + ENTITY symmetry_geometric_constraint + SUBTYPE OF ( explicit_geometric_constraint ); + SELF\explicit_constraint.constrained_elements : SET [2 : 2] OF geometric_representation_item; + mirror_element : linear_geometry_constraint_element; + WHERE + wr1: ( SIZEOF( SELF\explicit_constraint.reference_elements ) = 0 ); + wr2: ( SIZEOF( TYPEOF( mirror_element ) * [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.DIRECTION', + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.VECTOR' ] ) = 0 ); + wr3: ( NOT ( ( SELF\geometric_representation_item.dim = 2 ) AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PLANE' + IN TYPEOF( mirror_element ) ) ) ); + END_ENTITY; + + ENTITY symmetry_tolerance + SUBTYPE OF ( geometric_tolerance_with_datum_reference ); + END_ENTITY; + + ENTITY system_and_freedom; + matrix_coordinate_system : directionally_explicit_element_coordinate_system; + freedom : degree_of_freedom; + END_ENTITY; + + ENTITY table_representation_item + SUBTYPE OF ( compound_representation_item ); + WHERE + wr1: ( SIZEOF( QUERY ( itet <* SELF\compound_representation_item.item_element | ( NOT ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'MEASURE_REPRESENTATION_ITEM' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'VALUE_RANGE'] * TYPEOF( i ) ) + <> 1 ) ) ) = 0 ); + wr2: ( SIZEOF( QUERY ( i <* SELF.items | ( name = 'depth' ) ) ) <= 1 ); + wr3: ( ( SIZEOF( USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.' + + 'USED_REPRESENTATION' ) ) = 1 ) AND ( SIZEOF( QUERY ( pdr <* USEDIN( SELF, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.' + + 'USED_REPRESENTATION' ) | ( SIZEOF( QUERY ( gpa <* USEDIN( pdr.definition, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'GENERAL_PROPERTY_ASSOCIATION.' + 'DERIVED_DEFINITION' ) + | ( ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'GENERAL_PROPERTY' ) IN TYPEOF( gpa.base_definition ) ) + AND ( gpa\general_property_association.base_definition\general_property.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 tan_function + SUBTYPE OF ( unary_function_call ); + END_ENTITY; + + ENTITY tangent + SUBTYPE OF ( derived_shape_aspect ); + WHERE + wr1: ( SIZEOF( SELF\derived_shape_aspect.deriving_relationships ) = 1 ); + END_ENTITY; + + ENTITY tangent_assembly_constraint + SUBTYPE OF ( binary_assembly_constraint, tangent_geometric_constraint ); + END_ENTITY; + + ENTITY tangent_geometric_constraint + SUBTYPE OF ( explicit_geometric_constraint ); + SELF\explicit_constraint.constrained_elements : SET [1 : ?] OF curve_or_surface_constraint_element; + SELF\explicit_constraint.reference_elements : SET [0 : ?] OF curve_or_surface_constraint_element; + near_points : SET [0 : ?] OF near_point_relationship; + tangent_contact : tangent_contact_type; + WHERE + wr1: ( ( SIZEOF( SELF\explicit_constraint.reference_elements ) > 0 ) OR ( SIZEOF( SELF\explicit_constraint. + constrained_elements ) = 2 ) ); + wr2: ( NOT ( ( SELF\geometric_representation_item.dim = 2 ) AND ( tangent_contact = surface_contact ) ) ); + wr3: ( SIZEOF( QUERY ( q <* near_points | ( NOT ( q\representation_item_relationship.relating_representation_item IN SELF\ + explicit_constraint.reference_elements ) ) ) ) = 0 ); + END_ENTITY; + + ENTITY taper + SUBTYPE OF ( shape_aspect ); + WHERE + wr1: ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FEATURE_COMPONENT_DEFINITION' IN TYPEOF( SELF.of_shape. + definition ) ); + wr2: ( SELF.description IN [ 'angle taper', 'diameter taper', 'directed taper'] ); + wr3: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + + 'DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) ) = 1 ) ) ) ) = 0 ); + wr4: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + + 'DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. + used_representation ) ) ) | ( NOT ( SIZEOF( impl_rep.used_representation.items ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ); + wr5: ( ( NOT ( SELF.description = 'angle taper' ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( + QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( + QUERY ( it <* impl_rep.used_representation.items | ( ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'MEASURE_REPRESENTATION_ITEM' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'PLANE_ANGLE_MEASURE_WITH_UNIT' ] * TYPEOF( it ) ) = 2 ) AND ( it.name = 'taper angle' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) + = 0 ) ); + wr6: ( ( NOT ( SELF.description = 'diameter taper' ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( + QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( + QUERY ( it <* impl_rep.used_representation.items | ( ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'MEASURE_REPRESENTATION_ITEM' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * + TYPEOF( it ) ) = 2 ) AND ( it.name = 'final diameter' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ) ); + wr7: ( ( NOT ( SELF.description = 'directed taper' ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( + QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( + QUERY ( it <* impl_rep.used_representation.items | ( ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'MEASURE_REPRESENTATION_ITEM' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'PLANE_ANGLE_MEASURE_WITH_UNIT' ] * TYPEOF( it ) ) = 2 ) AND ( it.name = 'angle' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) + = 0 ) ); + wr8: ( ( NOT ( SELF.description = 'directed taper' ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( + QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.' + + 'DEFINITION' ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.DIRECTION_SHAPE_REPRESENTATION' IN + TYPEOF( pdr.used_representation ) ) AND ( pdr.used_representation.name = 'direction' ) ) ) ) = 1 ) ) ) ) = 0 ) ); + END_ENTITY; + + ENTITY tee_profile + SUBTYPE OF ( shape_aspect ); + WHERE + wr1 : ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FEATURE_COMPONENT_DEFINITION' IN TYPEOF( SELF.of_shape. + definition ) ); + wr2 : ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + + 'DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( pdr <* USEDIN( pd, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. + used_representation ) ) ) ) = 1 ) ) ) ) = 0 ); + wr3 : ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + + 'DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. + used_representation ) ) ) | ( ( NOT ( SIZEOF( impl_rep.used_representation.items ) >= 9 ) ) AND ( SIZEOF( impl_rep + .used_representation.items ) <= 10 ) ) ) ) = 0 ) ) ) ) = 0 ); + wr4 : ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + + 'DEFINITION' ) | ( SIZEOF( QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) AND ( SIZEOF( QUERY ( srwp_i <* + pdr.used_representation.items | ( ( srwp_i.name = 'orientation' ) OR ( srwp_i.name = 'width' ) OR ( srwp_i.name = + 'depth' ) OR ( srwp_i.name = 'cross bar width' ) OR ( srwp_i.name = 'cross bar depth' ) OR ( srwp_i.name = + 'first offset' ) OR ( srwp_i.name = 'second offset' ) OR ( srwp_i.name = 'first angle' ) OR ( srwp_i.name = + 'second angle' ) OR ( srwp_i.name = 'radius' ) ) ) ) = SIZEOF( pdr.used_representation.items ) ) ) ) ) = 1 ) ) ) + = 1 ); + wr5 : ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + + 'DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. + used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PLACEMENT' IN TYPEOF( it ) ) AND ( it.name = 'orientation' ) ) ) ) + = 1 ) ) ) ) = 0 ) ) ) ) = 0 ); + wr6 : ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + + 'DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. + used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( SIZEOF( [ + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM' , + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( it ) ) = 2 ) AND ( it. + name = 'width' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ); + wr7 : ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + + 'DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. + used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( SIZEOF( [ + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM' , + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( it ) ) = 2 ) AND ( it. + name = 'depth' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ); + wr8 : ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + + 'DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. + used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( SIZEOF( [ + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM' , + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( it ) ) = 2 ) AND ( it. + name = 'cross bar width' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ); + wr9 : ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + + 'DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. + used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( SIZEOF( [ + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM' , + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( it ) ) = 2 ) AND ( it. + name = 'cross bar depth' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ); + wr10: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + + 'DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. + used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( SIZEOF( [ + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM' , + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( it ) ) = 2 ) AND ( it. + name = 'first offset' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ); + wr11: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + + 'DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. + used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( SIZEOF( [ + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM' , + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( it ) ) = 2 ) AND ( it. + name = 'second offset' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ); + wr12: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + + 'DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. + used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( SIZEOF( [ + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM' , + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PLANE_ANGLE_MEASURE_WITH_UNIT' ] * TYPEOF( it ) ) = 2 ) AND + ( it.name = 'first angle' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ); + wr13: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + + 'DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. + used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( SIZEOF( [ + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM' , + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PLANE_ANGLE_MEASURE_WITH_UNIT' ] * TYPEOF( it ) ) = 2 ) AND + ( it.name = 'second angle' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ); + wr14: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + + 'DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. + used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( SIZEOF( [ + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM' , + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( it ) ) = 2 ) AND ( it. + name = 'radius' ) ) ) ) <= 1 ) ) ) ) = 0 ) ) ) ) = 0 ); + wr15: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + + 'DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( pdr <* USEDIN( pd, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PLANAR_SHAPE_REPRESENTATION' IN TYPEOF( pdr. + used_representation ) ) AND ( pdr.used_representation.name = 'profile limit' ) ) ) ) <= 1 ) ) ) ) = 0 ); + END_ENTITY; + + ENTITY temporal_decomposition_of_action_domain; + whole : physical_action_domain; + parts : LIST [2 : ?] OF physical_action_domain; + END_ENTITY; + + ENTITY temporal_decomposition_of_model_action; + parts : LIST [2 : ?] OF model_action_domain; + whole : model_action_domain; + END_ENTITY; + + ENTITY temporal_spatial_domain; + id : identifier; + name : label; + description : text; + WHERE + wr1: definition_for_temporal_spatial_domain( SELF ); + END_ENTITY; + + ENTITY tensor_representation_item + SUBTYPE OF ( representation_item ); + tensor_value : tensor_type; + END_ENTITY; + + ENTITY terminator_symbol + SUBTYPE OF ( annotation_symbol_occurrence ); + annotated_curve : annotation_curve_occurrence; + END_ENTITY; + + ENTITY tessellated_annotation_occurrence + SUBTYPE OF ( annotation_occurrence ); + SELF\styled_item.item : tessellated_geometric_set; + END_ENTITY; + + ENTITY tessellated_connecting_edge + SUBTYPE OF ( tessellated_edge ); + smooth : LOGICAL; + face1 : tessellated_face; + face2 : tessellated_face; + line_strip_face1 : LIST [2 : ?] OF INTEGER; + line_strip_face2 : LIST [2 : ?] OF INTEGER; + WHERE + wr1: ( SIZEOF( line_strip_face1 ) = SIZEOF( line_strip_face2 ) ); + wr2: ( SIZEOF( line_strip_face1 ) = SIZEOF( SELF\tessellated_edge.line_strip ) ); + END_ENTITY; + + ENTITY tessellated_curve_set + SUBTYPE OF ( tessellated_item ); + coordinates : coordinates_list; + line_strips : LIST [1 : ?] OF LIST [2 : ?] OF INTEGER; + END_ENTITY; + + ENTITY tessellated_edge + SUBTYPE OF ( tessellated_structured_item ); + coordinates : coordinates_list; + geometric_link : OPTIONAL edge_or_curve; + line_strip : LIST [2 : ?] OF INTEGER; + END_ENTITY; + + ENTITY tessellated_face + ABSTRACT SUPERTYPE OF ( + ONEOF ( + triangulated_face, + complex_triangulated_face ) ) + SUBTYPE OF ( tessellated_structured_item ); + coordinates : coordinates_list; + pnmax : INTEGER; + normals : LIST [0 : ?] OF LIST [3 : 3] OF REAL; + geometric_link : OPTIONAL face_or_surface; + WHERE + wr1: ( ( SIZEOF( normals ) = 0 ) OR ( SIZEOF( normals ) = 1 ) OR ( SIZEOF( normals ) = pnmax ) ); + END_ENTITY; + + ENTITY tessellated_geometric_set + SUBTYPE OF ( tessellated_item ); + children : SET [1 : ?] OF tessellated_item; + END_ENTITY; + + ENTITY tessellated_item + ABSTRACT SUPERTYPE OF ( + ONEOF ( + coordinates_list, + tessellated_solid, + tessellated_shell, + tessellated_wire, + tessellated_geometric_set, + tessellated_curve_set, + tessellated_point_set, + tessellated_surface_set, + tessellated_structured_item ) ) + SUBTYPE OF ( geometric_representation_item ); + WHERE + wr1: ( SIZEOF( QUERY ( using_rep <* using_representations( SELF ) | ( NOT ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.TESSELLATED_SHAPE_REPRESENTATION' IN TYPEOF( using_rep ) ) ) ) ) + = 0 ); + END_ENTITY; + + ENTITY tessellated_point_set + SUBTYPE OF ( tessellated_item ); + coordinates : coordinates_list; + point_list : LIST [1 : ?] OF INTEGER; + END_ENTITY; + + ENTITY tessellated_shape_representation + SUBTYPE OF ( shape_representation ); + SELF\representation.items : SET [1 : ?] OF tessellated_item; + WHERE + wr1: ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.GLOBAL_UNIT_ASSIGNED_CONTEXT' IN TYPEOF( SELF\representation. + context_of_items ) ); + END_ENTITY; + + ENTITY tessellated_shell + SUBTYPE OF ( tessellated_item ); + items : SET [1 : ?] OF tessellated_structured_item; + topological_link : OPTIONAL connected_face_set; + END_ENTITY; + + ENTITY tessellated_solid + SUBTYPE OF ( tessellated_item ); + items : SET [1 : ?] OF tessellated_structured_item; + geometric_link : OPTIONAL manifold_solid_brep; + END_ENTITY; + + ENTITY tessellated_structured_item + SUPERTYPE OF ( + ONEOF ( + tessellated_face, + tessellated_edge, + tessellated_vertex ) ) + SUBTYPE OF ( tessellated_item ); + END_ENTITY; + + ENTITY tessellated_surface_set + ABSTRACT SUPERTYPE OF ( + ONEOF ( + triangulated_surface_set, + complex_triangulated_surface_set ) ) + SUBTYPE OF ( tessellated_item ); + coordinates : coordinates_list; + pnmax : INTEGER; + normals : LIST [0 : ?] OF LIST [3 : 3] OF REAL; + WHERE + wr1: ( ( SIZEOF( normals ) = 0 ) OR ( SIZEOF( normals ) = 1 ) OR ( SIZEOF( normals ) = pnmax ) ); + END_ENTITY; + + ENTITY tessellated_vertex + SUBTYPE OF ( tessellated_structured_item ); + coordinates : coordinates_list; + topological_link : OPTIONAL vertex_point; + point_index : INTEGER; + END_ENTITY; + + ENTITY tessellated_wire + SUBTYPE OF ( tessellated_item ); + items : SET [1 : ?] OF tessellated_edge_or_vertex; + geometric_model_link : OPTIONAL path_or_composite_curve; + 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( [ + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.TEXT_LITERAL' , + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ANNOTATION_TEXT' , + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ANNOTATION_TEXT_CHARACTER' , + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.DEFINED_CHARACTER_GLYPH' , + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.COMPOSITE_TEXT' ] * TYPEOF( item ) ) = 0 ) ) ) ) >= 1 ); + wr2: ( SIZEOF( QUERY ( a2p <* QUERY ( item <* SELF\representation.items | ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.AXIS2_PLACEMENT' IN TYPEOF( item ) ) ) | ( NOT ( ( SIZEOF( + QUERY ( at <* QUERY ( item <* SELF\representation.items | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'ANNOTATION_TEXT' ) IN TYPEOF( item ) ) ) | ( at\mapped_item.mapping_target :=: a2p ) ) ) >= 1 ) OR ( SIZEOF( + QUERY ( atc <* QUERY ( item <* SELF\representation.items | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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_component + SUBTYPE OF ( assembly_component ); + END_ENTITY; + + ENTITY thermal_conductivity_model + SUBTYPE OF ( mbna_behaviour_model ); + model_type : thermal_conductivity_model_type; + END_ENTITY; + + ENTITY thermal_resistance_measure_with_unit + SUBTYPE OF ( measure_with_unit ); + WHERE + wr1: ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, -1, -3, 0, 1, 0, 0 ) ); + END_ENTITY; + + ENTITY thermodynamic_temperature_measure_with_unit + SUBTYPE OF ( measure_with_unit ); + WHERE + wr1: ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ) AND ( SELF\named_unit.dimensions.mass_exponent = 0 ) AND ( SELF\ + named_unit.dimensions.time_exponent = 0 ) AND ( SELF\named_unit.dimensions.electric_current_exponent = 0 ) AND ( + SELF\named_unit.dimensions.thermodynamic_temperature_exponent = 1 ) AND ( SELF\named_unit.dimensions. + amount_of_substance_exponent = 0 ) AND ( SELF\named_unit.dimensions.luminous_intensity_exponent = 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 ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SURFACE' IN TYPEOF( base_element ) ) AND ( NOT ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.BOUNDED_SURFACE' IN TYPEOF( base_element ) ) ) ) ); + wr2: ( offset1 <> offset2 ); + END_ENTITY; + + ENTITY thickness_laminate_table + SUBTYPE OF ( zone_structural_makeup ); + END_ENTITY; + + ENTITY thread + SUBTYPE OF ( feature_definition ); + WHERE + wr1 : ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + + 'DEFINITION' ) | ( SIZEOF( QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) AND ( 8 <= SIZEOF( pdr. + used_representation.items ) ) AND ( SIZEOF( pdr.used_representation.items ) <= 11 ) ) ) ) = 1 ) ) ) = 1 ); + wr2 : ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + + 'DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. + used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( SIZEOF( [ + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM' , + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( it ) ) = 2 ) AND ( it. + name = 'major diameter' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ); + wr3 : ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + + 'DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. + used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( SIZEOF( [ + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM' , + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( it ) ) = 2 ) AND ( it. + name = 'minor diameter' ) ) ) ) <= 1 ) ) ) ) = 0 ) ) ) ) = 0 ); + wr4 : ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + + 'DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. + used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( SIZEOF( [ + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM' , + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( it ) ) = 2 ) AND ( it. + name = 'pitch diameter' ) ) ) ) <= 1 ) ) ) ) = 0 ) ) ) ) = 0 ); + wr5 : ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + + 'DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. + used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( SIZEOF( [ + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM' , + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.RATIO_MEASURE_WITH_UNIT' ] * TYPEOF( it ) ) = 2 ) AND ( it. + name = 'number of threads' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ); + wr6 : ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + + 'DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. + used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF( it ) ) AND ( it. + name = 'fit class' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ); + wr7 : ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + + 'DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. + used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF( it ) ) AND ( it. + name = 'form' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ); + wr8 : ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + + 'DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. + used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF( it ) ) AND ( it. + name = 'hand' ) AND ( it.description IN [ 'left', 'right'] ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ); + wr9 : ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + + 'DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. + used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF( it ) ) AND ( it. + name = 'qualifier' ) ) ) ) <= 1 ) ) ) ) = 0 ) ) ) ) = 0 ); + wr10: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + + 'DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. + used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF( it ) ) AND ( it. + name = 'thread side' ) AND ( ( it.description = 'internal' ) OR ( it.description = 'external' ) ) ) ) ) = 1 ) ) ) ) + = 0 ) ) ) ) = 0 ); + wr11: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + + 'DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. + used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( SIZEOF( [ + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM' , + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( it ) ) = 2 ) AND ( it. + name = 'crest' ) ) ) ) <= 1 ) ) ) ) = 0 ) ) ) ) = 0 ); + wr12: ( SIZEOF( QUERY ( pds <* QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) | ( NOT ( SIZEOF( QUERY ( sa_occ <* USEDIN( pds, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) | ( ( sa_occ.description = + 'partial area occurrence' ) AND ( SIZEOF( QUERY ( sdr <* QUERY ( sar <* USEDIN( sa_occ, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT' ) | ( ( sar. + description = 'applied area usage' ) AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF( sar ) ) ) ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'APPLIED_AREA' IN TYPEOF( sdr.relating_shape_aspect ) ) ) ) = 1 ) ) ) ) = 1 ) ) ) ) = 0 ); + wr13: ( SIZEOF( QUERY ( pds <* QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) | ( NOT ( SIZEOF( QUERY ( sa_occ <* USEDIN( pds, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) | ( SIZEOF( QUERY ( sdr <* + QUERY ( sar <* USEDIN( sa_occ, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.' + + 'RELATED_SHAPE_ASPECT' ) | ( ( sar.description = 'applied shape' ) AND ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF( sar ) ) ) ) | ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT' IN TYPEOF( sdr.relating_shape_aspect ) ) ) ) = + 1 ) ) ) = 1 ) ) ) ) = 0 ); + wr14: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + + 'DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. + used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF( it ) ) AND ( it. + name = 'fit class 2' ) ) ) ) <= 1 ) ) ) ) = 0 ) ) ) ) = 0 ); + wr15: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + + 'DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. + used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( SIZEOF( [ + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM' , + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( it ) ) = 2 ) AND ( it. + name = 'nominal size' ) ) ) ) <= 1 ) ) ) ) = 0 ) ) ) ) = 0 ); + wr16: ( SIZEOF( QUERY ( pds <* QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) | ( NOT ( SIZEOF( QUERY ( sa_occ <* USEDIN( pds, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) | ( ( sa_occ.description = + 'thread runout' ) AND ( SIZEOF( QUERY ( sdr <* QUERY ( sar <* USEDIN( sa_occ, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT' ) | ( ( sar. + description = 'thread runout usage' ) AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF( sar ) ) ) ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'THREAD_RUNOUT' IN TYPEOF( sdr.relating_shape_aspect ) ) ) ) <= 1 ) ) ) ) = 1 ) ) ) ) = 0 ); + END_ENTITY; + + ENTITY thread_runout + SUBTYPE OF ( shape_aspect ); + WHERE + wr1: ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF( SELF.of_shape ) ); + wr2: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + + 'DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) ) = 1 ) ) ) ) = 0 ); + wr3: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + + 'DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. + used_representation ) ) ) | ( NOT ( SIZEOF( impl_rep.used_representation.items ) = 3 ) ) ) ) = 0 ) ) ) ) = 0 ); + wr4: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + + 'DEFINITION' ) | ( SIZEOF( QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) AND ( SIZEOF( QUERY ( srwp_i <* + pdr.used_representation.items | ( NOT ( srwp_i.name IN [ 'length of runout', 'pitch or dimension', + 'included or extra' ] ) ) ) ) > 0 ) ) ) ) = 0 ) ) ) = 0 ); + wr5: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + + 'DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. + used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( SIZEOF( [ + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM' , + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( it ) ) = 2 ) AND ( it. + name = 'length of runout' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) <= 1 ); + wr6: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + + 'DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. + used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF( it ) ) AND ( it. + name = 'pitch or dimension' ) AND ( it.description IN [ 'pitch', 'pitch or dimension'] ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) + = 0 ); + wr7: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + + 'DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. + used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF( it ) ) AND ( it. + name = 'included or extra' ) AND ( it.description IN [ 'included', 'extra'] ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ); + 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: ( EXISTS( primary_bound ) OR EXISTS( secondary_bound ) ); + wr2: ( NOT ( EXISTS( primary_bound ) AND EXISTS( secondary_bound ) AND EXISTS( duration ) ) ); + wr3: ( EXISTS( primary_bound ) AND ( NOT EXISTS( secondary_bound ) ) AND ( ( NOT EXISTS( duration ) ) OR + duration_is_positive( duration ) ) ); + wr4: ( EXISTS( secondary_bound ) AND ( NOT EXISTS( primary_bound ) ) AND EXISTS( duration ) AND duration_is_negative( + duration ) ); + END_ENTITY; + + ENTITY time_measure_with_unit + SUBTYPE OF ( measure_with_unit ); + WHERE + wr1: ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ) AND ( SELF\named_unit.dimensions.mass_exponent = 0 ) AND ( SELF\ + named_unit.dimensions.time_exponent = 1 ) AND ( SELF\named_unit.dimensions.electric_current_exponent = 0 ) AND ( + SELF\named_unit.dimensions.thermodynamic_temperature_exponent = 0 ) AND ( SELF\named_unit.dimensions. + amount_of_substance_exponent = 0 ) AND ( SELF\named_unit.dimensions.luminous_intensity_exponent = 0 ) ); + END_ENTITY; + + ENTITY tolerance_value; + lower_bound : measure_with_unit; + upper_bound : measure_with_unit; + DERIVE + ubvc : REAL := upper_bound\measure_with_unit.value_component; + lbvc : REAL := lower_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 tolerance_zone_target; + form : tolerance_zone_form; + END_ENTITY; + + ENTITY tolerance_zone_definition + SUPERTYPE OF ( + ONEOF ( + projected_zone_definition, + non_uniform_zone_definition, + runout_zone_definition ) ); + zone : tolerance_zone; + boundaries : SET [0 : ?] 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 topology_related_to_multiply_defined_geometry + ABSTRACT SUPERTYPE OF ( + ONEOF ( + multiply_defined_faces, + multiply_defined_vertices, + multiply_defined_edges ) ) + SUBTYPE OF ( inapt_topology_and_geometry_relationship ); + END_ENTITY; + + ENTITY topology_related_to_nearly_degenerate_geometry + ABSTRACT SUPERTYPE OF ( + ONEOF ( + short_length_edge, + small_area_face, + entirely_narrow_face ) ) + SUBTYPE OF ( inapt_topology_and_geometry_relationship ); + END_ENTITY; + + ENTITY topology_related_to_overlapping_geometry + ABSTRACT SUPERTYPE OF ( + ONEOF ( + partly_overlapping_faces, + partly_overlapping_edges ) ) + SUBTYPE OF ( inapt_topology_and_geometry_relationship ); + END_ENTITY; + + ENTITY topology_related_to_self_intersecting_geometry + ABSTRACT SUPERTYPE OF ( + ONEOF ( + self_intersecting_loop, + self_intersecting_shell, + intersecting_connected_face_sets ) ) + SUBTYPE OF ( inapt_topology_and_geometry_relationship ); + 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 ); + END_ENTITY; + + ENTITY track_blended_solid + ABSTRACT SUPERTYPE + 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 ) * [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SOLID_WITH_CONSTANT_RADIUS_EDGE_BLEND', + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SOLID_WITH_VARIABLE_RADIUS_EDGE_BLEND' , + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SOLID_WITH_CHAMFERED_EDGES' ] ) = 1 ); + wr2: ( NOT ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.VERTEX' IN TYPEOF( end_conditions[1] ) ) AND ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.VERTEX' IN TYPEOF( end_conditions[2] ) ) ) ); + wr3: ( NOT ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 transition_feature + SUPERTYPE OF ( + ONEOF ( + chamfer, + edge_round, + fillet ) ) + SUBTYPE OF ( shape_aspect ); + WHERE + wr1: ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRODUCT_DEFINITION', + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.COMPOUND_FEATURE' ] * TYPEOF( SELF.of_shape.definition ) ) = 1 ); + wr2: ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CHAMFER', + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.EDGE_ROUND' , + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FILLET' ] * TYPEOF( SELF ) ) = 1 ); + END_ENTITY; + + ENTITY triangular_matrix + SUBTYPE OF ( linearized_table_function ); + default_entry : maths_value; + lo_up : lower_upper; + order : ordering_type; + WHERE + wr1: ( SIZEOF( SELF\explicit_table_function.shape ) = 2 ); + wr2: member_of( default_entry, SELF\maths_function.range ); + END_ENTITY; + + ENTITY triangulated_face + SUBTYPE OF ( tessellated_face ); + pnindex : LIST [0 : ?] OF INTEGER; + triangles : LIST [1 : ?] OF LIST [3 : 3] OF INTEGER; + WHERE + wr1: ( ( SIZEOF( pnindex ) = 0 ) OR ( SIZEOF( pnindex ) = SELF\tessellated_face.pnmax ) ); + wr2: ( NOT ( ( SIZEOF( pnindex ) = 0 ) AND ( SELF\tessellated_face.pnmax <> coordinates.npoints ) ) ); + END_ENTITY; + + ENTITY triangulated_surface_set + SUBTYPE OF ( tessellated_surface_set ); + pnindex : LIST [0 : ?] OF INTEGER; + triangles : LIST [1 : ?] OF LIST [3 : 3] OF INTEGER; + WHERE + wr1: ( ( SIZEOF( pnindex ) = 0 ) OR ( SIZEOF( pnindex ) = SELF\tessellated_surface_set.pnmax ) ); + wr2: ( NOT ( ( SIZEOF( pnindex ) = 0 ) AND ( SELF\tessellated_surface_set.pnmax <> coordinates.npoints ) ) ); + 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 turbulence_closure + SUBTYPE OF ( mbna_behaviour_model ); + closure_type : turbulence_closure_type; + END_ENTITY; + + ENTITY turbulence_model + SUBTYPE OF ( mbna_behaviour_model ); + model_type : turbulence_model_type; + diffusion_model : OPTIONAL fd_diffusion_model; + END_ENTITY; + + ENTITY turned_knurl + SUBTYPE OF ( feature_definition ); + WHERE + wr1 : ( SELF\characterized_object.description IN [ 'diamond', 'diagonal', 'straight'] ); + wr2 : ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + + 'DEFINITION' ) | ( SIZEOF( QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) AND ( 6 <= SIZEOF( pdr. + used_representation.items ) ) AND ( SIZEOF( pdr.used_representation.items ) <= 9 ) ) ) ) = 1 ) ) ) = 1 ); + wr3 : ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + + 'DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. + used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM' IN TYPEOF( it ) ) AND ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.COUNT_MEASURE' IN TYPEOF( it\measure_with_unit. + value_component ) ) AND ( it.name = 'number of teeth' ) ) ) ) <= 1 ) ) ) ) = 0 ) ) ) ) = 0 ); + wr4 : ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + + 'DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. + used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( SIZEOF( [ + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM' , + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( it ) ) = 2 ) AND ( it. + name = 'major diameter' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ); + wr5 : ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + + 'DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. + used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( SIZEOF( [ + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM' , + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( it ) ) = 2 ) AND ( it. + name = 'nominal diameter' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ); + wr6 : ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + + 'DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. + used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( SIZEOF( [ + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM' , + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( it ) ) = 2 ) AND ( it. + name = 'tooth depth' ) ) ) ) <= 1 ) ) ) ) = 0 ) ) ) ) = 0 ); + wr7 : ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + + 'DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. + used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( SIZEOF( [ + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM' , + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( it ) ) = 2 ) AND ( it. + name = 'root fillet' ) ) ) ) <= 1 ) ) ) ) = 0 ) ) ) ) = 0 ); + wr8 : ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + + 'DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. + used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( SIZEOF( [ + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM' , + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( it ) ) = 2 ) AND ( it. + name = 'diametral pitch' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ); + wr9 : ( ( NOT ( SELF\characterized_object.description IN [ 'diamond', 'diagonal'] ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( + SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( + QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( + QUERY ( it <* impl_rep.used_representation.items | ( ( SIZEOF( [ + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM' , + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PLANE_ANGLE_MEASURE_WITH_UNIT' ] * TYPEOF( it ) ) = 2 ) AND + ( it.name = 'helix angle' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ) ); + wr10: ( ( NOT ( SELF\characterized_object.description = 'diagonal' ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( + QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( + QUERY ( it <* impl_rep.used_representation.items | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF( it ) ) AND ( it.name = 'helix hand' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) + = 0 ) ); + wr11: ( SIZEOF( QUERY ( pds <* QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) | ( NOT ( SIZEOF( QUERY ( sa_occ <* USEDIN( pds, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) | ( ( sa_occ.description = + 'partial area occurrence' ) AND ( SIZEOF( QUERY ( sdr <* QUERY ( sar <* USEDIN( sa_occ, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT' ) | ( ( sar. + description = 'applied area usage' ) AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF( sar ) ) ) ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'APPLIED_AREA' IN TYPEOF( sdr.relating_shape_aspect ) ) ) ) = 1 ) ) ) ) = 1 ) ) ) ) = 0 ); + wr12: ( SIZEOF( QUERY ( pds <* QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) | ( NOT ( SIZEOF( QUERY ( sa_occ <* USEDIN( pds, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) | ( SIZEOF( QUERY ( sdr <* + QUERY ( sar <* USEDIN( sa_occ, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.' + + 'RELATED_SHAPE_ASPECT' ) | ( ( sar.description = 'applied shape' ) AND ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF( sar ) ) ) ) | ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT' IN TYPEOF( sdr.relating_shape_aspect ) ) ) ) = + 1 ) ) ) = 1 ) ) ) ) = 0 ); + 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_boolean_expression + ABSTRACT SUPERTYPE OF ( + ONEOF ( + not_expression, + odd_function ) ) + SUBTYPE OF ( boolean_expression, unary_generic_expression ); + END_ENTITY; + + ENTITY unary_function_call + ABSTRACT SUPERTYPE OF ( + ONEOF ( + abs_function, + minus_function, + sin_function, + cos_function, + tan_function, + asin_function, + acos_function, + exp_function, + log_function, + log2_function, + log10_function, + square_root_function ) ) + SUBTYPE OF ( unary_numeric_expression ); + END_ENTITY; + + ENTITY unary_generic_expression + ABSTRACT SUPERTYPE OF ( + ONEOF ( + mesh_function, + mesh_function_basis ) ) + 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 unbound_parameter_environment + SUBTYPE OF ( environment ); + WHERE + wr1: ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.UNBOUND_VARIATIONAL_PARAMETER' IN TYPEOF( SELF\environment. + syntactic_representation ) ) AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'UNBOUND_VARIATIONAL_PARAMETER_SEMANTICS' IN TYPEOF( SELF\environment.semantics ) ) ); + END_ENTITY; + + ENTITY unbound_variational_parameter + SUBTYPE OF ( variational_parameter ); + WHERE + wr1: ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.UNBOUND_PARAMETER_ENVIRONMENT' IN TYPEOF( SELF\generic_variable. + interpretation ) ); + END_ENTITY; + + ENTITY unbound_variational_parameter_semantics + SUBTYPE OF ( variable_semantics ); + 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 unconstrained_pair + SUBTYPE OF ( low_order_kinematic_pair ); + DERIVE + SELF\low_order_kinematic_pair.t_x : BOOLEAN := TRUE; + SELF\low_order_kinematic_pair.t_y : BOOLEAN := TRUE; + SELF\low_order_kinematic_pair.t_z : BOOLEAN := TRUE; + SELF\low_order_kinematic_pair.r_x : BOOLEAN := TRUE; + SELF\low_order_kinematic_pair.r_y : BOOLEAN := TRUE; + SELF\low_order_kinematic_pair.r_z : BOOLEAN := TRUE; + END_ENTITY; + + ENTITY unconstrained_pair_value + SUBTYPE OF ( pair_value ); + SELF\pair_value.applies_to_pair : unconstrained_pair; + actual_placement : axis2_placement_3d; + END_ENTITY; + + ENTITY unequally_disposed_geometric_tolerance + SUBTYPE OF ( geometric_tolerance ); + displacement : length_measure_with_unit; + WHERE + wr1: ( ( 'NUMBER' IN TYPEOF( SELF\geometric_tolerance_with_defined_unit.unit_size\measure_with_unit.value_component ) ) AND + ( SELF\geometric_tolerance_with_defined_unit.unit_size\measure_with_unit.value_component > 0 ) ); + END_ENTITY; + + ENTITY uniform_curve + SUBTYPE OF ( b_spline_curve ); + END_ENTITY; + + ENTITY uniform_product_space + SUBTYPE OF ( maths_space, generic_literal ); + base : maths_space; + exponent : positive_integer; + WHERE + wr1: expression_is_constant( base ); + wr2: no_cyclic_space_reference( SELF, [] ); + wr3: ( base <> the_empty_space ); + END_ENTITY; + + ENTITY uniform_resource_identifier + SUBTYPE OF ( descriptive_representation_item ); + END_ENTITY; + + ENTITY uniform_surface + SUBTYPE OF ( b_spline_surface ); + END_ENTITY; + + ENTITY uniform_surface_section + SUBTYPE OF ( surface_section ); + thickness : context_dependent_measure; + bending_thickness : measure_or_unspecified_value; + shear_thickness : measure_or_unspecified_value; + END_ENTITY; + + ENTITY uniform_surface_section_layered + SUBTYPE OF ( surface_section ); + END_ENTITY; + + ENTITY universal_pair + SUBTYPE OF ( low_order_kinematic_pair ); + input_skew_angle : OPTIONAL plane_angle_measure; + DERIVE + SELF\low_order_kinematic_pair.t_x : BOOLEAN := FALSE; + SELF\low_order_kinematic_pair.t_y : BOOLEAN := FALSE; + SELF\low_order_kinematic_pair.t_z : BOOLEAN := FALSE; + SELF\low_order_kinematic_pair.r_x : BOOLEAN := TRUE; + SELF\low_order_kinematic_pair.r_y : BOOLEAN := FALSE; + SELF\low_order_kinematic_pair.r_z : BOOLEAN := TRUE; + skew_angle : plane_angle_measure := NVL( input_skew_angle, 0 ); + WHERE + wr1: ( COS( plane_angle_for_pair_in_radian( SELF, skew_angle ) ) > 0 ); + END_ENTITY; + + ENTITY universal_pair_value + SUBTYPE OF ( pair_value ); + SELF\pair_value.applies_to_pair : universal_pair; + first_rotation_angle : plane_angle_measure; + second_rotation_angle : plane_angle_measure; + END_ENTITY; + + ENTITY universal_pair_with_range + SUBTYPE OF ( universal_pair ); + lower_limit_first_rotation : OPTIONAL plane_angle_measure; + upper_limit_first_rotation : OPTIONAL plane_angle_measure; + lower_limit_second_rotation : OPTIONAL plane_angle_measure; + upper_limit_second_rotation : OPTIONAL plane_angle_measure; + WHERE + wr1: ( ( ( NOT EXISTS( lower_limit_first_rotation ) ) OR ( NOT EXISTS( upper_limit_first_rotation ) ) ) XOR ( + lower_limit_first_rotation < upper_limit_first_rotation ) ); + wr2: ( ( ( NOT EXISTS( lower_limit_second_rotation ) ) OR ( NOT EXISTS( upper_limit_second_rotation ) ) ) XOR ( + lower_limit_second_rotation < upper_limit_second_rotation ) ); + END_ENTITY; + + ENTITY unstructured_donor_mesh + SUBTYPE OF ( mismatched_donor_mesh ); + SELF\mismatched_donor_mesh.donor : unstructured_mesh; + cells : indices_group; + interpolant : property_distribution_description; + vsize : INTEGER; + DERIVE + index_count : INTEGER := donor.index_count; + END_ENTITY; + + ENTITY unstructured_mesh + ABSTRACT SUPERTYPE OF ( + ONEOF ( + array_based_unstructured_mesh, + explicit_unstructured_mesh ) ) + SUBTYPE OF ( mesh ); + cell_count : INTEGER; + END_ENTITY; + + ENTITY unused_patches + SUBTYPE OF ( overcomplex_topology_and_geometry_relationship ); + SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; + WHERE + wr1: ( ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' ) IN TYPEOF( SELF + \shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold ) ) + AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.COUNT_MEASURE' IN value_limit_type( SELF\ + shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold ) ) ); + wr2: validate_measured_data_type( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.COUNT_MEASURE' ); + wr3: validate_inspected_elements_type( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FACE_SURFACE'] ); + wr4: validate_locations_of_extreme_value_type( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'B_SPLINE_SURFACE_STRIP' ] ); + wr5: validate_accuracy_types( SELF, [] ); + END_ENTITY; + + ENTITY unused_shape_element + SUBTYPE OF ( externally_conditioned_data_quality_criterion ); + WHERE + wr1: validate_ecdq_inspected_elements_type( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.REPRESENTATION_ITEM'] ); + END_ENTITY; + + ENTITY usage_association + SUBTYPE OF ( action_method_relationship ); + SELF\action_method_relationship.relating_method : information_usage_right; + SELF\action_method_relationship.related_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 ); + SELF\user_selected_elements.picked_items : SET [1 : ?] OF shape_representation_item; + END_ENTITY; + + ENTITY value_format_type_qualifier; + format_type : value_format_type; + END_ENTITY; + + ENTITY value_function + SUPERTYPE OF ( + int_value_function ) + SUBTYPE OF ( numeric_expression, unary_generic_expression ); + SELF\unary_generic_expression.operand : string_expression; + END_ENTITY; + + ENTITY value_range + SUBTYPE OF ( compound_representation_item ); + WHERE + wr1: ( ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'GLOBAL_UNIT_ASSIGNED_CONTEXT' IN TYPEOF( rep.context_of_items ) ) ) ) ) = 0 ); + END_ENTITY; + + ENTITY variable + ABSTRACT SUPERTYPE OF ( + ONEOF ( + numeric_variable, + boolean_variable, + string_variable ) ) + SUBTYPE OF ( generic_variable ); + END_ENTITY; + + ENTITY variable_expression + SUBTYPE OF ( variable_semantics ); + property_associated : property_variable_rep_select; + END_ENTITY; + + ENTITY variable_semantics + ABSTRACT SUPERTYPE; + END_ENTITY; + + ENTITY variational_current_representation_relationship + SUBTYPE OF ( representation_relationship ); + SELF\representation_relationship.rep_1 : variational_representation; + current_result : representation; + UNIQUE + ur1 : current_result; + WHERE + wr1: ( QUERY ( q <* SELF\representation_relationship.rep_1.items | ( NOT ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.VARIATIONAL_REPRESENTATION_ITEM' IN TYPEOF( q ) ) ) ) = SELF\ + representation_relationship.rep_2.items ); + wr2: ( SELF\representation_relationship.rep_1.context_of_items :=: SELF\representation_relationship.rep_2.context_of_items ); + wr3: ( SIZEOF( QUERY ( q <* SELF\representation_relationship.rep_2.items | ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.VARIATIONAL_REPRESENTATION_ITEM' IN TYPEOF( q ) ) ) ) = 0 ); + wr4: ( ( TYPEOF( SELF\representation_relationship.rep_1 ) - TYPEOF( SELF\representation_relationship.rep_2 ) ) = [ + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.VARIATIONAL_REPRESENTATION' ] ); + wr5: ( current_result :=: SELF\representation_relationship.rep_2 ); + END_ENTITY; + + ENTITY variational_parameter + ABSTRACT SUPERTYPE OF ( + ONEOF ( + bound_variational_parameter, + unbound_variational_parameter ) ) + SUBTYPE OF ( variational_representation_item, maths_variable ); + parameter_description : OPTIONAL text; + parameter_current_value : maths_value; + WHERE + wr1: member_of( parameter_current_value, SELF\maths_variable.values_space ); + wr2: ( SELF\maths_variable.name = SELF\representation_item.name ); + END_ENTITY; + + ENTITY variational_representation + SUBTYPE OF ( representation ); + INVERSE + cm_link : variational_current_representation_relationship FOR rep_1; + WHERE + wr1: ( SIZEOF( QUERY ( q <* SELF\representation.items | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'VARIATIONAL_REPRESENTATION_ITEM' IN TYPEOF( q ) ) ) ) > 0 ); + wr2: ( SIZEOF( QUERY ( q <* ( SELF\representation.items - cm_link.rep_2.items ) | invalidate_vrep_item( q ) ) ) = 0 ); + 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 ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ); + END_ENTITY; + + ENTITY vector_style + SUBTYPE OF ( curve_style, pre_defined_terminator_symbol ); + END_ENTITY; + + ENTITY vee_profile + SUBTYPE OF ( shape_aspect ); + WHERE + wr1 : ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FEATURE_COMPONENT_DEFINITION' IN TYPEOF( SELF.of_shape. + definition ) ); + wr2 : ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + + 'DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( pdr <* USEDIN( pd, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. + used_representation ) ) ) ) = 1 ) ) ) ) = 0 ); + wr3 : ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + + 'DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. + used_representation ) ) ) | ( ( NOT ( SIZEOF( impl_rep.used_representation.items ) >= 3 ) ) AND ( SIZEOF( impl_rep + .used_representation.items ) <= 6 ) ) ) ) = 0 ) ) ) ) = 0 ); + wr4 : ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + + 'DEFINITION' ) | ( SIZEOF( QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) AND ( SIZEOF( QUERY ( srwp_i <* + pdr.used_representation.items | ( ( srwp_i.name = 'orientation' ) OR ( srwp_i.name = 'profile angle' ) OR ( srwp_i + .name = 'tilt angle' ) OR ( srwp_i.name = 'profile radius' ) OR ( srwp_i.name = 'first length' ) OR ( srwp_i.name + = 'second length' ) ) ) ) = SIZEOF( pdr.used_representation.items ) ) ) ) ) = 1 ) ) ) = 1 ); + wr5 : ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + + 'DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. + used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PLACEMENT' IN TYPEOF( it ) ) AND ( it.name = 'orientation' ) ) ) ) + = 1 ) ) ) ) = 0 ) ) ) ) = 0 ); + wr6 : ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + + 'DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. + used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM' IN TYPEOF( it ) ) AND ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT' IN TYPEOF( it\measure_with_unit. + value_component ) ) AND ( it.name = 'profile radius' ) ) ) ) <= 1 ) ) ) ) = 0 ) ) ) ) = 0 ); + wr7 : ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + + 'DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. + used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( SIZEOF( [ + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM' , + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PLANE_ANGLE_MEASURE_WITH_UNIT' ] * TYPEOF( it ) ) = 2 ) AND + ( it.name = 'profile angle' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ); + wr8 : ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + + 'DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. + used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( SIZEOF( [ + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM' , + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PLANE_ANGLE_MEASURE_WITH_UNIT' ] * TYPEOF( it ) ) = 2 ) AND + ( it.name = 'tilt angle' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ); + wr9 : ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + + 'DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( pdr <* USEDIN( pd, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PLANAR_SHAPE_REPRESENTATION' IN TYPEOF( pdr. + used_representation ) ) AND ( pdr.used_representation.name = 'profile limit' ) ) ) ) <= 1 ) ) ) ) = 0 ); + wr10: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + + 'DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. + used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM' IN TYPEOF( it ) ) AND ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT' IN TYPEOF( it\measure_with_unit. + value_component ) ) AND ( it.name = 'first length' ) ) ) ) <= 1 ) ) ) ) = 0 ) ) ) ) = 0 ); + wr11: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + + 'DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. + used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM' IN TYPEOF( it ) ) AND ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT' IN TYPEOF( it\measure_with_unit. + value_component ) ) AND ( it.name = 'second length' ) ) ) ) <= 1 ) ) ) ) = 0 ) ) ) ) = 0 ); + END_ENTITY; + + ENTITY velocity_measure_with_unit + SUBTYPE OF ( measure_with_unit ); + WHERE + wr1: ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, -1, 0, 0, 0, 0 ) ); + END_ENTITY; + + ENTITY versioned_action_request; + id : identifier; + version : OPTIONAL label; + purpose : text; + description : OPTIONAL text; + END_ENTITY; + + ENTITY versioned_action_request_relationship; + id : identifier; + name : label; + description : OPTIONAL text; + relating_versioned_action_request : versioned_action_request; + related_versioned_action_request : versioned_action_request; + END_ENTITY; + + ENTITY vertex + SUBTYPE OF ( topological_representation_item ); + END_ENTITY; + + ENTITY vertex_defined_cell + SUBTYPE OF ( cell ); + shape : cell_shape; + order : element_order; + vertices : ARRAY [1 : vn_count] OF OPTIONAL vertex; + DERIVE + bound_count : INTEGER := cell_counts( SELF )[1]; + edge_node_count : INTEGER := cell_counts( SELF )[2]; + opt_node_count : INTEGER := cell_counts( SELF )[3]; + required_count : INTEGER := bound_count + edge_node_count; + vn_count : INTEGER := required_count + opt_node_count; + required_vertices : ARRAY [1 : required_count] OF vertex := shorten_array( vertices, vn_count, required_count ); + 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_relationship; + id : identifier; + name : label; + description : text; + viewed : temporal_spatial_domain; + view : numerical_model; + 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; + INVERSE + camera_usages : SET [1 : ?] OF camera_model_d3 FOR perspective_of_volume; + WHERE + wr1: ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.AXIS2_PLACEMENT_2D' IN TYPEOF( SELF\view_volume.view_window. + placement ) ) OR ( dot_product( representation_item( ' ' ) || geometric_representation_item( ) || direction( [0, 0, + 1] ), SELF.view_window\planar_box.placement\axis2_placement_3d.p[3] ) = 1 ) ); + wr2: ( view_plane_distance = view_window.placement\placement.location.coordinates[3] ); + END_ENTITY; + + ENTITY viscosity_model + SUBTYPE OF ( mbna_behaviour_model ); + model_type : viscosity_model_type; + END_ENTITY; + + ENTITY visual_appearance_representation + SUBTYPE OF ( representation ); + WHERE + wr1 : ( ( 3 <= SIZEOF( SELF.items ) ) AND ( SIZEOF( SELF.items ) <= 9 ) AND ( ( SIZEOF( QUERY ( i <* items | ( ( ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'MEASURE_REPRESENTATION_ITEM' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'VALUE_RANGE'] * TYPEOF( + i ) ) = 1 ) AND ( i.name IN [ 'refraction index', 'opacity'] ) ) ) ) + SIZEOF( QUERY ( i <* items | ( ( ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.' + + 'USED_REPRESENTATION' ) ) = 1 ) AND ( SIZEOF( QUERY ( pdr <* USEDIN( SELF, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.' + + 'USED_REPRESENTATION' ) | ( SIZEOF( QUERY ( gpa <* USEDIN( pdr.definition, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'GENERAL_PROPERTY_ASSOCIATION.' + 'DERIVED_DEFINITION' ) + | ( ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'GENERAL_PROPERTY' ) IN TYPEOF( gpa. + base_definition ) ) AND ( gpa\general_property_association.base_definition\general_property.name = + 'surface_condition' ) ) ) ) = 1 ) ) ) = 1 ) ); + END_ENTITY; + + ENTITY volume + SUBTYPE OF ( geometric_representation_item ); + WHERE + wr1: ( SELF\geometric_representation_item.dim = 3 ); + END_ENTITY; + + ENTITY volume_2d_element_basis; + descriptor : volume_2d_element_descriptor; + variable : volume_variable; + variable_order : element_order; + variable_shape_function : shape_function; + evaluation_points : LIST [1 : ?] OF volume_element_location; + END_ENTITY; + + ENTITY volume_2d_element_boundary_constant_specified_variable_value + SUBTYPE OF ( volume_2d_element_field_variable_definition ); + simple_value : field_value; + variable : boundary_variable; + element_face : volume_2d_face; + coordinate_system : OPTIONAL volume_2d_element_coordinate_system; + WHERE + wr1: necessary_value_coordinate_system( simple_value, coordinate_system ); + wr2: consistent_value( simple_value, variable ); + wr3: appropriate_value_existence( simple_value, TYPEOF( SELF\state_definition.defined_state ) ); + END_ENTITY; + + ENTITY volume_2d_element_boundary_edge_constant_specified_volume_variable_value + SUBTYPE OF ( volume_2d_element_field_variable_definition ); + simple_value : field_value; + variable : boundary_edge_variable; + element_edge : volume_2d_edge; + coordinate_system : OPTIONAL volume_2d_element_coordinate_system; + WHERE + wr1: necessary_value_coordinate_system( simple_value, coordinate_system ); + wr2: consistent_value( simple_value, variable ); + wr3: appropriate_value_existence( simple_value, TYPEOF( SELF\state_definition.defined_state ) ); + END_ENTITY; + + ENTITY volume_2d_element_boundary_edge_location_point_volume_variable_values + SUBTYPE OF ( volume_2d_element_field_variable_definition ); + basis : BOOLEAN; + values_and_locations : SET [1 : ?] OF volume_2d_element_value_and_location; + variable : boundary_edge_variable; + element_edge : volume_2d_edge; + WHERE + wr1: consistent_set_values( values_and_locations, variable ); + wr2: appropriate_set_value_existence( values_and_locations, TYPEOF( SELF\state_definition.defined_state ) ); + END_ENTITY; + + ENTITY volume_2d_element_boundary_edge_nodal_specified_variable_values + SUBTYPE OF ( volume_2d_element_field_variable_definition ); + values : LIST [1 : ?] OF field_value; + additional_node_values : BOOLEAN; + variable : boundary_edge_variable; + element_edge : volume_2d_edge; + WHERE + wr1: consistent_list_values( values, variable ); + wr2: appropriate_list_value_existence( values, TYPEOF( SELF\state_definition.defined_state ) ); + END_ENTITY; + + ENTITY volume_2d_element_boundary_edge_whole_edge_variable_value + SUBTYPE OF ( volume_2d_element_field_variable_definition ); + simple_value : field_value; + variable : boundary_aggregated_variable; + element_edge : volume_2d_edge; + coordinate_system : OPTIONAL volume_2d_element_coordinate_system; + WHERE + wr1: necessary_value_coordinate_system( simple_value, coordinate_system ); + wr2: consistent_value( simple_value, variable ); + wr3: appropriate_value_existence( simple_value, TYPEOF( SELF\state_definition.defined_state ) ); + END_ENTITY; + + ENTITY volume_2d_element_boundary_location_point_variable_values + SUBTYPE OF ( volume_2d_element_field_variable_definition ); + basis : BOOLEAN; + values_and_locations : SET [1 : ?] OF volume_2d_element_value_and_location; + variable : boundary_variable; + element_face : volume_2d_face; + WHERE + wr1: consistent_set_values( values_and_locations, variable ); + wr2: appropriate_set_value_existence( values_and_locations, TYPEOF( SELF\state_definition.defined_state ) ); + END_ENTITY; + + ENTITY volume_2d_element_boundary_nodal_specified_variable_values + SUBTYPE OF ( volume_2d_element_field_variable_definition ); + values : LIST [1 : ?] OF field_value; + variable : boundary_variable; + additional_node_values : BOOLEAN; + element_face : volume_2d_face; + WHERE + wr1: consistent_list_values( values, variable ); + wr2: appropriate_list_value_existence( values, TYPEOF( SELF\state_definition.defined_state ) ); + END_ENTITY; + + ENTITY volume_2d_element_boundary_whole_face_variable_value + SUBTYPE OF ( volume_2d_element_field_variable_definition ); + simple_value : field_value; + variable : boundary_aggregated_variable; + element_face : volume_2d_face; + coordinate_system : OPTIONAL volume_2d_element_coordinate_system; + WHERE + wr1: necessary_value_coordinate_system( simple_value, coordinate_system ); + wr2: consistent_value( simple_value, variable ); + wr3: appropriate_value_existence( simple_value, TYPEOF( SELF\state_definition.defined_state ) ); + END_ENTITY; + + ENTITY volume_2d_element_constant_specified_variable_value + SUBTYPE OF ( volume_2d_element_field_variable_definition ); + simple_value : field_value; + variable : volume_variable; + coordinate_system : OPTIONAL volume_2d_element_coordinate_system; + WHERE + wr1: necessary_value_coordinate_system( simple_value, coordinate_system ); + wr2: consistent_value( simple_value, variable ); + wr3: appropriate_value_existence( simple_value, TYPEOF( SELF\state_definition.defined_state ) ); + END_ENTITY; + + ENTITY volume_2d_element_field_integration_explicit; + integration_positions_and_weights : SET [1 : ?] OF volume_position_weight; + END_ENTITY; + + ENTITY volume_2d_element_field_integration_rule; + integration_method : integration_rule; + integration_order : ARRAY [1 : 2] OF INTEGER; + END_ENTITY; + + ENTITY volume_2d_element_field_variable_definition + SUPERTYPE OF ( + ONEOF ( + volume_2d_element_location_point_variable_values, + volume_2d_whole_element_variable_value, + volume_2d_element_constant_specified_variable_value, + volume_2d_element_nodal_specified_variable_values, + volume_2d_element_boundary_location_point_variable_values, + volume_2d_element_boundary_whole_face_variable_value, + volume_2d_element_boundary_constant_specified_variable_value, + volume_2d_element_boundary_nodal_specified_variable_values, + volume_2d_element_boundary_edge_location_point_volume_variable_values, + volume_2d_element_boundary_edge_whole_edge_variable_value, + volume_2d_element_boundary_edge_constant_specified_volume_variable_value, + volume_2d_element_boundary_edge_nodal_specified_variable_values ) ) + SUBTYPE OF ( field_variable_element_definition ); + element : volume_2d_element_output_reference; + END_ENTITY; + + ENTITY volume_2d_element_group + SUBTYPE OF ( element_group ); + WHERE + wr1: ( SIZEOF( QUERY ( item <* elements | ( ( NOT ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'AXISYMMETRIC_VOLUME_2D_ELEMENT_REPRESENTATION' ) IN TYPEOF( item ) ) ) AND ( NOT ( ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PLANE_VOLUME_2D_ELEMENT_REPRESENTATION' ) IN TYPEOF( + item ) ) ) ) ) ) = 0 ); + END_ENTITY; + + ENTITY volume_2d_element_integrated_matrix; + descriptor : volume_2d_element_descriptor; + property_type : matrix_property_type; + integration_description : text; + END_ENTITY; + + ENTITY volume_2d_element_integrated_matrix_with_definition + SUBTYPE OF ( volume_2d_element_integrated_matrix ); + integration_definition : volume_2d_element_field_integration; + END_ENTITY; + + ENTITY volume_2d_element_location_point_variable_values + SUBTYPE OF ( volume_2d_element_field_variable_definition ); + basis : BOOLEAN; + values_and_locations : SET [1 : ?] OF volume_2d_element_value_and_location; + variable : volume_variable; + WHERE + wr1: consistent_set_values( values_and_locations, variable ); + wr2: appropriate_set_value_existence( values_and_locations, TYPEOF( SELF\state_definition.defined_state ) ); + END_ENTITY; + + ENTITY volume_2d_element_nodal_specified_variable_values + SUBTYPE OF ( volume_2d_element_field_variable_definition ); + values : LIST [1 : ?] OF field_value; + additional_node_values : BOOLEAN; + variable : volume_variable; + WHERE + wr1: consistent_list_values( values, variable ); + wr2: appropriate_list_value_existence( values, TYPEOF( SELF\state_definition.defined_state ) ); + END_ENTITY; + + ENTITY volume_2d_element_value_and_location; + simple_value : field_value; + location : volume_element_location; + coordinate_system : OPTIONAL volume_2d_element_coordinate_system; + WHERE + wr1: necessary_value_coordinate_system( simple_value, coordinate_system ); + END_ENTITY; + + ENTITY volume_2d_node_field_variable_definition + SUBTYPE OF ( field_variable_node_definition ); + simple_value : field_value; + variable : volume_variable; + coordinate_system : OPTIONAL volume_2d_element_coordinate_system; + WHERE + wr1: necessary_value_coordinate_system( simple_value, coordinate_system ); + wr2: consistent_value( simple_value, variable ); + wr3: appropriate_value_existence( simple_value, TYPEOF( SELF\state_definition.defined_state ) ); + END_ENTITY; + + ENTITY volume_2d_substructure_element_reference; + substructure_element_ref : substructure_element_representation; + element_ref : volume_2d_element_representation; + END_ENTITY; + + ENTITY volume_2d_whole_element_variable_value + SUBTYPE OF ( volume_2d_element_field_variable_definition ); + simple_value : field_value; + variable : volume_aggregated_variable; + coordinate_system : OPTIONAL volume_2d_element_coordinate_system; + WHERE + wr1: necessary_value_coordinate_system( simple_value, coordinate_system ); + wr2: consistent_value( simple_value, variable ); + wr3: appropriate_value_existence( simple_value, TYPEOF( SELF\state_definition.defined_state ) ); + END_ENTITY; + + ENTITY volume_3d_element_basis; + descriptor : volume_3d_element_descriptor; + variable : volume_variable; + variable_order : element_order; + variable_shape_function : shape_function; + evaluation_points : LIST [1 : ?] OF volume_element_location; + END_ENTITY; + + ENTITY volume_3d_element_boundary_constant_specified_variable_value + SUBTYPE OF ( volume_3d_element_field_variable_definition ); + simple_value : field_value; + variable : boundary_variable; + element_face : volume_3d_face; + coordinate_system : OPTIONAL volume_3d_element_coordinate_system; + WHERE + wr1: necessary_value_coordinate_system( simple_value, coordinate_system ); + wr2: consistent_value( simple_value, variable ); + wr3: appropriate_value_existence( simple_value, TYPEOF( SELF\state_definition.defined_state ) ); + END_ENTITY; + + ENTITY volume_3d_element_boundary_edge_constant_specified_volume_variable_value + SUBTYPE OF ( volume_3d_element_field_variable_definition ); + simple_value : field_value; + variable : boundary_edge_variable; + element_edge : volume_3d_edge; + coordinate_system : OPTIONAL volume_3d_element_coordinate_system; + WHERE + wr1: necessary_value_coordinate_system( simple_value, coordinate_system ); + wr2: consistent_value( simple_value, variable ); + wr3: appropriate_value_existence( simple_value, TYPEOF( SELF\state_definition.defined_state ) ); + END_ENTITY; + + ENTITY volume_3d_element_boundary_edge_location_point_volume_variable_values + SUBTYPE OF ( volume_3d_element_field_variable_definition ); + basis : BOOLEAN; + values_and_locations : SET [1 : ?] OF volume_3d_element_value_and_location; + variable : boundary_edge_variable; + element_edge : volume_3d_edge; + WHERE + wr1: consistent_set_values( values_and_locations, variable ); + wr2: appropriate_set_value_existence( values_and_locations, TYPEOF( SELF\state_definition.defined_state ) ); + END_ENTITY; + + ENTITY volume_3d_element_boundary_edge_nodal_specified_variable_values + SUBTYPE OF ( volume_3d_element_field_variable_definition ); + values : LIST [1 : ?] OF field_value; + additional_node_values : BOOLEAN; + variable : boundary_edge_variable; + element_edge : volume_3d_edge; + WHERE + wr1: consistent_list_values( values, variable ); + wr2: appropriate_list_value_existence( values, TYPEOF( SELF\state_definition.defined_state ) ); + END_ENTITY; + + ENTITY volume_3d_element_boundary_edge_whole_edge_variable_value + SUBTYPE OF ( volume_3d_element_field_variable_definition ); + simple_value : field_value; + variable : boundary_aggregated_variable; + element_edge : volume_3d_edge; + coordinate_system : OPTIONAL volume_3d_element_coordinate_system; + WHERE + wr1: necessary_value_coordinate_system( simple_value, coordinate_system ); + wr2: consistent_value( simple_value, variable ); + wr3: appropriate_value_existence( simple_value, TYPEOF( SELF\state_definition.defined_state ) ); + END_ENTITY; + + ENTITY volume_3d_element_boundary_location_point_variable_values + SUBTYPE OF ( volume_3d_element_field_variable_definition ); + basis : BOOLEAN; + values_and_locations : SET [1 : ?] OF volume_3d_element_value_and_location; + variable : boundary_variable; + element_face : volume_3d_face; + WHERE + wr1: consistent_set_values( values_and_locations, variable ); + wr2: appropriate_set_value_existence( values_and_locations, TYPEOF( SELF\state_definition.defined_state ) ); + END_ENTITY; + + ENTITY volume_3d_element_boundary_nodal_specified_variable_values + SUBTYPE OF ( volume_3d_element_field_variable_definition ); + values : LIST [1 : ?] OF field_value; + additional_node_values : BOOLEAN; + variable : boundary_variable; + element_face : volume_3d_face; + WHERE + wr1: consistent_list_values( values, variable ); + wr2: appropriate_list_value_existence( values, TYPEOF( SELF\state_definition.defined_state ) ); + END_ENTITY; + + ENTITY volume_3d_element_boundary_whole_face_variable_value + SUBTYPE OF ( volume_3d_element_field_variable_definition ); + simple_value : field_value; + variable : boundary_aggregated_variable; + element_face : volume_3d_face; + coordinate_system : OPTIONAL volume_3d_element_coordinate_system; + WHERE + wr1: necessary_value_coordinate_system( simple_value, coordinate_system ); + wr2: consistent_value( simple_value, variable ); + wr3: appropriate_value_existence( simple_value, TYPEOF( SELF\state_definition.defined_state ) ); + END_ENTITY; + + ENTITY volume_3d_element_constant_specified_variable_value + SUBTYPE OF ( volume_3d_element_field_variable_definition ); + simple_value : field_value; + variable : volume_variable; + coordinate_system : OPTIONAL volume_3d_element_coordinate_system; + WHERE + wr1: necessary_value_coordinate_system( simple_value, coordinate_system ); + wr2: consistent_value( simple_value, variable ); + wr3: appropriate_value_existence( simple_value, TYPEOF( SELF\state_definition.defined_state ) ); + END_ENTITY; + + ENTITY volume_3d_element_descriptor + SUBTYPE OF ( element_descriptor ); + purpose : SET [1 : ?] OF volume_element_purpose; + shape : volume_3d_element_shape; + END_ENTITY; + + ENTITY volume_3d_element_field_integration_explicit; + integration_positions_and_weights : SET [1 : ?] OF volume_position_weight; + END_ENTITY; + + ENTITY volume_3d_element_field_integration_rule; + integration_method : integration_rule; + integration_order : ARRAY [1 : 3] OF INTEGER; + END_ENTITY; + + ENTITY volume_3d_element_field_variable_definition + SUPERTYPE OF ( + ONEOF ( + volume_3d_element_location_point_variable_values, + volume_3d_whole_element_variable_value, + volume_3d_element_constant_specified_variable_value, + volume_3d_element_nodal_specified_variable_values, + volume_3d_element_boundary_location_point_variable_values, + volume_3d_element_boundary_whole_face_variable_value, + volume_3d_element_boundary_constant_specified_variable_value, + volume_3d_element_boundary_nodal_specified_variable_values, + volume_3d_element_boundary_edge_location_point_volume_variable_values, + volume_3d_element_boundary_edge_whole_edge_variable_value, + volume_3d_element_boundary_edge_constant_specified_volume_variable_value, + volume_3d_element_boundary_edge_nodal_specified_variable_values ) ) + SUBTYPE OF ( field_variable_element_definition ); + element : volume_3d_element_output_reference; + END_ENTITY; + + ENTITY volume_3d_element_group + SUBTYPE OF ( element_group ); + WHERE + wr1: ( SIZEOF( QUERY ( item <* elements | ( NOT ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'VOLUME_3D_ELEMENT_REPRESENTATION' ) IN TYPEOF( item ) ) ) ) ) = 0 ); + END_ENTITY; + + ENTITY volume_3d_element_integrated_matrix; + descriptor : volume_3d_element_descriptor; + property_type : matrix_property_type; + integration_description : text; + END_ENTITY; + + ENTITY volume_3d_element_integrated_matrix_with_definition + SUBTYPE OF ( volume_3d_element_integrated_matrix ); + integration_definition : volume_3d_element_field_integration; + END_ENTITY; + + ENTITY volume_3d_element_location_point_variable_values + SUBTYPE OF ( volume_3d_element_field_variable_definition ); + basis : BOOLEAN; + values_and_locations : SET [1 : ?] OF volume_3d_element_value_and_location; + variable : volume_variable; + WHERE + wr1: consistent_set_values( values_and_locations, variable ); + wr2: appropriate_set_value_existence( values_and_locations, TYPEOF( SELF\state_definition.defined_state ) ); + END_ENTITY; + + ENTITY volume_3d_element_nodal_specified_variable_values + SUBTYPE OF ( volume_3d_element_field_variable_definition ); + values : LIST [1 : ?] OF field_value; + additional_node_values : BOOLEAN; + variable : volume_variable; + WHERE + wr1: consistent_list_values( values, variable ); + wr2: appropriate_list_value_existence( values, TYPEOF( SELF\state_definition.defined_state ) ); + END_ENTITY; + + ENTITY volume_3d_element_representation + SUBTYPE OF ( element_representation ); + model_ref : fea_model_3d; + element_descriptor : volume_3d_element_descriptor; + material : element_material; + UNIQUE + ur1 : model_ref, SELF\representation.name; + WHERE + wr1: ( ( SIZEOF( QUERY ( item <* SELF\representation.items | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'PARAMETRIC_VOLUME_3D_ELEMENT_COORDINATE_SYSTEM' ) IN TYPEOF( item ) ) ) ) + SIZEOF( QUERY ( item <* SELF\ + representation.items | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'ARBITRARY_VOLUME_3D_ELEMENT_COORDINATE_SYSTEM' ) IN TYPEOF( item ) ) ) ) ) = 1 ); + wr2: ( SIZEOF( QUERY ( item1 <* material.properties | ( SIZEOF( QUERY ( item2 <* item1\property_definition_representation. + used_representation.items | ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'FEA_LINEAR_ELASTICITY' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'FEA_MASS_DENSITY', + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'FEA_TANGENTIAL_COEFFICIENT_OF_LINEAR_THERMAL_EXPANSION', + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'FEA_SECANT_COEFFICIENT_OF_LINEAR_THERMAL_EXPANSION', + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'FEA_MOISTURE_ABSORPTION'] * TYPEOF( item2 ) ) = 1 ) ) ) + = 1 ) ) ) >= 1 ); + wr3: ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PARAMETRIC_REPRESENTATION_CONTEXT' IN TYPEOF( SELF\ + representation.context_of_items ) ); + fu1: required_3d_nodes( SELF\element_representation.node_list, element_descriptor.shape, element_descriptor\ + element_descriptor.topology_order ); + END_ENTITY; + + ENTITY volume_3d_element_value_and_location; + simple_value : field_value; + location : volume_element_location; + coordinate_system : OPTIONAL volume_3d_element_coordinate_system; + WHERE + wr1: necessary_value_coordinate_system( simple_value, coordinate_system ); + END_ENTITY; + + ENTITY volume_3d_node_field_variable_definition + SUBTYPE OF ( field_variable_node_definition ); + simple_value : field_value; + variable : volume_variable; + coordinate_system : OPTIONAL volume_3d_element_coordinate_system; + WHERE + wr1: necessary_value_coordinate_system( simple_value, coordinate_system ); + wr2: consistent_value( simple_value, variable ); + wr3: appropriate_value_existence( simple_value, TYPEOF( SELF\state_definition.defined_state ) ); + END_ENTITY; + + ENTITY volume_3d_substructure_element_reference; + substructure_element_ref : substructure_element_representation; + element_ref : volume_3d_element_representation; + END_ENTITY; + + ENTITY volume_3d_whole_element_variable_value + SUBTYPE OF ( volume_3d_element_field_variable_definition ); + simple_value : field_value; + variable : volume_aggregated_variable; + coordinate_system : OPTIONAL volume_3d_element_coordinate_system; + WHERE + wr1: necessary_value_coordinate_system( simple_value, coordinate_system ); + wr2: consistent_value( simple_value, variable ); + wr3: appropriate_value_existence( simple_value, TYPEOF( SELF\state_definition.defined_state ) ); + END_ENTITY; + + ENTITY volume_element_location; + coordinates : fea_parametric_point; + END_ENTITY; + + ENTITY volume_measure_with_unit + SUBTYPE OF ( measure_with_unit ); + WHERE + wr1: ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.VOLUME_UNIT' IN TYPEOF( SELF\measure_with_unit.unit_component ) ); + END_ENTITY; + + ENTITY volume_position_weight; + integration_position : volume_element_location; + integration_weight : context_dependent_measure; + END_ENTITY; + + ENTITY volume_unit + SUBTYPE OF ( derived_unit ); + WHERE + wr1: ( derive_dimensional_exponents( SELF ) = dimensional_exponents( 3, 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; + WHERE + wr1: ( ( NOT leap_year( SELF\date.year_component ) ) OR ( ( 1 <= ( day_component + ( 7 * ( week_component - 1 ) ) ) ) AND + ( ( day_component + ( 7 * ( week_component - 1 ) ) ) <= 366 ) ) ); + wr2: ( leap_year( SELF\date.year_component ) OR ( ( 1 <= ( day_component + ( 7 * ( week_component - 1 ) ) ) ) AND ( ( + day_component + ( 7 * ( week_component - 1 ) ) ) <= 365 ) ) ); + END_ENTITY; + + ENTITY whole_model_analysis_message + SUPERTYPE OF ( + whole_model_modes_and_frequencies_analysis_message ) + SUBTYPE OF ( analysis_message ); + END_ENTITY; + + ENTITY whole_model_modes_and_frequencies_analysis_message + SUBTYPE OF ( whole_model_analysis_message ); + mode : count_measure; + frequency : context_dependent_measure; + 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 wrong_element_name + SUBTYPE OF ( externally_conditioned_data_quality_criterion ); + WHERE + wr1: validate_ecdq_inspected_elements_type( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.REPRESENTATION_ITEM'] ); + END_ENTITY; + + ENTITY wrongly_oriented_void + SUBTYPE OF ( erroneous_manifold_solid_brep ); + SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_logical_test; + WHERE + wr1: validate_measured_data_type( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.BOOLEAN_VALUE' ); + wr2: validate_inspected_elements_type( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.BREP_WITH_VOIDS'] ); + wr3: validate_locations_of_extreme_value_type( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'ORIENTED_CLOSED_SHELL' ] ); + wr4: validate_accuracy_types( SELF, [] ); + END_ENTITY; + + ENTITY wrongly_placed_loop + SUBTYPE OF ( erroneous_topology_and_geometry_relationship ); + SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_logical_test; + WHERE + wr1: validate_measured_data_type( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.BOOLEAN_VALUE' ); + wr2: validate_inspected_elements_type( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FACE'] ); + wr3: validate_locations_of_extreme_value_type( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FACE_BOUND'] ); + wr4: validate_accuracy_types( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE'] ); + END_ENTITY; + + ENTITY wrongly_placed_void + SUBTYPE OF ( erroneous_manifold_solid_brep ); + SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_logical_test; + WHERE + wr1: validate_measured_data_type( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.BOOLEAN_VALUE' ); + wr2: validate_inspected_elements_type( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.BREP_WITH_VOIDS'] ); + wr3: validate_locations_of_extreme_value_type( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'ORIENTED_CLOSED_SHELL' ] ); + wr4: validate_accuracy_types( SELF, [] ); + END_ENTITY; + + ENTITY xor_expression + SUBTYPE OF ( binary_boolean_expression ); + SELF\binary_generic_expression.operands : LIST [2 : 2] OF boolean_expression; + END_ENTITY; + + ENTITY year_month + SUBTYPE OF ( date ); + month_component : month_in_year_number; + END_ENTITY; + + ENTITY zero_surface_normal + SUBTYPE OF ( geometry_with_local_irregularity ); + SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; + WHERE + wr1: ( ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'SHAPE_DATA_QUALITY_UPPER_VALUE_LIMIT' ) IN TYPEOF( SELF + \shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold ) ) + AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PLANE_ANGLE_MEASURE' IN value_limit_type( SELF\ + shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold ) ) ); + wr2: validate_measured_data_type( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PLANE_ANGLE_MEASURE' ); + wr3: validate_inspected_elements_type( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SURFACE'] ); + wr4: validate_locations_of_extreme_value_type( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.POINT_ON_SURFACE'] ); + wr5: validate_accuracy_types( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PLANE_ANGLE_MEASURE'] ); + 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, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PRODUCT_RELATED_PRODUCT_CATEGORY.PRODUCTS' ) | ( prpc.name = + 'alternative solution' ) ) ) = 1 ) ); + + WHERE + wr1: ( SIZEOF( QUERY ( pdf <* solution_versions | ( SIZEOF( QUERY ( pd <* USEDIN( pdf, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.APPLICATION_PROTOCOL_DEFINITION.APPLICATION' ) | + (( apd.application_interpreted_model_schema_name = 'ap242_managed_model_based_3d_engineering' ) OR + ( apd.application_interpreted_model_schema_name = 'ap209_multidisciplinary_analysis_and_design')) + ) ) > 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, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRODUCT_RELATED_PRODUCT_CATEGORY.PRODUCTS' ) | ( prpc.name = + 'functionality' ) ) ) = 1 ) AND ( SIZEOF( QUERY ( pd <* USEDIN( pdf, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRODUCT_RELATED_PRODUCT_CATEGORY.PRODUCTS' ) | ( prpc.name = + 'conceptual design' ) ) ) = 1 ) AND ( SIZEOF( QUERY ( pd <* USEDIN( pdf, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRODUCT_DEFINITION.FORMATION' ) | ( pd.frame_of_reference.name + = 'conceptual definition' ) ) ) < 1 ) ) ) ) = 0 ); + + END_RULE; + + RULE chamfer_offset_requires_faces FOR ( chamfer_offset, property_definition_representation ); + + WHERE + wr1: ( SIZEOF( QUERY ( co <* chamfer_offset | ( NOT ( 1 = SIZEOF( QUERY ( pdr <* property_definition_representation | ( ( pdr + \property_definition_representation.definition\property_definition.definition = co ) AND ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FACE_SHAPE_REPRESENTATION' IN TYPEOF( pdr.used_representation ) ) + AND ( ( ( pdr\property_definition_representation.definition\property_definition.definition.description = 'first offset' ) + AND ( pdr.used_representation.name = 'first face shape' ) ) OR ( ( pdr\property_definition_representation.definition\ + property_definition.definition.description = 'second offset' ) AND ( pdr.used_representation.name = 'second face shape' ) ) ) ) ) ) ) ) ) ) + = 0 ); + + END_RULE; + + RULE chamfer_requires_faces FOR ( chamfer, property_definition_representation ); + + WHERE + wr1: ( SIZEOF( QUERY ( cf <* chamfer | ( NOT ( 1 = SIZEOF( QUERY ( pdr <* property_definition_representation | ( ( pdr\ + property_definition_representation.definition\property_definition.definition = cf ) AND ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FACE_SHAPE_REPRESENTATION' IN TYPEOF( pdr.used_representation ) ) + AND ( pdr.used_representation.name = 'chamfer face' ) ) ) ) ) ) ) ) = 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 : INTEGER := 0; + j : INTEGER := 0; + 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 ) BY 1; + nnauo := 0; + REPEAT j := LOINDEX( next_assembly_usage_occurrence ) TO HIINDEX( next_assembly_usage_occurrence ) BY 1; + 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 ) BY 1; + 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 | ( ( ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'UNCERTAINTY_QUALIFIER' ) IN TYPEOF( u1 ) ) AND ( SIZEOF( + QUERY ( u2 <* qri.qualifiers | ( ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRODUCT_RELATED_PRODUCT_CATEGORY.PRODUCTS' ) | ( prpc.name = + 'requirement' ) ) ) > 0 ) AND ( SIZEOF( QUERY ( pd <* USEDIN( pdf, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRODUCT_DEFINITION.FORMATION' ) | ( pd.frame_of_reference.name + = 'design constraint definition' ) ) ) < 1 ) ) ) ) = 0 ); + + END_RULE; + + RULE dimensioning_data_requires_document FOR ( applied_document_reference, product_definition_context_association, + role_association ); + + LOCAL + adr : SET OF applied_document_reference := QUERY ( adr <* applied_document_reference | ( ( adr\document_reference. + assigned_document\document.kind\document_type.product_data_type = 'Standards Document' ) AND ( ( adr\ + document_reference.assigned_document\document.id = 'ASME Y14.41-2003' ) OR ( adr\document_reference. + assigned_document\document.id = 'ASME Y14.5M-1994' ) OR ( adr\document_reference.assigned_document\document.id = + 'ISO 1101: 2004' ) ) ) ); + pdca : SET OF product_definition_context_association := QUERY ( pdca <* product_definition_context_association | ( ( pdca + \product_definition_context_association.role\product_definition_context_role.name = 'additional context' ) AND ( + pdca\product_definition_context_association.frame_of_reference\application_context_element.name = + 'Geometric Dimensioning and Tolerancing Product Specification' ) ) ); + ra : SET OF role_association := QUERY ( ra <* role_association | ( ra\role_association.role\object_role.name = + 'dimensioning standard' ) ); + ra1 : SET OF role_association := []; + pdpdca : SET OF product_definition := []; + pdadr : SET OF product_definition := []; + pass : BOOLEAN := TRUE; + END_LOCAL; + REPEAT i := 1 TO HIINDEX( pdca ) BY 1; + pdpdca := pdpdca + pdca[i]\product_definition_context_association.definition; + END_REPEAT; + REPEAT i := 1 TO HIINDEX( adr ) BY 1; + ra1 := bag_to_set( USEDIN( adr[i], 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ROLE_ASSOCIATION.ITEM_WITH_ROLE' ) ); + IF ( ra1 * ra ) <> ra1 THEN + pass := FALSE; + END_IF; + REPEAT j := 1 TO HIINDEX( adr[i]\applied_document_reference.items ) BY 1; + IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRODUCT_DEFINITION' IN TYPEOF( adr[i]\applied_document_reference. + items[j] ) THEN + pdadr := pdadr + adr[i]\applied_document_reference.items[j]; + END_IF; + END_REPEAT; + END_REPEAT; + + WHERE + wr1: pass; + wr2: ( pdpdca = pdadr ); + + END_RULE; + + RULE draughting_model_items_constraint FOR ( draughting_model ); + + WHERE + wr1: ( SIZEOF( QUERY ( dm <* draughting_model | ( NOT ( SIZEOF( QUERY ( it1 <* dm\representation.items | ( ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ANNOTATION_OCCURRENCE' IN TYPEOF( it1 ) ) AND ( NOT ( ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'DRAUGHTING_ANNOTATION_OCCURRENCE' ) IN TYPEOF( it1 ) ) ) ) ) ) + = 0 ) ) ) ) = 0 ); + wr2: ( SIZEOF( QUERY ( dm <* draughting_model | ( NOT ( SIZEOF( QUERY ( it1 <* dm\representation.items | ( ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.DRAUGHTING_CALLOUT' IN TYPEOF( it1 ) ) AND ( NOT ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.DRAUGHTING_ELEMENTS' IN TYPEOF( it1 ) ) ) ) ) ) = 0 ) ) ) ) = 0 ); + + END_RULE; + + RULE edge_round_requires_faces FOR ( edge_round, property_definition_representation ); + + WHERE + wr1: ( 0 = SIZEOF( QUERY ( er <* edge_round | ( NOT ( 1 = SIZEOF( QUERY ( pdr <* property_definition_representation | ( ( pdr + \property_definition_representation.definition\property_definition.definition = er ) AND ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FACE_SHAPE_REPRESENTATION' IN TYPEOF( pdr.used_representation ) ) + AND ( pdr.used_representation.name = 'edge round face' ) ) ) ) ) ) ) ) ); + wr2: ( SIZEOF( QUERY ( er <* edge_round | ( NOT ( 1 = SIZEOF( QUERY ( pdr <* property_definition_representation | ( ( pdr\ + property_definition_representation.definition\property_definition.definition = er ) AND ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FACE_SHAPE_REPRESENTATION' IN TYPEOF( pdr.used_representation ) ) + AND ( pdr.used_representation.name = 'first face shape' ) ) ) ) ) ) ) ) = 0 ); + wr3: ( SIZEOF( QUERY ( er <* edge_round | ( NOT ( 1 = SIZEOF( QUERY ( pdr <* property_definition_representation | ( ( pdr\ + property_definition_representation.definition\property_definition.definition = er ) AND ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FACE_SHAPE_REPRESENTATION' IN TYPEOF( pdr.used_representation ) ) + AND ( pdr.used_representation.name = 'second face shape' ) ) ) ) ) ) ) ) = 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 machining_feature_definition_constraints FOR ( feature_definition ); + + LOCAL + mfds : SET OF feature_definition := []; + END_LOCAL; + mfds := QUERY ( temp <* feature_definition | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'MACHINING_FEATURE_DEFINITION' IN TYPEOF( temp ) ) ); + + WHERE + wr1: ( SIZEOF( QUERY ( mfd <* mfds | ( NOT ( SIZEOF( QUERY ( pdr <* get_property_definition_representations( mfd ) | ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. + used_representation ) ) ) ) <= 1 ) ) ) ) = 0 ); + wr2: ( SIZEOF( QUERY ( mfd <* mfds | ( NOT ( SIZEOF( QUERY ( pd <* USEDIN( mfd, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( + QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* + impl_rep.used_representation.items | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PLACEMENT' IN TYPEOF( it ) ) + AND ( it.name = 'orientation' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ) ) ) ) = 0 ); + wr3: ( SIZEOF( QUERY ( mfd <* mfds | ( NOT ( ( NOT ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ROUND_HOLE', + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.BOSS' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'OUTSIDE_PROFILE' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.REMOVAL_VOLUME', + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FLAT_FACE' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'POCKET' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROTRUSION', + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.RIB_TOP' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'ROUNDED_END' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SLOT', + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.STEP' ] * TYPEOF( mfds ) ) = 1 ) ) OR ( SIZEOF( QUERY ( pdr <* + get_property_definition_representations( mfd ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'PLANAR_SHAPE_REPRESENTATION' IN TYPEOF( pdr.used_representation ) ) AND ( pdr.used_representation.name = + 'maximum feature limit' ) ) ) ) >= 0 ) ) ) ) ) = 0 ); + + END_RULE; + + RULE machining_feature_life_cycle FOR ( instanced_feature ); + + WHERE + wr1: ( SIZEOF( QUERY ( mf <* instanced_feature | ( NOT ( mf.of_shape.definition.frame_of_reference.life_cycle_stage = + 'manufacturing planning' ) ) ) ) = 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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 | ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.KNOWN_SOURCE' IN TYPEOF( edc.source ) ) ); + + WHERE + wr1: ( SIZEOF( QUERY ( edgp <* known_sourced_properties | ( SIZEOF( QUERY ( edir <* USEDIN( edgp, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.EXTERNALLY_DEFINED_ITEM_RELATIONSHIP.RELATING_ITEM' ) | ( ( + edir.name = 'name scope' ) AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.EXTERNALLY_DEFINED_CLASS' IN + TYPEOF( edir.related_item ) ) AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 | ( ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.KNOWN_SOURCE' IN TYPEOF( edgp.source ) ) AND ( ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.KNOWN_SOURCE' + '.NAME' ) = 'ISO 13584 library' ) ) ); + + WHERE + wr1: ( SIZEOF( QUERY ( edgp <* plib_properties | ( SIZEOF( QUERY ( edir <* USEDIN( edgp, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 : INTEGER; + j : INTEGER; + 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 ) BY 1; + nnauo := 0; + REPEAT j := LOINDEX( next_assembly_usage_occurrence ) TO HIINDEX( next_assembly_usage_occurrence ) BY 1; + 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 ) BY 1; + 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 : INTEGER; + j : INTEGER; + k : INTEGER; + 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 ) BY 1; + 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 ) BY 1; + nmfuo := 0; + REPEAT j := LOINDEX( make_from_usage_option ) TO HIINDEX( make_from_usage_option ) BY 1; + 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 ) BY 1; + 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( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'INCLUSION_PRODUCT_CONCEPT_FEATURE', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'CONDITIONAL_CONCEPT_FEATURE' ] * TYPEOF( pcf ) ) = 0 ) AND ( SIZEOF( QUERY ( aga <* USEDIN( pcf, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'APPLIED_GROUP_ASSIGNMENT.' + 'ITEMS' ) | ( ( aga\ + group_assignment.role\object_role.name = 'specification category member' ) AND ( ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 | ( ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'CONCEPT_FEATURE_RELATIONSHIP_WITH_CONDITION.' + + 'CONDITIONAL_OPERATOR' ) | ( SIZEOF( QUERY ( ccf <* USEDIN( cfrwc, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'CONDITIONAL_CONCEPT_FEATURE.CONDITION' ) | ( NOT ( ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CLASS' IN TYPEOF( gr\group_relationship.related_group ) ) ) OR + ( NOT ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRODUCT_CONCEPT_FEATURE_CATEGORY' IN TYPEOF( gr.related_group ) ) ) + OR ( NOT ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PRODUCT_DEFINITION_RELATIONSHIP.RELATED_PRODUCT_DEFINITION' ) + | ( pdr.name = 'definition usage' ) ) ) <> 1 ) AND ( SIZEOF( QUERY ( cd <* USEDIN( pd, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'CONFIGURATION_DESIGN.DESIGN' ) | ( ( cd.name = + 'occurrence usage definition' ) AND ( NOT ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'PRODUCT_IDENTIFICATION' ) IN TYPEOF( cd.configuration ) ) ) ) ) ) <> 1 ) ) ) ) = 0 ); + wr3: ( SIZEOF( QUERY ( pd <* part_occurrences | ( ( SIZEOF( QUERY ( cd <* USEDIN( pd, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PRODUCT_DEFINITION_RELATIONSHIP.RELATED_PRODUCT_DEFINITION' ) + | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PRODUCT_DEFINITION_USAGE' ) IN TYPEOF( cd ) ) ) ) = 0 ) + AND ( SIZEOF( USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PROPERTY_DEFINITION.DEFINITION' ) | ( ( ppd.name = + 'occurrence quantity' ) AND ( SIZEOF( QUERY ( pdr <* USEDIN( ppd, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 | ( ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PRODUCT_DEFINITION_OCCURRENCE_RELATIONSHIP.OCCURRENCE' ) + | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PRODUCT_RELATED_PRODUCT_CATEGORY.PRODUCTS' ) | ( prpc.name + = 'alternative solution' ) ) ) = 0 ) ) ) = 0 ); + + END_RULE; + + RULE styled_curve FOR ( styled_item ); + + WHERE + wr1: ( SIZEOF( QUERY ( si <* styled_item | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CURVE' IN TYPEOF( si.item ) ) + AND ( SIZEOF( QUERY ( psa <* si.styles | ( SIZEOF( QUERY ( cs <* psa.styles | ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, [ + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ANGULARITY_TOLERANCE' , + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CIRCULAR_RUNOUT_TOLERANCE' , + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.COAXIALITY_TOLERANCE' , + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CONCENTRICITY_TOLERANCE' , + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CYLINDRICITY_TOLERANCE' , + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FLATNESS_TOLERANCE' , + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LINE_PROFILE_TOLERANCE' , + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PARALLELISM_TOLERANCE' , + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PERPENDICULARITY_TOLERANCE' , + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.POSITION_TOLERANCE' , + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ROUNDNESS_TOLERANCE' , + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.STRAIGHTNESS_TOLERANCE' , + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SURFACE_PROFILE_TOLERANCE' , + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SYMMETRY_TOLERANCE' , + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.TOTAL_RUNOUT_TOLERANCE' ], 2 ) ) ) ) = 0 ); + + END_RULE; + + RULE subtype_exclusiveness_representation_item FOR ( representation_item ); + + WHERE + wr1: ( SIZEOF( QUERY ( cri <* representation_item | ( NOT type_check_function( cri, [ + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM' , + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.VALUE_REPRESENTATION_ITEM' , + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.COMPOUND_REPRESENTATION_ITEM' ], 3 ) ) ) ) = 0 ); + + END_RULE; + + RULE subtype_mandatory_shape_representation FOR ( shape_representation ); + + WHERE + wr1: ( SIZEOF( QUERY ( sr <* shape_representation | ( NOT ( ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'ADVANCED_BREP_SHAPE_REPRESENTATION' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'FACETED_BREP_SHAPE_REPRESENTATION' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'MANIFOLD_SURFACE_SHAPE_REPRESENTATION' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'MANIFOLD_SUBSURFACE_SHAPE_REPRESENTATION' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'EDGE_BASED_WIREFRAME_SHAPE_REPRESENTATION' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'SHELL_BASED_WIREFRAME_SHAPE_REPRESENTATION' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'GEOMETRICALLY_BOUNDED_SURFACE_SHAPE_REPRESENTATION' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'GEOMETRICALLY_BOUNDED_WIREFRAME_SHAPE_REPRESENTATION' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'BEVELED_SHEET_REPRESENTATION' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'COMPOSITE_SHEET_REPRESENTATION' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'COMPOUND_SHAPE_REPRESENTATION' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CSG_2D_SHAPE_REPRESENTATION', + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CSG_SHAPE_REPRESENTATION' , + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CURVE_SWEPT_SOLID_SHAPE_REPRESENTATION' , + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.DIRECTION_SHAPE_REPRESENTATION' , + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ELEMENTARY_BREP_SHAPE_REPRESENTATION' , + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FACE_SHAPE_REPRESENTATION' , + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.GEOMETRICALLY_BOUNDED_2D_WIREFRAME_REPRESENTATION' , + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LOCATION_SHAPE_REPRESENTATION' , + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.NEUTRAL_SKETCH_REPRESENTATION' , + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.NON_MANIFOLD_SURFACE_SHAPE_REPRESENTATION' , + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PATH_SHAPE_REPRESENTATION' , + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PLANAR_SHAPE_REPRESENTATION' , + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROCEDURAL_SHAPE_REPRESENTATION' , + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.REPRESENTATIVE_SHAPE_REPRESENTATION' , + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_DIMENSION_REPRESENTATION' , + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' , + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.TESSELLATED_SHAPE_REPRESENTATION' ] * TYPEOF( sr ) ) = 1 ) OR ( + SIZEOF( QUERY ( it <* sr\representation.items | ( NOT ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'AXIS2_PLACEMENT_3D' IN TYPEOF( it ) ) ) ) ) = 0 ) OR ( SIZEOF( QUERY ( sdr <* QUERY ( pdr <* USEDIN( sr, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.' + 'USED_REPRESENTATION' ) + | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_DEFINITION_REPRESENTATION' IN TYPEOF( pdr ) ) ) | ( + NOT ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT', + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP' ] * TYPEOF( sdr.definition ) ) = 1 ) ) ) ) + = 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, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.TEXT_LITERAL.FONT' ) ) = 0 ) ) ) = 0 ); + wr2: ( SIZEOF( QUERY ( edtf <* externally_defined_text_font | ( SIZEOF( USEDIN( edtf, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.TEXT_LITERAL.FONT' ) ) = 0 ) ) ) = 0 ); + + END_RULE; + + RULE tolerance_zone_form_name_constraint FOR ( tolerance_zone_form ); + + LOCAL + names : SET OF STRING := [ 'within a circle', 'between two concentric circles', 'between two equidistant curves', + 'within a cylinder' , 'between two coaxial cylinders', 'between two equidistant surfaces', 'non uniform', + 'cylindrical or circular' , 'spherical', 'unknown']; + pass : BOOLEAN := TRUE; + END_LOCAL; + REPEAT i := 1 TO SIZEOF( tolerance_zone_form ) BY 1 WHILE pass; + pass := tolerance_zone_form[i].name IN names; + END_REPEAT; + + WHERE + wr1: pass; + + END_RULE; + + RULE transition_feature_life_cycle FOR ( transition_feature ); + + WHERE + wr1: ( SIZEOF( QUERY ( tf <* transition_feature | ( NOT ( tf.of_shape.definition.frame_of_reference.life_cycle_stage = + 'manufacturing planning' ) ) ) ) = 0 ); + + END_RULE; + + RULE transition_feature_on_part_boundary FOR ( transition_feature ); + + WHERE + wr1: ( SIZEOF( QUERY ( tf <* transition_feature | ( NOT tf.product_definitional ) ) ) = 0 ); + + END_RULE; + + RULE unique_datum_system FOR ( datum_system ); + + LOCAL + pass : BOOLEAN := TRUE; + END_LOCAL; + REPEAT i := 1 TO SIZEOF( datum_system ) BY 1; + REPEAT j := 1 TO SIZEOF( datum_system ) BY 1; + IF i <> j THEN + IF datum_system[i]\datum_system.constituents = datum_system[j]\datum_system.constituents THEN + pass := FALSE; + END_IF; + END_IF; + END_REPEAT; + END_REPEAT; + + WHERE + wr1: pass; + + END_RULE; + + RULE unique_gdt_element_id_constraint FOR ( product_definition_shape, dimensional_location, dimensional_size, shape_aspect, + shape_aspect_relationship ); + + LOCAL + bss : BAG OF STRING := []; + ds : SET OF dimensional_size := QUERY ( ds <* dimensional_size | EXISTS( ds\dimensional_size.id ) ); + sa : SET OF shape_aspect := QUERY ( sa <* shape_aspect | EXISTS( sa\shape_aspect.id ) ); + sar : SET OF shape_aspect_relationship := QUERY ( sar <* shape_aspect_relationship | EXISTS( sar\shape_aspect_relationship + .id ) ); + ssa : SET OF shape_aspect := []; + pass : BOOLEAN := TRUE; + END_LOCAL; + REPEAT ii := 1 TO SIZEOF( product_definition_shape ) BY 1 WHILE pass; + bss := []; + ssa := bag_to_set( USEDIN( product_definition_shape[ii], 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'SHAPE_ASPECT.' + 'OF_SHAPE' ) ); + REPEAT i := 1 TO SIZEOF( ds ) BY 1; + IF ds[i]\dimensional_size.applies_to IN ssa THEN + bss := bss + ds[i]\dimensional_size.id; + END_IF; + END_REPEAT; + REPEAT i := 1 TO SIZEOF( sa ) BY 1; + IF sa[i] IN ssa THEN + bss := bss + sa[i]\shape_aspect.id; + END_IF; + END_REPEAT; + REPEAT i := 1 TO SIZEOF( sar ) BY 1; + IF sar[i]\shape_aspect_relationship.relating_shape_aspect IN ssa THEN + bss := bss + sar[i]\shape_aspect_relationship.id; + END_IF; + END_REPEAT; + IF SIZEOF( bag_to_set( bss ) ) <> SIZEOF( bss ) THEN + pass := FALSE; + END_IF; + END_REPEAT; + + WHERE + wr1: pass; + + END_RULE; + + RULE valid_product_and_manufacturing_information_view_contexts FOR ( product_definition_context ); + + LOCAL + design_view_contexts : SET OF product_definition_context := QUERY ( pdc <* + product_definition_context | ( pdc.life_cycle_stage = 'design' ) ); + gdt_representation_view_contexts : SET OF product_definition_context := QUERY ( pdc <* + product_definition_context | ( pdc.frame_of_reference.application = + 'geometrical dimensioning and tolerancing representation' ) ); + machining_feature_view_contexts : SET OF product_definition_context := QUERY ( pdc <* + product_definition_context | ( pdc.frame_of_reference.application = + 'machining feature' ) ); + material_specification_view_contexts : SET OF product_definition_context := QUERY ( pdc <* + product_definition_context | ( pdc.frame_of_reference.application = + 'material specification' ) ); + model_based_3d_annotation_presentation_view_contexts : SET OF product_definition_context := QUERY ( pdc <* + product_definition_context | ( pdc.frame_of_reference.application = + 'model based 3D annotation presentation' ) ); + model_based_view_contexts : SET OF product_definition_context := QUERY ( pdc <* + product_definition_context | ( pdc.frame_of_reference.application = + 'model based product geometry' ) ); + process_state_view_contexts : SET OF product_definition_context := QUERY ( pdc <* + product_definition_context | ( pdc.frame_of_reference.application = + 'process state' ) ); + surface_finish_view_contexts : SET OF product_definition_context := QUERY ( pdc <* + product_definition_context | ( pdc.frame_of_reference.application = + 'surface finish' ) ); + additional_view_contexts : SET OF product_definition_context := + gdt_representation_view_contexts + machining_feature_view_contexts + + material_specification_view_contexts + + model_based_3d_annotation_presentation_view_contexts + + process_state_view_contexts + surface_finish_view_contexts; + need_initial_model_based_view_contexts : SET OF product_definition_context := + gdt_representation_view_contexts + + model_based_3d_annotation_presentation_view_contexts; + END_LOCAL; + + WHERE + wr1 : ( SIZEOF( gdt_representation_view_contexts * design_view_contexts ) = SIZEOF( gdt_representation_view_contexts ) ); + wr2 : ( SIZEOF( machining_feature_view_contexts * design_view_contexts ) = SIZEOF( machining_feature_view_contexts ) ); + wr3 : ( SIZEOF( material_specification_view_contexts * design_view_contexts ) = SIZEOF( material_specification_view_contexts ) ); + wr4 : ( SIZEOF( model_based_3d_annotation_presentation_view_contexts * design_view_contexts ) = SIZEOF( + model_based_3d_annotation_presentation_view_contexts ) ); + wr5 : ( SIZEOF( model_based_view_contexts * design_view_contexts ) = SIZEOF( model_based_view_contexts ) ); + wr6 : ( SIZEOF( process_state_view_contexts * design_view_contexts ) = SIZEOF( process_state_view_contexts ) ); + wr7 : ( SIZEOF( surface_finish_view_contexts * design_view_contexts ) = SIZEOF( surface_finish_view_contexts ) ); + wr8 : ( SIZEOF( QUERY ( mbvc <* model_based_view_contexts | ( SIZEOF( USEDIN( mbvc, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRODUCT_DEFINITION_CONTEXT_ASSOCIATION.FRAME_OF_REFERENCE' ) ) + = 0 ) ) ) = SIZEOF( model_based_view_contexts ) ); + wr9 : ( SIZEOF( QUERY ( avc <* additional_view_contexts | ( SIZEOF( USEDIN( avc, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRODUCT_DEFINITION.FRAME_OF_REFERENCE' ) ) = 0 ) ) ) = + SIZEOF( additional_view_contexts ) ); + wr10: ( SIZEOF( QUERY ( nimbvc <* need_initial_model_based_view_contexts | ( NOT ( SIZEOF( QUERY ( pdca <* USEDIN( nimbvc, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRODUCT_DEFINITION_CONTEXT_ASSOCIATION.FRAME_OF_REFERENCE' ) + | ( pdca\product_definition_context_association.definition\product_definition.frame_of_reference IN + model_based_view_contexts ) ) ) = SIZEOF( need_initial_model_based_view_contexts ) ) ) ) ) = 0 ); + wr11: ( SIZEOF( QUERY ( gdt_pdc <* gdt_representation_view_contexts | ( SIZEOF( [ 'ISO 1101', 'ASME Y14.5'] * + get_associated_mandatory_document_ids( gdt_pdc ) ) = 0 ) ) ) = 0 ); + wr12: ( SIZEOF( QUERY ( mb3d_pdc <* model_based_3d_annotation_presentation_view_contexts | ( SIZEOF( [ 'ISO 1101', 'ISO 16792', + 'ASME Y14.41' , 'ASME Y14.5'] * get_associated_mandatory_document_ids( mb3d_pdc ) ) = 0 ) ) ) = 0 ); + + END_RULE; + + RULE validate_dependently_instantiable_entity_data_types FOR ( action_method_role, action_resource_type, attribute_value_role, + camera_model_d2, cartesian_transformation_operator, concept_feature_relationship, + concept_feature_relationship_with_condition, document_usage_constraint, edge_blended_solid, effectivity_context_role, + event_occurrence_role, explicit_procedural_representation_item_relationship, indirectly_selected_elements, + maths_space_context, modified_solid_with_placed_configuration, one_direction_repeat_factor, oriented_open_shell, + oriented_path, procedural_representation, procedural_representation_sequence, product_definition_effectivity, + property_distribution_description, runout_zone_orientation, solid_with_depression, solid_with_hole, + solid_with_pocket, solid_with_protrusion, solid_with_shape_element_pattern, solid_with_slot, state_type_role, + swept_area_solid, symbol_target, two_direction_repeat_factor, user_selected_elements, 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; + all_instances := all_instances + action_resource_type; + all_instances := all_instances + attribute_value_role; + all_instances := all_instances + camera_model_d2; + all_instances := all_instances + cartesian_transformation_operator; + all_instances := all_instances + concept_feature_relationship; + all_instances := all_instances + concept_feature_relationship_with_condition; + all_instances := all_instances + document_usage_constraint; + all_instances := all_instances + edge_blended_solid; + all_instances := all_instances + effectivity_context_role; + all_instances := all_instances + event_occurrence_role; + all_instances := all_instances + explicit_procedural_representation_item_relationship; + all_instances := all_instances + indirectly_selected_elements; + all_instances := all_instances + maths_space_context; + all_instances := all_instances + modified_solid_with_placed_configuration; + all_instances := all_instances + one_direction_repeat_factor; + all_instances := all_instances + oriented_open_shell; + all_instances := all_instances + oriented_path; + all_instances := all_instances + procedural_representation; + all_instances := all_instances + procedural_representation_sequence; + all_instances := all_instances + product_definition_effectivity; + all_instances := all_instances + property_distribution_description; + all_instances := all_instances + runout_zone_orientation; + all_instances := all_instances + solid_with_depression; + all_instances := all_instances + solid_with_hole; + all_instances := all_instances + solid_with_pocket; + all_instances := all_instances + solid_with_protrusion; + all_instances := all_instances + solid_with_shape_element_pattern; + all_instances := all_instances + solid_with_slot; + all_instances := all_instances + state_type_role; + all_instances := all_instances + swept_area_solid; + all_instances := all_instances + symbol_target; + all_instances := all_instances + two_direction_repeat_factor; + all_instances := all_instances + user_selected_elements; + all_instances := all_instances + volume; + number_of_input_instances := SIZEOF( all_instances ); + REPEAT i := 1 TO number_of_input_instances BY 1; + 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; + +(* + The following two FUNCTIONs have been added to address Bug 5057 for the + initial ed2 version until they can properly be added to the constituent modules. +*) + + FUNCTION above_plane + (p1 : cartesian_point; p2 : cartesian_point; p3 : cartesian_point; p4 : cartesian_point) : REAL; + LOCAL + dir2, dir3, dir4 : direction := + dummy_gri || direction([1.0, 0.0, 0.0]); + val, mag : REAL; + END_LOCAL; + + IF (p1.dim <> 3) THEN + RETURN(?); + END_IF; + REPEAT i := 1 TO 3; + dir2.direction_ratios[i] := p2.coordinates[i] - p1.coordinates[i]; + dir3.direction_ratios[i] := p3.coordinates[i] - p1.coordinates[i]; + dir4.direction_ratios[i] := p4.coordinates[i] - p1.coordinates[i]; + mag := dir4.direction_ratios[i]*dir4.direction_ratios[i]; + END_REPEAT; + mag := sqrt(mag); + val := mag*dot_product(dir4, cross_product(dir2, dir3).orientation); + RETURN(val); + END_FUNCTION; + + FUNCTION same_side + (plane_pts : LIST[3:3] OF cartesian_point; test_points : LIST[2:?] OF cartesian_point) : BOOLEAN; + LOCAL + val1, val2 : REAL; + n : INTEGER; + END_LOCAL; + + IF (plane_pts[1].dim = 2) OR (test_points[1].dim = 2) THEN + RETURN(?); + END_IF; + n := SIZEOF(test_points); + val1 := above_plane(plane_pts[1], plane_pts[2], plane_pts[3], + test_points[1] ); + REPEAT i := 2 TO n; + val2 := above_plane(plane_pts[1], plane_pts[2], plane_pts[3], + test_points[i] ); + IF (val1*val2 <= 0.0) THEN + RETURN(FALSE); + END_IF; + END_REPEAT; + RETURN(TRUE); + END_FUNCTION; + +(* End of added FUNCTIONs. JH 2014-05-22 *) + + FUNCTION acyclic( + arg1 : generic_expression; + arg2 : SET OF generic_expression + ) : BOOLEAN; + + LOCAL + result : BOOLEAN := TRUE; + END_LOCAL; + IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SIMPLE_GENERIC_EXPRESSION' IN TYPEOF( arg1 ) THEN + RETURN( TRUE ); + END_IF; + IF arg1 IN arg2 THEN + RETURN( FALSE ); + END_IF; + IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.UNARY_GENERIC_EXPRESSION' IN TYPEOF( arg1 ) THEN + RETURN( acyclic( arg1\unary_generic_expression.operand, arg2 + [arg1] ) ); + END_IF; + IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MULTIPLE_ARITY_GENERIC_EXPRESSION' IN TYPEOF( arg1 ) THEN + result := TRUE; + REPEAT i := 1 TO SIZEOF( arg1\multiple_arity_generic_expression.operands ) BY 1; + 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 | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.COMPOSITE_TEXT' + IN TYPEOF( child ) ) ); + IF SIZEOF( local_composite_text ) > 0 THEN + REPEAT i := 1 TO HIINDEX( local_composite_text ) BY 1; + 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 ) BY 1; + local_children := local_children + local_composite_text[i].collected_text; + END_REPEAT; + END_IF; + local_annotation_text := QUERY ( child <* child_text | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ANNOTATION_TEXT' + IN TYPEOF( child ) ) ); + IF SIZEOF( local_annotation_text ) > 0 THEN + REPEAT i := 1 TO HIINDEX( local_annotation_text ) BY 1; + local_children := local_children + QUERY ( item <* local_annotation_text[i]\mapped_item.mapping_source. + mapped_representation.items | ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ANNOTATION_TEXT', + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CURVE_REPLICA' IN TYPEOF( parent ) ) THEN + RETURN( TRUE ); + END_IF; + IF parent :=: rep THEN + RETURN( FALSE ); + ELSE + RETURN( acyclic_curve_replica( rep, parent\curve_replica.parent_curve ) ); + END_IF; + + END_FUNCTION; + + FUNCTION acyclic_mapped_representation( + mi : mapped_item + ) : BOOLEAN; + + LOCAL + rms : SET OF representation_map; + mis : SET OF mapped_item; + rs1 : SET OF representation; + rs2 : SET OF representation; + END_LOCAL; + rs1 := using_representations( mi ); + rs2 := []; + REPEAT WHILE SIZEOF( rs1 ) > 0; + REPEAT i := 1 TO HIINDEX( rs1 ) BY 1; + rms := bag_to_set( USEDIN( rs1[i], 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.REPRESENTATION_MAP.' + + 'MAPPED_REPRESENTATION' ) ); + IF SIZEOF( rms ) > 0 THEN + REPEAT j := 1 TO HIINDEX( rms ) BY 1; + mis := bag_to_set( USEDIN( rms[i], 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MAPPED_ITEM.MAPPING_SOURCE' ) ); + IF SIZEOF( mis ) > 0 THEN + REPEAT j := 1 TO HIINDEX( mis ) BY 1; + 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 ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.POINT_REPLICA' IN TYPEOF( parent ) ) THEN + RETURN( TRUE ); + END_IF; + IF parent :=: rep THEN + RETURN( FALSE ); + ELSE + RETURN( acyclic_point_replica( rep, parent\point_replica.parent_pt ) ); + END_IF; + + END_FUNCTION; + + FUNCTION acyclic_product_category_relationship( + relation : product_category_relationship; + children : SET OF product_category + ) : BOOLEAN; + + LOCAL + x : SET OF product_category_relationship; + local_children : SET OF product_category; + END_LOCAL; + REPEAT i := 1 TO HIINDEX( children ) BY 1; + IF relation.category :=: children[i] THEN + RETURN( FALSE ); + END_IF; + END_REPEAT; + x := bag_to_set( USEDIN( relation.category, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'PRODUCT_CATEGORY_RELATIONSHIP.SUB_CATEGORY' ) ); + local_children := children + relation.category; + IF SIZEOF( x ) > 0 THEN + REPEAT i := 1 TO HIINDEX( x ) BY 1; + IF NOT acyclic_product_category_relationship( x[i], local_children ) THEN + RETURN( FALSE ); + END_IF; + END_REPEAT; + END_IF; + RETURN( TRUE ); + + END_FUNCTION; + + FUNCTION acyclic_product_definition_relationship( + relation : product_definition_relationship; + relatives : SET [1 : ?] OF product_definition_or_reference; + 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, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PRODUCT_DEFINITION_RELATIONSHIP.' + 'RELATED_PRODUCT_DEFINITION' ) ) + | ( specific_relation IN TYPEOF( pd ) ) ); + REPEAT i := 1 TO HIINDEX( x ) BY 1; + 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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'REPRESENTATION_RELATIONSHIP.' + 'REP_2' ) ) | ( specific_relation IN TYPEOF( r ) ) ); + REPEAT i := 1 TO HIINDEX( x ) BY 1; + 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_shape_aspect_relationship( + relation : shape_aspect_relationship; + relatives : SET [1 : ?] OF shape_aspect; + specific_relation : STRING + ) : BOOLEAN; + + LOCAL + x : SET OF shape_aspect_relationship; + END_LOCAL; + IF relation.relating_shape_aspect IN relatives THEN + RETURN( FALSE ); + END_IF; + x := QUERY ( sa <* bag_to_set( USEDIN( relation.relating_shape_aspect, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'SHAPE_ASPECT_RELATIONSHIP.' + 'RELATED_SHAPE_ASPECT' ) ) | ( specific_relation IN TYPEOF( sa ) ) ); + REPEAT i := 1 TO HIINDEX( x ) BY 1; + IF NOT acyclic_shape_aspect_relationship( x[i], relatives + relation.relating_shape_aspect, 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 ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SOLID_REPLICA' IN TYPEOF( parent ) ) THEN + RETURN( TRUE ); + END_IF; + IF parent :=: rep THEN + RETURN( FALSE ); + 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 ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SURFACE_REPLICA' IN TYPEOF( parent ) ) THEN + RETURN( TRUE ); + END_IF; + IF parent :=: rep THEN + RETURN( FALSE ); + ELSE + RETURN( acyclic_surface_replica( rep, parent\surface_replica.parent_surface ) ); + END_IF; + + END_FUNCTION; + + FUNCTION advanced_face_properties( + testface : face + ) : BOOLEAN; + IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ADVANCED_FACE' IN TYPEOF( testface ) THEN + RETURN( TRUE ); + END_IF; + IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SUBFACE' IN TYPEOF( testface ) THEN + RETURN( advanced_face_properties( testface\subface.parent_face ) ); + ELSE + RETURN( FALSE ); + END_IF; + + END_FUNCTION; + + FUNCTION all_members_of_es( + sv : SET OF maths_value; + es : elementary_space_enumerators + ) : LOGICAL; + + CONSTANT + base_types : SET OF STRING := + [ 'NUMBER' , + 'COMPLEX_NUMBER_LITERAL' , + 'REAL' , + 'INTEGER' , + 'LOGICAL' , + 'BOOLEAN' , + 'STRING' , + 'BINARY' , + 'MATHS_SPACE' , + 'MATHS_FUNCTION' , + 'LIST' , + 'ELEMENTARY_SPACE_ENUMERATORS' , + 'ORDERING_TYPE' , + 'LOWER_UPPER' , + 'SYMMETRY_TYPE' , + 'ELEMENTARY_FUNCTION_ENUMERATORS' , + 'OPEN_CLOSED' , + 'SPACE_CONSTRAINT_TYPE' , + 'REPACKAGE_OPTIONS' , + 'EXTENSION_OPTIONS' ]; + END_CONSTANT; + + LOCAL + v : maths_value; + key_type : STRING := ''; + types : SET OF STRING; + ge : generic_expression; + cum : LOGICAL := TRUE; + vspc : maths_space; + END_LOCAL; + IF ( NOT EXISTS( sv ) ) OR ( NOT EXISTS( es ) ) THEN + RETURN( FALSE ); + END_IF; + CASE es OF + es_numbers : key_type := 'NUMBER'; + es_complex_numbers : key_type := 'COMPLEX_NUMBER_LITERAL'; + es_reals : key_type := 'REAL'; + es_integers : key_type := 'INTEGER'; + es_logicals : key_type := 'LOGICAL'; + es_booleans : key_type := 'BOOLEAN'; + es_strings : key_type := 'STRING'; + es_binarys : key_type := 'BINARY'; + es_maths_spaces : key_type := 'MATHS_SPACE'; + es_maths_functions : key_type := 'MATHS_FUNCTION'; + es_generics : RETURN( TRUE ); + END_CASE; + REPEAT i := 1 TO SIZEOF( sv ) BY 1; + IF NOT EXISTS( sv[i] ) THEN + RETURN( FALSE ); + END_IF; + v := simplify_maths_value( sv[i] ); + types := stripped_typeof( v ); + IF key_type IN types THEN + SKIP; + END_IF; + IF ( es = es_numbers ) AND ( 'COMPLEX_NUMBER_LITERAL' IN types ) THEN + SKIP; + END_IF; + IF SIZEOF( base_types * types ) > 0 THEN + RETURN( FALSE ); + END_IF; + ge := v; + IF has_values_space( ge ) THEN + vspc := values_space_of( ge ); + IF NOT subspace_of_es( vspc, es ) THEN + IF NOT compatible_spaces( vspc, make_elementary_space( es ) ) THEN + RETURN( FALSE ); + END_IF; + cum := UNKNOWN; + END_IF; + ELSE + cum := UNKNOWN; + END_IF; + IF cum = FALSE THEN + RETURN( FALSE ); + END_IF; + END_REPEAT; + RETURN( cum ); + + END_FUNCTION; + + FUNCTION all_mesh_vertices( + arg : array_based_unstructured_mesh_and_vertices + ) : BOOLEAN; + + LOCAL + vertex_set : SET OF vertex := []; + cell : vertex_defined_cell; + END_LOCAL; + REPEAT i := 1 TO arg.cell_count BY 1; + cell := arg.cells[i]; + REPEAT j := 1 TO cell.vn_count BY 1; + vertex_set := vertex_set + cell.vertices[j]; + END_REPEAT; + END_REPEAT; + IF SIZEOF( vertex_set ) <> arg.index_count THEN + RETURN( FALSE ); + END_IF; + REPEAT i := 1 TO arg.index_count BY 1; + IF NOT ( arg.vertices[i] IN vertex_set ) THEN + RETURN( FALSE ); + END_IF; + END_REPEAT; + RETURN( TRUE ); + + END_FUNCTION; + + FUNCTION any_space_satisfies( + sc : space_constraint_type; + spc : maths_space + ) : BOOLEAN; + + LOCAL + spc_id : elementary_space_enumerators; + END_LOCAL; + IF ( sc = sc_equal ) OR ( NOT ( 'ELEMENTARY_SPACE' IN stripped_typeof( spc ) ) ) THEN + RETURN( FALSE ); + END_IF; + spc_id := spc\elementary_space.space_id; + IF sc = sc_subspace THEN + RETURN( bool( spc_id = es_generics ) ); + END_IF; + IF sc = sc_member THEN + RETURN( bool( ( spc_id = es_generics ) OR ( spc_id = es_maths_spaces ) ) ); + END_IF; + RETURN( ? ); + + END_FUNCTION; + + FUNCTION appropriate_list_value_existence( + values : LIST [1 : ?] OF GENERIC; + type_self : SET [1 : ?] OF STRING + ) : BOOLEAN; + + LOCAL + i : INTEGER; + END_LOCAL; + REPEAT i := 1 TO HIINDEX( values ) BY 1; + IF NOT appropriate_value_existence( values[i], type_self ) THEN + RETURN( FALSE ); + END_IF; + END_REPEAT; + RETURN( TRUE ); + + END_FUNCTION; + + FUNCTION appropriate_set_value_existence( + values_and_locations : SET [1 : ?] OF GENERIC; + type_self : SET [1 : ?] OF STRING + ) : BOOLEAN; + + LOCAL + i : INTEGER; + END_LOCAL; + REPEAT i := 1 TO HIINDEX( values_and_locations ) BY 1; + IF NOT appropriate_value_existence( values_and_locations[i].simple_value, type_self ) THEN + RETURN( FALSE ); + END_IF; + END_REPEAT; + RETURN( TRUE ); + + END_FUNCTION; + + FUNCTION appropriate_value_existence( + a_value_e : GENERIC; + type_self : SET [1 : ?] OF STRING + ) : BOOLEAN; + + LOCAL + feacr : STRING; + value_typeof : SET [1 : ?] OF STRING; + END_LOCAL; + feacr := 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.'; + value_typeof := TYPEOF( a_value_e ); + IF ( ( feacr + 'OUTPUT_REQUEST_STATE' ) IN type_self ) AND ( NOT ( ( feacr + 'UNSPECIFIED_VALUE' ) IN value_typeof ) ) THEN + RETURN( FALSE ); + END_IF; + RETURN( TRUE ); + + 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 assembly_leaf( + item : product_definition + ) : BOOLEAN; + + LOCAL + local_relation : SET OF assembly_component_usage := []; + local_relation2 : BAG OF assembly_component_usage := []; + END_LOCAL; + local_relation2 := local_relation2 + QUERY ( pdr <* USEDIN( item, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'PRODUCT_DEFINITION_RELATIONSHIP.RELATING_PRODUCT_DEFINITION' ) | ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ASSEMBLY_COMPONENT_USAGE' IN TYPEOF( pdr ) ) ); + local_relation := bag_to_set( local_relation2 ); + IF SIZEOF( local_relation ) = 0 THEN + RETURN( TRUE ); + ELSE + RETURN( FALSE ); + END_IF; + + END_FUNCTION; + + FUNCTION assembly_root( + item : product_definition + ) : BOOLEAN; + IF SIZEOF( QUERY ( pdr <* USEDIN( item, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRODUCT_DEFINITION_RELATIONSHIP.' + + 'RELATED_PRODUCT_DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ASSEMBLY_COMPONENT_USAGE' IN + TYPEOF( pdr ) ) ) ) = 0 THEN + RETURN( TRUE ); + ELSE + RETURN( FALSE ); + END_IF; + + END_FUNCTION; + + FUNCTION assoc_product_space( + ts1, ts2 : tuple_space + ) : tuple_space; + + LOCAL + types1 : SET OF STRING := stripped_typeof( ts1 ); + types2 : SET OF STRING := stripped_typeof( ts2 ); + up1 : uniform_product_space := make_uniform_product_space( the_reals, 1 ); + up2 : uniform_product_space := make_uniform_product_space( the_reals, 1 ); + lp1 : listed_product_space := the_zero_tuple_space; + lp2 : listed_product_space := the_zero_tuple_space; + lps : listed_product_space := the_zero_tuple_space; + et1 : extended_tuple_space := the_tuples; + et2 : extended_tuple_space := the_tuples; + ets : extended_tuple_space := the_tuples; + use_up1 : BOOLEAN; + use_up2 : BOOLEAN; + use_lp1 : BOOLEAN; + use_lp2 : BOOLEAN; + factors : LIST OF maths_space := []; + tspace : tuple_space; + END_LOCAL; + IF 'UNIFORM_PRODUCT_SPACE' IN types1 THEN + up1 := ts1; + use_up1 := TRUE; + use_lp1 := FALSE; + ELSE + IF 'LISTED_PRODUCT_SPACE' IN types1 THEN + lp1 := ts1; + use_up1 := FALSE; + use_lp1 := TRUE; + ELSE + IF NOT ( 'EXTENDED_TUPLE_SPACE' IN types1 ) THEN + RETURN( ? ); + END_IF; + et1 := ts1; + use_up1 := FALSE; + use_lp1 := FALSE; + END_IF; + END_IF; + IF 'UNIFORM_PRODUCT_SPACE' IN types2 THEN + up2 := ts2; + use_up2 := TRUE; + use_lp2 := FALSE; + ELSE + IF 'LISTED_PRODUCT_SPACE' IN types2 THEN + lp2 := ts2; + use_up2 := FALSE; + use_lp2 := TRUE; + ELSE + IF NOT ( 'EXTENDED_TUPLE_SPACE' IN types2 ) THEN + RETURN( ? ); + END_IF; + et2 := ts2; + use_up2 := FALSE; + use_lp2 := FALSE; + END_IF; + END_IF; + IF use_up1 THEN + IF use_up2 THEN + IF up1.base = up2.base THEN + tspace := make_uniform_product_space( up1.base, up1.exponent + up2.exponent ); + ELSE + factors := [up1.base : 0, up2.base : 0]; + tspace := make_listed_product_space( factors ); + END_IF; + ELSE + IF use_lp2 THEN + factors := [up1.base : 0]; + factors := factors + lp2.factors; + tspace := make_listed_product_space( factors ); + ELSE + tspace := assoc_product_space( up1, et2.base ); + tspace := make_extended_tuple_space( tspace, et2.extender ); + END_IF; + END_IF; + ELSE + IF use_lp1 THEN + IF use_up2 THEN + factors := [up2.base : 0]; + factors := lp1.factors + factors; + tspace := make_listed_product_space( factors ); + ELSE + IF use_lp2 THEN + tspace := make_listed_product_space( lp1.factors + lp2.factors ); + ELSE + tspace := assoc_product_space( lp1, et2.base ); + tspace := make_extended_tuple_space( tspace, et2.extender ); + END_IF; + END_IF; + ELSE + IF use_up2 THEN + IF et1.extender = up2.base THEN + tspace := assoc_product_space( et1.base, up2 ); + tspace := make_extended_tuple_space( tspace, et1.extender ); + ELSE + RETURN( ? ); + END_IF; + ELSE + IF use_lp2 THEN + factors := lp2.factors; + REPEAT i := 1 TO SIZEOF( factors ) BY 1; + IF et1.extender <> factors[i] THEN + RETURN( ? ); + END_IF; + END_REPEAT; + tspace := assoc_product_space( et1.base, lp2 ); + tspace := make_extended_tuple_space( tspace, et1.extender ); + ELSE + IF et1.extender = et2.extender THEN + tspace := assoc_product_space( et1, et2.base ); + ELSE + RETURN( ? ); + END_IF; + END_IF; + END_IF; + END_IF; + END_IF; + RETURN( tspace ); + + END_FUNCTION; + + FUNCTION associated_surface( + arg : pcurve_or_surface + ) : surface; + + LOCAL + surf : surface; + END_LOCAL; + IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PCURVE' IN TYPEOF( arg ) THEN + surf := arg\pcurve.basis_surface; + ELSE + surf := arg; + END_IF; + RETURN( surf ); + + END_FUNCTION; + + FUNCTION atan2( + y, x : REAL + ) : REAL; + + LOCAL + r : REAL; + END_LOCAL; + IF ( y = 0 ) AND ( x = 0 ) THEN + RETURN( ? ); + END_IF; + r := ATAN( y, x ); + IF x < 0 THEN + IF y < 0 THEN + r := r - PI; + ELSE + r := r + PI; + END_IF; + END_IF; + RETURN( r ); + + END_FUNCTION; + + FUNCTION bag_to_set( + the_bag : BAG OF GENERIC:intype + ) : SET 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 ) BY 1; + the_set := the_set + the_bag[i]; + END_REPEAT; + END_IF; + RETURN( the_set ); + + END_FUNCTION; + + FUNCTION base_axis( + dim : INTEGER; + axis1, axis2, axis3 : direction + ) : LIST [2 : 3] OF direction; + + LOCAL + u : LIST [2 : 3] OF direction; + factor : REAL; + d1 : direction; + d2 : direction; + END_LOCAL; + IF dim = 3 THEN + d1 := NVL( normalise( axis3 ), dummy_gri || direction( [0, 0, 1] ) ); + 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 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] ), dummy_gri || direction( [0, 1] )]; + END_IF; + END_IF; + END_IF; + RETURN( u ); + + END_FUNCTION; + + FUNCTION bool( + lgcl : LOGICAL + ) : BOOLEAN; + IF NOT EXISTS( lgcl ) THEN + RETURN( FALSE ); + END_IF; + IF lgcl <> TRUE THEN + RETURN( FALSE ); + END_IF; + RETURN( TRUE ); + + END_FUNCTION; + + FUNCTION boolean_choose( + b : BOOLEAN; + choice1, 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] ) ); + END_LOCAL; + RETURN( [d, orthogonal_complement( d )] ); + + END_FUNCTION; + + FUNCTION build_axes( + axis, ref_direction : direction + ) : LIST [3 : 3] OF direction; + + LOCAL + d1 : direction; + d2 : direction; + END_LOCAL; + d1 := NVL( normalise( axis ), dummy_gri || direction( [0, 0, 1] ) ); + d2 := first_proj_axis( d1, ref_direction ); + RETURN( [d2, normalise( cross_product( d1, d2 ) )\vector.orientation, d1] ); + + END_FUNCTION; + + FUNCTION build_direction_node( + node_1, node_2 : node_representation + ) : LIST [2 : 3] OF REAL; + + LOCAL + nodal_direction_ratios : LIST [2 : 3] OF REAL; + u : direction; + i : INTEGER; + ndim : INTEGER; + rep_items : SET [1 : ?] OF representation_item; + node_1_point : cartesian_point; + node_2_point : cartesian_point; + END_LOCAL; + rep_items := node_1.items; + REPEAT i := 1 TO SIZEOF( rep_items ) BY 1; + IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CARTESIAN_POINT' IN TYPEOF( rep_items[i] ) THEN + node_1_point := rep_items[i]; + ESCAPE; + END_IF; + END_REPEAT; + rep_items := node_2.items; + REPEAT i := 1 TO SIZEOF( rep_items ) BY 1; + IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CARTESIAN_POINT' IN TYPEOF( rep_items[i] ) THEN + node_2_point := rep_items[i]; + ESCAPE; + END_IF; + END_REPEAT; + ndim := HIINDEX( node_2_point.coordinates ); + REPEAT i := 1 TO ndim BY 1; + u.direction_ratios[i] := node_2_point.coordinates[i] - node_1_point.coordinates[i]; + END_REPEAT; + u := normalise( u ); + REPEAT i := 1 TO ndim BY 1; + nodal_direction_ratios[i] := u.direction_ratios[i]; + END_REPEAT; + RETURN( nodal_direction_ratios ); + + END_FUNCTION; + + FUNCTION categories_of_product( + obj : product + ) : SET OF STRING; + + LOCAL + category_assignments : BAG OF product_category; + categories : SET OF STRING := []; + END_LOCAL; + category_assignments := USEDIN( obj, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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( [ + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'CHANGE_REQUEST', + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'START_REQUEST'] * TYPEOF( x ) ) = 1 ) ) ) THEN + RETURN( FALSE ); + END_IF; + 'initiator' : IF SIZEOF( e.items ) <> SIZEOF( QUERY ( x <* e.items | ( SIZEOF( [ + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'CHANGE_REQUEST', + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'START_REQUEST', + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'START_WORK', + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'CHANGE'] * TYPEOF( x ) ) = 1 ) ) ) THEN + RETURN( FALSE ); + END_IF; + 'creator' : IF SIZEOF( e.items ) <> SIZEOF( QUERY ( x <* e.items | ( SIZEOF( [ + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PRODUCT_DEFINITION_FORMATION', + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PRODUCT_DEFINITION'] * TYPEOF( x ) ) = 1 ) ) ) THEN + RETURN( FALSE ); + END_IF; + 'part_supplier' : IF SIZEOF( e.items ) <> SIZEOF( QUERY ( x <* e.items | ( ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PRODUCT_DEFINITION_FORMATION' ) IN TYPEOF( x ) ) ) ) THEN + RETURN( FALSE ); + END_IF; + 'design_supplier' : IF SIZEOF( e.items ) <> SIZEOF( QUERY ( x <* e.items | ( ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PRODUCT_DEFINITION_FORMATION' ) IN TYPEOF( x ) ) ) ) THEN + RETURN( FALSE ); + END_IF; + 'design_owner' : IF SIZEOF( e.items ) <> SIZEOF( QUERY ( x <* e.items | ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRODUCT' IN TYPEOF( x ) ) ) ) THEN + RETURN( FALSE ); + END_IF; + 'configuration_manager' : IF SIZEOF( e.items ) <> SIZEOF( QUERY ( x <* e.items | ( ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'CONFIGURATION_ITEM' ) IN TYPEOF( x ) ) ) ) THEN + RETURN( FALSE ); + END_IF; + 'contractor' : IF SIZEOF( e.items ) <> SIZEOF( QUERY ( x <* e.items | ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CONTRACT' IN TYPEOF( x ) ) ) ) THEN + RETURN( FALSE ); + END_IF; + 'classification_officer' : IF SIZEOF( e.items ) <> SIZEOF( QUERY ( x <* e.items | ( ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'SECURITY_CLASSIFICATION' ) IN TYPEOF( x ) ) ) ) THEN + RETURN( FALSE ); + END_IF; + OTHERWISE : RETURN( TRUE ); + END_CASE; + RETURN( TRUE ); + + END_FUNCTION; + + FUNCTION cell_counts( + arg : vertex_defined_cell + ) : ARRAY [1 : 3] OF INTEGER; + + LOCAL + om1 : INTEGER := 0; + om1sq : INTEGER := om1 ** 2; + vts : INTEGER; + eds : INTEGER; + qf : INTEGER := 0; + tf : INTEGER := 0; + result : ARRAY [1 : 3] OF INTEGER := [0, 0, 0]; + END_LOCAL; + CASE arg.order OF + linear_order : om1 := 0; + quadratic_order : om1 := 1; + cubic_order : om1 := 2; + OTHERWISE : RETURN( result ); + END_CASE; + om1sq := om1 ** 2; + CASE arg.shape OF + cell_shape_0d.single : + BEGIN + vts := 1; + eds := 0; + qf := 0; + tf := 0; + result[1] := vts; + result[2] := om1 * eds; + result[3] := 0; + END; + cell_shape_1d.line : + BEGIN + vts := 2; + eds := 1; + qf := 0; + tf := 0; + result[1] := vts; + result[2] := om1 * eds; + result[3] := 0; + END; + cell_shape_2d.quadrilateral : + BEGIN + vts := 4; + eds := 4; + qf := 1; + tf := 0; + result[1] := vts; + result[2] := om1 * eds; + result[3] := om1sq * qf; + END; + cell_shape_2d.triangle : + BEGIN + vts := 3; + eds := 3; + qf := 0; + tf := 1; + result[1] := vts; + result[2] := om1 * eds; + result[3] := ( om1 - 1 ) * tf; + CASE arg.order OF + linear_order : result[3] := 0; + END_CASE; + END; + cell_shape_3d.hexahedron : + BEGIN + vts := 8; + eds := 12; + qf := 6; + tf := 0; + result[1] := vts; + result[2] := om1 * eds; + result[3] := om1sq * ( qf + om1 ); + END; + cell_shape_3d.wedge : + BEGIN + vts := 6; + eds := 9; + qf := 3; + tf := 2; + result[1] := vts; + result[2] := om1 * eds; + result[3] := ( om1sq * qf ) + ( om1 * tf ); + END; + cell_shape_3d.tetrahedron : + BEGIN + vts := 4; + eds := 6; + qf := 0; + tf := 4; + result[1] := vts; + result[2] := om1 * eds; + result[3] := ( om1 - 1 ) * tf; + CASE arg.order OF + linear_order : result[3] := 0; + END_CASE; + END; + cell_shape_3d.pyramid : + BEGIN + vts := 5; + eds := 8; + qf := 1; + tf := 4; + result[1] := vts; + result[2] := om1 * eds; + result[3] := ( om1sq * qf ) + ( ( om1 - 1 ) * tf ); + CASE arg.order OF + linear_order : result[3] := 0; + END_CASE; + END; + END_CASE; + RETURN( result ); + + END_FUNCTION; + + FUNCTION check_continuous_edges( + edges : LIST OF UNIQUE edge_curve + ) : BOOLEAN; + + LOCAL + i : INTEGER; + next_vertex : vertex; + END_LOCAL; + IF SIZEOF( edges ) = 1 THEN + RETURN( TRUE ); + END_IF; + 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 ); + END_IF; + END_IF; + IF SIZEOF( edges ) = 2 THEN + RETURN( TRUE ); + END_IF; + REPEAT i := 3 TO HIINDEX( edges ) BY 1; + 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 ); + END_IF; + END_IF; + END_REPEAT; + RETURN( TRUE ); + + END_FUNCTION; + + FUNCTION check_curve_planarity( + checked_curve : curve + ) : BOOLEAN; + + LOCAL + crv : curve := checked_curve; + i : INTEGER; + j : INTEGER; + result : BOOLEAN := FALSE; + END_LOCAL; + IF SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CONIC', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'LINE' ] * TYPEOF( crv ) ) > 0 THEN + result := TRUE; + ELSE + IF ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.TRIMMED_CURVE' IN TYPEOF( crv ) ) AND check_curve_planarity( crv\ + trimmed_curve.basis_curve ) THEN + result := TRUE; + ELSE + IF ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PCURVE' IN TYPEOF( crv ) ) AND ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PLANE' IN TYPEOF( crv\pcurve.basis_surface ) ) THEN + result := TRUE; + ELSE + IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SURFACE_CURVE' IN TYPEOF( crv ) THEN + + BEGIN + REPEAT j := 1 TO HIINDEX( crv\surface_curve.basis_surface ) BY 1; + IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PLANE' IN TYPEOF( crv\surface_curve.basis_surface[j] ) + THEN + result := TRUE; + END_IF; + END_REPEAT; + END; + END_IF; + END_IF; + END_IF; + END_IF; + RETURN( result ); + + END_FUNCTION; + + FUNCTION check_sparse_index_domain( + idxdom : tuple_space; + base : zero_or_one; + shape : LIST [1 : ?] OF positive_integer; + order : ordering_type + ) : BOOLEAN; + + LOCAL + mthspc : maths_space; + interval : finite_integer_interval; + i : INTEGER; + END_LOCAL; + mthspc := factor1( idxdom ); + interval := mthspc; + IF order = by_rows THEN + i := 1; + ELSE + i := 2; + END_IF; + RETURN( bool( ( interval.min <= base ) AND ( interval.max >= ( base + shape[i] ) ) ) ); + + END_FUNCTION; + + FUNCTION check_sparse_index_to_loc( + index_range, loc_domain : tuple_space + ) : BOOLEAN; + + LOCAL + temp : maths_space; + idx_rng_itvl : finite_integer_interval; + loc_dmn_itvl : finite_integer_interval; + END_LOCAL; + temp := factor1( index_range ); + IF ( schema_prefix + 'TUPLE_SPACE' ) IN TYPEOF( temp ) THEN + temp := factor1( temp ); + END_IF; + IF NOT ( ( schema_prefix + 'FINITE_INTEGER_INTERVAL' ) IN TYPEOF( temp ) ) THEN + RETURN( FALSE ); + END_IF; + idx_rng_itvl := temp; + temp := factor1( loc_domain ); + IF ( schema_prefix + 'TUPLE_SPACE' ) IN TYPEOF( temp ) THEN + temp := factor1( temp ); + END_IF; + IF NOT ( ( schema_prefix + 'FINITE_INTEGER_INTERVAL' ) IN TYPEOF( temp ) ) THEN + RETURN( FALSE ); + END_IF; + loc_dmn_itvl := temp; + RETURN( bool( ( loc_dmn_itvl.min <= idx_rng_itvl.min ) AND ( idx_rng_itvl.max <= ( loc_dmn_itvl.max + 1 ) ) ) ); + + END_FUNCTION; + + FUNCTION check_sparse_loc_range( + locrng : tuple_space; + base : zero_or_one; + shape : LIST [1 : ?] OF positive_integer; + order : ordering_type + ) : BOOLEAN; + + LOCAL + mthspc : maths_space; + interval : finite_integer_interval; + i : INTEGER; + END_LOCAL; + IF space_dimension( locrng ) <> 1 THEN + RETURN( FALSE ); + END_IF; + mthspc := factor1( locrng ); + IF NOT ( ( schema_prefix + 'FINITE_INTEGER_INTERVAL' ) IN TYPEOF( mthspc ) ) THEN + RETURN( FALSE ); + END_IF; + interval := mthspc; + IF order = by_rows THEN + i := 2; + ELSE + i := 1; + END_IF; + RETURN( bool( ( interval.min >= base ) AND ( interval.max <= ( ( base + shape[i] ) - 1 ) ) ) ); + + END_FUNCTION; + + FUNCTION check_text_alignment( + ct : composite_text + ) : BOOLEAN; + + LOCAL + a : SET OF text_alignment := []; + END_LOCAL; + REPEAT i := 1 TO HIINDEX( ct.collected_text ) BY 1; + a := a + [ct.collected_text[i]\text_literal.alignment]; + END_REPEAT; + RETURN( SIZEOF( a ) = 1 ); + + END_FUNCTION; + + FUNCTION check_text_font( + ct : composite_text + ) : BOOLEAN; + + LOCAL + f : SET OF font_select := []; + END_LOCAL; + REPEAT i := 1 TO HIINDEX( ct.collected_text ) BY 1; + f := f + [ct.collected_text[i]\text_literal.font]; + END_REPEAT; + 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 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ) + BY 1; + item := aia\applied_classification_assignment.items[i]; + IF SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CHARACTERIZED_CLASS'] * TYPEOF( item ) ) = 0 THEN + RETURN( FALSE ); + END_IF; + END_REPEAT; + END_IF; + IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ) + BY 1; + item := aia\applied_classification_assignment.items[i]; + IF SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CLASSIFIED_ITEM'] * TYPEOF( item ) ) = 0 THEN + 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( [ + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRODUCT' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'PRODUCT_DEFINITION_FORMATION' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 collect_joints( + items : SET [1 : ?] OF pair_representation_relationship + ) : SET OF kinematic_joint; + + LOCAL + result : SET OF kinematic_joint := []; + END_LOCAL; + REPEAT i := 1 TO HIINDEX( items ) BY 1; + result := result + items[i].transformation_operator.joint; + END_REPEAT; + RETURN( result ); + + END_FUNCTION; + + FUNCTION compare_basis_and_coef( + basis : LIST [1 : ?] OF b_spline_basis; + coef : maths_function + ) : BOOLEAN; + + LOCAL + shape : LIST OF positive_integer; + END_LOCAL; + IF ( NOT EXISTS( basis ) ) OR ( NOT EXISTS( coef ) ) THEN + RETURN( FALSE ); + END_IF; + shape := shape_of_array( coef ); + IF NOT EXISTS( shape ) THEN + RETURN( FALSE ); + END_IF; + IF SIZEOF( shape ) < SIZEOF( basis ) THEN + RETURN( FALSE ); + END_IF; + REPEAT i := 1 TO SIZEOF( basis ) BY 1; + IF ( basis[i].num_basis = shape[i] ) <> TRUE THEN + RETURN( FALSE ); + END_IF; + END_REPEAT; + RETURN( TRUE ); + + END_FUNCTION; + + FUNCTION compatible_complex_number_regions( + sp1, sp2 : maths_space + ) : BOOLEAN; + + LOCAL + typenames : SET OF STRING := stripped_typeof( sp1 ); + crgn1 : cartesian_complex_number_region; + crgn2 : cartesian_complex_number_region; + prgn1 : polar_complex_number_region; + prgn2 : polar_complex_number_region; + prgn1c2 : polar_complex_number_region; + prgn2c1 : polar_complex_number_region; + sp1_is_crgn : BOOLEAN; + sp2_is_crgn : BOOLEAN; + END_LOCAL; + IF 'CARTESIAN_COMPLEX_NUMBER_REGION' IN typenames THEN + sp1_is_crgn := TRUE; + crgn1 := sp1; + ELSE + IF 'POLAR_COMPLEX_NUMBER_REGION' IN typenames THEN + sp1_is_crgn := FALSE; + prgn1 := sp1; + ELSE + RETURN( TRUE ); + END_IF; + END_IF; + typenames := stripped_typeof( sp2 ); + IF 'CARTESIAN_COMPLEX_NUMBER_REGION' IN typenames THEN + sp2_is_crgn := TRUE; + crgn2 := sp2; + ELSE + IF 'POLAR_COMPLEX_NUMBER_REGION' IN typenames THEN + sp2_is_crgn := FALSE; + prgn2 := sp2; + ELSE + RETURN( TRUE ); + END_IF; + END_IF; + IF sp1_is_crgn AND sp2_is_crgn THEN + RETURN( compatible_intervals( crgn1.real_constraint, crgn2.real_constraint ) AND compatible_intervals( crgn1. + imag_constraint, crgn2.imag_constraint ) ); + END_IF; + IF ( NOT sp1_is_crgn ) AND ( NOT sp2_is_crgn ) AND ( prgn1.centre.real_part = prgn2.centre.real_part ) AND ( prgn1.centre. + imag_part = prgn2.centre.imag_part ) THEN + IF NOT compatible_intervals( prgn1.distance_constraint, prgn2.distance_constraint ) THEN + RETURN( FALSE ); + END_IF; + IF compatible_intervals( prgn1.direction_constraint, prgn2.direction_constraint ) THEN + RETURN( TRUE ); + END_IF; + IF ( prgn1.direction_constraint.max > PI ) AND ( prgn2.direction_constraint.max < PI ) THEN + RETURN( compatible_intervals( prgn2.direction_constraint, make_finite_real_interval( -PI, open, prgn1. + direction_constraint.max - ( 2 * PI ), prgn1.direction_constraint.max_closure ) ) ); + END_IF; + IF ( prgn2.direction_constraint.max > PI ) AND ( prgn1.direction_constraint.max < PI ) THEN + RETURN( compatible_intervals( prgn1.direction_constraint, make_finite_real_interval( -PI, open, prgn2. + direction_constraint.max - ( 2 * PI ), prgn2.direction_constraint.max_closure ) ) ); + END_IF; + RETURN( FALSE ); + END_IF; + IF sp1_is_crgn AND ( NOT sp2_is_crgn ) THEN + crgn2 := enclose_pregion_in_cregion( prgn2 ); + prgn1 := enclose_cregion_in_pregion( crgn1, prgn2.centre ); + RETURN( compatible_complex_number_regions( crgn1, crgn2 ) AND compatible_complex_number_regions( prgn1, prgn2 ) ); + END_IF; + IF ( NOT sp1_is_crgn ) AND sp2_is_crgn THEN + crgn1 := enclose_pregion_in_cregion( prgn1 ); + prgn2 := enclose_cregion_in_pregion( crgn2, prgn1.centre ); + RETURN( compatible_complex_number_regions( crgn1, crgn2 ) AND compatible_complex_number_regions( prgn1, prgn2 ) ); + END_IF; + prgn1c2 := enclose_pregion_in_pregion( prgn1, prgn2.centre ); + prgn2c1 := enclose_pregion_in_pregion( prgn2, prgn1.centre ); + RETURN( compatible_complex_number_regions( prgn1, prgn2c1 ) AND compatible_complex_number_regions( prgn1c2, prgn2 ) ); + + END_FUNCTION; + + FUNCTION compatible_es_values( + esval1, esval2 : elementary_space_enumerators + ) : BOOLEAN; + + LOCAL + esval1_is_numeric : LOGICAL; + esval2_is_numeric : LOGICAL; + END_LOCAL; + IF ( esval1 = esval2 ) OR ( esval1 = es_generics ) OR ( esval2 = es_generics ) THEN + RETURN( TRUE ); + END_IF; + esval1_is_numeric := ( esval1 >= es_numbers ) AND ( esval1 <= es_integers ); + esval2_is_numeric := ( esval2 >= es_numbers ) AND ( esval2 <= es_integers ); + IF ( esval1_is_numeric AND ( esval2 = es_numbers ) ) OR ( esval2_is_numeric AND ( esval1 = es_numbers ) ) THEN + RETURN( TRUE ); + END_IF; + IF esval1_is_numeric XOR esval2_is_numeric THEN + RETURN( FALSE ); + END_IF; + IF ( ( esval1 = es_logicals ) AND ( esval2 = es_booleans ) ) OR ( ( esval1 = es_booleans ) AND ( esval2 = es_logicals ) ) + THEN + RETURN( TRUE ); + END_IF; + RETURN( FALSE ); + + END_FUNCTION; + + FUNCTION compatible_intervals( + sp1, sp2 : maths_space + ) : BOOLEAN; + + LOCAL + amin : REAL; + amax : REAL; + END_LOCAL; + IF min_exists( sp1 ) AND max_exists( sp2 ) THEN + amin := real_min( sp1 ); + amax := real_max( sp2 ); + IF amin > amax THEN + RETURN( FALSE ); + END_IF; + IF amin = amax THEN + RETURN( min_included( sp1 ) AND max_included( sp2 ) ); + END_IF; + END_IF; + IF min_exists( sp2 ) AND max_exists( sp1 ) THEN + amin := real_min( sp2 ); + amax := real_max( sp1 ); + IF amin > amax THEN + RETURN( FALSE ); + END_IF; + IF amin = amax THEN + RETURN( min_included( sp2 ) AND max_included( sp1 ) ); + END_IF; + END_IF; + RETURN( TRUE ); + + END_FUNCTION; + + FUNCTION compatible_spaces( + sp1, sp2 : maths_space + ) : BOOLEAN; + + LOCAL + types1 : SET OF STRING := stripped_typeof( sp1 ); + types2 : SET OF STRING := stripped_typeof( sp2 ); + lgcl : LOGICAL := UNKNOWN; + m : INTEGER; + n : INTEGER; + s1 : maths_space; + s2 : maths_space; + END_LOCAL; + IF 'FINITE_SPACE' IN types1 THEN + REPEAT i := 1 TO SIZEOF( sp1\finite_space.members ) BY 1; + lgcl := member_of( sp1\finite_space.members[i], sp2 ); + IF lgcl <> FALSE THEN + RETURN( TRUE ); + END_IF; + END_REPEAT; + RETURN( FALSE ); + END_IF; + IF 'FINITE_SPACE' IN types2 THEN + REPEAT i := 1 TO SIZEOF( sp2\finite_space.members ) BY 1; + lgcl := member_of( sp2\finite_space.members[i], sp1 ); + IF lgcl <> FALSE THEN + RETURN( TRUE ); + END_IF; + END_REPEAT; + RETURN( FALSE ); + END_IF; + IF 'ELEMENTARY_SPACE' IN types1 THEN + IF sp1\elementary_space.space_id = es_generics THEN + RETURN( TRUE ); + END_IF; + IF 'ELEMENTARY_SPACE' IN types2 THEN + RETURN( compatible_es_values( sp1\elementary_space.space_id, sp2\elementary_space.space_id ) ); + END_IF; + IF ( 'FINITE_INTEGER_INTERVAL' IN types2 ) OR ( 'INTEGER_INTERVAL_FROM_MIN' IN types2 ) OR ( 'INTEGER_INTERVAL_TO_MAX' IN + types2 ) THEN + RETURN( compatible_es_values( sp1\elementary_space.space_id, es_integers ) ); + END_IF; + IF ( 'FINITE_REAL_INTERVAL' IN types2 ) OR ( 'REAL_INTERVAL_FROM_MIN' IN types2 ) OR ( 'REAL_INTERVAL_TO_MAX' IN types2 ) + THEN + RETURN( compatible_es_values( sp1\elementary_space.space_id, es_reals ) ); + END_IF; + IF ( 'CARTESIAN_COMPLEX_NUMBER_REGION' IN types2 ) OR ( 'POLAR_COMPLEX_NUMBER_REGION' IN types2 ) THEN + RETURN( compatible_es_values( sp1\elementary_space.space_id, es_complex_numbers ) ); + END_IF; + IF 'TUPLE_SPACE' IN types2 THEN + RETURN( FALSE ); + END_IF; + IF 'FUNCTION_SPACE' IN types2 THEN + RETURN( bool( sp1\elementary_space.space_id = es_maths_functions ) ); + END_IF; + RETURN( TRUE ); + END_IF; + IF 'ELEMENTARY_SPACE' IN types2 THEN + IF sp2\elementary_space.space_id = es_generics THEN + RETURN( TRUE ); + END_IF; + IF ( 'FINITE_INTEGER_INTERVAL' IN types1 ) OR ( 'INTEGER_INTERVAL_FROM_MIN' IN types1 ) OR ( 'INTEGER_INTERVAL_TO_MAX' IN + types1 ) THEN + RETURN( compatible_es_values( sp2\elementary_space.space_id, es_integers ) ); + END_IF; + IF ( 'FINITE_REAL_INTERVAL' IN types1 ) OR ( 'REAL_INTERVAL_FROM_MIN' IN types1 ) OR ( 'REAL_INTERVAL_TO_MAX' IN types1 ) + THEN + RETURN( compatible_es_values( sp2\elementary_space.space_id, es_reals ) ); + END_IF; + IF ( 'CARTESIAN_COMPLEX_NUMBER_REGION' IN types1 ) OR ( 'POLAR_COMPLEX_NUMBER_REGION' IN types1 ) THEN + RETURN( compatible_es_values( sp2\elementary_space.space_id, es_complex_numbers ) ); + END_IF; + IF 'TUPLE_SPACE' IN types1 THEN + RETURN( FALSE ); + END_IF; + IF 'FUNCTION_SPACE' IN types1 THEN + RETURN( bool( sp2\elementary_space.space_id = es_maths_functions ) ); + END_IF; + RETURN( TRUE ); + END_IF; + IF subspace_of_es( sp1, es_integers ) THEN + IF subspace_of_es( sp2, es_integers ) THEN + RETURN( compatible_intervals( sp1, sp2 ) ); + END_IF; + RETURN( FALSE ); + END_IF; + IF subspace_of_es( sp2, es_integers ) THEN + RETURN( FALSE ); + END_IF; + IF subspace_of_es( sp1, es_reals ) THEN + IF subspace_of_es( sp2, es_reals ) THEN + RETURN( compatible_intervals( sp1, sp2 ) ); + END_IF; + RETURN( FALSE ); + END_IF; + IF subspace_of_es( sp2, es_reals ) THEN + RETURN( FALSE ); + END_IF; + IF subspace_of_es( sp1, es_complex_numbers ) THEN + IF subspace_of_es( sp2, es_complex_numbers ) THEN + RETURN( compatible_complex_number_regions( sp1, sp2 ) ); + END_IF; + RETURN( FALSE ); + END_IF; + IF subspace_of_es( sp2, es_complex_numbers ) THEN + RETURN( FALSE ); + END_IF; + IF 'UNIFORM_PRODUCT_SPACE' IN types1 THEN + IF 'UNIFORM_PRODUCT_SPACE' IN types2 THEN + IF sp1\uniform_product_space.exponent <> sp2\uniform_product_space.exponent THEN + RETURN( FALSE ); + END_IF; + RETURN( compatible_spaces( sp1\uniform_product_space.base, sp2\uniform_product_space.base ) ); + END_IF; + IF 'LISTED_PRODUCT_SPACE' IN types2 THEN + n := SIZEOF( sp2\listed_product_space.factors ); + IF sp1\uniform_product_space.exponent <> n THEN + RETURN( FALSE ); + END_IF; + REPEAT i := 1 TO n BY 1; + IF NOT compatible_spaces( sp1\uniform_product_space.base, sp2\listed_product_space.factors[i] ) THEN + RETURN( FALSE ); + END_IF; + END_REPEAT; + RETURN( TRUE ); + END_IF; + IF 'EXTENDED_TUPLE_SPACE' IN types2 THEN + m := sp1\uniform_product_space.exponent; + n := space_dimension( sp2\extended_tuple_space.base ); + IF m < n THEN + RETURN( FALSE ); + END_IF; + IF m = n THEN + RETURN( compatible_spaces( sp1, sp2\extended_tuple_space.base ) ); + END_IF; + RETURN( compatible_spaces( sp1, assoc_product_space( sp2\extended_tuple_space.base, make_uniform_product_space( sp2\ + extended_tuple_space.extender, m - n ) ) ) ); + END_IF; + IF 'FUNCTION_SPACE' IN types2 THEN + RETURN( FALSE ); + END_IF; + RETURN( TRUE ); + END_IF; + IF 'LISTED_PRODUCT_SPACE' IN types1 THEN + n := SIZEOF( sp1\listed_product_space.factors ); + IF 'UNIFORM_PRODUCT_SPACE' IN types2 THEN + IF n <> sp2\uniform_product_space.exponent THEN + RETURN( FALSE ); + END_IF; + REPEAT i := 1 TO n BY 1; + IF NOT compatible_spaces( sp2\uniform_product_space.base, sp1\listed_product_space.factors[i] ) THEN + RETURN( FALSE ); + END_IF; + END_REPEAT; + RETURN( TRUE ); + END_IF; + IF 'LISTED_PRODUCT_SPACE' IN types2 THEN + IF n <> SIZEOF( sp2\listed_product_space.factors ) THEN + RETURN( FALSE ); + END_IF; + REPEAT i := 1 TO n BY 1; + IF NOT compatible_spaces( sp1\listed_product_space.factors[i], sp2\listed_product_space.factors[i] ) THEN + RETURN( FALSE ); + END_IF; + END_REPEAT; + RETURN( TRUE ); + END_IF; + IF 'EXTENDED_TUPLE_SPACE' IN types2 THEN + m := space_dimension( sp2\extended_tuple_space.base ); + IF n < m THEN + RETURN( FALSE ); + END_IF; + IF n = m THEN + RETURN( compatible_spaces( sp1, sp2\extended_tuple_space.base ) ); + END_IF; + RETURN( compatible_spaces( sp1, assoc_product_space( sp2\extended_tuple_space.base, make_uniform_product_space( sp2\ + extended_tuple_space.extender, n - m ) ) ) ); + END_IF; + IF ( schema_prefix + 'FUNCTION_SPACE' ) IN types2 THEN + RETURN( FALSE ); + END_IF; + RETURN( TRUE ); + END_IF; + IF 'EXTENDED_TUPLE_SPACE' IN types1 THEN + IF ( 'UNIFORM_PRODUCT_SPACE' IN types2 ) OR ( 'LISTED_PRODUCT_SPACE' IN types2 ) THEN + RETURN( compatible_spaces( sp2, sp1 ) ); + END_IF; + IF 'EXTENDED_TUPLE_SPACE' IN types2 THEN + IF NOT compatible_spaces( sp1\extended_tuple_space.extender, sp2\extended_tuple_space.extender ) THEN + RETURN( FALSE ); + END_IF; + n := space_dimension( sp1\extended_tuple_space.base ); + m := space_dimension( sp2\extended_tuple_space.base ); + IF n < m THEN + RETURN( compatible_spaces( assoc_product_space( sp1\extended_tuple_space.base, make_uniform_product_space( sp1\ + extended_tuple_space.extender, m - n ) ), sp2\extended_tuple_space.base ) ); + END_IF; + IF n = m THEN + RETURN( compatible_spaces( sp1\extended_tuple_space.base, sp2\extended_tuple_space.base ) ); + END_IF; + IF n > m THEN + RETURN( compatible_spaces( sp1\extended_tuple_space.base, assoc_product_space( sp2\extended_tuple_space.base, + make_uniform_product_space( sp2\extended_tuple_space.extender, n - m ) ) ) ); + END_IF; + END_IF; + IF 'FUNCTION_SPACE' IN types2 THEN + RETURN( FALSE ); + END_IF; + RETURN( TRUE ); + END_IF; + IF 'FUNCTION_SPACE' IN types1 THEN + IF 'FUNCTION_SPACE' IN types2 THEN + s1 := sp1\function_space.domain_argument; + s2 := sp2\function_space.domain_argument; + CASE sp1\function_space.domain_constraint OF + sc_equal : + BEGIN + CASE sp2\function_space.domain_constraint OF + sc_equal : lgcl := subspace_of( s1, s2 ) AND subspace_of( s2, s1 ); + sc_subspace : lgcl := subspace_of( s1, s2 ); + sc_member : lgcl := member_of( s1, s2 ); + END_CASE; + END; + sc_subspace : + BEGIN + CASE sp2\function_space.domain_constraint OF + sc_equal : lgcl := subspace_of( s2, s1 ); + sc_subspace : lgcl := compatible_spaces( s1, s2 ); + sc_member : lgcl := UNKNOWN; + END_CASE; + END; + sc_member : + BEGIN + CASE sp2\function_space.domain_constraint OF + sc_equal : lgcl := member_of( s2, s1 ); + sc_subspace : lgcl := UNKNOWN; + sc_member : lgcl := compatible_spaces( s1, s2 ); + END_CASE; + END; + END_CASE; + IF lgcl = FALSE THEN + RETURN( FALSE ); + END_IF; + s1 := sp1\function_space.range_argument; + s2 := sp2\function_space.range_argument; + CASE sp1\function_space.range_constraint OF + sc_equal : + BEGIN + CASE sp2\function_space.range_constraint OF + sc_equal : lgcl := subspace_of( s1, s2 ) AND subspace_of( s2, s1 ); + sc_subspace : lgcl := subspace_of( s1, s2 ); + sc_member : lgcl := member_of( s1, s2 ); + END_CASE; + END; + sc_subspace : + BEGIN + CASE sp2\function_space.range_constraint OF + sc_equal : lgcl := subspace_of( s2, s1 ); + sc_subspace : lgcl := compatible_spaces( s1, s2 ); + sc_member : lgcl := UNKNOWN; + END_CASE; + END; + sc_member : + BEGIN + CASE sp2\function_space.range_constraint OF + sc_equal : lgcl := member_of( s2, s1 ); + sc_subspace : lgcl := UNKNOWN; + sc_member : lgcl := compatible_spaces( s1, s2 ); + END_CASE; + END; + END_CASE; + IF lgcl = FALSE THEN + RETURN( FALSE ); + END_IF; + RETURN( TRUE ); + END_IF; + RETURN( TRUE ); + END_IF; + RETURN( TRUE ); + + END_FUNCTION; + + FUNCTION composable_sequence( + operands : LIST [2 : ?] OF maths_function + ) : BOOLEAN; + REPEAT i := 1 TO SIZEOF( operands ) - 1 BY 1; + IF NOT compatible_spaces( operands[i].range, operands[i + 1].domain ) THEN + RETURN( FALSE ); + END_IF; + END_REPEAT; + RETURN( TRUE ); + + 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 BY 1; + 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 consistent_element_or_group_reference( + aspect, element : GENERIC + ) : BOOLEAN; + + LOCAL + srrs : STRING; + i : INTEGER; + END_LOCAL; + srrs := 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.'; + IF ( srrs + 'ELEMENT_REPRESENTATION' ) IN TYPEOF( element ) THEN + RETURN( consistent_element_reference( aspect, element ) ); + END_IF; + IF ( srrs + 'ELEMENT_GROUP' ) IN TYPEOF( element ) THEN + REPEAT i := 1 TO HIINDEX( element.elements ) BY 1; + IF NOT consistent_element_reference( aspect, element.elements[i] ) THEN + RETURN( FALSE ); + END_IF; + END_REPEAT; + RETURN( TRUE ); + END_IF; + RETURN( FALSE ); + + END_FUNCTION; + + FUNCTION consistent_element_reference( + aspect : GENERIC; + element : element_representation + ) : BOOLEAN; + + LOCAL + srrs : STRING; + feacr : STRING; + aspect_type : SET [1 : ?] OF STRING; + element_type : SET [1 : ?] OF STRING; + END_LOCAL; + srrs := 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.'; + feacr := 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.'; + aspect_type := TYPEOF( aspect ); + element_type := TYPEOF( element ); + IF ( srrs + 'ELEMENT_REPRESENTATION' ) IN element_type THEN + IF ( srrs + 'ELEMENT_VOLUME' ) IN aspect_type THEN + RETURN( TRUE ); + END_IF; + END_IF; + IF ( srrs + 'VOLUME_3D_ELEMENT_REPRESENTATION' ) IN element_type THEN + IF ( ( feacr + 'VOLUME_3D_FACE' ) IN aspect_type ) OR ( ( feacr + 'VOLUME_3D_EDGE' ) IN aspect_type ) THEN + RETURN( TRUE ); + END_IF; + END_IF; + IF ( ( srrs + 'AXISYMMETRIC_VOLUME_2D_ELEMENT_REPRESENTATION' ) IN element_type ) OR ( ( srrs + + 'PLANE_VOLUME_2D_ELEMENT_REPRESENTATION' ) IN element_type ) THEN + IF ( ( feacr + 'VOLUME_2D_FACE' ) IN aspect_type ) OR ( ( feacr + 'VOLUME_2D_EDGE' ) IN aspect_type ) THEN + RETURN( TRUE ); + END_IF; + END_IF; + IF ( srrs + 'SURFACE_3D_ELEMENT_REPRESENTATION' ) IN element_type THEN + IF ( ( feacr + 'SURFACE_3D_FACE' ) IN aspect_type ) OR ( ( feacr + 'SURFACE_3D_EDGE' ) IN aspect_type ) THEN + RETURN( TRUE ); + END_IF; + END_IF; + IF ( ( srrs + 'AXISYMMETRIC_SURFACE_2D_ELEMENT_REPRESENTATION' ) IN element_type ) OR ( ( srrs + + 'PLANE_SURFACE_2D_ELEMENT_REPRESENTATION' ) IN element_type ) THEN + IF ( ( feacr + 'SURFACE_2D_FACE' ) IN aspect_type ) OR ( ( feacr + 'SURFACE_2D_EDGE' ) IN aspect_type ) THEN + RETURN( TRUE ); + END_IF; + END_IF; + IF ( ( srrs + 'CURVE_3D_ELEMENT_REPRESENTATION' ) IN element_type ) OR ( ( srrs + + 'AXISYMMETRIC_CURVE_2D_ELEMENT_REPRESENTATION' ) IN element_type ) OR ( ( srrs + 'PLANE_CURVE_2D_ELEMENT_REPRESENTATION' ) + IN element_type ) THEN + IF ( srrs + 'CURVE_EDGE' ) IN aspect_type THEN + RETURN( TRUE ); + END_IF; + END_IF; + RETURN( FALSE ); + + END_FUNCTION; + + FUNCTION consistent_geometric_reference( + aspect : GENERIC; + item : geometric_representation_item + ) : BOOLEAN; + + LOCAL + srrs : STRING; + feacr : STRING; + aspect_type : SET [1 : ?] OF STRING; + item_type : SET [1 : ?] OF STRING; + END_LOCAL; + srrs := 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.'; + feacr := 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.'; + aspect_type := TYPEOF( aspect ); + item_type := TYPEOF( item ); + IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SOLID_MODEL' IN item_type THEN + IF ( srrs + 'ELEMENT_VOLUME' ) IN aspect_type THEN + RETURN( TRUE ); + END_IF; + END_IF; + IF ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SURFACE' IN item_type ) OR ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FACE_SURFACE' IN item_type ) THEN + IF SIZEOF( [feacr + 'VOLUME_3D_FACE', feacr + 'VOLUME_2D_FACE', feacr + 'SURFACE_3D_FACE', feacr + 'SURFACE_2D_FACE'] * + aspect_type ) = 1 THEN + RETURN( TRUE ); + END_IF; + END_IF; + IF ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CURVE' IN item_type ) OR ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.EDGE_CURVE' IN item_type ) THEN + IF SIZEOF( [feacr + 'VOLUME_3D_EDGE', feacr + 'VOLUME_2D_EDGE', feacr + 'SURFACE_3D_EDGE', feacr + 'SURFACE_2D_EDGE', srrs + + 'CURVE_EDGE'] * aspect_type ) = 1 THEN + RETURN( TRUE ); + END_IF; + END_IF; + RETURN( FALSE ); + + END_FUNCTION; + + FUNCTION consistent_list_values( + values : LIST [1 : ?] OF field_value; + variable : GENERIC + ) : BOOLEAN; + + LOCAL + vv_type : STRING; + fv_type : SET [1 : ?] OF STRING; + i : INTEGER; + END_LOCAL; + vv_type := variable_value_type( variable ); + REPEAT i := 1 TO HIINDEX( values ) BY 1; + fv_type := TYPEOF( values[i] ); + IF NOT ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'UNSPECIFIED_VALUE' ) IN fv_type ) THEN + IF NOT ( vv_type IN fv_type ) THEN + RETURN( FALSE ); + END_IF; + END_IF; + END_REPEAT; + RETURN( TRUE ); + + END_FUNCTION; + + FUNCTION consistent_set_values( + values_and_locations : SET [1 : ?] OF GENERIC; + variable : GENERIC + ) : BOOLEAN; + + LOCAL + vv_type : STRING; + fv_type : SET [1 : ?] OF STRING; + i : INTEGER; + END_LOCAL; + vv_type := variable_value_type( variable ); + REPEAT i := 1 TO HIINDEX( values_and_locations ) BY 1; + fv_type := TYPEOF( values_and_locations[i].simple_value ); + IF NOT ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'UNSPECIFIED_VALUE' ) IN fv_type ) THEN + IF NOT ( vv_type IN fv_type ) THEN + RETURN( FALSE ); + END_IF; + END_IF; + END_REPEAT; + RETURN( TRUE ); + + END_FUNCTION; + + FUNCTION consistent_topological_reference( + aspect : GENERIC; + item : topological_representation_item + ) : BOOLEAN; + + LOCAL + status : BOOLEAN; + srrs : STRING; + END_LOCAL; + status := FALSE; + srrs := 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.'; + IF ( srrs + 'ELEMENT_VOLUME' ) IN TYPEOF( aspect ) THEN + IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CLOSED_SHELL' IN TYPEOF( item ) THEN + status := TRUE; + END_IF; + END_IF; + IF ( srrs + 'VOLUME_3D_FACE' ) IN TYPEOF( aspect ) THEN + IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FACE' IN TYPEOF( item ) THEN + status := TRUE; + END_IF; + END_IF; + IF ( srrs + 'VOLUME_2D_FACE' ) IN TYPEOF( aspect ) THEN + IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.EDGE' IN TYPEOF( item ) THEN + status := TRUE; + END_IF; + END_IF; + IF ( srrs + 'SURFACE_3D_FACE' ) IN TYPEOF( aspect ) THEN + IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FACE' IN TYPEOF( item ) THEN + status := TRUE; + END_IF; + END_IF; + IF ( srrs + 'SURFACE_2D_FACE' ) IN TYPEOF( aspect ) THEN + IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.EDGE' IN TYPEOF( item ) THEN + status := TRUE; + END_IF; + END_IF; + IF ( srrs + 'VOLUME_3D_EDGE' ) IN TYPEOF( aspect ) THEN + IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.EDGE' IN TYPEOF( item ) THEN + status := TRUE; + END_IF; + END_IF; + IF ( srrs + 'VOLUME_2D_EDGE' ) IN TYPEOF( aspect ) THEN + IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.VERTEX' IN TYPEOF( item ) THEN + status := TRUE; + END_IF; + END_IF; + IF ( srrs + 'SURFACE_3D_EDGE' ) IN TYPEOF( aspect ) THEN + IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.EDGE' IN TYPEOF( item ) THEN + status := TRUE; + END_IF; + END_IF; + IF ( srrs + 'SURFACE_2D_EDGE' ) IN TYPEOF( aspect ) THEN + IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.VERTEX' IN TYPEOF( item ) THEN + status := TRUE; + END_IF; + END_IF; + IF ( srrs + 'CURVE_EDGE' ) IN TYPEOF( aspect ) THEN + IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.EDGE' IN TYPEOF( item ) THEN + status := TRUE; + END_IF; + END_IF; + IF 'TOPOLOGICAL_DEFINITION_AND_MESH_SCHEMA.TOPOLOGICAL_REGION' IN TYPEOF( item ) THEN + status := TRUE; + END_IF; + RETURN( status ); + + END_FUNCTION; + + FUNCTION consistent_value( + c_value : field_value; + variable : GENERIC + ) : BOOLEAN; + + LOCAL + vv_type : STRING; + fv_type : SET [1 : ?] OF STRING; + END_LOCAL; + vv_type := variable_value_type( variable ); + fv_type := TYPEOF( c_value ); + IF NOT ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'UNSPECIFIED_VALUE' ) IN fv_type ) THEN + IF NOT ( vv_type IN fv_type ) THEN + RETURN( FALSE ); + END_IF; + END_IF; + RETURN( TRUE ); + + 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 BY 1; + IF ( NOT ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PCURVE' IN TYPEOF( c\composite_curve.segments[k]. + parent_curve ) ) ) AND ( NOT ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SURFACE_CURVE' IN TYPEOF( c\ + composite_curve.segments[k].parent_curve ) ) ) AND ( NOT ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ) BY 1; + IF ( NOT ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.OPEN_SHELL' IN TYPEOF( m.sbsm_boundary[j] ) ) ) AND ( NOT ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CLOSED_SHELL' IN TYPEOF( m.sbsm_boundary[j] ) ) ) THEN + result := FALSE; + RETURN( result ); + 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 ) BY 1; + IF ( NOT ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.WIRE_SHELL' IN TYPEOF( m.sbwm_boundary[j] ) ) ) AND ( NOT ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.VERTEX_SHELL' IN TYPEOF( m.sbwm_boundary[j] ) ) ) THEN + result := FALSE; + RETURN( result ); + 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 : INTEGER; + sum : INTEGER; + END_LOCAL; + sum := knot_mult[1]; + REPEAT i := 2 TO up_knots BY 1; + sum := sum + knot_mult[i]; + END_REPEAT; + 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 BY 1; + 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 BY 1; + REPEAT j := 1 TO s.n_v BY 1; + IF NOT ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.B_SPLINE_SURFACE' IN TYPEOF( s.segments[i][j]. + parent_surface ) ) OR ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.RECTANGULAR_TRIMMED_SURFACE' IN TYPEOF( s. + segments[i][j].parent_surface ) ) ) THEN + RETURN( FALSE ); + END_IF; + END_REPEAT; + END_REPEAT; + REPEAT i := 1 TO s.n_u - 1 BY 1; + REPEAT j := 1 TO s.n_v BY 1; + IF s.segments[i][j].u_transition = discontinuous THEN + RETURN( FALSE ); + END_IF; + END_REPEAT; + END_REPEAT; + REPEAT i := 1 TO s.n_u BY 1; + REPEAT j := 1 TO s.n_v - 1 BY 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 ) BY 1; + ch := s[i]; + IF ( ch = '\x9' ) OR ( ch = '\xA' ) OR ( ch = '\xD' ) THEN + RETURN( FALSE ); + END_IF; + END_REPEAT; + RETURN( TRUE ); + + END_FUNCTION; + + FUNCTION convert_spatial_to_ypr_rotation( + pair : kinematic_pair; + rotation : spatial_rotation + ) : ypr_rotation; + + LOCAL + axis : direction; + angle : plane_angle_measure; + conv_angle : plane_angle_measure; + ya : plane_angle_measure; + pa : plane_angle_measure; + ra : plane_angle_measure; + ucf : REAL; + dx : REAL; + dy : REAL; + dz : REAL; + s_a : REAL; + c_a : REAL; + rotmat : ARRAY [1 : 3] OF ARRAY [1 : 3] OF REAL; + cm1 : REAL; + s_y : REAL; + c_y : REAL; + s_r : REAL; + c_r : REAL; + END_LOCAL; + IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.YPR_ROTATION' IN TYPEOF( rotation ) THEN + RETURN( rotation ); + END_IF; + axis := normalise( rotation\rotation_about_direction.direction_of_axis ); + angle := rotation\rotation_about_direction.rotation_angle; + IF angle = 0 THEN + RETURN( [0, 0, 0] ); + END_IF; + dx := axis.direction_ratios[1]; + dy := axis.direction_ratios[2]; + dz := axis.direction_ratios[3]; + conv_angle := plane_angle_for_pair_in_radian( pair, angle ); + IF NOT ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PLANE_ANGLE_MEASURE' IN TYPEOF( conv_angle ) ) THEN + RETURN( ? ); + END_IF; + ucf := angle / conv_angle; + s_a := SIN( conv_angle ); + c_a := COS( conv_angle ); + IF ( dy = 0 ) AND ( ( dx * dz ) = 0 ) THEN + REPEAT WHILE conv_angle <= ( -PI ); + conv_angle := conv_angle + ( 2 * PI ); + END_REPEAT; + REPEAT WHILE conv_angle > PI; + conv_angle := conv_angle - ( 2 * PI ); + END_REPEAT; + ya := ucf * conv_angle; + IF conv_angle <> PI THEN + ra := -ya; + ELSE + ra := ya; + END_IF; + IF dx <> 0 THEN + IF dx > 0 THEN + RETURN( [0, 0, ya] ); + ELSE + RETURN( [0, 0, ra] ); + END_IF; + ELSE + IF dz > 0 THEN + RETURN( [ya, 0, 0] ); + ELSE + RETURN( [ra, 0, 0] ); + END_IF; + END_IF; + END_IF; + IF ( dy <> 0 ) AND ( dx = 0 ) AND ( dz = 0 ) THEN + IF c_a >= 0 THEN + ya := 0; + ra := 0; + ELSE + ya := ucf * PI; + ra := ya; + END_IF; + pa := ucf * ATAN( s_a, ABS( c_a ) ); + IF dy < 0 THEN + pa := -pa; + END_IF; + RETURN( [ya, pa, ra] ); + END_IF; + cm1 := 1 - c_a; + rotmat := [[( dx * dx * cm1 ) + c_a, ( dx * dy * cm1 ) - ( dz * s_a ), ( dx * dz * cm1 ) + ( dy * s_a )], [( dx * dy * cm1 ) + + ( dz * s_a ), ( dy * dy * cm1 ) + c_a, ( dy * dz * cm1 ) - ( dx * s_a )], [( dx * dz * cm1 ) - ( dy * s_a ), ( dy * dz * + cm1 ) + ( dx * s_a ), ( dz * dz * cm1 ) + c_a]]; + IF ABS( rotmat[1][3] ) = 1 THEN + + BEGIN + IF rotmat[1][3] = 1 THEN + pa := 0.5 * PI; + ELSE + pa := ( -0.5 ) * PI; + END_IF; + ra := 0; + ya := ATAN( rotmat[2][1], rotmat[2][2] ); + IF rotmat[2][2] < 0 THEN + IF ya <= 0 THEN + ya := ya + PI; + ELSE + ya := ya - PI; + END_IF; + END_IF; + END; + ELSE + + BEGIN + ya := ATAN( -rotmat[1][2], rotmat[1][1] ); + IF rotmat[1][1] < 0 THEN + IF ya <= 0 THEN + ya := ya + PI; + ELSE + ya := ya - PI; + END_IF; + END_IF; + ra := ATAN( -rotmat[2][3], rotmat[3][3] ); + IF rotmat[3][3] < 0 THEN + IF ra <= 0 THEN + ra := ra + PI; + ELSE + ra := ra - PI; + END_IF; + END_IF; + s_y := SIN( ya ); + c_y := COS( ya ); + s_r := SIN( ra ); + c_r := COS( ra ); + IF ( ABS( s_y ) > ABS( c_y ) ) AND ( ABS( s_y ) > ABS( s_r ) ) AND ( ABS( s_y ) > ABS( c_r ) ) THEN + cm1 := ( -rotmat[1][2] ) / s_y; + ELSE + IF ( ABS( c_y ) > ABS( s_r ) ) AND ( ABS( c_y ) > ABS( c_r ) ) THEN + cm1 := rotmat[1][1] / c_y; + ELSE + IF ABS( s_r ) > ABS( c_r ) THEN + cm1 := ( -rotmat[2][3] ) / s_r; + ELSE + cm1 := rotmat[3][3] / c_r; + END_IF; + END_IF; + END_IF; + pa := ATAN( rotmat[1][3], cm1 ); + END; + END_IF; + ya := ya * ucf; + pa := pa * ucf; + ra := ra * ucf; + RETURN( [ya, pa, ra] ); + + END_FUNCTION; + + FUNCTION convert_to_literal( + val : maths_atom + ) : generic_literal; + + LOCAL + types : SET OF STRING := TYPEOF( val ); + END_LOCAL; + IF 'INTEGER' IN types THEN + RETURN( make_int_literal( val ) ); + END_IF; + IF 'REAL' IN types THEN + RETURN( make_real_literal( val ) ); + END_IF; + IF 'BOOLEAN' IN types THEN + RETURN( make_boolean_literal( val ) ); + END_IF; + IF 'STRING' IN types THEN + RETURN( make_string_literal( val ) ); + END_IF; + IF 'LOGICAL' IN types THEN + RETURN( make_logical_literal( val ) ); + END_IF; + IF 'BINARY' IN types THEN + RETURN( make_binary_literal( val ) ); + END_IF; + IF ( schema_prefix + 'MATHS_ENUM_ATOM' ) IN types THEN + RETURN( make_maths_enum_literal( val ) ); + END_IF; + RETURN( ? ); + + END_FUNCTION; + + FUNCTION convert_to_maths_function( + func : maths_function_select + ) : maths_function; + + LOCAL + efenum : elementary_function_enumerators; + mthfun : maths_function; + END_LOCAL; + IF ( schema_prefix + 'MATHS_FUNCTION' ) IN TYPEOF( func ) THEN + mthfun := func; + ELSE + efenum := func; + mthfun := make_elementary_function( efenum ); + END_IF; + RETURN( mthfun ); + + END_FUNCTION; + + FUNCTION convert_to_maths_value( + val : GENERIC:g + ) : maths_value; + + LOCAL + types : SET OF STRING := TYPEOF( val ); + ival : maths_integer; + rval : maths_real; + nval : maths_number; + tfval : maths_boolean; + lval : maths_logical; + sval : maths_string; + bval : maths_binary; + tval : maths_tuple := the_empty_maths_tuple; + mval : maths_value; + END_LOCAL; + IF ( schema_prefix + 'MATHS_VALUE' ) IN types THEN + RETURN( val ); + END_IF; + IF 'INTEGER' IN types THEN + ival := val; + RETURN( ival ); + END_IF; + IF 'REAL' IN types THEN + rval := val; + RETURN( rval ); + END_IF; + IF 'NUMBER' IN types THEN + nval := val; + RETURN( nval ); + END_IF; + IF 'BOOLEAN' IN types THEN + tfval := val; + RETURN( tfval ); + END_IF; + IF 'LOGICAL' IN types THEN + lval := val; + RETURN( lval ); + END_IF; + IF 'STRING' IN types THEN + sval := val; + RETURN( sval ); + END_IF; + IF 'BINARY' IN types THEN + bval := val; + RETURN( bval ); + END_IF; + IF 'LIST' IN types THEN + REPEAT i := 1 TO SIZEOF( val ) BY 1; + mval := convert_to_maths_value( val[i] ); + IF NOT EXISTS( mval ) THEN + RETURN( ? ); + END_IF; + INSERT( tval, mval, i - 1 ); + END_REPEAT; + RETURN( tval ); + END_IF; + RETURN( ? ); + + END_FUNCTION; + + FUNCTION convert_to_operand( + val : maths_value + ) : generic_expression; + + LOCAL + types : SET OF STRING := stripped_typeof( val ); + END_LOCAL; + IF 'GENERIC_EXPRESSION' IN types THEN + RETURN( val ); + END_IF; + IF 'MATHS_ATOM' IN types THEN + RETURN( convert_to_literal( val ) ); + END_IF; + IF 'ATOM_BASED_VALUE' IN types THEN + RETURN( make_atom_based_literal( val ) ); + END_IF; + IF 'MATHS_TUPLE' IN types THEN + RETURN( make_maths_tuple_literal( val ) ); + END_IF; + RETURN( ? ); + + END_FUNCTION; + + FUNCTION convert_to_operands( + values : AGGREGATE OF maths_value + ) : LIST OF generic_expression; + + LOCAL + operands : LIST OF generic_expression := []; + loc : INTEGER := 0; + END_LOCAL; + IF NOT EXISTS( values ) THEN + RETURN( ? ); + END_IF; + REPEAT i := LOINDEX( values ) TO HIINDEX( values ) BY 1; + INSERT( operands, convert_to_operand( values[i] ), loc ); + loc := loc + 1; + END_REPEAT; + RETURN( operands ); + + END_FUNCTION; + + FUNCTION convert_to_operands_prcmfn( + srcdom : maths_space_or_function; + prepfun : LIST OF maths_function; + finfun : maths_function_select + ) : LIST [2 : ?] OF generic_expression; + + LOCAL + operands : LIST OF generic_expression := []; + END_LOCAL; + INSERT( operands, srcdom, 0 ); + REPEAT i := 1 TO SIZEOF( prepfun ) BY 1; + INSERT( operands, prepfun[i], i ); + END_REPEAT; + INSERT( operands, convert_to_maths_function( finfun ), SIZEOF( prepfun ) + 1 ); + RETURN( operands ); + + END_FUNCTION; + + FUNCTION cross_product( + arg1, arg2 : direction + ) : vector; + + LOCAL + mag : REAL; + res : direction; + v1 : LIST [3 : 3] OF REAL; + 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; + REPEAT i := 1 TO 3 BY 1; + mag := mag + ( res.direction_ratios[i] * res.direction_ratios[i] ); + END_REPEAT; + IF mag > 0 THEN + result := dummy_gri || vector( res, SQRT( mag ) ); + ELSE + result := dummy_gri || vector( arg1, 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 BY 1; + IF b.weights[i] <= 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 | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM' IN + TYPEOF( i ) ) AND ( i\representation_item.name = 'significant number of digits' ) ) ) ) = 1 ) OR ( ( SIZEOF( + QUERY ( i <* agg | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM' IN TYPEOF( i ) ) + AND ( i\representation_item.name = 'lower limit' ) ) ) ) = 1 ) AND ( SIZEOF( QUERY ( i <* agg | ( ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM' IN + TYPEOF( i ) ) AND ( i\representation_item.name = 'plus minus tolerance value' ) ) ) ) = 1 ) OR ( ( SIZEOF( QUERY ( i <* + agg | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM' IN TYPEOF( i ) ) AND ( i\ + representation_item.name = 'lower tolerance value' ) ) ) ) = 1 ) AND ( SIZEOF( QUERY ( i <* agg | ( ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.DESCRIPTIVE_REPRESENTATION_ITEM' IN + TYPEOF( i ) ) ) ) <= 1 ) AND ( SIZEOF( QUERY ( i <* agg | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF( i ) ) ) ) = SIZEOF( QUERY ( i <* agg | ( ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 definite_integral_check( + domain : tuple_space; + vrblint : input_selector; + lowerinf : BOOLEAN; + upperinf : BOOLEAN + ) : BOOLEAN; + + LOCAL + domn : tuple_space := domain; + fspc : maths_space; + dim : nonnegative_integer; + k : positive_integer; + END_LOCAL; + IF ( space_dimension( domain ) = 1 ) AND ( ( schema_prefix + 'TUPLE_SPACE' ) IN TYPEOF( factor1( domain ) ) ) THEN + domn := factor1( domain ); + END_IF; + dim := space_dimension( domn ); + k := vrblint; + IF k > dim THEN + RETURN( FALSE ); + END_IF; + fspc := factor_space( domn, k ); + IF NOT ( ( schema_prefix + 'REAL_INTERVAL' ) IN TYPEOF( fspc ) ) THEN + RETURN( FALSE ); + END_IF; + IF lowerinf AND min_exists( fspc ) THEN + RETURN( FALSE ); + END_IF; + IF upperinf AND max_exists( fspc ) THEN + RETURN( FALSE ); + END_IF; + RETURN( TRUE ); + + END_FUNCTION; + + FUNCTION definite_integral_expr_check( + operands : LIST [2 : ?] OF generic_expression; + lowerinf : BOOLEAN; + upperinf : BOOLEAN + ) : BOOLEAN; + + LOCAL + nops : INTEGER := 2; + vspc : maths_space; + dim : nonnegative_integer; + k : positive_integer; + bspc : maths_space; + END_LOCAL; + IF NOT lowerinf THEN + nops := nops + 1; + END_IF; + IF NOT upperinf THEN + nops := nops + 1; + END_IF; + IF SIZEOF( operands ) <> nops THEN + RETURN( FALSE ); + END_IF; + IF NOT ( 'GENERIC_VARIABLE' IN stripped_typeof( operands[2] ) ) THEN + RETURN( FALSE ); + END_IF; + IF NOT has_values_space( operands[2] ) THEN + RETURN( FALSE ); + END_IF; + vspc := values_space_of( operands[2] ); + IF NOT ( 'REAL_INTERVAL' IN stripped_typeof( vspc ) ) THEN + RETURN( FALSE ); + END_IF; + IF lowerinf THEN + IF min_exists( vspc ) THEN + RETURN( FALSE ); + END_IF; + k := 3; + ELSE + IF NOT has_values_space( operands[3] ) THEN + RETURN( FALSE ); + END_IF; + bspc := values_space_of( operands[3] ); + IF NOT compatible_spaces( bspc, vspc ) THEN + RETURN( FALSE ); + END_IF; + k := 4; + END_IF; + IF upperinf THEN + IF max_exists( vspc ) THEN + RETURN( FALSE ); + END_IF; + ELSE + IF NOT has_values_space( operands[k] ) THEN + RETURN( FALSE ); + END_IF; + bspc := values_space_of( operands[k] ); + IF NOT compatible_spaces( bspc, vspc ) THEN + RETURN( FALSE ); + END_IF; + END_IF; + RETURN( TRUE ); + + END_FUNCTION; + + FUNCTION definition_for_temporal_spatial_domain( + domain : temporal_spatial_domain + ) : BOOLEAN; + + LOCAL + spatial_set : SET OF spatial_decomposition_of_temporal_spatial_domain; + behavioural_set : SET OF behavioural_decomposition_of_temporal_spatial_domain; + domains : SET OF temporal_spatial_domain := []; + idealising : BAG OF idealisation_relationship; + spatial_bag : BAG OF spatial_decomposition_of_temporal_spatial_domain; + behavioural_bag : BAG OF behavioural_decomposition_of_temporal_spatial_domain; + END_LOCAL; + idealising := USEDIN( domain, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.IDEALISATION_RELATIONSHIP.IDEALISATION' ); + IF SIZEOF( idealising ) > 0 THEN + RETURN( TRUE ); + END_IF; + spatial_bag := USEDIN( domain, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'SPATIAL_DECOMPOSITION_OF_TEMPORAL_SPATIAL_DOMAIN.PARTS' ); + IF SIZEOF( spatial_bag ) > 0 THEN + spatial_set := bag_to_set( spatial_bag ); + REPEAT i := 1 TO HIINDEX( spatial_set ) BY 1; + domains := domains + spatial_set[i].whole; + END_REPEAT; + END_IF; + behavioural_bag := USEDIN( domain, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'BEHAVIOURAL_DECOMPOSITION_OF_TEMPORAL_SPATIAL_DOMAIN.PARTS' ); + IF SIZEOF( behavioural_bag ) > 0 THEN + behavioural_set := bag_to_set( behavioural_bag ); + REPEAT i := 1 TO HIINDEX( behavioural_set ) BY 1; + domains := domains + behavioural_set[i].whole; + END_REPEAT; + END_IF; + IF SIZEOF( domains ) > 0 THEN + REPEAT i := 1 TO HIINDEX( domains ) BY 1; + IF definition_for_temporal_spatial_domain( domains[i] ) THEN + RETURN( TRUE ); + END_IF; + END_REPEAT; + END_IF; + RETURN( FALSE ); + + END_FUNCTION; + + FUNCTION dependently_instantiated( + set_of_input_instances : SET OF GENERIC:igen; + set_of_input_types : SET OF STRING; + previous_in_chain : LIST 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 ); + set_of_input_types := set_of_input_types + 'GENERIC'; + REPEAT i := 1 TO number_of_input_instances BY 1; + 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 BY 1; + set_of_types := TYPEOF( bag_of_referring_instances[j] ); + IF set_of_types <= set_of_input_types THEN + 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; + ELSE + SKIP; + END_IF; + END_IF; + ELSE + dependently_instantiated_flag := TRUE; + ESCAPE; + END_IF; + END_REPEAT; + IF NOT dependently_instantiated_flag THEN + RETURN( FALSE ); + END_IF; + ELSE + RETURN( FALSE ); + END_IF; + END_REPEAT; + ELSE + RETURN( FALSE ); + END_IF; + RETURN( TRUE ); + + END_FUNCTION; + + FUNCTION derive_angle( + placement_1, 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 ) OR ( mag_v2 = 0 ) THEN + theta := 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_definite_integral_domain( + igrl : definite_integral_function + ) : tuple_space; + + FUNCTION process_product_space( + spc : product_space; + idx, prefix : INTEGER; + vdomn : maths_space + ) : product_space; + + LOCAL + uspc : uniform_product_space; + expnt : INTEGER; + factors : LIST OF maths_space; + END_LOCAL; + IF ( schema_prefix + 'UNIFORM_PRODUCT_SPACE' ) IN TYPEOF( spc ) THEN + uspc := spc; + expnt := uspc.exponent + prefix; + IF idx <= uspc.exponent THEN + expnt := expnt - 1; + END_IF; + IF expnt = 0 THEN + RETURN( make_listed_product_space( [] ) ); + ELSE + RETURN( make_uniform_product_space( uspc.base, expnt ) ); + END_IF; + ELSE + factors := spc\listed_product_space.factors; + IF idx <= SIZEOF( factors ) THEN + REMOVE( factors, idx ); + END_IF; + IF prefix > 0 THEN + INSERT( factors, vdomn, 0 ); + IF prefix > 1 THEN + INSERT( factors, vdomn, 0 ); + END_IF; + END_IF; + RETURN( make_listed_product_space( factors ) ); + END_IF; + + END_FUNCTION; + + LOCAL + idomn : tuple_space := igrl.integrand.domain; + types : SET OF STRING := TYPEOF( idomn ); + idx : INTEGER := igrl.variable_of_integration; + tupled : BOOLEAN := bool( ( space_dimension( idomn ) = 1 ) AND ( ( schema_prefix + 'TUPLE_SPACE' ) IN types ) ); + prefix : INTEGER := 0; + espc : extended_tuple_space; + vdomn : maths_space; + END_LOCAL; + IF tupled THEN + idomn := factor1( idomn ); + types := TYPEOF( idomn ); + END_IF; + IF igrl.lower_limit_neg_infinity THEN + prefix := prefix + 1; + END_IF; + IF igrl.upper_limit_pos_infinity THEN + prefix := prefix + 1; + END_IF; + vdomn := factor_space( idomn, idx ); + IF ( schema_prefix + 'EXTENDED_TUPLE_SPACE' ) IN types THEN + espc := idomn; + idomn := make_extended_tuple_space( process_product_space( espc.base, idx, prefix, vdomn ), espc.extender ); + ELSE + idomn := process_product_space( idomn, idx, prefix, vdomn ); + END_IF; + IF tupled THEN + RETURN( one_tuples_of( idomn ) ); + ELSE + RETURN( idomn ); + END_IF; + + END_FUNCTION; + + FUNCTION derive_dimensional_exponents( + x : unit + ) : dimensional_exponents; + + LOCAL + result : dimensional_exponents := dimensional_exponents( 0, 0, 0, 0, 0, 0, 0 ); + END_LOCAL; + IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.DERIVED_UNIT' IN TYPEOF( x ) THEN + REPEAT i := LOINDEX( x\derived_unit.elements ) TO HIINDEX( x\derived_unit.elements ) BY 1; + 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 derive_elementary_function_domain( + ef_val : elementary_function_enumerators + ) : tuple_space; + IF NOT EXISTS( ef_val ) THEN + RETURN( ? ); + END_IF; + CASE ef_val OF + ef_and : RETURN( make_extended_tuple_space( the_zero_tuple_space, the_logicals ) ); + ef_or : RETURN( make_extended_tuple_space( the_zero_tuple_space, the_logicals ) ); + ef_not : RETURN( make_uniform_product_space( the_logicals, 1 ) ); + ef_xor : RETURN( make_uniform_product_space( the_logicals, 2 ) ); + ef_negate_i : RETURN( make_uniform_product_space( the_integers, 1 ) ); + ef_add_i : RETURN( the_integer_tuples ); + ef_subtract_i : RETURN( make_uniform_product_space( the_integers, 2 ) ); + ef_multiply_i : RETURN( the_integer_tuples ); + ef_divide_i : RETURN( make_uniform_product_space( the_integers, 2 ) ); + ef_mod_i : RETURN( make_uniform_product_space( the_integers, 2 ) ); + ef_exponentiate_i : RETURN( make_uniform_product_space( the_integers, 2 ) ); + ef_eq_i : RETURN( make_uniform_product_space( the_integers, 2 ) ); + ef_ne_i : RETURN( make_uniform_product_space( the_integers, 2 ) ); + ef_gt_i : RETURN( make_uniform_product_space( the_integers, 2 ) ); + ef_lt_i : RETURN( make_uniform_product_space( the_integers, 2 ) ); + ef_ge_i : RETURN( make_uniform_product_space( the_integers, 2 ) ); + ef_le_i : RETURN( make_uniform_product_space( the_integers, 2 ) ); + ef_abs_i : RETURN( make_uniform_product_space( the_integers, 1 ) ); + ef_if_i : RETURN( make_listed_product_space( [the_logicals, the_integers, the_integers] ) ); + ef_negate_r : RETURN( make_uniform_product_space( the_reals, 1 ) ); + ef_reciprocal_r : RETURN( make_uniform_product_space( the_reals, 1 ) ); + ef_add_r : RETURN( the_real_tuples ); + ef_subtract_r : RETURN( make_uniform_product_space( the_reals, 2 ) ); + ef_multiply_r : RETURN( the_real_tuples ); + ef_divide_r : RETURN( make_uniform_product_space( the_reals, 2 ) ); + ef_mod_r : RETURN( make_uniform_product_space( the_reals, 2 ) ); + ef_exponentiate_r : RETURN( make_listed_product_space( [the_nonnegative_reals, the_reals] ) ); + ef_exponentiate_ri : RETURN( make_listed_product_space( [the_reals, the_integers] ) ); + ef_eq_r : RETURN( make_uniform_product_space( the_reals, 2 ) ); + ef_ne_r : RETURN( make_uniform_product_space( the_reals, 2 ) ); + ef_gt_r : RETURN( make_uniform_product_space( the_reals, 2 ) ); + ef_lt_r : RETURN( make_uniform_product_space( the_reals, 2 ) ); + ef_ge_r : RETURN( make_uniform_product_space( the_reals, 2 ) ); + ef_le_r : RETURN( make_uniform_product_space( the_reals, 2 ) ); + ef_abs_r : RETURN( make_uniform_product_space( the_reals, 1 ) ); + ef_acos_r : RETURN( make_uniform_product_space( the_neg1_one_interval, 1 ) ); + ef_asin_r : RETURN( make_uniform_product_space( the_neg1_one_interval, 1 ) ); + ef_atan2_r : RETURN( make_uniform_product_space( the_reals, 2 ) ); + ef_cos_r : RETURN( make_uniform_product_space( the_reals, 1 ) ); + ef_exp_r : RETURN( make_uniform_product_space( the_reals, 1 ) ); + ef_ln_r : RETURN( make_uniform_product_space( the_nonnegative_reals, 1 ) ); + ef_log2_r : RETURN( make_uniform_product_space( the_nonnegative_reals, 1 ) ); + ef_log10_r : RETURN( make_uniform_product_space( the_nonnegative_reals, 1 ) ); + ef_sin_r : RETURN( make_uniform_product_space( the_reals, 1 ) ); + ef_sqrt_r : RETURN( make_uniform_product_space( the_nonnegative_reals, 1 ) ); + ef_tan_r : RETURN( make_uniform_product_space( the_reals, 1 ) ); + ef_if_r : RETURN( make_listed_product_space( [the_logicals, the_reals, the_reals] ) ); + ef_negate_c : RETURN( make_uniform_product_space( the_complex_numbers, 1 ) ); + ef_reciprocal_c : RETURN( make_uniform_product_space( the_complex_numbers, 1 ) ); + ef_add_c : RETURN( the_complex_tuples ); + ef_subtract_c : RETURN( make_uniform_product_space( the_complex_numbers, 2 ) ); + ef_multiply_c : RETURN( the_complex_tuples ); + ef_divide_c : RETURN( make_uniform_product_space( the_complex_numbers, 2 ) ); + ef_exponentiate_c : RETURN( make_uniform_product_space( the_complex_numbers, 2 ) ); + ef_exponentiate_ci : RETURN( make_listed_product_space( [the_complex_numbers, the_integers] ) ); + ef_eq_c : RETURN( make_uniform_product_space( the_complex_numbers, 2 ) ); + ef_ne_c : RETURN( make_uniform_product_space( the_complex_numbers, 2 ) ); + ef_conjugate_c : RETURN( make_uniform_product_space( the_complex_numbers, 1 ) ); + ef_abs_c : RETURN( make_uniform_product_space( the_complex_numbers, 1 ) ); + ef_arg_c : RETURN( make_uniform_product_space( the_complex_numbers, 1 ) ); + ef_cos_c : RETURN( make_uniform_product_space( the_complex_numbers, 1 ) ); + ef_exp_c : RETURN( make_uniform_product_space( the_complex_numbers, 1 ) ); + ef_ln_c : RETURN( make_uniform_product_space( the_complex_numbers, 1 ) ); + ef_sin_c : RETURN( make_uniform_product_space( the_complex_numbers, 1 ) ); + ef_sqrt_c : RETURN( make_uniform_product_space( the_complex_numbers, 1 ) ); + ef_tan_c : RETURN( make_uniform_product_space( the_complex_numbers, 1 ) ); + ef_if_c : RETURN( make_listed_product_space( [the_logicals, the_complex_numbers, the_complex_numbers] ) ); + ef_subscript_s : RETURN( make_listed_product_space( [the_strings, the_integers] ) ); + ef_eq_s : RETURN( make_uniform_product_space( the_strings, 2 ) ); + ef_ne_s : RETURN( make_uniform_product_space( the_strings, 2 ) ); + ef_gt_s : RETURN( make_uniform_product_space( the_strings, 2 ) ); + ef_lt_s : RETURN( make_uniform_product_space( the_strings, 2 ) ); + ef_ge_s : RETURN( make_uniform_product_space( the_strings, 2 ) ); + ef_le_s : RETURN( make_uniform_product_space( the_strings, 2 ) ); + ef_subsequence_s : RETURN( make_listed_product_space( [the_strings, the_integers, the_integers] ) ); + ef_concat_s : RETURN( make_extended_tuple_space( the_zero_tuple_space, the_strings ) ); + ef_size_s : RETURN( make_uniform_product_space( the_strings, 1 ) ); + ef_format : RETURN( make_listed_product_space( [the_numbers, the_strings] ) ); + ef_value : RETURN( make_uniform_product_space( the_strings, 1 ) ); + ef_like : RETURN( make_uniform_product_space( the_strings, 2 ) ); + ef_if_s : RETURN( make_listed_product_space( [the_logicals, the_strings, the_strings] ) ); + ef_subscript_b : RETURN( make_listed_product_space( [the_binarys, the_integers] ) ); + ef_eq_b : RETURN( make_uniform_product_space( the_binarys, 2 ) ); + ef_ne_b : RETURN( make_uniform_product_space( the_binarys, 2 ) ); + ef_gt_b : RETURN( make_uniform_product_space( the_binarys, 2 ) ); + ef_lt_b : RETURN( make_uniform_product_space( the_binarys, 2 ) ); + ef_ge_b : RETURN( make_uniform_product_space( the_binarys, 2 ) ); + ef_le_b : RETURN( make_uniform_product_space( the_binarys, 2 ) ); + ef_subsequence_b : RETURN( make_listed_product_space( [the_binarys, the_integers, the_integers] ) ); + ef_concat_b : RETURN( make_extended_tuple_space( the_zero_tuple_space, the_binarys ) ); + ef_size_b : RETURN( make_uniform_product_space( the_binarys, 1 ) ); + ef_if_b : RETURN( make_listed_product_space( [the_logicals, the_binarys, the_binarys] ) ); + ef_subscript_t : RETURN( make_listed_product_space( [the_tuples, the_integers] ) ); + ef_eq_t : RETURN( make_uniform_product_space( the_tuples, 2 ) ); + ef_ne_t : RETURN( make_uniform_product_space( the_tuples, 2 ) ); + ef_concat_t : RETURN( make_extended_tuple_space( the_zero_tuple_space, the_tuples ) ); + ef_size_t : RETURN( make_uniform_product_space( the_tuples, 1 ) ); + ef_entuple : RETURN( the_tuples ); + ef_detuple : RETURN( make_uniform_product_space( the_generics, 1 ) ); + ef_insert : RETURN( make_listed_product_space( [the_tuples, the_generics, the_integers] ) ); + ef_remove : RETURN( make_listed_product_space( [the_tuples, the_integers] ) ); + ef_if_t : RETURN( make_listed_product_space( [the_logicals, the_tuples, the_tuples] ) ); + ef_sum_it : RETURN( make_uniform_product_space( the_integer_tuples, 1 ) ); + ef_product_it : RETURN( make_uniform_product_space( the_integer_tuples, 1 ) ); + ef_add_it : RETURN( make_extended_tuple_space( the_integer_tuples, the_integer_tuples ) ); + ef_subtract_it : RETURN( make_uniform_product_space( the_integer_tuples, 2 ) ); + ef_scalar_mult_it : RETURN( make_listed_product_space( [the_integers, the_integer_tuples] ) ); + ef_dot_prod_it : RETURN( make_uniform_product_space( the_integer_tuples, 2 ) ); + ef_sum_rt : RETURN( make_uniform_product_space( the_real_tuples, 1 ) ); + ef_product_rt : RETURN( make_uniform_product_space( the_real_tuples, 1 ) ); + ef_add_rt : RETURN( make_extended_tuple_space( the_real_tuples, the_real_tuples ) ); + ef_subtract_rt : RETURN( make_uniform_product_space( the_real_tuples, 2 ) ); + ef_scalar_mult_rt : RETURN( make_listed_product_space( [the_reals, the_real_tuples] ) ); + ef_dot_prod_rt : RETURN( make_uniform_product_space( the_real_tuples, 2 ) ); + ef_norm_rt : RETURN( make_uniform_product_space( the_real_tuples, 1 ) ); + ef_sum_ct : RETURN( make_uniform_product_space( the_complex_tuples, 1 ) ); + ef_product_ct : RETURN( make_uniform_product_space( the_complex_tuples, 1 ) ); + ef_add_ct : RETURN( make_extended_tuple_space( the_complex_tuples, the_complex_tuples ) ); + ef_subtract_ct : RETURN( make_uniform_product_space( the_complex_tuples, 2 ) ); + ef_scalar_mult_ct : RETURN( make_listed_product_space( [the_complex_numbers, the_complex_tuples] ) ); + ef_dot_prod_ct : RETURN( make_uniform_product_space( the_complex_tuples, 2 ) ); + ef_norm_ct : RETURN( make_uniform_product_space( the_complex_tuples, 1 ) ); + ef_if : RETURN( make_listed_product_space( [the_logicals, the_generics, the_generics] ) ); + ef_ensemble : RETURN( the_tuples ); + ef_member_of : RETURN( make_listed_product_space( [the_generics, the_maths_spaces] ) ); + OTHERWISE : RETURN( ? ); + END_CASE; + + END_FUNCTION; + + FUNCTION derive_elementary_function_range( + ef_val : elementary_function_enumerators + ) : tuple_space; + IF NOT EXISTS( ef_val ) THEN + RETURN( ? ); + END_IF; + CASE ef_val OF + ef_and : RETURN( make_uniform_product_space( the_logicals, 1 ) ); + ef_or : RETURN( make_uniform_product_space( the_logicals, 1 ) ); + ef_not : RETURN( make_uniform_product_space( the_logicals, 1 ) ); + ef_xor : RETURN( make_uniform_product_space( the_logicals, 2 ) ); + ef_negate_i : RETURN( make_uniform_product_space( the_integers, 1 ) ); + ef_add_i : RETURN( make_uniform_product_space( the_integers, 1 ) ); + ef_subtract_i : RETURN( make_uniform_product_space( the_integers, 1 ) ); + ef_multiply_i : RETURN( make_uniform_product_space( the_integers, 1 ) ); + ef_divide_i : RETURN( make_uniform_product_space( the_integers, 1 ) ); + ef_mod_i : RETURN( make_uniform_product_space( the_integers, 1 ) ); + ef_exponentiate_i : RETURN( make_uniform_product_space( the_integers, 1 ) ); + ef_eq_i : RETURN( make_uniform_product_space( the_logicals, 1 ) ); + ef_ne_i : RETURN( make_uniform_product_space( the_logicals, 1 ) ); + ef_gt_i : RETURN( make_uniform_product_space( the_logicals, 1 ) ); + ef_lt_i : RETURN( make_uniform_product_space( the_logicals, 1 ) ); + ef_ge_i : RETURN( make_uniform_product_space( the_logicals, 1 ) ); + ef_le_i : RETURN( make_uniform_product_space( the_logicals, 1 ) ); + ef_abs_i : RETURN( make_uniform_product_space( the_integers, 1 ) ); + ef_if_i : RETURN( make_uniform_product_space( the_integers, 1 ) ); + ef_negate_r : RETURN( make_uniform_product_space( the_reals, 1 ) ); + ef_reciprocal_r : RETURN( make_uniform_product_space( the_reals, 1 ) ); + ef_add_r : RETURN( make_uniform_product_space( the_reals, 1 ) ); + ef_subtract_r : RETURN( make_uniform_product_space( the_reals, 1 ) ); + ef_multiply_r : RETURN( make_uniform_product_space( the_reals, 1 ) ); + ef_divide_r : RETURN( make_uniform_product_space( the_reals, 1 ) ); + ef_mod_r : RETURN( make_uniform_product_space( the_reals, 1 ) ); + ef_exponentiate_r : RETURN( make_uniform_product_space( the_reals, 1 ) ); + ef_exponentiate_ri : RETURN( make_uniform_product_space( the_reals, 1 ) ); + ef_eq_r : RETURN( make_uniform_product_space( the_logicals, 1 ) ); + ef_ne_r : RETURN( make_uniform_product_space( the_logicals, 1 ) ); + ef_gt_r : RETURN( make_uniform_product_space( the_logicals, 1 ) ); + ef_lt_r : RETURN( make_uniform_product_space( the_logicals, 1 ) ); + ef_ge_r : RETURN( make_uniform_product_space( the_logicals, 1 ) ); + ef_le_r : RETURN( make_uniform_product_space( the_logicals, 1 ) ); + ef_abs_r : RETURN( make_uniform_product_space( the_nonnegative_reals, 1 ) ); + ef_acos_r : RETURN( make_uniform_product_space( the_zero_pi_interval, 1 ) ); + ef_asin_r : RETURN( make_uniform_product_space( the_neghalfpi_halfpi_interval, 1 ) ); + ef_atan2_r : RETURN( make_uniform_product_space( the_negpi_pi_interval, 1 ) ); + ef_cos_r : RETURN( make_uniform_product_space( the_neg1_one_interval, 1 ) ); + ef_exp_r : RETURN( make_uniform_product_space( the_nonnegative_reals, 1 ) ); + ef_ln_r : RETURN( make_uniform_product_space( the_reals, 1 ) ); + ef_log2_r : RETURN( make_uniform_product_space( the_reals, 1 ) ); + ef_log10_r : RETURN( make_uniform_product_space( the_reals, 1 ) ); + ef_sin_r : RETURN( make_uniform_product_space( the_neg1_one_interval, 1 ) ); + ef_sqrt_r : RETURN( make_uniform_product_space( the_nonnegative_reals, 1 ) ); + ef_tan_r : RETURN( make_uniform_product_space( the_reals, 1 ) ); + ef_if_r : RETURN( make_uniform_product_space( the_reals, 1 ) ); + ef_negate_c : RETURN( make_uniform_product_space( the_complex_numbers, 1 ) ); + ef_reciprocal_c : RETURN( make_uniform_product_space( the_complex_numbers, 1 ) ); + ef_add_c : RETURN( make_uniform_product_space( the_complex_numbers, 1 ) ); + ef_subtract_c : RETURN( make_uniform_product_space( the_complex_numbers, 1 ) ); + ef_multiply_c : RETURN( make_uniform_product_space( the_complex_numbers, 1 ) ); + ef_divide_c : RETURN( make_uniform_product_space( the_complex_numbers, 1 ) ); + ef_exponentiate_c : RETURN( make_uniform_product_space( the_complex_numbers, 1 ) ); + ef_exponentiate_ci : RETURN( make_uniform_product_space( the_complex_numbers, 1 ) ); + ef_eq_c : RETURN( make_uniform_product_space( the_logicals, 1 ) ); + ef_ne_c : RETURN( make_uniform_product_space( the_logicals, 1 ) ); + ef_conjugate_c : RETURN( make_uniform_product_space( the_complex_numbers, 1 ) ); + ef_abs_c : RETURN( make_uniform_product_space( the_nonnegative_reals, 1 ) ); + ef_arg_c : RETURN( make_uniform_product_space( the_negpi_pi_interval, 1 ) ); + ef_cos_c : RETURN( make_uniform_product_space( the_complex_numbers, 1 ) ); + ef_exp_c : RETURN( make_uniform_product_space( the_complex_numbers, 1 ) ); + ef_ln_c : RETURN( make_uniform_product_space( the_complex_numbers, 1 ) ); + ef_sin_c : RETURN( make_uniform_product_space( the_complex_numbers, 1 ) ); + ef_sqrt_c : RETURN( make_uniform_product_space( the_complex_numbers, 1 ) ); + ef_tan_c : RETURN( make_uniform_product_space( the_complex_numbers, 1 ) ); + ef_if_c : RETURN( make_uniform_product_space( the_complex_numbers, 1 ) ); + ef_subscript_s : RETURN( make_uniform_product_space( the_strings, 1 ) ); + ef_eq_s : RETURN( make_uniform_product_space( the_logicals, 1 ) ); + ef_ne_s : RETURN( make_uniform_product_space( the_logicals, 1 ) ); + ef_gt_s : RETURN( make_uniform_product_space( the_logicals, 1 ) ); + ef_lt_s : RETURN( make_uniform_product_space( the_logicals, 1 ) ); + ef_ge_s : RETURN( make_uniform_product_space( the_logicals, 1 ) ); + ef_le_s : RETURN( make_uniform_product_space( the_logicals, 1 ) ); + ef_subsequence_s : RETURN( make_uniform_product_space( the_strings, 1 ) ); + ef_concat_s : RETURN( make_uniform_product_space( the_strings, 1 ) ); + ef_size_s : RETURN( make_uniform_product_space( the_integers, 1 ) ); + ef_format : RETURN( make_uniform_product_space( the_strings, 1 ) ); + ef_value : RETURN( make_uniform_product_space( the_reals, 1 ) ); + ef_like : RETURN( make_uniform_product_space( the_booleans, 1 ) ); + ef_if_s : RETURN( make_uniform_product_space( the_strings, 1 ) ); + ef_subscript_b : RETURN( make_uniform_product_space( the_binarys, 1 ) ); + ef_eq_b : RETURN( make_uniform_product_space( the_logicals, 1 ) ); + ef_ne_b : RETURN( make_uniform_product_space( the_logicals, 1 ) ); + ef_gt_b : RETURN( make_uniform_product_space( the_logicals, 1 ) ); + ef_lt_b : RETURN( make_uniform_product_space( the_logicals, 1 ) ); + ef_ge_b : RETURN( make_uniform_product_space( the_logicals, 1 ) ); + ef_le_b : RETURN( make_uniform_product_space( the_logicals, 1 ) ); + ef_subsequence_b : RETURN( make_uniform_product_space( the_binarys, 1 ) ); + ef_concat_b : RETURN( make_uniform_product_space( the_binarys, 1 ) ); + ef_size_b : RETURN( make_uniform_product_space( the_integers, 1 ) ); + ef_if_b : RETURN( make_uniform_product_space( the_binarys, 1 ) ); + ef_subscript_t : RETURN( make_uniform_product_space( the_generics, 1 ) ); + ef_eq_t : RETURN( make_uniform_product_space( the_logicals, 1 ) ); + ef_ne_t : RETURN( make_uniform_product_space( the_logicals, 1 ) ); + ef_concat_t : RETURN( make_uniform_product_space( the_tuples, 1 ) ); + ef_size_t : RETURN( make_uniform_product_space( the_integers, 1 ) ); + ef_entuple : RETURN( make_uniform_product_space( the_tuples, 1 ) ); + ef_detuple : RETURN( the_tuples ); + ef_insert : RETURN( make_uniform_product_space( the_tuples, 1 ) ); + ef_remove : RETURN( make_uniform_product_space( the_tuples, 1 ) ); + ef_if_t : RETURN( make_uniform_product_space( the_tuples, 1 ) ); + ef_sum_it : RETURN( make_uniform_product_space( the_integers, 1 ) ); + ef_product_it : RETURN( make_uniform_product_space( the_integers, 1 ) ); + ef_add_it : RETURN( make_uniform_product_space( the_integer_tuples, 1 ) ); + ef_subtract_it : RETURN( make_uniform_product_space( the_integer_tuples, 1 ) ); + ef_scalar_mult_it : RETURN( make_uniform_product_space( the_integer_tuples, 1 ) ); + ef_dot_prod_it : RETURN( make_uniform_product_space( the_integers, 1 ) ); + ef_sum_rt : RETURN( make_uniform_product_space( the_reals, 1 ) ); + ef_product_rt : RETURN( make_uniform_product_space( the_reals, 1 ) ); + ef_add_rt : RETURN( make_uniform_product_space( the_real_tuples, 1 ) ); + ef_subtract_rt : RETURN( make_uniform_product_space( the_real_tuples, 1 ) ); + ef_scalar_mult_rt : RETURN( make_uniform_product_space( the_real_tuples, 1 ) ); + ef_dot_prod_rt : RETURN( make_uniform_product_space( the_reals, 1 ) ); + ef_norm_rt : RETURN( make_uniform_product_space( the_reals, 1 ) ); + ef_sum_ct : RETURN( make_uniform_product_space( the_complex_numbers, 1 ) ); + ef_product_ct : RETURN( make_uniform_product_space( the_complex_numbers, 1 ) ); + ef_add_ct : RETURN( make_uniform_product_space( the_complex_tuples, 1 ) ); + ef_subtract_ct : RETURN( make_uniform_product_space( the_complex_tuples, 1 ) ); + ef_scalar_mult_ct : RETURN( make_uniform_product_space( the_complex_tuples, 1 ) ); + ef_dot_prod_ct : RETURN( make_uniform_product_space( the_complex_numbers, 1 ) ); + ef_norm_ct : RETURN( make_uniform_product_space( the_nonnegative_reals, 1 ) ); + ef_if : RETURN( make_uniform_product_space( the_generics, 1 ) ); + ef_ensemble : RETURN( make_uniform_product_space( the_maths_spaces, 1 ) ); + ef_member_of : RETURN( make_uniform_product_space( the_logicals, 1 ) ); + OTHERWISE : RETURN( ? ); + END_CASE; + + END_FUNCTION; + + FUNCTION derive_finite_function_domain( + pairs : SET [1 : ?] OF LIST [2 : 2] OF maths_value + ) : tuple_space; + + LOCAL + result : SET OF maths_value := []; + END_LOCAL; + result := result + list_selected_components( pairs, 1 ); + RETURN( one_tuples_of( make_finite_space( result ) ) ); + + END_FUNCTION; + + FUNCTION derive_finite_function_range( + pairs : SET [1 : ?] OF LIST [2 : 2] OF maths_value + ) : tuple_space; + + LOCAL + result : SET OF maths_value := []; + END_LOCAL; + result := result + list_selected_components( pairs, 2 ); + RETURN( one_tuples_of( make_finite_space( result ) ) ); + + END_FUNCTION; + + FUNCTION derive_function_domain( + func : maths_function + ) : tuple_space; + + LOCAL + typenames : SET OF STRING := stripped_typeof( func ); + tspace : tuple_space := make_listed_product_space( [] ); + shape : LIST OF positive_integer; + sidxs : LIST OF INTEGER := [0]; + itvl : finite_integer_interval; + factors : LIST OF finite_integer_interval := []; + is_uniform : BOOLEAN := TRUE; + END_LOCAL; + IF 'FINITE_FUNCTION' IN typenames THEN + RETURN( derive_finite_function_domain( func\finite_function.pairs ) ); + END_IF; + IF 'CONSTANT_FUNCTION' IN typenames THEN + RETURN( domain_from( func\constant_function.source_of_domain ) ); + END_IF; + IF 'SELECTOR_FUNCTION' IN typenames THEN + RETURN( domain_from( func\selector_function.source_of_domain ) ); + END_IF; + IF 'ELEMENTARY_FUNCTION' IN typenames THEN + RETURN( derive_elementary_function_domain( func\elementary_function.func_id ) ); + END_IF; + IF 'RESTRICTION_FUNCTION' IN typenames THEN + RETURN( one_tuples_of( func\restriction_function.operand ) ); + END_IF; + IF 'REPACKAGING_FUNCTION' IN typenames THEN + IF func\repackaging_function.input_repack = ro_nochange THEN + RETURN( func\repackaging_function.operand.domain ); + END_IF; + IF func\repackaging_function.input_repack = ro_wrap_as_tuple THEN + RETURN( factor1( func\repackaging_function.operand.domain ) ); + END_IF; + IF func\repackaging_function.input_repack = ro_unwrap_tuple THEN + RETURN( one_tuples_of( func\repackaging_function.operand.domain ) ); + END_IF; + RETURN( ? ); + END_IF; + IF 'REINDEXED_ARRAY_FUNCTION' IN typenames THEN + shape := shape_of_array( func\unary_generic_expression.operand ); + sidxs := func\reindexed_array_function.starting_indices; + REPEAT i := 1 TO SIZEOF( shape ) BY 1; + itvl := make_finite_integer_interval( sidxs[i], ( sidxs[i] + shape[i] ) - 1 ); + INSERT( factors, itvl, i - 1 ); + IF shape[i] <> shape[1] THEN + is_uniform := FALSE; + END_IF; + END_REPEAT; + IF is_uniform THEN + RETURN( make_uniform_product_space( factors[1], SIZEOF( shape ) ) ); + END_IF; + RETURN( make_listed_product_space( factors ) ); + END_IF; + IF 'SERIES_COMPOSED_FUNCTION' IN typenames THEN + RETURN( func\series_composed_function.operands[1].domain ); + END_IF; + IF 'PARALLEL_COMPOSED_FUNCTION' IN typenames THEN + RETURN( domain_from( func\parallel_composed_function.source_of_domain ) ); + END_IF; + IF 'EXPLICIT_TABLE_FUNCTION' IN typenames THEN + shape := func\explicit_table_function.shape; + sidxs[1] := func\explicit_table_function.index_base; + REPEAT i := 1 TO SIZEOF( shape ) BY 1; + itvl := make_finite_integer_interval( sidxs[1], ( sidxs[1] + shape[i] ) - 1 ); + INSERT( factors, itvl, i - 1 ); + IF shape[i] <> shape[1] THEN + is_uniform := FALSE; + END_IF; + END_REPEAT; + IF is_uniform THEN + RETURN( make_uniform_product_space( factors[1], SIZEOF( shape ) ) ); + END_IF; + RETURN( make_listed_product_space( factors ) ); + END_IF; + IF 'HOMOGENEOUS_LINEAR_FUNCTION' IN typenames THEN + RETURN( one_tuples_of( make_uniform_product_space( factor1( func\homogeneous_linear_function.mat.range ), func\ + homogeneous_linear_function.mat\explicit_table_function.shape[func\homogeneous_linear_function.sum_index] ) ) ); + END_IF; + IF 'GENERAL_LINEAR_FUNCTION' IN typenames THEN + RETURN( one_tuples_of( make_uniform_product_space( factor1( func\general_linear_function.mat.range ), func\ + general_linear_function.mat\explicit_table_function.shape[func\general_linear_function.sum_index] - 1 ) ) ); + END_IF; + IF 'B_SPLINE_BASIS' IN typenames THEN + RETURN( one_tuples_of( make_finite_real_interval( func\b_spline_basis.repeated_knots[func\b_spline_basis.order], closed, + func\b_spline_basis.repeated_knots[func\b_spline_basis.num_basis + 1], closed ) ) ); + END_IF; + IF 'B_SPLINE_FUNCTION' IN typenames THEN + REPEAT i := 1 TO SIZEOF( func\b_spline_function.basis ) BY 1; + tspace := assoc_product_space( tspace, func\b_spline_function.basis[i].domain ); + END_REPEAT; + RETURN( one_tuples_of( tspace ) ); + END_IF; + IF 'RATIONALIZE_FUNCTION' IN typenames THEN + RETURN( func\rationalize_function.fun.domain ); + END_IF; + IF 'PARTIAL_DERIVATIVE_FUNCTION' IN typenames THEN + RETURN( func\partial_derivative_function.derivand.domain ); + END_IF; + IF 'DEFINITE_INTEGRAL_FUNCTION' IN typenames THEN + RETURN( derive_definite_integral_domain( func ) ); + END_IF; + IF 'ABSTRACTED_EXPRESSION_FUNCTION' IN typenames THEN + REPEAT i := 1 TO SIZEOF( func\abstracted_expression_function.variables ) BY 1; + tspace := assoc_product_space( tspace, one_tuples_of( values_space_of( func\abstracted_expression_function.variables[i] ) ) ); + END_REPEAT; + RETURN( tspace ); + END_IF; + IF 'EXPRESSION_DENOTED_FUNCTION' IN typenames THEN + RETURN( values_space_of( func\expression_denoted_function.expr )\function_space.domain_argument ); + END_IF; + IF 'IMPORTED_POINT_FUNCTION' IN typenames THEN + RETURN( one_tuples_of( make_listed_product_space( [] ) ) ); + END_IF; + IF 'IMPORTED_CURVE_FUNCTION' IN typenames THEN + RETURN( func\imported_curve_function.parametric_domain ); + END_IF; + IF 'IMPORTED_SURFACE_FUNCTION' IN typenames THEN + RETURN( func\imported_surface_function.parametric_domain ); + END_IF; + IF 'IMPORTED_VOLUME_FUNCTION' IN typenames THEN + RETURN( func\imported_volume_function.parametric_domain ); + END_IF; + IF 'APPLICATION_DEFINED_FUNCTION' IN typenames THEN + RETURN( func\application_defined_function.explicit_domain ); + END_IF; + RETURN( ? ); + + END_FUNCTION; + + FUNCTION derive_function_range( + func : maths_function + ) : tuple_space; + + LOCAL + typenames : SET OF STRING := stripped_typeof( func ); + tspace : tuple_space := make_listed_product_space( [] ); + m : nonnegative_integer := 0; + n : nonnegative_integer := 0; + temp : INTEGER := 0; + END_LOCAL; + IF 'FINITE_FUNCTION' IN typenames THEN + RETURN( derive_finite_function_range( func\finite_function.pairs ) ); + END_IF; + IF 'CONSTANT_FUNCTION' IN typenames THEN + RETURN( one_tuples_of( make_finite_space( [func\constant_function.sole_output] ) ) ); + END_IF; + IF 'SELECTOR_FUNCTION' IN typenames THEN + tspace := func.domain; + IF ( space_dimension( tspace ) = 1 ) AND ( ( schema_prefix + 'TUPLE_SPACE' ) IN TYPEOF( tspace ) ) THEN + tspace := factor1( tspace ); + END_IF; + RETURN( one_tuples_of( factor_space( tspace, func\selector_function.selector ) ) ); + END_IF; + IF 'ELEMENTARY_FUNCTION' IN typenames THEN + RETURN( derive_elementary_function_range( func\elementary_function.func_id ) ); + END_IF; + IF 'RESTRICTION_FUNCTION' IN typenames THEN + RETURN( one_tuples_of( func\restriction_function.operand ) ); + END_IF; + IF 'REPACKAGING_FUNCTION' IN typenames THEN + tspace := func\repackaging_function.operand.range; + IF func\repackaging_function.output_repack = ro_wrap_as_tuple THEN + tspace := one_tuples_of( tspace ); + END_IF; + IF func\repackaging_function.output_repack = ro_unwrap_tuple THEN + tspace := factor1( tspace ); + END_IF; + IF func\repackaging_function.selected_output > 0 THEN + tspace := one_tuples_of( factor_space( tspace, func\repackaging_function.selected_output ) ); + END_IF; + RETURN( tspace ); + END_IF; + IF 'REINDEXED_ARRAY_FUNCTION' IN typenames THEN + RETURN( func\unary_generic_expression.operand\maths_function.range ); + END_IF; + IF 'SERIES_COMPOSED_FUNCTION' IN typenames THEN + RETURN( func\series_composed_function.operands[SIZEOF( func\series_composed_function.operands )].range ); + END_IF; + IF 'PARALLEL_COMPOSED_FUNCTION' IN typenames THEN + RETURN( func\parallel_composed_function.final_function.range ); + END_IF; + IF 'EXPLICIT_TABLE_FUNCTION' IN typenames THEN + IF 'LISTED_REAL_DATA' IN typenames THEN + RETURN( one_tuples_of( the_reals ) ); + END_IF; + IF 'LISTED_INTEGER_DATA' IN typenames THEN + RETURN( one_tuples_of( the_integers ) ); + END_IF; + IF 'LISTED_LOGICAL_DATA' IN typenames THEN + RETURN( one_tuples_of( the_logicals ) ); + END_IF; + IF 'LISTED_STRING_DATA' IN typenames THEN + RETURN( one_tuples_of( the_strings ) ); + END_IF; + IF 'LISTED_COMPLEX_NUMBER_DATA' IN typenames THEN + RETURN( one_tuples_of( the_complex_numbers ) ); + END_IF; + IF 'LISTED_DATA' IN typenames THEN + RETURN( one_tuples_of( func\listed_data.value_range ) ); + END_IF; + IF 'EXTERNALLY_LISTED_DATA' IN typenames THEN + RETURN( one_tuples_of( func\externally_listed_data.value_range ) ); + END_IF; + IF 'LINEARIZED_TABLE_FUNCTION' IN typenames THEN + RETURN( func\linearized_table_function.source.range ); + END_IF; + IF 'BASIC_SPARSE_MATRIX' IN typenames THEN + RETURN( func\basic_sparse_matrix.val.range ); + END_IF; + RETURN( ? ); + END_IF; + IF 'HOMOGENEOUS_LINEAR_FUNCTION' IN typenames THEN + RETURN( one_tuples_of( make_uniform_product_space( factor1( func\homogeneous_linear_function.mat.range ), func\ + homogeneous_linear_function.mat\explicit_table_function.shape[3 - func\homogeneous_linear_function.sum_index] ) ) ); + END_IF; + IF 'GENERAL_LINEAR_FUNCTION' IN typenames THEN + RETURN( one_tuples_of( make_uniform_product_space( factor1( func\general_linear_function.mat.range ), func\ + general_linear_function.mat\explicit_table_function.shape[3 - func\general_linear_function.sum_index] ) ) ); + END_IF; + IF 'B_SPLINE_BASIS' IN typenames THEN + RETURN( one_tuples_of( make_uniform_product_space( the_reals, func\b_spline_basis.num_basis ) ) ); + END_IF; + IF 'B_SPLINE_FUNCTION' IN typenames THEN + tspace := factor1( func\b_spline_function.coef.domain ); + m := SIZEOF( func\b_spline_function.basis ); + n := space_dimension( tspace ); + IF m = n THEN + RETURN( one_tuples_of( the_reals ) ); + END_IF; + IF m = ( n - 1 ) THEN + RETURN( one_tuples_of( make_uniform_product_space( the_reals, factor_space( tspace, n )\finite_integer_interval.size ) ) ); + END_IF; + tspace := extract_factors( tspace, m + 1, n ); + RETURN( one_tuples_of( make_function_space( sc_equal, tspace, sc_subspace, number_superspace_of( func\b_spline_function. + coef.range ) ) ) ); + END_IF; + IF 'RATIONALIZE_FUNCTION' IN typenames THEN + tspace := factor1( func\rationalize_function.fun.range ); + n := space_dimension( tspace ); + RETURN( one_tuples_of( make_uniform_product_space( number_superspace_of( factor1( tspace ) ), n - 1 ) ) ); + END_IF; + IF 'PARTIAL_DERIVATIVE_FUNCTION' IN typenames THEN + RETURN( drop_numeric_constraints( func\partial_derivative_function.derivand.range ) ); + END_IF; + IF 'DEFINITE_INTEGRAL_FUNCTION' IN typenames THEN + RETURN( drop_numeric_constraints( func\definite_integral_function.integrand.range ) ); + END_IF; + IF 'ABSTRACTED_EXPRESSION_FUNCTION' IN typenames THEN + RETURN( one_tuples_of( values_space_of( func\abstracted_expression_function.expr ) ) ); + END_IF; + IF 'EXPRESSION_DENOTED_FUNCTION' IN typenames THEN + RETURN( values_space_of( func\expression_denoted_function.expr )\function_space.range_argument ); + END_IF; + IF 'IMPORTED_POINT_FUNCTION' IN typenames THEN + temp := dimension_of( func\imported_point_function.geometry ); + RETURN( one_tuples_of( make_uniform_product_space( the_reals, temp ) ) ); + END_IF; + IF 'IMPORTED_CURVE_FUNCTION' IN typenames THEN + temp := dimension_of( func\imported_curve_function.geometry ); + RETURN( one_tuples_of( make_uniform_product_space( the_reals, temp ) ) ); + END_IF; + IF 'IMPORTED_SURFACE_FUNCTION' IN typenames THEN + temp := dimension_of( func\imported_surface_function.geometry ); + RETURN( one_tuples_of( make_uniform_product_space( the_reals, temp ) ) ); + END_IF; + IF 'IMPORTED_VOLUME_FUNCTION' IN typenames THEN + temp := dimension_of( func\imported_volume_function.geometry ); + RETURN( one_tuples_of( make_uniform_product_space( the_reals, temp ) ) ); + END_IF; + IF 'APPLICATION_DEFINED_FUNCTION' IN typenames THEN + RETURN( func\application_defined_function.explicit_range ); + END_IF; + RETURN( ? ); + + END_FUNCTION; + + FUNCTION dimension_of( + item : geometric_representation_item + ) : dimension_count; + + LOCAL + x : SET OF representation; + y : representation_context; + dim : dimension_count; + END_LOCAL; + IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CARTESIAN_POINT' IN TYPEOF( item ) THEN + dim := SIZEOF( item\cartesian_point.coordinates ); + RETURN( dim ); + END_IF; + IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.DIRECTION' IN TYPEOF( item ) THEN + dim := SIZEOF( item\direction.direction_ratios ); + RETURN( dim ); + END_IF; + IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.VECTOR' IN TYPEOF( item ) THEN + dim := SIZEOF( item\vector.orientation\direction.direction_ratios ); + RETURN( dim ); + END_IF; + x := using_representations( item ); + IF SIZEOF( x ) > 0 THEN + y := x[1].context_of_items; + dim := y\geometric_representation_context.coordinate_space_dimension; + RETURN( dim ); + ELSE + RETURN( ? ); + END_IF; + + 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 ) ); + gram : RETURN( dimensional_exponents( 0, 1, 0, 0, 0, 0, 0 ) ); + second : RETURN( dimensional_exponents( 0, 0, 1, 0, 0, 0, 0 ) ); + ampere : RETURN( dimensional_exponents( 0, 0, 0, 1, 0, 0, 0 ) ); + kelvin : RETURN( dimensional_exponents( 0, 0, 0, 0, 1, 0, 0 ) ); + mole : RETURN( dimensional_exponents( 0, 0, 0, 0, 0, 1, 0 ) ); + candela : RETURN( dimensional_exponents( 0, 0, 0, 0, 0, 0, 1 ) ); + radian : RETURN( dimensional_exponents( 0, 0, 0, 0, 0, 0, 0 ) ); + steradian : RETURN( dimensional_exponents( 0, 0, 0, 0, 0, 0, 0 ) ); + hertz : RETURN( dimensional_exponents( 0, 0, -1, 0, 0, 0, 0 ) ); + newton : RETURN( dimensional_exponents( 1, 1, -2, 0, 0, 0, 0 ) ); + pascal : RETURN( dimensional_exponents( -1, 1, -2, 0, 0, 0, 0 ) ); + joule : RETURN( dimensional_exponents( 2, 1, -2, 0, 0, 0, 0 ) ); + watt : RETURN( dimensional_exponents( 2, 1, -3, 0, 0, 0, 0 ) ); + coulomb : RETURN( dimensional_exponents( 0, 0, 1, 1, 0, 0, 0 ) ); + volt : RETURN( dimensional_exponents( 2, 1, -3, -1, 0, 0, 0 ) ); + farad : RETURN( dimensional_exponents( -2, -1, 4, 2, 0, 0, 0 ) ); + ohm : RETURN( dimensional_exponents( 2, 1, -3, -2, 0, 0, 0 ) ); + siemens : RETURN( dimensional_exponents( -2, -1, 3, 2, 0, 0, 0 ) ); + weber : RETURN( dimensional_exponents( 2, 1, -2, -1, 0, 0, 0 ) ); + tesla : RETURN( dimensional_exponents( 0, 1, -2, -1, 0, 0, 0 ) ); + henry : RETURN( dimensional_exponents( 2, 1, -2, -2, 0, 0, 0 ) ); + degree_celsius : RETURN( dimensional_exponents( 0, 0, 0, 0, 1, 0, 0 ) ); + lumen : RETURN( dimensional_exponents( 0, 0, 0, 0, 0, 0, 1 ) ); + lux : RETURN( dimensional_exponents( -2, 0, 0, 0, 0, 0, 1 ) ); + becquerel : RETURN( dimensional_exponents( 0, 0, -1, 0, 0, 0, 0 ) ); + gray : RETURN( dimensional_exponents( 2, 0, -2, 0, 0, 0, 0 ) ); + sievert : RETURN( dimensional_exponents( 2, 0, -2, 0, 0, 0, 0 ) ); + OTHERWISE : RETURN( ? ); + END_CASE; + + END_FUNCTION; + + FUNCTION domain_from( + ref : maths_space_or_function + ) : tuple_space; + + LOCAL + typenames : SET OF STRING := stripped_typeof( ref ); + func : maths_function; + END_LOCAL; + IF NOT EXISTS( ref ) THEN + RETURN( ? ); + END_IF; + IF 'TUPLE_SPACE' IN typenames THEN + RETURN( ref ); + END_IF; + IF 'MATHS_SPACE' IN typenames THEN + RETURN( one_tuples_of( ref ) ); + END_IF; + func := ref; + IF 'CONSTANT_FUNCTION' IN typenames THEN + RETURN( domain_from( func\constant_function.source_of_domain ) ); + END_IF; + IF 'SELECTOR_FUNCTION' IN typenames THEN + RETURN( domain_from( func\selector_function.source_of_domain ) ); + END_IF; + IF 'PARALLEL_COMPOSED_FUNCTION' IN typenames THEN + RETURN( domain_from( func\parallel_composed_function.source_of_domain ) ); + END_IF; + RETURN( func.domain ); + + END_FUNCTION; + + FUNCTION dot_count( + str : STRING + ) : INTEGER; + + LOCAL + n : INTEGER := 0; + END_LOCAL; + REPEAT i := 1 TO LENGTH( str ) BY 1; + IF str[i] = '.' THEN + n := n + 1; + END_IF; + END_REPEAT; + RETURN( n ); + + END_FUNCTION; + + FUNCTION dot_product( + arg1, arg2 : direction + ) : REAL; + + LOCAL + scalar : REAL; + vec1 : direction; + vec2 : direction; + ndim : INTEGER; + END_LOCAL; + IF ( NOT EXISTS( arg1 ) ) OR ( NOT EXISTS( arg2 ) ) THEN + scalar := ?; + ELSE + IF arg1.dim <> arg2.dim THEN + scalar := ?; + ELSE + + BEGIN + vec1 := normalise( arg1 ); + vec2 := normalise( arg2 ); + ndim := arg1.dim; + scalar := 0; + REPEAT i := 1 TO ndim BY 1; + scalar := scalar + ( vec1.direction_ratios[i] * vec2.direction_ratios[i] ); + END_REPEAT; + END; + END_IF; + END_IF; + RETURN( scalar ); + + END_FUNCTION; + + FUNCTION dotted_identifiers_syntax( + str : STRING + ) : BOOLEAN; + + LOCAL + k : positive_integer; + m : positive_integer; + END_LOCAL; + IF NOT EXISTS( str ) THEN + RETURN( FALSE ); + END_IF; + k := parse_express_identifier( str, 1 ); + IF k = 1 THEN + RETURN( FALSE ); + END_IF; + REPEAT WHILE k <= LENGTH( str ); + IF ( str[k] <> '.' ) OR ( k = LENGTH( str ) ) THEN + RETURN( FALSE ); + END_IF; + m := parse_express_identifier( str, k + 1 ); + IF m = ( k + 1 ) THEN + RETURN( FALSE ); + END_IF; + k := m; + END_REPEAT; + RETURN( TRUE ); + + END_FUNCTION; + + FUNCTION drop_numeric_constraints( + spc : maths_space + ) : maths_space; + + LOCAL + typenames : SET OF STRING := stripped_typeof( spc ); + tspc : listed_product_space; + factors : LIST OF maths_space := []; + xspc : extended_tuple_space; + END_LOCAL; + IF 'UNIFORM_PRODUCT_SPACE' IN typenames THEN + RETURN( make_uniform_product_space( drop_numeric_constraints( spc\uniform_product_space.base ), spc\uniform_product_space. + exponent ) ); + END_IF; + IF 'LISTED_PRODUCT_SPACE' IN typenames THEN + tspc := spc; + REPEAT i := 1 TO SIZEOF( tspc.factors ) BY 1; + INSERT( factors, drop_numeric_constraints( tspc.factors[i] ), i - 1 ); + END_REPEAT; + RETURN( make_listed_product_space( factors ) ); + END_IF; + IF 'EXTENDED_TUPLE_SPACE' IN typenames THEN + xspc := spc; + RETURN( make_extended_tuple_space( drop_numeric_constraints( xspc.base ), drop_numeric_constraints( xspc.extender ) ) ); + END_IF; + IF subspace_of_es( spc, es_numbers ) THEN + RETURN( number_superspace_of( spc ) ); + END_IF; + RETURN( spc ); + + END_FUNCTION; + + FUNCTION duration_is_negative( + duration : time_measure_with_unit + ) : BOOLEAN; + IF duration\measure_with_unit.value_component < 0 THEN + RETURN( TRUE ); + ELSE + RETURN( FALSE ); + END_IF; + + END_FUNCTION; + + FUNCTION duration_is_positive( + duration : time_measure_with_unit + ) : BOOLEAN; + IF duration\measure_with_unit.value_component > 0 THEN + RETURN( TRUE ); + ELSE + RETURN( FALSE ); + END_IF; + + END_FUNCTION; + + FUNCTION edge_reversed( + an_edge : edge + ) : oriented_edge; + + LOCAL + the_reverse : oriented_edge; + END_LOCAL; + IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 enclose_cregion_in_pregion( + crgn : cartesian_complex_number_region; + centre : complex_number_literal + ) : polar_complex_number_region; + + FUNCTION angle( + a : REAL + ) : REAL; + REPEAT WHILE a > PI; + a := a - ( 2 * PI ); + END_REPEAT; + REPEAT WHILE a <= ( -PI ); + a := a + ( 2 * PI ); + END_REPEAT; + RETURN( a ); + + END_FUNCTION; + + FUNCTION strictly_in( + z : REAL; + zitv : real_interval + ) : LOGICAL; + RETURN( ( ( NOT min_exists( zitv ) ) OR ( z > real_min( zitv ) ) ) AND ( ( NOT max_exists( zitv ) ) OR ( z < real_max( zitv ) ) ) ); + + END_FUNCTION; + + PROCEDURE angle_minmax( + ab, a : REAL; + a_in : BOOLEAN; + VAR amin, amax : REAL; + VAR amin_in, amax_in : BOOLEAN ); + a := angle( a - ab ); + IF amin = a THEN + amin_in := amin_in OR a_in; + END_IF; + IF amin > a THEN + amin := a; + amin_in := a_in; + END_IF; + IF amax = a THEN + amax_in := amax_in OR a_in; + END_IF; + IF amax < a THEN + amax := a; + amax_in := a_in; + END_IF; + + END_PROCEDURE; + + PROCEDURE range_max( + r : REAL; + incl : BOOLEAN; + VAR rmax : REAL; + VAR rmax_in : BOOLEAN ); + IF rmax = r THEN + rmax_in := rmax_in OR incl; + END_IF; + IF rmax < r THEN + rmax := r; + rmax_in := incl; + END_IF; + + END_PROCEDURE; + + PROCEDURE range_min( + r : REAL; + incl : BOOLEAN; + VAR rmin : REAL; + VAR rmin_in : BOOLEAN ); + IF rmin = r THEN + rmin_in := rmin_in OR incl; + END_IF; + IF ( rmin < 0 ) OR ( rmin > r ) THEN + rmin := r; + rmin_in := incl; + END_IF; + + END_PROCEDURE; + + LOCAL + xitv : real_interval; + yitv : real_interval; + is_xmin : BOOLEAN; + is_xmax : BOOLEAN; + is_ymin : BOOLEAN; + is_ymax : BOOLEAN; + xmin : REAL := 0; + xmax : REAL := 0; + ymin : REAL := 0; + ymax : REAL := 0; + xc : REAL := 0; + yc : REAL := 0; + xmin_in : BOOLEAN := FALSE; + xmax_in : BOOLEAN := FALSE; + ymin_in : BOOLEAN := FALSE; + ymax_in : BOOLEAN := FALSE; + rmin : REAL := -1; + rmax : REAL := -1; + amin : REAL := 4; + amax : REAL := -4; + rmax_exists : BOOLEAN := TRUE; + outside : BOOLEAN := TRUE; + rmin_in : BOOLEAN := FALSE; + rmax_in : BOOLEAN := FALSE; + amin_in : BOOLEAN := FALSE; + amax_in : BOOLEAN := FALSE; + ab : REAL := 0; + a : REAL := 0; + r : REAL := 0; + incl : BOOLEAN; + ritv : real_interval; + aitv : finite_real_interval; + minclo : open_closed := open; + maxclo : open_closed := open; + END_LOCAL; + IF ( NOT EXISTS( crgn ) ) OR ( NOT EXISTS( centre ) ) THEN + RETURN( ? ); + END_IF; + xitv := crgn.real_constraint; + yitv := crgn.imag_constraint; + xc := centre.real_part; + yc := centre.imag_part; + is_xmin := min_exists( xitv ); + is_xmax := max_exists( xitv ); + is_ymin := min_exists( yitv ); + is_ymax := max_exists( yitv ); + IF is_xmin THEN + xmin := real_min( xitv ); + xmin_in := min_included( xitv ); + END_IF; + IF is_xmax THEN + xmax := real_max( xitv ); + xmax_in := max_included( xitv ); + END_IF; + IF is_ymin THEN + ymin := real_min( yitv ); + ymin_in := min_included( yitv ); + END_IF; + IF is_ymax THEN + ymax := real_max( yitv ); + ymax_in := max_included( yitv ); + END_IF; + rmax_exists := is_xmin AND is_xmax AND is_ymin AND is_ymax; + IF is_xmin AND ( xc <= xmin ) THEN + ab := 0; + ELSE + IF is_ymin AND ( yc <= ymin ) THEN + ab := 0.5 * PI; + ELSE + IF is_ymax AND ( yc >= ymax ) THEN + ab := ( -0.5 ) * PI; + ELSE + IF is_xmax AND ( xc >= xmax ) THEN + ab := PI; + ELSE + outside := FALSE; + END_IF; + END_IF; + END_IF; + END_IF; + IF ( NOT outside ) AND ( NOT rmax_exists ) THEN + RETURN( ? ); + END_IF; + IF is_xmin AND ( xc <= xmin ) AND strictly_in( yc, yitv ) THEN + rmin := xmin - xc; + rmin_in := xmin_in; + ELSE + IF is_ymin AND ( yc <= ymin ) AND strictly_in( xc, xitv ) THEN + rmin := ymin - yc; + rmin_in := ymin_in; + ELSE + IF is_ymax AND ( yc >= ymax ) AND strictly_in( xc, xitv ) THEN + rmin := yc - ymax; + rmin_in := ymax_in; + ELSE + IF is_xmax AND ( xc >= xmax ) AND strictly_in( yc, yitv ) THEN + rmin := xc - xmax; + rmin_in := xmax_in; + END_IF; + END_IF; + END_IF; + END_IF; + IF is_xmin THEN + IF is_ymin THEN + r := SQRT( ( ( xmin - xc ) ** 2 ) + ( ( ymin - yc ) ** 2 ) ); + incl := xmin_in AND ymin_in; + IF rmax_exists THEN + range_max( r, incl, rmax, rmax_in ); + END_IF; + IF outside THEN + IF r > 0 THEN + range_min( r, incl, rmin, rmin_in ); + a := angle( atan2( ymin - yc, xmin - xc ) - ab ); + IF xc = xmin THEN + incl := xmin_in; + END_IF; + IF yc = ymin THEN + incl := ymin_in; + END_IF; + angle_minmax( ab, a, incl, amin, amax, amin_in, amax_in ); + ELSE + rmin := 0; + rmin_in := xmin_in AND ymin_in; + amin := angle( 0 - ab ); + amin_in := ymin_in; + amax := angle( ( 0.5 * PI ) - ab ); + amax_in := xmin_in; + END_IF; + END_IF; + ELSE + IF xc <= xmin THEN + angle_minmax( ab, ( -0.5 ) * PI, ( xc = xmin ) AND xmin_in, amin, amax, amin_in, amax_in ); + END_IF; + END_IF; + IF ( NOT is_ymax ) AND ( xc <= xmin ) THEN + angle_minmax( ab, 0.5 * PI, ( xc = xmin ) AND xmin_in, amin, amax, amin_in, amax_in ); + END_IF; + END_IF; + IF is_ymin THEN + IF is_xmax THEN + r := SQRT( ( ( xmax - xc ) ** 2 ) + ( ( ymin - yc ) ** 2 ) ); + incl := xmax_in AND ymin_in; + IF rmax_exists THEN + range_max( r, incl, rmax, rmax_in ); + END_IF; + IF outside THEN + IF r > 0 THEN + range_min( r, incl, rmin, rmin_in ); + a := angle( atan2( ymin - yc, xmax - xc ) - ab ); + IF xc = xmax THEN + incl := xmax_in; + END_IF; + IF yc = ymin THEN + incl := ymin_in; + END_IF; + angle_minmax( ab, a, incl, amin, amax, amin_in, amax_in ); + ELSE + rmin := 0; + rmin_in := xmax_in AND ymin_in; + amin := angle( ( 0.5 * PI ) - ab ); + amin_in := ymin_in; + amax := angle( PI - ab ); + amax_in := xmax_in; + END_IF; + END_IF; + ELSE + IF yc <= ymin THEN + angle_minmax( ab, 0, ( yc = ymin ) AND ymin_in, amin, amax, amin_in, amax_in ); + END_IF; + END_IF; + IF ( NOT is_xmin ) AND ( yc <= ymin ) THEN + angle_minmax( ab, PI, ( yc = ymin ) AND ymin_in, amin, amax, amin_in, amax_in ); + END_IF; + END_IF; + IF is_xmax THEN + IF is_ymax THEN + r := SQRT( ( ( xmax - xc ) ** 2 ) + ( ( ymax - yc ) ** 2 ) ); + incl := xmax_in AND ymax_in; + IF rmax_exists THEN + range_max( r, incl, rmax, rmax_in ); + END_IF; + IF outside THEN + IF r > 0 THEN + range_min( r, incl, rmin, rmin_in ); + a := angle( atan2( ymax - yc, xmax - xc ) - ab ); + IF xc = xmax THEN + incl := xmax_in; + END_IF; + IF yc = ymax THEN + incl := ymax_in; + END_IF; + angle_minmax( ab, a, incl, amin, amax, amin_in, amax_in ); + ELSE + rmin := 0; + rmin_in := xmax_in AND ymax_in; + amin := angle( ( -PI ) - ab ); + amin_in := ymax_in; + amax := angle( ( ( -0.5 ) * PI ) - ab ); + amax_in := xmax_in; + END_IF; + END_IF; + ELSE + IF xc >= xmax THEN + angle_minmax( ab, 0.5 * PI, ( xc = xmax ) AND xmax_in, amin, amax, amin_in, amax_in ); + END_IF; + END_IF; + IF ( NOT is_ymin ) AND ( xc >= xmax ) THEN + angle_minmax( ab, ( -0.5 ) * PI, ( xc = xmax ) AND xmax_in, amin, amax, amin_in, amax_in ); + END_IF; + END_IF; + IF is_ymax THEN + IF is_xmin THEN + r := SQRT( ( ( xmin - xc ) ** 2 ) + ( ( ymax - yc ) ** 2 ) ); + incl := xmin_in AND ymax_in; + IF rmax_exists THEN + range_max( r, incl, rmax, rmax_in ); + END_IF; + IF outside THEN + IF r > 0 THEN + range_min( r, incl, rmin, rmin_in ); + a := angle( atan2( ymax - yc, xmin - xc ) - ab ); + IF xc = xmin THEN + incl := xmin_in; + END_IF; + IF yc = ymax THEN + incl := ymax_in; + END_IF; + angle_minmax( ab, a, incl, amin, amax, amin_in, amax_in ); + ELSE + rmin := 0; + rmin_in := xmin_in AND ymax_in; + amin := angle( ( 0.5 * PI ) - ab ); + amin_in := ymax_in; + amax := angle( PI - ab ); + amax_in := xmin_in; + END_IF; + END_IF; + ELSE + IF yc >= ymax THEN + angle_minmax( ab, PI, ( yc = ymax ) AND ymax_in, amin, amax, amin_in, amax_in ); + END_IF; + END_IF; + IF ( NOT is_xmax ) AND ( yc >= ymax ) THEN + angle_minmax( ab, 0, ( yc = ymax ) AND ymax_in, amin, amax, amin_in, amax_in ); + END_IF; + END_IF; + IF outside THEN + amin := angle( amin + ab ); + IF amin = PI THEN + amin := -PI; + END_IF; + amax := angle( amax + ab ); + IF amax <= amin THEN + amax := amax + ( 2 * PI ); + END_IF; + ELSE + amin := -PI; + amin_in := FALSE; + amax := PI; + amax_in := FALSE; + END_IF; + IF amin_in THEN + minclo := closed; + END_IF; + IF amax_in THEN + maxclo := closed; + END_IF; + aitv := make_finite_real_interval( amin, minclo, amax, maxclo ); + minclo := open; + IF rmin_in THEN + minclo := closed; + END_IF; + IF rmax_exists THEN + maxclo := open; + IF rmax_in THEN + maxclo := closed; + END_IF; + ritv := make_finite_real_interval( rmin, minclo, rmax, maxclo ); + ELSE + ritv := make_real_interval_from_min( rmin, minclo ); + END_IF; + RETURN( make_polar_complex_number_region( centre, ritv, aitv ) ); + + END_FUNCTION; + + FUNCTION enclose_pregion_in_cregion( + prgn : polar_complex_number_region + ) : cartesian_complex_number_region; + + PROCEDURE nearest_good_direction( + acart : REAL; + aitv : finite_real_interval; + VAR a : REAL; + VAR a_in : BOOLEAN ); + a := acart; + a_in := TRUE; + IF a < aitv.min THEN + IF ( a + ( 2 * PI ) ) < aitv.max THEN + RETURN; + END_IF; + IF ( a + ( 2 * PI ) ) = aitv.max THEN + a_in := max_included( aitv ); + RETURN; + END_IF; + ELSE + IF a = aitv.min THEN + a_in := min_included( aitv ); + RETURN; + ELSE + IF a < aitv.max THEN + RETURN; + ELSE + IF a = aitv.max THEN + a_in := max_included( aitv ); + RETURN; + END_IF; + END_IF; + END_IF; + END_IF; + IF COS( acart - aitv.max ) >= COS( acart - aitv.min ) THEN + a := aitv.max; + a_in := max_included( aitv ); + ELSE + a := aitv.min; + a_in := min_included( aitv ); + END_IF; + + END_PROCEDURE; + + LOCAL + xc : REAL := 0; + yc : REAL := 0; + xmin : REAL := 0; + xmax : REAL := 0; + ymin : REAL := 0; + ymax : REAL := 0; + ritv : real_interval; + xitv : real_interval; + yitv : real_interval; + aitv : finite_real_interval; + xmin_exists : BOOLEAN; + xmax_exists : BOOLEAN; + ymin_exists : BOOLEAN; + ymax_exists : BOOLEAN; + xmin_in : BOOLEAN := FALSE; + xmax_in : BOOLEAN := FALSE; + ymin_in : BOOLEAN := FALSE; + ymax_in : BOOLEAN := FALSE; + a : REAL := 0; + r : REAL := 0; + a_in : BOOLEAN := FALSE; + min_clo : open_closed := open; + max_clo : open_closed := open; + END_LOCAL; + IF NOT EXISTS( prgn ) THEN + RETURN( ? ); + END_IF; + xc := prgn.centre.real_part; + yc := prgn.centre.imag_part; + ritv := prgn.distance_constraint; + aitv := prgn.direction_constraint; + nearest_good_direction( PI, aitv, a, a_in ); + IF COS( a ) >= 0 THEN + xmin_exists := TRUE; + xmin := xc + ( real_min( ritv ) * COS( a ) ); + xmin_in := a_in AND ( min_included( ritv ) OR ( COS( a ) = 0 ) ); + ELSE + IF max_exists( ritv ) THEN + xmin_exists := TRUE; + xmin := xc + ( real_max( ritv ) * COS( a ) ); + xmin_in := a_in AND max_included( ritv ); + ELSE + xmin_exists := FALSE; + END_IF; + END_IF; + nearest_good_direction( 0, aitv, a, a_in ); + IF COS( a ) <= 0 THEN + xmax_exists := TRUE; + xmax := xc + ( real_min( ritv ) * COS( a ) ); + xmax_in := a_in AND ( min_included( ritv ) OR ( COS( a ) = 0 ) ); + ELSE + IF max_exists( ritv ) THEN + xmax_exists := TRUE; + xmax := xc + ( real_max( ritv ) * COS( a ) ); + xmax_in := a_in AND max_included( ritv ); + ELSE + xmax_exists := FALSE; + END_IF; + END_IF; + nearest_good_direction( ( -0.5 ) * PI, aitv, a, a_in ); + IF SIN( a ) >= 0 THEN + ymin_exists := TRUE; + ymin := yc + ( real_min( ritv ) * SIN( a ) ); + ymin_in := a_in AND ( min_included( ritv ) OR ( SIN( a ) = 0 ) ); + ELSE + IF max_exists( ritv ) THEN + ymin_exists := TRUE; + ymin := yc + ( real_max( ritv ) * SIN( a ) ); + ymin_in := a_in AND max_included( ritv ); + ELSE + ymin_exists := FALSE; + END_IF; + END_IF; + nearest_good_direction( 0.5 * PI, aitv, a, a_in ); + IF SIN( a ) <= 0 THEN + ymax_exists := TRUE; + ymax := yc + ( real_min( ritv ) * SIN( a ) ); + ymax_in := a_in AND ( min_included( ritv ) OR ( SIN( a ) = 0 ) ); + ELSE + IF max_exists( ritv ) THEN + ymax_exists := TRUE; + ymax := yc + ( real_max( ritv ) * SIN( a ) ); + ymax_in := a_in AND max_included( ritv ); + ELSE + ymax_exists := FALSE; + END_IF; + END_IF; + IF NOT ( xmin_exists OR xmax_exists OR ymin_exists OR ymax_exists ) THEN + RETURN( ? ); + END_IF; + IF xmin_exists THEN + IF xmin_in THEN + min_clo := closed; + ELSE + min_clo := open; + END_IF; + IF xmax_exists THEN + IF xmax_in THEN + max_clo := closed; + ELSE + max_clo := open; + END_IF; + xitv := make_finite_real_interval( xmin, min_clo, xmax, max_clo ); + ELSE + xitv := make_real_interval_from_min( xmin, min_clo ); + END_IF; + ELSE + IF xmax_exists THEN + IF xmax_in THEN + max_clo := closed; + ELSE + max_clo := open; + END_IF; + xitv := make_real_interval_to_max( xmax, max_clo ); + ELSE + xitv := the_reals; + END_IF; + END_IF; + IF ymin_exists THEN + IF ymin_in THEN + min_clo := closed; + ELSE + min_clo := open; + END_IF; + IF ymax_exists THEN + IF ymax_in THEN + max_clo := closed; + ELSE + max_clo := open; + END_IF; + yitv := make_finite_real_interval( ymin, min_clo, ymax, max_clo ); + ELSE + yitv := make_real_interval_from_min( ymin, min_clo ); + END_IF; + ELSE + IF ymax_exists THEN + IF ymax_in THEN + max_clo := closed; + ELSE + max_clo := open; + END_IF; + yitv := make_real_interval_to_max( ymax, max_clo ); + ELSE + yitv := the_reals; + END_IF; + END_IF; + RETURN( make_cartesian_complex_number_region( xitv, yitv ) ); + + END_FUNCTION; + + FUNCTION enclose_pregion_in_pregion( + prgn : polar_complex_number_region; + centre : complex_number_literal + ) : polar_complex_number_region; + + FUNCTION angle( + a : REAL + ) : REAL; + REPEAT WHILE a > PI; + a := a - ( 2 * PI ); + END_REPEAT; + REPEAT WHILE a <= ( -PI ); + a := a + ( 2 * PI ); + END_REPEAT; + RETURN( a ); + + END_FUNCTION; + + FUNCTION strictly_in( + a : REAL; + aitv : finite_real_interval + ) : LOGICAL; + a := angle( a ); + RETURN( ( ( aitv.min < a ) AND ( a < aitv.max ) ) OR ( ( aitv.min < ( a + ( 2 * PI ) ) ) AND ( ( a + ( 2 * PI ) ) < aitv. + max ) ) ); + + END_FUNCTION; + + PROCEDURE angle_range( + VAR amin, amax : REAL ); + amin := angle( amin ); + IF amin = PI THEN + amin := -PI; + END_IF; + amax := angle( amax ); + IF amax <= amin THEN + amax := amax + ( 2 * PI ); + END_IF; + + END_PROCEDURE; + + PROCEDURE find_aminmax( + ab, a0, a1, a2, a3 : REAL; + in0, in1, in2, in3 : BOOLEAN; + VAR amin, amax : REAL; + VAR amin_in, amax_in : BOOLEAN ); + + LOCAL + a : REAL; + END_LOCAL; + amin := angle( a0 - ab ); + amin_in := in0; + amax := amin; + amax_in := in0; + a := angle( a1 - ab ); + IF a = amin THEN + amin_in := amin_in OR in1; + END_IF; + IF a < amin THEN + amin := a; + amin_in := in1; + END_IF; + IF a = amax THEN + amax_in := amax_in OR in1; + END_IF; + IF a > amax THEN + amax := a; + amax_in := in1; + END_IF; + a := angle( a2 - ab ); + IF a = amin THEN + amin_in := amin_in OR in2; + END_IF; + IF a < amin THEN + amin := a; + amin_in := in2; + END_IF; + IF a = amax THEN + amax_in := amax_in OR in2; + END_IF; + IF a > amax THEN + amax := a; + amax_in := in2; + END_IF; + a := angle( a3 - ab ); + IF a = amin THEN + amin_in := amin_in OR in3; + END_IF; + IF a < amin THEN + amin := a; + amin_in := in3; + END_IF; + IF a = amax THEN + amax_in := amax_in OR in3; + END_IF; + IF a > amax THEN + amax := a; + amax_in := in3; + END_IF; + amin := amin + ab; + amax := amax + ab; + angle_range( amin, amax ); + + END_PROCEDURE; + + LOCAL + ritp : real_interval; + ritv : real_interval; + aitp : finite_real_interval; + aitv : finite_real_interval; + xp : REAL := 0; + yp : REAL := 0; + xc : REAL := 0; + yc : REAL := 0; + rmax : REAL := 0; + rmin : REAL := 0; + amin : REAL := 0; + amax : REAL := 0; + rc : REAL := 0; + acp : REAL := 0; + apc : REAL := 0; + rmax_in : BOOLEAN := FALSE; + rmin_in : BOOLEAN := FALSE; + amin_in : BOOLEAN := FALSE; + amax_in : BOOLEAN := FALSE; + rmxp : REAL := 0; + rmnp : REAL := 0; + x : REAL := 0; + y : REAL := 0; + r : REAL := 0; + a : REAL := 0; + ab : REAL := 0; + r0 : REAL := 0; + a0 : REAL := 0; + r1 : REAL := 0; + a1 : REAL := 0; + r2 : REAL := 0; + a2 : REAL := 0; + r3 : REAL := 0; + a3 : REAL := 0; + in0 : BOOLEAN := FALSE; + in1 : BOOLEAN := FALSE; + in2 : BOOLEAN := FALSE; + in3 : BOOLEAN := FALSE; + inn : BOOLEAN := FALSE; + minclo : open_closed := open; + maxclo : open_closed := open; + END_LOCAL; + IF ( NOT EXISTS( prgn ) ) OR ( NOT EXISTS( centre ) ) THEN + RETURN( ? ); + END_IF; + xp := prgn.centre.real_part; + yp := prgn.centre.imag_part; + ritp := prgn.distance_constraint; + aitp := prgn.direction_constraint; + xc := centre.real_part; + yc := centre.imag_part; + IF ( xc = xp ) AND ( yc = yp ) THEN + RETURN( prgn ); + END_IF; + rc := SQRT( ( ( xp - xc ) ** 2 ) + ( ( yp - yc ) ** 2 ) ); + acp := atan2( yp - yc, xp - xc ); + apc := atan2( yc - yp, xc - xp ); + rmnp := real_min( ritp ); + IF max_exists( ritp ) THEN + rmxp := real_max( ritp ); + IF ( aitp.max - aitp.min ) = ( 2 * PI ) THEN + inn := NOT max_included( aitp ); + a := angle( aitp.min ); + rmax := rc + rmxp; + rmax_in := max_included( ritp ); + IF inn AND ( acp = a ) THEN + rmax_in := FALSE; + END_IF; + IF rc > rmxp THEN + a0 := ASIN( rmxp / rc ); + amin := angle( acp - a0 ); + amin_in := max_included( ritp ); + IF amin = PI THEN + amin := -PI; + END_IF; + amax := angle( acp + a0 ); + amax_in := amin_in; + IF amax < amin THEN + amax := amax + ( 2 * PI ); + END_IF; + rmin := rc - rmxp; + rmin_in := amin_in; + IF inn THEN + IF apc = a THEN + rmin_in := FALSE; + END_IF; + IF angle( amin + ( 0.5 * PI ) ) = a THEN + amin_in := FALSE; + END_IF; + IF angle( amax - ( 0.5 * PI ) ) = a THEN + amax_in := FALSE; + END_IF; + END_IF; + ELSE + IF rc = rmxp THEN + amin := angle( acp - ( 0.5 * PI ) ); + amin_in := FALSE; + IF amin = PI THEN + amin := -PI; + END_IF; + amax := angle( acp + ( 0.5 * PI ) ); + amax_in := FALSE; + IF amax < amin THEN + amax := amax + ( 2 * PI ); + END_IF; + rmin := 0; + rmin_in := max_included( ritp ); + IF inn AND ( apc = a ) THEN + rmin_in := FALSE; + END_IF; + ELSE + IF rc > rmnp THEN + IF inn AND ( apc = a ) THEN + rmin := 0; + rmin_in := FALSE; + amin := aitp.min; + amin_in := FALSE; + amax := aitp.max; + amax_in := FALSE; + ELSE + rmin := 0; + rmin_in := TRUE; + amin := -PI; + amin_in := FALSE; + amax := PI; + amax_in := TRUE; + END_IF; + ELSE + rmin := rmnp - rc; + rmin_in := min_included( ritp ); + amin := -PI; + amin_in := FALSE; + amax := PI; + amax_in := TRUE; + IF inn THEN + IF apc = a THEN + rmin_in := FALSE; + amin := aitp.min; + amin_in := FALSE; + amax := aitp.max; + amax_in := FALSE; + ELSE + IF acp = a THEN + amin := aitp.min; + amin_in := FALSE; + amax := aitp.max; + amax_in := FALSE; + END_IF; + END_IF; + END_IF; + END_IF; + END_IF; + END_IF; + ELSE + x := ( xp + ( rmxp * COS( aitp.min ) ) ) - xc; + y := ( yp + ( rmxp * SIN( aitp.min ) ) ) - yc; + r0 := SQRT( ( x ** 2 ) + ( y ** 2 ) ); + in0 := max_included( ritp ) AND min_included( aitp ); + IF r0 <> 0 THEN + a0 := atan2( y, x ); + END_IF; + x := ( xp + ( rmxp * COS( aitp.max ) ) ) - xc; + y := ( yp + ( rmxp * SIN( aitp.max ) ) ) - yc; + r1 := SQRT( ( x ** 2 ) + ( y ** 2 ) ); + in1 := max_included( ritp ) AND max_included( aitp ); + IF r1 <> 0 THEN + a1 := atan2( y, x ); + END_IF; + x := ( xp + ( rmnp * COS( aitp.max ) ) ) - xc; + y := ( yp + ( rmnp * SIN( aitp.max ) ) ) - yc; + r2 := SQRT( ( x ** 2 ) + ( y ** 2 ) ); + in2 := min_included( ritp ) AND max_included( aitp ); + IF r2 <> 0 THEN + a2 := atan2( y, x ); + ELSE + a2 := a1; + in2 := in1; + END_IF; + IF r1 = 0 THEN + a1 := a2; + in1 := in2; + END_IF; + x := ( xp + ( rmnp * COS( aitp.min ) ) ) - xc; + y := ( yp + ( rmnp * SIN( aitp.min ) ) ) - yc; + r3 := SQRT( ( x ** 2 ) + ( y ** 2 ) ); + in3 := min_included( ritp ) AND min_included( aitp ); + IF r3 <> 0 THEN + a3 := atan2( y, x ); + ELSE + a3 := a0; + in3 := in0; + END_IF; + IF r0 = 0 THEN + a0 := a3; + in0 := in3; + END_IF; + IF rmnp = 0 THEN + in2 := min_included( ritp ); + in3 := in2; + END_IF; + IF ( apc = angle( aitp.min ) ) OR ( acp = angle( aitp.min ) ) THEN + in0 := min_included( aitp ); + in3 := in0; + ELSE + IF ( apc = angle( aitp.max ) ) OR ( acp = angle( aitp.max ) ) THEN + in1 := max_included( aitp ); + in2 := in1; + END_IF; + END_IF; + IF strictly_in( acp, aitp ) THEN + rmax := rc + rmxp; + rmax_in := max_included( ritp ); + ELSE + rmax := r0; + rmax_in := in0; + IF rmax = r1 THEN + rmax_in := rmax_in OR in1; + END_IF; + IF rmax < r1 THEN + rmax := r1; + rmax_in := in1; + END_IF; + IF rmax = r2 THEN + rmax_in := rmax_in OR in2; + END_IF; + IF rmax < r2 THEN + rmax := r2; + rmax_in := in2; + END_IF; + IF rmax = r3 THEN + rmax_in := rmax_in OR in3; + END_IF; + IF rmax < r3 THEN + rmax := r3; + rmax_in := in3; + END_IF; + END_IF; + IF strictly_in( apc, aitp ) THEN + IF rc >= rmxp THEN + rmin := rc - rmxp; + rmin_in := max_included( ritp ); + ELSE + IF rc <= rmnp THEN + rmin := rmnp - rc; + rmin_in := min_included( ritp ); + ELSE + rmin := 0; + rmin_in := TRUE; + END_IF; + END_IF; + ELSE + rmin := r0; + rmin_in := in0; + a := apc - aitp.min; + r := rc * COS( a ); + IF ( rmnp < r ) AND ( r < rmxp ) THEN + rmin := rc * SIN( ABS( a ) ); + rmin_in := min_included( aitp ); + END_IF; + a := apc - aitp.max; + r := rc * COS( a ); + IF ( rmnp < r ) AND ( r < rmxp ) THEN + r := rc * SIN( ABS( a ) ); + inn := max_included( aitp ); + IF r = rmin THEN + rmin_in := rmin_in OR inn; + END_IF; + IF r < rmin THEN + rmin := r; + rmin_in := inn; + END_IF; + END_IF; + IF r1 = rmin THEN + rmin_in := rmin_in OR in1; + END_IF; + IF r1 < rmin THEN + rmin := r1; + rmin_in := in1; + END_IF; + IF r2 = rmin THEN + rmin_in := rmin_in OR in2; + END_IF; + IF r2 < rmin THEN + rmin := r2; + rmin_in := in2; + END_IF; + IF r3 = rmin THEN + rmin_in := rmin_in OR in3; + END_IF; + IF r3 < rmin THEN + rmin := r3; + rmin_in := in3; + END_IF; + END_IF; + IF rc >= rmxp THEN + ab := acp; + find_aminmax( ab, a0, a1, a2, a3, in0, in1, in2, in3, amin, amax, amin_in, amax_in ); + a := ACOS( rmxp / rc ); + IF strictly_in( apc - a, aitp ) THEN + amin := ab - ASIN( rmxp / rc ); + amin_in := max_included( ritp ); + END_IF; + IF strictly_in( apc + a, aitp ) THEN + amax := ab + ASIN( rmxp / rc ); + amax_in := max_included( ritp ); + END_IF; + angle_range( amin, amax ); + ELSE + IF rc > rmnp THEN + ab := angle( 0.5 * ( aitp.min + aitp.max ) ); + find_aminmax( ab, a0, a1, a2, a3, in0, in1, in2, in3, amin, amax, amin_in, amax_in ); + ELSE + ab := angle( 0.5 * ( aitp.min + aitp.max ) ); + a0 := angle( a0 - ab ); + a1 := angle( a1 - ab ); + a2 := angle( a2 - ab ); + a3 := angle( a3 - ab ); + IF a3 > a2 THEN + a2 := a2 + ( 2 * PI ); + END_IF; + IF a0 > a1 THEN + a0 := a0 + ( 2 * PI ); + END_IF; + IF a3 < a0 THEN + amin := a3; + amin_in := in3; + ELSE + amin := a0; + amin_in := in0; + END_IF; + IF a2 > a1 THEN + amax := a2; + amax_in := in2; + ELSE + amax := a1; + amax_in := in1; + END_IF; + IF ( ( amax - amin ) > ( 2 * PI ) ) OR ( ( ( amax - amin ) = ( 2 * PI ) ) AND ( amin_in OR amax_in ) ) THEN + amin := -PI; + amin_in := FALSE; + amax := PI; + amax_in := TRUE; + ELSE + amin := amin + ab; + amax := amax + ab; + angle_range( amin, amax ); + END_IF; + END_IF; + END_IF; + END_IF; + IF rmin_in THEN + minclo := closed; + END_IF; + IF rmax_in THEN + maxclo := closed; + END_IF; + ritv := make_finite_real_interval( rmin, minclo, rmax, maxclo ); + ELSE + IF ( rc > rmnp ) AND strictly_in( apc, aitp ) THEN + RETURN( ? ); + END_IF; + IF ( aitp.max - aitp.min ) = ( 2 * PI ) THEN + a := angle( aitp.min ); + IF rc > rmnp THEN + IF max_included( aitp ) THEN + RETURN( ? ); + END_IF; + rmin := 0; + rmin_in := FALSE; + amin := aitp.min; + amin_in := FALSE; + amax := aitp.max; + amax_in := FALSE; + ELSE + rmin := rmnp - rc; + rmin_in := min_included( ritp ); + amin := -PI; + amin_in := FALSE; + amax := PI; + amax_in := TRUE; + IF NOT max_included( aitp ) THEN + IF apc = a THEN + rmin_in := FALSE; + amin := aitp.min; + amin_in := FALSE; + amax := aitp.max; + amax_in := FALSE; + ELSE + IF acp = a THEN + amin := aitp.min; + amin_in := FALSE; + amax := aitp.max; + amax_in := FALSE; + END_IF; + END_IF; + END_IF; + END_IF; + ELSE + a0 := angle( aitp.min ); + in0 := FALSE; + a1 := angle( aitp.max ); + in1 := FALSE; + x := ( xp + ( rmnp * COS( aitp.max ) ) ) - xc; + y := ( yp + ( rmnp * SIN( aitp.max ) ) ) - yc; + r2 := SQRT( ( x ** 2 ) + ( y ** 2 ) ); + in2 := min_included( ritp ) AND max_included( aitp ); + IF r2 <> 0 THEN + a2 := atan2( y, x ); + ELSE + a2 := a1; + in2 := in1; + END_IF; + x := ( xp + ( rmnp * COS( aitp.min ) ) ) - xc; + y := ( yp + ( rmnp * SIN( aitp.min ) ) ) - yc; + r3 := SQRT( ( x ** 2 ) + ( y ** 2 ) ); + in3 := min_included( ritp ) AND min_included( aitp ); + IF r3 <> 0 THEN + a3 := atan2( y, x ); + ELSE + a3 := a0; + in3 := in0; + END_IF; + IF rmnp = 0 THEN + in2 := min_included( ritp ); + in3 := in2; + END_IF; + IF ( apc = angle( aitp.min ) ) OR ( acp = angle( aitp.min ) ) THEN + in0 := min_included( aitp ); + in3 := in0; + ELSE + IF ( apc = angle( aitp.max ) ) OR ( acp = angle( aitp.max ) ) THEN + in1 := max_included( aitp ); + in2 := in1; + END_IF; + END_IF; + IF strictly_in( apc, aitp ) THEN + rmin := rmnp - rc; + rmin_in := min_included( ritp ); + ELSE + rmin := r2; + rmin_in := in2; + a := apc - aitp.min; + r := rc * COS( a ); + IF rmnp < r THEN + rmin := rc * SIN( ABS( a ) ); + rmin_in := min_included( aitp ); + END_IF; + a := apc - aitp.max; + r := rc * COS( a ); + IF rmnp < r THEN + r := rc * SIN( ABS( a ) ); + inn := max_included( aitp ); + IF r = rmin THEN + rmin_in := rmin_in OR inn; + END_IF; + IF r < rmin THEN + rmin := r; + rmin_in := inn; + END_IF; + END_IF; + IF r3 = rmin THEN + rmin_in := rmin_in OR in3; + END_IF; + IF r3 < rmin THEN + rmin := r3; + rmin_in := in3; + END_IF; + END_IF; + ab := angle( 0.5 * ( aitp.min + aitp.max ) ); + IF rc > rmnp THEN + find_aminmax( ab, a0, a1, a2, a3, in0, in1, in2, in3, amin, amax, amin_in, amax_in ); + ELSE + a0 := angle( a0 - ab ); + a1 := angle( a1 - ab ); + a2 := angle( a2 - ab ); + a3 := angle( a3 - ab ); + IF a3 > a2 THEN + a2 := a2 + ( 2 * PI ); + END_IF; + IF a0 > a1 THEN + a0 := a0 + ( 2 * PI ); + END_IF; + IF a3 < a0 THEN + amin := a3; + amin_in := in3; + ELSE + amin := a0; + amin_in := in0; + END_IF; + IF a2 > a1 THEN + amax := a2; + amax_in := in2; + ELSE + amax := a1; + amax_in := in1; + END_IF; + IF ( ( amax - amin ) > ( 2 * PI ) ) OR ( ( ( amax - amin ) = ( 2 * PI ) ) AND ( amin_in OR amax_in ) ) THEN + amin := -PI; + amin_in := FALSE; + amax := PI; + amax_in := TRUE; + IF ( rmin = 0 ) AND rmin_in THEN + RETURN( ? ); + END_IF; + ELSE + amin := amin + ab; + amax := amax + ab; + angle_range( amin, amax ); + END_IF; + END_IF; + END_IF; + IF rmin_in THEN + minclo := closed; + END_IF; + ritv := make_real_interval_from_min( rmin, minclo ); + END_IF; + minclo := open; + maxclo := open; + IF amin_in THEN + minclo := closed; + END_IF; + IF amax_in THEN + maxclo := closed; + END_IF; + aitv := make_finite_real_interval( amin, minclo, amax, maxclo ); + RETURN( make_polar_complex_number_region( centre, ritv, aitv ) ); + + END_FUNCTION; + + FUNCTION equal_cregion_pregion( + crgn : cartesian_complex_number_region; + prgn : polar_complex_number_region + ) : LOGICAL; + + LOCAL + arng : REAL; + amin : REAL; + xc : REAL; + yc : REAL; + aitv : real_interval; + xitv : real_interval; + yitv : real_interval; + c_in : BOOLEAN; + END_LOCAL; + IF ( NOT EXISTS( crgn ) ) OR ( NOT EXISTS( prgn ) ) THEN + RETURN( FALSE ); + END_IF; + IF max_exists( prgn.distance_constraint ) THEN + RETURN( FALSE ); + END_IF; + IF real_min( prgn.distance_constraint ) <> 0 THEN + RETURN( FALSE ); + END_IF; + c_in := min_included( prgn.distance_constraint ); + aitv := prgn.direction_constraint; + amin := aitv.min; + arng := aitv.max - amin; + xc := prgn.centre.real_part; + yc := prgn.centre.imag_part; + xitv := crgn.real_constraint; + yitv := crgn.imag_constraint; + IF arng = ( 0.5 * PI ) THEN + IF amin = 0 THEN + RETURN( ( NOT max_exists( xitv ) ) AND ( NOT max_exists( yitv ) ) AND min_exists( xitv ) AND min_exists( yitv ) AND ( + real_min( xitv ) = xc ) AND ( real_min( yitv ) = yc ) AND ( ( c_in AND min_included( aitv ) AND max_included( aitv ) + AND min_included( xitv ) AND min_included( yitv ) ) OR ( ( NOT c_in ) AND ( NOT min_included( aitv ) ) AND + max_included( aitv ) AND min_included( xitv ) AND ( NOT min_included( yitv ) ) ) OR ( ( NOT c_in ) AND min_included( + aitv ) AND ( NOT max_included( aitv ) ) AND ( NOT min_included( xitv ) ) AND min_included( yitv ) ) OR ( ( NOT c_in ) + AND ( NOT min_included( aitv ) ) AND ( NOT max_included( aitv ) ) AND ( NOT min_included( xitv ) ) AND ( NOT + min_included( yitv ) ) ) ) ); + END_IF; + IF amin = ( 0.5 * PI ) THEN + RETURN( max_exists( xitv ) AND ( NOT max_exists( yitv ) ) AND ( NOT min_exists( xitv ) ) AND min_exists( yitv ) AND ( + real_max( xitv ) = xc ) AND ( real_min( yitv ) = yc ) AND ( ( c_in AND min_included( aitv ) AND max_included( aitv ) + AND max_included( xitv ) AND min_included( yitv ) ) OR ( ( NOT c_in ) AND ( NOT min_included( aitv ) ) AND + max_included( aitv ) AND max_included( xitv ) AND ( NOT min_included( yitv ) ) ) OR ( ( NOT c_in ) AND min_included( + aitv ) AND ( NOT max_included( aitv ) ) AND ( NOT max_included( xitv ) ) AND min_included( yitv ) ) OR ( ( NOT c_in ) + AND ( NOT min_included( aitv ) ) AND ( NOT max_included( aitv ) ) AND ( NOT max_included( xitv ) ) AND ( NOT + min_included( yitv ) ) ) ) ); + END_IF; + IF amin = ( -PI ) THEN + RETURN( max_exists( xitv ) AND max_exists( yitv ) AND ( NOT min_exists( xitv ) ) AND ( NOT min_exists( yitv ) ) AND ( + real_max( xitv ) = xc ) AND ( real_max( yitv ) = yc ) AND ( ( c_in AND min_included( aitv ) AND max_included( aitv ) + AND max_included( xitv ) AND max_included( yitv ) ) OR ( ( NOT c_in ) AND ( NOT min_included( aitv ) ) AND + max_included( aitv ) AND max_included( xitv ) AND ( NOT max_included( yitv ) ) ) OR ( ( NOT c_in ) AND min_included( + aitv ) AND ( NOT max_included( aitv ) ) AND ( NOT max_included( xitv ) ) AND max_included( yitv ) ) OR ( ( NOT c_in ) + AND ( NOT min_included( aitv ) ) AND ( NOT max_included( aitv ) ) AND ( NOT max_included( xitv ) ) AND ( NOT + max_included( yitv ) ) ) ) ); + END_IF; + IF amin = ( ( -0.5 ) * PI ) THEN + RETURN( ( NOT max_exists( xitv ) ) AND max_exists( yitv ) AND min_exists( xitv ) AND ( NOT min_exists( yitv ) ) AND ( + real_min( xitv ) = xc ) AND ( real_max( yitv ) = yc ) AND ( ( c_in AND min_included( aitv ) AND max_included( aitv ) + AND min_included( xitv ) AND max_included( yitv ) ) OR ( ( NOT c_in ) AND ( NOT min_included( aitv ) ) AND + max_included( aitv ) AND min_included( xitv ) AND ( NOT max_included( yitv ) ) ) OR ( ( NOT c_in ) AND min_included( + aitv ) AND ( NOT max_included( aitv ) ) AND ( NOT min_included( xitv ) ) AND max_included( yitv ) ) OR ( ( NOT c_in ) + AND ( NOT min_included( aitv ) ) AND ( NOT max_included( aitv ) ) AND ( NOT min_included( xitv ) ) AND ( NOT + max_included( yitv ) ) ) ) ); + END_IF; + END_IF; + IF arng = PI THEN + IF amin = 0 THEN + RETURN( ( NOT max_exists( xitv ) ) AND ( NOT max_exists( yitv ) ) AND ( NOT min_exists( xitv ) ) AND min_exists( yitv ) + AND ( real_min( yitv ) = yc ) AND ( ( c_in AND min_included( aitv ) AND max_included( aitv ) AND min_included( yitv ) ) + OR ( ( NOT c_in ) AND ( NOT min_included( aitv ) ) AND ( NOT max_included( aitv ) ) AND ( NOT min_included( yitv ) ) ) ) ); + END_IF; + IF amin = ( 0.5 * PI ) THEN + RETURN( max_exists( xitv ) AND ( NOT max_exists( yitv ) ) AND ( NOT min_exists( xitv ) ) AND ( NOT min_exists( yitv ) ) + AND ( real_max( xitv ) = xc ) AND ( ( c_in AND min_included( aitv ) AND max_included( aitv ) AND max_included( xitv ) ) + OR ( ( NOT c_in ) AND ( NOT min_included( aitv ) ) AND ( NOT max_included( aitv ) ) AND ( NOT max_included( xitv ) ) ) ) ); + END_IF; + IF amin = ( -PI ) THEN + RETURN( ( NOT max_exists( xitv ) ) AND max_exists( yitv ) AND ( NOT min_exists( xitv ) ) AND ( NOT min_exists( yitv ) ) + AND ( real_max( yitv ) = yc ) AND ( ( c_in AND min_included( aitv ) AND max_included( aitv ) AND max_included( yitv ) ) + OR ( ( NOT c_in ) AND ( NOT min_included( aitv ) ) AND ( NOT max_included( aitv ) ) AND ( NOT max_included( yitv ) ) ) ) ); + END_IF; + IF amin = ( ( -0.5 ) * PI ) THEN + RETURN( ( NOT max_exists( xitv ) ) AND ( NOT max_exists( yitv ) ) AND min_exists( xitv ) AND ( NOT min_exists( yitv ) ) + AND ( real_min( xitv ) = xc ) AND ( ( c_in AND min_included( aitv ) AND max_included( aitv ) AND min_included( xitv ) ) + OR ( ( NOT c_in ) AND ( NOT min_included( aitv ) ) AND ( NOT max_included( aitv ) ) AND ( NOT min_included( xitv ) ) ) ) ); + END_IF; + END_IF; + RETURN( FALSE ); + + END_FUNCTION; + + FUNCTION equal_maths_functions( + fun1, fun2 : maths_function + ) : LOGICAL; + + LOCAL + cum : LOGICAL; + END_LOCAL; + IF fun1 = fun2 THEN + RETURN( TRUE ); + END_IF; + cum := equal_maths_spaces( fun1.domain, fun2.domain ); + IF cum = FALSE THEN + RETURN( FALSE ); + END_IF; + cum := cum AND equal_maths_spaces( fun1.range, fun2.range ); + IF cum = FALSE THEN + RETURN( FALSE ); + END_IF; + RETURN( UNKNOWN ); + + END_FUNCTION; + + FUNCTION equal_maths_spaces( + spc1, spc2 : maths_space + ) : LOGICAL; + + LOCAL + spc1types : SET OF STRING := stripped_typeof( spc1 ); + spc2types : SET OF STRING := stripped_typeof( spc2 ); + set1 : SET OF maths_value; + set2 : SET OF maths_value; + cum : LOGICAL := TRUE; + base : maths_space; + expnt : INTEGER; + factors : LIST OF maths_space; + factors2 : LIST OF maths_space; + fs1 : function_space; + fs2 : function_space; + cum2 : LOGICAL; + END_LOCAL; + IF spc1 = spc2 THEN + RETURN( TRUE ); + END_IF; + IF 'FINITE_SPACE' IN spc1types THEN + set1 := spc1\finite_space.members; + IF 'FINITE_SPACE' IN spc2types THEN + set2 := spc2\finite_space.members; + REPEAT i := 1 TO SIZEOF( set1 ) BY 1; + cum := cum AND member_of( set1[i], spc2 ); + IF cum = FALSE THEN + RETURN( FALSE ); + END_IF; + END_REPEAT; + IF cum = TRUE THEN + REPEAT i := 1 TO SIZEOF( set2 ) BY 1; + cum := cum AND member_of( set2[i], spc1 ); + IF cum = FALSE THEN + RETURN( FALSE ); + END_IF; + END_REPEAT; + END_IF; + RETURN( cum ); + END_IF; + IF 'FINITE_INTEGER_INTERVAL' IN spc2types THEN + set2 := []; + REPEAT i := spc2\finite_integer_interval.min TO spc2\finite_integer_interval.max BY 1; + set2 := set2 + [i]; + END_REPEAT; + RETURN( equal_maths_spaces( spc1, make_finite_space( set2 ) ) ); + END_IF; + END_IF; + IF ( 'FINITE_INTEGER_INTERVAL' IN spc1types ) AND ( 'FINITE_SPACE' IN spc2types ) THEN + set1 := []; + REPEAT i := spc1\finite_integer_interval.min TO spc1\finite_integer_interval.max BY 1; + set1 := set1 + [i]; + END_REPEAT; + RETURN( equal_maths_spaces( make_finite_space( set1 ), spc2 ) ); + END_IF; + IF ( 'CARTESIAN_COMPLEX_NUMBER_REGION' IN spc1types ) AND ( 'POLAR_COMPLEX_NUMBER_REGION' IN spc2types ) THEN + RETURN( equal_cregion_pregion( spc1, spc2 ) ); + END_IF; + IF ( 'POLAR_COMPLEX_NUMBER_REGION' IN spc1types ) AND ( 'CARTESIAN_COMPLEX_NUMBER_REGION' IN spc2types ) THEN + RETURN( equal_cregion_pregion( spc2, spc1 ) ); + END_IF; + IF 'UNIFORM_PRODUCT_SPACE' IN spc1types THEN + base := spc1\uniform_product_space.base; + expnt := spc1\uniform_product_space.exponent; + IF 'UNIFORM_PRODUCT_SPACE' IN spc2types THEN + IF expnt <> spc2\uniform_product_space.exponent THEN + RETURN( FALSE ); + END_IF; + RETURN( equal_maths_spaces( base, spc2\uniform_product_space.base ) ); + END_IF; + IF 'LISTED_PRODUCT_SPACE' IN spc2types THEN + factors := spc2\listed_product_space.factors; + IF expnt <> SIZEOF( factors ) THEN + RETURN( FALSE ); + END_IF; + REPEAT i := 1 TO SIZEOF( factors ) BY 1; + cum := cum AND equal_maths_spaces( base, factors[i] ); + IF cum = FALSE THEN + RETURN( FALSE ); + END_IF; + END_REPEAT; + RETURN( cum ); + END_IF; + END_IF; + IF 'LISTED_PRODUCT_SPACE' IN spc1types THEN + factors := spc1\listed_product_space.factors; + IF 'UNIFORM_PRODUCT_SPACE' IN spc2types THEN + IF spc2\uniform_product_space.exponent <> SIZEOF( factors ) THEN + RETURN( FALSE ); + END_IF; + base := spc2\uniform_product_space.base; + REPEAT i := 1 TO SIZEOF( factors ) BY 1; + cum := cum AND equal_maths_spaces( base, factors[i] ); + IF cum = FALSE THEN + RETURN( FALSE ); + END_IF; + END_REPEAT; + RETURN( cum ); + END_IF; + IF 'LISTED_PRODUCT_SPACE' IN spc2types THEN + factors2 := spc2\listed_product_space.factors; + IF SIZEOF( factors ) <> SIZEOF( factors2 ) THEN + RETURN( FALSE ); + END_IF; + REPEAT i := 1 TO SIZEOF( factors ) BY 1; + cum := cum AND equal_maths_spaces( factors[i], factors2[i] ); + IF cum = FALSE THEN + RETURN( FALSE ); + END_IF; + END_REPEAT; + RETURN( cum ); + END_IF; + END_IF; + IF ( 'EXTENDED_TUPLE_SPACE' IN spc1types ) AND ( 'EXTENDED_TUPLE_SPACE' IN spc2types ) THEN + RETURN( equal_maths_spaces( spc1\extended_tuple_space.extender, spc2\extended_tuple_space.extender ) AND + equal_maths_spaces( spc1\extended_tuple_space.base, spc2\extended_tuple_space.base ) ); + END_IF; + IF ( 'FUNCTION_SPACE' IN spc1types ) AND ( 'FUNCTION_SPACE' IN spc2types ) THEN + fs1 := spc1; + fs2 := spc2; + IF fs1.domain_constraint <> fs2.domain_constraint THEN + IF ( fs1.domain_constraint = sc_equal ) OR ( fs2.domain_constraint = sc_equal ) THEN + RETURN( FALSE ); + END_IF; + IF fs1.domain_constraint <> sc_subspace THEN + fs1 := spc2; + fs2 := spc1; + END_IF; + IF ( fs1.domain_constraint <> sc_subspace ) OR ( fs2.domain_constraint <> sc_member ) THEN + RETURN( UNKNOWN ); + END_IF; + IF any_space_satisfies( fs1.domain_constraint, fs1.domain_argument ) <> any_space_satisfies( fs2.domain_constraint, fs2. + domain_argument ) THEN + RETURN( FALSE ); + END_IF; + IF NOT ( 'FINITE_SPACE' IN stripped_typeof( fs2.domain_argument ) ) THEN + RETURN( FALSE ); + END_IF; + IF SIZEOF( [ 'FINITE_SPACE', 'FINITE_INTEGER_INTERVAL'] * stripped_typeof( fs1.domain_argument ) ) = 0 THEN + RETURN( FALSE ); + END_IF; + RETURN( UNKNOWN ); + END_IF; + cum := equal_maths_spaces( fs1.domain_argument, fs2.domain_argument ); + IF cum = FALSE THEN + RETURN( FALSE ); + END_IF; + IF fs1.range_constraint <> fs2.range_constraint THEN + IF ( fs1.range_constraint = sc_equal ) OR ( fs2.range_constraint = sc_equal ) THEN + RETURN( FALSE ); + END_IF; + IF fs1.range_constraint <> sc_subspace THEN + fs1 := spc2; + fs2 := spc1; + END_IF; + IF ( fs1.range_constraint <> sc_subspace ) OR ( fs2.range_constraint <> sc_member ) THEN + RETURN( UNKNOWN ); + END_IF; + IF any_space_satisfies( fs1.range_constraint, fs1.range_argument ) <> any_space_satisfies( fs2.range_constraint, fs2. + range_argument ) THEN + RETURN( FALSE ); + END_IF; + IF NOT ( 'FINITE_SPACE' IN stripped_typeof( fs2.range_argument ) ) THEN + RETURN( FALSE ); + END_IF; + IF SIZEOF( [ 'FINITE_SPACE', 'FINITE_INTEGER_INTERVAL'] * stripped_typeof( fs1.range_argument ) ) = 0 THEN + RETURN( FALSE ); + END_IF; + RETURN( UNKNOWN ); + END_IF; + cum := cum AND equal_maths_spaces( fs1.range_argument, fs2.range_argument ); + RETURN( cum ); + END_IF; + RETURN( FALSE ); + + END_FUNCTION; + + FUNCTION equal_maths_values( + val1, val2 : maths_value + ) : LOGICAL; + + FUNCTION mem_of_vs( + val1, val2 : maths_value + ) : LOGICAL; + IF NOT has_values_space( val2 ) THEN + RETURN( UNKNOWN ); + END_IF; + IF NOT member_of( val1, values_space_of( val2 ) ) THEN + RETURN( FALSE ); + END_IF; + RETURN( UNKNOWN ); + + END_FUNCTION; + + LOCAL + types1 : SET OF STRING; + types2 : SET OF STRING; + list1 : LIST OF maths_value; + list2 : LIST OF maths_value; + cum : LOGICAL := TRUE; + END_LOCAL; + IF ( NOT EXISTS( val1 ) ) OR ( NOT EXISTS( val2 ) ) THEN + RETURN( FALSE ); + END_IF; + IF val1 = val2 THEN + RETURN( TRUE ); + END_IF; + types1 := stripped_typeof( val1 ); + types2 := stripped_typeof( val2 ); + IF ( 'MATHS_ATOM' IN types1 ) OR ( 'COMPLEX_NUMBER_LITERAL' IN types1 ) THEN + IF 'MATHS_ATOM' IN types2 THEN + RETURN( FALSE ); + END_IF; + IF 'COMPLEX_NUMBER_LITERAL' IN types2 THEN + RETURN( FALSE ); + END_IF; + IF 'LIST' IN types2 THEN + RETURN( FALSE ); + END_IF; + IF 'MATHS_SPACE' IN types2 THEN + RETURN( FALSE ); + END_IF; + IF 'MATHS_FUNCTION' IN types2 THEN + RETURN( FALSE ); + END_IF; + IF 'GENERIC_EXPRESSION' IN types2 THEN + RETURN( mem_of_vs( val1, val2 ) ); + END_IF; + RETURN( UNKNOWN ); + END_IF; + IF ( 'MATHS_ATOM' IN types2 ) OR ( 'COMPLEX_NUMBER_LITERAL' IN types2 ) THEN + RETURN( equal_maths_values( val2, val1 ) ); + END_IF; + IF 'LIST' IN types1 THEN + IF 'LIST' IN types2 THEN + list1 := val1; + list2 := val2; + IF SIZEOF( list1 ) <> SIZEOF( list2 ) THEN + RETURN( FALSE ); + END_IF; + REPEAT i := 1 TO SIZEOF( list1 ) BY 1; + cum := cum AND equal_maths_values( list1[i], list2[i] ); + IF cum = FALSE THEN + RETURN( FALSE ); + END_IF; + END_REPEAT; + RETURN( cum ); + END_IF; + IF 'MATHS_SPACE' IN types2 THEN + RETURN( FALSE ); + END_IF; + IF 'MATHS_FUNCTION' IN types2 THEN + RETURN( FALSE ); + END_IF; + IF 'GENERIC_EXPRESSION' IN types2 THEN + RETURN( mem_of_vs( val1, val2 ) ); + END_IF; + RETURN( UNKNOWN ); + END_IF; + IF 'LIST' IN types2 THEN + RETURN( equal_maths_values( val2, val1 ) ); + END_IF; + IF 'MATHS_SPACE' IN types1 THEN + IF 'MATHS_SPACE' IN types2 THEN + RETURN( equal_maths_spaces( val1, val2 ) ); + END_IF; + IF 'MATHS_FUNCTION' IN types2 THEN + RETURN( FALSE ); + END_IF; + IF 'GENERIC_EXPRESSION' IN types2 THEN + RETURN( mem_of_vs( val1, val2 ) ); + END_IF; + RETURN( UNKNOWN ); + END_IF; + IF 'MATHS_SPACE' IN types2 THEN + RETURN( equal_maths_values( val2, val1 ) ); + END_IF; + IF 'MATHS_FUNCTION' IN types1 THEN + IF 'MATHS_FUNCTION' IN types2 THEN + RETURN( equal_maths_functions( val1, val2 ) ); + END_IF; + IF 'GENERIC_EXPRESSION' IN types2 THEN + RETURN( mem_of_vs( val1, val2 ) ); + END_IF; + RETURN( UNKNOWN ); + END_IF; + IF 'MATHS_FUNCTION' IN types2 THEN + RETURN( equal_maths_values( val2, val1 ) ); + END_IF; + IF ( 'GENERIC_EXPRESSION' IN types1 ) AND ( 'GENERIC_EXPRESSION' IN types2 ) THEN + IF ( NOT has_values_space( val1 ) ) OR ( NOT has_values_space( val2 ) ) THEN + RETURN( UNKNOWN ); + END_IF; + IF NOT compatible_spaces( values_space_of( val1 ), values_space_of( val2 ) ) THEN + RETURN( FALSE ); + END_IF; + END_IF; + RETURN( UNKNOWN ); + + END_FUNCTION; + + FUNCTION es_subspace_of_es( + es1, es2 : elementary_space_enumerators + ) : BOOLEAN; + IF ( NOT EXISTS( es1 ) ) OR ( NOT EXISTS( es2 ) ) THEN + RETURN( FALSE ); + END_IF; + IF es1 = es2 THEN + RETURN( TRUE ); + END_IF; + IF es2 = es_generics THEN + RETURN( TRUE ); + END_IF; + IF ( es1 = es_booleans ) AND ( es2 = es_logicals ) THEN + RETURN( TRUE ); + END_IF; + IF ( es2 = es_numbers ) AND ( ( es1 = es_complex_numbers ) OR ( es1 = es_reals ) OR ( es1 = es_integers ) ) THEN + RETURN( TRUE ); + END_IF; + RETURN( FALSE ); + + END_FUNCTION; + + FUNCTION expression_is_constant( + expr : generic_expression + ) : BOOLEAN; + RETURN( bool( SIZEOF( free_variables_of( expr ) ) = 0 ) ); + + END_FUNCTION; + + FUNCTION external_version_assignment_is_valid( + aia : applied_external_identification_assignment + ) : BOOLEAN; + + LOCAL + item : external_identification_item; + role : identification_role; + END_LOCAL; + role := aia.role; + IF role.name = 'version' THEN + REPEAT i := LOINDEX( aia\applied_external_identification_assignment.items ) TO HIINDEX( aia\ + applied_external_identification_assignment.items ) BY 1; + item := aia\applied_external_identification_assignment.items[i]; + IF SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.EXTERNALLY_DEFINED_GENERAL_PROPERTY'] * TYPEOF( item ) ) + = 0 THEN + RETURN( FALSE ); + END_IF; + END_REPEAT; + RETURN( TRUE ); + ELSE + RETURN( TRUE ); + END_IF; + + END_FUNCTION; + + FUNCTION extract_factors( + tspace : tuple_space; + m, n : INTEGER + ) : tuple_space; + + LOCAL + tsp : tuple_space := the_zero_tuple_space; + END_LOCAL; + REPEAT i := m TO n BY 1; + tsp := assoc_product_space( tsp, factor_space( tspace, i ) ); + END_REPEAT; + RETURN( tsp ); + + END_FUNCTION; + + FUNCTION extremal_position_check( + fun : linearized_table_function + ) : BOOLEAN; + + LOCAL + source_domain : maths_space; + source_interval : finite_integer_interval; + index : INTEGER := 1; + base : INTEGER; + shape : LIST OF positive_integer; + ndim : positive_integer; + slo : INTEGER; + shi : INTEGER; + sublo : LIST OF INTEGER := []; + subhi : LIST OF INTEGER := []; + END_LOCAL; + IF NOT EXISTS( fun ) THEN + RETURN( FALSE ); + END_IF; + source_domain := factor1( fun.source.domain ); + IF ( schema_prefix + 'TUPLE_SPACE' ) IN TYPEOF( source_domain ) THEN + source_domain := factor1( source_domain ); + END_IF; + IF NOT ( ( schema_prefix + 'FINITE_INTEGER_INTERVAL' ) IN TYPEOF( source_domain ) ) THEN + RETURN( FALSE ); + END_IF; + source_interval := source_domain; + base := fun\explicit_table_function.index_base; + shape := fun\explicit_table_function.shape; + IF ( schema_prefix + 'STANDARD_TABLE_FUNCTION' ) IN TYPEOF( fun ) THEN + REPEAT j := 1 TO SIZEOF( shape ) BY 1; + index := index * shape[j]; + END_REPEAT; + index := ( fun.first + index ) - 1; + RETURN( bool( ( source_interval.min <= index ) AND ( index <= source_interval.max ) ) ); + END_IF; + IF ( schema_prefix + 'REGULAR_TABLE_FUNCTION' ) IN TYPEOF( fun ) THEN + ndim := SIZEOF( fun\explicit_table_function.shape ); + REPEAT j := 1 TO ndim BY 1; + slo := base; + shi := ( base + shape[j] ) - 1; + IF fun\regular_table_function.increments[j] >= 0 THEN + INSERT( sublo, slo, j - 1 ); + INSERT( subhi, shi, j - 1 ); + ELSE + INSERT( sublo, shi, j - 1 ); + INSERT( subhi, slo, j - 1 ); + END_IF; + END_REPEAT; + index := regular_indexing( sublo, base, shape, fun\regular_table_function.increments, fun.first ); + IF NOT ( ( source_interval.min <= index ) AND ( index <= source_interval.max ) ) THEN + RETURN( FALSE ); + END_IF; + index := regular_indexing( subhi, base, shape, fun\regular_table_function.increments, fun.first ); + IF NOT ( ( source_interval.min <= index ) AND ( index <= source_interval.max ) ) THEN + RETURN( FALSE ); + END_IF; + RETURN( TRUE ); + END_IF; + RETURN( FALSE ); + + END_FUNCTION; + + FUNCTION face_bound_reversed( + a_face_bound : face_bound + ) : face_bound; + + LOCAL + the_reverse : face_bound; + END_LOCAL; + IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 factor1( + tspace : tuple_space + ) : maths_space; + + LOCAL + typenames : SET OF STRING := TYPEOF( tspace ); + END_LOCAL; + IF ( schema_prefix + 'UNIFORM_PRODUCT_SPACE' ) IN typenames THEN + RETURN( tspace\uniform_product_space.base ); + END_IF; + IF ( schema_prefix + 'LISTED_PRODUCT_SPACE' ) IN typenames THEN + RETURN( tspace\listed_product_space.factors[1] ); + END_IF; + IF ( schema_prefix + 'EXTENDED_TUPLE_SPACE' ) IN typenames THEN + RETURN( factor1( tspace\extended_tuple_space.base ) ); + END_IF; + RETURN( ? ); + + END_FUNCTION; + + FUNCTION factor_space( + tspace : tuple_space; + idx : positive_integer + ) : maths_space; + + LOCAL + typenames : SET OF STRING := TYPEOF( tspace ); + END_LOCAL; + IF ( schema_prefix + 'UNIFORM_PRODUCT_SPACE' ) IN typenames THEN + IF idx <= tspace\uniform_product_space.exponent THEN + RETURN( tspace\uniform_product_space.base ); + END_IF; + RETURN( ? ); + END_IF; + IF ( schema_prefix + 'LISTED_PRODUCT_SPACE' ) IN typenames THEN + IF idx <= SIZEOF( tspace\listed_product_space.factors ) THEN + RETURN( tspace\listed_product_space.factors[idx] ); + END_IF; + RETURN( ? ); + END_IF; + IF ( schema_prefix + 'EXTENDED_TUPLE_SPACE' ) IN typenames THEN + IF idx <= space_dimension( tspace\extended_tuple_space.base ) THEN + RETURN( factor_space( tspace\extended_tuple_space.base, idx ) ); + END_IF; + RETURN( tspace\extended_tuple_space.extender ); + END_IF; + RETURN( ? ); + + END_FUNCTION; + + FUNCTION find_assembly_root( + constituent : SET OF product_definition + ) : SET OF product_definition; + + LOCAL + local_relation : SET OF assembly_component_usage := []; + local_relation2 : BAG OF assembly_component_usage := []; + local_parent : SET OF product_definition := []; + root : SET OF product_definition; + i : INTEGER := 0; + j : INTEGER := 0; + END_LOCAL; + IF ( SIZEOF( constituent ) = 1 ) AND assembly_root( constituent[1] ) THEN + RETURN( [constituent[1]] ); + ELSE + IF SIZEOF( constituent ) = 0 THEN + RETURN( [] ); + ELSE + REPEAT j := 1 TO HIINDEX( constituent ) BY 1; + local_relation2 := local_relation2 + QUERY ( pdr <* USEDIN( constituent[j], + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRODUCT_DEFINITION_RELATIONSHIP.' + 'RELATED_PRODUCT_DEFINITION' ) + | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ASSEMBLY_COMPONENT_USAGE' IN TYPEOF( pdr ) ) ); + END_REPEAT; + local_relation := bag_to_set( local_relation2 ); + IF SIZEOF( local_relation ) = 0 THEN + IF SIZEOF( constituent ) = 1 THEN + RETURN( [constituent[1]] ); + ELSE + RETURN( [] ); + END_IF; + ELSE + REPEAT i := 1 TO HIINDEX( local_relation ) BY 1; + REPEAT j := 1 TO HIINDEX( constituent ) BY 1; + IF local_relation[i].relating_product_definition <> constituent[j] THEN + local_parent := local_parent + local_relation[i].relating_product_definition; + END_IF; + END_REPEAT; + END_REPEAT; + IF ( SIZEOF( local_parent ) = 1 ) AND assembly_root( local_parent[1] ) THEN + RETURN( [local_parent[1]] ); + ELSE + IF SIZEOF( local_parent ) = 0 THEN + RETURN( [] ); + ELSE + root := find_assembly_root( local_parent ); + IF SIZEOF( root ) = 1 THEN + RETURN( root ); + ELSE + IF SIZEOF( root ) = 0 THEN + RETURN( [] ); + END_IF; + END_IF; + END_IF; + END_IF; + END_IF; + END_IF; + END_IF; + RETURN( [] ); + + END_FUNCTION; + + FUNCTION find_representative_shape_representation_of_product_definition( + item : product_definition + ) : shape_representation; + + LOCAL + local_s_r : SET OF shape_representation := []; + END_LOCAL; + local_s_r := QUERY ( z <* find_shape_representation_of_product_definition( item ) | ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.REPRESENTATIVE_SHAPE_REPRESENTATION' IN TYPEOF( z ) ) ); + IF SIZEOF( local_s_r ) = 1 THEN + RETURN( local_s_r[1] ); + ELSE + RETURN( ? ); + END_IF; + + END_FUNCTION; + + FUNCTION find_representative_shape_representation_of_shape_aspect( + item : shape_aspect + ) : shape_representation; + + LOCAL + local_s_r : SET OF shape_representation := []; + END_LOCAL; + local_s_r := QUERY ( z <* find_shape_representation_of_shape_aspect( item ) | ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.REPRESENTATIVE_SHAPE_REPRESENTATION' IN TYPEOF( z ) ) ); + IF SIZEOF( local_s_r ) = 1 THEN + RETURN( local_s_r[1] ); + ELSE + RETURN( ? ); + END_IF; + + END_FUNCTION; + + FUNCTION find_shape_representation_of_product_definition( + item : product_definition + ) : SET OF shape_representation; + + LOCAL + local_p_d_s : SET OF product_definition_shape := []; + local_p_d_s2 : BAG OF product_definition_shape := []; + local_s_d_r : SET OF shape_definition_representation := []; + local_s_d_r2 : BAG OF shape_definition_representation := []; + local_s_r : SET OF shape_representation := []; + i : INTEGER; + END_LOCAL; + local_p_d_s2 := local_p_d_s2 + QUERY ( pd <* USEDIN( item, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' + IN TYPEOF( pd ) ) ); + local_p_d_s := bag_to_set( local_p_d_s2 ); + REPEAT i := 1 TO HIINDEX( local_p_d_s ) BY 1; + local_s_d_r2 := local_s_d_r2 + QUERY ( pdr <* USEDIN( local_p_d_s[i], 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'SHAPE_DEFINITION_REPRESENTATION' IN TYPEOF( pdr ) ) ); + END_REPEAT; + local_s_d_r := bag_to_set( local_s_d_r2 ); + REPEAT i := 1 TO HIINDEX( local_s_d_r ) BY 1; + IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION' IN TYPEOF( local_s_d_r[i].used_representation ) + THEN + local_s_r := local_s_r + local_s_d_r[i].used_representation; + END_IF; + END_REPEAT; + RETURN( local_s_r ); + + END_FUNCTION; + + FUNCTION find_shape_representation_of_shape_aspect( + item : shape_aspect + ) : SET OF shape_representation; + + LOCAL + local_p_d : SET OF property_definition := []; + local_s_d_r : SET OF shape_definition_representation := []; + local_s_d_r2 : BAG OF shape_definition_representation := []; + local_s_r : SET OF shape_representation := []; + i : INTEGER; + END_LOCAL; + local_p_d := bag_to_set( USEDIN( item, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) ); + REPEAT i := 1 TO HIINDEX( local_p_d ) BY 1; + local_s_d_r2 := local_s_d_r2 + QUERY ( pdr <* USEDIN( local_p_d[i], 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'SHAPE_DEFINITION_REPRESENTATION' IN TYPEOF( pdr ) ) ); + END_REPEAT; + local_s_d_r := bag_to_set( local_s_d_r2 ); + REPEAT i := 1 TO HIINDEX( local_s_d_r ) BY 1; + IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION' IN TYPEOF( local_s_d_r[i].used_representation ) + THEN + local_s_r := local_s_r + local_s_d_r[i].used_representation; + END_IF; + END_REPEAT; + RETURN( local_s_r ); + + END_FUNCTION; + + FUNCTION first_proj_axis( + z_axis, 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] ) AND ( z.direction_ratios <> [-1, 0, 0] ) THEN + v := dummy_gri || direction( [1, 0, 0] ); + ELSE + v := dummy_gri || direction( [0, 1, 0] ); + END_IF; + ELSE + IF arg.dim <> 3 THEN + RETURN( ? ); + END_IF; + IF cross_product( arg, z ).magnitude = 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 free_variables_of( + expr : generic_expression + ) : SET OF generic_variable; + + LOCAL + typenames : SET OF STRING := stripped_typeof( expr ); + result : SET OF generic_variable := []; + exprs : LIST OF generic_expression := []; + END_LOCAL; + IF 'GENERIC_LITERAL' IN typenames THEN + RETURN( result ); + END_IF; + IF 'GENERIC_VARIABLE' IN typenames THEN + result := result + expr; + RETURN( result ); + END_IF; + IF 'QUANTIFIER_EXPRESSION' IN typenames THEN + exprs := QUERY ( ge <* expr\multiple_arity_generic_expression.operands | ( NOT ( ge IN expr\quantifier_expression.variables ) ) ); + REPEAT i := 1 TO SIZEOF( exprs ) BY 1; + result := result + free_variables_of( exprs[i] ); + END_REPEAT; + REPEAT i := 1 TO SIZEOF( expr\quantifier_expression.variables ) BY 1; + result := result - expr\quantifier_expression.variables[i]; + END_REPEAT; + RETURN( result ); + END_IF; + IF 'UNARY_GENERIC_EXPRESSION' IN typenames THEN + RETURN( free_variables_of( expr\unary_generic_expression.operand ) ); + END_IF; + IF 'BINARY_GENERIC_EXPRESSION' IN typenames THEN + result := free_variables_of( expr\binary_generic_expression.operands[1] ); + RETURN( result + free_variables_of( expr\binary_generic_expression.operands[2] ) ); + END_IF; + IF 'MULTIPLE_ARITY_GENERIC_EXPRESSION' IN typenames THEN + REPEAT i := 1 TO SIZEOF( expr\multiple_arity_generic_expression.operands ) BY 1; + result := result + free_variables_of( expr\multiple_arity_generic_expression.operands[i] ); + END_REPEAT; + RETURN( result ); + END_IF; + RETURN( result ); + + END_FUNCTION; + + FUNCTION function_applicability( + func : maths_function_select; + arguments : LIST [1 : ?] OF maths_value + ) : BOOLEAN; + + LOCAL + domain : tuple_space := convert_to_maths_function( func ).domain; + domain_types : SET OF STRING := TYPEOF( domain ); + narg : positive_integer := SIZEOF( arguments ); + arg : generic_expression; + END_LOCAL; + IF ( schema_prefix + 'PRODUCT_SPACE' ) IN domain_types THEN + IF space_dimension( domain ) <> narg THEN + RETURN( FALSE ); + END_IF; + ELSE + IF ( schema_prefix + 'EXTENDED_TUPLE_SPACE' ) IN domain_types THEN + IF space_dimension( domain ) > narg THEN + RETURN( FALSE ); + END_IF; + ELSE + RETURN( FALSE ); + END_IF; + END_IF; + REPEAT i := 1 TO narg BY 1; + arg := convert_to_operand( arguments[i] ); + IF NOT has_values_space( arg ) THEN + RETURN( FALSE ); + END_IF; + IF NOT compatible_spaces( factor_space( domain, i ), values_space_of( arg ) ) THEN + RETURN( FALSE ); + END_IF; + END_REPEAT; + RETURN( TRUE ); + + END_FUNCTION; + + FUNCTION function_is_1d_array( + func : maths_function + ) : BOOLEAN; + + LOCAL + temp : maths_space; + END_LOCAL; + IF NOT EXISTS( func ) THEN + RETURN( FALSE ); + END_IF; + IF space_dimension( func.domain ) <> 1 THEN + RETURN( FALSE ); + END_IF; + temp := factor1( func.domain ); + IF ( schema_prefix + 'PRODUCT_SPACE' ) IN TYPEOF( temp ) THEN + IF space_dimension( temp ) <> 1 THEN + RETURN( FALSE ); + END_IF; + temp := factor1( temp ); + END_IF; + IF ( schema_prefix + 'FINITE_INTEGER_INTERVAL' ) IN TYPEOF( temp ) THEN + RETURN( TRUE ); + END_IF; + RETURN( FALSE ); + + END_FUNCTION; + + FUNCTION function_is_1d_table( + func : maths_function + ) : BOOLEAN; + + LOCAL + temp : maths_space; + itvl : finite_integer_interval; + END_LOCAL; + IF NOT EXISTS( func ) THEN + RETURN( FALSE ); + END_IF; + IF space_dimension( func.domain ) <> 1 THEN + RETURN( FALSE ); + END_IF; + temp := factor1( func.domain ); + IF ( schema_prefix + 'PRODUCT_SPACE' ) IN TYPEOF( temp ) THEN + IF space_dimension( temp ) <> 1 THEN + RETURN( FALSE ); + END_IF; + temp := factor1( temp ); + END_IF; + IF ( schema_prefix + 'FINITE_INTEGER_INTERVAL' ) IN TYPEOF( temp ) THEN + itvl := temp; + RETURN( bool( ( itvl.min = 0 ) OR ( itvl.min = 1 ) ) ); + END_IF; + RETURN( FALSE ); + + END_FUNCTION; + + FUNCTION function_is_2d_table( + func : maths_function + ) : BOOLEAN; + + LOCAL + temp : maths_space; + pspace : product_space; + itvl1 : finite_integer_interval; + itvl2 : finite_integer_interval; + END_LOCAL; + IF NOT EXISTS( func ) THEN + RETURN( FALSE ); + END_IF; + IF space_dimension( func.domain ) <> 1 THEN + RETURN( FALSE ); + END_IF; + temp := factor1( func.domain ); + IF NOT ( 'PRODUCT_SPACE' IN stripped_typeof( temp ) ) THEN + RETURN( FALSE ); + END_IF; + pspace := temp; + IF space_dimension( pspace ) <> 2 THEN + RETURN( FALSE ); + END_IF; + temp := factor1( pspace ); + IF NOT ( 'FINITE_INTEGER_INTERVAL' IN stripped_typeof( temp ) ) THEN + RETURN( FALSE ); + END_IF; + itvl1 := temp; + temp := factor_space( pspace, 2 ); + IF NOT ( 'FINITE_INTEGER_INTERVAL' IN stripped_typeof( temp ) ) THEN + RETURN( FALSE ); + END_IF; + itvl2 := temp; + RETURN( bool( ( itvl1.min = itvl2.min ) AND ( ( itvl1.min = 0 ) OR ( itvl1.min = 1 ) ) ) ); + + END_FUNCTION; + + FUNCTION function_is_array( + func : maths_function + ) : BOOLEAN; + + LOCAL + tspace : tuple_space; + temp : maths_space; + END_LOCAL; + IF NOT EXISTS( func ) THEN + RETURN( FALSE ); + END_IF; + tspace := func.domain; + IF ( space_dimension( tspace ) = 1 ) AND ( ( schema_prefix + 'TUPLE_SPACE' ) IN TYPEOF( factor1( tspace ) ) ) THEN + tspace := factor1( tspace ); + END_IF; + IF NOT ( ( schema_prefix + 'PRODUCT_SPACE' ) IN TYPEOF( tspace ) ) THEN + RETURN( FALSE ); + END_IF; + REPEAT i := 1 TO space_dimension( tspace ) BY 1; + temp := factor_space( tspace, i ); + IF NOT ( ( schema_prefix + 'FINITE_INTEGER_INTERVAL' ) IN TYPEOF( temp ) ) THEN + RETURN( FALSE ); + END_IF; + END_REPEAT; + RETURN( TRUE ); + + END_FUNCTION; + + FUNCTION function_is_table( + func : maths_function + ) : BOOLEAN; + + LOCAL + tspace : tuple_space; + temp : maths_space; + base : INTEGER; + END_LOCAL; + IF NOT EXISTS( func ) THEN + RETURN( FALSE ); + END_IF; + tspace := func.domain; + IF ( space_dimension( tspace ) = 1 ) AND ( ( schema_prefix + 'TUPLE_SPACE' ) IN TYPEOF( factor1( tspace ) ) ) THEN + tspace := factor1( tspace ); + END_IF; + IF NOT ( ( schema_prefix + 'PRODUCT_SPACE' ) IN TYPEOF( tspace ) ) THEN + RETURN( FALSE ); + END_IF; + temp := factor1( tspace ); + IF NOT ( ( schema_prefix + 'FINITE_INTEGER_INTERVAL' ) IN TYPEOF( temp ) ) THEN + RETURN( FALSE ); + END_IF; + base := temp\finite_integer_interval.min; + IF ( base <> 0 ) AND ( base <> 1 ) THEN + RETURN( FALSE ); + END_IF; + REPEAT i := 2 TO space_dimension( tspace ) BY 1; + temp := factor_space( tspace, i ); + IF NOT ( ( schema_prefix + 'FINITE_INTEGER_INTERVAL' ) IN TYPEOF( temp ) ) THEN + RETURN( FALSE ); + END_IF; + IF temp\finite_integer_interval.min <> base THEN + RETURN( FALSE ); + END_IF; + END_REPEAT; + RETURN( TRUE ); + + END_FUNCTION; + + FUNCTION gbsf_check_curve( + cv : representation_item + ) : BOOLEAN; + IF SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.BOUNDED_CURVE', + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CONIC' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'CURVE_REPLICA' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LINE', + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.OFFSET_CURVE_3D' ] * TYPEOF( cv ) ) > 1 THEN + RETURN( FALSE ); + END_IF; + IF SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CIRCLE', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'ELLIPSE' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.TRIMMED_CURVE'] * TYPEOF( cv ) ) = 1 THEN + RETURN( TRUE ); + ELSE + IF ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CURVE_REPLICA' IN TYPEOF( cv ) THEN + RETURN( gbsf_check_curve( cv\curve_replica.parent_curve ) ); + ELSE + IF ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.POLYLINE' IN TYPEOF( cv\offset_curve_3d.basis_curve ) ) ) + THEN + RETURN( gbsf_check_curve( cv\offset_curve_3d.basis_curve ) ); + ELSE + IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.POLYLINE' IN TYPEOF( cv ) THEN + IF SIZEOF( cv\polyline.points ) >= 3 THEN + RETURN( TRUE ); + END_IF; + ELSE + IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ) BY 1; + IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CARTESIAN_POINT' IN TYPEOF( pnt ) THEN + RETURN( TRUE ); + ELSE + IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.POINT_ON_CURVE' IN TYPEOF( pnt ) THEN + RETURN( gbsf_check_curve( pnt\point_on_curve.basis_curve ) ); + ELSE + IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.POINT_ON_SURFACE' IN TYPEOF( pnt ) THEN + RETURN( gbsf_check_surface( pnt\point_on_surface.basis_surface ) ); + ELSE + IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SPHERICAL_SURFACE', + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.TOROIDAL_SURFACE' , + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CURVE_BOUNDED_SURFACE' , + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.RECTANGULAR_TRIMMED_SURFACE' ] * TYPEOF( sf ) ) = 1 THEN + RETURN( TRUE ); + ELSE + IF ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.RECTANGULAR_COMPOSITE_SURFACE' IN TYPEOF( sf ) THEN + REPEAT i := 1 TO SIZEOF( sf\rectangular_composite_surface.segments ) BY 1; + REPEAT j := 1 TO SIZEOF( sf\rectangular_composite_surface.segments[i] ) BY 1; + 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 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SURFACE_REPLICA' IN TYPEOF( sf ) THEN + RETURN( gbsf_check_surface( sf\surface_replica.parent_surface ) ); + ELSE + IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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_associated_mandatory_document_ids( + pdc : product_definition_context + ) : SET OF STRING; + + LOCAL + result : SET OF STRING := []; + adrs_raw : SET OF applied_document_reference := bag_to_set( USEDIN( pdc, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.APPLIED_DOCUMENT_REFERENCE.ITEMS' ) ); + adrs_filtered : SET OF applied_document_reference := []; + ras : SET OF role_association; + dpas : SET OF document_product_association; + END_LOCAL; + REPEAT i := 1 TO HIINDEX( adrs_raw ) BY 1; + IF adrs_raw[i]\document_reference.role\object_role.name = 'mandatory' THEN + adrs_filtered := adrs_filtered + adrs_raw[i]; + END_IF; + END_REPEAT; + REPEAT i := 1 TO HIINDEX( adrs_filtered ) BY 1; + dpas := bag_to_set( USEDIN( adrs_filtered[i]\document_reference.assigned_document, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.DOCUMENT_PRODUCT_ASSOCIATION.RELATING_DOCUMENT' ) ); + REPEAT j := 1 TO HIINDEX( dpas ) BY 1; + IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.DOCUMENT_PRODUCT_EQUIVALENCE' IN TYPEOF( dpas[j] ) THEN + IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRODUCT_DEFINITION_FORMATION' IN TYPEOF( dpas[j]\ + document_product_association.related_product ) THEN + result := result + dpas[j]\document_product_association.related_product\product_definition_formation.of_product\ + product.id; + END_IF; + IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRODUCT' IN TYPEOF( dpas[j].related_product ) THEN + result := result + dpas[j]\document_product_association.related_product\product.id; + END_IF; + END_IF; + END_REPEAT; + END_REPEAT; + RETURN( result ); + + 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 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PCURVE' IN TYPEOF( c ) THEN + surfs := [c\pcurve.basis_surface]; + ELSE + IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SURFACE_CURVE' IN TYPEOF( c ) THEN + n := SIZEOF( c\surface_curve.associated_geometry ); + REPEAT i := 1 TO n BY 1; + surfs := surfs + associated_surface( c\surface_curve.associated_geometry[i] ); + END_REPEAT; + END_IF; + END_IF; + IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.COMPOSITE_CURVE_ON_SURFACE' IN TYPEOF( c ) THEN + 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 BY 1; + 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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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_directed_link( + nodes : LIST OF representation; + undirected_link : LIST OF chained_representation_link + ) : LIST OF representation_relationship; + + LOCAL + directed_link : LIST OF representation_relationship := []; + END_LOCAL; + IF ( SIZEOF( nodes ) <> ( SIZEOF( undirected_link ) + 1 ) ) OR ( VALUE_UNIQUE( nodes ) = FALSE ) THEN + RETURN( ? ); + END_IF; + REPEAT i := 1 TO SIZEOF( undirected_link ) BY 1; + CASE TRUE OF + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.REPRESENTATION_CONTEXT' IN TYPEOF( undirected_link[i] ) : + BEGIN + IF ( nodes[i]\representation.context_of_items :=: undirected_link[i] ) AND ( nodes[i + 1]\representation. + context_of_items :=: undirected_link[i] ) THEN + INSERT( directed_link, representation_relationship( '', '', nodes[i + 1], nodes[i] ), i - 1 ); + ELSE + RETURN( ? ); + END_IF; + END; + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.REPRESENTATION_RELATIONSHIP' IN TYPEOF( undirected_link[i] ) : + BEGIN + IF ( ( nodes[i] :=: undirected_link[i]\representation_relationship.rep_1 ) AND ( nodes[i + 1] :=: undirected_link[i]\ + representation_relationship.rep_2 ) ) OR ( ( nodes[i] :=: undirected_link[i]\representation_relationship.rep_2 ) + AND ( nodes[i + 1] :=: undirected_link[i]\representation_relationship.rep_1 ) ) THEN + INSERT( directed_link, representation_relationship( '', '', nodes[i + 1], nodes[i] ), i - 1 ); + ELSE + RETURN( ? ); + END_IF; + END; + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MAPPED_ITEM' IN TYPEOF( undirected_link[i] ) : + BEGIN + IF ( nodes[i] IN using_representations( undirected_link[i] ) ) AND ( nodes[i + 1] :=: undirected_link[i]\mapped_item. + mapping_source\representation_map.mapped_representation ) THEN + INSERT( directed_link, representation_relationship( '', '', nodes[i + 1], nodes[i] ), i - 1 ); + ELSE + RETURN( ? ); + END_IF; + END; + OTHERWISE : RETURN( ? ); + END_CASE; + END_REPEAT; + IF VALUE_UNIQUE( directed_link ) = FALSE THEN + RETURN( ? ); + END_IF; + RETURN( directed_link ); + + END_FUNCTION; + + FUNCTION get_id_value( + obj : id_attribute_select + ) : identifier; + + LOCAL + id_bag : BAG OF id_attribute := USEDIN( obj, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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_kinematic_joints_from_kinematic_loops( + kls : SET OF kinematic_loop + ) : SET OF kinematic_joint; + + LOCAL + result : SET OF oriented_joint := []; + END_LOCAL; + IF SIZEOF( kls ) > 0 THEN + REPEAT i := 1 TO HIINDEX( kls ) BY 1; + result := result + kls[i].edge_list; + END_REPEAT; + END_IF; + RETURN( get_kinematic_joints_from_oriented_joints( result ) ); + + END_FUNCTION; + + FUNCTION get_kinematic_joints_from_oriented_joints( + ors : SET OF oriented_joint + ) : SET OF kinematic_joint; + + LOCAL + result : SET OF kinematic_joint := []; + END_LOCAL; + IF SIZEOF( ors ) > 0 THEN + REPEAT i := 1 TO HIINDEX( ors ) BY 1; + result := result + ors[i].edge_element; + END_REPEAT; + END_IF; + RETURN( result ); + + END_FUNCTION; + + FUNCTION get_name_value( + obj : name_attribute_select + ) : label; + + LOCAL + name_bag : BAG OF name_attribute := USEDIN( obj, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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_plane_of_implicit_geometry( + ps : positioned_sketch + ) : plane; + + LOCAL + sb : sketch_basis_select := ps.sketch_basis; + result : plane := ?; + END_LOCAL; + IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FACE_SURFACE' IN TYPEOF( sb ) THEN + result := sb\face_surface.face_geometry; + ELSE + IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CURVE_BOUNDED_SURFACE' IN TYPEOF( sb ) THEN + result := sb\curve_bounded_surface.basis_surface; + ELSE + IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PLANAR_CURVE_SELECT' IN TYPEOF( sb ) THEN + + BEGIN + IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CONIC' IN TYPEOF( sb ) THEN + result := dummy_gri || surface( ) || elementary_surface( sb\conic.position ) || plane( ); + END_IF; + IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.TRIMMED_CURVE' IN TYPEOF( sb ) THEN + + BEGIN + result := get_plane_of_implicit_geometry( dummy_gri || positioned_sketch( sb\trimmed_curve.basis_curve, [] ) ); + END; + END_IF; + IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PCURVE' IN TYPEOF( sb ) THEN + result := sb\pcurve.basis_surface; + END_IF; + IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SURFACE_CURVE' IN TYPEOF( sb ) THEN + + BEGIN + IF ( SIZEOF( sb\surface_curve.basis_surface ) = 1 ) AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'PLANE' IN TYPEOF( sb\surface_curve.basis_surface[1] ) ) THEN + result := sb\surface_curve.basis_surface[1]; + ELSE + IF ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PLANE' IN TYPEOF( sb\surface_curve.basis_surface[1] ) ) + AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PLANE' IN TYPEOF( sb\surface_curve.basis_surface[2] ) ) + THEN + result := ?; + ELSE + IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PLANE' IN TYPEOF( sb\surface_curve.basis_surface[1] ) + THEN + result := sb\surface_curve.basis_surface[1]; + ELSE + result := sb\surface_curve.basis_surface[2]; + END_IF; + END_IF; + END_IF; + END; + END_IF; + END; + END_IF; + END_IF; + END_IF; + RETURN( result ); + + END_FUNCTION; + + FUNCTION get_property_definition_representations( + c_def_instance : characterized_definition + ) : SET 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( c_def_instance, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + + 'DEFINITION' ) ); + IF SIZEOF( pd_set ) < 1 THEN + RETURN( pdr_set ); + END_IF; + REPEAT i := 1 TO HIINDEX( pd_set ) BY 1; + pdr_set := pdr_set + bag_to_set( USEDIN( pd_set[i], 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) ); + END_REPEAT; + RETURN( pdr_set ); + + END_FUNCTION; + + FUNCTION get_relative_direction_2points( + cp1, cp2 : cartesian_point + ) : direction; + + LOCAL + d1 : REAL; + d2 : REAL; + d3 : REAL; + magnitude : REAL; + result : direction := ?; + END_LOCAL; + IF ( cp1.dim <> 3 ) OR ( cp2.dim <> 3 ) THEN + RETURN( result ); + ELSE + + BEGIN + d1 := cp2.coordinates[1] - cp1.coordinates[1]; + d2 := cp2.coordinates[2] - cp1.coordinates[2]; + d3 := cp2.coordinates[3] - cp1.coordinates[3]; + magnitude := SQRT( ( d1 * d1 ) + ( d2 * d2 ) + ( d3 * d3 ) ); + IF magnitude = 0 THEN + RETURN( result ); + END_IF; + result := dummy_gri || direction( [d1, d2, d3] ); + END; + END_IF; + RETURN( result ); + + END_FUNCTION; + + FUNCTION get_role( + obj : role_select + ) : object_role; + + LOCAL + role_bag : BAG OF role_association := USEDIN( obj, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + + 'DEFINITION' ) ); + IF SIZEOF( pd_set ) < 1 THEN + RETURN( pdr_set ); + END_IF; + REPEAT i := 1 TO HIINDEX( pd_set ) BY 1; + pdr_set := pdr_set + QUERY ( pdr <* USEDIN( pd_set[i], 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION_REPRESENTATION.' + 'DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'SHAPE_DEFINITION_REPRESENTATION' IN TYPEOF( pdr ) ) ); + END_REPEAT; + RETURN( pdr_set ); + + END_FUNCTION; + + FUNCTION get_shape_aspects( + c_def_instance : characterized_definition + ) : SET OF shape_aspect; + + LOCAL + pd_set : SET OF product_definition_shape := []; + pdr_set : SET OF shape_aspect := []; + END_LOCAL; + pd_set := bag_to_set( QUERY ( pd <* USEDIN( c_def_instance, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' + IN TYPEOF( pd ) ) ) ); + IF SIZEOF( pd_set ) < 1 THEN + RETURN( pdr_set ); + END_IF; + REPEAT i := 1 TO HIINDEX( pd_set ) BY 1; + pdr_set := pdr_set + bag_to_set( USEDIN( pd_set[i], 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT.' + + 'OF_SHAPE' ) ); + END_REPEAT; + RETURN( pdr_set ); + + END_FUNCTION; + + FUNCTION has_values_space( + expr : generic_expression + ) : BOOLEAN; + + LOCAL + typenames : SET OF STRING := stripped_typeof( expr ); + END_LOCAL; + IF 'EXPRESSION' IN typenames THEN + RETURN( bool( ( 'NUMERIC_EXPRESSION' IN typenames ) OR ( 'STRING_EXPRESSION' IN typenames ) OR ( 'BOOLEAN_EXPRESSION' IN + typenames ) ) ); + END_IF; + IF 'MATHS_FUNCTION' IN typenames THEN + RETURN( TRUE ); + END_IF; + IF 'FUNCTION_APPLICATION' IN typenames THEN + RETURN( TRUE ); + END_IF; + IF 'MATHS_SPACE' IN typenames THEN + RETURN( TRUE ); + END_IF; + IF 'MATHS_VARIABLE' IN typenames THEN + RETURN( TRUE ); + END_IF; + IF 'DEPENDENT_VARIABLE_DEFINITION' IN typenames THEN + RETURN( has_values_space( expr\unary_generic_expression.operand ) ); + END_IF; + IF 'COMPLEX_NUMBER_LITERAL' IN typenames THEN + RETURN( TRUE ); + END_IF; + IF 'LOGICAL_LITERAL' IN typenames THEN + RETURN( TRUE ); + END_IF; + IF 'BINARY_LITERAL' IN typenames THEN + RETURN( TRUE ); + END_IF; + IF 'MATHS_ENUM_LITERAL' IN typenames THEN + RETURN( TRUE ); + END_IF; + IF 'REAL_TUPLE_LITERAL' IN typenames THEN + RETURN( TRUE ); + END_IF; + IF 'INTEGER_TUPLE_LITERAL' IN typenames THEN + RETURN( TRUE ); + END_IF; + IF 'ATOM_BASED_LITERAL' IN typenames THEN + RETURN( TRUE ); + END_IF; + IF 'MATHS_TUPLE_LITERAL' IN typenames THEN + RETURN( TRUE ); + END_IF; + IF 'PARTIAL_DERIVATIVE_EXPRESSION' IN typenames THEN + RETURN( TRUE ); + END_IF; + IF 'DEFINITE_INTEGRAL_EXPRESSION' IN typenames THEN + RETURN( TRUE ); + END_IF; + RETURN( FALSE ); + + END_FUNCTION; + + FUNCTION inspected_product_definition( + dqir : data_quality_inspection_result_representation + ) : BAG OF product_definition; + + LOCAL + dqdr : BAG OF data_quality_definition_representation_relationship := []; + pdqdr : BAG OF product_data_and_data_quality_relationship := []; + pd : BAG OF product_definition := []; + END_LOCAL; + dqdr := USEDIN( dqir, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'DATA_QUALITY_DEFINITION_REPRESENTATION_RELATIONSHIP.' + 'USED_REPRESENTATION' ); + REPEAT i := 1 TO SIZEOF( dqdr ) BY 1; + pdqdr := USEDIN( dqdr[i].definition, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'PRODUCT_DATA_AND_DATA_QUALITY_RELATIONSHIP.' + 'DATA_QUALITY' ); + REPEAT j := 1 TO SIZEOF( pdqdr ) BY 1; + pd := pd + pdqdr[j].product_data; + END_REPEAT; + END_REPEAT; + RETURN( pd ); + + END_FUNCTION; + + FUNCTION invalidate_vrep_item( + item : variational_representation_item + ) : BOOLEAN; + + LOCAL + reps : SET [1 : ?] OF representation := using_representations( item ); + svri : SET [1 : ?] OF variational_representation_item; + iar : instance_attribute_reference; + i : INTEGER; + n : INTEGER := HIINDEX( reps ); + END_LOCAL; + IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.BOUND_VARIATIONAL_PARAMETER' IN TYPEOF( item ) THEN + IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.INSTANCE_ATTRIBUTE_REFERENCE' IN TYPEOF( item\generic_variable. + interpretation\environment.semantics ) THEN + + BEGIN + iar := item\generic_variable.interpretation\environment.semantics; + IF reps <> using_representations( iar\instance_attribute_reference.owning_instance ) THEN + RETURN( TRUE ); + END_IF; + END; + ELSE + RETURN( TRUE ); + END_IF; + END_IF; + IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.UNBOUND_VARIATIONAL_PARAMETER' IN TYPEOF( item ) THEN + + BEGIN + REPEAT i := 1 TO n BY 1; + svri := QUERY ( q <* reps[i]\representation.items | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'FREE_FORM_CONSTRAINT' IN TYPEOF( q ) ) ); + IF SIZEOF( QUERY ( r <* svri | ( item IN ( r\free_form_constraint.reference_elements + r\free_form_constraint. + constrained_elements ) ) ) ) = 0 THEN + RETURN( TRUE ); + END_IF; + END_REPEAT; + END; + END_IF; + IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FIXED_INSTANCE_ATTRIBUTE_SET' IN TYPEOF( item ) THEN + REPEAT i := 1 TO SIZEOF( item\fixed_instance_attribute_set.fixed_attributes ) BY 1; + IF reps <> using_representations( item\fixed_instance_attribute_set.fixed_attributes[i]\instance_attribute_reference. + owning_instance ) THEN + RETURN( TRUE ); + END_IF; + END_REPEAT; + END_IF; + IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.EXPLICIT_CONSTRAINT' IN TYPEOF( item ) THEN + IF SIZEOF( QUERY ( q <* ( item\explicit_constraint.reference_elements + item\explicit_constraint.constrained_elements ) | + ( reps <> using_representations( q ) ) ) ) > 0 THEN + RETURN( TRUE ); + END_IF; + END_IF; + IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.AUXILIARY_GEOMETRIC_REPRESENTATION_ITEM' IN TYPEOF( item ) THEN + + BEGIN + REPEAT i := 1 TO n BY 1; + svri := QUERY ( q <* reps[i]\representation.items | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'EXPLICIT_GEOMETRIC_CONSTRAINT' IN TYPEOF( q ) ) ); + IF SIZEOF( QUERY ( r <* svri | ( item IN r\explicit_geometric_constraint.reference_elements ) ) ) = 0 THEN + RETURN( TRUE ); + END_IF; + END_REPEAT; + END; + END_IF; + RETURN( FALSE ); + + END_FUNCTION; + + FUNCTION is_acyclic( + arg : generic_expression + ) : BOOLEAN; + RETURN( acyclic( arg, [] ) ); + + END_FUNCTION; + + FUNCTION is_coordinate_property( + arg : specified_general_property + ) : BOOLEAN; +(* this line + IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.EXTERNALLY_DEFINED_ITEM' IN TYPEOF( arg ) THEN + is replaced by the following two lines as patch for BZ#5019 *) + IF ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.EXTERNALLY_DEFINED_ITEM' IN + TYPEOF(arg\specified_general_property.name_specifier) ) THEN + RETURN( TRUE ); + END_IF; +(* this line + RETURN( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.COORDINATE_DATA_NAME' IN TYPEOF( arg ) ); + is replaced by the following section as patch for BZ#5019 and BZ#5054 + RETURN ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.COORDINATE_DATA_NAME' IN + TYPEOF(arg\specified_general_property.name_specifier)); *) + IF (arg\specified_general_property.name_specifier = PROPERTY_3D_DATA_NAME.POSITION) + OR + ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.COORDINATE_DATA_NAME' IN + TYPEOF(arg\specified_general_property.name_specifier)) THEN + RETURN ( TRUE ); + ELSE + RETURN( FALSE ); + END_IF; + END_FUNCTION; + + FUNCTION is_int_expr( + arg : numeric_expression + ) : BOOLEAN; + IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.INT_LITERAL' IN TYPEOF( arg ) THEN + RETURN( TRUE ); + END_IF; + IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.REAL_LITERAL' IN TYPEOF( arg ) THEN + RETURN( FALSE ); + END_IF; + IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.INT_NUMERIC_VARIABLE' IN TYPEOF( arg ) THEN + RETURN( TRUE ); + END_IF; + IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.REAL_NUMERIC_VARIABLE' IN TYPEOF( arg ) THEN + RETURN( FALSE ); + END_IF; + IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ABS_FUNCTION' IN TYPEOF( arg ) THEN + RETURN( is_int_expr( arg\unary_numeric_expression.operand ) ); + END_IF; + IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MINUS_FUNCTION' IN TYPEOF( arg ) THEN + RETURN( is_int_expr( arg\unary_numeric_expression.operand ) ); + END_IF; + IF ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SIN_FUNCTION' IN TYPEOF( arg ) ) OR ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.COS_FUNCTION' IN TYPEOF( arg ) ) OR ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.TAN_FUNCTION' IN TYPEOF( arg ) ) OR ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ASIN_FUNCTION' IN TYPEOF( arg ) ) OR ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ACOS_FUNCTION' IN TYPEOF( arg ) ) OR ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ATAN_FUNCTION' IN TYPEOF( arg ) ) OR ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.EXP_FUNCTION' IN TYPEOF( arg ) ) OR ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LOG_FUNCTION' IN TYPEOF( arg ) ) OR ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LOG2_FUNCTION' IN TYPEOF( arg ) ) OR ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LOG10_FUNCTION' IN TYPEOF( arg ) ) OR ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SQUARE_ROOT_FUNCTION' IN TYPEOF( arg ) ) THEN + RETURN( FALSE ); + END_IF; + IF ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PLUS_EXPRESSION' IN TYPEOF( arg ) ) OR ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MULT_EXPRESSION' IN TYPEOF( arg ) ) OR ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MAXIMUM_FUNCTION' IN TYPEOF( arg ) ) OR ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MINIMUM_FUNCTION' IN TYPEOF( arg ) ) THEN + REPEAT i := 1 TO SIZEOF( arg\multiple_arity_numeric_expression.operands ) BY 1; + IF NOT is_int_expr( arg\multiple_arity_numeric_expression.operands[i] ) THEN + RETURN( FALSE ); + END_IF; + END_REPEAT; + RETURN( TRUE ); + END_IF; + IF ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MINUS_EXPRESSION' IN TYPEOF( arg ) ) OR ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.DIV_EXPRESSION' IN TYPEOF( arg ) ) OR ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MOD_EXPRESSION' IN TYPEOF( arg ) ) THEN + RETURN( TRUE ); + END_IF; + IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SLASH_EXPRESSION' IN TYPEOF( arg ) THEN + RETURN( FALSE ); + END_IF; + IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_FUNCTION' IN TYPEOF( arg ) THEN + RETURN( TRUE ); + END_IF; + IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.VALUE_FUNCTION' IN TYPEOF( arg ) THEN + IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.INT_VALUE_FUNCTION' IN TYPEOF( arg ) THEN + RETURN( TRUE ); + ELSE + RETURN( FALSE ); + END_IF; + END_IF; + IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.INTEGER_DEFINED_FUNCTION' IN TYPEOF( arg ) THEN + RETURN( TRUE ); + END_IF; + IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.REAL_DEFINED_FUNCTION' IN TYPEOF( arg ) THEN + RETURN( FALSE ); + END_IF; + IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.BOOLEAN_DEFINED_FUNCTION' IN TYPEOF( arg ) THEN + RETURN( FALSE ); + END_IF; + IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.STRING_DEFINED_FUNCTION' IN TYPEOF( arg ) THEN + RETURN( FALSE ); + END_IF; + RETURN( FALSE ); + + END_FUNCTION; + + FUNCTION is_sql_mappable( + arg : expression + ) : BOOLEAN; + IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SIMPLE_NUMERIC_EXPRESSION' IN TYPEOF( arg ) THEN + RETURN( TRUE ); + END_IF; + IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SQL_MAPPABLE_DEFINED_FUNCTION' IN TYPEOF( arg ) THEN + RETURN( TRUE ); + END_IF; + IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MINUS_FUNCTION' IN TYPEOF( arg ) THEN + RETURN( is_sql_mappable( arg\unary_numeric_expression.operand ) ); + END_IF; + IF ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ABS_FUNCTION' IN TYPEOF( arg ) ) OR ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SIN_FUNCTION' IN TYPEOF( arg ) ) OR ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.COS_FUNCTION' IN TYPEOF( arg ) ) OR ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.TAN_FUNCTION' IN TYPEOF( arg ) ) OR ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ASIN_FUNCTION' IN TYPEOF( arg ) ) OR ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ACOS_FUNCTION' IN TYPEOF( arg ) ) OR ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ATAN_FUNCTION' IN TYPEOF( arg ) ) OR ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.EXP_FUNCTION' IN TYPEOF( arg ) ) OR ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LOG_FUNCTION' IN TYPEOF( arg ) ) OR ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LOG2_FUNCTION' IN TYPEOF( arg ) ) OR ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LOG10_FUNCTION' IN TYPEOF( arg ) ) OR ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SQUARE_ROOT_FUNCTION' IN TYPEOF( arg ) ) OR ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.VALUE_FUNCTION' IN TYPEOF( arg ) ) OR ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_FUNCTION' IN TYPEOF( arg ) ) THEN + RETURN( FALSE ); + END_IF; + IF ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PLUS_EXPRESSION' IN TYPEOF( arg ) ) OR ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MULT_EXPRESSION' IN TYPEOF( arg ) ) OR ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MAXIMUM_FUNCTION' IN TYPEOF( arg ) ) OR ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MINIMUM_FUNCTION' IN TYPEOF( arg ) ) THEN + REPEAT i := 1 TO SIZEOF( arg\multiple_arity_numeric_expression.operands ) BY 1; + IF NOT is_sql_mappable( arg\multiple_arity_numeric_expression.operands[i] ) THEN + RETURN( FALSE ); + END_IF; + END_REPEAT; + RETURN( TRUE ); + END_IF; + IF ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MINUS_EXPRESSION' IN TYPEOF( arg ) ) OR ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.DIV_EXPRESSION' IN TYPEOF( arg ) ) OR ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MOD_EXPRESSION' IN TYPEOF( arg ) ) OR ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.POWER_EXPRESSION' IN TYPEOF( arg ) ) THEN + RETURN( FALSE ); + END_IF; + IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SIMPLE_BOOLEAN_EXPRESSION' IN TYPEOF( arg ) THEN + RETURN( TRUE ); + END_IF; + IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.NOT_EXPRESSION' IN TYPEOF( arg ) THEN + RETURN( is_sql_mappable( arg\unary_generic_expression.operand ) ); + END_IF; + IF ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ODD_FUNCTION' IN TYPEOF( arg ) ) OR ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.XOR_EXPRESSION' IN TYPEOF( arg ) ) THEN + RETURN( FALSE ); + END_IF; + IF ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.AND_EXPRESSION' IN TYPEOF( arg ) ) OR ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.OR_EXPRESSION' IN TYPEOF( arg ) ) THEN + REPEAT i := 1 TO SIZEOF( arg\multiple_arity_boolean_expression.operands ) BY 1; + IF NOT is_sql_mappable( arg\multiple_arity_boolean_expression.operands[i] ) THEN + RETURN( FALSE ); + END_IF; + END_REPEAT; + RETURN( TRUE ); + END_IF; + IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.COMPARISON_EQUAL' IN TYPEOF( arg ) ) OR ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.COMPARISON_GREATER' IN TYPEOF( arg ) ) OR ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.COMPARISON_GREATER_EQUAL' IN TYPEOF( arg ) ) OR ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.COMPARISON_LESS' IN TYPEOF( arg ) ) OR ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.COMPARISON_LESS_EQUAL' IN TYPEOF( arg ) ) OR ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.COMPARISON_NOT_EQUAL' IN TYPEOF( arg ) ) OR ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.NUMERIC_DEFINED_FUNCTION' IN TYPEOF( arg ) ) OR ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.BOOLEAN_DEFINED_FUNCTION' IN TYPEOF( arg ) ) OR ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.STRING_DEFINED_FUNCTION' IN TYPEOF( arg ) ) THEN + RETURN( FALSE ); + END_IF; + IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SIMPLE_STRING_EXPRESSION' IN TYPEOF( arg ) THEN + RETURN( TRUE ); + END_IF; + IF ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.INDEX_EXPRESSION' IN TYPEOF( arg ) ) OR ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SUBSTRING_EXPRESSION' IN TYPEOF( arg ) ) OR ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CONCAT_EXPRESSION' IN TYPEOF( arg ) ) OR ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 SIZEOF( USEDIN( item, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.REPRESENTATION.ITEMS' ) * cntxt. + representations_in_context ) > 0 THEN + RETURN( TRUE ); + ELSE + y := QUERY ( z <* USEDIN( item, '' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.REPRESENTATION_ITEM' IN + TYPEOF( z ) ) ); + IF SIZEOF( y ) > 0 THEN + REPEAT i := 1 TO HIINDEX( y ) BY 1; + IF item_in_context( y[i], cntxt ) THEN + RETURN( TRUE ); + END_IF; + END_REPEAT; + END_IF; + END_IF; + 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 ) BY 1; + 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 ) BY 1; + the_reverse := topology_reversed( a_list[i] ) + the_reverse; + END_REPEAT; + RETURN( the_reverse ); + + END_FUNCTION; + + FUNCTION list_selected_components( + aggr : AGGREGATE OF LIST OF maths_value; + k : positive_integer + ) : LIST OF maths_value; + + LOCAL + result : LIST OF maths_value := []; + j : INTEGER := 0; + END_LOCAL; + REPEAT i := LOINDEX( aggr ) TO HIINDEX( aggr ) BY 1; + IF k <= SIZEOF( aggr[i] ) THEN + INSERT( result, aggr[i][k], j ); + j := j + 1; + END_IF; + END_REPEAT; + RETURN( result ); + + 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] : 0]; + REPEAT i := 2 TO n BY 1; + 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 OF GENERIC:t; + + LOCAL + s : SET OF GENERIC:t := []; + END_LOCAL; + REPEAT i := 1 TO SIZEOF( l ) BY 1; + 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; + IF ( ( u1 - low1 ) + 1 ) <> SIZEOF( lis ) THEN + RETURN( ? ); + END_IF; + IF ( ( u2 - low2 ) + 1 ) <> SIZEOF( lis[1] ) THEN + RETURN( ? ); + END_IF; + res := [list_to_array( lis[1], low2, u2 ) : 0]; + REPEAT i := 2 TO HIINDEX( lis ) BY 1; + 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 make_atom_based_literal( + lit_value : atom_based_value + ) : atom_based_literal; + RETURN( atom_based_literal( lit_value ) || generic_literal( ) || simple_generic_expression( ) || generic_expression( ) ); + + END_FUNCTION; + + FUNCTION make_binary_literal( + lit_value : BINARY + ) : binary_literal; + RETURN( binary_literal( lit_value ) || generic_literal( ) || simple_generic_expression( ) || generic_expression( ) ); + + END_FUNCTION; + + FUNCTION make_boolean_literal( + lit_value : BOOLEAN + ) : boolean_literal; + RETURN( boolean_literal( lit_value ) || simple_boolean_expression( ) || boolean_expression( ) || expression( ) || + generic_expression( ) || simple_generic_expression( ) || generic_literal( ) ); + + END_FUNCTION; + + FUNCTION make_cartesian_complex_number_region( + real_constraint, imag_constraint : real_interval + ) : cartesian_complex_number_region; + RETURN( cartesian_complex_number_region( real_constraint, imag_constraint ) || maths_space( ) || generic_expression( ) || + generic_literal( ) || simple_generic_expression( ) ); + + END_FUNCTION; + + FUNCTION make_complex_number_literal( + rpart, ipart : REAL + ) : complex_number_literal; + RETURN( complex_number_literal( rpart, ipart ) || generic_literal( ) || simple_generic_expression( ) || + generic_expression( ) ); + + END_FUNCTION; + + FUNCTION make_elementary_function( + func_id : elementary_function_enumerators + ) : elementary_function; + RETURN( elementary_function( func_id ) || maths_function( ) || generic_expression( ) || generic_literal( ) || + simple_generic_expression( ) ); + + END_FUNCTION; + + FUNCTION make_elementary_space( + space_id : elementary_space_enumerators + ) : elementary_space; + RETURN( elementary_space( space_id ) || maths_space( ) || generic_expression( ) || generic_literal( ) || + simple_generic_expression( ) ); + + END_FUNCTION; + + FUNCTION make_extended_tuple_space( +(* next line replaced by the line thereafter as patch for BZ#5052 + base : product_space; *) + base : tuple_space; + extender : maths_space + ) : extended_tuple_space; + RETURN( extended_tuple_space( base, extender ) || maths_space( ) || generic_expression( ) || generic_literal( ) || + simple_generic_expression( ) ); + + END_FUNCTION; + + FUNCTION make_finite_integer_interval( + min : INTEGER; + max : INTEGER + ) : finite_integer_interval; + RETURN( finite_integer_interval( min, max ) || maths_space( ) || generic_expression( ) || generic_literal( ) || + simple_generic_expression( ) ); + + END_FUNCTION; + + FUNCTION make_finite_real_interval( + min : REAL; + minclo : open_closed; + max : REAL; + maxclo : open_closed + ) : finite_real_interval; + RETURN( finite_real_interval( min, minclo, max, maxclo ) || maths_space( ) || generic_expression( ) || generic_literal( ) + || simple_generic_expression( ) ); + + END_FUNCTION; + + FUNCTION make_finite_space( + members : SET OF maths_value + ) : finite_space; + RETURN( finite_space( members ) || maths_space( ) || generic_expression( ) || generic_literal( ) || + simple_generic_expression( ) ); + + END_FUNCTION; + + FUNCTION make_function_application( + afunction : maths_function_select; + arguments : LIST [1 : ?] OF maths_value + ) : function_application; + RETURN( function_application( afunction, arguments ) || multiple_arity_generic_expression( convert_to_maths_function( + afunction ) + convert_to_operands( arguments ) ) || generic_expression( ) ); + + END_FUNCTION; + + FUNCTION make_function_space( + domain_constraint : space_constraint_type; + domain_argument : maths_space; + range_constraint : space_constraint_type; + range_argument : maths_space + ) : function_space; + RETURN( function_space( domain_constraint, domain_argument, range_constraint, range_argument ) || maths_space( ) || + generic_expression( ) || generic_literal( ) || simple_generic_expression( ) ); + + END_FUNCTION; + + FUNCTION make_int_literal( + lit_value : INTEGER + ) : int_literal; + RETURN( int_literal( ) || literal_number( lit_value ) || simple_numeric_expression( ) || numeric_expression( ) || + expression( ) || generic_expression( ) || simple_generic_expression( ) || generic_literal( ) ); + + END_FUNCTION; + + FUNCTION make_listed_product_space( + factors : LIST OF maths_space + ) : listed_product_space; + RETURN( listed_product_space( factors ) || maths_space( ) || generic_expression( ) || generic_literal( ) || + simple_generic_expression( ) ); + + END_FUNCTION; + + FUNCTION make_logical_literal( + lit_value : LOGICAL + ) : logical_literal; + RETURN( logical_literal( lit_value ) || generic_literal( ) || simple_generic_expression( ) || generic_expression( ) ); + + END_FUNCTION; + + FUNCTION make_maths_enum_literal( + lit_value : maths_enum_atom + ) : maths_enum_literal; + RETURN( maths_enum_literal( lit_value ) || generic_literal( ) || simple_generic_expression( ) || generic_expression( ) ); + + END_FUNCTION; + + FUNCTION make_maths_tuple_literal( + lit_value : LIST OF maths_value + ) : maths_tuple_literal; + RETURN( maths_tuple_literal( lit_value ) || generic_literal( ) || simple_generic_expression( ) || generic_expression( ) ); + + END_FUNCTION; + + FUNCTION make_numeric_set( + start, delta : maths_number; + incs : positive_integer + ) : SET [2 : ?] OF maths_number; + + LOCAL + i : INTEGER; + numeric_set : SET [2 : ?] OF maths_number := [start, start + delta]; + END_LOCAL; + IF incs > 1 THEN + REPEAT i := 2 TO incs BY 1; + numeric_set := numeric_set + start + ( i * delta ); + END_REPEAT; + END_IF; + RETURN( numeric_set ); + + END_FUNCTION; + + FUNCTION make_parallel_composed_function( + srcdom : maths_space_or_function; + prepfuncs : LIST [2 : ?] OF maths_function; + finfunc : maths_function_select + ) : parallel_composed_function; + RETURN( parallel_composed_function( srcdom, prepfuncs, finfunc ) || maths_function( ) || generic_expression( ) || + multiple_arity_generic_expression( convert_to_operands_prcmfn( srcdom, prepfuncs, finfunc ) ) ); + + END_FUNCTION; + + FUNCTION make_polar_complex_number_region( + centre : complex_number_literal; + dis_constraint : real_interval; + dir_constraint : finite_real_interval + ) : polar_complex_number_region; + RETURN( polar_complex_number_region( centre, dis_constraint, dir_constraint ) || maths_space( ) || generic_expression( ) || + generic_literal( ) || simple_generic_expression( ) ); + + END_FUNCTION; + + FUNCTION make_real_interval_from_min( + min : REAL; + minclo : open_closed + ) : real_interval_from_min; + RETURN( real_interval_from_min( min, minclo ) || maths_space( ) || generic_expression( ) || generic_literal( ) || + simple_generic_expression( ) ); + + END_FUNCTION; + + FUNCTION make_real_interval_to_max( + max : REAL; + maxclo : open_closed + ) : real_interval_to_max; + RETURN( real_interval_to_max( max, maxclo ) || maths_space( ) || generic_expression( ) || generic_literal( ) || + simple_generic_expression( ) ); + + END_FUNCTION; + + FUNCTION make_real_literal( + lit_value : REAL + ) : real_literal; + RETURN( real_literal( ) || literal_number( lit_value ) || simple_numeric_expression( ) || numeric_expression( ) || + expression( ) || generic_expression( ) || simple_generic_expression( ) || generic_literal( ) ); + + END_FUNCTION; + + FUNCTION make_string_literal( + lit_value : STRING + ) : string_literal; + RETURN( string_literal( lit_value ) || simple_string_expression( ) || string_expression( ) || expression( ) || + generic_expression( ) || simple_generic_expression( ) || generic_literal( ) ); + + END_FUNCTION; + + FUNCTION make_uniform_product_space( + base : maths_space; + exponent : positive_integer + ) : uniform_product_space; + RETURN( uniform_product_space( base, exponent ) || maths_space( ) || generic_expression( ) || generic_literal( ) || + simple_generic_expression( ) ); + + END_FUNCTION; + + FUNCTION max_exists( + spc : maths_space + ) : BOOLEAN; + + LOCAL + types : SET OF STRING := TYPEOF( spc ); + END_LOCAL; + RETURN( bool( ( ( schema_prefix + 'FINITE_INTEGER_INTERVAL' ) IN types ) OR ( ( schema_prefix + 'INTEGER_INTERVAL_TO_MAX' ) + IN types ) OR ( ( schema_prefix + 'FINITE_REAL_INTERVAL' ) IN types ) OR ( ( schema_prefix + 'REAL_INTERVAL_TO_MAX' ) IN + types ) ) ); + + END_FUNCTION; + + FUNCTION max_included( + spc : maths_space + ) : BOOLEAN; + + LOCAL + types : SET OF STRING := TYPEOF( spc ); + END_LOCAL; + IF ( ( schema_prefix + 'FINITE_INTEGER_INTERVAL' ) IN types ) OR ( ( schema_prefix + 'INTEGER_INTERVAL_TO_MAX' ) IN types ) + THEN + RETURN( TRUE ); + END_IF; + IF ( schema_prefix + 'FINITE_REAL_INTERVAL' ) IN types THEN + RETURN( bool( spc\finite_real_interval.max_closure = closed ) ); + END_IF; + IF ( schema_prefix + 'REAL_INTERVAL_TO_MAX' ) IN types THEN + RETURN( bool( spc\real_interval_to_max.max_closure = closed ) ); + END_IF; + RETURN( FALSE ); + + END_FUNCTION; + + FUNCTION member_of( + val : GENERIC:g; + spc : maths_space + ) : LOGICAL; + + FUNCTION fedex( + val : AGGREGATE OF GENERIC:x; + i : INTEGER + ) : GENERIC:x; + RETURN( val[i] ); + + END_FUNCTION; + + LOCAL + v : maths_value := simplify_maths_value( convert_to_maths_value( val ) ); + vtypes : SET OF STRING := stripped_typeof( v ); + s : maths_space := simplify_maths_space( spc ); + stypes : SET OF STRING := stripped_typeof( s ); + tmp_int : INTEGER; + tmp_real : REAL; + tmp_cmplx : complex_number_literal; + lgcl : LOGICAL; + cum : LOGICAL; + vspc : maths_space; + sspc : maths_space; + smem : SET OF maths_value; + factors : LIST OF maths_space; + END_LOCAL; + IF NOT EXISTS( s ) THEN + RETURN( FALSE ); + END_IF; + IF NOT EXISTS( v ) THEN + RETURN( s = the_generics ); + END_IF; + IF ( 'GENERIC_EXPRESSION' IN vtypes ) AND ( NOT ( 'MATHS_SPACE' IN vtypes ) ) AND ( NOT ( 'MATHS_FUNCTION' IN vtypes ) ) AND + ( NOT ( 'COMPLEX_NUMBER_LITERAL' IN vtypes ) ) THEN + IF has_values_space( v ) THEN + vspc := values_space_of( v ); + IF subspace_of( vspc, s ) THEN + RETURN( TRUE ); + END_IF; + IF NOT compatible_spaces( vspc, s ) THEN + RETURN( FALSE ); + END_IF; + RETURN( UNKNOWN ); + END_IF; + RETURN( UNKNOWN ); + END_IF; + IF 'ELEMENTARY_SPACE' IN stypes THEN + CASE s\elementary_space.space_id OF + es_numbers : RETURN( ( 'NUMBER' IN vtypes ) OR ( 'COMPLEX_NUMBER_LITERAL' IN vtypes ) ); + es_complex_numbers : RETURN( 'COMPLEX_NUMBER_LITERAL' IN vtypes ); + es_reals : RETURN( ( 'REAL' IN vtypes ) AND ( NOT ( 'INTEGER' IN vtypes ) ) ); + es_integers : RETURN( 'INTEGER' IN vtypes ); + es_logicals : RETURN( 'LOGICAL' IN vtypes ); + es_booleans : RETURN( 'BOOLEAN' IN vtypes ); + es_strings : RETURN( 'STRING' IN vtypes ); + es_binarys : RETURN( 'BINARY' IN vtypes ); + es_maths_spaces : RETURN( 'MATHS_SPACE' IN vtypes ); + es_maths_functions : RETURN( 'MATHS_FUNCTION' IN vtypes ); + es_generics : RETURN( TRUE ); + END_CASE; + END_IF; + IF 'FINITE_INTEGER_INTERVAL' IN stypes THEN + IF 'INTEGER' IN vtypes THEN + tmp_int := v; + RETURN( ( s\finite_integer_interval.min <= tmp_int ) AND ( tmp_int <= s\finite_integer_interval.max ) ); + END_IF; + RETURN( FALSE ); + END_IF; + IF 'INTEGER_INTERVAL_FROM_MIN' IN stypes THEN + IF 'INTEGER' IN vtypes THEN + tmp_int := v; + RETURN( s\integer_interval_from_min.min <= tmp_int ); + END_IF; + RETURN( FALSE ); + END_IF; + IF 'INTEGER_INTERVAL_TO_MAX' IN stypes THEN + IF 'INTEGER' IN vtypes THEN + tmp_int := v; + RETURN( tmp_int <= s\integer_interval_to_max.max ); + END_IF; + RETURN( FALSE ); + END_IF; + IF 'FINITE_REAL_INTERVAL' IN stypes THEN + IF ( 'REAL' IN vtypes ) AND ( NOT ( 'INTEGER' IN vtypes ) ) THEN + tmp_real := v; + IF s\finite_real_interval.min_closure = closed THEN + IF s\finite_real_interval.max_closure = closed THEN + RETURN( ( s\finite_real_interval.min <= tmp_real ) AND ( tmp_real <= s\finite_real_interval.max ) ); + ELSE + RETURN( ( s\finite_real_interval.min <= tmp_real ) AND ( tmp_real < s\finite_real_interval.max ) ); + END_IF; + ELSE + IF s\finite_real_interval.max_closure = closed THEN + RETURN( ( s\finite_real_interval.min < tmp_real ) AND ( tmp_real <= s\finite_real_interval.max ) ); + ELSE + RETURN( ( s\finite_real_interval.min < tmp_real ) AND ( tmp_real < s\finite_real_interval.max ) ); + END_IF; + END_IF; + END_IF; + RETURN( FALSE ); + END_IF; + IF 'REAL_INTERVAL_FROM_MIN' IN stypes THEN + IF ( 'REAL' IN vtypes ) AND ( NOT ( 'INTEGER' IN vtypes ) ) THEN + tmp_real := v; + IF s\real_interval_from_min.min_closure = closed THEN + RETURN( s\real_interval_from_min.min <= tmp_real ); + ELSE + RETURN( s\real_interval_from_min.min < tmp_real ); + END_IF; + END_IF; + RETURN( FALSE ); + END_IF; + IF 'REAL_INTERVAL_TO_MAX' IN stypes THEN + IF ( 'REAL' IN vtypes ) AND ( NOT ( 'INTEGER' IN vtypes ) ) THEN + tmp_real := v; + IF s\real_interval_to_max.max_closure = closed THEN + RETURN( tmp_real <= s\real_interval_to_max.max ); + ELSE + RETURN( tmp_real < s\real_interval_to_max.max ); + END_IF; + END_IF; + RETURN( FALSE ); + END_IF; + IF 'CARTESIAN_COMPLEX_NUMBER_REGION' IN stypes THEN + IF 'COMPLEX_NUMBER_LITERAL' IN vtypes THEN + RETURN( member_of( v\complex_number_literal.real_part, s\cartesian_complex_number_region.real_constraint ) AND + member_of( v\complex_number_literal.imag_part, s\cartesian_complex_number_region.imag_constraint ) ); + END_IF; + RETURN( FALSE ); + END_IF; + IF 'POLAR_COMPLEX_NUMBER_REGION' IN stypes THEN + IF 'COMPLEX_NUMBER_LITERAL' IN vtypes THEN + tmp_cmplx := v; + tmp_cmplx.real_part := tmp_cmplx.real_part - s\polar_complex_number_region.centre.real_part; + tmp_cmplx.imag_part := tmp_cmplx.imag_part - s\polar_complex_number_region.centre.imag_part; + tmp_real := SQRT( ( tmp_cmplx.real_part ** 2 ) + ( tmp_cmplx.imag_part ** 2 ) ); + IF NOT member_of( tmp_real, s\polar_complex_number_region.distance_constraint ) THEN + RETURN( FALSE ); + END_IF; + IF tmp_real = 0 THEN + RETURN( TRUE ); + END_IF; + tmp_real := atan2( tmp_cmplx.imag_part, tmp_cmplx.real_part ); + RETURN( member_of( tmp_real, s\polar_complex_number_region.direction_constraint ) OR member_of( tmp_real + ( 2 * PI ), s\ + polar_complex_number_region.direction_constraint ) ); + END_IF; + RETURN( FALSE ); + END_IF; + IF 'FINITE_SPACE' IN stypes THEN + smem := s\finite_space.members; + cum := FALSE; + REPEAT i := 1 TO SIZEOF( smem ) BY 1; + cum := cum OR equal_maths_values( v, smem[i] ); + IF cum = TRUE THEN + RETURN( TRUE ); + END_IF; + END_REPEAT; + RETURN( cum ); + END_IF; + IF 'UNIFORM_PRODUCT_SPACE' IN stypes THEN + IF 'LIST' IN vtypes THEN + IF SIZEOF( v ) = s\uniform_product_space.exponent THEN + sspc := s\uniform_product_space.base; + cum := TRUE; + REPEAT i := 1 TO SIZEOF( v ) BY 1; + cum := cum AND member_of( v[i], sspc ); + IF cum = FALSE THEN + RETURN( FALSE ); + END_IF; + END_REPEAT; + RETURN( cum ); + END_IF; + END_IF; + RETURN( FALSE ); + END_IF; + IF 'LISTED_PRODUCT_SPACE' IN stypes THEN + IF 'LIST' IN vtypes THEN + factors := s\listed_product_space.factors; + IF SIZEOF( v ) = SIZEOF( factors ) THEN + cum := TRUE; + REPEAT i := 1 TO SIZEOF( v ) BY 1; + cum := cum AND member_of( v[i], factors[i] ); + IF cum = FALSE THEN + RETURN( FALSE ); + END_IF; + END_REPEAT; + RETURN( cum ); + END_IF; + END_IF; + RETURN( FALSE ); + END_IF; + IF 'EXTENDED_TUPLE_SPACE' IN stypes THEN + IF 'LIST' IN vtypes THEN + sspc := s\extended_tuple_space.base; + tmp_int := space_dimension( sspc ); + IF SIZEOF( v ) >= tmp_int THEN + cum := TRUE; + REPEAT i := 1 TO tmp_int BY 1; + cum := cum AND member_of( v[i], factor_space( sspc, i ) ); + IF cum = FALSE THEN + RETURN( FALSE ); + END_IF; + END_REPEAT; + sspc := s\extended_tuple_space.extender; + REPEAT i := tmp_int + 1 TO SIZEOF( v ) BY 1; + cum := cum AND member_of( v[i], sspc ); + IF cum = FALSE THEN + RETURN( FALSE ); + END_IF; + END_REPEAT; + RETURN( cum ); + END_IF; + END_IF; + RETURN( FALSE ); + END_IF; + IF 'FUNCTION_SPACE' IN stypes THEN + IF 'MATHS_FUNCTION' IN vtypes THEN + vspc := v\maths_function.domain; + sspc := s\function_space.domain_argument; + CASE s\function_space.domain_constraint OF + sc_equal : cum := equal_maths_spaces( vspc, sspc ); + sc_subspace : cum := subspace_of( vspc, sspc ); + sc_member : cum := member_of( vspc, sspc ); + END_CASE; + IF cum = FALSE THEN + RETURN( FALSE ); + END_IF; + vspc := v\maths_function.range; + sspc := s\function_space.range_argument; + CASE s\function_space.range_constraint OF + sc_equal : cum := cum AND equal_maths_spaces( vspc, sspc ); + sc_subspace : cum := cum AND subspace_of( vspc, sspc ); + sc_member : cum := cum AND member_of( vspc, sspc ); + END_CASE; + RETURN( cum ); + END_IF; + RETURN( FALSE ); + END_IF; + RETURN( UNKNOWN ); + + END_FUNCTION; + + FUNCTION min_exists( + spc : maths_space + ) : BOOLEAN; + + LOCAL + types : SET OF STRING := TYPEOF( spc ); + END_LOCAL; + RETURN( bool( ( ( schema_prefix + 'FINITE_INTEGER_INTERVAL' ) IN types ) OR ( ( schema_prefix + 'INTEGER_INTERVAL_FROM_MIN' ) + IN types ) OR ( ( schema_prefix + 'FINITE_REAL_INTERVAL' ) IN types ) OR ( ( schema_prefix + 'REAL_INTERVAL_FROM_MIN' ) IN + types ) ) ); + + END_FUNCTION; + + FUNCTION min_included( + spc : maths_space + ) : BOOLEAN; + + LOCAL + types : SET OF STRING := TYPEOF( spc ); + END_LOCAL; + IF ( ( schema_prefix + 'FINITE_INTEGER_INTERVAL' ) IN types ) OR ( ( schema_prefix + 'INTEGER_INTERVAL_FROM_MIN' ) IN types ) + THEN + RETURN( TRUE ); + END_IF; + IF ( schema_prefix + 'FINITE_REAL_INTERVAL' ) IN types THEN + RETURN( bool( spc\finite_real_interval.min_closure = closed ) ); + END_IF; + IF ( schema_prefix + 'REAL_INTERVAL_FROM_MIN' ) IN types THEN + RETURN( bool( spc\real_interval_from_min.min_closure = closed ) ); + END_IF; + RETURN( FALSE ); + + 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 := 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.POLY_LOOP' IN TYPEOF( l[1] ); + REPEAT i := 2 TO SIZEOF( l ) BY 1; + IF ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.BOUNDED_CURVE', + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CONIC' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'CURVE_REPLICA' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LINE', + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.OFFSET_CURVE_3D' ] * TYPEOF( cv ) ) > 1 THEN + RETURN( FALSE ); + END_IF; + IF ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CONIC', + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LINE' ] * TYPEOF( cv ) ) = 1 THEN + RETURN( TRUE ); + ELSE + IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CURVE_REPLICA' IN TYPEOF( cv ) THEN + RETURN( msf_curve_check( cv\curve_replica.parent_curve ) ); + ELSE + IF ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.POLYLINE' IN TYPEOF( cv\offset_curve_3d.basis_curve ) ) ) + THEN + RETURN( msf_curve_check( cv\offset_curve_3d.basis_curve ) ); + ELSE + IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 + IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SURFACE_CURVE' IN TYPEOF( cv ) THEN + IF msf_curve_check( cv\surface_curve.curve_3d ) THEN + REPEAT i := 1 TO SIZEOF( cv\surface_curve.associated_geometry ) BY 1; + IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 + IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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; + RETURN( FALSE ); + + END_FUNCTION; + + FUNCTION msf_surface_check( + surf : surface + ) : BOOLEAN; + IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ELEMENTARY_SURFACE' IN TYPEOF( surf ) THEN + RETURN( TRUE ); + ELSE + IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SWEPT_SURFACE' IN TYPEOF( surf ) THEN + RETURN( msf_curve_check( surf\swept_surface.swept_curve ) ); + ELSE + IF ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 + IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SURFACE_REPLICA' IN TYPEOF( surf ) THEN + RETURN( msf_surface_check( surf\surface_replica.parent_surface ) ); + ELSE + IF ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 necessary_value_coordinate_system( + cs_value : field_value; + coordinate_system : GENERIC + ) : BOOLEAN; + IF SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.TENSOR1_2D', + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.TENSOR1_3D' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'SYMMETRIC_TENSOR2_2D' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SYMMETRIC_TENSOR2_3D'] * TYPEOF( cs_value ) ) + = 1 THEN + IF NOT EXISTS( coordinate_system ) THEN + RETURN( FALSE ); + END_IF; + END_IF; + RETURN( TRUE ); + + END_FUNCTION; + + FUNCTION nmsf_curve_check( + cv : representation_item + ) : BOOLEAN; + IF SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.BOUNDED_CURVE', + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CONIC' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'CURVE_REPLICA' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LINE', + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.OFFSET_CURVE_3D' ] * TYPEOF( cv ) ) > 1 THEN + RETURN( FALSE ); + ELSE + IF ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CONIC', + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LINE' ] * TYPEOF( cv ) ) = 1 THEN + RETURN( TRUE ); + ELSE + IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CURVE_REPLICA' IN TYPEOF( cv ) THEN + RETURN( nmsf_curve_check( cv\curve_replica.parent_curve ) ); + ELSE + IF ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.POLYLINE' IN TYPEOF( cv\offset_curve_3d.basis_curve ) ) ) + THEN + RETURN( nmsf_curve_check( cv\offset_curve_3d.basis_curve ) ); + ELSE + IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 + IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SURFACE_CURVE' IN TYPEOF( cv ) THEN + IF nmsf_curve_check( cv\surface_curve.curve_3d ) THEN + REPEAT i := 1 TO SIZEOF( cv\surface_curve.associated_geometry ) BY 1; + IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 + IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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; + RETURN( FALSE ); + + END_FUNCTION; + + FUNCTION nmsf_surface_check( + surf : surface + ) : BOOLEAN; + IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ELEMENTARY_SURFACE' IN TYPEOF( surf ) THEN + RETURN( TRUE ); + ELSE + IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SWEPT_SURFACE' IN TYPEOF( surf ) THEN + RETURN( nmsf_curve_check( surf\swept_surface.swept_curve ) ); + ELSE + IF ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 + IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SURFACE_REPLICA' IN TYPEOF( surf ) THEN + RETURN( nmsf_surface_check( surf\surface_replica.parent_surface ) ); + ELSE + IF ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 no_cyclic_domain_reference( + ref : maths_space_or_function; + used : SET OF maths_function + ) : BOOLEAN; + + LOCAL + typenames : SET OF STRING := TYPEOF( ref ); + func : maths_function; + END_LOCAL; + IF ( NOT EXISTS( ref ) ) OR ( NOT EXISTS( used ) ) THEN + RETURN( FALSE ); + END_IF; + IF ( schema_prefix + 'MATHS_SPACE' ) IN typenames THEN + RETURN( TRUE ); + END_IF; + func := ref; + IF func IN used THEN + RETURN( FALSE ); + END_IF; + IF ( schema_prefix + 'CONSTANT_FUNCTION' ) IN typenames THEN + RETURN( no_cyclic_domain_reference( func\constant_function.source_of_domain, used + [func] ) ); + END_IF; + IF ( schema_prefix + 'SELECTOR_FUNCTION' ) IN typenames THEN + RETURN( no_cyclic_domain_reference( func\selector_function.source_of_domain, used + [func] ) ); + END_IF; + IF ( schema_prefix + 'PARALLEL_COMPOSED_FUNCTION' ) IN typenames THEN + RETURN( no_cyclic_domain_reference( func\parallel_composed_function.source_of_domain, used + [func] ) ); + END_IF; + RETURN( TRUE ); + + END_FUNCTION; + + FUNCTION no_cyclic_space_reference( + spc : maths_space; + refs : SET OF maths_space + ) : BOOLEAN; + + LOCAL + types : SET OF STRING; + refs_plus : SET OF maths_space; + END_LOCAL; + IF spc IN refs THEN + RETURN( FALSE ); + END_IF; + types := TYPEOF( spc ); + refs_plus := refs + spc; + IF ( schema_prefix + 'FINITE_SPACE' ) IN types THEN + RETURN( bool( SIZEOF( QUERY ( sp <* QUERY ( mem <* spc\finite_space.members | ( ( schema_prefix + 'MATHS_SPACE' ) IN + TYPEOF( mem ) ) ) | ( NOT no_cyclic_space_reference( sp, refs_plus ) ) ) ) = 0 ) ); + END_IF; + IF ( schema_prefix + 'UNIFORM_PRODUCT_SPACE' ) IN types THEN + RETURN( no_cyclic_space_reference( spc\uniform_product_space.base, refs_plus ) ); + END_IF; + IF ( schema_prefix + 'LISTED_PRODUCT_SPACE' ) IN types THEN + RETURN( bool( SIZEOF( QUERY ( fac <* spc\listed_product_space.factors | ( NOT no_cyclic_space_reference( fac, refs_plus ) ) ) ) + = 0 ) ); + END_IF; + IF ( schema_prefix + 'EXTENDED_TUPLE_SPACE' ) IN types THEN + RETURN( no_cyclic_space_reference( spc\extended_tuple_space.base, refs_plus ) AND no_cyclic_space_reference( spc\ + extended_tuple_space.extender, refs_plus ) ); + END_IF; + RETURN( TRUE ); + + END_FUNCTION; + + FUNCTION nondecreasing( + lr : LIST OF REAL + ) : BOOLEAN; + IF NOT EXISTS( lr ) THEN + RETURN( FALSE ); + END_IF; + REPEAT j := 2 TO SIZEOF( lr ) BY 1; + IF lr[j] < lr[j - 1] THEN + RETURN( FALSE ); + END_IF; + END_REPEAT; + RETURN( TRUE ); + + END_FUNCTION; + + FUNCTION normalise( + arg : vector_or_direction + ) : vector_or_direction; + + LOCAL + ndim : INTEGER; + v : direction := dummy_gri || direction( [1, 0, 0] ); + result : vector_or_direction; + vec : vector := dummy_gri || vector( v, 1 ); + mag : REAL; + END_LOCAL; + IF NOT EXISTS( arg ) THEN + result := ?; + ELSE + ndim := arg.dim; + IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.VECTOR' IN TYPEOF( arg ) THEN + + BEGIN + v := dummy_gri || direction( arg\vector.orientation.direction_ratios ); + IF arg\vector.magnitude = 0 THEN + RETURN( ? ); + ELSE + vec := dummy_gri || vector( v, 1 ); + END_IF; + END; + ELSE + v := dummy_gri || direction( arg.direction_ratios ); + END_IF; + mag := 0; + REPEAT i := 1 TO ndim BY 1; + mag := mag + ( v.direction_ratios[i] * v.direction_ratios[i] ); + END_REPEAT; + IF mag > 0 THEN + mag := SQRT( mag ); + REPEAT i := 1 TO ndim BY 1; + v.direction_ratios[i] := v.direction_ratios[i] / mag; + END_REPEAT; + IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 number_of_terms( + node_dof_list : LIST [1 : ?] OF LIST [1 : ?] OF degree_of_freedom; + matrix_type : matrix_symmetry + ) : INTEGER; + + LOCAL + num_terms : INTEGER; + number_of_freedoms : INTEGER; + END_LOCAL; + number_of_freedoms := 0; + REPEAT i := 1 TO SIZEOF( node_dof_list ) BY 1; + number_of_freedoms := number_of_freedoms + SIZEOF( node_dof_list[i] ); + END_REPEAT; + IF matrix_type = symmetric THEN + num_terms := ( number_of_freedoms * ( number_of_freedoms + 1 ) ) DIV 2; + END_IF; + IF matrix_type = diagonal THEN + num_terms := number_of_freedoms; + END_IF; + RETURN( num_terms ); + + END_FUNCTION; + + FUNCTION number_superspace_of( + spc : maths_space + ) : elementary_space; + IF subspace_of_es( spc, es_integers ) THEN + RETURN( the_integers ); + END_IF; + IF subspace_of_es( spc, es_reals ) THEN + RETURN( the_reals ); + END_IF; + IF subspace_of_es( spc, es_complex_numbers ) THEN + RETURN( the_complex_numbers ); + END_IF; + IF subspace_of_es( spc, es_numbers ) THEN + RETURN( the_numbers ); + END_IF; + RETURN( ? ); + + END_FUNCTION; + + FUNCTION number_tuple_subspace_check( + spc : maths_space + ) : LOGICAL; + + LOCAL + types : SET OF STRING := stripped_typeof( spc ); + factors : LIST OF maths_space; + cum : LOGICAL := TRUE; + END_LOCAL; + IF 'UNIFORM_PRODUCT_SPACE' IN types THEN + RETURN( subspace_of_es( spc\uniform_product_space.base, es_numbers ) ); + END_IF; + IF 'LISTED_PRODUCT_SPACE' IN types THEN + factors := spc\listed_product_space.factors; + REPEAT i := 1 TO SIZEOF( factors ) BY 1; + cum := cum AND subspace_of_es( factors[i], es_numbers ); + END_REPEAT; + RETURN( cum ); + END_IF; + IF 'EXTENDED_TUPLE_SPACE' IN types THEN + cum := subspace_of_es( spc\extended_tuple_space.extender, es_numbers ); + cum := cum AND number_tuple_subspace_check( spc\extended_tuple_space.base ); + RETURN( cum ); + END_IF; + RETURN( FALSE ); + + END_FUNCTION; + + FUNCTION one_tuples_of( + spc : maths_space + ) : tuple_space; + RETURN( make_uniform_product_space( spc, 1 ) ); + + END_FUNCTION; + + FUNCTION open_path_based_inner_boundary( + input : SET OF primitive_2d + ) : BOOLEAN; + + LOCAL + pass : BOOLEAN := TRUE; + END_LOCAL; + REPEAT i := 1 TO SIZEOF( input ) BY 1; + IF ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PATH_AREA_WITH_PARAMETERS' IN TYPEOF( input[i] ) ) AND ( ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CIRCLE' IN TYPEOF( input[i]\mapped_item.mapping_source\ + representation_map.mapping_origin ) ) OR ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.COMPOSITE_CURVE' IN + TYPEOF( input[i]\mapped_item.mapping_source\representation_map.mapping_origin ) ) AND ( input[i]\mapped_item. + mapping_source\representation_map.mapping_origin\composite_curve.closed_curve = TRUE ) ) ) THEN + pass := FALSE; + END_IF; + END_REPEAT; + RETURN( pass ); + + END_FUNCTION; + + FUNCTION open_shell_reversed( + a_shell : open_shell + ) : oriented_open_shell; + + LOCAL + the_reverse : oriented_open_shell; + END_LOCAL; + IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 parallel_composed_function_composability_check( + funcs : LIST OF maths_function; + final : maths_function_select + ) : BOOLEAN; + + LOCAL + tplsp : tuple_space := the_zero_tuple_space; + finfun : maths_function := convert_to_maths_function( final ); + END_LOCAL; + REPEAT i := 1 TO SIZEOF( funcs ) BY 1; + tplsp := assoc_product_space( tplsp, funcs[i].range ); + END_REPEAT; + RETURN( compatible_spaces( tplsp, finfun.domain ) ); + + END_FUNCTION; + + FUNCTION parallel_composed_function_domain_check( + comdom : tuple_space; + funcs : LIST OF maths_function + ) : BOOLEAN; + REPEAT i := 1 TO SIZEOF( funcs ) BY 1; + IF NOT compatible_spaces( comdom, funcs[i].domain ) THEN + RETURN( FALSE ); + END_IF; + END_REPEAT; + RETURN( TRUE ); + + END_FUNCTION; + + FUNCTION parse_express_identifier( + s : STRING; + i : positive_integer + ) : positive_integer; + + LOCAL + k : positive_integer; + END_LOCAL; + k := i; + IF i <= LENGTH( s ) THEN + IF s[i] LIKE '@' THEN + REPEAT UNTIL ( k > LENGTH( s ) ) OR ( ( s[k] <> '_' ) AND ( NOT ( s[k] LIKE '@' ) ) AND ( NOT ( s[k] LIKE '#' ) ) ); + k := k + 1; + END_REPEAT; + END_IF; + END_IF; + RETURN( k ); + + END_FUNCTION; + + FUNCTION partial_derivative_check( + domain : tuple_space; + d_vars : LIST [1 : ?] OF input_selector + ) : BOOLEAN; + + LOCAL + domn : tuple_space := domain; + fspc : maths_space; + dim : INTEGER; + k : INTEGER; + END_LOCAL; + IF ( space_dimension( domain ) = 1 ) AND ( ( schema_prefix + 'TUPLE_SPACE' ) IN TYPEOF( factor1( domain ) ) ) THEN + domn := factor1( domain ); + END_IF; + dim := space_dimension( domn ); + REPEAT i := 1 TO SIZEOF( d_vars ) BY 1; + k := d_vars[i]; + IF k > dim THEN + RETURN( FALSE ); + END_IF; + fspc := factor_space( domn, k ); + IF ( NOT subspace_of_es( fspc, es_reals ) ) AND ( NOT subspace_of_es( fspc, es_complex_numbers ) ) THEN + RETURN( FALSE ); + END_IF; + END_REPEAT; + RETURN( TRUE ); + + 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 BY 1; + 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 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 plane_angle_for_pair_in_radian( + pair : kinematic_pair; + angle : plane_angle_measure + ) : plane_angle_measure; + + LOCAL + converted_angle : plane_angle_measure := angle; + link_rep : kinematic_link_representation := representation_of_link( pair.joint.edge_start ); + link_cntxt : representation_context; + pa_units : SET OF unit := []; + pau : unit; + END_LOCAL; + link_cntxt := link_rep\representation.context_of_items; + IF NOT ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.GLOBAL_UNIT_ASSIGNED_CONTEXT' IN TYPEOF( link_cntxt ) ) THEN + RETURN( ? ); + END_IF; + pa_units := QUERY ( unit <* link_cntxt\global_unit_assigned_context.units | ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PLANE_ANGLE_UNIT' IN TYPEOF( unit ) ) ); + IF SIZEOF( pa_units ) <> 1 THEN + RETURN( ? ); + END_IF; + pau := pa_units[1]; + IF ( NOT ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SI_UNIT' IN TYPEOF( pau ) ) ) AND ( NOT ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CONVERSION_BASED_UNIT' IN TYPEOF( pau ) ) ) THEN + RETURN( ? ); + END_IF; + REPEAT WHILE 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CONVERSION_BASED_UNIT' IN TYPEOF( pau ); + converted_angle := converted_angle * pau\conversion_based_unit.conversion_factor.value_component; + pau := pau\conversion_based_unit.conversion_factor.unit_component; + IF ( ( NOT ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SI_UNIT' IN TYPEOF( pau ) ) ) AND ( NOT ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CONVERSION_BASED_UNIT' IN TYPEOF( pau ) ) ) ) OR ( NOT ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PLANE_ANGLE_UNIT' IN TYPEOF( pau ) ) ) THEN + RETURN( ? ); + END_IF; + END_REPEAT; + IF pau\si_unit.name <> si_unit_name.radian THEN + RETURN( ? ); + END_IF; + CASE pau\si_unit.prefix OF + si_prefix.exa : RETURN( 1.e+18 * converted_angle ); + si_prefix.peta : RETURN( 1.e+15 * converted_angle ); + si_prefix.tera : RETURN( 1.e+12 * converted_angle ); + si_prefix.giga : RETURN( 1000000000 * converted_angle ); + si_prefix.mega : RETURN( 1000000 * converted_angle ); + si_prefix.kilo : RETURN( 1000 * converted_angle ); + si_prefix.hecto : RETURN( 100 * converted_angle ); + si_prefix.deca : RETURN( 10 * converted_angle ); + si_prefix.deci : RETURN( 0.1 * converted_angle ); + si_prefix.centi : RETURN( 0.01 * converted_angle ); + si_prefix.milli : RETURN( 0.001 * converted_angle ); + si_prefix.micro : RETURN( 1.e-06 * converted_angle ); + si_prefix.nano : RETURN( 1.e-09 * converted_angle ); + si_prefix.pico : RETURN( 1.e-12 * converted_angle ); + si_prefix.femto : RETURN( 1.e-15 * converted_angle ); + si_prefix.atto : RETURN( 1.e-18 * converted_angle ); + OTHERWISE : RETURN( converted_angle ); + END_CASE; + + END_FUNCTION; + + FUNCTION real_max( + spc : maths_space + ) : REAL; + + LOCAL + types : SET OF STRING := TYPEOF( spc ); + END_LOCAL; + IF ( schema_prefix + 'FINITE_INTEGER_INTERVAL' ) IN types THEN + RETURN( spc\finite_integer_interval.max ); + END_IF; + IF ( schema_prefix + 'INTEGER_INTERVAL_TO_MAX' ) IN types THEN + RETURN( spc\integer_interval_to_max.max ); + END_IF; + IF ( schema_prefix + 'FINITE_REAL_INTERVAL' ) IN types THEN + RETURN( spc\finite_real_interval.max ); + END_IF; + IF ( schema_prefix + 'REAL_INTERVAL_TO_MAX' ) IN types THEN + RETURN( spc\real_interval_to_max.max ); + END_IF; + RETURN( ? ); + + END_FUNCTION; + + FUNCTION real_min( + spc : maths_space + ) : REAL; + + LOCAL + types : SET OF STRING := TYPEOF( spc ); + END_LOCAL; + IF ( schema_prefix + 'FINITE_INTEGER_INTERVAL' ) IN types THEN + RETURN( spc\finite_integer_interval.min ); + END_IF; + IF ( schema_prefix + 'INTEGER_INTERVAL_FROM_MIN' ) IN types THEN + RETURN( spc\integer_interval_from_min.min ); + END_IF; + IF ( schema_prefix + 'FINITE_REAL_INTERVAL' ) IN types THEN + RETURN( spc\finite_real_interval.min ); + END_IF; + IF ( schema_prefix + 'REAL_INTERVAL_FROM_MIN' ) IN types THEN + RETURN( spc\real_interval_from_min.min ); + END_IF; + RETURN( ? ); + + END_FUNCTION; + + FUNCTION regular_indexing( + sub : LIST OF INTEGER; + base : zero_or_one; + shape : LIST [1 : ?] OF positive_integer; + inc : LIST [1 : ?] OF INTEGER; + first : INTEGER + ) : INTEGER; + + LOCAL + k : INTEGER; + index : INTEGER; + END_LOCAL; + IF ( NOT EXISTS( sub ) ) OR ( NOT EXISTS( base ) ) OR ( NOT EXISTS( shape ) ) OR ( NOT EXISTS( inc ) ) OR ( NOT EXISTS( first ) ) + THEN + RETURN( ? ); + END_IF; + IF ( SIZEOF( sub ) <> SIZEOF( inc ) ) OR ( SIZEOF( sub ) <> SIZEOF( shape ) ) THEN + RETURN( ? ); + END_IF; + index := first; + REPEAT j := 1 TO SIZEOF( sub ) BY 1; + IF ( NOT EXISTS( sub[j] ) ) OR ( NOT EXISTS( inc[j] ) ) THEN + RETURN( ? ); + END_IF; + k := sub[j] - base; + IF NOT ( ( 0 <= k ) AND ( k < shape[j] ) ) THEN + RETURN( ? ); + END_IF; + index := index + ( k * inc[j] ); + END_REPEAT; + RETURN( index ); + + END_FUNCTION; + + FUNCTION relating_shape_representations_of_extreme_values( + item : location_of_extreme_value_select + ) : SET OF shape_representation; + + LOCAL + results : SET OF shape_representation := []; + exti : SET OF extreme_instance := []; + ii_ei : SET OF instance_report_item_with_extreme_instances := []; + sdiir : SET OF shape_data_quality_inspection_instance_report := []; + sdqr : SET OF shape_data_quality_inspection_result_representation := []; + sdisr : SET OF shape_data_quality_inspected_shape_and_result_relationship := []; + END_LOCAL; + exti := exti + bag_to_set( USEDIN( item, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'EXTREME_INSTANCE.' + + 'LOCATIONS_OF_EXTREME_VALUE' ) ); + REPEAT i := 1 TO HIINDEX( exti ) BY 1; + ii_ei := ii_ei + bag_to_set( USEDIN( exti[i], 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'INSTANCE_REPORT_ITEM_WITH_EXTREME_INSTANCES.' + 'EXTREME_INSTANCES' ) ); + END_REPEAT; + REPEAT i := 1 TO HIINDEX( ii_ei ) BY 1; + sdiir := sdiir + bag_to_set( USEDIN( ii_ei[i], 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'SHAPE_DATA_QUALITY_INSPECTION_INSTANCE_REPORT.' + 'INSPECTED_INSTANCES' ) ); + END_REPEAT; + REPEAT i := 1 TO HIINDEX( sdiir ) BY 1; + sdqr := sdqr + QUERY ( i1 <* bag_to_set( USEDIN( sdiir[i].inspection_result, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.REPRESENTATION.ITEMS' ) ) | ( ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'SHAPE_DATA_QUALITY_INSPECTION_RESULT_REPRESENTATION' ) IN + TYPEOF( i1 ) ) ); + END_REPEAT; + REPEAT i := 1 TO HIINDEX( sdqr ) BY 1; + sdisr := sdisr + bag_to_set( USEDIN( sdqr[i], 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'SHAPE_DATA_QUALITY_INSPECTED_SHAPE_AND_RESULT_RELATIONSHIP.' + 'REP_2' ) ); + END_REPEAT; + REPEAT i := 1 TO HIINDEX( sdisr ) BY 1; + results := results + sdisr[i].rep_1; + END_REPEAT; + RETURN( results ); + + END_FUNCTION; + + FUNCTION remove_first( + alist : LIST OF GENERIC:gen + ) : LIST OF GENERIC:gen; + + LOCAL + blist : LIST OF GENERIC:gen := alist; + END_LOCAL; + IF SIZEOF( blist ) > 0 THEN + REMOVE( blist, 1 ); + END_IF; + RETURN( blist ); + + END_FUNCTION; + + FUNCTION repackage( + tspace : tuple_space; + repckg : repackage_options + ) : tuple_space; + CASE repckg OF + ro_nochange : RETURN( tspace ); + ro_wrap_as_tuple : RETURN( one_tuples_of( tspace ) ); + ro_unwrap_tuple : RETURN( factor1( tspace ) ); + OTHERWISE : RETURN( ? ); + END_CASE; + + END_FUNCTION; + + FUNCTION representation_of_link( + link : kinematic_link + ) : kinematic_link_representation; + RETURN( ? ); + + END_FUNCTION; + + FUNCTION required_0d_nodes( + node_list : LIST [1 : ?] OF node_representation + ) : BOOLEAN; + RETURN( SIZEOF( node_list ) = 1 ); + + END_FUNCTION; + + FUNCTION required_1d_nodes( + node_list : LIST [1 : ?] OF node_representation; + order : element_order + ) : BOOLEAN; + + LOCAL + end_nodes : INTEGER; + additional_nodes : INTEGER; + END_LOCAL; + end_nodes := 2; + IF order = linear_order THEN + additional_nodes := 0; + END_IF; + IF order = quadratic_order THEN + additional_nodes := 1; + END_IF; + IF order = cubic_order THEN + additional_nodes := 2; + END_IF; + RETURN( SIZEOF( node_list ) = ( end_nodes + additional_nodes ) ); + + END_FUNCTION; + + FUNCTION required_2d_nodes( + node_list : LIST [1 : ?] OF node_representation; + element_shape : element_2d_shape; + order : element_order + ) : BOOLEAN; + + LOCAL + vertex_nodes : INTEGER; + edge_nodes : INTEGER; + edge_face_body_nodes : INTEGER; + END_LOCAL; + IF element_shape = element_2d_shape.triangle THEN + vertex_nodes := 3; + IF order = linear_order THEN + edge_nodes := 0; + edge_face_body_nodes := 0; + END_IF; + IF order = quadratic_order THEN + edge_nodes := 3; + edge_face_body_nodes := 3; + END_IF; + IF order = cubic_order THEN + edge_nodes := 6; + edge_face_body_nodes := 7; + END_IF; + END_IF; + IF element_shape = element_2d_shape.quadrilateral THEN + vertex_nodes := 4; + IF order = linear_order THEN + edge_nodes := 0; + edge_face_body_nodes := 0; + END_IF; + IF order = quadratic_order THEN + edge_nodes := 4; + edge_face_body_nodes := 5; + END_IF; + IF order = cubic_order THEN + edge_nodes := 8; + edge_face_body_nodes := 12; + END_IF; + END_IF; + RETURN( ( SIZEOF( node_list ) = ( vertex_nodes + edge_nodes ) ) OR ( SIZEOF( node_list ) = ( vertex_nodes + + edge_face_body_nodes ) ) ); + + END_FUNCTION; + + FUNCTION required_3d_nodes( + node_list : LIST [1 : ?] OF node_representation; + element_shape : volume_3d_element_shape; + order : element_order + ) : BOOLEAN; + + LOCAL + vertex_nodes : INTEGER; + edge_nodes : INTEGER; + edge_face_body_nodes : INTEGER; + END_LOCAL; + IF element_shape = volume_3d_element_shape.hexahedron THEN + vertex_nodes := 8; + IF order = linear_order THEN + edge_nodes := 0; + edge_face_body_nodes := 0; + END_IF; + IF order = quadratic_order THEN + edge_nodes := 12; + edge_face_body_nodes := 19; + END_IF; + IF order = cubic_order THEN + edge_nodes := 24; + edge_face_body_nodes := 56; + END_IF; + END_IF; + IF element_shape = volume_3d_element_shape.wedge THEN + vertex_nodes := 6; + IF order = linear_order THEN + edge_nodes := 0; + edge_face_body_nodes := 0; + END_IF; + IF order = quadratic_order THEN + edge_nodes := 9; + edge_face_body_nodes := 12; + END_IF; + IF order = cubic_order THEN + edge_nodes := 18; + edge_face_body_nodes := 34; + END_IF; + END_IF; + IF element_shape = volume_3d_element_shape.tetrahedron THEN + vertex_nodes := 4; + IF order = linear_order THEN + edge_nodes := 0; + edge_face_body_nodes := 0; + END_IF; + IF order = quadratic_order THEN + edge_nodes := 6; + edge_face_body_nodes := 6; + END_IF; + IF order = cubic_order THEN + edge_nodes := 12; + edge_face_body_nodes := 16; + END_IF; + END_IF; + IF element_shape = volume_3d_element_shape.pyramid THEN + vertex_nodes := 5; + IF order = linear_order THEN + edge_nodes := 0; + edge_face_body_nodes := 0; + END_IF; + IF order = quadratic_order THEN + edge_nodes := 8; + edge_face_body_nodes := 9; + END_IF; + IF order = cubic_order THEN + edge_nodes := 16; + edge_face_body_nodes := 25; + END_IF; + END_IF; + RETURN( ( SIZEOF( node_list ) = ( vertex_nodes + edge_nodes ) ) OR ( SIZEOF( node_list ) = ( vertex_nodes + + edge_face_body_nodes ) ) ); + + 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 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.VECTOR' IN TYPEOF( vec ) THEN + v := dummy_gri || direction( vec\vector.orientation.direction_ratios ); + mag := scalar * vec\vector.magnitude; + ELSE + v := dummy_gri || direction( vec.direction_ratios ); + mag := scalar; + END_IF; + IF mag < 0 THEN + REPEAT i := 1 TO SIZEOF( v.direction_ratios ) BY 1; + 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, x_axis, arg : direction + ) : direction; + + LOCAL + y_axis : vector; + v : direction; + temp : vector; + END_LOCAL; + IF NOT EXISTS( arg ) THEN + v := dummy_gri || direction( [0, 1, 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 ) BY 1; + the_reverse := the_reverse + topology_reversed( a_set[i] ); + END_REPEAT; + RETURN( the_reverse ); + + END_FUNCTION; + + FUNCTION shape_of_array( + func : maths_function + ) : LIST OF positive_integer; + + LOCAL + tspace : tuple_space; + temp : maths_space; + result : LIST OF positive_integer := []; + END_LOCAL; + IF ( schema_prefix + 'EXPLICIT_TABLE_FUNCTION' ) IN TYPEOF( func ) THEN + RETURN( func\explicit_table_function.shape ); + END_IF; + tspace := func.domain; + IF ( space_dimension( tspace ) = 1 ) AND ( ( schema_prefix + 'TUPLE_SPACE' ) IN TYPEOF( factor1( tspace ) ) ) THEN + tspace := factor1( tspace ); + END_IF; + REPEAT i := 1 TO space_dimension( tspace ) BY 1; + temp := factor_space( tspace, i ); + IF NOT ( ( schema_prefix + 'FINITE_INTEGER_INTERVAL' ) IN TYPEOF( temp ) ) THEN + RETURN( ? ); + END_IF; + INSERT( result, temp\finite_integer_interval.size, i - 1 ); + END_REPEAT; + RETURN( result ); + + END_FUNCTION; + + FUNCTION shell_reversed( + a_shell : shell + ) : shell; + IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.OPEN_SHELL' IN TYPEOF( a_shell ) THEN + RETURN( open_shell_reversed( a_shell ) ); + ELSE + IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CLOSED_SHELL' IN TYPEOF( a_shell ) THEN + RETURN( closed_shell_reversed( a_shell ) ); + ELSE + RETURN( ? ); + END_IF; + END_IF; + + END_FUNCTION; + + FUNCTION shorten_array( + longa : ARRAY OF GENERIC:t; + oldl, newl : INTEGER + ) : ARRAY OF GENERIC:t; + + LOCAL + shorta : ARRAY [1 : newl] OF GENERIC:t; + END_LOCAL; + IF newl > oldl THEN + RETURN( ? ); + ELSE + REPEAT i := 1 TO newl BY 1; + shorta[i] := longa[i]; + END_REPEAT; + RETURN( shorta ); + END_IF; + + END_FUNCTION; + + FUNCTION simplify_function_application( + expr : function_application + ) : maths_value; + + FUNCTION ctmv( + x : GENERIC:g + ) : maths_value; + RETURN( convert_to_maths_value( x ) ); + + END_FUNCTION; + + FUNCTION good_t( + v : maths_value; + tn : STRING + ) : BOOLEAN; + + LOCAL + tpl : LIST OF maths_value; + END_LOCAL; + IF 'LIST' IN TYPEOF( v ) THEN + tpl := v; + REPEAT i := 1 TO SIZEOF( tpl ) BY 1; + IF NOT ( tn IN TYPEOF( tpl[i] ) ) THEN + RETURN( FALSE ); + END_IF; + END_REPEAT; + RETURN( TRUE ); + END_IF; + RETURN( FALSE ); + + END_FUNCTION; + + FUNCTION makec( + x, y : REAL + ) : complex_number_literal; + RETURN( make_complex_number_literal( x, y ) ); + + END_FUNCTION; + + PROCEDURE parts( + c : complex_number_literal; + VAR x, y : REAL ); + x := c.real_part; + y := c.imag_part; + + END_PROCEDURE; + + CONSTANT + cnlit : STRING := + schema_prefix + + + 'COMPLEX_NUMBER_LITERAL' ; + END_CONSTANT; + + LOCAL + types : SET OF STRING := stripped_typeof( expr.func ); + ef_val : elementary_function_enumerators; + is_elementary : BOOLEAN := FALSE; + v : maths_value; + v1 : maths_value; + v2 : maths_value; + v3 : maths_value; + vlist : LIST OF maths_value := []; + gexpr : generic_expression; + pairs : SET [1 : ?] OF LIST [2 : 2] OF maths_value; + boo : BOOLEAN; + lgc : LOGICAL; + cum : LOGICAL; + j : INTEGER; + k : INTEGER; + n : INTEGER; + p : REAL; + q : REAL; + r : REAL; + s : REAL; + t : REAL; + u : REAL; + str : STRING; + st2 : STRING; + bin : BINARY; + bi2 : BINARY; + tpl : LIST OF maths_value; + tp2 : LIST OF maths_value; + mem : SET OF maths_value := []; + END_LOCAL; + REPEAT i := 1 TO SIZEOF( expr.arguments ) BY 1; + v := simplify_maths_value( expr.arguments[i] ); + INSERT( vlist, v, i - 1 ); + END_REPEAT; + IF SIZEOF( vlist ) >= 1 THEN + v1 := vlist[1]; + END_IF; + IF SIZEOF( vlist ) >= 2 THEN + v2 := vlist[2]; + END_IF; + IF SIZEOF( vlist ) >= 3 THEN + v3 := vlist[3]; + END_IF; + IF 'ELEMENTARY_FUNCTION_ENUMERATORS' IN types THEN + ef_val := expr.func; + is_elementary := TRUE; + END_IF; + IF 'ELEMENTARY_FUNCTION' IN types THEN + ef_val := expr.func\elementary_function.func_id; + is_elementary := TRUE; + END_IF; + IF is_elementary THEN + CASE ef_val OF + ef_and : + BEGIN + cum := TRUE; + REPEAT i := SIZEOF( vlist ) TO 1 BY -1; + IF 'LOGICAL' IN TYPEOF( vlist[i] ) THEN + lgc := vlist[i]; + cum := cum AND lgc; + IF lgc = FALSE THEN + RETURN( ctmv( FALSE ) ); + END_IF; + REMOVE( vlist, i ); + END_IF; + END_REPEAT; + IF SIZEOF( vlist ) = 0 THEN + RETURN( ctmv( cum ) ); + END_IF; + IF cum <> TRUE THEN + INSERT( vlist, ctmv( cum ), 0 ); + END_IF; + IF SIZEOF( vlist ) = 1 THEN + RETURN( vlist[1] ); + END_IF; + END; + ef_or : + BEGIN + cum := FALSE; + REPEAT i := SIZEOF( vlist ) TO 1 BY -1; + IF 'LOGICAL' IN TYPEOF( vlist[i] ) THEN + lgc := vlist[i]; + cum := cum OR lgc; + IF lgc = TRUE THEN + RETURN( ctmv( TRUE ) ); + END_IF; + REMOVE( vlist, i ); + END_IF; + END_REPEAT; + IF SIZEOF( vlist ) = 0 THEN + RETURN( ctmv( cum ) ); + END_IF; + IF cum <> FALSE THEN + INSERT( vlist, ctmv( cum ), 0 ); + END_IF; + IF SIZEOF( vlist ) = 1 THEN + RETURN( vlist[1] ); + END_IF; + END; + ef_not : IF 'LOGICAL' IN TYPEOF( v1 ) THEN + lgc := v1; + RETURN( ctmv( NOT lgc ) ); + END_IF; + ef_xor : + BEGIN + IF 'LOGICAL' IN TYPEOF( v1 ) THEN + lgc := v1; + IF 'LOGICAL' IN TYPEOF( v2 ) THEN + cum := v2; + RETURN( ctmv( lgc XOR cum ) ); + ELSE + IF lgc = FALSE THEN + RETURN( ctmv( v2 ) ); + ELSE + IF lgc = UNKNOWN THEN + RETURN( ctmv( UNKNOWN ) ); + ELSE + RETURN( make_function_application( ef_not, [v2] ) ); + END_IF; + END_IF; + END_IF; + ELSE + IF 'LOGICAL' IN TYPEOF( v2 ) THEN + lgc := v2; + IF lgc = FALSE THEN + RETURN( ctmv( v1 ) ); + ELSE + IF lgc = UNKNOWN THEN + RETURN( ctmv( UNKNOWN ) ); + ELSE + RETURN( make_function_application( ef_not, [v1] ) ); + END_IF; + END_IF; + END_IF; + END_IF; + END; + ef_negate_i : IF 'INTEGER' IN TYPEOF( v1 ) THEN + j := v1; + RETURN( ctmv( -j ) ); + END_IF; + ef_add_i : + BEGIN + j := 0; + REPEAT i := SIZEOF( vlist ) TO 1 BY -1; + IF 'INTEGER' IN TYPEOF( vlist[i] ) THEN + k := vlist[i]; + j := j + k; + REMOVE( vlist, i ); + END_IF; + END_REPEAT; + IF SIZEOF( vlist ) = 0 THEN + RETURN( ctmv( j ) ); + END_IF; + IF j <> 0 THEN + INSERT( vlist, ctmv( j ), 0 ); + END_IF; + IF SIZEOF( vlist ) = 1 THEN + RETURN( vlist[1] ); + END_IF; + END; + ef_subtract_i : IF ( 'INTEGER' IN TYPEOF( v1 ) ) AND ( 'INTEGER' IN TYPEOF( v2 ) ) THEN + j := v1; + k := v2; + RETURN( ctmv( j - k ) ); + END_IF; + ef_multiply_i : + BEGIN + j := 1; + REPEAT i := SIZEOF( vlist ) TO 1 BY -1; + IF 'INTEGER' IN TYPEOF( vlist[i] ) THEN + k := vlist[i]; + j := j * k; + REMOVE( vlist, i ); + END_IF; + END_REPEAT; + IF SIZEOF( vlist ) = 0 THEN + RETURN( ctmv( j ) ); + END_IF; + IF j <> 1 THEN + INSERT( vlist, ctmv( j ), 0 ); + END_IF; + IF SIZEOF( vlist ) = 1 THEN + RETURN( vlist[1] ); + END_IF; + END; + ef_divide_i : IF ( 'INTEGER' IN TYPEOF( v1 ) ) AND ( 'INTEGER' IN TYPEOF( v2 ) ) THEN + j := v1; + k := v2; + RETURN( ctmv( j DIV k ) ); + END_IF; + ef_mod_i : IF ( 'INTEGER' IN TYPEOF( v1 ) ) AND ( 'INTEGER' IN TYPEOF( v2 ) ) THEN + j := v1; + k := v2; + RETURN( ctmv( j MOD k ) ); + END_IF; + ef_exponentiate_i : IF ( 'INTEGER' IN TYPEOF( v1 ) ) AND ( 'INTEGER' IN TYPEOF( v2 ) ) THEN + j := v1; + k := v2; + n := 1; + REPEAT i := 1 TO ABS( k ) BY 1; + n := n * j; + END_REPEAT; + IF k < 0 THEN + n := 1 DIV n; + END_IF; + RETURN( ctmv( n ) ); + END_IF; + ef_eq_i : IF ( 'INTEGER' IN TYPEOF( v1 ) ) AND ( 'INTEGER' IN TYPEOF( v2 ) ) THEN + j := v1; + k := v2; + RETURN( ctmv( j = k ) ); + END_IF; + ef_ne_i : IF ( 'INTEGER' IN TYPEOF( v1 ) ) AND ( 'INTEGER' IN TYPEOF( v2 ) ) THEN + j := v1; + k := v2; + RETURN( ctmv( j <> k ) ); + END_IF; + ef_gt_i : IF ( 'INTEGER' IN TYPEOF( v1 ) ) AND ( 'INTEGER' IN TYPEOF( v2 ) ) THEN + j := v1; + k := v2; + RETURN( ctmv( j > k ) ); + END_IF; + ef_lt_i : IF ( 'INTEGER' IN TYPEOF( v1 ) ) AND ( 'INTEGER' IN TYPEOF( v2 ) ) THEN + j := v1; + k := v2; + RETURN( ctmv( j < k ) ); + END_IF; + ef_ge_i : IF ( 'INTEGER' IN TYPEOF( v1 ) ) AND ( 'INTEGER' IN TYPEOF( v2 ) ) THEN + j := v1; + k := v2; + RETURN( ctmv( j >= k ) ); + END_IF; + ef_le_i : IF ( 'INTEGER' IN TYPEOF( v1 ) ) AND ( 'INTEGER' IN TYPEOF( v2 ) ) THEN + j := v1; + k := v2; + RETURN( ctmv( j <= k ) ); + END_IF; + ef_abs_i : IF 'INTEGER' IN TYPEOF( v1 ) THEN + j := v1; + RETURN( ctmv( ABS( j ) ) ); + END_IF; + ef_max_i : + BEGIN + boo := FALSE; + REPEAT i := SIZEOF( vlist ) TO 1 BY -1; + IF 'INTEGER' IN TYPEOF( vlist[i] ) THEN + IF boo THEN + k := vlist[i]; + IF k > j THEN + j := k; + END_IF; + ELSE + j := vlist[i]; + boo := TRUE; + END_IF; + REMOVE( vlist, i ); + END_IF; + END_REPEAT; + IF SIZEOF( vlist ) = 0 THEN + RETURN( ctmv( j ) ); + END_IF; + IF boo THEN + INSERT( vlist, ctmv( j ), 0 ); + END_IF; + IF SIZEOF( vlist ) = 1 THEN + RETURN( vlist[1] ); + END_IF; + END; + ef_min_i : + BEGIN + boo := FALSE; + REPEAT i := SIZEOF( vlist ) TO 1 BY -1; + IF 'INTEGER' IN TYPEOF( vlist[i] ) THEN + IF boo THEN + k := vlist[i]; + IF k < j THEN + j := k; + END_IF; + ELSE + j := vlist[i]; + boo := TRUE; + END_IF; + REMOVE( vlist, i ); + END_IF; + END_REPEAT; + IF SIZEOF( vlist ) = 0 THEN + RETURN( ctmv( j ) ); + END_IF; + IF boo THEN + INSERT( vlist, ctmv( j ), 0 ); + END_IF; + IF SIZEOF( vlist ) = 1 THEN + RETURN( vlist[1] ); + END_IF; + END; + ef_negate_r : IF 'REAL' IN TYPEOF( v1 ) THEN + r := v1; + RETURN( ctmv( -r ) ); + END_IF; + ef_reciprocal_r : IF 'REAL' IN TYPEOF( v1 ) THEN + r := v1; + RETURN( ctmv( 1 / r ) ); + END_IF; + ef_add_r : + BEGIN + r := 0; + REPEAT i := SIZEOF( vlist ) TO 1 BY -1; + IF 'REAL' IN TYPEOF( vlist[i] ) THEN + s := vlist[i]; + r := r + s; + REMOVE( vlist, i ); + END_IF; + END_REPEAT; + IF SIZEOF( vlist ) = 0 THEN + RETURN( ctmv( r ) ); + END_IF; + IF r <> 0 THEN + INSERT( vlist, ctmv( r ), 0 ); + END_IF; + IF SIZEOF( vlist ) = 1 THEN + RETURN( vlist[1] ); + END_IF; + END; + ef_subtract_r : IF ( 'REAL' IN TYPEOF( v1 ) ) AND ( 'REAL' IN TYPEOF( v2 ) ) THEN + r := v1; + s := v2; + RETURN( ctmv( r - s ) ); + END_IF; + ef_multiply_r : + BEGIN + r := 1; + REPEAT i := SIZEOF( vlist ) TO 1 BY -1; + IF 'REAL' IN TYPEOF( vlist[i] ) THEN + s := vlist[i]; + r := r * s; + REMOVE( vlist, i ); + END_IF; + END_REPEAT; + IF SIZEOF( vlist ) = 0 THEN + RETURN( ctmv( r ) ); + END_IF; + IF r <> 1 THEN + INSERT( vlist, ctmv( r ), 0 ); + END_IF; + IF SIZEOF( vlist ) = 1 THEN + RETURN( vlist[1] ); + END_IF; + END; + ef_divide_r : IF ( 'REAL' IN TYPEOF( v1 ) ) AND ( 'REAL' IN TYPEOF( v2 ) ) THEN + r := v1; + s := v2; + RETURN( ctmv( r / s ) ); + END_IF; + ef_mod_r : IF ( 'REAL' IN TYPEOF( v1 ) ) AND ( 'REAL' IN TYPEOF( v2 ) ) THEN + r := v1; + s := v2; + t := r / s; + j := t DIV 1; + IF ( t < 0 ) AND ( j <> t ) THEN + j := j - 1; + END_IF; + RETURN( ctmv( r - ( j * s ) ) ); + END_IF; + ef_exponentiate_r : IF ( 'REAL' IN TYPEOF( v1 ) ) AND ( 'REAL' IN TYPEOF( v2 ) ) THEN + r := v1; + s := v2; + RETURN( ctmv( r ** s ) ); + END_IF; + ef_exponentiate_ri : IF ( 'REAL' IN TYPEOF( v1 ) ) AND ( 'INTEGER' IN TYPEOF( v2 ) ) THEN + r := v1; + k := v2; + t := 1; + REPEAT i := 1 TO ABS( k ) BY 1; + t := t * r; + END_REPEAT; + IF k < 0 THEN + t := 1 / t; + END_IF; + RETURN( ctmv( t ) ); + END_IF; + ef_eq_r : IF ( 'REAL' IN TYPEOF( v1 ) ) AND ( 'REAL' IN TYPEOF( v2 ) ) THEN + r := v1; + s := v2; + RETURN( ctmv( r = s ) ); + END_IF; + ef_ne_r : IF ( 'REAL' IN TYPEOF( v1 ) ) AND ( 'REAL' IN TYPEOF( v2 ) ) THEN + r := v1; + s := v2; + RETURN( ctmv( r <> s ) ); + END_IF; + ef_gt_r : IF ( 'REAL' IN TYPEOF( v1 ) ) AND ( 'REAL' IN TYPEOF( v2 ) ) THEN + r := v1; + s := v2; + RETURN( ctmv( r > s ) ); + END_IF; + ef_lt_r : IF ( 'REAL' IN TYPEOF( v1 ) ) AND ( 'REAL' IN TYPEOF( v2 ) ) THEN + r := v1; + s := v2; + RETURN( ctmv( r < s ) ); + END_IF; + ef_ge_r : IF ( 'REAL' IN TYPEOF( v1 ) ) AND ( 'REAL' IN TYPEOF( v2 ) ) THEN + r := v1; + s := v2; + RETURN( ctmv( r >= s ) ); + END_IF; + ef_le_r : IF ( 'REAL' IN TYPEOF( v1 ) ) AND ( 'REAL' IN TYPEOF( v2 ) ) THEN + r := v1; + s := v2; + RETURN( ctmv( r <= s ) ); + END_IF; + ef_abs_r : IF 'REAL' IN TYPEOF( v1 ) THEN + r := v1; + RETURN( ctmv( ABS( r ) ) ); + END_IF; + ef_max_r : + BEGIN + boo := FALSE; + REPEAT i := SIZEOF( vlist ) TO 1 BY -1; + IF 'REAL' IN TYPEOF( vlist[i] ) THEN + IF boo THEN + s := vlist[i]; + IF s > r THEN + r := s; + END_IF; + ELSE + r := vlist[i]; + boo := TRUE; + END_IF; + REMOVE( vlist, i ); + END_IF; + END_REPEAT; + IF SIZEOF( vlist ) = 0 THEN + RETURN( ctmv( r ) ); + END_IF; + IF boo THEN + INSERT( vlist, ctmv( r ), 0 ); + END_IF; + IF SIZEOF( vlist ) = 1 THEN + RETURN( vlist[1] ); + END_IF; + END; + ef_min_r : + BEGIN + boo := FALSE; + REPEAT i := SIZEOF( vlist ) TO 1 BY -1; + IF 'REAL' IN TYPEOF( vlist[i] ) THEN + IF boo THEN + s := vlist[i]; + IF s < r THEN + r := s; + END_IF; + ELSE + r := vlist[i]; + boo := TRUE; + END_IF; + REMOVE( vlist, i ); + END_IF; + END_REPEAT; + IF SIZEOF( vlist ) = 0 THEN + RETURN( ctmv( r ) ); + END_IF; + IF boo THEN + INSERT( vlist, ctmv( r ), 0 ); + END_IF; + IF SIZEOF( vlist ) = 1 THEN + RETURN( vlist[1] ); + END_IF; + END; + ef_acos_r : IF 'REAL' IN TYPEOF( v1 ) THEN + r := v1; + RETURN( ctmv( ACOS( r ) ) ); + END_IF; + ef_asin_r : IF 'REAL' IN TYPEOF( v1 ) THEN + r := v1; + RETURN( ctmv( ASIN( r ) ) ); + END_IF; + ef_atan2_r : IF ( 'REAL' IN TYPEOF( v1 ) ) AND ( 'REAL' IN TYPEOF( v2 ) ) THEN + r := v1; + s := v2; + RETURN( ctmv( atan2( r, s ) ) ); + END_IF; + ef_cos_r : IF 'REAL' IN TYPEOF( v1 ) THEN + r := v1; + RETURN( ctmv( COS( r ) ) ); + END_IF; + ef_exp_r : IF 'REAL' IN TYPEOF( v1 ) THEN + r := v1; + RETURN( ctmv( EXP( r ) ) ); + END_IF; + ef_ln_r : IF 'REAL' IN TYPEOF( v1 ) THEN + r := v1; + RETURN( ctmv( LOG( r ) ) ); + END_IF; + ef_log2_r : IF 'REAL' IN TYPEOF( v1 ) THEN + r := v1; + RETURN( ctmv( LOG2( r ) ) ); + END_IF; + ef_log10_r : IF 'REAL' IN TYPEOF( v1 ) THEN + r := v1; + RETURN( ctmv( LOG10( r ) ) ); + END_IF; + ef_sin_r : IF 'REAL' IN TYPEOF( v1 ) THEN + r := v1; + RETURN( ctmv( SIN( r ) ) ); + END_IF; + ef_sqrt_r : IF 'REAL' IN TYPEOF( v1 ) THEN + r := v1; + RETURN( ctmv( SQRT( r ) ) ); + END_IF; + ef_tan_r : IF 'REAL' IN TYPEOF( v1 ) THEN + r := v1; + RETURN( ctmv( TAN( r ) ) ); + END_IF; + ef_form_c : IF ( 'REAL' IN TYPEOF( v1 ) ) AND ( 'REAL' IN TYPEOF( v2 ) ) THEN + r := v1; + s := v2; + RETURN( makec( r, s ) ); + END_IF; + ef_rpart_c : IF cnlit IN TYPEOF( v1 ) THEN + RETURN( ctmv( v1\complex_number_literal.real_part ) ); + END_IF; + ef_ipart_c : IF cnlit IN TYPEOF( v1 ) THEN + RETURN( ctmv( v1\complex_number_literal.imag_part ) ); + END_IF; + ef_negate_c : IF cnlit IN TYPEOF( v1 ) THEN + parts( v1, p, q ); + RETURN( makec( -p, -q ) ); + END_IF; + ef_reciprocal_c : IF cnlit IN TYPEOF( v1 ) THEN + parts( v1, p, q ); + t := ( p * p ) + ( q * q ); + RETURN( makec( p / t, ( -q ) / t ) ); + END_IF; + ef_add_c : + BEGIN + p := 0; + q := 0; + REPEAT i := SIZEOF( vlist ) TO 1 BY -1; + IF cnlit IN TYPEOF( vlist[i] ) THEN + parts( vlist[i], r, s ); + p := p + r; + q := q + s; + REMOVE( vlist, i ); + END_IF; + END_REPEAT; + IF SIZEOF( vlist ) = 0 THEN + RETURN( makec( p, q ) ); + END_IF; + IF ( ( p * p ) + ( q * q ) ) <> 0 THEN + INSERT( vlist, makec( p, q ), 0 ); + END_IF; + IF SIZEOF( vlist ) = 1 THEN + RETURN( vlist[1] ); + END_IF; + END; + ef_subtract_c : IF ( cnlit IN TYPEOF( v1 ) ) AND ( cnlit IN TYPEOF( v2 ) ) THEN + parts( v1, p, q ); + parts( v2, r, s ); + RETURN( makec( p - r, q - s ) ); + END_IF; + ef_multiply_c : + BEGIN + p := 1; + q := 0; + REPEAT i := SIZEOF( vlist ) TO 1 BY -1; + IF cnlit IN TYPEOF( vlist[i] ) THEN + parts( vlist[i], r, s ); + p := ( p * r ) - ( q * s ); + q := ( p * s ) + ( q * r ); + REMOVE( vlist, i ); + END_IF; + END_REPEAT; + IF SIZEOF( vlist ) = 0 THEN + RETURN( makec( p, q ) ); + END_IF; + IF ( p <> 1 ) OR ( q <> 0 ) THEN + INSERT( vlist, makec( p, q ), 0 ); + END_IF; + IF SIZEOF( vlist ) = 1 THEN + RETURN( vlist[1] ); + END_IF; + END; + ef_divide_c : IF ( cnlit IN TYPEOF( v1 ) ) AND ( cnlit IN TYPEOF( v2 ) ) THEN + parts( v1, p, q ); + parts( v2, r, s ); + t := ( r * r ) + ( s * s ); + RETURN( makec( ( ( p * r ) + ( q * s ) ) / t, ( ( q * r ) - ( p * s ) ) / t ) ); + END_IF; + ef_exponentiate_c : IF ( cnlit IN TYPEOF( v1 ) ) AND ( cnlit IN TYPEOF( v2 ) ) THEN + parts( v1, p, q ); + parts( v2, r, s ); + t := 0.5 * LOG( ( p * p ) + ( q * q ) ); + u := atan2( q, p ); + p := ( r * t ) - ( s * u ); + q := ( r * u ) + ( s * t ); + r := EXP( p ); + RETURN( makec( r * COS( q ), r * SIN( q ) ) ); + END_IF; + ef_exponentiate_ci : IF ( cnlit IN TYPEOF( v1 ) ) AND ( 'INTEGER' IN TYPEOF( v2 ) ) THEN + parts( v1, p, q ); + k := v2; + r := 1; + s := 0; + REPEAT i := 1 TO ABS( k ) BY 1; + r := ( p * r ) - ( q * s ); + s := ( p * s ) + ( q * r ); + END_REPEAT; + IF k < 0 THEN + t := ( r * r ) + ( s * s ); + r := r / t; + s := ( -s ) / t; + END_IF; + RETURN( makec( r, s ) ); + END_IF; + ef_eq_c : IF ( cnlit IN TYPEOF( v1 ) ) AND ( cnlit IN TYPEOF( v2 ) ) THEN + parts( v1, p, q ); + parts( v2, r, s ); + RETURN( ctmv( ( p = r ) AND ( q = s ) ) ); + END_IF; + ef_ne_c : IF ( cnlit IN TYPEOF( v1 ) ) AND ( cnlit IN TYPEOF( v2 ) ) THEN + parts( v1, p, q ); + parts( v2, r, s ); + RETURN( ctmv( ( p <> r ) OR ( q <> s ) ) ); + END_IF; + ef_conjugate_c : IF cnlit IN TYPEOF( v1 ) THEN + parts( v1, p, q ); + RETURN( makec( p, -q ) ); + END_IF; + ef_abs_c : IF cnlit IN TYPEOF( v1 ) THEN + parts( v1, p, q ); + RETURN( ctmv( SQRT( ( p * p ) + ( q * q ) ) ) ); + END_IF; + ef_arg_c : IF cnlit IN TYPEOF( v1 ) THEN + parts( v1, p, q ); + RETURN( ctmv( atan2( q, p ) ) ); + END_IF; + ef_cos_c : IF cnlit IN TYPEOF( v1 ) THEN + parts( v1, p, q ); + t := 0.5 * EXP( -q ); + u := 0.5 * EXP( q ); + RETURN( makec( ( t + u ) * COS( p ), ( t - u ) * SIN( p ) ) ); + END_IF; + ef_exp_c : IF cnlit IN TYPEOF( v1 ) THEN + parts( v1, p, q ); + RETURN( makec( EXP( p ) * COS( q ), EXP( p ) * SIN( q ) ) ); + END_IF; + ef_ln_c : IF cnlit IN TYPEOF( v1 ) THEN + parts( v1, p, q ); + RETURN( makec( 0.5 * LOG( ( p * p ) + ( q * q ) ), atan2( q, p ) ) ); + END_IF; + ef_sin_c : IF cnlit IN TYPEOF( v1 ) THEN + parts( v1, p, q ); + t := 0.5 * EXP( -q ); + u := 0.5 * EXP( q ); + RETURN( makec( ( t + u ) * SIN( p ), ( u - t ) * COS( p ) ) ); + END_IF; + ef_sqrt_c : IF cnlit IN TYPEOF( v1 ) THEN + parts( v1, p, q ); + t := SQRT( SQRT( ( p * p ) + ( q * q ) ) ); + u := 0.5 * atan2( q, p ); + RETURN( makec( t * COS( u ), t * SIN( u ) ) ); + END_IF; + ef_tan_c : IF cnlit IN TYPEOF( v1 ) THEN + parts( v1, p, q ); + t := EXP( 2 * q ) + EXP( ( -2 ) * q ) + ( 2 * COS( 2 * p ) ); + RETURN( makec( ( 2 * SIN( 2 * p ) ) / t, ( EXP( ( -2 ) * q ) - EXP( 2 * q ) ) / t ) ); + END_IF; + ef_subscript_s : IF ( 'STRING' IN TYPEOF( v1 ) ) AND ( 'INTEGER' IN TYPEOF( v2 ) ) THEN + str := v1; + k := v2; + RETURN( ctmv( str[k] ) ); + END_IF; + ef_eq_s : IF ( 'STRING' IN TYPEOF( v1 ) ) AND ( 'STRING' IN TYPEOF( v2 ) ) THEN + str := v1; + st2 := v2; + RETURN( ctmv( str = st2 ) ); + END_IF; + ef_ne_s : IF ( 'STRING' IN TYPEOF( v1 ) ) AND ( 'STRING' IN TYPEOF( v2 ) ) THEN + str := v1; + st2 := v2; + RETURN( ctmv( str <> st2 ) ); + END_IF; + ef_gt_s : IF ( 'STRING' IN TYPEOF( v1 ) ) AND ( 'STRING' IN TYPEOF( v2 ) ) THEN + str := v1; + st2 := v2; + RETURN( ctmv( str > st2 ) ); + END_IF; + ef_lt_s : IF ( 'STRING' IN TYPEOF( v1 ) ) AND ( 'STRING' IN TYPEOF( v2 ) ) THEN + str := v1; + st2 := v2; + RETURN( ctmv( str < st2 ) ); + END_IF; + ef_ge_s : IF ( 'STRING' IN TYPEOF( v1 ) ) AND ( 'STRING' IN TYPEOF( v2 ) ) THEN + str := v1; + st2 := v2; + RETURN( ctmv( str >= st2 ) ); + END_IF; + ef_le_s : IF ( 'STRING' IN TYPEOF( v1 ) ) AND ( 'STRING' IN TYPEOF( v2 ) ) THEN + str := v1; + st2 := v2; + RETURN( ctmv( str <= st2 ) ); + END_IF; + ef_subsequence_s : IF ( 'STRING' IN TYPEOF( v1 ) ) AND ( 'INTEGER' IN TYPEOF( v2 ) ) AND ( 'INTEGER' IN + TYPEOF( v3 ) ) THEN + str := v1; + j := v2; + k := v3; + RETURN( ctmv( str[j : k] ) ); + END_IF; + ef_concat_s : + BEGIN + str := ''; + REPEAT i := SIZEOF( vlist ) TO 1 BY -1; + IF 'STRING' IN TYPEOF( vlist[i] ) THEN + st2 := vlist[i]; + str := str + st2; + REMOVE( vlist, i ); + ELSE + IF str <> '' THEN + INSERT( vlist, ctmv( str ), i ); + str := ''; + END_IF; + END_IF; + END_REPEAT; + IF SIZEOF( vlist ) = 0 THEN + RETURN( ctmv( str ) ); + END_IF; + IF str <> '' THEN + INSERT( vlist, ctmv( str ), 0 ); + END_IF; + IF SIZEOF( vlist ) = 1 THEN + RETURN( vlist[1] ); + END_IF; + END; + ef_size_s : IF 'STRING' IN TYPEOF( v1 ) THEN + str := v1; + RETURN( ctmv( LENGTH( str ) ) ); + END_IF; + ef_format : IF ( 'NUMBER' IN TYPEOF( v1 ) ) AND ( 'STRING' IN TYPEOF( v2 ) ) THEN + RETURN( ctmv( FORMAT( v1, v2 ) ) ); + END_IF; + ef_value : IF 'STRING' IN TYPEOF( v1 ) THEN + str := v1; + RETURN( ctmv( VALUE( str ) ) ); + END_IF; + ef_like : IF ( 'STRING' IN TYPEOF( v1 ) ) AND ( 'STRING' IN TYPEOF( v2 ) ) THEN + RETURN( ctmv( v1 LIKE v2 ) ); + END_IF; + ef_subscript_b : IF ( 'BINARY' IN TYPEOF( v1 ) ) AND ( 'INTEGER' IN TYPEOF( v2 ) ) THEN + bin := v1; + k := v2; + RETURN( ctmv( bin[k] ) ); + END_IF; + ef_eq_b : IF ( 'BINARY' IN TYPEOF( v1 ) ) AND ( 'BINARY' IN TYPEOF( v2 ) ) THEN + bin := v1; + bi2 := v2; + RETURN( ctmv( bin = bi2 ) ); + END_IF; + ef_ne_b : IF ( 'BINARY' IN TYPEOF( v1 ) ) AND ( 'BINARY' IN TYPEOF( v2 ) ) THEN + bin := v1; + bi2 := v2; + RETURN( ctmv( bin <> bi2 ) ); + END_IF; + ef_gt_b : IF ( 'BINARY' IN TYPEOF( v1 ) ) AND ( 'BINARY' IN TYPEOF( v2 ) ) THEN + bin := v1; + bi2 := v2; + RETURN( ctmv( bin > bi2 ) ); + END_IF; + ef_lt_b : IF ( 'BINARY' IN TYPEOF( v1 ) ) AND ( 'BINARY' IN TYPEOF( v2 ) ) THEN + bin := v1; + bi2 := v2; + RETURN( ctmv( bin < bi2 ) ); + END_IF; + ef_ge_b : IF ( 'BINARY' IN TYPEOF( v1 ) ) AND ( 'BINARY' IN TYPEOF( v2 ) ) THEN + bin := v1; + bi2 := v2; + RETURN( ctmv( bin >= bi2 ) ); + END_IF; + ef_le_b : IF ( 'BINARY' IN TYPEOF( v1 ) ) AND ( 'BINARY' IN TYPEOF( v2 ) ) THEN + bin := v1; + bi2 := v2; + RETURN( ctmv( bin <= bi2 ) ); + END_IF; + ef_subsequence_b : IF ( 'BINARY' IN TYPEOF( v1 ) ) AND ( 'INTEGER' IN TYPEOF( v2 ) ) AND ( 'INTEGER' IN + TYPEOF( v3 ) ) THEN + bin := v1; + j := v2; + k := v3; + RETURN( ctmv( bin[j : k] ) ); + END_IF; + ef_concat_b : + BEGIN + boo := FALSE; + REPEAT i := SIZEOF( vlist ) TO 1 BY -1; + IF 'BINARY' IN TYPEOF( vlist[i] ) THEN + IF boo THEN + bi2 := vlist[i]; + bin := bin + bi2; + ELSE + bin := vlist[i]; + boo := TRUE; + END_IF; + REMOVE( vlist, i ); + ELSE + IF boo THEN + INSERT( vlist, ctmv( bin ), i ); + boo := FALSE; + END_IF; + END_IF; + END_REPEAT; + IF SIZEOF( vlist ) = 0 THEN + RETURN( ctmv( bin ) ); + END_IF; + IF boo THEN + INSERT( vlist, ctmv( bin ), 0 ); + END_IF; + IF SIZEOF( vlist ) = 1 THEN + RETURN( vlist[1] ); + END_IF; + END; + ef_size_b : IF 'BINARY' IN TYPEOF( v1 ) THEN + bin := v1; + RETURN( ctmv( BLENGTH( bin ) ) ); + END_IF; + ef_subscript_t : IF ( 'LIST' IN TYPEOF( v1 ) ) AND ( 'INTEGER' IN TYPEOF( v2 ) ) THEN + tpl := v1; + k := v2; + RETURN( ctmv( tpl[k] ) ); + END_IF; + ef_eq_t : IF ( 'LIST' IN TYPEOF( v1 ) ) AND ( 'LIST' IN TYPEOF( v2 ) ) THEN + lgc := equal_maths_values( v1, v2 ); + IF lgc <> UNKNOWN THEN + RETURN( ctmv( lgc ) ); + END_IF; + END_IF; + ef_ne_t : IF ( 'LIST' IN TYPEOF( v1 ) ) AND ( 'LIST' IN TYPEOF( v2 ) ) THEN + lgc := equal_maths_values( v1, v2 ); + IF lgc <> UNKNOWN THEN + RETURN( ctmv( NOT lgc ) ); + END_IF; + END_IF; + ef_concat_t : + BEGIN + tpl := []; + REPEAT i := SIZEOF( vlist ) TO 1 BY -1; + IF 'STRING' IN TYPEOF( vlist[i] ) THEN + tp2 := vlist[i]; + tpl := tpl + tp2; + REMOVE( vlist, i ); + ELSE + IF SIZEOF( tpl ) <> 0 THEN + INSERT( vlist, ctmv( tpl ), i ); + tpl := []; + END_IF; + END_IF; + END_REPEAT; + IF SIZEOF( vlist ) = 0 THEN + RETURN( ctmv( tpl ) ); + END_IF; + IF SIZEOF( tpl ) <> 0 THEN + INSERT( vlist, ctmv( tpl ), 0 ); + END_IF; + IF SIZEOF( vlist ) = 1 THEN + RETURN( vlist[1] ); + END_IF; + END; + ef_size_t : IF 'LIST' IN TYPEOF( v1 ) THEN + tpl := v1; + RETURN( ctmv( SIZEOF( tpl ) ) ); + END_IF; + ef_entuple : RETURN( ctmv( vlist ) ); + ef_detuple : IF 'LIST' IN TYPEOF( v1 ) THEN + tpl := v1; + RETURN( ctmv( tpl[1] ) ); + END_IF; + ef_insert : IF ( 'LIST' IN TYPEOF( v1 ) ) AND ( 'INTEGER' IN TYPEOF( v3 ) ) THEN + tpl := v1; + k := v3; + INSERT( tpl, v2, k ); + RETURN( ctmv( tpl ) ); + END_IF; + ef_remove : IF ( 'LIST' IN TYPEOF( v1 ) ) AND ( 'INTEGER' IN TYPEOF( v2 ) ) THEN + tpl := v1; + k := v2; + REMOVE( tpl, k ); + RETURN( ctmv( tpl ) ); + END_IF; + ef_sum_it : IF good_t( v1, 'INTEGER' ) THEN + tpl := v1; + j := 0; + REPEAT i := 1 TO SIZEOF( tpl ) BY 1; + j := j + tpl[i]; + END_REPEAT; + RETURN( ctmv( j ) ); + END_IF; + ef_product_it : IF good_t( v1, 'INTEGER' ) THEN + tpl := v1; + j := 1; + REPEAT i := 1 TO SIZEOF( tpl ) BY 1; + j := j * tpl[i]; + END_REPEAT; + RETURN( ctmv( j ) ); + END_IF; + ef_add_it : + BEGIN + boo := FALSE; + REPEAT i := SIZEOF( vlist ) TO 1 BY -1; + IF good_t( vlist[i], 'INTEGER' ) THEN + IF NOT boo THEN + tpl := vlist[i]; + boo := TRUE; + ELSE + tp2 := vlist[i]; + IF SIZEOF( tpl ) <> SIZEOF( tp2 ) THEN + RETURN( ? ); + END_IF; + REPEAT l := 1 TO SIZEOF( tpl ) BY 1; + tpl[j] := tpl[j] + tp2[j]; + END_REPEAT; + END_IF; + REMOVE( vlist, i ); + END_IF; + END_REPEAT; + IF SIZEOF( vlist ) = 0 THEN + RETURN( ctmv( tpl ) ); + END_IF; + IF boo THEN + INSERT( vlist, ctmv( tpl ), 0 ); + END_IF; + IF SIZEOF( vlist ) = 1 THEN + RETURN( vlist[1] ); + END_IF; + END; + ef_subtract_it : IF good_t( v1, 'INTEGER' ) AND good_t( v2, 'INTEGER' ) THEN + tpl := v1; + tp2 := v2; + IF SIZEOF( tpl ) <> SIZEOF( tp2 ) THEN + RETURN( ? ); + END_IF; + REPEAT i := 1 TO SIZEOF( tpl ) BY 1; + tpl[i] := tpl[i] - tp2[i]; + END_REPEAT; + RETURN( ctmv( tpl ) ); + END_IF; + ef_scalar_mult_it : IF ( 'INTEGER' IN TYPEOF( v1 ) ) AND good_t( v2, 'INTEGER' ) THEN + j := v1; + tpl := v2; + REPEAT i := 1 TO SIZEOF( tpl ) BY 1; + tpl[i] := j * tpl[i]; + END_REPEAT; + RETURN( ctmv( tpl ) ); + END_IF; + ef_dot_prod_it : IF good_t( v1, 'INTEGER' ) AND good_t( v2, 'INTEGER' ) THEN + tpl := v1; + tp2 := v2; + j := 0; + IF SIZEOF( tpl ) <> SIZEOF( tp2 ) THEN + RETURN( ? ); + END_IF; + REPEAT i := 1 TO SIZEOF( tpl ) BY 1; + j := j + ( tpl[i] * tp2[i] ); + END_REPEAT; + RETURN( ctmv( j ) ); + END_IF; + ef_sum_rt : IF good_t( v1, 'REAL' ) THEN + tpl := v1; + r := 0; + REPEAT i := 1 TO SIZEOF( tpl ) BY 1; + r := r + tpl[i]; + END_REPEAT; + RETURN( ctmv( r ) ); + END_IF; + ef_product_rt : IF good_t( v1, 'REAL' ) THEN + tpl := v1; + r := 1; + REPEAT i := 1 TO SIZEOF( tpl ) BY 1; + r := r * tpl[i]; + END_REPEAT; + RETURN( ctmv( r ) ); + END_IF; + ef_add_rt : + BEGIN + boo := FALSE; + REPEAT i := SIZEOF( vlist ) TO 1 BY -1; + IF good_t( vlist[i], 'REAL' ) THEN + IF NOT boo THEN + tpl := vlist[i]; + boo := TRUE; + ELSE + tp2 := vlist[i]; + IF SIZEOF( tpl ) <> SIZEOF( tp2 ) THEN + RETURN( ? ); + END_IF; + REPEAT l := 1 TO SIZEOF( tpl ) BY 1; + tpl[j] := tpl[j] + tp2[j]; + END_REPEAT; + END_IF; + REMOVE( vlist, i ); + END_IF; + END_REPEAT; + IF SIZEOF( vlist ) = 0 THEN + RETURN( ctmv( tpl ) ); + END_IF; + IF boo THEN + INSERT( vlist, ctmv( tpl ), 0 ); + END_IF; + IF SIZEOF( vlist ) = 1 THEN + RETURN( vlist[1] ); + END_IF; + END; + ef_subtract_rt : IF good_t( v1, 'REAL' ) AND good_t( v2, 'REAL' ) THEN + tpl := v1; + tp2 := v2; + IF SIZEOF( tpl ) <> SIZEOF( tp2 ) THEN + RETURN( ? ); + END_IF; + REPEAT i := 1 TO SIZEOF( tpl ) BY 1; + tpl[i] := tpl[i] - tp2[i]; + END_REPEAT; + RETURN( ctmv( tpl ) ); + END_IF; + ef_scalar_mult_rt : IF ( 'REAL' IN TYPEOF( v1 ) ) AND good_t( v2, 'REAL' ) THEN + r := v1; + tpl := v2; + REPEAT i := 1 TO SIZEOF( tpl ) BY 1; + tpl[i] := r * tpl[i]; + END_REPEAT; + RETURN( ctmv( tpl ) ); + END_IF; + ef_dot_prod_rt : IF good_t( v1, 'REAL' ) AND good_t( v2, 'REAL' ) THEN + tpl := v1; + tp2 := v2; + r := 0; + IF SIZEOF( tpl ) <> SIZEOF( tp2 ) THEN + RETURN( ? ); + END_IF; + REPEAT i := 1 TO SIZEOF( tpl ) BY 1; + r := r + ( tpl[i] * tp2[i] ); + END_REPEAT; + RETURN( ctmv( r ) ); + END_IF; + ef_norm_rt : IF good_t( v1, 'REAL' ) THEN + tpl := v1; + r := 0; + REPEAT i := 1 TO SIZEOF( tpl ) BY 1; + r := r + ( tpl[i] * tpl[i] ); + END_REPEAT; + RETURN( ctmv( SQRT( r ) ) ); + END_IF; + ef_sum_ct : IF good_t( v1, cnlit ) THEN + tpl := v1; + p := 0; + q := 0; + REPEAT i := 1 TO SIZEOF( tpl ) BY 1; + parts( tpl[i], r, s ); + p := p + r; + q := q + s; + END_REPEAT; + RETURN( makec( p, q ) ); + END_IF; + ef_product_ct : IF good_t( v1, cnlit ) THEN + tpl := v1; + p := 1; + q := 0; + REPEAT i := 1 TO SIZEOF( tpl ) BY 1; + parts( tpl[i], r, s ); + p := ( p * r ) - ( q * s ); + q := ( p * s ) + ( q * r ); + END_REPEAT; + RETURN( makec( p, q ) ); + END_IF; + ef_add_ct : + BEGIN + boo := FALSE; + REPEAT i := SIZEOF( vlist ) TO 1 BY -1; + IF good_t( vlist[i], cnlit ) THEN + IF NOT boo THEN + tpl := vlist[i]; + boo := TRUE; + ELSE + tp2 := vlist[i]; + IF SIZEOF( tpl ) <> SIZEOF( tp2 ) THEN + RETURN( ? ); + END_IF; + REPEAT l := 1 TO SIZEOF( tpl ) BY 1; + parts( tpl[j], p, q ); + parts( tp2[j], r, s ); + tpl[j] := makec( p + r, q + s ); + END_REPEAT; + END_IF; + REMOVE( vlist, i ); + END_IF; + END_REPEAT; + IF SIZEOF( vlist ) = 0 THEN + RETURN( ctmv( tpl ) ); + END_IF; + IF boo THEN + INSERT( vlist, ctmv( tpl ), 0 ); + END_IF; + IF SIZEOF( vlist ) = 1 THEN + RETURN( vlist[1] ); + END_IF; + END; + ef_subtract_ct : IF good_t( v1, cnlit ) AND good_t( v2, cnlit ) THEN + tpl := v1; + tp2 := v2; + IF SIZEOF( tpl ) <> SIZEOF( tp2 ) THEN + RETURN( ? ); + END_IF; + REPEAT i := 1 TO SIZEOF( tpl ) BY 1; + parts( tpl[i], p, q ); + parts( tp2[i], r, s ); + tpl[i] := makec( p - r, q - s ); + END_REPEAT; + RETURN( ctmv( tpl ) ); + END_IF; + ef_scalar_mult_ct : IF ( cnlit IN TYPEOF( v1 ) ) AND good_t( v2, cnlit ) THEN + parts( v1, p, q ); + tpl := v2; + REPEAT i := 1 TO SIZEOF( tpl ) BY 1; + parts( tpl[i], r, s ); + tpl[i] := makec( ( p * r ) - ( q * s ), ( p * s ) + ( q * r ) ); + END_REPEAT; + RETURN( ctmv( tpl ) ); + END_IF; + ef_dot_prod_ct : IF good_t( v1, cnlit ) AND good_t( v2, cnlit ) THEN + tpl := v1; + tp2 := v2; + t := 0; + u := 0; + IF SIZEOF( tpl ) <> SIZEOF( tp2 ) THEN + RETURN( ? ); + END_IF; + REPEAT i := 1 TO SIZEOF( tpl ) BY 1; + parts( tpl[i], p, q ); + parts( tp2[i], r, s ); + t := t + ( p * r ) + ( q * s ); + u := ( u + ( q * r ) ) - ( p * s ); + END_REPEAT; + RETURN( makec( t, u ) ); + END_IF; + ef_norm_ct : IF good_t( v1, cnlit ) THEN + tpl := v1; + r := 0; + REPEAT i := 1 TO SIZEOF( tpl ) BY 1; + parts( tpl[i], p, q ); + r := r + ( p * p ) + ( q * q ); + END_REPEAT; + RETURN( ctmv( SQRT( r ) ) ); + END_IF; + ef_if : IF 'LOGICAL' IN TYPEOF( v1 ) THEN + lgc := v1; + IF lgc THEN + RETURN( v2 ); + ELSE + RETURN( v3 ); + END_IF; + END_IF; + ef_if_i : IF 'LOGICAL' IN TYPEOF( v1 ) THEN + lgc := v1; + IF lgc THEN + RETURN( v2 ); + ELSE + RETURN( v3 ); + END_IF; + END_IF; + ef_if_r : IF 'LOGICAL' IN TYPEOF( v1 ) THEN + lgc := v1; + IF lgc THEN + RETURN( v2 ); + ELSE + RETURN( v3 ); + END_IF; + END_IF; + ef_if_c : IF 'LOGICAL' IN TYPEOF( v1 ) THEN + lgc := v1; + IF lgc THEN + RETURN( v2 ); + ELSE + RETURN( v3 ); + END_IF; + END_IF; + ef_if_s : IF 'LOGICAL' IN TYPEOF( v1 ) THEN + lgc := v1; + IF lgc THEN + RETURN( v2 ); + ELSE + RETURN( v3 ); + END_IF; + END_IF; + ef_if_b : IF 'LOGICAL' IN TYPEOF( v1 ) THEN + lgc := v1; + IF lgc THEN + RETURN( v2 ); + ELSE + RETURN( v3 ); + END_IF; + END_IF; + ef_if_t : IF 'LOGICAL' IN TYPEOF( v1 ) THEN + lgc := v1; + IF lgc THEN + RETURN( v2 ); + ELSE + RETURN( v3 ); + END_IF; + END_IF; + ef_ensemble : RETURN( make_finite_space( mem + vlist ) ); + ef_member_of : IF ( schema_prefix + 'MATHS_SPACE' ) IN TYPEOF( v2 ) THEN + lgc := member_of( v1, v2 ); + IF lgc <> UNKNOWN THEN + RETURN( ctmv( lgc ) ); + END_IF; + END_IF; + END_CASE; + RETURN( make_function_application( expr.func, vlist ) ); + END_IF; + IF 'ABSTRACTED_EXPRESSION_FUNCTION' IN types THEN + gexpr := substitute( expr.func\abstracted_expression_function.expr, expr.func\quantifier_expression.variables, vlist ); + RETURN( simplify_generic_expression( gexpr ) ); + END_IF; + IF 'FINITE_FUNCTION' IN types THEN + pairs := expr.func\finite_function.pairs; + REPEAT i := 1 TO SIZEOF( pairs ) BY 1; + IF equal_maths_values( vlist[1], pairs[i][1] ) THEN + RETURN( simplify_maths_value( pairs[i][2] ) ); + END_IF; + END_REPEAT; + RETURN( make_function_application( expr.func, vlist ) ); + END_IF; + RETURN( expr ); + + END_FUNCTION; + + FUNCTION simplify_generic_expression( + expr : generic_expression + ) : maths_value; + + FUNCTION make_number_literal( + nmb : NUMBER + ) : generic_literal; + IF 'INTEGER' IN TYPEOF( nmb ) THEN + RETURN( make_int_literal( nmb ) ); + END_IF; + RETURN( make_real_literal( nmb ) ); + + END_FUNCTION; + + FUNCTION restore_binary( + expr : binary_generic_expression; + opd1, opd2 : generic_expression + ) : generic_expression; + expr.operands[1] := opd1; + expr.operands[2] := opd2; + RETURN( expr ); + + END_FUNCTION; + + FUNCTION restore_mulary( + expr : multiple_arity_generic_expression; + ops : LIST OF generic_expression + ) : generic_expression; + expr.operands := ops; + RETURN( expr ); + + END_FUNCTION; + + FUNCTION restore_unary( + expr : unary_generic_expression; + opnd : generic_expression + ) : generic_expression; + expr.operand := opnd; + RETURN( expr ); + + END_FUNCTION; + + LOCAL + types : SET OF STRING := stripped_typeof( expr ); + v1 : maths_value; + v2 : maths_value; + vlist : LIST OF maths_value := []; + op1 : generic_expression; + op2 : generic_expression; + oplist : LIST OF generic_expression := []; + opnds : LIST [2 : ?] OF generic_expression; + n : INTEGER; + m : INTEGER; + finfun : maths_function_select; + boo : BOOLEAN; + str : STRING; + nmb : NUMBER; + END_LOCAL; + IF 'INT_LITERAL' IN types THEN + RETURN( convert_to_maths_value( expr\int_literal.the_value ) ); + END_IF; + IF 'REAL_LITERAL' IN types THEN + RETURN( convert_to_maths_value( expr\real_literal.the_value ) ); + END_IF; + IF 'BOOLEAN_LITERAL' IN types THEN + RETURN( convert_to_maths_value( expr\boolean_literal.the_value ) ); + END_IF; + IF 'STRING_LITERAL' IN types THEN + RETURN( convert_to_maths_value( expr\string_literal.the_value ) ); + END_IF; + IF 'COMPLEX_NUMBER_LITERAL' IN types THEN + RETURN( expr ); + END_IF; + IF 'LOGICAL_LITERAL' IN types THEN + RETURN( convert_to_maths_value( expr\logical_literal.lit_value ) ); + END_IF; + IF 'BINARY_LITERAL' IN types THEN + RETURN( convert_to_maths_value( expr\binary_literal.lit_value ) ); + END_IF; + IF 'MATHS_ENUM_LITERAL' IN types THEN + RETURN( expr\maths_enum_literal.lit_value ); + END_IF; + IF 'REAL_TUPLE_LITERAL' IN types THEN + RETURN( convert_to_maths_value( expr\real_tuple_literal.lit_value ) ); + END_IF; + IF 'INTEGER_TUPLE_LITERAL' IN types THEN + RETURN( convert_to_maths_value( expr\integer_tuple_literal.lit_value ) ); + END_IF; + IF 'ATOM_BASED_LITERAL' IN types THEN + RETURN( expr\atom_based_literal.lit_value ); + END_IF; + IF 'MATHS_TUPLE_LITERAL' IN types THEN + RETURN( convert_to_maths_value( expr\maths_tuple_literal.lit_value ) ); + END_IF; + IF 'MATHS_SPACE' IN types THEN + RETURN( simplify_maths_space( expr ) ); + END_IF; + IF 'FUNCTION_APPLICATION' IN types THEN + RETURN( simplify_function_application( expr ) ); + END_IF; + IF 'UNARY_GENERIC_EXPRESSION' IN types THEN + v1 := simplify_generic_expression( expr\unary_generic_expression.operand ); + op1 := convert_to_operand( v1 ); + END_IF; + IF 'BINARY_GENERIC_EXPRESSION' IN types THEN + v1 := simplify_generic_expression( expr\binary_generic_expression.operands[1] ); + op1 := convert_to_operand( v1 ); + v2 := simplify_generic_expression( expr\binary_generic_expression.operands[2] ); + op2 := convert_to_operand( v2 ); + END_IF; + IF 'MULTIPLE_ARITY_GENERIC_EXPRESSION' IN types THEN + opnds := expr\multiple_arity_generic_expression.operands; + REPEAT i := 1 TO SIZEOF( opnds ) BY 1; + v1 := simplify_generic_expression( opnds[i] ); + INSERT( vlist, v1, i - 1 ); + INSERT( oplist, convert_to_operand( v1 ), i - 1 ); + END_REPEAT; + END_IF; + IF 'PARALLEL_COMPOSED_FUNCTION' IN types THEN + v1 := vlist[1]; + n := SIZEOF( vlist ); + finfun := vlist[n]; + REMOVE( vlist, n ); + REMOVE( vlist, 1 ); + RETURN( make_parallel_composed_function( v1, vlist, finfun ) ); + END_IF; + IF ( 'ABS_EXPRESSION' IN types ) AND ( 'NUMBER' IN TYPEOF( v1 ) ) THEN + RETURN( convert_to_maths_value( ABS( v1 ) ) ); + END_IF; + IF ( 'ACOS_EXPRESSION' IN types ) AND ( 'NUMBER' IN TYPEOF( v1 ) ) THEN + RETURN( convert_to_maths_value( ACOS( v1 ) ) ); + END_IF; + IF 'AND_EXPRESSION' IN types THEN + REPEAT i := SIZEOF( vlist ) TO 1 BY -1; + IF 'BOOLEAN' IN TYPEOF( vlist[i] ) THEN + boo := vlist[i]; + IF NOT boo THEN + RETURN( convert_to_maths_value( FALSE ) ); + END_IF; + REMOVE( oplist, i ); + END_IF; + END_REPEAT; + IF SIZEOF( oplist ) = 0 THEN + RETURN( convert_to_maths_value( TRUE ) ); + END_IF; + IF SIZEOF( oplist ) = 1 THEN + RETURN( oplist[1] ); + END_IF; + END_IF; + IF ( 'ASIN_EXPRESSION' IN types ) AND ( 'NUMBER' IN TYPEOF( v1 ) ) THEN + RETURN( convert_to_maths_value( ASIN( v1 ) ) ); + END_IF; + IF ( 'ATAN_EXPRESSION' IN types ) AND ( 'NUMBER' IN TYPEOF( v1 ) ) AND ( 'NUMBER' IN TYPEOF( v2 ) ) THEN + RETURN( convert_to_maths_value( ATAN( v1, v2 ) ) ); + END_IF; + IF ( 'COMPARISON_EXPRESSION' IN types ) AND ( ( ( 'NUMBER' IN TYPEOF( v1 ) ) AND ( 'NUMBER' IN TYPEOF( v2 ) ) ) OR ( ( 'STRING' + IN TYPEOF( v1 ) ) AND ( 'STRING' IN TYPEOF( v2 ) ) ) OR ( ( 'BOOLEAN' IN TYPEOF( v1 ) ) AND ( 'BOOLEAN' IN TYPEOF( v2 ) ) ) ) + THEN + IF 'COMPARISON_EQUAL' IN types THEN + boo := bool( v1 = v2 ); + ELSE + IF 'COMPARISON_GREATER' IN types THEN + boo := bool( v1 > v2 ); + ELSE + IF 'COMPARISON_GREATER_EQUAL' IN types THEN + boo := bool( v1 >= v2 ); + ELSE + IF 'COMPARISON_LESS' IN types THEN + boo := bool( v1 < v2 ); + ELSE + IF 'COMPARISON_LESS_EQUAL' IN types THEN + boo := bool( v1 <= v2 ); + ELSE + IF 'COMPARISON_NOT_EQUAL' IN types THEN + boo := bool( v1 <> v2 ); + ELSE + IF 'LIKE_EXPRESSION' IN types THEN + boo := bool( v1 LIKE v2 ); + ELSE + RETURN( ? ); + END_IF; + END_IF; + END_IF; + END_IF; + END_IF; + END_IF; + END_IF; + RETURN( convert_to_maths_value( boo ) ); + END_IF; + IF 'CONCAT_EXPRESSION' IN types THEN + str := ''; + REPEAT i := SIZEOF( vlist ) TO 1 BY -1; + IF 'STRING' IN TYPEOF( vlist[i] ) THEN + str := vlist[i] + str; + REMOVE( oplist, i ); + ELSE + IF LENGTH( str ) > 0 THEN + INSERT( oplist, make_string_literal( str ), i ); + str := ''; + END_IF; + END_IF; + END_REPEAT; + IF SIZEOF( oplist ) = 0 THEN + RETURN( convert_to_maths_value( str ) ); + END_IF; + IF LENGTH( str ) > 0 THEN + INSERT( oplist, make_string_literal( str ), 0 ); + END_IF; + IF SIZEOF( oplist ) = 1 THEN + RETURN( oplist[1] ); + END_IF; + END_IF; + IF ( 'COS_EXPRESSION' IN types ) AND ( 'NUMBER' IN TYPEOF( v1 ) ) THEN + RETURN( convert_to_maths_value( COS( v1 ) ) ); + END_IF; + IF ( 'DIV_EXPRESSION' IN types ) AND ( 'NUMBER' IN TYPEOF( v1 ) ) AND ( 'NUMBER' IN TYPEOF( v2 ) ) THEN + RETURN( convert_to_maths_value( v1 DIV v2 ) ); + END_IF; + IF 'EQUALS_EXPRESSION' IN types THEN + opnds := expr\binary_generic_expression.operands; + RETURN( convert_to_maths_value( opnds[1] :=: opnds[2] ) ); + END_IF; + IF ( 'EXP_EXPRESSION' IN types ) AND ( 'NUMBER' IN TYPEOF( v1 ) ) THEN + RETURN( convert_to_maths_value( EXP( v1 ) ) ); + END_IF; + IF ( 'FORMAT_EXPRESSION' IN types ) AND ( 'NUMBER' IN TYPEOF( v1 ) ) AND ( 'STRING' IN TYPEOF( v2 ) ) THEN + RETURN( convert_to_maths_value( FORMAT( v1, v2 ) ) ); + END_IF; + IF ( 'INDEX_EXPRESSION' IN types ) AND ( 'STRING' IN TYPEOF( v1 ) ) AND ( 'NUMBER' IN TYPEOF( v2 ) ) THEN + str := v1; + n := v2; + RETURN( convert_to_maths_value( str[n] ) ); + END_IF; + IF ( 'INT_VALUE_EXPRESSION' IN types ) AND ( 'STRING' IN TYPEOF( v1 ) ) THEN + RETURN( convert_to_maths_value( VALUE( v1 ) ) ); + END_IF; + IF 'INTERVAL_EXPRESSION' IN types THEN + str := ''; + IF 'NUMBER' IN TYPEOF( vlist[1] ) THEN + str := 'NUMBER'; + END_IF; + IF 'STRING' IN TYPEOF( vlist[1] ) THEN + str := 'STRING'; + END_IF; + IF 'BOOLEAN' IN TYPEOF( vlist[1] ) THEN + str := 'BOOLEAN'; + END_IF; + IF ( LENGTH( str ) > 0 ) AND ( str IN TYPEOF( vlist[2] ) ) AND ( str IN TYPEOF( vlist[3] ) ) THEN + RETURN( convert_to_maths_value( ( vlist[1] <= vlist[2] ) AND ( vlist[2] <= vlist[3] ) ) ); + END_IF; + END_IF; + IF ( 'LENGTH_EXPRESSION' IN types ) AND ( 'STRING' IN TYPEOF( v1 ) ) THEN + RETURN( convert_to_maths_value( LENGTH( v1 ) ) ); + END_IF; + IF ( 'LOG_EXPRESSION' IN types ) AND ( 'NUMBER' IN TYPEOF( v1 ) ) THEN + RETURN( convert_to_maths_value( LOG( v1 ) ) ); + END_IF; + IF ( 'LOG10_EXPRESSION' IN types ) AND ( 'NUMBER' IN TYPEOF( v1 ) ) THEN + RETURN( convert_to_maths_value( LOG10( v1 ) ) ); + END_IF; + IF ( 'LOG2_EXPRESSION' IN types ) AND ( 'NUMBER' IN TYPEOF( v1 ) ) THEN + RETURN( convert_to_maths_value( LOG2( v1 ) ) ); + END_IF; + IF 'MAXIMUM_EXPRESSION' IN types THEN + boo := FALSE; + REPEAT i := SIZEOF( vlist ) TO 1 BY -1; + IF 'NUMBER' IN TYPEOF( vlist[i] ) THEN + IF boo THEN + IF nmb < vlist[i] THEN + nmb := vlist[i]; + END_IF; + ELSE + nmb := vlist[i]; + boo := TRUE; + END_IF; + REMOVE( oplist, i ); + END_IF; + END_REPEAT; + IF SIZEOF( oplist ) = 0 THEN + RETURN( convert_to_maths_value( nmb ) ); + END_IF; + IF boo THEN + INSERT( oplist, make_number_literal( nmb ), 0 ); + END_IF; + END_IF; + IF 'MINIMUM_EXPRESSION' IN types THEN + boo := FALSE; + REPEAT i := SIZEOF( vlist ) TO 1 BY -1; + IF 'NUMBER' IN TYPEOF( vlist[i] ) THEN + IF boo THEN + IF nmb > vlist[i] THEN + nmb := vlist[i]; + END_IF; + ELSE + nmb := vlist[i]; + boo := TRUE; + END_IF; + REMOVE( oplist, i ); + END_IF; + END_REPEAT; + IF SIZEOF( oplist ) = 0 THEN + RETURN( convert_to_maths_value( nmb ) ); + END_IF; + IF boo THEN + INSERT( oplist, make_number_literal( nmb ), 0 ); + END_IF; + END_IF; + IF ( 'MINUS_EXPRESSION' IN types ) AND ( 'NUMBER' IN TYPEOF( v1 ) ) AND ( 'NUMBER' IN TYPEOF( v2 ) ) THEN + RETURN( convert_to_maths_value( v1 - v2 ) ); + END_IF; + IF ( 'MOD_EXPRESSION' IN types ) AND ( 'NUMBER' IN TYPEOF( v1 ) ) AND ( 'NUMBER' IN TYPEOF( v2 ) ) THEN + RETURN( convert_to_maths_value( v1 MOD v2 ) ); + END_IF; + IF 'MULT_EXPRESSION' IN types THEN + nmb := 1; + REPEAT i := SIZEOF( vlist ) TO 1 BY -1; + IF 'NUMBER' IN TYPEOF( vlist[i] ) THEN + nmb := nmb * vlist[i]; + REMOVE( oplist, i ); + END_IF; + END_REPEAT; + IF SIZEOF( oplist ) = 0 THEN + RETURN( convert_to_maths_value( nmb ) ); + END_IF; + IF nmb <> 1 THEN + INSERT( oplist, make_number_literal( nmb ), 0 ); + END_IF; + IF SIZEOF( oplist ) = 1 THEN + RETURN( oplist[1] ); + END_IF; + END_IF; + IF ( 'NOT_EXPRESSION' IN types ) AND ( 'BOOLEAN' IN TYPEOF( v1 ) ) THEN + boo := v1; + RETURN( convert_to_maths_value( NOT boo ) ); + END_IF; + IF ( 'ODD_EXPRESSION' IN types ) AND ( 'INTEGER' IN TYPEOF( v1 ) ) THEN + RETURN( convert_to_maths_value( ODD( v1 ) ) ); + END_IF; + IF 'OR_EXPRESSION' IN types THEN + REPEAT i := SIZEOF( vlist ) TO 1 BY -1; + IF 'BOOLEAN' IN TYPEOF( vlist[i] ) THEN + boo := vlist[i]; + IF boo THEN + RETURN( convert_to_maths_value( TRUE ) ); + END_IF; + REMOVE( oplist, i ); + END_IF; + END_REPEAT; + IF SIZEOF( oplist ) = 0 THEN + RETURN( convert_to_maths_value( FALSE ) ); + END_IF; + IF SIZEOF( oplist ) = 1 THEN + RETURN( oplist[1] ); + END_IF; + END_IF; + IF 'PLUS_EXPRESSION' IN types THEN + nmb := 0; + REPEAT i := SIZEOF( vlist ) TO 1 BY -1; + IF 'NUMBER' IN TYPEOF( vlist[i] ) THEN + nmb := nmb + vlist[i]; + REMOVE( oplist, i ); + END_IF; + END_REPEAT; + IF SIZEOF( oplist ) = 0 THEN + RETURN( convert_to_maths_value( nmb ) ); + END_IF; + IF nmb <> 0 THEN + INSERT( oplist, make_number_literal( nmb ), 0 ); + END_IF; + IF SIZEOF( oplist ) = 1 THEN + RETURN( oplist[1] ); + END_IF; + END_IF; + IF ( 'POWER_EXPRESSION' IN types ) AND ( 'NUMBER' IN TYPEOF( v1 ) ) AND ( 'NUMBER' IN TYPEOF( v2 ) ) THEN + RETURN( convert_to_maths_value( v1 ** v2 ) ); + END_IF; + IF ( 'SIN_EXPRESSION' IN types ) AND ( 'NUMBER' IN TYPEOF( v1 ) ) THEN + RETURN( convert_to_maths_value( SIN( v1 ) ) ); + END_IF; + IF ( 'SLASH_EXPRESSION' IN types ) AND ( 'NUMBER' IN TYPEOF( v1 ) ) AND ( 'NUMBER' IN TYPEOF( v2 ) ) THEN + RETURN( convert_to_maths_value( v1 / v2 ) ); + END_IF; + IF ( 'SQUARE_ROOT_EXPRESSION' IN types ) AND ( 'NUMBER' IN TYPEOF( v1 ) ) THEN + RETURN( convert_to_maths_value( SQRT( v1 ) ) ); + END_IF; + IF ( 'SUBSTRING_EXPRESSION' IN types ) AND ( 'STRING' IN TYPEOF( vlist[1] ) ) AND ( 'NUMBER' IN TYPEOF( vlist[2] ) ) AND ( + 'NUMBER' IN TYPEOF( vlist[3] ) ) THEN + str := vlist[1]; + n := vlist[2]; + m := vlist[3]; + RETURN( convert_to_maths_value( str[n : m] ) ); + END_IF; + IF ( 'TAN_EXPRESSION' IN types ) AND ( 'NUMBER' IN TYPEOF( v1 ) ) THEN + RETURN( convert_to_maths_value( TAN( v1 ) ) ); + END_IF; + IF ( 'UNARY_MINUS_EXPRESSION' IN types ) AND ( 'NUMBER' IN TYPEOF( v1 ) ) THEN + nmb := v1; + RETURN( convert_to_maths_value( -nmb ) ); + END_IF; + IF ( 'VALUE_EXPRESSION' IN types ) AND ( 'STRING' IN TYPEOF( v1 ) ) THEN + RETURN( convert_to_maths_value( VALUE( v1 ) ) ); + END_IF; + IF ( 'XOR_EXPRESSION' IN types ) AND ( 'BOOLEAN' IN TYPEOF( v1 ) ) AND ( 'BOOLEAN' IN TYPEOF( v2 ) ) THEN + RETURN( convert_to_maths_value( v1 XOR v2 ) ); + END_IF; + IF 'UNARY_GENERIC_EXPRESSION' IN types THEN + RETURN( restore_unary( expr, op1 ) ); + END_IF; + IF 'BINARY_GENERIC_EXPRESSION' IN types THEN + RETURN( restore_binary( expr, op1, op2 ) ); + END_IF; + IF 'MULTIPLE_ARITY_GENERIC_EXPRESSION' IN types THEN + RETURN( restore_mulary( expr, oplist ) ); + END_IF; + RETURN( expr ); + + END_FUNCTION; + + FUNCTION simplify_maths_space( + spc : maths_space + ) : maths_space; + + LOCAL + stypes : SET OF STRING := stripped_typeof( spc ); + sset : SET OF maths_value; + zset : SET OF maths_value := []; + zval : maths_value; + zspc : maths_space; + zallint : BOOLEAN := TRUE; + zint : INTEGER; + zmin : INTEGER; + zmax : INTEGER; + factors : LIST OF maths_space; + zfactors : LIST OF maths_space := []; + rspc : maths_space; + END_LOCAL; + IF 'FINITE_SPACE' IN stypes THEN + sset := spc\finite_space.members; + REPEAT i := 1 TO SIZEOF( sset ) BY 1; + zval := simplify_maths_value( sset[i] ); + zset := zset + [zval]; + IF zallint AND ( 'INTEGER' IN TYPEOF( zval ) ) THEN + zint := zval; + IF i = 1 THEN + zmin := zint; + zmax := zint; + ELSE + IF zint < zmin THEN + zmin := zint; + END_IF; + IF zint > zmax THEN + zmax := zint; + END_IF; + END_IF; + ELSE + zallint := FALSE; + END_IF; + END_REPEAT; + IF zallint AND ( SIZEOF( zset ) = ( ( zmax - zmin ) + 1 ) ) THEN + RETURN( make_finite_integer_interval( zmin, zmax ) ); + END_IF; + RETURN( make_finite_space( zset ) ); + END_IF; + IF 'UNIFORM_PRODUCT_SPACE' IN stypes THEN + zspc := simplify_maths_space( spc\uniform_product_space.base ); + RETURN( make_uniform_product_space( zspc, spc\uniform_product_space.exponent ) ); + END_IF; + IF 'LISTED_PRODUCT_SPACE' IN stypes THEN + factors := spc\listed_product_space.factors; + REPEAT i := 1 TO SIZEOF( factors ) BY 1; + INSERT( zfactors, simplify_maths_space( factors[i] ), i - 1 ); + END_REPEAT; + RETURN( make_listed_product_space( zfactors ) ); + END_IF; + IF 'EXTENDED_TUPLE_SPACE' IN stypes THEN + zspc := simplify_maths_space( spc\extended_tuple_space.base ); + rspc := simplify_maths_space( spc\extended_tuple_space.extender ); + RETURN( make_extended_tuple_space( zspc, rspc ) ); + END_IF; + IF 'FUNCTION_SPACE' IN stypes THEN + zspc := simplify_maths_space( spc\function_space.domain_argument ); + rspc := simplify_maths_space( spc\function_space.range_argument ); + RETURN( make_function_space( spc\function_space.domain_constraint, zspc, spc\function_space.range_constraint, rspc ) ); + END_IF; + RETURN( spc ); + + END_FUNCTION; + + FUNCTION simplify_maths_value( + val : maths_value + ) : maths_value; + + LOCAL + vtypes : SET OF STRING := stripped_typeof( val ); + vlist : LIST OF maths_value; + nlist : LIST OF maths_value := []; + END_LOCAL; + IF 'GENERIC_EXPRESSION' IN vtypes THEN + RETURN( simplify_generic_expression( val ) ); + END_IF; + IF 'LIST' IN vtypes THEN + vlist := val; + REPEAT i := 1 TO SIZEOF( vlist ) BY 1; + INSERT( nlist, simplify_maths_value( vlist[i] ), i - 1 ); + END_REPEAT; + RETURN( convert_to_maths_value( nlist ) ); + END_IF; + RETURN( val ); + + END_FUNCTION; + + FUNCTION singleton_member_of( + spc : maths_space + ) : maths_value; + + LOCAL + types : SET OF STRING := stripped_typeof( spc ); + END_LOCAL; + IF 'FINITE_SPACE' IN types THEN + IF SIZEOF( spc\finite_space.members ) = 1 THEN + RETURN( spc\finite_space.members[1] ); + END_IF; + RETURN( ? ); + END_IF; + IF 'FINITE_INTEGER_INTERVAL' IN types THEN + IF spc\finite_integer_interval.size = 1 THEN + RETURN( spc\finite_integer_interval.min ); + END_IF; + RETURN( ? ); + END_IF; + RETURN( ? ); + + END_FUNCTION; + + FUNCTION sort_link_associations( + aprr : SET [1 : ?] OF pair_representation_relationship; + one_not_two : BOOLEAN + ) : SET OF kinematic_link_representation; + + LOCAL + result : SET OF kinematic_link_representation := []; + END_LOCAL; + IF one_not_two THEN + REPEAT i := 1 TO HIINDEX( aprr ) BY 1; + result := result + aprr[i].rep_1; + END_REPEAT; + ELSE + REPEAT i := 1 TO HIINDEX( aprr ) BY 1; + result := result + aprr[i].rep_2; + END_REPEAT; + END_IF; + RETURN( result ); + + END_FUNCTION; + + FUNCTION space_dimension( + tspace : tuple_space + ) : nonnegative_integer; + + LOCAL + types : SET OF STRING := TYPEOF( tspace ); + END_LOCAL; + IF ( schema_prefix + 'UNIFORM_PRODUCT_SPACE' ) IN types THEN + RETURN( tspace\uniform_product_space.exponent ); + END_IF; + IF ( schema_prefix + 'LISTED_PRODUCT_SPACE' ) IN types THEN + RETURN( SIZEOF( tspace\listed_product_space.factors ) ); + END_IF; + IF ( schema_prefix + 'EXTENDED_TUPLE_SPACE' ) IN types THEN + RETURN( space_dimension( tspace\extended_tuple_space.base ) ); + END_IF; + RETURN( ? ); + + END_FUNCTION; + + FUNCTION space_is_continuum( + space : maths_space + ) : BOOLEAN; + + LOCAL + typenames : SET OF STRING := TYPEOF( space ); + factors : LIST OF maths_space; + END_LOCAL; + IF NOT EXISTS( space ) THEN + RETURN( FALSE ); + END_IF; + IF subspace_of_es( space, es_reals ) OR subspace_of_es( space, es_complex_numbers ) THEN + RETURN( TRUE ); + END_IF; + IF ( schema_prefix + 'UNIFORM_PRODUCT_SPACE' ) IN typenames THEN + RETURN( space_is_continuum( space\uniform_product_space.base ) ); + END_IF; + IF ( schema_prefix + 'LISTED_PRODUCT_SPACE' ) IN typenames THEN + factors := space\listed_product_space.factors; + IF SIZEOF( factors ) = 0 THEN + RETURN( FALSE ); + END_IF; + REPEAT i := 1 TO SIZEOF( factors ) BY 1; + IF NOT space_is_continuum( factors[i] ) THEN + RETURN( FALSE ); + END_IF; + END_REPEAT; + RETURN( TRUE ); + END_IF; + RETURN( FALSE ); + + END_FUNCTION; + + FUNCTION space_is_singleton( + spc : maths_space + ) : BOOLEAN; + + LOCAL + types : SET OF STRING := stripped_typeof( spc ); + END_LOCAL; + IF 'FINITE_SPACE' IN types THEN + RETURN( bool( SIZEOF( spc\finite_space.members ) = 1 ) ); + END_IF; + IF 'FINITE_INTEGER_INTERVAL' IN types THEN + RETURN( bool( spc\finite_integer_interval.size = 1 ) ); + END_IF; + RETURN( FALSE ); + + END_FUNCTION; + + FUNCTION stripped_typeof( + arg : GENERIC:g + ) : SET OF STRING; + + LOCAL + types : SET OF STRING := TYPEOF( arg ); + stypes : SET OF STRING := []; + n : INTEGER := LENGTH( schema_prefix ); + END_LOCAL; + REPEAT i := 1 TO SIZEOF( types ) BY 1; +(* this line + IF types[i][1 : n] = schema_prefix THEN + replaced by the following one as patch for BZ#5018 *) + IF ((LENGTH(types[i]) > n) AND (types[i][1:n] = schema_prefix)) THEN + stypes := stypes + types[i][n + 1 : LENGTH( types[i] )]; + ELSE + stypes := stypes + types[i]; + END_IF; + END_REPEAT; + RETURN( stypes ); + + END_FUNCTION; + + FUNCTION sts_get_general_datum_reference( + input : datum_reference_element + ) : general_datum_reference; + + LOCAL + general_datum_reference_bag : BAG OF general_datum_reference := USEDIN( input, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'GENERAL_DATUM_REFERENCE.' + 'BASE' ); + END_LOCAL; + IF SIZEOF( general_datum_reference_bag ) = 1 THEN + RETURN( general_datum_reference_bag[1] ); + ELSE + RETURN( ? ); + END_IF; + + END_FUNCTION; + + FUNCTION sts_get_product_definition_shape( + input : geometric_tolerance_target + ) : product_definition_shape; + CASE TRUE OF + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.DIMENSIONAL_LOCATION' IN TYPEOF( input ) : RETURN( input\ + shape_aspect_relationship.relating_shape_aspect\shape_aspect.of_shape ); + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.DIMENSIONAL_SIZE' IN TYPEOF( input ) : RETURN( input\ + dimensional_size.applies_to\shape_aspect.of_shape ); + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF( input ) : RETURN( input ); + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT' IN TYPEOF( input ) : RETURN( input\shape_aspect. + of_shape ); + OTHERWISE : RETURN( ? ); + END_CASE; + + END_FUNCTION; + + FUNCTION subspace_of( + space1, space2 : maths_space + ) : LOGICAL; + + LOCAL + spc1 : maths_space := simplify_maths_space( space1 ); + spc2 : maths_space := simplify_maths_space( space2 ); + types1 : SET OF STRING := stripped_typeof( spc1 ); + types2 : SET OF STRING := stripped_typeof( spc2 ); + lgcl : LOGICAL; + cum : LOGICAL; + es_val : elementary_space_enumerators; + bnd1 : REAL; + bnd2 : REAL; + n : INTEGER; + sp1 : maths_space; + sp2 : maths_space; + prgn1 : polar_complex_number_region; + prgn2 : polar_complex_number_region; + aitv : finite_real_interval; + END_LOCAL; + IF ( NOT EXISTS( spc1 ) ) OR ( NOT EXISTS( spc2 ) ) THEN + RETURN( FALSE ); + END_IF; + IF spc2 = the_generics THEN + RETURN( TRUE ); + END_IF; + IF 'ELEMENTARY_SPACE' IN types1 THEN + IF NOT ( 'ELEMENTARY_SPACE' IN types2 ) THEN + RETURN( FALSE ); + END_IF; + es_val := spc2\elementary_space.space_id; + IF spc1\elementary_space.space_id = es_val THEN + RETURN( TRUE ); + END_IF; + CASE spc1\elementary_space.space_id OF + es_numbers : RETURN( FALSE ); + es_complex_numbers : RETURN( es_val = es_numbers ); + es_reals : RETURN( es_val = es_numbers ); + es_integers : RETURN( es_val = es_numbers ); + es_logicals : RETURN( FALSE ); + es_booleans : RETURN( es_val = es_logicals ); + es_strings : RETURN( FALSE ); + es_binarys : RETURN( FALSE ); + es_maths_spaces : RETURN( FALSE ); + es_maths_functions : RETURN( FALSE ); + es_generics : RETURN( FALSE ); + END_CASE; + RETURN( UNKNOWN ); + END_IF; + IF 'FINITE_INTEGER_INTERVAL' IN types1 THEN + cum := TRUE; + REPEAT i := spc1\finite_integer_interval.min TO spc1\finite_integer_interval.max BY 1; + cum := cum AND member_of( i, spc2 ); + IF cum = FALSE THEN + RETURN( FALSE ); + END_IF; + END_REPEAT; + RETURN( cum ); + END_IF; + IF 'INTEGER_INTERVAL_FROM_MIN' IN types1 THEN + IF 'ELEMENTARY_SPACE' IN types2 THEN + es_val := spc2\elementary_space.space_id; + RETURN( ( es_val = es_numbers ) OR ( es_val = es_integers ) ); + END_IF; + IF 'INTEGER_INTERVAL_FROM_MIN' IN types2 THEN + RETURN( spc1\integer_interval_from_min.min >= spc2\integer_interval_from_min.min ); + END_IF; + RETURN( FALSE ); + END_IF; + IF 'INTEGER_INTERVAL_TO_MAX' IN types1 THEN + IF 'ELEMENTARY_SPACE' IN types2 THEN + es_val := spc2\elementary_space.space_id; + RETURN( ( es_val = es_numbers ) OR ( es_val = es_integers ) ); + END_IF; + IF 'INTEGER_INTERVAL_TO_MAX' IN types2 THEN + RETURN( spc1\integer_interval_to_max.max <= spc2\integer_interval_to_max.max ); + END_IF; + RETURN( FALSE ); + END_IF; + IF 'FINITE_REAL_INTERVAL' IN types1 THEN + IF 'ELEMENTARY_SPACE' IN types2 THEN + es_val := spc2\elementary_space.space_id; + RETURN( ( es_val = es_numbers ) OR ( es_val = es_reals ) ); + END_IF; + IF ( 'FINITE_REAL_INTERVAL' IN types2 ) OR ( 'REAL_INTERVAL_FROM_MIN' IN types2 ) OR ( 'REAL_INTERVAL_TO_MAX' IN types2 ) + THEN + IF min_exists( spc2 ) THEN + bnd1 := spc1\finite_real_interval.min; + bnd2 := real_min( spc2 ); + IF ( bnd1 < bnd2 ) OR ( ( bnd1 = bnd2 ) AND min_included( spc1 ) AND ( NOT min_included( spc2 ) ) ) THEN + RETURN( FALSE ); + END_IF; + END_IF; + IF max_exists( spc2 ) THEN + bnd1 := spc1\finite_real_interval.max; + bnd2 := real_max( spc2 ); + IF ( bnd1 > bnd2 ) OR ( ( bnd1 = bnd2 ) AND max_included( spc1 ) AND ( NOT max_included( spc2 ) ) ) THEN + RETURN( FALSE ); + END_IF; + END_IF; + RETURN( TRUE ); + END_IF; + RETURN( FALSE ); + END_IF; + IF 'REAL_INTERVAL_FROM_MIN' IN types1 THEN + IF 'ELEMENTARY_SPACE' IN types2 THEN + es_val := spc2\elementary_space.space_id; + RETURN( ( es_val = es_numbers ) OR ( es_val = es_reals ) ); + END_IF; + IF 'REAL_INTERVAL_FROM_MIN' IN types2 THEN + bnd1 := spc1\real_interval_from_min.min; + bnd2 := spc2\real_interval_from_min.min; + RETURN( ( bnd2 < bnd1 ) OR ( ( bnd2 = bnd1 ) AND ( min_included( spc2 ) OR ( NOT min_included( spc1 ) ) ) ) ); + END_IF; + RETURN( FALSE ); + END_IF; + IF 'REAL_INTERVAL_TO_MAX' IN types1 THEN + IF 'ELEMENTARY_SPACE' IN types2 THEN + es_val := spc2\elementary_space.space_id; + RETURN( ( es_val = es_numbers ) OR ( es_val = es_reals ) ); + END_IF; + IF 'REAL_INTERVAL_TO_MAX' IN types2 THEN + bnd1 := spc1\real_interval_to_max.max; + bnd2 := spc2\real_interval_to_max.max; + RETURN( ( bnd2 > bnd1 ) OR ( ( bnd2 = bnd1 ) AND ( max_included( spc2 ) OR ( NOT max_included( spc1 ) ) ) ) ); + END_IF; + RETURN( FALSE ); + END_IF; + IF 'CARTESIAN_COMPLEX_NUMBER_REGION' IN types1 THEN + IF 'ELEMENTARY_SPACE' IN types2 THEN + es_val := spc2\elementary_space.space_id; + RETURN( ( es_val = es_numbers ) OR ( es_val = es_complex_numbers ) ); + END_IF; + IF 'CARTESIAN_COMPLEX_NUMBER_REGION' IN types2 THEN + RETURN( subspace_of( spc1\cartesian_complex_number_region.real_constraint, spc2\cartesian_complex_number_region. + real_constraint ) AND subspace_of( spc1\cartesian_complex_number_region.imag_constraint, spc2\ + cartesian_complex_number_region.imag_constraint ) ); + END_IF; + IF 'POLAR_COMPLEX_NUMBER_REGION' IN types2 THEN + RETURN( subspace_of( enclose_cregion_in_pregion( spc1, spc2\polar_complex_number_region.centre ), spc2 ) ); + END_IF; + RETURN( FALSE ); + END_IF; + IF 'POLAR_COMPLEX_NUMBER_REGION' IN types1 THEN + IF 'ELEMENTARY_SPACE' IN types2 THEN + es_val := spc2\elementary_space.space_id; + RETURN( ( es_val = es_numbers ) OR ( es_val = es_complex_numbers ) ); + END_IF; + IF 'CARTESIAN_COMPLEX_NUMBER_REGION' IN types2 THEN + RETURN( subspace_of( enclose_pregion_in_cregion( spc1 ), spc2 ) ); + END_IF; + IF 'POLAR_COMPLEX_NUMBER_REGION' IN types2 THEN + prgn1 := spc1; + prgn2 := spc2; + IF prgn1.centre = prgn2.centre THEN + IF prgn2.direction_constraint.max > PI THEN + aitv := make_finite_real_interval( -PI, open, prgn2.direction_constraint.max - ( 2 * PI ), prgn2.direction_constraint + .max_closure ); + RETURN( subspace_of( prgn1.distance_constraint, prgn2.distance_constraint ) AND ( subspace_of( prgn1. + direction_constraint, prgn2.direction_constraint ) OR subspace_of( prgn1.direction_constraint, aitv ) ) ); + ELSE + RETURN( subspace_of( prgn1.distance_constraint, prgn2.distance_constraint ) AND subspace_of( prgn1. + direction_constraint, prgn2.direction_constraint ) ); + END_IF; + END_IF; + RETURN( subspace_of( enclose_pregion_in_pregion( prgn1, prgn2.centre ), prgn2 ) ); + END_IF; + RETURN( FALSE ); + END_IF; + IF 'FINITE_SPACE' IN types1 THEN + cum := TRUE; + REPEAT i := 1 TO SIZEOF( spc1\finite_space.members ) BY 1; + cum := cum AND member_of( spc1\finite_space.members[i], spc2 ); + IF cum = FALSE THEN + RETURN( FALSE ); + END_IF; + END_REPEAT; + RETURN( cum ); + END_IF; + IF 'PRODUCT_SPACE' IN types1 THEN + IF 'PRODUCT_SPACE' IN types2 THEN + IF space_dimension( spc1 ) = space_dimension( spc2 ) THEN + cum := TRUE; + REPEAT i := 1 TO space_dimension( spc1 ) BY 1; + cum := cum AND subspace_of( factor_space( spc1, i ), factor_space( spc2, i ) ); + IF cum = FALSE THEN + RETURN( FALSE ); + END_IF; + END_REPEAT; + RETURN( cum ); + END_IF; + END_IF; + IF 'EXTENDED_TUPLE_SPACE' IN types2 THEN + IF space_dimension( spc1 ) >= space_dimension( spc2 ) THEN + cum := TRUE; + REPEAT i := 1 TO space_dimension( spc1 ) BY 1; + cum := cum AND subspace_of( factor_space( spc1, i ), factor_space( spc2, i ) ); + IF cum = FALSE THEN + RETURN( FALSE ); + END_IF; + END_REPEAT; + RETURN( cum ); + END_IF; + END_IF; + RETURN( FALSE ); + END_IF; + IF 'EXTENDED_TUPLE_SPACE' IN types1 THEN + IF 'EXTENDED_TUPLE_SPACE' IN types2 THEN + n := space_dimension( spc1 ); + IF n < space_dimension( spc2 ) THEN + n := space_dimension( spc2 ); + END_IF; + cum := TRUE; + REPEAT i := 1 TO n + 1 BY 1; + cum := cum AND subspace_of( factor_space( spc1, i ), factor_space( spc2, i ) ); + IF cum = FALSE THEN + RETURN( FALSE ); + END_IF; + END_REPEAT; + RETURN( cum ); + END_IF; + RETURN( FALSE ); + END_IF; + IF 'FUNCTION_SPACE' IN types1 THEN + IF 'ELEMENTARY_SPACE' IN types2 THEN + RETURN( spc2\elementary_space.space_id = es_maths_functions ); + END_IF; + IF 'FUNCTION_SPACE' IN types2 THEN + cum := TRUE; + sp1 := spc1\function_space.domain_argument; + sp2 := spc2\function_space.domain_argument; + CASE spc1\function_space.domain_constraint OF + sc_equal : + BEGIN + CASE spc2\function_space.domain_constraint OF + sc_equal : cum := cum AND equal_maths_spaces( sp1, sp2 ); + sc_subspace : cum := cum AND subspace_of( sp1, sp2 ); + sc_member : cum := cum AND member_of( sp1, sp2 ); + END_CASE; + END; + sc_subspace : + BEGIN + CASE spc2\function_space.domain_constraint OF + sc_equal : RETURN( FALSE ); + sc_subspace : cum := cum AND subspace_of( sp1, sp2 ); + sc_member : + BEGIN + IF NOT member_of( sp1, sp2 ) THEN + RETURN( FALSE ); + END_IF; + cum := UNKNOWN; + END; + END_CASE; + END; + sc_member : + BEGIN + CASE spc2\function_space.domain_constraint OF + sc_equal : cum := cum AND space_is_singleton( sp1 ) AND equal_maths_spaces( + singleton_member_of( sp1 ), sp2 ); + sc_subspace : + BEGIN + IF NOT member_of( sp2, sp1 ) THEN + RETURN( FALSE ); + END_IF; + cum := UNKNOWN; + END; + sc_member : cum := cum AND subspace_of( sp1, sp2 ); + END_CASE; + END; + END_CASE; + IF cum = FALSE THEN + RETURN( FALSE ); + END_IF; + sp1 := spc1\function_space.range_argument; + sp2 := spc2\function_space.range_argument; + CASE spc1\function_space.range_constraint OF + sc_equal : + BEGIN + CASE spc2\function_space.range_constraint OF + sc_equal : cum := cum AND equal_maths_spaces( sp1, sp2 ); + sc_subspace : cum := cum AND subspace_of( sp1, sp2 ); + sc_member : cum := cum AND member_of( sp1, sp2 ); + END_CASE; + END; + sc_subspace : + BEGIN + CASE spc2\function_space.domain_constraint OF + sc_equal : RETURN( FALSE ); + sc_subspace : cum := cum AND subspace_of( sp1, sp2 ); + sc_member : + BEGIN + IF NOT member_of( sp1, sp2 ) THEN + RETURN( FALSE ); + END_IF; + cum := UNKNOWN; + END; + END_CASE; + END; + sc_member : + BEGIN + CASE spc2\function_space.domain_constraint OF + sc_equal : cum := cum AND space_is_singleton( sp1 ) AND equal_maths_spaces( + singleton_member_of( sp1 ), sp2 ); + sc_subspace : + BEGIN + IF NOT member_of( sp2, sp1 ) THEN + RETURN( FALSE ); + END_IF; + cum := UNKNOWN; + END; + sc_member : cum := cum AND subspace_of( sp1, sp2 ); + END_CASE; + END; + END_CASE; + RETURN( cum ); + END_IF; + RETURN( FALSE ); + END_IF; + RETURN( UNKNOWN ); + + END_FUNCTION; + + FUNCTION subspace_of_es( + spc : maths_space; + es : elementary_space_enumerators + ) : LOGICAL; + + LOCAL + types : SET OF STRING := stripped_typeof( spc ); + END_LOCAL; + IF ( NOT EXISTS( spc ) ) OR ( NOT EXISTS( es ) ) THEN + RETURN( FALSE ); + END_IF; + IF 'ELEMENTARY_SPACE' IN types THEN + RETURN( es_subspace_of_es( spc\elementary_space.space_id, es ) ); + END_IF; + IF 'FINITE_SPACE' IN types THEN + RETURN( all_members_of_es( spc\finite_space.members, es ) ); + END_IF; + CASE es OF + es_numbers : RETURN( ( 'FINITE_INTEGER_INTERVAL' IN types ) OR ( 'INTEGER_INTERVAL_FROM_MIN' IN types ) OR + ( 'INTEGER_INTERVAL_TO_MAX' IN types ) OR ( 'FINITE_REAL_INTERVAL' IN types ) OR ( 'REAL_INTERVAL_FROM_MIN' IN types ) + OR ( 'REAL_INTERVAL_TO_MAX' IN types ) OR ( 'CARTESIAN_COMPLEX_NUMBER_REGION' IN types ) OR ( + 'POLAR_COMPLEX_NUMBER_REGION' IN types ) ); + es_complex_numbers : RETURN( ( 'CARTESIAN_COMPLEX_NUMBER_REGION' IN types ) OR ( 'POLAR_COMPLEX_NUMBER_REGION' IN + types ) ); + es_reals : RETURN( ( 'FINITE_REAL_INTERVAL' IN types ) OR ( 'REAL_INTERVAL_FROM_MIN' IN types ) OR ( + 'REAL_INTERVAL_TO_MAX' IN types ) ); + es_integers : RETURN( ( 'FINITE_INTEGER_INTERVAL' IN types ) OR ( 'INTEGER_INTERVAL_FROM_MIN' IN types ) OR + ( 'INTEGER_INTERVAL_TO_MAX' IN types ) ); + es_logicals : RETURN( FALSE ); + es_booleans : RETURN( FALSE ); + es_strings : RETURN( FALSE ); + es_binarys : RETURN( FALSE ); + es_maths_spaces : RETURN( FALSE ); + es_maths_functions : RETURN( 'FUNCTION_SPACE' IN types ); + es_generics : RETURN( TRUE ); + END_CASE; + RETURN( UNKNOWN ); + + END_FUNCTION; + + FUNCTION substitute( + expr : generic_expression; + vars : LIST [1 : ?] OF generic_variable; + vals : LIST [1 : ?] OF maths_value + ) : generic_expression; + + LOCAL + types : SET OF STRING := stripped_typeof( expr ); + opnds : LIST OF generic_expression; + op1 : generic_expression; + op2 : generic_expression; + qvars : LIST OF generic_variable; + srcdom : maths_space_or_function; + prpfun : LIST [1 : ?] OF maths_function; + finfun : maths_function_select; + END_LOCAL; + IF SIZEOF( vars ) <> SIZEOF( vals ) THEN + RETURN( ? ); + END_IF; + IF 'GENERIC_LITERAL' IN types THEN + RETURN( expr ); + END_IF; + IF 'GENERIC_VARIABLE' IN types THEN + REPEAT i := 1 TO SIZEOF( vars ) BY 1; + IF expr :=: vars[i] THEN + RETURN( vals[i] ); + END_IF; + END_REPEAT; + RETURN( expr ); + END_IF; + IF 'QUANTIFIER_EXPRESSION' IN types THEN + qvars := expr\quantifier_expression.variables; + REPEAT i := SIZEOF( vars ) TO 1 BY -1; + IF vars[i] IN qvars THEN + REMOVE( vars, i ); + REMOVE( vals, i ); + END_IF; + END_REPEAT; + opnds := expr\multiple_arity_generic_expression.operands; + REPEAT i := 1 TO SIZEOF( opnds ) BY 1; + IF NOT ( opnds[i] IN qvars ) THEN + expr\multiple_arity_generic_expression.operands[i] := substitute( opnds[i], vars, vals ); + END_IF; + END_REPEAT; + RETURN( expr ); + END_IF; + IF 'UNARY_GENERIC_EXPRESSION' IN types THEN + op1 := expr\unary_generic_expression.operand; + expr\unary_generic_expression.operand := substitute( op1, vars, vals ); + END_IF; + IF 'BINARY_GENERIC_EXPRESSION' IN types THEN + op1 := expr\binary_generic_expression.operands[1]; + expr\binary_generic_expression.operands[1] := substitute( op1, vars, vals ); + op2 := expr\binary_generic_expression.operands[2]; + expr\binary_generic_expression.operands[2] := substitute( op2, vars, vals ); + END_IF; + IF 'PARALLEL_COMPOSED_FUNCTION' IN types THEN + srcdom := expr\parallel_composed_function.source_of_domain; + prpfun := expr\parallel_composed_function.prep_functions; + finfun := expr\parallel_composed_function.final_function; + srcdom := substitute( srcdom, vars, vals ); + REPEAT i := 1 TO SIZEOF( prpfun ) BY 1; + prpfun[i] := substitute( prpfun[i], vars, vals ); + END_REPEAT; + IF 'MATHS_FUNCTION' IN stripped_typeof( finfun ) THEN + finfun := substitute( finfun, vars, vals ); + END_IF; + RETURN( make_parallel_composed_function( srcdom, prpfun, finfun ) ); + END_IF; + IF 'MULTIPLE_ARITY_GENERIC_EXPRESSION' IN types THEN + opnds := expr\multiple_arity_generic_expression.operands; + REPEAT i := 1 TO SIZEOF( opnds ) BY 1; + expr\multiple_arity_generic_expression.operands[i] := substitute( opnds[i], vars, vals ); + END_REPEAT; + END_IF; + RETURN( expr ); + + END_FUNCTION; + + FUNCTION surface_condition_correlation( + pd : property_definition; + rep : representation + ) : LOGICAL; + CASE pd.name OF + 'visual appearance' : RETURN( pd.name = rep.name ); + 'tactile appearance' : RETURN( pd.name = rep.name ); + 'contact ratio' : RETURN( pd.name = rep.name ); + 'hardness' : RETURN( pd.name = rep.name ); + 'treatment result' : RETURN( pd.name = rep.name ); + '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 BY 1; + REPEAT j := 0 TO b.v_upper BY 1; + IF b.weights[i][j] <= 0 THEN + result := FALSE; + RETURN( result ); + END_IF; + END_REPEAT; + END_REPEAT; + RETURN( result ); + + END_FUNCTION; + + FUNCTION temporal_spatial_domain_for_model( + domain : numerical_model + ) : BOOLEAN; + + LOCAL + spatial_set : SET OF spatial_decomposition_of_numerical_model; + behavioural_set : SET OF behavioural_decomposition_of_numerical_model; + domains : SET OF numerical_model := []; + viewing : BAG OF view_relationship; + spatial_bag : BAG OF spatial_decomposition_of_numerical_model; + behavioural_bag : BAG OF behavioural_decomposition_of_numerical_model; + END_LOCAL; + viewing := USEDIN( domain, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.VIEW_RELATIONSHIP.VIEW' ); + IF SIZEOF( viewing ) > 0 THEN + RETURN( TRUE ); + END_IF; + spatial_bag := USEDIN( domain, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SPATIAL_DECOMPOSITION_OF_NUMERICAL_MODEL.' + + 'PARTS' ); + IF SIZEOF( spatial_bag ) > 0 THEN + spatial_set := bag_to_set( spatial_bag ); + REPEAT i := 1 TO HIINDEX( spatial_set ) BY 1; + domains := domains + spatial_set[i].whole; + END_REPEAT; + END_IF; + behavioural_bag := USEDIN( domain, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'BEHAVIOURAL_DECOMPOSITION_OF_NUMERICAL_MODEL.PARTS' ); + IF SIZEOF( behavioural_bag ) > 0 THEN + behavioural_set := bag_to_set( behavioural_bag ); + REPEAT i := 1 TO HIINDEX( behavioural_set ) BY 1; + domains := domains + behavioural_set[i].whole; + END_REPEAT; + END_IF; + IF SIZEOF( domains ) > 0 THEN + REPEAT i := 1 TO HIINDEX( domains ) BY 1; + IF temporal_spatial_domain_for_model( domains[i] ) THEN + RETURN( TRUE ); + END_IF; + END_REPEAT; + END_IF; + RETURN( FALSE ); + + END_FUNCTION; + + FUNCTION topology_reversed( + an_item : reversible_topology + ) : reversible_topology; + IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.EDGE' IN TYPEOF( an_item ) THEN + RETURN( edge_reversed( an_item ) ); + END_IF; + IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PATH' IN TYPEOF( an_item ) THEN + RETURN( path_reversed( an_item ) ); + END_IF; + IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FACE_BOUND' IN TYPEOF( an_item ) THEN + RETURN( face_bound_reversed( an_item ) ); + END_IF; + IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FACE' IN TYPEOF( an_item ) THEN + RETURN( face_reversed( an_item ) ); + END_IF; + IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 OF STRING; + criterion : INTEGER + ) : LOGICAL; + IF ( NOT EXISTS( the_type ) ) 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 ); + OTHERWISE : RETURN( UNKNOWN ); + END_CASE; + END_IF; + + END_FUNCTION; + + FUNCTION unambiguously_specified_multi_level_reference_designator( + links : LIST [1 : ?] OF next_assembly_usage_occurrence + ) : BOOLEAN; + REPEAT i := 1 TO SIZEOF( links ) - 1 BY 1; + CASE TRUE OF + ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRODUCT_DEFINITION' IN TYPEOF( links[i]\ + product_definition_relationship.relating_product_definition ) ) AND ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRODUCT_DEFINITION' IN TYPEOF( links[i]\ + product_definition_relationship.related_product_definition ) ) AND ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRODUCT_DEFINITION' IN TYPEOF( links[i + 1]\ + product_definition_relationship.relating_product_definition ) ) : + BEGIN + IF NOT ( ( links[i]\product_definition_relationship.related_product_definition :=: links[i + 1]\ + product_definition_relationship.relating_product_definition ) OR ( ( SIZEOF( QUERY ( pdr <* USEDIN( links[i]\ + product_definition_relationship.related_product_definition, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'PRODUCT_DEFINITION_RELATIONSHIP.' + 'RELATED_PRODUCT_DEFINITION' ) | ( pdr\product_definition_relationship. + relating_product_definition :=: links[i + 1]\product_definition_relationship.relating_product_definition ) ) ) = 1 ) + AND ( links[i]\product_definition_relationship.related_product_definition\product_definition.formation\ + product_definition_formation.of_product :=: links[i + 1]\product_definition_relationship. + relating_product_definition\product_definition.formation\product_definition_formation.of_product ) ) ) THEN + RETURN( FALSE ); + END_IF; + END; + ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRODUCT_DEFINITION_REFERENCE' IN TYPEOF( links[i]\ + product_definition_relationship.related_product_definition ) ) AND ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRODUCT_DEFINITION_REFERENCE' IN TYPEOF( links[i + 1]\ + product_definition_relationship.relating_product_definition ) ) : + BEGIN + IF NOT ( ( links[i]\product_definition_relationship.related_product_definition :=: links[i + 1]\ + product_definition_relationship.relating_product_definition ) OR ( ( SIZEOF( QUERY ( pdr <* USEDIN( links[i]\ + product_definition_relationship.related_product_definition, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'PRODUCT_DEFINITION_RELATIONSHIP.' + 'RELATED_PRODUCT_DEFINITION' ) | ( pdr\product_definition_relationship. + relating_product_definition :=: links[i + 1]\product_definition_relationship.relating_product_definition ) ) ) = 1 ) + AND ( links[i]\product_definition_relationship.related_product_definition\product_definition_reference.product_id + = links[i + 1]\product_definition_relationship.relating_product_definition\product_definition_reference.product_id ) + AND ( links[i]\product_definition_relationship.related_product_definition\product_definition_reference. + id_owning_organization_name = links[i + 1]\product_definition_relationship.relating_product_definition\ + product_definition_reference.id_owning_organization_name ) AND ( links[i]\product_definition_relationship. + related_product_definition\product_definition_reference.product_definition_id <> links[i + 1]\ + product_definition_relationship.relating_product_definition\product_definition_reference.product_definition_id ) ) ) + THEN + RETURN( FALSE ); + END_IF; + END; + ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRODUCT_DEFINITION_REFERENCE' IN TYPEOF( links[i]\ + product_definition_relationship.relating_product_definition ) ) AND ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRODUCT_DEFINITION' IN TYPEOF( links[i]\ + product_definition_relationship.related_product_definition ) ) : RETURN( FALSE ); + OTHERWISE : RETURN( FALSE ); + END_CASE; + END_REPEAT; + RETURN( TRUE ); + + END_FUNCTION; + + FUNCTION unique_in_product_definition( + item : representative_shape_representation + ) : BOOLEAN; + + LOCAL + local_p_d : SET OF product_definition := []; + local_s_r : SET OF shape_representation := []; + i : INTEGER; + j : INTEGER; + END_LOCAL; + local_p_d := using_product_definition_of_shape_representation( item ); + IF SIZEOF( local_p_d ) <> 1 THEN + RETURN( FALSE ); + ELSE + REPEAT i := 1 TO HIINDEX( local_p_d ) BY 1; + local_s_r := find_shape_representation_of_product_definition( local_p_d[i] ); + REPEAT j := 1 TO HIINDEX( local_s_r ) BY 1; + IF ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.REPRESENTATIVE_SHAPE_REPRESENTATION' IN TYPEOF( local_s_r[j] ) ) + AND ( local_s_r[j] :<>: item ) THEN + RETURN( FALSE ); + END_IF; + END_REPEAT; + END_REPEAT; + END_IF; + RETURN( TRUE ); + + END_FUNCTION; + + FUNCTION unique_in_shape_aspect( + item : representative_shape_representation + ) : BOOLEAN; + + LOCAL + local_s_a : SET OF shape_aspect := []; + local_s_r : SET OF shape_representation := []; + i : INTEGER; + j : INTEGER; + END_LOCAL; + local_s_a := using_shape_aspect_of_shape_representation( item ); + IF SIZEOF( local_s_a ) <> 1 THEN + RETURN( FALSE ); + ELSE + REPEAT i := 1 TO HIINDEX( local_s_a ) BY 1; + local_s_r := find_shape_representation_of_shape_aspect( local_s_a[i] ); + REPEAT j := 1 TO HIINDEX( local_s_r ) BY 1; + IF ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.REPRESENTATIVE_SHAPE_REPRESENTATION' IN TYPEOF( local_s_r[j] ) ) + AND ( local_s_r[j] :<>: item ) THEN + RETURN( FALSE ); + END_IF; + END_REPEAT; + END_REPEAT; + END_IF; + RETURN( TRUE ); + + END_FUNCTION; + + FUNCTION used_variables( + arg : generic_expression + ) : SET OF generic_variable; + + LOCAL + result : SET OF generic_variable := []; + END_LOCAL; + IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.GENERIC_VARIABLE' IN TYPEOF( arg ) THEN + RETURN( [arg] ); + END_IF; + IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.UNARY_GENERIC_EXPRESSION' IN TYPEOF( arg ) THEN + RETURN( used_variables( arg\unary_generic_expression.operand ) ); + END_IF; + IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.BINARY_GENERIC_EXPRESSION' IN TYPEOF( arg ) THEN + RETURN( used_variables( arg\binary_generic_expression.operands[1] ) + used_variables( arg\binary_generic_expression. + operands[2] ) ); + END_IF; + IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MULTIPLE_ARITY_GENERIC_EXPRESSION' IN TYPEOF( arg ) THEN + REPEAT i := 1 TO SIZEOF( arg\multiple_arity_generic_expression.operands ) BY 1; + result := result + used_variables( arg\multiple_arity_generic_expression.operands[i] ); + END_REPEAT; + RETURN( result ); + END_IF; + RETURN( [] ); + + END_FUNCTION; + + FUNCTION using_items( + item : founded_item_select; + checked_items : SET OF founded_item_select + ) : SET 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; + next_items := QUERY ( z <* bag_to_set( USEDIN( item, '' ) ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'REPRESENTATION_ITEM' IN TYPEOF( z ) ) OR ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FOUNDED_ITEM' IN + TYPEOF( z ) ) ) ); + IF SIZEOF( next_items ) > 0 THEN + REPEAT i := 1 TO HIINDEX( next_items ) BY 1; + 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( result_items ); + + END_FUNCTION; + + FUNCTION using_product_definition_of_shape_aspect( + item : shape_aspect + ) : product_definition; + IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRODUCT_DEFINITION' IN TYPEOF( item.of_shape.definition ) THEN + RETURN( item.of_shape.definition ); + ELSE + RETURN( ? ); + END_IF; + + END_FUNCTION; + + FUNCTION using_product_definition_of_shape_representation( + item : shape_representation + ) : SET OF product_definition; + + LOCAL + local_s_d_r : SET OF shape_definition_representation := []; + local_p_d : SET OF product_definition := []; + i : INTEGER; + END_LOCAL; + local_s_d_r := QUERY ( i1 <* bag_to_set( USEDIN( item, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION_REPRESENTATION.USED_REPRESENTATION' ) ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'SHAPE_DEFINITION_REPRESENTATION' ) IN TYPEOF( i1 ) ) ); + REPEAT i := 1 TO HIINDEX( local_s_d_r ) BY 1; + IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION' IN TYPEOF( local_s_d_r[i]\ + property_definition_representation.definition ) THEN + IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRODUCT_DEFINITION' IN TYPEOF( local_s_d_r[i]\ + property_definition_representation.definition\property_definition.definition ) THEN + local_p_d := local_p_d + local_s_d_r[i]\property_definition_representation.definition\property_definition.definition; + END_IF; + END_IF; + END_REPEAT; + RETURN( local_p_d ); + + END_FUNCTION; + + FUNCTION using_representation_with_mapping( + item : representation_item + ) : SET OF representation; + + LOCAL + results : SET OF representation := []; + local_results : SET OF representation := []; + local_representation_map : SET OF representation_map := []; + intermediate_items : SET OF representation_item := []; + i : INTEGER; + j : INTEGER; + END_LOCAL; + local_results := QUERY ( z <* using_representations( item ) | ( SIZEOF( USEDIN( z, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.REPRESENTATION_MAP.' + 'MAPPED_REPRESENTATION' ) ) > 0 ) ); + IF SIZEOF( local_results ) = 0 THEN + RETURN( [] ); + ELSE + REPEAT i := 1 TO HIINDEX( local_results ) BY 1; + local_representation_map := local_representation_map + bag_to_set( USEDIN( local_results[i], + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.REPRESENTATION_MAP.MAPPED_REPRESENTATION' ) ); + END_REPEAT; + REPEAT i := 1 TO HIINDEX( local_representation_map ) BY 1; + intermediate_items := intermediate_items + bag_to_set( USEDIN( local_representation_map[i], + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MAPPED_ITEM.MAPPING_SOURCE' ) ); + END_REPEAT; + REPEAT j := 1 TO HIINDEX( intermediate_items ) BY 1; + results := results + bag_to_set( using_representation_with_mapping( intermediate_items[j] ) ); + END_REPEAT; + END_IF; + RETURN( results ); + + END_FUNCTION; + + FUNCTION using_representations( + item : founded_item_select + ) : SET OF representation; + + LOCAL + results : SET OF representation; + result_bag : BAG OF representation; + intermediate_items : SET OF founded_item_select; + END_LOCAL; + results := []; + result_bag := USEDIN( item, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.REPRESENTATION.ITEMS' ); + IF SIZEOF( result_bag ) > 0 THEN + REPEAT i := 1 TO HIINDEX( result_bag ) BY 1; + results := results + result_bag[i]; + END_REPEAT; + END_IF; + intermediate_items := using_items( item, [] ); + IF SIZEOF( intermediate_items ) > 0 THEN + REPEAT i := 1 TO HIINDEX( intermediate_items ) BY 1; + result_bag := USEDIN( intermediate_items[i], 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.REPRESENTATION.ITEMS' ); + IF SIZEOF( result_bag ) > 0 THEN + REPEAT j := 1 TO HIINDEX( result_bag ) BY 1; + results := results + result_bag[j]; + END_REPEAT; + END_IF; + END_REPEAT; + END_IF; + RETURN( results ); + + END_FUNCTION; + + FUNCTION using_shape_aspect_of_shape_representation( + item : shape_representation + ) : SET OF shape_aspect; + + LOCAL + local_s_d_r : SET OF shape_definition_representation := []; + local_s_d_r2 : BAG OF shape_definition_representation := []; + local_s_a : SET OF shape_aspect := []; + i : INTEGER; + END_LOCAL; + local_s_d_r2 := local_s_d_r2 + QUERY ( pdr <* USEDIN( item, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION_REPRESENTATION.USED_REPRESENTATION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'SHAPE_DEFINITION_REPRESENTATION' IN TYPEOF( pdr ) ) ); + local_s_d_r := bag_to_set( local_s_d_r2 ); + REPEAT i := 1 TO HIINDEX( local_s_d_r ) BY 1; + IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT' IN TYPEOF( local_s_d_r[i]\ + property_definition_representation.definition\property_definition.definition ) THEN + local_s_a := local_s_a + local_s_d_r[i]\property_definition_representation.definition\property_definition.definition; + END_IF; + END_REPEAT; + RETURN( local_s_a ); + + END_FUNCTION; + + FUNCTION valid_basis_curve_in_2d_wireframe( + crv : curve + ) : BOOLEAN; + IF SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.POLYLINE', + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.B_SPLINE_CURVE' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'ELLIPSE' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CIRCLE'] * TYPEOF( crv ) ) = 1 THEN + RETURN( TRUE ); + ELSE + IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.TRIMMED_CURVE' IN TYPEOF( crv ) THEN + IF SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LINE', + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PARABOLA' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'HYPERBOLA' ] * TYPEOF( crv\trimmed_curve.basis_curve ) ) = 1 THEN + RETURN( TRUE ); + ELSE + RETURN( valid_basis_curve_in_2d_wireframe( crv\trimmed_curve.basis_curve ) ); + END_IF; + ELSE + IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.OFFSET_CURVE_2D' IN TYPEOF( crv ) THEN + RETURN( valid_basis_curve_in_2d_wireframe( crv\offset_curve_2d.basis_curve ) ); + ELSE + IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CURVE_REPLICA' IN TYPEOF( crv ) THEN + RETURN( valid_basis_curve_in_2d_wireframe( crv\curve_replica.parent_curve ) ); + ELSE + IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ) AND ( date.day_component <= 31 ) ); + 2 : + BEGIN + IF leap_year( date.year_component ) THEN + RETURN( ( 1 <= date.day_component ) AND ( date.day_component <= 29 ) ); + ELSE + RETURN( ( 1 <= date.day_component ) AND ( date.day_component <= 28 ) ); + END_IF; + END; + 3 : RETURN( ( 1 <= date.day_component ) AND ( date.day_component <= 31 ) ); + 4 : RETURN( ( 1 <= date.day_component ) AND ( date.day_component <= 30 ) ); + 5 : RETURN( ( 1 <= date.day_component ) AND ( date.day_component <= 31 ) ); + 6 : RETURN( ( 1 <= date.day_component ) AND ( date.day_component <= 30 ) ); + 7 : RETURN( ( 1 <= date.day_component ) AND ( date.day_component <= 31 ) ); + 8 : RETURN( ( 1 <= date.day_component ) AND ( date.day_component <= 31 ) ); + 9 : RETURN( ( 1 <= date.day_component ) AND ( date.day_component <= 30 ) ); + 10 : RETURN( ( 1 <= date.day_component ) AND ( date.day_component <= 31 ) ); + 11 : RETURN( ( 1 <= date.day_component ) AND ( date.day_component <= 30 ) ); + 12 : RETURN( ( 1 <= date.day_component ) AND ( date.day_component <= 31 ) ); + END_CASE; + RETURN( FALSE ); + + END_FUNCTION; + + FUNCTION valid_csg_2d_primitives( + input : csg_solid_2d + ) : BOOLEAN; + CASE TRUE OF + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRIMITIVE_2D' IN TYPEOF( input\csg_solid_2d.tree_root_expression ) : + BEGIN + IF SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CIRCULAR_AREA', + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.COMPLEX_AREA' , + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ELLIPTIC_AREA' , + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.POLYGONAL_AREA' , + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRIMITIVE_2D_WITH_INNER_BOUNDARY' , + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.RECTANGULAR_AREA' ] * TYPEOF( input\csg_solid_2d. + tree_root_expression ) ) > 0 THEN + RETURN( TRUE ); + ELSE + RETURN( FALSE ); + END_IF; + END; + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.BOOLEAN_RESULT_2D' IN TYPEOF( input\csg_solid_2d.tree_root_expression ) : RETURN + ( valid_csg_2d_primitives( input\csg_solid_2d.tree_root_expression\boolean_result_2d.first_operand ) AND + valid_csg_2d_primitives( input\csg_solid_2d.tree_root_expression\boolean_result_2d.second_operand ) ); + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.HALF_SPACE_2D' IN TYPEOF( input\csg_solid_2d.tree_root_expression ) : RETURN + ( TRUE ); + OTHERWISE : RETURN( FALSE ); + END_CASE; + + 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 ) BY 1; + rep_set := rep_set + pdf.representation_associations[i].used_representation; + END_REPEAT; + parameter_representations := QUERY ( rep <* rep_set | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( rep ) ) ); + IF SIZEOF( QUERY ( srwp <* parameter_representations | ( SIZEOF( QUERY ( i <* srwp.items | ( ( i.name = 'orientation' ) AND + ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( i ) ) = 2 ) ) ) ) = 1 ) ) ) + = 1 ) ); + 'circular curve' : 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( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'MEASURE_REPRESENTATION_ITEM' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.POLYLINE', + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.B_SPLINE_CURVE' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'ELLIPSE' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CIRCLE'] * TYPEOF( crv ) ) = 1 THEN + RETURN( TRUE ); + ELSE + IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.TRIMMED_CURVE' IN TYPEOF( crv ) THEN + IF SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LINE', + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PARABOLA' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.OFFSET_CURVE_3D' IN TYPEOF( crv ) THEN + RETURN( valid_geometrically_bounded_wf_curve( crv\offset_curve_3d.basis_curve ) ); + ELSE + IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CURVE_REPLICA' IN TYPEOF( crv ) THEN + RETURN( valid_geometrically_bounded_wf_curve( crv\curve_replica.parent_curve ) ); + ELSE + IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CARTESIAN_POINT' IN TYPEOF( pnt ) THEN + RETURN( TRUE ); + ELSE + IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.POINT_ON_CURVE' IN TYPEOF( pnt ) THEN + RETURN( valid_geometrically_bounded_wf_curve( pnt\point_on_curve.basis_curve ) ); + ELSE + IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ); + ELSE + IF 'INTEGER' IN TYPEOF( m ) THEN + RETURN( m > 0 ); + ELSE + RETURN( TRUE ); + END_IF; + END_IF; + + END_FUNCTION; + + FUNCTION valid_parametric_coordinate( + coordinates : LIST [1 : 3] OF parameter_value + ) : BOOLEAN; + + LOCAL + i : INTEGER; + END_LOCAL; + REPEAT i := 1 TO HIINDEX( coordinates ) BY 1; + IF ( 1 < coordinates[i] ) OR ( coordinates[i] < ( -1 ) ) THEN + RETURN( FALSE ); + END_IF; + END_REPEAT; + RETURN( TRUE ); + + 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, + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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], 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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( [ + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM' , + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 | ( ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF( i ) ) AND ( i.name = + 'selection control' ) ) ) ) > 1 THEN + RETURN( FALSE ); + END_IF; + IF ( SIZEOF( QUERY ( i <* selected_representation\representation.items | ( ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.QUALIFIED_REPRESENTATION_ITEM', + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ) THEN + RETURN( FALSE ); + END_IF; + END_IF; + IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MASS_MEASURE' IN TYPEOF( m.value_component ) THEN + IF derive_dimensional_exponents( m.unit_component ) <> dimensional_exponents( 0, 1, 0, 0, 0, 0, 0 ) THEN + RETURN( FALSE ); + END_IF; + END_IF; + IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.TIME_MEASURE' IN TYPEOF( m.value_component ) THEN + IF derive_dimensional_exponents( m.unit_component ) <> dimensional_exponents( 0, 0, 1, 0, 0, 0, 0 ) THEN + RETURN( FALSE ); + END_IF; + END_IF; + IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ELECTRIC_CURRENT_MEASURE' IN TYPEOF( m.value_component ) THEN + IF derive_dimensional_exponents( m.unit_component ) <> dimensional_exponents( 0, 0, 0, 1, 0, 0, 0 ) THEN + RETURN( FALSE ); + END_IF; + END_IF; + IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.THERMODYNAMIC_TEMPERATURE_MEASURE' IN TYPEOF( m.value_component ) + THEN + IF derive_dimensional_exponents( m.unit_component ) <> dimensional_exponents( 0, 0, 0, 0, 1, 0, 0 ) THEN + RETURN( FALSE ); + END_IF; + END_IF; + IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CELSIUS_TEMPERATURE_MEASURE' IN TYPEOF( m.value_component ) THEN + IF derive_dimensional_exponents( m.unit_component ) <> dimensional_exponents( 0, 0, 0, 0, 1, 0, 0 ) THEN + RETURN( FALSE ); + END_IF; + END_IF; + IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 1, 0 ) THEN + RETURN( FALSE ); + END_IF; + END_IF; + IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 1 ) THEN + RETURN( FALSE ); + END_IF; + END_IF; + IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ) THEN + RETURN( FALSE ); + END_IF; + END_IF; + IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ) THEN + RETURN( FALSE ); + END_IF; + END_IF; + IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ) THEN + RETURN( FALSE ); + END_IF; + END_IF; + IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ) THEN + RETURN( FALSE ); + END_IF; + END_IF; + IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ) THEN + RETURN( FALSE ); + END_IF; + END_IF; + IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ) THEN + RETURN( FALSE ); + END_IF; + END_IF; + IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ) THEN + RETURN( FALSE ); + END_IF; + END_IF; + IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ACCELERATION_MEASURE' IN TYPEOF( m.value_component ) THEN + IF derive_dimensional_exponents( m.unit_component ) <> dimensional_exponents( 1, 0, -2, 0, 0, 0, 0 ) THEN + RETURN( FALSE ); + END_IF; + END_IF; + IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CAPACITANCE_MEASURE' IN TYPEOF( m.value_component ) THEN + IF derive_dimensional_exponents( m.unit_component ) <> dimensional_exponents( -2, -1, 4, 2, 0, 0, 0 ) THEN + RETURN( FALSE ); + END_IF; + END_IF; + IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ELECTRIC_CHARGE_MEASURE' IN TYPEOF( m.value_component ) THEN + IF derive_dimensional_exponents( m.unit_component ) <> dimensional_exponents( 0, 0, 1, 1, 0, 0, 0 ) THEN + RETURN( FALSE ); + END_IF; + END_IF; + IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CONDUCTANCE_MEASURE' IN TYPEOF( m.value_component ) THEN + IF derive_dimensional_exponents( m.unit_component ) <> dimensional_exponents( -2, -1, 3, 2, 0, 0, 0 ) THEN + RETURN( FALSE ); + END_IF; + END_IF; + IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ELECTRIC_POTENTIAL_MEASURE' IN TYPEOF( m.value_component ) THEN + IF derive_dimensional_exponents( m.unit_component ) <> dimensional_exponents( 2, 1, -3, -1, 0, 0, 0 ) THEN + RETURN( FALSE ); + END_IF; + END_IF; + IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ENERGY_MEASURE' IN TYPEOF( m.value_component ) THEN + IF derive_dimensional_exponents( m.unit_component ) <> dimensional_exponents( 2, 1, -2, 0, 0, 0, 0 ) THEN + RETURN( FALSE ); + END_IF; + END_IF; + IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FORCE_MEASURE' IN TYPEOF( m.value_component ) THEN + IF derive_dimensional_exponents( m.unit_component ) <> dimensional_exponents( 1, 1, -2, 0, 0, 0, 0 ) THEN + RETURN( FALSE ); + END_IF; + END_IF; + IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FREQUENCY_MEASURE' IN TYPEOF( m.value_component ) THEN + IF derive_dimensional_exponents( m.unit_component ) <> dimensional_exponents( 0, 0, -1, 0, 0, 0, 0 ) THEN + RETURN( FALSE ); + END_IF; + END_IF; + IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 1 ) THEN + RETURN( FALSE ); + END_IF; + END_IF; + IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.INDUCTANCE_MEASURE' IN TYPEOF( m.value_component ) THEN + IF derive_dimensional_exponents( m.unit_component ) <> dimensional_exponents( 2, 1, -2, -2, 0, 0, 0 ) THEN + RETURN( FALSE ); + END_IF; + END_IF; + IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 1 ) THEN + RETURN( FALSE ); + END_IF; + END_IF; + IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MAGNETIC_FLUX_MEASURE' IN TYPEOF( m.value_component ) THEN + IF derive_dimensional_exponents( m.unit_component ) <> dimensional_exponents( 2, 1, -2, -1, 0, 0, 0 ) THEN + RETURN( FALSE ); + END_IF; + END_IF; + IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MAGNETIC_FLUX_DENSITY_MEASURE' IN TYPEOF( m.value_component ) THEN + IF derive_dimensional_exponents( m.unit_component ) <> dimensional_exponents( 0, 1, -2, -1, 0, 0, 0 ) THEN + RETURN( FALSE ); + END_IF; + END_IF; + IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.POWER_MEASURE' IN TYPEOF( m.value_component ) THEN + IF derive_dimensional_exponents( m.unit_component ) <> dimensional_exponents( 2, 1, -3, 0, 0, 0, 0 ) THEN + RETURN( FALSE ); + END_IF; + END_IF; + IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRESSURE_MEASURE' IN TYPEOF( m.value_component ) THEN + IF derive_dimensional_exponents( m.unit_component ) <> dimensional_exponents( -1, 1, -2, 0, 0, 0, 0 ) THEN + RETURN( FALSE ); + END_IF; + END_IF; + IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.RESISTANCE_MEASURE' IN TYPEOF( m.value_component ) THEN + IF derive_dimensional_exponents( m.unit_component ) <> dimensional_exponents( 2, 1, -3, -2, 0, 0, 0 ) THEN + RETURN( FALSE ); + END_IF; + END_IF; + IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.VELOCITY_MEASURE' IN TYPEOF( m.value_component ) THEN + IF derive_dimensional_exponents( m.unit_component ) <> dimensional_exponents( 1, 0, -1, 0, 0, 0, 0 ) THEN + RETURN( FALSE ); + END_IF; + END_IF; + IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.RADIOACTIVITY_MEASURE' IN TYPEOF( m.value_component ) THEN + IF derive_dimensional_exponents( m.unit_component ) <> dimensional_exponents( 0, 0, -1, 0, 0, 0, 0 ) THEN + RETURN( FALSE ); + END_IF; + END_IF; + IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ABSORBED_DOSE_MEASURE' IN TYPEOF( m.value_component ) THEN + IF derive_dimensional_exponents( m.unit_component ) <> dimensional_exponents( 2, 0, -2, 0, 0, 0, 0 ) THEN + RETURN( FALSE ); + END_IF; + END_IF; + IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.DOSE_EQUIVALENT_MEASURE' IN TYPEOF( m.value_component ) THEN + IF derive_dimensional_exponents( m.unit_component ) <> dimensional_exponents( 2, 0, -2, 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( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LINE', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'CONIC' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.B_SPLINE_CURVE', + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.POLYLINE' ] * TYPEOF( crv ) ) = 1 THEN + RETURN( TRUE ); + ELSE + IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CURVE_REPLICA' IN TYPEOF( crv ) THEN + RETURN( valid_wireframe_edge_curve( crv\curve_replica.parent_curve ) ); + ELSE + IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CARTESIAN_POINT' IN TYPEOF( pnt ) THEN + RETURN( TRUE ); + ELSE + IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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_accuracy_types( + ei : shape_data_quality_criterion; + type_list : BAG OF STRING + ) : LOGICAL; + + LOCAL + sdqca : BAG OF shape_data_quality_criterion_and_accuracy_association := []; + sma : BAG OF shape_measurement_accuracy := []; + sdqir : SET OF shape_data_quality_inspection_result := []; + scraa : BAG OF shape_inspection_result_accuracy_association := []; + t_logic : BOOLEAN; + END_LOCAL; + sdqca := USEDIN( ei, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'SHAPE_DATA_QUALITY_CRITERION_AND_ACCURACY_ASSOCIATION.' + 'SHAPE_DATA_QUALITY_CRITERION' ); + IF SIZEOF( sdqca ) <> 0 THEN + REPEAT i := 1 TO SIZEOF( sdqca ) BY 1; + sma := sma + sdqca[i].required_specific_accuracy; + END_REPEAT; + IF SIZEOF( type_list ) < SIZEOF( sma ) THEN + RETURN( FALSE ); + END_IF; + REPEAT i := 1 TO SIZEOF( sma ) BY 1; + t_logic := FALSE; + REPEAT j := 1 TO SIZEOF( type_list ) BY 1; + IF type_list[j] IN value_limit_type( sma[i].range ) THEN + t_logic := TRUE; + ESCAPE; + END_IF; + END_REPEAT; + IF NOT t_logic THEN + RETURN( FALSE ); + END_IF; + END_REPEAT; + END_IF; + sdqir := QUERY ( q <* bag_to_set( USEDIN( ei, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'DATA_QUALITY_INSPECTION_RESULT.' + 'CRITERION_INSPECTED' ) ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'SHAPE_DATA_QUALITY_INSPECTION_RESULT' ) IN TYPEOF( q ) ) ); + IF SIZEOF( sdqir ) = 0 THEN + RETURN( TRUE ); + END_IF; + REPEAT i := 1 TO SIZEOF( sdqir ) BY 1; + scraa := USEDIN( sdqir[i], 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'SHAPE_INSPECTION_RESULT_ACCURACY_ASSOCIATION.' + 'SHAPE_DATA_QUALITY_RESULT' ); + IF SIZEOF( scraa ) <> 0 THEN + sma := []; + REPEAT j := 1 TO SIZEOF( scraa ) BY 1; + sma := sma + scraa[j].applied_specific_accuracy; + END_REPEAT; + IF SIZEOF( type_list ) < SIZEOF( sma ) THEN + RETURN( FALSE ); + END_IF; + REPEAT j := 1 TO SIZEOF( sma ) BY 1; + t_logic := FALSE; + REPEAT k := 1 TO SIZEOF( type_list ) BY 1; + IF type_list[k] IN value_limit_type( sma[j].range ) THEN + t_logic := TRUE; + ESCAPE; + END_IF; + END_REPEAT; + IF NOT t_logic THEN + RETURN( FALSE ); + END_IF; + END_REPEAT; + END_IF; + END_REPEAT; + RETURN( TRUE ); + + END_FUNCTION; + + FUNCTION validate_attribute_id( + attid : attribute_identifier + ) : BOOLEAN; + + CONSTANT + letters : SET [52 : 52] OF STRING := + [ 'a' , + 'b' , + 'c' , + 'd' , + 'e' , + 'f' , + 'g' , + 'h' , + 'i' , + 'j' , + 'k' , + 'l' , + 'm' , + 'n' , + 'o' , + 'p' , + 'q' , + 'r' , + 's' , + 't' , + 'u' , + 'v' , + 'w' , + 'x' , + 'y' , + 'z' , + 'A' , + 'B' , + 'C' , + 'D' , + 'E' , + 'F' , + 'G' , + 'H' , + 'I' , + 'J' , + 'K' , + 'L' , + 'M' , + 'N' , + 'O' , + 'P' , + 'Q' , + 'R' , + 'S' , + 'T' , + 'U' , + 'V' , + 'W' , + 'X' , + 'Y' , + 'Z' ]; + numbers_etc : SET [15 : 15] OF STRING := + [ '0' , + '1' , + '2' , + '3' , + '4' , + '5' , + '6' , + '7' , + '8' , + '9' , + '_' , + '[' , + ']' , + '.' , + '\' ]; + valid_chars : SET [67 : 67] OF STRING := + letters + + + numbers_etc; + END_CONSTANT; + + LOCAL + id_length : INTEGER := LENGTH( attid ); + id_valid : BOOLEAN := TRUE; + i : INTEGER; + END_LOCAL; + IF NOT ( attid[1] IN letters ) THEN + id_valid := FALSE; + END_IF; + REPEAT i := 2 TO id_length BY 1 WHILE id_valid = TRUE; + IF NOT ( attid[i] IN valid_chars ) THEN + id_valid := FALSE; + END_IF; + END_REPEAT; + RETURN( id_valid ); + + END_FUNCTION; + + FUNCTION validate_countersink_radii( + cskhole : solid_with_stepped_round_hole_and_conical_transitions + ) : BOOLEAN; + + LOCAL + i : INTEGER; + j : INTEGER; + n : INTEGER := 1 + cskhole\solid_with_stepped_round_hole.segments; + smaller : positive_length_measure; + larger : positive_length_measure; + END_LOCAL; + REPEAT i := 1 TO SIZEOF( cskhole.conical_transitions ) BY 1; + 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 + + 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 validate_ecdq_inspected_elements_type( + ei : externally_conditioned_data_quality_criterion; + type_list : BAG OF STRING + ) : LOGICAL; + + LOCAL + sdqir : SET OF externally_conditioned_data_quality_inspection_result := []; + dir : SET OF data_quality_inspection_instance_report := []; + sdiri : SET OF externally_conditioned_data_quality_inspection_instance_report_item := []; + t_type_list : BAG OF STRING := []; + END_LOCAL; + sdqir := QUERY ( q <* bag_to_set( USEDIN( ei, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'DATA_QUALITY_INSPECTION_RESULT.' + 'CRITERION_INSPECTED' ) ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'EXTERNALLY_CONDITIONED_DATA_QUALITY_INSPECTION_RESULT' ) IN TYPEOF( q ) ) ); + IF SIZEOF( sdqir ) = 0 THEN + RETURN( TRUE ); + END_IF; + REPEAT i := 1 TO SIZEOF( sdqir ) BY 1; + dir := dir + QUERY ( q <* bag_to_set( USEDIN( sdqir[i], 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'DATA_QUALITY_INSPECTION_REPORT.' + 'INSPECTION_RESULT' ) ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'DATA_QUALITY_INSPECTION_INSTANCE_REPORT' ) IN TYPEOF( q ) ) ); + END_REPEAT; + IF SIZEOF( dir ) = 0 THEN + RETURN( TRUE ); + END_IF; + REPEAT i := 1 TO SIZEOF( dir ) BY 1; + sdiri := sdiri + QUERY ( q <* dir[i].inspected_instances | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'EXTERNALLY_CONDITIONED_DATA_QUALITY_INSPECTION_INSTANCE_REPORT_ITEM' ) IN TYPEOF( q ) ) ); + END_REPEAT; + IF SIZEOF( sdiri ) = 0 THEN + RETURN( TRUE ); + END_IF; + REPEAT i := 1 TO SIZEOF( sdiri ) BY 1; + IF SIZEOF( sdiri[i].inspected_elements ) <> SIZEOF( type_list ) THEN + RETURN( FALSE ); + END_IF; + t_type_list := type_list; + REPEAT j := 1 TO SIZEOF( sdiri[i].inspected_elements ) BY 1; + REPEAT k := 1 TO SIZEOF( t_type_list ) BY 1; + IF t_type_list[k] IN TYPEOF( sdiri[i].inspected_elements[j] ) THEN + t_type_list := t_type_list - t_type_list[k]; + ESCAPE; + END_IF; + END_REPEAT; + END_REPEAT; + IF SIZEOF( t_type_list ) > 0 THEN + RETURN( FALSE ); + END_IF; + END_REPEAT; + RETURN( TRUE ); + + END_FUNCTION; + + FUNCTION validate_inspected_elements_type( + ei : shape_data_quality_criterion; + type_list : BAG OF STRING + ) : LOGICAL; + + LOCAL + sdqir : SET OF shape_data_quality_inspection_result := []; + sdir : SET OF shape_data_quality_inspection_instance_report := []; + sdiri : SET OF shape_data_quality_inspection_instance_report_item := []; + t_type_list : BAG OF STRING := []; + END_LOCAL; + sdqir := QUERY ( q <* bag_to_set( USEDIN( ei, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'DATA_QUALITY_INSPECTION_RESULT.' + 'CRITERION_INSPECTED' ) ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'SHAPE_DATA_QUALITY_INSPECTION_RESULT' ) IN TYPEOF( q ) ) ); + IF SIZEOF( sdqir ) = 0 THEN + RETURN( TRUE ); + END_IF; + REPEAT i := 1 TO SIZEOF( sdqir ) BY 1; + sdir := sdir + QUERY ( q <* bag_to_set( USEDIN( sdqir[i], 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'DATA_QUALITY_INSPECTION_REPORT.' + 'INSPECTION_RESULT' ) ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'SHAPE_DATA_QUALITY_INSPECTION_INSTANCE_REPORT' ) IN TYPEOF( q ) ) ); + END_REPEAT; + IF SIZEOF( sdir ) = 0 THEN + RETURN( TRUE ); + END_IF; + REPEAT i := 1 TO SIZEOF( sdir ) BY 1; + sdiri := sdiri + QUERY ( q <* sdir[i].inspected_instances | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'SHAPE_DATA_QUALITY_INSPECTION_INSTANCE_REPORT_ITEM' ) IN TYPEOF( q ) ) ); + END_REPEAT; + IF SIZEOF( sdiri ) = 0 THEN + RETURN( TRUE ); + END_IF; + REPEAT i := 1 TO SIZEOF( sdiri ) BY 1; + IF SIZEOF( sdiri[i].inspected_elements ) <> SIZEOF( type_list ) THEN + RETURN( FALSE ); + END_IF; + t_type_list := type_list; + REPEAT j := 1 TO SIZEOF( sdiri[i].inspected_elements ) BY 1; + REPEAT k := 1 TO SIZEOF( t_type_list ) BY 1; + IF t_type_list[k] IN TYPEOF( sdiri[i].inspected_elements[j] ) THEN + t_type_list := t_type_list - t_type_list[k]; + ESCAPE; + END_IF; + END_REPEAT; + END_REPEAT; + IF SIZEOF( t_type_list ) > 0 THEN + RETURN( FALSE ); + END_IF; + END_REPEAT; + RETURN( TRUE ); + + END_FUNCTION; + + FUNCTION validate_locations_of_extreme_value_type( + ei : shape_data_quality_criterion; + type_list : BAG OF STRING + ) : LOGICAL; + + LOCAL + sdqir : SET OF shape_data_quality_inspection_result := []; + sdir : SET OF shape_data_quality_inspection_instance_report := []; + sdei : SET OF instance_report_item_with_extreme_instances := []; + t_type_list : BAG OF STRING := []; + END_LOCAL; + sdqir := QUERY ( q <* bag_to_set( USEDIN( ei, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'DATA_QUALITY_INSPECTION_RESULT.' + 'CRITERION_INSPECTED' ) ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'SHAPE_DATA_QUALITY_INSPECTION_RESULT' ) IN TYPEOF( q ) ) ); + IF SIZEOF( sdqir ) = 0 THEN + RETURN( TRUE ); + END_IF; + REPEAT i := 1 TO SIZEOF( sdqir ) BY 1; + sdir := sdir + QUERY ( q <* bag_to_set( USEDIN( sdqir[i], 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'DATA_QUALITY_INSPECTION_REPORT.' + 'INSPECTION_RESULT' ) ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'SHAPE_DATA_QUALITY_INSPECTION_INSTANCE_REPORT' ) IN TYPEOF( q ) ) ); + END_REPEAT; + REPEAT i := 1 TO SIZEOF( sdir ) BY 1; + sdei := sdei + QUERY ( q <* sdir[i].inspected_instances | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'INSTANCE_REPORT_ITEM_WITH_EXTREME_INSTANCES' ) IN TYPEOF( q ) ) ); + END_REPEAT; + IF SIZEOF( sdei ) = 0 THEN + RETURN( TRUE ); + END_IF; + IF ( SIZEOF( type_list ) = 0 ) AND ( SIZEOF( sdei ) <> 0 ) THEN + RETURN( FALSE ); + END_IF; + REPEAT i := 1 TO SIZEOF( sdei ) BY 1; + REPEAT j := 1 TO SIZEOF( sdei[i].extreme_instances ) BY 1; + IF SIZEOF( sdei[i].extreme_instances[j].locations_of_extreme_value ) <> SIZEOF( type_list ) THEN + RETURN( FALSE ); + END_IF; + t_type_list := type_list; + REPEAT k := 1 TO SIZEOF( sdei[i].extreme_instances[j].locations_of_extreme_value ) BY 1; + REPEAT l := 1 TO SIZEOF( t_type_list ) BY 1; + IF t_type_list[l] IN TYPEOF( sdei[i].extreme_instances[j].locations_of_extreme_value[k] ) THEN + t_type_list := t_type_list - t_type_list[l]; + ESCAPE; + END_IF; + END_REPEAT; + END_REPEAT; + IF SIZEOF( t_type_list ) > 0 THEN + RETURN( FALSE ); + END_IF; + END_REPEAT; + END_REPEAT; + RETURN( TRUE ); + + END_FUNCTION; + + FUNCTION validate_measured_data_type( + ei : shape_data_quality_criterion; + type_string : STRING + ) : LOGICAL; + + LOCAL + sdqir : SET OF shape_data_quality_inspection_result := []; + sdcr : SET OF shape_data_quality_inspection_criterion_report := []; + sdir : SET OF shape_data_quality_inspection_instance_report := []; + sdii : SET OF shape_data_quality_inspection_instance_report_item := []; + sdei : BAG OF instance_report_item_with_extreme_instances := []; + END_LOCAL; + sdqir := QUERY ( q <* bag_to_set( USEDIN( ei, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'DATA_QUALITY_INSPECTION_RESULT.' + 'CRITERION_INSPECTED' ) ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'SHAPE_DATA_QUALITY_INSPECTION_RESULT' ) IN TYPEOF( q ) ) ); + IF SIZEOF( sdqir ) = 0 THEN + RETURN( TRUE ); + END_IF; + REPEAT i := 1 TO SIZEOF( sdqir ) BY 1; + sdcr := sdcr + QUERY ( q <* bag_to_set( USEDIN( sdqir[i], 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'DATA_QUALITY_INSPECTION_REPORT.' + 'INSPECTION_RESULT' ) ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'SHAPE_DATA_QUALITY_INSPECTION_CRITERION_REPORT' ) IN TYPEOF( q ) ) ); + END_REPEAT; + REPEAT i := 1 TO SIZEOF( sdqir ) BY 1; + sdir := sdir + QUERY ( q <* bag_to_set( USEDIN( sdqir[i], 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'DATA_QUALITY_INSPECTION_REPORT.' + 'INSPECTION_RESULT' ) ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'SHAPE_DATA_QUALITY_INSPECTION_INSTANCE_REPORT' ) IN TYPEOF( q ) ) ); + END_REPEAT; + IF ( SIZEOF( sdcr ) = 0 ) AND ( SIZEOF( sdir ) = 0 ) THEN + RETURN( TRUE ); + END_IF; + REPEAT i := 1 TO SIZEOF( sdir ) BY 1; + sdii := sdii + QUERY ( q <* sdir[i].inspected_instances | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'SHAPE_DATA_QUALITY_INSPECTION_INSTANCE_REPORT_ITEM' ) IN TYPEOF( q ) ) ); + END_REPEAT; + REPEAT i := 1 TO SIZEOF( sdir ) BY 1; + sdei := sdei + QUERY ( q <* sdir[i].inspected_instances | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'INSTANCE_REPORT_ITEM_WITH_EXTREME_INSTANCES' ) IN TYPEOF( q ) ) ); + END_REPEAT; + REPEAT i := 1 TO SIZEOF( sdcr ) BY 1; + IF NOT ( type_string IN TYPEOF( sdcr[i].representative_measured_value ) ) THEN + RETURN( FALSE ); + END_IF; + END_REPEAT; + REPEAT i := 1 TO SIZEOF( sdii ) BY 1; + IF NOT ( type_string IN TYPEOF( sdii[i].measured_value ) ) THEN + RETURN( FALSE ); + END_IF; + END_REPEAT; + REPEAT i := 1 TO SIZEOF( sdei ) BY 1; + REPEAT j := 1 TO SIZEOF( sdei[i].extreme_instances ) BY 1; + IF NOT ( type_string IN TYPEOF( sdei[i].extreme_instances[j].measured_value ) ) THEN + RETURN( FALSE ); + END_IF; + END_REPEAT; + END_REPEAT; + RETURN( TRUE ); + + END_FUNCTION; + + FUNCTION value_limit_type( + iv : shape_data_quality_value_limit_type_select + ) : SET OF STRING; + + LOCAL + retval : SET OF STRING := []; + END_LOCAL; + IF ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'SHAPE_DATA_QUALITY_VALUE_RANGE' ) IN TYPEOF( iv ) THEN + retval := TYPEOF( iv\compound_representation_item.item_element[1].value_component ); + END_IF; + IF ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'SHAPE_DATA_QUALITY_VALUE_LIMIT' ) IN TYPEOF( iv ) THEN + IF ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'MEASURE_WITH_UNIT' ) IN TYPEOF( iv ) THEN + retval := TYPEOF( iv\measure_with_unit.value_component ); + END_IF; + END_IF; + RETURN( retval ); + + END_FUNCTION; + + FUNCTION value_range_aggregate_rep_item( + agg : AGGREGATE OF representation_item + ) : BOOLEAN; + + BEGIN + IF SIZEOF( QUERY ( i1 <* agg | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + + 'MEASURE_REPRESENTATION_ITEM' IN TYPEOF( i1 ) ) ) ) = 2 ) OR ( SIZEOF( QUERY ( i2 <* agg | ( + 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM' IN + TYPEOF( i1 ) ) AND ( SIZEOF( QUERY ( i2 <* agg | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 values_space_of( + expr : generic_expression + ) : maths_space; + + LOCAL + e_prefix : STRING := 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.'; + typenames : SET OF STRING := TYPEOF( expr ); + END_LOCAL; + IF ( schema_prefix + 'MATHS_VARIABLE' ) IN typenames THEN + RETURN( expr\maths_variable.values_space ); + END_IF; + IF ( e_prefix + 'EXPRESSION' ) IN typenames THEN + IF ( e_prefix + 'NUMERIC_EXPRESSION' ) IN typenames THEN + IF expr\numeric_expression.is_int THEN + IF ( e_prefix + 'INT_LITERAL' ) IN typenames THEN + RETURN( make_finite_space( [expr\int_literal.the_value] ) ); + ELSE + RETURN( the_integers ); + END_IF; + ELSE + IF ( e_prefix + 'REAL_LITERAL' ) IN typenames THEN + RETURN( make_finite_space( [expr\real_literal.the_value] ) ); + ELSE + RETURN( the_reals ); + END_IF; + END_IF; + END_IF; + IF ( e_prefix + 'BOOLEAN_EXPRESSION' ) IN typenames THEN + IF ( e_prefix + 'BOOLEAN_LITERAL' ) IN typenames THEN + RETURN( make_finite_space( [expr\boolean_literal.the_value] ) ); + ELSE + RETURN( the_booleans ); + END_IF; + END_IF; + IF ( e_prefix + 'STRING_EXPRESSION' ) IN typenames THEN + IF ( e_prefix + 'STRING_LITERAL' ) IN typenames THEN + RETURN( make_finite_space( [expr\string_literal.the_value] ) ); + ELSE + RETURN( the_strings ); + END_IF; + END_IF; + RETURN( ? ); + END_IF; + IF ( schema_prefix + 'MATHS_FUNCTION' ) IN typenames THEN + IF expression_is_constant( expr ) THEN + RETURN( make_finite_space( [expr] ) ); + ELSE + RETURN( make_function_space( sc_equal, expr\maths_function.domain, sc_equal, expr\maths_function.range ) ); + END_IF; + END_IF; + IF ( schema_prefix + 'FUNCTION_APPLICATION' ) IN typenames THEN + RETURN( expr\function_application.func.range ); + END_IF; + IF ( schema_prefix + 'MATHS_SPACE' ) IN typenames THEN + IF expression_is_constant( expr ) THEN + RETURN( make_finite_space( [expr] ) ); + ELSE + RETURN( make_elementary_space( es_maths_spaces ) ); + END_IF; + END_IF; + IF ( schema_prefix + 'DEPENDENT_VARIABLE_DEFINITION' ) IN typenames THEN + RETURN( values_space_of( expr\unary_generic_expression.operand ) ); + END_IF; + IF ( schema_prefix + 'COMPLEX_NUMBER_LITERAL' ) IN typenames THEN + RETURN( make_finite_space( [expr] ) ); + END_IF; + IF ( schema_prefix + 'LOGICAL_LITERAL' ) IN typenames THEN + RETURN( make_finite_space( [expr\logical_literal.lit_value] ) ); + END_IF; + IF ( schema_prefix + 'BINARY_LITERAL' ) IN typenames THEN + RETURN( make_finite_space( [expr\binary_literal.lit_value] ) ); + END_IF; + IF ( schema_prefix + 'MATHS_ENUM_LITERAL' ) IN typenames THEN + RETURN( make_finite_space( [expr\maths_enum_literal.lit_value] ) ); + END_IF; + IF ( schema_prefix + 'REAL_TUPLE_LITERAL' ) IN typenames THEN + RETURN( make_finite_space( [expr\real_tuple_literal.lit_value] ) ); + END_IF; + IF ( schema_prefix + 'INTEGER_TUPLE_LITERAL' ) IN typenames THEN + RETURN( make_finite_space( [expr\integer_tuple_literal.lit_value] ) ); + END_IF; + IF ( schema_prefix + 'ATOM_BASED_LITERAL' ) IN typenames THEN + RETURN( make_finite_space( [expr\atom_based_literal.lit_value] ) ); + END_IF; + IF ( schema_prefix + 'MATHS_TUPLE_LITERAL' ) IN typenames THEN + RETURN( make_finite_space( [expr\maths_tuple_literal.lit_value] ) ); + END_IF; + IF ( schema_prefix + 'PARTIAL_DERIVATIVE_EXPRESSION' ) IN typenames THEN + RETURN( drop_numeric_constraints( values_space_of( expr\partial_derivative_expression.derivand ) ) ); + END_IF; + IF ( schema_prefix + 'DEFINITE_INTEGRAL_EXPRESSION' ) IN typenames THEN + RETURN( drop_numeric_constraints( values_space_of( expr\definite_integral_expression.integrand ) ) ); + END_IF; + RETURN( ? ); + + END_FUNCTION; + + FUNCTION variable_value_type( + variable : GENERIC + ) : STRING; + + LOCAL + svt : STRING; + feacr : STRING; + variable_typeof : SET [1 : ?] OF STRING; + END_LOCAL; + svt := 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.'; + feacr := 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.'; + variable_typeof := TYPEOF( variable ); + IF SIZEOF( [feacr + 'CURVE_SCALAR_VARIABLE', feacr + 'SURFACE_SCALAR_VARIABLE', feacr + 'VOLUME_SCALAR_VARIABLE', feacr + + 'BOUNDARY_CURVE_SCALAR_VARIABLE' , feacr + 'BOUNDARY_SURFACE_SCALAR_VARIABLE', feacr + 'AGGREGATED_SCALAR_VARIABLE', + feacr + 'VOLUME_ANGULAR_VARIABLE', feacr + 'AGGREGATED_ANGULAR_VARIABLE', feacr + 'APPLICATION_DEFINED_SCALAR_VARIABLE'] * + variable_typeof ) = 1 THEN + RETURN( svt + 'SCALAR' ); + END_IF; + IF SIZEOF( [feacr + 'CURVE_VECTOR_2D_VARIABLE', feacr + 'SURFACE_VECTOR_2D_VARIABLE', feacr + + 'APPLICATION_DEFINED_VECTOR_2D_VARIABLE' ] * variable_typeof ) = 1 THEN + RETURN( svt + 'TENSOR1_2D' ); + END_IF; + IF SIZEOF( [feacr + 'CURVE_VECTOR_3D_VARIABLE', feacr + 'SURFACE_VECTOR_3D_VARIABLE', feacr + 'VOLUME_VECTOR_3D_VARIABLE', + feacr + 'BOUNDARY_CURVE_VECTOR_3D_VARIABLE', feacr + 'BOUNDARY_SURFACE_VECTOR_3D_VARIABLE', feacr + + 'AGGREGATED_VECTOR_3D_VARIABLE' , feacr + 'APPLICATION_DEFINED_VECTOR_3D_VARIABLE'] * variable_typeof ) = 1 THEN + RETURN( svt + 'TENSOR1_3D' ); + END_IF; + IF SIZEOF( [feacr + 'SURFACE_TENSOR2_2D_VARIABLE', feacr + 'APPLICATION_DEFINED_TENSOR2_2D_VARIABLE'] * variable_typeof ) = 1 + THEN + RETURN( svt + 'SYMMETRIC_TENSOR2_2D' ); + END_IF; + IF SIZEOF( [feacr + 'VOLUME_TENSOR2_3D_VARIABLE', feacr + 'AGGREGATED_TENSOR2_3D_VARIABLE', feacr + + 'APPLICATION_DEFINED_TENSOR2_3D_VARIABLE' ] * variable_typeof ) = 1 THEN + RETURN( svt + 'SYMMETRIC_TENSOR2_3D' ); + END_IF; + RETURN( 'NO_MATCH' ); + + END_FUNCTION; + + FUNCTION vector_difference( + arg1, arg2 : vector_or_direction + ) : vector; + + LOCAL + result : vector; + res : direction; + vec1 : direction; + vec2 : direction; + mag : REAL; + mag1 : REAL; + mag2 : REAL; + ndim : INTEGER; + END_LOCAL; + IF ( NOT EXISTS( arg1 ) ) OR ( NOT EXISTS( arg2 ) ) OR ( arg1.dim <> arg2.dim ) THEN + RETURN( ? ); + ELSE + + BEGIN + IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.VECTOR' IN TYPEOF( arg1 ) THEN + mag1 := arg1\vector.magnitude; + vec1 := arg1\vector.orientation; + ELSE + mag1 := 1; + vec1 := arg1; + END_IF; + IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.VECTOR' IN TYPEOF( arg2 ) THEN + mag2 := arg2\vector.magnitude; + vec2 := arg2\vector.orientation; + ELSE + mag2 := 1; + vec2 := arg2; + END_IF; + vec1 := normalise( vec1 ); + vec2 := normalise( vec2 ); + ndim := SIZEOF( vec1.direction_ratios ); + mag := 0; + res := dummy_gri || direction( vec1.direction_ratios ); + REPEAT i := 1 TO ndim BY 1; + 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 THEN + result := dummy_gri || vector( res, SQRT( mag ) ); + ELSE + result := dummy_gri || vector( vec1, 0 ); + END_IF; + END; + END_IF; + RETURN( result ); + + END_FUNCTION; + + FUNCTION ypr_index( + ypr : ypr_enumeration + ) : INTEGER; + CASE ypr OF + yaw : RETURN( 1 ); + pitch : RETURN( 2 ); + roll : RETURN( 3 ); + END_CASE; + RETURN( ? ); + + END_FUNCTION; + +END_SCHEMA; diff --git a/data/ap210e3/ap210e3_n8232_mim_lf.exp b/data/ap210e3/ap210e3_n8232_mim_lf.exp new file mode 100644 index 00000000..7e2be295 --- /dev/null +++ b/data/ap210e3/ap210e3_n8232_mim_lf.exp @@ -0,0 +1,39106 @@ +(* + $Id: mim_lf.exp,v 1.63 2014/05/22 16:05:53 jhaenisch Exp $ + ISO TC184/SC4/WG3 8232 - ISO/TS 10303-410 AP210 electronic assembly interconnect and packaging design - EXPRESS MIM Long form + Supersedes ISO TC184/SC4/WG3 N2601 +*) + +(* ===================================================================================== *) +(* Long form schema generated by The EXPRESS Data Manager compiler version 9.8.3B 20121030*) +(* Fri Feb 07 11:23:49 2014 *) +(* The schema is converted from ISO10303 P11-2003 to ISO10303 P11-1994 *) +(* ===================================================================================== *) +(* This file was generated by the EXPRESS Pretty Printer exppp, +part of STEPcode (formerly NIST's SCL). exppp version: +git commit id: v0.7-353-g0a46b86, build timestamp 26 Feb 2014 19:15 +*) +(* patched for bug 4665, 4992, 5004, 5052, 5056, 5057 +link_motion_relationship.WR1 has been commented out. +*) + +SCHEMA ap210_electronic_assembly_interconnect_and_packaging_design_mim_lf; + + CONSTANT + schema_date_stamp : STRING := 'Mon Mar 24 10:53:49 2014'; + 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' ]; + schema_prefix : STRING := + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' ; + the_binarys : elementary_space := + make_elementary_space( + es_binarys ); + the_booleans : elementary_space := + make_elementary_space( + es_booleans ); + the_complex_numbers : elementary_space := + make_elementary_space( + es_complex_numbers ); + the_complex_tuples : extended_tuple_space := + make_extended_tuple_space( + the_zero_tuple_space, + the_complex_numbers ); + the_empty_maths_tuple : maths_tuple := + []; + the_empty_space : finite_space := + make_finite_space( + [] ); + the_generics : elementary_space := + make_elementary_space( + es_generics ); + the_integer_tuples : extended_tuple_space := + make_extended_tuple_space( + the_zero_tuple_space, + the_integers ); + the_integers : elementary_space := + make_elementary_space( + es_integers ); + the_logicals : elementary_space := + make_elementary_space( + es_logicals ); + the_maths_spaces : elementary_space := + make_elementary_space( + es_maths_spaces ); + the_neg1_one_interval : finite_real_interval := + make_finite_real_interval( + - + 1, + closed, + 1, + closed ); + the_neghalfpi_halfpi_interval : finite_real_interval := + make_finite_real_interval( + ( + - + 0.5 ) + * + PI, + closed, + 0.5 + * + PI, + closed ); + the_negpi_pi_interval : finite_real_interval := + make_finite_real_interval( + - + PI, + open, + PI, + closed ); + the_nonnegative_reals : real_interval_from_min := + make_real_interval_from_min( + 0, + closed ); + the_numbers : elementary_space := + make_elementary_space( + es_numbers ); + the_real_tuples : extended_tuple_space := + make_extended_tuple_space( + the_zero_tuple_space, + the_reals ); + the_reals : elementary_space := + make_elementary_space( + es_reals ); + the_strings : elementary_space := + make_elementary_space( + es_strings ); + the_tuples : extended_tuple_space := + make_extended_tuple_space( + the_zero_tuple_space, + the_generics ); + the_zero_pi_interval : finite_real_interval := + make_finite_real_interval( + 0, + closed, + PI, + closed ); + the_zero_tuple_space : listed_product_space := + make_listed_product_space( + [] ); + END_CONSTANT; + + TYPE absorbed_dose_measure = REAL; + END_TYPE; + + TYPE acceleration_measure = REAL; + END_TYPE; + + TYPE action_items = SELECT + ( action, + action_directive, + action_method, + action_property, + action_relationship, + action_request_solution, + alternate_product_relationship, + applied_action_assignment, + applied_classification_assignment, + applied_person_and_organization_assignment, + approval_status, + assembly_component_usage_substitute, + certification, + certification_item, + characterized_object, + class, + class_system, + classification_item, + configuration_design, + configuration_effectivity, + configuration_item, + configured_effectivity_assignment, + contract, + document_file, + document_reference_item, + draughting_model, + drawing_revision, + evaluated_characteristic, + executed_action, + general_property, + identification_item, + material_designation, + mechanical_design_geometric_presentation_representation, + organization, + organization_relationship, + organizational_project, + person_and_organization, + presentation_area, + product, + product_concept, + product_concept_feature, + product_concept_feature_association, + product_concept_feature_category, + product_concept_feature_category_usage, + product_definition, + product_definition_formation, + product_definition_formation_relationship, + product_definition_relationship, + product_definition_substitute, + property_definition, + requirement_assigned_item, + requirement_for_action_resource, + resource_property, + security_classification, + security_classification_level, + shape_aspect, + shape_representation, + versioned_action_request ); + END_TYPE; + + TYPE action_method_items = SELECT + ( action, + action_method, + action_property, + applied_action_assignment, + configuration_design, + contract, + document_file, + event_occurrence, + organization, + organizational_project, + person, + person_and_organization, + product, + product_concept, + product_definition, + product_definition_formation, + product_definition_formation_relationship, + product_definition_relationship, + property_definition, + test_method_based_parameter_assignment ); + END_TYPE; + + TYPE action_request_item = SELECT + ( action, + action_method, + action_property, + action_relationship, + alternate_product_relationship, + assembly_component_usage_substitute, + configuration_design, + configuration_effectivity, + configuration_item, + configured_effectivity_assignment, + document_file, + draughting_model, + drawing_revision, + general_property, + material_designation, + mechanical_design_geometric_presentation_representation, + organizational_project, + presentation_area, + product, + product_concept, + product_concept_feature, + product_concept_feature_association, + product_concept_feature_category, + product_concept_feature_category_usage, + product_definition, + product_definition_formation, + product_definition_formation_relationship, + product_definition_relationship, + product_definition_substitute, + property_definition, + resource_property, + shape_aspect, + shape_representation, + versioned_action_request ); + END_TYPE; + + TYPE actuated_direction = ENUMERATION OF + ( bidirectional, + positive_only, + negative_only, + not_actuated ); + 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 + ( draughting_model, + 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, + defined_character_glyph, + composite_text ); + END_TYPE; + + TYPE approval_item = SELECT + ( action, + action_directive, + action_property, + action_request_solution, + alternate_product_relationship, + applied_action_assignment, + applied_classification_assignment, + applied_usage_right, + assembly_component_usage_substitute, + certification, + class, + class_system, + configuration_design, + configuration_effectivity, + configuration_item, + configured_effectivity_assignment, + contract, + date, + directed_action, + document, + document_file, + draughting_model, + drawing_revision, + effectivity, + executed_action, + frozen_assignment, + general_property, + general_property_relationship, + group, + group_relationship, + information_usage_right, + material_designation, + mechanical_design_geometric_presentation_representation, + organizational_project, + presentation_area, + product, + product_concept, + product_concept_feature, + product_concept_feature_association, + product_concept_feature_category, + product_concept_feature_category_usage, + product_definition, + product_definition_formation, + product_definition_formation_relationship, + product_definition_relationship, + product_definition_substitute, + property_definition, + representation, + requirement_assignment, + resource_property, + security_classification, + shape_aspect_relationship, + shape_representation, + 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 area_unit_type = ENUMERATION OF + ( circular, + rectangular, + square ); + END_TYPE; + + TYPE atom_based_tuple = LIST OF atom_based_value; + END_TYPE; + + TYPE atom_based_value = SELECT + ( maths_atom, + atom_based_tuple ); + 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_identifier = identifier; + WHERE + wr1: validate_attribute_id( SELF ); + END_TYPE; + + TYPE attribute_language_item = SELECT + ( action, + actuated_kinematic_pair, + 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, + data_environment, + date_role, + date_time_role, + descriptive_representation_item, + document_relationship, + document_usage_role, + draughting_title, + effectivity, + effectivity_relationship, + event_occurrence, + external_source, + general_property, + general_property_relationship, + geometric_representation_item, + geometric_tolerance, + group, + group_relationship, + identification_role, + information_right, + information_usage_right, + kinematic_pair, + make_from_usage_option, + mapped_item, + multi_language_attribute_assignment, + name_assignment, + object_role, + organization_relationship, + organization_role, + organizational_project, + organizational_project_relationship, + organizational_project_role, + person_and_organization, + person_and_organization_role, + presentation_layer_assignment, + process_product_association, + product, + product_concept, + product_concept_feature, + product_concept_feature_association, + product_concept_relationship, + product_definition, + product_definition_context, + product_definition_formation, + product_definition_formation_relationship, + product_definition_relationship, + product_definition_shape, + product_definition_substitute, + product_related_product_category, + property_definition, + property_definition_relationship, + representation, + representation_relationship, + requirement_for_action_resource, + resource_property, + resource_requirement_type, + security_classification, + security_classification_assignment, + shape_aspect, + shape_aspect_relationship, + shape_representation, + styled_item, + time_interval_role, + topological_representation_item, + uncertainty_measure_with_unit, + uncertainty_qualifier, + usage_association, + versioned_action_request, + versioned_action_request_relationship ); + END_TYPE; + + TYPE attribute_type = SELECT + ( label, + text ); + END_TYPE; + + TYPE axial_geometry_constraint_element = SELECT + ( point, + line, + circle, + plane, + cylindrical_surface, + conical_surface, + spherical_surface, + toroidal_surface, + surface_of_revolution, + sphere, + right_circular_cone, + right_circular_cylinder, + torus, + revolved_face_solid, + revolved_area_solid ); + 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_or_composite_curve_select = SELECT + ( b_spline_curve, + composite_curve ); + END_TYPE; + + TYPE b_spline_or_rectangular_composite_surface_select = SELECT + ( b_spline_surface, + rectangular_composite_surface ); + 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 ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 + ( boolean_result, + csg_primitive, + half_space_2d, + half_space_solid, + solid_model ); + END_TYPE; + + TYPE boolean_operand_2d = SELECT + ( bounded_primitive_2d, + boolean_result_2d ); + END_TYPE; + + TYPE boolean_operator = ENUMERATION OF + ( union, + intersection, + difference ); + END_TYPE; + + TYPE boolean_value = BOOLEAN; + END_TYPE; + + TYPE bounded_primitive_2d = SELECT + ( area_with_outer_boundary, + circular_area, + elliptic_area, + path_area_with_parameters, + polygonal_area, + rectangular_area ); + 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, + product_definition_formation, + product_definition_formation_relationship, + product_definition_relationship ); + END_TYPE; + + TYPE certified_item = SELECT + ( supplied_part_relationship ); + END_TYPE; + + TYPE chained_representation_link = SELECT + ( mapped_item, + representation_context, + representation_relationship ); + END_TYPE; + + TYPE change_management_object = SELECT + ( action, + action_directive, + action_items, + action_relationship, + alternate_product_relationship, + analytical_model_definition, + analytical_model_make_from_relationship, + analytical_model_port, + analytical_model_port_assignment, + analytical_representation, + applied_approval_assignment, + applied_date_and_time_assignment, + applied_document_reference, + applied_external_identification_assignment, + applied_group_assignment, + applied_identification_assignment, + applied_organization_assignment, + applied_person_and_organization_assignment, + approval, + approval_status, + assembly_bond_definition, + assembly_component, + assembly_component_usage, + assembly_component_usage_substitute, + assembly_group_component_definition_placement_link, + assembly_joint, + bus_element_link, + bus_structural_definition, + calendar_date, + certification, + characterized_object, + class, + complex_clause, + component_2d_location, + component_3d_location, + component_definition, + component_feature, + component_feature_relationship, + component_functional_terminal, + component_functional_unit, + component_terminal, + composite_curve_segment, + composite_signal_property_relationship, + conductive_interconnect_element_terminal_link, + configuration_effectivity, + configuration_item, + connection_zone_interface_plane_relationship, + connection_zone_map_identification, + connector_based_interconnect_definition, + contract, + curve_style, + curve_style_font, + curve_style_font_and_scaling, + curve_style_parameters_representation, + date, + date_and_time, + datum, + datum_difference_functional_unit_usage_view_terminal_assignment, + descriptive_representation_item, + design_composition_path, + device_terminal_map, + dielectric_crossover_area, + dimension_related_tolerance_zone_element, + dimensional_characteristic_representation, + dimensional_location, + dimensional_size, + direct_stratum_component_join_implementation, + direction, + document, + document_usage_constraint, + draughting_pre_defined_text_font, + effectivity, + evaluated_characteristic, + event_occurrence, + externally_defined_curve_font, + externally_defined_hatch_style, + externally_defined_item, + externally_defined_text_font, + externally_defined_tile_style, + fabrication_joint, + fill_area_style_hatching, + fill_area_style_tiles, + frozen_assignment, + func, + functional_specification, + functional_terminal_group, + functional_unit_terminal_definition, + general_property_relationship, + geometric_representation_context, + geometric_representation_item, + geometric_tolerance, + geometric_tolerance_relationship, + group, + group_product_definition, + group_shape_aspect, + interface_mounted_join, + item_defined_transformation, + join_shape_aspect, + layer_connection_point, + layout_junction, + linear_array_component_definition_link, + make_from_connectivity_relationship, + make_from_feature_relationship, + make_from_usage_option, + mapped_item, + material_designation, + measure_qualification, + measure_with_unit, + model_parameter, + network_node_definition, + operational_requirement_relationship, + organization, + packaged_connector_terminal_relationship, + parameter_assignment, + parameter_assignment_override, + part_connected_terminals_definition, + passage_technology, + person, + person_and_organization, + physical_connectivity_definition, + physical_connectivity_element, + physical_network, + physical_node_requirement_to_implementing_component_allocation, + plated_inter_stratum_feature, + plus_minus_tolerance, + port_variable, + pre_defined_item, + predefined_requirement_view_definition, + presentation_style_assignment, + printed_connector_template_terminal_relationship, + printed_part_template_connected_terminals_definition, + printed_part_template_material, + printed_part_template_material_link, + product, + product_category, + product_concept, + product_definition, + product_definition_formation, + product_definition_formation_relationship, + product_definition_relationship, + product_definition_with_associated_documents, + product_specific_parameter_value_assignment, + project_item, + projected_zone_definition, + promissory_usage_occurrence, + property_definition, + property_definition_relationship, + property_definition_representation, + range_characteristic, + reference_composition_path, + representation, + representation_context, + representation_item, + representation_relationship, + representation_relationship_with_transformation, + requirement_assignment, + rule_action, + runout_zone_orientation_reference_direction, + scalar_terminal_definition_link, + security_classification, + sequential_laminate_passage_based_fabrication_joint, + shape_aspect, + shape_aspect_relationship, + shape_dimension_representation, + shape_representation, + shape_representation_relationship, + signal, + simple_clause, + solid_curve_font, + specified_higher_usage_occurrence, + stratum_feature_based_derived_pattern, + stratum_feature_conductive_join, + stratum_surface, + stratum_technology, + stratum_technology_occurrence_link, + styled_item, + text_font, + tolerance_value, + tolerance_zone_definition, + tolerance_zone_form, + usage_view_connection_zone_terminal_shape_relationship, + vector, + versioned_action_request ); + END_TYPE; + + TYPE change_relationship_select = SELECT + ( action_relationship, + product_definition_formation_relationship, + product_definition_relationship, + shape_aspect_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 characterized_resource_definition = SELECT + ( action_resource, + action_resource_requirement ); + 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, + document_type, + effectivity, + event_occurrence, + executed_action, + feature_definition, + functional_unit_terminal_definition, + general_feature, + general_property, + general_property_relationship, + group, + identification_assignment, + information_right, + information_usage_right, + language, + material_designation, + 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, + plus_minus_tolerance, + process_operation, + product, + product_concept, + product_concept_feature, + product_concept_feature_category, + 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, + resource_property, + security_classification, + security_classification_level, + shape_aspect, + stratum_technology_occurrence_relationship, + uncertainty_measure_with_unit, + usage_association, + versioned_action_request ); + END_TYPE; + + TYPE classified_item = SELECT + ( product, + product_definition, + product_definition_formation ); + END_TYPE; + + TYPE closed_or_open_shell_select = SELECT + ( closed_shell, + open_shell ); + END_TYPE; + + TYPE common_datum_list = LIST [2 : ?] OF datum_reference_element; + WHERE + wr1: ( SIZEOF( QUERY ( dre <* SELF | ( dre\shape_aspect.of_shape <> SELF[1]\shape_aspect.of_shape ) ) ) = 0 ); + END_TYPE; + + TYPE component_material_relationship_assignment_item = SELECT + ( assembly_component_usage, + assembly_item_number, + specification_definition ); + END_TYPE; + + TYPE compound_inner_area_boundary = SELECT + ( set_inner_area_boundary ); + 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 + ( action_relationship, + process_plan, + product_definition, + product_process_plan ); + END_TYPE; + + TYPE constraint_group_member = SELECT + ( explicit_constraint, + simultaneous_constraint_group ); + 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, + drawing_revision, + 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_2d_area_select = SELECT + ( axis2_placement_2d, + csg_primitive_solid_2d ); + END_TYPE; + + TYPE csg_2d_shape_select = SELECT + ( mapped_item, + axis2_placement_2d, + csg_solid_2d ); + END_TYPE; + + TYPE csg_primitive = SELECT + ( block, + bounded_primitive_2d, +(* The following five items have been added to resolve BZ#5057. *) + cyclide_segment_solid, + eccentric_cone, + ellipsoid, + faceted_primitive, + rectangular_pyramid, +(* end of insertion *) + right_angular_wedge, + right_circular_cone, + right_circular_cylinder, + sphere, + torus ); + END_TYPE; + + TYPE csg_select = SELECT + ( boolean_result, + csg_primitive ); + END_TYPE; + + TYPE csg_select_2d = SELECT + ( bounded_primitive_2d, + boolean_result_2d ); + END_TYPE; + + TYPE current_element_assignment_select = SELECT + ( modify_element, + add_element ); + 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 + ( composite_curve_on_surface, + pcurve, + surface_curve ); + END_TYPE; + + TYPE curve_or_annotation_curve_occurrence = SELECT + ( curve, + annotation_curve_occurrence ); + END_TYPE; + + TYPE curve_or_curve_set = SELECT + ( curve, + geometric_curve_set ); + END_TYPE; + + TYPE curve_or_render = SELECT + ( curve_style, + curve_style_rendering ); + END_TYPE; + + TYPE curve_or_surface_constraint_element = SELECT + ( curve, + surface ); + END_TYPE; + + TYPE curve_style_font_select = SELECT + ( curve_style_font, + pre_defined_curve_font, + externally_defined_curve_font ); + END_TYPE; + + TYPE curves_or_area = ENUMERATION OF + ( curves, + area ); + END_TYPE; + + TYPE date_and_time_item = SELECT + ( action, + action_directive, + action_method, + action_property, + action_relationship, + action_request_solution, + alternate_product_relationship, + applied_action_assignment, + applied_classification_assignment, + applied_organization_assignment, + applied_person_and_organization_assignment, + applied_security_classification_assignment, + approval_person_organization, + approval_status, + assembly_component_usage_substitute, + certification, + class, + class_system, + configuration_design, + configuration_item, + configured_effectivity_assignment, + contract, + data_quality_definition, + directed_action, + document, + document_file, + draughting_model, + drawing_revision, + effectivity, + event_occurrence, + executed_action, + general_property, + information_usage_right, + material_designation, + mechanical_design_geometric_presentation_representation, + organization_relationship, + organizational_project, + person_and_organization, + presentation_area, + product, + product_concept, + product_concept_feature, + product_concept_feature_association, + product_concept_feature_category, + product_concept_feature_category_usage, + product_definition, + product_definition_formation, + product_definition_formation_relationship, + product_definition_relationship, + product_definition_substitute, + property_definition, + requirement_for_action_resource, + resource_property, + rule_action, + security_classification, + security_classification_level, + shape_representation, + versioned_action_request ); + END_TYPE; + + TYPE date_item = SELECT + ( action, + action_directive, + action_method, + action_property, + action_relationship, + action_request_solution, + alternate_product_relationship, + applied_action_assignment, + applied_classification_assignment, + applied_organization_assignment, + applied_person_and_organization_assignment, + applied_security_classification_assignment, + approval_person_organization, + approval_status, + assembly_component_usage_substitute, + certification, + class, + class_system, + configuration_design, + configuration_item, + configured_effectivity_assignment, + contract, + data_quality_definition, + directed_action, + document, + document_file, + draughting_model, + drawing_revision, + effectivity, + event_occurrence, + executed_action, + general_property, + information_usage_right, + material_designation, + mechanical_design_geometric_presentation_representation, + organization_relationship, + organizational_project, + person_and_organization, + presentation_area, + product, + product_concept, + product_concept_feature, + product_concept_feature_association, + product_concept_feature_category, + product_concept_feature_category_usage, + product_definition, + product_definition_formation, + product_definition_formation_relationship, + product_definition_relationship, + product_definition_substitute, + property_definition, + requirement_for_action_resource, + resource_property, + security_classification, + security_classification_level, + shape_representation, + 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 datum_or_common_datum = SELECT + ( common_datum_list, + datum ); + END_TYPE; + + TYPE datum_reference_modifier = SELECT + ( datum_reference_modifier_with_value, + simple_datum_reference_modifier ); + END_TYPE; + + TYPE datum_reference_modifier_type = ENUMERATION OF + ( circular_or_cylindrical, + distance, + projected, + spherical ); + END_TYPE; + + TYPE datum_system_or_reference = SELECT + ( datum_reference, + datum_system ); + END_TYPE; + + TYPE day_in_month_number = INTEGER; + WHERE + wr1: ( ( 1 <= SELF ) AND ( SELF <= 31 ) ); + END_TYPE; + + TYPE day_in_week_number = INTEGER; + WHERE + wr1: ( ( 1 <= SELF ) AND ( SELF <= 7 ) ); + END_TYPE; + + TYPE day_in_year_number = INTEGER; + WHERE + wr1: ( ( 1 <= SELF ) AND ( SELF <= 366 ) ); + END_TYPE; + + TYPE defined_glyph_select = SELECT + ( pre_defined_character_glyph, + externally_defined_character_glyph ); + END_TYPE; + + TYPE defined_symbol_select = SELECT + ( pre_defined_symbol, + externally_defined_symbol ); + END_TYPE; + + TYPE derived_property_select = SELECT + ( property_definition, + action_property, + resource_property ); + END_TYPE; + + TYPE description_attribute_select = SELECT + ( action_request_solution, + application_context, + approval_role, + configuration_design, + context_dependent_shape_representation, + date_role, + date_time_role, + effectivity, + external_source, + organization_role, + organizational_project, + person_and_organization, + person_and_organization_role, + property_definition_representation, + representation ); + END_TYPE; + + TYPE descriptive_measure = STRING; + END_TYPE; + + TYPE detailed_report_type = ENUMERATION OF + ( measured_element, + inferior_quality_element ); + 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_directive, + action_method, + action_relationship, + analytical_model_definition, + applied_action_assignment, + applied_external_identification_assignment, + approval, + assembly_component, + assembly_component_usage, + certification, + characterized_class, + characterized_object, + class, + class_system, + component_feature, + configuration_design, + configuration_item, + contract, + descriptive_representation_item, + dimensional_size, + executed_action, + externally_conditioned_data_quality_criterion, + externally_defined_dimension_definition, + externally_defined_item, + feature_definition, + general_property, + group, + group_relationship, + information_right, + information_usage_right, + inter_stratum_feature, + material_designation, + measure_representation_item, + model_parameter, + organization, + organizational_project, + package_terminal, + passage_technology, + person, + physical_connectivity_definition, + physical_connectivity_element, + predefined_requirement_view_definition, + presentation_area, + process_plan, + product, + product_category, + product_concept, + product_concept_feature, + product_concept_feature_category, + product_definition, + product_definition_context, + product_definition_formation, + product_definition_formation_relationship, + product_definition_process, + product_definition_relationship, + product_definition_substitute, + product_related_product_category, + property_definition, + protocol_physical_layer_definition, + representation, + representation_item, + resource_requirement_type, + retention, + rule_set, + security_classification, + shape_aspect, + shape_aspect_relationship, + stratum, + stratum_feature, + stratum_surface, + stratum_technology, + structured_layout_component, + usage_association, + versioned_action_request ); + END_TYPE; + + TYPE dose_equivalent_measure = REAL; + END_TYPE; + + TYPE draughting_callout_element = SELECT + ( annotation_curve_occurrence, + annotation_fill_area_occurrence, + annotation_symbol_occurrence, + annotation_text_occurrence, + tessellated_annotation_occurrence ); + END_TYPE; + + TYPE draughting_model_item_association_select = SELECT + ( annotation_occurrence, + draughting_callout ); + END_TYPE; + + TYPE draughting_model_item_definition = SELECT + ( applied_action_assignment, + applied_action_method_assignment, + applied_action_request_assignment, + applied_approval_assignment, + applied_certification_assignment, + applied_classification_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_group_assignment, + applied_identification_assignment, + applied_ineffectivity_assignment, + applied_name_assignment, + applied_organization_assignment, + applied_organizational_project_assignment, + applied_person_and_organization_assignment, + applied_security_classification_assignment, + applied_time_interval_assignment, + applied_usage_right, + dimensional_size, + geometric_tolerance, + product_definition_relationship, + product_definition_shape, + property_definition, + shape_aspect, + shape_aspect_relationship ); + END_TYPE; + + TYPE draughting_model_item_select = SELECT + ( mapped_item, + styled_item, + axis2_placement, + camera_model, + draughting_callout ); + END_TYPE; + + TYPE draughting_subfigure_representation_item = SELECT + ( annotation_occurrence, + draughting_callout, + axis2_placement ); + END_TYPE; + + TYPE draughting_symbol_representation_item = SELECT + ( annotation_curve_occurrence, + annotation_symbol_occurrence, + annotation_fill_area_occurrence, + annotation_text_occurrence, + axis2_placement ); + END_TYPE; + + TYPE draughting_titled_item = SELECT + ( drawing_revision, + drawing_sheet_revision ); + END_TYPE; + + TYPE edge_or_curve = SELECT + ( curve, + edge ); + END_TYPE; + + TYPE effectivity_item = SELECT + ( action, + action_method, + action_method_relationship, + action_property, + action_relationship, + assembly_component_usage_substitute, + class, + class_system, + configuration_design, + configuration_item, + configured_effectivity_assignment, + document_file, + draughting_model, + drawing_revision, + general_property, + material_designation, + mechanical_design_geometric_presentation_representation, + presentation_area, + product, + product_concept, + product_concept_feature, + product_concept_feature_association, + product_concept_feature_category, + product_concept_feature_category_usage, + product_definition, + product_definition_formation, + product_definition_formation_relationship, + product_definition_relationship, + product_definition_substitute, + property_definition, + requirement_for_action_resource, + resource_property, + security_classification, + shape_aspect, + shape_representation ); + END_TYPE; + + TYPE electric_charge_measure = REAL; + END_TYPE; + + TYPE electric_current_measure = REAL; + END_TYPE; + + TYPE electric_potential_measure = REAL; + END_TYPE; + + TYPE elementary_function_enumerators = ENUMERATION OF + ( ef_and, + ef_or, + ef_not, + ef_xor, + ef_negate_i, + ef_add_i, + ef_subtract_i, + ef_multiply_i, + ef_divide_i, + ef_mod_i, + ef_exponentiate_i, + ef_eq_i, + ef_ne_i, + ef_gt_i, + ef_lt_i, + ef_ge_i, + ef_le_i, + ef_abs_i, + ef_max_i, + ef_min_i, + ef_if_i, + ef_negate_r, + ef_reciprocal_r, + ef_add_r, + ef_subtract_r, + ef_multiply_r, + ef_divide_r, + ef_mod_r, + ef_exponentiate_r, + ef_exponentiate_ri, + ef_eq_r, + ef_ne_r, + ef_gt_r, + ef_lt_r, + ef_ge_r, + ef_le_r, + ef_abs_r, + ef_max_r, + ef_min_r, + ef_acos_r, + ef_asin_r, + ef_atan2_r, + ef_cos_r, + ef_exp_r, + ef_ln_r, + ef_log2_r, + ef_log10_r, + ef_sin_r, + ef_sqrt_r, + ef_tan_r, + ef_if_r, + ef_form_c, + ef_rpart_c, + ef_ipart_c, + ef_negate_c, + ef_reciprocal_c, + ef_add_c, + ef_subtract_c, + ef_multiply_c, + ef_divide_c, + ef_exponentiate_c, + ef_exponentiate_ci, + ef_eq_c, + ef_ne_c, + ef_conjugate_c, + ef_abs_c, + ef_arg_c, + ef_cos_c, + ef_exp_c, + ef_ln_c, + ef_sin_c, + ef_sqrt_c, + ef_tan_c, + ef_if_c, + ef_subscript_s, + ef_eq_s, + ef_ne_s, + ef_gt_s, + ef_lt_s, + ef_ge_s, + ef_le_s, + ef_subsequence_s, + ef_concat_s, + ef_size_s, + ef_format, + ef_value, + ef_like, + ef_if_s, + ef_subscript_b, + ef_eq_b, + ef_ne_b, + ef_gt_b, + ef_lt_b, + ef_ge_b, + ef_le_b, + ef_subsequence_b, + ef_concat_b, + ef_size_b, + ef_if_b, + ef_subscript_t, + ef_eq_t, + ef_ne_t, + ef_concat_t, + ef_size_t, + ef_entuple, + ef_detuple, + ef_insert, + ef_remove, + ef_if_t, + ef_sum_it, + ef_product_it, + ef_add_it, + ef_subtract_it, + ef_scalar_mult_it, + ef_dot_prod_it, + ef_sum_rt, + ef_product_rt, + ef_add_rt, + ef_subtract_rt, + ef_scalar_mult_rt, + ef_dot_prod_rt, + ef_norm_rt, + ef_sum_ct, + ef_product_ct, + ef_add_ct, + ef_subtract_ct, + ef_scalar_mult_ct, + ef_dot_prod_ct, + ef_norm_ct, + ef_if, + ef_ensemble, + ef_member_of ); + END_TYPE; + + TYPE elementary_space_enumerators = ENUMERATION OF + ( es_numbers, + es_complex_numbers, + es_reals, + es_integers, + es_logicals, + es_booleans, + es_strings, + es_binarys, + es_maths_spaces, + es_maths_functions, + es_generics ); + END_TYPE; + + TYPE energy_measure = REAL; + END_TYPE; + + TYPE event_occurrence_item = SELECT + ( action, + action_directive, + action_method, + action_property, + action_request_solution, + alternate_product_relationship, + applied_action_assignment, + applied_classification_assignment, + assembly_component_usage_substitute, + certification, + class, + class_system, + configuration_design, + configuration_effectivity, + configuration_item, + configured_effectivity_assignment, + contract, + draughting_model, + drawing_revision, + executed_action, + general_property, + material_designation, + mechanical_design_geometric_presentation_representation, + organization_relationship, + organizational_project, + person_and_organization, + presentation_area, + product, + product_concept, + product_concept_feature, + product_concept_feature_association, + product_concept_feature_category, + product_concept_feature_category_usage, + product_definition_formation, + product_definition_formation_relationship, + product_definition_relationship, + product_definition_substitute, + property_definition, + requirement_for_action_resource, + resource_property, + security_classification_level, + shape_representation ); + END_TYPE; + + TYPE expression_extension_select = SELECT + ( expression_extension_string, + expression_extension_numeric ); + END_TYPE; + + TYPE extension_options = ENUMERATION OF + ( eo_none, + eo_cont, + eo_cont_right, + eo_cont_left ); + END_TYPE; + + TYPE external_identification_item = SELECT + ( action_relationship, + action_request_status, + applied_organization_assignment, + applied_person_and_organization_assignment, + approval, + approval_status, + assembly_bond_definition, + assembly_component, + composite_signal_property_relationship, + date_and_time_assignment, + date_assignment, + digital_analytical_model_vector_port, + document_file, + external_source, + externally_defined_class, + externally_defined_context_dependent_unit, + externally_defined_conversion_based_unit, + externally_defined_general_property, + externally_defined_physical_network_group, + externally_defined_physical_network_group_element_relationship, + externally_defined_picture_representation_item, + externally_defined_representation_item, + functional_specification, + generic_product_definition_reference, + land_physical_template, + organizational_address, + package, + package_terminal_template_definition, + printed_component, + product_definition, + property_definition, + security_classification, + shape_representation, + signal, + stratum, + stratum_feature_based_derived_pattern, + stratum_technology, + trimmed_curve, + versioned_action_request ); + END_TYPE; + + TYPE face_or_surface = SELECT + ( face, + surface ); + 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_constraint_element = SELECT + ( point, + curve, + surface, + vector, + direction ); + END_TYPE; + + TYPE geometric_item_specific_usage_select = SELECT + ( shape_aspect, + shape_aspect_relationship ); + END_TYPE; + + TYPE geometric_model_item = SELECT + ( connected_face_set, + edge_loop, + geometric_representation_item ); + END_TYPE; + + TYPE geometric_set_select = SELECT + ( curve, + point, + surface ); + END_TYPE; + + TYPE geometric_tolerance_modifier = ENUMERATION OF + ( any_cross_section, + common_zone, + each_radial_element, + free_state, + least_material_requirement, + line_element, + major_diameter, + maximum_material_requirement, + minor_diameter, + not_convex, + pitch_diameter, + reciprocity_requirement, + separate_requirement, + statistical_tolerance, + tangent_plane ); + END_TYPE; + + TYPE geometric_tolerance_target = SELECT + ( dimensional_location, + dimensional_size, + product_definition_shape, + shape_aspect ); + END_TYPE; + + TYPE groupable_item = SELECT + ( applied_identification_assignment, + applied_name_assignment, + assembly_component, + assembly_component_usage, + assembly_spacing_requirement, + component_feature, + component_functional_unit, + geometric_representation_item, + group_relationship, + group_shape_aspect, + layout_spacing_requirement, + mapped_item, + network_node_definition, + package_product_concept_feature, + part_connected_terminals_definition, + physical_connectivity_definition, + physical_network, + predefined_requirement_view_definition, + printed_part_template_terminal, + 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, + stratum, + styled_item, + topological_representation_item ); + WHERE + wr1: ( NOT ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.GROUP' IN TYPEOF( SELF ) ) ); + END_TYPE; + + TYPE hour_in_day = INTEGER; + WHERE + wr1: ( ( 0 <= SELF ) AND ( SELF < 24 ) ); + END_TYPE; + + TYPE id_attribute_select = SELECT + ( action, + address, + application_context, + dimensional_size, + geometric_tolerance, + group, + organizational_project, + product_category, + property_definition, + representation, + shape_aspect, + shape_aspect_relationship ); + END_TYPE; + + TYPE identification_item = SELECT + ( action, + action_directive, + action_method, + action_property, + applied_identification_assignment, + approval_status, + characterized_class, + class, + class_system, + configuration_item, + contract, + dimensional_size, + document_file, + document_type, + draughting_model, + effectivity, + general_property, + group, + group_relationship, + information_right, + information_usage_right, + material_designation, + measure_representation_item, + mechanical_design_geometric_presentation_representation, + organization, + organizational_project, + person_and_organization, + presentation_area, + product, + product_category, + product_class, + product_concept, + product_concept_feature, + product_concept_feature_category, + product_definition, + product_definition_formation, + product_definition_relationship, + product_identification, + property_definition, + property_definition_relationship, + representation, + rule_set, + security_classification, + security_classification_level, + shape_aspect_relationship, + shape_representation, + usage_association, + versioned_action_request ); + END_TYPE; + + TYPE identifier = STRING; + END_TYPE; + + TYPE illuminance_measure = REAL; + END_TYPE; + + TYPE inductance_measure = REAL; + END_TYPE; + + TYPE input_selector = positive_integer; + END_TYPE; + + TYPE inspected_ecdq_element_select = inspected_element_select; + END_TYPE; + + TYPE inspected_element_select = SELECT + ( assembly_component_usage, + axis2_placement_3d, + b_spline_or_composite_curve_select, + b_spline_or_rectangular_composite_surface_select, + cartesian_transformation_operator_3d, + closed_or_open_shell_select, + connected_face_set, + curve, + direction, + edge_curve, + edge_loop, + face_surface, + global_uncertainty_assigned_context, + global_unit_assigned_context, + group, + manifold_solid_brep, + placement, + point, + presentation_layer_assignment, + representation_item, + styled_item, + surface, + vertex_point ); + END_TYPE; + + TYPE inspected_shape_element_select = inspected_element_select; + END_TYPE; + + TYPE instance_usage_context_select = SELECT + ( product_definition_relationship, + product_definition_usage ); + END_TYPE; + + TYPE internal_or_reflected_shape_aspect = SELECT + ( shape_aspect, + identifier ); + END_TYPE; + + TYPE interpolation_type = ENUMERATION OF + ( undefined_interpolation_type, + discontinuous_interpolation_type, + synchronous_interpolation_type, + linear_interpolation_type ); + 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; + END_TYPE; + + TYPE item_identified_representation_usage_definition = SELECT + ( applied_action_assignment, + applied_action_method_assignment, + applied_action_request_assignment, + applied_approval_assignment, + applied_certification_assignment, + applied_classification_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_group_assignment, + applied_identification_assignment, + applied_ineffectivity_assignment, + applied_name_assignment, + applied_organization_assignment, + applied_organizational_project_assignment, + applied_person_and_organization_assignment, + applied_security_classification_assignment, + applied_time_interval_assignment, + applied_usage_right, + dimensional_size, + general_property, + geometric_tolerance, + product_definition_relationship, + property_definition, + property_definition_relationship, + shape_aspect, + shape_aspect_relationship ); + END_TYPE; + + TYPE item_identified_representation_usage_select = SELECT + ( representation_item, + list_representation_item, + set_representation_item ); + END_TYPE; + + TYPE kinematic_analysis_definition = SELECT + ( interpolated_configuration_sequence, + prescribed_path ); + END_TYPE; + + TYPE kinematic_link_representation_items = SELECT + ( curve, + point, + rigid_placement, + surface ); + END_TYPE; + + TYPE kinematic_result = SELECT + ( interpolated_configuration_sequence, + resulting_path ); + END_TYPE; + + TYPE kinematic_topology_representation_select = SELECT + ( kinematic_topology_structure, + kinematic_topology_directed_structure, + kinematic_topology_network_structure ); + 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 linear_geometry_constraint_element = SELECT + ( line, + plane, + direction, + vector ); + END_TYPE; + + TYPE link_or_shape_representation = SELECT + ( kinematic_link_representation, + shape_representation ); + 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 location_in_aggregate_item = LIST [1 : ?] OF integer_representation_item; + END_TYPE; + + TYPE location_of_extreme_value_select = SELECT + ( inspected_shape_element_select, + b_spline_surface_knot_locator, + b_spline_curve_knot_locator, + b_spline_curve_segment, + b_spline_surface_strip, + b_spline_surface_patch, + composite_curve_transition_locator, + rectangular_composite_surface_transition_locator, + boundary_curve_of_b_spline_or_rectangular_composite_surface, + oriented_edge, + face_bound, + point_on_edge_curve, + point_on_face_surface, + subedge, + subface ); + END_TYPE; + + TYPE luminous_flux_measure = REAL; + END_TYPE; + + TYPE luminous_intensity_measure = REAL; + END_TYPE; + +TYPE machining_feature_definition = SELECT ( + boss, + compound_feature, + externally_defined_feature_definition, + flat_face, + gear, + marking, + outer_round, + outside_profile, + pocket, + protrusion, + removal_volume, + replicate_feature, + revolved_profile, + rib_top, + round_hole, + rounded_end, + spherical_cap, + step, + slot, + thread, + turned_knurl); +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 maths_atom = SELECT + ( maths_simple_atom, + maths_enum_atom ); + END_TYPE; + + TYPE maths_binary = BINARY; + END_TYPE; + + TYPE maths_boolean = BOOLEAN; + END_TYPE; + + TYPE maths_enum_atom = SELECT + ( elementary_space_enumerators, + ordering_type, + elementary_function_enumerators, + open_closed, + space_constraint_type, + repackage_options, + extension_options ); + END_TYPE; + + TYPE maths_expression = SELECT + ( atom_based_value, + maths_tuple, + generic_expression ); + END_TYPE; + + TYPE maths_function_select = SELECT + ( maths_function, + elementary_function_enumerators ); + END_TYPE; + + TYPE maths_integer = INTEGER; + END_TYPE; + + TYPE maths_logical = LOGICAL; + END_TYPE; + + TYPE maths_number = NUMBER; + END_TYPE; + + TYPE maths_real = REAL; + END_TYPE; + + TYPE maths_simple_atom = SELECT + ( maths_number, + maths_real, + maths_integer, + maths_logical, + maths_boolean, + maths_string, + maths_binary ); + END_TYPE; + + TYPE maths_space_or_function = SELECT + ( maths_space, + maths_function ); + END_TYPE; + + TYPE maths_string = STRING; + END_TYPE; + + TYPE maths_tuple = LIST [0 : ?] OF maths_value; + END_TYPE; + + TYPE maths_value = SELECT + ( atom_based_value, + maths_tuple, + generic_expression ); + WHERE + constancy: ( ( NOT ( 'GENERIC_EXPRESSION' IN stripped_typeof( SELF ) ) ) OR expression_is_constant( SELF ) ); + 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 measured_value_select = SELECT + ( boolean_value, + measure_value, + plane_angle_and_ratio_pair, + plane_angle_and_length_pair ); + 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 mechanical_design_shaded_presentation_area_items = SELECT + ( axis2_placement, + mapped_item ); + END_TYPE; + + TYPE mechanical_design_shaded_presentation_representation_items = SELECT + ( axis2_placement, + camera_model_d3, + mapped_item, + styled_item ); + END_TYPE; + + TYPE message = STRING; + END_TYPE; + + TYPE minute_in_hour = INTEGER; + WHERE + wr1: ( ( 0 <= SELF ) AND ( SELF <= 59 ) ); + END_TYPE; + + TYPE month_in_year_number = INTEGER; + WHERE + wr1: ( ( 1 <= SELF ) AND ( SELF <= 12 ) ); + END_TYPE; + + TYPE multi_language_attribute_item = SELECT + ( action, + action_directive, + action_method, + action_property, + action_relationship, + actuated_kinematic_pair, + 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, + data_environment, + date_role, + date_time_role, + descriptive_representation_item, + document_relationship, + document_usage_role, + draughting_title, + effectivity, + effectivity_relationship, + event_occurrence, + external_source, + general_property, + general_property_relationship, + geometric_representation_item, + geometric_tolerance, + group, + group_relationship, + identification_role, + information_right, + information_usage_right, + kinematic_pair, + make_from_usage_option, + mapped_item, + name_assignment, + object_role, + organization_relationship, + organization_role, + organizational_project, + organizational_project_relationship, + organizational_project_role, + person_and_organization, + person_and_organization_role, + presentation_layer_assignment, + process_product_association, + product, + product_concept, + product_concept_feature, + product_concept_feature_association, + product_concept_relationship, + product_definition, + product_definition_context, + product_definition_formation, + product_definition_formation_relationship, + product_definition_relationship, + product_definition_shape, + product_definition_substitute, + product_related_product_category, + property_definition, + property_definition_relationship, + representation, + representation_relationship, + requirement_for_action_resource, + resource_property, + resource_requirement_type, + security_classification, + security_classification_assignment, + shape_aspect, + shape_aspect_relationship, + shape_representation, + styled_item, + time_interval_role, + topological_representation_item, + uncertainty_measure_with_unit, + uncertainty_qualifier, + usage_association, + versioned_action_request, + versioned_action_request_relationship ); + END_TYPE; + + TYPE multi_or_next_assembly_usage_occurrence = SELECT + ( multi_level_reference_designator, + next_assembly_usage_occurrence ); + 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 ); + 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 one_or_two = positive_integer; + WHERE + in_range: ( ( SELF = 1 ) OR ( SELF = 2 ) ); + END_TYPE; + + TYPE open_closed = ENUMERATION OF + ( open, + closed ); + END_TYPE; + + TYPE ordering_type = ENUMERATION OF + ( by_rows, + by_columns ); + END_TYPE; + + TYPE organization_item = SELECT + ( action, + action_directive, + action_method, + action_property, + action_relationship, + action_request_solution, + alternate_product_relationship, + applied_action_assignment, + applied_classification_assignment, + applied_identification_assignment, + applied_organization_assignment, + applied_person_and_organization_assignment, + applied_security_classification_assignment, + approval, + approval_status, + assembly_component_usage_substitute, + certification, + class, + class_system, + configuration_design, + configuration_effectivity, + configuration_item, + configured_effectivity_assignment, + contract, + data_quality_definition, + document_file, + document_type, + draughting_model, + drawing_revision, + effectivity, + event_occurrence, + executed_action, + general_property, + information_usage_right, + material_designation, + mechanical_design_geometric_presentation_representation, + organization, + organization_relationship, + organizational_project, + person_and_organization, + presentation_area, + product, + product_concept, + product_concept_feature, + product_concept_feature_association, + product_concept_feature_category, + product_concept_feature_category_usage, + product_definition, + product_definition_formation, + product_definition_formation_relationship, + product_definition_relationship, + product_definition_substitute, + property_definition, + representation, + requirement_for_action_resource, + resource_property, + rule_action, + security_classification, + security_classification_level, + shape_representation, + versioned_action_request ); + END_TYPE; + + TYPE orientation_basis_select = SELECT + ( axis2_placement_3d, + min_and_major_ply_orientation_basis ); + END_TYPE; + + TYPE parallel_offset_type = ENUMERATION OF + ( curve_2d_offset, + curve_3d_offset, + surface_offset ); + END_TYPE; + + TYPE parameter_assignment_select = SELECT + ( analytical_model_parameter, + model_parameter ); + END_TYPE; + + TYPE parameter_value = REAL; + END_TYPE; + + TYPE path_or_composite_curve = SELECT + ( composite_curve, + path ); + END_TYPE; + + TYPE pcurve_or_surface = SELECT + ( pcurve, + surface ); + END_TYPE; + + TYPE person_and_organization_item = SELECT + ( action, + action_directive, + action_method, + action_property, + action_relationship, + action_request_solution, + alternate_product_relationship, + applied_action_assignment, + applied_classification_assignment, + applied_identification_assignment, + applied_organization_assignment, + applied_person_and_organization_assignment, + applied_security_classification_assignment, + approval, + approval_status, + assembly_component_usage_substitute, + certification, + class, + class_system, + configuration_design, + configuration_effectivity, + configuration_item, + configured_effectivity_assignment, + contract, + data_quality_definition, + document_file, + document_type, + draughting_model, + drawing_revision, + event_occurrence, + executed_action, + general_property, + information_usage_right, + material_designation, + mechanical_design_geometric_presentation_representation, + organization, + organization_relationship, + organizational_project, + person_and_organization, + presentation_area, + product, + product_concept, + product_concept_feature, + product_concept_feature_association, + product_concept_feature_category, + product_concept_feature_category_usage, + product_definition, + product_definition_formation, + product_definition_formation_relationship, + product_definition_relationship, + product_definition_substitute, + property_definition, + requirement_for_action_resource, + resource_property, + rule_action, + security_classification, + security_classification_level, + 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 planar_curve_select = SELECT + ( line, + conic, + trimmed_curve, + pcurve, + surface_curve ); + WHERE + wr1: ( SELF\geometric_representation_item.dim = 3 ); + wr2: check_curve_planarity( SELF ); + 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_curve_or_surface_constraint_element = SELECT + ( point, + curve, + surface ); + END_TYPE; + + TYPE point_path_members = LIST [1 : ?] OF point_and_vector; + END_TYPE; + + TYPE point_placement_shape_representation_item = SELECT + ( compound_representation_item, + mapped_item, + axis2_placement_3d ); + 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 ); + END_TYPE; + + TYPE positive_plane_angle_measure = plane_angle_measure; + WHERE + wr1: ( SELF > 0 ); + END_TYPE; + + TYPE positive_ratio_measure = ratio_measure; + WHERE + wr1: ( SELF > 0 ); + END_TYPE; + + TYPE power_measure = REAL; + END_TYPE; + + TYPE preferred_ordering = ENUMERATION OF + ( extremity_order, + detected_order ); + 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, + externally_defined_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 previous_element_assignment_select = SELECT + ( modify_element, + delete_element ); + 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_definition_or_reference = SELECT + ( product_definition, + generic_product_definition_reference ); + END_TYPE; + + TYPE product_or_formation_or_definition = SELECT + ( product, + product_definition_formation, + product_definition ); + END_TYPE; + + TYPE product_space = SELECT + ( uniform_product_space, + listed_product_space ); + END_TYPE; + + TYPE project_item = SELECT + ( assembly_component_usage, + configuration_item, + executed_action, + product, + product_concept, + product_definition, + product_definition_formation ); + END_TYPE; + + TYPE property_or_shape_select = SELECT + ( property_definition, + shape_definition ); + END_TYPE; + + TYPE property_variable_rep_select = SELECT + ( dimensional_size, + representation ); + END_TYPE; + + TYPE radial_geometry_constraint_element = SELECT + ( circle, + cylindrical_surface, + conical_surface, + spherical_surface, + right_circular_cylinder, + right_circular_cone, + sphere ); + END_TYPE; + + TYPE radioactivity_measure = REAL; + END_TYPE; + + TYPE ratio_measure = REAL; + END_TYPE; + + TYPE real_interval = SELECT + ( real_interval_from_min, + real_interval_to_max, + finite_real_interval, + elementary_space ); + WHERE + wr1: ( ( NOT ( 'ELEMENTARY_SPACE' IN stripped_typeof( SELF ) ) ) OR ( SELF\elementary_space.space_id = es_reals ) ); + END_TYPE; + + TYPE rendering_properties_select = SELECT + ( surface_style_reflectance_ambient, + surface_style_transparent ); + END_TYPE; + + TYPE repackage_options = ENUMERATION OF + ( ro_nochange, + ro_wrap_as_tuple, + ro_unwrap_tuple ); + 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 + ( assembly_component_usage, + assembly_item_number, + assembly_joint, + component_functional_unit, + component_material_relationship, + configuration_item, + derived_laminate_assignment, + descriptive_representation_item, + dielectric_crossover_area, + group, + group_product_definition, + group_relationship, + group_shape_aspect, + layered_interconnect_module_design_view, + part_connected_terminals_definition, + part_connected_terminals_element, + passage_technology, + physical_connectivity_definition, + predefined_requirement_view_definition, + product, + product_class, + product_definition, + product_definition_formation, + product_definition_relationship, + representation, + shape_aspect, + shape_aspect_relationship, + shape_representation, + stratum_feature_conductive_join, + stratum_technology, + stratum_technology_occurrence, + stratum_technology_occurrence_relationship, + structured_template, + thermal_isolation_removal_template ); + 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 rigid_placement = SELECT + ( axis2_placement_3d, + su_parameters ); + 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 ) AND ( SELF < 60 ) ); + END_TYPE; + + TYPE security_classification_item = SELECT + ( action, + action_directive, + action_property, + applied_action_assignment, + assembly_component_usage, + assembly_component_usage_substitute, + class_system, + configuration_design, + configuration_effectivity, + configured_effectivity_assignment, + document, + document_file, + draughting_model, + drawing_revision, + executed_action, + general_property, + make_from_usage_option, + material_designation, + mechanical_design_geometric_presentation_representation, + organizational_project, + presentation_area, + product, + product_concept, + product_concept_feature, + product_concept_feature_category, + product_definition, + product_definition_formation, + product_definition_relationship, + product_definition_usage, + property_definition, + resource_property, + shape_representation, + versioned_action_request ); + END_TYPE; + + TYPE set_inner_area_boundary = SET [1 : ?] OF bounded_primitive_2d; + 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_data_quality_assessment_specification_select = SELECT + ( shape_data_quality_assessment_by_logical_test, + shape_data_quality_assessment_by_numerical_test ); + END_TYPE; + + TYPE shape_data_quality_value_limit_type_select = SELECT + ( shape_data_quality_value_range, + shape_data_quality_value_limit ); + END_TYPE; + + TYPE shape_definition = SELECT + ( product_definition_shape, + shape_aspect, + shape_aspect_relationship ); + END_TYPE; + + TYPE shape_dimension_representation_item = SELECT + ( compound_representation_item, + descriptive_representation_item, + measure_representation_item, + placement ); + END_TYPE; + + TYPE shape_model = SELECT + ( constructive_geometry_representation, + shape_representation ); + END_TYPE; + + TYPE shape_representation_item = SELECT + ( geometric_representation_item, + topological_representation_item ); + END_TYPE; + + TYPE shape_representation_with_parameters_items = SELECT + ( descriptive_representation_item, + direction, + measure_representation_item, + placement ); + 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 simple_datum_reference_modifier = ENUMERATION OF + ( any_cross_section, + any_longitudinal_section, + basic, + contacting_feature, + degree_of_freedom_constraint_u, + degree_of_freedom_constraint_v, + degree_of_freedom_constraint_w, + degree_of_freedom_constraint_x, + degree_of_freedom_constraint_y, + degree_of_freedom_constraint_z, + distance_variable, + free_state, + least_material_requirement, + line, + major_diameter, + maximum_material_requirement, + minor_diameter, + orientation, + pitch_diameter, + plane, + point, + translation ); + END_TYPE; + + TYPE size_select = SELECT + ( positive_length_measure, + measure_with_unit, + descriptive_measure ); + END_TYPE; + + TYPE sketch_basis_select = SELECT + ( planar_curve_select, + curve_bounded_surface, + face_surface ); + END_TYPE; + + TYPE sketch_element_select = SELECT + ( curve, + point ); + WHERE + wr1: ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.GEOMETRIC_REPRESENTATION_ITEM' IN TYPEOF( SELF ) ); + END_TYPE; + + TYPE sketch_type_select = SELECT + ( neutral_sketch_representation, + positioned_sketch, + subsketch ); + 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 space_constraint_type = ENUMERATION OF + ( sc_equal, + sc_subspace, + sc_member ); + END_TYPE; + + TYPE spatial_rotation = SELECT + ( ypr_rotation, + rotation_about_direction ); + END_TYPE; + + TYPE spherical_pair_select = SELECT + ( spherical_pair, + spherical_pair_with_pin ); + END_TYPE; + + TYPE start_request_item = SELECT + ( product_definition_formation ); + END_TYPE; + + TYPE statistical_value_type = ENUMERATION OF + ( number_of_inspected_instances, + number_of_quality_defects_detected ); + 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 styled_item_target = SELECT + ( geometric_representation_item, + mapped_item, + representation, + topological_representation_item ); + END_TYPE; + + TYPE summary_report_type = ENUMERATION OF + ( unspecified, + conclusion_only, + number_of_quality_defects, + number_of_inspections_and_conclusion, + full_statistics ); + END_TYPE; + + TYPE supported_item = SELECT + ( action_directive, + action, + action_method ); + END_TYPE; + + TYPE surface_boundary_type = ENUMERATION OF + ( u_parameter_min, + v_parameter_min, + u_parameter_max, + v_parameter_max ); + END_TYPE; + + TYPE surface_model = SELECT + ( face_based_surface_model, + shell_based_surface_model ); + END_TYPE; + + TYPE surface_or_solid_model = SELECT + ( surface_model, + solid_model ); + 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 swept_surface_or_solid = SELECT + ( swept_surface, + swept_face_solid, + swept_area_solid ); + END_TYPE; + + TYPE symbol_style_select = SELECT + ( symbol_colour ); + END_TYPE; + + TYPE tangent_contact_type = ENUMERATION OF + ( point_contact, + curve_contact, + surface_contact ); + END_TYPE; + + TYPE tessellated_edge_or_vertex = SELECT + ( tessellated_edge, + tessellated_vertex ); + 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, + defined_character_glyph, + 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, + defined_character_glyph, + composite_text, + axis2_placement ); + END_TYPE; + + TYPE thermodynamic_temperature_measure = REAL; + END_TYPE; + + TYPE time_interval_item = SELECT + ( action, + action_directive, + action_method, + action_property, + action_relationship, + action_request_solution, + alternate_product_relationship, + applied_action_assignment, + applied_classification_assignment, + applied_person_and_organization_assignment, + approval_status, + assembly_component_usage_substitute, + certification, + class, + class_system, + configuration_design, + configuration_effectivity, + configuration_item, + configured_effectivity_assignment, + contract, + document_file, + draughting_model, + drawing_revision, + executed_action, + general_property, + material_designation, + mechanical_design_geometric_presentation_representation, + organization_relationship, + organizational_project, + person_and_organization, + presentation_area, + product, + product_concept, + product_concept_feature, + product_concept_feature_association, + product_concept_feature_category, + product_concept_feature_category_usage, + product_definition, + product_definition_formation, + product_definition_formation_relationship, + product_definition_relationship, + product_definition_substitute, + property_definition, + requirement_for_action_resource, + resource_property, + security_classification, + security_classification_level, + shape_representation, + time_interval_based_effectivity, + versioned_action_request ); + END_TYPE; + + TYPE time_measure = REAL; + END_TYPE; + + TYPE tolerance_method_definition = SELECT + ( limits_and_fits, + tolerance_value ); + END_TYPE; + + TYPE tolerance_zone_target = SELECT + ( dimensional_location, + dimensional_size, + geometric_tolerance, + general_datum_reference ); + 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 tuple_space = SELECT + ( product_space, + extended_tuple_space ); + END_TYPE; + + TYPE u_direction_count = INTEGER; + WHERE + wr1: ( SELF > 1 ); + END_TYPE; + + TYPE u_or_v_parameter = ENUMERATION OF + ( u_parameter, + v_parameter ); + END_TYPE; + + TYPE unit = SELECT + ( derived_unit, + named_unit ); + END_TYPE; + + TYPE used_quality_representation_select = SELECT + ( data_quality_criteria_representation, + data_quality_inspection_result_representation ); + END_TYPE; + + TYPE v_direction_count = INTEGER; + WHERE + wr1: ( SELF > 1 ); + END_TYPE; + + TYPE value_format_type = identifier; + WHERE + wr1: ( LENGTH( SELF ) <= 80 ); + END_TYPE; + + TYPE value_qualifier = SELECT + ( precision_qualifier, + type_qualifier, + uncertainty_qualifier, + value_format_type_qualifier ); + END_TYPE; + + TYPE vector_or_direction = SELECT + ( direction, + vector ); + END_TYPE; + + TYPE velocity_measure = REAL; + END_TYPE; + + TYPE volume_measure = REAL; + END_TYPE; + + TYPE week_in_year_number = INTEGER; + WHERE + wr1: ( ( 1 <= SELF ) AND ( SELF <= 53 ) ); + END_TYPE; + + TYPE work_item = SELECT + ( product_definition_formation ); + END_TYPE; + + TYPE year_number = INTEGER; + WHERE + wr1: ( SELF > 1581 ); + END_TYPE; + + TYPE ypr_enumeration = ENUMERATION OF + ( yaw, + pitch, + roll ); + END_TYPE; + + TYPE ypr_rotation = ARRAY [ypr_index( yaw ) : ypr_index( roll )] OF plane_angle_measure; + END_TYPE; + + TYPE zero_or_one = nonnegative_integer; + WHERE + in_range: ( ( SELF = 0 ) OR ( SELF = 1 ) ); + END_TYPE; + +(* + The following seven ENTITYs have been added to address Bug 5057 for the + initial ed2 version until they can properly be added to the constituent modules. +*) + + ENTITY convex_hexahedron + SUBTYPE OF (faceted_primitive); + WHERE + WR1: SIZEOF(points) = 8; + WR2: above_plane(points[1], points[2], points[3], points[4]) = 0.0; + WR3: above_plane(points[5], points[8], points[7], points[6]) = 0.0; + WR4: above_plane(points[1], points[4], points[8], points[5]) = 0.0; + WR5: above_plane(points[4], points[3], points[7], points[8]) = 0.0; + WR6: above_plane(points[3], points[2], points[6], points[7]) = 0.0; + WR7: above_plane(points[1], points[5], points[6], points[2]) = 0.0; + WR8: same_side([points[1], points[2], points[3]], [points[5], points[6], points[7], points[8]]); + WR9: same_side([points[1], points[4], points[8]], [points[3], points[7], points[6], points[2]]); + WR10: same_side([points[1], points[2], points[5]], [points[3], points[7], points[8], points[4]]); + WR11: same_side([points[5], points[6], points[7]], [points[1], points[2], points[3], points[4]]); + WR12: same_side([points[3], points[7], points[6]], [points[1], points[4], points[8], points[5]]); + WR13: same_side([points[3], points[7], points[8]], [points[1], points[5], points[6], points[2]]); + END_ENTITY; + + ENTITY cyclide_segment_solid + SUBTYPE OF (geometric_representation_item); + position : axis2_placement_3d; + radius1 : positive_length_measure; + radius2 : positive_length_measure; + cone_angle1 : plane_angle_measure; + cone_angle2 : plane_angle_measure; + turn_angle : plane_angle_measure; + END_ENTITY; + + ENTITY eccentric_cone + SUBTYPE OF (geometric_representation_item); + position : axis2_placement_3d; + semi_axis_1 : positive_length_measure; + semi_axis_2 : positive_length_measure; + height : positive_length_measure; + x_offset : length_measure; + y_offset : length_measure; + ratio : REAL; + WHERE + WR1: ratio >= 0.0; + END_ENTITY; + + ENTITY ellipsoid + SUBTYPE OF (geometric_representation_item); + position : axis2_placement_3d; + semi_axis_1 : positive_length_measure; + semi_axis_2 : positive_length_measure; + semi_axis_3 : positive_length_measure; + END_ENTITY; + + ENTITY faceted_primitive + SUPERTYPE OF (ONEOF (tetrahedron, + convex_hexahedron)) + SUBTYPE OF (geometric_representation_item); + points : LIST[4:?] OF UNIQUE cartesian_point; + WHERE + WR1: points[1].dim = 3; + END_ENTITY; + + ENTITY rectangular_pyramid + SUBTYPE OF (geometric_representation_item); + position : axis2_placement_3d; + xlength : positive_length_measure; + ylength : positive_length_measure; + height : positive_length_measure; + END_ENTITY; + + ENTITY tetrahedron + SUBTYPE OF (faceted_primitive); + WHERE + WR1: SIZEOF(points) = 4; + WR2: above_plane(points[1], points[2], points[3], points[4]) <> 0.0; + END_ENTITY; + +(* End of added ENTITYs. JH 2014-05-22 *) + + ENTITY abrupt_change_of_surface_normal + SUBTYPE OF ( geometry_with_local_irregularity ); + SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_logical_test; + small_vector_tolerance : length_measure; + test_point_distance_tolerance : length_measure; + WHERE + wr1: validate_measured_data_type( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.BOOLEAN_VALUE' ); + wr2: validate_inspected_elements_type( SELF, [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SURFACE'] ); + wr3: validate_locations_of_extreme_value_type( SELF, [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'POINT_ON_SURFACE' , 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.POINT_ON_SURFACE'] ); + wr4: validate_accuracy_types( SELF, [] ); + END_ENTITY; + + ENTITY abs_function + SUBTYPE OF ( unary_function_call ); + END_ENTITY; + + ENTITY absorbed_dose_measure_with_unit + SUBTYPE OF ( measure_with_unit ); + WHERE + wr1: ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 abstracted_expression_function + SUBTYPE OF ( maths_function, quantifier_expression ); + DERIVE + SELF\quantifier_expression.variables : LIST [1 : ?] OF UNIQUE generic_variable := remove_first( SELF\ + multiple_arity_generic_expression.operands ); + expr : generic_expression := SELF\multiple_arity_generic_expression.operands[1]; + WHERE + wr1: ( SIZEOF( QUERY ( operand <* SELF\multiple_arity_generic_expression.operands | ( NOT has_values_space( operand ) ) ) ) + = 0 ); + END_ENTITY; + + ENTITY acceleration_measure_with_unit + SUBTYPE OF ( measure_with_unit ); + WHERE + wr1: ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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, -2, 0, 0, 0, 0 ) ); + END_ENTITY; + + ENTITY acos_function + SUBTYPE OF ( unary_function_call ); + END_ENTITY; + + ENTITY across_port_variable + SUBTYPE OF ( port_variable ); + 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, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'DESCRIPTION_ATTRIBUTE.' + + 'DESCRIBED_ITEM' ) ) <= 1 ); + wr2: ( SIZEOF( USEDIN( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'NAME_ATTRIBUTE.' + + 'NAMED_ITEM' ) ) <= 1 ); + END_ENTITY; + + ENTITY action_request_status; + status : label; + assigned_request : versioned_action_request; + END_ENTITY; + + ENTITY action_resource; + name : label; + description : OPTIONAL text; + usage : SET [1 : ?] OF supported_item; + kind : action_resource_type; + END_ENTITY; + + ENTITY action_resource_requirement; + name : label; + description : text; + kind : resource_requirement_type; + operations : SET [1 : ?] OF characterized_action_definition; + END_ENTITY; + + ENTITY action_resource_type; + name : label; + END_ENTITY; + + ENTITY action_status; + status : label; + assigned_action : executed_action; + END_ENTITY; + + ENTITY actuated_kinematic_pair + SUBTYPE OF ( kinematic_pair ); + t_x : OPTIONAL actuated_direction; + t_y : OPTIONAL actuated_direction; + t_z : OPTIONAL actuated_direction; + r_x : OPTIONAL actuated_direction; + r_y : OPTIONAL actuated_direction; + r_z : OPTIONAL actuated_direction; + END_ENTITY; + + ENTITY add_element + SUBTYPE OF ( change_element ); + END_ENTITY; + + ENTITY additive_laminate_text_component + SUBTYPE OF ( generic_laminate_text_component ); + 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( [ + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MANIFOLD_SOLID_BREP' , + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.FACETED_BREP' , + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MAPPED_ITEM' , + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.AXIS2_PLACEMENT_3D' ] * TYPEOF( it ) ) = 1 ) ) ) ) + = 0 ); + wr2: ( SIZEOF( QUERY ( it <* SELF.items | ( SIZEOF( [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'MANIFOLD_SOLID_BREP' , 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MAPPED_ITEM'] * + TYPEOF( it ) ) = 1 ) ) ) > 0 ); + wr3: ( SIZEOF( QUERY ( msb <* QUERY ( it <* SELF.items | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.ADVANCED_FACE' IN TYPEOF( fcs ) ) ) ) ) + = 0 ) ) ) ) = 0 ) ) ) ) = 0 ); + wr4: ( SIZEOF( QUERY ( msb <* QUERY ( it <* items | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'MANIFOLD_SOLID_BREP' IN TYPEOF( it ) ) ) | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.ORIENTED_CLOSED_SHELL' IN TYPEOF( msb\ + manifold_solid_brep.outer ) ) ) ) = 0 ); + wr5: ( SIZEOF( QUERY ( brv <* QUERY ( it <* items | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'MAPPED_ITEM' IN TYPEOF( it ) ) ) | ( NOT ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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( [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.ELEMENTARY_SURFACE', + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.B_SPLINE_SURFACE' , + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SWEPT_SURFACE' ] * TYPEOF( face_geometry ) ) + = 1 ); + wr2 : ( SIZEOF( QUERY ( elp_fbnds <* QUERY ( bnds <* bounds | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.EDGE_LOOP' IN TYPEOF( bnds.bound ) ) ) | ( + NOT ( SIZEOF( QUERY ( oe <* elp_fbnds.bound\path.edge_list | ( NOT ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.EDGE_CURVE' IN TYPEOF( oe\oriented_edge. + edge_element ) ) ) ) ) = 0 ) ) ) ) = 0 ); + wr3 : ( SIZEOF( QUERY ( elp_fbnds <* QUERY ( bnds <* bounds | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.EDGE_LOOP' IN TYPEOF( bnds.bound ) ) ) | ( + NOT ( SIZEOF( QUERY ( oe <* elp_fbnds.bound\path.edge_list | ( NOT ( SIZEOF( [ + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LINE' , + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CONIC' , + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.POLYLINE' , + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SURFACE_CURVE' , + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.B_SPLINE_CURVE' ] * TYPEOF( oe.edge_element\ + edge_curve.edge_geometry ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ); + wr4 : ( SIZEOF( QUERY ( elp_fbnds <* QUERY ( bnds <* bounds | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.EDGE_LOOP' IN TYPEOF( bnds.bound ) ) ) | ( + NOT ( SIZEOF( QUERY ( oe <* elp_fbnds.bound\path.edge_list | ( NOT ( ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.VERTEX_POINT' IN TYPEOF( oe\edge.edge_start ) ) + AND ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CARTESIAN_POINT' IN TYPEOF( oe\edge. + edge_start\vertex_point.vertex_geometry ) ) AND ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.VERTEX_POINT' IN TYPEOF( oe\edge.edge_end ) ) + AND ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CARTESIAN_POINT' IN TYPEOF( oe\edge. + edge_end\vertex_point.vertex_geometry ) ) ) ) ) ) = 0 ) ) ) ) = 0 ); + wr5 : ( SIZEOF( QUERY ( elp_fbnds <* QUERY ( bnds <* bounds | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.EDGE_LOOP' IN TYPEOF( bnds.bound ) ) ) | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.ORIENTED_PATH' IN TYPEOF( elp_fbnds.bound ) ) ) ) + = 0 ); + wr6 : ( ( NOT ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SWEPT_SURFACE' IN TYPEOF( face_geometry ) ) ) + OR ( SIZEOF( [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LINE', + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CONIC' , + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.POLYLINE' , + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.B_SPLINE_CURVE' ] * TYPEOF( face_geometry\ + swept_surface.swept_curve ) ) = 1 ) ); + wr7 : ( SIZEOF( QUERY ( vlp_fbnds <* QUERY ( bnds <* bounds | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.VERTEX_LOOP' IN TYPEOF( bnds.bound ) ) ) | + ( NOT ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.VERTEX_POINT' IN TYPEOF( vlp_fbnds\ + face_bound.bound\vertex_loop.loop_vertex ) ) AND ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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( [ + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.EDGE_LOOP' , + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.VERTEX_LOOP' ] * TYPEOF( bnd.bound ) ) = 1 ) ) ) ) + = 0 ); + wr9 : ( SIZEOF( QUERY ( elp_fbnds <* QUERY ( bnds <* bounds | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.EDGE_LOOP' IN TYPEOF( bnds.bound ) ) ) | ( + NOT ( SIZEOF( QUERY ( oe <* elp_fbnds.bound\path.edge_list | ( ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PCURVE' IN TYPEOF( sc_ag ) ) ) ) ) = 0 ) ) ) ) ) + = 0 ) ) ) ) = 0 ); + wr10: ( ( ( NOT ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SWEPT_SURFACE' IN TYPEOF( + face_geometry ) ) ) OR ( NOT ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.EDGE_LOOP' IN TYPEOF( bnds.bound ) ) ) | ( + NOT ( SIZEOF( QUERY ( oe <* elp_fbnds.bound\path.edge_list | ( ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 agc_with_dimension + SUBTYPE OF ( angle_geometric_constraint ); + angle_value : plane_angle_measure; + END_ENTITY; + + ENTITY aggregate_connectivity_requirement + SUBTYPE OF ( applied_group_assignment, product_definition ); + END_ENTITY; + + ENTITY all_around_shape_aspect + SUBTYPE OF ( continuous_shape_aspect ); + END_ENTITY; + + ENTITY allocated_passage_minimum_annular_ring + SUBTYPE OF ( characterized_object ); + END_ENTITY; + + ENTITY altered_package_terminal + ABSTRACT SUPERTYPE OF ( + shape_formed_terminal + ANDOR + surface_prepped_terminal + ANDOR + length_trimmed_terminal ) + SUBTYPE OF ( package_terminal ); + 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: ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 ) AND ( SELF\named_unit.dimensions.mass_exponent = 0 ) AND ( SELF\ + named_unit.dimensions.time_exponent = 0 ) AND ( SELF\named_unit.dimensions.electric_current_exponent = 0 ) AND ( + SELF\named_unit.dimensions.thermodynamic_temperature_exponent = 0 ) AND ( SELF\named_unit.dimensions. + amount_of_substance_exponent = 1 ) AND ( SELF\named_unit.dimensions.luminous_intensity_exponent = 0 ) ); + END_ENTITY; + + ENTITY analog_analytical_model_port + SUBTYPE OF ( analytical_model_port ); + END_ENTITY; + + ENTITY analytical_model_definition + SUBTYPE OF ( product_definition ); + END_ENTITY; + + ENTITY analytical_model_make_from_relationship + SUBTYPE OF ( product_definition_relationship ); + SELF\product_definition_relationship.relating_product_definition : analytical_model_definition; + SELF\product_definition_relationship.related_product_definition : analytical_model_definition; + UNIQUE + ur1 : SELF\product_definition_relationship.relating_product_definition, SELF\product_definition_relationship. + related_product_definition; + END_ENTITY; + + ENTITY analytical_model_parameter + SUBTYPE OF ( property_definition ); + END_ENTITY; + + ENTITY analytical_model_port + SUBTYPE OF ( property_definition, property_definition_representation, representation ); + DERIVE + SELF\property_definition_representation.definition : property_definition := SELF; + SELF\property_definition_representation.used_representation : representation := SELF; + END_ENTITY; + + ENTITY analytical_model_port_assignment + SUBTYPE OF ( property_definition_representation, representation_relationship ); + SELF\property_definition_representation.used_representation : analytical_model_port; + SELF\representation_relationship.rep_1 : analytical_representation; + DERIVE + SELF\representation_relationship.rep_2 : analytical_model_port := SELF\property_definition_representation. + used_representation; + END_ENTITY; + + ENTITY analytical_model_scalar_port + SUBTYPE OF ( analytical_model_vector_port ); + END_ENTITY; + + ENTITY analytical_model_vector_port + SUBTYPE OF ( analytical_model_port, compound_representation_item ); + END_ENTITY; + + ENTITY analytical_representation + SUBTYPE OF ( representation ); + UNIQUE + ur1 : SELF\representation.name; + END_ENTITY; + + ENTITY and_expression + SUBTYPE OF ( multiple_arity_boolean_expression ); + END_ENTITY; + + ENTITY angle_assembly_constraint_with_dimension + SUBTYPE OF ( binary_assembly_constraint, agc_with_dimension ); + END_ENTITY; + + ENTITY angle_direction_reference + SUBTYPE OF ( representation_item_relationship, geometric_representation_item ); + SELF\representation_item_relationship.relating_representation_item : orientation_basis_select; + SELF\representation_item_relationship.related_representation_item : angle_direction_reference_select; + WHERE + wr1: ( ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.POINT_PATH' IN TYPEOF( + related_representation_item ) ) AND ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'MIN_AND_MAJOR_PLY_ORIENTATION_BASIS' IN TYPEOF( relating_representation_item ) ) ) OR ( ( NOT ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.POINT_PATH' IN TYPEOF( + related_representation_item ) ) ) AND ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'AXIS2_PLACEMENT_3D' IN TYPEOF( relating_representation_item ) ) ) ); + END_ENTITY; + + ENTITY angle_geometric_constraint + SUBTYPE OF ( explicit_geometric_constraint ); + SELF\explicit_constraint.constrained_elements : SET [1 : ?] OF linear_geometry_constraint_element; + SELF\explicit_constraint.reference_elements : SET [0 : 1] OF linear_geometry_constraint_element; + WHERE + wr1: ( ( SIZEOF( SELF\explicit_constraint.reference_elements ) = 1 ) OR ( ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.AGC_WITH_DIMENSION' IN TYPEOF( SELF ) ) AND + ( SIZEOF( SELF\explicit_constraint.constrained_elements ) = 2 ) ) ); + 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 ); + END_ENTITY; + + ENTITY annotation_curve_occurrence + SUPERTYPE OF ( + ONEOF ( + dimension_curve, + leader_curve, + projection_curve ) ) + SUBTYPE OF ( annotation_occurrence ); + SELF\styled_item.item : curve_or_curve_set; + 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 ( ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CIRCLE' IN TYPEOF( curve ) ) OR ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.ELLIPSE' IN TYPEOF( curve ) ) OR ( ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.B_SPLINE_CURVE' IN TYPEOF( curve ) ) AND ( + curve\b_spline_curve.closed_curve = TRUE ) ) OR ( ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.COMPOSITE_CURVE' IN TYPEOF( curve ) ) AND ( + curve\composite_curve.closed_curve = TRUE ) ) OR ( ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 ) + ANDOR + ONEOF ( + annotation_curve_occurrence, + annotation_fill_area_occurrence, + annotation_plane, + annotation_symbol_occurrence, + annotation_text_occurrence, + tessellated_annotation_occurrence ) ) + SUBTYPE OF ( styled_item ); + WHERE + wr1: ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.GEOMETRIC_REPRESENTATION_ITEM' IN TYPEOF( SELF ) ); + wr2: ( SIZEOF( QUERY ( reps <* using_representations( SELF ) | ( NOT ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 ) * [ + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.ANNOTATION_FILL_AREA_OCCURRENCE' , + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROJECTION_CURVE' , + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'PLANAR_BOX' ) IN TYPEOF( SELF\ + styled_item.item ) ) ) OR ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'AXIS2_PLACEMENT_3D' ) IN TYPEOF( SELF\styled_item.item\planar_box.placement ) ) ); + wr3: ( ( ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'PLANAR_BOX' ) IN TYPEOF( SELF\ + styled_item.item ) ) AND ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'CURVE_STYLE' ) + IN TYPEOF( SELF\styled_item.styles[1]\presentation_style_assignment.styles[1] ) ) ) OR ( ( ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'PLANE' ) IN TYPEOF( SELF\styled_item. + item ) ) AND ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'NULL_STYLE' IN TYPEOF( sty.styles[1] ) ) ) ) ) = 0 ); + wr3: ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.ANNOTATION_SYMBOL' IN TYPEOF( SELF.item ) ); + wr4: ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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: ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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: ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.TEXT_STRING_REPRESENTATION' IN TYPEOF( SELF\ + mapped_item.mapping_source.mapped_representation ) ); + wr2: ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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: ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CHARACTER_GLYPH_SYMBOL' IN TYPEOF( SELF\ + mapped_item.mapping_source.mapped_representation ) ); + wr2: ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'DESCRIPTION_ATTRIBUTE.' + + 'DESCRIBED_ITEM' ) ) <= 1 ); + wr2: ( SIZEOF( USEDIN( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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_defined_function + SUBTYPE OF ( maths_function ); + explicit_domain : tuple_space; + explicit_range : tuple_space; + parameters : LIST OF maths_value; + WHERE + wr1: expression_is_constant( explicit_domain ); + wr2: expression_is_constant( explicit_range ); + 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_area + SUBTYPE OF ( shape_aspect ); + WHERE + wr1: ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF( SELF. + of_shape ) ); + wr2: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( pdr <* USEDIN( pd, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) + | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN + TYPEOF( pdr.used_representation ) ) ) ) = 1 ) ) ) ) = 0 ); + wr3: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) + | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN + TYPEOF( pdr.used_representation ) ) ) | ( NOT ( ( 2 <= SIZEOF( impl_rep.used_representation.items ) ) AND ( + SIZEOF( impl_rep.used_representation.items ) <= 3 ) ) ) ) ) = 0 ) ) ) ) = 0 ); + wr4: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION.DEFINITION' ) | ( SIZEOF( QUERY ( pdr <* USEDIN( pd, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) + | ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN + TYPEOF( pdr.used_representation ) ) AND ( SIZEOF( QUERY ( srwp_i <* pdr.used_representation.items | ( NOT ( srwp_i. + name IN [ 'orientation', 'effective length', 'maximum length'] ) ) ) ) > 0 ) ) ) ) = 0 ) ) ) = 0 ); + wr5: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) + | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN + TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( + SIZEOF( [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( it ) ) = + 2 ) AND ( it.name = 'effective length' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) <= 1 ); + wr6: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) + | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN + TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( + SIZEOF( [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( it ) ) = + 2 ) AND ( it.name = 'maximum length' ) ) ) ) <= 1 ) ) ) ) = 0 ) ) ) ) = 0 ); + wr7: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) + | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN + TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PLACEMENT' IN TYPEOF( it ) ) AND ( it.name = + 'orientation' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ); + END_ENTITY; + + ENTITY applied_attribute_classification_assignment + SUBTYPE OF ( attribute_classification_assignment ); + SELF\attribute_classification_assignment.assigned_class : class; + items : SET [1 : ?] OF attribute_classification_item; + END_ENTITY; + + ENTITY applied_certification_assignment + SUBTYPE OF ( certification_assignment ); + items : SET [1 : ?] OF certification_item; + END_ENTITY; + + ENTITY applied_classification_assignment + SUBTYPE OF ( classification_assignment ); + items : SET [1 : ?] OF classification_item; + END_ENTITY; + + ENTITY applied_contract_assignment + SUBTYPE OF ( contract_assignment ); + items : SET [1 : ?] OF contract_item; + END_ENTITY; + + ENTITY applied_date_and_time_assignment + SUBTYPE OF ( date_and_time_assignment ); + items : SET [1 : ?] OF date_and_time_item; + END_ENTITY; + + ENTITY applied_date_assignment + SUBTYPE OF ( date_assignment ); + items : SET [1 : ?] OF date_item; + END_ENTITY; + + ENTITY applied_document_reference + SUBTYPE OF ( document_reference ); + items : SET [1 : ?] OF document_reference_item; + END_ENTITY; + + ENTITY applied_document_usage_constraint_assignment + SUBTYPE OF ( document_usage_constraint_assignment ); + items : SET [1 : ?] OF document_reference_item; + END_ENTITY; + + ENTITY applied_effectivity_assignment + SUBTYPE OF ( effectivity_assignment ); + items : SET [1 : ?] OF effectivity_item; + END_ENTITY; + + ENTITY applied_event_occurrence_assignment + SUBTYPE OF ( event_occurrence_assignment ); + items : SET [1 : ?] OF event_occurrence_item; + END_ENTITY; + + ENTITY applied_external_identification_assignment + SUBTYPE OF ( external_identification_assignment ); + items : SET [1 : ?] OF external_identification_item; + END_ENTITY; + + ENTITY applied_group_assignment + SUBTYPE OF ( group_assignment ); + items : SET [1 : ?] OF groupable_item; + END_ENTITY; + + ENTITY applied_identification_assignment + SUBTYPE OF ( identification_assignment ); + items : SET [1 : ?] OF identification_item; + END_ENTITY; + + ENTITY applied_ineffectivity_assignment + SUBTYPE OF ( effectivity_assignment ); + items : SET [1 : ?] OF effectivity_item; + WHERE + wr1: ( SIZEOF( [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LOT_EFFECTIVITY', + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SERIAL_NUMBERED_EFFECTIVITY' , + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PRODUCT_DEFINITION_EFFECTIVITY' ] * TYPEOF( + SELF.assigned_effectivity ) ) = 0 ); + 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, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'DESCRIPTION_ATTRIBUTE.' + + 'DESCRIBED_ITEM' ) ) <= 1 ); + END_ENTITY; + + ENTITY approval_status; + name : label; + END_ENTITY; + + ENTITY area_component + SUPERTYPE OF ( + connected_area_component ) + SUBTYPE OF ( stratum_feature_template_component ); + 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: ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.AREA_UNIT' IN TYPEOF( SELF\measure_with_unit. + unit_component ) ); + END_ENTITY; + + ENTITY area_qualified_layout_spacing_requirement + SUBTYPE OF ( layout_spacing_requirement ); + END_ENTITY; + + ENTITY area_unit + SUBTYPE OF ( derived_unit ); + WHERE + wr1: ( derive_dimensional_exponents( SELF ) = dimensional_exponents( 2, 0, 0, 0, 0, 0, 0 ) ); + END_ENTITY; + + ENTITY area_with_outer_boundary + SUBTYPE OF ( half_space_2d ); + SELF\half_space_2d.base_curve : composite_curve; + WHERE + wr1: ( base_curve\composite_curve.closed_curve = TRUE ); + END_ENTITY; + + ENTITY array_placement_group + SUPERTYPE OF ( + ONEOF ( + linear_array_placement_group_component, + rectangular_array_placement_group_component ) + ANDOR + ONEOF ( + laminate_text_string_component, + linear_array_placement_group_component, + rectangular_array_placement_group_component ) ) + SUBTYPE OF ( assembly_group_component ); + END_ENTITY; + + ENTITY asin_function + SUBTYPE OF ( unary_function_call ); + END_ENTITY; + + ENTITY assembly_bond_definition + SUBTYPE OF ( shape_aspect ); + UNIQUE + ur1 : SELF\shape_aspect.name; + END_ENTITY; + + ENTITY assembly_component + SUPERTYPE OF ( + ONEOF ( + physical_component, + laminate_component ) + ANDOR + ONEOF ( + physical_component, + printed_component, + laminate_component ) ) + SUBTYPE OF ( component_definition, product_definition_shape ); + DERIVE + SELF\property_definition.definition : assembly_component := SELF; + WHERE + wr1: ( NOT EXISTS( SELF\property_definition.description ) ); + END_ENTITY; + + ENTITY assembly_component_usage + SUPERTYPE OF ( + quantified_assembly_component_usage + ANDOR + ONEOF ( + multi_level_reference_designator, + next_assembly_usage_occurrence, + promissory_usage_occurrence, + specified_higher_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 assembly_geometric_constraint + ABSTRACT SUPERTYPE OF ( + ONEOF ( + binary_assembly_constraint, + fixed_constituent_assembly_constraint ) ) + SUBTYPE OF ( explicit_constraint ); + END_ENTITY; + + ENTITY assembly_group_component + SUBTYPE OF ( assembly_component ); + END_ENTITY; + + ENTITY assembly_group_component_definition_placement_link + SUBTYPE OF ( product_definition, product_definition_relationship ); + SELF\product_definition_relationship.relating_product_definition : assembly_component; + SELF\product_definition_relationship.related_product_definition : assembly_component; + WHERE + wr1: ( SELF\product_definition_relationship.related_product_definition :<>: SELF\product_definition_relationship. + relating_product_definition ); + wr2: acyclic_product_definition_relationship( SELF, [SELF\product_definition_relationship.related_product_definition], + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'ASSEMBLY_GROUP_COMPONENT_DEFINITION_PLACEMENT_LINK' ); + END_ENTITY; + + ENTITY assembly_group_spacing_requirement + SUBTYPE OF ( predefined_requirement_view_definition ); + END_ENTITY; + + ENTITY assembly_item_number + SUBTYPE OF ( group, applied_group_assignment ); + SELF\applied_group_assignment.items : SET [1 : ?] OF assembly_component_usage; + DERIVE + SELF\group_assignment.assigned_group : group := SELF; + END_ENTITY; + + ENTITY assembly_joint + SUBTYPE OF ( component_feature_joint ); + WHERE + wr1: acyclic_shape_aspect_relationship( SELF, [SELF\shape_aspect_relationship.related_shape_aspect], + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'ASSEMBLY_JOINT' ); + END_ENTITY; + + ENTITY assembly_module_component + SUBTYPE OF ( physical_component ); + END_ENTITY; + + ENTITY assembly_module_design_view + SUPERTYPE OF ( + ONEOF ( + layered_assembly_panel_design_view, + layered_assembly_module_design_view ) ) + SUBTYPE OF ( physical_unit ); + END_ENTITY; + + ENTITY assembly_module_interface_terminal + SUBTYPE OF ( assembly_module_terminal ); + END_ENTITY; + + ENTITY assembly_module_macro_component + SUBTYPE OF ( physical_component ); + END_ENTITY; + + ENTITY assembly_module_macro_component_join_terminal + SUBTYPE OF ( physical_component_terminal ); + END_ENTITY; + + ENTITY assembly_module_macro_terminal + SUBTYPE OF ( assembly_module_terminal ); + END_ENTITY; + + ENTITY assembly_module_terminal + SUPERTYPE OF ( + assembly_module_interface_terminal + ANDOR + ONEOF ( + assembly_module_interface_terminal, + assembly_module_macro_terminal ) ) + SUBTYPE OF ( shape_aspect ); + END_ENTITY; + + ENTITY assembly_module_usage_view + SUPERTYPE OF ( + layered_assembly_module_usage_view ) + SUBTYPE OF ( physical_unit ); + END_ENTITY; + + ENTITY assembly_shield_allocation + SUBTYPE OF ( electromagnetic_compatibility_requirement_allocation ); + END_ENTITY; + + ENTITY assembly_spacing_requirement + SUBTYPE OF ( predefined_requirement_view_definition ); + END_ENTITY; + + ENTITY assembly_to_part_connectivity_structure_allocation + SUBTYPE OF ( shape_aspect_relationship, shape_aspect ); + SELF\shape_aspect_relationship.related_shape_aspect : physical_connectivity_element; + SELF\shape_aspect_relationship.relating_shape_aspect : part_connected_terminals_element; + DERIVE + assembly_element : physical_connectivity_element := SELF\shape_aspect_relationship.related_shape_aspect; + part_element : part_connected_terminals_element := SELF\shape_aspect_relationship.relating_shape_aspect; + END_ENTITY; + + ENTITY assigned_requirement + SUBTYPE OF ( group_assignment ); + SELF\group_assignment.assigned_group : requirement_assignment; + items : SET [1 : 1] OF product_definition; + END_ENTITY; + + ENTITY atan_function + SUBTYPE OF ( binary_function_call ); + END_ENTITY; + + ENTITY atom_based_literal + SUBTYPE OF ( generic_literal ); + lit_value : atom_based_value; + 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 ); + SELF\attribute_classification_assignment.assigned_class : language; + items : SET [1 : ?] OF attribute_language_item; + WHERE + wr1: ( SELF\attribute_classification_assignment.role.name IN [ 'primary', 'translated'] ); + wr2: ( SELF\attribute_classification_assignment.attribute_name <> '' ); + END_ENTITY; + + ENTITY attribute_value_assignment + ABSTRACT SUPERTYPE; + attribute_name : label; + attribute_value : attribute_type; + role : attribute_value_role; + END_ENTITY; + + ENTITY attribute_value_role; + name : label; + description : OPTIONAL text; + END_ENTITY; + + ENTITY 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, 1] ) ); + 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 ) ); + END_ENTITY; + + ENTITY axis_placement_2d_3d_mapping + SUBTYPE OF ( item_defined_transformation ); + SELF\item_defined_transformation.transform_item_1 : axis2_placement_2d; + SELF\item_defined_transformation.transform_item_2 : axis2_placement_3d; + END_ENTITY; + + ENTITY b_spline_basis + SUBTYPE OF ( maths_function, generic_literal ); + degree : nonnegative_integer; + repeated_knots : LIST [2 : ?] OF REAL; + DERIVE + order : positive_integer := degree + 1; + num_basis : positive_integer := SIZEOF( repeated_knots ) - order; + WHERE + wr1: ( num_basis >= order ); + wr2: nondecreasing( repeated_knots ); + wr3: ( repeated_knots[order] < repeated_knots[num_basis + 1] ); + END_ENTITY; + + ENTITY b_spline_curve + SUPERTYPE OF ( + ONEOF ( + uniform_curve, + b_spline_curve_with_knots, + quasi_uniform_curve, + bezier_curve ) + ANDOR + rational_b_spline_curve ) + SUBTYPE OF ( bounded_curve ); + degree : INTEGER; + control_points_list : LIST [2 : ?] OF cartesian_point; + curve_form : b_spline_curve_form; + closed_curve : LOGICAL; + self_intersect : LOGICAL; + DERIVE + upper_index_on_control_points : INTEGER := SIZEOF( control_points_list ) - 1; + control_points : ARRAY [0 : upper_index_on_control_points] OF cartesian_point := list_to_array( + control_points_list, 0, upper_index_on_control_points ); + WHERE + wr1: ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.UNIFORM_CURVE' IN TYPEOF( SELF ) ) OR ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.QUASI_UNIFORM_CURVE' IN TYPEOF( SELF ) ) OR + ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.BEZIER_CURVE' IN TYPEOF( SELF ) ) OR ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.B_SPLINE_CURVE_WITH_KNOTS' IN TYPEOF( SELF ) ) ); + END_ENTITY; + + ENTITY b_spline_curve_knot_locator + SUBTYPE OF ( founded_item ); + basis_curve : b_spline_curve; + knot_index : INTEGER; + WHERE + wr1: ( SIZEOF( using_representations( SELF.basis_curve ) * relating_shape_representations_of_extreme_values( SELF ) ) > 0 ); + END_ENTITY; + + ENTITY b_spline_curve_segment + SUBTYPE OF ( founded_item ); + basis_curve : b_spline_curve; + start_knot_index : INTEGER; + WHERE + wr1: ( SIZEOF( using_representations( SELF.basis_curve ) * relating_shape_representations_of_extreme_values( SELF ) ) > 0 ); + 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_function + SUBTYPE OF ( maths_function, unary_generic_expression ); + SELF\unary_generic_expression.operand : maths_function; + basis : LIST [1 : ?] OF b_spline_basis; + DERIVE + coef : maths_function := SELF\unary_generic_expression.operand; + WHERE + wr1: function_is_table( coef ); + wr2: ( ( space_dimension( coef.range ) = 1 ) AND ( number_superspace_of( factor1( coef.range ) ) = the_reals ) ); + wr3: ( SIZEOF( basis ) <= SIZEOF( shape_of_array( coef ) ) ); + wr4: compare_basis_and_coef( basis, coef ); + END_ENTITY; + + ENTITY b_spline_surface + SUPERTYPE OF ( + ONEOF ( + b_spline_surface_with_knots, + uniform_surface, + quasi_uniform_surface, + bezier_surface ) + ANDOR + rational_b_spline_surface ) + SUBTYPE OF ( bounded_surface ); + u_degree : INTEGER; + v_degree : INTEGER; + control_points_list : LIST [2 : ?] OF LIST [2 : ?] OF cartesian_point; + surface_form : b_spline_surface_form; + u_closed : LOGICAL; + v_closed : LOGICAL; + self_intersect : LOGICAL; + DERIVE + u_upper : INTEGER := SIZEOF( control_points_list ) - 1; + v_upper : INTEGER := SIZEOF( control_points_list[1] ) - 1; + control_points : ARRAY [0 : u_upper] OF ARRAY [0 : v_upper] OF cartesian_point := make_array_of_array( control_points_list, + 0, u_upper, 0, v_upper ); + WHERE + wr1: ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.UNIFORM_SURFACE' IN TYPEOF( SELF ) ) OR ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.QUASI_UNIFORM_SURFACE' IN TYPEOF( SELF ) ) OR + ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.BEZIER_SURFACE' IN TYPEOF( SELF ) ) OR ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.B_SPLINE_SURFACE_WITH_KNOTS' IN TYPEOF( SELF ) ) ); + END_ENTITY; + + ENTITY b_spline_surface_knot_locator + SUBTYPE OF ( founded_item ); + basis_surface : b_spline_surface; + knot_index : INTEGER; + surface_parameter : u_or_v_parameter; + WHERE + wr1: ( SIZEOF( using_representations( SELF.basis_surface ) * relating_shape_representations_of_extreme_values( SELF ) ) > 0 ); + END_ENTITY; + + ENTITY b_spline_surface_patch + SUBTYPE OF ( founded_item ); + basis_surface : b_spline_surface; + u_start_knot_index : INTEGER; + v_start_knot_index : INTEGER; + WHERE + wr1: ( SIZEOF( using_representations( SELF.basis_surface ) * relating_shape_representations_of_extreme_values( SELF ) ) > 0 ); + END_ENTITY; + + ENTITY b_spline_surface_strip + SUBTYPE OF ( founded_item ); + basis_surface : b_spline_surface; + start_knot_index : INTEGER; + surface_parameter : u_or_v_parameter; + WHERE + wr1: ( SIZEOF( using_representations( SELF.basis_surface ) * relating_shape_representations_of_extreme_values( SELF ) ) > 0 ); + 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 bare_die + SUBTYPE OF ( physical_unit ); + END_ENTITY; + + ENTITY bare_die_bottom_surface + SUBTYPE OF ( bare_die_surface ); + END_ENTITY; + + ENTITY bare_die_component + SUBTYPE OF ( physical_component ); + END_ENTITY; + + ENTITY bare_die_edge_segment_surface + SUBTYPE OF ( shape_aspect, shape_aspect_relationship ); + SELF\shape_aspect_relationship.relating_shape_aspect : edge_segment_vertex; + SELF\shape_aspect_relationship.related_shape_aspect : edge_segment_vertex; + WHERE + wr1: ( SELF\shape_aspect_relationship.relating_shape_aspect :<>: SELF\shape_aspect_relationship.related_shape_aspect ); + END_ENTITY; + + ENTITY bare_die_edge_surface + SUBTYPE OF ( bare_die_surface ); + WHERE + wr1: SELF\shape_aspect.product_definitional; + wr2: ( SIZEOF( TYPEOF( SELF ) - TYPEOF( SELF\shape_aspect || SELF\part_mounting_feature || SELF\bare_die_edge_surface || + SELF\bare_die_surface ) ) = 0 ); + END_ENTITY; + + ENTITY bare_die_surface + ABSTRACT SUPERTYPE OF ( + ONEOF ( + bare_die_bottom_surface, + bare_die_top_surface, + bare_die_edge_surface ) ) + SUBTYPE OF ( part_mounting_feature ); + SELF\shape_aspect.of_shape : bare_die; + WHERE + wr1: SELF\shape_aspect.product_definitional; + END_ENTITY; + + ENTITY bare_die_template_terminal + SUBTYPE OF ( part_feature_template_definition, shape_aspect ); + END_ENTITY; + + ENTITY bare_die_terminal + SUBTYPE OF ( minimally_defined_bare_die_terminal, placed_feature ); + END_ENTITY; + + ENTITY bare_die_top_surface + SUBTYPE OF ( bare_die_surface ); + WHERE + wr1: SELF\shape_aspect.product_definitional; + wr2: ( SIZEOF( TYPEOF( SELF ) - TYPEOF( SELF\shape_aspect || SELF\part_mounting_feature || SELF\bare_die_top_surface || + SELF\bare_die_surface ) ) = 0 ); + END_ENTITY; + + ENTITY barring_hole + SUBTYPE OF ( feature_definition ); + WHERE + wr1: ( SIZEOF( QUERY ( sa <* get_shape_aspects( SELF ) | ( ( sa.name = 'hole profile' ) AND ( sa.description = + 'closed profile occurrence' ) AND ( SIZEOF( QUERY ( sar <* USEDIN( sa, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'SHAPE_ASPECT_RELATIONSHIP.' + + 'RELATED_SHAPE_ASPECT' ) | ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF( sar ) ) AND ( sar.description = 'profile usage' ) AND ( SIZEOF( [ + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CIRCULAR_CLOSED_PROFILE' , + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.NGON_CLOSED_PROFILE' , + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.RECTANGULAR_CLOSED_PROFILE' , + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CLOSED_PATH_PROFILE' ] * TYPEOF( sar. + relating_shape_aspect ) ) = 1 ) ) ) ) = 1 ) ) ) ) = 1 ); + wr2: ( SIZEOF( QUERY ( sa <* get_shape_aspects( SELF ) | ( ( sa.name = 'barring profile' ) AND ( sa.description = + 'closed profile occurrence' ) AND ( SIZEOF( QUERY ( sar <* USEDIN( sa, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'SHAPE_ASPECT_RELATIONSHIP.' + + 'RELATED_SHAPE_ASPECT' ) | ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF( sar ) ) AND ( sar.description = 'profile usage' ) ) ) ) = 1 ) ) ) ) = + 1 ); + wr3: ( ( SIZEOF( QUERY ( pdr <* get_property_definition_representations( SELF ) | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN + TYPEOF( pdr.used_representation ) ) ) ) = 1 ) AND ( SIZEOF( QUERY ( pdr <* + get_property_definition_representations( SELF ) | ( ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN + TYPEOF( pdr.used_representation ) ) AND ( 1 <= SIZEOF( pdr.used_representation.items ) ) AND ( SIZEOF( pdr. + used_representation.items ) <= 2 ) ) ) ) = 1 ) ); + wr4: ( SIZEOF( QUERY ( pdr <* get_property_definition_representations( SELF ) | ( ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN + TYPEOF( pdr.used_representation ) ) AND ( SIZEOF( QUERY ( i <* pdr.used_representation.items | ( NOT ( i.name IN [ + 'orientation' , 'base radius'] ) ) ) ) > 0 ) ) ) ) = 0 ); + wr5: ( SIZEOF( QUERY ( pdr <* get_property_definition_representations( SELF ) | ( ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN + TYPEOF( pdr.used_representation ) ) AND ( SIZEOF( QUERY ( i <* pdr.used_representation.items | ( ( i.name = + 'base radius' ) AND ( SIZEOF( [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'MEASURE_REPRESENTATION_ITEM' , 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( i ) ) = 2 ) ) ) ) <> 1 ) ) ) ) = 0 ); + END_ENTITY; + + ENTITY basic_multi_stratum_printed_component + SUBTYPE OF ( printed_component ); + END_ENTITY; + + ENTITY basic_multi_stratum_printed_part_template + SUBTYPE OF ( printed_part_template ); + END_ENTITY; + + ENTITY basic_sparse_matrix + SUBTYPE OF ( explicit_table_function, multiple_arity_generic_expression ); + SELF\multiple_arity_generic_expression.operands : LIST [3 : 3] OF maths_function; + default_entry : maths_value; + order : ordering_type; + DERIVE + index : maths_function := SELF\multiple_arity_generic_expression.operands[1]; + loc : maths_function := SELF\multiple_arity_generic_expression.operands[2]; + val : maths_function := SELF\multiple_arity_generic_expression.operands[3]; + WHERE + wr1: function_is_1d_table( index ); + wr2: function_is_1d_table( loc ); + wr3: function_is_1d_table( val ); + wr4: check_sparse_index_domain( index.domain, index_base, shape, order ); + wr5: check_sparse_index_to_loc( index.range, loc.domain ); + wr6: ( loc.domain = val.domain ); + wr7: check_sparse_loc_range( loc.range, index_base, shape, order ); + wr8: member_of( default_entry, val.range ); + END_ENTITY; + + ENTITY bead + SUBTYPE OF ( feature_definition ); + WHERE + wr1: ( ( SIZEOF( QUERY ( pdr <* get_property_definition_representations( SELF ) | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN + TYPEOF( pdr.used_representation ) ) ) ) <= 1 ) AND ( SIZEOF( QUERY ( pdr <* + get_property_definition_representations( SELF ) | ( ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN + TYPEOF( pdr.used_representation ) ) AND ( SIZEOF( pdr.used_representation.items ) > 2 ) ) ) ) = 0 ) ); + wr2: ( SIZEOF( QUERY ( pdr <* get_property_definition_representations( SELF ) | ( ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN + TYPEOF( pdr.used_representation ) ) AND ( SIZEOF( QUERY ( i <* pdr.used_representation.items | ( NOT ( i.name IN [ + 'orientation' , 'base radius'] ) ) ) ) > 0 ) ) ) ) = 0 ); + wr3: ( SIZEOF( QUERY ( pdr <* get_property_definition_representations( SELF ) | ( ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN + TYPEOF( pdr.used_representation ) ) AND ( SIZEOF( QUERY ( i <* pdr.used_representation.items | ( ( i.name = + 'base radius' ) AND ( SIZEOF( [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'MEASURE_REPRESENTATION_ITEM' , 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( i ) ) = 2 ) ) ) ) > 1 ) ) ) ) = 0 ); + wr4: ( SIZEOF( QUERY ( sa <* get_shape_aspects( SELF ) | ( ( sa.name = 'sweep path' ) AND ( sa.description = + 'path feature component occurrence' ) AND ( SIZEOF( QUERY ( sar <* USEDIN( sa, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'SHAPE_ASPECT_RELATIONSHIP.' + + 'RELATED_SHAPE_ASPECT' ) | ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF( sar ) ) AND ( sar.description = 'path feature component usage' ) AND + ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PATH_FEATURE_COMPONENT' IN TYPEOF( sar. + relating_shape_aspect ) ) ) ) ) = 1 ) ) ) ) = 1 ); + wr5: ( SIZEOF( QUERY ( sa <* get_shape_aspects( SELF ) | ( ( sa.name = 'bead profile' ) AND ( sa.description = + 'open profile occurrence' ) AND ( SIZEOF( QUERY ( sar <* USEDIN( sa, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'SHAPE_ASPECT_RELATIONSHIP.' + + 'RELATED_SHAPE_ASPECT' ) | ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF( sar ) ) AND ( sar.description = 'profile usage' ) AND ( SIZEOF( [ + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.OPEN_PATH_PROFILE' , + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PARTIAL_CIRCULAR_PROFILE' , + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.ROUNDED_U_PROFILE' , + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SQUARE_U_PROFILE' , + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.TEE_PROFILE' , + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.VEE_PROFILE' ] * TYPEOF( sar. + relating_shape_aspect ) ) = 1 ) ) ) ) = 1 ) ) ) ) = 1 ); + wr6: ( SIZEOF( QUERY ( sa <* get_shape_aspects( SELF ) | ( ( sa.name = 'end condition' ) AND ( sa.description = + 'bead end occurrence' ) AND ( SIZEOF( QUERY ( sar <* USEDIN( sa, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'SHAPE_ASPECT_RELATIONSHIP.' + + 'RELATED_SHAPE_ASPECT' ) | ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF( sar ) ) AND ( sar.name = 'bead end usage' ) AND ( sar.description = + 'starting' ) AND ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.BEAD_END' IN TYPEOF( sar. + relating_shape_aspect ) ) ) ) ) = 1 ) ) ) ) = 1 ); + wr7: ( SIZEOF( QUERY ( sa <* get_shape_aspects( SELF ) | ( ( sa.name = 'end condition' ) AND ( sa.description = + 'bead end occurrence' ) AND ( SIZEOF( QUERY ( sar <* USEDIN( sa, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'SHAPE_ASPECT_RELATIONSHIP.' + + 'RELATED_SHAPE_ASPECT' ) | ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF( sar ) ) AND ( sar.name = 'bead end usage' ) AND ( sar.description = + 'ending' ) AND ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.BEAD_END' IN TYPEOF( sar. + relating_shape_aspect ) ) ) ) ) = 1 ) ) ) ) = 1 ); + END_ENTITY; + + ENTITY bead_end + SUBTYPE OF ( shape_aspect ); + WHERE + wr1: ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.FEATURE_COMPONENT_DEFINITION' IN TYPEOF( SELF. + of_shape.definition ) ); + wr2: ( SELF.description IN [ 'linear', 'open', 'radiused'] ); + wr3: ( ( SELF.description <> 'linear' ) XOR ( SIZEOF( QUERY ( pdr <* get_shape_aspect_property_definition_representations( + SELF ) | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' + IN TYPEOF( pdr.used_representation ) ) ) ) > 0 ) ); + wr4: ( ( SELF.description <> 'linear' ) OR ( SIZEOF( QUERY ( pdr <* get_shape_aspect_property_definition_representations( + SELF ) | ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) AND ( SIZEOF( pdr. + used_representation.items ) = 2 ) ) ) ) = 1 ) ); + wr5: ( ( SELF.description <> 'linear' ) OR ( SIZEOF( QUERY ( pdr <* get_shape_aspect_property_definition_representations( + SELF ) | ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) AND ( SIZEOF( QUERY ( i <* pdr. + used_representation.items | ( ( i.name = 'end length' ) AND ( SIZEOF( [ + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM' , + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( i ) ) = + 2 ) ) ) ) = 1 ) ) ) ) = 1 ) ); + wr6: ( ( SELF.description <> 'linear' ) OR ( SIZEOF( QUERY ( pdr <* get_shape_aspect_property_definition_representations( + SELF ) | ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) AND ( SIZEOF( QUERY ( i <* pdr. + used_representation.items | ( ( i.name = 'end shape' ) AND ( i\descriptive_representation_item.description IN [ + 'straight' , 'tapered'] ) AND ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF( i ) ) ) ) ) = 1 ) ) ) ) = 1 ) ); + wr7: ( SIZEOF( QUERY ( sar <* USEDIN( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'SHAPE_ASPECT_RELATIONSHIP.RELATING_SHAPE_ASPECT' ) | ( ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF( + sar ) ) AND ( sar.name = 'bead end usage' ) AND ( sar.description IN [ 'starting', 'ending'] ) AND ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.BEAD' IN TYPEOF( sar.related_shape_aspect. + of_shape.definition ) ) AND ( sar.related_shape_aspect.of_shape.definition\characterized_object.name = + 'end condition' ) AND ( sar.related_shape_aspect.of_shape.definition\characterized_object.description = + 'bead end occurrence' ) ) ) ) = 1 ); + END_ENTITY; + + ENTITY between_shape_aspect + SUBTYPE OF ( continuous_shape_aspect ); + 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_assembly_constraint + ABSTRACT SUPERTYPE OF ( + ONEOF ( + parallel_assembly_constraint, + surface_distance_assembly_constraint_with_dimension, + angle_assembly_constraint_with_dimension, + perpendicular_assembly_constraint, + incidence_assembly_constraint, + coaxial_assembly_constraint, + tangent_assembly_constraint ) ) + SUBTYPE OF ( assembly_geometric_constraint, representation_relationship_with_transformation ); + SELF\representation_relationship.rep_1 : representative_shape_representation; + SELF\representation_relationship.rep_2 : representative_shape_representation; + WHERE + wr1: ( ( SELF\explicit_constraint.constrained_elements[1]\geometric_representation_item.dim = 3 ) AND ( SELF\ + explicit_constraint.reference_elements[1]\geometric_representation_item.dim = 3 ) ); + wr2: ( ( SELF\representation_relationship.rep_1 IN ( using_representations( SELF\ + representation_relationship_with_transformation.transformation_operator\item_defined_transformation. + transform_item_1 ) + using_representation_with_mapping( SELF\representation_relationship_with_transformation. + transformation_operator\item_defined_transformation.transform_item_1 ) ) ) AND ( SELF\representation_relationship. + rep_2 IN ( using_representations( SELF\representation_relationship_with_transformation.transformation_operator\ + item_defined_transformation.transform_item_2 ) + using_representation_with_mapping( SELF\ + representation_relationship_with_transformation.transformation_operator\item_defined_transformation. + transform_item_2 ) ) ) ); + wr3: ( ( SIZEOF( SELF\explicit_constraint.constrained_elements ) = 1 ) AND ( SIZEOF( SELF\explicit_constraint. + reference_elements ) = 1 ) ); + wr4: ( ( SELF\representation_relationship_with_transformation.transformation_operator\item_defined_transformation. + transform_item_1 = SELF\explicit_constraint.reference_elements[1] ) AND ( SELF\ + representation_relationship_with_transformation.transformation_operator\item_defined_transformation. + transform_item_2 = SELF\explicit_constraint.constrained_elements[1] ) ); + END_ENTITY; + + ENTITY binary_boolean_expression + ABSTRACT SUPERTYPE OF ( + ONEOF ( + xor_expression, + equals_expression ) ) + SUBTYPE OF ( boolean_expression, binary_generic_expression ); + END_ENTITY; + + ENTITY binary_function_call + ABSTRACT SUPERTYPE + SUBTYPE OF ( binary_numeric_expression ); + END_ENTITY; + + ENTITY binary_generic_expression + ABSTRACT SUPERTYPE + SUBTYPE OF ( generic_expression ); + operands : LIST [2 : 2] OF generic_expression; + END_ENTITY; + + ENTITY binary_literal + SUBTYPE OF ( generic_literal ); + lit_value : BINARY; + END_ENTITY; + + ENTITY binary_numeric_expression + ABSTRACT SUPERTYPE OF ( + ONEOF ( + minus_expression, + div_expression, + mod_expression, + slash_expression, + power_expression, + binary_function_call ) ) + 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 blind_passage_template + SUBTYPE OF ( unsupported_passage_template ); + END_ENTITY; + + ENTITY blind_via + ABSTRACT SUPERTYPE OF ( + ONEOF ( + non_conductive_base_blind_via, + plated_conductive_base_blind_via ) ) + SUBTYPE OF ( via ); + 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_defined_function + ABSTRACT SUPERTYPE + SUBTYPE OF ( defined_function, boolean_expression ); + END_ENTITY; + + ENTITY boolean_expression + ABSTRACT SUPERTYPE OF ( + ONEOF ( + simple_boolean_expression, + unary_boolean_expression, + binary_boolean_expression, + multiple_arity_boolean_expression, + comparison_expression, + interval_expression, + boolean_defined_function ) ) + 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 boolean_result_2d + SUBTYPE OF ( boolean_result ); + SELF\boolean_result.first_operand : boolean_operand_2d; + SELF\boolean_result.second_operand : boolean_operand_2d; + END_ENTITY; + + ENTITY boolean_variable + SUBTYPE OF ( simple_boolean_expression, variable ); + END_ENTITY; + + ENTITY boss + SUBTYPE OF ( feature_definition ); + WHERE + wr1 : ( SELF\characterized_object.description IN [ 'circular', 'complex', 'rectangular'] ); + wr2 : ( SIZEOF( QUERY ( pds <* QUERY ( pd <* USEDIN( SELF, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) + | ( NOT ( SIZEOF( QUERY ( sa_occ <* USEDIN( pds, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) | ( ( sa_occ. + description = 'boss height occurrence' ) AND ( SIZEOF( QUERY ( sdr <* QUERY ( sar <* USEDIN( sa_occ, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.' + + 'RELATED_SHAPE_ASPECT' ) | ( ( sar.description = 'path feature component usage' ) AND ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF( sar ) ) ) ) + | ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PATH_FEATURE_COMPONENT' IN TYPEOF( sdr. + relating_shape_aspect ) ) AND ( sdr.relating_shape_aspect.description = 'linear' ) AND ( sdr.name = 'boss height' ) ) ) ) + = 1 ) ) ) ) = 1 ) ) ) ) = 0 ); + wr3 : ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION.DEFINITION' ) | ( SIZEOF( QUERY ( pdr <* USEDIN( pd, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) + | ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN + TYPEOF( pdr.used_representation ) ) AND ( 1 <= SIZEOF( pdr.used_representation.items ) ) AND ( SIZEOF( pdr. + used_representation.items ) <= 2 ) ) ) ) = 1 ) ) ) = 1 ); + wr4 : ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION.DEFINITION' ) | ( SIZEOF( QUERY ( pdr <* USEDIN( pd, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) + | ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN + TYPEOF( pdr.used_representation ) ) AND ( SIZEOF( QUERY ( srwp_i <* pdr.used_representation.items | ( ( srwp_i. + name = 'orientation' ) OR ( srwp_i.name = 'fillet radius' ) ) ) ) = SIZEOF( pdr.used_representation.items ) ) ) ) ) + = 1 ) ) ) = 1 ); + wr5 : ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) + | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN + TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( + SIZEOF( [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( it ) ) + = 2 ) AND ( it.name = 'fillet radius' ) ) ) ) <= 1 ) ) ) ) = 0 ) ) ) ) = 0 ); + wr6 : ( ( NOT ( SELF\characterized_object.description = 'circular' ) ) OR ( SIZEOF( QUERY ( pds <* QUERY ( pd <* USEDIN( + SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) + | ( NOT ( SIZEOF( QUERY ( sa_occ <* USEDIN( pds, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) | ( ( sa_occ. + description = 'circular profile occurrence' ) AND ( SIZEOF( QUERY ( sdr <* QUERY ( sar <* USEDIN( sa_occ, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.' + + 'RELATED_SHAPE_ASPECT' ) | ( ( sar.description = 'profile usage' ) AND ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF( sar ) ) ) ) + | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CIRCULAR_CLOSED_PROFILE' IN TYPEOF( sdr. + relating_shape_aspect ) ) ) ) = 1 ) ) ) ) = 1 ) ) ) ) = 0 ) ); + wr7 : ( SIZEOF( QUERY ( pds <* QUERY ( pd <* USEDIN( SELF, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) + | ( NOT ( SIZEOF( QUERY ( sa_occ <* USEDIN( pds, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) | ( ( sa_occ. + description = 'top condition occurrence' ) AND ( SIZEOF( QUERY ( fcr <* QUERY ( sar <* USEDIN( sa_occ, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.' + + 'RELATED_SHAPE_ASPECT' ) | ( ( sar.description = 'boss top usage' ) AND ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF( + sar ) ) ) ) | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.BOSS_TOP' IN TYPEOF( fcr. + relating_shape_aspect ) ) ) ) = 1 ) ) ) ) = 1 ) ) ) ) = 0 ); + wr8 : ( ( NOT ( SELF\characterized_object.description = 'circular' ) ) OR ( SIZEOF( QUERY ( pds <* QUERY ( pd <* USEDIN( + SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) + | ( NOT ( SIZEOF( QUERY ( sa_occ <* USEDIN( pds, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) | ( ( sa_occ. + description = 'change in diameter occurrence' ) AND ( SIZEOF( QUERY ( fcr <* QUERY ( sar <* USEDIN( sa_occ, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.' + + 'RELATED_SHAPE_ASPECT' ) | ( ( sar.description = 'taper usage' ) AND ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF( + sar ) ) ) ) | ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.TAPER' IN TYPEOF( fcr. + related_shape_aspect ) ) AND ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.BOSS' IN + TYPEOF( fcr.relating_shape_aspect ) ) ) ) ) = 1 ) ) ) ) <= 1 ) ) ) ) = 0 ) ); + wr9 : ( ( NOT ( SELF\characterized_object.description = 'complex' ) ) OR ( SIZEOF( QUERY ( pds <* QUERY ( pd <* USEDIN( + SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) + | ( NOT ( SIZEOF( QUERY ( sa_occ <* USEDIN( pds, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) | ( ( sa_occ. + description = 'enclosed boundary occurrence' ) AND ( SIZEOF( QUERY ( sdr <* QUERY ( sar <* USEDIN( sa_occ, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.' + + 'RELATED_SHAPE_ASPECT' ) | ( ( sar.description = 'profile usage' ) AND ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF( sar ) ) ) ) + | ( SIZEOF( [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.NGON_CLOSED_PROFILE', + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CLOSED_PATH_PROFILE' ] * TYPEOF( sdr. + relating_shape_aspect ) ) = 1 ) ) ) = 1 ) ) ) ) = 1 ) ) ) ) = 0 ) ); + wr10: ( ( NOT ( SELF\characterized_object.description IN [ 'complex', 'rectangular'] ) ) OR ( SIZEOF( QUERY ( pds <* + QUERY ( pd <* USEDIN( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION.DEFINITION' ) | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) | ( NOT ( SIZEOF( QUERY ( sa_occ <* USEDIN( pds, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) | ( ( sa_occ. + description = 'change in boundary occurrence' ) AND ( SIZEOF( QUERY ( fcr <* QUERY ( sar <* USEDIN( sa_occ, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.' + + 'RELATING_SHAPE_ASPECT' ) | ( ( sar.description = 'taper usage' ) AND ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF( + sar ) ) ) ) | ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.TAPER' IN TYPEOF( fcr. + related_shape_aspect ) ) AND ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.BOSS' IN + TYPEOF( fcr.relating_shape_aspect ) ) AND ( fcr.related_shape_aspect.description IN [ 'angle taper', + 'directed taper' ] ) ) ) ) = 1 ) ) ) ) <= 1 ) ) ) ) = 0 ) ); + wr11: ( ( NOT ( SELF\characterized_object.description = 'rectangular' ) ) OR ( SIZEOF( QUERY ( pds <* QUERY ( pd <* + USEDIN( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) + | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) + | ( NOT ( SIZEOF( QUERY ( sa_occ <* USEDIN( pds, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) | ( ( sa_occ. + description = 'rectangular profile occurrence' ) AND ( SIZEOF( QUERY ( sdr <* QUERY ( sar <* USEDIN( sa_occ, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.' + + 'RELATED_SHAPE_ASPECT' ) | ( ( sar.description = 'profile usage' ) AND ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF( sar ) ) ) ) + | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.RECTANGULAR_CLOSED_PROFILE' IN TYPEOF( sdr + .relating_shape_aspect ) ) ) ) = 1 ) ) ) ) = 1 ) ) ) ) = 0 ) ); + wr12: ( SIZEOF( QUERY ( pdr <* get_property_definition_representations( SELF ) | ( ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PLANAR_SHAPE_REPRESENTATION' IN TYPEOF( pdr. + used_representation ) ) AND ( pdr.used_representation.name = 'maximum feature limit' ) ) ) ) >= 0 ); + END_ENTITY; + + ENTITY boss_top + SUBTYPE OF ( shape_aspect ); + WHERE + wr1: ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.FEATURE_COMPONENT_DEFINITION' IN TYPEOF( SELF. + of_shape.definition ) ); + wr2: ( SELF.description IN [ 'planar', 'complex'] ); + wr3: ( ( NOT ( SELF.description = 'planar' ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( + SIZEOF( QUERY ( pdr <* USEDIN( pd, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.DIRECTION_SHAPE_REPRESENTATION' IN TYPEOF( + pdr.used_representation ) ) ) ) = 1 ) ) ) ) = 0 ) ); + wr4: ( ( NOT ( SELF.description = 'planar' ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( + SIZEOF( QUERY ( pdr <* USEDIN( pd, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LOCATION_SHAPE_REPRESENTATION' IN TYPEOF( pdr + .used_representation ) ) ) ) = 1 ) ) ) ) = 0 ) ); + wr5: ( ( NOT ( SELF.description = 'complex' ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( + SIZEOF( QUERY ( pdr <* USEDIN( pd, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.FACE_SHAPE_REPRESENTATION' IN TYPEOF( pdr. + used_representation ) ) ) ) = 1 ) ) ) ) = 0 ) ); + wr6: ( SIZEOF( QUERY ( fcr <* QUERY ( sar <* USEDIN( SELF, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.' + + 'RELATING_SHAPE_ASPECT' ) | ( ( sar.description = 'boss top usage' ) AND ( sar.name IN [ 'boss height start', + 'boss height end' ] ) AND ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF( sar ) ) ) ) | ( ( fcr.related_shape_aspect.description = + 'top condition occurrence' ) AND ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.BOSS' IN + TYPEOF( fcr.related_shape_aspect.of_shape.definition ) ) AND ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.BOSS_TOP' IN TYPEOF( fcr. + relating_shape_aspect ) ) ) ) ) >= 1 ); + wr7: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( pdr <* USEDIN( pd, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) + | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN + TYPEOF( pdr.used_representation ) ) ) ) <= 1 ) ) ) ) = 0 ); + wr8: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) + | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN + TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( impl_rep.used_representation.items ) = 1 ) ) ) ) = 0 ) ) ) ) + = 0 ); + wr9: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) + | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN + TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( + SIZEOF( [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( it ) ) = + 2 ) AND ( it.name = 'top radius' ) ) ) ) <= 1 ) ) ) ) = 0 ) ) ) ) = 0 ); + END_ENTITY; + + ENTITY bound_parameter_environment + SUBTYPE OF ( environment ); + WHERE + wr1: ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.BOUND_VARIATIONAL_PARAMETER' IN TYPEOF( SELF\ + environment.syntactic_representation ) ) AND ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'INSTANCE_ATTRIBUTE_REFERENCE' IN TYPEOF( SELF\environment.semantics ) ) ); + END_ENTITY; + + ENTITY bound_variational_parameter + SUBTYPE OF ( variational_parameter ); + DERIVE + SELF\variational_parameter.parameter_current_value : maths_value := ?; + WHERE + wr1: ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.BOUND_PARAMETER_ENVIRONMENT' IN TYPEOF( SELF\ + generic_variable.interpretation ) ); + END_ENTITY; + + ENTITY boundary_curve + SUBTYPE OF ( composite_curve_on_surface ); + WHERE + wr1: SELF\composite_curve.closed_curve; + END_ENTITY; + + ENTITY boundary_curve_of_b_spline_or_rectangular_composite_surface + SUBTYPE OF ( founded_item ); + basis_surface : b_spline_or_rectangular_composite_surface_select; + boundary_type : surface_boundary_type; + WHERE + wr1: ( SIZEOF( using_representations( SELF.basis_surface ) * relating_shape_representations_of_extreme_values( SELF ) ) > 0 ); + 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: ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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: ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 ); + SELF\group_assignment.assigned_group : product_definition_element_relationship; + items : SET [1 : 1] OF product_definition_or_breakdown_element_usage; + 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 breakout_footprint_definition + SUBTYPE OF ( generic_footprint_definition ); + END_ENTITY; + + ENTITY breakout_occurrence + SUBTYPE OF ( footprint_occurrence ); + END_ENTITY; + + ENTITY brep_with_voids + SUBTYPE OF ( manifold_solid_brep ); + voids : SET [1 : ?] OF oriented_closed_shell; + END_ENTITY; + + ENTITY buried_via + SUBTYPE OF ( via ); + END_ENTITY; + + ENTITY bus_element_link + SUBTYPE OF ( product_definition, product_definition_relationship ); + UNIQUE + ur1 : SELF\product_definition_relationship.related_product_definition, SELF\product_definition_relationship. + relating_product_definition; + WHERE + wr1: ( SELF\product_definition_relationship.related_product_definition :<>: SELF\product_definition_relationship. + relating_product_definition ); + END_ENTITY; + + ENTITY bus_structural_definition + SUBTYPE OF ( product_definition ); + 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 cable_component + SUBTYPE OF ( physical_component ); + END_ENTITY; + + ENTITY cable_terminal + SUBTYPE OF ( shape_aspect ); + SELF\shape_aspect.of_shape : cable_usage_view; + END_ENTITY; + + ENTITY cable_usage_view + SUBTYPE OF ( physical_unit ); + 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 + SUPERTYPE OF ( + ONEOF ( + camera_image_2d_with_scale, + camera_image_3d_with_scale ) ) + SUBTYPE OF ( mapped_item ); + SELF\mapped_item.mapping_source : camera_usage; + SELF\mapped_item.mapping_target : planar_box; + WHERE + wr1: ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.GEOMETRIC_REPRESENTATION_ITEM' IN TYPEOF( SELF ) ); + END_ENTITY; + + ENTITY camera_image_2d_with_scale + SUBTYPE OF ( camera_image ); + DERIVE + scale : positive_ratio_measure := SELF\mapped_item.mapping_target\planar_extent.size_in_x / SELF\mapped_item. + mapping_source.mapping_origin\camera_model_d2.view_window\planar_extent.size_in_x; + WHERE + wr1: ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CAMERA_MODEL_D2' IN TYPEOF( SELF\mapped_item. + mapping_source.mapping_origin ) ); + wr2: ( aspect_ratio( SELF\mapped_item.mapping_target ) = aspect_ratio( SELF\mapped_item.mapping_source.mapping_origin\ + camera_model_d2.view_window ) ); + wr3: SELF\mapped_item.mapping_source.mapping_origin\camera_model_d2.view_window_clipping; + END_ENTITY; + + 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: ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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: ( ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'AXIS2_PLACEMENT_2D' ) IN TYPEOF( SELF\ + mapped_item.mapping_target\planar_box.placement ) ) AND ( NOT ( ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'AXIS2_PLACEMENT_3D' ) IN TYPEOF( SELF\ + mapped_item.mapping_target\planar_box.placement ) ) ) ); + END_ENTITY; + + ENTITY camera_model + ABSTRACT SUPERTYPE OF ( + ONEOF ( + camera_model_d2, + camera_model_d3 ) ) + SUBTYPE OF ( geometric_representation_item ); + WHERE + wr1: ( ( SIZEOF( USEDIN( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'ITEM_DEFINED_TRANSFORMATION.' + 'TRANSFORM_ITEM_1' ) ) + SIZEOF( USEDIN( SELF, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'REPRESENTATION_MAP.MAPPING_ORIGIN' ) ) ) + > 0 ); + wr2: ( SIZEOF( USEDIN( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'STYLED_ITEM.ITEM' ) ) + = 0 ); + END_ENTITY; + + ENTITY camera_model_d2 + SUBTYPE OF ( camera_model ); + view_window : planar_box; + view_window_clipping : BOOLEAN; + WHERE + wr1: ( SELF\geometric_representation_item.dim = 2 ); + END_ENTITY; + + ENTITY camera_model_d3 + SUBTYPE OF ( camera_model ); + view_reference_system : axis2_placement_3d; + perspective_of_volume : view_volume; + WHERE + wr1: ( 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 ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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: ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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_complex_number_region + SUBTYPE OF ( maths_space, generic_literal ); + real_constraint : real_interval; + imag_constraint : real_interval; + WHERE + wr1: ( min_exists( real_constraint ) OR max_exists( real_constraint ) OR min_exists( imag_constraint ) OR max_exists( + imag_constraint ) ); + 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 ); + WHERE + wr1: ( scl > 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 category_model_parameter + SUBTYPE OF ( model_parameter ); + 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 cdgc_with_dimension + SUBTYPE OF ( curve_distance_geometric_constraint ); + distance_value : non_negative_length_measure; + END_ENTITY; + + ENTITY celsius_temperature_measure_with_unit + SUBTYPE OF ( measure_with_unit ); + WHERE + wr1: ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.THERMODYNAMIC_TEMPERATURE_UNIT' IN TYPEOF( SELF\ + measure_with_unit.unit_component ) ); + END_ENTITY; + + ENTITY centre_of_symmetry + SUBTYPE OF ( derived_shape_aspect ); + 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, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'ROLE_ASSOCIATION.' + + 'ITEM_WITH_ROLE' ) ) <= 1 ); + END_ENTITY; + + ENTITY certification_type; + description : label; + END_ENTITY; + + ENTITY chain_based_geometric_item_specific_usage + SUBTYPE OF ( geometric_item_specific_usage, chain_based_item_identified_representation_usage ); + END_ENTITY; + + ENTITY chain_based_item_identified_representation_usage + SUBTYPE OF ( item_identified_representation_usage ); + nodes : LIST [2 : ?] OF UNIQUE representation; + undirected_link : LIST [1 : ?] OF chained_representation_link; + DERIVE + root : representation := nodes[1]; + SELF\item_identified_representation_usage.used_representation : representation := nodes[HIINDEX( nodes )]; + directed_link : LIST [1 : ?] OF representation_relationship := get_directed_link( nodes, + undirected_link ); + leaf : representation := SELF\item_identified_representation_usage.used_representation; + WHERE + wr1: EXISTS( directed_link ); + END_ENTITY; + + ENTITY chamfer + SUBTYPE OF ( transition_feature ); + WHERE + wr1: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( pdr <* USEDIN( pd, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) + | ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.FACE_SHAPE_REPRESENTATION' IN TYPEOF( pdr + .used_representation ) ) AND ( pdr.used_representation.name = 'chamfer face' ) ) ) ) <= 1 ) ) ) ) = 0 ); + wr2: ( SIZEOF( QUERY ( fcr <* QUERY ( sar <* USEDIN( SELF, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.' + + 'RELATING_SHAPE_ASPECT' ) | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF( sar ) ) ) | ( ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CHAMFER_OFFSET' IN TYPEOF( fcr. + related_shape_aspect ) ) AND ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CHAMFER' IN + TYPEOF( fcr.relating_shape_aspect ) ) AND ( fcr.related_shape_aspect.description = 'first offset' ) ) ) ) = 1 ); + wr3: ( SIZEOF( QUERY ( fcr <* QUERY ( sar <* USEDIN( SELF, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.' + + 'RELATING_SHAPE_ASPECT' ) | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF( sar ) ) ) | ( ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CHAMFER_OFFSET' IN TYPEOF( fcr. + related_shape_aspect ) ) AND ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CHAMFER' IN + TYPEOF( fcr.relating_shape_aspect ) ) AND ( fcr.related_shape_aspect.description = 'second offset' ) ) ) ) = 1 ); + END_ENTITY; + + ENTITY chamfer_offset + SUBTYPE OF ( shape_aspect ); + WHERE + wr1: ( SELF.description IN [ 'first offset', 'second offset'] ); + wr2: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( pdr <* USEDIN( pd, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) + | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN + TYPEOF( pdr.used_representation ) ) ) ) = 1 ) ) ) ) = 0 ); + wr3: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) + | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN + TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( impl_rep.used_representation.items ) = 1 ) ) ) ) = 0 ) ) ) ) + = 0 ); + wr4: ( ( NOT ( SELF.description = 'first offset' ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( + SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) + | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN + TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( + SIZEOF( [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( it ) ) = + 2 ) AND ( it.name = 'offset amount' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ) ); + wr5: ( ( NOT ( SELF.description = 'first offset' ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( + SIZEOF( QUERY ( pdr <* USEDIN( pd, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.FACE_SHAPE_REPRESENTATION' IN TYPEOF( pdr. + used_representation ) ) AND ( pdr.used_representation.name = 'first face shape' ) ) ) ) <= 1 ) ) ) ) = 0 ) ); + wr6: ( ( NOT ( SELF.description = 'second offset' ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( + SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) + | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN + TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( ( + SIZEOF( [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( it ) ) = + 2 ) AND ( it.name = 'offset amount' ) ) OR ( ( SIZEOF( [ + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM' , + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PLANE_ANGLE_MEASURE_WITH_UNIT' ] * TYPEOF( it ) ) + = 2 ) AND ( it.name = 'offset angle' ) ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ) ); + wr7: ( ( NOT ( SELF.description = 'second offset' ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( + SIZEOF( QUERY ( pdr <* USEDIN( pd, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.FACE_SHAPE_REPRESENTATION' IN TYPEOF( pdr. + used_representation ) ) AND ( pdr.used_representation.name = 'second face shape' ) ) ) ) <= 1 ) ) ) ) = 0 ) ); + wr8: ( SIZEOF( QUERY ( sdr <* QUERY ( sar <* USEDIN( SELF, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT' ) + | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF( + sar ) ) ) | ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CHAMFER' IN TYPEOF( sdr. + relating_shape_aspect ) ) AND ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CHAMFER_OFFSET' + IN TYPEOF( sdr.related_shape_aspect ) ) ) ) ) = 1 ); + END_ENTITY; + + ENTITY change + SUBTYPE OF ( action_assignment ); + items : SET [1 : ?] OF work_item; + END_ENTITY; + + ENTITY change_composition_relationship + SUBTYPE OF ( group_relationship ); + SELF\group_relationship.relating_group : change_group; + SELF\group_relationship.related_group : change_element; + DERIVE + composition : change_group := SELF\group_relationship.relating_group; + element : change_element := SELF\group_relationship.related_group; + END_ENTITY; + + ENTITY change_element + ABSTRACT SUPERTYPE OF ( + ONEOF ( + modify_element, + delete_element, + add_element ) ) + SUBTYPE OF ( group, characterized_object ); + END_ENTITY; + + ENTITY change_element_sequence + SUBTYPE OF ( group_relationship ); + SELF\group_relationship.relating_group : change_element; + SELF\group_relationship.related_group : change_element; + DERIVE + next : change_element := SELF\group_relationship.related_group; + previous : change_element := SELF\group_relationship.relating_group; + END_ENTITY; + + ENTITY change_group + SUBTYPE OF ( group ); + END_ENTITY; + + ENTITY change_group_assignment + SUBTYPE OF ( group_assignment ); + SELF\group_assignment.assigned_group : change_group; + item : change_relationship_select; + 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 <= baseline_ratio ) AND ( baseline_ratio <= 1 ) ); + wr2: item_in_context( SELF.character_box, SELF\representation.context_of_items ); + wr3: ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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_chain_based_item_within_representation + SUBTYPE OF ( characterized_item_within_representation ); + nodes : LIST [2 : ?] OF UNIQUE representation; + undirected_link : LIST [1 : ?] OF chained_representation_link; + DERIVE + root : representation := nodes[1]; + SELF\characterized_item_within_representation.rep : representation := nodes[HIINDEX( nodes )]; + directed_link : LIST [1 : ?] OF representation_relationship := get_directed_link( nodes, + undirected_link ); + leaf : representation := SELF\characterized_item_within_representation.rep; + WHERE + wr1: EXISTS( directed_link ); + END_ENTITY; + + ENTITY characterized_class + SUBTYPE OF ( characterized_object, class ); + END_ENTITY; + + ENTITY characterized_item_within_representation + SUBTYPE OF ( characterized_object ); + item : representation_item; + rep : representation; + UNIQUE + wr1 : item, rep; + WHERE + wr2: ( rep IN using_representations( item ) ); + END_ENTITY; + + ENTITY characterized_object; + name : label; + description : OPTIONAL text; + END_ENTITY; + + ENTITY characterized_representation + SUBTYPE OF ( representation, characterized_object ); + DERIVE + SELF\characterized_object.name : label := SELF\representation.name; + SELF\characterized_object.description : text := SELF\representation.description; + END_ENTITY; + + ENTITY circle + SUBTYPE OF ( conic ); + radius : positive_length_measure; + END_ENTITY; + + ENTITY circular_area + SUBTYPE OF ( primitive_2d ); + centre : cartesian_point; + radius : positive_length_measure; + END_ENTITY; + + ENTITY circular_closed_profile + SUBTYPE OF ( shape_aspect ); + WHERE + wr1: ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.FEATURE_COMPONENT_DEFINITION' IN TYPEOF( SELF. + of_shape.definition ) ); + wr2: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( pdr <* USEDIN( pd, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) + | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN + TYPEOF( pdr.used_representation ) ) ) ) = 1 ) ) ) ) = 0 ); + wr3: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) + | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN + TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( impl_rep.used_representation.items ) = 2 ) ) ) ) = 0 ) ) ) ) + = 0 ); + wr4: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) + | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN + TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PLACEMENT' IN TYPEOF( it ) ) AND ( it.name = + 'orientation' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ); + wr5: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) + | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN + TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( + SIZEOF( [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( it ) ) = + 2 ) AND ( it.name = 'diameter' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ); + END_ENTITY; + + ENTITY circular_path + SUBTYPE OF ( path_node ); + via_point : cartesian_point; + END_ENTITY; + + ENTITY circular_pattern + SUBTYPE OF ( replicate_feature ); + WHERE + wr1: ( SIZEOF( QUERY ( pds <* QUERY ( pd <* USEDIN( SELF, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) + | ( NOT ( SIZEOF( QUERY ( sa_occ <* USEDIN( pds, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) | ( SIZEOF( + QUERY ( sdr <* QUERY ( sar <* USEDIN( sa_occ, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'SHAPE_ASPECT_RELATIONSHIP.' + 'RELATING_SHAPE_ASPECT' ) | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF( + sar ) ) ) | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT' IN TYPEOF( sdr. + related_shape_aspect ) ) ) ) = 1 ) ) ) <= 3 ) ) ) ) = 0 ); + wr2: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( pdr <* USEDIN( pd, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) + | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN + TYPEOF( pdr.used_representation ) ) ) ) = 1 ) ) ) ) = 0 ); + wr3: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) + | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN + TYPEOF( pdr.used_representation ) ) ) | ( NOT ( ( SIZEOF( impl_rep.used_representation.items ) >= 3 ) AND ( + SIZEOF( impl_rep.used_representation.items ) <= 5 ) ) ) ) ) = 0 ) ) ) ) = 0 ); + wr4: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) + | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN + TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( + SIZEOF( [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( it ) ) = + 2 ) AND ( it.name = 'diameter' ) ) ) ) <= 1 ) ) ) ) = 0 ) ) ) ) = 0 ); + wr5: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) + | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN + TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( + SIZEOF( [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PLANE_ANGLE_MEASURE_WITH_UNIT' ] * TYPEOF( it ) ) + = 2 ) AND ( it.name = 'base feature rotation' ) ) ) ) <= 1 ) ) ) ) = 0 ) ) ) ) = 0 ); + wr6: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) + | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN + TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM' IN TYPEOF( it ) ) + AND ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.COUNT_MEASURE' IN TYPEOF( it\ + measure_with_unit.value_component ) ) AND ( it.name = 'number of features' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ); + wr7: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) + | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN + TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( + SIZEOF( [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PLANE_ANGLE_MEASURE_WITH_UNIT' ] * TYPEOF( it ) ) + = 2 ) AND ( it.name = 'angular spacing' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ); + wr8: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) + | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN + TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PLACEMENT' IN TYPEOF( it ) ) AND ( it.name = + 'orientation' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ); + END_ENTITY; + + ENTITY circular_runout_tolerance + SUBTYPE OF ( geometric_tolerance_with_datum_reference ); + 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 ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PRODUCT_DEFINITION' IN TYPEOF( i ) ) ) ) ) = 0 ); + wr3: ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 clgc_with_dimension + SUBTYPE OF ( curve_length_geometric_constraint ); + length_value : positive_length_measure; + END_ENTITY; + + ENTITY closed_curve_style_parameters + SUBTYPE OF ( curve_style_parameters_representation ); + END_ENTITY; + + ENTITY closed_path_profile + SUBTYPE OF ( shape_aspect ); + WHERE + wr1: ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.FEATURE_COMPONENT_DEFINITION' IN TYPEOF( SELF. + of_shape.definition ) ); + wr2: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( pdr <* USEDIN( pd, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) + | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN + TYPEOF( pdr.used_representation ) ) ) ) = 1 ) ) ) ) = 0 ); + wr3: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) + | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN + TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( impl_rep.used_representation.items ) = 1 ) ) ) ) = 0 ) ) ) ) + = 0 ); + wr4: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) + | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN + TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PLACEMENT' IN TYPEOF( it ) ) AND ( it.name = + 'orientation' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ); + wr5: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( pdr <* USEDIN( pd, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) + | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PATH_SHAPE_REPRESENTATION' IN TYPEOF( pdr. + used_representation ) ) ) ) = 1 ) ) ) ) = 0 ); + END_ENTITY; + + ENTITY closed_shell + SUBTYPE OF ( connected_face_set ); + END_ENTITY; + + ENTITY coaxial_assembly_constraint + SUBTYPE OF ( binary_assembly_constraint, coaxial_geometric_constraint ); + END_ENTITY; + + ENTITY coaxial_geometric_constraint + SUBTYPE OF ( explicit_geometric_constraint ); + SELF\explicit_constraint.constrained_elements : SET [1 : ?] OF axial_geometry_constraint_element; + SELF\explicit_constraint.reference_elements : SET [0 : 1] OF axial_geometry_constraint_element; + WHERE + wr1: ( SIZEOF( QUERY ( q <* SELF\explicit_constraint.reference_elements | ( SIZEOF( TYPEOF( q ) * [ + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.POINT' , + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PLANE' , + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SPHERICAL_SURFACE' , + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SPHERE' ] ) > 0 ) ) ) = 0 ); + END_ENTITY; + + ENTITY coaxiality_tolerance + SUBTYPE OF ( geometric_tolerance_with_datum_reference ); + END_ENTITY; + + ENTITY colour; + END_ENTITY; + + ENTITY colour_rgb + SUBTYPE OF ( colour_specification ); + red : REAL; + green : REAL; + blue : REAL; + WHERE + wr1: ( ( 0 <= red ) AND ( red <= 1 ) ); + wr2: ( ( 0 <= green ) AND ( green <= 1 ) ); + wr3: ( ( 0 <= blue ) AND ( blue <= 1 ) ); + END_ENTITY; + + 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 ( ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.DATUM' IN TYPEOF( sar.related_shape_aspect ) ) + AND ( NOT ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.COMMON_DATUM' IN TYPEOF( sar. + related_shape_aspect ) ) ) ) ) ) ) = 0 ); + END_ENTITY; + + ENTITY comparison_equal + SUBTYPE OF ( comparison_expression ); + END_ENTITY; + + ENTITY comparison_expression + ABSTRACT SUPERTYPE OF ( + ONEOF ( + comparison_equal, + comparison_greater, + comparison_greater_equal, + comparison_less, + comparison_less_equal, + comparison_not_equal, + like_expression ) ) + SUBTYPE OF ( boolean_expression, binary_generic_expression ); + SELF\binary_generic_expression.operands : LIST [2 : 2] OF expression; + WHERE + wr1: ( ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.NUMERIC_EXPRESSION' IN TYPEOF( SELF\ + binary_generic_expression.operands[1] ) ) AND ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'NUMERIC_EXPRESSION' IN TYPEOF( SELF\binary_generic_expression.operands[2] ) ) ) OR ( ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.BOOLEAN_EXPRESSION' IN TYPEOF( SELF\ + binary_generic_expression.operands[1] ) ) AND ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'BOOLEAN_EXPRESSION' IN TYPEOF( SELF\binary_generic_expression.operands[2] ) ) ) OR ( ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.STRING_EXPRESSION' IN TYPEOF( SELF\ + binary_generic_expression.operands[1] ) ) AND ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'STRING_EXPRESSION' IN TYPEOF( SELF\binary_generic_expression.operands[2] ) ) ) ); + END_ENTITY; + + ENTITY comparison_greater + SUBTYPE OF ( comparison_expression ); + END_ENTITY; + + ENTITY comparison_greater_equal + SUBTYPE OF ( comparison_expression ); + END_ENTITY; + + ENTITY comparison_less + SUBTYPE OF ( comparison_expression ); + END_ENTITY; + + ENTITY comparison_less_equal + SUBTYPE OF ( comparison_expression ); + END_ENTITY; + + ENTITY comparison_not_equal + SUBTYPE OF ( comparison_expression ); + END_ENTITY; + + ENTITY complex_area + ABSTRACT SUPERTYPE OF ( + path_area_with_parameters + ANDOR + primitive_2d_with_inner_boundary ) + SUBTYPE OF ( primitive_2d ); + 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_number_literal + SUBTYPE OF ( generic_literal ); + real_part : REAL; + imag_part : REAL; + END_ENTITY; + + ENTITY complex_number_literal_polar + SUBTYPE OF ( complex_number_literal ); + modulus : REAL; + argument : REAL; + DERIVE + SELF\complex_number_literal.real_part : REAL := modulus * COS( argument ); + SELF\complex_number_literal.imag_part : REAL := modulus * SIN( argument ); + WHERE + wr1: ( modulus >= 0 ); + wr2: ( ( 0 <= argument ) AND ( argument <= ( 2 * PI ) ) ); + END_ENTITY; + + ENTITY complex_passage_padstack_definition + SUBTYPE OF ( stratum_stack_dependent_template, passage_padstack_definition ); + 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 complex_triangulated_face + SUBTYPE OF ( tessellated_face ); + pnindex : LIST [0 : ?] OF INTEGER; + triangle_strips : LIST [0 : ?] OF LIST [3 : ?] OF INTEGER; + triangle_fans : LIST [0 : ?] OF LIST [3 : ?] OF INTEGER; + WHERE + wr1: ( ( SIZEOF( pnindex ) = 0 ) OR ( SIZEOF( pnindex ) = SELF\tessellated_face.pnmax ) ); + wr2: ( NOT ( ( SIZEOF( pnindex ) = 0 ) AND ( SELF\tessellated_face.pnmax <> coordinates.npoints ) ) ); + wr3: ( NOT ( ( SIZEOF( triangle_strips ) = 0 ) AND ( SIZEOF( triangle_fans ) = 0 ) ) ); + END_ENTITY; + + ENTITY complex_triangulated_surface_set + SUBTYPE OF ( tessellated_surface_set ); + pnindex : LIST [0 : ?] OF INTEGER; + triangle_strips : LIST [0 : ?] OF LIST [3 : ?] OF INTEGER; + triangle_fans : LIST [0 : ?] OF LIST [3 : ?] OF INTEGER; + WHERE + wr1: ( ( SIZEOF( pnindex ) = 0 ) OR ( SIZEOF( pnindex ) = SELF\tessellated_surface_set.pnmax ) ); + wr2: ( NOT ( ( SIZEOF( pnindex ) = 0 ) AND ( SELF\tessellated_surface_set.pnmax <> coordinates.npoints ) ) ); + wr3: ( NOT ( ( SIZEOF( triangle_strips ) = 0 ) AND ( SIZEOF( triangle_fans ) = 0 ) ) ); + END_ENTITY; + + ENTITY component_2d_location + SUBTYPE OF ( context_dependent_shape_representation, shape_representation_relationship, + representation_relationship_with_transformation, definitional_representation_relationship ); + DERIVE + SELF\context_dependent_shape_representation.representation_relation : component_2d_location := SELF; + WHERE + wr1: ( SELF\representation_relationship.name = 'component 2d location' ); + END_ENTITY; + + ENTITY component_3d_location + SUBTYPE OF ( context_dependent_shape_representation, shape_representation_relationship, + representation_relationship_with_transformation, definitional_representation_relationship ); + DERIVE + SELF\context_dependent_shape_representation.representation_relation : component_3d_location := SELF; + WHERE + wr1: ( SELF\representation_relationship.name = 'component 3d location' ); + END_ENTITY; + + ENTITY component_definition + SUBTYPE OF ( product_definition, product_definition_relationship ); + DERIVE + SELF\product_definition_relationship.related_product_definition : component_definition := SELF; + WHERE + wr1: ( NOT EXISTS( SELF\product_definition_relationship.description ) ); + wr2: ( NOT EXISTS( SELF\property_definition.description ) ); + wr3: ( SELF\product_definition_relationship.id = SELF\product_definition.id ); + wr4: ( SELF\product_definition_relationship.name = 'definition usage' ); + wr5: ( NOT ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'PRODUCT_DEFINITION_USAGE' ) IN + TYPEOF( SELF ) ) ); + END_ENTITY; + + ENTITY component_feature + SUPERTYPE OF ( + ONEOF ( + physical_component_feature, + laminate_component_feature ) ) + SUBTYPE OF ( shape_aspect ); + SELF\shape_aspect.of_shape : assembly_component; + END_ENTITY; + + ENTITY component_feature_joint + SUBTYPE OF ( shape_aspect_relationship, shape_aspect ); + SELF\shape_aspect_relationship.relating_shape_aspect : component_feature; + SELF\shape_aspect_relationship.related_shape_aspect : component_feature; + END_ENTITY; + + ENTITY component_feature_relationship + SUBTYPE OF ( shape_aspect_relationship ); + SELF\shape_aspect_relationship.relating_shape_aspect : component_feature; + SELF\shape_aspect_relationship.related_shape_aspect : component_feature; + WHERE + wr1: ( SELF\shape_aspect_relationship.related_shape_aspect :<>: SELF\shape_aspect_relationship.relating_shape_aspect ); + END_ENTITY; + + ENTITY component_functional_terminal + SUBTYPE OF ( shape_aspect ); + END_ENTITY; + + ENTITY component_functional_unit + SUBTYPE OF ( product_definition ); + END_ENTITY; + + ENTITY component_material_relationship + SUBTYPE OF ( group, property_definition ); + SELF\property_definition.definition : physical_unit; + END_ENTITY; + + ENTITY component_material_relationship_assignment + SUBTYPE OF ( group_assignment, role_association ); + SELF\group_assignment.assigned_group : component_material_relationship; + items : SET [1 : 1] OF component_material_relationship_assignment_item; + DERIVE + SELF\role_association.item_with_role : component_material_relationship_assignment := SELF; + END_ENTITY; + + ENTITY component_mating_constraint_condition + SUBTYPE OF ( shape_aspect ); + UNIQUE + ur1 : SELF\shape_aspect.name, SELF\shape_aspect.of_shape; + END_ENTITY; + + ENTITY component_mounting_feature + SUBTYPE OF ( physical_component_feature ); + END_ENTITY; + + ENTITY component_part_2d_non_planar_geometric_representation_relationship + SUBTYPE OF ( shape_representation_relationship, representation_relationship_with_transformation ); + END_ENTITY; + + ENTITY component_path_shape_aspect + SUBTYPE OF ( shape_aspect ); + location : multi_or_next_assembly_usage_occurrence; + component_shape_aspect : internal_or_reflected_shape_aspect; + UNIQUE + ur1 : location, component_shape_aspect; + END_ENTITY; + + ENTITY component_terminal + SUPERTYPE OF ( + ONEOF ( + physical_component_terminal, + laminate_component_join_terminal ) ) + SUBTYPE OF ( component_feature ); + END_ENTITY; + + ENTITY component_termination_passage + SUBTYPE OF ( plated_passage ); + END_ENTITY; + + ENTITY component_termination_passage_template + SUBTYPE OF ( continuous_template, inter_stratum_feature_template ); + END_ENTITY; + + ENTITY composite_array_shape_aspect + SUPERTYPE OF ( + ONEOF ( + linear_composite_array_shape_aspect, + rectangular_composite_array_shape_aspect ) ) + SUBTYPE OF ( composite_shape_aspect ); + END_ENTITY; + + ENTITY composite_array_shape_aspect_link + SUBTYPE OF ( shape_aspect, shape_aspect_relationship ); + WHERE + wr1: ( SELF\shape_aspect_relationship.related_shape_aspect :<>: SELF\shape_aspect_relationship.relating_shape_aspect ); + END_ENTITY; + + ENTITY composite_assembly_sequence_definition + SUBTYPE OF ( product_definition ); + WHERE + wr1: ( SIZEOF( QUERY ( pdr <* USEDIN( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PRODUCT_DEFINITION_RELATIONSHIP.' + 'RELATING_PRODUCT_DEFINITION' ) | ( ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 + n_segments : INTEGER := SIZEOF( segments ); + closed_curve : LOGICAL := segments[n_segments].transition <> discontinuous; + WHERE + wr1: ( ( ( NOT closed_curve ) AND ( SIZEOF( QUERY ( temp <* segments | ( temp.transition = discontinuous ) ) ) = 1 ) ) OR + ( closed_curve AND ( SIZEOF( QUERY ( temp <* segments | ( temp.transition = discontinuous ) ) ) = 0 ) ) ); + END_ENTITY; + + ENTITY composite_curve_on_surface + SUPERTYPE OF ( + boundary_curve ) + SUBTYPE OF ( composite_curve ); + DERIVE + basis_surface : SET [0 : 2] OF surface := get_basis_surface( SELF ); + WHERE + wr1: ( SIZEOF( basis_surface ) > 0 ); + wr2: constraints_composite_curve_on_surface( SELF ); + END_ENTITY; + + ENTITY composite_curve_segment + SUBTYPE OF ( founded_item ); + transition : transition_code; + same_sense : BOOLEAN; + parent_curve : curve; + INVERSE + using_curves : BAG [1 : ?] OF composite_curve FOR segments; + WHERE + wr1: ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.BOUNDED_CURVE' IN TYPEOF( parent_curve ) ); + END_ENTITY; + + ENTITY composite_curve_transition_locator + SUBTYPE OF ( founded_item ); + basis_curve : composite_curve; + transition_index : INTEGER; + WHERE + wr1: ( SIZEOF( using_representations( SELF.basis_curve ) * relating_shape_representations_of_extreme_values( SELF ) ) > 0 ); + END_ENTITY; + + ENTITY composite_group_shape_aspect + SUBTYPE OF ( composite_shape_aspect ); + END_ENTITY; + + ENTITY composite_hole + SUBTYPE OF ( compound_feature ); + WHERE + wr1: ( SELF\characterized_object.description IN [ 'counterbore', 'countersunk'] ); + wr2: ( SIZEOF( QUERY ( pds <* USEDIN( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION.DEFINITION' ) | ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pds ) ) AND ( SIZEOF( QUERY ( csa <* USEDIN( pds, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) | ( ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.COMPOSITE_SHAPE_ASPECT' IN TYPEOF( csa ) ) + AND ( SIZEOF( QUERY ( sar <* csa.component_relationships | ( ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF( + sar ) ) AND ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.ROUND_HOLE' IN TYPEOF( sar. + related_shape_aspect ) ) ) ) ) = 2 ) ) ) ) = 1 ) ) ) ) = 1 ); + wr3: ( ( NOT ( SELF\characterized_object.description = 'countersunk' ) ) OR ( SIZEOF( QUERY ( pds <* USEDIN( SELF, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pds ) ) + AND ( SIZEOF( QUERY ( csa <* USEDIN( pds, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'SHAPE_ASPECT.OF_SHAPE' ) | ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'COMPOSITE_SHAPE_ASPECT' IN TYPEOF( csa ) ) AND ( SIZEOF( QUERY ( sar <* csa.component_relationships | ( ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.ROUND_HOLE' IN TYPEOF( sar. + related_shape_aspect ) ) AND ( NOT ( SIZEOF( QUERY ( pds <* QUERY ( pd <* USEDIN( sar.related_shape_aspect, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) + | ( NOT ( SIZEOF( QUERY ( sa_occ <* USEDIN( pds, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) | ( ( sa_occ. + description = 'change in diameter occurrence' ) AND ( SIZEOF( QUERY ( fcr2 <* QUERY ( sar2 <* USEDIN( sa_occ, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.' + + 'RELATING_SHAPE_ASPECT' ) | ( ( sar2.description = 'taper usage' ) AND ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF( + sar2 ) ) ) ) | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.TAPER' IN TYPEOF( fcr2. + related_shape_aspect ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ) ) ) ) ) = 1 ) ) ) ) = 1 ) ) ) ) = 1 ) ); + END_ENTITY; + + ENTITY composite_material_designation + SUBTYPE OF ( material_designation ); + END_ENTITY; + + ENTITY composite_shape_aspect + SUPERTYPE OF ( + ONEOF ( + continuous_shape_aspect, + common_datum, + composite_group_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( [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'GEOMETRICALLY_BOUNDED_SURFACE_SHAPE_REPRESENTATION' , + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'MANIFOLD_SURFACE_SHAPE_REPRESENTATION'] + * TYPEOF( SELF ) ) = 1 ); + END_ENTITY; + + ENTITY composite_signal_property_relationship + SUBTYPE OF ( property_definition, property_definition_relationship ); + WHERE + wr1: ( SELF\property_definition_relationship.related_property_definition.definition :<>: SELF\ + property_definition_relationship.relating_property_definition.definition ); + 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 composite_unit_shape_aspect + SUBTYPE OF ( composite_shape_aspect ); + END_ENTITY; + + ENTITY compound_feature + SUBTYPE OF ( feature_definition ); + WHERE + wr1: ( SIZEOF( QUERY ( pds <* USEDIN( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION.DEFINITION' ) | ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pds ) ) AND ( SIZEOF( QUERY ( csa <* USEDIN( pds, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) | ( ( csa.name = + 'compound feature in solid' ) AND ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'COMPOSITE_SHAPE_ASPECT' IN TYPEOF( csa ) ) ) ) ) = 1 ) ) ) ) = 1 ); + wr2: ( SIZEOF( QUERY ( pds <* USEDIN( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION.DEFINITION' ) | ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pds ) ) AND ( SIZEOF( QUERY ( csa <* USEDIN( pds, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.COMPOSITE_SHAPE_ASPECT' IN TYPEOF( csa ) ) ) ) + = 1 ) ) ) ) = 1 ); + wr3: ( SIZEOF( QUERY ( pds <* USEDIN( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION.DEFINITION' ) | ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pds ) ) AND ( SIZEOF( QUERY ( csa <* USEDIN( pds, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) | ( ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.COMPOSITE_SHAPE_ASPECT' IN TYPEOF( csa ) ) + AND ( SIZEOF( QUERY ( fcr <* csa.component_relationships | ( NOT ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF( + fcr ) ) ) ) ) = 0 ) ) ) ) = 1 ) ) ) ) = 1 ); + wr4: ( SIZEOF( QUERY ( pds <* USEDIN( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION.DEFINITION' ) | ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pds ) ) AND ( SIZEOF( QUERY ( csa <* USEDIN( pds, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.COMPOSITE_SHAPE_ASPECT' IN TYPEOF( csa ) ) ) ) + = 1 ) ) ) ) = 1 ); + wr5: ( SIZEOF( QUERY ( pds <* USEDIN( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION.DEFINITION' ) | ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pds ) ) AND ( SIZEOF( QUERY ( csa <* USEDIN( pds, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) | ( ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.COMPOSITE_SHAPE_ASPECT' IN TYPEOF( csa ) ) + AND ( SIZEOF( QUERY ( sar <* csa.component_relationships | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.THREAD' IN TYPEOF( sar.related_shape_aspect ) ) ) ) + = 0 ) ) ) ) = 1 ) ) ) ) = 1 ); + wr6: ( SIZEOF( QUERY ( pds <* USEDIN( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION.DEFINITION' ) | ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pds ) ) AND ( SIZEOF( QUERY ( csa <* USEDIN( pds, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) | ( ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.COMPOSITE_SHAPE_ASPECT' IN TYPEOF( csa ) ) + AND ( SIZEOF( QUERY ( sar <* csa.component_relationships | ( ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.COMPOUND_FEATURE' IN TYPEOF( sar. + related_shape_aspect ) ) AND ( sar.related_shape_aspect\characterized_object.name <> SELF\characterized_object.name ) ) ) ) + = 0 ) ) ) ) = 1 ) ) ) ) = 1 ); + END_ENTITY; + + ENTITY compound_representation_item + SUPERTYPE OF ( + ONEOF ( + point_and_vector, + point_path ) + ANDOR + ONEOF ( + 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: ( ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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( [ + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'EDGE_BASED_WIREFRAME_MODEL', + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'FACE_BASED_SURFACE_MODEL', + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'MAPPED_ITEM', + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'AXIS2_PLACEMENT_3D'] * TYPEOF( cbsr_i ) ) + <> 1 ) ) ) = 0 ); + wr3: ( SIZEOF( QUERY ( cbsr_i <* SELF.items | ( SIZEOF( [ + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'EDGE_BASED_WIREFRAME_MODEL', + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'FACE_BASED_SURFACE_MODEL', + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'MAPPED_ITEM'] * TYPEOF( cbsr_i ) ) = 1 ) ) ) + > 0 ); + wr4: ( SIZEOF( QUERY ( cbsr_i <* SELF.items | ( ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'MAPPED_ITEM' ) IN TYPEOF( cbsr_i ) ) AND ( SIZEOF( [ + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'COMPOUND_SHAPE_REPRESENTATION', + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'EDGE_BASED_WIREFRAME_SHAPE_REPRESENTATION' , + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'NON_MANIFOLD_SURFACE_SHAPE_REPRESENTATION' ] + * TYPEOF( cbsr_i\mapped_item.mapping_source ) ) <> 1 ) ) ) ) = 0 ); + END_ENTITY; + + ENTITY concat_expression + SUBTYPE OF ( string_expression, multiple_arity_generic_expression ); + SELF\multiple_arity_generic_expression.operands : LIST [2 : ?] OF string_expression; + END_ENTITY; + + ENTITY concentricity_tolerance + SUBTYPE OF ( geometric_tolerance_with_datum_reference ); + 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: ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 conductive_interconnect_element + ABSTRACT SUPERTYPE OF ( + ONEOF ( + unrouted_conductive_interconnect_element, + conductive_interconnect_element_with_pre_defined_transitions ) ) + SUBTYPE OF ( stratum_feature_template_component ); + END_ENTITY; + + ENTITY conductive_interconnect_element_terminal_link + SUBTYPE OF ( shape_aspect, shape_aspect_relationship ); + SELF\shape_aspect_relationship.relating_shape_aspect : laminate_component_feature; + SELF\shape_aspect_relationship.related_shape_aspect : laminate_component_feature; + WHERE + wr1: ( SELF\shape_aspect_relationship.related_shape_aspect :<>: SELF\shape_aspect_relationship.relating_shape_aspect ); + END_ENTITY; + + ENTITY conductive_interconnect_element_with_pre_defined_transitions + SUBTYPE OF ( conductive_interconnect_element, item_identified_representation_usage ); + DERIVE + SELF\item_identified_representation_usage.definition : property_definition := SELF; + 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 + name : label := get_name_value( SELF ); + description : text := get_description_value( SELF ); + UNIQUE + ur1 : configuration, design; + WHERE + wr1: ( SIZEOF( USEDIN( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'NAME_ATTRIBUTE.' + + 'NAMED_ITEM' ) ) <= 1 ); + wr2: ( SIZEOF( USEDIN( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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: ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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( [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 | ( ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 | ( ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'EFFECTIVITY_CONTEXT_ASSIGNMENT.ASSIGNED_EFFECTIVITY_ASSIGNMENT' ) | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CONFIGURED_EFFECTIVITY_CONTEXT_ASSIGNMENT' IN + TYPEOF( x ) ) ) ) = 1 ); + END_ENTITY; + + ENTITY configured_effectivity_context_assignment + SUBTYPE OF ( effectivity_context_assignment ); + SELF\effectivity_context_assignment.assigned_effectivity_assignment : configured_effectivity_assignment; + items : SET [1 : ?] OF configured_effectivity_context_item; + 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 ); + END_ENTITY; + + ENTITY connected_area_component + SUBTYPE OF ( area_component ); + 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 connection_zone_based_assembly_joint + SUBTYPE OF ( assembly_joint ); + END_ENTITY; + + ENTITY connection_zone_based_fabrication_joint + SUBTYPE OF ( fabrication_joint ); + END_ENTITY; + + ENTITY connection_zone_interface_plane_relationship + SUBTYPE OF ( shape_aspect, shape_aspect_relationship ); + UNIQUE + ur1 : SELF\shape_aspect_relationship.name; + END_ENTITY; + + ENTITY connection_zone_map_identification + SUBTYPE OF ( shape_aspect, representation_relationship ); + SELF\representation_relationship.rep_1 : usage_view_connection_zone_terminal_shape_relationship; + SELF\representation_relationship.rep_2 : usage_view_connection_zone_terminal_shape_relationship; + WHERE + wr1: ( SELF\representation_relationship.rep_2 :<>: SELF\representation_relationship.rep_1 ); + END_ENTITY; + + ENTITY connector_based_interconnect_definition + SUBTYPE OF ( property_definition ); + SELF\property_definition.definition : physical_unit_interconnect_definition; + UNIQUE + ur1 : SELF\property_definition.name, SELF\property_definition.definition; + END_ENTITY; + + ENTITY constant_function + SUBTYPE OF ( maths_function, generic_literal ); + sole_output : maths_value; + source_of_domain : maths_space_or_function; + WHERE + wr1: no_cyclic_domain_reference( source_of_domain, [SELF] ); + wr2: expression_is_constant( domain_from( source_of_domain ) ); + END_ENTITY; + + ENTITY constrained_kinematic_motion_representation + SUBTYPE OF ( representation_relationship_with_transformation ); + SELF\representation_relationship.rep_1 : representative_shape_representation; + SELF\representation_relationship.rep_2 : representative_shape_representation; + WHERE + wr1: ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.AXIS2_PLACEMENT_3D' IN TYPEOF( SELF\ + representation_relationship_with_transformation.transformation_operator\item_defined_transformation. + transform_item_1 ) ) AND ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.AXIS2_PLACEMENT_3D' + IN TYPEOF( SELF\representation_relationship_with_transformation.transformation_operator\item_defined_transformation + .transform_item_2 ) ) ); + wr2: ( ( dimension_of( SELF\representation_relationship_with_transformation.transformation_operator\ + item_defined_transformation.transform_item_1 ) = 3 ) AND ( dimension_of( SELF\ + representation_relationship_with_transformation.transformation_operator\item_defined_transformation. + transform_item_2 ) = 3 ) ); + wr3: ( ( SELF\representation_relationship.rep_1 IN ( using_representations( SELF\ + representation_relationship_with_transformation.transformation_operator\item_defined_transformation. + transform_item_1 ) + using_representation_with_mapping( SELF\representation_relationship_with_transformation. + transformation_operator\item_defined_transformation.transform_item_1 ) ) ) AND ( SELF\representation_relationship. + rep_2 IN ( using_representations( SELF\representation_relationship_with_transformation.transformation_operator\ + item_defined_transformation.transform_item_2 ) + using_representation_with_mapping( SELF\ + representation_relationship_with_transformation.transformation_operator\item_defined_transformation. + transform_item_2 ) ) ) ); + wr4: ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.KINEMATIC_PAIR' IN TYPEOF( SELF\ + representation_relationship_with_transformation.transformation_operator ) ); + END_ENTITY; + + ENTITY constructive_geometry_representation + SUBTYPE OF ( representation ); + WHERE + wr1: ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.GEOMETRIC_REPRESENTATION_CONTEXT' IN TYPEOF( + SELF.context_of_items ) ) AND ( 2 <= SELF.context_of_items\geometric_representation_context. + coordinate_space_dimension ) AND ( SELF.context_of_items\geometric_representation_context. + coordinate_space_dimension <= 3 ) ); + wr2: ( SIZEOF( QUERY ( cgr_i <* SELF.items | ( SIZEOF( [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PLACEMENT' , 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CURVE', + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.EDGE' , + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.FACE' , + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.POINT' , + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SURFACE' , + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.FACE_SURFACE' , + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.VERTEX_POINT' ] * TYPEOF( cgr_i ) ) <> 1 ) ) ) + = 0 ); + wr3: ( SIZEOF( USEDIN( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'REPRESENTATION_RELATIONSHIP.REP_2' ) ) > 0 ); + wr4: ( SIZEOF( USEDIN( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.GEOMETRIC_REPRESENTATION_CONTEXT' IN TYPEOF( + SELF.rep_1.context_of_items ) ) ); + wr2: ( NOT ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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( [ + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'MEASURE_REPRESENTATION_ITEM', + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'VALUE_RANGE'] * TYPEOF( i ) ) = 1 ) AND + ( i.name = 'ratio value' ) ) ) ) = 1 ) ); + wr2: ( ( SIZEOF( QUERY ( pdr <* USEDIN( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION_REPRESENTATION.' + 'USED_REPRESENTATION' ) | ( pdr\property_definition_representation.name = + 'contact ratio reference' ) ) ) = 1 ) AND ( SIZEOF( QUERY ( pdr <* USEDIN( SELF, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.' + + 'USED_REPRESENTATION' ) | ( ( pdr\property_definition_representation.name = 'contact ratio reference' ) AND ( ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'PRODUCT_DEFINITION' ) IN TYPEOF( pdr\ + property_definition_representation.definition\property_definition.definition ) ) ) ) ) = 1 ) ); + wr3: ( ( SIZEOF( USEDIN( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION_REPRESENTATION.' + 'USED_REPRESENTATION' ) ) = 1 ) AND ( SIZEOF( QUERY ( pdr <* USEDIN( SELF, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.' + + 'USED_REPRESENTATION' ) | ( SIZEOF( QUERY ( gpa <* USEDIN( pdr.definition, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'GENERAL_PROPERTY_ASSOCIATION.' + + 'DERIVED_DEFINITION' ) | ( ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'GENERAL_PROPERTY' ) IN TYPEOF( gpa\general_property_association.base_definition ) ) AND ( gpa\ + general_property_association.base_definition\general_property.name = 'surface_condition' ) ) ) ) = 1 ) ) ) = 1 ) ); + END_ENTITY; + + ENTITY contact_size_dependent_land + SUBTYPE OF ( land ); + END_ENTITY; + + ENTITY contacting_feature + SUBTYPE OF ( shape_aspect ); + WHERE + wr1: ( SELF\shape_aspect.product_definitional = FALSE ); + END_ENTITY; + + ENTITY context_dependent_invisibility + SUBTYPE OF ( invisibility ); + presentation_context : invisibility_context; + END_ENTITY; + + ENTITY context_dependent_kinematic_link_representation; + representation_relation : kinematic_link_representation_association; + represented_product_relation : product_definition_relationship_kinematics; + 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 | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'REPRESENTATION_ITEM' IN TYPEOF( sc ) ) ) ) = 1 ) OR ( SIZEOF( QUERY ( sc <* SELF.style_context | ( ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MAPPED_ITEM' IN TYPEOF( sc ) ) OR ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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: ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PRODUCT_DEFINITION_RELATIONSHIP' IN TYPEOF( SELF + .represented_product_relation.definition ) ); + wr2: ( SIZEOF( USEDIN( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'DESCRIPTION_ATTRIBUTE.' + + 'DESCRIBED_ITEM' ) ) <= 1 ); + wr3: ( SIZEOF( USEDIN( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'NAME_ATTRIBUTE.' + + 'NAMED_ITEM' ) ) <= 1 ); + END_ENTITY; + + ENTITY context_dependent_unit + SUBTYPE OF ( named_unit ); + name : label; + END_ENTITY; + + ENTITY continuous_shape_aspect + SUPERTYPE OF ( + ONEOF ( + between_shape_aspect, + all_around_shape_aspect ) ) + SUBTYPE OF ( composite_shape_aspect ); + END_ENTITY; + + ENTITY continuous_template + SUBTYPE OF ( geometric_template ); + 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, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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_geometric_relationship_with_2d_3d_placement_transformation + SUBTYPE OF ( shape_representation_relationship, representation_relationship_with_transformation ); + SELF\representation_relationship_with_transformation.transformation_operator : axis_placement_2d_3d_mapping; + WHERE + wr1: acyclic_representation_relationship( SELF, [SELF\representation_relationship.rep_2], + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'REPRESENTATION' ); + wr2: ( NOT ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.DEFINITIONAL_REPRESENTATION_RELATIONSHIP' + IN TYPEOF( SELF ) ) ); + 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 ) AND ( hour_offset < 24 ) ); + wr2: ( ( 0 <= actual_minute_offset ) AND ( actual_minute_offset <= 59 ) ); + wr3: ( NOT ( ( ( hour_offset <> 0 ) OR ( actual_minute_offset <> 0 ) ) AND ( sense = exact ) ) ); + END_ENTITY; + + ENTITY coordinates_list + SUBTYPE OF ( tessellated_item ); + npoints : INTEGER; + position_coords : LIST [1 : ?] OF LIST [3 : 3] OF REAL; + WHERE + wr1: ( npoints = SIZEOF( position_coords ) ); + wr2: ( SIZEOF( [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.REPOSITIONED_TESSELLATED_ITEM'] * + TYPEOF( SELF ) ) = 0 ); + END_ENTITY; + + ENTITY copy_stratum_technology_occurrence_relationship + SUBTYPE OF ( derived_stratum_technology_occurrence_relationship ); + END_ENTITY; + + ENTITY cos_function + SUBTYPE OF ( unary_function_call ); + END_ENTITY; + + ENTITY counterbore_passage_template + SUBTYPE OF ( unsupported_passage_template ); + END_ENTITY; + + ENTITY countersunk_passage_template + SUBTYPE OF ( unsupported_passage_template ); + END_ENTITY; + + ENTITY csg_2d_shape_representation + SUBTYPE OF ( shape_representation ); + SELF\representation.items : SET [1 : ?] OF csg_2d_shape_select; + WHERE + wr1: ( SELF.context_of_items\geometric_representation_context.coordinate_space_dimension = 2 ); + wr2: ( SIZEOF( QUERY ( it <* SELF.items | ( ( SIZEOF( [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'CSG_SOLID' ] * TYPEOF( it ) ) = 1 ) OR ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'MAPPED_ITEM' IN TYPEOF( it ) ) AND ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'CSG_2D_SHAPE_REPRESENTATION' ) IN TYPEOF( it\mapped_item.mapping_source.mapped_representation ) ) ) ) ) ) >= 1 ); + wr3: ( SIZEOF( QUERY ( it <* SELF.items | ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'MAPPED_ITEM' IN TYPEOF( it ) ) AND ( NOT ( ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'CSG_2D_SHAPE_REPRESENTATION' ) IN + TYPEOF( it\mapped_item.mapping_source.mapped_representation ) ) ) ) ) ) = 0 ); + END_ENTITY; + + ENTITY csg_primitive_solid_2d + SUBTYPE OF ( csg_solid_2d ); + SELF\csg_solid.tree_root_expression : bounded_primitive_2d; + 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( [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'CSG_SOLID' , 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MAPPED_ITEM', + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.AXIS2_PLACEMENT_3D' , + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SOLID_REPLICA' , + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.REVOLVED_FACE_SOLID' , + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.EXTRUDED_FACE_SOLID' ] * TYPEOF( it ) ) <> 1 ) ) ) + = 0 ); + wr3: ( SIZEOF( QUERY ( mi <* QUERY ( it <* SELF.items | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MAPPED_ITEM' IN TYPEOF( it ) ) ) | ( NOT ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CSG_SHAPE_REPRESENTATION' IN TYPEOF( mi\ + mapped_item.mapping_source.mapped_representation ) ) ) ) ) = 0 ); + wr4: ( SIZEOF( QUERY ( sr <* QUERY ( it <* SELF.items | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SOLID_REPLICA' IN TYPEOF( it ) ) ) | ( + SIZEOF( [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CSG_SOLID', + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.REVOLVED_FACE_SOLID' , + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.EXTRUDED_FACE_SOLID' ] * TYPEOF( sr\ + solid_replica.parent_solid ) ) = 0 ) ) ) = 0 ); + wr5: ( SIZEOF( QUERY ( it <* SELF.items | ( NOT ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 csg_solid_2d + SUBTYPE OF ( csg_solid ); + SELF\csg_solid.tree_root_expression : csg_select_2d; + WHERE + wr1: valid_csg_2d_primitives( SELF ); + 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 ) AND ( SELF\named_unit.dimensions.mass_exponent = 0 ) AND ( SELF\ + named_unit.dimensions.time_exponent = 0 ) AND ( SELF\named_unit.dimensions.electric_current_exponent = 0 ) AND ( + SELF\named_unit.dimensions.thermodynamic_temperature_exponent = 0 ) AND ( SELF\named_unit.dimensions. + amount_of_substance_exponent = 0 ) AND ( SELF\named_unit.dimensions.luminous_intensity_exponent = 0 ) ); + END_ENTITY; + + ENTITY currency_measure_with_unit + SUBTYPE OF ( measure_with_unit ); + SELF\measure_with_unit.unit_component : currency; + END_ENTITY; + + ENTITY current_change_element_assignment + SUBTYPE OF ( group_assignment ); + SELF\group_assignment.assigned_group : current_element_assignment_select; + items : SET [1 : ?] OF change_management_object; + 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_based_path + SUBTYPE OF ( path_node ); + path_curve : curve; + END_ENTITY; + + ENTITY curve_based_path_with_orientation + SUBTYPE OF ( kinematic_path_segment ); + position_curve : bounded_curve; + orientation_curve : bounded_curve; + WHERE + wr1: ( TYPEOF( position_curve ) = TYPEOF( orientation_curve ) ); + END_ENTITY; + + ENTITY curve_based_path_with_orientation_and_parameters + SUBTYPE OF ( curve_based_path_with_orientation ); + parameters : path_parameter_representation; + 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 | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.OUTER_BOUNDARY_CURVE' IN TYPEOF( temp ) ) ) ) + = 0 ) ); + wr2: ( ( NOT implicit_outer ) OR ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.BOUNDED_SURFACE' IN + TYPEOF( basis_surface ) ) ); + wr3: ( SIZEOF( QUERY ( temp <* boundaries | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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_distance_geometric_constraint + SUBTYPE OF ( explicit_geometric_constraint ); + SELF\explicit_constraint.constrained_elements : SET [1 : 2] OF curve; + SELF\explicit_constraint.reference_elements : SET [0 : 4] OF point_curve_or_surface_constraint_element; + near_points : SET [0 : 4] OF near_point_relationship; + WHERE + wr1: ( ( SIZEOF( SELF\explicit_constraint.reference_elements ) > 0 ) OR ( ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CDGC_WITH_DIMENSION' IN TYPEOF( SELF ) ) AND + ( SIZEOF( SELF\explicit_constraint.constrained_elements ) = 2 ) ) ); + wr2: ( SIZEOF( near_points ) <= SIZEOF( SELF\explicit_constraint.reference_elements ) ); + wr3: ( SIZEOF( QUERY ( q <* near_points | ( NOT ( q\representation_item_relationship.relating_representation_item IN SELF\ + explicit_constraint.reference_elements ) ) ) ) = 0 ); + END_ENTITY; + + ENTITY curve_length_geometric_constraint + SUBTYPE OF ( explicit_geometric_constraint ); + SELF\explicit_constraint.constrained_elements : SET [1 : ?] OF bounded_curve; + WHERE + wr1: ( SIZEOF( SELF\explicit_constraint.reference_elements ) = 0 ); + 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_segment_set + SUBTYPE OF ( geometric_representation_item ); + segments : SET [1 : ?] OF composite_curve_segment; + END_ENTITY; + + ENTITY curve_smoothness_geometric_constraint + SUBTYPE OF ( explicit_geometric_constraint ); + SELF\explicit_constraint.constrained_elements : SET [1 : 1] OF curve_segment_set; + smoothness : transition_code; + WHERE + wr1: ( SIZEOF( SELF\explicit_constraint.reference_elements ) = 0 ); + END_ENTITY; + + ENTITY curve_style + SUBTYPE OF ( founded_item ); + name : label; + curve_font : OPTIONAL curve_font_or_scaled_curve_font_select; + curve_width : OPTIONAL size_select; + curve_colour : OPTIONAL colour; + WHERE + wr1: ( EXISTS( curve_font ) OR EXISTS( curve_width ) OR EXISTS( curve_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_parameters_representation + SUBTYPE OF ( representation ); + END_ENTITY; + + ENTITY curve_style_parameters_with_ends + SUBTYPE OF ( curve_style_parameters_representation ); + 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( [ + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SWEPT_AREA_SOLID' , + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SWEPT_DISK_SOLID' , + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MAPPED_ITEM' , + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.AXIS2_PLACEMENT_3D' ] * TYPEOF( it ) ) = 1 ) ) ) ) + = 0 ); + wr2: ( SIZEOF( QUERY ( it <* SELF.items | ( SIZEOF( [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'SWEPT_AREA_SOLID' , 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SWEPT_DISK_SOLID', + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MAPPED_ITEM' ] * TYPEOF( it ) ) = 1 ) ) ) > 0 ); + wr3: ( SIZEOF( QUERY ( mi <* QUERY ( it <* items | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'MAPPED_ITEM' IN TYPEOF( it ) ) ) | ( NOT ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SURFACE_CURVE_SWEPT_AREA_SOLID' IN TYPEOF( it ) ) ) + | ( NOT ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SURFACE_CURVE' IN TYPEOF( scsas\ + surface_curve_swept_area_solid.directrix ) ) OR ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PCURVE' IN TYPEOF( scsas\ + surface_curve_swept_area_solid.directrix ) ) ) ) ) ) = 0 ); + END_ENTITY; + + ENTITY curve_with_excessive_segments + SUBTYPE OF ( overcomplex_geometry ); + SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; + WHERE + wr1: ( ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' ) + IN TYPEOF( SELF\shape_data_quality_criterion.assessment_specification\ + shape_data_quality_assessment_by_numerical_test.threshold ) ) AND ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.COUNT_MEASURE' IN value_limit_type( SELF\ + shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold ) ) ); + wr2: validate_measured_data_type( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.COUNT_MEASURE' ); + wr3: validate_inspected_elements_type( SELF, [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'B_SPLINE_OR_COMPOSITE_CURVE_SELECT' ] ); + wr4: validate_locations_of_extreme_value_type( SELF, [] ); + wr5: validate_accuracy_types( SELF, [] ); + END_ENTITY; + + ENTITY curve_with_small_curvature_radius + SUBTYPE OF ( geometry_with_local_near_degeneracy ); + SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; + WHERE + wr1: ( ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'SHAPE_DATA_QUALITY_UPPER_VALUE_LIMIT' ) + IN TYPEOF( SELF\shape_data_quality_criterion.assessment_specification\ + shape_data_quality_assessment_by_numerical_test.threshold ) ) AND ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE' IN value_limit_type( SELF\ + shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold ) ) ); + wr2: validate_measured_data_type( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE' ); + wr3: validate_inspected_elements_type( SELF, [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CURVE'] ); + wr4: validate_locations_of_extreme_value_type( SELF, [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'POINT_ON_CURVE' ] ); + wr5: validate_accuracy_types( SELF, [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE'] ); + END_ENTITY; + + ENTITY cutout + SUPERTYPE OF ( + ONEOF ( + physical_connectivity_interrupting_cutout, + plated_cutout, + partially_plated_cutout ) ) + SUBTYPE OF ( inter_stratum_feature ); + END_ENTITY; + + ENTITY cutout_edge_segment + SUPERTYPE OF ( + plated_cutout_edge_segment ) + SUBTYPE OF ( inter_stratum_feature, shape_aspect_relationship ); + SELF\shape_aspect_relationship.relating_shape_aspect : edge_segment_vertex; + SELF\shape_aspect_relationship.related_shape_aspect : edge_segment_vertex; + WHERE + wr1: ( SELF\shape_aspect_relationship.relating_shape_aspect :<>: SELF\shape_aspect_relationship.related_shape_aspect ); + END_ENTITY; + + ENTITY cylindrical_pair + SUBTYPE OF ( low_order_kinematic_pair ); + DERIVE + SELF\low_order_kinematic_pair.t_x : BOOLEAN := FALSE; + SELF\low_order_kinematic_pair.t_y : BOOLEAN := FALSE; + SELF\low_order_kinematic_pair.t_z : BOOLEAN := TRUE; + SELF\low_order_kinematic_pair.r_x : BOOLEAN := FALSE; + SELF\low_order_kinematic_pair.r_y : BOOLEAN := FALSE; + SELF\low_order_kinematic_pair.r_z : BOOLEAN := TRUE; + END_ENTITY; + + ENTITY cylindrical_pair_value + SUBTYPE OF ( pair_value ); + SELF\pair_value.applies_to_pair : cylindrical_pair; + actual_translation : length_measure; + actual_rotation : plane_angle_measure; + END_ENTITY; + + ENTITY cylindrical_pair_with_range + SUBTYPE OF ( cylindrical_pair ); + lower_limit_actual_translation : OPTIONAL length_measure; + upper_limit_actual_translation : OPTIONAL length_measure; + lower_limit_actual_rotation : OPTIONAL plane_angle_measure; + upper_limit_actual_rotation : OPTIONAL plane_angle_measure; + WHERE + wr1: ( ( ( NOT EXISTS( lower_limit_actual_translation ) ) OR ( NOT EXISTS( upper_limit_actual_translation ) ) ) XOR ( + lower_limit_actual_translation < upper_limit_actual_translation ) ); + wr2: ( ( ( NOT EXISTS( lower_limit_actual_rotation ) ) OR ( NOT EXISTS( upper_limit_actual_rotation ) ) ) XOR ( + lower_limit_actual_rotation < upper_limit_actual_rotation ) ); + 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 ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 data_quality_assessment_measurement_association; + assessment_specification : data_quality_criterion_assessment_association; + measurement_requirement : data_quality_criterion_measurement_association; + WHERE + wr1: ( SELF.measurement_requirement\representation_item_relationship.relating_representation_item :=: SELF. + assessment_specification.criterion ); + END_ENTITY; + + ENTITY data_quality_assessment_specification; + description : text; + END_ENTITY; + + ENTITY data_quality_criteria_representation + SUBTYPE OF ( representation ); + WHERE + wr1: ( SIZEOF( QUERY ( q <* SELF\representation.items | ( ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'DATA_QUALITY_CRITERION' ) IN TYPEOF( q ) ) ) ) + > 0 ); + END_ENTITY; + + ENTITY data_quality_criterion + SUBTYPE OF ( representation_item ); + WHERE + wr1: ( SIZEOF( QUERY ( q <* bag_to_set( USEDIN( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'REPRESENTATION.ITEMS' ) ) | ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'DATA_QUALITY_INSPECTION_RESULT_REPRESENTATION' ) IN TYPEOF( q ) ) ) ) = 0 ); + END_ENTITY; + + ENTITY data_quality_criterion_assessment_association; + criterion : data_quality_criterion; + assessment_specification : data_quality_assessment_specification; + END_ENTITY; + + ENTITY data_quality_criterion_measurement_association + SUBTYPE OF ( representation_item_relationship ); + SELF\representation_item_relationship.relating_representation_item : data_quality_criterion; + SELF\representation_item_relationship.related_representation_item : data_quality_measurement_requirement; + END_ENTITY; + + ENTITY data_quality_definition; + description : text; + END_ENTITY; + + ENTITY data_quality_definition_relationship; + description : text; + relating_data_quality_definition : data_quality_definition; + related_data_quality_definition : data_quality_definition; + END_ENTITY; + + ENTITY data_quality_definition_representation_relationship; + description : text; + definition : data_quality_definition; + used_representation : used_quality_representation_select; + END_ENTITY; + + ENTITY data_quality_inspection_criterion_report + SUBTYPE OF ( data_quality_inspection_report ); + statistical_values : SET [1 : 2] OF data_quality_inspection_criterion_report_item; + WHERE + wr1: ( SIZEOF( QUERY ( i1 <* bag_to_set( USEDIN( SELF\data_quality_inspection_report.inspection_result.criterion_inspected, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'DATA_QUALITY_REPORT_REQUEST.' + + 'CRITERION_OF_REPORT_REQUEST' ) ) | ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'SUMMARY_REPORT_REQUEST' ) IN TYPEOF( i1 ) ) ) ) > 0 ); + wr2: ( ( SIZEOF( SELF.statistical_values ) = 1 ) OR ( SELF.statistical_values[1].value_type <> SELF.statistical_values[2]. + value_type ) ); + END_ENTITY; + + ENTITY data_quality_inspection_criterion_report_item + SUBTYPE OF ( representation_item ); + statistical_value : INTEGER; + value_type : statistical_value_type; + WHERE + wr1: ( SIZEOF( QUERY ( q <* bag_to_set( USEDIN( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'REPRESENTATION.ITEMS' ) ) | ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'DATA_QUALITY_CRITERIA_REPRESENTATION' ) IN TYPEOF( q ) ) ) ) = 0 ); + END_ENTITY; + + ENTITY data_quality_inspection_instance_report + SUBTYPE OF ( data_quality_inspection_report ); + inspected_instances : LIST [1 : ?] OF data_quality_inspection_instance_report_item; + WHERE + wr1: ( SIZEOF( QUERY ( i1 <* bag_to_set( USEDIN( SELF\data_quality_inspection_report.inspection_result.criterion_inspected, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'DATA_QUALITY_REPORT_REQUEST.' + + 'CRITERION_OF_REPORT_REQUEST' ) ) | ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'DETAILED_REPORT_REQUEST' ) IN TYPEOF( i1 ) ) ) ) > 0 ); + END_ENTITY; + + ENTITY data_quality_inspection_instance_report_item + SUBTYPE OF ( representation_item ); + inspected_elements : SET [1 : ?] OF inspected_element_select; + WHERE + wr1: ( SIZEOF( QUERY ( q <* bag_to_set( USEDIN( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'REPRESENTATION.ITEMS' ) ) | ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'DATA_QUALITY_CRITERIA_REPRESENTATION' ) IN TYPEOF( q ) ) ) ) = 0 ); + END_ENTITY; + + ENTITY data_quality_inspection_report + SUPERTYPE OF ( + ONEOF ( + data_quality_inspection_criterion_report, + data_quality_inspection_instance_report ) ) + SUBTYPE OF ( representation_item ); + inspection_result : data_quality_inspection_result; + WHERE + wr1: ( SIZEOF( QUERY ( q <* bag_to_set( USEDIN( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'REPRESENTATION.ITEMS' ) ) | ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'DATA_QUALITY_CRITERIA_REPRESENTATION' ) IN TYPEOF( q ) ) ) ) = 0 ); + END_ENTITY; + + ENTITY data_quality_inspection_result + SUBTYPE OF ( representation_item ); + criterion_inspected : data_quality_criterion; + WHERE + wr1: ( SIZEOF( QUERY ( q <* bag_to_set( USEDIN( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'REPRESENTATION.ITEMS' ) ) | ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'DATA_QUALITY_CRITERIA_REPRESENTATION' ) IN TYPEOF( q ) ) ) ) = 0 ); + END_ENTITY; + + ENTITY data_quality_inspection_result_representation + SUBTYPE OF ( representation ); + criteria_inspected : data_quality_criteria_representation; + WHERE + wr1: ( SIZEOF( QUERY ( q <* SELF\representation.items | ( ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'DATA_QUALITY_INSPECTION_RESULT' ) IN + TYPEOF( q ) ) ) ) > 0 ); + wr2: ( SIZEOF( inspected_product_definition( SELF ) ) > 0 ); + END_ENTITY; + + ENTITY data_quality_inspection_result_with_judgement + SUBTYPE OF ( data_quality_inspection_result ); + judgement : BOOLEAN; + END_ENTITY; + + ENTITY data_quality_measurement_requirement + SUBTYPE OF ( representation_item ); + WHERE + wr1: ( SIZEOF( QUERY ( q <* bag_to_set( USEDIN( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'REPRESENTATION.ITEMS' ) ) | ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'DATA_QUALITY_INSPECTION_RESULT_REPRESENTATION' ) IN TYPEOF( q ) ) ) ) = 0 ); + END_ENTITY; + + ENTITY data_quality_report_measurement_association + SUBTYPE OF ( representation_item_relationship ); + SELF\representation_item_relationship.relating_representation_item : data_quality_measurement_requirement; + SELF\representation_item_relationship.related_representation_item : data_quality_inspection_report; + END_ENTITY; + + ENTITY data_quality_report_request + ABSTRACT SUPERTYPE OF ( + ONEOF ( + summary_report_request, + detailed_report_request ) ); + description : text; + criterion_of_report_request : data_quality_criterion; + 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, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 : OPTIONAL date_time_or_event_occurrence; + WHERE + wr1: ( EXISTS( effectivity_end_date ) OR EXISTS( effectivity_start_date ) ); + END_ENTITY; + + ENTITY datum + SUBTYPE OF ( shape_aspect ); + identification : identifier; + INVERSE + established_by_relationships : SET [1 : ?] OF shape_aspect_relationship FOR related_shape_aspect; + UNIQUE + ur1 : identification, SELF\shape_aspect.of_shape; + WHERE + wr1: ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.COMMON_DATUM' IN TYPEOF( SELF ) ) XOR ( + SIZEOF( QUERY ( x <* SELF\datum.established_by_relationships | ( SIZEOF( [ + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.DATUM_FEATURE' , + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.DATUM_TARGET' ] * TYPEOF( x\ + shape_aspect_relationship.relating_shape_aspect ) ) = 1 ) ) ) >= 1 ) ); + wr2: ( SIZEOF( QUERY ( x <* SELF\datum.established_by_relationships | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.DATUM_FEATURE' IN TYPEOF( x\ + shape_aspect_relationship.relating_shape_aspect ) ) ) ) <= 1 ); + wr3: ( SELF\shape_aspect.product_definitional = FALSE ); + wr4: ( SELF\shape_aspect.name = '' ); + END_ENTITY; + + ENTITY datum_difference + SUBTYPE OF ( shape_aspect, shape_aspect_relationship ); + SELF\shape_aspect_relationship.relating_shape_aspect : datum; + SELF\shape_aspect_relationship.related_shape_aspect : datum; + WHERE + wr1: ( SELF\shape_aspect_relationship.relating_shape_aspect :<>: SELF\shape_aspect_relationship.related_shape_aspect ); + END_ENTITY; + + ENTITY datum_difference_based_model_parameter + SUBTYPE OF ( model_parameter ); + END_ENTITY; + + ENTITY datum_difference_functional_unit_usage_view_terminal_assignment + SUBTYPE OF ( shape_aspect_relationship ); + SELF\shape_aspect_relationship.relating_shape_aspect : datum_difference; + SELF\shape_aspect_relationship.related_shape_aspect : functional_unit_terminal_definition; + END_ENTITY; + + ENTITY datum_feature + SUPERTYPE OF ( + ONEOF ( + dimensional_location_with_datum_feature, + dimensional_size_with_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 | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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_reference_compartment + SUBTYPE OF ( general_datum_reference ); + INVERSE + owner : datum_system FOR constituents; + END_ENTITY; + + ENTITY datum_reference_element + SUBTYPE OF ( general_datum_reference ); + DERIVE + owner : general_datum_reference := sts_get_general_datum_reference( SELF ); + WHERE + wr1: ( SELF <> owner ); + wr2: EXISTS( owner ); + wr3: ( SELF\shape_aspect.of_shape = owner\shape_aspect.of_shape ); + END_ENTITY; + + ENTITY datum_reference_modifier_with_value; + modifier_type : datum_reference_modifier_type; + modifier_value : length_measure_with_unit; + WHERE + wr1: ( modifier_value\measure_with_unit.value_component > 0 ); + END_ENTITY; + + ENTITY datum_system + SUBTYPE OF ( shape_aspect ); + constituents : LIST [1 : 3] OF UNIQUE datum_reference_compartment; + UNIQUE + ur1 : SELF\shape_aspect.of_shape, SELF\shape_aspect.name; + WHERE + wr1: ( SELF\shape_aspect.product_definitional = FALSE ); + 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 | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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_attachment_size_based_land_physical_template + SUBTYPE OF ( land_physical_template, shape_aspect ); + DERIVE + SELF\shape_aspect.of_shape : default_attachment_size_based_land_physical_template := SELF; + END_ENTITY; + + ENTITY default_passage_based_land_physical_template + ABSTRACT SUPERTYPE OF ( + ONEOF ( + default_plated_passage_based_land_physical_template, + default_unsupported_passage_based_land_physical_template ) ) + SUBTYPE OF ( land_physical_template ); + END_ENTITY; + + ENTITY default_plated_passage_based_land_physical_template + SUBTYPE OF ( default_passage_based_land_physical_template ); + END_ENTITY; + + ENTITY default_tolerance_table + SUBTYPE OF ( representation ); + WHERE + wr1: ( SIZEOF( QUERY ( i <* SELF.items | ( NOT ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'DEFAULT_TOLERANCE_TABLE_CELL' IN TYPEOF( i ) ) ) ) ) = 0 ); + wr2: ( ( SIZEOF( QUERY ( rr <* USEDIN( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'REPRESENTATION_RELATIONSHIP.REP_1' ) | ( rr.name < 'general tolerance definition' ) ) ) = 0 ) AND ( SIZEOF( + QUERY ( rr <* USEDIN( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'REPRESENTATION_RELATIONSHIP.REP_1' ) | ( ( rr.name = 'general tolerance definition' ) AND ( rr.rep_2.name < + 'default tolerance' ) ) ) ) = 0 ) AND ( SIZEOF( USEDIN( SELF, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'REPRESENTATION.ITEMS' ) | ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 default_trace_template + SUBTYPE OF ( trace_template ); + END_ENTITY; + + ENTITY default_unsupported_passage_based_land_physical_template + SUBTYPE OF ( default_passage_based_land_physical_template ); + END_ENTITY; + + ENTITY default_value_property_definition_representation + SUBTYPE OF ( property_definition_representation ); + END_ENTITY; + + ENTITY defined_character_glyph + SUBTYPE OF ( geometric_representation_item ); + definition : defined_glyph_select; + placement : axis2_placement; + END_ENTITY; + + ENTITY defined_constraint + ABSTRACT SUPERTYPE OF ( + equal_parameter_constraint ) + SUBTYPE OF ( explicit_constraint ); + END_ENTITY; + + ENTITY defined_function + ABSTRACT SUPERTYPE OF ( + ONEOF ( + numeric_defined_function, + string_defined_function, + boolean_defined_function ) + ANDOR + sql_mappable_defined_function ); + END_ENTITY; + + ENTITY defined_symbol + SUBTYPE OF ( geometric_representation_item ); + definition : defined_symbol_select; + target : symbol_target; + END_ENTITY; + + ENTITY definite_integral_expression + SUBTYPE OF ( quantifier_expression ); + lower_limit_neg_infinity : BOOLEAN; + upper_limit_pos_infinity : BOOLEAN; + DERIVE + integrand : generic_expression := SELF\multiple_arity_generic_expression.operands[1]; + variable_of_integration : maths_variable := SELF\multiple_arity_generic_expression.operands[2]; + SELF\quantifier_expression.variables : LIST [1 : 1] OF UNIQUE generic_variable := [variable_of_integration]; + WHERE + wr1: has_values_space( integrand ); + wr2: space_is_continuum( values_space_of( integrand ) ); + wr3: definite_integral_expr_check( SELF\multiple_arity_generic_expression.operands, lower_limit_neg_infinity, + upper_limit_pos_infinity ); + END_ENTITY; + + ENTITY definite_integral_function + SUBTYPE OF ( maths_function, unary_generic_expression ); + SELF\unary_generic_expression.operand : maths_function; + variable_of_integration : input_selector; + lower_limit_neg_infinity : BOOLEAN; + upper_limit_pos_infinity : BOOLEAN; + DERIVE + integrand : maths_function := SELF\unary_generic_expression.operand; + WHERE + wr1: space_is_continuum( integrand.range ); + wr2: definite_integral_check( integrand.domain, variable_of_integration, lower_limit_neg_infinity, upper_limit_pos_infinity ); + END_ENTITY; + + ENTITY definitional_representation + SUBTYPE OF ( representation ); + WHERE + wr1: ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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], + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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: ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 delete_element + SUBTYPE OF ( change_element ); + END_ENTITY; + + ENTITY dependent_electrical_isolation_removal_component + SUBTYPE OF ( electrical_isolation_laminate_component ); + END_ENTITY; + + ENTITY dependent_electrical_isolation_removal_template + SUBTYPE OF ( electrical_isolation_removal_template ); + END_ENTITY; + + ENTITY dependent_thermal_isolation_removal_component + SUBTYPE OF ( thermal_isolation_removal_component ); + END_ENTITY; + + ENTITY dependent_thermal_isolation_removal_template + SUBTYPE OF ( thermal_isolation_removal_template ); + END_ENTITY; + + ENTITY derived_laminate_assignment + SUBTYPE OF ( property_definition_relationship ); + END_ENTITY; + + ENTITY derived_shape_aspect + SUPERTYPE OF ( + ONEOF ( + apex, + centre_of_symmetry, + geometric_alignment, + geometric_contact, + geometric_intersection, + parallel_offset, + perpendicular_to, + extension, + tangent ) ) + SUBTYPE OF ( shape_aspect ); + INVERSE + deriving_relationships : SET [1 : ?] OF shape_aspect_deriving_relationship FOR relating_shape_aspect; + END_ENTITY; + + ENTITY derived_stratum + SUBTYPE OF ( stratum ); + END_ENTITY; + + ENTITY derived_stratum_technology_occurrence_relationship + ABSTRACT SUPERTYPE OF ( + ONEOF ( + copy_stratum_technology_occurrence_relationship, + inverse_copy_stratum_technology_occurrence_relationship ) ) + SUBTYPE OF ( stratum_technology_occurrence_relationship ); + 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 ) ) ); + wr2: ( SIZEOF( USEDIN( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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_composition_path + SUBTYPE OF ( applied_group_assignment, product_definition ); + END_ENTITY; + + ENTITY design_context + SUBTYPE OF ( product_definition_context ); + WHERE + wr1: ( SELF.life_cycle_stage = 'design' ); + END_ENTITY; + + ENTITY design_layer_stratum + SUBTYPE OF ( stratum ); + END_ENTITY; + + ENTITY design_make_from_relationship + SUBTYPE OF ( product_definition_relationship ); + END_ENTITY; + + ENTITY design_specific_stratum_technology_mapping_relationship + SUBTYPE OF ( stratum_technology_mapping_relationship, property_definition ); + SELF\property_definition.definition : library_to_design_stack_model_mapping; + DERIVE + scope : library_to_design_stack_model_mapping := SELF\property_definition.definition; + END_ENTITY; + + ENTITY design_stack_model + SUBTYPE OF ( stratum_stack_model ); + END_ENTITY; + + ENTITY detailed_report_request + SUBTYPE OF ( data_quality_report_request ); + detailed_report_request_type : detailed_report_type; + report_sequence : preferred_ordering; + END_ENTITY; + + ENTITY detailed_report_request_with_number_of_data + SUBTYPE OF ( detailed_report_request ); + number_of_data : INTEGER; + DERIVE + SELF\detailed_report_request.detailed_report_request_type : detailed_report_type := measured_element; + END_ENTITY; + + ENTITY device_terminal_map + SUBTYPE OF ( shape_aspect, shape_aspect_relationship ); + SELF\shape_aspect_relationship.relating_shape_aspect : packaged_part_terminal; + UNIQUE + ur1 : SELF\shape_aspect_relationship.related_shape_aspect, SELF\shape_aspect_relationship.relating_shape_aspect; + 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 dielectric_crossover_area + SUBTYPE OF ( shape_aspect, shape_aspect_relationship ); + END_ENTITY; + + ENTITY dielectric_material_passage + SUBTYPE OF ( inter_stratum_feature ); + END_ENTITY; + + ENTITY digital_analytical_model_port + SUBTYPE OF ( analytical_model_port ); + END_ENTITY; + + ENTITY digital_analytical_model_scalar_port + SUBTYPE OF ( digital_analytical_model_vector_port, analytical_model_scalar_port ); + END_ENTITY; + + ENTITY digital_analytical_model_vector_port + SUBTYPE OF ( analytical_model_vector_port ); + END_ENTITY; + + ENTITY dimension_callout + SUBTYPE OF ( draughting_callout ); + WHERE + wr1: ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LEADER_DIRECTED_CALLOUT' IN TYPEOF( SELF ) ) + XOR ( SIZEOF( QUERY ( dce_1 <* SELF\draughting_callout.contents | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LEADER_CURVE' IN TYPEOF( dce_1 ) ) ) ) = 0 ) ); + wr2: ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROJECTION_DIRECTED_CALLOUT' IN TYPEOF( SELF ) ) + XOR ( SIZEOF( QUERY ( dce_1 <* SELF\draughting_callout.contents | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROJECTION_CURVE' IN TYPEOF( dce_1 ) ) ) ) = + 0 ) ); + wr3: ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.DIMENSION_CURVE_DIRECTED_CALLOUT' IN TYPEOF( + SELF ) ) XOR ( SIZEOF( QUERY ( dce_1 <* SELF\draughting_callout.contents | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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: ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.STRUCTURED_DIMENSION_CALLOUT' IN TYPEOF( SELF. + relating_draughting_callout ) ); + wr3: ( SIZEOF( TYPEOF( SELF.related_draughting_callout ) * [ + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LEADER_DIRECTED_CALLOUT' , + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROJECTION_DIRECTED_CALLOUT' , + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.DIMENSION_CURVE_DIRECTED_CALLOUT' , + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 ) * [ + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.ANGULAR_DIMENSION' , + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CURVE_DIMENSION' , + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.DIAMETER_DIMENSION' , + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LEADER_DIRECTED_DIMENSION' , + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LINEAR_DIMENSION' , + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.ORDINATE_DIMENSION' , + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.RADIUS_DIMENSION' ] ) >= 1 ); + wr3: ( SIZEOF( TYPEOF( SELF.related_draughting_callout ) * [ + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.DIMENSION_CURVE_DIRECTED_CALLOUT' , + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROJECTION_DIRECTED_CALLOUT' , + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'TERMINATOR_SYMBOL.ANNOTATED_CURVE' ) | ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'DIMENSION_CURVE_TERMINATOR' ) IN TYPEOF( dct ) ) ) ) <= 2 ); + wr2: ( SIZEOF( QUERY ( dcdc <* USEDIN( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'DRAUGHTING_CALLOUT.CONTENTS' ) | ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'DIMENSION_CURVE_DIRECTED_CALLOUT' ) IN TYPEOF( dcdc ) ) ) ) >= 1 ); + wr3: ( ( SIZEOF( QUERY ( dct1 <* USEDIN( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'TERMINATOR_SYMBOL.ANNOTATED_CURVE' ) | ( ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'TERMINATOR_SYMBOL.ANNOTATED_CURVE' ) | + ( ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.DIMENSION_CURVE' IN TYPEOF( d_c ) ) ) ) <= 2 ); + wr2: ( SIZEOF( SELF\draughting_callout.contents ) >= 2 ); + END_ENTITY; + + ENTITY dimension_curve_terminator + SUBTYPE OF ( terminator_symbol ); + role : dimension_extent_usage; + WHERE + wr1: ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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.relating_annotation_occurrence : dimension_curve_terminator; + SELF\annotation_occurrence_relationship.related_annotation_occurrence : projection_curve; + END_ENTITY; + + ENTITY dimension_pair + SUBTYPE OF ( draughting_callout_relationship ); + WHERE + wr1: ( SELF.name IN [ 'chained', 'parallel'] ); + wr2: ( SIZEOF( TYPEOF( SELF.relating_draughting_callout ) * [ + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.ANGULAR_DIMENSION' , + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CURVE_DIMENSION' , + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.DIAMETER_DIMENSION' , + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LINEAR_DIMENSION' , + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.ORDINATE_DIMENSION' , + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.RADIUS_DIMENSION' ] ) = 1 ); + wr3: ( SIZEOF( TYPEOF( SELF.related_draughting_callout ) * [ + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.ANGULAR_DIMENSION' , + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CURVE_DIMENSION' , + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.DIAMETER_DIMENSION' , + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LINEAR_DIMENSION' , + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.ORDINATE_DIMENSION' , + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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: ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_DIMENSION_REPRESENTATION' IN TYPEOF( SELF\ + mapped_item.mapping_source.mapped_representation ) ); + wr2: ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.DRAUGHTING_CALLOUT' IN TYPEOF( SELF\mapped_item. + mapping_target ) ); + wr3: ( SIZEOF( QUERY ( ato <* QUERY ( si <* USEDIN( SELF, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.STYLED_ITEM.ITEM' ) | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.ANNOTATION_TEXT_OCCURRENCE' IN TYPEOF( si ) ) ) + | ( NOT ( SIZEOF( QUERY ( dc <* USEDIN( ato, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'DRAUGHTING_CALLOUT.CONTENTS' ) | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 ); + WHERE + wr1: ( SELF\shape_aspect_relationship.relating_shape_aspect :<>: SELF\shape_aspect_relationship.related_shape_aspect ); + wr2: ( SELF\shape_aspect_relationship.relating_shape_aspect.of_shape :=: SELF\shape_aspect_relationship. + related_shape_aspect.of_shape ); + END_ENTITY; + + ENTITY dimensional_location_with_datum_feature + SUBTYPE OF ( datum_feature, dimensional_location ); + 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; + DERIVE + id : identifier := get_id_value( SELF ); + UNIQUE + ur1 : id, applies_to; + WHERE + wr1: ( applies_to.product_definitional = TRUE ); + wr2: ( SIZEOF( USEDIN( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'ID_ATTRIBUTE.' + + 'IDENTIFIED_ITEM' ) ) <= 1 ); + END_ENTITY; + + ENTITY dimensional_size_with_datum_feature + SUBTYPE OF ( datum_feature, dimensional_size ); + END_ENTITY; + + ENTITY dimensional_size_with_path + SUBTYPE OF ( dimensional_size ); + path : shape_aspect; + END_ENTITY; + + ENTITY direct_stratum_component_join_implementation + SUBTYPE OF ( shape_aspect_relationship ); + END_ENTITY; + + ENTITY directed_action + SUBTYPE OF ( executed_action ); + directive : action_directive; + END_ENTITY; + + ENTITY directed_angle + SUBTYPE OF ( shape_aspect ); + WHERE + wr1: ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.FEATURE_COMPONENT_DEFINITION' IN TYPEOF( SELF. + of_shape.definition ) ); + wr2: ( SIZEOF( QUERY ( pdr <* get_shape_aspect_property_definition_representations( SELF ) | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN + TYPEOF( pdr.used_representation ) ) ) ) = 1 ); + wr3: ( SIZEOF( QUERY ( pdr <* get_shape_aspect_property_definition_representations( SELF ) | ( ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN + TYPEOF( pdr.used_representation ) ) AND ( SIZEOF( pdr.used_representation.items ) = 1 ) ) ) ) = 1 ); + wr4: ( SELF.description IN [ 'punch direction', 'profile normal', 'surface normal'] ); + wr5: ( SIZEOF( QUERY ( pdr <* get_shape_aspect_property_definition_representations( SELF ) | ( ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN + TYPEOF( pdr.used_representation ) ) AND ( SIZEOF( QUERY ( i <* pdr.used_representation.items | ( ( i.name = 'angle' ) + AND ( SIZEOF( [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PLANE_ANGLE_MEASURE_WITH_UNIT' ] * TYPEOF( i ) ) + = 2 ) ) ) ) = 1 ) ) ) ) = 1 ); + 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 ); + END_ENTITY; + + ENTITY direction_shape_representation + SUBTYPE OF ( shape_representation ); + WHERE + wr1: ( SIZEOF( SELF.items ) = 1 ); + wr2: ( SIZEOF( QUERY ( it <* SELF.items | ( NOT ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'DIRECTION' IN TYPEOF( it ) ) ) ) ) = 0 ); + END_ENTITY; + + ENTITY disallowed_assembly_relationship_usage + SUBTYPE OF ( externally_conditioned_data_quality_criterion ); + WHERE + wr1: validate_ecdq_inspected_elements_type( SELF, [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'ASSEMBLY_COMPONENT_USAGE' ] ); + END_ENTITY; + + ENTITY disconnected_face_set + SUBTYPE OF ( erroneous_topology ); + SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_logical_test; + WHERE + wr1: validate_measured_data_type( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.BOOLEAN_VALUE' ); + wr2: validate_inspected_elements_type( SELF, [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'CONNECTED_FACE_SET' ] ); + wr3: validate_locations_of_extreme_value_type( SELF, [] ); + wr4: validate_accuracy_types( SELF, [] ); + END_ENTITY; + + ENTITY discontinuous_geometry + ABSTRACT SUPERTYPE OF ( + ONEOF ( + g1_discontinuous_curve, + g2_discontinuous_curve, + g1_discontinuous_surface, + g2_discontinuous_surface ) ) + SUBTYPE OF ( inapt_geometry ); + END_ENTITY; + + ENTITY div_expression + SUBTYPE OF ( binary_numeric_expression ); + 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 ); + SELF\group_assignment.assigned_group : document_identifier; + items : SET [1 : ?] OF document_identifier_assigned_item; + END_ENTITY; + + ENTITY document_product_association + ABSTRACT SUPERTYPE; + 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 ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PRODUCT_RELATED_PRODUCT_CATEGORY.PRODUCTS' ) | ( prpc.name = 'document' ) ) ) = 1 ) ) ); + wr3: ( ( NOT ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PRODUCT_RELATED_PRODUCT_CATEGORY.PRODUCTS' ) + | ( prpc.name = 'document' ) ) ) = 1 ) ) ); + wr4: ( ( NOT ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 documentation_layer_stratum + SUBTYPE OF ( stratum ); + END_ENTITY; + + ENTITY dose_equivalent_measure_with_unit + SUBTYPE OF ( measure_with_unit ); + WHERE + wr1: ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.ANNOTATION_CURVE_OCCURRENCE' IN + TYPEOF( SELF ) ) ) OR ( SIZEOF( QUERY ( sty <* SELF.styles | ( NOT ( ( SIZEOF( sty.styles ) = 1 ) AND ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CURVE_STYLE' IN TYPEOF( sty.styles[1] ) ) ) ) ) ) + = 0 ) ); + wr2 : ( ( NOT ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.ANNOTATION_FILL_AREA_OCCURRENCE' IN + TYPEOF( SELF ) ) ) OR ( SIZEOF( QUERY ( sty <* SELF.styles | ( NOT ( ( SIZEOF( sty.styles ) = 1 ) AND ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.FILL_AREA_STYLE' IN TYPEOF( sty.styles[1] ) ) ) ) ) ) + = 0 ) ); + wr3 : ( ( NOT ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'STYLED_ITEM.' + + 'ITEM' ) | ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'ANNOTATION_CURVE_OCCURRENCE' ) IN TYPEOF( si ) ) ) ) > 0 ) ) ) ) = 0 ) ); + wr4 : ( ( NOT ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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] ) * [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SYMBOL_STYLE', + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.NULL_STYLE' ] ) = 1 ) ) ) ) ) = 0 ) ); + wr5 : ( ( NOT ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.ANNOTATION_SYMBOL_OCCURRENCE' IN + TYPEOF( SELF ) ) AND ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.ANNOTATION_SYMBOL' IN + TYPEOF( SELF.item ) ) ) ) OR ( SIZEOF( [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'DRAUGHTING_SYMBOL_REPRESENTATION' , 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'DRAUGHTING_SUBFIGURE_REPRESENTATION' ] * TYPEOF( SELF.item\mapped_item.mapping_source.mapped_representation ) ) + = 1 ) ); + wr6 : ( ( NOT ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.ANNOTATION_TEXT_OCCURRENCE' IN TYPEOF( + SELF ) ) ) OR ( SIZEOF( QUERY ( sty <* SELF.styles | ( NOT ( ( SIZEOF( sty.styles ) = 1 ) AND ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.TEXT_STYLE' IN TYPEOF( sty.styles[1] ) ) ) ) ) ) + = 0 ) ); + wr7 : ( ( NOT ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.ANNOTATION_TEXT_OCCURRENCE' IN TYPEOF( + SELF ) ) ) OR ( SIZEOF( TYPEOF( SELF.item ) * [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'COMPOSITE_TEXT' , 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.TEXT_LITERAL'] ) = 1 ) ); + wr8 : ( ( NOT ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.ANNOTATION_TEXT_OCCURRENCE' IN + TYPEOF( SELF ) ) AND ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.COMPOSITE_TEXT' IN + TYPEOF( SELF.item ) ) ) ) OR ( SIZEOF( QUERY ( tl <* SELF.item\composite_text.collected_text | ( NOT ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.TEXT_LITERAL' IN TYPEOF( tl ) ) ) ) ) = 0 ) ); + wr9 : ( ( NOT ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.ANNOTATION_TEXT_OCCURRENCE' IN + TYPEOF( SELF ) ) AND ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.TEXT_LITERAL' IN + TYPEOF( SELF.item ) ) ) ) OR ( SELF.item\text_literal.alignment IN [ 'baseline left', 'baseline centre', + 'baseline right' ] ) ); + wr10: ( ( NOT ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.ANNOTATION_TEXT_OCCURRENCE' IN + TYPEOF( SELF ) ) AND ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.COMPOSITE_TEXT' IN + TYPEOF( SELF.item ) ) ) ) OR ( SIZEOF( QUERY ( tl <* QUERY ( text <* SELF.item\composite_text.collected_text | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.TEXT_LITERAL' IN TYPEOF( text ) ) ) | ( NOT + ( tl\text_literal.alignment IN [ 'baseline left', 'baseline centre', 'baseline right'] ) ) ) ) = 0 ) ); + wr11: ( ( NOT ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.ANNOTATION_TEXT_OCCURRENCE' IN + TYPEOF( SELF ) ) AND ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.COMPOSITE_TEXT' IN + TYPEOF( SELF.item ) ) ) ) OR check_text_alignment( SELF.item ) ); + wr12: ( ( NOT ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.ANNOTATION_TEXT_OCCURRENCE' IN + TYPEOF( SELF ) ) AND ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.COMPOSITE_TEXT' IN + TYPEOF( SELF.item ) ) ) ) OR check_text_font( SELF.item ) ); + wr13: ( ( NOT ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.ANNOTATION_TEXT_OCCURRENCE' IN + TYPEOF( SELF ) ) AND ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.COMPOSITE_TEXT' IN + TYPEOF( SELF.item ) ) ) ) OR ( SIZEOF( QUERY ( tl <* QUERY ( text <* SELF.item\composite_text.collected_text | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.TEXT_LITERAL' IN TYPEOF( text ) ) ) | ( NOT + ( SIZEOF( TYPEOF( tl ) * [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'TEXT_LITERAL_WITH_BLANKING_BOX' , 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'TEXT_LITERAL_WITH_ASSOCIATED_CURVES' ] ) = 0 ) ) ) ) = 0 ) ); + wr14: ( ( NOT ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.ANNOTATION_TEXT_OCCURRENCE' IN + TYPEOF( SELF ) ) AND ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.STYLED_ITEM.ITEM' ) | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.ANNOTATION_CURVE_OCCURRENCE' IN TYPEOF( si ) ) ) ) + > 0 ) ) ) ) = 0 ) ); + wr15: ( ( NOT ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.ANNOTATION_TEXT_OCCURRENCE' IN + TYPEOF( SELF ) ) AND ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.STYLED_ITEM.ITEM' ) | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.ANNOTATION_CURVE_OCCURRENCE' IN TYPEOF( si ) ) ) ) + > 0 ) ) ) ) = 0 ) ); + wr16: ( SIZEOF( QUERY ( cs <* QUERY ( sty <* SELF.styles | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CURVE_STYLE' IN TYPEOF( sty.styles[1] ) ) ) + | ( NOT ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT' IN + TYPEOF( cs.styles[1]\curve_style.curve_width ) ) AND ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.FILL_AREA_STYLE' IN TYPEOF( sty.styles[1] ) ) ) + | ( NOT ( ( SIZEOF( QUERY ( fs <* fas.styles[1]\fill_area_style.fill_styles | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.FILL_AREA_STYLE_TILES' IN TYPEOF( fs ) ) ) ) + <= 1 ) AND ( SIZEOF( QUERY ( fst <* QUERY ( fs <* fas.styles[1]\fill_area_style.fill_styles | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.FILL_AREA_STYLE' IN TYPEOF( sty.styles[1] ) ) ) + | ( NOT ( SIZEOF( QUERY ( fsh <* QUERY ( fs <* fas.styles[1]\fill_area_style.fill_styles | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.TEXT_STYLE' IN TYPEOF( sty.styles[1] ) ) ) + | ( NOT ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'TEXT_STYLE_WITH_BOX_CHARACTERISTICS' ) IN TYPEOF( ts.styles[1] ) ) ) ) ) = 0 ); + wr20: ( SIZEOF( QUERY ( ts <* QUERY ( sty <* SELF.styles | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.TEXT_STYLE_WITH_BOX_CHARACTERISTICS' IN + TYPEOF( sty.styles[1] ) ) ) | ( NOT ( SIZEOF( ts.styles[1]\text_style_with_box_characteristics.characteristics ) = + 4 ) ) ) ) = 0 ); + END_ENTITY; + + ENTITY draughting_callout + SUBTYPE OF ( geometric_representation_item ); + contents : SET [1 : ?] OF draughting_callout_element; + WHERE + wr1: ( ( SIZEOF( QUERY ( l_1 <* SELF\draughting_callout.contents | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LEADER_CURVE' IN TYPEOF( l_1 ) ) ) ) = 0 ) OR + ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LEADER_DIRECTED_CALLOUT' IN TYPEOF( SELF ) ) + AND ( SIZEOF( QUERY ( l_1 <* SELF\draughting_callout.contents | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROJECTION_CURVE' IN TYPEOF( l_1 ) ) ) ) = 0 ) ) + OR ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROJECTION_DIRECTED_CALLOUT' IN TYPEOF( + SELF ) ) AND ( SIZEOF( QUERY ( l_1 <* SELF\draughting_callout.contents | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.DIMENSION_CURVE' IN TYPEOF( l_1 ) ) ) ) = 0 ) ) + OR ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LEADER_CURVE' IN TYPEOF( con ) ) ) | ( NOT ( + SIZEOF( QUERY ( ldc <* USEDIN( l_c, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'DRAUGHTING_CALLOUT.CONTENTS' ) | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'LEADER_DIRECTED_CALLOUT' IN TYPEOF( ldc ) ) ) ) <= 1 ) ) ) ) = 0 ); + wr2: ( ( NOT ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.DIMENSION_CURVE_DIRECTED_CALLOUT' IN + TYPEOF( SELF ) ) ) OR ( SIZEOF( QUERY ( con <* SELF.contents | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROJECTION_CURVE' IN TYPEOF( con ) ) ) ) <= 2 ) ); + wr3: ( SIZEOF( QUERY ( rc <* USEDIN( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'DRAUGHTING_CALLOUT_' + 'RELATIONSHIP.RELATING_DRAUGHTING_CALLOUT' ) | ( ( ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'DIMENSION_CALLOUT_RELATIONSHIP' ) IN + TYPEOF( rc ) ) AND ( rc.name = 'primary' ) ) ) ) <= 1 ); + wr4: ( SIZEOF( QUERY ( rc <* USEDIN( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'DRAUGHTING_CALLOUT_' + 'RELATIONSHIP.RELATING_DRAUGHTING_CALLOUT' ) | ( ( ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'DIMENSION_CALLOUT_RELATIONSHIP' ) IN + TYPEOF( rc ) ) AND ( rc.name = 'secondary' ) ) ) ) <= 1 ); + wr5: ( SIZEOF( QUERY ( sec <* QUERY ( rc <* USEDIN( SELF, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.DRAUGHTING_CALLOUT_' + 'RELATIONSHIP.' + + 'RELATING_DRAUGHTING_CALLOUT' ) | ( ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'DIMENSION_CALLOUT_RELATIONSHIP' ) IN TYPEOF( rc ) ) AND ( rc.name = 'secondary' ) ) ) | ( NOT ( SIZEOF( + QUERY ( prim <* USEDIN( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'DRAUGHTING_CALLOUT_' + 'RELATIONSHIP.RELATING_DRAUGHTING_CALLOUT' ) | ( ( ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MAPPED_ITEM' IN TYPEOF( it ) ) ) | ( NOT ( + SIZEOF( [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION', + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.DRAUGHTING_MODEL' ] * TYPEOF( mi\mapped_item. + mapping_source.mapped_representation ) ) = 1 ) ) ) ) = 0 ); + wr2: ( SIZEOF( QUERY ( smi <* QUERY ( si <* QUERY ( it <* SELF.items | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.STYLED_ITEM' IN TYPEOF( it ) ) ) | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MAPPED_ITEM' IN TYPEOF( si\styled_item.item ) ) ) + | ( NOT ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 : draughting_model_item_definition; + SELF\item_identified_representation_usage.used_representation : annotation_representation_select; + SELF\item_identified_representation_usage.identified_item : draughting_model_item_association_select; + 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 ); + SELF\representation.items : SET [1 : ?] OF draughting_subfigure_representation_item; + WHERE + wr1: ( SIZEOF( QUERY ( item <* SELF\representation.items | ( SIZEOF( [ + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.ANNOTATION_OCCURRENCE' , + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.DRAUGHTING_CALLOUT' ] * TYPEOF( item ) ) = 1 ) ) ) + >= 1 ); + wr2: ( SIZEOF( QUERY ( srm <* QUERY ( rm <* USEDIN( SELF, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'REPRESENTATION_MAP.MAPPED_REPRESENTATION' ) + | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SYMBOL_REPRESENTATION_MAP' IN TYPEOF( rm ) ) ) + | ( NOT ( SIZEOF( QUERY ( a_s <* QUERY ( mi <* srm.map_usage | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.ANNOTATION_SYMBOL' IN TYPEOF( mi ) ) ) | ( + NOT ( SIZEOF( QUERY ( aso <* USEDIN( a_s, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'STYLED_ITEM.ITEM' ) | ( NOT ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'ANNOTATION_SUBFIGURE_OCCURRENCE' IN TYPEOF( aso ) ) ) ) ) = 0 ) ) ) ) = 0 ) ) ) ) > 0 ); + wr3: ( SIZEOF( SELF.context_of_items.representations_in_context ) = 1 ); + END_ENTITY; + + ENTITY draughting_symbol_representation + SUBTYPE OF ( symbol_representation ); + SELF\representation.items : SET [1 : ?] OF draughting_symbol_representation_item; + UNIQUE + ur1 : SELF\representation.name; + WHERE + wr1: ( SIZEOF( QUERY ( item <* SELF\representation.items | ( SIZEOF( TYPEOF( item ) * [ + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.ANNOTATION_CURVE_OCCURRENCE' , + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.ANNOTATION_SYMBOL_OCCURRENCE' , + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.ANNOTATION_FILL_AREA_OCCURRENCE' , + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.ANNOTATION_TEXT_OCCURRENCE' ] ) = 1 ) ) ) >= 1 ); + wr2: ( SIZEOF( QUERY ( item <* SELF\representation.items | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.ANNOTATION_SUBFIGURE_OCCURRENCE' IN TYPEOF( + item ) ) ) ) = 0 ); + wr3: ( SIZEOF( QUERY ( rm <* USEDIN( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'REPRESENTATION_MAP.MAPPED_REPRESENTATION' ) | ( NOT ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SYMBOL_REPRESENTATION_MAP' IN TYPEOF( rm ) ) ) ) ) + = 0 ); + wr4: ( 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_layout + SUBTYPE OF ( draughting_symbol_representation ); + END_ENTITY; + + ENTITY drawing_sheet_revision + SUBTYPE OF ( presentation_area ); + revision_identifier : identifier; + WHERE + wr1: ( SIZEOF( QUERY ( item <* SELF\representation.items | ( ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MAPPED_ITEM' IN TYPEOF( item ) ) AND ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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: ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.DRAWING_SHEET_REVISION' IN TYPEOF( SELF\ + representation_relationship.rep_1 ) ); + wr3: ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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: ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.DRAWING_SHEET_REVISION' IN TYPEOF( SELF\ + area_in_set.area ) ) AND ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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( [ + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.EDGE_BASED_WIREFRAME_MODEL' , + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MAPPED_ITEM' , + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.AXIS2_PLACEMENT_3D' ] * TYPEOF( it ) ) = 1 ) ) ) ) + = 0 ); + wr2: ( SIZEOF( QUERY ( it <* SELF.items | ( SIZEOF( [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'EDGE_BASED_WIREFRAME_MODEL' , 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MAPPED_ITEM'] + * TYPEOF( it ) ) = 1 ) ) ) >= 1 ); + wr3: ( SIZEOF( QUERY ( ebwm <* QUERY ( it <* SELF.items | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.EDGE_CURVE' IN TYPEOF( + edges ) ) ) ) ) = 0 ) ) ) ) = 0 ) ) ) ) = 0 ); + wr4: ( SIZEOF( QUERY ( ebwm <* QUERY ( it <* SELF.items | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.VERTEX_POINT' IN + TYPEOF( edges.edge_start ) ) AND ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.VERTEX_POINT' + IN TYPEOF( edges.edge_end ) ) ) ) ) ) = 0 ) ) ) ) = 0 ) ) ) ) = 0 ); + wr6: ( SIZEOF( QUERY ( ebwm <* QUERY ( it <* SELF.items | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MAPPED_ITEM' IN TYPEOF( it ) ) ) | ( NOT ( ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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_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 edge_round + SUBTYPE OF ( transition_feature ); + WHERE + wr1: ( ( NOT ( SELF\shape_aspect.description = 'constant radius' ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( + SIZEOF( QUERY ( pdr <* USEDIN( pd, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN + TYPEOF( pdr.used_representation ) ) ) ) = 1 ) ) ) ) = 0 ) ); + wr2: ( ( NOT ( SELF\shape_aspect.description = 'constant radius' ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( + SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) + | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN + TYPEOF( pdr.used_representation ) ) ) | ( ( NOT ( SIZEOF( impl_rep.used_representation.items ) >= 1 ) ) AND ( + SIZEOF( impl_rep.used_representation.items ) <= 3 ) ) ) ) = 0 ) ) ) ) = 0 ) ); + wr3: ( ( NOT ( SELF.description = 'constant radius' ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( + SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) + | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN + TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( + SIZEOF( [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( it ) ) = + 2 ) AND ( it.name = 'radius' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ) ); + wr4: ( ( NOT ( SELF.description = 'constant radius' ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( + SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) + | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN + TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( + SIZEOF( [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( it ) ) = + 2 ) AND ( it.name = 'first offset' ) ) ) ) <= 1 ) ) ) ) = 0 ) ) ) ) = 0 ) ); + wr5: ( ( NOT ( SELF.description = 'constant radius' ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( + SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) + | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN + TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( + SIZEOF( [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( it ) ) = + 2 ) AND ( it.name = 'second offset' ) ) ) ) <= 1 ) ) ) ) = 0 ) ) ) ) = 0 ) ); + wr6: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( pdr <* USEDIN( pd, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) + | ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.FACE_SHAPE_REPRESENTATION' IN TYPEOF( pdr + .used_representation ) ) AND ( pdr.used_representation.name = 'edge round face' ) ) ) ) <= 1 ) ) ) ) = 0 ); + wr7: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( pdr <* USEDIN( pd, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) + | ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.FACE_SHAPE_REPRESENTATION' IN TYPEOF( pdr + .used_representation ) ) AND ( pdr.used_representation.name = 'first face shape' ) ) ) ) <= 1 ) ) ) ) = 0 ); + wr8: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( pdr <* USEDIN( pd, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) + | ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.FACE_SHAPE_REPRESENTATION' IN TYPEOF( pdr + .used_representation ) ) AND ( pdr.used_representation.name = 'second face shape' ) ) ) ) <= 1 ) ) ) ) = 0 ); + END_ENTITY; + + ENTITY edge_segment_cross_section + SUBTYPE OF ( shape_definition_3d_intersection ); + END_ENTITY; + + ENTITY edge_segment_vertex + SUBTYPE OF ( shape_aspect ); + WHERE + wr1: ( SELF\shape_aspect.product_definitional = TRUE ); + END_ENTITY; + + ENTITY edge_with_excessive_segments + SUBTYPE OF ( overcomplex_topology_and_geometry_relationship ); + SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; + WHERE + wr1: ( ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' ) + IN TYPEOF( SELF\shape_data_quality_criterion.assessment_specification\ + shape_data_quality_assessment_by_numerical_test.threshold ) ) AND ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.COUNT_MEASURE' IN value_limit_type( SELF\ + shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold ) ) ); + wr2: validate_measured_data_type( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.COUNT_MEASURE' ); + wr3: validate_inspected_elements_type( SELF, [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'EDGE_CURVE' ] ); + wr4: validate_locations_of_extreme_value_type( SELF, [] ); + wr5: validate_accuracy_types( SELF, [] ); + END_ENTITY; + + ENTITY effectivity + SUPERTYPE OF ( + ONEOF ( + serial_numbered_effectivity, + dated_effectivity, + lot_effectivity, + time_interval_based_effectivity ) ); + id : identifier; + DERIVE + name : label := get_name_value( SELF ); + description : text := get_description_value( SELF ); + WHERE + wr1: ( SIZEOF( USEDIN( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'NAME_ATTRIBUTE.' + + 'NAMED_ITEM' ) ) <= 1 ); + wr2: ( SIZEOF( USEDIN( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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: ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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: ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 ) AND ( SELF\named_unit.dimensions.mass_exponent = 0 ) AND ( SELF\ + named_unit.dimensions.time_exponent = 0 ) AND ( SELF\named_unit.dimensions.electric_current_exponent = 1 ) AND ( + SELF\named_unit.dimensions.thermodynamic_temperature_exponent = 0 ) AND ( SELF\named_unit.dimensions. + amount_of_substance_exponent = 0 ) AND ( SELF\named_unit.dimensions.luminous_intensity_exponent = 0 ) ); + END_ENTITY; + + ENTITY electric_potential_measure_with_unit + SUBTYPE OF ( measure_with_unit ); + WHERE + wr1: ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 electrical_isolation_laminate_component + SUBTYPE OF ( material_removal_laminate_component ); + END_ENTITY; + + ENTITY electrical_isolation_removal_template + SUBTYPE OF ( material_removal_feature_template ); + END_ENTITY; + + ENTITY electrical_network + SUBTYPE OF ( functional_unit ); + END_ENTITY; + + ENTITY electromagnetic_compatibility_requirement_allocation + SUPERTYPE OF ( + assembly_shield_allocation ) + SUBTYPE OF ( requirement_assignment ); + END_ENTITY; + + ENTITY elementary_brep_shape_representation + SUBTYPE OF ( shape_representation ); + WHERE + wr1 : ( SIZEOF( QUERY ( it <* SELF.items | ( NOT ( SIZEOF( [ + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MANIFOLD_SOLID_BREP' , + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.FACETED_BREP' , + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MAPPED_ITEM' , + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.AXIS2_PLACEMENT_3D' ] * TYPEOF( it ) ) = 1 ) ) ) ) + = 0 ); + wr2 : ( SIZEOF( QUERY ( it <* SELF.items | ( SIZEOF( [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'MANIFOLD_SOLID_BREP' , 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MAPPED_ITEM'] * + TYPEOF( it ) ) = 1 ) ) ) > 0 ); + wr3 : ( SIZEOF( QUERY ( msb <* QUERY ( it <* SELF.items | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MANIFOLD_SOLID_BREP' IN TYPEOF( it ) ) ) | + ( NOT ( SIZEOF( QUERY ( csh <* msb_shells( msb ) | ( NOT ( SIZEOF( QUERY ( fcs <* csh.cfs_faces | ( NOT ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.FACE_SURFACE' IN TYPEOF( fcs ) ) ) ) ) = 0 ) ) ) ) + = 0 ) ) ) ) = 0 ); + wr4 : ( SIZEOF( QUERY ( msb <* QUERY ( it <* SELF.items | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.ELEMENTARY_SURFACE' IN TYPEOF( fcs\ + face_surface.face_geometry ) ) ) ) ) = 0 ) ) ) ) = 0 ) ) ) ) = 0 ); + wr5 : ( SIZEOF( QUERY ( msb <* QUERY ( it <* SELF.items | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.EDGE_LOOP' IN TYPEOF( bnds.bound ) ) ) | ( + NOT ( SIZEOF( QUERY ( oe <* elp_fbnds.bound\path.edge_list | ( NOT ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.EDGE_CURVE' IN TYPEOF( oe.edge_element ) ) ) ) ) + = 0 ) ) ) ) = 0 ) ) ) ) = 0 ) ) ) ) = 0 ) ) ) ) = 0 ); + wr6 : ( SIZEOF( QUERY ( msb <* QUERY ( it <* SELF.items | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.EDGE_LOOP' IN TYPEOF( bnds.bound ) ) ) | ( + NOT ( SIZEOF( QUERY ( oe <* elp_fbnds.bound\path.edge_list | ( NOT ( SIZEOF( [ + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LINE' , + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CONIC' , + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.EDGE_LOOP' IN TYPEOF( bnds.bound ) ) ) | ( + NOT ( SIZEOF( QUERY ( oe <* elp_fbnds.bound\path.edge_list | ( NOT ( ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.VERTEX_POINT' IN TYPEOF( oe.edge_start ) ) + AND ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.VERTEX_POINT' IN TYPEOF( oe.edge_end ) ) ) ) ) ) + = 0 ) ) ) ) = 0 ) ) ) ) = 0 ) ) ) ) = 0 ) ) ) ) = 0 ); + wr8 : ( SIZEOF( QUERY ( msb <* QUERY ( it <* SELF.items | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.EDGE_LOOP' IN TYPEOF( bnds.bound ) ) ) | ( + NOT ( SIZEOF( QUERY ( oe <* elp_fbnds.bound\path.edge_list | ( ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'MANIFOLD_SOLID_BREP' IN TYPEOF( it ) ) ) | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.ORIENTED_CLOSED_SHELL' IN TYPEOF( msb\ + manifold_solid_brep.outer ) ) ) ) = 0 ); + wr10: ( SIZEOF( QUERY ( brv <* QUERY ( it <* items | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'MAPPED_ITEM' IN TYPEOF( it ) ) ) | ( NOT ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.ELEMENTARY_BREP_SHAPE_REPRESENTATION' IN + TYPEOF( mi\mapped_item.mapping_source.mapped_representation ) ) ) ) ) = 0 ); + wr12: ( SIZEOF( QUERY ( msb <* QUERY ( it <* SELF.items | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.VERTEX_LOOP' IN TYPEOF( bnds.bound ) ) ) | + ( NOT ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.VERTEX_POINT' IN TYPEOF( vlp_fbnds\ + face_bound.bound\vertex_loop.loop_vertex ) ) AND ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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_function + SUBTYPE OF ( maths_function, generic_literal ); + func_id : elementary_function_enumerators; + END_ENTITY; + + ENTITY elementary_space + SUBTYPE OF ( maths_space, generic_literal ); + space_id : elementary_space_enumerators; + 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 elliptic_area + SUBTYPE OF ( primitive_2d ); + position : axis2_placement_2d; + 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: ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 entirely_narrow_face + SUBTYPE OF ( topology_related_to_nearly_degenerate_geometry ); + SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_logical_test; + width_tolerance : length_measure; + WHERE + wr1: validate_measured_data_type( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.BOOLEAN_VALUE' ); + wr2: validate_inspected_elements_type( SELF, [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'FACE_SURFACE' ] ); + wr3: validate_locations_of_extreme_value_type( SELF, [] ); + wr4: validate_accuracy_types( SELF, [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE'] ); + END_ENTITY; + + ENTITY entirely_narrow_solid + SUBTYPE OF ( inapt_manifold_solid_brep ); + SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_logical_test; + width_tolerance : length_measure; + WHERE + wr1: validate_measured_data_type( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.BOOLEAN_VALUE' ); + wr2: validate_inspected_elements_type( SELF, [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'MANIFOLD_SOLID_BREP' ] ); + wr3: validate_locations_of_extreme_value_type( SELF, [] ); + wr4: validate_accuracy_types( SELF, [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE'] ); + END_ENTITY; + + ENTITY entirely_narrow_surface + SUBTYPE OF ( nearly_degenerate_geometry ); + SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_logical_test; + width_tolerance : length_measure; + WHERE + wr1: validate_measured_data_type( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.BOOLEAN_VALUE' ); + wr2: validate_inspected_elements_type( SELF, [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'BOUNDED_SURFACE' ] ); + wr3: validate_locations_of_extreme_value_type( SELF, [] ); + wr4: validate_accuracy_types( SELF, [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE'] ); + 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 equal_parameter_constraint + SUBTYPE OF ( defined_constraint ); + SELF\explicit_constraint.constrained_elements : SET [1 : ?] OF variational_parameter; + SELF\explicit_constraint.reference_elements : SET [0 : 1] OF variational_parameter; + WHERE + wr1: ( SIZEOF( SELF\explicit_constraint.constrained_elements + SELF\explicit_constraint.reference_elements ) >= 2 ); + END_ENTITY; + + ENTITY equals_expression + SUBTYPE OF ( binary_boolean_expression ); + END_ENTITY; + + ENTITY equivalent_stackup_model_definition + SUBTYPE OF ( product_definition, product_definition_relationship ); + SELF\product_definition_relationship.relating_product_definition : stratum_stack_model; + SELF\product_definition_relationship.related_product_definition : stratum_stack_model; + DERIVE + equivalent_stackup_model : stratum_stack_model := SELF\product_definition_relationship.related_product_definition; + primary_stackup_model : stratum_stack_model := SELF\product_definition_relationship.relating_product_definition; + WHERE + wr1: ( primary_stackup_model :<>: equivalent_stackup_model ); + END_ENTITY; + + ENTITY equivalent_sub_stack_definition + SUBTYPE OF ( product_definition ); + END_ENTITY; + + ENTITY erroneous_b_spline_curve_definition + SUBTYPE OF ( erroneous_geometry ); + SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_logical_test; + WHERE + wr1: validate_measured_data_type( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.BOOLEAN_VALUE' ); + wr2: validate_inspected_elements_type( SELF, [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'B_SPLINE_CURVE_WITH_KNOTS' ] ); + wr3: validate_locations_of_extreme_value_type( SELF, [] ); + wr4: validate_accuracy_types( SELF, [] ); + END_ENTITY; + + ENTITY erroneous_b_spline_surface_definition + SUBTYPE OF ( erroneous_geometry ); + SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_logical_test; + WHERE + wr1: validate_measured_data_type( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.BOOLEAN_VALUE' ); + wr2: validate_inspected_elements_type( SELF, [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'B_SPLINE_SURFACE_WITH_KNOTS' ] ); + wr3: validate_locations_of_extreme_value_type( SELF, [] ); + wr4: validate_accuracy_types( SELF, [] ); + END_ENTITY; + + ENTITY erroneous_data + ABSTRACT SUPERTYPE OF ( + ONEOF ( + erroneous_topology, + erroneous_geometry, + erroneous_topology_and_geometry_relationship, + erroneous_manifold_solid_brep ) ) + SUBTYPE OF ( shape_data_quality_criterion ); + END_ENTITY; + + ENTITY erroneous_geometry + ABSTRACT SUPERTYPE OF ( + ONEOF ( + inconsistent_curve_transition_code, + erroneous_b_spline_curve_definition, + inconsistent_surface_transition_code, + erroneous_b_spline_surface_definition ) ) + SUBTYPE OF ( erroneous_data ); + END_ENTITY; + + ENTITY erroneous_manifold_solid_brep + ABSTRACT SUPERTYPE OF ( + ONEOF ( + wrongly_oriented_void, + wrongly_placed_void, + intersecting_shells_in_solid, + solid_with_wrong_number_of_voids ) ) + SUBTYPE OF ( erroneous_data ); + END_ENTITY; + + ENTITY erroneous_topology + ABSTRACT SUPERTYPE OF ( + ONEOF ( + open_edge_loop, + open_closed_shell, + inconsistent_adjacent_face_normals, + disconnected_face_set ) ) + SUBTYPE OF ( erroneous_data ); + END_ENTITY; + + ENTITY erroneous_topology_and_geometry_relationship + ABSTRACT SUPERTYPE OF ( + ONEOF ( + inconsistent_edge_and_curve_directions, + inconsistent_face_and_surface_normals, + inconsistent_face_and_closed_shell_normals, + intersecting_loops_in_face, + wrongly_placed_loop ) ) + SUBTYPE OF ( erroneous_data ); + 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_characteristic_of_product_as_individual_test_result + SUBTYPE OF ( evaluated_characteristic ); + 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 excessive_use_of_groups + SUBTYPE OF ( externally_conditioned_data_quality_criterion ); + WHERE + wr1: validate_ecdq_inspected_elements_type( SELF, [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'GROUP' ] ); + END_ENTITY; + + ENTITY excessive_use_of_layers + SUBTYPE OF ( externally_conditioned_data_quality_criterion ); + WHERE + wr1: validate_ecdq_inspected_elements_type( SELF, [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PRESENTATION_LAYER_ASSIGNMENT' ] ); + END_ENTITY; + + ENTITY excessively_high_degree_curve + SUBTYPE OF ( overcomplex_geometry ); + SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; + WHERE + wr1: ( ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' ) + IN TYPEOF( SELF\shape_data_quality_criterion.assessment_specification\ + shape_data_quality_assessment_by_numerical_test.threshold ) ) AND ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.COUNT_MEASURE' IN value_limit_type( SELF\ + shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold ) ) ); + wr2: validate_measured_data_type( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.COUNT_MEASURE' ); + wr3: validate_inspected_elements_type( SELF, [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'B_SPLINE_CURVE' ] ); + wr4: validate_locations_of_extreme_value_type( SELF, [] ); + wr5: validate_accuracy_types( SELF, [] ); + END_ENTITY; + + ENTITY excessively_high_degree_surface + SUBTYPE OF ( overcomplex_geometry ); + SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; + WHERE + wr1: ( ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' ) + IN TYPEOF( SELF\shape_data_quality_criterion.assessment_specification\ + shape_data_quality_assessment_by_numerical_test.threshold ) ) AND ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.COUNT_MEASURE' IN value_limit_type( SELF\ + shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold ) ) ); + wr2: validate_measured_data_type( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.COUNT_MEASURE' ); + wr3: validate_inspected_elements_type( SELF, [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'B_SPLINE_SURFACE' ] ); + wr4: validate_locations_of_extreme_value_type( SELF, [] ); + wr5: validate_accuracy_types( SELF, [] ); + 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 exp_function + SUBTYPE OF ( unary_function_call ); + END_ENTITY; + + ENTITY expanded_uncertainty + SUBTYPE OF ( standard_uncertainty ); + coverage_factor : REAL; + END_ENTITY; + + ENTITY explicit_constraint + ABSTRACT SUPERTYPE OF ( + ONEOF ( + defined_constraint, + free_form_constraint ) ) + SUBTYPE OF ( variational_representation_item ); + description : OPTIONAL text; + constrained_elements : SET [1 : ?] OF representation_item; + reference_elements : SET [0 : ?] OF representation_item; + WHERE + wr1: ( SIZEOF( constrained_elements * reference_elements ) = 0 ); + END_ENTITY; + + ENTITY explicit_geometric_constraint + ABSTRACT SUPERTYPE OF ( + ONEOF ( + fixed_element_geometric_constraint, + parallel_geometric_constraint, + point_distance_geometric_constraint, + skew_line_distance_geometric_constraint, + curve_distance_geometric_constraint, + surface_distance_geometric_constraint, + radius_geometric_constraint, + curve_length_geometric_constraint, + parallel_offset_geometric_constraint, + angle_geometric_constraint, + perpendicular_geometric_constraint, + incidence_geometric_constraint, + coaxial_geometric_constraint, + tangent_geometric_constraint, + symmetry_geometric_constraint, + swept_point_curve_geometric_constraint, + swept_curve_surface_geometric_constraint, + curve_smoothness_geometric_constraint, + surface_smoothness_geometric_constraint ) ) + SUBTYPE OF ( defined_constraint, geometric_representation_item ); + SELF\explicit_constraint.constrained_elements : SET [1 : ?] OF geometric_representation_item; + SELF\explicit_constraint.reference_elements : SET [0 : ?] OF geometric_representation_item; + END_ENTITY; + + ENTITY explicit_procedural_geometric_representation_item_relationship + SUBTYPE OF ( explicit_procedural_representation_item_relationship ); + SELF\representation_item_relationship.relating_representation_item : procedural_shape_representation_sequence; + SELF\representation_item_relationship.related_representation_item : geometric_representation_item; + WHERE + wr1: ( NOT ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROCEDURAL_REPRESENTATION' IN TYPEOF( + SELF\representation_relationship.rep_2 ) ) ) AND ( NOT ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 explicit_table_function + ABSTRACT SUPERTYPE OF ( + ONEOF ( + listed_data, + externally_listed_data, + linearized_table_function, + basic_sparse_matrix ) ) + SUBTYPE OF ( maths_function ); + index_base : zero_or_one; + shape : LIST [1 : ?] OF positive_integer; + END_ENTITY; + + ENTITY expression + ABSTRACT SUPERTYPE OF ( + ONEOF ( + numeric_expression, + boolean_expression, + string_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 expression_denoted_function + SUBTYPE OF ( maths_function, unary_generic_expression ); + DERIVE + expr : generic_expression := SELF\unary_generic_expression.operand; + WHERE + wr1: ( ( schema_prefix + 'FUNCTION_SPACE' ) IN TYPEOF( values_space_of( expr ) ) ); + END_ENTITY; + + ENTITY expression_extension_numeric + SUBTYPE OF ( measure_with_unit, numeric_expression ); + END_ENTITY; + + ENTITY expression_extension_string + SUBTYPE OF ( measure_with_unit, string_expression ); + END_ENTITY; + + ENTITY expression_extension_to_select; + type_expression_associated : expression_extension_select; + END_ENTITY; + + ENTITY extended_tuple_space + SUBTYPE OF ( maths_space, generic_literal ); +(* next line replaced by the line thereafter as patch for BZ#5052 + base : product_space; *) + base : tuple_space; + extender : maths_space; + WHERE + wr1: ( expression_is_constant( base ) AND expression_is_constant( extender ) ); + wr2: no_cyclic_space_reference( SELF, [] ); + wr3: ( extender <> the_empty_space ); + 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, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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_conditioned_data_quality_criteria_representation + SUBTYPE OF ( data_quality_criteria_representation ); + WHERE + wr1: ( SIZEOF( QUERY ( q <* SELF\representation.items | ( ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'EXTERNALLY_CONDITIONED_DATA_QUALITY_CRITERION' ) IN TYPEOF( q ) ) ) ) > 0 ); + END_ENTITY; + + ENTITY externally_conditioned_data_quality_criterion + SUBTYPE OF ( data_quality_criterion, data_quality_measurement_requirement ); + WHERE + wr1: ( SIZEOF( USEDIN( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'DATA_QUALITY_CRITERION_ASSESSMENT_ASSOCIATION.' + 'CRITERION' ) ) = 0 ); + wr2: ( SIZEOF( QUERY ( i1 <* bag_to_set( USEDIN( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'REPRESENTATION_ITEM_RELATIONSHIP.' + 'RELATED_REPRESENTATION_ITEM' ) ) | ( ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'DATA_QUALITY_CRITERION_MEASUREMENT_ASSOCIATION' ) IN TYPEOF( i1 ) ) ) ) = 0 ); + wr3: ( SIZEOF( QUERY ( i1 <* bag_to_set( USEDIN( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'REPRESENTATION_ITEM_RELATIONSHIP.' + 'RELATING_REPRESENTATION_ITEM' ) ) | ( ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'DATA_QUALITY_CRITERION_MEASUREMENT_ASSOCIATION' ) IN TYPEOF( i1 ) ) ) ) = 0 ); + END_ENTITY; + + ENTITY externally_conditioned_data_quality_inspection_instance_report_item + SUBTYPE OF ( data_quality_inspection_instance_report_item ); + SELF\data_quality_inspection_instance_report_item.inspected_elements : SET [1 : ?] OF inspected_ecdq_element_select; + WHERE + wr1: ( SIZEOF( QUERY ( i1 <* bag_to_set( USEDIN( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'DATA_QUALITY_INSPECTION_INSTANCE_REPORT.' + 'INSPECTED_INSTANCES' ) ) | ( NOT ( ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'EXTERNALLY_CONDITIONED_DATA_QUALITY_INSPECTION_RESULT' ) IN TYPEOF( i1.inspection_result ) ) ) ) ) = 0 ); + END_ENTITY; + + ENTITY externally_conditioned_data_quality_inspection_result + SUBTYPE OF ( data_quality_inspection_result ); + WHERE + wr1: ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'EXTERNALLY_CONDITIONED_DATA_QUALITY_CRITERION' ) IN TYPEOF( SELF\data_quality_inspection_result. + criterion_inspected ) ); + END_ENTITY; + + ENTITY externally_conditioned_data_quality_inspection_result_representation + SUBTYPE OF ( data_quality_inspection_result_representation ); + WHERE + wr1: ( SIZEOF( QUERY ( q <* SELF\representation.items | ( ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'EXTERNALLY_CONDITIONED_DATA_QUALITY_INSPECTION_RESULT' ) IN TYPEOF( q ) ) ) ) > 0 ); + END_ENTITY; + + ENTITY externally_defined_character_glyph + SUBTYPE OF ( externally_defined_item ); + 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, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'APPLIED_DOCUMENT_REFERENCE.ITEMS' ) | ( adr.assigned_document.description = + 'external size dimension specification' ) ) ) ); + END_ENTITY; + + ENTITY externally_defined_feature_definition + SUBTYPE OF ( feature_definition, externally_defined_item ); + WHERE + wr1 : ( ( ( SELF\characterized_object.description = 'thread' ) AND ( SELF\externally_defined_item.item_id = 'external thread' ) + AND ( SELF\externally_defined_item.source.source_id = 'external feature specification' ) ) OR ( ( SELF\ + characterized_object.description = 'gear' ) AND ( SELF\externally_defined_item.item_id = 'external gear' ) AND ( + SELF\externally_defined_item.source.source_id = 'external feature specification' ) ) OR ( ( SELF\ + characterized_object.description = 'marking' ) AND ( SELF\externally_defined_item.item_id = 'external marking' ) + AND ( SELF\externally_defined_item.source.source_id = 'external feature specification' ) ) OR ( ( SELF\ + characterized_object.description = 'knurl' ) AND ( SELF\externally_defined_item.item_id = 'external knurl' ) AND + ( SELF\externally_defined_item.source.source_id = 'external feature specification' ) ) ); + wr2 : ( ( NOT ( SELF\characterized_object.description = 'thread' ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( + SIZEOF( QUERY ( pdr <* USEDIN( pd, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN + TYPEOF( pdr.used_representation ) ) AND ( 5 <= SIZEOF( pdr.used_representation.items ) ) AND ( SIZEOF( pdr. + used_representation.items ) <= 10 ) ) ) ) = 1 ) ) ) = 1 ) ); + wr3 : ( ( NOT ( SELF\characterized_object.description = 'marking' ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( + SIZEOF( QUERY ( pdr <* USEDIN( pd, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN + TYPEOF( pdr.used_representation ) ) AND ( SIZEOF( pdr.used_representation.items ) = 2 ) ) ) ) = 1 ) ) ) = 1 ) ); + wr4 : ( ( NOT ( SELF\characterized_object.description = 'knurl' ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( + SIZEOF( QUERY ( pdr <* USEDIN( pd, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN + TYPEOF( pdr.used_representation ) ) AND ( SIZEOF( pdr.used_representation.items ) = 1 ) ) ) ) = 1 ) ) ) = 1 ) ); + wr5 : ( ( NOT ( SELF\characterized_object.description IN [ 'knurl', 'thread'] ) ) OR ( SIZEOF( QUERY ( pds <* + QUERY ( pd <* USEDIN( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION.DEFINITION' ) | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) | ( NOT ( SIZEOF( QUERY ( sa_occ <* USEDIN( pds, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) | ( ( sa_occ. + description = 'partial area occurrence' ) AND ( SIZEOF( QUERY ( sdr <* QUERY ( sar <* USEDIN( sa_occ, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.' + + 'RELATED_SHAPE_ASPECT' ) | ( ( sar.description = 'applied area usage' ) AND ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF( sar ) ) ) ) + | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.APPLIED_AREA' IN TYPEOF( sdr. + relating_shape_aspect ) ) ) ) = 1 ) ) ) ) <= 1 ) ) ) ) = 0 ) ); + wr6 : ( ( NOT ( SELF\characterized_object.description = 'marking' ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( + SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) + | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN + TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF( + it ) ) AND ( it.name = 'marking text' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ) ); + wr7 : ( ( NOT ( SELF\characterized_object.description = 'thread' ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( + SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) + | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN + TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF( + it ) ) AND ( it.name = 'removal direction' ) AND ( ( it.description = 'internal' ) OR ( it.description = 'external' ) ) ) ) ) + = 1 ) ) ) ) = 0 ) ) ) ) = 0 ) ); + wr8 : ( ( NOT ( SELF\characterized_object.description = 'thread' ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( + SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) + | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN + TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF( + it ) ) AND ( it.name = 'qualifier' ) ) ) ) <= 1 ) ) ) ) = 0 ) ) ) ) = 0 ) ); + wr9 : ( ( NOT ( SELF\characterized_object.description = 'thread' ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( + SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) + | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN + TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF( + it ) ) AND ( it.name = 'hand' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ) ); + wr10: ( ( NOT ( SELF\characterized_object.description = 'thread' ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( + SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) + | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN + TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF( + it ) ) AND ( it.name = 'fit class' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ) ); + wr11: ( ( NOT ( SELF\characterized_object.description = 'thread' ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( + SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) + | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN + TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF( + it ) ) AND ( it.name = 'form' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ) ); + wr12: ( ( NOT ( SELF\characterized_object.description = 'thread' ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( + SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) + | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN + TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( + SIZEOF( [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( it ) ) + = 2 ) AND ( it.name = 'major diameter' ) ) ) ) <= 1 ) ) ) ) = 0 ) ) ) ) = 0 ) ); + wr13: ( ( NOT ( SELF\characterized_object.description = 'thread' ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( + SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) + | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN + TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( + SIZEOF( [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.RATIO_MEASURE_WITH_UNIT' ] * TYPEOF( it ) ) = + 2 ) AND ( it.name = 'number of threads' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ) ); + wr14: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) + | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN + TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF( + it ) ) AND ( it.name = 'fit class 2' ) ) ) ) <= 1 ) ) ) ) = 0 ) ) ) ) = 0 ); + wr15: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) + | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN + TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( + SIZEOF( [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( it ) ) + = 2 ) AND ( it.name = 'nominal size' ) ) ) ) <= 1 ) ) ) ) = 0 ) ) ) ) = 0 ); + wr16: ( ( NOT ( SELF\characterized_object.description IN [ 'knurl', 'gear', 'thread'] ) ) OR ( SIZEOF( QUERY ( pds <* + QUERY ( pd <* USEDIN( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION.DEFINITION' ) | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) | ( NOT ( SIZEOF( QUERY ( sa_occ <* USEDIN( pds, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) | ( SIZEOF( + QUERY ( sdr <* QUERY ( sar <* USEDIN( sa_occ, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'SHAPE_ASPECT_RELATIONSHIP.' + 'RELATED_SHAPE_ASPECT' ) | ( ( sar.description = 'applied shape' ) AND ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF( sar ) ) ) ) + | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT' IN TYPEOF( sdr. + relating_shape_aspect ) ) ) ) = 1 ) ) ) <= 1 ) ) ) ) = 0 ) ); + wr17: ( ( NOT ( SELF\characterized_object.description IN [ 'gear'] ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( + SIZEOF( QUERY ( pdr <* USEDIN( pd, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN + TYPEOF( pdr.used_representation ) ) AND ( 10 <= SIZEOF( pdr.used_representation.items ) ) AND ( SIZEOF( pdr. + used_representation.items ) >= 11 ) ) ) ) = 1 ) ) ) = 1 ) ); + wr18: ( ( NOT ( SELF\characterized_object.description IN [ 'gear'] ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( + SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) + | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN + TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( + SIZEOF( [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.RATIO_MEASURE_WITH_UNIT' ] * TYPEOF( it ) ) = + 2 ) AND ( it.name = 'number of teeth' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ) ); + wr19: ( ( NOT ( SELF\characterized_object.description IN [ 'gear'] ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( + SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) + | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN + TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( + SIZEOF( [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PLANE_ANGLE_MEASURE_WITH_UNIT' ] * TYPEOF( it ) ) + = 2 ) AND ( it.name = 'reference pressure angle' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ) ); + wr20: ( ( NOT ( SELF\characterized_object.description IN [ 'gear'] ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( + SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) + | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN + TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( + SIZEOF( [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( it ) ) + = 2 ) AND ( it.name = 'rake shift factor' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ) ); + wr21: ( ( NOT ( SELF\characterized_object.description IN [ 'gear'] ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( + SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) + | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN + TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( + SIZEOF( [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( it ) ) + = 2 ) AND ( it.name = 'nominal tooth depth' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ) ); + wr22: ( ( NOT ( SELF\characterized_object.description IN [ 'gear'] ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( + SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) + | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN + TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( + SIZEOF( [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( it ) ) + = 2 ) AND ( it.name = 'face width' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ) ); + wr23: ( ( NOT ( SELF\characterized_object.description IN [ 'gear'] ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( + SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) + | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN + TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( + SIZEOF( [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( it ) ) + = 2 ) AND ( it.name = 'tip diameter' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ) ); + wr24: ( ( NOT ( SELF\characterized_object.description IN [ 'gear'] ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( + SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) + | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN + TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF( + it ) ) AND ( it.name = 'module or diametral pitch' ) AND ( ( it.description = 'module' ) OR ( it.description = + 'diametral pitch' ) ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ) ); + wr25: ( ( NOT ( SELF\characterized_object.description IN [ 'gear'] ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( + SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) + | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN + TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( + SIZEOF( [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( it ) ) + = 2 ) AND ( it.name = 'normal attribute' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ) ); + wr26: ( ( NOT ( SELF\characterized_object.description IN [ 'gear'] ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( + SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) + | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN + TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF( + it ) ) AND ( it.name = 'internal or external gear' ) AND ( ( it.description = 'internal' ) OR ( it.description = + 'external' ) ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ) ); + wr27: ( ( NOT ( SELF\characterized_object.description IN [ 'gear'] ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( + SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) + | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN + TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( + SIZEOF( [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PLANE_ANGLE_MEASURE_WITH_UNIT' ] * TYPEOF( it ) ) + = 2 ) AND ( it.name = 'root fillet radius' ) ) ) ) <= 1 ) ) ) ) = 0 ) ) ) ) = 0 ) ); + 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_item_with_multiple_references + SUBTYPE OF ( externally_defined_item ); + references : LIST [1 : ?] OF UNIQUE source_item; + UNIQUE + ur1 : references; + WHERE + wr1: ( NOT ( SELF\externally_defined_item.item_id IN references ) ); + END_ENTITY; + + ENTITY externally_defined_marker + SUBTYPE OF ( externally_defined_symbol, pre_defined_marker ); + END_ENTITY; + + ENTITY externally_defined_physical_network_group + SUBTYPE OF ( physical_network_group ); + END_ENTITY; + + ENTITY externally_defined_physical_network_group_element_relationship + SUBTYPE OF ( physical_network_group_element_relationship ); + 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 + SUBTYPE OF ( representation, externally_defined_item ); + SELF\representation.items : SET [1 : ?] OF externally_defined_representation_item; + 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_style + SUBTYPE OF ( externally_defined_item, founded_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 externally_listed_data + SUBTYPE OF ( explicit_table_function, generic_literal, externally_defined_item ); + value_range : maths_space; + WHERE + wr1: expression_is_constant( value_range ); + END_ENTITY; + + ENTITY extreme_instance; + locations_of_extreme_value : SET [1 : ?] OF location_of_extreme_value_select; + measured_value : measured_value_select; + END_ENTITY; + + ENTITY extreme_patch_width_variation + SUBTYPE OF ( geometry_with_local_irregularity ); + SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; + WHERE + wr1: ( ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' ) + IN TYPEOF( SELF\shape_data_quality_criterion.assessment_specification\ + shape_data_quality_assessment_by_numerical_test.threshold ) ) AND ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.RATIO_MEASURE' IN value_limit_type( SELF\ + shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold ) ) ); + wr2: validate_measured_data_type( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.RATIO_MEASURE' ); + wr3: validate_inspected_elements_type( SELF, [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'B_SPLINE_SURFACE' ] ); + wr4: validate_locations_of_extreme_value_type( SELF, [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'B_SPLINE_SURFACE_KNOT_LOCATOR'] ); + wr5: validate_accuracy_types( SELF, [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE'] ); + 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 ); + 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 ); + 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 ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PLANE_ANGLE_MEASURE' IN TYPEOF( + first_trim_condition ) ) OR ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PLANE_ANGLE_MEASURE' IN TYPEOF( second_trim_condition ) ) ) ); + wr2: ( NOT ( ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE' IN TYPEOF( + first_trim_condition ) ) AND ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE' + IN TYPEOF( second_trim_condition ) ) AND ( first_trim_condition = second_trim_condition ) ) ); + END_ENTITY; + + ENTITY fabrication_joint + SUBTYPE OF ( component_feature_joint ); + WHERE + wr1: acyclic_shape_aspect_relationship( SELF, [SELF\shape_aspect_relationship.related_shape_aspect], + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'FABRICATION_JOINT' ); + 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 | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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_shape_representation + SUBTYPE OF ( shape_representation ); + WHERE + wr1: ( SIZEOF( SELF.items ) >= 1 ); + wr2: ( SIZEOF( QUERY ( it <* SELF.items | ( NOT ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'FACE_SURFACE' IN TYPEOF( it ) ) OR ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'ORIENTED_FACE' IN TYPEOF( it ) ) ) ) ) ) = 0 ); + END_ENTITY; + + ENTITY face_shape_representation_relationship + SUBTYPE OF ( representation_relationship ); + WHERE + wr1: ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.FACE_SHAPE_REPRESENTATION' IN TYPEOF( SELF.rep_1 ) ); + wr2: ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.FACE_SHAPE_REPRESENTATION' IN TYPEOF( SELF.rep_2 ) ); + END_ENTITY; + + ENTITY face_surface + SUBTYPE OF ( face, geometric_representation_item ); + face_geometry : surface; + same_sense : BOOLEAN; + WHERE + wr1: ( NOT ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.ORIENTED_SURFACE' IN TYPEOF( face_geometry ) ) ); + END_ENTITY; + + ENTITY face_surface_with_excessive_patches_in_one_direction + SUBTYPE OF ( overcomplex_topology_and_geometry_relationship ); + SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; + WHERE + wr1: ( ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' ) + IN TYPEOF( SELF\shape_data_quality_criterion.assessment_specification\ + shape_data_quality_assessment_by_numerical_test.threshold ) ) AND ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.COUNT_MEASURE' IN value_limit_type( SELF\ + shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold ) ) ); + wr2: validate_measured_data_type( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.COUNT_MEASURE' ); + wr3: validate_inspected_elements_type( SELF, [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'FACE_SURFACE' ] ); + wr4: validate_locations_of_extreme_value_type( SELF, [] ); + wr5: validate_accuracy_types( SELF, [] ); + 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( [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'FACETED_BREP' , 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MAPPED_ITEM', + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.AXIS2_PLACEMENT_3D' ] * TYPEOF( it ) ) = 1 ) ) ) ) + = 0 ); + wr2: ( SIZEOF( QUERY ( it <* items | ( SIZEOF( [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'FACETED_BREP' , 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MAPPED_ITEM'] * TYPEOF( it ) ) + = 1 ) ) ) > 0 ); + wr3: ( SIZEOF( QUERY ( fbrep <* QUERY ( it <* items | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 ( ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.FACE_SURFACE' IN TYPEOF( fcs ) ) AND ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PLANE' IN TYPEOF( fcs\face_surface. + face_geometry ) ) AND ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.FACE_OUTER_BOUND' IN TYPEOF( bnds ) ) ) ) = 1 ) ) ) ) + = 0 ) ) ) ) = 0 ) ) ) ) = 0 ); + wr5: ( SIZEOF( QUERY ( msb <* QUERY ( it <* items | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'MANIFOLD_SOLID_BREP' IN TYPEOF( it ) ) ) | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.ORIENTED_CLOSED_SHELL' IN TYPEOF( msb\ + manifold_solid_brep.outer ) ) ) ) = 0 ); + wr6: ( SIZEOF( QUERY ( brv <* QUERY ( it <* items | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'MAPPED_ITEM' IN TYPEOF( it ) ) ) | ( NOT ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 feature_component_definition + SUBTYPE OF ( characterized_object ); + WHERE + wr1: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( USEDIN( pd, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) ) = 1 ) ) ) ) = 0 ); + END_ENTITY; + + ENTITY feature_component_relationship + SUPERTYPE OF ( + ONEOF ( + pattern_omit_membership, + pattern_offset_membership ) ) + SUBTYPE OF ( shape_aspect_relationship ); + WHERE + wr1: ( ( SIZEOF( [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.COMPOSITE_SHAPE_ASPECT', + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.REPLICATE_FEATURE' , + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.TRANSITION_FEATURE' , + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MODIFIED_PATTERN' ] * TYPEOF( SELF. + relating_shape_aspect ) ) = 1 ) OR ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'MACHINING_FEATURE_DEFINITION' IN TYPEOF( SELF.relating_shape_aspect.of_shape.definition ) ) OR ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.FEATURE_COMPONENT_DEFINITION' IN TYPEOF( SELF + .relating_shape_aspect.of_shape.definition ) ) ); + END_ENTITY; + + ENTITY feature_definition + SUPERTYPE OF ( + ONEOF ( + boss, + compound_feature, + externally_defined_feature_definition, + flat_face, + gear, + marking, + outer_round, + outside_profile, + pocket, + protrusion, + removal_volume, + replicate_feature, + revolved_profile, + rib_top, + round_hole, + rounded_end, + spherical_cap, + step, + slot, + thread, + turned_knurl ) ) + SUBTYPE OF ( characterized_object ); + END_ENTITY; + + ENTITY feature_definition_with_connection_area + SUBTYPE OF ( shape_feature_definition ); + END_ENTITY; + + ENTITY feature_for_datum_target_relationship + SUBTYPE OF ( shape_aspect_relationship ); + SELF\shape_aspect_relationship.related_shape_aspect : datum_target; + UNIQUE + ur1 : related_shape_aspect; + WHERE + wr1: ( relating_shape_aspect.of_shape :=: related_shape_aspect.of_shape ); + wr2: ( relating_shape_aspect\shape_aspect.product_definitional = TRUE ); + END_ENTITY; + + ENTITY feature_in_panel + SUBTYPE OF ( feature_definition ); + WHERE + wr1 : ( SELF.description IN [ 'pocket', 'boss', 'stairstep'] ); + wr2 : ( SIZEOF( QUERY ( pdr <* get_property_definition_representations( SELF ) | ( ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN + TYPEOF( pdr.used_representation ) ) AND ( NOT ( ( 2 <= SIZEOF( pdr.used_representation.items ) ) AND ( SIZEOF( pdr + .used_representation.items ) <= 3 ) ) ) ) ) ) = 0 ); + wr3 : ( SIZEOF( QUERY ( pdr <* get_property_definition_representations( SELF ) | ( ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN + TYPEOF( pdr.used_representation ) ) AND ( SIZEOF( QUERY ( i <* pdr.used_representation.items | ( NOT ( i.name IN [ + 'orientation' , 'base radius', 'target radius'] ) ) ) ) > 0 ) ) ) ) = 0 ); + wr4 : ( SIZEOF( QUERY ( pdr <* get_property_definition_representations( SELF ) | ( ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN + TYPEOF( pdr.used_representation ) ) AND ( SIZEOF( QUERY ( i <* pdr.used_representation.items | ( ( i.name = + 'base radius' ) AND ( SIZEOF( [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'MEASURE_REPRESENTATION_ITEM' , 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( i ) ) = 2 ) ) ) ) = 1 ) ) ) ) = 1 ); + wr5 : ( SIZEOF( QUERY ( pdr <* get_property_definition_representations( SELF ) | ( ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN + TYPEOF( pdr.used_representation ) ) AND ( SIZEOF( QUERY ( i <* pdr.used_representation.items | ( ( i.name = + 'target radius' ) AND ( SIZEOF( [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'MEASURE_REPRESENTATION_ITEM' , 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( i ) ) = 2 ) ) ) ) = 1 ) ) ) ) = 1 ); + wr6 : ( SIZEOF( QUERY ( sa <* get_shape_aspects( SELF ) | ( ( sa.name = 'base boundary' ) AND ( sa.description IN [ + 'directed angle occurrence' , 'closed profile occurrence'] ) ) ) ) = 1 ); + wr7 : ( SIZEOF( QUERY ( sa <* get_shape_aspects( SELF ) | ( ( sa.name = 'target boundary' ) AND ( sa.description IN [ + 'directed angle occurrence' , 'closed profile occurrence'] ) ) ) ) = 1 ); + wr8 : ( SIZEOF( QUERY ( sa <* get_shape_aspects( SELF ) | ( sa.description = 'directed angle occurrence' ) ) ) <= 1 ); + wr9 : ( SIZEOF( QUERY ( sa <* get_shape_aspects( SELF ) | ( ( sa.description = 'directed angle occurrence' ) AND ( SIZEOF( + QUERY ( sar <* USEDIN( sa, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT' ) | ( ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF( sar ) ) + AND ( sar.name = 'directed angle usage' ) AND ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.DIRECTED_ANGLE' IN TYPEOF( sar. + relating_shape_aspect ) ) ) ) ) = 1 ) ) ) ) = SIZEOF( QUERY ( sa <* get_shape_aspects( SELF ) | ( sa.description = + 'directed angle occurrence' ) ) ) ); + wr10: ( SIZEOF( QUERY ( sa <* get_shape_aspects( SELF ) | ( ( sa.description = 'closed profile occurrence' ) AND ( SIZEOF( + QUERY ( sar <* USEDIN( sa, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT' ) | ( ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF( sar ) ) + AND ( sar.description = 'profile usage' ) AND ( SIZEOF( [ + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CIRCULAR_CLOSED_PROFILE' , + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.NGON_CLOSED_PROFILE' , + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.RECTANGULAR_CLOSED_PROFILE' , + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CLOSED_PATH_PROFILE' ] * TYPEOF( sar. + relating_shape_aspect ) ) = 1 ) ) ) ) = 1 ) ) ) ) = SIZEOF( QUERY ( sa <* get_shape_aspects( SELF ) | ( sa. + description = 'closed profile occurrence' ) ) ) ); + wr11: ( ( SIZEOF( QUERY ( pdr <* get_property_definition_representations( SELF ) | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.FACE_SHAPE_REPRESENTATION' IN TYPEOF( pdr. + used_representation ) ) ) ) <= 1 ) AND ( SIZEOF( QUERY ( pdr <* get_property_definition_representations( SELF ) | + ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.FACE_SHAPE_REPRESENTATION' IN TYPEOF( pdr. + used_representation ) ) AND ( NOT ( pdr.used_representation.name = 'target face' ) ) ) ) ) = 0 ) ); + wr12: ( ( SIZEOF( QUERY ( sa <* get_shape_aspects( SELF ) | ( ( sa.name = 'target boundary' ) AND ( sa.description = + 'directed angle occurrence' ) ) ) ) = 0 ) OR ( SIZEOF( QUERY ( pdr <* get_property_definition_representations( + SELF ) | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.FACE_SHAPE_REPRESENTATION' IN + TYPEOF( pdr.used_representation ) ) ) ) = 1 ) ); + END_ENTITY; + + ENTITY feature_pattern + SUBTYPE OF ( replicate_feature ); + WHERE + wr1: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION.DEFINITION' ) | ( SIZEOF( QUERY ( pdr <* USEDIN( pd, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) + | ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN + TYPEOF( pdr.used_representation ) ) AND ( SIZEOF( QUERY ( srwp_i <* pdr.used_representation.items | ( NOT ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PLACEMENT' IN TYPEOF( srwp_i ) ) ) ) ) > 0 ) ) ) ) + > 0 ) ) ) = 0 ); + wr2: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) + | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN + TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PLACEMENT' IN TYPEOF( it ) ) AND ( it.name = + 'base feature placement' ) ) ) ) > 1 ) ) ) ) = 0 ) ) ) ) = 0 ); + END_ENTITY; + + ENTITY fiducial + SUBTYPE OF ( laminate_component ); + END_ENTITY; + + ENTITY fiducial_part_feature + SUBTYPE OF ( part_tooling_feature ); + END_ENTITY; + + ENTITY fiducial_stratum_feature + SUBTYPE OF ( stratum_feature ); + 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 | ( ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CURVE' IN TYPEOF( closed_curve ) ) ) OR + ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CIRCLE' IN TYPEOF( closed_curve ) ) OR ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.ELLIPSE' IN TYPEOF( closed_curve ) ) OR ( ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.B_SPLINE_CURVE' IN TYPEOF( closed_curve ) ) + AND ( closed_curve\b_spline_curve.closed_curve = TRUE ) ) OR ( ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.COMPOSITE_CURVE' IN TYPEOF( closed_curve ) ) + AND ( closed_curve\composite_curve.closed_curve = TRUE ) ) OR ( ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 fill_area_template + SUBTYPE OF ( parametric_template ); + END_ENTITY; + + ENTITY filled_via + SUBTYPE OF ( via ); + END_ENTITY; + + ENTITY fillet + SUBTYPE OF ( transition_feature ); + WHERE + wr1: ( ( NOT ( SELF\shape_aspect.description = 'constant radius' ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( + SIZEOF( QUERY ( pdr <* USEDIN( pd, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN + TYPEOF( pdr.used_representation ) ) ) ) = 1 ) ) ) ) = 0 ) ); + wr2: ( ( NOT ( SELF\shape_aspect.description = 'constant radius' ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( + SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) + | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN + TYPEOF( pdr.used_representation ) ) ) | ( ( NOT ( SIZEOF( impl_rep.used_representation.items ) >= 1 ) ) AND ( + SIZEOF( impl_rep.used_representation.items ) <= 3 ) ) ) ) = 0 ) ) ) ) = 0 ) ); + wr3: ( ( NOT ( SELF.description = 'constant radius' ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( + SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) + | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN + TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( + SIZEOF( [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( it ) ) = + 2 ) AND ( it.name = 'radius' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ) ); + wr4: ( ( NOT ( SELF.description = 'constant radius' ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( + SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) + | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN + TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( + SIZEOF( [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( it ) ) = + 2 ) AND ( it.name = 'first offset' ) ) ) ) <= 1 ) ) ) ) = 0 ) ) ) ) = 0 ) ); + wr5: ( ( NOT ( SELF.description = 'constant radius' ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( + SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) + | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN + TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( + SIZEOF( [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( it ) ) = + 2 ) AND ( it.name = 'second offset' ) ) ) ) <= 1 ) ) ) ) = 0 ) ) ) ) = 0 ) ); + wr6: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( pdr <* USEDIN( pd, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) + | ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.FACE_SHAPE_REPRESENTATION' IN TYPEOF( pdr + .used_representation ) ) AND ( pdr.used_representation.name = 'fillet face' ) ) ) ) = 1 ) ) ) ) = 0 ); + wr7: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( pdr <* USEDIN( pd, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) + | ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.FACE_SHAPE_REPRESENTATION' IN TYPEOF( pdr + .used_representation ) ) AND ( pdr.used_representation.name = 'first face shape' ) ) ) ) = 1 ) ) ) ) = 0 ); + wr8: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( pdr <* USEDIN( pd, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) + | ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.FACE_SHAPE_REPRESENTATION' IN TYPEOF( pdr + .used_representation ) ) AND ( pdr.used_representation.name = 'second face shape' ) ) ) ) = 1 ) ) ) ) = 0 ); + END_ENTITY; + + ENTITY finite_function + SUBTYPE OF ( maths_function, generic_literal ); + pairs : SET [1 : ?] OF LIST [2 : 2] OF maths_value; + WHERE + wr1: VALUE_UNIQUE( list_selected_components( pairs, 1 ) ); + END_ENTITY; + + ENTITY finite_integer_interval + SUBTYPE OF ( maths_space, generic_literal ); + min : INTEGER; + max : INTEGER; + DERIVE + size : positive_integer := ( max - min ) + 1; + WHERE + wr1: ( min <= max ); + END_ENTITY; + + ENTITY finite_real_interval + SUBTYPE OF ( maths_space, generic_literal ); + min : REAL; + min_closure : open_closed; + max : REAL; + max_closure : open_closed; + WHERE + wr1: ( min < max ); + END_ENTITY; + + ENTITY finite_space + SUBTYPE OF ( maths_space, generic_literal ); + members : SET OF maths_value; + WHERE + wr1: VALUE_UNIQUE( members ); + wr2: ( SIZEOF( QUERY ( expr <* QUERY ( member <* members | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.GENERIC_EXPRESSION' IN TYPEOF( member ) ) ) + | ( NOT expression_is_constant( expr ) ) ) ) = 0 ); + wr3: no_cyclic_space_reference( SELF, [] ); + END_ENTITY; + + ENTITY fixed_constituent_assembly_constraint + SUBTYPE OF ( assembly_geometric_constraint, fixed_element_geometric_constraint ); + fixed_constituent : representative_shape_representation; + WHERE + wr1: ( SELF\explicit_constraint.constrained_elements[1]\geometric_representation_item.dim = 3 ); + wr2: assembly_leaf( using_product_definition_of_shape_representation( fixed_constituent )[1] ); + wr3: ( ( SIZEOF( SELF\explicit_constraint.constrained_elements ) = 1 ) AND ( SIZEOF( SELF\explicit_constraint. + reference_elements ) = 0 ) ); + wr4: ( fixed_constituent IN ( using_representations( SELF\explicit_constraint.constrained_elements[1] ) + + using_representation_with_mapping( SELF\explicit_constraint.constrained_elements[1] ) ) ); + END_ENTITY; + + ENTITY fixed_element_geometric_constraint + SUBTYPE OF ( explicit_geometric_constraint ); + SELF\explicit_constraint.constrained_elements : SET [1 : ?] OF geometric_constraint_element; + WHERE + wr1: ( SIZEOF( SELF\explicit_constraint.reference_elements ) = 0 ); + END_ENTITY; + + ENTITY fixed_instance_attribute_set + SUBTYPE OF ( variational_representation_item ); + fixed_attributes : SET [1 : ?] OF instance_attribute_reference; + WHERE + wr1: ( SIZEOF( QUERY ( q <* using_representations( SELF ) | ( SIZEOF( QUERY ( r <* q.items | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.FIXED_INSTANCE_ATTRIBUTE_SET' IN TYPEOF( r ) ) ) ) + > 1 ) ) ) = 0 ); + END_ENTITY; + + ENTITY flat_face + SUBTYPE OF ( feature_definition ); + WHERE + wr1: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( pdr <* USEDIN( pd, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) + | ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.DIRECTION_SHAPE_REPRESENTATION' IN + TYPEOF( pdr.used_representation ) ) AND ( pdr.used_representation.name = 'removal direction' ) ) ) ) = 1 ) ) ) ) = + 0 ); + wr2: ( SIZEOF( QUERY ( pds <* QUERY ( pd <* USEDIN( SELF, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) + | ( NOT ( SIZEOF( QUERY ( sa_occ <* USEDIN( pds, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) | ( ( sa_occ. + description = 'course of travel occurrence' ) AND ( SIZEOF( QUERY ( sdr <* QUERY ( sar <* USEDIN( sa_occ, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT' ) + | ( ( sar.description = 'path feature component usage' ) AND ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF( sar ) ) ) ) + | ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PATH_FEATURE_COMPONENT' IN TYPEOF( sdr. + relating_shape_aspect ) ) AND ( sdr.relating_shape_aspect.description = 'linear' ) AND ( sdr.name = + 'course of travel' ) ) ) ) = 1 ) ) ) ) = 1 ) ) ) ) = 0 ); + wr3: ( SIZEOF( QUERY ( pds <* QUERY ( pd <* USEDIN( SELF, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) + | ( NOT ( SIZEOF( QUERY ( sa_occ <* USEDIN( pds, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) | ( ( sa_occ. + description = 'removal boundary occurrence' ) AND ( SIZEOF( QUERY ( sdr <* QUERY ( sar <* USEDIN( sa_occ, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT' ) + | ( ( sar.description = 'profile usage' ) AND ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF( sar ) ) ) ) | ( ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LINEAR_PROFILE' IN TYPEOF( sdr. + relating_shape_aspect ) ) AND ( sdr.name = 'removal boundary' ) ) ) ) = 1 ) ) ) ) = 1 ) ) ) ) = 0 ); + wr4: ( SIZEOF( QUERY ( pds <* QUERY ( pd <* USEDIN( SELF, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) + | ( NOT ( SIZEOF( QUERY ( sa_occ <* USEDIN( pds, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) | ( ( sa_occ. + description = 'enclosed boundary occurrence' ) AND ( SIZEOF( QUERY ( sdr <* QUERY ( sar <* USEDIN( sa_occ, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT' ) + | ( ( sar.description = 'profile usage' ) AND ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF( sar ) ) ) ) | ( ( SIZEOF( [ + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CIRCULAR_CLOSED_PROFILE' , + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.NGON_CLOSED_PROFILE' , + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.RECTANGULAR_CLOSED_PROFILE' , + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CLOSED_PATH_PROFILE' ] * TYPEOF( sdr. + relating_shape_aspect ) ) = 1 ) AND ( sdr.relating_shape_aspect.description = 'boundary' ) ) ) ) = 1 ) ) ) ) <= 1 ) ) ) ) + = 0 ); + wr5: ( SIZEOF( QUERY ( pdr <* get_property_definition_representations( SELF ) | ( ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PLANAR_SHAPE_REPRESENTATION' IN TYPEOF( pdr. + used_representation ) ) AND ( pdr.used_representation.name = 'maximum feature limit' ) ) ) ) >= 0 ); + wr6: ( SIZEOF( QUERY ( pds <* USEDIN( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION.DEFINITION' ) | ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pds ) ) AND ( SIZEOF( QUERY ( csa <* USEDIN( pds, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) | ( ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.COMPOSITE_SHAPE_ASPECT' IN TYPEOF( csa ) ) + AND ( csa.name = 'uncut volume' ) AND ( SIZEOF( QUERY ( sar <* csa.component_relationships | ( ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF( + sar ) ) AND ( SIZEOF( [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.BOSS', + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROTRUSION' ] * TYPEOF( sar. + related_shape_aspect ) ) = 1 ) ) ) ) = 1 ) ) ) ) <= 1 ) ) ) ) = 1 ); + wr7: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) + | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN + TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( + SIZEOF( [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( it ) ) = + 2 ) AND ( it.name = 'removal depth' ) ) ) ) <= 1 ) ) ) ) = 0 ) ) ) ) = 0 ); + END_ENTITY; + + ENTITY flat_pattern_ply_representation_relationship + SUBTYPE OF ( shape_representation_relationship ); + WHERE + wr1: ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'GEOMETRIC_TOLERANCE_WITH_DATUM_REFERENCE' ) IN TYPEOF( SELF ) ) ); + END_ENTITY; + + ENTITY footprint_definition + SUBTYPE OF ( generic_footprint_definition ); + END_ENTITY; + + ENTITY footprint_library_stratum_technology + SUBTYPE OF ( stratum_technology ); + END_ENTITY; + + ENTITY footprint_occurrence + SUBTYPE OF ( structured_layout_component ); + END_ENTITY; + + ENTITY footprint_occurrence_product_definition_relationship + SUBTYPE OF ( structured_layout_component_sub_assembly_relationship ); + END_ENTITY; + + ENTITY force_measure_with_unit + SUBTYPE OF ( measure_with_unit ); + WHERE + wr1: ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 format_function + SUBTYPE OF ( string_expression, binary_generic_expression ); + DERIVE + value_to_format : generic_expression := SELF\binary_generic_expression.operands[1]; + format_string : generic_expression := SELF\binary_generic_expression.operands[2]; + WHERE + wr1: ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.NUMERIC_EXPRESSION' IN TYPEOF( value_to_format ) ) + AND ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.STRING_EXPRESSION' IN TYPEOF( + format_string ) ) ); + 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 ( + b_spline_curve_knot_locator, + b_spline_curve_segment, + b_spline_surface_knot_locator, + b_spline_surface_patch, + b_spline_surface_strip, + boundary_curve_of_b_spline_or_rectangular_composite_surface, + box_domain, + character_glyph_style_outline, + character_glyph_style_stroke, + composite_curve_segment, + composite_curve_transition_locator, + curve_style, + curve_style_font, + curve_style_font_and_scaling, + curve_style_font_pattern, + externally_defined_style, + fill_area_style, + interpolated_configuration_segment, + kinematic_path_segment, + plane_angle_and_length_pair, + plane_angle_and_ratio_pair, + point_style, + presentation_style_assignment, + rectangular_composite_surface_transition_locator, + surface_patch, + 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, + view_volume ) + ANDOR + ONEOF ( + character_glyph_style_outline, + character_glyph_style_stroke, + curve_style, + curve_style_font, + curve_style_font_and_scaling, + curve_style_font_pattern, + externally_defined_style, + 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 free_edge + SUBTYPE OF ( inapt_topology ); + SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_logical_test; + WHERE + wr1: validate_measured_data_type( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.BOOLEAN_VALUE' ); + wr2: validate_inspected_elements_type( SELF, [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'CONNECTED_FACE_SET' ] ); + wr3: validate_locations_of_extreme_value_type( SELF, [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'EDGE_CURVE' ] ); + wr4: validate_accuracy_types( SELF, [] ); + wr5: ( SIZEOF( QUERY ( sdqr <* bag_to_set( USEDIN( SELF, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'DATA_QUALITY_INSPECTION_RESULT.' + + 'CRITERION_INSPECTED' ) ) | ( ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'SHAPE_DATA_QUALITY_INSPECTION_RESULT' ) IN TYPEOF( sdqr ) ) AND ( SIZEOF( QUERY ( sdqiir <* bag_to_set( USEDIN( + sdqr, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'DATA_QUALITY_INSPECTION_REPORT.' + + 'INSPECTION_RESULT' ) ) | ( ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'SHAPE_DATA_QUALITY_INSPECTION_INSTANCE_REPORT' ) IN TYPEOF( sdqiir ) ) AND ( SIZEOF( QUERY ( sdqiri <* sdqiir. + inspected_instances | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CLOSED_SHELL' IN + TYPEOF( sdqiri.inspected_elements[1] ) ) ) ) = 0 ) ) ) ) = 0 ) ) ) ) = 0 ); + END_ENTITY; + + ENTITY free_form_assignment + SUBTYPE OF ( free_form_constraint ); + WHERE + wr1: ( SIZEOF( QUERY ( q <* SELF\free_form_constraint.constrained_elements | ( q IN used_variables( SELF\ + free_form_constraint.constraining_expression ) ) ) ) = 0 ); + wr2: ( SIZEOF( QUERY ( q <* SELF\free_form_constraint.reference_elements | ( NOT ( q IN used_variables( SELF\ + free_form_constraint.constraining_expression ) ) ) ) ) = 0 ); + wr3: ( SIZEOF( SELF\free_form_constraint.reference_elements ) >= 1 ); + wr4: ( SIZEOF( QUERY ( q <* SELF\free_form_constraint.constrained_elements | ( NOT compatible_spaces( values_space_of( SELF + \free_form_constraint.constraining_expression ), q\maths_variable.values_space ) ) ) ) = 0 ); + END_ENTITY; + + ENTITY free_form_constraint + ABSTRACT SUPERTYPE OF ( + ONEOF ( + free_form_assignment, + free_form_relation ) ) + SUBTYPE OF ( explicit_constraint ); + SELF\explicit_constraint.constrained_elements : SET [1 : ?] OF variational_parameter; + SELF\explicit_constraint.reference_elements : SET [0 : ?] OF variational_parameter; + constraining_expression : expression; + END_ENTITY; + + ENTITY free_form_relation + SUBTYPE OF ( free_form_constraint ); + WHERE + wr1: ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.BOOLEAN_EXPRESSION' IN TYPEOF( SELF\ + free_form_constraint.constraining_expression ) ); + wr2: ( SIZEOF( QUERY ( q <* ( SELF\free_form_constraint.constrained_elements + SELF\free_form_constraint.reference_elements ) + | ( NOT ( q IN used_variables( SELF\free_form_constraint.constraining_expression ) ) ) ) ) = 0 ); + END_ENTITY; + + ENTITY free_kinematic_motion_representation + SUBTYPE OF ( representation_relationship_with_transformation ); + SELF\representation_relationship.rep_1 : representative_shape_representation; + SELF\representation_relationship.rep_2 : representative_shape_representation; + motion : kinematic_path; + WHERE + wr1: ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.ITEM_DEFINED_TRANSFORMATION' IN TYPEOF( SELF\ + representation_relationship_with_transformation.transformation_operator ) ); + wr2: ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.GEOMETRIC_REPRESENTATION_ITEM' IN TYPEOF( SELF + \representation_relationship_with_transformation.transformation_operator\item_defined_transformation. + transform_item_1 ) ) AND ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'GEOMETRIC_REPRESENTATION_ITEM' IN TYPEOF( SELF\representation_relationship_with_transformation. + transformation_operator\item_defined_transformation.transform_item_2 ) ) ); + wr3: ( ( dimension_of( SELF\representation_relationship_with_transformation.transformation_operator\ + item_defined_transformation.transform_item_1 ) = 3 ) AND ( dimension_of( SELF\ + representation_relationship_with_transformation.transformation_operator\item_defined_transformation. + transform_item_2 ) = 3 ) ); + wr4: ( ( SELF\representation_relationship.rep_1 IN ( using_representations( SELF\ + representation_relationship_with_transformation.transformation_operator\item_defined_transformation. + transform_item_1 ) + using_representation_with_mapping( SELF\representation_relationship_with_transformation. + transformation_operator\item_defined_transformation.transform_item_1 ) ) ) AND ( SELF\representation_relationship. + rep_2 IN ( using_representations( SELF\representation_relationship_with_transformation.transformation_operator\ + item_defined_transformation.transform_item_2 ) + using_representation_with_mapping( SELF\ + representation_relationship_with_transformation.transformation_operator\item_defined_transformation. + transform_item_2 ) ) ) ); + END_ENTITY; + + ENTITY frequency_measure_with_unit + SUBTYPE OF ( measure_with_unit ); + WHERE + wr1: ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 frozen_assignment + SUBTYPE OF ( approval_assignment ); + items : SET [1 : ?] OF change_management_object; + END_ENTITY; + + ENTITY fully_constrained_pair + SUBTYPE OF ( low_order_kinematic_pair ); + DERIVE + SELF\low_order_kinematic_pair.t_x : BOOLEAN := FALSE; + SELF\low_order_kinematic_pair.t_y : BOOLEAN := FALSE; + SELF\low_order_kinematic_pair.t_z : BOOLEAN := FALSE; + SELF\low_order_kinematic_pair.r_x : BOOLEAN := FALSE; + SELF\low_order_kinematic_pair.r_y : BOOLEAN := FALSE; + SELF\low_order_kinematic_pair.r_z : BOOLEAN := FALSE; + END_ENTITY; + + ENTITY func + SUBTYPE OF ( compound_representation_item ); + END_ENTITY; + + ENTITY function_application + SUBTYPE OF ( multiple_arity_generic_expression ); + func : maths_function_select; + arguments : LIST [1 : ?] OF maths_expression; + DERIVE + SELF\multiple_arity_generic_expression.operands : LIST [2 : ?] OF generic_expression := [convert_to_maths_function( func )] + + convert_to_operands( arguments ); + WHERE + wr1: function_applicability( func, arguments ); + END_ENTITY; + + ENTITY function_space + SUBTYPE OF ( maths_space, generic_literal ); + domain_constraint : space_constraint_type; + domain_argument : maths_space; + range_constraint : space_constraint_type; + range_argument : maths_space; + WHERE + wr1: ( expression_is_constant( domain_argument ) AND expression_is_constant( range_argument ) ); + wr2: ( ( domain_argument <> the_empty_space ) AND ( range_argument <> the_empty_space ) ); + wr3: ( ( domain_constraint <> sc_member ) OR ( NOT member_of( the_empty_space, domain_argument ) ) ); + wr4: ( ( range_constraint <> sc_member ) OR ( NOT member_of( the_empty_space, range_argument ) ) ); + wr5: ( NOT ( any_space_satisfies( domain_constraint, domain_argument ) AND any_space_satisfies( range_constraint, + range_argument ) ) ); + END_ENTITY; + + ENTITY functional_breakdown_context + SUBTYPE OF ( breakdown_context ); + END_ENTITY; + + ENTITY functional_element_usage + SUBTYPE OF ( breakdown_element_usage ); + END_ENTITY; + + ENTITY functional_specification + SUBTYPE OF ( representation ); + END_ENTITY; + + ENTITY functional_specification_definition + SUBTYPE OF ( functional_unit ); + END_ENTITY; + + ENTITY functional_terminal_group + SUBTYPE OF ( group ); + UNIQUE + ur1 : SELF\group.name; + END_ENTITY; + + ENTITY functional_unit + SUBTYPE OF ( product_definition, product_definition_shape ); + DERIVE + SELF\property_definition.definition : functional_unit := SELF; + WHERE + wr1: ( SIZEOF( USEDIN( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'NAME_ATTRIBUTE.' + + 'NAMED_ITEM' ) ) = 0 ); + wr2: ( NOT EXISTS( SELF\property_definition.description ) ); + END_ENTITY; + + ENTITY functional_unit_terminal_definition + SUBTYPE OF ( shape_aspect ); + SELF\shape_aspect.of_shape : functional_unit; + UNIQUE + ur1 : SELF\shape_aspect.name, of_shape; + WHERE + wr1: ( SELF\shape_aspect.product_definitional = FALSE ); + END_ENTITY; + + ENTITY functionally_defined_transformation; + name : label; + description : OPTIONAL text; + END_ENTITY; + + ENTITY g1_discontinuity_between_adjacent_faces + SUBTYPE OF ( non_smooth_geometry_transition_across_edge ); + SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; + WHERE + wr1: ( ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' ) + IN TYPEOF( SELF\shape_data_quality_criterion.assessment_specification\ + shape_data_quality_assessment_by_numerical_test.threshold ) ) AND ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PLANE_ANGLE_MEASURE' IN value_limit_type( + SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test. + threshold ) ) ); + wr2: validate_measured_data_type( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PLANE_ANGLE_MEASURE' ); + wr3: validate_inspected_elements_type( SELF, [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'CONNECTED_FACE_SET' ] ); + wr4: validate_locations_of_extreme_value_type( SELF, [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'POINT_ON_EDGE_CURVE'] ); + wr5: validate_accuracy_types( SELF, [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PLANE_ANGLE_MEASURE' ] ); + END_ENTITY; + + ENTITY g1_discontinuous_curve + SUBTYPE OF ( discontinuous_geometry ); + SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; + WHERE + wr1: ( ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' ) + IN TYPEOF( SELF\shape_data_quality_criterion.assessment_specification\ + shape_data_quality_assessment_by_numerical_test.threshold ) ) AND ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PLANE_ANGLE_MEASURE' IN value_limit_type( + SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test. + threshold ) ) ); + wr2: validate_measured_data_type( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PLANE_ANGLE_MEASURE' ); + wr3: validate_inspected_elements_type( SELF, [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'B_SPLINE_CURVE' ] ); + wr4: validate_locations_of_extreme_value_type( SELF, [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'B_SPLINE_CURVE_KNOT_LOCATOR'] ); + wr5: validate_accuracy_types( SELF, [] ); + END_ENTITY; + + ENTITY g1_discontinuous_surface + SUBTYPE OF ( discontinuous_geometry ); + SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; + WHERE + wr1: ( ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' ) + IN TYPEOF( SELF\shape_data_quality_criterion.assessment_specification\ + shape_data_quality_assessment_by_numerical_test.threshold ) ) AND ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PLANE_ANGLE_MEASURE' IN value_limit_type( + SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test. + threshold ) ) ); + wr2: validate_measured_data_type( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PLANE_ANGLE_MEASURE' ); + wr3: validate_inspected_elements_type( SELF, [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'B_SPLINE_SURFACE' ] ); + wr4: validate_locations_of_extreme_value_type( SELF, [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'B_SPLINE_SURFACE_KNOT_LOCATOR'] ); + wr5: validate_accuracy_types( SELF, [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PLANE_ANGLE_MEASURE' ] ); + END_ENTITY; + + ENTITY g2_discontinuity_between_adjacent_faces + SUBTYPE OF ( non_smooth_geometry_transition_across_edge ); + SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; + assessment_specification_2 : shape_data_quality_assessment_by_numerical_test; + flat_curvature_radius_tolerance : length_measure; + WHERE + wr1: ( ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' ) + IN TYPEOF( SELF\shape_data_quality_criterion.assessment_specification\ + shape_data_quality_assessment_by_numerical_test.threshold ) ) AND ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PLANE_ANGLE_MEASURE' IN value_limit_type( + SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test. + threshold ) ) ); + wr2: ( ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' ) + IN TYPEOF( assessment_specification_2\shape_data_quality_assessment_by_numerical_test.threshold ) ) AND ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.RATIO_MEASURE' IN value_limit_type( + assessment_specification_2\shape_data_quality_assessment_by_numerical_test.threshold ) ) ); + wr3: validate_measured_data_type( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PLANE_ANGLE_AND_RATIO_PAIR' ); + wr4: validate_inspected_elements_type( SELF, [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'CONNECTED_FACE_SET' ] ); + wr5: validate_locations_of_extreme_value_type( SELF, [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'POINT_ON_EDGE_CURVE'] ); + wr6: validate_accuracy_types( SELF, [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.RATIO_MEASURE'] ); + END_ENTITY; + + ENTITY g2_discontinuous_curve + SUBTYPE OF ( discontinuous_geometry ); + SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; + assessment_specification_2 : shape_data_quality_assessment_by_numerical_test; + flat_curvature_radius_tolerance : length_measure; + WHERE + wr1: ( ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' ) + IN TYPEOF( SELF\shape_data_quality_criterion.assessment_specification\ + shape_data_quality_assessment_by_numerical_test.threshold ) ) AND ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PLANE_ANGLE_MEASURE' IN value_limit_type( + SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test. + threshold ) ) ); + wr2: ( ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' ) + IN TYPEOF( assessment_specification_2\shape_data_quality_assessment_by_numerical_test.threshold ) ) AND ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.RATIO_MEASURE' IN value_limit_type( + assessment_specification_2\shape_data_quality_assessment_by_numerical_test.threshold ) ) ); + wr3: validate_measured_data_type( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PLANE_ANGLE_AND_RATIO_PAIR' ); + wr4: validate_inspected_elements_type( SELF, [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'B_SPLINE_CURVE' ] ); + wr5: validate_locations_of_extreme_value_type( SELF, [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'B_SPLINE_CURVE_KNOT_LOCATOR'] ); + wr6: validate_accuracy_types( SELF, [] ); + END_ENTITY; + + ENTITY g2_discontinuous_surface + SUBTYPE OF ( discontinuous_geometry ); + SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; + assessment_specification_2 : shape_data_quality_assessment_by_numerical_test; + flat_curvature_radius_tolerance : length_measure; + WHERE + wr1: ( ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' ) + IN TYPEOF( SELF\shape_data_quality_criterion.assessment_specification\ + shape_data_quality_assessment_by_numerical_test.threshold ) ) AND ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PLANE_ANGLE_MEASURE' IN value_limit_type( + SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test. + threshold ) ) ); + wr2: ( ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' ) + IN TYPEOF( assessment_specification_2\shape_data_quality_assessment_by_numerical_test.threshold ) ) AND ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.RATIO_MEASURE' IN value_limit_type( + assessment_specification_2\shape_data_quality_assessment_by_numerical_test.threshold ) ) ); + wr3: validate_measured_data_type( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PLANE_ANGLE_AND_RATIO_PAIR' ); + wr4: validate_inspected_elements_type( SELF, [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'B_SPLINE_SURFACE' ] ); + wr5: validate_locations_of_extreme_value_type( SELF, [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'B_SPLINE_SURFACE_KNOT_LOCATOR'] ); + wr6: validate_accuracy_types( SELF, [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.RATIO_MEASURE'] ); + END_ENTITY; + + ENTITY gap_between_adjacent_edges_in_loop + SUBTYPE OF ( geometric_gap_in_topology ); + SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; + WHERE + wr1: ( ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' ) + IN TYPEOF( SELF\shape_data_quality_criterion.assessment_specification\ + shape_data_quality_assessment_by_numerical_test.threshold ) ) AND ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE' IN value_limit_type( SELF\ + shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold ) ) ); + wr2: validate_measured_data_type( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE' ); + wr3: validate_inspected_elements_type( SELF, [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.EDGE_LOOP'] ); + wr4: validate_locations_of_extreme_value_type( SELF, [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'ORIENTED_EDGE' ] ); + wr5: validate_accuracy_types( SELF, [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE'] ); + END_ENTITY; + + ENTITY gap_between_edge_and_base_surface + SUBTYPE OF ( geometric_gap_in_topology ); + SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; + WHERE + wr1: ( ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' ) + IN TYPEOF( SELF\shape_data_quality_criterion.assessment_specification\ + shape_data_quality_assessment_by_numerical_test.threshold ) ) AND ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE' IN value_limit_type( SELF\ + shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold ) ) ); + wr2: validate_measured_data_type( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE' ); + wr3: validate_inspected_elements_type( SELF, [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'FACE_SURFACE' ] ); + wr4: validate_locations_of_extreme_value_type( SELF, [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'POINT_ON_EDGE_CURVE', 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'POINT_ON_FACE_SURFACE' ] ); + wr5: validate_accuracy_types( SELF, [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE'] ); + END_ENTITY; + + ENTITY gap_between_faces_related_to_an_edge + SUBTYPE OF ( geometric_gap_in_topology ); + SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; + WHERE + wr1: ( ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' ) + IN TYPEOF( SELF\shape_data_quality_criterion.assessment_specification\ + shape_data_quality_assessment_by_numerical_test.threshold ) ) AND ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE' IN value_limit_type( SELF\ + shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold ) ) ); + wr2: validate_measured_data_type( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE' ); + wr3: validate_inspected_elements_type( SELF, [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'CONNECTED_FACE_SET' ] ); + wr4: validate_locations_of_extreme_value_type( SELF, [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'POINT_ON_EDGE_CURVE'] ); + wr5: validate_accuracy_types( SELF, [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE'] ); + END_ENTITY; + + ENTITY gap_between_pcurves_related_to_an_edge + SUBTYPE OF ( geometric_gap_in_topology ); + SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; + WHERE + wr1: ( ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' ) + IN TYPEOF( SELF\shape_data_quality_criterion.assessment_specification\ + shape_data_quality_assessment_by_numerical_test.threshold ) ) AND ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE' IN value_limit_type( SELF\ + shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold ) ) ); + wr2: validate_measured_data_type( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE' ); + wr3: validate_inspected_elements_type( SELF, [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'CONNECTED_FACE_SET' ] ); + wr4: validate_locations_of_extreme_value_type( SELF, [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'POINT_ON_SURFACE' , 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.POINT_ON_SURFACE'] ); + wr5: validate_accuracy_types( SELF, [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE'] ); + END_ENTITY; + + ENTITY gap_between_vertex_and_base_surface + SUBTYPE OF ( geometric_gap_in_topology ); + SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; + WHERE + wr1: ( ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' ) + IN TYPEOF( SELF\shape_data_quality_criterion.assessment_specification\ + shape_data_quality_assessment_by_numerical_test.threshold ) ) AND ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE' IN value_limit_type( SELF\ + shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold ) ) ); + wr2: validate_measured_data_type( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE' ); + wr3: validate_inspected_elements_type( SELF, [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'FACE_SURFACE' ] ); + wr4: validate_locations_of_extreme_value_type( SELF, [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'VERTEX_POINT' , 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'POINT_ON_FACE_SURFACE'] ); + wr5: validate_accuracy_types( SELF, [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE'] ); + END_ENTITY; + + ENTITY gap_between_vertex_and_edge + SUBTYPE OF ( geometric_gap_in_topology ); + SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; + WHERE + wr1: ( ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' ) + IN TYPEOF( SELF\shape_data_quality_criterion.assessment_specification\ + shape_data_quality_assessment_by_numerical_test.threshold ) ) AND ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE' IN value_limit_type( SELF\ + shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold ) ) ); + wr2: validate_measured_data_type( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE' ); + wr3: validate_inspected_elements_type( SELF, [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'EDGE_CURVE' ] ); + wr4: validate_locations_of_extreme_value_type( SELF, [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'VERTEX_POINT' , 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'POINT_ON_EDGE_CURVE'] ); + wr5: validate_accuracy_types( SELF, [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE'] ); + END_ENTITY; + + ENTITY gear + SUBTYPE OF ( feature_definition ); + WHERE + wr1 : ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION.DEFINITION' ) | ( SIZEOF( QUERY ( pdr <* USEDIN( pd, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) + | ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN + TYPEOF( pdr.used_representation ) ) AND ( 10 <= SIZEOF( pdr.used_representation.items ) ) AND ( SIZEOF( pdr. + used_representation.items ) <= 13 ) ) ) ) = 1 ) ) ) = 1 ); + wr2 : ( ( NOT ( SELF\characterized_object.description IN [ 'straight bevel gear', 'helical bevel gear', 'spur gear', + 'helical gear' ] ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( + SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) + | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN + TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( + SIZEOF( [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.RATIO_MEASURE_WITH_UNIT' ] * TYPEOF( it ) ) = + 2 ) AND ( it.name = 'number of teeth' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ) ); + wr3 : ( ( NOT ( SELF\characterized_object.description IN [ 'straight bevel gear', 'helical bevel gear', 'spur gear', + 'helical gear' ] ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( + SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) + | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN + TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( + SIZEOF( [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PLANE_ANGLE_MEASURE_WITH_UNIT' ] * TYPEOF( it ) ) + = 2 ) AND ( it.name = 'reference pressure angle' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ) ); + wr4 : ( ( NOT ( SELF\characterized_object.description IN [ 'straight bevel gear', 'helical bevel gear', 'spur gear', + 'helical gear' ] ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( + SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) + | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN + TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( + SIZEOF( [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( it ) ) + = 2 ) AND ( it.name = 'rake shift factor' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ) ); + wr5 : ( ( NOT ( SELF\characterized_object.description IN [ 'straight bevel gear', 'helical bevel gear', 'spur gear', + 'helical gear' ] ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( + SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) + | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN + TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( + SIZEOF( [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( it ) ) + = 2 ) AND ( it.name = 'nominal tooth depth' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ) ); + wr6 : ( ( NOT ( SELF\characterized_object.description IN [ 'straight bevel gear', 'helical bevel gear', 'spur gear', + 'helical gear' ] ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( + SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) + | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN + TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( + SIZEOF( [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( it ) ) + = 2 ) AND ( it.name = 'face width' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ) ); + wr7 : ( ( NOT ( SELF\characterized_object.description IN [ 'straight bevel gear', 'helical bevel gear', 'spur gear', + 'helical gear' ] ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( + SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) + | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN + TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( + SIZEOF( [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( it ) ) + = 2 ) AND ( it.name = 'tip diameter' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ) ); + wr8 : ( ( NOT ( SELF\characterized_object.description IN [ 'straight bevel gear', 'helical bevel gear', 'spur gear', + 'helical gear' ] ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( + SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) + | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN + TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF( + it ) ) AND ( it.name = 'module or diametral pitch' ) AND ( ( it.description = 'module' ) OR ( it.description = + 'diametral pitch' ) ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ) ); + wr9 : ( ( NOT ( SELF\characterized_object.description IN [ 'straight bevel gear', 'helical bevel gear', 'spur gear', + 'helical gear' ] ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( + SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) + | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN + TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF( + it ) ) AND ( it.name = 'internal or external gear' ) AND ( ( it.description = 'internal' ) OR ( it.description = + 'external' ) ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ) ); + wr10: ( ( NOT ( SELF\characterized_object.description IN [ 'straight bevel gear', 'helical bevel gear', 'spur gear', + 'helical gear' ] ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( + SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) + | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN + TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( + SIZEOF( [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( it ) ) + = 2 ) AND ( it.name = 'normal attribute' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ) ); + wr11: ( ( NOT ( SELF\characterized_object.description IN [ 'straight bevel gear', 'helical bevel gear', 'spur gear', + 'helical gear' ] ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( + SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) + | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN + TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( + SIZEOF( [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( it ) ) + = 2 ) AND ( it.name = 'root fillet radius' ) ) ) ) <= 1 ) ) ) ) = 0 ) ) ) ) = 0 ) ); + wr12: ( ( NOT ( SELF\characterized_object.description IN [ 'helix gear', 'helical bevel gear'] ) ) OR ( SIZEOF( + QUERY ( pd <* USEDIN( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) + | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN + TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( + SIZEOF( [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PLANE_ANGLE_MEASURE_WITH_UNIT' ] * TYPEOF( it ) ) + = 2 ) AND ( it.name = 'reference helix angle' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ) ); + wr13: ( ( NOT ( SELF\characterized_object.description IN [ 'helix gear', 'helical bevel gear'] ) ) OR ( SIZEOF( + QUERY ( pd <* USEDIN( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) + | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN + TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF( + it ) ) AND ( it.name = 'gear tooth' ) AND ( ( it.description = 'left hand tooth' ) OR ( it.description = + 'right hand tooth' ) ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ) ); + wr14: ( ( NOT ( SELF\characterized_object.description IN [ 'straight bevel gear', 'helical bevel gear'] ) ) OR ( SIZEOF( + QUERY ( pd <* USEDIN( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) + | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN + TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( + SIZEOF( [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PLANE_ANGLE_MEASURE_WITH_UNIT' ] * TYPEOF( it ) ) + = 2 ) AND ( it.name = 'tip angle' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ) ); + wr15: ( ( NOT ( SELF\characterized_object.description IN [ 'straight bevel gear', 'helical bevel gear'] ) ) OR ( SIZEOF( + QUERY ( pd <* USEDIN( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) + | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN + TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( + SIZEOF( [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PLANE_ANGLE_MEASURE_WITH_UNIT' ] * TYPEOF( it ) ) + = 2 ) AND ( it.name = 'root angle' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ) ); + wr16: ( SIZEOF( QUERY ( pds <* QUERY ( pd <* USEDIN( SELF, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) + | ( NOT ( SIZEOF( QUERY ( sa_occ <* USEDIN( pds, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) | ( SIZEOF( + QUERY ( sdr <* QUERY ( sar <* USEDIN( sa_occ, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT' ) | ( ( sar.description = 'applied shape' ) AND ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF( sar ) ) ) ) + | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT' IN TYPEOF( sdr. + relating_shape_aspect ) ) ) ) = 1 ) ) ) = 1 ) ) ) ) = 0 ); + END_ENTITY; + + ENTITY gear_pair + SUBTYPE OF ( low_order_kinematic_pair_with_motion_coupling ); + radius_first_link : length_measure; + radius_second_link : length_measure; + bevel : plane_angle_measure; + helical_angle : plane_angle_measure; + gear_ratio : REAL; + WHERE + wr1: ( SIZEOF( QUERY ( lr <* SELF\kinematic_pair.associated_link_representations_1 | ( NOT ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.RIGID_LINK_REPRESENTATION' IN TYPEOF( lr ) ) ) ) ) + = 0 ); + END_ENTITY; + + ENTITY gear_pair_value + SUBTYPE OF ( pair_value ); + SELF\pair_value.applies_to_pair : gear_pair; + actual_rotation_1 : plane_angle_measure; + DERIVE + actual_rotation_2 : plane_angle_measure := ( -actual_rotation_1 ) * SELF\pair_value.applies_to_pair\gear_pair.gear_ratio; + END_ENTITY; + + ENTITY gear_pair_with_range + SUBTYPE OF ( gear_pair ); + lower_limit_actual_rotation_1 : OPTIONAL plane_angle_measure; + upper_limit_actual_rotation_1 : OPTIONAL plane_angle_measure; + WHERE + wr1: ( ( ( NOT EXISTS( lower_limit_actual_rotation_1 ) ) OR ( NOT EXISTS( upper_limit_actual_rotation_1 ) ) ) XOR ( + lower_limit_actual_rotation_1 < upper_limit_actual_rotation_1 ) ); + END_ENTITY; + + ENTITY general_datum_reference + ABSTRACT SUPERTYPE OF ( + ONEOF ( + datum_reference_compartment, + datum_reference_element ) ) + SUBTYPE OF ( shape_aspect ); + base : datum_or_common_datum; + modifiers : OPTIONAL SET [1 : ?] OF datum_reference_modifier; + WHERE + wr1: ( SELF\shape_aspect.name = '' ); + wr2: ( NOT EXISTS( SELF\shape_aspect.description ) ); + wr3: ( NOT EXISTS( SELF\shape_aspect.id ) ); + wr4: ( SELF\shape_aspect.product_definitional = FALSE ); + wr5: ( ( NOT ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.DATUM' IN TYPEOF( base ) ) ) OR ( SELF\ + shape_aspect.of_shape = base\shape_aspect.of_shape ) ); + wr6: ( ( NOT ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.COMMON_DATUM_LIST' IN TYPEOF( base ) ) ) + OR ( SELF\shape_aspect.of_shape = base[1]\shape_aspect.of_shape ) ); + END_ENTITY; + + ENTITY general_feature + SUBTYPE OF ( shape_feature_definition ); + WHERE + wr1: ( ( SIZEOF( get_property_definition_representations( SELF ) ) <= 1 ) AND ( SIZEOF( QUERY ( pdr <* + get_property_definition_representations( SELF ) | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN + TYPEOF( pdr.used_representation ) ) ) ) <= 1 ) ); + wr2: ( SIZEOF( QUERY ( sa <* get_shape_aspects( SELF ) | ( sa.description = 'course of travel occurrence' ) ) ) = SIZEOF( + QUERY ( sa <* get_shape_aspects( SELF ) | ( ( sa.description = 'course of travel occurrence' ) AND ( SIZEOF( + QUERY ( sar <* USEDIN( sa, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT' ) | ( ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF( sar ) ) + AND ( sar.name = 'course of travel' ) ) ) ) = 1 ) ) ) ) ); + wr3: ( SIZEOF( QUERY ( sa <* get_shape_aspects( SELF ) | ( sa.description = 'course of travel occurrence' ) ) ) = SIZEOF( + QUERY ( sa <* get_shape_aspects( SELF ) | ( ( sa.description = 'course of travel occurrence' ) AND ( SIZEOF( + QUERY ( sar <* USEDIN( sa, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT' ) | ( ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF( sar ) ) + AND ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PATH_FEATURE_COMPONENT' IN TYPEOF( sar. + relating_shape_aspect ) ) ) ) ) = 1 ) ) ) ) ); + wr4: ( SIZEOF( QUERY ( sa <* get_shape_aspects( SELF ) | ( sa.description = 'boundary occurrence' ) ) ) = SIZEOF( + QUERY ( sa <* get_shape_aspects( SELF ) | ( ( sa.description = 'boundary occurrence' ) AND ( SIZEOF( + QUERY ( sar <* USEDIN( sa, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT' ) | ( ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF( sar ) ) + AND ( sar.description = 'profile usage' ) ) ) ) = 1 ) ) ) ) ); + wr5: ( ( SIZEOF( QUERY ( sa <* get_shape_aspects( SELF ) | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.COMPOSITE_SHAPE_ASPECT' IN TYPEOF( sa ) ) ) ) + <= 1 ) AND ( SIZEOF( QUERY ( sa <* get_shape_aspects( SELF ) | ( ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.COMPOSITE_SHAPE_ASPECT' IN TYPEOF( sa ) ) AND + ( sa.name = 'general compound feature' ) AND ( SIZEOF( QUERY ( sar <* USEDIN( sa, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.' + + 'RELATING_SHAPE_ASPECT' ) | ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF( sar ) ) AND ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.INSTANCED_FEATURE' IN TYPEOF( sar. + related_shape_aspect ) ) ) ) ) >= 2 ) ) ) ) <= 1 ) ); + END_ENTITY; + + ENTITY general_linear_function + SUBTYPE OF ( maths_function, unary_generic_expression ); + SELF\unary_generic_expression.operand : maths_function; + sum_index : one_or_two; + DERIVE + mat : maths_function := SELF\unary_generic_expression.operand; + WHERE + wr1: function_is_2d_table( mat ); + wr2: ( ( space_dimension( mat.range ) = 1 ) AND subspace_of_es( factor1( mat.range ), es_numbers ) ); + END_ENTITY; + + ENTITY general_material_property + SUBTYPE OF ( general_property ); + WHERE + wr1: ( SIZEOF( QUERY ( gpa <* USEDIN( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'GENERAL_PROPERTY_ASSOCIATION.BASE_DEFINITION' ) | ( NOT ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MATERIAL_PROPERTY' IN TYPEOF( gpa\ + general_property_association.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, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 generated_finite_numeric_space + SUBTYPE OF ( finite_space ); + start_value : maths_number; + increment_value : maths_number; + increment_number : positive_integer; + DERIVE + SELF\finite_space.members : SET [2 : ?] OF maths_number := make_numeric_set( start_value, increment_value, + increment_number ); + WHERE + wr1: ( increment_value <> 0 ); + 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_footprint_definition + ABSTRACT SUPERTYPE OF ( + ONEOF ( + footprint_definition, + breakout_footprint_definition ) ) + SUBTYPE OF ( multi_stratum_structured_template ); + END_ENTITY; + + ENTITY generic_laminate_text_component + ABSTRACT SUPERTYPE OF ( + ONEOF ( + additive_laminate_text_component, + material_removal_laminate_text_component ) ) + SUBTYPE OF ( laminate_component ); + END_ENTITY; + + ENTITY generic_literal + ABSTRACT SUPERTYPE + SUBTYPE OF ( simple_generic_expression ); + END_ENTITY; + + ENTITY generic_product_definition_reference + ABSTRACT SUPERTYPE OF ( + ONEOF ( + product_definition_reference, + product_definition_reference_with_local_representation ) ); + source : external_source; + 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_contact + SUBTYPE OF ( derived_shape_aspect ); + WHERE + wr1: ( SIZEOF( SELF\derived_shape_aspect.deriving_relationships ) = 2 ); + END_ENTITY; + + ENTITY geometric_curve_set + SUBTYPE OF ( geometric_set ); + WHERE + wr1: ( SIZEOF( QUERY ( temp <* SELF\geometric_set.elements | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SURFACE' IN TYPEOF( temp ) ) ) ) = 0 ); + END_ENTITY; + + ENTITY geometric_gap_in_topology + ABSTRACT SUPERTYPE OF ( + ONEOF ( + gap_between_adjacent_edges_in_loop, + gap_between_vertex_and_base_surface, + gap_between_vertex_and_edge, + gap_between_edge_and_base_surface, + gap_between_pcurves_related_to_an_edge, + gap_between_faces_related_to_an_edge ) ) + SUBTYPE OF ( inapt_topology_and_geometry_relationship ); + 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.used_representation : shape_model; + SELF\item_identified_representation_usage.identified_item : geometric_model_item; + UNIQUE + ur1 : definition; + END_ENTITY; + + ENTITY geometric_model_element_relationship + SUBTYPE OF ( geometric_representation_item, representation_item_relationship ); + SELF\representation_item_relationship.relating_representation_item : geometric_representation_item; + SELF\representation_item_relationship.related_representation_item : geometric_representation_item; + UNIQUE + ur1 : SELF\representation_item_relationship.relating_representation_item, SELF\representation_item_relationship. + 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 + SUPERTYPE OF ( + ONEOF ( + geometric_representation_context_with_parameter, + path_parameter_representation_context ) ) + SUBTYPE OF ( representation_context ); + coordinate_space_dimension : dimension_count; + END_ENTITY; + + ENTITY geometric_representation_context_with_parameter + SUBTYPE OF ( geometric_representation_context ); + parameter_unit : OPTIONAL unit; + 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, + primitive_2d, + right_angular_wedge, + volume, + half_space_solid, + shell_based_surface_model, + face_based_surface_model, + shell_based_wireframe_model, + edge_based_wireframe_model, + geometric_set, + tessellated_item ) + ANDOR + ONEOF ( + camera_model, + camera_model_d3_multi_clipping_intersection, + camera_model_d3_multi_clipping_union, + curve, + direction, + light_source ) + ANDOR + ONEOF ( + annotation_fill_area, + composite_text, + curve, + defined_character_glyph, + defined_symbol, + point, + symbol_target, + text_literal ) + ANDOR + ONEOF ( + curve, + externally_defined_hatch_style, + externally_defined_tile_style, + fill_area_style_hatching, + fill_area_style_tile_coloured_region, + fill_area_style_tile_curve_with_style, + fill_area_style_tile_symbol_with_style, + fill_area_style_tiles, + one_direction_repeat_factor, + point, + vector ) + ANDOR + ONEOF ( + kinematic_path, + placement ) + ANDOR + ONEOF ( + curve, + planar_extent ) + ANDOR + ONEOF ( + rotation_about_direction, + su_parameters ) ) + SUBTYPE OF ( representation_item ); + DERIVE + dim : dimension_count := dimension_of( SELF ); + WHERE + wr1: ( SIZEOF( QUERY ( using_rep <* using_representations( SELF ) | ( NOT ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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_template + ABSTRACT SUPERTYPE + SUBTYPE OF ( part_template_definition ); + END_ENTITY; + + ENTITY geometric_tolerance + ABSTRACT SUPERTYPE OF ( + geometric_tolerance_with_datum_reference + ANDOR + geometric_tolerance_with_defined_unit + ANDOR + ONEOF ( + geometric_tolerance_with_modifiers, + modified_geometric_tolerance ) + ANDOR + unequally_disposed_geometric_tolerance + ANDOR + ONEOF ( + cylindricity_tolerance, + flatness_tolerance, + line_profile_tolerance, + position_tolerance, + roundness_tolerance, + straightness_tolerance, + surface_profile_tolerance ) ); + name : label; + description : OPTIONAL text; + magnitude : OPTIONAL length_measure_with_unit; + toleranced_shape_aspect : geometric_tolerance_target; + DERIVE + controlling_shape : product_definition_shape := sts_get_product_definition_shape( toleranced_shape_aspect ); + id : identifier := get_id_value( SELF ); + UNIQUE + ur1 : id, controlling_shape; + WHERE + wr1: ( magnitude\measure_with_unit.value_component >= 0 ); + wr2: EXISTS( controlling_shape ); + wr3: ( ( NOT ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP' IN TYPEOF( + toleranced_shape_aspect ) ) ) OR ( toleranced_shape_aspect\shape_aspect_relationship.relating_shape_aspect.of_shape + :=: toleranced_shape_aspect\shape_aspect_relationship.related_shape_aspect.of_shape ) ); + wr4: ( SIZEOF( USEDIN( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'ID_ATTRIBUTE.' + + 'IDENTIFIED_ITEM' ) ) <= 1 ); + 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 + SUPERTYPE OF ( + ONEOF ( + angularity_tolerance, + circular_runout_tolerance, + coaxiality_tolerance, + concentricity_tolerance, + parallelism_tolerance, + perpendicularity_tolerance, + symmetry_tolerance, + total_runout_tolerance ) ) + SUBTYPE OF ( geometric_tolerance ); + datum_system : SET [1 : ?] OF datum_system_or_reference; + WHERE + wr1: ( ( SIZEOF( QUERY ( ds <* datum_system | ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'DATUM_SYSTEM' ) IN TYPEOF( ds ) ) ) ) = 0 ) OR ( SIZEOF( datum_system ) = 1 ) ); + END_ENTITY; + + ENTITY geometric_tolerance_with_defined_area_unit + SUBTYPE OF ( geometric_tolerance_with_defined_unit ); + area_type : area_unit_type; + second_unit_size : OPTIONAL length_measure_with_unit; + WHERE + wr1: ( NOT ( EXISTS( second_unit_size ) XOR ( area_type = area_unit_type.rectangular ) ) ); + END_ENTITY; + + ENTITY geometric_tolerance_with_defined_unit + SUBTYPE OF ( geometric_tolerance ); + unit_size : length_measure_with_unit; + WHERE + wr1: ( ( 'NUMBER' IN TYPEOF( unit_size\measure_with_unit.value_component ) ) AND ( unit_size\measure_with_unit. + value_component > 0 ) ); + END_ENTITY; + + ENTITY geometric_tolerance_with_maximum_tolerance + SUBTYPE OF ( geometric_tolerance_with_modifiers ); + maximum_upper_tolerance : length_measure_with_unit; + WHERE + wr1: ( ( geometric_tolerance_modifier.maximum_material_requirement IN SELF\geometric_tolerance_with_modifiers.modifiers ) + OR ( geometric_tolerance_modifier.least_material_requirement IN SELF\geometric_tolerance_with_modifiers.modifiers ) ); + wr2: ( ( maximum_upper_tolerance\measure_with_unit.unit_component = SELF\geometric_tolerance.magnitude\measure_with_unit. + unit_component ) AND ( maximum_upper_tolerance\measure_with_unit.value_component > SELF\geometric_tolerance. + magnitude\measure_with_unit.value_component ) ); + END_ENTITY; + + ENTITY geometric_tolerance_with_modifiers + SUBTYPE OF ( geometric_tolerance ); + modifiers : SET [1 : ?] OF geometric_tolerance_modifier; + 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 ) * [ + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.GEOMETRIC_CURVE_SET' , + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.AXIS2_PLACEMENT_2D' , + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MAPPED_ITEM' ] ) = 1 ) ) ) ) = 0 ); + wr3: ( SIZEOF( QUERY ( item <* SELF.items | ( SIZEOF( TYPEOF( item ) * [ + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.GEOMETRIC_CURVE_SET' , + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MAPPED_ITEM' ] ) = 1 ) ) ) >= 1 ); + wr4: ( SIZEOF( QUERY ( mi <* QUERY ( item <* SELF.items | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MAPPED_ITEM' IN TYPEOF( item ) ) ) | ( NOT ( + ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.GEOMETRIC_CURVE_SET' IN TYPEOF( item ) ) ) | + ( NOT ( SIZEOF( QUERY ( elem <* gcs\geometric_set.elements | ( NOT ( SIZEOF( TYPEOF( elem ) * [ + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.B_SPLINE_CURVE' , + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CIRCLE' , + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.COMPOSITE_CURVE' , + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.ELLIPSE' , + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.OFFSET_CURVE_2D' , + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.POINT' , + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.POLYLINE' , + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.TRIMMED_CURVE' ] ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ); + wr6: ( SIZEOF( QUERY ( gcs <* QUERY ( item <* SELF.items | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.GEOMETRIC_CURVE_SET' IN TYPEOF( item ) ) ) | + ( NOT ( SIZEOF( QUERY ( crv <* QUERY ( elem <* gcs\geometric_set.elements | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CURVE' IN TYPEOF( elem ) ) ) | ( NOT + valid_basis_curve_in_2d_wireframe( crv ) ) ) ) = 0 ) ) ) ) = 0 ); + wr7: ( SIZEOF( QUERY ( gcs <* QUERY ( item <* SELF.items | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.GEOMETRIC_CURVE_SET' IN TYPEOF( item ) ) ) | + ( NOT ( SIZEOF( QUERY ( pnt <* QUERY ( elem <* gcs\geometric_set.elements | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.POINT' IN TYPEOF( elem ) ) ) | ( NOT ( + SIZEOF( TYPEOF( pnt ) * [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CARTESIAN_POINT', + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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( [ + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.GEOMETRIC_SET' , + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MAPPED_ITEM' , + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.AXIS2_PLACEMENT_3D' ] * TYPEOF( it ) ) = 1 ) ) ) ) + = 0 ); + wr2: ( SIZEOF( QUERY ( it <* SELF.items | ( SIZEOF( [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'GEOMETRIC_SET' , 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MAPPED_ITEM'] * TYPEOF( it ) ) + = 1 ) ) ) > 0 ); + wr3: ( SIZEOF( QUERY ( mi <* QUERY ( it <* SELF.items | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MAPPED_ITEM' IN TYPEOF( it ) ) ) | ( NOT ( ( + ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 + | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.GEOMETRIC_SET' IN TYPEOF( mr_it ) ) ) ) > 0 ) ) ) ) ) + = 0 ); + wr4: ( SIZEOF( QUERY ( gs <* QUERY ( it <* SELF.items | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.GEOMETRIC_SET' IN TYPEOF( it ) ) ) | ( NOT ( + SIZEOF( QUERY ( pnt <* QUERY ( gsel <* gs\geometric_set.elements | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.POINT' IN TYPEOF( gsel ) ) ) | ( NOT + gbsf_check_point( pnt ) ) ) ) = 0 ) ) ) ) = 0 ); + wr5: ( SIZEOF( QUERY ( gs <* QUERY ( it <* SELF.items | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.GEOMETRIC_SET' IN TYPEOF( it ) ) ) | ( NOT ( + SIZEOF( QUERY ( cv <* QUERY ( gsel <* gs\geometric_set.elements | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CURVE' IN TYPEOF( gsel ) ) ) | ( NOT + gbsf_check_curve( cv ) ) ) ) = 0 ) ) ) ) = 0 ); + wr6: ( SIZEOF( QUERY ( gs <* QUERY ( it <* SELF.items | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.GEOMETRIC_SET' IN TYPEOF( it ) ) ) | ( NOT ( + SIZEOF( QUERY ( sf <* QUERY ( gsel <* gs\geometric_set.elements | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SURFACE' IN TYPEOF( gsel ) ) ) | ( NOT + gbsf_check_surface( sf ) ) ) ) = 0 ) ) ) ) = 0 ); + wr7: ( SIZEOF( QUERY ( gs <* QUERY ( it <* SELF.items | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.GEOMETRIC_SET' IN TYPEOF( it ) ) ) | ( + SIZEOF( QUERY ( gsel <* gs\geometric_set.elements | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 ) * [ + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.GEOMETRIC_CURVE_SET' , + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.AXIS2_PLACEMENT_3D' , + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MAPPED_ITEM' ] ) = 1 ) ) ) ) = 0 ); + wr2: ( SIZEOF( QUERY ( it <* SELF.items | ( SIZEOF( TYPEOF( it ) * [ + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.GEOMETRIC_CURVE_SET' , + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MAPPED_ITEM' ] ) = 1 ) ) ) >= 1 ); + wr3: ( SIZEOF( QUERY ( gcs <* QUERY ( it <* SELF.items | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.GEOMETRIC_CURVE_SET' IN TYPEOF( it ) ) ) | ( + NOT ( SIZEOF( QUERY ( crv <* QUERY ( elem <* gcs\geometric_set.elements | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CURVE' IN TYPEOF( elem ) ) ) | ( NOT + valid_geometrically_bounded_wf_curve( crv ) ) ) ) = 0 ) ) ) ) = 0 ); + wr4: ( SIZEOF( QUERY ( gcs <* QUERY ( it <* SELF.items | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.GEOMETRIC_CURVE_SET' IN TYPEOF( it ) ) ) | ( + NOT ( SIZEOF( QUERY ( pnts <* QUERY ( elem <* gcs\geometric_set.elements | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.POINT' IN TYPEOF( elem ) ) ) | ( NOT + valid_geometrically_bounded_wf_point( pnts ) ) ) ) = 0 ) ) ) ) = 0 ); + wr5: ( SIZEOF( QUERY ( gcs <* QUERY ( it <* SELF.items | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.GEOMETRIC_CURVE_SET' IN TYPEOF( it ) ) ) | ( + NOT ( SIZEOF( QUERY ( cnc <* QUERY ( elem <* gcs\geometric_set.elements | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CONIC' IN TYPEOF( elem ) ) ) | ( NOT ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.AXIS2_PLACEMENT_3D' IN TYPEOF( cnc\conic. + position ) ) ) ) ) = 0 ) ) ) ) = 0 ); + wr6: ( SIZEOF( QUERY ( gcs <* QUERY ( it <* SELF.items | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.GEOMETRIC_CURVE_SET' IN TYPEOF( it ) ) ) | ( + NOT ( SIZEOF( QUERY ( pline <* QUERY ( elem <* gcs\geometric_set.elements | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.POLYLINE' IN TYPEOF( elem ) ) ) | ( NOT ( + SIZEOF( pline\polyline.points ) > 2 ) ) ) ) = 0 ) ) ) ) = 0 ); + wr7: ( SIZEOF( QUERY ( mi <* QUERY ( it <* SELF.items | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MAPPED_ITEM' IN TYPEOF( it ) ) ) | ( NOT ( ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'GEOMETRICALLY_BOUNDED_WIREFRAME_SHAPE_REPRESENTATION' ) IN TYPEOF( mi\mapped_item.mapping_source. + mapped_representation ) ) ) ) ) = 0 ); + END_ENTITY; + + ENTITY geometry_with_local_irregularity + ABSTRACT SUPERTYPE OF ( + ONEOF ( + extreme_patch_width_variation, + zero_surface_normal, + abrupt_change_of_surface_normal ) ) + SUBTYPE OF ( inapt_geometry ); + END_ENTITY; + + ENTITY geometry_with_local_near_degeneracy + ABSTRACT SUPERTYPE OF ( + ONEOF ( + curve_with_small_curvature_radius, + short_length_curve_segment, + surface_with_small_curvature_radius, + small_area_surface_patch, + narrow_surface_patch, + indistinct_surface_knots, + indistinct_curve_knots, + nearly_degenerate_surface_boundary, + nearly_degenerate_surface_patch ) ) + SUBTYPE OF ( inapt_geometry ); + 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 + SUPERTYPE OF ( + ONEOF ( + change_group, + change_element ) ); + name : label; + description : OPTIONAL text; + DERIVE + id : identifier := get_id_value( SELF ); + WHERE + wr1: ( SIZEOF( USEDIN( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'ID_ATTRIBUTE.' + + 'IDENTIFIED_ITEM' ) ) <= 1 ); + END_ENTITY; + + ENTITY group_assignment + ABSTRACT SUPERTYPE OF ( + ONEOF ( + current_change_element_assignment, + previous_change_element_assignment, + change_group_assignment ) ); + assigned_group : group; + DERIVE + role : object_role := get_role( SELF ); + WHERE + wr1: ( SIZEOF( USEDIN( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'ROLE_ASSOCIATION.' + + 'ITEM_WITH_ROLE' ) ) <= 1 ); + END_ENTITY; + + ENTITY group_product_definition + SUBTYPE OF ( component_definition ); + END_ENTITY; + + ENTITY group_relationship; + name : label; + description : OPTIONAL text; + relating_group : group; + related_group : group; + END_ENTITY; + + ENTITY group_shape_aspect + SUBTYPE OF ( shape_aspect ); + END_ENTITY; + + ENTITY guided_wave_terminal + SUBTYPE OF ( package_terminal ); + END_ENTITY; + + ENTITY half_space_2d + SUBTYPE OF ( primitive_2d ); + base_curve : curve; + agreement_flag : BOOLEAN; + 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 ) ) AND ( SIZEOF( SELF.items ) <= 4 ) AND ( ( SIZEOF( QUERY ( i <* items | ( ( ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'DESCRIPTIVE_REPRESENTATION_ITEM' ) IN + TYPEOF( i ) ) AND ( i.name IN [ 'measuring method', 'measuring position'] ) ) ) ) + SIZEOF( QUERY ( i <* items | ( + ( SIZEOF( [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'MEASURE_REPRESENTATION_ITEM', + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION_REPRESENTATION.' + 'USED_REPRESENTATION' ) ) = 1 ) AND ( SIZEOF( QUERY ( pdr <* USEDIN( SELF, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.' + + 'USED_REPRESENTATION' ) | ( SIZEOF( QUERY ( gpa <* USEDIN( pdr.definition, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'GENERAL_PROPERTY_ASSOCIATION.' + + 'DERIVED_DEFINITION' ) | ( ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'GENERAL_PROPERTY' ) IN TYPEOF( gpa.base_definition ) ) AND ( gpa\general_property_association.base_definition\ + general_property.name = 'surface_condition' ) ) ) ) = 1 ) ) ) = 1 ) ); + END_ENTITY; + + ENTITY hatch_area_template + SUBTYPE OF ( fill_area_template ); + END_ENTITY; + + ENTITY hatch_line_element + SUBTYPE OF ( geometric_representation_item, representation_item_relationship ); + SELF\representation_item_relationship.relating_representation_item : line; + SELF\representation_item_relationship.related_representation_item : measure_representation_item; + END_ENTITY; + + ENTITY hidden_element_over_riding_styled_item + SUBTYPE OF ( context_dependent_over_riding_styled_item ); + SELF\context_dependent_over_riding_styled_item.style_context : LIST [1 : 1] OF presentation_view; + SELF\styled_item.item : camera_image; + INVERSE + container : SET [1 : ?] OF presentation_view FOR items; + WHERE + wr1: ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CAMERA_MODEL_D3_WITH_HLHSR' IN TYPEOF( SELF.item + \mapped_item.mapping_source.mapping_origin ) ); + END_ENTITY; + + ENTITY high_degree_axi_symmetric_surface + SUBTYPE OF ( overcomplex_geometry ); + SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; + approximation_tolerance : length_measure; + WHERE + wr1: ( ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' ) + IN TYPEOF( SELF\shape_data_quality_criterion.assessment_specification\ + shape_data_quality_assessment_by_numerical_test.threshold ) ) AND ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.COUNT_MEASURE' IN value_limit_type( SELF\ + shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold ) ) ); + wr2: validate_measured_data_type( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.COUNT_MEASURE' ); + wr3: validate_inspected_elements_type( SELF, [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'B_SPLINE_SURFACE' ] ); + wr4: validate_locations_of_extreme_value_type( SELF, [] ); + wr5: validate_accuracy_types( SELF, [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE'] ); + END_ENTITY; + + ENTITY high_degree_conic + SUBTYPE OF ( overcomplex_geometry ); + SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; + approximation_tolerance : length_measure; + WHERE + wr1: ( ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' ) + IN TYPEOF( SELF\shape_data_quality_criterion.assessment_specification\ + shape_data_quality_assessment_by_numerical_test.threshold ) ) AND ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.COUNT_MEASURE' IN value_limit_type( SELF\ + shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold ) ) ); + wr2: validate_measured_data_type( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.COUNT_MEASURE' ); + wr3: validate_inspected_elements_type( SELF, [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'B_SPLINE_CURVE' ] ); + wr4: validate_locations_of_extreme_value_type( SELF, [] ); + wr5: validate_accuracy_types( SELF, [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE'] ); + END_ENTITY; + + ENTITY high_degree_linear_curve + SUBTYPE OF ( overcomplex_geometry ); + SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; + approximation_tolerance : length_measure; + WHERE + wr1: ( ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' ) + IN TYPEOF( SELF\shape_data_quality_criterion.assessment_specification\ + shape_data_quality_assessment_by_numerical_test.threshold ) ) AND ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.COUNT_MEASURE' IN value_limit_type( SELF\ + shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold ) ) ); + wr2: validate_measured_data_type( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.COUNT_MEASURE' ); + wr3: validate_inspected_elements_type( SELF, [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'B_SPLINE_CURVE' ] ); + wr4: validate_locations_of_extreme_value_type( SELF, [] ); + wr5: validate_accuracy_types( SELF, [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE'] ); + END_ENTITY; + + ENTITY high_degree_planar_surface + SUBTYPE OF ( overcomplex_geometry ); + SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; + approximation_tolerance : length_measure; + WHERE + wr1: ( ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' ) + IN TYPEOF( SELF\shape_data_quality_criterion.assessment_specification\ + shape_data_quality_assessment_by_numerical_test.threshold ) ) AND ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.COUNT_MEASURE' IN value_limit_type( SELF\ + shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold ) ) ); + wr2: validate_measured_data_type( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.COUNT_MEASURE' ); + wr3: validate_inspected_elements_type( SELF, [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'B_SPLINE_SURFACE' ] ); + wr4: validate_locations_of_extreme_value_type( SELF, [] ); + wr5: validate_accuracy_types( SELF, [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE'] ); + END_ENTITY; + + ENTITY high_order_kinematic_pair + ABSTRACT SUPERTYPE OF ( + ONEOF ( + linear_flexible_and_planar_curve_pair, + point_on_surface_pair, + point_on_planar_curve_pair, + planar_curve_pair, + surface_pair ) ) + SUBTYPE OF ( kinematic_pair ); + WHERE + wr1: ( SIZEOF( QUERY ( lr <* SELF\kinematic_pair.associated_link_representations_2 | ( NOT ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.RIGID_LINK_REPRESENTATION' IN TYPEOF( lr ) ) ) ) ) + = 0 ); + END_ENTITY; + + ENTITY hole_bottom + SUBTYPE OF ( shape_aspect ); + WHERE + wr1 : ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.FEATURE_COMPONENT_DEFINITION' IN TYPEOF( SELF. + of_shape.definition ) ); + wr2 : ( SELF.description IN [ 'through', 'flat', 'flat with radius', 'flat with taper', 'spherical', 'conical'] ); + wr3 : ( ( NOT ( SELF.description = 'through' ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( + SIZEOF( USEDIN( pd, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) ) = 0 ) ) ) ) = 0 ) ); + wr4 : ( ( NOT ( SELF.description IN [ 'flat with radius', 'flat with taper', 'spherical', 'conical'] ) ) OR ( SIZEOF( + QUERY ( pd <* USEDIN( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( pdr <* USEDIN( pd, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) + | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN + TYPEOF( pdr.used_representation ) ) ) ) = 1 ) ) ) ) = 0 ) ); + wr5 : ( ( NOT ( SELF.description = 'flat' ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( + SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) + | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN + TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( impl_rep.used_representation.items ) = 0 ) ) ) ) = 0 ) ) ) ) + = 0 ) ); + wr6 : ( ( NOT ( SELF.description IN [ 'flat with radius', 'spherical'] ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( + SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) + | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN + TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( impl_rep.used_representation.items ) = 1 ) ) ) ) = 0 ) ) ) ) + = 0 ) ); + wr7 : ( ( NOT ( SELF.description = 'flat with taper' ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( + SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) + | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN + TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( impl_rep.used_representation.items ) = 2 ) ) ) ) = 0 ) ) ) ) + = 0 ) ); + wr8 : ( ( NOT ( SELF.description = 'conical' ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( + SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) + | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN + TYPEOF( pdr.used_representation ) ) ) | ( ( NOT ( SIZEOF( impl_rep.used_representation.items ) >= 1 ) ) AND ( + SIZEOF( impl_rep.used_representation.items ) <= 2 ) ) ) ) = 0 ) ) ) ) = 0 ) ); + wr9 : ( ( SELF.description = 'through' ) OR ( SIZEOF( QUERY ( fcr <* QUERY ( sar <* USEDIN( SELF, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.' + + 'RELATING_SHAPE_ASPECT' ) | ( ( sar.description = 'hole bottom usage' ) AND ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF( + sar ) ) ) ) | ( fcr.name IN [ 'hole depth start', 'hole depth end'] ) ) ) >= 1 ) ); + wr10: ( ( NOT ( SELF.description = 'flat with radius' ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( + SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) + | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN + TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( + SIZEOF( [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( it ) ) + = 2 ) AND ( it.name = 'corner radius' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ) ); + wr11: ( ( NOT ( SELF.description = 'spherical' ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( + SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) + | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN + TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( + SIZEOF( [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( it ) ) + = 2 ) AND ( it.name = 'radius' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ) ); + wr12: ( ( NOT ( SELF.description = 'conical' ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( + SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) + | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN + TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( + SIZEOF( [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( it ) ) + = 2 ) AND ( it.name = 'tip radius' ) ) ) ) <= 1 ) ) ) ) = 0 ) ) ) ) = 0 ) ); + wr13: ( ( NOT ( SELF.description = 'conical' ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( + SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) + | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN + TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( + SIZEOF( [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PLANE_ANGLE_MEASURE_WITH_UNIT' ] * TYPEOF( it ) ) + = 2 ) AND ( it.name = 'tip angle' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ) ); + wr14: ( SIZEOF( QUERY ( fcr <* QUERY ( sar <* USEDIN( SELF, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.' + + 'RELATING_SHAPE_ASPECT' ) | ( ( sar.description = 'hole bottom usage' ) AND ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF( + sar ) ) ) ) | ( ( fcr.related_shape_aspect.description = 'bottom condition occurrence' ) AND ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.ROUND_HOLE' IN TYPEOF( fcr. + related_shape_aspect.of_shape.definition ) ) AND ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.HOLE_BOTTOM' IN TYPEOF( fcr. + relating_shape_aspect ) ) ) ) ) >= 1 ); + wr15: ( ( NOT ( SELF.description = 'flat with taper' ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( + SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) + | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN + TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( + SIZEOF( [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( it ) ) + = 2 ) AND ( it.name = 'final diameter' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ) ); + wr16: ( ( NOT ( SELF.description = 'flat with taper' ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( + SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) + | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN + TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( + SIZEOF( [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PLANE_ANGLE_MEASURE_WITH_UNIT' ] * TYPEOF( it ) ) + = 2 ) AND ( it.name = 'taper diameter' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ) ); + END_ENTITY; + + ENTITY hole_in_panel + SUBTYPE OF ( feature_definition ); + WHERE + wr1: ( SIZEOF( QUERY ( sa <* get_shape_aspects( SELF ) | ( ( sa.name = 'hole profile' ) AND ( sa.description = + 'closed profile occurrence' ) AND ( SIZEOF( QUERY ( sar <* USEDIN( sa, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'SHAPE_ASPECT_RELATIONSHIP.' + + 'RELATED_SHAPE_ASPECT' ) | ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF( sar ) ) AND ( sar.description = 'profile usage' ) AND ( SIZEOF( [ + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CIRCULAR_CLOSED_PROFILE' , + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.NGON_CLOSED_PROFILE' , + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.RECTANGULAR_CLOSED_PROFILE' , + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CLOSED_PATH_PROFILE' ] * TYPEOF( sar. + relating_shape_aspect ) ) = 1 ) ) ) ) = 1 ) ) ) ) = 1 ); + wr2: ( SIZEOF( get_property_definition_representations( SELF ) ) = SIZEOF( QUERY ( pdr <* + get_property_definition_representations( SELF ) | ( SIZEOF( pdr.used_representation.items ) = 1 ) ) ) ); + END_ENTITY; + + ENTITY homogeneous_linear_function + SUBTYPE OF ( maths_function, unary_generic_expression ); + SELF\unary_generic_expression.operand : maths_function; + sum_index : one_or_two; + DERIVE + mat : maths_function := SELF\unary_generic_expression.operand; + WHERE + wr1: function_is_2d_table( mat ); + wr2: ( ( space_dimension( mat.range ) = 1 ) AND subspace_of_es( factor1( mat.range ), es_numbers ) ); + END_ENTITY; + + ENTITY homokinetic_pair + SUBTYPE OF ( universal_pair ); + WHERE + wr1: ( NOT EXISTS( SELF.input_skew_angle ) ); + 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: ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 impedance_measurement_setup_requirement + SUBTYPE OF ( predefined_requirement_view_definition ); + END_ENTITY; + + ENTITY impedance_requirement + SUBTYPE OF ( predefined_requirement_view_definition ); + END_ENTITY; + + ENTITY implicit_explicit_positioned_sketch_relationship + SUBTYPE OF ( representation_item_relationship ); + SELF\representation_item_relationship.relating_representation_item : repositioned_neutral_sketch; + SELF\representation_item_relationship.related_representation_item : positioned_sketch; + WHERE + wr1: ( 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 implicit_intersection_curve + SUBTYPE OF ( implicit_planar_curve ); + external_surface : surface; + END_ENTITY; + + ENTITY implicit_model_intersection_curve + SUBTYPE OF ( implicit_planar_curve ); + intersected_model : surface_or_solid_model; + END_ENTITY; + + ENTITY implicit_planar_curve + ABSTRACT SUPERTYPE OF ( + ONEOF ( + implicit_intersection_curve, + implicit_projected_curve, + implicit_model_intersection_curve, + implicit_silhouette_curve ) ) + SUBTYPE OF ( curve, auxiliary_geometric_representation_item ); + using_sketch : positioned_sketch; + computed_representation : curve; + DERIVE + curve_plane : plane := get_plane_of_implicit_geometry( using_sketch ); + WHERE + wr1: ( SIZEOF( TYPEOF( computed_representation ) * [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'IMPLICIT_PLANAR_CURVE' , 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CURVE_REPLICA'] ) + = 0 ); + END_ENTITY; + + ENTITY implicit_planar_intersection_point + SUBTYPE OF ( implicit_point_on_plane ); + external_curve : curve; + END_ENTITY; + + ENTITY implicit_planar_projection_point + SUBTYPE OF ( implicit_point_on_plane ); + external_point : point; + projection_direction : direction; + END_ENTITY; + + ENTITY implicit_point_on_plane + ABSTRACT SUPERTYPE OF ( + ONEOF ( + implicit_planar_intersection_point, + implicit_planar_projection_point ) ) + SUBTYPE OF ( point, auxiliary_geometric_representation_item ); + using_sketch : positioned_sketch; + computed_representation : cartesian_point; + DERIVE + plane_of_point : plane := get_plane_of_implicit_geometry( using_sketch ); + WHERE + wr1: ( ( plane_of_point\elementary_surface.position.location = computed_representation ) XOR ( dot_product( plane_of_point\ + elementary_surface.position.p[3], get_relative_direction_2points( plane_of_point\elementary_surface.position. + location, computed_representation ) ) = 0 ) ); + wr2: ( SIZEOF( TYPEOF( computed_representation ) * [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'IMPLICIT_POINT_ON_PLANE' , 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.POINT_REPLICA'] ) + = 0 ); + END_ENTITY; + + ENTITY implicit_projected_curve + SUBTYPE OF ( implicit_planar_curve ); + external_curve : curve; + projection_direction : direction; + END_ENTITY; + + ENTITY implicit_silhouette_curve + SUBTYPE OF ( implicit_planar_curve ); + silhouetted_model : surface_or_solid_model; + view_direction : direction; + END_ENTITY; + + ENTITY imported_curve_function + SUBTYPE OF ( maths_function, generic_literal ); + geometry : curve; + parametric_domain : tuple_space; + WHERE + wr1: expression_is_constant( parametric_domain ); + END_ENTITY; + + ENTITY imported_point_function + SUBTYPE OF ( maths_function, generic_literal ); + geometry : point; + END_ENTITY; + + ENTITY imported_surface_function + SUBTYPE OF ( maths_function, generic_literal ); + geometry : surface; + parametric_domain : tuple_space; + WHERE + wr1: expression_is_constant( parametric_domain ); + END_ENTITY; + + ENTITY imported_volume_function + SUBTYPE OF ( maths_function, generic_literal ); + geometry : volume; + parametric_domain : tuple_space; + WHERE + wr1: expression_is_constant( parametric_domain ); + END_ENTITY; + + ENTITY inappropriate_element_visibility + SUBTYPE OF ( externally_conditioned_data_quality_criterion ); + WHERE + wr1: validate_ecdq_inspected_elements_type( SELF, [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'STYLED_ITEM' ] ); + END_ENTITY; + + ENTITY inappropriate_use_of_layer + SUBTYPE OF ( externally_conditioned_data_quality_criterion ); + WHERE + wr1: validate_ecdq_inspected_elements_type( SELF, [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PRESENTATION_LAYER_ASSIGNMENT' ] ); + END_ENTITY; + + ENTITY inapt_data + ABSTRACT SUPERTYPE OF ( + ONEOF ( + inapt_topology, + inapt_geometry, + inapt_topology_and_geometry_relationship, + inapt_manifold_solid_brep ) ) + SUBTYPE OF ( shape_data_quality_criterion ); + END_ENTITY; + + ENTITY inapt_geometry + ABSTRACT SUPERTYPE OF ( + ONEOF ( + nearly_degenerate_geometry, + discontinuous_geometry, + self_intersecting_geometry, + geometry_with_local_near_degeneracy, + overlapping_geometry, + multiply_defined_geometry, + geometry_with_local_irregularity, + overcomplex_geometry ) ) + SUBTYPE OF ( inapt_data ); + END_ENTITY; + + ENTITY inapt_manifold_solid_brep + ABSTRACT SUPERTYPE OF ( + ONEOF ( + partly_overlapping_solids, + small_volume_solid, + multiply_defined_solids, + entirely_narrow_solid, + solid_with_excessive_number_of_voids ) ) + SUBTYPE OF ( inapt_data ); + END_ENTITY; + + ENTITY inapt_topology + ABSTRACT SUPERTYPE OF ( + ONEOF ( + free_edge, + non_manifold_at_edge, + non_manifold_at_vertex, + over_used_vertex ) ) + SUBTYPE OF ( inapt_data ); + END_ENTITY; + + ENTITY inapt_topology_and_geometry_relationship + ABSTRACT SUPERTYPE OF ( + ONEOF ( + topology_related_to_nearly_degenerate_geometry, + geometric_gap_in_topology, + non_smooth_geometry_transition_across_edge, + topology_related_to_self_intersecting_geometry, + steep_geometry_transition_across_edge, + topology_related_to_overlapping_geometry, + topology_related_to_multiply_defined_geometry, + overcomplex_topology_and_geometry_relationship ) ) + SUBTYPE OF ( inapt_data ); + END_ENTITY; + + ENTITY incidence_assembly_constraint + SUBTYPE OF ( binary_assembly_constraint, incidence_geometric_constraint ); + END_ENTITY; + + ENTITY incidence_geometric_constraint + SUBTYPE OF ( explicit_geometric_constraint ); + SELF\explicit_constraint.constrained_elements : SET [1 : ?] OF geometric_constraint_element; + SELF\explicit_constraint.reference_elements : SET [0 : ?] OF geometric_constraint_element; + near_points : SET [0 : ?] OF near_point_relationship; + WHERE + wr1: ( ( SIZEOF( SELF\explicit_constraint.reference_elements ) > 0 ) OR ( SIZEOF( SELF\explicit_constraint. + constrained_elements ) = 2 ) ); + wr2: ( SIZEOF( near_points ) <= SIZEOF( SELF\explicit_constraint.reference_elements ) ); + wr3: ( SIZEOF( QUERY ( q <* near_points | ( NOT ( q\representation_item_relationship.relating_representation_item IN SELF\ + explicit_constraint.reference_elements ) ) ) ) = 0 ); + END_ENTITY; + + ENTITY included_text_block + SUBTYPE OF ( mapped_item ); + WHERE + wr1: ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'PACKAGE_PRODUCT_CONCEPT_FEATURE' ) + IN TYPEOF( SELF ) ) ); + wr2: ( ( SIZEOF( QUERY ( cfr <* USEDIN( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'CONCEPT_FEATURE_RELATIONSHIP.RELATING_PRODUCT_CONCEPT_FEATURE' ) | ( ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'CONCEPT_FEATURE_RELATIONSHIP_WITH_CONDITION' ) IN TYPEOF( cfr ) ) ) ) + SIZEOF( QUERY ( cfr <* USEDIN( SELF, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'CONCEPT_FEATURE_RELATIONSHIP.' + + 'RELATED_PRODUCT_CONCEPT_FEATURE' ) | ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'CONCEPT_FEATURE_RELATIONSHIP_WITH_CONDITION' ) IN TYPEOF( cfr ) ) ) ) ) = 0 ); + wr3: ( SELF.condition.conditional_operator.name = 'implication' ); + END_ENTITY; + + ENTITY inconsistent_adjacent_face_normals + SUBTYPE OF ( erroneous_topology ); + SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_logical_test; + WHERE + wr1: validate_measured_data_type( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.BOOLEAN_VALUE' ); + wr2: validate_inspected_elements_type( SELF, [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'CLOSED_OR_OPEN_SHELL_SELECT' ] ); + wr3: validate_locations_of_extreme_value_type( SELF, [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'EDGE_CURVE' ] ); + wr4: validate_accuracy_types( SELF, [] ); + END_ENTITY; + + ENTITY inconsistent_curve_transition_code + SUBTYPE OF ( erroneous_geometry ); + SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_logical_test; + angle_tolerance : plane_angle_measure; + curvature_ratio_tolerance : ratio_measure; + distance_tolerance : length_measure; + flat_curvature_radius_tolerance : length_measure; + WHERE + wr1: validate_measured_data_type( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.BOOLEAN_VALUE' ); + wr2: validate_inspected_elements_type( SELF, [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'COMPOSITE_CURVE' ] ); + wr3: validate_locations_of_extreme_value_type( SELF, [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'COMPOSITE_CURVE_TRANSITION_LOCATOR'] ); + wr4: validate_accuracy_types( SELF, [] ); + END_ENTITY; + + ENTITY inconsistent_edge_and_curve_directions + SUBTYPE OF ( erroneous_topology_and_geometry_relationship ); + SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_logical_test; + distance_tolerance : length_measure; + WHERE + wr1: validate_measured_data_type( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.BOOLEAN_VALUE' ); + wr2: validate_inspected_elements_type( SELF, [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'EDGE_CURVE' ] ); + wr3: validate_locations_of_extreme_value_type( SELF, [] ); + wr4: validate_accuracy_types( SELF, [] ); + END_ENTITY; + + ENTITY inconsistent_element_reference + SUBTYPE OF ( externally_conditioned_data_quality_criterion ); + WHERE + wr1: validate_ecdq_inspected_elements_type( SELF, [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'REPRESENTATION_ITEM' ] ); + END_ENTITY; + + ENTITY inconsistent_face_and_closed_shell_normals + SUBTYPE OF ( erroneous_topology_and_geometry_relationship ); + SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_logical_test; + WHERE + wr1: validate_measured_data_type( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.BOOLEAN_VALUE' ); + wr2: validate_inspected_elements_type( SELF, [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'FACE_SURFACE' ] ); + wr3: validate_locations_of_extreme_value_type( SELF, [] ); + wr4: validate_accuracy_types( SELF, [] ); + END_ENTITY; + + ENTITY inconsistent_face_and_surface_normals + SUBTYPE OF ( erroneous_topology_and_geometry_relationship ); + SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_logical_test; + WHERE + wr1: validate_measured_data_type( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.BOOLEAN_VALUE' ); + wr2: validate_inspected_elements_type( SELF, [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'FACE_SURFACE' ] ); + wr3: validate_locations_of_extreme_value_type( SELF, [] ); + wr4: validate_accuracy_types( SELF, [] ); + END_ENTITY; + + ENTITY inconsistent_surface_transition_code + SUBTYPE OF ( erroneous_geometry ); + SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_logical_test; + angle_tolerance : plane_angle_measure; + curvature_ratio_tolerance : ratio_measure; + distance_tolerance : length_measure; + flat_curvature_radius_tolerance : length_measure; + WHERE + wr1: validate_measured_data_type( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.BOOLEAN_VALUE' ); + wr2: validate_inspected_elements_type( SELF, [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'RECTANGULAR_COMPOSITE_SURFACE' ] ); + wr3: validate_locations_of_extreme_value_type( SELF, [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'RECTANGULAR_COMPOSITE_SURFACE_TRANSITION_LOCATOR'] ); + wr4: validate_accuracy_types( SELF, [] ); + END_ENTITY; + + ENTITY index_expression + SUBTYPE OF ( string_expression, binary_generic_expression ); + DERIVE + operand : generic_expression := SELF\binary_generic_expression.operands[1]; + index : generic_expression := SELF\binary_generic_expression.operands[2]; + WHERE + wr1: ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.STRING_EXPRESSION' IN TYPEOF( operand ) ) AND + ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.NUMERIC_EXPRESSION' IN TYPEOF( index ) ) ); + wr2: is_int_expr( index ); + END_ENTITY; + + ENTITY indirect_stratum_component_join_implementation + SUBTYPE OF ( plated_inter_stratum_feature ); + 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 ); + SELF\indirectly_selected_elements.indirectly_picked_items : SET [1 : ?] OF shape_representation_item; + END_ENTITY; + + ENTITY indistinct_curve_knots + SUBTYPE OF ( geometry_with_local_near_degeneracy ); + SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; + WHERE + wr1: ( ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'SHAPE_DATA_QUALITY_UPPER_VALUE_LIMIT' ) + IN TYPEOF( SELF\shape_data_quality_criterion.assessment_specification\ + shape_data_quality_assessment_by_numerical_test.threshold ) ) AND ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PARAMETER_VALUE' IN value_limit_type( SELF\ + shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold ) ) ); + wr2: validate_measured_data_type( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PARAMETER_VALUE' ); + wr3: validate_inspected_elements_type( SELF, [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'B_SPLINE_CURVE_WITH_KNOTS' ] ); + wr4: validate_locations_of_extreme_value_type( SELF, [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'B_SPLINE_CURVE_KNOT_LOCATOR'] ); + wr5: validate_accuracy_types( SELF, [] ); + END_ENTITY; + + ENTITY indistinct_surface_knots + SUBTYPE OF ( geometry_with_local_near_degeneracy ); + SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; + WHERE + wr1: ( ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'SHAPE_DATA_QUALITY_UPPER_VALUE_LIMIT' ) + IN TYPEOF( SELF\shape_data_quality_criterion.assessment_specification\ + shape_data_quality_assessment_by_numerical_test.threshold ) ) AND ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PARAMETER_VALUE' IN value_limit_type( SELF\ + shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold ) ) ); + wr2: validate_measured_data_type( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PARAMETER_VALUE' ); + wr3: validate_inspected_elements_type( SELF, [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'B_SPLINE_SURFACE_WITH_KNOTS' ] ); + wr4: validate_locations_of_extreme_value_type( SELF, [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'B_SPLINE_SURFACE_KNOT_LOCATOR'] ); + wr5: validate_accuracy_types( SELF, [] ); + END_ENTITY; + + ENTITY inductance_measure_with_unit + SUBTYPE OF ( measure_with_unit ); + WHERE + wr1: ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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_attribute_reference + SUBTYPE OF ( variable_semantics ); + attribute_name : attribute_identifier; + owning_instance : representation_item; + END_ENTITY; + + ENTITY instance_report_item_with_extreme_instances + SUBTYPE OF ( shape_data_quality_inspection_instance_report_item ); + extreme_instances : LIST [1 : ?] OF extreme_instance; + 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 ( feature_definition, shape_aspect ); + WHERE + wr1: ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PRODUCT_DEFINITION' IN TYPEOF( SELF.of_shape. + definition ) ); + wr2: SELF.product_definitional; + END_ENTITY; + + ENTITY int_literal + SUBTYPE OF ( literal_number ); + SELF\literal_number.the_value : INTEGER; + END_ENTITY; + + ENTITY int_numeric_variable + SUBTYPE OF ( numeric_variable ); + END_ENTITY; + + ENTITY int_value_function + SUBTYPE OF ( value_function ); + END_ENTITY; + + ENTITY integer_defined_function + ABSTRACT SUPERTYPE + SUBTYPE OF ( numeric_defined_function ); + END_ENTITY; + + ENTITY integer_interval_from_min + SUBTYPE OF ( maths_space, generic_literal ); + min : INTEGER; + END_ENTITY; + + ENTITY integer_interval_to_max + SUBTYPE OF ( maths_space, generic_literal ); + max : INTEGER; + END_ENTITY; + + ENTITY integer_representation_item + SUBTYPE OF ( representation_item, int_literal ); + END_ENTITY; + + ENTITY integer_tuple_literal + SUBTYPE OF ( generic_literal ); + lit_value : LIST [1 : ?] OF INTEGER; + END_ENTITY; + + ENTITY integral_shield + SUBTYPE OF ( laminate_component ); + END_ENTITY; + + ENTITY inter_stratum_feature + SUPERTYPE OF ( + ONEOF ( + cutout, + interconnect_module_edge ) ) + SUBTYPE OF ( laminate_component ); + END_ENTITY; + + ENTITY inter_stratum_feature_dependent_land + ABSTRACT SUPERTYPE OF ( + ONEOF ( + plated_passage_dependent_land, + unsupported_passage_dependent_land ) ) + SUBTYPE OF ( land ); + END_ENTITY; + + ENTITY inter_stratum_feature_edge_segment_template + SUBTYPE OF ( part_template_definition, shape_aspect_relationship ); + SELF\shape_aspect_relationship.relating_shape_aspect : edge_segment_vertex; + SELF\shape_aspect_relationship.related_shape_aspect : edge_segment_vertex; + WHERE + wr1: ( SELF\shape_aspect_relationship.relating_shape_aspect :<>: SELF\shape_aspect_relationship.related_shape_aspect ); + END_ENTITY; + + ENTITY inter_stratum_feature_edge_segment_template_with_cross_section + SUBTYPE OF ( inter_stratum_feature_edge_segment_template ); + END_ENTITY; + + ENTITY inter_stratum_feature_edge_template + SUBTYPE OF ( part_template_definition ); + END_ENTITY; + + ENTITY inter_stratum_feature_template + SUPERTYPE OF ( + ONEOF ( + component_termination_passage_template, + unsupported_passage_template, + via_template ) ) + SUBTYPE OF ( geometric_template ); + END_ENTITY; + + ENTITY interconnect_module_component + SUBTYPE OF ( physical_component ); + END_ENTITY; + + ENTITY interconnect_module_component_surface_feature + SUBTYPE OF ( physical_component_feature ); + END_ENTITY; + + ENTITY interconnect_module_cutout_segment_surface + SUBTYPE OF ( shape_aspect, shape_aspect_relationship ); + SELF\shape_aspect_relationship.relating_shape_aspect : edge_segment_vertex; + SELF\shape_aspect_relationship.related_shape_aspect : edge_segment_vertex; + WHERE + wr1: ( SELF\shape_aspect_relationship.relating_shape_aspect :<>: SELF\shape_aspect_relationship.related_shape_aspect ); + END_ENTITY; + + ENTITY interconnect_module_design_object_category + SUBTYPE OF ( characterized_object ); + END_ENTITY; + + ENTITY interconnect_module_design_view + SUPERTYPE OF ( + layered_interconnect_module_design_view ) + SUBTYPE OF ( physical_unit ); + END_ENTITY; + + ENTITY interconnect_module_edge + SUPERTYPE OF ( + ONEOF ( + partially_plated_interconnect_module_edge, + plated_interconnect_module_edge ) ) + SUBTYPE OF ( inter_stratum_feature ); + END_ENTITY; + + ENTITY interconnect_module_edge_segment + SUPERTYPE OF ( + ONEOF ( + plated_interconnect_module_edge_segment, + unplated_interconnect_module_edge_segment ) ) + SUBTYPE OF ( inter_stratum_feature, shape_aspect_relationship ); + SELF\shape_aspect_relationship.relating_shape_aspect : edge_segment_vertex; + SELF\shape_aspect_relationship.related_shape_aspect : edge_segment_vertex; + WHERE + wr1: ( SELF\shape_aspect_relationship.relating_shape_aspect :<>: SELF\shape_aspect_relationship.related_shape_aspect ); + END_ENTITY; + + ENTITY interconnect_module_edge_segment_surface + SUBTYPE OF ( shape_aspect, shape_aspect_relationship ); + SELF\shape_aspect_relationship.relating_shape_aspect : edge_segment_vertex; + SELF\shape_aspect_relationship.related_shape_aspect : edge_segment_vertex; + WHERE + wr1: ( SELF\shape_aspect_relationship.relating_shape_aspect :<>: SELF\shape_aspect_relationship.related_shape_aspect ); + END_ENTITY; + + ENTITY interconnect_module_interface_terminal + SUBTYPE OF ( interconnect_module_terminal ); + END_ENTITY; + + ENTITY interconnect_module_macro_component + SUBTYPE OF ( physical_component ); + END_ENTITY; + + ENTITY interconnect_module_macro_component_join_terminal + SUBTYPE OF ( physical_component_terminal ); + END_ENTITY; + + ENTITY interconnect_module_macro_terminal + SUBTYPE OF ( interconnect_module_terminal ); + END_ENTITY; + + ENTITY interconnect_module_stratum_based_terminal + SUBTYPE OF ( interconnect_module_terminal ); + END_ENTITY; + + ENTITY interconnect_module_terminal + SUPERTYPE OF ( + interconnect_module_interface_terminal + ANDOR + ONEOF ( + interconnect_module_interface_terminal, + interconnect_module_macro_terminal ) ) + SUBTYPE OF ( shape_aspect ); + END_ENTITY; + + ENTITY interconnect_module_usage_view + SUPERTYPE OF ( + layered_interconnect_module_usage_view ) + SUBTYPE OF ( physical_unit ); + END_ENTITY; + + ENTITY interconnect_shield_allocation + SUBTYPE OF ( requirement_assignment ); + END_ENTITY; + + ENTITY interface_access_component_definition + SUBTYPE OF ( laminate_component ); + END_ENTITY; + + ENTITY interface_access_material_removal_laminate_component + SUBTYPE OF ( material_removal_laminate_component ); + END_ENTITY; + + ENTITY interface_access_stratum_feature_template_component + SUBTYPE OF ( stratum_feature_template_component ); + END_ENTITY; + + ENTITY interface_component + SUBTYPE OF ( physical_component ); + END_ENTITY; + + ENTITY interface_mounted_join + SUBTYPE OF ( shape_aspect_relationship, shape_aspect ); + END_ENTITY; + + ENTITY interface_plane + SUBTYPE OF ( shape_aspect ); + END_ENTITY; + + ENTITY interfaced_group_component + SUBTYPE OF ( assembly_group_component ); + END_ENTITY; + + ENTITY interfacial_connection + SUBTYPE OF ( via ); + END_ENTITY; + + ENTITY internal_probe_access_area + SUBTYPE OF ( probe_access_area ); + END_ENTITY; + + ENTITY interpolated_configuration_representation + SUBTYPE OF ( representation ); + SELF\representation.context_of_items : geometric_representation_context_with_parameter; + SELF\representation.items : SET [1 : ?] OF interpolated_configuration_sequence; + END_ENTITY; + + ENTITY interpolated_configuration_segment + SUBTYPE OF ( founded_item ); + state : mechanism_state_representation; + t_parameter : parameter_value; + interpolation : interpolation_type; + END_ENTITY; + + ENTITY interpolated_configuration_sequence + SUBTYPE OF ( representation_item ); + segments : LIST [2 : ?] OF interpolated_configuration_segment; + DERIVE + n_segments : INTEGER := SIZEOF( segments ); + closed_interpolation : LOGICAL := segments[n_segments].interpolation <> discontinuous_interpolation_type; + configured_mechanism : mechanism_representation := segments[1].state.represented_mechanism; + WHERE + wr1: ( SIZEOF( QUERY ( ics <* segments | ( ics.state.represented_mechanism :<>: configured_mechanism ) ) ) = 0 ); + END_ENTITY; + + ENTITY intersecting_connected_face_sets + SUBTYPE OF ( topology_related_to_self_intersecting_geometry ); + SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_logical_test; + interference_tolerance : length_measure; + WHERE + wr1: validate_measured_data_type( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.BOOLEAN_VALUE' ); + wr2: validate_inspected_elements_type( SELF, [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'CONNECTED_FACE_SET' , 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CONNECTED_FACE_SET'] ); + wr3: validate_locations_of_extreme_value_type( SELF, [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'POINT_ON_FACE_SURFACE', 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'POINT_ON_FACE_SURFACE' ] ); + wr4: validate_accuracy_types( SELF, [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE'] ); + END_ENTITY; + + ENTITY intersecting_loops_in_face + SUBTYPE OF ( erroneous_topology_and_geometry_relationship ); + SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_logical_test; + interference_tolerance : length_measure; + WHERE + wr1: validate_measured_data_type( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.BOOLEAN_VALUE' ); + wr2: validate_inspected_elements_type( SELF, [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.FACE'] ); + wr3: validate_locations_of_extreme_value_type( SELF, [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'POINT_ON_EDGE_CURVE', 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'POINT_ON_EDGE_CURVE' ] ); + wr4: validate_accuracy_types( SELF, [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE'] ); + END_ENTITY; + + ENTITY intersecting_shells_in_solid + SUBTYPE OF ( erroneous_manifold_solid_brep ); + SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_logical_test; + interference_tolerance : length_measure; + WHERE + wr1: validate_measured_data_type( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.BOOLEAN_VALUE' ); + wr2: validate_inspected_elements_type( SELF, [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'BREP_WITH_VOIDS' ] ); + wr3: validate_locations_of_extreme_value_type( SELF, [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'SURFACE_CURVE' ] ); + wr4: validate_accuracy_types( SELF, [] ); + 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_low : generic_expression := SELF\multiple_arity_generic_expression.operands[1]; + interval_item : generic_expression := SELF\multiple_arity_generic_expression.operands[2]; + interval_high : generic_expression := SELF\multiple_arity_generic_expression.operands[3]; + WHERE + wr1: ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.EXPRESSION' IN TYPEOF( interval_low ) ) AND ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.EXPRESSION' IN TYPEOF( interval_item ) ) AND + ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.EXPRESSION' IN TYPEOF( interval_high ) ) ); + wr2: ( ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.STRING_EXPRESSION' IN TYPEOF( SELF. + interval_low ) ) AND ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.STRING_EXPRESSION' IN + TYPEOF( SELF.interval_high ) ) AND ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'STRING_EXPRESSION' IN TYPEOF( SELF.interval_item ) ) ) OR ( ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.NUMERIC_EXPRESSION' IN TYPEOF( SELF. + interval_low ) ) AND ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.NUMERIC_EXPRESSION' IN + TYPEOF( SELF.interval_item ) ) AND ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'NUMERIC_EXPRESSION' IN TYPEOF( SELF.interval_high ) ) ) ); + END_ENTITY; + + ENTITY inverse_copy_stratum_technology_occurrence_relationship + SUBTYPE OF ( derived_stratum_technology_occurrence_relationship ); + 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 : item_identified_representation_usage_definition; + used_representation : representation; + identified_item : item_identified_representation_usage_select; + WHERE + wr1: ( SELF.used_representation IN using_representations( SELF.identified_item ) ); + END_ENTITY; + + ENTITY item_link_motion_relationship + SUBTYPE OF ( link_motion_relationship ); + SELF\representation_relationship.rep_1 : shape_representation; + item : geometric_representation_item; + END_ENTITY; + + ENTITY item_restricted_requirement + SUBTYPE OF ( group, predefined_requirement_view_definition ); + END_ENTITY; + + ENTITY joggle + SUBTYPE OF ( feature_definition ); + WHERE + wr1 : ( SIZEOF( QUERY ( pdr <* get_property_definition_representations( SELF ) | ( ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN + TYPEOF( pdr.used_representation ) ) AND ( NOT ( ( 5 <= SIZEOF( pdr.used_representation.items ) ) AND ( SIZEOF( pdr + .used_representation.items ) <= 10 ) ) ) ) ) ) = 0 ); + wr2 : ( SIZEOF( QUERY ( pdr <* get_property_definition_representations( SELF ) | ( ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN + TYPEOF( pdr.used_representation ) ) AND ( SIZEOF( QUERY ( i <* pdr.used_representation.items | ( NOT ( i.name IN [ + 'orientation' , 'base radius 1', 'base radius 2', 'direction angle 1', 'direction angle 2', 'height', + 'slope angle 1' , 'slope angle 2', 'top radius 1', 'top radius 2'] ) ) ) ) > 0 ) ) ) ) = 0 ); + wr3 : ( SIZEOF( QUERY ( pdr <* get_property_definition_representations( SELF ) | ( ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN + TYPEOF( pdr.used_representation ) ) AND ( SIZEOF( QUERY ( i <* pdr.used_representation.items | ( ( i.name = + 'direction angle 1' ) AND ( SIZEOF( [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'MEASURE_REPRESENTATION_ITEM' , 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PLANE_ANGLE_MEASURE_WITH_UNIT' ] * TYPEOF( i ) ) = 2 ) ) ) ) = 1 ) ) ) ) = 1 ); + wr4 : ( SIZEOF( QUERY ( pdr <* get_property_definition_representations( SELF ) | ( ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN + TYPEOF( pdr.used_representation ) ) AND ( SIZEOF( QUERY ( i <* pdr.used_representation.items | ( ( i.name = + 'direction angle 2' ) AND ( SIZEOF( [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'MEASURE_REPRESENTATION_ITEM' , 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PLANE_ANGLE_MEASURE_WITH_UNIT' ] * TYPEOF( i ) ) = 2 ) ) ) ) = 1 ) ) ) ) = 1 ); + wr5 : ( SIZEOF( QUERY ( pdr <* get_property_definition_representations( SELF ) | ( ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN + TYPEOF( pdr.used_representation ) ) AND ( SIZEOF( QUERY ( i <* pdr.used_representation.items | ( ( i.name = 'height' ) + AND ( SIZEOF( [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( i ) ) = + 2 ) ) ) ) = 1 ) ) ) ) <= 1 ); + wr6 : ( SIZEOF( QUERY ( pdr <* get_property_definition_representations( SELF ) | ( ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN + TYPEOF( pdr.used_representation ) ) AND ( SIZEOF( QUERY ( i <* pdr.used_representation.items | ( ( i.name = + 'slope angle 1' ) AND ( SIZEOF( [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'MEASURE_REPRESENTATION_ITEM' , 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PLANE_ANGLE_MEASURE_WITH_UNIT' ] * TYPEOF( i ) ) = 2 ) ) ) ) = 1 ) ) ) ) = 1 ); + wr7 : ( SIZEOF( QUERY ( pdr <* get_property_definition_representations( SELF ) | ( ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN + TYPEOF( pdr.used_representation ) ) AND ( SIZEOF( QUERY ( i <* pdr.used_representation.items | ( ( i.name = + 'slope angle 2' ) AND ( SIZEOF( [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'MEASURE_REPRESENTATION_ITEM' , 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PLANE_ANGLE_MEASURE_WITH_UNIT' ] * TYPEOF( i ) ) = 2 ) ) ) ) = 1 ) ) ) ) = 1 ); + wr8 : ( SIZEOF( QUERY ( sa <* get_shape_aspects( SELF ) | ( ( sa.name = 'defining path' ) AND ( sa.description = + 'path feature component occurrence' ) AND ( SIZEOF( QUERY ( sar <* USEDIN( sa, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'SHAPE_ASPECT_RELATIONSHIP.' + + 'RELATED_SHAPE_ASPECT' ) | ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF( sar ) ) AND ( sar.description = 'path feature component usage' ) AND + ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PATH_FEATURE_COMPONENT' IN TYPEOF( sar. + relating_shape_aspect ) ) AND ( sar.relating_shape_aspect.description = 'linear' ) ) ) ) = 1 ) ) ) ) = 1 ); + wr9 : ( SIZEOF( QUERY ( sa <* get_shape_aspects( SELF ) | ( ( sa.name = 'termination' ) AND ( sa.description = + 'joggle termination occurrence' ) AND ( SIZEOF( QUERY ( sar <* USEDIN( sa, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'SHAPE_ASPECT_RELATIONSHIP.' + + 'RELATED_SHAPE_ASPECT' ) | ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF( sar ) ) AND ( sar.name = 'joggle termination usage' ) AND ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.JOGGLE_TERMINATION' IN TYPEOF( sar. + relating_shape_aspect ) ) ) ) ) = 1 ) ) ) ) = 1 ); + wr10: ( SIZEOF( QUERY ( pdr <* get_property_definition_representations( SELF ) | ( ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN + TYPEOF( pdr.used_representation ) ) AND ( SIZEOF( QUERY ( i <* pdr.used_representation.items | ( ( i.name = + 'base radius 1' ) AND ( SIZEOF( [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'MEASURE_REPRESENTATION_ITEM' , 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( i ) ) = 2 ) ) ) ) = 1 ) ) ) ) <= 1 ); + wr11: ( SIZEOF( QUERY ( pdr <* get_property_definition_representations( SELF ) | ( ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN + TYPEOF( pdr.used_representation ) ) AND ( SIZEOF( QUERY ( i <* pdr.used_representation.items | ( ( i.name = + 'base radius 2' ) AND ( SIZEOF( [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'MEASURE_REPRESENTATION_ITEM' , 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( i ) ) = 2 ) ) ) ) = 1 ) ) ) ) <= 1 ); + wr12: ( SIZEOF( QUERY ( pdr <* get_property_definition_representations( SELF ) | ( ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN + TYPEOF( pdr.used_representation ) ) AND ( SIZEOF( QUERY ( i <* pdr.used_representation.items | ( ( i.name = + 'top radius 1' ) AND ( SIZEOF( [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'MEASURE_REPRESENTATION_ITEM' , 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( i ) ) = 2 ) ) ) ) = 1 ) ) ) ) <= 1 ); + wr13: ( SIZEOF( QUERY ( pdr <* get_property_definition_representations( SELF ) | ( ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN + TYPEOF( pdr.used_representation ) ) AND ( SIZEOF( QUERY ( i <* pdr.used_representation.items | ( ( i.name = + 'top radius 2' ) AND ( SIZEOF( [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'MEASURE_REPRESENTATION_ITEM' , 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( i ) ) = 2 ) ) ) ) = 1 ) ) ) ) <= 1 ); + END_ENTITY; + + ENTITY joggle_termination + SUBTYPE OF ( shape_aspect ); + WHERE + wr1: ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.FEATURE_COMPONENT_DEFINITION' IN TYPEOF( SELF. + of_shape.definition ) ); + wr2: ( SELF.description IN [ 'value termination', 'face termination'] ); + wr3: ( ( SELF.description = 'value termination' ) XOR ( SIZEOF( QUERY ( pdr <* + get_shape_aspect_property_definition_representations( SELF ) | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN + TYPEOF( pdr.used_representation ) ) ) ) = 0 ) ); + wr4: ( ( SELF.description <> 'value termination' ) OR ( SIZEOF( QUERY ( pdr <* + get_shape_aspect_property_definition_representations( SELF ) | ( ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN + TYPEOF( pdr.used_representation ) ) AND ( SIZEOF( pdr.used_representation.items ) = 2 ) ) ) ) = 1 ) ); + wr5: ( ( SELF.description <> 'value termination' ) OR ( SIZEOF( QUERY ( pdr <* + get_shape_aspect_property_definition_representations( SELF ) | ( ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN + TYPEOF( pdr.used_representation ) ) AND ( SIZEOF( QUERY ( i <* pdr.used_representation.items | ( ( i.name = 'depth' ) + AND ( SIZEOF( [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( i ) ) = + 2 ) ) ) ) = 1 ) ) ) ) = 1 ) ); + wr6: ( ( SELF.description <> 'value termination' ) OR ( SIZEOF( QUERY ( pdr <* + get_shape_aspect_property_definition_representations( SELF ) | ( ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN + TYPEOF( pdr.used_representation ) ) AND ( SIZEOF( QUERY ( i <* pdr.used_representation.items | ( ( i.name = 'angle' ) + AND ( SIZEOF( [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PLANE_ANGLE_MEASURE_WITH_UNIT' ] * TYPEOF( i ) ) + = 2 ) ) ) ) = 1 ) ) ) ) = 1 ) ); + wr7: ( SIZEOF( QUERY ( sar <* USEDIN( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'SHAPE_ASPECT_RELATIONSHIP.RELATING_SHAPE_ASPECT' ) | ( ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF( + sar ) ) AND ( sar.name = 'joggle termination usage' ) AND ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.JOGGLE' IN TYPEOF( sar.related_shape_aspect. + of_shape.definition ) ) AND ( sar.related_shape_aspect.of_shape.definition\characterized_object.name = 'termination' ) + AND ( sar.related_shape_aspect.of_shape.definition\characterized_object.description = 'joggle termination occurrence' ) ) ) ) + = 1 ); + END_ENTITY; + + ENTITY join_shape_aspect + SUBTYPE OF ( shape_aspect ); + END_ENTITY; + + ENTITY keepout_design_object_category + SUBTYPE OF ( characterized_object ); + END_ENTITY; + + ENTITY kinematic_analysis_consistency; + control : kinematic_control; + result : kinematic_analysis_result; + WHERE + wr1: ( control.controlled_mechanism :=: result.analysed_mechanism ); + END_ENTITY; + + ENTITY kinematic_analysis_result; + analysed_mechanism : mechanism_representation; + result : kinematic_result; + END_ENTITY; + + ENTITY kinematic_control; + controlled_mechanism : mechanism_representation; + contained_kinematic_programs : kinematic_analysis_definition; + END_ENTITY; + + ENTITY kinematic_joint + SUBTYPE OF ( edge ); + SELF\edge.edge_start : kinematic_link; + SELF\edge.edge_end : kinematic_link; + UNIQUE + ur1 : edge_start, edge_end; + WHERE + wr1: ( edge_start :<>: edge_end ); + END_ENTITY; + + ENTITY kinematic_link + SUBTYPE OF ( vertex ); + END_ENTITY; + + ENTITY kinematic_link_representation + ABSTRACT SUPERTYPE OF ( + ONEOF ( + linear_flexible_link_representation, + rigid_link_representation ) ) + SUBTYPE OF ( representation ); + SELF\representation.context_of_items : geometric_representation_context; + SELF\representation.items : SET [1 : ?] OF kinematic_link_representation_items; + represented_link : kinematic_link; + INVERSE + associated_shape_representation : SET [0 : 1] OF kinematic_link_representation_association FOR rep_1; + END_ENTITY; + + ENTITY kinematic_link_representation_association + SUBTYPE OF ( representation_relationship ); + SELF\representation_relationship.rep_1 : kinematic_link_representation; + SELF\representation_relationship.rep_2 : shape_representation; + WHERE + wr1: ( ( SELF\representation_relationship.rep_2.context_of_items :=: SELF\representation_relationship.rep_1. + context_of_items ) OR ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'REPRESENTATION_RELATIONSHIP_WITH_TRANSFORMATION' IN TYPEOF( SELF ) ) ); + END_ENTITY; + + ENTITY kinematic_loop + SUBTYPE OF ( edge_loop ); + SELF\path.edge_list : LIST [1 : ?] OF UNIQUE oriented_joint; + END_ENTITY; + + ENTITY kinematic_pair + ABSTRACT SUPERTYPE OF ( + ONEOF ( + high_order_kinematic_pair, + low_order_kinematic_pair_with_motion_coupling, + low_order_kinematic_pair ) + ANDOR + actuated_kinematic_pair ) + SUBTYPE OF ( geometric_representation_item, item_defined_transformation ); + joint : kinematic_joint; + SELF\item_defined_transformation.transform_item_1 : rigid_placement; + SELF\item_defined_transformation.transform_item_2 : rigid_placement; + DERIVE + associated_link_representations_1 : SET [1 : ?] OF kinematic_link_representation := sort_link_associations( + link_representation_associations, TRUE ); + associated_link_representations_2 : SET [1 : ?] OF kinematic_link_representation := sort_link_associations( + link_representation_associations, FALSE ); + SELF\item_defined_transformation.name : label := SELF\representation_item.name; + INVERSE + link_representation_associations : SET [1 : ?] OF pair_representation_relationship FOR transformation_operator; + END_ENTITY; + + ENTITY kinematic_path + ABSTRACT SUPERTYPE OF ( + ONEOF ( + kinematic_path_defined_by_nodes, + kinematic_path_defined_by_curves ) ) + SUBTYPE OF ( geometric_representation_item ); + segments : LIST [1 : ?] OF kinematic_path_segment; + t_start : parameter_value; + DERIVE + n_segments : INTEGER := SIZEOF( segments ); + closed_path : LOGICAL := segments[n_segments].transition <> discontinuous; + WHERE + wr1: ( SIZEOF( QUERY ( using_rep <* using_representations( SELF ) | ( NOT ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'GEOMETRIC_REPRESENTATION_CONTEXT_WITH_PARAMETER' IN TYPEOF( using_rep.context_of_items ) ) ) ) ) = 0 ); + END_ENTITY; + + ENTITY kinematic_path_defined_by_curves + SUBTYPE OF ( kinematic_path ); + SELF\kinematic_path.segments : LIST [1 : ?] OF curve_based_path_with_orientation; + END_ENTITY; + + ENTITY kinematic_path_defined_by_nodes + SUBTYPE OF ( kinematic_path ); + SELF\kinematic_path.segments : LIST [1 : ?] OF path_node; + placement_start : placement; + END_ENTITY; + + ENTITY kinematic_path_segment + ABSTRACT SUPERTYPE OF ( + ONEOF ( + path_node, + curve_based_path_with_orientation ) ) + SUBTYPE OF ( founded_item ); + t_end : parameter_value; + transition : transition_code; + END_ENTITY; + + ENTITY kinematic_property_definition_representation + ABSTRACT SUPERTYPE OF ( + ONEOF ( + kinematic_property_topology_representation, + kinematic_property_mechanism_representation ) ) + SUBTYPE OF ( property_definition_representation ); + SELF\property_definition_representation.definition : product_definition_kinematics; + END_ENTITY; + + ENTITY kinematic_property_mechanism_representation + SUBTYPE OF ( kinematic_property_definition_representation ); + SELF\property_definition_representation.used_representation : mechanism_representation; + base : kinematic_link_representation; + WHERE + wr1: ( SIZEOF( QUERY ( i <* used_representation.items | ( ( base :=: i\representation_relationship.rep_1 ) OR ( base :=: i\ + representation_relationship.rep_2 ) ) ) ) > 0 ); + END_ENTITY; + + ENTITY kinematic_property_topology_representation + SUBTYPE OF ( kinematic_property_definition_representation ); + SELF\property_definition_representation.used_representation : kinematic_topology_representation_select; + base : kinematic_link; + WHERE + wr1: ( used_representation IN using_representations( base ) ); + END_ENTITY; + + ENTITY kinematic_topology_directed_structure + SUBTYPE OF ( representation ); + SELF\representation.items : SET [1 : ?] OF oriented_joint; + parent : kinematic_topology_structure; + WHERE + wr1: ( context_of_items :=: parent.context_of_items ); + wr2: ( get_kinematic_joints_from_oriented_joints( items ) <= parent.items ); + END_ENTITY; + + ENTITY kinematic_topology_network_structure + SUBTYPE OF ( representation ); + SELF\representation.items : SET [1 : ?] OF kinematic_loop; + parent : kinematic_topology_structure; + WHERE + wr1: ( context_of_items :=: parent.context_of_items ); + wr2: ( get_kinematic_joints_from_kinematic_loops( items ) <= parent.items ); + END_ENTITY; + + ENTITY kinematic_topology_structure + SUBTYPE OF ( representation ); + SELF\representation.items : SET [1 : ?] OF kinematic_joint; + WHERE + wr1: ( SIZEOF( QUERY ( item <* items | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.ORIENTED_EDGE' + IN TYPEOF( item ) ) ) ) = 0 ); + END_ENTITY; + + ENTITY kinematic_topology_substructure + SUBTYPE OF ( kinematic_topology_structure ); + parent : kinematic_topology_structure; + WHERE + wr1: ( context_of_items :=: parent.context_of_items ); + wr2: ( SELF\kinematic_topology_structure.items <= parent\kinematic_topology_structure.items ); + END_ENTITY; + + ENTITY kinematic_topology_tree_structure + SUBTYPE OF ( kinematic_topology_directed_structure ); + 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_component + SUPERTYPE OF ( + ONEOF ( + material_removal_laminate_component, + stratum_feature_template_component + ANDOR + probe_access_area, + inter_stratum_feature, + generic_laminate_text_component, + laminate_text_string_component ) + ANDOR + fiducial ) + SUBTYPE OF ( assembly_component ); + END_ENTITY; + + ENTITY laminate_component_feature + SUPERTYPE OF ( + ONEOF ( + laminate_component_interface_terminal, + laminate_component_join_terminal ) ) + SUBTYPE OF ( component_feature ); + END_ENTITY; + + ENTITY laminate_component_interface_terminal + SUBTYPE OF ( laminate_component_feature ); + END_ENTITY; + + ENTITY laminate_component_join_terminal + SUBTYPE OF ( laminate_component_feature, component_terminal ); + END_ENTITY; + + ENTITY laminate_group_component_make_from_relationship + SUBTYPE OF ( make_from_usage_option ); + SELF\product_definition_relationship.relating_product_definition : assembly_group_component; + SELF\product_definition_relationship.related_product_definition : assembly_group_component; + END_ENTITY; + + ENTITY laminate_table + SUPERTYPE OF ( + ONEOF ( + part_laminate_table, + zone_structural_makeup ) ) + SUBTYPE OF ( product_definition ); + END_ENTITY; + + ENTITY laminate_text_string_component + SUBTYPE OF ( array_placement_group, laminate_component ); + END_ENTITY; + + ENTITY land + SUPERTYPE OF ( + ONEOF ( + contact_size_dependent_land, + inter_stratum_feature_dependent_land ) ) + SUBTYPE OF ( stratum_feature_template_component ); + END_ENTITY; + + ENTITY land_physical_template + SUPERTYPE OF ( + ONEOF ( + default_passage_based_land_physical_template, + default_attachment_size_based_land_physical_template ) ) + SUBTYPE OF ( stratum_feature_template ); + END_ENTITY; + + ENTITY land_template_terminal + SUBTYPE OF ( shape_aspect ); + END_ENTITY; + + ENTITY land_with_join_terminal + SUBTYPE OF ( land, laminate_component_join_terminal ); + DERIVE + SELF\shape_aspect.of_shape : land_with_join_terminal := SELF; + END_ENTITY; + + ENTITY language + SUBTYPE OF ( group ); + WHERE + wr1: ( SELF\group.name <> '' ); + END_ENTITY; + + ENTITY layer_connection_point + SUBTYPE OF ( shape_aspect ); + UNIQUE + ur1 : SELF\shape_aspect.name, SELF\shape_aspect.of_shape; + END_ENTITY; + + ENTITY layer_qualified_layout_spacing_requirement + SUBTYPE OF ( layout_spacing_requirement ); + END_ENTITY; + + ENTITY layer_stack_region + SUBTYPE OF ( instanced_feature ); + END_ENTITY; + + ENTITY layered_assembly_module_design_view + SUBTYPE OF ( assembly_module_design_view ); + END_ENTITY; + + ENTITY layered_assembly_module_usage_view + SUBTYPE OF ( assembly_module_usage_view ); + END_ENTITY; + + ENTITY layered_assembly_panel_design_view + SUBTYPE OF ( assembly_module_design_view ); + END_ENTITY; + + ENTITY layered_interconnect_module_design_view + SUPERTYPE OF ( + layered_interconnect_panel_design_view ) + SUBTYPE OF ( interconnect_module_design_view ); + END_ENTITY; + + ENTITY layered_interconnect_module_usage_view + SUBTYPE OF ( interconnect_module_usage_view ); + END_ENTITY; + + ENTITY layered_interconnect_panel_design_view + SUBTYPE OF ( layered_interconnect_module_design_view ); + END_ENTITY; + + ENTITY layout_junction + SUBTYPE OF ( shape_aspect ); + END_ENTITY; + + ENTITY layout_macro_component + SUBTYPE OF ( printed_component ); + END_ENTITY; + + ENTITY layout_macro_definition + SUBTYPE OF ( layered_interconnect_module_design_view ); + END_ENTITY; + + ENTITY layout_macro_definition_terminal_to_usage_terminal_assignment + SUBTYPE OF ( shape_aspect, shape_aspect_relationship ); + SELF\shape_aspect_relationship.related_shape_aspect : printed_part_template_terminal; + UNIQUE + ur1 : SELF\shape_aspect_relationship.name; + END_ENTITY; + + ENTITY layout_macro_floor_plan_template + SUBTYPE OF ( printed_part_template ); + END_ENTITY; + + ENTITY layout_spacing_contextual_area + SUBTYPE OF ( shape_aspect ); + END_ENTITY; + + ENTITY layout_spacing_requirement + SUBTYPE OF ( predefined_requirement_view_definition ); + END_ENTITY; + + ENTITY leader_curve + SUBTYPE OF ( annotation_curve_occurrence ); + WHERE + wr1: ( SIZEOF( QUERY ( ldc <* USEDIN( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'DRAUGHTING_CALLOUT.CONTENTS' ) | ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'LEADER_CURVE' IN TYPEOF( con ) ) ) ) = 1 ); + END_ENTITY; + + ENTITY leader_terminator + SUBTYPE OF ( terminator_symbol ); + WHERE + wr1: ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LEADER_CURVE' IN TYPEOF( SELF\terminator_symbol. + annotated_curve ) ); + END_ENTITY; + + ENTITY length_function + SUBTYPE OF ( numeric_expression, unary_generic_expression ); + SELF\unary_generic_expression.operand : string_expression; + END_ENTITY; + + ENTITY length_measure_with_unit + SUBTYPE OF ( measure_with_unit ); + WHERE + wr1: ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_UNIT' IN TYPEOF( SELF\measure_with_unit. + unit_component ) ); + END_ENTITY; + + ENTITY length_trimmed_terminal + SUBTYPE OF ( altered_package_terminal ); + END_ENTITY; + + ENTITY length_unit + SUBTYPE OF ( named_unit ); + WHERE + wr1: ( ( SELF\named_unit.dimensions.length_exponent = 1 ) AND ( SELF\named_unit.dimensions.mass_exponent = 0 ) AND ( SELF\ + named_unit.dimensions.time_exponent = 0 ) AND ( SELF\named_unit.dimensions.electric_current_exponent = 0 ) AND ( + SELF\named_unit.dimensions.thermodynamic_temperature_exponent = 0 ) AND ( SELF\named_unit.dimensions. + amount_of_substance_exponent = 0 ) AND ( SELF\named_unit.dimensions.luminous_intensity_exponent = 0 ) ); + END_ENTITY; + + ENTITY library_stack_model + SUBTYPE OF ( stratum_stack_model ); + END_ENTITY; + + ENTITY library_to_design_stack_model_mapping + SUBTYPE OF ( product_definition_relationship ); + 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, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 like_expression + SUBTYPE OF ( comparison_expression ); + WHERE + wr1: ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.STRING_EXPRESSION' IN TYPEOF( SELF\ + binary_generic_expression.operands[1] ) ) AND ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'STRING_EXPRESSION' IN TYPEOF( SELF\binary_generic_expression.operands[2] ) ) ); + 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 ); + END_ENTITY; + + ENTITY linear_array_component_definition_link + SUBTYPE OF ( product_definition, product_definition_relationship ); + SELF\product_definition_relationship.relating_product_definition : linear_array_placement_group_component; + SELF\product_definition_relationship.related_product_definition : linear_array_placement_group_component; + WHERE + wr1: ( SELF\product_definition_relationship.related_product_definition :<>: SELF\product_definition_relationship. + relating_product_definition ); + wr2: acyclic_product_definition_relationship( SELF, [SELF\product_definition_relationship.related_product_definition], + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LINEAR_ARRAY_COMPONENT_DEFINITION_LINK' ); + END_ENTITY; + + ENTITY linear_array_placement_group_component + SUBTYPE OF ( array_placement_group ); + END_ENTITY; + + ENTITY linear_composite_array_shape_aspect + SUBTYPE OF ( composite_array_shape_aspect ); + END_ENTITY; + + ENTITY linear_composite_array_shape_aspect_link + SUBTYPE OF ( shape_aspect, shape_aspect_relationship ); + SELF\shape_aspect_relationship.relating_shape_aspect : linear_composite_array_shape_aspect; + SELF\shape_aspect_relationship.related_shape_aspect : linear_composite_array_shape_aspect; + WHERE + wr1: ( SELF\shape_aspect_relationship.related_shape_aspect :<>: SELF\shape_aspect_relationship.relating_shape_aspect ); + END_ENTITY; + + ENTITY linear_dimension + SUBTYPE OF ( dimension_curve_directed_callout ); + END_ENTITY; + + ENTITY linear_flexible_and_pinion_pair + SUBTYPE OF ( low_order_kinematic_pair_with_motion_coupling ); + pinion_radius : length_measure; + WHERE + wr1: ( SIZEOF( QUERY ( lr <* SELF\kinematic_pair.associated_link_representations_1 | ( NOT ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LINEAR_FLEXIBLE_LINK_REPRESENTATION' IN + TYPEOF( lr ) ) ) ) ) = 0 ); + END_ENTITY; + + ENTITY linear_flexible_and_planar_curve_pair + SUBTYPE OF ( high_order_kinematic_pair ); + pair_curve : curve; + orientation : BOOLEAN; + WHERE + wr1: ( SIZEOF( QUERY ( r <* SELF\kinematic_pair.associated_link_representations_1 | ( NOT ( pair_curve IN r.items ) ) ) ) = + 0 ); + wr2: ( SIZEOF( QUERY ( lr <* SELF\kinematic_pair.associated_link_representations_1 | ( NOT ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LINEAR_FLEXIBLE_LINK_REPRESENTATION' IN + TYPEOF( lr ) ) ) ) ) = 0 ); + END_ENTITY; + + ENTITY linear_flexible_link_representation + SUBTYPE OF ( kinematic_link_representation ); + END_ENTITY; + + ENTITY linear_path + SUBTYPE OF ( path_node ); + DERIVE + SELF\kinematic_path_segment.transition : transition_code := continuous; + END_ENTITY; + + ENTITY linear_profile + SUBTYPE OF ( shape_aspect ); + WHERE + wr1: ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.FEATURE_COMPONENT_DEFINITION' IN TYPEOF( SELF. + of_shape.definition ) ); + wr2: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( pdr <* USEDIN( pd, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) + | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN + TYPEOF( pdr.used_representation ) ) ) ) = 1 ) ) ) ) = 0 ); + wr3: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) + | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN + TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( impl_rep.used_representation.items ) = 2 ) ) ) ) = 0 ) ) ) ) + = 0 ); + wr4: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) + | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN + TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PLACEMENT' IN TYPEOF( it ) ) AND ( it.name = + 'orientation' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ); + wr5: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) + | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN + TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( + SIZEOF( [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( it ) ) = + 2 ) AND ( it.name = 'profile length' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ); + END_ENTITY; + + ENTITY linearized_table_function + SUBTYPE OF ( explicit_table_function, unary_generic_expression ); + SELF\unary_generic_expression.operand : maths_function; + first : INTEGER; + DERIVE + source : maths_function := SELF\unary_generic_expression.operand; + WHERE + wr1: function_is_1d_array( source ); + wr2: member_of( first, source\maths_function.domain ); + END_ENTITY; + + ENTITY link_motion_relationship + SUBTYPE OF ( definitional_representation_relationship, representation_relationship_with_transformation ); + SELF\representation_relationship.rep_1 : link_or_shape_representation; + SELF\representation_relationship.rep_2 : link_motion_representation_along_path; + SELF\representation_relationship_with_transformation.transformation_operator : link_motion_transformation; + WHERE + (* JH removed WR1 on 2014-05-14 for the following compilation error; fix is not ISO confirmed: + ERROR : Line 19237: C3001:Unresolved attribute qualification in WHERE clause. + Attribute qualification: REP_1[].ITEMS + wr1: ( transformation_operator\item_defined_transformation.transform_item_1 IN rep_1.items ); *) + wr2: ( transformation_operator\item_defined_transformation.transform_item_2 IN rep_2.items ); + END_ENTITY; + + ENTITY link_motion_representation_along_path + SUPERTYPE OF ( + ONEOF ( + prescribed_path, + resulting_path ) ) + SUBTYPE OF ( representation ); + SELF\representation.items : SET [1 : ?] OF kinematic_path; + SELF\representation.context_of_items : geometric_representation_context_with_parameter; + END_ENTITY; + + ENTITY link_motion_transformation + SUBTYPE OF ( item_defined_transformation ); + SELF\item_defined_transformation.transform_item_1 : rigid_placement; + SELF\item_defined_transformation.transform_item_2 : kinematic_path; + END_ENTITY; + + ENTITY listed_data + SUBTYPE OF ( explicit_table_function, generic_literal ); + values : LIST [1 : ?] OF maths_value; + value_range : maths_space; + DERIVE + SELF\explicit_table_function.shape : LIST [1 : ?] OF positive_integer := [SIZEOF( values )]; + WHERE + wr1: expression_is_constant( value_range ); + wr2: ( SIZEOF( QUERY ( val <* values | ( NOT member_of( val, value_range ) ) ) ) = 0 ); + END_ENTITY; + + ENTITY listed_product_space + SUBTYPE OF ( maths_space, generic_literal ); + factors : LIST OF maths_space; + WHERE + wr1: ( SIZEOF( QUERY ( space <* factors | ( NOT expression_is_constant( space ) ) ) ) = 0 ); + wr2: no_cyclic_space_reference( SELF, [] ); + wr3: ( NOT ( the_empty_space IN factors ) ); + 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_linear_stack + SUBTYPE OF ( stratum_sub_stack ); + 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 location_in_aggregate_representation_item + SUBTYPE OF ( compound_representation_item ); + SELF\compound_representation_item.item_element : location_in_aggregate_item; + END_ENTITY; + + ENTITY location_shape_representation + SUBTYPE OF ( shape_representation ); + WHERE + wr1: ( SIZEOF( SELF.items ) = 1 ); + wr2: ( SIZEOF( QUERY ( it <* SELF.items | ( NOT ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.POINT' + IN TYPEOF( it ) ) ) ) ) = 0 ); + END_ENTITY; + + ENTITY locator + SUBTYPE OF ( feature_definition ); + WHERE + wr1: ( SIZEOF( QUERY ( pdr <* get_property_definition_representations( SELF ) | ( ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN + TYPEOF( pdr.used_representation ) ) AND ( NOT ( ( 2 <= SIZEOF( pdr.used_representation.items ) ) AND ( SIZEOF( pdr. + used_representation.items ) <= 5 ) ) ) ) ) ) = 0 ); + wr2: ( SIZEOF( QUERY ( pdr <* get_property_definition_representations( SELF ) | ( ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN + TYPEOF( pdr.used_representation ) ) AND ( SIZEOF( QUERY ( i <* pdr.used_representation.items | ( ( i.name = + 'diameter' ) AND ( SIZEOF( [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'MEASURE_REPRESENTATION_ITEM' , 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( i ) ) = 2 ) ) ) ) = 1 ) ) ) ) = 1 ); + wr3: ( SIZEOF( QUERY ( pdr <* get_property_definition_representations( SELF ) | ( ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN + TYPEOF( pdr.used_representation ) ) AND ( SIZEOF( QUERY ( i <* pdr.used_representation.items | ( ( i.name = + 'tip radius' ) AND ( SIZEOF( [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'MEASURE_REPRESENTATION_ITEM' , 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( i ) ) = 2 ) ) ) ) = 1 ) ) ) ) <= 1 ); + wr4: ( SIZEOF( QUERY ( pdr <* get_property_definition_representations( SELF ) | ( ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN + TYPEOF( pdr.used_representation ) ) AND ( SIZEOF( QUERY ( i <* pdr.used_representation.items | ( ( i.name = + 'tip angle' ) AND ( SIZEOF( [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'MEASURE_REPRESENTATION_ITEM' , 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PLANE_ANGLE_MEASURE_WITH_UNIT' ] * TYPEOF( i ) ) = 2 ) ) ) ) = 1 ) ) ) ) = 1 ); + wr5: ( SIZEOF( QUERY ( pdr <* get_property_definition_representations( SELF ) | ( ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN + TYPEOF( pdr.used_representation ) ) AND ( SIZEOF( QUERY ( i <* pdr.used_representation.items | ( ( i.name = + 'base radius' ) AND ( SIZEOF( [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'MEASURE_REPRESENTATION_ITEM' , 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( i ) ) = 2 ) ) ) ) = 1 ) ) ) ) <= 1 ); + END_ENTITY; + + ENTITY log10_function + SUBTYPE OF ( unary_function_call ); + END_ENTITY; + + ENTITY log2_function + SUBTYPE OF ( unary_function_call ); + END_ENTITY; + + ENTITY log_function + SUBTYPE OF ( unary_function_call ); + 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 low_order_kinematic_pair + SUPERTYPE OF ( + ONEOF ( + revolute_pair, + cylindrical_pair, + spherical_pair, + spherical_pair_with_pin, + planar_pair, + unconstrained_pair, + fully_constrained_pair, + prismatic_pair, + universal_pair, + low_order_kinematic_pair_with_range ) ) + SUBTYPE OF ( kinematic_pair ); + t_x : BOOLEAN; + t_y : BOOLEAN; + t_z : BOOLEAN; + r_x : BOOLEAN; + r_y : BOOLEAN; + r_z : BOOLEAN; + WHERE + wr1: ( SIZEOF( QUERY ( lr <* SELF\kinematic_pair.associated_link_representations_1 | ( NOT ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.RIGID_LINK_REPRESENTATION' IN TYPEOF( lr ) ) ) ) ) + = 0 ); + wr2: ( SIZEOF( QUERY ( lr <* SELF\kinematic_pair.associated_link_representations_2 | ( NOT ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.RIGID_LINK_REPRESENTATION' IN TYPEOF( lr ) ) ) ) ) + = 0 ); + END_ENTITY; + + ENTITY low_order_kinematic_pair_value + SUBTYPE OF ( pair_value ); + SELF\pair_value.applies_to_pair : low_order_kinematic_pair; + actual_translation_x : length_measure; + actual_translation_y : length_measure; + actual_translation_z : length_measure; + actual_rotation_x : plane_angle_measure; + actual_rotation_y : plane_angle_measure; + actual_rotation_z : plane_angle_measure; + END_ENTITY; + + ENTITY low_order_kinematic_pair_with_motion_coupling + ABSTRACT SUPERTYPE OF ( + ONEOF ( + gear_pair, + linear_flexible_and_pinion_pair, + rack_and_pinion_pair, + screw_pair ) ) + SUBTYPE OF ( kinematic_pair ); + WHERE + wr1: ( SIZEOF( QUERY ( lr <* SELF\kinematic_pair.associated_link_representations_2 | ( NOT ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.RIGID_LINK_REPRESENTATION' IN TYPEOF( lr ) ) ) ) ) + = 0 ); + END_ENTITY; + + ENTITY low_order_kinematic_pair_with_range + SUBTYPE OF ( low_order_kinematic_pair ); + lower_limit_actual_rotation_x : OPTIONAL plane_angle_measure; + upper_limit_actual_rotation_x : OPTIONAL plane_angle_measure; + lower_limit_actual_rotation_y : OPTIONAL plane_angle_measure; + upper_limit_actual_rotation_y : OPTIONAL plane_angle_measure; + lower_limit_actual_rotation_z : OPTIONAL plane_angle_measure; + upper_limit_actual_rotation_z : OPTIONAL plane_angle_measure; + lower_limit_actual_translation_x : OPTIONAL length_measure; + upper_limit_actual_translation_x : OPTIONAL length_measure; + lower_limit_actual_translation_y : OPTIONAL length_measure; + upper_limit_actual_translation_y : OPTIONAL length_measure; + lower_limit_actual_translation_z : OPTIONAL length_measure; + upper_limit_actual_translation_z : OPTIONAL length_measure; + END_ENTITY; + + ENTITY luminous_flux_measure_with_unit + SUBTYPE OF ( measure_with_unit ); + WHERE + wr1: ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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: ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 ) AND ( SELF\named_unit.dimensions.mass_exponent = 0 ) AND ( SELF\ + named_unit.dimensions.time_exponent = 0 ) AND ( SELF\named_unit.dimensions.electric_current_exponent = 0 ) AND ( + SELF\named_unit.dimensions.thermodynamic_temperature_exponent = 0 ) AND ( SELF\named_unit.dimensions. + amount_of_substance_exponent = 0 ) AND ( SELF\named_unit.dimensions.luminous_intensity_exponent = 1 ) ); + END_ENTITY; + + ENTITY magnetic_flux_density_measure_with_unit + SUBTYPE OF ( measure_with_unit ); + WHERE + wr1: ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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: ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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_connectivity_relationship + SUBTYPE OF ( shape_aspect_relationship ); + SELF\shape_aspect_relationship.relating_shape_aspect : physical_connectivity_definition; + SELF\shape_aspect_relationship.related_shape_aspect : physical_connectivity_definition; + END_ENTITY; + + ENTITY make_from_feature_relationship + SUBTYPE OF ( component_feature_relationship ); + END_ENTITY; + + ENTITY make_from_functional_unit_terminal_definition_relationship + SUBTYPE OF ( shape_aspect, shape_aspect_relationship ); + UNIQUE + ur1 : SELF\shape_aspect_relationship.relating_shape_aspect, SELF\shape_aspect_relationship.related_shape_aspect; + WHERE + wr1: ( relating_shape_aspect.of_shape :<>: related_shape_aspect.of_shape ); + wr2: ( SELF\shape_aspect.product_definitional = FALSE ); + END_ENTITY; + + ENTITY make_from_model_port_relationship + SUBTYPE OF ( representation, representation_relationship ); + SELF\representation_relationship.rep_1 : analytical_model_port; + SELF\representation_relationship.rep_2 : analytical_model_port; + UNIQUE + ur1 : SELF\representation_relationship.rep_1, SELF\representation_relationship.rep_2; + WHERE + wr1: ( rep_1 :<>: rep_2 ); + END_ENTITY; + + ENTITY make_from_part_feature_relationship + SUBTYPE OF ( shape_aspect, shape_aspect_relationship ); + UNIQUE + ur1 : SELF\shape_aspect_relationship.relating_shape_aspect, SELF\shape_aspect_relationship.related_shape_aspect; + WHERE + wr1: ( SELF\shape_aspect.product_definitional = FALSE ); + 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_constraining_context_dependent_shape_representation + SUBTYPE OF ( context_dependent_shape_representation, representation_relationship ); + 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( [ + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CONNECTED_FACE_SUB_SET' , + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MAPPED_ITEM' , + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.AXIS2_PLACEMENT_3D' ] * TYPEOF( it ) ) = 1 ) ) ) ) + = 0 ); + wr2 : ( SIZEOF( QUERY ( it <* SELF.items | ( SIZEOF( [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'CONNECTED_FACE_SUB_SET' , 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MAPPED_ITEM'] * + TYPEOF( it ) ) = 1 ) ) ) > 0 ); + wr3 : ( SIZEOF( QUERY ( mi <* QUERY ( it <* items | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'MAPPED_ITEM' IN TYPEOF( it ) ) ) | ( NOT ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MANIFOLD_SUBSURFACE_SHAPE_REPRESENTATION' IN + TYPEOF( mi\mapped_item.mapping_source.mapped_representation ) ) ) ) ) = 0 ); + wr4 : ( SIZEOF( QUERY ( cfss <* QUERY ( it <* SELF.items | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CONNECTED_FACE_SUB_SET' IN TYPEOF( it ) ) ) + | ( NOT ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.OPEN_SHELL' IN TYPEOF( cfss ) ) ) ) ) + = 0 ); + wr5 : ( SIZEOF( QUERY ( cfss <* QUERY ( it <* SELF.items | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CONNECTED_FACE_SUB_SET' IN TYPEOF( it ) ) ) + | ( NOT ( ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.ADVANCED_FACE' IN TYPEOF( fac ) ) ) ) ) = 0 ) ) ) ) ) + = 0 ); + wr6 : ( SIZEOF( QUERY ( cfss <* QUERY ( it <* SELF.items | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CONNECTED_FACE_SUB_SET' IN TYPEOF( it ) ) ) + | ( NOT ( SIZEOF( QUERY ( fcs <* cfss\connected_face_set.cfs_faces | ( ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SUBFACE' IN TYPEOF( fcs ) ) AND ( NOT ( + SIZEOF( QUERY ( elp_fbnds <* QUERY ( bnds <* fcs.bounds | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.EDGE_LOOP' IN TYPEOF( bnds.bound ) ) ) | ( + NOT ( SIZEOF( QUERY ( oe <* elp_fbnds.bound\path.edge_list | ( NOT ( ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.EDGE_CURVE' IN TYPEOF( oe.edge_element ) ) + OR ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SUBEDGE' IN TYPEOF( oe.edge_element ) ) ) ) ) ) + = 0 ) ) ) ) = 0 ) ) ) ) ) = 0 ) ) ) ) = 0 ); + wr8 : ( SIZEOF( QUERY ( cfss <* QUERY ( it <* SELF.items | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CONNECTED_FACE_SUB_SET' IN TYPEOF( it ) ) ) + | ( NOT ( SIZEOF( QUERY ( fcs <* cfss\connected_face_set.cfs_faces | ( ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SUBFACE' IN TYPEOF( fcs ) ) AND ( NOT ( + SIZEOF( QUERY ( elp_fbnds <* QUERY ( bnds <* fcs.bounds | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.EDGE_LOOP' IN TYPEOF( bnds.bound ) ) ) | ( + NOT ( SIZEOF( QUERY ( oe <* elp_fbnds.bound\path.edge_list | ( NOT ( ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.VERTEX_POINT' IN TYPEOF( oe.edge_start ) ) + AND ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.VERTEX_POINT' IN TYPEOF( oe.edge_end ) ) ) ) ) ) + = 0 ) ) ) ) = 0 ) ) ) ) ) = 0 ) ) ) ) = 0 ); + wr9 : ( SIZEOF( QUERY ( cfss <* QUERY ( it <* SELF.items | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CONNECTED_FACE_SUB_SET' IN TYPEOF( it ) ) ) + | ( NOT ( SIZEOF( QUERY ( fcs <* cfss\connected_face_set.cfs_faces | ( ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SUBFACE' IN TYPEOF( fcs ) ) AND ( NOT ( + SIZEOF( QUERY ( bnds <* fcs.bounds | ( NOT ( SIZEOF( [ + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.EDGE_LOOP' , + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.VERTEX_LOOP' ] * TYPEOF( bnds.bound ) ) = 1 ) ) ) ) + = 0 ) ) ) ) ) = 0 ) ) ) ) = 0 ); + wr10: ( SIZEOF( QUERY ( cfss <* QUERY ( it <* SELF.items | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CONNECTED_FACE_SUB_SET' IN TYPEOF( it ) ) ) + | ( NOT ( SIZEOF( QUERY ( fcs <* cfss\connected_face_set.cfs_faces | ( ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SUBFACE' IN TYPEOF( fcs ) ) AND ( NOT ( + SIZEOF( QUERY ( elp_fbnds <* QUERY ( bnds <* fcs.bounds | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.EDGE_LOOP' IN TYPEOF( bnds.bound ) ) ) | ( + NOT ( SIZEOF( QUERY ( oe <* elp_fbnds.bound\path.edge_list | ( NOT ( SIZEOF( [ + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LINE' , + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CONIC' , + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.POLYLINE' , + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SURFACE_CURVE' , + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CONNECTED_FACE_SUB_SET' IN TYPEOF( it ) ) ) + | ( NOT ( SIZEOF( QUERY ( fcs <* cfss\connected_face_set.cfs_faces | ( ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SUBFACE' IN TYPEOF( fcs ) ) AND ( NOT ( + SIZEOF( QUERY ( elp_fbnds <* QUERY ( bnds <* fcs.bounds | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.EDGE_LOOP' IN TYPEOF( bnds.bound ) ) ) | ( + NOT ( SIZEOF( QUERY ( oe <* elp_fbnds.bound\path.edge_list | ( ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PCURVE' IN TYPEOF( sc_ag ) ) ) ) ) = 0 ) ) ) ) ) = 0 ) ) ) ) = 0 ) ) ) ) ) = 0 ) ) ) ) = 0 ); + wr12: ( SIZEOF( QUERY ( cfss <* QUERY ( it <* SELF.items | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CONNECTED_FACE_SUB_SET' IN TYPEOF( it ) ) ) + | ( NOT ( SIZEOF( QUERY ( fcs <* cfss\connected_face_set.cfs_faces | ( ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SUBFACE' IN TYPEOF( fcs ) ) AND ( NOT ( + SIZEOF( QUERY ( elp_fbnds <* QUERY ( bnds <* fcs.bounds | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.EDGE_LOOP' IN TYPEOF( bnds.bound ) ) ) | ( + NOT ( SIZEOF( QUERY ( oe <* elp_fbnds.bound\path.edge_list | ( ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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( [ + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHELL_BASED_SURFACE_MODEL' , + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MAPPED_ITEM' , + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.AXIS2_PLACEMENT_3D' ] * TYPEOF( it ) ) = 1 ) ) ) ) + = 0 ); + wr2 : ( SIZEOF( QUERY ( it <* SELF.items | ( SIZEOF( [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'SHELL_BASED_SURFACE_MODEL' , 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MAPPED_ITEM'] + * TYPEOF( it ) ) = 1 ) ) ) > 0 ); + wr3 : ( SIZEOF( QUERY ( mi <* QUERY ( it <* SELF.items | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MAPPED_ITEM' IN TYPEOF( it ) ) ) | ( NOT ( + ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'SHELL_BASED_SURFACE_MODEL' IN TYPEOF( mr_it ) ) ) ) > 0 ) ) ) ) ) = 0 ); + wr4 : ( SIZEOF( QUERY ( sbsm <* QUERY ( it <* SELF.items | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHELL_BASED_SURFACE_MODEL' IN TYPEOF( it ) ) ) + | ( NOT ( SIZEOF( QUERY ( sh <* sbsm\shell_based_surface_model.sbsm_boundary | ( NOT ( SIZEOF( [ + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.OPEN_SHELL' , + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.ORIENTED_CLOSED_SHELL' , + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CLOSED_SHELL' ] * TYPEOF( sh ) ) = 1 ) ) ) ) + = 0 ) ) ) ) = 0 ); + wr5 : ( SIZEOF( QUERY ( sbsm <* QUERY ( it <* SELF.items | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'FACE_SURFACE' IN TYPEOF( fa ) ) ) ) ) = 0 ) ) ) ) = 0 ) ) ) ) = 0 ); + wr6 : ( SIZEOF( QUERY ( sbsm <* QUERY ( it <* SELF.items | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'ADVANCED_FACE' IN TYPEOF( fa ) ) OR ( SIZEOF( QUERY ( bnds <* fa.bounds | ( NOT ( SIZEOF( [ + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.EDGE_LOOP' , + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.VERTEX_LOOP' ] * TYPEOF( bnds.bound ) ) = 1 ) ) ) ) + = 0 ) ) ) ) ) = 0 ) ) ) ) = 0 ) ) ) ) = 0 ); + wr8 : ( SIZEOF( QUERY ( sbsm <* QUERY ( it <* SELF.items | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'ADVANCED_FACE' IN TYPEOF( fa ) ) OR ( SIZEOF( QUERY ( elp_fbnds <* QUERY ( bnds <* fa.bounds | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.EDGE_LOOP' IN TYPEOF( bnds.bound ) ) ) | ( + NOT ( SIZEOF( QUERY ( oe <* elp_fbnds\path.edge_list | ( NOT ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.EDGE_CURVE' IN TYPEOF( oe.edge_element ) ) ) ) ) + = 0 ) ) ) ) = 0 ) ) ) ) ) = 0 ) ) ) ) = 0 ) ) ) ) = 0 ); + wr9 : ( SIZEOF( QUERY ( sbsm <* QUERY ( it <* SELF.items | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'ADVANCED_FACE' IN TYPEOF( fa ) ) OR ( SIZEOF( QUERY ( elp_fbnds <* QUERY ( bnds <* fa.bounds | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.EDGE_LOOP' IN TYPEOF( bnds.bound ) ) ) | ( + NOT ( SIZEOF( QUERY ( oe_cv <* QUERY ( oe <* elp_fbnds\path.edge_list | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.EDGE_CURVE' IN TYPEOF( oe.edge_element ) ) ) + | ( NOT ( SIZEOF( [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.B_SPLINE_CURVE', + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CONIC' , + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CURVE_REPLICA' , + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LINE' , + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.OFFSET_CURVE_3D' , + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PCURVE' , + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.POLYLINE' , + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'ADVANCED_FACE' IN TYPEOF( fa ) ) OR ( SIZEOF( QUERY ( elp_fbnds <* QUERY ( bnds <* fa.bounds | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'ADVANCED_FACE' IN TYPEOF( fa ) ) OR ( SIZEOF( QUERY ( elp_fbnds <* QUERY ( bnds <* fa.bounds | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.EDGE_LOOP' IN TYPEOF( bnds.bound ) ) ) | ( + NOT ( SIZEOF( QUERY ( oe <* elp_fbnds\path.edge_list | ( NOT ( ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.VERTEX_POINT' IN TYPEOF( oe.edge_element. + edge_start ) ) AND ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.VERTEX_POINT' IN TYPEOF( + oe.edge_element.edge_end ) ) ) ) ) ) = 0 ) ) ) ) = 0 ) ) ) ) ) = 0 ) ) ) ) = 0 ) ) ) ) = 0 ); + wr12: ( SIZEOF( QUERY ( sbsm <* QUERY ( it <* SELF.items | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'ADVANCED_FACE' IN TYPEOF( fa ) ) OR ( SIZEOF( QUERY ( elp_fbnds <* QUERY ( bnds <* fa.bounds | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.EDGE_LOOP' IN TYPEOF( bnds.bound ) ) ) | ( + NOT ( SIZEOF( QUERY ( oe <* elp_fbnds\path.edge_list | ( NOT ( ( SIZEOF( [ + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CARTESIAN_POINT' , + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.DEGENERATE_PCURVE' , + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.POINT_ON_CURVE' , + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.POINT_ON_SURFACE' ] * TYPEOF( oe.edge_element + .edge_start\vertex_point.vertex_geometry ) ) = 1 ) AND ( SIZEOF( [ + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CARTESIAN_POINT' , + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.DEGENERATE_PCURVE' , + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.POINT_ON_CURVE' , + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'ADVANCED_FACE' IN TYPEOF( fa ) ) OR ( SIZEOF( QUERY ( vlp_fbnds <* QUERY ( bnds <* fa.bounds | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.VERTEX_LOOP' IN TYPEOF( bnds.bound ) ) ) | + ( NOT ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.VERTEX_POINT' IN TYPEOF( vlp_fbnds\ + vertex_loop.loop_vertex ) ) ) ) ) = 0 ) ) ) ) ) = 0 ) ) ) ) = 0 ) ) ) ) = 0 ); + wr14: ( SIZEOF( QUERY ( sbsm <* QUERY ( it <* SELF.items | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'ADVANCED_FACE' IN TYPEOF( fa ) ) OR ( SIZEOF( QUERY ( vlp_fbnds <* QUERY ( bnds <* fa.bounds | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.VERTEX_LOOP' IN TYPEOF( bnds.bound ) ) ) | + ( NOT ( SIZEOF( [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CARTESIAN_POINT', + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.DEGENERATE_PCURVE' , + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.POINT_ON_CURVE' , + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 marking + SUBTYPE OF ( feature_definition ); + WHERE + wr1: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION.DEFINITION' ) | ( SIZEOF( QUERY ( pdr <* USEDIN( pd, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) + | ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN + TYPEOF( pdr.used_representation ) ) AND ( 2 <= SIZEOF( pdr.used_representation.items ) ) AND ( SIZEOF( pdr. + used_representation.items ) <= 6 ) ) ) ) = 1 ) ) ) = 1 ); + wr2: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) + | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN + TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF( + it ) ) AND ( it.name = 'marking text' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ); + wr3: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) + | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN + TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF( + it ) ) AND ( it.name = 'special instructions' ) ) ) ) <= 1 ) ) ) ) = 0 ) ) ) ) = 0 ); + wr4: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) + | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN + TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF( + it ) ) AND ( it.name = 'font name' ) ) ) ) <= 1 ) ) ) ) = 0 ) ) ) ) = 0 ); + wr5: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) + | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN + TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( + SIZEOF( [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( it ) ) = + 2 ) AND ( it.name = 'character height' ) ) ) ) <= 1 ) ) ) ) = 0 ) ) ) ) = 0 ); + wr6: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) + | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN + TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( + SIZEOF( [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( it ) ) = + 2 ) AND ( it.name = 'character spacing' ) ) ) ) <= 1 ) ) ) ) = 0 ) ) ) ) = 0 ); + wr7: ( SIZEOF( QUERY ( pds <* QUERY ( pd <* USEDIN( SELF, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) + | ( NOT ( SIZEOF( QUERY ( sa_occ <* USEDIN( pds, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) | ( SIZEOF( + QUERY ( sdr <* QUERY ( sar <* USEDIN( sa_occ, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'SHAPE_ASPECT_RELATIONSHIP.' + 'RELATED_SHAPE_ASPECT' ) | ( ( sar.description = 'applied shape' ) AND ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF( sar ) ) ) ) + | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT' IN TYPEOF( sdr. + relating_shape_aspect ) ) ) ) = 1 ) ) ) = 1 ) ) ) ) = 0 ); + END_ENTITY; + + ENTITY mass_measure_with_unit + SUBTYPE OF ( measure_with_unit ); + WHERE + wr1: ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 ) AND ( SELF\named_unit.dimensions.mass_exponent = 1 ) AND ( SELF\ + named_unit.dimensions.time_exponent = 0 ) AND ( SELF\named_unit.dimensions.electric_current_exponent = 0 ) AND ( + SELF\named_unit.dimensions.thermodynamic_temperature_exponent = 0 ) AND ( SELF\named_unit.dimensions. + amount_of_substance_exponent = 0 ) AND ( SELF\named_unit.dimensions.luminous_intensity_exponent = 0 ) ); + END_ENTITY; + + ENTITY mated_part_relationship + SUBTYPE OF ( group, group_assignment, product_definition_shape, product_definition_relationship, shape_aspect ); + items : SET [0 : ?] OF product_definition; + DERIVE + SELF\group_assignment.assigned_group : mated_part_relationship := SELF; + SELF\property_definition.definition : mated_part_relationship := SELF; + SELF\shape_aspect.of_shape : mated_part_relationship := SELF; + 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_designation_with_conductivity_classification + SUBTYPE OF ( material_designation ); + END_ENTITY; + + ENTITY material_electrical_conductivity_category + SUBTYPE OF ( group ); + END_ENTITY; + + ENTITY material_property + SUBTYPE OF ( property_definition ); + UNIQUE + ur1 : SELF\property_definition.name, SELF\property_definition.definition; + WHERE + wr1: ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CHARACTERIZED_OBJECT' IN TYPEOF( SELF\ + property_definition.definition ) ) OR ( SIZEOF( bag_to_set( USEDIN( SELF, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.' + + 'DEFINITION' ) ) - QUERY ( temp <* bag_to_set( USEDIN( SELF, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.' + + 'DEFINITION' ) ) | ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 material_removal_feature_template + SUBTYPE OF ( single_stratum_continuous_template ); + END_ENTITY; + + ENTITY material_removal_laminate_component + SUBTYPE OF ( laminate_component ); + END_ENTITY; + + ENTITY material_removal_laminate_text_component + SUBTYPE OF ( generic_laminate_text_component ); + END_ENTITY; + + ENTITY material_removal_structured_component + SUBTYPE OF ( structured_layout_component ); + END_ENTITY; + + ENTITY material_removal_structured_template + SUBTYPE OF ( single_stratum_structured_template ); + END_ENTITY; + + ENTITY maths_enum_literal + SUBTYPE OF ( generic_literal ); + lit_value : maths_enum_atom; + END_ENTITY; + + ENTITY maths_function + ABSTRACT SUPERTYPE OF ( + ONEOF ( + finite_function, + constant_function, + selector_function, + elementary_function, + restriction_function, + repackaging_function, + reindexed_array_function, + series_composed_function, + parallel_composed_function, + explicit_table_function, + homogeneous_linear_function, + general_linear_function, + b_spline_basis, + b_spline_function, + rationalize_function, + partial_derivative_function, + definite_integral_function, + abstracted_expression_function, + expression_denoted_function, + imported_point_function, + imported_curve_function, + imported_surface_function, + imported_volume_function, + application_defined_function ) ) + SUBTYPE OF ( generic_expression ); + DERIVE + domain : tuple_space := derive_function_domain( SELF ); + range : tuple_space := derive_function_range( SELF ); + END_ENTITY; + + ENTITY maths_space + ABSTRACT SUPERTYPE OF ( + ONEOF ( + elementary_space, + finite_integer_interval, + integer_interval_from_min, + integer_interval_to_max, + finite_real_interval, + real_interval_from_min, + real_interval_to_max, + cartesian_complex_number_region, + polar_complex_number_region, + finite_space, + uniform_product_space, + listed_product_space, + extended_tuple_space, + function_space ) ) + SUBTYPE OF ( generic_expression ); + END_ENTITY; + + ENTITY maths_tuple_literal + SUBTYPE OF ( generic_literal ); + lit_value : LIST OF maths_value; + END_ENTITY; + + ENTITY maths_variable + SUBTYPE OF ( generic_variable ); + values_space : maths_space; + name : label; + WHERE + wr1: expression_is_constant( values_space ); + END_ENTITY; + + ENTITY maximum_function + SUBTYPE OF ( multiple_arity_function_call ); + 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 | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PRECISION_QUALIFIER' IN TYPEOF( temp ) ) ) ) < 2 ); + wr2: ( NOT ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'DRAUGHTING_MODEL' ) IN TYPEOF( + rep_2 ) ) ) OR ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'DRAUGHTING_MODEL' ) IN + TYPEOF( rep_1 ) ) OR ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'SHAPE_REPRESENTATION' ) IN TYPEOF( rep_1 ) ) ); + wr2: ( ( NOT ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'MECHANICAL_DESIGN_GEOMETRIC_PRESENTATION_REPRESENTATION' ) IN TYPEOF( rep_2 ) ) ) OR ( ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'MECHANICAL_DESIGN_GEOMETRIC_PRESENTATION_REPRESENTATION' ) IN TYPEOF( rep_1 ) ) OR ( ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'SHAPE_REPRESENTATION' ) IN TYPEOF( rep_1 ) ) ); + wr3: ( ( NOT ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'MECHANICAL_DESIGN_SHADED_PRESENTATION_REPRESENTATION' ) IN TYPEOF( rep_2 ) ) ) OR ( ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'MECHANICAL_DESIGN_SHADED_PRESENTATION_REPRESENTATION' ) IN TYPEOF( rep_1 ) ) OR ( ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'MAPPED_ITEM' IN TYPEOF( it1 ) ) ) OR ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PRESENTATION_VIEW' IN TYPEOF( it1\mapped_item.mapping_source.mapped_representation ) ) ) ) ) = 0 ); + wr2: ( SIZEOF( QUERY ( pv <* QUERY ( mi1 <* QUERY ( it1 <* SELF.items | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MAPPED_ITEM' IN TYPEOF( it1 ) ) ) | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PRESENTATION_VIEW' IN TYPEOF( mi1\mapped_item + .mapping_source.mapped_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it2 <* pv\mapped_item.mapping_source. + mapped_representation\representation.items | ( ( NOT ( ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.AXIS2_PLACEMENT' IN TYPEOF( it2 ) ) OR ( ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MAPPED_ITEM' IN TYPEOF( it2 ) ) AND ( NOT ( + ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'CAMERA_IMAGE_3D_WITH_SCALE' ) IN + TYPEOF( it2 ) ) ) AND ( NOT ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PRESENTATION_VIEW' + IN TYPEOF( it2\mapped_item.mapping_source.mapped_representation ) ) ) ) ) ) OR ( ( ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'CAMERA_IMAGE_3D_WITH_SCALE' ) IN + TYPEOF( it2 ) ) AND ( NOT ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'MECHANICAL_DESIGN_GEOMETRIC_PRESENTATION_REPRESENTATION' ) IN TYPEOF( it2\mapped_item.mapping_source. + mapped_representation ) ) ) ) ) ) ) = 0 ) ) ) ) = 0 ); + wr3: ( ( SIZEOF( QUERY ( ps <* USEDIN( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PRESENTATION_SIZE.UNIT' ) | ( ( ps\presentation_size.size.size_in_x <= 0 ) OR ( ps\presentation_size.size. + size_in_y <= 0 ) ) ) ) = 0 ) AND ( SIZEOF( QUERY ( ais <* USEDIN( SELF, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'AREA_IN_SET.AREA' ) | ( SIZEOF( + QUERY ( ps <* USEDIN( ais, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PRESENTATION_SIZE.UNIT' ) | ( ( ps\presentation_size.size.size_in_x <= 0 ) OR ( ps\presentation_size.size. + size_in_y <= 0 ) ) ) ) > 0 ) ) ) = 0 ) ); + wr4: ( ( ( SIZEOF( QUERY ( ps <* USEDIN( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PRESENTATION_SIZE.UNIT' ) | ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'AXIS2_PLACEMENT_2D' ) IN TYPEOF( ps.size.placement ) ) ) ) = 1 ) AND ( SIZEOF( QUERY ( ps <* USEDIN( SELF, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'PRESENTATION_SIZE.UNIT' ) | ( ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'AXIS2_PLACEMENT_3D' ) IN TYPEOF( ps.size + .placement ) ) ) ) = 0 ) ) OR ( ( SIZEOF( QUERY ( ais <* USEDIN( SELF, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'AREA_IN_SET.AREA' ) | ( SIZEOF( + QUERY ( ps <* USEDIN( ais, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PRESENTATION_SIZE.UNIT' ) | ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'AXIS2_PLACEMENT_2D' ) IN TYPEOF( ps.size.placement ) ) ) ) = 1 ) ) ) = 1 ) AND ( SIZEOF( QUERY ( ais <* USEDIN( + SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'AREA_IN_SET.AREA' ) | ( SIZEOF( + QUERY ( ps <* USEDIN( ais, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PRESENTATION_SIZE.UNIT' ) | ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MAPPED_ITEM' IN TYPEOF( it ) ) ) | ( NOT ( + SIZEOF( [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'SHAPE_REPRESENTATION', + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.STYLED_ITEM' IN TYPEOF( it ) ) ) | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MAPPED_ITEM' IN TYPEOF( si\styled_item.item ) ) ) + | ( NOT ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.STYLED_ITEM' IN TYPEOF( it ) ) ) | ( NOT ( + SIZEOF( QUERY ( psa <* si\styled_item.styles | ( NOT ( SIZEOF( QUERY ( pss <* psa.styles | ( NOT ( SIZEOF( [ + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.POINT_STYLE' , + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CURVE_STYLE' , + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SURFACE_STYLE_USAGE' ] * TYPEOF( pss ) ) = 1 ) ) ) ) + = 0 ) ) ) ) = 0 ) ) ) ) = 0 ); + wr4 : ( SIZEOF( QUERY ( si <* QUERY ( it <* SELF.items | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.STYLED_ITEM' IN TYPEOF( it ) ) ) | ( NOT ( + SIZEOF( QUERY ( psbc <* QUERY ( psa <* si\styled_item.styles | ( ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'PRESENTATION_STYLE_BY_CONTEXT' ) IN + TYPEOF( psa ) ) ) | ( NOT ( SIZEOF( [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'REPRESENTATION_ITEM' , 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.REPRESENTATION'] * + TYPEOF( psbc\presentation_style_by_context.style_context ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ); + wr5 : ( SIZEOF( QUERY ( si <* QUERY ( it <* SELF.items | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.STYLED_ITEM' IN TYPEOF( it ) ) ) | ( NOT ( + SIZEOF( QUERY ( psa <* si\styled_item.styles | ( NOT ( SIZEOF( QUERY ( ps <* QUERY ( pss <* psa.styles | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.POINT_STYLE' IN TYPEOF( pss ) ) ) | ( NOT ( + ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'POSITIVE_LENGTH_MEASURE' ) IN + TYPEOF( ps\point_style.marker_size ) ) AND ( SIZEOF( [ + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.COLOUR_RGB' , + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'DRAUGHTING_PRE_DEFINED_COLOUR'] * + TYPEOF( ps\point_style.marker_colour ) ) = 1 ) ) ) ) ) = 0 ) ) ) ) = 0 ) ) ) ) = 0 ); + wr6 : ( SIZEOF( QUERY ( si <* QUERY ( it <* SELF.items | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.STYLED_ITEM' IN TYPEOF( it ) ) ) | ( NOT ( + SIZEOF( QUERY ( psa <* si\styled_item.styles | ( NOT ( SIZEOF( QUERY ( cs <* QUERY ( pss <* psa.styles | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CURVE_STYLE' IN TYPEOF( pss ) ) ) | ( NOT ( + ( SIZEOF( [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.COLOUR_RGB', + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'DRAUGHTING_PRE_DEFINED_COLOUR'] * + TYPEOF( cs\curve_style.curve_colour ) ) = 1 ) AND ( ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'POSITIVE_LENGTH_MEASURE' ) IN TYPEOF( + cs\curve_style.curve_width ) ) AND ( SIZEOF( [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'CURVE_STYLE_FONT' , 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.STYLED_ITEM' IN TYPEOF( it ) ) ) | ( NOT ( + SIZEOF( QUERY ( psa <* si\styled_item.styles | ( NOT ( SIZEOF( QUERY ( ssu <* QUERY ( pss <* psa.styles | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SURFACE_STYLE_USAGE' IN TYPEOF( pss ) ) ) | + ( NOT ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'SURFACE_SIDE_STYLE' ) IN + TYPEOF( ssu\surface_style_usage.style ) ) ) ) ) = 0 ) ) ) ) = 0 ) ) ) ) = 0 ); + wr8 : ( SIZEOF( QUERY ( si <* QUERY ( it <* SELF.items | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.STYLED_ITEM' IN TYPEOF( it ) ) ) | ( NOT ( + SIZEOF( QUERY ( psa <* si\styled_item.styles | ( NOT ( SIZEOF( QUERY ( ssu <* QUERY ( pss <* psa.styles | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SURFACE_STYLE_USAGE' IN TYPEOF( pss ) ) ) | + ( NOT ( SIZEOF( QUERY ( sses <* ssu\surface_style_usage.style\surface_side_style.styles | ( NOT ( SIZEOF( [ + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'SURFACE_STYLE_PARAMETER_LINE', + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'SURFACE_STYLE_CONTROL_GRID', + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'SURFACE_STYLE_SILHOUETTE', + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'SURFACE_STYLE_SEGMENTATION_CURVE', + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'SURFACE_STYLE_FILL_AREA', + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'SURFACE_STYLE_BOUNDARY'] * TYPEOF( sses ) ) + = 1 ) ) ) ) = 0 ) ) ) ) = 0 ) ) ) ) = 0 ) ) ) ) = 0 ); + wr9 : ( SIZEOF( QUERY ( si <* QUERY ( it <* SELF.items | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.STYLED_ITEM' IN TYPEOF( it ) ) ) | ( NOT ( + SIZEOF( QUERY ( psa <* si\styled_item.styles | ( NOT ( SIZEOF( QUERY ( ssu <* QUERY ( pss <* psa.styles | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SURFACE_STYLE_USAGE' IN TYPEOF( pss ) ) ) | + ( NOT ( SIZEOF( QUERY ( sspl <* QUERY ( sses <* ssu\surface_style_usage.style\surface_side_style.styles | ( ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'SURFACE_STYLE_PARAMETER_LINE' ) IN + TYPEOF( sses ) ) ) | ( NOT ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CURVE_STYLE' IN + TYPEOF( sspl\surface_style_parameter_line.style_of_parameter_lines ) ) AND ( SIZEOF( [ + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.COLOUR_RGB' , + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'DRAUGHTING_PRE_DEFINED_COLOUR'] * + TYPEOF( sspl\surface_style_parameter_line.style_of_parameter_lines\curve_style.curve_colour ) ) = 1 ) AND ( ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'POSITIVE_LENGTH_MEASURE' ) IN TYPEOF( + sspl\surface_style_parameter_line.style_of_parameter_lines\curve_style.curve_width ) ) AND ( SIZEOF( [ + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CURVE_STYLE_FONT' , + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.STYLED_ITEM' IN TYPEOF( it ) ) ) | ( NOT ( + SIZEOF( QUERY ( psa <* si\styled_item.styles | ( NOT ( SIZEOF( QUERY ( ssu <* QUERY ( pss <* psa.styles | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SURFACE_STYLE_USAGE' IN TYPEOF( pss ) ) ) | + ( NOT ( SIZEOF( QUERY ( sscg <* QUERY ( sses <* ssu\surface_style_usage.style\surface_side_style.styles | ( ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'SURFACE_STYLE_CONTROL_GRID' ) IN + TYPEOF( sses ) ) ) | ( NOT ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CURVE_STYLE' IN + TYPEOF( sscg\surface_style_control_grid.style_of_control_grid ) ) AND ( SIZEOF( [ + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.COLOUR_RGB' , + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'DRAUGHTING_PRE_DEFINED_COLOUR'] * + TYPEOF( sscg\surface_style_control_grid.style_of_control_grid\curve_style.curve_colour ) ) = 1 ) AND ( ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'POSITIVE_LENGTH_MEASURE' ) IN TYPEOF( + sscg\surface_style_control_grid.style_of_control_grid\curve_style.curve_width ) ) AND ( SIZEOF( [ + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CURVE_STYLE_FONT' , + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.STYLED_ITEM' IN TYPEOF( it ) ) ) | ( NOT ( + SIZEOF( QUERY ( psa <* si\styled_item.styles | ( NOT ( SIZEOF( QUERY ( ssu <* QUERY ( pss <* psa.styles | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SURFACE_STYLE_USAGE' IN TYPEOF( pss ) ) ) | + ( NOT ( SIZEOF( QUERY ( sssh <* QUERY ( sses <* ssu\surface_style_usage.style\surface_side_style.styles | ( ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'SURFACE_STYLE_SILHOUETTE' ) IN TYPEOF( + sses ) ) ) | ( NOT ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CURVE_STYLE' IN + TYPEOF( sssh\surface_style_silhouette.style_of_silhouette ) ) AND ( SIZEOF( [ + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.COLOUR_RGB' , + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'DRAUGHTING_PRE_DEFINED_COLOUR'] * + TYPEOF( sssh\surface_style_silhouette.style_of_silhouette\curve_style.curve_colour ) ) = 1 ) AND ( ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'POSITIVE_LENGTH_MEASURE' ) IN TYPEOF( + sssh\surface_style_silhouette.style_of_silhouette\curve_style.curve_width ) ) AND ( SIZEOF( [ + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CURVE_STYLE_FONT' , + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.STYLED_ITEM' IN TYPEOF( it ) ) ) | ( NOT ( + SIZEOF( QUERY ( psa <* si\styled_item.styles | ( NOT ( SIZEOF( QUERY ( ssu <* QUERY ( pss <* psa.styles | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SURFACE_STYLE_USAGE' IN TYPEOF( pss ) ) ) | + ( NOT ( SIZEOF( QUERY ( sssc <* QUERY ( sses <* ssu\surface_style_usage.style\surface_side_style.styles | ( ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'SURFACE_STYLE_SEGMENTATION_CURVE' ) IN + TYPEOF( sses ) ) ) | ( NOT ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CURVE_STYLE' IN + TYPEOF( sssc\surface_style_segmentation_curve.style_of_segmentation_curve ) ) AND ( SIZEOF( [ + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.COLOUR_RGB' , + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'DRAUGHTING_PRE_DEFINED_COLOUR'] * + TYPEOF( sssc\surface_style_segmentation_curve.style_of_segmentation_curve\curve_style.curve_colour ) ) = 1 ) AND + ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'POSITIVE_LENGTH_MEASURE' ) IN + TYPEOF( sssc\surface_style_segmentation_curve.style_of_segmentation_curve\curve_style.curve_width ) ) AND ( + SIZEOF( [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CURVE_STYLE_FONT', + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.STYLED_ITEM' IN TYPEOF( it ) ) ) | ( NOT ( + SIZEOF( QUERY ( psa <* si\styled_item.styles | ( NOT ( SIZEOF( QUERY ( ssu <* QUERY ( pss <* psa.styles | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SURFACE_STYLE_USAGE' IN TYPEOF( pss ) ) ) | + ( NOT ( SIZEOF( QUERY ( ssbd <* QUERY ( sses <* ssu\surface_style_usage.style\surface_side_style.styles | ( ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'SURFACE_STYLE_BOUNDARY' ) IN TYPEOF( + sses ) ) ) | ( NOT ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CURVE_STYLE' IN + TYPEOF( ssbd\surface_style_boundary.style_of_boundary ) ) AND ( SIZEOF( [ + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.COLOUR_RGB' , + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'DRAUGHTING_PRE_DEFINED_COLOUR'] * + TYPEOF( ssbd\surface_style_boundary.style_of_boundary\curve_style.curve_colour ) ) = 1 ) AND ( ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'POSITIVE_LENGTH_MEASURE' ) IN TYPEOF( + ssbd\surface_style_boundary.style_of_boundary\curve_style.curve_width ) ) AND ( SIZEOF( [ + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CURVE_STYLE_FONT' , + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 ); + SELF\representation.items : SET [1 : ?] OF mechanical_design_shaded_presentation_area_items; + WHERE + wr1: ( SIZEOF( QUERY ( it1 <* SELF.items | ( NOT ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'AXIS2_PLACEMENT' IN TYPEOF( it1 ) ) OR ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'MAPPED_ITEM' IN TYPEOF( it1 ) ) AND ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PRESENTATION_VIEW' IN TYPEOF( it1\mapped_item.mapping_source.mapped_representation ) ) ) ) ) ) ) = 0 ); + wr2: ( SIZEOF( QUERY ( pv <* QUERY ( mi1 <* QUERY ( it1 <* SELF.items | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MAPPED_ITEM' IN TYPEOF( it1 ) ) ) | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PRESENTATION_VIEW' IN TYPEOF( mi1\mapped_item + .mapping_source.mapped_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it2 <* pv\mapped_item.mapping_source. + mapped_representation\representation.items | ( ( NOT ( ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.AXIS2_PLACEMENT' IN TYPEOF( it2 ) ) OR ( ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MAPPED_ITEM' IN TYPEOF( it2 ) ) AND ( NOT ( + ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'CAMERA_IMAGE_3D_WITH_SCALE' ) IN + TYPEOF( it2 ) ) ) AND ( NOT ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PRESENTATION_VIEW' + IN TYPEOF( it2\mapped_item.mapping_source.mapped_representation ) ) ) ) ) ) OR ( ( ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'CAMERA_IMAGE_3D_WITH_SCALE' ) IN + TYPEOF( it2 ) ) AND ( NOT ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'MECHANICAL_DESIGN_SHADED_PRESENTATION_REPRESENTATION' ) IN TYPEOF( it2\mapped_item.mapping_source. + mapped_representation ) ) ) ) ) ) ) = 0 ) ) ) ) = 0 ); + wr3: ( ( SIZEOF( QUERY ( ps <* USEDIN( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PRESENTATION_SIZE.UNIT' ) | ( NOT ( ( ps\presentation_size.size.size_in_x > 0 ) AND ( ps\presentation_size.size. + size_in_y > 0 ) ) ) ) ) = 0 ) AND ( SIZEOF( QUERY ( pset <* QUERY ( ais <* USEDIN( SELF, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'AREA_IN_SET.AREA' ) | ( ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'PRESENTATION_SET' ) IN TYPEOF( ais. + in_set ) ) ) | ( SIZEOF( QUERY ( ps <* USEDIN( pset, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'PRESENTATION_SIZE.UNIT' ) | ( NOT ( ( ps + \presentation_size.size.size_in_x > 0 ) AND ( ps\presentation_size.size.size_in_y > 0 ) ) ) ) ) = 0 ) ) ) = 0 ) ); + wr4: ( ( SIZEOF( QUERY ( psize <* USEDIN( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PRESENTATION_SIZE.UNIT' ) | ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'AXIS2_PLACEMENT_2D' ) IN TYPEOF( psize.size.placement ) ) ) ) = 1 ) AND ( SIZEOF( QUERY ( pset <* + QUERY ( ais <* USEDIN( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'AREA_IN_SET.' + + 'AREA' ) | ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'PRESENTATION_SET' ) IN + TYPEOF( ais.in_set ) ) ) | ( SIZEOF( QUERY ( psize <* USEDIN( pset, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'PRESENTATION_SIZE.UNIT' ) | ( NOT ( ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'AXIS2_PLACEMENT_2D' ) IN TYPEOF( psize. + size.placement ) ) ) ) ) = 0 ) ) ) = 0 ) ); + wr5: ( SIZEOF( QUERY ( pv <* QUERY ( mi1 <* QUERY ( it1 <* SELF.items | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MAPPED_ITEM' IN TYPEOF( it1 ) ) ) | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PRESENTATION_VIEW' IN TYPEOF( mi1\mapped_item + .mapping_source.mapped_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( ci <* pv\mapped_item.mapping_source. + mapped_representation\representation.items | ( ( ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'CAMERA_IMAGE_3D_WITH_SCALE' ) IN + TYPEOF( ci ) ) AND ( SIZEOF( [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'CAMERA_MODEL_D3' , 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'CAMERA_MODEL_D3_WITH_HLHSR' , 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 ); + SELF\representation.items : SET [1 : ?] OF mechanical_design_shaded_presentation_representation_items; + WHERE + wr1 : ( SIZEOF( QUERY ( mi <* QUERY ( it <* SELF.items | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MAPPED_ITEM' IN TYPEOF( it ) ) ) | ( NOT ( + SIZEOF( [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'SHAPE_REPRESENTATION', + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'MECHANICAL_DESIGN_SHADED_PRESENTATION_REPRESENTATION' ] * TYPEOF( mi\mapped_item.mapping_source. + mapped_representation ) ) = 1 ) ) ) ) = 0 ); + wr2 : ( SIZEOF( QUERY ( smi <* QUERY ( si <* QUERY ( it <* SELF.items | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.STYLED_ITEM' IN TYPEOF( it ) ) ) | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MAPPED_ITEM' IN TYPEOF( si\styled_item.item ) ) ) + | ( NOT ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.STYLED_ITEM' IN TYPEOF( it ) ) ) | ( NOT ( + SIZEOF( QUERY ( psa <* si\styled_item.styles | ( NOT ( SIZEOF( QUERY ( pss <* psa.styles | ( NOT ( SIZEOF( [ + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.POINT_STYLE' , + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CURVE_STYLE' , + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SURFACE_STYLE_USAGE' ] * TYPEOF( pss ) ) = 1 ) ) ) ) + = 0 ) ) ) ) = 0 ) ) ) ) = 0 ); + wr4 : ( SIZEOF( QUERY ( si <* QUERY ( it <* SELF.items | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.STYLED_ITEM' IN TYPEOF( it ) ) ) | ( NOT ( + SIZEOF( QUERY ( psbc <* QUERY ( psa <* si\styled_item.styles | ( ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'PRESENTATION_STYLE_BY_CONTEXT' ) IN + TYPEOF( psa ) ) ) | ( NOT ( SIZEOF( [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'REPRESENTATION_ITEM' , 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.REPRESENTATION'] * + TYPEOF( psbc\presentation_style_by_context.style_context ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ); + wr5 : ( SIZEOF( QUERY ( si <* QUERY ( it <* SELF.items | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.STYLED_ITEM' IN TYPEOF( it ) ) ) | ( NOT ( + SIZEOF( QUERY ( psa <* si\styled_item.styles | ( NOT ( SIZEOF( QUERY ( ps <* QUERY ( pss <* psa.styles | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.POINT_STYLE' IN TYPEOF( pss ) ) ) | ( NOT ( + ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MARKER_TYPE' IN TYPEOF( ps\point_style. + marker ) ) AND ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.POSITIVE_LENGTH_MEASURE' IN + TYPEOF( ps\point_style.marker_size ) ) AND ( SIZEOF( [ + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.COLOUR_RGB' , + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'DRAUGHTING_PRE_DEFINED_COLOUR'] * + TYPEOF( ps\point_style.marker_colour ) ) = 1 ) ) ) ) ) = 0 ) ) ) ) = 0 ) ) ) ) = 0 ); + wr6 : ( SIZEOF( QUERY ( si <* QUERY ( it <* SELF.items | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.STYLED_ITEM' IN TYPEOF( it ) ) ) | ( NOT ( + SIZEOF( QUERY ( psa <* si\styled_item.styles | ( NOT ( SIZEOF( QUERY ( cs <* QUERY ( pss <* psa.styles | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CURVE_STYLE' IN TYPEOF( pss ) ) ) | ( NOT ( + ( SIZEOF( [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.COLOUR_RGB', + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'DRAUGHTING_PRE_DEFINED_COLOUR'] * + TYPEOF( cs\curve_style.curve_colour ) ) = 1 ) AND ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.POSITIVE_LENGTH_MEASURE' IN TYPEOF( cs\ + curve_style.curve_width ) ) AND ( SIZEOF( [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'CURVE_STYLE_FONT', 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.STYLED_ITEM' IN TYPEOF( it ) ) ) | ( NOT ( + SIZEOF( QUERY ( psa <* si\styled_item.styles | ( NOT ( SIZEOF( QUERY ( ssu <* QUERY ( pss <* psa.styles | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SURFACE_STYLE_USAGE' IN TYPEOF( pss ) ) ) | + ( NOT ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SURFACE_SIDE_STYLE' IN TYPEOF( ssu\ + surface_style_usage.style ) ) ) ) ) = 0 ) ) ) ) = 0 ) ) ) ) = 0 ); + wr8 : ( SIZEOF( QUERY ( si <* QUERY ( it <* SELF.items | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.STYLED_ITEM' IN TYPEOF( it ) ) ) | ( NOT ( + SIZEOF( QUERY ( psa <* si\styled_item.styles | ( NOT ( SIZEOF( QUERY ( ssu <* QUERY ( pss <* psa.styles | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SURFACE_STYLE_USAGE' IN TYPEOF( pss ) ) ) | + ( NOT ( SIZEOF( QUERY ( sses <* ssu\surface_style_usage.style\surface_side_style.styles | ( NOT ( SIZEOF( [ + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'SURFACE_STYLE_PARAMETER_LINE', + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'SURFACE_STYLE_CONTROL_GRID', + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'SURFACE_STYLE_SILHOUETTE', + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'SURFACE_STYLE_SEGMENTATION_CURVE', + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'SURFACE_STYLE_BOUNDARY', + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'SURFACE_STYLE_FILL_AREA', + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'SURFACE_STYLE_RENDERING'] * TYPEOF( + sses ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ) ) ) ) = 0 ) ) ) ) = 0 ); + wr9 : ( SIZEOF( QUERY ( si <* QUERY ( it <* SELF.items | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.STYLED_ITEM' IN TYPEOF( it ) ) ) | ( NOT ( + SIZEOF( QUERY ( psa <* si\styled_item.styles | ( NOT ( SIZEOF( QUERY ( ssu <* QUERY ( pss <* psa.styles | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SURFACE_STYLE_USAGE' IN TYPEOF( pss ) ) ) | + ( NOT ( SIZEOF( QUERY ( ssfa <* QUERY ( sses <* ssu\surface_style_usage.style\surface_side_style.styles | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SURFACE_STYLE_FILL_AREA' IN TYPEOF( sses ) ) ) + | ( NOT ( SIZEOF( QUERY ( fss <* ssfa\surface_style_fill_area.fill_area.fill_styles | ( NOT ( ( ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'FILL_AREA_STYLE_COLOUR' ) IN TYPEOF( + fss ) ) AND ( SIZEOF( [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.COLOUR_RGB', + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'DRAUGHTING_PRE_DEFINED_COLOUR'] * + TYPEOF( fss\fill_area_style_colour.fill_colour ) ) = 1 ) ) ) ) ) = 0 ) ) ) ) = 0 ) ) ) ) = 0 ) ) ) ) = 0 ) ) ) ) = + 0 ); + wr10: ( SIZEOF( QUERY ( si <* QUERY ( it <* SELF.items | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.STYLED_ITEM' IN TYPEOF( it ) ) ) | ( NOT ( + SIZEOF( QUERY ( psa <* si\styled_item.styles | ( NOT ( SIZEOF( QUERY ( ssu <* QUERY ( pss <* psa.styles | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SURFACE_STYLE_USAGE' IN TYPEOF( pss ) ) ) | + ( NOT ( SIZEOF( QUERY ( sspl <* QUERY ( sses <* ssu\surface_style_usage.style\surface_side_style.styles | ( ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'SURFACE_STYLE_PARAMETER_LINE' ) IN + TYPEOF( sses ) ) ) | ( NOT ( ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CURVE_STYLE' + IN TYPEOF( sspl\surface_style_parameter_line.style_of_parameter_lines ) ) AND ( SIZEOF( [ + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.COLOUR_RGB' , + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'DRAUGHTING_PRE_DEFINED_COLOUR'] * + TYPEOF( sspl\surface_style_parameter_line.style_of_parameter_lines\curve_style.curve_colour ) ) = 1 ) AND ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.POSITIVE_LENGTH_MEASURE' IN TYPEOF( sspl\ + surface_style_parameter_line.style_of_parameter_lines\curve_style.curve_width ) ) AND ( SIZEOF( [ + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'CURVE_STYLE_FONT', + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'DRAUGHTING_PRE_DEFINED_CURVE_FONT'] * + TYPEOF( sspl\surface_style_parameter_line.style_of_parameter_lines\curve_style.curve_font ) ) = 1 ) ) OR ( ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CURVE_STYLE_RENDERING' IN TYPEOF( sspl\ + surface_style_parameter_line.style_of_parameter_lines ) ) AND ( SIZEOF( [ + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.COLOUR_RGB' , + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 ); + wr11: ( SIZEOF( QUERY ( si <* QUERY ( it <* SELF.items | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.STYLED_ITEM' IN TYPEOF( it ) ) ) | ( NOT ( + SIZEOF( QUERY ( psa <* si\styled_item.styles | ( NOT ( SIZEOF( QUERY ( ssu <* QUERY ( pss <* psa.styles | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SURFACE_STYLE_USAGE' IN TYPEOF( pss ) ) ) | + ( NOT ( SIZEOF( QUERY ( sscg <* QUERY ( sses <* ssu\surface_style_usage.style\surface_side_style.styles | ( ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'SURFACE_STYLE_CONTROL_GRID' ) IN + TYPEOF( sses ) ) ) | ( NOT ( ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CURVE_STYLE' + IN TYPEOF( sscg\surface_style_control_grid.style_of_control_grid ) ) AND ( SIZEOF( [ + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.COLOUR_RGB' , + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'DRAUGHTING_PRE_DEFINED_COLOUR'] * + TYPEOF( sscg\surface_style_control_grid.style_of_control_grid\curve_style.curve_colour ) ) = 1 ) AND ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.POSITIVE_LENGTH_MEASURE' IN TYPEOF( sscg\ + surface_style_control_grid.style_of_control_grid\curve_style.curve_width ) ) AND ( SIZEOF( [ + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'CURVE_STYLE_FONT', + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'DRAUGHTING_PRE_DEFINED_CURVE_FONT'] * + TYPEOF( sscg\surface_style_control_grid.style_of_control_grid\curve_style.curve_font ) ) = 1 ) ) OR ( ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CURVE_STYLE_RENDERING' IN TYPEOF( sscg\ + surface_style_control_grid.style_of_control_grid ) ) AND ( SIZEOF( [ + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.COLOUR_RGB' , + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 ); + wr12: ( SIZEOF( QUERY ( si <* QUERY ( it <* SELF.items | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.STYLED_ITEM' IN TYPEOF( it ) ) ) | ( NOT ( + SIZEOF( QUERY ( psa <* si\styled_item.styles | ( NOT ( SIZEOF( QUERY ( ssu <* QUERY ( pss <* psa.styles | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SURFACE_STYLE_USAGE' IN TYPEOF( pss ) ) ) | + ( NOT ( SIZEOF( QUERY ( sssh <* QUERY ( sses <* ssu\surface_style_usage.style\surface_side_style.styles | ( ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'SURFACE_STYLE_SILHOUETTE' ) IN TYPEOF( + sses ) ) ) | ( NOT ( ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CURVE_STYLE' IN + TYPEOF( sssh\surface_style_silhouette.style_of_silhouette ) ) AND ( SIZEOF( [ + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.COLOUR_RGB' , + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'DRAUGHTING_PRE_DEFINED_COLOUR'] * + TYPEOF( sssh\surface_style_silhouette.style_of_silhouette\curve_style.curve_colour ) ) = 1 ) AND ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.POSITIVE_LENGTH_MEASURE' IN TYPEOF( sssh\ + surface_style_silhouette.style_of_silhouette\curve_style.curve_width ) ) AND ( SIZEOF( [ + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'CURVE_STYLE_FONT', + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'DRAUGHTING_PRE_DEFINED_CURVE_FONT'] * + TYPEOF( sssh\surface_style_silhouette.style_of_silhouette\curve_style.curve_font ) ) = 1 ) ) OR ( ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CURVE_STYLE_RENDERING' IN TYPEOF( sssh\ + surface_style_silhouette.style_of_silhouette ) ) AND ( SIZEOF( [ + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.COLOUR_RGB' , + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 ); + wr13: ( SIZEOF( QUERY ( si <* QUERY ( it <* SELF.items | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.STYLED_ITEM' IN TYPEOF( it ) ) ) | ( NOT ( + SIZEOF( QUERY ( psa <* si\styled_item.styles | ( NOT ( SIZEOF( QUERY ( ssu <* QUERY ( pss <* psa.styles | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SURFACE_STYLE_USAGE' IN TYPEOF( pss ) ) ) | + ( NOT ( SIZEOF( QUERY ( sssc <* QUERY ( sses <* ssu\surface_style_usage.style\surface_side_style.styles | ( ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'SURFACE_STYLE_SEGMENTATION_CURVE' ) IN + TYPEOF( sses ) ) ) | ( NOT ( ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CURVE_STYLE' + IN TYPEOF( sssc\surface_style_segmentation_curve.style_of_segmentation_curve ) ) AND ( SIZEOF( [ + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.COLOUR_RGB' , + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'DRAUGHTING_PRE_DEFINED_COLOUR'] * + TYPEOF( sssc\surface_style_segmentation_curve.style_of_segmentation_curve\curve_style.curve_colour ) ) = 1 ) AND + ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.POSITIVE_LENGTH_MEASURE' IN TYPEOF( sssc\ + surface_style_segmentation_curve.style_of_segmentation_curve\curve_style.curve_width ) ) AND ( SIZEOF( [ + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'CURVE_STYLE_FONT', + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'DRAUGHTING_PRE_DEFINED_CURVE_FONT'] * + TYPEOF( sssc\surface_style_segmentation_curve.style_of_segmentation_curve\curve_style.curve_font ) ) = 1 ) ) OR ( + ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CURVE_STYLE_RENDERING' IN TYPEOF( sssc\ + surface_style_segmentation_curve.style_of_segmentation_curve ) ) AND ( SIZEOF( [ + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.COLOUR_RGB' , + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 ); + wr14: ( SIZEOF( QUERY ( si <* QUERY ( it <* SELF.items | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.STYLED_ITEM' IN TYPEOF( it ) ) ) | ( NOT ( + SIZEOF( QUERY ( psa <* si\styled_item.styles | ( NOT ( SIZEOF( QUERY ( ssu <* QUERY ( pss <* psa.styles | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SURFACE_STYLE_USAGE' IN TYPEOF( pss ) ) ) | + ( NOT ( SIZEOF( QUERY ( ssbd <* QUERY ( sses <* ssu\surface_style_usage.style\surface_side_style.styles | ( ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'SURFACE_STYLE_BOUNDARY' ) IN TYPEOF( + sses ) ) ) | ( NOT ( ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CURVE_STYLE' IN + TYPEOF( ssbd\surface_style_boundary.style_of_boundary ) ) AND ( SIZEOF( [ + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.COLOUR_RGB' , + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'DRAUGHTING_PRE_DEFINED_COLOUR'] * + TYPEOF( ssbd\surface_style_boundary.style_of_boundary\curve_style.curve_colour ) ) = 1 ) AND ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.POSITIVE_LENGTH_MEASURE' IN TYPEOF( ssbd\ + surface_style_boundary.style_of_boundary\curve_style.curve_width ) ) AND ( SIZEOF( [ + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'CURVE_STYLE_FONT', + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'DRAUGHTING_PRE_DEFINED_CURVE_FONT'] * + TYPEOF( ssbd\surface_style_boundary.style_of_boundary\curve_style.curve_font ) ) = 1 ) ) OR ( ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CURVE_STYLE_RENDERING' IN TYPEOF( ssbd\ + surface_style_boundary.style_of_boundary ) ) AND ( SIZEOF( [ + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.COLOUR_RGB' , + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 ); + wr15: ( SIZEOF( QUERY ( si <* QUERY ( it <* SELF.items | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.STYLED_ITEM' IN TYPEOF( it ) ) ) | ( NOT ( + SIZEOF( QUERY ( psa <* si\styled_item.styles | ( NOT ( SIZEOF( QUERY ( ssu <* QUERY ( pss <* psa.styles | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SURFACE_STYLE_USAGE' IN TYPEOF( pss ) ) ) | + ( NOT ( SIZEOF( QUERY ( ssre <* QUERY ( sses <* ssu\surface_style_usage.style\surface_side_style.styles | ( ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'SURFACE_STYLE_RENDERING' ) IN TYPEOF( + sses ) ) ) | ( NOT ( SIZEOF( [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.COLOUR_RGB', + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'DRAUGHTING_PRE_DEFINED_COLOUR'] * + TYPEOF( ssre\surface_style_rendering.surface_colour ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ) ) ) ) = 0 ) ) ) ) = 0 ); + END_ENTITY; + + ENTITY mechanism_representation + SUBTYPE OF ( representation ); + SELF\representation.context_of_items : geometric_representation_context; + SELF\representation.items : SET [1 : ?] OF pair_representation_relationship; + represented_topology : kinematic_topology_representation_select; + DERIVE + represented_joints : SET [1 : ?] OF kinematic_joint := collect_joints( items ); + WHERE + wr1: ( ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.KINEMATIC_TOPOLOGY_STRUCTURE' IN TYPEOF( + represented_topology ) ) AND ( represented_joints :=: represented_topology.items ) ) OR ( ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.KINEMATIC_TOPOLOGY_DIRECTED_STRUCTURE' IN + TYPEOF( represented_topology ) ) AND ( represented_joints :=: get_kinematic_joints_from_oriented_joints( + represented_topology.items ) ) ) OR ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'KINEMATIC_TOPOLOGY_NETWORK_STRUCTURE' IN TYPEOF( represented_topology ) ) AND ( represented_joints :=: + get_kinematic_joints_from_kinematic_loops( represented_topology.items ) ) ) ); + END_ENTITY; + + ENTITY mechanism_state_representation + SUBTYPE OF ( representation ); + SELF\representation.items : SET [1 : ?] OF pair_value; + represented_mechanism : mechanism_representation; + DERIVE + SELF\representation.context_of_items : geometric_representation_context := represented_mechanism.context_of_items; + END_ENTITY; + + ENTITY min_and_major_ply_orientation_basis + SUBTYPE OF ( representation_item_relationship, geometric_representation_item ); + SELF\representation_item_relationship.relating_representation_item : axis2_placement_3d; + SELF\representation_item_relationship.related_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 minimally_defined_bare_die_terminal + SUPERTYPE OF ( + bare_die_terminal ) + SUBTYPE OF ( shape_aspect ); + SELF\shape_aspect.of_shape : bare_die; + END_ENTITY; + + ENTITY minimally_defined_connector + SUBTYPE OF ( packaged_part ); + END_ENTITY; + + ENTITY minimum_function + SUBTYPE OF ( multiple_arity_function_call ); + END_ENTITY; + + ENTITY minus_expression + SUBTYPE OF ( binary_numeric_expression ); + END_ENTITY; + + ENTITY minus_function + SUBTYPE OF ( unary_function_call ); + END_ENTITY; + + ENTITY mod_expression + SUBTYPE OF ( binary_numeric_expression ); + END_ENTITY; + + ENTITY model_parameter + SUPERTYPE OF ( + ONEOF ( + datum_difference_based_model_parameter, + schema_based_model_parameter ) ) + SUBTYPE OF ( general_property ); + END_ENTITY; + + ENTITY model_parameter_with_unit + SUBTYPE OF ( model_parameter ); + WHERE + wr1: ( NOT ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SCHEMA_BASED_MODEL_PARAMETER' IN TYPEOF( + SELF ) ) ); + END_ENTITY; + + ENTITY modified_geometric_tolerance + SUBTYPE OF ( geometric_tolerance ); + modifier : limit_condition; + END_ENTITY; + + ENTITY modified_pattern + SUBTYPE OF ( shape_aspect ); + WHERE + wr1: ( SIZEOF( QUERY ( fcr <* QUERY ( sar <* USEDIN( SELF, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.' + + 'RELATING_SHAPE_ASPECT' ) | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF( sar ) ) ) | ( ( SIZEOF( [ + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.REPLICATE_FEATURE' , + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.INSTANCED_FEATURE' ] * TYPEOF( fcr. + related_shape_aspect.of_shape.definition ) ) >= 1 ) AND ( fcr.description = 'base shape' ) ) ) ) = 1 ); + wr2: ( SIZEOF( QUERY ( fcr <* QUERY ( sar <* USEDIN( SELF, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.' + + 'RELATING_SHAPE_ASPECT' ) | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF( sar ) ) ) | ( ( SIZEOF( [ + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CIRCULAR_PATTERN' , + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.RECTANGULAR_PATTERN' ] * TYPEOF( fcr. + related_shape_aspect.of_shape.definition ) ) = 1 ) AND ( fcr.description = 'base pattern' ) ) ) ) = 1 ); + wr3: ( SIZEOF( QUERY ( sar <* USEDIN( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'SHAPE_ASPECT_RELATIONSHIP.RELATING_SHAPE_ASPECT' ) | ( SIZEOF( QUERY ( msar <* USEDIN( sar. + related_shape_aspect, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT' ) | ( ( SIZEOF( [ + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PATTERN_OFFSET_MEMBERSHIP' , + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PATTERN_OMIT_MEMBERSHIP' ] * TYPEOF( sar ) ) = + 1 ) AND ( sar.description = 'modified pattern' ) AND ( sar :<>: msar ) ) ) ) >= 1 ) ) ) = 0 ); + 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 modify_element + SUBTYPE OF ( change_element ); + END_ENTITY; + + ENTITY moments_of_inertia_representation + SUBTYPE OF ( representation ); + WHERE + wr1: ( ( SIZEOF( SELF.items ) = 1 ) AND ( SIZEOF( QUERY ( i <* SELF.items | ( ( ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'COMPOUND_REPRESENTATION_ITEM' ) IN + TYPEOF( i ) ) AND ( i.name = 'moments of inertia matrix' ) ) ) ) = 1 ) ); + wr2: ( SIZEOF( QUERY ( i <* SELF.items | ( ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'COMPOUND_REPRESENTATION_ITEM' ) IN TYPEOF( i ) ) AND ( ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 mounting_restriction_area + SUBTYPE OF ( shape_aspect ); + END_ENTITY; + + ENTITY mounting_restriction_volume + SUBTYPE OF ( shape_aspect ); + END_ENTITY; + + ENTITY mult_expression + SUBTYPE OF ( multiple_arity_numeric_expression ); + 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, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 multi_layer_component_definition + SUBTYPE OF ( laminate_component ); + END_ENTITY; + + ENTITY multi_layer_material_removal_laminate_component + SUBTYPE OF ( material_removal_laminate_component ); + END_ENTITY; + + ENTITY multi_layer_stratum_feature_template_component + SUBTYPE OF ( stratum_feature_template_component ); + END_ENTITY; + + ENTITY multi_level_reference_designator + SUBTYPE OF ( assembly_component_usage ); + location : LIST [1 : ?] OF UNIQUE next_assembly_usage_occurrence; + DERIVE + SELF\product_definition_relationship.relating_product_definition : product_definition := location[1]\ + product_definition_relationship.relating_product_definition; + SELF\product_definition_relationship.related_product_definition : product_definition_or_reference := location[HIINDEX( + location )]\product_definition_relationship.related_product_definition; + leaf : product_definition_or_reference := SELF\product_definition_relationship. + related_product_definition; + root : product_definition := SELF\product_definition_relationship. + relating_product_definition; + WHERE + wr1: unambiguously_specified_multi_level_reference_designator( location ); + wr2: ( SIZEOF( QUERY ( cp <* location | ( NOT EXISTS( cp\assembly_component_usage.reference_designator ) ) ) ) = 0 ); + END_ENTITY; + + ENTITY multi_stratum_printed_component + SUBTYPE OF ( printed_component, structured_layout_component ); + END_ENTITY; + + ENTITY multi_stratum_printed_part_template + SUBTYPE OF ( structured_printed_part_template, multi_stratum_structured_template ); + END_ENTITY; + + ENTITY multi_stratum_special_symbol_component + SUBTYPE OF ( structured_layout_component ); + END_ENTITY; + + ENTITY multi_stratum_special_symbol_template + SUBTYPE OF ( multi_stratum_structured_template, special_symbol_template ); + END_ENTITY; + + ENTITY multi_stratum_structured_template + ABSTRACT SUPERTYPE OF ( + ONEOF ( + padstack_definition, + multi_stratum_special_symbol_template ) + ANDOR + stratum_stack_dependent_template + ANDOR + ONEOF ( + padstack_definition, + generic_footprint_definition, + multi_stratum_special_symbol_template ) ) + SUBTYPE OF ( structured_template ); + END_ENTITY; + + ENTITY multiple_arity_boolean_expression + ABSTRACT SUPERTYPE OF ( + ONEOF ( + and_expression, + or_expression ) ) + SUBTYPE OF ( boolean_expression, multiple_arity_generic_expression ); + SELF\multiple_arity_generic_expression.operands : LIST [2 : ?] OF boolean_expression; + END_ENTITY; + + ENTITY multiple_arity_function_call + ABSTRACT SUPERTYPE OF ( + ONEOF ( + maximum_function, + minimum_function ) ) + SUBTYPE OF ( multiple_arity_numeric_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 OF ( + ONEOF ( + plus_expression, + mult_expression, + multiple_arity_function_call ) ) + SUBTYPE OF ( numeric_expression, multiple_arity_generic_expression ); + SELF\multiple_arity_generic_expression.operands : LIST [2 : ?] OF numeric_expression; + END_ENTITY; + + ENTITY multiply_defined_cartesian_points + SUBTYPE OF ( multiply_defined_geometry ); + SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; + WHERE + wr1: ( ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'SHAPE_DATA_QUALITY_UPPER_VALUE_LIMIT' ) + IN TYPEOF( SELF\shape_data_quality_criterion.assessment_specification\ + shape_data_quality_assessment_by_numerical_test.threshold ) ) AND ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE' IN value_limit_type( SELF\ + shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold ) ) ); + wr2: validate_measured_data_type( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE' ); + wr3: validate_inspected_elements_type( SELF, [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'CARTESIAN_POINT' , 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CARTESIAN_POINT'] ); + wr4: validate_locations_of_extreme_value_type( SELF, [] ); + wr5: validate_accuracy_types( SELF, [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE'] ); + END_ENTITY; + + ENTITY multiply_defined_curves + SUBTYPE OF ( multiply_defined_geometry ); + SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; + WHERE + wr1: ( ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'SHAPE_DATA_QUALITY_UPPER_VALUE_LIMIT' ) + IN TYPEOF( SELF\shape_data_quality_criterion.assessment_specification\ + shape_data_quality_assessment_by_numerical_test.threshold ) ) AND ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE' IN value_limit_type( SELF\ + shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold ) ) ); + wr2: validate_measured_data_type( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE' ); + wr3: validate_inspected_elements_type( SELF, [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CURVE', + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CURVE' ] ); + wr4: validate_locations_of_extreme_value_type( SELF, [] ); + wr5: validate_accuracy_types( SELF, [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE'] ); + END_ENTITY; + + ENTITY multiply_defined_directions + SUBTYPE OF ( multiply_defined_geometry ); + SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; + WHERE + wr1: ( ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'SHAPE_DATA_QUALITY_UPPER_VALUE_LIMIT' ) + IN TYPEOF( SELF\shape_data_quality_criterion.assessment_specification\ + shape_data_quality_assessment_by_numerical_test.threshold ) ) AND ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PLANE_ANGLE_MEASURE' IN value_limit_type( + SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test. + threshold ) ) ); + wr2: validate_measured_data_type( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PLANE_ANGLE_MEASURE' ); + wr3: validate_inspected_elements_type( SELF, [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.DIRECTION', + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.DIRECTION' ] ); + wr4: validate_locations_of_extreme_value_type( SELF, [] ); + wr5: validate_accuracy_types( SELF, [] ); + END_ENTITY; + + ENTITY multiply_defined_edges + SUBTYPE OF ( topology_related_to_multiply_defined_geometry ); + SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; + WHERE + wr1: ( ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'SHAPE_DATA_QUALITY_UPPER_VALUE_LIMIT' ) + IN TYPEOF( SELF\shape_data_quality_criterion.assessment_specification\ + shape_data_quality_assessment_by_numerical_test.threshold ) ) AND ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE' IN value_limit_type( SELF\ + shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold ) ) ); + wr2: validate_measured_data_type( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE' ); + wr3: validate_inspected_elements_type( SELF, [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'EDGE_CURVE' , 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.EDGE_CURVE'] ); + wr4: validate_locations_of_extreme_value_type( SELF, [] ); + wr5: validate_accuracy_types( SELF, [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE'] ); + END_ENTITY; + + ENTITY multiply_defined_faces + SUBTYPE OF ( topology_related_to_multiply_defined_geometry ); + SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; + WHERE + wr1: ( ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'SHAPE_DATA_QUALITY_UPPER_VALUE_LIMIT' ) + IN TYPEOF( SELF\shape_data_quality_criterion.assessment_specification\ + shape_data_quality_assessment_by_numerical_test.threshold ) ) AND ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE' IN value_limit_type( SELF\ + shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold ) ) ); + wr2: validate_measured_data_type( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE' ); + wr3: validate_inspected_elements_type( SELF, [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'FACE_SURFACE' , 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.FACE_SURFACE'] ); + wr4: validate_locations_of_extreme_value_type( SELF, [] ); + wr5: validate_accuracy_types( SELF, [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE'] ); + END_ENTITY; + + ENTITY multiply_defined_geometry + ABSTRACT SUPERTYPE OF ( + ONEOF ( + multiply_defined_curves, + multiply_defined_surfaces, + multiply_defined_cartesian_points, + multiply_defined_directions, + multiply_defined_placements ) ) + SUBTYPE OF ( inapt_geometry ); + END_ENTITY; + + ENTITY multiply_defined_placements + SUBTYPE OF ( multiply_defined_geometry ); + SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; + assessment_specification_2 : shape_data_quality_assessment_by_numerical_test; + WHERE + wr1: ( ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'SHAPE_DATA_QUALITY_UPPER_VALUE_LIMIT' ) + IN TYPEOF( SELF\shape_data_quality_criterion.assessment_specification\ + shape_data_quality_assessment_by_numerical_test.threshold ) ) AND ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE' IN value_limit_type( SELF\ + shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold ) ) ); + wr2: ( ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'SHAPE_DATA_QUALITY_UPPER_VALUE_LIMIT' ) + IN TYPEOF( assessment_specification_2\shape_data_quality_assessment_by_numerical_test.threshold ) ) AND ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PLANE_ANGLE_MEASURE' IN value_limit_type( + assessment_specification_2\shape_data_quality_assessment_by_numerical_test.threshold ) ) ); + wr3: validate_measured_data_type( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PLANE_ANGLE_AND_LENGTH_PAIR' ); + wr4: validate_inspected_elements_type( SELF, [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PLACEMENT', + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PLACEMENT' ] ); + wr5: validate_locations_of_extreme_value_type( SELF, [] ); + wr6: validate_accuracy_types( SELF, [] ); + wr7: ( SIZEOF( QUERY ( sdqr <* bag_to_set( USEDIN( SELF, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'DATA_QUALITY_INSPECTION_RESULT.' + + 'CRITERION_INSPECTED' ) ) | ( ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'SHAPE_DATA_QUALITY_INSPECTION_RESULT' ) IN TYPEOF( sdqr ) ) AND ( SIZEOF( QUERY ( sdqiir <* bag_to_set( USEDIN( + sdqr, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'DATA_QUALITY_INSPECTION_REPORT.' + + 'INSPECTION_RESULT' ) ) | ( ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'SHAPE_DATA_QUALITY_INSPECTION_INSTANCE_REPORT' ) IN TYPEOF( sdqiir ) ) AND ( SIZEOF( QUERY ( sdqiri <* sdqiir. + inspected_instances | ( TYPEOF( sdqiri.inspected_elements[1] ) <> TYPEOF( sdqiri.inspected_elements[2] ) ) ) ) = 0 ) ) ) ) + = 0 ) ) ) ) = 0 ); + END_ENTITY; + + ENTITY multiply_defined_solids + SUBTYPE OF ( inapt_manifold_solid_brep ); + SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; + WHERE + wr1: ( ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'SHAPE_DATA_QUALITY_UPPER_VALUE_LIMIT' ) + IN TYPEOF( SELF\shape_data_quality_criterion.assessment_specification\ + shape_data_quality_assessment_by_numerical_test.threshold ) ) AND ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE' IN value_limit_type( SELF\ + shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold ) ) ); + wr2: validate_measured_data_type( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE' ); + wr3: validate_inspected_elements_type( SELF, [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'MANIFOLD_SOLID_BREP' , 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MANIFOLD_SOLID_BREP'] ); + wr4: validate_locations_of_extreme_value_type( SELF, [] ); + wr5: validate_accuracy_types( SELF, [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE'] ); + END_ENTITY; + + ENTITY multiply_defined_surfaces + SUBTYPE OF ( multiply_defined_geometry ); + SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; + WHERE + wr1: ( ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'SHAPE_DATA_QUALITY_UPPER_VALUE_LIMIT' ) + IN TYPEOF( SELF\shape_data_quality_criterion.assessment_specification\ + shape_data_quality_assessment_by_numerical_test.threshold ) ) AND ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE' IN value_limit_type( SELF\ + shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold ) ) ); + wr2: validate_measured_data_type( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE' ); + wr3: validate_inspected_elements_type( SELF, [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SURFACE', + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SURFACE' ] ); + wr4: validate_locations_of_extreme_value_type( SELF, [] ); + wr5: validate_accuracy_types( SELF, [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE'] ); + END_ENTITY; + + ENTITY multiply_defined_vertices + SUBTYPE OF ( topology_related_to_multiply_defined_geometry ); + SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; + WHERE + wr1: ( ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'SHAPE_DATA_QUALITY_UPPER_VALUE_LIMIT' ) + IN TYPEOF( SELF\shape_data_quality_criterion.assessment_specification\ + shape_data_quality_assessment_by_numerical_test.threshold ) ) AND ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE' IN value_limit_type( SELF\ + shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold ) ) ); + wr2: validate_measured_data_type( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE' ); + wr3: validate_inspected_elements_type( SELF, [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'VERTEX_POINT' , 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.VERTEX_POINT'] ); + wr4: validate_locations_of_extreme_value_type( SELF, [] ); + wr5: validate_accuracy_types( SELF, [] ); + END_ENTITY; + + ENTITY name_assignment + ABSTRACT SUPERTYPE; + assigned_name : label; + DERIVE + role : object_role := get_role( SELF ); + WHERE + wr1: ( SIZEOF( USEDIN( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 narrow_surface_patch + SUBTYPE OF ( geometry_with_local_near_degeneracy ); + SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_logical_test; + width_tolerance : length_measure; + WHERE + wr1: validate_measured_data_type( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.BOOLEAN_VALUE' ); + wr2: validate_inspected_elements_type( SELF, [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'B_SPLINE_SURFACE' ] ); + wr3: validate_locations_of_extreme_value_type( SELF, [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'B_SPLINE_SURFACE_PATCH'] ); + wr4: validate_accuracy_types( SELF, [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE'] ); + END_ENTITY; + + ENTITY near_point_relationship + SUBTYPE OF ( representation_item_relationship ); + SELF\representation_item_relationship.relating_representation_item : curve_or_surface_constraint_element; + SELF\representation_item_relationship.related_representation_item : point; + END_ENTITY; + + ENTITY nearly_degenerate_geometry + ABSTRACT SUPERTYPE OF ( + ONEOF ( + small_area_surface, + short_length_curve, + entirely_narrow_surface ) ) + SUBTYPE OF ( inapt_geometry ); + END_ENTITY; + + ENTITY nearly_degenerate_surface_boundary + SUBTYPE OF ( geometry_with_local_near_degeneracy ); + SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; + WHERE + wr1: ( ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'SHAPE_DATA_QUALITY_VALUE_RANGE' ) IN + TYPEOF( SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test. + threshold ) ) AND ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE' IN + value_limit_type( SELF\shape_data_quality_criterion.assessment_specification\ + shape_data_quality_assessment_by_numerical_test.threshold ) ) ); + wr2: validate_measured_data_type( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE' ); + wr3: validate_inspected_elements_type( SELF, [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'B_SPLINE_OR_RECTANGULAR_COMPOSITE_SURFACE_SELECT' ] ); + wr4: validate_locations_of_extreme_value_type( SELF, [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'BOUNDARY_CURVE_OF_B_SPLINE_OR_RECTANGULAR_COMPOSITE_SURFACE'] ); + wr5: validate_accuracy_types( SELF, [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE'] ); + END_ENTITY; + + ENTITY nearly_degenerate_surface_patch + SUBTYPE OF ( geometry_with_local_near_degeneracy ); + SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; + WHERE + wr1: ( ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'SHAPE_DATA_QUALITY_VALUE_RANGE' ) IN + TYPEOF( SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test. + threshold ) ) AND ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE' IN + value_limit_type( SELF\shape_data_quality_criterion.assessment_specification\ + shape_data_quality_assessment_by_numerical_test.threshold ) ) ); + wr2: validate_measured_data_type( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE' ); + wr3: validate_inspected_elements_type( SELF, [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'B_SPLINE_SURFACE' ] ); + wr4: validate_locations_of_extreme_value_type( SELF, [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'B_SPLINE_SURFACE_PATCH'] ); + wr5: validate_accuracy_types( SELF, [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE'] ); + END_ENTITY; + + ENTITY network_node_definition + SUBTYPE OF ( product_definition ); + END_ENTITY; + + ENTITY neutral_sketch_representation + SUBTYPE OF ( shape_representation ); + neutral_sketch_semantics : curves_or_area; + SELF\representation.items : SET [1 : ?] OF sketch_element_select; + WHERE + wr1: ( SIZEOF( QUERY ( q <* items | ( NOT ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'GEOMETRIC_REPRESENTATION_ITEM' IN TYPEOF( q ) ) AND ( q\geometric_representation_item.dim = 3 ) ) ) ) ) = 0 ); + END_ENTITY; + + ENTITY next_assembly_usage_occurrence + SUBTYPE OF ( assembly_component_usage ); + UNIQUE + ur1 : SELF\assembly_component_usage.reference_designator, SELF\product_definition_relationship.relating_product_definition; + END_ENTITY; + + ENTITY next_assembly_usage_occurrence_relationship + SUBTYPE OF ( next_assembly_usage_occurrence, product_definition_occurrence_relationship ); + DERIVE + SELF\product_definition_occurrence_relationship.occurrence_usage : next_assembly_usage_occurrence_relationship := SELF; + END_ENTITY; + + ENTITY ngon_closed_profile + SUBTYPE OF ( shape_aspect ); + WHERE + wr1: ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.FEATURE_COMPONENT_DEFINITION' IN TYPEOF( SELF. + of_shape.definition ) ); + wr2: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( pdr <* USEDIN( pd, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) + | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN + TYPEOF( pdr.used_representation ) ) ) ) = 1 ) ) ) ) = 0 ); + wr3: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) + | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN + TYPEOF( pdr.used_representation ) ) ) | ( NOT ( ( SIZEOF( impl_rep.used_representation.items ) >= 3 ) AND ( + SIZEOF( impl_rep.used_representation.items ) <= 4 ) ) ) ) ) = 0 ) ) ) ) = 0 ); + wr4: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION.DEFINITION' ) | ( SIZEOF( QUERY ( pdr <* USEDIN( pd, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) + | ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN + TYPEOF( pdr.used_representation ) ) AND ( SIZEOF( QUERY ( srwp_i <* pdr.used_representation.items | ( ( srwp_i.name + = 'orientation' ) OR ( srwp_i.name = 'number of sides' ) OR ( srwp_i.name = 'circumscribed diameter' ) OR ( srwp_i. + name = 'corner radius' ) OR ( srwp_i.name = 'diameter across flats' ) ) ) ) = SIZEOF( pdr.used_representation.items ) ) ) ) ) + = 1 ) ) ) = 1 ); + wr5: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) + | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN + TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PLACEMENT' IN TYPEOF( it ) ) AND ( it.name = + 'orientation' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ); + wr6: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) + | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN + TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM' IN TYPEOF( it ) ) + AND ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.COUNT_MEASURE' IN TYPEOF( it\ + measure_with_unit.value_component ) ) AND ( it.name = 'number of sides' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ); + wr7: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) + | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN + TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( + SIZEOF( [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( it ) ) = + 2 ) AND ( it.name IN [ 'circumscribed diameter', 'diameter across flats'] ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ); + wr8: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) + | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN + TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( + SIZEOF( [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( it ) ) = + 2 ) AND ( it.name = 'corner radius' ) ) ) ) <= 1 ) ) ) ) = 0 ) ) ) ) = 0 ); + END_ENTITY; + + ENTITY non_agreed_accuracy_parameter_usage + SUBTYPE OF ( externally_conditioned_data_quality_criterion ); + WHERE + wr1: validate_ecdq_inspected_elements_type( SELF, [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'GLOBAL_UNCERTAINTY_ASSIGNED_CONTEXT' ] ); + END_ENTITY; + + ENTITY non_agreed_scale_usage + SUBTYPE OF ( externally_conditioned_data_quality_criterion ); + WHERE + wr1: validate_ecdq_inspected_elements_type( SELF, [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'CARTESIAN_TRANSFORMATION_OPERATOR_3D' ] ); + END_ENTITY; + + ENTITY non_agreed_unit_usage + SUBTYPE OF ( externally_conditioned_data_quality_criterion ); + WHERE + wr1: validate_ecdq_inspected_elements_type( SELF, [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'GLOBAL_UNIT_ASSIGNED_CONTEXT' ] ); + END_ENTITY; + + ENTITY non_conductive_base_blind_via + SUBTYPE OF ( blind_via ); + END_ENTITY; + + ENTITY non_conductive_cross_section_template + SUBTYPE OF ( part_template_definition ); + END_ENTITY; + + ENTITY non_manifold_at_edge + SUBTYPE OF ( inapt_topology ); + SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_logical_test; + WHERE + wr1: validate_measured_data_type( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.BOOLEAN_VALUE' ); + wr2: validate_inspected_elements_type( SELF, [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'CONNECTED_FACE_SET' ] ); + wr3: validate_locations_of_extreme_value_type( SELF, [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'EDGE_CURVE' ] ); + wr4: validate_accuracy_types( SELF, [] ); + END_ENTITY; + + ENTITY non_manifold_at_vertex + SUBTYPE OF ( inapt_topology ); + SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_logical_test; + WHERE + wr1: validate_measured_data_type( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.BOOLEAN_VALUE' ); + wr2: validate_inspected_elements_type( SELF, [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'CONNECTED_FACE_SET' ] ); + wr3: validate_locations_of_extreme_value_type( SELF, [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'VERTEX_POINT' ] ); + wr4: validate_accuracy_types( SELF, [] ); + END_ENTITY; + + ENTITY non_manifold_surface_shape_representation + SUBTYPE OF ( shape_representation ); + WHERE + wr1 : ( SIZEOF( QUERY ( it <* SELF.items | ( NOT ( SIZEOF( [ + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.FACE_BASED_SURFACE_MODEL' , + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MAPPED_ITEM' , + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.AXIS2_PLACEMENT_3D' ] * TYPEOF( it ) ) = 1 ) ) ) ) + = 0 ); + wr2 : ( SIZEOF( QUERY ( it <* SELF.items | ( SIZEOF( [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'FACE_BASED_SURFACE_MODEL' , 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MAPPED_ITEM'] + * TYPEOF( it ) ) = 1 ) ) ) > 0 ); + wr3 : ( SIZEOF( QUERY ( mi <* QUERY ( it <* SELF.items | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MAPPED_ITEM' IN TYPEOF( it ) ) ) | ( NOT ( + ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.FACE_BASED_SURFACE_MODEL' IN TYPEOF( mr_it ) ) ) ) + > 0 ) ) ) ) ) = 0 ); + wr4 : ( SIZEOF( QUERY ( fbsm <* QUERY ( it <* SELF.items | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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( [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.FACE_SURFACE', + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.ORIENTED_FACE' ] * TYPEOF( fa ) ) = 1 ) ) ) ) + = 0 ) ) ) ) = 0 ) ) ) ) = 0 ); + wr5 : ( SIZEOF( QUERY ( fbsm <* QUERY ( it <* SELF.items | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.FACE_SURFACE' + IN TYPEOF( fa ) ) ) | ( NOT ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.ORIENTED_FACE' + IN TYPEOF( fa ) ) ) | ( NOT ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.ADVANCED_FACE' IN + TYPEOF( fa ) ) OR ( SIZEOF( QUERY ( bnds <* fa.bounds | ( NOT ( SIZEOF( [ + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.EDGE_LOOP' , + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.VERTEX_LOOP' ] * TYPEOF( bnds.bound ) ) = 1 ) ) ) ) + = 0 ) ) ) ) ) = 0 ) ) ) ) = 0 ) ) ) ) = 0 ); + wr8 : ( SIZEOF( QUERY ( fbsm <* QUERY ( it <* SELF.items | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.ADVANCED_FACE' IN + TYPEOF( fa ) ) OR ( SIZEOF( QUERY ( elp_fbnds <* QUERY ( bnds <* fa.bounds | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.EDGE_LOOP' IN TYPEOF( bnds.bound ) ) ) | ( + NOT ( SIZEOF( QUERY ( oe <* elp_fbnds\path.edge_list | ( NOT ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.EDGE_CURVE' IN TYPEOF( oe.edge_element ) ) ) ) ) + = 0 ) ) ) ) = 0 ) ) ) ) ) = 0 ) ) ) ) = 0 ) ) ) ) = 0 ); + wr9 : ( SIZEOF( QUERY ( fbsm <* QUERY ( it <* SELF.items | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.ADVANCED_FACE' IN + TYPEOF( fa ) ) OR ( SIZEOF( QUERY ( elp_fbnds <* QUERY ( bnds <* fa.bounds | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.EDGE_LOOP' IN TYPEOF( bnds.bound ) ) ) | ( + NOT ( SIZEOF( QUERY ( oe_cv <* QUERY ( oe <* elp_fbnds\path.edge_list | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.EDGE_CURVE' IN TYPEOF( oe.edge_element ) ) ) + | ( NOT ( SIZEOF( [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.B_SPLINE_CURVE', + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CONIC' , + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CURVE_REPLICA' , + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LINE' , + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.OFFSET_CURVE_3D' , + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PCURVE' , + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.POLYLINE' , + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.ADVANCED_FACE' IN + TYPEOF( fa ) ) OR ( SIZEOF( QUERY ( elp_fbnds <* QUERY ( bnds <* fa.bounds | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.ADVANCED_FACE' IN + TYPEOF( fa ) ) OR ( SIZEOF( QUERY ( elp_fbnds <* QUERY ( bnds <* fa.bounds | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.EDGE_LOOP' IN TYPEOF( bnds.bound ) ) ) | ( + NOT ( SIZEOF( QUERY ( oe <* elp_fbnds\path.edge_list | ( NOT ( ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.VERTEX_POINT' IN TYPEOF( oe.edge_element. + edge_start ) ) AND ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.VERTEX_POINT' IN TYPEOF( + oe.edge_element.edge_end ) ) ) ) ) ) = 0 ) ) ) ) = 0 ) ) ) ) ) = 0 ) ) ) ) = 0 ) ) ) ) = 0 ); + wr12: ( SIZEOF( QUERY ( fbsm <* QUERY ( it <* SELF.items | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.ADVANCED_FACE' IN + TYPEOF( fa ) ) OR ( SIZEOF( QUERY ( elp_fbnds <* QUERY ( bnds <* fa.bounds | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.EDGE_LOOP' IN TYPEOF( bnds.bound ) ) ) | ( + NOT ( SIZEOF( QUERY ( oe <* elp_fbnds\path.edge_list | ( NOT ( ( SIZEOF( [ + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CARTESIAN_POINT' , + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.DEGENERATE_PCURVE' , + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.POINT_ON_CURVE' , + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.POINT_ON_SURFACE' ] * TYPEOF( oe.edge_element + .edge_start\vertex_point.vertex_geometry ) ) = 1 ) AND ( SIZEOF( [ + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CARTESIAN_POINT' , + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.DEGENERATE_PCURVE' , + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.POINT_ON_CURVE' , + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.ADVANCED_FACE' IN + TYPEOF( fa ) ) OR ( SIZEOF( QUERY ( vlp_fbnds <* QUERY ( bnds <* fa.bounds | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.VERTEX_LOOP' IN TYPEOF( bnds.bound ) ) ) | + ( NOT ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.VERTEX_POINT' IN TYPEOF( vlp_fbnds\ + vertex_loop.loop_vertex ) ) ) ) ) = 0 ) ) ) ) ) = 0 ) ) ) ) = 0 ) ) ) ) = 0 ); + wr14: ( SIZEOF( QUERY ( fbsm <* QUERY ( it <* SELF.items | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.ADVANCED_FACE' IN + TYPEOF( fa ) ) OR ( SIZEOF( QUERY ( vlp_fbnds <* QUERY ( bnds <* fa.bounds | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.VERTEX_LOOP' IN TYPEOF( bnds.bound ) ) ) | + ( NOT ( SIZEOF( [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CARTESIAN_POINT', + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.DEGENERATE_PCURVE' , + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.POINT_ON_CURVE' , + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.POINT_ON_SURFACE' ] * TYPEOF( vlp_fbnds\ + vertex_loop.loop_vertex\vertex_point.vertex_geometry ) ) = 1 ) ) ) ) = 0 ) ) ) ) ) = 0 ) ) ) ) = 0 ) ) ) ) = 0 ); + END_ENTITY; + + ENTITY non_referenced_coordinate_system + SUBTYPE OF ( externally_conditioned_data_quality_criterion ); + WHERE + wr1: validate_ecdq_inspected_elements_type( SELF, [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'AXIS2_PLACEMENT_3D' ] ); + END_ENTITY; + + ENTITY non_smooth_geometry_transition_across_edge + ABSTRACT SUPERTYPE OF ( + ONEOF ( + g1_discontinuity_between_adjacent_faces, + g2_discontinuity_between_adjacent_faces ) ) + SUBTYPE OF ( inapt_topology_and_geometry_relationship ); + END_ENTITY; + + ENTITY non_uniform_zone_definition + SUBTYPE OF ( tolerance_zone_definition ); + END_ENTITY; + + ENTITY not_expression + SUBTYPE OF ( unary_boolean_expression ); + SELF\unary_generic_expression.operand : boolean_expression; + END_ENTITY; + + ENTITY null_representation_item + SUBTYPE OF ( representation_item ); + END_ENTITY; + + ENTITY numeric_defined_function + ABSTRACT SUPERTYPE OF ( + ONEOF ( + integer_defined_function, + real_defined_function ) ) + SUBTYPE OF ( numeric_expression, defined_function ); + END_ENTITY; + + ENTITY numeric_expression + ABSTRACT SUPERTYPE OF ( + ONEOF ( + simple_numeric_expression, + unary_numeric_expression, + binary_numeric_expression, + multiple_arity_numeric_expression, + length_function, + value_function, + numeric_defined_function ) ) + SUBTYPE OF ( expression ); + DERIVE + is_int : BOOLEAN := is_int_expr( SELF ); + sql_mappable : BOOLEAN := is_sql_mappable( SELF ); + END_ENTITY; + + ENTITY numeric_variable + SUPERTYPE OF ( + ONEOF ( + int_numeric_variable, + real_numeric_variable ) ) + SUBTYPE OF ( simple_numeric_expression, variable ); + WHERE + wr1: ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.INT_NUMERIC_VARIABLE' IN TYPEOF( SELF ) ) OR + ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.REAL_NUMERIC_VARIABLE' IN TYPEOF( SELF ) ) ); + END_ENTITY; + + ENTITY object_role; + name : label; + description : OPTIONAL text; + END_ENTITY; + + ENTITY odd_function + SUBTYPE OF ( unary_boolean_expression ); + SELF\unary_generic_expression.operand : numeric_expression; + WHERE + wr1: is_int_expr( operand ); + 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_closed_shell + SUBTYPE OF ( erroneous_topology ); + SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_logical_test; + WHERE + wr1: validate_measured_data_type( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.BOOLEAN_VALUE' ); + wr2: validate_inspected_elements_type( SELF, [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'CLOSED_SHELL' ] ); + wr3: validate_locations_of_extreme_value_type( SELF, [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'EDGE_CURVE' ] ); + wr4: validate_accuracy_types( SELF, [] ); + END_ENTITY; + + ENTITY open_edge_loop + SUBTYPE OF ( erroneous_topology ); + SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_logical_test; + WHERE + wr1: validate_measured_data_type( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.BOOLEAN_VALUE' ); + wr2: validate_inspected_elements_type( SELF, [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.EDGE_LOOP'] ); + wr3: validate_locations_of_extreme_value_type( SELF, [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'ORIENTED_EDGE' ] ); + wr4: validate_accuracy_types( SELF, [] ); + END_ENTITY; + + ENTITY open_path_profile + SUBTYPE OF ( shape_aspect ); + WHERE + wr1: ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.FEATURE_COMPONENT_DEFINITION' IN TYPEOF( SELF. + of_shape.definition ) ); + wr2: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( pdr <* USEDIN( pd, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) + | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN + TYPEOF( pdr.used_representation ) ) ) ) = 1 ) ) ) ) = 0 ); + wr3: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) + | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN + TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( impl_rep.used_representation.items ) = 1 ) ) ) ) = 0 ) ) ) ) + = 0 ); + wr4: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) + | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN + TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PLACEMENT' IN TYPEOF( it ) ) AND ( it.name = + 'orientation' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ); + wr5: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( pdr <* USEDIN( pd, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) + | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PATH_SHAPE_REPRESENTATION' IN TYPEOF( pdr. + used_representation ) ) ) ) = 1 ) ) ) ) = 0 ); + wr6: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( pdr <* USEDIN( pd, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) + | ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PLANAR_SHAPE_REPRESENTATION' IN TYPEOF( + pdr.used_representation ) ) AND ( pdr.used_representation.name = 'profile limit' ) ) ) ) <= 1 ) ) ) ) = 0 ); + END_ENTITY; + + ENTITY open_shell + SUBTYPE OF ( connected_face_set ); + END_ENTITY; + + ENTITY operational_requirement_relationship + SUBTYPE OF ( property_definition, product_definition_relationship ); + END_ENTITY; + + ENTITY or_expression + SUBTYPE OF ( multiple_arity_boolean_expression ); + 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 ) AND ( day_component <= 365 ) ) OR ( + leap_year( SELF.year_component ) AND ( 1 <= day_component ) AND ( 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, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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_start : vertex := boolean_choose( SELF.orientation, SELF.edge_element.edge_start, SELF.edge_element. + edge_end ); + SELF\edge.edge_end : vertex := boolean_choose( SELF.orientation, SELF.edge_element.edge_end, SELF.edge_element. + edge_start ); + WHERE + wr1: ( NOT ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.ORIENTED_FACE' IN TYPEOF( SELF. + face_element ) ) ); + END_ENTITY; + + ENTITY oriented_joint + SUBTYPE OF ( oriented_edge ); + SELF\oriented_edge.edge_element : kinematic_joint; + 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 ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 outer_round + SUBTYPE OF ( feature_definition ); + WHERE + wr1: ( ( NOT ( SELF\characterized_object.description = 'outer diameter' ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( + SIZEOF( QUERY ( pdr <* USEDIN( pd, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN + TYPEOF( pdr.used_representation ) ) AND ( SIZEOF( pdr.used_representation.items ) = 3 ) ) ) ) = 1 ) ) ) = 1 ) ); + wr2: ( ( NOT ( SELF\characterized_object.description = 'outer diameter to shoulder' ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( + SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( + SIZEOF( QUERY ( pdr <* USEDIN( pd, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN + TYPEOF( pdr.used_representation ) ) AND ( 2 <= SIZEOF( pdr.used_representation.items ) ) AND ( SIZEOF( pdr. + used_representation.items ) <= 3 ) ) ) ) = 1 ) ) ) = 1 ) ); + wr3: ( SELF\characterized_object.description IN [ 'outer diameter', 'outer diameter to shoulder'] ); + wr4: ( ( NOT ( SELF\characterized_object.description = 'outer diameter' ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( + SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) + | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN + TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( + SIZEOF( [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( it ) ) = + 2 ) AND ( it.name = 'length' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ) ); + wr5: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) + | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN + TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( + SIZEOF( [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( it ) ) = + 2 ) AND ( it.name = 'diameter' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ); + wr6: ( ( NOT ( SELF\characterized_object.description = 'outer diameter to shoulder' ) ) OR ( SIZEOF( QUERY ( pds <* + QUERY ( pd <* USEDIN( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION.DEFINITION' ) | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) | ( NOT ( SIZEOF( QUERY ( sa_occ <* USEDIN( pds, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) | ( ( sa_occ. + description = 'v-shape boundary occurrence' ) AND ( SIZEOF( QUERY ( sdr <* QUERY ( sar <* USEDIN( sa_occ, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT' ) + | ( ( sar.description = 'profile usage' ) AND ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF( sar ) ) ) ) | ( ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.VEE_PROFILE' IN TYPEOF( sdr. + relating_shape_aspect ) ) AND ( sdr.relating_shape_aspect.description = 'v-shape' ) ) ) ) = 1 ) ) ) ) = 1 ) ) ) ) = + 0 ) ); + wr7: ( ( NOT ( SELF\characterized_object.description = 'outer diameter' ) ) OR ( SIZEOF( QUERY ( pds <* QUERY ( pd <* + USEDIN( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) + | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) + | ( NOT ( SIZEOF( QUERY ( sa_occ <* USEDIN( pds, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) | ( ( sa_occ. + description = 'reduced size occurrence' ) AND ( SIZEOF( QUERY ( sdr <* QUERY ( sar <* USEDIN( sa_occ, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT' ) + | ( ( sar.description = 'taper usage' ) AND ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF( sar ) ) ) ) | ( ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.TAPER' IN TYPEOF( sdr.relating_shape_aspect ) ) + AND ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.OUTER_ROUND' IN TYPEOF( sdr. + related_shape_aspect.of_shape.definition ) ) AND ( sdr.name = 'reduced size' ) ) ) ) = 1 ) ) ) ) <= 1 ) ) ) ) = 0 ) ); + wr8: ( ( NOT ( SELF\characterized_object.description = 'outer diameter to shoulder' ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( + SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( + NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) + | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN + TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( + SIZEOF( [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( it ) ) = + 2 ) AND ( it.name = 'length' ) ) ) ) <= 1 ) ) ) ) = 0 ) ) ) ) = 0 ) ); + wr9: ( ( NOT ( SELF\characterized_object.description = 'outer diameter to shoulder' ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( + SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( + NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) + | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN + TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( + SIZEOF( [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( it ) ) = + 2 ) AND ( it.name = 'feature length' ) ) ) ) <= 1 ) ) ) ) = 0 ) ) ) ) = 0 ) ); + END_ENTITY; + + ENTITY outside_profile + SUBTYPE OF ( feature_definition ); + WHERE + wr1 : ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION.DEFINITION' ) | ( SIZEOF( QUERY ( pdr <* USEDIN( pd, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) + | ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN + TYPEOF( pdr.used_representation ) ) AND ( SIZEOF( pdr.used_representation.items ) = 1 ) ) ) ) = 1 ) ) ) = 1 ); + wr2 : ( SIZEOF( QUERY ( pds <* QUERY ( pd <* USEDIN( SELF, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) + | ( NOT ( SIZEOF( QUERY ( sa_occ <* USEDIN( pds, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) | ( sa_occ. + description IN [ 'boundary occurrence', 'non-planar boundary occurrence', 'partial circular boundary occurrence', + 'closed circular boundary occurrence' , 'open rectangular boundary occurrence', + 'closed rectangular boundary occurrence' ] ) ) ) = 1 ) ) ) ) = 0 ); + wr3 : ( ( NOT ( SIZEOF( QUERY ( pds <* QUERY ( pd <* USEDIN( SELF, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) + | ( NOT ( SIZEOF( QUERY ( sa_occ <* USEDIN( pds, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) | ( sa_occ. + description = 'boundary occurrence' ) ) ) = 1 ) ) ) ) = 0 ) ) OR ( SIZEOF( QUERY ( pds <* QUERY ( pd <* USEDIN( + SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) + | ( NOT ( SIZEOF( QUERY ( sa_occ <* USEDIN( pds, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) | ( SIZEOF( + QUERY ( sdr <* QUERY ( sar <* USEDIN( sa_occ, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT' ) | ( ( sar.description = 'profile usage' ) AND ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF( sar ) ) ) ) + | ( ( SIZEOF( [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CIRCULAR_CLOSED_PROFILE', + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.NGON_CLOSED_PROFILE' , + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.RECTANGULAR_CLOSED_PROFILE' , + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CLOSED_PATH_PROFILE' , + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SQUARE_U_PROFILE' , + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PARTIAL_CIRCULAR_PROFILE' , + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.ROUNDED_U_PROFILE' , + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LINEAR_PROFILE' , + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.VEE_PROFILE' , + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.TEE_PROFILE' , + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.OPEN_PATH_PROFILE' ] * TYPEOF( sdr. + relating_shape_aspect ) ) = 1 ) AND ( sdr.relating_shape_aspect.description = 'outside boundary' ) ) ) ) = 1 ) ) ) + = 1 ) ) ) ) = 0 ) ); + wr4 : ( ( NOT ( SIZEOF( QUERY ( pds <* QUERY ( pd <* USEDIN( SELF, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) + | ( NOT ( SIZEOF( QUERY ( sa_occ <* USEDIN( pds, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) | ( sa_occ. + description IN [ 'complex boundary occurrence', 'partial circular boundary occurrence', + 'closed circular boundary occurrence' , 'open rectangular boundary occurrence', + 'closed rectangular boundary occurrence' ] ) ) ) = 1 ) ) ) ) = 0 ) ) OR ( SIZEOF( QUERY ( pds <* QUERY ( pd <* + USEDIN( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) + | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) + | ( NOT ( SIZEOF( QUERY ( sa_occ <* USEDIN( pds, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) | ( NOT ( SIZEOF( + QUERY ( sdr <* QUERY ( sar <* USEDIN( sa_occ, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT' ) | ( ( sar.description = 'profile floor usage' ) AND ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF( + sar ) ) ) ) | ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROFILE_FLOOR' IN TYPEOF( + sdr.relating_shape_aspect ) ) AND ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'OUTSIDE_PROFILE' IN TYPEOF( sdr.related_shape_aspect.of_shape.definition ) ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = + 0 ) ); + wr5 : ( ( NOT ( SIZEOF( QUERY ( pds <* QUERY ( pd <* USEDIN( SELF, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) + | ( NOT ( SIZEOF( QUERY ( sa_occ <* USEDIN( pds, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) | ( sa_occ. + description IN [ 'outside boundary', 'complex boundary occurrence', 'partial circular boundary occurrence', + 'closed circular boundary occurrence' , 'open rectangular boundary occurrence', + 'closed rectangular boundary occurrence' ] ) ) ) = 1 ) ) ) ) = 0 ) ) OR ( SIZEOF( QUERY ( pds <* QUERY ( pd <* + USEDIN( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) + | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) + | ( NOT ( SIZEOF( QUERY ( sa_occ <* USEDIN( pds, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) | ( SIZEOF( + QUERY ( sdr <* QUERY ( sar <* USEDIN( sa_occ, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT' ) | ( ( sar.description = 'path feature component usage' ) + AND ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF( + sar ) ) ) ) | ( ( SIZEOF( [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PATH_FEATURE_COMPONENT' ] * TYPEOF( sdr.relating_shape_aspect ) ) = 1 ) AND ( sdr.name = 'profile swept shape' ) + AND ( sdr.relating_shape_aspect.description = 'linear' ) ) ) ) = 1 ) ) ) = 1 ) ) ) ) = 0 ) ); + wr6 : ( ( NOT ( SIZEOF( QUERY ( pds <* QUERY ( pd <* USEDIN( SELF, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) + | ( NOT ( SIZEOF( QUERY ( sa_occ <* USEDIN( pds, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) | ( sa_occ. + description = 'complex boundary occurrence' ) ) ) = 1 ) ) ) ) = 0 ) ) OR ( SIZEOF( QUERY ( pds <* QUERY ( pd <* + USEDIN( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) + | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) + | ( NOT ( SIZEOF( QUERY ( sa_occ <* USEDIN( pds, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) | ( SIZEOF( + QUERY ( sdr <* QUERY ( sar <* USEDIN( sa_occ, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT' ) | ( ( sar.description = 'profile usage' ) AND ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF( sar ) ) ) ) + | ( SIZEOF( [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CIRCULAR_CLOSED_PROFILE', + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.NGON_CLOSED_PROFILE' , + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.RECTANGULAR_CLOSED_PROFILE' , + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CLOSED_PATH_PROFILE' , + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SQUARE_U_PROFILE' , + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PARTIAL_CIRCULAR_PROFILE' , + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.ROUNDED_U_PROFILE' , + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.VEE_PROFILE' , + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.TEE_PROFILE' , + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LINEAR_PROFILE' , + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.OPEN_PATH_PROFILE' ] * TYPEOF( sdr. + relating_shape_aspect ) ) = 1 ) ) ) = 1 ) ) ) = 1 ) ) ) ) = 0 ) ); + wr7 : ( ( NOT ( SIZEOF( QUERY ( pds <* QUERY ( pd <* USEDIN( SELF, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) + | ( NOT ( SIZEOF( QUERY ( sa_occ <* USEDIN( pds, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) | ( sa_occ. + description = 'partial circular boundary occurrence' ) ) ) = 1 ) ) ) ) = 0 ) ) OR ( SIZEOF( QUERY ( pds <* + QUERY ( pd <* USEDIN( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION.DEFINITION' ) | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) | ( NOT ( SIZEOF( QUERY ( sa_occ <* USEDIN( pds, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) | ( SIZEOF( + QUERY ( sdr <* QUERY ( sar <* USEDIN( sa_occ, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT' ) | ( ( sar.description = 'profile usage' ) AND ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF( sar ) ) ) ) + | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PARTIAL_CIRCULAR_PROFILE' IN TYPEOF( sdr. + relating_shape_aspect ) ) ) ) = 1 ) ) ) = 1 ) ) ) ) = 0 ) ); + wr8 : ( ( NOT ( SIZEOF( QUERY ( pds <* QUERY ( pd <* USEDIN( SELF, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) + | ( NOT ( SIZEOF( QUERY ( sa_occ <* USEDIN( pds, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) | ( sa_occ. + description = 'closed circular boundary occurrence' ) ) ) = 1 ) ) ) ) = 0 ) ) OR ( SIZEOF( QUERY ( pds <* + QUERY ( pd <* USEDIN( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION.DEFINITION' ) | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) | ( NOT ( SIZEOF( QUERY ( sa_occ <* USEDIN( pds, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) | ( SIZEOF( + QUERY ( sdr <* QUERY ( sar <* USEDIN( sa_occ, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT' ) | ( ( sar.description = 'profile usage' ) AND ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF( sar ) ) ) ) + | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CIRCULAR_CLOSED_PROFILE' IN TYPEOF( sdr. + relating_shape_aspect ) ) ) ) = 1 ) ) ) = 1 ) ) ) ) = 0 ) ); + wr9 : ( ( NOT ( SIZEOF( QUERY ( pds <* QUERY ( pd <* USEDIN( SELF, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) + | ( NOT ( SIZEOF( QUERY ( sa_occ <* USEDIN( pds, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) | ( sa_occ. + description = 'open rectangular boundary occurrence' ) ) ) = 1 ) ) ) ) = 0 ) ) OR ( SIZEOF( QUERY ( pds <* + QUERY ( pd <* USEDIN( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION.DEFINITION' ) | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) | ( NOT ( SIZEOF( QUERY ( sa_occ <* USEDIN( pds, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) | ( SIZEOF( + QUERY ( sdr <* QUERY ( sar <* USEDIN( sa_occ, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT' ) | ( ( sar.description = 'profile usage' ) AND ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF( sar ) ) ) ) + | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SQUARE_U_PROFILE' IN TYPEOF( sdr. + relating_shape_aspect ) ) ) ) = 1 ) ) ) = 1 ) ) ) ) = 0 ) ); + wr10: ( ( NOT ( SIZEOF( QUERY ( pds <* QUERY ( pd <* USEDIN( SELF, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) + | ( NOT ( SIZEOF( QUERY ( sa_occ <* USEDIN( pds, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) | ( sa_occ. + description = 'closed rectangular boundary occurrence' ) ) ) = 1 ) ) ) ) = 0 ) ) OR ( SIZEOF( QUERY ( pds <* + QUERY ( pd <* USEDIN( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION.DEFINITION' ) | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) | ( NOT ( SIZEOF( QUERY ( sa_occ <* USEDIN( pds, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) | ( SIZEOF( + QUERY ( sdr <* QUERY ( sar <* USEDIN( sa_occ, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT' ) | ( ( sar.description = 'profile usage' ) AND ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF( sar ) ) ) ) + | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.RECTANGULAR_CLOSED_PROFILE' IN TYPEOF( sdr + .relating_shape_aspect ) ) ) ) = 1 ) ) ) = 1 ) ) ) ) = 0 ) ); + wr11: ( ( SIZEOF( QUERY ( pds <* QUERY ( pd <* USEDIN( SELF, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) + | ( NOT ( SIZEOF( QUERY ( sa_occ <* USEDIN( pds, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) | ( sa_occ. + description IN [ 'boundary occurrence', 'complex boundary occurrence', 'partial circular boundary occurrence', + 'closed circular boundary occurrence' , 'open rectangular boundary occurrence', + 'closed rectangular boundary occurrence' ] ) ) ) = 1 ) ) ) ) = 0 ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( + SIZEOF( QUERY ( pdr <* USEDIN( pd, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.DIRECTION_SHAPE_REPRESENTATION' IN TYPEOF( + pdr.used_representation ) ) AND ( pdr.used_representation.name = 'removal direction' ) ) ) ) = 1 ) ) ) ) = 0 ) ); + wr12: ( SIZEOF( QUERY ( pdr <* get_property_definition_representations( SELF ) | ( ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PLANAR_SHAPE_REPRESENTATION' IN TYPEOF( pdr. + used_representation ) ) AND ( pdr.used_representation.name = 'maximum feature limit' ) ) ) ) >= 0 ); + END_ENTITY; + + ENTITY over_riding_styled_item + SUBTYPE OF ( styled_item ); + over_ridden_style : styled_item; + END_ENTITY; + + ENTITY over_used_vertex + SUBTYPE OF ( inapt_topology ); + SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; + WHERE + wr1: ( ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' ) + IN TYPEOF( SELF\shape_data_quality_criterion.assessment_specification\ + shape_data_quality_assessment_by_numerical_test.threshold ) ) AND ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.COUNT_MEASURE' IN value_limit_type( SELF\ + shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold ) ) ); + wr2: validate_measured_data_type( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.COUNT_MEASURE' ); + wr3: validate_inspected_elements_type( SELF, [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'VERTEX_POINT' ] ); + wr4: validate_locations_of_extreme_value_type( SELF, [] ); + wr5: validate_accuracy_types( SELF, [] ); + END_ENTITY; + + ENTITY overcomplex_geometry + ABSTRACT SUPERTYPE OF ( + ONEOF ( + excessively_high_degree_curve, + excessively_high_degree_surface, + surface_with_excessive_patches_in_one_direction, + curve_with_excessive_segments, + high_degree_linear_curve, + high_degree_planar_surface, + high_degree_conic, + high_degree_axi_symmetric_surface ) ) + SUBTYPE OF ( inapt_geometry ); + END_ENTITY; + + ENTITY overcomplex_topology_and_geometry_relationship + ABSTRACT SUPERTYPE OF ( + ONEOF ( + unused_patches, + edge_with_excessive_segments, + face_surface_with_excessive_patches_in_one_direction ) ) + SUBTYPE OF ( inapt_topology_and_geometry_relationship ); + END_ENTITY; + + ENTITY overlapping_geometry + ABSTRACT SUPERTYPE OF ( + ONEOF ( + partly_overlapping_curves, + partly_overlapping_surfaces ) ) + SUBTYPE OF ( inapt_geometry ); + END_ENTITY; + + ENTITY package + SUBTYPE OF ( physical_unit ); + END_ENTITY; + + ENTITY package_body + SUBTYPE OF ( shape_aspect ); + END_ENTITY; + + ENTITY package_body_bottom_surface + SUBTYPE OF ( package_body_surface ); + END_ENTITY; + + ENTITY package_body_edge_segment_surface + SUBTYPE OF ( shape_aspect, shape_aspect_relationship ); + SELF\shape_aspect_relationship.relating_shape_aspect : edge_segment_vertex; + SELF\shape_aspect_relationship.related_shape_aspect : edge_segment_vertex; + WHERE + wr1: ( SELF\shape_aspect_relationship.relating_shape_aspect :<>: SELF\shape_aspect_relationship.related_shape_aspect ); + END_ENTITY; + + ENTITY package_body_edge_surface + SUBTYPE OF ( package_body_surface ); + END_ENTITY; + + ENTITY package_body_surface + ABSTRACT SUPERTYPE OF ( + ONEOF ( + package_body_top_surface, + package_body_edge_surface, + package_body_bottom_surface ) ) + SUBTYPE OF ( shape_aspect ); + END_ENTITY; + + ENTITY package_body_top_surface + SUBTYPE OF ( package_body_surface ); + END_ENTITY; + + ENTITY package_footprint_relationship_definition + SUBTYPE OF ( part_template_definition ); + END_ENTITY; + + ENTITY package_product_concept_feature + SUBTYPE OF ( product_concept_feature ); + WHERE + wr1: ( NOT ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'CONDITIONAL_CONCEPT_FEATURE' ) IN + TYPEOF( SELF ) ) ); + wr2: ( SIZEOF( QUERY ( cfr <* USEDIN( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'CONCEPT_FEATURE_RELATIONSHIP.' + 'RELATING_PRODUCT_CONCEPT_FEATURE' ) | ( ( ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'CONCEPT_FEATURE_RELATIONSHIP_WITH_CONDITION' ) IN TYPEOF( cfr ) ) AND ( SIZEOF( QUERY ( ipcf <* USEDIN( cfr, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'CONDITIONAL_CONCEPT_FEATURE.' + + 'CONDITION' ) | ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'INCLUSION_PRODUCT_CONCEPT_FEATURE' ) IN TYPEOF( ipcf ) ) ) ) = 1 ) ) ) ) > 0 ); + END_ENTITY; + + ENTITY package_terminal + SUPERTYPE OF ( + guided_wave_terminal + ANDOR + primary_reference_terminal ) + SUBTYPE OF ( placed_feature ); + END_ENTITY; + + ENTITY package_terminal_template_definition + SUBTYPE OF ( part_feature_template_definition ); + END_ENTITY; + + ENTITY packaged_component + SUBTYPE OF ( physical_component ); + END_ENTITY; + + ENTITY packaged_connector + SUBTYPE OF ( packaged_part ); + END_ENTITY; + + ENTITY packaged_connector_component + SUBTYPE OF ( interface_component, packaged_component ); + END_ENTITY; + + ENTITY packaged_connector_terminal_relationship + SUBTYPE OF ( shape_aspect, shape_aspect_relationship ); + END_ENTITY; + + ENTITY packaged_part + SUPERTYPE OF ( + ONEOF ( + minimally_defined_connector, + packaged_connector ) ) + SUBTYPE OF ( physical_unit ); + END_ENTITY; + + ENTITY packaged_part_terminal + SUBTYPE OF ( shape_aspect ); + END_ENTITY; + + ENTITY padstack_definition + SUPERTYPE OF ( + passage_padstack_definition ) + SUBTYPE OF ( multi_stratum_structured_template ); + END_ENTITY; + + ENTITY padstack_occurrence + SUBTYPE OF ( structured_layout_component ); + END_ENTITY; + + ENTITY padstack_occurrence_product_definition_relationship + SUBTYPE OF ( property_definition, next_assembly_usage_occurrence_relationship ); + WHERE + wr1: ( SELF\product_definition_relationship.related_product_definition :<>: SELF\product_definition_relationship. + relating_product_definition ); + END_ENTITY; + + ENTITY pair_representation_relationship + SUBTYPE OF ( geometric_representation_item, representation_relationship_with_transformation ); + SELF\representation_relationship.rep_1 : kinematic_link_representation; + SELF\representation_relationship.rep_2 : kinematic_link_representation; + SELF\representation_relationship_with_transformation.transformation_operator : kinematic_pair; + WHERE + wr1: ( transformation_operator\item_defined_transformation.transform_item_1 IN rep_1.items ); + wr2: ( transformation_operator\item_defined_transformation.transform_item_2 IN rep_2.items ); + wr3: ( rep_1\kinematic_link_representation.represented_link = transformation_operator\kinematic_pair.joint.edge_start ); + wr4: ( rep_2\kinematic_link_representation.represented_link = transformation_operator\kinematic_pair.joint.edge_end ); + END_ENTITY; + + ENTITY pair_value + ABSTRACT SUPERTYPE OF ( + ONEOF ( + sliding_surface_pair_value, + rolling_surface_pair_value, + revolute_pair_value, + prismatic_pair_value, + screw_pair_value, + cylindrical_pair_value, + spherical_pair_value, + sliding_curve_pair_value, + rolling_curve_pair_value, + gear_pair_value, + rack_and_pinion_pair_value, + universal_pair_value, + planar_pair_value, + unconstrained_pair_value, + point_on_surface_pair_value, + point_on_planar_curve_pair_value, + low_order_kinematic_pair_value ) ) + SUBTYPE OF ( geometric_representation_item ); + applies_to_pair : kinematic_pair; + END_ENTITY; + + ENTITY parabola + SUBTYPE OF ( conic ); + focal_dist : length_measure; + WHERE + wr1: ( focal_dist <> 0 ); + END_ENTITY; + + ENTITY parallel_assembly_constraint + SUBTYPE OF ( binary_assembly_constraint, parallel_geometric_constraint ); + END_ENTITY; + + ENTITY parallel_assembly_constraint_with_dimension + SUBTYPE OF ( parallel_assembly_constraint, pgc_with_dimension ); + END_ENTITY; + + ENTITY parallel_composed_function + SUBTYPE OF ( maths_function, multiple_arity_generic_expression ); + source_of_domain : maths_space_or_function; + prep_functions : LIST [1 : ?] OF maths_function; + final_function : maths_function_select; + DERIVE + SELF\multiple_arity_generic_expression.operands : LIST [2 : ?] OF generic_expression := convert_to_operands_prcmfn( + source_of_domain, prep_functions, final_function ); + WHERE + wr1: no_cyclic_domain_reference( source_of_domain, [SELF] ); + wr2: expression_is_constant( domain_from( source_of_domain ) ); + wr3: parallel_composed_function_domain_check( domain_from( source_of_domain ), prep_functions ); + wr4: parallel_composed_function_composability_check( prep_functions, final_function ); + END_ENTITY; + + ENTITY parallel_geometric_constraint + SUBTYPE OF ( explicit_geometric_constraint ); + SELF\explicit_constraint.constrained_elements : SET [1 : ?] OF linear_geometry_constraint_element; + SELF\explicit_constraint.reference_elements : SET [0 : 1] OF linear_geometry_constraint_element; + 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 parallel_offset_geometric_constraint + SUBTYPE OF ( explicit_geometric_constraint ); + SELF\explicit_constraint.constrained_elements : SET [1 : ?] OF curve_or_surface_constraint_element; + SELF\explicit_constraint.reference_elements : SET [0 : 1] OF curve_or_surface_constraint_element; + offset_type : parallel_offset_type; + WHERE + wr1: ( NOT ( ( ( offset_type = curve_2d_offset ) OR ( offset_type = curve_3d_offset ) ) AND ( SIZEOF( QUERY ( q <* ( SELF\ + explicit_constraint.constrained_elements + SELF\explicit_constraint.reference_elements ) | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SURFACE' IN TYPEOF( q ) ) ) ) > 0 ) ) ); + wr2: ( NOT ( ( offset_type = surface_offset ) AND ( SIZEOF( QUERY ( q <* ( SELF\explicit_constraint.constrained_elements + + SELF\explicit_constraint.reference_elements ) | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CURVE' IN TYPEOF( q ) ) ) ) > 0 ) ) ); + END_ENTITY; + + ENTITY parallelism_tolerance + SUBTYPE OF ( geometric_tolerance_with_datum_reference ); + END_ENTITY; + + ENTITY parameter_assignment + SUBTYPE OF ( property_definition_representation, representation ); + SELF\property_definition_representation.definition : parameter_assignment_select; + END_ENTITY; + + ENTITY parameter_assignment_override + SUBTYPE OF ( representation, representation_relationship ); + SELF\representation_relationship.rep_1 : parameter_assignment; + SELF\representation_relationship.rep_2 : parameter_assignment; + 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 parametric_representation_context + SUBTYPE OF ( representation_context ); + END_ENTITY; + + ENTITY parametric_template + ABSTRACT SUPERTYPE OF ( + ONEOF ( + fill_area_template, + teardrop_template, + trace_template ) ) + SUBTYPE OF ( part_template_definition ); + END_ENTITY; + + ENTITY part_connected_terminals_definition + SUBTYPE OF ( shape_aspect ); + UNIQUE + ur1 : SELF\shape_aspect.name; + END_ENTITY; + + ENTITY part_connected_terminals_definition_domain + SUBTYPE OF ( shape_aspect ); + END_ENTITY; + + ENTITY part_connected_terminals_element + SUBTYPE OF ( shape_aspect, shape_aspect_relationship ); + END_ENTITY; + + ENTITY part_connected_terminals_layout_topology_requirement_assignment + SUBTYPE OF ( requirement_assignment ); + END_ENTITY; + + ENTITY part_connected_terminals_structure_definition + SUBTYPE OF ( part_connected_terminals_definition ); + END_ENTITY; + + ENTITY part_feature_template_definition + SUBTYPE OF ( shape_feature_definition, group ); + WHERE + wr1: ( SELF\group.name = SELF\characterized_object.name ); + wr2: ( SELF\group.description = SELF\characterized_object.description ); + END_ENTITY; + + ENTITY part_interface_access_feature + SUBTYPE OF ( shape_aspect ); + END_ENTITY; + + ENTITY part_laminate_table + SUPERTYPE OF ( + ONEOF ( + composite_assembly_table, + ply_laminate_table ) ) + SUBTYPE OF ( laminate_table ); + END_ENTITY; + + ENTITY part_mating_feature + SUBTYPE OF ( shape_aspect ); + END_ENTITY; + + ENTITY part_mounting_feature + SUBTYPE OF ( shape_aspect ); + END_ENTITY; + + ENTITY part_string_template + SUBTYPE OF ( part_template_definition ); + END_ENTITY; + + ENTITY part_template_definition + SUPERTYPE OF ( + ONEOF ( + printed_part_template, + non_conductive_cross_section_template ) + ANDOR + ONEOF ( + geometric_template, + parametric_template, + part_string_template, + part_text_template, + single_stratum_template, + stratum_stack_model ) + ANDOR + ONEOF ( + ONEOF ( + printed_part_template, + special_symbol_template ) + ANDOR + geometric_template, + non_conductive_cross_section_template, + part_string_template, + parametric_template, + part_text_template, + stratum_stack_model, + stratum_sub_stack ) ) + SUBTYPE OF ( product_definition, product_definition_shape ); + DERIVE + SELF\property_definition.definition : part_template_definition := SELF; + WHERE + wr1: ( SIZEOF( USEDIN( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'NAME_ATTRIBUTE.' + + 'NAMED_ITEM' ) ) = 0 ); + wr2: ( NOT EXISTS( SELF\property_definition.description ) ); + END_ENTITY; + + ENTITY part_template_keepout_shape_allocation_to_stratum_stack + SUBTYPE OF ( characterized_object, property_definition ); + DERIVE + SELF\property_definition.definition : part_template_keepout_shape_allocation_to_stratum_stack := SELF; + END_ENTITY; + + ENTITY part_terminal_external_reference + SUBTYPE OF ( shape_aspect ); + END_ENTITY; + + ENTITY part_text_template + SUBTYPE OF ( part_template_definition ); + END_ENTITY; + + ENTITY part_tooling_feature + SUPERTYPE OF ( + ONEOF ( + fiducial_part_feature, + tool_registration_mark ) + ANDOR + test_point_part_feature ) + SUBTYPE OF ( shape_aspect ); + WHERE + wr1: ( SELF\shape_aspect.product_definitional = TRUE ); + END_ENTITY; + + ENTITY partial_circular_profile + SUBTYPE OF ( shape_aspect ); + WHERE + wr1: ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.FEATURE_COMPONENT_DEFINITION' IN TYPEOF( SELF. + of_shape.definition ) ); + wr2: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( pdr <* USEDIN( pd, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) + | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN + TYPEOF( pdr.used_representation ) ) ) ) = 1 ) ) ) ) = 0 ); + wr3: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) + | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN + TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( impl_rep.used_representation.items ) >= 3 ) ) ) ) = 0 ) ) ) ) + = 0 ); + wr4: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) + | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN + TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PLACEMENT' IN TYPEOF( it ) ) AND ( it.name = + 'orientation' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ); + wr5: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) + | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN + TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( + SIZEOF( [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( it ) ) = + 2 ) AND ( it.name = 'radius' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ); + wr6: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) + | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN + TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( + SIZEOF( [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PLANE_ANGLE_MEASURE_WITH_UNIT' ] * TYPEOF( it ) ) + = 2 ) AND ( it.name = 'sweep angle' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ); + wr7: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( pdr <* USEDIN( pd, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) + | ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PLANAR_SHAPE_REPRESENTATION' IN TYPEOF( + pdr.used_representation ) ) AND ( pdr.used_representation.name = 'profile limit' ) ) ) ) <= 1 ) ) ) ) = 0 ); + END_ENTITY; + + ENTITY partial_derivative_expression + SUBTYPE OF ( unary_generic_expression ); + d_variables : LIST [1 : ?] OF maths_variable; + extension : extension_options; + DERIVE + derivand : generic_expression := SELF\unary_generic_expression.operand; + WHERE + wr1: has_values_space( derivand ); + wr2: space_is_continuum( values_space_of( derivand ) ); + wr3: ( SIZEOF( QUERY ( vbl <* d_variables | ( ( NOT subspace_of( values_space_of( vbl ), the_reals ) ) AND ( NOT + subspace_of( values_space_of( vbl ), the_complex_numbers ) ) ) ) ) = 0 ); + END_ENTITY; + + ENTITY partial_derivative_function + SUBTYPE OF ( maths_function, unary_generic_expression ); + SELF\unary_generic_expression.operand : maths_function; + d_variables : LIST [1 : ?] OF input_selector; + extension : extension_options; + DERIVE + derivand : maths_function := SELF\unary_generic_expression.operand; + WHERE + wr1: space_is_continuum( derivand.range ); + wr2: partial_derivative_check( derivand.domain, d_variables ); + END_ENTITY; + + ENTITY partial_document_with_structured_text_representation_assignment + SUBTYPE OF ( applied_document_usage_constraint_assignment, characterized_object ); + END_ENTITY; + + ENTITY partially_plated_cutout + SUBTYPE OF ( cutout ); + END_ENTITY; + + ENTITY partially_plated_interconnect_module_edge + SUBTYPE OF ( interconnect_module_edge ); + END_ENTITY; + + ENTITY partly_overlapping_curves + SUBTYPE OF ( overlapping_geometry ); + SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; + interference_tolerance : length_measure; + WHERE + wr1: ( ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' ) + IN TYPEOF( SELF\shape_data_quality_criterion.assessment_specification\ + shape_data_quality_assessment_by_numerical_test.threshold ) ) AND ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE' IN value_limit_type( SELF\ + shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold ) ) ); + wr2: validate_measured_data_type( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE' ); + wr3: validate_inspected_elements_type( SELF, [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CURVE', + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CURVE' ] ); + wr4: validate_locations_of_extreme_value_type( SELF, [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'TRIMMED_CURVE' , 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.TRIMMED_CURVE'] ); + wr5: validate_accuracy_types( SELF, [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE'] ); + END_ENTITY; + + ENTITY partly_overlapping_edges + SUBTYPE OF ( topology_related_to_overlapping_geometry ); + SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; + interference_tolerance : length_measure; + WHERE + wr1: ( ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' ) + IN TYPEOF( SELF\shape_data_quality_criterion.assessment_specification\ + shape_data_quality_assessment_by_numerical_test.threshold ) ) AND ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE' IN value_limit_type( SELF\ + shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold ) ) ); + wr2: validate_measured_data_type( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE' ); + wr3: validate_inspected_elements_type( SELF, [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'EDGE_CURVE' , 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.EDGE_CURVE'] ); + wr4: validate_locations_of_extreme_value_type( SELF, [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'SUBEDGE' , 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SUBEDGE'] ); + wr5: validate_accuracy_types( SELF, [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE'] ); + END_ENTITY; + + ENTITY partly_overlapping_faces + SUBTYPE OF ( topology_related_to_overlapping_geometry ); + SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; + interference_tolerance : length_measure; + WHERE + wr1: ( ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' ) + IN TYPEOF( SELF\shape_data_quality_criterion.assessment_specification\ + shape_data_quality_assessment_by_numerical_test.threshold ) ) AND ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.AREA_MEASURE' IN value_limit_type( SELF\ + shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold ) ) ); + wr2: validate_measured_data_type( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.AREA_MEASURE' ); + wr3: validate_inspected_elements_type( SELF, [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'FACE_SURFACE' , 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.FACE_SURFACE'] ); + wr4: validate_locations_of_extreme_value_type( SELF, [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'SUBFACE' , 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SUBFACE'] ); + wr5: validate_accuracy_types( SELF, [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.AREA_MEASURE'] ); + END_ENTITY; + + ENTITY partly_overlapping_solids + SUBTYPE OF ( inapt_manifold_solid_brep ); + SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; + interference_tolerance : length_measure; + WHERE + wr1: ( ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' ) + IN TYPEOF( SELF\shape_data_quality_criterion.assessment_specification\ + shape_data_quality_assessment_by_numerical_test.threshold ) ) AND ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.AREA_MEASURE' IN value_limit_type( SELF\ + shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold ) ) ); + wr2: validate_measured_data_type( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.AREA_MEASURE' ); + wr3: validate_inspected_elements_type( SELF, [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'MANIFOLD_SOLID_BREP' , 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MANIFOLD_SOLID_BREP'] ); + wr4: validate_locations_of_extreme_value_type( SELF, [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'SUBFACE' , 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SUBFACE'] ); + wr5: validate_accuracy_types( SELF, [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.AREA_MEASURE'] ); + END_ENTITY; + + ENTITY partly_overlapping_surfaces + SUBTYPE OF ( overlapping_geometry ); + SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; + interference_tolerance : length_measure; + WHERE + wr1: ( ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' ) + IN TYPEOF( SELF\shape_data_quality_criterion.assessment_specification\ + shape_data_quality_assessment_by_numerical_test.threshold ) ) AND ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.AREA_MEASURE' IN value_limit_type( SELF\ + shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold ) ) ); + wr2: validate_measured_data_type( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.AREA_MEASURE' ); + wr3: validate_inspected_elements_type( SELF, [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SURFACE', + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SURFACE' ] ); + wr4: validate_locations_of_extreme_value_type( SELF, [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'CURVE_BOUNDED_SURFACE' , 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'CURVE_BOUNDED_SURFACE' ] ); + wr5: validate_accuracy_types( SELF, [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.AREA_MEASURE'] ); + END_ENTITY; + + ENTITY passage_deposition_material_identification + SUBTYPE OF ( material_designation ); + SELF\material_designation.definitions : SET [1 : ?] OF passage_technology; + END_ENTITY; + + ENTITY passage_filling_material_identification + SUBTYPE OF ( material_designation ); + SELF\material_designation.definitions : SET [1 : ?] OF passage_technology; + END_ENTITY; + + ENTITY passage_padstack_definition + SUBTYPE OF ( padstack_definition ); + END_ENTITY; + + ENTITY passage_technology + SUBTYPE OF ( characterized_object, product_definition_shape ); + DERIVE + SELF\property_definition.definition : characterized_definition := SELF; + UNIQUE + ur1 : SELF\characterized_object.name; + END_ENTITY; + + ENTITY passage_technology_allocation_to_stack_model + SUBTYPE OF ( stratum_sub_stack ); + END_ENTITY; + + ENTITY passage_terminal_based_fabrication_joint_link + SUBTYPE OF ( shape_aspect, shape_aspect_relationship ); + 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 path_area_with_parameters + SUBTYPE OF ( complex_area, mapped_item ); + WHERE + wr1: ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CURVE' IN TYPEOF( SELF\mapped_item. + mapping_target ) ); + wr2: ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CURVE_STYLE_PARAMETERS_REPRESENTATION' IN + TYPEOF( SELF\mapped_item.mapping_source\representation_map.mapped_representation ) ); + wr3: ( SELF\mapped_item.mapping_source\representation_map.mapping_origin\representation_item.name = 'curve width' ); + END_ENTITY; + + ENTITY path_feature_component + SUBTYPE OF ( shape_aspect ); + WHERE + wr1 : ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.FEATURE_COMPONENT_DEFINITION' IN TYPEOF( SELF. + of_shape.definition ) ); + wr2 : ( SELF.description IN [ 'partial circular', 'complete circular', 'linear', 'complex'] ); + wr3 : ( ( NOT ( SELF.description = 'complex' ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( + SIZEOF( QUERY ( pdr <* USEDIN( pd, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN + TYPEOF( pdr.used_representation ) ) ) ) = 1 ) ) ) ) = 0 ) ); + wr4 : ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) + | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN + TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PLACEMENT' IN TYPEOF( it ) ) AND ( it.name = + 'orientation' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ); + wr5 : ( ( NOT ( SELF.description = 'partial circular' ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( + SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) + | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN + TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( impl_rep.used_representation.items ) = 3 ) ) ) ) = 0 ) ) ) ) + = 0 ) ); + wr6 : ( ( NOT ( SELF.description = 'partial circular' ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( + SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) + | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN + TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( + SIZEOF( [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( it ) ) + = 2 ) AND ( it.name = 'radius' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ) ); + wr7 : ( ( NOT ( SELF.description = 'partial circular' ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( + SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) + | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN + TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( + SIZEOF( [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PLANE_ANGLE_MEASURE_WITH_UNIT' ] * TYPEOF( it ) ) + = 2 ) AND ( it.name = 'sweep angle' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ) ); + wr8 : ( ( NOT ( SELF.description = 'complete circular' ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( + SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) + | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN + TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( impl_rep.used_representation.items ) = 2 ) ) ) ) = 0 ) ) ) ) + = 0 ) ); + wr9 : ( ( NOT ( SELF.description = 'complete circular' ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( + SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) + | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN + TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( + SIZEOF( [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( it ) ) + = 2 ) AND ( it.name = 'radius' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ) ); + wr10: ( ( NOT ( SELF.description = 'linear' ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( + SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) + | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN + TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( impl_rep.used_representation.items ) = 2 ) ) ) ) = 0 ) ) ) ) + = 0 ) ); + wr11: ( ( NOT ( SELF.description = 'linear' ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( + SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) + | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN + TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( + SIZEOF( [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( it ) ) + = 2 ) AND ( it.name = 'distance' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ) ); + wr12: ( ( NOT ( SELF.description = 'linear' ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( + SIZEOF( QUERY ( pdr <* USEDIN( pd, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.DIRECTION_SHAPE_REPRESENTATION' IN TYPEOF( + pdr.used_representation ) ) ) ) = 1 ) ) ) ) = 0 ) ); + wr13: ( ( NOT ( SELF.description = 'complex' ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( + SIZEOF( QUERY ( pdr <* USEDIN( pd, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PATH_SHAPE_REPRESENTATION' IN TYPEOF( pdr. + used_representation ) ) AND ( pdr.used_representation.name = 'sweep path' ) AND ( SIZEOF( QUERY ( srwp_i <* pdr. + used_representation.items | ( srwp_i.name = 'profile shape' ) ) ) = 1 ) ) ) ) = 1 ) ) ) ) = 0 ) ); + END_ENTITY; + + ENTITY path_node + ABSTRACT SUPERTYPE OF ( + ONEOF ( + point_to_point_path, + circular_path, + linear_path, + curve_based_path ) ) + SUBTYPE OF ( kinematic_path_segment ); + placement_end : placement; + END_ENTITY; + + ENTITY path_parameter_representation + SUBTYPE OF ( definitional_representation ); + SELF\representation.context_of_items : path_parameter_representation_context; + SELF\representation.items : SET [1 : ?] OF bounded_curve; + WHERE + wr1: ( SELF\representation.context_of_items\geometric_representation_context.coordinate_space_dimension = 2 ); + END_ENTITY; + + ENTITY path_parameter_representation_context + SUBTYPE OF ( geometric_representation_context, parametric_representation_context ); + END_ENTITY; + + ENTITY path_shape_representation + SUBTYPE OF ( shape_representation ); + WHERE + wr1: ( SIZEOF( SELF.items ) >= 1 ); + wr2: ( SIZEOF( QUERY ( i <* SELF.items | ( SIZEOF( [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'BOUNDED_CURVE' , 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.EDGE_CURVE', + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PATH' ] * TYPEOF( i ) ) = 1 ) ) ) >= 1 ); + END_ENTITY; + + ENTITY pattern_offset_membership + SUBTYPE OF ( feature_component_relationship ); + WHERE + wr1 : ( SIZEOF( QUERY ( fcr <* QUERY ( sar <* USEDIN( SELF.relating_shape_aspect, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.' + + 'RELATING_SHAPE_ASPECT' ) | ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF( sar ) ) AND ( sar :<>: SELF ) ) ) | ( SIZEOF( QUERY ( pdr <* + QUERY ( pd <* USEDIN( fcr.related_shape_aspect.of_shape, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) + | ( SIZEOF( [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CIRCULAR_PATTERN', + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.RECTANGULAR_PATTERN' ] * TYPEOF( pdr. + definition ) ) = 1 ) ) ) = 0 ) ) ) = 0 ); + wr2 : ( SIZEOF( QUERY ( fcr <* QUERY ( sar <* USEDIN( SELF.related_shape_aspect, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.' + + 'RELATED_SHAPE_ASPECT' ) | ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF( sar ) ) AND ( sar :<>: SELF ) ) ) | ( ( fcr.description = + 'modified pattern' ) AND ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MODIFIED_PATTERN' + IN TYPEOF( fcr.relating_shape_aspect ) ) ) ) ) >= 1 ); + wr3 : ( SIZEOF( QUERY ( fcr <* QUERY ( sar <* USEDIN( SELF.related_shape_aspect, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.' + + 'RELATED_SHAPE_ASPECT' ) | ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF( sar ) ) AND ( sar :<>: SELF ) ) ) | ( ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MODIFIED_PATTERN' IN TYPEOF( fcr. + relating_shape_aspect ) ) AND ( NOT ( SIZEOF( QUERY ( modfcr <* QUERY ( modsar <* USEDIN( fcr. + relating_shape_aspect, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'SHAPE_ASPECT_RELATIONSHIP.RELATING_SHAPE_ASPECT' ) | ( ( SIZEOF( [ + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CIRCULAR_PATTERN' , + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.RECTANGULAR_PATTERN' ] * TYPEOF( modsar. + related_shape_aspect.of_shape.definition ) ) = 1 ) AND ( modsar :<>: fcr ) ) ) | ( NOT ( modfcr. + related_shape_aspect.of_shape.definition :=: SELF.relating_shape_aspect.of_shape.definition ) ) ) ) = 0 ) ) ) ) ) + = 0 ); + wr4 : ( ( NOT ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.RECTANGULAR_PATTERN' IN TYPEOF( SELF. + relating_shape_aspect.of_shape.definition ) ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF.related_shape_aspect, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( + SIZEOF( USEDIN( pd, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) ) = 2 ) ) ) ) = 0 ) ); + wr5 : ( ( NOT ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CIRCULAR_PATTERN' IN TYPEOF( SELF. + relating_shape_aspect.of_shape.definition ) ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF.related_shape_aspect, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( + SIZEOF( USEDIN( pd, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) ) = 1 ) ) ) ) = 0 ) ); + wr6 : ( ( NOT ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CIRCULAR_PATTERN' IN TYPEOF( SELF. + relating_shape_aspect.of_shape.definition ) ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF.related_shape_aspect, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( + SIZEOF( QUERY ( pdr <* USEDIN( pd, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( NOT ( SIZEOF( pdr.used_representation.items ) = 2 ) ) ) ) + = 0 ) ) ) ) = 0 ) ); + wr7 : ( ( NOT ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CIRCULAR_PATTERN' IN TYPEOF( SELF. + relating_shape_aspect.of_shape.definition ) ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF.related_shape_aspect, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( + SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) + | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN + TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM' IN TYPEOF( it ) ) + AND ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.COUNT_MEASURE' IN TYPEOF( it\ + measure_with_unit.value_component ) ) AND ( it.name = 'index number' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ) ); + wr8 : ( ( NOT ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CIRCULAR_PATTERN' IN TYPEOF( SELF. + relating_shape_aspect.of_shape.definition ) ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF.related_shape_aspect, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( + SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) + | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN + TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PLANE_ANGLE_MEASURE_WITH_UNIT' IN TYPEOF( it ) ) + AND ( it.name = 'offset' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ) ); + wr9 : ( ( NOT ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.RECTANGULAR_PATTERN' IN TYPEOF( SELF. + relating_shape_aspect.of_shape.definition ) ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF.related_shape_aspect, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( + SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) + | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN + TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( impl_rep.used_representation.items ) = 3 ) ) ) ) = 0 ) ) ) ) + = 0 ) ); + wr10: ( ( NOT ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.RECTANGULAR_PATTERN' IN TYPEOF( SELF. + relating_shape_aspect.of_shape.definition ) ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF.related_shape_aspect, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( + SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) + | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN + TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM' IN TYPEOF( it ) ) + AND ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.COUNT_MEASURE' IN TYPEOF( it\ + measure_with_unit.value_component ) ) AND ( it.name = 'row index' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ) ); + wr11: ( ( NOT ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.RECTANGULAR_PATTERN' IN TYPEOF( SELF. + relating_shape_aspect.of_shape.definition ) ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF.related_shape_aspect, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( + SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) + | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN + TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM' IN TYPEOF( it ) ) + AND ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.COUNT_MEASURE' IN TYPEOF( it\ + measure_with_unit.value_component ) ) AND ( it.name = 'column index' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ) ); + wr12: ( ( NOT ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.RECTANGULAR_PATTERN' IN TYPEOF( SELF. + relating_shape_aspect.of_shape.definition ) ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF.related_shape_aspect, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( + SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) + | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN + TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT' IN TYPEOF( it ) ) + AND ( it.name = 'offset distance' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ) ); + wr13: ( ( NOT ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.RECTANGULAR_PATTERN' IN TYPEOF( SELF. + relating_shape_aspect.of_shape.definition ) ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF.related_shape_aspect, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( + SIZEOF( QUERY ( pdr <* USEDIN( pd, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.DIRECTION_SHAPE_REPRESENTATION' IN TYPEOF( + pdr.used_representation ) ) AND ( pdr.used_representation.name = 'offset direction' ) ) ) ) = 1 ) ) ) ) = 0 ) ); + END_ENTITY; + + ENTITY pattern_omit_membership + SUBTYPE OF ( feature_component_relationship ); + WHERE + wr1: ( SIZEOF( QUERY ( fcr <* QUERY ( sar <* USEDIN( SELF.relating_shape_aspect, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.' + + 'RELATING_SHAPE_ASPECT' ) | ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF( sar ) ) AND ( sar :<>: SELF ) ) ) | ( SIZEOF( QUERY ( pdr <* + QUERY ( pd <* USEDIN( fcr.related_shape_aspect.of_shape, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) + | ( SIZEOF( [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CIRCULAR_PATTERN', + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.RECTANGULAR_PATTERN' ] * TYPEOF( pdr. + definition ) ) = 1 ) ) ) = 0 ) ) ) = 0 ); + wr2: ( SIZEOF( QUERY ( fcr <* QUERY ( sar <* USEDIN( SELF.related_shape_aspect, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT' ) + | ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP' IN + TYPEOF( sar ) ) AND ( sar :<>: SELF ) ) ) | ( ( fcr.description = 'modified pattern' ) AND ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MODIFIED_PATTERN' IN TYPEOF( fcr. + relating_shape_aspect ) ) ) ) ) >= 1 ); + wr3: ( SIZEOF( QUERY ( fcr <* QUERY ( sar <* USEDIN( SELF.related_shape_aspect, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT' ) + | ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP' IN + TYPEOF( sar ) ) AND ( sar :<>: SELF ) ) ) | ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'MODIFIED_PATTERN' IN TYPEOF( fcr.relating_shape_aspect ) ) AND ( NOT ( SIZEOF( QUERY ( modfcr <* + QUERY ( modsar <* USEDIN( fcr.relating_shape_aspect, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.' + + 'RELATING_SHAPE_ASPECT' ) | ( ( SIZEOF( [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'CIRCULAR_PATTERN' , 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.RECTANGULAR_PATTERN'] * + TYPEOF( modsar.related_shape_aspect.of_shape.definition ) ) = 1 ) AND ( modsar :<>: fcr ) ) ) | ( NOT ( modfcr. + related_shape_aspect.of_shape.definition :=: SELF.relating_shape_aspect.of_shape.definition ) ) ) ) = 0 ) ) ) ) ) = + 0 ); + wr4: ( SIZEOF( QUERY ( pd <* USEDIN( SELF.related_shape_aspect, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( + SIZEOF( USEDIN( pd, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) ) = 1 ) ) ) ) = 0 ); + wr5: ( ( NOT ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CIRCULAR_PATTERN' IN TYPEOF( SELF. + relating_shape_aspect.of_shape.definition ) ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF.related_shape_aspect, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( + SIZEOF( QUERY ( pdr <* USEDIN( pd, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( NOT ( SIZEOF( pdr.used_representation.items ) = 1 ) ) ) ) + = 0 ) ) ) ) = 0 ) ); + wr6: ( ( NOT ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CIRCULAR_PATTERN' IN TYPEOF( SELF. + relating_shape_aspect.of_shape.definition ) ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF.related_shape_aspect, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( + SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) + | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN + TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM' IN TYPEOF( it ) ) + AND ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.COUNT_MEASURE' IN TYPEOF( it\ + measure_with_unit.value_component ) ) AND ( it.name = 'index number' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ) ); + wr7: ( ( NOT ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.RECTANGULAR_PATTERN' IN TYPEOF( SELF. + relating_shape_aspect.of_shape.definition ) ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF.related_shape_aspect, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( + SIZEOF( QUERY ( pdr <* USEDIN( pd, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( NOT ( SIZEOF( pdr.used_representation.items ) = 2 ) ) ) ) + = 0 ) ) ) ) = 0 ) ); + wr8: ( ( NOT ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.RECTANGULAR_PATTERN' IN TYPEOF( SELF. + relating_shape_aspect.of_shape.definition ) ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF.related_shape_aspect, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( + SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) + | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN + TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM' IN TYPEOF( it ) ) + AND ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.COUNT_MEASURE' IN TYPEOF( it\ + measure_with_unit.value_component ) ) AND ( it.name = 'row index' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ) ); + wr9: ( ( NOT ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.RECTANGULAR_PATTERN' IN TYPEOF( SELF. + relating_shape_aspect.of_shape.definition ) ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF.related_shape_aspect, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( + SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) + | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN + TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM' IN TYPEOF( it ) ) + AND ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.COUNT_MEASURE' IN TYPEOF( it\ + measure_with_unit.value_component ) ) AND ( it.name = 'column index' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ) ); + 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: ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 pdgc_with_dimension + SUBTYPE OF ( point_distance_geometric_constraint ); + distance_value : non_negative_length_measure; + END_ENTITY; + + ENTITY percentage_laminate_table + SUBTYPE OF ( zone_structural_makeup ); + END_ENTITY; + + ENTITY perpendicular_assembly_constraint + SUBTYPE OF ( binary_assembly_constraint, perpendicular_geometric_constraint ); + END_ENTITY; + + ENTITY perpendicular_geometric_constraint + SUBTYPE OF ( explicit_geometric_constraint ); + SELF\explicit_constraint.constrained_elements : SET [1 : ?] OF linear_geometry_constraint_element; + SELF\explicit_constraint.reference_elements : SET [0 : 2] OF linear_geometry_constraint_element; + WHERE + wr1: ( NOT ( ( SIZEOF( SELF\explicit_constraint.reference_elements ) = 2 ) AND ( NOT ( ( SIZEOF( QUERY ( q <* ( SELF\ + explicit_constraint.constrained_elements + SELF\explicit_constraint.reference_elements ) | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LINE' IN TYPEOF( q ) ) ) ) = SIZEOF( SELF\ + explicit_constraint.reference_elements + SELF\explicit_constraint.constrained_elements ) ) XOR ( SIZEOF( + QUERY ( q <* ( SELF\explicit_constraint.constrained_elements + SELF\explicit_constraint.reference_elements ) | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PLANE' IN TYPEOF( q ) ) ) ) = SIZEOF( SELF\ + explicit_constraint.reference_elements + SELF\explicit_constraint.constrained_elements ) ) ) ) ) ); + wr2: ( ( SIZEOF( SELF\explicit_constraint.reference_elements ) > 0 ) OR ( SIZEOF( SELF\explicit_constraint. + constrained_elements ) IN [2, 3] ) ); + wr3: ( ( NOT ( ( SIZEOF( SELF\explicit_constraint.reference_elements ) = 0 ) AND ( SIZEOF( SELF\explicit_constraint. + constrained_elements ) = 3 ) ) ) AND ( NOT ( ( SIZEOF( QUERY ( q <* SELF\explicit_constraint.constrained_elements + | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LINE' IN TYPEOF( q ) ) ) ) = 3 ) XOR ( + SIZEOF( QUERY ( q <* SELF\explicit_constraint.constrained_elements | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PLANE' IN TYPEOF( q ) ) ) ) = 3 ) ) ) ); + 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 ); + 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 + name : label := get_name_value( SELF ); + description : text := get_description_value( SELF ); + WHERE + wr1: ( SIZEOF( USEDIN( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'NAME_ATTRIBUTE.' + + 'NAMED_ITEM' ) ) <= 1 ); + wr2: ( SIZEOF( USEDIN( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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], + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 pgc_with_dimension + SUBTYPE OF ( parallel_geometric_constraint ); + distance_value : non_negative_length_measure; + negative_direction : BOOLEAN; + WHERE + wr1: ( ( SIZEOF( SELF\explicit_constraint.reference_elements ) = 1 ) OR ( SIZEOF( SELF\explicit_constraint. + constrained_elements ) = 2 ) ); + wr2: ( SIZEOF( QUERY ( q <* ( SELF\explicit_constraint.reference_elements + SELF\explicit_constraint.constrained_elements ) + | ( SIZEOF( TYPEOF( q ) * [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.DIRECTION', + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.VECTOR' ] ) > 0 ) ) ) = 0 ); + END_ENTITY; + + ENTITY physical_breakdown_context + SUBTYPE OF ( breakdown_context ); + END_ENTITY; + + ENTITY physical_component + SUPERTYPE OF ( + ONEOF ( + assembly_module_component, + assembly_module_macro_component, + bare_die_component, + cable_component, + interconnect_module_component, + interconnect_module_macro_component, + packaged_component, + routed_interconnect_component, + routed_physical_component, + sequential_laminate_stackup_component ) + ANDOR + ONEOF ( + packaged_component, + routed_physical_component ) ) + SUBTYPE OF ( assembly_component ); + END_ENTITY; + + ENTITY physical_component_feature + SUPERTYPE OF ( + ONEOF ( + physical_component_terminal, + physical_component_interface_terminal ) ) + SUBTYPE OF ( component_feature ); + END_ENTITY; + + ENTITY physical_component_interface_terminal + SUBTYPE OF ( physical_component_feature ); + END_ENTITY; + + ENTITY physical_component_terminal + SUPERTYPE OF ( + ONEOF ( + assembly_module_macro_component_join_terminal, + interconnect_module_macro_component_join_terminal ) ) + SUBTYPE OF ( component_terminal, physical_component_feature ); + END_ENTITY; + + ENTITY physical_connectivity_definition + SUBTYPE OF ( shape_aspect ); + UNIQUE + ur1 : SELF\shape_aspect.name, SELF\shape_aspect.of_shape; + END_ENTITY; + + ENTITY physical_connectivity_definition_domain + SUBTYPE OF ( property_definition ); + END_ENTITY; + + ENTITY physical_connectivity_element + SUBTYPE OF ( shape_aspect_relationship, shape_aspect ); + END_ENTITY; + + ENTITY physical_connectivity_interrupting_cutout + SUBTYPE OF ( cutout ); + END_ENTITY; + + ENTITY physical_connectivity_layout_topology_link + SUBTYPE OF ( group_relationship ); + END_ENTITY; + + ENTITY physical_connectivity_layout_topology_node + SUBTYPE OF ( group ); + END_ENTITY; + + ENTITY physical_connectivity_layout_topology_requirement + SUBTYPE OF ( predefined_requirement_view_definition, group ); + END_ENTITY; + + ENTITY physical_connectivity_layout_topology_requirement_assignment + SUBTYPE OF ( requirement_assignment ); + END_ENTITY; + + ENTITY physical_element_usage + SUBTYPE OF ( breakdown_element_usage ); + END_ENTITY; + + ENTITY physical_network + SUBTYPE OF ( shape_aspect ); + END_ENTITY; + + ENTITY physical_network_group + ABSTRACT SUPERTYPE OF ( + ONEOF ( + pre_defined_physical_network_group, + externally_defined_physical_network_group ) ) + SUBTYPE OF ( group ); + END_ENTITY; + + ENTITY physical_network_group_element_relationship + ABSTRACT SUPERTYPE OF ( + ONEOF ( + pre_defined_physical_network_group_element_relationship, + externally_defined_physical_network_group_element_relationship ) ) + SUBTYPE OF ( group_relationship ); + END_ENTITY; + + ENTITY physical_network_supporting_inter_stratum_feature + SUBTYPE OF ( plated_inter_stratum_feature ); + END_ENTITY; + + ENTITY physical_node_branch_requirement_to_implementing_component_allocation + SUBTYPE OF ( shape_aspect_relationship, shape_aspect ); + SELF\shape_aspect_relationship.related_shape_aspect : physical_connectivity_element; + SELF\shape_aspect.of_shape : assembly_component; + SELF\shape_aspect_relationship.relating_shape_aspect : part_connected_terminals_element; + DERIVE + implementation_component : assembly_component := SELF\shape_aspect.of_shape; + part_element : part_connected_terminals_element := SELF\shape_aspect_relationship. + relating_shape_aspect; + physical_node_branch_requirement : physical_connectivity_element := SELF\shape_aspect_relationship.related_shape_aspect; + END_ENTITY; + + ENTITY physical_node_requirement_to_implementing_component_allocation + SUBTYPE OF ( shape_aspect_relationship, shape_aspect ); + SELF\shape_aspect_relationship.relating_shape_aspect : physical_connectivity_definition; + WHERE + wr1: acyclic_shape_aspect_relationship( SELF, [SELF\shape_aspect_relationship.related_shape_aspect], + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PHYSICAL_NODE_REQUIREMENT_TO_IMPLEMENTING_COMPONENT_ALLOCATION' ); + END_ENTITY; + + ENTITY physical_shield + SUBTYPE OF ( physical_component ); + END_ENTITY; + + ENTITY physical_unit + SUPERTYPE OF ( + ONEOF ( + bare_die, + package, + packaged_part, + assembly_module_design_view, + interconnect_module_design_view ) + ANDOR + ONEOF ( + package, + bare_die, + cable_usage_view, + packaged_part ) ) + SUBTYPE OF ( product_definition, product_definition_shape ); + DERIVE + SELF\property_definition.definition : physical_unit := SELF; + WHERE + wr1: ( SIZEOF( USEDIN( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'NAME_ATTRIBUTE.' + + 'NAMED_ITEM' ) ) = 0 ); + wr2: ( NOT EXISTS( SELF\property_definition.description ) ); + END_ENTITY; + + ENTITY physical_unit_interconnect_definition + SUBTYPE OF ( product_definition ); + END_ENTITY; + + ENTITY physical_unit_keepout_shape_allocation_to_stratum_stack + SUBTYPE OF ( representation, representation_relationship ); + END_ENTITY; + + ENTITY physical_unit_keepout_shape_allocation_to_stratum_technology + SUBTYPE OF ( representation ); + END_ENTITY; + + ENTITY physical_unit_network_definition + SUBTYPE OF ( physical_unit ); + 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 | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.STYLED_ITEM' + IN TYPEOF( item ) ) ) ) = 1 ); + wr2: ( SIZEOF( QUERY ( se <* QUERY ( item <* SELF.items | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.STYLED_ITEM' IN TYPEOF( item ) ) ) | ( NOT ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 curve'] ); + wr2: ( SIZEOF( QUERY ( pdr <* representation_associations | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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_closed_path_shape_representation_with_parameters + SUBTYPE OF ( planar_path_shape_representation_with_parameters ); + END_ENTITY; + + ENTITY planar_curve_pair + SUPERTYPE OF ( + ONEOF ( + sliding_curve_pair, + rolling_curve_pair ) + ANDOR + planar_curve_pair_range ) + SUBTYPE OF ( high_order_kinematic_pair ); + curve_1 : curve; + curve_2 : curve; + orientation : BOOLEAN; + WHERE + wr1: ( SIZEOF( QUERY ( r <* SELF\kinematic_pair.associated_link_representations_1 | ( NOT ( curve_1 IN r.items ) ) ) ) = 0 ); + wr2: ( SIZEOF( QUERY ( r <* SELF\kinematic_pair.associated_link_representations_2 | ( NOT ( curve_2 IN r.items ) ) ) ) = 0 ); + wr3: ( SIZEOF( QUERY ( lr <* SELF\kinematic_pair.associated_link_representations_1 | ( NOT ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.RIGID_LINK_REPRESENTATION' IN TYPEOF( lr ) ) ) ) ) + = 0 ); + END_ENTITY; + + ENTITY planar_curve_pair_range + SUBTYPE OF ( planar_curve_pair ); + range_on_curve_1 : trimmed_curve; + range_on_curve_2 : trimmed_curve; + WHERE + wr1: ( SELF\planar_curve_pair.curve_1 :=: range_on_curve_1.basis_curve ); + wr2: ( SELF\planar_curve_pair.curve_2 :=: range_on_curve_2.basis_curve ); + wr3: ( SIZEOF( QUERY ( r <* SELF\kinematic_pair.associated_link_representations_1 | ( NOT ( range_on_curve_1 IN r.items ) ) ) ) + = 0 ); + wr4: ( SIZEOF( QUERY ( r <* SELF\kinematic_pair.associated_link_representations_2 | ( NOT ( range_on_curve_2 IN r.items ) ) ) ) + = 0 ); + END_ENTITY; + + ENTITY planar_extent + SUBTYPE OF ( geometric_representation_item ); + size_in_x : length_measure; + size_in_y : length_measure; + END_ENTITY; + + ENTITY planar_pair + SUBTYPE OF ( low_order_kinematic_pair ); + DERIVE + SELF\low_order_kinematic_pair.t_x : BOOLEAN := TRUE; + SELF\low_order_kinematic_pair.t_y : BOOLEAN := TRUE; + SELF\low_order_kinematic_pair.t_z : BOOLEAN := FALSE; + SELF\low_order_kinematic_pair.r_x : BOOLEAN := FALSE; + SELF\low_order_kinematic_pair.r_y : BOOLEAN := FALSE; + SELF\low_order_kinematic_pair.r_z : BOOLEAN := TRUE; + END_ENTITY; + + ENTITY planar_pair_value + SUBTYPE OF ( pair_value ); + SELF\pair_value.applies_to_pair : planar_pair; + actual_rotation : plane_angle_measure; + actual_translation_x : length_measure; + actual_translation_y : length_measure; + END_ENTITY; + + ENTITY planar_pair_with_range + SUBTYPE OF ( planar_pair ); + lower_limit_actual_rotation : OPTIONAL plane_angle_measure; + upper_limit_actual_rotation : OPTIONAL plane_angle_measure; + lower_limit_actual_translation_x : OPTIONAL length_measure; + upper_limit_actual_translation_x : OPTIONAL length_measure; + lower_limit_actual_translation_y : OPTIONAL length_measure; + upper_limit_actual_translation_y : OPTIONAL length_measure; + WHERE + wr1: ( ( ( NOT EXISTS( lower_limit_actual_rotation ) ) OR ( NOT EXISTS( upper_limit_actual_rotation ) ) ) XOR ( + lower_limit_actual_rotation < upper_limit_actual_rotation ) ); + wr2: ( ( ( NOT EXISTS( lower_limit_actual_translation_x ) ) OR ( NOT EXISTS( upper_limit_actual_translation_x ) ) ) XOR ( + lower_limit_actual_translation_x < upper_limit_actual_translation_x ) ); + wr3: ( ( ( NOT EXISTS( lower_limit_actual_translation_y ) ) OR ( NOT EXISTS( upper_limit_actual_translation_y ) ) ) XOR ( + lower_limit_actual_translation_y < upper_limit_actual_translation_y ) ); + END_ENTITY; + + ENTITY planar_path_shape_representation_with_parameters + SUBTYPE OF ( single_area_csg_2d_shape_representation ); + END_ENTITY; + + ENTITY planar_shape_representation + SUBTYPE OF ( shape_representation ); + WHERE + wr1: ( SIZEOF( SELF.items ) = 1 ); + wr2: ( SIZEOF( QUERY ( it <* SELF.items | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PLANE' IN + TYPEOF( it ) ) ) ) = 1 ); + END_ENTITY; + + ENTITY plane + SUBTYPE OF ( elementary_surface ); + END_ENTITY; + + ENTITY plane_angle_and_length_pair + SUBTYPE OF ( founded_item ); + plane_angle_value : plane_angle_measure; + length_value : length_measure; + END_ENTITY; + + ENTITY plane_angle_and_ratio_pair + SUBTYPE OF ( founded_item ); + plane_angle_value : plane_angle_measure; + ratio_value : ratio_measure; + END_ENTITY; + + ENTITY plane_angle_measure_with_unit + SUBTYPE OF ( measure_with_unit ); + WHERE + wr1: ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 ) AND ( SELF\named_unit.dimensions.mass_exponent = 0 ) AND ( SELF\ + named_unit.dimensions.time_exponent = 0 ) AND ( SELF\named_unit.dimensions.electric_current_exponent = 0 ) AND ( + SELF\named_unit.dimensions.thermodynamic_temperature_exponent = 0 ) AND ( SELF\named_unit.dimensions. + amount_of_substance_exponent = 0 ) AND ( SELF\named_unit.dimensions.luminous_intensity_exponent = 0 ) ); + END_ENTITY; + + ENTITY plated_conductive_base_blind_via + SUBTYPE OF ( blind_via ); + END_ENTITY; + + ENTITY plated_cutout + SUBTYPE OF ( cutout, plated_inter_stratum_feature ); + END_ENTITY; + + ENTITY plated_cutout_edge_segment + SUBTYPE OF ( cutout_edge_segment, plated_inter_stratum_feature ); + END_ENTITY; + + ENTITY plated_inter_stratum_feature + SUPERTYPE OF ( + ONEOF ( + plated_cutout_edge_segment, + plated_interconnect_module_edge_segment, + plated_passage ) ) + SUBTYPE OF ( inter_stratum_feature ); + END_ENTITY; + + ENTITY plated_interconnect_module_edge + SUBTYPE OF ( interconnect_module_edge, plated_inter_stratum_feature ); + END_ENTITY; + + ENTITY plated_interconnect_module_edge_segment + SUBTYPE OF ( interconnect_module_edge_segment, plated_inter_stratum_feature ); + END_ENTITY; + + ENTITY plated_passage + SUPERTYPE OF ( + ONEOF ( + component_termination_passage, + via ) ) + SUBTYPE OF ( plated_inter_stratum_feature ); + END_ENTITY; + + ENTITY plated_passage_dependent_land + SUBTYPE OF ( inter_stratum_feature_dependent_land ); + END_ENTITY; + + ENTITY plus_expression + SUBTYPE OF ( multiple_arity_numeric_expression ); + END_ENTITY; + + ENTITY plus_minus_tolerance; + range : tolerance_method_definition; + toleranced_dimension : dimensional_characteristic; + UNIQUE + ur1 : toleranced_dimension; + END_ENTITY; + + ENTITY ply_laminate_sequence_definition + SUBTYPE OF ( product_definition ); + WHERE + wr1: ( SIZEOF( QUERY ( pdr <* USEDIN( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PRODUCT_DEFINITION_RELATIONSHIP.' + 'RELATING_PRODUCT_DEFINITION' ) | ( ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'NEXT_ASSEMBLY_USAGE_OCCURRENCE' ) IN + TYPEOF( pdr ) ) ) ) > 0 ); + END_ENTITY; + + ENTITY ply_laminate_table + SUBTYPE OF ( part_laminate_table ); + END_ENTITY; + + ENTITY pocket + SUBTYPE OF ( feature_definition ); + WHERE + wr1 : ( SELF\characterized_object.description IN [ 'closed rectangular', 'open rectangular', 'complex', 'circular cutout', + 'complex cutout' , 'recess'] ); + wr2 : ( SIZEOF( QUERY ( pds <* QUERY ( pd <* USEDIN( SELF, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) + | ( NOT ( SIZEOF( QUERY ( sa_occ <* USEDIN( pds, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) | ( ( sa_occ. + description = 'pocket depth occurrence' ) AND ( SIZEOF( QUERY ( sdr <* QUERY ( sar <* USEDIN( sa_occ, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.' + + 'RELATED_SHAPE_ASPECT' ) | ( ( sar.description = 'path feature component usage' ) AND ( sar.name = + 'pocket depth' ) AND ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF( sar ) ) ) ) | ( ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PATH_FEATURE_COMPONENT' IN TYPEOF( sdr. + relating_shape_aspect ) ) AND ( sdr.relating_shape_aspect.description = 'linear' ) ) ) ) = 1 ) ) ) ) = 1 ) ) ) ) = + 0 ); + wr3 : ( SIZEOF( QUERY ( pdr <* get_property_definition_representations( SELF ) | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN + TYPEOF( pdr.used_representation ) ) ) ) = 1 ); + wr4 : ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION.DEFINITION' ) | ( SIZEOF( QUERY ( pdr <* USEDIN( pd, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) + | ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN + TYPEOF( pdr.used_representation ) ) AND ( 1 <= SIZEOF( pdr.used_representation.items ) ) AND ( SIZEOF( pdr. + used_representation.items ) <= 2 ) ) ) ) = 1 ) ) ) = 1 ); + wr5 : ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION.DEFINITION' ) | ( SIZEOF( QUERY ( pdr <* USEDIN( pd, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) + | ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN + TYPEOF( pdr.used_representation ) ) AND ( SIZEOF( QUERY ( srwp_i <* pdr.used_representation.items | ( ( srwp_i. + name = 'orientation' ) OR ( srwp_i.name = 'fillet radius' ) ) ) ) = SIZEOF( pdr.used_representation.items ) ) ) ) ) + = 1 ) ) ) = 1 ); + wr6 : ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) + | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN + TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( + SIZEOF( [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( it ) ) + = 2 ) AND ( it.name = 'fillet radius' ) ) ) ) <= 1 ) ) ) ) = 0 ) ) ) ) = 0 ); + wr7 : ( ( NOT ( SELF\characterized_object.description IN [ 'complex', 'non-circular cutout', 'recess'] ) ) OR ( SIZEOF( + QUERY ( pds <* QUERY ( pd <* USEDIN( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION.DEFINITION' ) | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) | ( NOT ( SIZEOF( QUERY ( sa_occ <* USEDIN( pds, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) | ( ( sa_occ. + description = 'boundary occurrence' ) AND ( SIZEOF( QUERY ( sdr <* QUERY ( sar <* USEDIN( sa_occ, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.' + + 'RELATED_SHAPE_ASPECT' ) | ( ( sar.description = 'profile usage' ) AND ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF( sar ) ) ) ) + | ( SIZEOF( [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CIRCULAR_CLOSED_PROFILE', + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.NGON_CLOSED_PROFILE' , + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.RECTANGULAR_CLOSED_PROFILE' , + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CLOSED_PATH_PROFILE' , + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SQUARE_U_PROFILE' , + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PARTIAL_CIRCULAR_PROFILE' , + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.ROUNDED_U_PROFILE' , + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.VEE_PROFILE' , + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.TEE_PROFILE' , + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.OPEN_PATH_PROFILE' ] * TYPEOF( sdr. + relating_shape_aspect ) ) = 1 ) ) ) = 1 ) ) ) ) = 1 ) ) ) ) = 0 ) ); + wr8 : ( ( NOT ( SELF\characterized_object.description = 'closed rectangular' ) ) OR ( SIZEOF( QUERY ( pds <* QUERY ( pd <* + USEDIN( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) + | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) + | ( NOT ( SIZEOF( QUERY ( sa_occ <* USEDIN( pds, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) | ( ( sa_occ. + description = 'closed boundary occurrence' ) AND ( SIZEOF( QUERY ( sdr <* QUERY ( sar <* USEDIN( sa_occ, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.' + + 'RELATED_SHAPE_ASPECT' ) | ( ( sar.description = 'profile usage' ) AND ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF( sar ) ) ) ) + | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.RECTANGULAR_CLOSED_PROFILE' IN TYPEOF( sdr + .relating_shape_aspect ) ) ) ) = 1 ) ) ) ) = 1 ) ) ) ) = 0 ) ); + wr9 : ( ( NOT ( SELF\characterized_object.description = 'open rectangular' ) ) OR ( SIZEOF( QUERY ( pds <* QUERY ( pd <* + USEDIN( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) + | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) + | ( NOT ( SIZEOF( QUERY ( sa_occ <* USEDIN( pds, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) | ( ( sa_occ. + description = 'open boundary occurrence' ) AND ( SIZEOF( QUERY ( sdr <* QUERY ( sar <* USEDIN( sa_occ, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.' + + 'RELATED_SHAPE_ASPECT' ) | ( ( sar.description = 'profile usage' ) AND ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF( sar ) ) ) ) + | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SQUARE_U_PROFILE' IN TYPEOF( sdr. + relating_shape_aspect ) ) ) ) = 1 ) ) ) ) = 1 ) ) ) ) = 0 ) ); + wr10: ( SIZEOF( QUERY ( pds <* QUERY ( pd <* USEDIN( SELF, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) + | ( NOT ( SIZEOF( QUERY ( sa_occ <* USEDIN( pds, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) | ( ( sa_occ. + description = 'bottom condition occurrence' ) AND ( SIZEOF( QUERY ( sdr <* QUERY ( sar <* USEDIN( sa_occ, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.' + + 'RELATED_SHAPE_ASPECT' ) | ( ( sar.description = 'pocket bottom usage' ) AND ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF( + sar ) ) ) ) | ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.POCKET_BOTTOM' IN TYPEOF( + sdr.relating_shape_aspect ) ) AND ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.POCKET' IN + TYPEOF( sdr.related_shape_aspect.of_shape.definition ) ) ) ) ) = 1 ) ) ) ) = 1 ) ) ) ) = 0 ); + wr11: ( ( NOT ( SELF\characterized_object.description IN [ 'complex', 'non-circular cutout', 'recess'] ) ) OR ( SIZEOF( + QUERY ( pds <* QUERY ( pd <* USEDIN( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION.DEFINITION' ) | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) | ( NOT ( SIZEOF( QUERY ( sa_occ <* USEDIN( pds, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) | ( ( sa_occ. + description = 'change in boundary occurrence' ) AND ( SIZEOF( QUERY ( fcr <* QUERY ( sar <* USEDIN( sa_occ, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.' + + 'RELATING_SHAPE_ASPECT' ) | ( ( sar.description = 'taper usage' ) AND ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF( + sar ) ) ) ) | ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.TAPER' IN TYPEOF( fcr. + relating_shape_aspect ) ) AND ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.POCKET' IN + TYPEOF( fcr.related_shape_aspect.of_shape.definition ) ) AND ( fcr.related_shape_aspect.description IN [ + 'angle taper' , 'directed taper'] ) ) ) ) = 1 ) ) ) ) <= 1 ) ) ) ) = 0 ) ); + wr12: ( ( NOT ( SELF\characterized_object.description = 'circular cutout' ) ) OR ( SIZEOF( QUERY ( pds <* QUERY ( pd <* + USEDIN( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) + | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) + | ( NOT ( SIZEOF( QUERY ( sa_occ <* USEDIN( pds, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) | ( ( sa_occ. + description = 'enclosed boundary occurrence' ) AND ( SIZEOF( QUERY ( sdr <* QUERY ( sar <* USEDIN( sa_occ, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.' + + 'RELATED_SHAPE_ASPECT' ) | ( ( sar.description = 'profile usage' ) AND ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF( sar ) ) ) ) + | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CIRCULAR_CLOSED_PROFILE' IN TYPEOF( sdr. + relating_shape_aspect ) ) ) ) = 1 ) ) ) ) = 1 ) ) ) ) = 0 ) ); + wr13: ( ( NOT ( SELF\characterized_object.description IN [ 'circular cutout', 'complex cutout'] ) ) OR ( SIZEOF( + QUERY ( pds <* QUERY ( pd <* USEDIN( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION.DEFINITION' ) | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) | ( NOT ( SIZEOF( QUERY ( sa_occ <* USEDIN( pds, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) | ( ( sa_occ. + description = 'bottom condition occurrence' ) AND ( SIZEOF( QUERY ( sdr <* QUERY ( sar <* USEDIN( sa_occ, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.' + + 'RELATED_SHAPE_ASPECT' ) | ( ( sar.description = 'pocket bottom usage' ) AND ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF( + sar ) ) ) ) | ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.POCKET_BOTTOM' IN TYPEOF( + sdr.relating_shape_aspect ) ) AND ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.POCKET' IN + TYPEOF( sdr.related_shape_aspect.of_shape.definition ) ) AND ( sdr.relating_shape_aspect.description = 'through' ) ) ) ) + = 1 ) ) ) ) = 1 ) ) ) ) = 0 ) ); + wr14: ( ( NOT ( SELF\characterized_object.description = 'recess' ) ) OR ( SIZEOF( QUERY ( pds <* QUERY ( pd <* USEDIN( SELF, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) + | ( NOT ( SIZEOF( QUERY ( sa_occ <* USEDIN( pds, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) | ( ( sa_occ. + description = 'bottom condition occurrence' ) AND ( SIZEOF( QUERY ( sdr <* QUERY ( sar <* USEDIN( sa_occ, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.' + + 'RELATED_SHAPE_ASPECT' ) | ( ( sar.description = 'pocket bottom usage' ) AND ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF( + sar ) ) ) ) | ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.POCKET_BOTTOM' IN TYPEOF( + sdr.relating_shape_aspect ) ) AND ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.POCKET' IN + TYPEOF( sdr.related_shape_aspect.of_shape.definition ) ) AND ( sdr.relating_shape_aspect.description IN [ 'planar', + 'complex' ] ) ) ) ) = 1 ) ) ) ) = 1 ) ) ) ) = 0 ) ); + wr15: ( SIZEOF( QUERY ( pdr <* get_property_definition_representations( SELF ) | ( ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PLANAR_SHAPE_REPRESENTATION' IN TYPEOF( pdr. + used_representation ) ) AND ( pdr.used_representation.name = 'maximum feature limit' ) ) ) ) >= 0 ); + wr16: ( ( NOT ( SELF\characterized_object.description IN [ 'closed rectangular', 'open rectangular', 'complex', 'recess'] ) ) + OR ( SIZEOF( QUERY ( pds <* USEDIN( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION.DEFINITION' ) | ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pds ) ) AND ( SIZEOF( QUERY ( csa <* USEDIN( pds, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) | ( ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.COMPOSITE_SHAPE_ASPECT' IN TYPEOF( csa ) ) + AND ( csa.name = 'uncut volume' ) AND ( SIZEOF( QUERY ( sar <* csa.component_relationships | ( ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF( + sar ) ) AND ( SIZEOF( [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.BOSS', + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROTRUSION' ] * TYPEOF( sar. + related_shape_aspect ) ) = 1 ) ) ) ) = 1 ) ) ) ) <= 1 ) ) ) ) = 1 ) ); + wr17: ( ( NOT ( SELF\characterized_object.description IN [ 'closed rectangular', 'open rectangular'] ) ) OR ( SIZEOF( + QUERY ( pds <* QUERY ( pd <* USEDIN( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION.DEFINITION' ) | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) | ( NOT ( SIZEOF( QUERY ( sa_occ <* USEDIN( pds, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) | ( ( sa_occ. + description = 'change in boundary occurrence' ) AND ( SIZEOF( QUERY ( fcr <* QUERY ( sar <* USEDIN( sa_occ, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.' + + 'RELATING_SHAPE_ASPECT' ) | ( ( sar.description = 'taper usage' ) AND ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF( + sar ) ) ) ) | ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.TAPER' IN TYPEOF( fcr. + relating_shape_aspect ) ) AND ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.POCKET' IN + TYPEOF( fcr.related_shape_aspect.of_shape.definition ) ) AND ( fcr.related_shape_aspect.description IN [ + 'angle taper' , 'directed taper'] ) ) ) ) >= 1 ) ) ) ) <= 1 ) ) ) ) = 0 ) ); + END_ENTITY; + + ENTITY pocket_bottom + SUBTYPE OF ( shape_aspect ); + WHERE + wr1 : ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.FEATURE_COMPONENT_DEFINITION' IN TYPEOF( SELF. + of_shape.definition ) ); + wr2 : ( SELF.description IN [ 'planar', 'complex', 'through'] ); + wr3 : ( ( NOT ( SELF.description = 'planar' ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( + SIZEOF( QUERY ( pdr <* USEDIN( pd, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.DIRECTION_SHAPE_REPRESENTATION' IN TYPEOF( + pdr.used_representation ) ) AND ( pdr.used_representation.name = 'floor normal' ) ) ) ) = 1 ) ) ) ) = 0 ) ); + wr4 : ( ( NOT ( SELF.description = 'planar' ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( + SIZEOF( QUERY ( pdr <* USEDIN( pd, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LOCATION_SHAPE_REPRESENTATION' IN TYPEOF( + pdr.used_representation ) ) AND ( pdr.used_representation.name = 'floor location' ) ) ) ) = 1 ) ) ) ) = 0 ) ); + wr5 : ( ( NOT ( SELF.description = 'complex' ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( + SIZEOF( QUERY ( pdr <* USEDIN( pd, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.FACE_SHAPE_REPRESENTATION' IN TYPEOF( pdr. + used_representation ) ) AND ( pdr.used_representation.name = 'floor face' ) ) ) ) = 1 ) ) ) ) = 0 ) ); + wr6 : ( ( NOT ( SELF.description IN [ 'planar', 'complex'] ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( + SIZEOF( QUERY ( pdr <* USEDIN( pd, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN + TYPEOF( pdr.used_representation ) ) ) ) = 1 ) ) ) ) = 0 ) ); + wr7 : ( ( NOT ( SELF.description IN [ 'planar', 'complex'] ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( + SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) + | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN + TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( impl_rep.used_representation.items ) <= 1 ) ) ) ) = 0 ) ) ) ) + = 0 ) ); + wr8 : ( ( NOT ( SELF.description = 'through' ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( + SIZEOF( QUERY ( pdr <* USEDIN( pd, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN + TYPEOF( pdr.used_representation ) ) ) ) = 0 ) ) ) ) = 0 ) ); + wr9 : ( ( NOT ( SELF.description IN [ 'planar', 'complex'] ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( + SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) + | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN + TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( + SIZEOF( [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( it ) ) + = 2 ) AND ( it.name = 'radius' ) ) ) ) <= 1 ) ) ) ) = 0 ) ) ) ) = 0 ) ); + wr10: ( SIZEOF( QUERY ( fcr <* QUERY ( sar <* USEDIN( SELF, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.' + + 'RELATING_SHAPE_ASPECT' ) | ( ( sar.description = 'pocket bottom usage' ) AND ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF( + sar ) ) ) ) | ( ( fcr.related_shape_aspect.description = 'bottom condition occurrence' ) AND ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.POCKET' IN TYPEOF( fcr.related_shape_aspect. + of_shape.definition ) ) AND ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.POCKET_BOTTOM' + IN TYPEOF( fcr.relating_shape_aspect ) ) ) ) ) >= 1 ); + wr11: ( ( NOT ( SELF.description IN [ 'planar', 'complex'] ) ) OR ( SIZEOF( QUERY ( fcr <* QUERY ( sar <* USEDIN( SELF, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.' + + 'RELATING_SHAPE_ASPECT' ) | ( ( sar.description = 'pocket bottom usage' ) AND ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF( + sar ) ) ) ) | ( ( fcr.related_shape_aspect.description = 'bottom condition occurrence' ) AND ( fcr. + related_shape_aspect.name IN [ 'pocket depth start', 'pocket depth end'] ) ) ) ) = 0 ) ); + END_ENTITY; + + ENTITY pogc_with_dimension + SUBTYPE OF ( parallel_offset_geometric_constraint ); + offset_value : positive_length_measure; + offset_direction_constrained : BOOLEAN; + WHERE + wr1: ( ( SIZEOF( SELF\explicit_constraint.reference_elements ) = 1 ) OR ( SIZEOF( SELF\explicit_constraint. + constrained_elements ) = 2 ) ); + wr2: ( ( NOT ( offset_direction_constrained = TRUE ) ) AND ( ( offset_type = curve_2d_offset ) OR ( offset_type = + surface_offset ) ) ); + 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_distance_geometric_constraint + SUBTYPE OF ( explicit_geometric_constraint ); + SELF\explicit_constraint.constrained_elements : SET [1 : ?] OF point; + SELF\explicit_constraint.reference_elements : SET [0 : 4] OF point_curve_or_surface_constraint_element; + WHERE + wr1: ( ( SIZEOF( SELF\explicit_constraint.reference_elements ) > 0 ) OR ( ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PDGC_WITH_DIMENSION' IN TYPEOF( SELF ) ) AND + ( SIZEOF( SELF\explicit_constraint.constrained_elements ) = 2 ) ) ); + END_ENTITY; + + ENTITY point_on_curve + SUBTYPE OF ( point ); + basis_curve : curve; + point_parameter : parameter_value; + END_ENTITY; + + ENTITY point_on_edge_curve + SUBTYPE OF ( point_on_curve ); + basis_edge_curve : edge_curve; + DERIVE + SELF\point_on_curve.basis_curve : curve := SELF.basis_edge_curve.edge_geometry; + WHERE + wr1: ( SIZEOF( using_representations( SELF.basis_edge_curve ) * relating_shape_representations_of_extreme_values( SELF ) ) + > 0 ); + END_ENTITY; + + ENTITY point_on_face_surface + SUBTYPE OF ( point_on_surface ); + basis_face_surface : face_surface; + DERIVE + SELF\point_on_surface.basis_surface : surface := SELF.basis_face_surface.face_geometry; + WHERE + wr1: ( SIZEOF( using_representations( SELF.basis_face_surface ) * relating_shape_representations_of_extreme_values( SELF ) ) + > 0 ); + END_ENTITY; + + ENTITY point_on_planar_curve_pair + SUBTYPE OF ( high_order_kinematic_pair ); + pair_curve : curve; + orientation : BOOLEAN; + WHERE + wr1: ( SIZEOF( QUERY ( r <* SELF\kinematic_pair.associated_link_representations_1 | ( NOT ( pair_curve IN r.items ) ) ) ) = + 0 ); + wr2: ( SIZEOF( QUERY ( lr <* SELF\kinematic_pair.associated_link_representations_1 | ( NOT ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.RIGID_LINK_REPRESENTATION' IN TYPEOF( lr ) ) ) ) ) + = 0 ); + END_ENTITY; + + ENTITY point_on_planar_curve_pair_value + SUBTYPE OF ( pair_value ); + SELF\pair_value.applies_to_pair : point_on_planar_curve_pair; + actual_point_on_curve : point_on_curve; + input_orientation : spatial_rotation; + DERIVE + actual_orientation : ypr_rotation := convert_spatial_to_ypr_rotation( SELF\pair_value.applies_to_pair, input_orientation ); + WHERE + wr1: ( SELF\pair_value.applies_to_pair\point_on_planar_curve_pair.pair_curve :=: actual_point_on_curve.basis_curve ); + END_ENTITY; + + ENTITY point_on_planar_curve_pair_with_range + SUBTYPE OF ( point_on_planar_curve_pair ); + range_on_pair_curve : trimmed_curve; + lower_limit_yaw : OPTIONAL plane_angle_measure; + upper_limit_yaw : OPTIONAL plane_angle_measure; + lower_limit_pitch : OPTIONAL plane_angle_measure; + upper_limit_pitch : OPTIONAL plane_angle_measure; + lower_limit_roll : OPTIONAL plane_angle_measure; + upper_limit_roll : OPTIONAL plane_angle_measure; + WHERE + wr1: ( ( ( NOT EXISTS( lower_limit_pitch ) ) OR ( NOT EXISTS( upper_limit_pitch ) ) ) XOR ( lower_limit_pitch < + upper_limit_pitch ) ); + wr2: ( ( ( NOT EXISTS( lower_limit_yaw ) ) OR ( NOT EXISTS( upper_limit_yaw ) ) ) XOR ( lower_limit_yaw < upper_limit_yaw ) ); + wr3: ( ( ( NOT EXISTS( lower_limit_roll ) ) OR ( NOT EXISTS( upper_limit_roll ) ) ) XOR ( lower_limit_roll < + upper_limit_roll ) ); + wr4: ( SIZEOF( QUERY ( r <* SELF\kinematic_pair.associated_link_representations_1 | ( NOT ( range_on_pair_curve IN r.items ) ) ) ) + = 0 ); + 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_on_surface_pair + SUBTYPE OF ( high_order_kinematic_pair ); + pair_surface : surface; + WHERE + wr1: ( SIZEOF( QUERY ( r <* SELF\kinematic_pair.associated_link_representations_1 | ( NOT ( pair_surface IN r.items ) ) ) ) + = 0 ); + wr2: ( SIZEOF( QUERY ( lr <* SELF\kinematic_pair.associated_link_representations_1 | ( NOT ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.RIGID_LINK_REPRESENTATION' IN TYPEOF( lr ) ) ) ) ) + = 0 ); + END_ENTITY; + + ENTITY point_on_surface_pair_value + SUBTYPE OF ( pair_value ); + SELF\pair_value.applies_to_pair : point_on_surface_pair; + actual_point_on_surface : point_on_surface; + input_orientation : spatial_rotation; + DERIVE + actual_orientation : ypr_rotation := convert_spatial_to_ypr_rotation( SELF\pair_value.applies_to_pair, input_orientation ); + WHERE + wr1: ( SELF\pair_value.applies_to_pair\point_on_surface_pair.pair_surface :=: actual_point_on_surface.basis_surface ); + END_ENTITY; + + ENTITY point_on_surface_pair_with_range + SUBTYPE OF ( point_on_surface_pair ); + range_on_pair_surface : rectangular_trimmed_surface; + lower_limit_yaw : OPTIONAL plane_angle_measure; + upper_limit_yaw : OPTIONAL plane_angle_measure; + lower_limit_pitch : OPTIONAL plane_angle_measure; + upper_limit_pitch : OPTIONAL plane_angle_measure; + lower_limit_roll : OPTIONAL plane_angle_measure; + upper_limit_roll : OPTIONAL plane_angle_measure; + WHERE + wr1: ( ( ( NOT EXISTS( lower_limit_pitch ) ) OR ( NOT EXISTS( upper_limit_pitch ) ) ) XOR ( lower_limit_pitch < + upper_limit_pitch ) ); + wr2: ( ( ( NOT EXISTS( lower_limit_yaw ) ) OR ( NOT EXISTS( upper_limit_yaw ) ) ) XOR ( lower_limit_yaw < upper_limit_yaw ) ); + wr3: ( ( ( NOT EXISTS( lower_limit_roll ) ) OR ( NOT EXISTS( upper_limit_roll ) ) ) XOR ( lower_limit_roll < + upper_limit_roll ) ); + wr4: ( SIZEOF( QUERY ( r <* SELF\kinematic_pair.associated_link_representations_1 | ( NOT ( range_on_pair_surface IN r. + items ) ) ) ) = 0 ); + 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_placement_shape_representation + SUBTYPE OF ( shape_representation ); + SELF\representation.items : SET [1 : ?] OF point_placement_shape_representation_item; + WHERE + wr1: ( SIZEOF( QUERY ( i <* SELF.items | ( SIZEOF( [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'COMPOUND_REPRESENTATION_ITEM' , 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MAPPED_ITEM'] + * TYPEOF( i ) ) = 1 ) ) ) > 0 ); + 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 point_to_point_path + SUBTYPE OF ( path_node ); + DERIVE + SELF\kinematic_path_segment.transition : transition_code := discontinuous; + END_ENTITY; + + ENTITY polar_complex_number_region + SUBTYPE OF ( maths_space, generic_literal ); + centre : complex_number_literal; + distance_constraint : real_interval; + direction_constraint : finite_real_interval; + WHERE + wr1: ( min_exists( distance_constraint ) AND ( real_min( distance_constraint ) >= 0 ) ); + wr2: ( ( ( -PI ) <= direction_constraint.min ) AND ( direction_constraint.min < PI ) ); + wr3: ( ( direction_constraint.max - direction_constraint.min ) <= ( 2 * PI ) ); + wr4: ( ( ( direction_constraint.max - direction_constraint.min ) < ( 2 * PI ) ) OR ( direction_constraint.min_closure = + open ) ); + wr5: ( ( ( direction_constraint.max - direction_constraint.min ) < ( 2 * PI ) ) OR ( direction_constraint.max_closure = + open ) OR ( direction_constraint.min = ( -PI ) ) ); + wr6: ( ( real_min( distance_constraint ) > 0 ) OR max_exists( distance_constraint ) OR ( ( direction_constraint.max - + direction_constraint.min ) < ( 2 * PI ) ) OR ( direction_constraint.max_closure = open ) ); + END_ENTITY; + + ENTITY poly_loop + SUBTYPE OF ( loop, geometric_representation_item ); + polygon : LIST [3 : ?] OF UNIQUE cartesian_point; + END_ENTITY; + + ENTITY polygonal_area + SUBTYPE OF ( primitive_2d ); + bounds : LIST [3 : ?] OF UNIQUE cartesian_point; + END_ENTITY; + + ENTITY polyline + SUBTYPE OF ( bounded_curve ); + points : LIST [2 : ?] OF cartesian_point; + END_ENTITY; + + ENTITY port_variable + SUPERTYPE OF ( + ONEOF ( + across_port_variable, + through_port_variable, + transform_port_variable ) ) + SUBTYPE OF ( representation, representation_item ); + END_ENTITY; + + ENTITY position_tolerance + SUBTYPE OF ( geometric_tolerance ); + 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 ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CURVE_BOUNDED_SURFACE' IN TYPEOF( + sketch_basis ) ) AND ( NOT ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PLANE' IN TYPEOF( + sketch_basis\curve_bounded_surface.basis_surface ) ) ) ) ); + wr2: ( NOT ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.FACE_SURFACE' IN TYPEOF( sketch_basis ) ) + AND ( NOT ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PLANE' IN TYPEOF( sketch_basis\ + face_surface.face_geometry ) ) ) ) ); + wr3: ( SIZEOF( QUERY ( q <* auxiliary_elements | ( SIZEOF( TYPEOF( q ) * [ + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.POINT' , + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CURVE' ] ) = 0 ) ) ) = 0 ); + wr4: ( SIZEOF( QUERY ( q <* auxiliary_elements | ( q\geometric_representation_item.dim <> 3 ) ) ) = 0 ); + END_ENTITY; + + ENTITY power_expression + SUBTYPE OF ( binary_numeric_expression ); + END_ENTITY; + + ENTITY power_measure_with_unit + SUBTYPE OF ( measure_with_unit ); + WHERE + wr1: ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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_character_glyph + SUBTYPE OF ( pre_defined_item ); + 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_parallel_datum_axis_symbol_3d_2d_relationship + SUBTYPE OF ( shape_definition_3d_intersection ); + END_ENTITY; + + ENTITY pre_defined_perpendicular_datum_axis_symbol_3d_2d_relationship + SUBTYPE OF ( shape_definition_3d_intersection ); + END_ENTITY; + + ENTITY pre_defined_perpendicular_datum_plane_symbol_3d_2d_relationship + SUBTYPE OF ( shape_definition_3d_intersection ); + END_ENTITY; + + ENTITY pre_defined_physical_network_group + SUBTYPE OF ( physical_network_group ); + END_ENTITY; + + ENTITY pre_defined_physical_network_group_element_relationship + SUBTYPE OF ( physical_network_group_element_relationship ); + 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 predefined_requirement_view_definition + SUPERTYPE OF ( + ONEOF ( + assembly_spacing_requirement, + assembly_group_spacing_requirement, + item_restricted_requirement, + layout_spacing_requirement ) + ANDOR + ONEOF ( + assembly_spacing_requirement, + assembly_group_spacing_requirement, + item_restricted_requirement ) ) + SUBTYPE OF ( product_definition ); + END_ENTITY; + + ENTITY prescribed_path + SUBTYPE OF ( link_motion_representation_along_path ); + controlling_joints : OPTIONAL SET [1 : 6] OF kinematic_joint; + END_ENTITY; + + ENTITY presentation_area + SUBTYPE OF ( presentation_representation ); + WHERE + wr1: ( ( SIZEOF( QUERY ( ais <* USEDIN( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'AREA_IN_SET.AREA' ) | ( SIZEOF( USEDIN( ais, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PRESENTATION_SIZE.UNIT' ) ) = 1 ) ) ) > 0 ) OR ( SIZEOF( USEDIN( SELF, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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: ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PRESENTATION_AREA' IN TYPEOF( SELF ) ) OR ( + SIZEOF( QUERY ( prr <* USEDIN( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'REPRESENTATION_RELATIONSHIP.REP_2' ) | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PRESENTATION_REPRESENTATION' IN TYPEOF( prr\representation_relationship.rep_1 ) ) ) ) > 0 ) OR ( SIZEOF( + QUERY ( rm <* USEDIN( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'REPRESENTATION_MAP.' + 'MAPPED_REPRESENTATION' ) | ( SIZEOF( QUERY ( mi <* USEDIN( rm, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'MAPPED_ITEM.' + 'MAPPING_SOURCE' ) | ( + SIZEOF( QUERY ( rep <* using_representations( mi ) | ( ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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: ( ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PRESENTATION_REPRESENTATION' IN TYPEOF( SELF + .unit ) ) AND item_in_context( SELF.size, SELF.unit\representation.context_of_items ) ) OR ( ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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( [ + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'SURFACE_STYLE_USAGE', + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'EXTERNALLY_DEFINED_STYLE'] * TYPEOF( + style1 ) ) = 1 ) ) ) ) ) = 0 ) ) ) ) = 0 ); + wr2: ( SIZEOF( QUERY ( style1 <* SELF.styles | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'SURFACE_STYLE_USAGE' IN TYPEOF( style1 ) ) ) ) <= 2 ); + wr3: ( SIZEOF( QUERY ( style1 <* SELF.styles | ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'SURFACE_STYLE_USAGE' IN TYPEOF( style1 ) ) AND ( SIZEOF( QUERY ( style2 <* ( SELF.styles - style1 ) | ( ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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: ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 previous_change_element_assignment + SUBTYPE OF ( group_assignment ); + SELF\group_assignment.assigned_group : previous_element_assignment_select; + items : SET [1 : ?] OF change_management_object; + END_ENTITY; + + ENTITY primary_orientation_feature + SUBTYPE OF ( shape_aspect ); + WHERE + wr1: ( SELF\shape_aspect.product_definitional = TRUE ); + END_ENTITY; + + ENTITY primary_reference_terminal + SUBTYPE OF ( package_terminal ); + END_ENTITY; + + ENTITY primary_stratum_indicator_symbol + SUBTYPE OF ( single_stratum_special_symbol_component ); + END_ENTITY; + + ENTITY primitive_2d + SUPERTYPE OF ( + ONEOF ( + circular_area, + elliptic_area, + rectangular_area, + polygonal_area, + half_space_2d ) ) + SUBTYPE OF ( geometric_representation_item ); + WHERE + wr1: ( SELF\geometric_representation_item.dim = 2 ); + END_ENTITY; + + ENTITY primitive_2d_with_inner_boundary + SUBTYPE OF ( complex_area, compound_representation_item ); + SELF\compound_representation_item.item_element : compound_inner_area_boundary; + DERIVE + inner_boundary : compound_inner_area_boundary := item_element; + WHERE + wr1: ( SIZEOF( [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CIRCULAR_AREA', + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.ELLIPTIC_AREA' , + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.RECTANGULAR_AREA' , + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.POLYGONAL_AREA' , + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.AREA_WITH_OUTER_BOUNDARY' , + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PATH_AREA_WITH_PARAMETERS' ] * TYPEOF( SELF ) ) + > 0 ); + wr2: ( SIZEOF( QUERY ( inner <* inner_boundary | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PRIMITIVE_2D_WITH_INNER_BOUNDARY' IN TYPEOF( inner ) ) ) ) = 0 ); + wr3: open_path_based_inner_boundary( inner_boundary ); + END_ENTITY; + + ENTITY printed_component + ABSTRACT SUPERTYPE OF ( + ONEOF ( + single_stratum_printed_component, + basic_multi_stratum_printed_component, + multi_stratum_printed_component ) ) + SUBTYPE OF ( assembly_component ); + END_ENTITY; + + ENTITY printed_connector_component + SUBTYPE OF ( printed_component ); + END_ENTITY; + + ENTITY printed_connector_template + SUBTYPE OF ( printed_part_template ); + END_ENTITY; + + ENTITY printed_connector_template_terminal_relationship + SUBTYPE OF ( shape_aspect, shape_aspect_relationship ); + UNIQUE + ur1 : SELF\shape_aspect_relationship.relating_shape_aspect, SELF\shape_aspect_relationship.related_shape_aspect; + WHERE + wr1: ( SELF\shape_aspect_relationship.relating_shape_aspect :<>: SELF\shape_aspect_relationship.related_shape_aspect ); + END_ENTITY; + + ENTITY printed_part_cross_section_template + SUBTYPE OF ( printed_part_template ); + END_ENTITY; + + ENTITY printed_part_cross_section_template_terminal + SUBTYPE OF ( printed_part_template_terminal ); + END_ENTITY; + + ENTITY printed_part_template + ABSTRACT SUPERTYPE OF ( + ONEOF ( + basic_multi_stratum_printed_part_template, + structured_printed_part_template ) + ANDOR + printed_connector_template ) + SUBTYPE OF ( part_template_definition ); + END_ENTITY; + + ENTITY printed_part_template_connected_terminals_definition + SUBTYPE OF ( shape_aspect ); + UNIQUE + ur1 : SELF\shape_aspect.name; + END_ENTITY; + + ENTITY printed_part_template_material + SUBTYPE OF ( product_definition ); + END_ENTITY; + + ENTITY printed_part_template_material_link + SUBTYPE OF ( shape_aspect, shape_aspect_relationship ); + SELF\shape_aspect_relationship.relating_shape_aspect : template_material_cross_section_boundary; + SELF\shape_aspect_relationship.related_shape_aspect : template_material_cross_section_boundary; + UNIQUE + ur1 : SELF\shape_aspect_relationship.related_shape_aspect, SELF\shape_aspect_relationship.relating_shape_aspect; + WHERE + wr1: ( SELF\shape_aspect_relationship.related_shape_aspect :<>: SELF\shape_aspect_relationship.relating_shape_aspect ); + END_ENTITY; + + ENTITY printed_part_template_terminal + SUPERTYPE OF ( + printed_part_cross_section_template_terminal + ANDOR + structured_printed_part_template_terminal ) + SUBTYPE OF ( shape_aspect ); + END_ENTITY; + + ENTITY printed_part_template_terminal_connection_zone_category + SUBTYPE OF ( group ); + END_ENTITY; + + ENTITY printed_tiebar_template + SUBTYPE OF ( structured_printed_part_template ); + END_ENTITY; + + ENTITY prismatic_pair + SUBTYPE OF ( low_order_kinematic_pair ); + DERIVE + SELF\low_order_kinematic_pair.t_x : BOOLEAN := TRUE; + SELF\low_order_kinematic_pair.t_y : BOOLEAN := FALSE; + SELF\low_order_kinematic_pair.t_z : BOOLEAN := FALSE; + SELF\low_order_kinematic_pair.r_x : BOOLEAN := FALSE; + SELF\low_order_kinematic_pair.r_y : BOOLEAN := FALSE; + SELF\low_order_kinematic_pair.r_z : BOOLEAN := FALSE; + END_ENTITY; + + ENTITY prismatic_pair_value + SUBTYPE OF ( pair_value ); + SELF\pair_value.applies_to_pair : prismatic_pair; + actual_translation : length_measure; + END_ENTITY; + + ENTITY prismatic_pair_with_range + SUBTYPE OF ( prismatic_pair ); + lower_limit_actual_translation : OPTIONAL length_measure; + upper_limit_actual_translation : OPTIONAL length_measure; + WHERE + wr1: ( ( ( NOT EXISTS( lower_limit_actual_translation ) ) OR ( NOT EXISTS( upper_limit_actual_translation ) ) ) XOR ( + lower_limit_actual_translation < upper_limit_actual_translation ) ); + END_ENTITY; + + ENTITY probe_access_area + SUBTYPE OF ( laminate_component, shape_aspect ); + DERIVE + SELF\shape_aspect.of_shape : probe_access_area := SELF; + 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 ); + SELF\procedural_representation_sequence.elements : LIST [1 : ?] OF shape_representation_item; + END_ENTITY; + + ENTITY process_operation + SUBTYPE OF ( action_method ); + WHERE + wr1: ( SIZEOF( QUERY ( amr <* USEDIN( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'ACTION_METHOD_RELATIONSHIP.' + 'RELATING_METHOD' ) | ( ( NOT ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROCESS_OPERATION' IN TYPEOF( amr\ + action_method_relationship.related_method ) ) ) OR ( SELF :=: amr\action_method_relationship.related_method ) ) ) ) + = 0 ); + wr2: ( SIZEOF( QUERY ( amr <* USEDIN( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'ACTION_METHOD_RELATIONSHIP.' + 'RELATED_METHOD' ) | ( ( NOT ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROCESS_OPERATION' IN TYPEOF( amr\ + action_method_relationship.relating_method ) ) ) OR ( SELF :=: amr\action_method_relationship.relating_method ) ) ) ) + = 0 ); + END_ENTITY; + + ENTITY process_plan + SUBTYPE OF ( action ); + WHERE + wr1: ( SIZEOF( QUERY ( ar <* USEDIN( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'ACTION_RELATIONSHIP.RELATED_ACTION' ) | ( SIZEOF( [ + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROCESS_PLAN' , + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PRODUCT_PROCESS_PLAN' ] * TYPEOF( ar. + relating_action ) ) <> 1 ) ) ) = 0 ); + wr2: ( SIZEOF( QUERY ( ar <* USEDIN( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'ACTION_RELATIONSHIP.RELATING_ACTION' ) | ( ( SIZEOF( [ + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROCESS_PLAN' , + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PRODUCT_PROCESS_PLAN' ] * TYPEOF( ar. + related_action ) ) = 1 ) OR ( ( ar.name = 'process operation occurrence' ) AND ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROCESS_OPERATION' IN TYPEOF( ar. + related_action.chosen_method ) ) ) ) ) ) = SIZEOF( USEDIN( SELF, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'ACTION_RELATIONSHIP.RELATING_ACTION' ) ) ); + END_ENTITY; + + ENTITY process_product_association; + name : label; + description : text; + defined_product : characterized_product_definition; + process : product_definition_process; + END_ENTITY; + + ENTITY process_property_association; + name : label; + description : text; + process : property_process; + property_or_shape : property_or_shape_select; + END_ENTITY; + + ENTITY product; + id : identifier; + name : label; + description : OPTIONAL text; + frame_of_reference : SET [1 : ?] OF product_context; + END_ENTITY; + + ENTITY product_as_planned + SUBTYPE OF ( product_definition_formation ); + END_ENTITY; + + ENTITY product_category; + name : label; + description : OPTIONAL text; + DERIVE + id : identifier := get_id_value( SELF ); + WHERE + wr1: ( SIZEOF( USEDIN( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'ID_ATTRIBUTE.' + + 'IDENTIFIED_ITEM' ) ) <= 1 ); + END_ENTITY; + + ENTITY product_category_relationship; + name : label; + description : OPTIONAL text; + category : product_category; + sub_category : product_category; + WHERE + wr1: acyclic_product_category_relationship( SELF, [SELF.sub_category] ); + 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, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'GROUP_ASSIGNMENT.ASSIGNED_GROUP' ) | ( ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'APPLIED_GROUP_ASSIGNMENT' ) IN TYPEOF( aga ) ) AND ( ( aga\group_assignment.role\object_role.name <> + 'specification category member' ) OR ( SIZEOF( QUERY ( i <* aga\applied_group_assignment.items | ( ( ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'PRODUCT_CONCEPT_FEATURE' ) IN TYPEOF( i ) ) + AND ( NOT ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'CONDITIONAL_CONCEPT_FEATURE' ) + IN TYPEOF( i ) ) ) ) ) ) <> SIZEOF( aga\applied_group_assignment.items ) ) ) ) ) ) = 0 ); + END_ENTITY; + + ENTITY product_concept_feature_category_usage + SUBTYPE OF ( group_assignment ); + SELF\group_assignment.assigned_group : product_concept_feature_category; + items : SET [1 : ?] OF category_usage_item; + 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_data_and_data_quality_relationship; + description : text; + product_data : product_definition; + data_quality : data_quality_definition; + END_ENTITY; + + ENTITY product_definition + SUPERTYPE OF ( + ONEOF ( + composite_assembly_sequence_definition, + laminate_table, + ply_laminate_sequence_definition ) + ANDOR + ONEOF ( + physical_unit, + stratum ) ); + 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, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 ); + SELF\group_assignment.assigned_group : product_definition_element_relationship; + items : SET [1 : 1] OF product_definition_or_product_definition_relationship; + END_ENTITY; + + ENTITY product_definition_kinematics + SUBTYPE OF ( property_definition ); + SELF\property_definition.definition : product_definition; + INVERSE + representation_relation : kinematic_property_definition_representation FOR definition; + UNIQUE + ur1 : definition; + 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_process + SUBTYPE OF ( action ); + identification : identifier; + INVERSE + product_definitions : SET [1 : ?] OF process_product_association FOR process; + END_ENTITY; + + ENTITY product_definition_reference + SUBTYPE OF ( generic_product_definition_reference ); + product_id : identifier; + product_definition_formation_id : identifier; + product_definition_id : identifier; + id_owning_organization_name : OPTIONAL label; + END_ENTITY; + + ENTITY product_definition_reference_with_local_representation + SUBTYPE OF ( generic_product_definition_reference, product_definition ); + END_ENTITY; + + ENTITY product_definition_relationship; + id : identifier; + name : label; + description : OPTIONAL text; + relating_product_definition : product_definition_or_reference; + related_product_definition : product_definition_or_reference; + END_ENTITY; + + ENTITY product_definition_relationship_kinematics + SUBTYPE OF ( property_definition ); + SELF\property_definition.definition : product_definition_relationship; + UNIQUE + ur1 : definition; + END_ENTITY; + + ENTITY product_definition_resource + SUBTYPE OF ( action_resource, product_definition ); + WHERE + wr1: ( SIZEOF( USEDIN( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'REQUIREMENT_FOR_ACTION_RESOURCE.RESOURCES' ) ) > 0 ); + wr2: ( SELF.frame_of_reference.name IN [ 'part definition', 'part occurrence', 'physical occurrence'] ); + END_ENTITY; + + ENTITY product_definition_shape + SUBTYPE OF ( property_definition ); + UNIQUE + ur1 : SELF\property_definition.definition; + WHERE + wr1: ( SIZEOF( [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CHARACTERIZED_PRODUCT_DEFINITION', + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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], + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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_design_to_individual + SUBTYPE OF ( product_relationship ); + DERIVE + individual_product : product := SELF\product_relationship.related_product; + product_design : product := SELF\product_relationship.relating_product; + END_ENTITY; + + ENTITY product_design_version_to_individual + SUBTYPE OF ( product_definition_formation_relationship ); + DERIVE + individual_product : product_definition_formation := SELF\product_definition_formation_relationship. + related_product_definition_formation; + product_design_version : product_definition_formation := SELF\product_definition_formation_relationship. + relating_product_definition_formation; + 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, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'CONFIGURATION_DESIGN.CONFIGURATION' ) | ( ( ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'PRODUCT_DEFINITION_FORMATION' ) IN + TYPEOF( cd.design ) ) AND ( SIZEOF( QUERY ( prpc <* USEDIN( cd.design\product_definition_formation.of_product, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PRODUCT_RELATED_PRODUCT_CATEGORY.PRODUCTS' ) + | ( prpc.name IN [ 'part', 'raw material', 'tool'] ) ) ) > 0 ) ) ) ) <= 1 ); + wr2: ( ( NOT ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'CONFIGURABLE_ITEM' ) IN TYPEOF( + SELF ) ) ) XOR ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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_planned_to_realized + SUBTYPE OF ( product_definition_formation_relationship ); + DERIVE + planned_product : product_definition_formation := SELF\product_definition_formation_relationship. + relating_product_definition_formation; + realized_product : product_definition_formation := SELF\product_definition_formation_relationship. + related_product_definition_formation; + END_ENTITY; + + ENTITY product_process_plan + SUBTYPE OF ( product_definition_process ); + WHERE + wr1: ( SIZEOF( QUERY ( ar <* USEDIN( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'ACTION_RELATIONSHIP.RELATED_ACTION' ) | ( SIZEOF( [ + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROCESS_PLAN' , + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PRODUCT_PROCESS_PLAN' ] * TYPEOF( ar. + relating_action ) ) <> 1 ) ) ) = 0 ); + wr2: ( SIZEOF( QUERY ( ar <* USEDIN( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'ACTION_RELATIONSHIP.RELATING_ACTION' ) | ( ( SIZEOF( [ + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROCESS_PLAN' , + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PRODUCT_PROCESS_PLAN' ] * TYPEOF( ar. + related_action ) ) = 1 ) OR ( ( ar.name = 'process operation occurrence' ) AND ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROCESS_OPERATION' IN TYPEOF( ar. + related_action.chosen_method ) ) ) ) ) ) = SIZEOF( USEDIN( SELF, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'ACTION_RELATIONSHIP.RELATING_ACTION' ) ) ); + wr3: ( SIZEOF( QUERY ( ppa <* USEDIN( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PROCESS_PRODUCT_ASSOCIATION.PROCESS' ) | ( ( ppa.name <> 'produced output' ) OR ( NOT ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PRODUCT_DEFINITION' IN TYPEOF( ppa. + defined_product ) ) ) ) ) ) = 0 ); + END_ENTITY; + + ENTITY product_related_product_category + SUBTYPE OF ( product_category ); + products : SET [1 : ?] OF product; + END_ENTITY; + + ENTITY product_relationship; + id : identifier; + name : label; + description : OPTIONAL text; + relating_product : product; + related_product : product; + END_ENTITY; + + ENTITY product_specific_parameter_value_assignment + SUBTYPE OF ( characterized_object, product_related_product_category ); + END_ENTITY; + + ENTITY product_specification + SUBTYPE OF ( product_identification, configurable_item ); + END_ENTITY; + + ENTITY profile_floor + SUBTYPE OF ( shape_aspect ); + WHERE + wr1 : ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.FEATURE_COMPONENT_DEFINITION' IN TYPEOF( SELF. + of_shape.definition ) ); + wr2 : ( SELF.description IN [ 'planar', 'complex', 'through'] ); + wr3 : ( ( NOT ( SELF.description IN [ 'planar', 'complex'] ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( + SIZEOF( QUERY ( pdr <* USEDIN( pd, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN + TYPEOF( pdr.used_representation ) ) ) ) = 1 ) ) ) ) = 0 ) ); + wr4 : ( ( NOT ( SELF.description IN [ 'planar', 'complex'] ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( + SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) + | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN + TYPEOF( pdr.used_representation ) ) ) | ( ( NOT ( SIZEOF( impl_rep.used_representation.items ) >= 1 ) ) AND ( + SIZEOF( impl_rep.used_representation.items ) <= 2 ) ) ) ) = 0 ) ) ) ) = 0 ) ); + wr5 : ( ( NOT ( SELF.description = 'through' ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( + SIZEOF( QUERY ( pdr <* USEDIN( pd, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN + TYPEOF( pdr.used_representation ) ) ) ) = 0 ) ) ) ) = 0 ) ); + wr6 : ( ( NOT ( SELF.description IN [ 'planar', 'complex'] ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( + SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) + | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN + TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( + SIZEOF( [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( it ) ) + = 2 ) AND ( it.name = 'radius' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ) ); + wr7 : ( SIZEOF( QUERY ( fcr <* QUERY ( sar <* USEDIN( SELF, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.' + + 'RELATING_SHAPE_ASPECT' ) | ( ( sar.description = 'profile floor usage' ) AND ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF( + sar ) ) ) ) | ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.OUTSIDE_PROFILE' IN TYPEOF( + fcr.related_shape_aspect.of_shape.definition ) ) AND ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROFILE_FLOOR' IN TYPEOF( fcr. + relating_shape_aspect ) ) ) ) ) >= 1 ); + wr8 : ( ( NOT ( SELF.description IN [ 'planar', 'complex'] ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( + SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) + | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN + TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF( + it ) ) AND ( it.name = 'shape profile floor orientation' ) AND ( it.description IN [ 'shape profile start', + 'shape profile end' ] ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ) ); + wr9 : ( ( NOT ( SELF.description = 'complex' ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( + SIZEOF( QUERY ( pdr <* USEDIN( pd, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.FACE_SHAPE_REPRESENTATION' IN TYPEOF( pdr. + used_representation ) ) AND ( pdr.used_representation.name = 'floor' ) ) ) ) = 1 ) ) ) ) = 1 ) ); + wr10: ( ( NOT ( SELF.description = 'planar' ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( + SIZEOF( QUERY ( pdr <* USEDIN( pd, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PLANAR_SHAPE_REPRESENTATION' IN TYPEOF( pdr. + used_representation ) ) AND ( pdr.used_representation.name = 'floor' ) ) ) ) = 1 ) ) ) ) = 1 ) ); + END_ENTITY; + + ENTITY projected_zone_definition + SUBTYPE OF ( tolerance_zone_definition ); + projection_end : shape_aspect; + projected_length : 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 ) ); + wr2: ( derive_dimensional_exponents( projected_length\measure_with_unit.unit_component ) = dimensional_exponents( 1, 0, 0, + 0, 0, 0, 0 ) ); + END_ENTITY; + + ENTITY projected_zone_definition_with_offset + SUBTYPE OF ( projected_zone_definition ); + offset : length_measure_with_unit; + 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 | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROJECTION_CURVE' IN TYPEOF( p_1 ) ) ) ) <= 2 ); + wr2: ( SIZEOF( SELF\draughting_callout.contents ) >= 2 ); + END_ENTITY; + + ENTITY promissory_usage_occurrence + SUBTYPE OF ( assembly_component_usage ); + END_ENTITY; + + ENTITY property_definition + SUPERTYPE OF ( + ONEOF ( + stratum_technology_occurrence_relationship, + stratum_technology_occurrence ) + ANDOR + ONEOF ( + product_definition_kinematics, + product_definition_relationship_kinematics, + product_definition_shape ) ); + name : label; + description : OPTIONAL text; + definition : characterized_definition; + DERIVE + id : identifier := get_id_value( SELF ); + WHERE + wr1: ( SIZEOF( USEDIN( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'ID_ATTRIBUTE.' + + 'IDENTIFIED_ITEM' ) ) <= 1 ); + END_ENTITY; + + ENTITY property_definition_relationship + SUPERTYPE OF ( + ONEOF ( + stratum_technology_occurrence_relationship, + stratum_technology_swap_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, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'DESCRIPTION_ATTRIBUTE.' + + 'DESCRIBED_ITEM' ) ) <= 1 ); + wr2: ( SIZEOF( USEDIN( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'NAME_ATTRIBUTE.' + + 'NAMED_ITEM' ) ) <= 1 ); + END_ENTITY; + + ENTITY property_process + SUBTYPE OF ( action ); + identification : identifier; + INVERSE + properties : SET [1 : ?] OF process_property_association FOR process; + END_ENTITY; + + ENTITY protocol_physical_layer_definition + SUBTYPE OF ( product_definition ); + END_ENTITY; + + ENTITY protocol_physical_layer_definition_with_characterization + SUBTYPE OF ( protocol_physical_layer_definition ); + END_ENTITY; + + ENTITY protocol_requirement_allocation_to_part_terminal + SUBTYPE OF ( requirement_assignment ); + END_ENTITY; + + ENTITY protrusion + SUBTYPE OF ( feature_definition ); + WHERE + wr1: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) + | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN + TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( impl_rep.used_representation.items ) = 1 ) ) ) ) = 0 ) ) ) ) + = 0 ); + wr2: ( SIZEOF( QUERY ( pds <* QUERY ( pd <* USEDIN( SELF, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) + | ( NOT ( SIZEOF( QUERY ( sa_occ <* USEDIN( pds, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) | ( ( sa_occ. + description = 'shape volume occurrence' ) AND ( SIZEOF( QUERY ( sdr <* QUERY ( sar <* USEDIN( sa_occ, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT' ) + | ( ( sar.description = 'volume shape usage' ) AND ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF( sar ) ) ) ) + | ( sdr.relating_shape_aspect.description = 'volume shape' ) ) ) = 1 ) ) ) ) = 1 ) ) ) ) = 0 ); + wr3: ( SIZEOF( QUERY ( pdr <* get_property_definition_representations( SELF ) | ( ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PLANAR_SHAPE_REPRESENTATION' IN TYPEOF( pdr. + used_representation ) ) AND ( pdr.used_representation.name = 'maximum feature limit' ) ) ) ) >= 0 ); + END_ENTITY; + + ENTITY qualified_representation_item + SUBTYPE OF ( representation_item ); + qualifiers : SET [1 : ?] OF value_qualifier; + WHERE + wr1: ( SIZEOF( QUERY ( temp <* qualifiers | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 quantifier_expression + ABSTRACT SUPERTYPE + SUBTYPE OF ( multiple_arity_generic_expression ); + variables : LIST [1 : ?] OF UNIQUE generic_variable; + WHERE + wr1: ( SIZEOF( QUERY ( vrbl <* variables | ( NOT ( vrbl IN SELF\multiple_arity_generic_expression.operands ) ) ) ) = 0 ); + wr2: ( SIZEOF( QUERY ( vrbl <* variables | ( NOT ( ( schema_prefix + 'BOUND_VARIABLE_SEMANTICS' ) IN TYPEOF( vrbl. + interpretation.semantics ) ) ) ) ) = 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 rack_and_pinion_pair + SUBTYPE OF ( low_order_kinematic_pair_with_motion_coupling ); + pinion_radius : length_measure; + WHERE + wr1: ( SIZEOF( QUERY ( lr <* SELF\kinematic_pair.associated_link_representations_1 | ( NOT ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.RIGID_LINK_REPRESENTATION' IN TYPEOF( lr ) ) ) ) ) + = 0 ); + END_ENTITY; + + ENTITY rack_and_pinion_pair_value + SUBTYPE OF ( pair_value ); + SELF\pair_value.applies_to_pair : rack_and_pinion_pair; + actual_displacement : length_measure; + DERIVE + actual_rotation : plane_angle_measure := 0; + END_ENTITY; + + ENTITY rack_and_pinion_pair_with_range + SUBTYPE OF ( rack_and_pinion_pair ); + lower_limit_rack_displacement : OPTIONAL length_measure; + upper_limit_rack_displacement : OPTIONAL length_measure; + WHERE + wr1: ( ( ( NOT EXISTS( lower_limit_rack_displacement ) ) OR ( NOT EXISTS( upper_limit_rack_displacement ) ) ) XOR ( + lower_limit_rack_displacement < upper_limit_rack_displacement ) ); + END_ENTITY; + + ENTITY radioactivity_measure_with_unit + SUBTYPE OF ( measure_with_unit ); + WHERE + wr1: ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PROJECTION_CURVE' IN TYPEOF( con ) ) ) ) <= 1 ); + END_ENTITY; + + ENTITY radius_geometric_constraint + SUBTYPE OF ( explicit_geometric_constraint ); + SELF\explicit_constraint.constrained_elements : SET [1 : ?] OF radial_geometry_constraint_element; + WHERE + wr1: ( SIZEOF( SELF\explicit_constraint.reference_elements ) = 0 ); + 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: ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 ) AND ( SELF\named_unit.dimensions.mass_exponent = 0 ) AND ( SELF\ + named_unit.dimensions.time_exponent = 0 ) AND ( SELF\named_unit.dimensions.electric_current_exponent = 0 ) AND ( + SELF\named_unit.dimensions.thermodynamic_temperature_exponent = 0 ) AND ( SELF\named_unit.dimensions. + amount_of_substance_exponent = 0 ) AND ( SELF\named_unit.dimensions.luminous_intensity_exponent = 0 ) ); + END_ENTITY; + + 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 ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.INT_LITERAL' IN TYPEOF( operand ) ) ) ) ) = 0 ); + END_ENTITY; + + ENTITY rationalize_function + SUBTYPE OF ( maths_function, unary_generic_expression ); + SELF\unary_generic_expression.operand : maths_function; + DERIVE + fun : maths_function := SELF\unary_generic_expression.operand; + WHERE + wr1: ( ( space_dimension( fun.domain ) = 1 ) AND ( space_dimension( fun.range ) = 1 ) ); + wr2: number_tuple_subspace_check( factor1( fun.range ) ); + wr3: ( space_dimension( factor1( fun.range ) ) > 1 ); + END_ENTITY; + + ENTITY real_defined_function + ABSTRACT SUPERTYPE + SUBTYPE OF ( numeric_defined_function ); + END_ENTITY; + + ENTITY real_interval_from_min + SUBTYPE OF ( maths_space, generic_literal ); + min : REAL; + min_closure : open_closed; + END_ENTITY; + + ENTITY real_interval_to_max + SUBTYPE OF ( maths_space, generic_literal ); + max : REAL; + max_closure : open_closed; + END_ENTITY; + + ENTITY real_literal + SUBTYPE OF ( literal_number ); + SELF\literal_number.the_value : REAL; + END_ENTITY; + + ENTITY real_numeric_variable + SUBTYPE OF ( numeric_variable ); + END_ENTITY; + + ENTITY real_representation_item + SUBTYPE OF ( representation_item, real_literal ); + END_ENTITY; + + ENTITY real_tuple_literal + SUBTYPE OF ( generic_literal ); + lit_value : LIST [1 : ?] OF REAL; + END_ENTITY; + + ENTITY rectangular_area + SUBTYPE OF ( primitive_2d ); + position : axis2_placement_2d; + x : positive_length_measure; + y : positive_length_measure; + END_ENTITY; + + ENTITY rectangular_array_placement_group_component + SUBTYPE OF ( array_placement_group ); + END_ENTITY; + + ENTITY rectangular_closed_profile + SUBTYPE OF ( shape_aspect ); + WHERE + wr1: ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.FEATURE_COMPONENT_DEFINITION' IN TYPEOF( SELF. + of_shape.definition ) ); + wr2: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( pdr <* USEDIN( pd, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) + | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN + TYPEOF( pdr.used_representation ) ) ) ) = 1 ) ) ) ) = 0 ); + wr3: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) + | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN + TYPEOF( pdr.used_representation ) ) ) | ( NOT ( ( SIZEOF( impl_rep.used_representation.items ) >= 3 ) AND ( + SIZEOF( impl_rep.used_representation.items ) <= 4 ) ) ) ) ) = 0 ) ) ) ) = 0 ); + wr4: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION.DEFINITION' ) | ( SIZEOF( QUERY ( pdr <* USEDIN( pd, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) + | ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN + TYPEOF( pdr.used_representation ) ) AND ( SIZEOF( QUERY ( srwp_i <* pdr.used_representation.items | ( ( srwp_i.name + = 'orientation' ) OR ( srwp_i.name = 'length' ) OR ( srwp_i.name = 'width' ) OR ( srwp_i.name = 'corner radius' ) ) ) ) + = SIZEOF( pdr.used_representation.items ) ) ) ) ) = 1 ) ) ) = 1 ); + wr5: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) + | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN + TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PLACEMENT' IN TYPEOF( it ) ) AND ( it.name = + 'orientation' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ); + wr6: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) + | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN + TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( + SIZEOF( [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( it ) ) = + 2 ) AND ( it.name = 'width' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ); + wr7: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) + | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN + TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( + SIZEOF( [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( it ) ) = + 2 ) AND ( it.name = 'length' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ); + wr8: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) + | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN + TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( + SIZEOF( [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( it ) ) = + 2 ) AND ( it.name = 'corner radius' ) ) ) ) <= 1 ) ) ) ) = 0 ) ) ) ) = 0 ); + END_ENTITY; + + ENTITY rectangular_composite_array_shape_aspect + SUBTYPE OF ( composite_array_shape_aspect ); + 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_composite_surface_transition_locator + SUBTYPE OF ( founded_item ); + basis_surface : rectangular_composite_surface; + surface_parameter : u_or_v_parameter; + u_transition_index : INTEGER; + v_transition_index : INTEGER; + WHERE + wr1: ( SIZEOF( using_representations( SELF.basis_surface ) * relating_shape_representations_of_extreme_values( SELF ) ) > 0 ); + END_ENTITY; + + ENTITY rectangular_pattern + SUBTYPE OF ( replicate_feature ); + WHERE + wr1 : ( SIZEOF( QUERY ( pds <* QUERY ( pd <* USEDIN( SELF, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) + | ( NOT ( SIZEOF( QUERY ( sa_occ <* USEDIN( pds, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) | ( SIZEOF( + QUERY ( sdr <* QUERY ( sar <* USEDIN( sa_occ, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'SHAPE_ASPECT_RELATIONSHIP.' + 'RELATING_SHAPE_ASPECT' ) | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF( + sar ) ) ) | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT' IN TYPEOF( sdr. + related_shape_aspect ) ) ) ) = 1 ) ) ) <= 5 ) ) ) ) = 0 ); + wr2 : ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( pdr <* USEDIN( pd, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) + | ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.DIRECTION_SHAPE_REPRESENTATION' IN + TYPEOF( pdr.used_representation ) ) AND ( pdr.used_representation.name = 'row layout direction' ) ) ) ) = 1 ) ) ) ) + = 0 ); + wr3 : ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( pdr <* USEDIN( pd, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) + | ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.DIRECTION_SHAPE_REPRESENTATION' IN + TYPEOF( pdr.used_representation ) ) AND ( pdr.used_representation.name = 'column layout direction' ) ) ) ) = 1 ) ) ) ) + = 0 ); + wr4 : ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( pdr <* USEDIN( pd, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) + | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN + TYPEOF( pdr.used_representation ) ) ) ) = 1 ) ) ) ) = 0 ); + wr5 : ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) + | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN + TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( impl_rep.used_representation.items ) = 5 ) ) ) ) = 0 ) ) ) ) + = 0 ); + wr6 : ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) + | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN + TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM' IN TYPEOF( it ) ) + AND ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.COUNT_MEASURE' IN TYPEOF( it\ + measure_with_unit.value_component ) ) AND ( it.name = 'number of rows' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ); + wr7 : ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) + | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN + TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM' IN TYPEOF( it ) ) + AND ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.COUNT_MEASURE' IN TYPEOF( it\ + measure_with_unit.value_component ) ) AND ( it.name = 'number of columns' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ); + wr8 : ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) + | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN + TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( + SIZEOF( [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( it ) ) + = 2 ) AND ( it.name = 'row spacing' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ); + wr9 : ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) + | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN + TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( + SIZEOF( [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( it ) ) + = 2 ) AND ( it.name = 'column spacing' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ); + wr10: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) + | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN + TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PLACEMENT' IN TYPEOF( it ) ) AND ( it.name = + 'orientation' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ); + 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: ( ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.ELEMENTARY_SURFACE' IN TYPEOF( basis_surface ) ) + AND ( NOT ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PLANE' IN TYPEOF( basis_surface ) ) ) ) + OR ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SURFACE_OF_REVOLUTION' IN TYPEOF( + basis_surface ) ) OR ( usense = ( u2 > u1 ) ) ); + wr4: ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SPHERICAL_SURFACE' IN TYPEOF( basis_surface ) ) + OR ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.TOROIDAL_SURFACE' IN TYPEOF( basis_surface ) ) + OR ( vsense = ( v2 > v1 ) ) ); + END_ENTITY; + + ENTITY reference_composition_path + SUBTYPE OF ( applied_group_assignment, product_definition ); + END_ENTITY; + + ENTITY reference_graphic_registration_mark + SUBTYPE OF ( shape_aspect ); + WHERE + wr1: ( SELF\shape_aspect.product_definitional = FALSE ); + END_ENTITY; + + ENTITY referenced_modified_datum + SUBTYPE OF ( datum_reference ); + modifier : limit_condition; + END_ENTITY; + + ENTITY region_based_derived_pattern + SUBTYPE OF ( shape_aspect ); + END_ENTITY; + + ENTITY reindexed_array_function + SUBTYPE OF ( maths_function, unary_generic_expression ); + SELF\unary_generic_expression.operand : maths_function; + starting_indices : LIST [1 : ?] OF INTEGER; + WHERE + wr1: function_is_array( SELF\unary_generic_expression.operand ); + wr2: ( SIZEOF( starting_indices ) = SIZEOF( shape_of_array( SELF\unary_generic_expression.operand ) ) ); + END_ENTITY; + + ENTITY relative_event_occurrence + SUBTYPE OF ( event_occurrence ); + base_event : event_occurrence; + offset : time_measure_with_unit; + END_ENTITY; + + ENTITY removal_volume + SUBTYPE OF ( feature_definition ); + WHERE + wr1: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) + | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN + TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( impl_rep.used_representation.items ) = 1 ) ) ) ) = 0 ) ) ) ) + = 0 ); + wr2: ( SIZEOF( QUERY ( pds <* QUERY ( pd <* USEDIN( SELF, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) + | ( NOT ( SIZEOF( QUERY ( sa_occ <* USEDIN( pds, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) | ( ( sa_occ. + description = 'shape volume occurrence' ) AND ( SIZEOF( QUERY ( sdr <* QUERY ( sar <* USEDIN( sa_occ, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.' + + 'RELATED_SHAPE_ASPECT' ) | ( ( sar.description = 'volume shape usage' ) AND ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF( sar ) ) ) ) + | ( sdr.relating_shape_aspect.description = 'volume shape' ) ) ) = 1 ) ) ) ) = 1 ) ) ) ) = 0 ); + END_ENTITY; + + ENTITY rep_item_group + SUBTYPE OF ( group, representation_item ); + WHERE + wr1: ( SIZEOF( USEDIN( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PRESENTATION_LAYER_ASSIGNMENT.' + 'ASSIGNED_ITEMS' ) ) > 0 ); + wr2: ( SIZEOF( QUERY ( r <* USEDIN( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'REPRESENTATION.' + 'ITEMS' ) | ( r.name = 'group representation' ) ) ) > 0 ); + wr3: ( SIZEOF( QUERY ( ga <* USEDIN( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'GROUP_ASSIGNMENT.' + 'ASSIGNED_GROUP' ) | ( ga.role.name <> 'group membership' ) ) ) = 0 ); + wr4: ( SIZEOF( [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'GEOMETRIC_REPRESENTATION_ITEM', + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'TOPOLOGICAL_REPRESENTATION_ITEM', + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'MAPPED_ITEM', + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'STYLED_ITEM'] * TYPEOF( SELF ) ) = 1 ); + END_ENTITY; + + ENTITY repackaging_function + SUBTYPE OF ( maths_function, unary_generic_expression ); + SELF\unary_generic_expression.operand : maths_function; + input_repack : repackage_options; + output_repack : repackage_options; + selected_output : nonnegative_integer; + WHERE + wr1: ( ( input_repack <> ro_wrap_as_tuple ) OR ( ( space_dimension( operand.domain ) = 1 ) AND ( ( schema_prefix + + 'TUPLE_SPACE' ) IN TYPEOF( factor1( operand.domain ) ) ) ) ); + wr2: ( ( output_repack <> ro_unwrap_tuple ) OR ( ( space_dimension( operand.range ) = 1 ) AND ( ( schema_prefix + + 'TUPLE_SPACE' ) IN TYPEOF( factor1( operand.range ) ) ) ) ); + wr3: ( selected_output <= space_dimension( repackage( operand.range, output_repack ) ) ); + END_ENTITY; + + ENTITY reparametrised_composite_curve_segment + SUBTYPE OF ( composite_curve_segment ); + param_length : parameter_value; + WHERE + wr1: ( param_length > 0 ); + END_ENTITY; + + ENTITY replicate_feature + SUPERTYPE OF ( + ONEOF ( + circular_pattern, + rectangular_pattern, + feature_pattern ) ) + SUBTYPE OF ( feature_definition ); + WHERE + wr1: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( pdr <* USEDIN( pd, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) + | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN + TYPEOF( pdr.used_representation ) ) ) ) = 1 ) ) ) ) = 0 ); + wr2: ( SIZEOF( QUERY ( fcr <* QUERY ( sar <* USEDIN( SELF, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.' + + 'RELATING_SHAPE_ASPECT' ) | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF( sar ) ) ) | ( ( SIZEOF( [ + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.REPLICATE_FEATURE' , + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.INSTANCED_FEATURE' ] * TYPEOF( fcr. + related_shape_aspect ) ) >= 1 ) AND ( fcr.name = 'pattern basis' ) ) ) ) = 1 ); + wr3: ( ( SIZEOF( QUERY ( sar <* USEDIN( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'SHAPE_ASPECT_RELATIONSHIP.' + 'RELATING_SHAPE_ASPECT' ) | ( NOT ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF( + sar ) ) ) ) ) + SIZEOF( QUERY ( sar <* USEDIN( SELF, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.' + + 'RELATED_SHAPE_ASPECT' ) | ( NOT ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF( sar ) ) ) ) ) ) = 0 ); + END_ENTITY; + + ENTITY repositioned_neutral_sketch + SUBTYPE OF ( mapped_item, geometric_representation_item ); + DERIVE + map : representation_map := SELF\mapped_item.mapping_source; + WHERE + wr1: ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.NEUTRAL_SKETCH_REPRESENTATION' IN TYPEOF( map. + mapped_representation ) ); + wr2: ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.AXIS2_PLACEMENT_2D' IN TYPEOF( map. + mapping_origin ) ); + wr3: ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.AXIS2_PLACEMENT_3D' IN TYPEOF( SELF\mapped_item. + mapping_target ) ); + END_ENTITY; + + ENTITY repositioned_tessellated_item + SUBTYPE OF ( tessellated_item ); + location : axis2_placement_3d; + WHERE + wr1: ( NOT ( SIZEOF( [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.TESSELLATED_CURVE_SET', + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.TESSELLATED_GEOMETRIC_SET' , + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.TESSELLATED_POINT_SET' , + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.TESSELLATED_SURFACE_SET' , + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.TESSELLATED_SHELL' , + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.TESSELLATED_SOLID' , + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.TESSELLATED_WIRE' ] * TYPEOF( SELF ) ) = 0 ) ); + END_ENTITY; + + ENTITY representation + SUPERTYPE OF ( + ONEOF ( + interpolated_configuration_representation, + link_motion_representation_along_path ) + ANDOR + ONEOF ( + kinematic_link_representation, + kinematic_topology_structure, + kinematic_topology_directed_structure, + kinematic_topology_network_structure, + mechanism_representation, + shape_representation ) + ANDOR + ONEOF ( + kinematic_topology_structure, + kinematic_topology_directed_structure, + kinematic_topology_network_structure ) ); + name : label; + items : SET [1 : ?] OF representation_item; + context_of_items : representation_context; + DERIVE + id : identifier := get_id_value( SELF ); + description : text := get_description_value( SELF ); + WHERE + wr1: ( SIZEOF( USEDIN( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'ID_ATTRIBUTE.' + + 'IDENTIFIED_ITEM' ) ) <= 1 ); + wr2: ( SIZEOF( USEDIN( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 ) + ANDOR + ONEOF ( + boolean_representation_item, + date_representation_item, + date_time_representation_item, + integer_representation_item, + logical_representation_item, + rational_representation_item, + real_representation_item ) + ANDOR + ONEOF ( + mapped_item, + styled_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_proxy_item + SUBTYPE OF ( representation_item ); + 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 representative_shape_representation + SUBTYPE OF ( shape_representation ); + WHERE + wr1: ( unique_in_product_definition( SELF ) OR unique_in_shape_aspect( SELF ) ); + END_ENTITY; + + ENTITY requirement_assigned_object + SUBTYPE OF ( group_assignment ); + SELF\group_assignment.assigned_group : requirement_assignment; + items : SET [1 : 1] OF requirement_assigned_item; + END_ENTITY; + + ENTITY requirement_assignment + SUBTYPE OF ( characterized_object, group ); + END_ENTITY; + + ENTITY requirement_for_action_resource + SUBTYPE OF ( action_resource_requirement ); + resources : SET [1 : ?] OF action_resource; + 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: ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 resource_property; + name : label; + description : text; + resource : characterized_resource_definition; + END_ENTITY; + + ENTITY resource_property_representation; + name : label; + description : text; + property : resource_property; + representation : representation; + END_ENTITY; + + ENTITY resource_requirement_type; + name : label; + description : text; + END_ENTITY; + + ENTITY restriction_function + SUBTYPE OF ( maths_function, unary_generic_expression ); + SELF\unary_generic_expression.operand : maths_space; + END_ENTITY; + + ENTITY resulting_path + SUBTYPE OF ( link_motion_representation_along_path ); + controlling_joints : SET [1 : ?] OF kinematic_joint; + END_ENTITY; + + ENTITY retention + SUBTYPE OF ( action ); + WHERE + wr1: ( SIZEOF( QUERY ( aa <* USEDIN( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'ACTION_ASSIGNMENT.ASSIGNED_ACTION' ) | ( ( 'ACTIVITY.APPLIED_ACTION_ASSIGNMENT' IN TYPEOF( aa ) ) AND ( aa.role. + name = 'retention' ) ) ) ) >= 1 ); + wr2: ( ( SIZEOF( QUERY ( atia <* USEDIN( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'APPLIED_TIME_INTERVAL_ASSIGNMENT.ITEMS' ) | ( atia.role.name = 'minimum retention period' ) ) ) = 1 ) AND ( + SIZEOF( QUERY ( atia <* USEDIN( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'APPLIED_TIME_INTERVAL_ASSIGNMENT.ITEMS' ) | ( atia.role.name = 'maximum retention period' ) ) ) = 1 ) AND ( + SIZEOF( QUERY ( atia1 <* USEDIN( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'APPLIED_TIME_INTERVAL_ASSIGNMENT.ITEMS' ) | ( ( atia1.role.name = 'minimum retention period' ) AND ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.TIME_INTERVAL_WITH_BOUNDS' IN TYPEOF( atia1. + assigned_time_interval ) ) AND ( EXISTS( atia1.assigned_time_interval\time_interval_with_bounds.secondary_bound ) + OR EXISTS( atia1.assigned_time_interval\time_interval_with_bounds.duration ) ) AND ( SIZEOF( QUERY ( atia2 <* + USEDIN( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'APPLIED_TIME_INTERVAL_ASSIGNMENT.ITEMS' ) | ( ( atia2.role.name = 'maximum retention period' ) AND ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.TIME_INTERVAL_WITH_BOUNDS' IN TYPEOF( atia2. + assigned_time_interval ) ) AND ( EXISTS( atia2.assigned_time_interval\time_interval_with_bounds.secondary_bound ) + OR EXISTS( atia2.assigned_time_interval\time_interval_with_bounds.duration ) ) AND ( atia1.assigned_time_interval\ + time_interval_with_bounds.primary_bound :=: atia2.assigned_time_interval\time_interval_with_bounds.primary_bound ) ) ) ) + = 1 ) ) ) ) = 1 ) ); + wr3: ( ( SIZEOF( USEDIN( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'ACTION_RELATIONSHIP.' + + 'RELATING_ACTION' ) ) + SIZEOF( USEDIN( SELF, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'ACTION_RELATIONSHIP.RELATED_ACTION' ) ) ) + = 0 ); + END_ENTITY; + + ENTITY revolute_pair + SUBTYPE OF ( low_order_kinematic_pair ); + DERIVE + SELF\low_order_kinematic_pair.t_x : BOOLEAN := FALSE; + SELF\low_order_kinematic_pair.t_y : BOOLEAN := FALSE; + SELF\low_order_kinematic_pair.t_z : BOOLEAN := FALSE; + SELF\low_order_kinematic_pair.r_x : BOOLEAN := FALSE; + SELF\low_order_kinematic_pair.r_y : BOOLEAN := FALSE; + SELF\low_order_kinematic_pair.r_z : BOOLEAN := TRUE; + END_ENTITY; + + ENTITY revolute_pair_value + SUBTYPE OF ( pair_value ); + SELF\pair_value.applies_to_pair : revolute_pair; + actual_rotation : plane_angle_measure; + END_ENTITY; + + ENTITY revolute_pair_with_range + SUBTYPE OF ( revolute_pair ); + lower_limit_actual_rotation : OPTIONAL plane_angle_measure; + upper_limit_actual_rotation : OPTIONAL plane_angle_measure; + WHERE + wr1: ( ( ( NOT EXISTS( lower_limit_actual_rotation ) ) OR ( NOT EXISTS( upper_limit_actual_rotation ) ) ) XOR ( + lower_limit_actual_rotation < upper_limit_actual_rotation ) ); + 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 ) ); + 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 ) ); + 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 ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE' IN TYPEOF( + first_trim_condition ) ) OR ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE' + IN TYPEOF( second_trim_condition ) ) ) ); + wr2: ( NOT ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PLANE_ANGLE_MEASURE' IN TYPEOF( + first_trim_condition ) ) AND ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PLANE_ANGLE_MEASURE' IN TYPEOF( second_trim_condition ) ) AND ( first_trim_condition = second_trim_condition ) ) ); + END_ENTITY; + + ENTITY revolved_profile + SUBTYPE OF ( feature_definition ); + WHERE + wr1: ( SELF\characterized_object.description IN [ 'groove', 'flat', 'round', 'open profile'] ); + wr2: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) + | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN + TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( impl_rep.used_representation.items ) = 2 ) ) ) ) = 0 ) ) ) ) + = 0 ); + wr3: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) + | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN + TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( + SIZEOF( [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( it ) ) = + 2 ) AND ( it.name = 'radius' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ); + wr4: ( SIZEOF( QUERY ( pdr <* get_property_definition_representations( SELF ) | ( ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.DIRECTION_SHAPE_REPRESENTATION' IN TYPEOF( + pdr.used_representation ) ) AND ( pdr.used_representation.name = 'removal direction' ) ) ) ) = 1 ); + wr5: ( ( NOT ( SELF\characterized_object.description = 'open profile' ) ) OR ( SIZEOF( QUERY ( pds <* QUERY ( pd <* + USEDIN( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) + | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) + | ( NOT ( SIZEOF( QUERY ( sa_occ <* USEDIN( pds, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) | ( ( sa_occ. + description = 'outer edge shape occurrence' ) AND ( SIZEOF( QUERY ( sdr <* QUERY ( sar <* USEDIN( sa_occ, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT' ) + | ( ( sar.description = 'profile usage' ) AND ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF( sar ) ) ) ) | ( ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.OPEN_PATH_PROFILE' IN TYPEOF( sdr. + relating_shape_aspect ) ) AND ( sdr.relating_shape_aspect.description = 'outer edge shape' ) ) ) ) = 1 ) ) ) ) = 1 ) ) ) ) + = 0 ) ); + wr6: ( ( NOT ( SELF\characterized_object.description = 'flat' ) ) OR ( SIZEOF( QUERY ( pds <* QUERY ( pd <* USEDIN( SELF, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) + | ( NOT ( SIZEOF( QUERY ( sa_occ <* USEDIN( pds, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) | ( ( sa_occ. + description = 'flat edge shape occurrence' ) AND ( SIZEOF( QUERY ( sdr <* QUERY ( sar <* USEDIN( sa_occ, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT' ) + | ( ( sar.description = 'profile usage' ) AND ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF( sar ) ) ) ) | ( ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LINEAR_PROFILE' IN TYPEOF( sdr. + relating_shape_aspect ) ) AND ( sdr.relating_shape_aspect.description = 'flat edge shape' ) ) ) ) = 1 ) ) ) ) = 1 ) ) ) ) + = 0 ) ); + wr7: ( ( NOT ( SELF\characterized_object.description = 'round' ) ) OR ( SIZEOF( QUERY ( pds <* QUERY ( pd <* USEDIN( SELF, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) + | ( NOT ( SIZEOF( QUERY ( sa_occ <* USEDIN( pds, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) | ( ( sa_occ. + description = 'rounded edge shape occurrence' ) AND ( SIZEOF( QUERY ( sdr <* QUERY ( sar <* USEDIN( sa_occ, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT' ) + | ( ( sar.description = 'profile usage' ) AND ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF( sar ) ) ) ) | ( ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PARTIAL_CIRCULAR_PROFILE' IN TYPEOF( sdr. + relating_shape_aspect ) ) AND ( sdr.relating_shape_aspect.description = 'rounded edge shape' ) ) ) ) = 1 ) ) ) ) = + 1 ) ) ) ) = 0 ) ); + wr8: ( ( NOT ( SELF\characterized_object.description = 'groove' ) ) OR ( SIZEOF( QUERY ( pds <* QUERY ( pd <* USEDIN( SELF, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) + | ( NOT ( SIZEOF( QUERY ( sa_occ <* USEDIN( pds, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) | ( ( sa_occ. + description = 'sweep occurrence' ) AND ( SIZEOF( QUERY ( sdr <* QUERY ( sar <* USEDIN( sa_occ, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT' ) + | ( ( sar.description = 'profile usage' ) AND ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF( sar ) ) ) ) | ( ( SIZEOF( [ + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SQUARE_U_PROFILE' , + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PARTIAL_CIRCULAR_PROFILE' , + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.ROUNDED_U_PROFILE' , + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.VEE_PROFILE' , + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.TEE_PROFILE' , + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.OPEN_PATH_PROFILE' ] * TYPEOF( sdr. + relating_shape_aspect ) ) = 1 ) AND ( sdr.relating_shape_aspect.description = 'sweep' ) ) ) ) = 1 ) ) ) ) = 1 ) ) ) ) + = 0 ) ); + wr9: ( SIZEOF( QUERY ( pdr <* get_property_definition_representations( SELF ) | ( ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PLANAR_SHAPE_REPRESENTATION' IN TYPEOF( pdr. + used_representation ) ) AND ( pdr.used_representation.name = 'maximum feature limit' ) ) ) ) >= 0 ); + END_ENTITY; + + ENTITY rgc_with_dimension + SUBTYPE OF ( radius_geometric_constraint ); + radius_value : positive_length_measure; + END_ENTITY; + + ENTITY rib_top + SUBTYPE OF ( feature_definition ); + WHERE + wr1: ( SIZEOF( QUERY ( pds <* QUERY ( pd <* USEDIN( SELF, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) + | ( NOT ( SIZEOF( QUERY ( sa_occ <* USEDIN( pds, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) | ( ( sa_occ. + description = 'rib top condition occurrence' ) AND ( SIZEOF( QUERY ( sdr <* QUERY ( sar <* USEDIN( sa_occ, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT' ) + | ( ( sar.description = 'rib top usage' ) AND ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF( sar ) ) ) ) | ( ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.RIB_TOP_FLOOR' IN TYPEOF( sdr. + relating_shape_aspect ) ) AND ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.RIB_TOP' IN + TYPEOF( sdr.related_shape_aspect.of_shape.definition ) ) ) ) ) = 1 ) ) ) ) = 1 ) ) ) ) = 0 ); + wr2: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( pdr <* USEDIN( pd, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) + | ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.DIRECTION_SHAPE_REPRESENTATION' IN + TYPEOF( pdr.used_representation ) ) AND ( pdr.used_representation.name = 'removal direction' ) ) ) ) = 1 ) ) ) ) = + 1 ); + wr3: ( SIZEOF( QUERY ( pdr <* get_property_definition_representations( SELF ) | ( ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PLANAR_SHAPE_REPRESENTATION' IN TYPEOF( pdr. + used_representation ) ) AND ( pdr.used_representation.name = 'maximum feature limit' ) ) ) ) >= 0 ); + END_ENTITY; + + ENTITY rib_top_floor + SUBTYPE OF ( shape_aspect ); + WHERE + wr1: ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.FEATURE_COMPONENT_DEFINITION' IN TYPEOF( SELF. + of_shape.definition ) ); + wr2: ( SELF.description IN [ 'planar', 'complex'] ); + wr3: ( SIZEOF( QUERY ( fcr <* QUERY ( sar <* USEDIN( SELF, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.' + + 'RELATING_SHAPE_ASPECT' ) | ( ( sar.description = 'rib top usage' ) AND ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF( + sar ) ) ) ) | ( ( fcr.related_shape_aspect.description = 'rib top condition occurrence' ) AND ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.RIB_TOP' IN TYPEOF( fcr.related_shape_aspect. + of_shape.definition ) ) AND ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.RIB_TOP_FLOOR' IN + TYPEOF( fcr.relating_shape_aspect ) ) ) ) ) >= 1 ); + wr4: ( ( NOT ( SELF.description = 'complex' ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( + SIZEOF( QUERY ( pdr <* USEDIN( pd, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.FACE_SHAPE_REPRESENTATION' IN TYPEOF( pdr. + used_representation ) ) AND ( pdr.used_representation.name = 'rib top face' ) ) ) ) = 1 ) ) ) ) = 0 ) ); + wr5: ( ( NOT ( SELF.description = 'planar' ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( + SIZEOF( QUERY ( pdr <* USEDIN( pd, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PLANAR_SHAPE_REPRESENTATION' IN TYPEOF( pdr. + used_representation ) ) AND ( pdr.used_representation.name = 'rib top face' ) ) ) ) = 1 ) ) ) ) = 0 ) ); + wr6: ( ( NOT ( SELF.description = 'planar' ) ) OR ( SIZEOF( QUERY ( pds <* QUERY ( pd <* USEDIN( SELF, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) + | ( NOT ( SIZEOF( QUERY ( sa_occ <* USEDIN( pds, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) | ( ( sa_occ. + description = 'boundary occurrence' ) AND ( SIZEOF( QUERY ( sdr <* QUERY ( sar <* USEDIN( sa_occ, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT' ) + | ( ( sar.description = 'profile usage' ) AND ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF( sar ) ) ) ) | ( ( SIZEOF( [ + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CIRCULAR_CLOSED_PROFILE' , + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.NGON_CLOSED_PROFILE' , + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.RECTANGULAR_CLOSED_PROFILE' , + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CLOSED_PATH_PROFILE' ] * TYPEOF( sdr. + relating_shape_aspect ) ) = 1 ) AND ( sdr.relating_shape_aspect.description = 'rib top floor boundary' ) ) ) ) = 1 ) ) ) ) + = 1 ) ) ) ) = 0 ) ); + 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 <= 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 ); + 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.relating_method : information_usage_right; + SELF\action_method_relationship.related_method : information_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 rigid_link_representation + SUBTYPE OF ( kinematic_link_representation ); + END_ENTITY; + + ENTITY rigid_subsketch + SUBTYPE OF ( subsketch ); + END_ENTITY; + + ENTITY role_association; + role : object_role; + item_with_role : role_select; + END_ENTITY; + + ENTITY rolling_curve_pair + SUBTYPE OF ( planar_curve_pair ); + END_ENTITY; + + ENTITY rolling_curve_pair_value + SUBTYPE OF ( pair_value ); + SELF\pair_value.applies_to_pair : rolling_curve_pair; + actual_point_on_curve_1 : point_on_curve; + WHERE + wr1: ( SELF\pair_value.applies_to_pair\planar_curve_pair.curve_1 :=: actual_point_on_curve_1.basis_curve ); + END_ENTITY; + + ENTITY rolling_surface_pair + SUBTYPE OF ( surface_pair ); + END_ENTITY; + + ENTITY rolling_surface_pair_value + SUBTYPE OF ( pair_value ); + SELF\pair_value.applies_to_pair : rolling_surface_pair; + actual_point_on_surface : point_on_surface; + actual_rotation : plane_angle_measure; + WHERE + wr1: ( SELF\pair_value.applies_to_pair\surface_pair.surface_1 :=: actual_point_on_surface.basis_surface ); + END_ENTITY; + + ENTITY rotation_about_direction + SUBTYPE OF ( geometric_representation_item ); + direction_of_axis : direction; + rotation_angle : plane_angle_measure; + WHERE + wr1: ( SIZEOF( direction_of_axis.direction_ratios ) = 3 ); + END_ENTITY; + + ENTITY round_hole + SUBTYPE OF ( feature_definition ); + WHERE + wr1: ( SIZEOF( QUERY ( pds <* QUERY ( pd <* USEDIN( SELF, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) + | ( NOT ( SIZEOF( QUERY ( sa_occ <* USEDIN( pds, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) | ( ( sa_occ. + description = 'diameter occurrence' ) AND ( SIZEOF( QUERY ( sdr <* QUERY ( sar <* USEDIN( sa_occ, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT' ) + | ( ( sar.description = 'profile usage' ) AND ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF( sar ) ) ) ) | ( ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CIRCULAR_CLOSED_PROFILE' IN TYPEOF( sdr. + relating_shape_aspect ) ) AND ( sdr.name = 'diameter' ) ) ) ) = 1 ) ) ) ) = 1 ) ) ) ) = 0 ); + wr2: ( SIZEOF( QUERY ( pds <* QUERY ( pd <* USEDIN( SELF, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) + | ( NOT ( SIZEOF( QUERY ( sa_occ <* USEDIN( pds, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) | ( ( sa_occ. + description = 'hole depth occurrence' ) AND ( SIZEOF( QUERY ( sdr <* QUERY ( sar <* USEDIN( sa_occ, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT' ) + | ( ( sar.description = 'path feature component usage' ) AND ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF( sar ) ) ) ) + | ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PATH_FEATURE_COMPONENT' IN TYPEOF( sdr. + relating_shape_aspect ) ) AND ( sdr.name = 'hole depth' ) AND ( sdr.relating_shape_aspect.description = 'linear' ) ) ) ) + = 1 ) ) ) ) = 1 ) ) ) ) = 0 ); + wr3: ( SIZEOF( QUERY ( pds <* QUERY ( pd <* USEDIN( SELF, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) + | ( NOT ( SIZEOF( QUERY ( sa_occ <* USEDIN( pds, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) | ( ( sa_occ. + description = 'bottom condition occurrence' ) AND ( SIZEOF( QUERY ( fcr <* QUERY ( sar <* USEDIN( sa_occ, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT' ) + | ( ( sar.description = 'hole bottom usage' ) AND ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF( + sar ) ) ) ) | ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.HOLE_BOTTOM' IN TYPEOF( fcr. + relating_shape_aspect ) ) AND ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.ROUND_HOLE' IN + TYPEOF( fcr.related_shape_aspect.of_shape.definition ) ) ) ) ) = 1 ) ) ) ) = 1 ) ) ) ) = 0 ); + wr4: ( SIZEOF( QUERY ( pds <* QUERY ( pd <* USEDIN( SELF, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) + | ( NOT ( SIZEOF( QUERY ( sa_occ <* USEDIN( pds, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) | ( ( sa_occ. + description = 'change in diameter occurrence' ) AND ( SIZEOF( QUERY ( fcr <* QUERY ( sar <* USEDIN( sa_occ, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT' ) + | ( ( sar.description = 'taper usage' ) AND ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF( sar ) ) ) ) | ( ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.TAPER' IN TYPEOF( fcr.relating_shape_aspect ) ) + AND ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.ROUND_HOLE' IN TYPEOF( fcr. + related_shape_aspect.of_shape.definition ) ) ) ) ) = 1 ) ) ) ) <= 1 ) ) ) ) = 0 ); + wr5: ( SIZEOF( QUERY ( pdr <* get_property_definition_representations( SELF ) | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN + TYPEOF( pdr.used_representation ) ) ) ) = 1 ); + END_ENTITY; + + ENTITY rounded_end + SUBTYPE OF ( feature_definition ); + WHERE + wr1: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) + | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN + TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( impl_rep.used_representation.items ) = 1 ) ) ) ) = 0 ) ) ) ) + = 0 ); + wr2: ( SIZEOF( QUERY ( pds <* QUERY ( pd <* USEDIN( SELF, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) + | ( NOT ( SIZEOF( QUERY ( sa_occ <* USEDIN( pds, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) | ( ( sa_occ. + description = 'partial circular boundary occurrence' ) AND ( SIZEOF( QUERY ( sdr <* QUERY ( sar <* USEDIN( sa_occ, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT' ) + | ( ( sar.description = 'profile usage' ) AND ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF( sar ) ) ) ) | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PARTIAL_CIRCULAR_PROFILE' IN TYPEOF( sdr. + relating_shape_aspect ) ) ) ) = 1 ) ) ) ) = 1 ) ) ) ) = 0 ); + wr3: ( SIZEOF( QUERY ( pds <* QUERY ( pd <* USEDIN( SELF, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) + | ( NOT ( SIZEOF( QUERY ( sa_occ <* USEDIN( pds, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) | ( ( sa_occ. + description = 'course of travel occurrence' ) AND ( SIZEOF( QUERY ( sdr <* QUERY ( sar <* USEDIN( sa_occ, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT' ) + | ( ( sar.description = 'path feature component usage' ) AND ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF( sar ) ) ) ) + | ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PATH_FEATURE_COMPONENT' IN TYPEOF( sdr. + relating_shape_aspect ) ) AND ( sdr.relating_shape_aspect.description = 'linear' ) ) ) ) = 1 ) ) ) ) = 1 ) ) ) ) = + 0 ); + wr4: ( SIZEOF( QUERY ( pdr <* get_property_definition_representations( SELF ) | ( ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PLANAR_SHAPE_REPRESENTATION' IN TYPEOF( pdr. + used_representation ) ) AND ( pdr.used_representation.name = 'maximum feature limit' ) ) ) ) >= 0 ); + END_ENTITY; + + ENTITY rounded_u_profile + SUBTYPE OF ( shape_aspect ); + WHERE + wr1: ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.FEATURE_COMPONENT_DEFINITION' IN TYPEOF( SELF. + of_shape.definition ) ); + wr2: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( pdr <* USEDIN( pd, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) + | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN + TYPEOF( pdr.used_representation ) ) ) ) = 1 ) ) ) ) = 0 ); + wr3: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) + | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN + TYPEOF( pdr.used_representation ) ) ) | ( ( NOT ( SIZEOF( impl_rep.used_representation.items ) >= 1 ) ) AND ( + SIZEOF( impl_rep.used_representation.items ) <= 2 ) ) ) ) = 0 ) ) ) ) = 0 ); + wr4: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION.DEFINITION' ) | ( SIZEOF( QUERY ( pdr <* USEDIN( pd, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) + | ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN + TYPEOF( pdr.used_representation ) ) AND ( SIZEOF( QUERY ( srwp_i <* pdr.used_representation.items | ( ( srwp_i.name + = 'orientation' ) OR ( srwp_i.name = 'depth' ) ) ) ) = SIZEOF( pdr.used_representation.items ) ) ) ) ) = 1 ) ) ) = + 1 ); + wr5: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) + | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN + TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( + SIZEOF( [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( it ) ) = + 2 ) AND ( it.name = 'width' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ); + wr6: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( pdr <* USEDIN( pd, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) + | ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PLANAR_SHAPE_REPRESENTATION' IN TYPEOF( + pdr.used_representation ) ) AND ( pdr.used_representation.name = 'profile limit' ) ) ) ) <= 1 ) ) ) ) = 0 ); + wr7: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) + | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN + TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( + SIZEOF( [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( it ) ) = + 2 ) AND ( it.name = 'depth' ) ) ) ) <= 1 ) ) ) ) = 0 ) ) ) ) = 0 ); + END_ENTITY; + + ENTITY roundness_tolerance + SUBTYPE OF ( geometric_tolerance ); + WHERE + wr1: ( NOT ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'GEOMETRIC_TOLERANCE_WITH_DATUM_REFERENCE' ) IN TYPEOF( SELF ) ) ); + END_ENTITY; + + ENTITY routed_interconnect_component + SUBTYPE OF ( item_identified_representation_usage, physical_component ); + END_ENTITY; + + ENTITY routed_physical_component + SUBTYPE OF ( item_identified_representation_usage, physical_component ); + END_ENTITY; + + ENTITY routed_physical_shield + SUBTYPE OF ( physical_shield, routed_physical_component ); + END_ENTITY; + + ENTITY routed_shield + SUBTYPE OF ( integral_shield ); + END_ENTITY; + + ENTITY routed_transmission_line + SUBTYPE OF ( assembly_component ); + 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: ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.B_SPLINE_SURFACE' IN TYPEOF( SELF. + reference_surface ) ) AND ( SELF.reference_surface\b_spline_surface.u_degree = 1 ) ); + wr2: ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PCURVE' IN TYPEOF( SELF.directrix ) ) OR ( ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 : plane_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 ); + SELF\group_assignment.assigned_group : satisfies_requirement; + items : SET [1 : 1] OF product_definition; + END_ENTITY; + + ENTITY satisfies_requirement + SUBTYPE OF ( group ); + END_ENTITY; + + ENTITY satisfying_item + SUBTYPE OF ( group_assignment ); + SELF\group_assignment.assigned_group : satisfies_requirement; + items : SET [1 : 1] OF requirement_satisfaction_item; + END_ENTITY; + + ENTITY scalar_terminal_definition_link + SUBTYPE OF ( shape_aspect, shape_aspect_relationship ); + SELF\shape_aspect_relationship.relating_shape_aspect : functional_unit_terminal_definition; + UNIQUE + ur1 : related_shape_aspect, relating_shape_aspect; + WHERE + wr1: ( SELF\shape_aspect_relationship.related_shape_aspect :<>: SELF\shape_aspect_relationship.relating_shape_aspect ); + END_ENTITY; + + ENTITY scalar_variable + SUBTYPE OF ( abstract_variable ); + END_ENTITY; + + ENTITY schema_based_model_parameter + SUBTYPE OF ( model_parameter ); + END_ENTITY; + + ENTITY screw_pair + SUBTYPE OF ( low_order_kinematic_pair_with_motion_coupling ); + pitch : length_measure; + WHERE + wr1: ( SIZEOF( QUERY ( lr <* SELF\kinematic_pair.associated_link_representations_1 | ( NOT ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.RIGID_LINK_REPRESENTATION' IN TYPEOF( lr ) ) ) ) ) + = 0 ); + END_ENTITY; + + ENTITY screw_pair_value + SUBTYPE OF ( pair_value ); + SELF\pair_value.applies_to_pair : screw_pair; + actual_rotation : plane_angle_measure; + DERIVE + actual_translation : length_measure := ( SELF\pair_value.applies_to_pair\screw_pair.pitch * + plane_angle_for_pair_in_radian( SELF\pair_value.applies_to_pair, actual_rotation ) ) / ( 2 * PI ); + END_ENTITY; + + ENTITY screw_pair_with_range + SUBTYPE OF ( screw_pair ); + lower_limit_actual_rotation : OPTIONAL plane_angle_measure; + upper_limit_actual_rotation : OPTIONAL plane_angle_measure; + WHERE + wr1: ( ( ( NOT EXISTS( lower_limit_actual_rotation ) ) OR ( NOT EXISTS( upper_limit_actual_rotation ) ) ) XOR ( + lower_limit_actual_rotation < upper_limit_actual_rotation ) ); + END_ENTITY; + + ENTITY sculptured_solid + SUBTYPE OF ( modified_solid ); + sculpturing_element : generalized_surface_select; + positive_side : BOOLEAN; + END_ENTITY; + + ENTITY sdgc_with_dimension + SUBTYPE OF ( surface_distance_geometric_constraint ); + distance_value : non_negative_length_measure; + 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: ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PCURVE' IN TYPEOF( SELF\surface_curve. + associated_geometry[1] ) ); + wr4: ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PCURVE' IN TYPEOF( SELF\surface_curve. + associated_geometry[2] ) ); + END_ENTITY; + + ENTITY seating_plane + SUBTYPE OF ( shape_aspect ); + END_ENTITY; + + ENTITY secondary_orientation_feature + SUBTYPE OF ( shape_aspect ); + WHERE + wr1: ( SELF.product_definitional = TRUE ); + 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, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'ROLE_ASSOCIATION.' + + 'ITEM_WITH_ROLE' ) ) <= 1 ); + END_ENTITY; + + ENTITY security_classification_level; + name : label; + END_ENTITY; + + ENTITY selector_function + SUBTYPE OF ( maths_function, generic_literal ); + selector : input_selector; + source_of_domain : maths_space_or_function; + WHERE + wr1: no_cyclic_domain_reference( source_of_domain, [SELF] ); + wr2: expression_is_constant( domain_from( source_of_domain ) ); + END_ENTITY; + + ENTITY self_intersecting_curve + SUBTYPE OF ( self_intersecting_geometry ); + SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_logical_test; + arc_length_separation_factor : REAL; + interference_tolerance : length_measure; + WHERE + wr1: validate_measured_data_type( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.BOOLEAN_VALUE' ); + wr2: validate_inspected_elements_type( SELF, [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CURVE'] ); + wr3: validate_locations_of_extreme_value_type( SELF, [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'POINT_ON_CURVE' , 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.POINT_ON_CURVE'] ); + wr4: validate_accuracy_types( SELF, [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE'] ); + END_ENTITY; + + ENTITY self_intersecting_geometry + ABSTRACT SUPERTYPE OF ( + ONEOF ( + self_intersecting_curve, + self_intersecting_surface ) ) + SUBTYPE OF ( inapt_geometry ); + END_ENTITY; + + ENTITY self_intersecting_loop + SUBTYPE OF ( topology_related_to_self_intersecting_geometry ); + SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_logical_test; + arc_length_distance_factor : REAL; + interference_tolerance : length_measure; + WHERE + wr1: validate_measured_data_type( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.BOOLEAN_VALUE' ); + wr2: validate_inspected_elements_type( SELF, [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.EDGE_LOOP'] ); + wr3: validate_locations_of_extreme_value_type( SELF, [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'POINT_ON_EDGE_CURVE', 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'POINT_ON_EDGE_CURVE' ] ); + wr4: validate_accuracy_types( SELF, [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE'] ); + END_ENTITY; + + ENTITY self_intersecting_shell + SUBTYPE OF ( topology_related_to_self_intersecting_geometry ); + SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_logical_test; + geodesic_separation_factor : REAL; + interference_tolerance : length_measure; + WHERE + wr1: validate_measured_data_type( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.BOOLEAN_VALUE' ); + wr2: validate_inspected_elements_type( SELF, [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'CONNECTED_FACE_SET' ] ); + wr3: validate_locations_of_extreme_value_type( SELF, [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'POINT_ON_FACE_SURFACE', 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'POINT_ON_FACE_SURFACE' ] ); + wr4: validate_accuracy_types( SELF, [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE'] ); + END_ENTITY; + + ENTITY self_intersecting_surface + SUBTYPE OF ( self_intersecting_geometry ); + SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_logical_test; + geodesic_separation_factor : REAL; + interference_tolerance : length_measure; + WHERE + wr1: validate_measured_data_type( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.BOOLEAN_VALUE' ); + wr2: validate_inspected_elements_type( SELF, [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SURFACE'] ); + wr3: validate_locations_of_extreme_value_type( SELF, [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'POINT_ON_SURFACE' , 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.POINT_ON_SURFACE'] ); + wr4: validate_accuracy_types( SELF, [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE'] ); + END_ENTITY; + + ENTITY sequential_laminate_passage_based_fabrication_joint + SUBTYPE OF ( shape_aspect ); + END_ENTITY; + + ENTITY sequential_laminate_stackup_component + SUBTYPE OF ( physical_component ); + END_ENTITY; + + ENTITY sequential_laminate_stackup_definition + SUBTYPE OF ( product_definition ); + END_ENTITY; + + ENTITY serial_numbered_effectivity + SUBTYPE OF ( effectivity ); + effectivity_start_id : identifier; + effectivity_end_id : OPTIONAL identifier; + END_ENTITY; + + ENTITY series_composed_function + SUBTYPE OF ( maths_function, multiple_arity_generic_expression ); + SELF\multiple_arity_generic_expression.operands : LIST [2 : ?] OF maths_function; + WHERE + wr1: composable_sequence( SELF\multiple_arity_generic_expression.operands ); + END_ENTITY; + + ENTITY shape_aspect + SUPERTYPE OF ( + ONEOF ( + minimally_defined_bare_die_terminal, + assembly_module_terminal, + cable_terminal, + interconnect_module_terminal, + packaged_part_terminal ) + ANDOR + ONEOF ( + minimally_defined_bare_die_terminal, + assembly_module_terminal, + cable_terminal, + packaged_part_terminal ) + ANDOR + ONEOF ( + package_body, + primary_orientation_feature, + secondary_orientation_feature, + tertiary_orientation_feature ) + ANDOR + ONEOF ( + contacting_feature, + datum, + datum_feature, + datum_target, + datum_system, + general_datum_reference ) + ANDOR + ONEOF ( + seating_plane, + reference_graphic_registration_mark, + mounting_restriction_area, + mounting_restriction_volume ) ); + name : label; + description : OPTIONAL text; + of_shape : product_definition_shape; + product_definitional : LOGICAL; + DERIVE + id : identifier := get_id_value( SELF ); + UNIQUE + ur1 : id, of_shape; + WHERE + wr1: ( SIZEOF( USEDIN( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 ); + SELF\shape_aspect_relationship.relating_shape_aspect : derived_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, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'ID_ATTRIBUTE.' + + 'IDENTIFIED_ITEM' ) ) <= 1 ); + END_ENTITY; + + ENTITY shape_aspect_relationship_representation_association; + represented_shape_aspect_relationship : shape_aspect_relationship; + representing_representation_relationship : representation_relationship; + WHERE + wr1: ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.REPRESENTATIVE_SHAPE_REPRESENTATION' IN + TYPEOF( representing_representation_relationship\representation_relationship.rep_1 ) ) AND ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.REPRESENTATIVE_SHAPE_REPRESENTATION' IN + TYPEOF( representing_representation_relationship\representation_relationship.rep_2 ) ) ); + wr2: ( ( represented_shape_aspect_relationship.relating_shape_aspect IN using_shape_aspect_of_shape_representation( + representing_representation_relationship.rep_1 ) ) AND ( represented_shape_aspect_relationship.related_shape_aspect + IN using_shape_aspect_of_shape_representation( representing_representation_relationship.rep_2 ) ) ); + wr3: ( ( find_representative_shape_representation_of_product_definition( using_product_definition_of_shape_aspect( + represented_shape_aspect_relationship.relating_shape_aspect ) ).context_of_items :=: + find_representative_shape_representation_of_shape_aspect( represented_shape_aspect_relationship. + relating_shape_aspect ).context_of_items ) AND ( find_representative_shape_representation_of_product_definition( + using_product_definition_of_shape_aspect( represented_shape_aspect_relationship.related_shape_aspect ) ). + context_of_items :=: find_representative_shape_representation_of_shape_aspect( + represented_shape_aspect_relationship.related_shape_aspect ).context_of_items ) ); + wr4: ( using_product_definition_of_shape_aspect( represented_shape_aspect_relationship.relating_shape_aspect ) :<>: + using_product_definition_of_shape_aspect( represented_shape_aspect_relationship.related_shape_aspect ) ); + wr5: ( find_assembly_root( [using_product_definition_of_shape_aspect( represented_shape_aspect_relationship. + relating_shape_aspect )] ) :=: find_assembly_root( [using_product_definition_of_shape_aspect( + represented_shape_aspect_relationship.related_shape_aspect )] ) ); + END_ENTITY; + + ENTITY shape_criteria_representation_with_accuracy + SUBTYPE OF ( shape_data_quality_criteria_representation ); + required_general_accuracy : SET [1 : ?] OF shape_measurement_accuracy; + END_ENTITY; + + ENTITY shape_data_quality_assessment_by_logical_test + SUBTYPE OF ( data_quality_assessment_specification ); + END_ENTITY; + + ENTITY shape_data_quality_assessment_by_numerical_test + SUBTYPE OF ( data_quality_assessment_specification ); + threshold : shape_data_quality_value_limit_type_select; + END_ENTITY; + + ENTITY shape_data_quality_criteria_representation + SUBTYPE OF ( data_quality_criteria_representation ); + WHERE + wr1: ( SIZEOF( QUERY ( q <* SELF\representation.items | ( ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'SHAPE_DATA_QUALITY_CRITERION' ) IN + TYPEOF( q ) ) ) ) > 0 ); + END_ENTITY; + + ENTITY shape_data_quality_criterion + SUPERTYPE OF ( + ONEOF ( + erroneous_data, + inapt_data ) ) + SUBTYPE OF ( data_quality_criterion, data_quality_measurement_requirement ); + assessment_specification : shape_data_quality_assessment_specification_select; + WHERE + wr1: ( SIZEOF( USEDIN( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'DATA_QUALITY_CRITERION_ASSESSMENT_ASSOCIATION.' + 'CRITERION' ) ) = 0 ); + wr2: ( SIZEOF( QUERY ( i1 <* bag_to_set( USEDIN( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'REPRESENTATION_ITEM_RELATIONSHIP.' + 'RELATED_REPRESENTATION_ITEM' ) ) | ( ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'DATA_QUALITY_CRITERION_MEASUREMENT_ASSOCIATION' ) IN TYPEOF( i1 ) ) ) ) = 0 ); + wr3: ( SIZEOF( QUERY ( i1 <* bag_to_set( USEDIN( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'REPRESENTATION_ITEM_RELATIONSHIP.' + 'RELATING_REPRESENTATION_ITEM' ) ) | ( ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'DATA_QUALITY_CRITERION_MEASUREMENT_ASSOCIATION' ) IN TYPEOF( i1 ) ) ) ) = 0 ); + END_ENTITY; + + ENTITY shape_data_quality_criterion_and_accuracy_association; + required_specific_accuracy : shape_measurement_accuracy; + shape_data_quality_criterion : shape_data_quality_criterion; + END_ENTITY; + + ENTITY shape_data_quality_inspected_shape_and_result_relationship + SUBTYPE OF ( shape_representation_relationship ); + SELF\representation_relationship.rep_1 : shape_representation; + SELF\representation_relationship.rep_2 : shape_data_quality_inspection_result_representation; + WHERE + wr1: ( SIZEOF( using_product_definition_of_shape_representation( SELF.rep_1 ) * bag_to_set( inspected_product_definition( + SELF.rep_2 ) ) ) > 0 ); + wr2: ( SELF.rep_1\representation.context_of_items :=: SELF.rep_2\representation.context_of_items ); + END_ENTITY; + + ENTITY shape_data_quality_inspection_criterion_report + SUBTYPE OF ( data_quality_inspection_criterion_report ); + representative_measured_value : measured_value_select; + END_ENTITY; + + ENTITY shape_data_quality_inspection_instance_report + SUBTYPE OF ( data_quality_inspection_instance_report ); + SELF\data_quality_inspection_instance_report.inspected_instances : LIST [1 : ?] OF + shape_data_quality_inspection_instance_report_item; + END_ENTITY; + + ENTITY shape_data_quality_inspection_instance_report_item + SUBTYPE OF ( data_quality_inspection_instance_report_item ); + SELF\data_quality_inspection_instance_report_item.inspected_elements : SET [1 : ?] OF inspected_shape_element_select; + measured_value : measured_value_select; + END_ENTITY; + + ENTITY shape_data_quality_inspection_result + SUBTYPE OF ( data_quality_inspection_result ); + SELF\data_quality_inspection_result.criterion_inspected : shape_data_quality_criterion; + END_ENTITY; + + ENTITY shape_data_quality_inspection_result_representation + SUBTYPE OF ( data_quality_inspection_result_representation ); + WHERE + wr1: ( SIZEOF( QUERY ( q <* SELF\representation.items | ( ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'SHAPE_DATA_QUALITY_INSPECTION_RESULT' ) + IN TYPEOF( q ) ) ) ) > 0 ); + wr2: ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.GEOMETRIC_REPRESENTATION_CONTEXT' IN TYPEOF( + SELF\representation.context_of_items ) ); + wr3: ( SIZEOF( USEDIN( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'SHAPE_DATA_QUALITY_INSPECTED_SHAPE_AND_RESULT_RELATIONSHIP.' + 'REP_2' ) ) > 0 ); + END_ENTITY; + + ENTITY shape_data_quality_lower_value_limit + SUBTYPE OF ( shape_data_quality_value_limit ); + WHERE + wr1: ( SELF\qualified_representation_item.qualifiers[1].name = 'minimum' ); + END_ENTITY; + + ENTITY shape_data_quality_upper_value_limit + SUBTYPE OF ( shape_data_quality_value_limit ); + WHERE + wr1: ( SELF\qualified_representation_item.qualifiers[1].name = 'maximum' ); + END_ENTITY; + + ENTITY shape_data_quality_value_limit + ABSTRACT SUPERTYPE OF ( + ONEOF ( + shape_data_quality_upper_value_limit, + shape_data_quality_lower_value_limit ) ) + SUBTYPE OF ( measure_representation_item, qualified_representation_item ); + END_ENTITY; + + ENTITY shape_data_quality_value_range + SUBTYPE OF ( compound_representation_item ); + WHERE + wr1: ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SET_REPRESENTATION_ITEM' IN TYPEOF( SELF\ + compound_representation_item.item_element ) ) AND ( SIZEOF( SELF\compound_representation_item.item_element ) = 2 ) + AND ( ( SIZEOF( QUERY ( i1 <* SELF\compound_representation_item.item_element | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM' IN TYPEOF( i1 ) ) ) ) + = 2 ) OR ( SIZEOF( QUERY ( i2 <* SELF\compound_representation_item.item_element | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.VALUE_REPRESENTATION_ITEM' IN TYPEOF( i2 ) ) ) ) + = 2 ) ) ); + wr2: ( ( SIZEOF( QUERY ( i <* SELF\compound_representation_item.item_element | ( i.name = 'upper limit' ) ) ) = 1 ) AND ( + SIZEOF( QUERY ( i <* SELF\compound_representation_item.item_element | ( i.name = 'lower limit' ) ) ) = 1 ) ); + wr3: ( ( SIZEOF( QUERY ( i1 <* SELF\compound_representation_item.item_element | ( ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM' IN TYPEOF( i1 ) ) + AND ( SIZEOF( QUERY ( i2 <* SELF\compound_representation_item.item_element | ( ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 ) OR ( SIZEOF( QUERY ( i1 <* SELF\compound_representation_item.item_element | ( ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.VALUE_REPRESENTATION_ITEM' IN TYPEOF( i1 ) ) + AND ( SIZEOF( QUERY ( i2 <* SELF\compound_representation_item.item_element | ( ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.VALUE_REPRESENTATION_ITEM' IN TYPEOF( i2 ) ) + AND ( i1 :<>: i2 ) AND ( TYPEOF( i1\value_representation_item.value_component ) = TYPEOF( i2\ + value_representation_item.value_component ) ) ) ) ) = 1 ) ) ) ) = 2 ) ); + END_ENTITY; + + ENTITY shape_defining_relationship + SUBTYPE OF ( shape_aspect_relationship ); + END_ENTITY; + + ENTITY shape_definition_3d_intersection + SUPERTYPE OF ( + ONEOF ( + edge_segment_cross_section, + pre_defined_parallel_datum_axis_symbol_3d_2d_relationship, + pre_defined_perpendicular_datum_axis_symbol_3d_2d_relationship, + pre_defined_perpendicular_datum_plane_symbol_3d_2d_relationship ) + ANDOR + ONEOF ( + pre_defined_parallel_datum_axis_symbol_3d_2d_relationship, + pre_defined_perpendicular_datum_axis_symbol_3d_2d_relationship, + pre_defined_perpendicular_datum_plane_symbol_3d_2d_relationship ) ) + SUBTYPE OF ( representation, shape_representation_relationship, representation_relationship_with_transformation ); + SELF\representation_relationship_with_transformation.transformation_operator : item_defined_transformation; + 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 shape_definition_representation + SUBTYPE OF ( property_definition_representation ); + SELF\property_definition_representation.definition : property_definition; + SELF\property_definition_representation.used_representation : shape_representation; + WHERE + wr1: ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF( + definition ) ) OR ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_DEFINITION' IN + TYPEOF( definition\property_definition.definition ) ) ); + END_ENTITY; + + ENTITY shape_dimension_representation + SUBTYPE OF ( shape_representation ); + SELF\representation.items : SET [1 : ?] OF shape_dimension_representation_item; + END_ENTITY; + + ENTITY shape_feature_definition + SUBTYPE OF ( feature_definition ); + END_ENTITY; + + ENTITY shape_formed_terminal + SUBTYPE OF ( altered_package_terminal ); + END_ENTITY; + + ENTITY shape_inspection_result_accuracy_association; + applied_specific_accuracy : shape_measurement_accuracy; + shape_data_quality_result : shape_data_quality_inspection_result; + END_ENTITY; + + ENTITY shape_inspection_result_representation_with_accuracy + SUBTYPE OF ( shape_data_quality_inspection_result_representation ); + applied_general_accuracy : SET [1 : ?] OF shape_measurement_accuracy; + END_ENTITY; + + ENTITY shape_measurement_accuracy; + description : text; + range : shape_data_quality_value_limit_type_select; + END_ENTITY; + + ENTITY shape_representation + SUBTYPE OF ( representation ); + END_ENTITY; + + ENTITY shape_representation_relationship + SUBTYPE OF ( representation_relationship ); + WHERE + wr1: ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 ); + SELF\representation.items : SET [1 : ?] OF shape_representation_with_parameters_items; + END_ENTITY; + + ENTITY shape_summary_request_with_representative_value + SUBTYPE OF ( summary_report_request ); + 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( [ + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHELL_BASED_WIREFRAME_MODEL' , + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MAPPED_ITEM' , + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.AXIS2_PLACEMENT_3D' ] * TYPEOF( it ) ) = 1 ) ) ) ) + = 0 ); + wr2 : ( SIZEOF( QUERY ( it <* SELF.items | ( SIZEOF( [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'SHELL_BASED_WIREFRAME_MODEL' , 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MAPPED_ITEM'] + * TYPEOF( it ) ) = 1 ) ) ) >= 1 ); + wr3 : ( SIZEOF( QUERY ( sbwm <* QUERY ( it <* SELF.items | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHELL_BASED_WIREFRAME_MODEL' IN TYPEOF( it ) ) ) + | ( NOT ( SIZEOF( QUERY ( ws <* QUERY ( sb <* sbwm\shell_based_wireframe_model.sbwm_boundary | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.WIRE_SHELL' IN TYPEOF( sb ) ) ) | ( NOT ( + SIZEOF( QUERY ( eloop <* QUERY ( wsb <* ws\wire_shell.wire_shell_extent | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.EDGE_LOOP' IN TYPEOF( wsb ) ) ) | ( NOT ( + SIZEOF( QUERY ( el <* eloop\path.edge_list | ( NOT ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.EDGE_CURVE' IN TYPEOF( el.edge_element ) ) ) ) ) + = 0 ) ) ) ) = 0 ) ) ) ) = 0 ) ) ) ) = 0 ); + wr4 : ( SIZEOF( QUERY ( sbwm <* QUERY ( it <* SELF.items | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHELL_BASED_WIREFRAME_MODEL' IN TYPEOF( it ) ) ) + | ( NOT ( SIZEOF( QUERY ( ws <* QUERY ( sb <* sbwm\shell_based_wireframe_model.sbwm_boundary | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.WIRE_SHELL' IN TYPEOF( sb ) ) ) | ( NOT ( + SIZEOF( QUERY ( eloop <* QUERY ( wsb <* ws\wire_shell.wire_shell_extent | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.EDGE_LOOP' IN TYPEOF( wsb ) ) ) | ( NOT ( + SIZEOF( QUERY ( pline_el <* QUERY ( el <* eloop\path.edge_list | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHELL_BASED_WIREFRAME_MODEL' IN TYPEOF( it ) ) ) + | ( NOT ( SIZEOF( QUERY ( ws <* QUERY ( sb <* sbwm\shell_based_wireframe_model.sbwm_boundary | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.WIRE_SHELL' IN TYPEOF( sb ) ) ) | ( NOT ( + SIZEOF( QUERY ( eloop <* QUERY ( wsb <* ws\wire_shell.wire_shell_extent | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHELL_BASED_WIREFRAME_MODEL' IN TYPEOF( it ) ) ) + | ( NOT ( SIZEOF( QUERY ( ws <* QUERY ( sb <* sbwm\shell_based_wireframe_model.sbwm_boundary | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.WIRE_SHELL' IN TYPEOF( sb ) ) ) | ( NOT ( + SIZEOF( QUERY ( eloop <* QUERY ( wsb <* ws\wire_shell.wire_shell_extent | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.EDGE_LOOP' IN TYPEOF( wsb ) ) ) | ( NOT ( + SIZEOF( QUERY ( el <* eloop\path.edge_list | ( NOT ( ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.VERTEX_POINT' IN TYPEOF( el.edge_element. + edge_start ) ) AND ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.VERTEX_POINT' IN TYPEOF( + el.edge_element.edge_end ) ) ) ) ) ) = 0 ) ) ) ) = 0 ) ) ) ) = 0 ) ) ) ) = 0 ); + wr7 : ( SIZEOF( QUERY ( sbwm <* QUERY ( it <* SELF.items | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHELL_BASED_WIREFRAME_MODEL' IN TYPEOF( it ) ) ) + | ( NOT ( SIZEOF( QUERY ( ws <* QUERY ( sb <* sbwm\shell_based_wireframe_model.sbwm_boundary | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.WIRE_SHELL' IN TYPEOF( sb ) ) ) | ( NOT ( + SIZEOF( QUERY ( eloop <* QUERY ( wsb <* ws\wire_shell.wire_shell_extent | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHELL_BASED_WIREFRAME_MODEL' IN TYPEOF( it ) ) ) + | ( NOT ( SIZEOF( QUERY ( ws <* QUERY ( sb <* sbwm\shell_based_wireframe_model.sbwm_boundary | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.WIRE_SHELL' IN TYPEOF( sb ) ) ) | ( NOT ( + SIZEOF( QUERY ( vloop <* QUERY ( wsb <* ws\wire_shell.wire_shell_extent | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.VERTEX_LOOP' IN TYPEOF( wsb ) ) ) | ( NOT ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.VERTEX_POINT' IN TYPEOF( vloop\vertex_loop. + loop_vertex ) ) ) ) ) = 0 ) ) ) ) = 0 ) ) ) ) = 0 ); + wr9 : ( SIZEOF( QUERY ( sbwm <* QUERY ( it <* SELF.items | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHELL_BASED_WIREFRAME_MODEL' IN TYPEOF( it ) ) ) + | ( NOT ( SIZEOF( QUERY ( ws <* QUERY ( sb <* sbwm\shell_based_wireframe_model.sbwm_boundary | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.WIRE_SHELL' IN TYPEOF( sb ) ) ) | ( NOT ( + SIZEOF( QUERY ( vloop <* QUERY ( wsb <* ws\wire_shell.wire_shell_extent | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHELL_BASED_WIREFRAME_MODEL' IN TYPEOF( it ) ) ) + | ( NOT ( SIZEOF( QUERY ( vs <* QUERY ( sb <* sbwm\shell_based_wireframe_model.sbwm_boundary | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.VERTEX_SHELL' IN TYPEOF( sb ) ) ) | ( NOT ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.VERTEX_POINT' IN TYPEOF( vs\vertex_shell. + vertex_shell_extent.loop_vertex ) ) ) ) ) = 0 ) ) ) ) = 0 ); + wr11: ( SIZEOF( QUERY ( sbwm <* QUERY ( it <* SELF.items | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHELL_BASED_WIREFRAME_MODEL' IN TYPEOF( it ) ) ) + | ( NOT ( SIZEOF( QUERY ( vs <* QUERY ( sb <* sbwm\shell_based_wireframe_model.sbwm_boundary | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MAPPED_ITEM' IN TYPEOF( it ) ) ) | ( NOT ( + ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 short_length_curve + SUBTYPE OF ( nearly_degenerate_geometry ); + SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; + WHERE + wr1: ( ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'SHAPE_DATA_QUALITY_UPPER_VALUE_LIMIT' ) + IN TYPEOF( SELF\shape_data_quality_criterion.assessment_specification\ + shape_data_quality_assessment_by_numerical_test.threshold ) ) AND ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE' IN value_limit_type( SELF\ + shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold ) ) ); + wr2: validate_measured_data_type( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE' ); + wr3: validate_inspected_elements_type( SELF, [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CURVE'] ); + wr4: validate_locations_of_extreme_value_type( SELF, [] ); + wr5: validate_accuracy_types( SELF, [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE'] ); + END_ENTITY; + + ENTITY short_length_curve_segment + SUBTYPE OF ( geometry_with_local_near_degeneracy ); + SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; + WHERE + wr1: ( ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'SHAPE_DATA_QUALITY_UPPER_VALUE_LIMIT' ) + IN TYPEOF( SELF\shape_data_quality_criterion.assessment_specification\ + shape_data_quality_assessment_by_numerical_test.threshold ) ) AND ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE' IN value_limit_type( SELF\ + shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold ) ) ); + wr2: validate_measured_data_type( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE' ); + wr3: validate_inspected_elements_type( SELF, [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'B_SPLINE_CURVE' ] ); + wr4: validate_locations_of_extreme_value_type( SELF, [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'B_SPLINE_CURVE_SEGMENT'] ); + wr5: validate_accuracy_types( SELF, [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE'] ); + END_ENTITY; + + ENTITY short_length_edge + SUBTYPE OF ( topology_related_to_nearly_degenerate_geometry ); + SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; + WHERE + wr1: ( ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'SHAPE_DATA_QUALITY_UPPER_VALUE_LIMIT' ) + IN TYPEOF( SELF\shape_data_quality_criterion.assessment_specification\ + shape_data_quality_assessment_by_numerical_test.threshold ) ) AND ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE' IN value_limit_type( SELF\ + shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold ) ) ); + wr2: validate_measured_data_type( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE' ); + wr3: validate_inspected_elements_type( SELF, [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'EDGE_CURVE' ] ); + wr4: validate_locations_of_extreme_value_type( SELF, [] ); + wr5: validate_accuracy_types( SELF, [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE'] ); + 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 ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MASS_UNIT' IN TYPEOF( SELF ) ) AND ( + SIZEOF( USEDIN( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.DERIVED_UNIT_ELEMENT.UNIT' ) ) + > 0 ) ) ) OR ( prefix = si_prefix.kilo ) ); + END_ENTITY; + + ENTITY signal + SUBTYPE OF ( characterized_object ); + END_ENTITY; + + ENTITY signal_category + SUBTYPE OF ( group ); + END_ENTITY; + + ENTITY simple_boolean_expression + ABSTRACT SUPERTYPE OF ( + ONEOF ( + boolean_literal, + boolean_variable ) ) + 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 OF ( + ONEOF ( + literal_number, + numeric_variable ) ) + SUBTYPE OF ( numeric_expression, simple_generic_expression ); + END_ENTITY; + + ENTITY simple_string_expression + ABSTRACT SUPERTYPE OF ( + ONEOF ( + string_literal, + string_variable ) ) + SUBTYPE OF ( string_expression, simple_generic_expression ); + END_ENTITY; + + ENTITY simultaneous_constraint_group + SUBTYPE OF ( variational_representation_item ); + constraint_group : SET [2 : ?] OF constraint_group_member; + WHERE + wr1: ( SIZEOF( QUERY ( q <* using_representations( SELF ) | ( SIZEOF( QUERY ( r <* q.items | ( ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SIMULTANEOUS_CONSTRAINT_GROUP' IN TYPEOF( r ) ) + AND ( SIZEOF( QUERY ( s <* constraint_group | ( ( s IN r\simultaneous_constraint_group.constraint_group ) AND ( + NOT ( r :=: SELF ) ) ) ) ) > 0 ) ) ) ) > 0 ) ) ) = 0 ); + wr2: ( SIZEOF( QUERY ( q <* using_representations( constraint_group[1] ) | ( SIZEOF( QUERY ( r <* constraint_group | + item_in_context( r, q.context_of_items ) ) ) = SIZEOF( constraint_group ) ) ) ) > 0 ); + wr3: ( SIZEOF( QUERY ( q <* constraint_group | ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'EXPLICIT_CONSTRAINT' IN TYPEOF( q ) ) AND ( SIZEOF( QUERY ( r <* q.constrained_elements | ( SIZEOF( + QUERY ( s <* constraint_group | ( r IN s.reference_elements ) ) ) > 0 ) ) ) > 0 ) ) ) ) = 0 ); + END_ENTITY; + + ENTITY sin_function + SUBTYPE OF ( unary_function_call ); + END_ENTITY; + + ENTITY single_area_csg_2d_shape_representation + SUBTYPE OF ( csg_2d_shape_representation ); + SELF\representation.items : SET [1 : ?] OF csg_2d_area_select; + WHERE + wr1: ( SIZEOF( QUERY ( it <* SELF.items | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MAPPED_ITEM' + IN TYPEOF( it ) ) ) ) = 0 ); + wr2: ( SIZEOF( QUERY ( it <* SELF.items | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'CSG_SOLID_2D' IN TYPEOF( it ) ) ) ) = 1 ); + END_ENTITY; + + ENTITY single_boundary_csg_2d_shape_representation + SUBTYPE OF ( single_area_csg_2d_shape_representation ); + WHERE + wr1: ( SIZEOF( QUERY ( it <* SELF.items | ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'CSG_PRIMITIVE_SOLID_2D' IN TYPEOF( it ) ) AND ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PRIMITIVE_2D_WITH_INNER_BOUNDARY' IN TYPEOF( + it\csg_primitive_solid_2d.tree_root_expression ) ) ) ) ) = 0 ); + END_ENTITY; + + ENTITY single_property_is_definition + SUBTYPE OF ( property_definition ); + SELF\property_definition.definition : product_definition; + UNIQUE + ur1 : SELF\property_definition.definition; + END_ENTITY; + + ENTITY single_stratum_continuous_template + ABSTRACT SUPERTYPE OF ( + ONEOF ( + stratum_feature_template, + material_removal_feature_template ) ) + SUBTYPE OF ( continuous_template, single_stratum_template ); + END_ENTITY; + + ENTITY single_stratum_printed_component + SUBTYPE OF ( printed_component, structured_layout_component ); + END_ENTITY; + + ENTITY single_stratum_printed_part_template + SUBTYPE OF ( structured_printed_part_template, single_stratum_structured_template ); + END_ENTITY; + + ENTITY single_stratum_special_symbol_component + SUPERTYPE OF ( + primary_stratum_indicator_symbol ) + SUBTYPE OF ( structured_layout_component ); + END_ENTITY; + + ENTITY single_stratum_special_symbol_template + SUBTYPE OF ( single_stratum_structured_template, special_symbol_template ); + END_ENTITY; + + ENTITY single_stratum_structured_template + ABSTRACT SUPERTYPE OF ( + ONEOF ( + material_removal_structured_template, + single_stratum_special_symbol_template ) ) + SUBTYPE OF ( structured_template, single_stratum_template ); + END_ENTITY; + + ENTITY single_stratum_template + ABSTRACT SUPERTYPE OF ( + single_stratum_continuous_template ) + SUBTYPE OF ( part_template_definition ); + END_ENTITY; + + ENTITY skew_line_distance_geometric_constraint + SUBTYPE OF ( explicit_geometric_constraint ); + SELF\explicit_constraint.constrained_elements : SET [1 : 2] OF line; + SELF\explicit_constraint.reference_elements : SET [0 : 1] OF line; + distance_value : non_negative_length_measure; + WHERE + wr1: ( SIZEOF( SELF\explicit_constraint.constrained_elements + SELF\explicit_constraint.reference_elements ) = 2 ); + END_ENTITY; + + ENTITY slash_expression + SUBTYPE OF ( binary_numeric_expression ); + END_ENTITY; + + ENTITY sliding_curve_pair + SUBTYPE OF ( planar_curve_pair ); + END_ENTITY; + + ENTITY sliding_curve_pair_value + SUBTYPE OF ( pair_value ); + SELF\pair_value.applies_to_pair : sliding_curve_pair; + actual_point_on_curve_1 : point_on_curve; + actual_point_on_curve_2 : point_on_curve; + WHERE + wr1: ( SELF\pair_value.applies_to_pair\planar_curve_pair.curve_1 :=: actual_point_on_curve_1.basis_curve ); + wr2: ( SELF\pair_value.applies_to_pair\planar_curve_pair.curve_2 :=: actual_point_on_curve_2.basis_curve ); + END_ENTITY; + + ENTITY sliding_surface_pair + SUBTYPE OF ( surface_pair ); + END_ENTITY; + + ENTITY sliding_surface_pair_value + SUBTYPE OF ( pair_value ); + SELF\pair_value.applies_to_pair : sliding_surface_pair; + actual_point_on_surface_1 : point_on_surface; + actual_point_on_surface_2 : point_on_surface; + actual_rotation : plane_angle_measure; + WHERE + wr1: ( SELF\pair_value.applies_to_pair\surface_pair.surface_1 :=: actual_point_on_surface_1.basis_surface ); + wr2: ( SELF\pair_value.applies_to_pair\surface_pair.surface_2 :=: actual_point_on_surface_2.basis_surface ); + END_ENTITY; + + ENTITY slot + SUBTYPE OF ( feature_definition ); + WHERE + wr1: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) + | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN + TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( impl_rep.used_representation.items ) = 1 ) ) ) ) = 0 ) ) ) ) + = 0 ); + wr2: ( SIZEOF( QUERY ( pds <* QUERY ( pd <* USEDIN( SELF, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) + | ( NOT ( SIZEOF( QUERY ( sa_occ <* USEDIN( pds, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) | ( ( sa_occ. + description = 'swept shape occurrence' ) AND ( SIZEOF( QUERY ( sdr <* QUERY ( sar <* USEDIN( sa_occ, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.' + + 'RELATED_SHAPE_ASPECT' ) | ( ( sar.description = 'profile usage' ) AND ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF( sar ) ) ) ) + | ( SIZEOF( [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SQUARE_U_PROFILE', + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PARTIAL_CIRCULAR_PROFILE' , + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.ROUNDED_U_PROFILE' , + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.VEE_PROFILE' , + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.TEE_PROFILE' , + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.OPEN_PATH_PROFILE' ] * TYPEOF( sdr. + relating_shape_aspect ) ) = 1 ) ) ) = 1 ) ) ) ) = 1 ) ) ) ) = 0 ); + wr3: ( SIZEOF( QUERY ( pds <* QUERY ( pd <* USEDIN( SELF, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) + | ( NOT ( SIZEOF( QUERY ( sa_occ <* USEDIN( pds, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) | ( ( sa_occ. + description = 'course of travel occurrence' ) AND ( SIZEOF( QUERY ( sdr <* QUERY ( sar <* USEDIN( sa_occ, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.' + + 'RELATED_SHAPE_ASPECT' ) | ( ( sar.description = 'path feature component usage' ) AND ( sar.name = + 'course of travel' ) AND ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF( sar ) ) ) ) | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PATH_FEATURE_COMPONENT' IN TYPEOF( sdr. + relating_shape_aspect ) ) ) ) = 1 ) ) ) ) = 1 ) ) ) ) = 0 ); + wr4: ( SIZEOF( QUERY ( pds <* QUERY ( pd <* USEDIN( SELF, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) + | ( NOT ( ( SIZEOF( QUERY ( sa_occ <* USEDIN( pds, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) | ( ( sa_occ. + description = 'end condition occurrence' ) AND ( SIZEOF( QUERY ( fcr <* QUERY ( sar <* USEDIN( sa_occ, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT' ) + | ( ( sar.description = 'slot end usage' ) AND ( sar.name IN [ 'course of travel start', 'course of travel end'] ) + AND ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP' IN + TYPEOF( sar ) ) ) ) | ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SLOT_END' IN TYPEOF( + fcr.relating_shape_aspect ) ) AND ( fcr.relating_shape_aspect.description IN [ 'open', 'radiused', 'flat', 'woodruff' ] ) + AND ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SLOT' IN TYPEOF( fcr.related_shape_aspect + .of_shape.definition ) ) ) ) ) = 1 ) ) ) ) = 2 ) OR ( SIZEOF( QUERY ( sa_occ <* USEDIN( pds, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) | ( ( sa_occ. + description = 'end condition occurrence' ) AND ( SIZEOF( QUERY ( fcr <* QUERY ( sar <* USEDIN( sa_occ, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT' ) + | ( ( sar.description = 'slot end usage' ) AND ( sar.name IN [ 'course of travel start', 'course of travel end'] ) + AND ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP' IN + TYPEOF( sar ) ) ) ) | ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SLOT_END' IN TYPEOF( + fcr.relating_shape_aspect ) ) AND ( fcr.relating_shape_aspect.description IN [ 'loop'] ) AND ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SLOT' IN TYPEOF( fcr.related_shape_aspect. + of_shape.definition ) ) ) ) ) = 1 ) ) ) ) = 1 ) ) ) ) ) = 0 ); + wr5: ( ( NOT ( SIZEOF( QUERY ( pds <* QUERY ( pd <* USEDIN( SELF, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) + | ( NOT ( SIZEOF( QUERY ( sa_occ <* USEDIN( pds, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) | ( ( sa_occ. + description = 'end condition occurrence' ) AND ( SIZEOF( QUERY ( fcr <* QUERY ( sar <* USEDIN( sa_occ, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT' ) + | ( ( sar.description = 'slot end usage' ) AND ( sar.name IN [ 'course of travel start', 'course of travel end'] ) + AND ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP' IN + TYPEOF( sar ) ) ) ) | ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SLOT_END' IN TYPEOF( + fcr.relating_shape_aspect ) ) AND ( fcr.relating_shape_aspect.description IN [ 'loop'] ) AND ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SLOT' IN TYPEOF( fcr.related_shape_aspect. + of_shape.definition ) ) ) ) ) = 1 ) ) ) ) = 1 ) ) ) ) = 0 ) ) OR ( SIZEOF( QUERY ( pds <* QUERY ( pd <* USEDIN( + SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) + | ( NOT ( SIZEOF( QUERY ( sa_occ <* USEDIN( pds, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) | ( ( sa_occ. + description = 'course of travel occurrence' ) AND ( SIZEOF( QUERY ( sdr <* QUERY ( sar <* USEDIN( sa_occ, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT' ) + | ( ( sar.description = 'path feature component usage' ) AND ( sar.name = 'course of travel' ) AND ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF( sar ) ) ) ) + | ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PATH_FEATURE_COMPONENT' IN TYPEOF( sdr. + relating_shape_aspect ) ) AND ( sdr.relating_shape_aspect.description IN [ 'complex', 'complete circular'] ) ) ) ) + = 1 ) ) ) ) = 1 ) ) ) ) = 0 ) ); + wr6: ( SIZEOF( QUERY ( pdr <* get_property_definition_representations( SELF ) | ( ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PLANAR_SHAPE_REPRESENTATION' IN TYPEOF( pdr. + used_representation ) ) AND ( pdr.used_representation.name = 'maximum feature limit' ) ) ) ) >= 0 ); + END_ENTITY; + + ENTITY slot_end + SUBTYPE OF ( shape_aspect ); + WHERE + wr1 : ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.FEATURE_COMPONENT_DEFINITION' IN TYPEOF( SELF. + of_shape.definition ) ); + wr2 : ( SELF.description IN [ 'open', 'radiused', 'flat', 'woodruff', 'loop'] ); + wr3 : ( ( NOT ( SELF.description IN [ 'open', 'radiused', 'loop'] ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( + SIZEOF( QUERY ( pdr <* USEDIN( pd, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN + TYPEOF( pdr.used_representation ) ) ) ) = 0 ) ) ) ) = 0 ) ); + wr4 : ( ( NOT ( SELF.description IN [ 'flat', 'woodruff'] ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( + SIZEOF( QUERY ( pdr <* USEDIN( pd, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN + TYPEOF( pdr.used_representation ) ) ) ) = 1 ) ) ) ) = 0 ) ); + wr5 : ( ( NOT ( SELF.description IN [ 'flat'] ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( + SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) + | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN + TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( impl_rep.used_representation.items ) = 2 ) ) ) ) = 0 ) ) ) ) + = 0 ) ); + wr6 : ( ( NOT ( SELF.description = 'flat' ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( + SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) + | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN + TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( + SIZEOF( [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( it ) ) + = 2 ) AND ( it.name = 'first radius' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ) ); + wr7 : ( ( NOT ( SELF.description = 'flat' ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( + SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) + | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN + TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( + SIZEOF( [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( it ) ) + = 2 ) AND ( it.name = 'second radius' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ) ); + wr8 : ( ( NOT ( SELF.description = 'woodruff' ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( + SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) + | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN + TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT' IN TYPEOF( it ) ) + AND ( it.name = 'radius' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ) ); + wr9 : ( ( NOT ( SELF.description IN [ 'woodruff'] ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( + SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) + | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN + TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( impl_rep.used_representation.items ) = 1 ) ) ) ) = 0 ) ) ) ) + = 0 ) ); + wr10: ( SIZEOF( QUERY ( fcr <* QUERY ( sar <* USEDIN( SELF, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.' + + 'RELATING_SHAPE_ASPECT' ) | ( ( sar.description = 'slot end usage' ) AND ( sar.name IN [ 'course of travel start', + 'course of travel end' ] ) AND ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF( sar ) ) ) ) | ( ( fcr.related_shape_aspect.description = + 'end condition occurrence' ) AND ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SLOT' IN + TYPEOF( fcr.related_shape_aspect.of_shape.definition ) ) AND ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SLOT_END' IN TYPEOF( fcr. + relating_shape_aspect ) ) ) ) ) >= 1 ); + END_ENTITY; + + ENTITY small_area_face + SUBTYPE OF ( topology_related_to_nearly_degenerate_geometry ); + SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; + WHERE + wr1: ( ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'SHAPE_DATA_QUALITY_UPPER_VALUE_LIMIT' ) + IN TYPEOF( SELF\shape_data_quality_criterion.assessment_specification\ + shape_data_quality_assessment_by_numerical_test.threshold ) ) AND ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.AREA_MEASURE' IN value_limit_type( SELF\ + shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold ) ) ); + wr2: validate_measured_data_type( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.AREA_MEASURE' ); + wr3: validate_inspected_elements_type( SELF, [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'FACE_SURFACE' ] ); + wr4: validate_locations_of_extreme_value_type( SELF, [] ); + wr5: validate_accuracy_types( SELF, [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.AREA_MEASURE'] ); + END_ENTITY; + + ENTITY small_area_surface + SUBTYPE OF ( nearly_degenerate_geometry ); + SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; + WHERE + wr1: ( ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'SHAPE_DATA_QUALITY_UPPER_VALUE_LIMIT' ) + IN TYPEOF( SELF\shape_data_quality_criterion.assessment_specification\ + shape_data_quality_assessment_by_numerical_test.threshold ) ) AND ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.AREA_MEASURE' IN value_limit_type( SELF\ + shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold ) ) ); + wr2: validate_measured_data_type( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.AREA_MEASURE' ); + wr3: validate_inspected_elements_type( SELF, [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SURFACE'] ); + wr4: validate_locations_of_extreme_value_type( SELF, [] ); + wr5: validate_accuracy_types( SELF, [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.AREA_MEASURE'] ); + END_ENTITY; + + ENTITY small_area_surface_patch + SUBTYPE OF ( geometry_with_local_near_degeneracy ); + SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; + WHERE + wr1: ( ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'SHAPE_DATA_QUALITY_UPPER_VALUE_LIMIT' ) + IN TYPEOF( SELF\shape_data_quality_criterion.assessment_specification\ + shape_data_quality_assessment_by_numerical_test.threshold ) ) AND ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.AREA_MEASURE' IN value_limit_type( SELF\ + shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold ) ) ); + wr2: validate_measured_data_type( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.AREA_MEASURE' ); + wr3: validate_inspected_elements_type( SELF, [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'B_SPLINE_SURFACE' ] ); + wr4: validate_locations_of_extreme_value_type( SELF, [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'B_SPLINE_SURFACE_PATCH'] ); + wr5: validate_accuracy_types( SELF, [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.AREA_MEASURE'] ); + END_ENTITY; + + ENTITY small_volume_solid + SUBTYPE OF ( inapt_manifold_solid_brep ); + SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; + WHERE + wr1: ( ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'SHAPE_DATA_QUALITY_UPPER_VALUE_LIMIT' ) + IN TYPEOF( SELF\shape_data_quality_criterion.assessment_specification\ + shape_data_quality_assessment_by_numerical_test.threshold ) ) AND ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.VOLUME_MEASURE' IN value_limit_type( SELF\ + shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold ) ) ); + wr2: validate_measured_data_type( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.VOLUME_MEASURE' ); + wr3: validate_inspected_elements_type( SELF, [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'MANIFOLD_SOLID_BREP' ] ); + wr4: validate_locations_of_extreme_value_type( SELF, [] ); + wr5: validate_accuracy_types( SELF, [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.VOLUME_MEASURE'] ); + END_ENTITY; + + ENTITY smeared_material_definition + SUBTYPE OF ( zone_structural_makeup ); + END_ENTITY; + + ENTITY snowball_template + SUBTYPE OF ( teardrop_template ); + END_ENTITY; + + ENTITY software_for_data_quality_check; + description : text; + software_name : text; + software_version : text; + data_quality : data_quality_definition_representation_relationship; + END_ENTITY; + + ENTITY solid_angle_measure_with_unit + SUBTYPE OF ( measure_with_unit ); + WHERE + wr1: ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 ) AND ( SELF\named_unit.dimensions.mass_exponent = 0 ) AND ( SELF\ + named_unit.dimensions.time_exponent = 0 ) AND ( SELF\named_unit.dimensions.electric_current_exponent = 0 ) AND ( + SELF\named_unit.dimensions.thermodynamic_temperature_exponent = 0 ) AND ( SELF\named_unit.dimensions. + amount_of_substance_exponent = 0 ) AND ( SELF\named_unit.dimensions.luminous_intensity_exponent = 0 ) ); + END_ENTITY; + + ENTITY solid_character_glyph_2d_symbol + SUBTYPE OF ( generic_character_glyph_symbol, csg_2d_shape_representation ); + 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_excessive_number_of_voids + SUBTYPE OF ( inapt_manifold_solid_brep ); + SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; + WHERE + wr1: ( ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' ) + IN TYPEOF( SELF\shape_data_quality_criterion.assessment_specification\ + shape_data_quality_assessment_by_numerical_test.threshold ) ) AND ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.COUNT_MEASURE' IN value_limit_type( SELF\ + shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold ) ) ); + wr2: validate_measured_data_type( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.COUNT_MEASURE' ); + wr3: validate_inspected_elements_type( SELF, [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'MANIFOLD_SOLID_BREP' ] ); + wr4: validate_locations_of_extreme_value_type( SELF, [] ); + wr5: validate_accuracy_types( SELF, [] ); + 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( [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CURVE_BOUNDED_SURFACE', + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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( [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CURVE_BOUNDED_SURFACE', + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SOLID_WITH_THROUGH_DEPRESSION' IN + TYPEOF( SELF ) ) AND ( SIZEOF( TYPEOF( SELF ) * [ + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SOLID_WITH_FLAT_BOTTOM_ROUND_HOLE' , + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SOLID_WITH_SPHERICAL_BOTTOM_ROUND_HOLE' , + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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: ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 ) * [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SOLID_WITH_HOLE', + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SOLID_WITH_POCKET' , + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 ( 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 solid_with_wrong_number_of_voids + SUBTYPE OF ( erroneous_manifold_solid_brep ); + SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_logical_test; + WHERE + wr1: validate_measured_data_type( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.BOOLEAN_VALUE' ); + wr2: validate_inspected_elements_type( SELF, [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'BREP_WITH_VOIDS' ] ); + wr3: validate_locations_of_extreme_value_type( SELF, [] ); + wr4: validate_accuracy_types( SELF, [] ); + END_ENTITY; + + ENTITY source_for_requirement + SUBTYPE OF ( group_assignment ); + SELF\group_assignment.assigned_group : requirement_source; + items : SET [1 : 1] OF requirement_source_item; + END_ENTITY; + + ENTITY sourced_requirement + SUBTYPE OF ( group_assignment ); + SELF\group_assignment.assigned_group : requirement_source; + items : SET [1 : 1] OF product_definition; + END_ENTITY; + + ENTITY special_symbol_template + ABSTRACT SUPERTYPE OF ( + ONEOF ( + single_stratum_special_symbol_template, + multi_stratum_special_symbol_template ) ) + SUBTYPE OF ( part_template_definition ); + 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, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PRODUCT_DEFINITION_RELATIONSHIP.' + 'RELATED_PRODUCT_DEFINITION' ) | ( pdr.relating_product_definition :=: + next_usage.relating_product_definition ) ) ) = 1 ) ); + wr5: ( SIZEOF( [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.NEXT_ASSEMBLY_USAGE_OCCURRENCE', + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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_cap + SUBTYPE OF ( feature_definition ); + WHERE + wr1: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) + | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN + TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( impl_rep.used_representation.items ) = 3 ) ) ) ) = 0 ) ) ) ) + = 0 ); + wr2: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) + | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN + TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( + SIZEOF( [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( it ) ) = + 2 ) AND ( it.name = 'radius' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ); + wr3: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) + | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN + TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( + SIZEOF( [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PLANE_ANGLE_MEASURE_WITH_UNIT' ] * TYPEOF( it ) ) + = 2 ) AND ( it.name = 'internal angle' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ); + END_ENTITY; + + ENTITY spherical_pair + SUBTYPE OF ( low_order_kinematic_pair ); + DERIVE + SELF\low_order_kinematic_pair.t_x : BOOLEAN := FALSE; + SELF\low_order_kinematic_pair.t_y : BOOLEAN := FALSE; + SELF\low_order_kinematic_pair.t_z : BOOLEAN := FALSE; + SELF\low_order_kinematic_pair.r_x : BOOLEAN := TRUE; + SELF\low_order_kinematic_pair.r_y : BOOLEAN := TRUE; + SELF\low_order_kinematic_pair.r_z : BOOLEAN := TRUE; + END_ENTITY; + + ENTITY spherical_pair_value + SUBTYPE OF ( pair_value ); + SELF\pair_value.applies_to_pair : spherical_pair_select; + input_orientation : spatial_rotation; + DERIVE + actual_orientation : ypr_rotation := convert_spatial_to_ypr_rotation( SELF\pair_value.applies_to_pair, input_orientation ); + END_ENTITY; + + ENTITY spherical_pair_with_pin + SUBTYPE OF ( low_order_kinematic_pair ); + DERIVE + SELF\low_order_kinematic_pair.t_x : BOOLEAN := FALSE; + SELF\low_order_kinematic_pair.t_y : BOOLEAN := FALSE; + SELF\low_order_kinematic_pair.t_z : BOOLEAN := FALSE; + SELF\low_order_kinematic_pair.r_x : BOOLEAN := FALSE; + SELF\low_order_kinematic_pair.r_y : BOOLEAN := TRUE; + SELF\low_order_kinematic_pair.r_z : BOOLEAN := TRUE; + END_ENTITY; + + ENTITY spherical_pair_with_pin_and_range + SUBTYPE OF ( spherical_pair_with_pin ); + lower_limit_yaw : OPTIONAL plane_angle_measure; + upper_limit_yaw : OPTIONAL plane_angle_measure; + lower_limit_roll : OPTIONAL plane_angle_measure; + upper_limit_roll : OPTIONAL plane_angle_measure; + WHERE + wr1: ( ( ( NOT EXISTS( lower_limit_yaw ) ) OR ( NOT EXISTS( upper_limit_yaw ) ) ) XOR ( lower_limit_yaw < upper_limit_yaw ) ); + wr2: ( ( ( NOT EXISTS( lower_limit_roll ) ) OR ( NOT EXISTS( upper_limit_roll ) ) ) XOR ( lower_limit_roll < + upper_limit_roll ) ); + END_ENTITY; + + ENTITY spherical_pair_with_range + SUBTYPE OF ( spherical_pair ); + lower_limit_yaw : OPTIONAL plane_angle_measure; + upper_limit_yaw : OPTIONAL plane_angle_measure; + lower_limit_pitch : OPTIONAL plane_angle_measure; + upper_limit_pitch : OPTIONAL plane_angle_measure; + lower_limit_roll : OPTIONAL plane_angle_measure; + upper_limit_roll : OPTIONAL plane_angle_measure; + WHERE + wr1: ( ( ( NOT EXISTS( lower_limit_yaw ) ) OR ( NOT EXISTS( upper_limit_yaw ) ) ) XOR ( lower_limit_yaw < upper_limit_yaw ) ); + wr2: ( ( ( NOT EXISTS( lower_limit_pitch ) ) OR ( NOT EXISTS( upper_limit_pitch ) ) ) XOR ( lower_limit_pitch < + upper_limit_pitch ) ); + wr3: ( ( ( NOT EXISTS( lower_limit_roll ) ) OR ( NOT EXISTS( upper_limit_roll ) ) ) XOR ( lower_limit_roll < + upper_limit_roll ) ); + END_ENTITY; + + ENTITY spherical_surface + SUBTYPE OF ( elementary_surface ); + radius : positive_length_measure; + END_ENTITY; + + ENTITY sql_mappable_defined_function + ABSTRACT SUPERTYPE + SUBTYPE OF ( defined_function ); + END_ENTITY; + + ENTITY square_root_function + SUBTYPE OF ( unary_function_call ); + END_ENTITY; + + ENTITY square_u_profile + SUBTYPE OF ( shape_aspect ); + WHERE + wr1 : ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.FEATURE_COMPONENT_DEFINITION' IN TYPEOF( SELF. + of_shape.definition ) ); + wr2 : ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( pdr <* USEDIN( pd, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) + | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN + TYPEOF( pdr.used_representation ) ) ) ) = 1 ) ) ) ) = 0 ); + wr3 : ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) + | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN + TYPEOF( pdr.used_representation ) ) ) | ( ( NOT ( SIZEOF( impl_rep.used_representation.items ) >= 4 ) ) AND ( + SIZEOF( impl_rep.used_representation.items ) <= 7 ) ) ) ) = 0 ) ) ) ) = 0 ); + wr4 : ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION.DEFINITION' ) | ( SIZEOF( QUERY ( pdr <* USEDIN( pd, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) + | ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN + TYPEOF( pdr.used_representation ) ) AND ( SIZEOF( QUERY ( srwp_i <* pdr.used_representation.items | ( ( srwp_i. + name = 'orientation' ) OR ( srwp_i.name = 'width' ) OR ( srwp_i.name = 'first angle' ) OR ( srwp_i.name = + 'second angle' ) OR ( srwp_i.name = 'first radius' ) OR ( srwp_i.name = 'second radius' ) OR ( srwp_i.name = + 'profile limit' ) OR ( srwp_i.name = 'depth' ) ) ) ) = SIZEOF( pdr.used_representation.items ) ) ) ) ) = 1 ) ) ) + = 1 ); + wr5 : ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) + | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN + TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PLACEMENT' IN TYPEOF( it ) ) AND ( it.name = + 'orientation' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ); + wr6 : ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) + | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN + TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( + SIZEOF( [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( it ) ) + = 2 ) AND ( it.name = 'width' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ); + wr7 : ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) + | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN + TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( + SIZEOF( [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( it ) ) + = 2 ) AND ( it.name = 'first radius' ) ) ) ) <= 1 ) ) ) ) = 0 ) ) ) ) = 0 ); + wr8 : ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) + | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN + TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( + SIZEOF( [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( it ) ) + = 2 ) AND ( it.name = 'second radius' ) ) ) ) <= 1 ) ) ) ) = 0 ) ) ) ) = 0 ); + wr9 : ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) + | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN + TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( + SIZEOF( [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PLANE_ANGLE_MEASURE_WITH_UNIT' ] * TYPEOF( it ) ) + = 2 ) AND ( it.name = 'first angle' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ); + wr10: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) + | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN + TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( + SIZEOF( [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PLANE_ANGLE_MEASURE_WITH_UNIT' ] * TYPEOF( it ) ) + = 2 ) AND ( it.name = 'second angle' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ); + wr11: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( pdr <* USEDIN( pd, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) + | ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PLANAR_SHAPE_REPRESENTATION' IN TYPEOF( + pdr.used_representation ) ) AND ( pdr.used_representation.name = 'profile limit' ) ) ) ) <= 1 ) ) ) ) = 0 ); + wr12: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) + | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN + TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( + SIZEOF( [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( it ) ) + = 2 ) AND ( it.name = 'depth' ) ) ) ) <= 1 ) ) ) ) = 0 ) ) ) ) = 0 ); + 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 steep_angle_between_adjacent_edges + SUBTYPE OF ( steep_geometry_transition_across_edge ); + SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; + WHERE + wr1: ( ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' ) + IN TYPEOF( SELF\shape_data_quality_criterion.assessment_specification\ + shape_data_quality_assessment_by_numerical_test.threshold ) ) AND ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PLANE_ANGLE_MEASURE' IN value_limit_type( + SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test. + threshold ) ) ); + wr2: validate_measured_data_type( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PLANE_ANGLE_MEASURE' ); + wr3: validate_inspected_elements_type( SELF, [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.EDGE_LOOP'] ); + wr4: validate_locations_of_extreme_value_type( SELF, [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'ORIENTED_EDGE' ] ); + wr5: validate_accuracy_types( SELF, [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PLANE_ANGLE_MEASURE' ] ); + END_ENTITY; + + ENTITY steep_angle_between_adjacent_faces + SUBTYPE OF ( steep_geometry_transition_across_edge ); + SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; + WHERE + wr1: ( ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' ) + IN TYPEOF( SELF\shape_data_quality_criterion.assessment_specification\ + shape_data_quality_assessment_by_numerical_test.threshold ) ) AND ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PLANE_ANGLE_MEASURE' IN value_limit_type( + SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test. + threshold ) ) ); + wr2: validate_measured_data_type( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PLANE_ANGLE_MEASURE' ); + wr3: validate_inspected_elements_type( SELF, [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'CONNECTED_FACE_SET' ] ); + wr4: validate_locations_of_extreme_value_type( SELF, [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'POINT_ON_EDGE_CURVE'] ); + wr5: validate_accuracy_types( SELF, [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PLANE_ANGLE_MEASURE' ] ); + END_ENTITY; + + ENTITY steep_geometry_transition_across_edge + ABSTRACT SUPERTYPE OF ( + ONEOF ( + steep_angle_between_adjacent_edges, + steep_angle_between_adjacent_faces ) ) + SUBTYPE OF ( inapt_topology_and_geometry_relationship ); + END_ENTITY; + + ENTITY step + SUBTYPE OF ( feature_definition ); + WHERE + wr1: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) + | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN + TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( impl_rep.used_representation.items ) = 1 ) ) ) ) = 0 ) ) ) ) + = 0 ); + wr2: ( SIZEOF( QUERY ( pds <* QUERY ( pd <* USEDIN( SELF, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) + | ( NOT ( SIZEOF( QUERY ( sa_occ <* USEDIN( pds, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) | ( ( sa_occ. + description = 'course of travel occurrence' ) AND ( SIZEOF( QUERY ( sdr <* QUERY ( sar <* USEDIN( sa_occ, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT' ) + | ( ( sar.description = 'path feature component usage' ) AND ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF( sar ) ) ) ) + | ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PATH_FEATURE_COMPONENT' IN TYPEOF( sdr. + relating_shape_aspect ) ) AND ( sdr.relating_shape_aspect.description = 'linear' ) ) ) ) = 1 ) ) ) ) = 1 ) ) ) ) = + 0 ); + wr3: ( SIZEOF( QUERY ( pds <* QUERY ( pd <* USEDIN( SELF, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) + | ( NOT ( SIZEOF( QUERY ( sa_occ <* USEDIN( pds, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) | ( ( sa_occ. + description = 'removal boundary occurrence' ) AND ( SIZEOF( QUERY ( sdr <* QUERY ( sar <* USEDIN( sa_occ, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT' ) + | ( ( sar.description = 'profile usage' ) AND ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF( sar ) ) ) ) | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.VEE_PROFILE' IN TYPEOF( sdr. + relating_shape_aspect ) ) ) ) = 1 ) ) ) ) = 1 ) ) ) ) = 0 ); + wr4: ( SIZEOF( QUERY ( pdr <* get_property_definition_representations( SELF ) | ( ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PLANAR_SHAPE_REPRESENTATION' IN TYPEOF( pdr. + used_representation ) ) AND ( pdr.used_representation.name = 'maximum feature limit' ) ) ) ) >= 0 ); + wr5: ( SIZEOF( QUERY ( pds <* USEDIN( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION.DEFINITION' ) | ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pds ) ) AND ( SIZEOF( QUERY ( csa <* USEDIN( pds, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) | ( ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.COMPOSITE_SHAPE_ASPECT' IN TYPEOF( csa ) ) + AND ( csa.name = 'uncut volume' ) AND ( SIZEOF( QUERY ( sar <* csa.component_relationships | ( ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF( + sar ) ) AND ( SIZEOF( [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.BOSS', + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROTRUSION' ] * TYPEOF( sar. + related_shape_aspect ) ) = 1 ) ) ) ) = 1 ) ) ) ) <= 1 ) ) ) ) = 1 ); + END_ENTITY; + + ENTITY straightness_tolerance + SUBTYPE OF ( geometric_tolerance ); + WHERE + wr1: ( NOT ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'GEOMETRIC_TOLERANCE_WITH_DATUM_REFERENCE' ) IN TYPEOF( SELF ) ) ); + END_ENTITY; + + ENTITY stratum + SUPERTYPE OF ( + ONEOF ( + documentation_layer_stratum, + design_layer_stratum ) ) + SUBTYPE OF ( product_definition, product_definition_shape ); + DERIVE + SELF\property_definition.definition : stratum := SELF; + UNIQUE + ur1 : SELF\product_definition.id, SELF\product_definition.formation; + WHERE + wr1: ( SIZEOF( USEDIN( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'NAME_ATTRIBUTE.' + + 'NAMED_ITEM' ) ) = 0 ); + wr2: ( NOT EXISTS( SELF\property_definition.description ) ); + END_ENTITY; + + ENTITY stratum_feature + SUPERTYPE OF ( + fiducial_stratum_feature ) + SUBTYPE OF ( shape_aspect ); + END_ENTITY; + + ENTITY stratum_feature_based_derived_pattern + SUBTYPE OF ( characterized_object, property_definition_relationship ); + END_ENTITY; + + ENTITY stratum_feature_conductive_join + SUBTYPE OF ( product_definition_relationship ); + END_ENTITY; + + ENTITY stratum_feature_template + SUBTYPE OF ( single_stratum_continuous_template ); + END_ENTITY; + + ENTITY stratum_feature_template_component + SUPERTYPE OF ( + ONEOF ( + area_component, + conductive_interconnect_element ) + ANDOR + ONEOF ( + area_component, + conductive_interconnect_element, + land ) ) + SUBTYPE OF ( laminate_component ); + END_ENTITY; + + ENTITY stratum_feature_template_component_with_stratum_feature + SUBTYPE OF ( stratum_feature_template_component, stratum_feature, shape_aspect_relationship ); + DERIVE + SELF\shape_aspect_relationship.related_shape_aspect : stratum_feature_template_component_with_stratum_feature := SELF; + SELF\shape_aspect_relationship.relating_shape_aspect : stratum_feature_template_component_with_stratum_feature := SELF; + WHERE + wr1: ( SELF\shape_aspect_relationship.name = 'implementation' ); + END_ENTITY; + + ENTITY stratum_specific_template_location + SUBTYPE OF ( assembly_component_usage, property_definition ); + END_ENTITY; + + ENTITY stratum_stack_dependent_template + SUBTYPE OF ( multi_stratum_structured_template ); + END_ENTITY; + + ENTITY stratum_stack_model + ABSTRACT SUPERTYPE + SUBTYPE OF ( part_template_definition ); + END_ENTITY; + + ENTITY stratum_sub_stack + ABSTRACT SUPERTYPE OF ( + ONEOF ( + local_linear_stack, + passage_technology_allocation_to_stack_model ) ) + SUBTYPE OF ( part_template_definition ); + END_ENTITY; + + ENTITY stratum_surface + SUBTYPE OF ( shape_aspect ); + END_ENTITY; + + ENTITY stratum_surface_technology + SUBTYPE OF ( shape_aspect ); + SELF\shape_aspect.of_shape : stratum_technology; + DERIVE + associated_technology : stratum_technology := SELF\shape_aspect.of_shape; + END_ENTITY; + + ENTITY stratum_technology + SUBTYPE OF ( characterized_object, product_definition_shape ); + DERIVE + SELF\property_definition.definition : characterized_definition := SELF; + UNIQUE + ur1 : SELF\characterized_object.name; + END_ENTITY; + + ENTITY stratum_technology_mapping_relationship + SUBTYPE OF ( property_definition_relationship ); + END_ENTITY; + + ENTITY stratum_technology_occurrence + SUBTYPE OF ( property_definition ); + END_ENTITY; + + ENTITY stratum_technology_occurrence_feature_constraint + SUBTYPE OF ( stratum_technology_occurrence_relationship ); + END_ENTITY; + + ENTITY stratum_technology_occurrence_link + SUBTYPE OF ( stratum_technology_occurrence_relationship ); + END_ENTITY; + + ENTITY stratum_technology_occurrence_relationship + ABSTRACT SUPERTYPE OF ( + ONEOF ( + derived_stratum_technology_occurrence_relationship, + stratum_technology_occurrence_link, + stratum_technology_occurrence_feature_constraint, + stratum_technology_occurrence_swap_relationship ) ) + SUBTYPE OF ( property_definition, property_definition_relationship ); + END_ENTITY; + + ENTITY stratum_technology_occurrence_swap_relationship + SUBTYPE OF ( stratum_technology_occurrence_relationship ); + END_ENTITY; + + ENTITY stratum_technology_swap_relationship + SUBTYPE OF ( property_definition_relationship ); + END_ENTITY; + + ENTITY string_defined_function + ABSTRACT SUPERTYPE + SUBTYPE OF ( defined_function, string_expression ); + END_ENTITY; + + ENTITY string_expression + ABSTRACT SUPERTYPE OF ( + ONEOF ( + simple_string_expression, + index_expression, + substring_expression, + concat_expression, + format_function, + string_defined_function ) ) + SUBTYPE OF ( expression ); + END_ENTITY; + + ENTITY string_literal + SUBTYPE OF ( simple_string_expression, generic_literal ); + the_value : STRING; + END_ENTITY; + + ENTITY string_variable + SUBTYPE OF ( simple_string_expression, variable ); + END_ENTITY; + + ENTITY structured_dimension_callout + SUBTYPE OF ( draughting_callout ); + WHERE + wr1: ( SIZEOF( TYPEOF( SELF ) * [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.DATUM_FEATURE_CALLOUT', + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.DATUM_TARGET_CALLOUT' , + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.GEOMETRICAL_TOLERANCE_CALLOUT' , + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LEADER_DIRECTED_CALLOUT' , + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROJECTION_DIRECTED_CALLOUT' , + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.DIMENSION_CURVE_DIRECTED_CALLOUT' ] ) = 0 ); + wr2: ( SIZEOF( QUERY ( ato <* QUERY ( con <* SELF.contents | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.ANNOTATION_TEXT_OCCURRENCE' IN TYPEOF( con ) ) ) + | ( ato.name = 'dimension value' ) ) ) >= 1 ); + wr4: ( SIZEOF( QUERY ( dcr <* USEDIN( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'DRAUGHTING_CALLOUT_RELATIONSHIP.' + 'RELATING_DRAUGHTING_CALLOUT' ) | ( ( ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'DIMENSION_CALLOUT_COMPONENT_RELATIONSHIP' ) + IN TYPEOF( dcr ) ) AND ( dcr.name = 'prefix' ) ) ) ) <= 1 ); + wr5: ( SIZEOF( QUERY ( dcr <* USEDIN( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'DRAUGHTING_CALLOUT_RELATIONSHIP.' + 'RELATING_DRAUGHTING_CALLOUT' ) | ( ( ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'DIMENSION_CALLOUT_COMPONENT_RELATIONSHIP' ) + IN TYPEOF( dcr ) ) AND ( dcr.name = 'suffix' ) ) ) ) <= 1 ); + wr6: ( ( NOT ( SIZEOF( QUERY ( ato <* QUERY ( con <* SELF.contents | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.ANNOTATION_TEXT_OCCURRENCE' IN TYPEOF( con ) ) ) + | ( ato.name = 'prefix text' ) ) ) > 0 ) ) OR ( SIZEOF( QUERY ( dcr <* USEDIN( SELF, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'DRAUGHTING_CALLOUT_RELATIONSHIP.' + + 'RELATING_DRAUGHTING_CALLOUT' ) | ( ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'DIMENSION_CALLOUT_COMPONENT_RELATIONSHIP' ) IN TYPEOF( dcr ) ) AND ( dcr.name = 'prefix' ) ) ) ) = 1 ) ); + wr7: ( ( NOT ( SIZEOF( QUERY ( ato <* QUERY ( con <* SELF.contents | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.ANNOTATION_TEXT_OCCURRENCE' IN TYPEOF( con ) ) ) + | ( ato.name = 'suffix text' ) ) ) > 0 ) ) OR ( SIZEOF( QUERY ( dcr <* USEDIN( SELF, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'DRAUGHTING_CALLOUT_RELATIONSHIP.' + + 'RELATING_DRAUGHTING_CALLOUT' ) | ( ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'DIMENSION_CALLOUT_COMPONENT_RELATIONSHIP' ) IN TYPEOF( dcr ) ) AND ( dcr.name = 'suffix' ) ) ) ) = 1 ) ); + END_ENTITY; + + ENTITY structured_inter_stratum_feature_template + SUBTYPE OF ( inter_stratum_feature_template, stratum_stack_dependent_template ); + END_ENTITY; + + ENTITY structured_layout_component + ABSTRACT SUPERTYPE OF ( + ONEOF ( + footprint_occurrence, + material_removal_structured_component, + multi_stratum_special_symbol_component, + padstack_occurrence, + single_stratum_special_symbol_component ) + ANDOR + ONEOF ( + footprint_occurrence, + material_removal_structured_component, + multi_stratum_printed_component, + multi_stratum_special_symbol_component, + padstack_occurrence, + single_stratum_printed_component, + single_stratum_special_symbol_component ) ) + SUBTYPE OF ( assembly_group_component ); + END_ENTITY; + + ENTITY structured_layout_component_sub_assembly_relationship + SUPERTYPE OF ( + footprint_occurrence_product_definition_relationship ) + SUBTYPE OF ( next_assembly_usage_occurrence_relationship ); + WHERE + wr1: ( SELF\product_definition_relationship.related_product_definition :<>: SELF\product_definition_relationship. + relating_product_definition ); + END_ENTITY; + + ENTITY structured_layout_component_sub_assembly_relationship_with_component + SUBTYPE OF ( structured_layout_component_sub_assembly_relationship, assembly_component ); + DERIVE + SELF\product_definition_relationship.related_product_definition : assembly_component := SELF; + END_ENTITY; + + ENTITY structured_printed_part_template + ABSTRACT SUPERTYPE OF ( + ONEOF ( + single_stratum_printed_part_template, + multi_stratum_printed_part_template ) ) + SUBTYPE OF ( printed_part_template, structured_template ); + END_ENTITY; + + ENTITY structured_printed_part_template_terminal + SUBTYPE OF ( printed_part_template_terminal ); + END_ENTITY; + + ENTITY structured_template + ABSTRACT SUPERTYPE OF ( + ONEOF ( + single_stratum_structured_template, + multi_stratum_structured_template ) ) + SUBTYPE OF ( geometric_template ); + 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 : styled_item_target; + WHERE + wr1: ( ( SIZEOF( SELF.styles ) = 1 ) XOR ( SIZEOF( QUERY ( pres_style <* SELF.styles | ( NOT ( ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'PRESENTATION_STYLE_BY_CONTEXT' ) IN + TYPEOF( pres_style ) ) ) ) ) = 0 ) ); + wr2: ( NOT ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.STYLED_ITEM' IN TYPEOF( item ) ) ); + wr3: ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MAPPED_ITEM' IN TYPEOF( item ) ) OR ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.GEOMETRIC_REPRESENTATION_ITEM' IN TYPEOF( + item ) ) OR ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'CONTEXT_DEPENDENT_OVER_RIDING_STYLED_ITEM' IN TYPEOF( SELF ) ) ); + END_ENTITY; + + ENTITY su_parameters + SUBTYPE OF ( geometric_representation_item ); + a : length_measure; + alpha : plane_angle_measure; + b : length_measure; + beta : plane_angle_measure; + c : length_measure; + gamma : plane_angle_measure; + WHERE + wr1: ( SELF\geometric_representation_item.dim = 3 ); + 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 subsketch + SUBTYPE OF ( geometric_representation_item ); + subsketch_elements : SET [1 : ?] OF sketch_element_select; + owning_sketch : sketch_type_select; + WHERE + wr1: ( ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.NEUTRAL_SKETCH_REPRESENTATION' IN TYPEOF( + owning_sketch ) ) AND ( SIZEOF( QUERY ( q <* subsketch_elements | ( NOT ( owning_sketch IN using_representations( q ) ) ) ) ) + = 0 ) ) XOR ( ( SIZEOF( TYPEOF( owning_sketch ) * [ + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.POSITIONED_SKETCH' , + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SUBSKETCH' ] ) = 1 ) AND ( SIZEOF( + QUERY ( q <* subsketch_elements | ( NOT ( owning_sketch IN using_items( q, [] ) ) ) ) ) = 0 ) ) ); + END_ENTITY; + + ENTITY substring_expression + SUBTYPE OF ( string_expression, multiple_arity_generic_expression ); + DERIVE + operand : generic_expression := SELF\multiple_arity_generic_expression.operands[1]; + index1 : generic_expression := SELF\multiple_arity_generic_expression.operands[2]; + index2 : generic_expression := SELF\multiple_arity_generic_expression.operands[3]; + WHERE + wr1: ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.STRING_EXPRESSION' IN TYPEOF( operand ) ) AND + ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.NUMERIC_EXPRESSION' IN TYPEOF( index1 ) ) AND + ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.NUMERIC_EXPRESSION' IN TYPEOF( index2 ) ) ); + wr2: ( SIZEOF( SELF\multiple_arity_generic_expression.operands ) = 3 ); + wr3: is_int_expr( index1 ); + wr4: is_int_expr( index2 ); + END_ENTITY; + + ENTITY summary_report_request + SUBTYPE OF ( data_quality_report_request ); + summary_report_request_type : summary_report_type; + 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( [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'ANNOTATION_CURVE_OCCURRENCE', 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'ANNOTATION_SYMBOL_OCCURRENCE' , 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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: ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PCURVE' IN TYPEOF( associated_geometry[1] ) ) + OR ( master_representation <> pcurve_s1 ) ); + wr3: ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PCURVE' IN TYPEOF( associated_geometry[2] ) ) + OR ( master_representation <> pcurve_s2 ) ); + wr4: ( NOT ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SURFACE_CURVE' IN TYPEOF( directrix ) ) ) + OR ( reference_surface IN directrix\surface_curve.basis_surface ) ); + END_ENTITY; + + ENTITY surface_distance_assembly_constraint_with_dimension + SUBTYPE OF ( binary_assembly_constraint, sdgc_with_dimension ); + END_ENTITY; + + ENTITY surface_distance_geometric_constraint + SUBTYPE OF ( explicit_geometric_constraint ); + SELF\explicit_constraint.constrained_elements : SET [1 : 2] OF surface; + SELF\explicit_constraint.reference_elements : SET [0 : 4] OF point_curve_or_surface_constraint_element; + near_points : SET [0 : 4] OF near_point_relationship; + WHERE + wr1: ( ( SIZEOF( SELF\explicit_constraint.reference_elements ) > 0 ) OR ( ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SDGC_WITH_DIMENSION' IN TYPEOF( SELF ) ) AND + ( SIZEOF( SELF\explicit_constraint.constrained_elements ) = 2 ) ) ); + wr2: ( SIZEOF( near_points ) <= SIZEOF( SELF\explicit_constraint.reference_elements ) ); + wr3: ( SIZEOF( QUERY ( q <* near_points | ( NOT ( q\representation_item_relationship.relating_representation_item IN SELF\ + explicit_constraint.reference_elements ) ) ) ) = 0 ); + 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 ) ); + END_ENTITY; + + ENTITY surface_pair + ABSTRACT SUPERTYPE OF ( + ONEOF ( + sliding_surface_pair, + rolling_surface_pair ) + ANDOR + surface_pair_with_range ) + SUBTYPE OF ( high_order_kinematic_pair ); + surface_1 : surface; + surface_2 : surface; + orientation : BOOLEAN; + WHERE + wr1: ( SIZEOF( QUERY ( r <* SELF\kinematic_pair.associated_link_representations_1 | ( NOT ( surface_1 IN r.items ) ) ) ) = + 0 ); + wr2: ( SIZEOF( QUERY ( r <* SELF\kinematic_pair.associated_link_representations_2 | ( NOT ( surface_2 IN r.items ) ) ) ) = + 0 ); + wr3: ( SIZEOF( QUERY ( lr <* SELF\kinematic_pair.associated_link_representations_1 | ( NOT ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.RIGID_LINK_REPRESENTATION' IN TYPEOF( lr ) ) ) ) ) + = 0 ); + END_ENTITY; + + ENTITY surface_pair_with_range + SUBTYPE OF ( surface_pair ); + range_on_surface_1 : rectangular_trimmed_surface; + range_on_surface_2 : rectangular_trimmed_surface; + lower_limit_actual_rotation : OPTIONAL plane_angle_measure; + upper_limit_actual_rotation : OPTIONAL plane_angle_measure; + WHERE + wr1: ( SELF\surface_pair.surface_1 :=: range_on_surface_1.basis_surface ); + wr2: ( SELF\surface_pair.surface_2 :=: range_on_surface_2.basis_surface ); + wr3: ( ( ( NOT EXISTS( lower_limit_actual_rotation ) ) OR ( NOT EXISTS( upper_limit_actual_rotation ) ) ) XOR ( + lower_limit_actual_rotation < upper_limit_actual_rotation ) ); + wr4: ( SIZEOF( QUERY ( r <* SELF\kinematic_pair.associated_link_representations_1 | ( NOT ( range_on_surface_1 IN r.items ) ) ) ) + = 0 ); + wr5: ( SIZEOF( QUERY ( r <* SELF\kinematic_pair.associated_link_representations_2 | ( NOT ( range_on_surface_2 IN r.items ) ) ) ) + = 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 ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CURVE_BOUNDED_SURFACE' IN TYPEOF( + parent_surface ) ) ); + END_ENTITY; + + ENTITY surface_patch_set + SUBTYPE OF ( geometric_representation_item ); + patches : SET [1 : ?] OF surface_patch; + END_ENTITY; + + ENTITY surface_prepped_terminal + SUBTYPE OF ( altered_package_terminal ); + END_ENTITY; + + ENTITY surface_profile_tolerance + SUBTYPE OF ( geometric_tolerance ); + 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_smoothness_geometric_constraint + SUBTYPE OF ( explicit_geometric_constraint ); + SELF\explicit_constraint.constrained_elements : SET [1 : 1] OF surface_patch_set; + u_smoothness : transition_code; + v_smoothness : transition_code; + WHERE + wr1: ( SIZEOF( SELF\explicit_constraint.reference_elements ) = 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 <= transparency ) AND ( transparency <= 1 ) ); + 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( [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'MEASURE_REPRESENTATION_ITEM', 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'VALUE_RANGE' , 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'DESCRIPTIVE_REPRESENTATION_ITEM' ] * TYPEOF( i ) ) <> 1 ) ) ) = 0 ); + wr2: ( ( SIZEOF( QUERY ( i <* SELF.items | ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'DESCRIPTIVE_REPRESENTATION_ITEM' ) IN TYPEOF( i ) ) ) ) = 1 ) AND ( SIZEOF( QUERY ( i <* SELF.items | ( ( ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'DESCRIPTIVE_REPRESENTATION_ITEM' ) IN + TYPEOF( i ) ) AND ( i.name = 'measuring method' ) ) ) ) = 1 ) ); + wr3: ( SIZEOF( QUERY ( i <* SELF.items | ( SIZEOF( [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'MEASURE_REPRESENTATION_ITEM', 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'VALUE_RANGE' ] * TYPEOF( i ) ) = 1 ) ) ) > 0 ); + wr4: ( ( SIZEOF( USEDIN( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'REPRESENTATION_RELATIONSHIP.' + 'REP_1' ) ) <= 1 ) AND ( SIZEOF( USEDIN( SELF, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'REPRESENTATION_RELATIONSHIP.' + 'REP_2' ) ) + = 0 ) AND ( SIZEOF( QUERY ( rr <* USEDIN( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'REPRESENTATION_RELATIONSHIP.' + 'REP_1' ) | ( rr.rep_2.name = 'measuring direction' ) ) ) = SIZEOF( USEDIN( SELF, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'REPRESENTATION_RELATIONSHIP.' + 'REP_1' ) ) ) ); + wr5: ( ( SIZEOF( USEDIN( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION_REPRESENTATION.' + 'USED_REPRESENTATION' ) ) = 1 ) AND ( SIZEOF( QUERY ( pdr <* USEDIN( SELF, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.' + + 'USED_REPRESENTATION' ) | ( SIZEOF( QUERY ( gpa <* USEDIN( pdr.definition, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'GENERAL_PROPERTY_ASSOCIATION.' + + 'DERIVED_DEFINITION' ) | ( ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'GENERAL_PROPERTY' ) IN TYPEOF( gpa.base_definition ) ) AND ( gpa\general_property_association.base_definition\ + general_property.name = 'surface_condition' ) ) ) ) = 1 ) ) ) = 1 ) ); + END_ENTITY; + + ENTITY surface_with_excessive_patches_in_one_direction + SUBTYPE OF ( overcomplex_geometry ); + SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; + WHERE + wr1: ( ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' ) + IN TYPEOF( SELF\shape_data_quality_criterion.assessment_specification\ + shape_data_quality_assessment_by_numerical_test.threshold ) ) AND ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.COUNT_MEASURE' IN value_limit_type( SELF\ + shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold ) ) ); + wr2: validate_measured_data_type( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.COUNT_MEASURE' ); + wr3: validate_inspected_elements_type( SELF, [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'B_SPLINE_OR_RECTANGULAR_COMPOSITE_SURFACE_SELECT' ] ); + wr4: validate_locations_of_extreme_value_type( SELF, [] ); + wr5: validate_accuracy_types( SELF, [] ); + END_ENTITY; + + ENTITY surface_with_small_curvature_radius + SUBTYPE OF ( geometry_with_local_near_degeneracy ); + SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; + WHERE + wr1: ( ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'SHAPE_DATA_QUALITY_UPPER_VALUE_LIMIT' ) + IN TYPEOF( SELF\shape_data_quality_criterion.assessment_specification\ + shape_data_quality_assessment_by_numerical_test.threshold ) ) AND ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE' IN value_limit_type( SELF\ + shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold ) ) ); + wr2: validate_measured_data_type( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE' ); + wr3: validate_inspected_elements_type( SELF, [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SURFACE'] ); + wr4: validate_locations_of_extreme_value_type( SELF, [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'POINT_ON_SURFACE' ] ); + wr5: validate_accuracy_types( SELF, [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE'] ); + END_ENTITY; + + ENTITY surfaced_open_shell + SUBTYPE OF ( open_shell ); + WHERE + wr1: ( SIZEOF( QUERY ( q <* SELF\connected_face_set.cfs_faces | ( NOT ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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: ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PLANE' IN TYPEOF( swept_area.basis_surface ) ); + END_ENTITY; + + ENTITY swept_curve_surface_geometric_constraint + SUBTYPE OF ( explicit_geometric_constraint ); + SELF\explicit_constraint.constrained_elements : SET [1 : ?] OF surface; + SELF\explicit_constraint.reference_elements : SET [1 : 1] OF swept_surface_or_solid; + 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: ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PLANE' IN TYPEOF( swept_face.face_geometry ) ); + END_ENTITY; + + ENTITY swept_point_curve_geometric_constraint + SUBTYPE OF ( explicit_geometric_constraint ); + SELF\explicit_constraint.constrained_elements : SET [1 : ?] OF curve; + SELF\explicit_constraint.reference_elements : SET [1 : 1] OF swept_face_solid; + 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; + WHERE + wr1: ( SIZEOF( QUERY ( mi <* SELF\representation_map.map_usage | ( NOT ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.ANNOTATION_SYMBOL' IN TYPEOF( mi ) ) ) ) ) = + 0 ); + 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_deriving_relationship FOR related_shape_aspect; + END_ENTITY; + + ENTITY symmetry_geometric_constraint + SUBTYPE OF ( explicit_geometric_constraint ); + SELF\explicit_constraint.constrained_elements : SET [2 : 2] OF geometric_representation_item; + mirror_element : linear_geometry_constraint_element; + WHERE + wr1: ( SIZEOF( SELF\explicit_constraint.reference_elements ) = 0 ); + wr2: ( SIZEOF( TYPEOF( mirror_element ) * [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.DIRECTION', + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.VECTOR' ] ) = 0 ); + wr3: ( NOT ( ( SELF\geometric_representation_item.dim = 2 ) AND ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PLANE' IN TYPEOF( mirror_element ) ) ) ); + END_ENTITY; + + ENTITY symmetry_tolerance + SUBTYPE OF ( geometric_tolerance_with_datum_reference ); + END_ENTITY; + + ENTITY table_representation_item + SUBTYPE OF ( compound_representation_item ); + WHERE + wr1: ( SIZEOF( QUERY ( itet <* SELF\compound_representation_item.item_element | ( NOT ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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( [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'MEASURE_REPRESENTATION_ITEM', 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'VALUE_RANGE' ] * TYPEOF( i ) ) <> 1 ) ) ) = 0 ); + wr2: ( SIZEOF( QUERY ( i <* SELF.items | ( name = 'depth' ) ) ) <= 1 ); + wr3: ( ( SIZEOF( USEDIN( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION_REPRESENTATION.' + 'USED_REPRESENTATION' ) ) = 1 ) AND ( SIZEOF( QUERY ( pdr <* USEDIN( SELF, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.' + + 'USED_REPRESENTATION' ) | ( SIZEOF( QUERY ( gpa <* USEDIN( pdr.definition, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'GENERAL_PROPERTY_ASSOCIATION.' + + 'DERIVED_DEFINITION' ) | ( ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'GENERAL_PROPERTY' ) IN TYPEOF( gpa.base_definition ) ) AND ( gpa\general_property_association.base_definition\ + general_property.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 tan_function + SUBTYPE OF ( unary_function_call ); + END_ENTITY; + + ENTITY tangent + SUBTYPE OF ( derived_shape_aspect ); + WHERE + wr1: ( SIZEOF( SELF\derived_shape_aspect.deriving_relationships ) = 1 ); + END_ENTITY; + + ENTITY tangent_assembly_constraint + SUBTYPE OF ( binary_assembly_constraint, tangent_geometric_constraint ); + END_ENTITY; + + ENTITY tangent_geometric_constraint + SUBTYPE OF ( explicit_geometric_constraint ); + SELF\explicit_constraint.constrained_elements : SET [1 : ?] OF curve_or_surface_constraint_element; + SELF\explicit_constraint.reference_elements : SET [0 : ?] OF curve_or_surface_constraint_element; + near_points : SET [0 : ?] OF near_point_relationship; + tangent_contact : tangent_contact_type; + WHERE + wr1: ( ( SIZEOF( SELF\explicit_constraint.reference_elements ) > 0 ) OR ( SIZEOF( SELF\explicit_constraint. + constrained_elements ) = 2 ) ); + wr2: ( NOT ( ( SELF\geometric_representation_item.dim = 2 ) AND ( tangent_contact = surface_contact ) ) ); + wr3: ( SIZEOF( QUERY ( q <* near_points | ( NOT ( q\representation_item_relationship.relating_representation_item IN SELF\ + explicit_constraint.reference_elements ) ) ) ) = 0 ); + END_ENTITY; + + ENTITY taper + SUBTYPE OF ( shape_aspect ); + WHERE + wr1: ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.FEATURE_COMPONENT_DEFINITION' IN TYPEOF( SELF. + of_shape.definition ) ); + wr2: ( SELF.description IN [ 'angle taper', 'diameter taper', 'directed taper'] ); + wr3: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( pdr <* USEDIN( pd, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) + | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN + TYPEOF( pdr.used_representation ) ) ) ) = 1 ) ) ) ) = 0 ); + wr4: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) + | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN + TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( impl_rep.used_representation.items ) = 1 ) ) ) ) = 0 ) ) ) ) + = 0 ); + wr5: ( ( NOT ( SELF.description = 'angle taper' ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( + SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) + | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN + TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( + SIZEOF( [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PLANE_ANGLE_MEASURE_WITH_UNIT' ] * TYPEOF( it ) ) + = 2 ) AND ( it.name = 'taper angle' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ) ); + wr6: ( ( NOT ( SELF.description = 'diameter taper' ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( + SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) + | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN + TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( + SIZEOF( [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( it ) ) = + 2 ) AND ( it.name = 'final diameter' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ) ); + wr7: ( ( NOT ( SELF.description = 'directed taper' ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( + SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) + | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN + TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( + SIZEOF( [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PLANE_ANGLE_MEASURE_WITH_UNIT' ] * TYPEOF( it ) ) + = 2 ) AND ( it.name = 'angle' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ) ); + wr8: ( ( NOT ( SELF.description = 'directed taper' ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( + SIZEOF( QUERY ( pdr <* USEDIN( pd, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.DIRECTION_SHAPE_REPRESENTATION' IN TYPEOF( + pdr.used_representation ) ) AND ( pdr.used_representation.name = 'direction' ) ) ) ) = 1 ) ) ) ) = 0 ) ); + END_ENTITY; + + ENTITY teardrop_by_angle_template + SUBTYPE OF ( teardrop_template ); + END_ENTITY; + + ENTITY teardrop_by_length_template + SUBTYPE OF ( teardrop_template ); + END_ENTITY; + + ENTITY teardrop_template + ABSTRACT SUPERTYPE OF ( + ONEOF ( + snowball_template, + teardrop_by_angle_template, + teardrop_by_length_template ) ) + SUBTYPE OF ( parametric_template, single_stratum_template ); + END_ENTITY; + + ENTITY tee_profile + SUBTYPE OF ( shape_aspect ); + WHERE + wr1 : ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.FEATURE_COMPONENT_DEFINITION' IN TYPEOF( SELF. + of_shape.definition ) ); + wr2 : ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( pdr <* USEDIN( pd, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) + | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN + TYPEOF( pdr.used_representation ) ) ) ) = 1 ) ) ) ) = 0 ); + wr3 : ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) + | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN + TYPEOF( pdr.used_representation ) ) ) | ( ( NOT ( SIZEOF( impl_rep.used_representation.items ) >= 9 ) ) AND ( + SIZEOF( impl_rep.used_representation.items ) <= 10 ) ) ) ) = 0 ) ) ) ) = 0 ); + wr4 : ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION.DEFINITION' ) | ( SIZEOF( QUERY ( pdr <* USEDIN( pd, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) + | ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN + TYPEOF( pdr.used_representation ) ) AND ( SIZEOF( QUERY ( srwp_i <* pdr.used_representation.items | ( ( srwp_i. + name = 'orientation' ) OR ( srwp_i.name = 'width' ) OR ( srwp_i.name = 'depth' ) OR ( srwp_i.name = + 'cross bar width' ) OR ( srwp_i.name = 'cross bar depth' ) OR ( srwp_i.name = 'first offset' ) OR ( srwp_i.name + = 'second offset' ) OR ( srwp_i.name = 'first angle' ) OR ( srwp_i.name = 'second angle' ) OR ( srwp_i.name = + 'radius' ) ) ) ) = SIZEOF( pdr.used_representation.items ) ) ) ) ) = 1 ) ) ) = 1 ); + wr5 : ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) + | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN + TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PLACEMENT' IN TYPEOF( it ) ) AND ( it.name = + 'orientation' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ); + wr6 : ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) + | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN + TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( + SIZEOF( [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( it ) ) + = 2 ) AND ( it.name = 'width' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ); + wr7 : ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) + | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN + TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( + SIZEOF( [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( it ) ) + = 2 ) AND ( it.name = 'depth' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ); + wr8 : ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) + | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN + TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( + SIZEOF( [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( it ) ) + = 2 ) AND ( it.name = 'cross bar width' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ); + wr9 : ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) + | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN + TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( + SIZEOF( [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( it ) ) + = 2 ) AND ( it.name = 'cross bar depth' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ); + wr10: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) + | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN + TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( + SIZEOF( [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( it ) ) + = 2 ) AND ( it.name = 'first offset' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ); + wr11: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) + | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN + TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( + SIZEOF( [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( it ) ) + = 2 ) AND ( it.name = 'second offset' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ); + wr12: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) + | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN + TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( + SIZEOF( [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PLANE_ANGLE_MEASURE_WITH_UNIT' ] * TYPEOF( it ) ) + = 2 ) AND ( it.name = 'first angle' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ); + wr13: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) + | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN + TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( + SIZEOF( [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PLANE_ANGLE_MEASURE_WITH_UNIT' ] * TYPEOF( it ) ) + = 2 ) AND ( it.name = 'second angle' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ); + wr14: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) + | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN + TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( + SIZEOF( [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( it ) ) + = 2 ) AND ( it.name = 'radius' ) ) ) ) <= 1 ) ) ) ) = 0 ) ) ) ) = 0 ); + wr15: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( pdr <* USEDIN( pd, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) + | ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PLANAR_SHAPE_REPRESENTATION' IN TYPEOF( + pdr.used_representation ) ) AND ( pdr.used_representation.name = 'profile limit' ) ) ) ) <= 1 ) ) ) ) = 0 ); + END_ENTITY; + + ENTITY template_material_cross_section_boundary + SUBTYPE OF ( shape_aspect ); + END_ENTITY; + + ENTITY terminator_symbol + SUBTYPE OF ( annotation_symbol_occurrence ); + annotated_curve : annotation_curve_occurrence; + END_ENTITY; + + ENTITY tertiary_orientation_feature + SUBTYPE OF ( shape_aspect ); + WHERE + wr1: ( SELF.product_definitional = TRUE ); + END_ENTITY; + + ENTITY tessellated_annotation_occurrence + SUBTYPE OF ( annotation_occurrence ); + SELF\styled_item.item : tessellated_geometric_set; + END_ENTITY; + + ENTITY tessellated_connecting_edge + SUBTYPE OF ( tessellated_edge ); + smooth : LOGICAL; + face1 : tessellated_face; + face2 : tessellated_face; + line_strip_face1 : LIST [2 : ?] OF INTEGER; + line_strip_face2 : LIST [2 : ?] OF INTEGER; + WHERE + wr1: ( SIZEOF( line_strip_face1 ) = SIZEOF( line_strip_face2 ) ); + wr2: ( SIZEOF( line_strip_face1 ) = SIZEOF( SELF\tessellated_edge.line_strip ) ); + END_ENTITY; + + ENTITY tessellated_curve_set + SUBTYPE OF ( tessellated_item ); + coordinates : coordinates_list; + line_strips : LIST [1 : ?] OF LIST [2 : ?] OF INTEGER; + END_ENTITY; + + ENTITY tessellated_edge + SUBTYPE OF ( tessellated_structured_item ); + coordinates : coordinates_list; + geometric_link : OPTIONAL edge_or_curve; + line_strip : LIST [2 : ?] OF INTEGER; + END_ENTITY; + + ENTITY tessellated_face + ABSTRACT SUPERTYPE OF ( + ONEOF ( + triangulated_face, + complex_triangulated_face ) ) + SUBTYPE OF ( tessellated_structured_item ); + coordinates : coordinates_list; + pnmax : INTEGER; + normals : LIST [0 : ?] OF LIST [3 : 3] OF REAL; + geometric_link : OPTIONAL face_or_surface; + WHERE + wr1: ( ( SIZEOF( normals ) = 0 ) OR ( SIZEOF( normals ) = 1 ) OR ( SIZEOF( normals ) = pnmax ) ); + END_ENTITY; + + ENTITY tessellated_geometric_set + SUBTYPE OF ( tessellated_item ); + children : SET [1 : ?] OF tessellated_item; + END_ENTITY; + + ENTITY tessellated_item + ABSTRACT SUPERTYPE OF ( + ONEOF ( + coordinates_list, + tessellated_solid, + tessellated_shell, + tessellated_wire, + tessellated_geometric_set, + tessellated_curve_set, + tessellated_point_set, + tessellated_surface_set, + tessellated_structured_item ) ) + SUBTYPE OF ( geometric_representation_item ); + WHERE + wr1: ( SIZEOF( QUERY ( using_rep <* using_representations( SELF ) | ( NOT ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.TESSELLATED_SHAPE_REPRESENTATION' IN TYPEOF( + using_rep ) ) ) ) ) = 0 ); + END_ENTITY; + + ENTITY tessellated_point_set + SUBTYPE OF ( tessellated_item ); + coordinates : coordinates_list; + point_list : LIST [1 : ?] OF INTEGER; + END_ENTITY; + + ENTITY tessellated_shape_representation + SUBTYPE OF ( shape_representation ); + SELF\representation.items : SET [1 : ?] OF tessellated_item; + WHERE + wr1: ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.GLOBAL_UNIT_ASSIGNED_CONTEXT' IN TYPEOF( SELF\ + representation.context_of_items ) ); + END_ENTITY; + + ENTITY tessellated_shell + SUBTYPE OF ( tessellated_item ); + items : SET [1 : ?] OF tessellated_structured_item; + topological_link : OPTIONAL connected_face_set; + END_ENTITY; + + ENTITY tessellated_solid + SUBTYPE OF ( tessellated_item ); + items : SET [1 : ?] OF tessellated_structured_item; + geometric_link : OPTIONAL manifold_solid_brep; + END_ENTITY; + + ENTITY tessellated_structured_item + SUPERTYPE OF ( + ONEOF ( + tessellated_face, + tessellated_edge, + tessellated_vertex ) ) + SUBTYPE OF ( tessellated_item ); + END_ENTITY; + + ENTITY tessellated_surface_set + ABSTRACT SUPERTYPE OF ( + ONEOF ( + triangulated_surface_set, + complex_triangulated_surface_set ) ) + SUBTYPE OF ( tessellated_item ); + coordinates : coordinates_list; + pnmax : INTEGER; + normals : LIST [0 : ?] OF LIST [3 : 3] OF REAL; + WHERE + wr1: ( ( SIZEOF( normals ) = 0 ) OR ( SIZEOF( normals ) = 1 ) OR ( SIZEOF( normals ) = pnmax ) ); + END_ENTITY; + + ENTITY tessellated_vertex + SUBTYPE OF ( tessellated_structured_item ); + coordinates : coordinates_list; + topological_link : OPTIONAL vertex_point; + point_index : INTEGER; + END_ENTITY; + + ENTITY tessellated_wire + SUBTYPE OF ( tessellated_item ); + items : SET [1 : ?] OF tessellated_edge_or_vertex; + geometric_model_link : OPTIONAL path_or_composite_curve; + END_ENTITY; + + ENTITY test_method_based_parameter_assignment + SUBTYPE OF ( parameter_assignment ); + END_ENTITY; + + ENTITY test_point_part_feature + SUBTYPE OF ( part_tooling_feature ); + 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( [ + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.TEXT_LITERAL' , + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.ANNOTATION_TEXT' , + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.ANNOTATION_TEXT_CHARACTER' , + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.DEFINED_CHARACTER_GLYPH' , + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.COMPOSITE_TEXT' ] * TYPEOF( item ) ) = 0 ) ) ) ) + >= 1 ); + wr2: ( SIZEOF( QUERY ( a2p <* QUERY ( item <* SELF\representation.items | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.AXIS2_PLACEMENT' IN TYPEOF( item ) ) ) | ( + NOT ( ( SIZEOF( QUERY ( at <* QUERY ( item <* SELF\representation.items | ( ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'ANNOTATION_TEXT' ) IN TYPEOF( item ) ) ) + | ( at\mapped_item.mapping_target :=: a2p ) ) ) >= 1 ) OR ( SIZEOF( QUERY ( atc <* QUERY ( item <* SELF\ + representation.items | ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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_component + SUBTYPE OF ( assembly_component ); + END_ENTITY; + + ENTITY thermal_feature + SUBTYPE OF ( shape_aspect ); + END_ENTITY; + + ENTITY thermal_isolation_removal_component + SUBTYPE OF ( material_removal_structured_component ); + END_ENTITY; + + ENTITY thermal_isolation_removal_template + SUBTYPE OF ( material_removal_structured_template ); + END_ENTITY; + + ENTITY thermal_network + SUBTYPE OF ( functional_unit ); + END_ENTITY; + + ENTITY thermal_network_node_definition + SUBTYPE OF ( network_node_definition ); + END_ENTITY; + + ENTITY thermal_requirement_allocation + SUBTYPE OF ( requirement_assignment ); + END_ENTITY; + + ENTITY thermal_resistance_measure_with_unit + SUBTYPE OF ( measure_with_unit ); + WHERE + wr1: ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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, -1, -3, 0, 1, 0, 0 ) ); + END_ENTITY; + + ENTITY thermodynamic_temperature_measure_with_unit + SUBTYPE OF ( measure_with_unit ); + WHERE + wr1: ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 ) AND ( SELF\named_unit.dimensions.mass_exponent = 0 ) AND ( SELF\ + named_unit.dimensions.time_exponent = 0 ) AND ( SELF\named_unit.dimensions.electric_current_exponent = 0 ) AND ( + SELF\named_unit.dimensions.thermodynamic_temperature_exponent = 1 ) AND ( SELF\named_unit.dimensions. + amount_of_substance_exponent = 0 ) AND ( SELF\named_unit.dimensions.luminous_intensity_exponent = 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 ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SURFACE' IN TYPEOF( base_element ) ) AND + ( NOT ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.BOUNDED_SURFACE' IN TYPEOF( + base_element ) ) ) ) ); + wr2: ( offset1 <> offset2 ); + END_ENTITY; + + ENTITY thickness_laminate_table + SUBTYPE OF ( zone_structural_makeup ); + END_ENTITY; + + ENTITY thread + SUBTYPE OF ( feature_definition ); + WHERE + wr1 : ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION.DEFINITION' ) | ( SIZEOF( QUERY ( pdr <* USEDIN( pd, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) + | ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN + TYPEOF( pdr.used_representation ) ) AND ( 8 <= SIZEOF( pdr.used_representation.items ) ) AND ( SIZEOF( pdr. + used_representation.items ) <= 11 ) ) ) ) = 1 ) ) ) = 1 ); + wr2 : ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) + | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN + TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( + SIZEOF( [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( it ) ) + = 2 ) AND ( it.name = 'major diameter' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ); + wr3 : ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) + | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN + TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( + SIZEOF( [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( it ) ) + = 2 ) AND ( it.name = 'minor diameter' ) ) ) ) <= 1 ) ) ) ) = 0 ) ) ) ) = 0 ); + wr4 : ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) + | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN + TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( + SIZEOF( [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( it ) ) + = 2 ) AND ( it.name = 'pitch diameter' ) ) ) ) <= 1 ) ) ) ) = 0 ) ) ) ) = 0 ); + wr5 : ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) + | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN + TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( + SIZEOF( [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.RATIO_MEASURE_WITH_UNIT' ] * TYPEOF( it ) ) = + 2 ) AND ( it.name = 'number of threads' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ); + wr6 : ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) + | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN + TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF( + it ) ) AND ( it.name = 'fit class' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ); + wr7 : ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) + | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN + TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF( + it ) ) AND ( it.name = 'form' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ); + wr8 : ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) + | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN + TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF( + it ) ) AND ( it.name = 'hand' ) AND ( it.description IN [ 'left', 'right'] ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ); + wr9 : ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) + | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN + TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF( + it ) ) AND ( it.name = 'qualifier' ) ) ) ) <= 1 ) ) ) ) = 0 ) ) ) ) = 0 ); + wr10: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) + | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN + TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF( + it ) ) AND ( it.name = 'thread side' ) AND ( ( it.description = 'internal' ) OR ( it.description = 'external' ) ) ) ) ) + = 1 ) ) ) ) = 0 ) ) ) ) = 0 ); + wr11: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) + | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN + TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( + SIZEOF( [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( it ) ) + = 2 ) AND ( it.name = 'crest' ) ) ) ) <= 1 ) ) ) ) = 0 ) ) ) ) = 0 ); + wr12: ( SIZEOF( QUERY ( pds <* QUERY ( pd <* USEDIN( SELF, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) + | ( NOT ( SIZEOF( QUERY ( sa_occ <* USEDIN( pds, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) | ( ( sa_occ. + description = 'partial area occurrence' ) AND ( SIZEOF( QUERY ( sdr <* QUERY ( sar <* USEDIN( sa_occ, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.' + + 'RELATED_SHAPE_ASPECT' ) | ( ( sar.description = 'applied area usage' ) AND ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF( sar ) ) ) ) + | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.APPLIED_AREA' IN TYPEOF( sdr. + relating_shape_aspect ) ) ) ) = 1 ) ) ) ) = 1 ) ) ) ) = 0 ); + wr13: ( SIZEOF( QUERY ( pds <* QUERY ( pd <* USEDIN( SELF, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) + | ( NOT ( SIZEOF( QUERY ( sa_occ <* USEDIN( pds, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) | ( SIZEOF( + QUERY ( sdr <* QUERY ( sar <* USEDIN( sa_occ, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT' ) | ( ( sar.description = 'applied shape' ) AND ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF( sar ) ) ) ) + | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT' IN TYPEOF( sdr. + relating_shape_aspect ) ) ) ) = 1 ) ) ) = 1 ) ) ) ) = 0 ); + wr14: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) + | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN + TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF( + it ) ) AND ( it.name = 'fit class 2' ) ) ) ) <= 1 ) ) ) ) = 0 ) ) ) ) = 0 ); + wr15: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) + | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN + TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( + SIZEOF( [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( it ) ) + = 2 ) AND ( it.name = 'nominal size' ) ) ) ) <= 1 ) ) ) ) = 0 ) ) ) ) = 0 ); + wr16: ( SIZEOF( QUERY ( pds <* QUERY ( pd <* USEDIN( SELF, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) + | ( NOT ( SIZEOF( QUERY ( sa_occ <* USEDIN( pds, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) | ( ( sa_occ. + description = 'thread runout' ) AND ( SIZEOF( QUERY ( sdr <* QUERY ( sar <* USEDIN( sa_occ, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.' + + 'RELATED_SHAPE_ASPECT' ) | ( ( sar.description = 'thread runout usage' ) AND ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF( sar ) ) ) ) + | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.THREAD_RUNOUT' IN TYPEOF( sdr. + relating_shape_aspect ) ) ) ) <= 1 ) ) ) ) = 1 ) ) ) ) = 0 ); + END_ENTITY; + + ENTITY thread_runout + SUBTYPE OF ( shape_aspect ); + WHERE + wr1: ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF( SELF. + of_shape ) ); + wr2: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( pdr <* USEDIN( pd, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) + | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN + TYPEOF( pdr.used_representation ) ) ) ) = 1 ) ) ) ) = 0 ); + wr3: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) + | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN + TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( impl_rep.used_representation.items ) = 3 ) ) ) ) = 0 ) ) ) ) + = 0 ); + wr4: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION.DEFINITION' ) | ( SIZEOF( QUERY ( pdr <* USEDIN( pd, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) + | ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN + TYPEOF( pdr.used_representation ) ) AND ( SIZEOF( QUERY ( srwp_i <* pdr.used_representation.items | ( NOT ( srwp_i. + name IN [ 'length of runout', 'pitch or dimension', 'included or extra'] ) ) ) ) > 0 ) ) ) ) = 0 ) ) ) = 0 ); + wr5: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) + | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN + TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( + SIZEOF( [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( it ) ) = + 2 ) AND ( it.name = 'length of runout' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) <= 1 ); + wr6: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) + | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN + TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF( + it ) ) AND ( it.name = 'pitch or dimension' ) AND ( it.description IN [ 'pitch', 'pitch or dimension'] ) ) ) ) = 1 ) ) ) ) + = 0 ) ) ) ) = 0 ); + wr7: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) + | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN + TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF( + it ) ) AND ( it.name = 'included or extra' ) AND ( it.description IN [ 'included', 'extra'] ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) + = 0 ); + END_ENTITY; + + ENTITY through_port_variable + SUBTYPE OF ( port_variable ); + END_ENTITY; + + ENTITY tiebar_printed_component + SUBTYPE OF ( printed_component, structured_layout_component ); + END_ENTITY; + + ENTITY tile_area_template + SUBTYPE OF ( fill_area_template ); + 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: ( EXISTS( primary_bound ) OR EXISTS( secondary_bound ) ); + wr2: ( NOT ( EXISTS( primary_bound ) AND EXISTS( secondary_bound ) AND EXISTS( duration ) ) ); + wr3: ( EXISTS( primary_bound ) AND ( NOT EXISTS( secondary_bound ) ) AND ( ( NOT EXISTS( duration ) ) OR + duration_is_positive( duration ) ) ); + wr4: ( EXISTS( secondary_bound ) AND ( NOT EXISTS( primary_bound ) ) AND EXISTS( duration ) AND duration_is_negative( + duration ) ); + END_ENTITY; + + ENTITY time_measure_with_unit + SUBTYPE OF ( measure_with_unit ); + WHERE + wr1: ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 ) AND ( SELF\named_unit.dimensions.mass_exponent = 0 ) AND ( SELF\ + named_unit.dimensions.time_exponent = 1 ) AND ( SELF\named_unit.dimensions.electric_current_exponent = 0 ) AND ( + SELF\named_unit.dimensions.thermodynamic_temperature_exponent = 0 ) AND ( SELF\named_unit.dimensions. + amount_of_substance_exponent = 0 ) AND ( SELF\named_unit.dimensions.luminous_intensity_exponent = 0 ) ); + END_ENTITY; + + ENTITY tolerance_value; + lower_bound : measure_with_unit; + upper_bound : measure_with_unit; + DERIVE + ubvc : REAL := upper_bound\measure_with_unit.value_component; + lbvc : REAL := lower_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 tolerance_zone_target; + form : tolerance_zone_form; + END_ENTITY; + + ENTITY tolerance_zone_definition + SUPERTYPE OF ( + ONEOF ( + projected_zone_definition, + non_uniform_zone_definition, + runout_zone_definition ) ); + zone : tolerance_zone; + boundaries : SET [0 : ?] OF shape_aspect; + END_ENTITY; + + ENTITY tolerance_zone_form; + name : label; + END_ENTITY; + + ENTITY tool_registration_mark + SUBTYPE OF ( part_tooling_feature ); + 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 topology_related_to_multiply_defined_geometry + ABSTRACT SUPERTYPE OF ( + ONEOF ( + multiply_defined_faces, + multiply_defined_vertices, + multiply_defined_edges ) ) + SUBTYPE OF ( inapt_topology_and_geometry_relationship ); + END_ENTITY; + + ENTITY topology_related_to_nearly_degenerate_geometry + ABSTRACT SUPERTYPE OF ( + ONEOF ( + short_length_edge, + small_area_face, + entirely_narrow_face ) ) + SUBTYPE OF ( inapt_topology_and_geometry_relationship ); + END_ENTITY; + + ENTITY topology_related_to_overlapping_geometry + ABSTRACT SUPERTYPE OF ( + ONEOF ( + partly_overlapping_faces, + partly_overlapping_edges ) ) + SUBTYPE OF ( inapt_topology_and_geometry_relationship ); + END_ENTITY; + + ENTITY topology_related_to_self_intersecting_geometry + ABSTRACT SUPERTYPE OF ( + ONEOF ( + self_intersecting_loop, + self_intersecting_shell, + intersecting_connected_face_sets ) ) + SUBTYPE OF ( inapt_topology_and_geometry_relationship ); + 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 ); + END_ENTITY; + + ENTITY trace_template + SUPERTYPE OF ( + default_trace_template ) + SUBTYPE OF ( parametric_template ); + END_ENTITY; + + ENTITY track_blended_solid + ABSTRACT SUPERTYPE + 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 ) * [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'SOLID_WITH_CONSTANT_RADIUS_EDGE_BLEND' , 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'SOLID_WITH_VARIABLE_RADIUS_EDGE_BLEND' , 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'SOLID_WITH_CHAMFERED_EDGES' ] ) = 1 ); + wr2: ( NOT ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.VERTEX' IN TYPEOF( end_conditions[1] ) ) + AND ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.VERTEX' IN TYPEOF( end_conditions[2] ) ) ) ); + wr3: ( NOT ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 transform_port_variable + SUBTYPE OF ( port_variable ); + 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 transition_feature + SUPERTYPE OF ( + ONEOF ( + chamfer, + edge_round, + fillet ) ) + SUBTYPE OF ( shape_aspect ); + WHERE + wr1: ( SIZEOF( [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PRODUCT_DEFINITION', + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.COMPOUND_FEATURE' ] * TYPEOF( SELF.of_shape. + definition ) ) = 1 ); + wr2: ( SIZEOF( [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CHAMFER', + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.EDGE_ROUND' , + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.FILLET' ] * TYPEOF( SELF ) ) = 1 ); + END_ENTITY; + + ENTITY triangulated_face + SUBTYPE OF ( tessellated_face ); + pnindex : LIST [0 : ?] OF INTEGER; + triangles : LIST [1 : ?] OF LIST [3 : 3] OF INTEGER; + WHERE + wr1: ( ( SIZEOF( pnindex ) = 0 ) OR ( SIZEOF( pnindex ) = SELF\tessellated_face.pnmax ) ); + wr2: ( NOT ( ( SIZEOF( pnindex ) = 0 ) AND ( SELF\tessellated_face.pnmax <> coordinates.npoints ) ) ); + END_ENTITY; + + ENTITY triangulated_surface_set + SUBTYPE OF ( tessellated_surface_set ); + pnindex : LIST [0 : ?] OF INTEGER; + triangles : LIST [1 : ?] OF LIST [3 : 3] OF INTEGER; + WHERE + wr1: ( ( SIZEOF( pnindex ) = 0 ) OR ( SIZEOF( pnindex ) = SELF\tessellated_surface_set.pnmax ) ); + wr2: ( NOT ( ( SIZEOF( pnindex ) = 0 ) AND ( SELF\tessellated_surface_set.pnmax <> coordinates.npoints ) ) ); + 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 turned_knurl + SUBTYPE OF ( feature_definition ); + WHERE + wr1 : ( SELF\characterized_object.description IN [ 'diamond', 'diagonal', 'straight'] ); + wr2 : ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION.DEFINITION' ) | ( SIZEOF( QUERY ( pdr <* USEDIN( pd, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) + | ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN + TYPEOF( pdr.used_representation ) ) AND ( 6 <= SIZEOF( pdr.used_representation.items ) ) AND ( SIZEOF( pdr. + used_representation.items ) <= 9 ) ) ) ) = 1 ) ) ) = 1 ); + wr3 : ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) + | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN + TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM' IN TYPEOF( it ) ) + AND ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.COUNT_MEASURE' IN TYPEOF( it\ + measure_with_unit.value_component ) ) AND ( it.name = 'number of teeth' ) ) ) ) <= 1 ) ) ) ) = 0 ) ) ) ) = 0 ); + wr4 : ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) + | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN + TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( + SIZEOF( [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( it ) ) + = 2 ) AND ( it.name = 'major diameter' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ); + wr5 : ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) + | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN + TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( + SIZEOF( [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( it ) ) + = 2 ) AND ( it.name = 'nominal diameter' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ); + wr6 : ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) + | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN + TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( + SIZEOF( [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( it ) ) + = 2 ) AND ( it.name = 'tooth depth' ) ) ) ) <= 1 ) ) ) ) = 0 ) ) ) ) = 0 ); + wr7 : ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) + | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN + TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( + SIZEOF( [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( it ) ) + = 2 ) AND ( it.name = 'root fillet' ) ) ) ) <= 1 ) ) ) ) = 0 ) ) ) ) = 0 ); + wr8 : ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) + | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN + TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( + SIZEOF( [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( it ) ) + = 2 ) AND ( it.name = 'diametral pitch' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ); + wr9 : ( ( NOT ( SELF\characterized_object.description IN [ 'diamond', 'diagonal'] ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( + SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( + NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) + | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN + TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( + SIZEOF( [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PLANE_ANGLE_MEASURE_WITH_UNIT' ] * TYPEOF( it ) ) + = 2 ) AND ( it.name = 'helix angle' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ) ); + wr10: ( ( NOT ( SELF\characterized_object.description = 'diagonal' ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( + SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) + | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN + TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF( + it ) ) AND ( it.name = 'helix hand' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ) ); + wr11: ( SIZEOF( QUERY ( pds <* QUERY ( pd <* USEDIN( SELF, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) + | ( NOT ( SIZEOF( QUERY ( sa_occ <* USEDIN( pds, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) | ( ( sa_occ. + description = 'partial area occurrence' ) AND ( SIZEOF( QUERY ( sdr <* QUERY ( sar <* USEDIN( sa_occ, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.' + + 'RELATED_SHAPE_ASPECT' ) | ( ( sar.description = 'applied area usage' ) AND ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF( sar ) ) ) ) + | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.APPLIED_AREA' IN TYPEOF( sdr. + relating_shape_aspect ) ) ) ) = 1 ) ) ) ) = 1 ) ) ) ) = 0 ); + wr12: ( SIZEOF( QUERY ( pds <* QUERY ( pd <* USEDIN( SELF, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) + | ( NOT ( SIZEOF( QUERY ( sa_occ <* USEDIN( pds, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) | ( SIZEOF( + QUERY ( sdr <* QUERY ( sar <* USEDIN( sa_occ, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT' ) | ( ( sar.description = 'applied shape' ) AND ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF( sar ) ) ) ) + | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT' IN TYPEOF( sdr. + relating_shape_aspect ) ) ) ) = 1 ) ) ) = 1 ) ) ) ) = 0 ); + 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_boolean_expression + ABSTRACT SUPERTYPE OF ( + ONEOF ( + not_expression, + odd_function ) ) + SUBTYPE OF ( boolean_expression, unary_generic_expression ); + END_ENTITY; + + ENTITY unary_function_call + ABSTRACT SUPERTYPE OF ( + ONEOF ( + abs_function, + minus_function, + sin_function, + cos_function, + tan_function, + asin_function, + acos_function, + exp_function, + log_function, + log2_function, + log10_function, + square_root_function ) ) + SUBTYPE OF ( unary_numeric_expression ); + 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 unbound_parameter_environment + SUBTYPE OF ( environment ); + WHERE + wr1: ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.UNBOUND_VARIATIONAL_PARAMETER' IN TYPEOF( SELF + \environment.syntactic_representation ) ) AND ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'UNBOUND_VARIATIONAL_PARAMETER_SEMANTICS' IN TYPEOF( SELF\environment.semantics ) ) ); + END_ENTITY; + + ENTITY unbound_variational_parameter + SUBTYPE OF ( variational_parameter ); + WHERE + wr1: ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.UNBOUND_PARAMETER_ENVIRONMENT' IN TYPEOF( SELF\ + generic_variable.interpretation ) ); + END_ENTITY; + + ENTITY unbound_variational_parameter_semantics + SUBTYPE OF ( variable_semantics ); + 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 unconstrained_pair + SUBTYPE OF ( low_order_kinematic_pair ); + DERIVE + SELF\low_order_kinematic_pair.t_x : BOOLEAN := TRUE; + SELF\low_order_kinematic_pair.t_y : BOOLEAN := TRUE; + SELF\low_order_kinematic_pair.t_z : BOOLEAN := TRUE; + SELF\low_order_kinematic_pair.r_x : BOOLEAN := TRUE; + SELF\low_order_kinematic_pair.r_y : BOOLEAN := TRUE; + SELF\low_order_kinematic_pair.r_z : BOOLEAN := TRUE; + END_ENTITY; + + ENTITY unconstrained_pair_value + SUBTYPE OF ( pair_value ); + SELF\pair_value.applies_to_pair : unconstrained_pair; + actual_placement : axis2_placement_3d; + END_ENTITY; + + ENTITY unequally_disposed_geometric_tolerance + SUBTYPE OF ( geometric_tolerance ); + displacement : length_measure_with_unit; + WHERE + wr1: ( ( 'NUMBER' IN TYPEOF( SELF\geometric_tolerance_with_defined_unit.unit_size\measure_with_unit.value_component ) ) AND + ( SELF\geometric_tolerance_with_defined_unit.unit_size\measure_with_unit.value_component > 0 ) ); + END_ENTITY; + + ENTITY uniform_curve + SUBTYPE OF ( b_spline_curve ); + END_ENTITY; + + ENTITY uniform_product_space + SUBTYPE OF ( maths_space, generic_literal ); + base : maths_space; + exponent : positive_integer; + WHERE + wr1: expression_is_constant( base ); + wr2: no_cyclic_space_reference( SELF, [] ); + wr3: ( base <> the_empty_space ); + END_ENTITY; + + ENTITY uniform_resource_identifier + SUBTYPE OF ( descriptive_representation_item ); + END_ENTITY; + + ENTITY uniform_surface + SUBTYPE OF ( b_spline_surface ); + END_ENTITY; + + ENTITY universal_pair + SUBTYPE OF ( low_order_kinematic_pair ); + input_skew_angle : OPTIONAL plane_angle_measure; + DERIVE + SELF\low_order_kinematic_pair.t_x : BOOLEAN := FALSE; + SELF\low_order_kinematic_pair.t_y : BOOLEAN := FALSE; + SELF\low_order_kinematic_pair.t_z : BOOLEAN := FALSE; + SELF\low_order_kinematic_pair.r_x : BOOLEAN := TRUE; + SELF\low_order_kinematic_pair.r_y : BOOLEAN := FALSE; + SELF\low_order_kinematic_pair.r_z : BOOLEAN := TRUE; + skew_angle : plane_angle_measure := NVL( input_skew_angle, 0 ); + WHERE + wr1: ( COS( plane_angle_for_pair_in_radian( SELF, skew_angle ) ) > 0 ); + END_ENTITY; + + ENTITY universal_pair_value + SUBTYPE OF ( pair_value ); + SELF\pair_value.applies_to_pair : universal_pair; + first_rotation_angle : plane_angle_measure; + second_rotation_angle : plane_angle_measure; + END_ENTITY; + + ENTITY universal_pair_with_range + SUBTYPE OF ( universal_pair ); + lower_limit_first_rotation : OPTIONAL plane_angle_measure; + upper_limit_first_rotation : OPTIONAL plane_angle_measure; + lower_limit_second_rotation : OPTIONAL plane_angle_measure; + upper_limit_second_rotation : OPTIONAL plane_angle_measure; + WHERE + wr1: ( ( ( NOT EXISTS( lower_limit_first_rotation ) ) OR ( NOT EXISTS( upper_limit_first_rotation ) ) ) XOR ( + lower_limit_first_rotation < upper_limit_first_rotation ) ); + wr2: ( ( ( NOT EXISTS( lower_limit_second_rotation ) ) OR ( NOT EXISTS( upper_limit_second_rotation ) ) ) XOR ( + lower_limit_second_rotation < upper_limit_second_rotation ) ); + END_ENTITY; + + ENTITY unplated_cutout_edge_segment + SUBTYPE OF ( cutout_edge_segment ); + END_ENTITY; + + ENTITY unplated_interconnect_module_edge_segment + SUBTYPE OF ( interconnect_module_edge_segment ); + END_ENTITY; + + ENTITY unrouted_conductive_interconnect_element + SUBTYPE OF ( conductive_interconnect_element ); + END_ENTITY; + + ENTITY unsupported_passage + SUBTYPE OF ( inter_stratum_feature ); + END_ENTITY; + + ENTITY unsupported_passage_dependent_land + SUBTYPE OF ( inter_stratum_feature_dependent_land ); + END_ENTITY; + + ENTITY unsupported_passage_template + SUPERTYPE OF ( + ONEOF ( + counterbore_passage_template, + countersunk_passage_template, + blind_passage_template ) ) + SUBTYPE OF ( continuous_template, inter_stratum_feature_template ); + END_ENTITY; + + ENTITY unused_patches + SUBTYPE OF ( overcomplex_topology_and_geometry_relationship ); + SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; + WHERE + wr1: ( ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' ) + IN TYPEOF( SELF\shape_data_quality_criterion.assessment_specification\ + shape_data_quality_assessment_by_numerical_test.threshold ) ) AND ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.COUNT_MEASURE' IN value_limit_type( SELF\ + shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold ) ) ); + wr2: validate_measured_data_type( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.COUNT_MEASURE' ); + wr3: validate_inspected_elements_type( SELF, [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'FACE_SURFACE' ] ); + wr4: validate_locations_of_extreme_value_type( SELF, [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'B_SPLINE_SURFACE_STRIP'] ); + wr5: validate_accuracy_types( SELF, [] ); + END_ENTITY; + + ENTITY unused_shape_element + SUBTYPE OF ( externally_conditioned_data_quality_criterion ); + WHERE + wr1: validate_ecdq_inspected_elements_type( SELF, [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'REPRESENTATION_ITEM' ] ); + END_ENTITY; + + ENTITY usage_association + SUBTYPE OF ( action_method_relationship ); + SELF\action_method_relationship.relating_method : information_usage_right; + SELF\action_method_relationship.related_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 usage_concept_usage_relationship + SUBTYPE OF ( mapped_item, item_identified_representation_usage ); + SELF\item_identified_representation_usage.used_representation : shape_representation; + SELF\item_identified_representation_usage.definition : shape_aspect; + DERIVE + SELF\item_identified_representation_usage.identified_item : usage_concept_usage_relationship := SELF; + WHERE + wr1: ( SELF IN SELF\item_identified_representation_usage.used_representation.items ); + END_ENTITY; + + ENTITY usage_view_connection_zone_terminal_shape_relationship + SUBTYPE OF ( representation, representation_relationship_with_transformation ); + SELF\representation_relationship.rep_1 : shape_representation; + SELF\representation_relationship.rep_2 : shape_representation; + 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 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 ); + SELF\user_selected_elements.picked_items : SET [1 : ?] OF shape_representation_item; + END_ENTITY; + + ENTITY valid_range_property_definition_representation + SUBTYPE OF ( property_definition_representation ); + END_ENTITY; + + ENTITY value_format_type_qualifier; + format_type : value_format_type; + END_ENTITY; + + ENTITY value_function + SUPERTYPE OF ( + int_value_function ) + SUBTYPE OF ( numeric_expression, unary_generic_expression ); + SELF\unary_generic_expression.operand : string_expression; + END_ENTITY; + + ENTITY value_range + SUBTYPE OF ( compound_representation_item ); + WHERE + wr1: ( ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.GLOBAL_UNIT_ASSIGNED_CONTEXT' IN TYPEOF( rep. + context_of_items ) ) ) ) ) = 0 ); + END_ENTITY; + + ENTITY variable + ABSTRACT SUPERTYPE OF ( + ONEOF ( + numeric_variable, + boolean_variable, + string_variable ) ) + SUBTYPE OF ( generic_variable ); + END_ENTITY; + + ENTITY variable_expression + SUBTYPE OF ( variable_semantics ); + property_associated : property_variable_rep_select; + END_ENTITY; + + ENTITY variable_semantics + ABSTRACT SUPERTYPE; + END_ENTITY; + + ENTITY variational_current_representation_relationship + SUBTYPE OF ( representation_relationship ); + SELF\representation_relationship.rep_1 : variational_representation; + current_result : representation; + UNIQUE + ur1 : current_result; + WHERE + wr1: ( QUERY ( q <* SELF\representation_relationship.rep_1.items | ( NOT ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.VARIATIONAL_REPRESENTATION_ITEM' IN TYPEOF( q ) ) ) ) + = SELF\representation_relationship.rep_2.items ); + wr2: ( SELF\representation_relationship.rep_1.context_of_items :=: SELF\representation_relationship.rep_2.context_of_items ); + wr3: ( SIZEOF( QUERY ( q <* SELF\representation_relationship.rep_2.items | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.VARIATIONAL_REPRESENTATION_ITEM' IN TYPEOF( q ) ) ) ) + = 0 ); + wr4: ( ( TYPEOF( SELF\representation_relationship.rep_1 ) - TYPEOF( SELF\representation_relationship.rep_2 ) ) = [ + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.VARIATIONAL_REPRESENTATION' ] ); + wr5: ( current_result :=: SELF\representation_relationship.rep_2 ); + END_ENTITY; + + ENTITY variational_parameter + ABSTRACT SUPERTYPE OF ( + ONEOF ( + bound_variational_parameter, + unbound_variational_parameter ) ) + SUBTYPE OF ( variational_representation_item, maths_variable ); + parameter_description : OPTIONAL text; + parameter_current_value : maths_value; + WHERE + wr1: member_of( parameter_current_value, SELF\maths_variable.values_space ); + wr2: ( SELF\maths_variable.name = SELF\representation_item.name ); + END_ENTITY; + + ENTITY variational_representation + SUBTYPE OF ( representation ); + INVERSE + cm_link : variational_current_representation_relationship FOR rep_1; + WHERE + wr1: ( SIZEOF( QUERY ( q <* SELF\representation.items | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.VARIATIONAL_REPRESENTATION_ITEM' IN TYPEOF( q ) ) ) ) + > 0 ); + wr2: ( SIZEOF( QUERY ( q <* ( SELF\representation.items - cm_link.rep_2.items ) | invalidate_vrep_item( q ) ) ) = 0 ); + 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 ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 ); + END_ENTITY; + + ENTITY vector_style + SUBTYPE OF ( curve_style, pre_defined_terminator_symbol ); + END_ENTITY; + + ENTITY vee_profile + SUBTYPE OF ( shape_aspect ); + WHERE + wr1 : ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.FEATURE_COMPONENT_DEFINITION' IN TYPEOF( SELF. + of_shape.definition ) ); + wr2 : ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( pdr <* USEDIN( pd, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) + | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN + TYPEOF( pdr.used_representation ) ) ) ) = 1 ) ) ) ) = 0 ); + wr3 : ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) + | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN + TYPEOF( pdr.used_representation ) ) ) | ( ( NOT ( SIZEOF( impl_rep.used_representation.items ) >= 3 ) ) AND ( + SIZEOF( impl_rep.used_representation.items ) <= 6 ) ) ) ) = 0 ) ) ) ) = 0 ); + wr4 : ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION.DEFINITION' ) | ( SIZEOF( QUERY ( pdr <* USEDIN( pd, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) + | ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN + TYPEOF( pdr.used_representation ) ) AND ( SIZEOF( QUERY ( srwp_i <* pdr.used_representation.items | ( ( srwp_i. + name = 'orientation' ) OR ( srwp_i.name = 'profile angle' ) OR ( srwp_i.name = 'tilt angle' ) OR ( srwp_i.name = + 'profile radius' ) OR ( srwp_i.name = 'first length' ) OR ( srwp_i.name = 'second length' ) ) ) ) = SIZEOF( pdr. + used_representation.items ) ) ) ) ) = 1 ) ) ) = 1 ); + wr5 : ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) + | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN + TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PLACEMENT' IN TYPEOF( it ) ) AND ( it.name = + 'orientation' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ); + wr6 : ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) + | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN + TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM' IN TYPEOF( it ) ) + AND ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT' IN TYPEOF( it\ + measure_with_unit.value_component ) ) AND ( it.name = 'profile radius' ) ) ) ) <= 1 ) ) ) ) = 0 ) ) ) ) = 0 ); + wr7 : ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) + | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN + TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( + SIZEOF( [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PLANE_ANGLE_MEASURE_WITH_UNIT' ] * TYPEOF( it ) ) + = 2 ) AND ( it.name = 'profile angle' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ); + wr8 : ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) + | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN + TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( + SIZEOF( [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PLANE_ANGLE_MEASURE_WITH_UNIT' ] * TYPEOF( it ) ) + = 2 ) AND ( it.name = 'tilt angle' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ); + wr9 : ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( pdr <* USEDIN( pd, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) + | ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PLANAR_SHAPE_REPRESENTATION' IN TYPEOF( + pdr.used_representation ) ) AND ( pdr.used_representation.name = 'profile limit' ) ) ) ) <= 1 ) ) ) ) = 0 ); + wr10: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) + | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN + TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM' IN TYPEOF( it ) ) + AND ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT' IN TYPEOF( it\ + measure_with_unit.value_component ) ) AND ( it.name = 'first length' ) ) ) ) <= 1 ) ) ) ) = 0 ) ) ) ) = 0 ); + wr11: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) + | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN + TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM' IN TYPEOF( it ) ) + AND ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT' IN TYPEOF( it\ + measure_with_unit.value_component ) ) AND ( it.name = 'second length' ) ) ) ) <= 1 ) ) ) ) = 0 ) ) ) ) = 0 ); + END_ENTITY; + + ENTITY velocity_measure_with_unit + SUBTYPE OF ( measure_with_unit ); + WHERE + wr1: ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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, -1, 0, 0, 0, 0 ) ); + END_ENTITY; + + ENTITY versioned_action_request; + id : identifier; + version : OPTIONAL label; + purpose : text; + description : OPTIONAL text; + END_ENTITY; + + ENTITY versioned_action_request_relationship; + id : identifier; + name : label; + description : OPTIONAL text; + relating_versioned_action_request : versioned_action_request; + related_versioned_action_request : versioned_action_request; + 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 via + ABSTRACT SUPERTYPE OF ( + filled_via + ANDOR + ONEOF ( + blind_via, + buried_via, + interfacial_connection ) ) + SUBTYPE OF ( plated_passage ); + END_ENTITY; + + ENTITY via_template + SUBTYPE OF ( continuous_template, inter_stratum_feature_template ); + 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; + INVERSE + camera_usages : SET [1 : ?] OF camera_model_d3 FOR perspective_of_volume; + WHERE + wr1: ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.AXIS2_PLACEMENT_2D' IN TYPEOF( SELF\ + view_volume.view_window.placement ) ) OR ( dot_product( representation_item( ' ' ) || + geometric_representation_item( ) || direction( [0, 0, 1] ), SELF.view_window\planar_box.placement\ + axis2_placement_3d.p[3] ) = 1 ) ); + wr2: ( view_plane_distance = view_window.placement\placement.location.coordinates[3] ); + END_ENTITY; + + ENTITY visual_appearance_representation + SUBTYPE OF ( representation ); + WHERE + wr1 : ( ( 3 <= SIZEOF( SELF.items ) ) AND ( SIZEOF( SELF.items ) <= 9 ) AND ( ( SIZEOF( QUERY ( i <* items | ( ( ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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( [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'MEASURE_REPRESENTATION_ITEM', 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'VALUE_RANGE' ] * TYPEOF( i ) ) = 1 ) AND ( i.name IN [ 'refraction index', 'opacity'] ) ) ) ) + SIZEOF( + QUERY ( i <* items | ( ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION_REPRESENTATION.' + 'USED_REPRESENTATION' ) ) = 1 ) AND ( SIZEOF( QUERY ( pdr <* USEDIN( + SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.' + + 'USED_REPRESENTATION' ) | ( SIZEOF( QUERY ( gpa <* USEDIN( pdr.definition, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'GENERAL_PROPERTY_ASSOCIATION.' + + 'DERIVED_DEFINITION' ) | ( ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'GENERAL_PROPERTY' ) IN TYPEOF( gpa.base_definition ) ) AND ( gpa\general_property_association.base_definition\ + general_property.name = 'surface_condition' ) ) ) ) = 1 ) ) ) = 1 ) ); + END_ENTITY; + + ENTITY visual_orientation_feature + SUBTYPE OF ( shape_aspect ); + END_ENTITY; + + ENTITY volume + SUBTYPE OF ( geometric_representation_item ); + WHERE + wr1: ( SELF\geometric_representation_item.dim = 3 ); + END_ENTITY; + + ENTITY volume_measure_with_unit + SUBTYPE OF ( measure_with_unit ); + WHERE + wr1: ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 ) ); + 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; + WHERE + wr1: ( ( NOT leap_year( SELF\date.year_component ) ) OR ( ( 1 <= ( day_component + ( 7 * ( week_component - 1 ) ) ) ) AND + ( ( day_component + ( 7 * ( week_component - 1 ) ) ) <= 366 ) ) ); + wr2: ( leap_year( SELF\date.year_component ) OR ( ( 1 <= ( day_component + ( 7 * ( week_component - 1 ) ) ) ) AND ( ( + day_component + ( 7 * ( week_component - 1 ) ) ) <= 365 ) ) ); + 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 wire_terminal + SUBTYPE OF ( package_terminal ); + END_ENTITY; + + ENTITY wire_terminal_template_definition + SUBTYPE OF ( package_terminal_template_definition ); + END_ENTITY; + + ENTITY wrong_element_name + SUBTYPE OF ( externally_conditioned_data_quality_criterion ); + WHERE + wr1: validate_ecdq_inspected_elements_type( SELF, [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'REPRESENTATION_ITEM' ] ); + END_ENTITY; + + ENTITY wrongly_oriented_void + SUBTYPE OF ( erroneous_manifold_solid_brep ); + SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_logical_test; + WHERE + wr1: validate_measured_data_type( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.BOOLEAN_VALUE' ); + wr2: validate_inspected_elements_type( SELF, [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'BREP_WITH_VOIDS' ] ); + wr3: validate_locations_of_extreme_value_type( SELF, [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'ORIENTED_CLOSED_SHELL' ] ); + wr4: validate_accuracy_types( SELF, [] ); + END_ENTITY; + + ENTITY wrongly_placed_loop + SUBTYPE OF ( erroneous_topology_and_geometry_relationship ); + SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_logical_test; + WHERE + wr1: validate_measured_data_type( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.BOOLEAN_VALUE' ); + wr2: validate_inspected_elements_type( SELF, [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.FACE'] ); + wr3: validate_locations_of_extreme_value_type( SELF, [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'FACE_BOUND' ] ); + wr4: validate_accuracy_types( SELF, [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE'] ); + END_ENTITY; + + ENTITY wrongly_placed_void + SUBTYPE OF ( erroneous_manifold_solid_brep ); + SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_logical_test; + WHERE + wr1: validate_measured_data_type( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.BOOLEAN_VALUE' ); + wr2: validate_inspected_elements_type( SELF, [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'BREP_WITH_VOIDS' ] ); + wr3: validate_locations_of_extreme_value_type( SELF, [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'ORIENTED_CLOSED_SHELL' ] ); + wr4: validate_accuracy_types( SELF, [] ); + END_ENTITY; + + ENTITY xor_expression + SUBTYPE OF ( binary_boolean_expression ); + SELF\binary_generic_expression.operands : LIST [2 : 2] OF boolean_expression; + END_ENTITY; + + ENTITY year_month + SUBTYPE OF ( date ); + month_component : month_in_year_number; + END_ENTITY; + + ENTITY zero_surface_normal + SUBTYPE OF ( geometry_with_local_irregularity ); + SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; + WHERE + wr1: ( ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'SHAPE_DATA_QUALITY_UPPER_VALUE_LIMIT' ) + IN TYPEOF( SELF\shape_data_quality_criterion.assessment_specification\ + shape_data_quality_assessment_by_numerical_test.threshold ) ) AND ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PLANE_ANGLE_MEASURE' IN value_limit_type( + SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test. + threshold ) ) ); + wr2: validate_measured_data_type( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PLANE_ANGLE_MEASURE' ); + wr3: validate_inspected_elements_type( SELF, [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SURFACE'] ); + wr4: validate_locations_of_extreme_value_type( SELF, [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'POINT_ON_SURFACE' ] ); + wr5: validate_accuracy_types( SELF, [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PLANE_ANGLE_MEASURE' ] ); + 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, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'PRODUCT_RELATED_PRODUCT_CATEGORY.PRODUCTS' ) | + ( prpc.name = 'alternative solution' ) ) ) = 1 ) ); + + WHERE + wr1: ( SIZEOF( QUERY ( pdf <* solution_versions | ( SIZEOF( QUERY ( pd <* USEDIN( pdf, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'PRODUCT_DEFINITION.FORMATION' ) | ( pd. + frame_of_reference.name = 'alternative definition' ) ) ) <> 1 ) ) ) = 0 ); + + END_RULE; + + RULE ap210_electronic_assembly_interconnect_and_packaging_design_mim_dot_application_protocol_definition_required FOR ( + application_context ); + + WHERE + wr1: ( SIZEOF( QUERY ( ac <* application_context | ( SIZEOF( QUERY ( apd <* USEDIN( ac, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.APPLICATION_PROTOCOL_DEFINITION.APPLICATION' ) + | ( apd.application_interpreted_model_schema_name = 'ap242_managed_model_based_3d_engineering' ) ) ) > 0 ) ) ) > 0 ); + + END_RULE; + + RULE application_protocol_definition_required FOR ( application_context ); + + WHERE + wr1: SIZEOF( QUERY ( ac <* application_context | ( SIZEOF( QUERY ( apd <* USEDIN( ac, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.APPLICATION_PROTOCOL_DEFINITION.APPLICATION' ) + | + (( apd.application_interpreted_model_schema_name = 'ap242_managed_model_based_3d_engineering' ) OR + ( apd.application_interpreted_model_schema_name = 'ap210_electronic_assembly_interconnect_and_packaging_design')) + ) ) + > 0 ) ) ) > 0; + + END_RULE; + + RULE area_component_shape_constraint FOR ( area_component ); + + WHERE + wr1: ( SIZEOF( QUERY ( ac <* area_component | ( NOT ( SIZEOF( QUERY ( pdr <* USEDIN( ac, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) + | ( NOT ( ( NOT ( pdr\property_definition_representation.used_representation\representation.id = 'ac2dsm' ) ) OR ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SINGLE_AREA_CSG_2D_SHAPE_REPRESENTATION' IN + TYPEOF( pdr\property_definition_representation.used_representation ) ) ) ) ) ) = 0 ) ) ) ) = 0 ); + wr2: ( SIZEOF( QUERY ( ac <* area_component | ( ( NOT apeaid_is_base( ac ) ) OR ( NOT ( SIZEOF( QUERY ( pdr <* USEDIN( ac, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) + | ( NOT ( ( NOT ( pdr\property_definition_representation.used_representation\representation.id = 'ac2dsm' ) ) OR ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SINGLE_BOUNDARY_CSG_2D_SHAPE_REPRESENTATION' IN + TYPEOF( pdr\property_definition_representation.used_representation ) ) ) ) ) ) = 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, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PRODUCT_RELATED_PRODUCT_CATEGORY.PRODUCTS' ) | + ( prpc.name = 'functionality' ) ) ) = 1 ) AND ( SIZEOF( QUERY ( pd <* USEDIN( pdf, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PRODUCT_RELATED_PRODUCT_CATEGORY.PRODUCTS' ) | + ( prpc.name = 'conceptual design' ) ) ) = 1 ) AND ( SIZEOF( QUERY ( pd <* USEDIN( pdf, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PRODUCT_DEFINITION.FORMATION' ) | ( pd. + frame_of_reference.name = 'conceptual definition' ) ) ) < 1 ) ) ) ) = 0 ); + + END_RULE; + + RULE cartesian_coordinate_system_constraint FOR ( global_unit_assigned_context, geometric_representation_context ); + + LOCAL + guac_inst : SET OF global_unit_assigned_context := QUERY ( guac <* global_unit_assigned_context | ( ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'GEOMETRIC_REPRESENTATION_CONTEXT' ) + IN TYPEOF( guac ) ) ); + END_LOCAL; + + WHERE + wr1: ( SIZEOF( QUERY ( guac <* guac_inst | ( NOT ( SIZEOF( guac.units ) <= 3 ) ) ) ) = 0 ); + wr2: ( SIZEOF( QUERY ( guac <* guac_inst | ( NOT ( ( SIZEOF( QUERY ( u <* guac.units | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_UNIT' IN TYPEOF( u ) ) ) ) = 1 ) AND ( + SIZEOF( QUERY ( u <* guac.units | ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PLANE_ANGLE_UNIT' ) IN TYPEOF( u ) ) ) ) = 1 ) AND ( SIZEOF( QUERY ( u <* guac.units | ( ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'SOLID_ANGLE_UNIT' ) IN TYPEOF( u ) ) ) ) + <= 1 ) ) ) ) ) = 0 ); + wr3: ( SIZEOF( QUERY ( grc <* guac_inst | ( NOT ( ( grc\geometric_representation_context.coordinate_space_dimension = 2 ) OR + ( grc\geometric_representation_context.coordinate_space_dimension = 3 ) ) ) ) ) = 0 ); + wr4: ( SIZEOF( QUERY ( guac <* guac_inst | ( NOT ( SIZEOF( QUERY ( u <* guac.units | ( NOT ( ( NOT ( ( ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'PLANE_ANGLE_UNIT' ) IN TYPEOF( u ) ) AND + ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'CONVERSION_BASED_UNIT' ) IN TYPEOF( u ) ) + AND ( u\conversion_based_unit.name = 'degree' ) ) ) OR ( ( ABS( u\conversion_based_unit.conversion_factor\ + measure_with_unit.value_component - 0.0174532925 ) <= 0.001 ) AND ( ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'PLANE_ANGLE_MEASURE_WITH_UNIT' ) IN + TYPEOF( u\conversion_based_unit.conversion_factor ) ) ) ) ) ) ) = 0 ) ) ) ) = 0 ); + + END_RULE; + + RULE chamfer_offset_requires_faces FOR ( chamfer_offset, property_definition_representation ); + + WHERE + wr1: ( SIZEOF( QUERY ( co <* chamfer_offset | ( NOT ( 1 = SIZEOF( QUERY ( pdr <* property_definition_representation | ( ( pdr + \property_definition_representation.definition\property_definition.definition = co ) AND ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.FACE_SHAPE_REPRESENTATION' IN TYPEOF( pdr. + used_representation ) ) AND ( ( ( pdr\property_definition_representation.definition\property_definition.definition. + description = 'first offset' ) AND ( pdr.used_representation.name = 'first face shape' ) ) OR ( ( pdr\ + property_definition_representation.definition\property_definition.definition.description = 'second offset' ) AND ( + pdr.used_representation.name = 'second face shape' ) ) ) ) ) ) ) ) ) ) = 0 ); + + END_RULE; + + RULE chamfer_requires_faces FOR ( chamfer, property_definition_representation ); + + WHERE + wr1: ( SIZEOF( QUERY ( cf <* chamfer | ( NOT ( 1 = SIZEOF( QUERY ( pdr <* property_definition_representation | ( ( pdr\ + property_definition_representation.definition\property_definition.definition = cf ) AND ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.FACE_SHAPE_REPRESENTATION' IN TYPEOF( pdr. + used_representation ) ) AND ( pdr.used_representation.name = 'chamfer face' ) ) ) ) ) ) ) ) = 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 : INTEGER := 0; + j : INTEGER := 0; + 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 ) BY 1; + nnauo := 0; + REPEAT j := LOINDEX( next_assembly_usage_occurrence ) TO HIINDEX( next_assembly_usage_occurrence ) BY 1; + 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 ) BY 1; + 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 | ( ( ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'UNCERTAINTY_QUALIFIER' ) IN TYPEOF( u1 ) ) + AND ( SIZEOF( QUERY ( u2 <* qri.qualifiers | ( ( ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PRODUCT_RELATED_PRODUCT_CATEGORY.PRODUCTS' ) | + ( prpc.name = 'requirement' ) ) ) > 0 ) AND ( SIZEOF( QUERY ( pd <* USEDIN( pdf, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PRODUCT_DEFINITION.FORMATION' ) | ( pd. + frame_of_reference.name = 'design constraint definition' ) ) ) < 1 ) ) ) ) = 0 ); + + END_RULE; + + RULE dimensioning_data_requires_document FOR ( applied_document_reference, product_definition_context_association, + role_association ); + + LOCAL + adr : SET OF applied_document_reference := QUERY ( adr <* applied_document_reference | ( ( adr\document_reference. + assigned_document\document.kind\document_type.product_data_type = 'Standards Document' ) AND ( ( adr\ + document_reference.assigned_document\document.id = 'ASME Y14.41-2003' ) OR ( adr\document_reference. + assigned_document\document.id = 'ASME Y14.5M-1994' ) OR ( adr\document_reference.assigned_document\document.id = + 'ISO 1101: 2004' ) ) ) ); + pdca : SET OF product_definition_context_association := QUERY ( pdca <* product_definition_context_association | ( ( pdca + \product_definition_context_association.role\product_definition_context_role.name = 'additional context' ) AND ( + pdca\product_definition_context_association.frame_of_reference\application_context_element.name = + 'Geometric Dimensioning and Tolerancing Product Specification' ) ) ); + ra : SET OF role_association := QUERY ( ra <* role_association | ( ra\role_association.role\object_role.name = + 'dimensioning standard' ) ); + ra1 : SET OF role_association := []; + pdpdca : SET OF product_definition := []; + pdadr : SET OF product_definition := []; + pass : BOOLEAN := TRUE; + END_LOCAL; + REPEAT i := 1 TO HIINDEX( pdca ) BY 1; + pdpdca := pdpdca + pdca[i]\product_definition_context_association.definition; + END_REPEAT; + REPEAT i := 1 TO HIINDEX( adr ) BY 1; + ra1 := bag_to_set( USEDIN( adr[i], 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.ROLE_ASSOCIATION.' + + 'ITEM_WITH_ROLE' ) ); + IF ( ra1 * ra ) <> ra1 THEN + pass := FALSE; + END_IF; + REPEAT j := 1 TO HIINDEX( adr[i]\applied_document_reference.items ) BY 1; + IF 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PRODUCT_DEFINITION' IN TYPEOF( adr[i]\ + applied_document_reference.items[j] ) THEN + pdadr := pdadr + adr[i]\applied_document_reference.items[j]; + END_IF; + END_REPEAT; + END_REPEAT; + + WHERE + wr1: pass; + wr2: ( pdpdca = pdadr ); + + END_RULE; + + RULE draughting_model_items_constraint FOR ( draughting_model ); + + WHERE + wr1: ( SIZEOF( QUERY ( dm <* draughting_model | ( NOT ( SIZEOF( QUERY ( it1 <* dm\representation.items | ( ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.ANNOTATION_OCCURRENCE' IN TYPEOF( it1 ) ) AND + ( NOT ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'DRAUGHTING_ANNOTATION_OCCURRENCE' ) + IN TYPEOF( it1 ) ) ) ) ) ) = 0 ) ) ) ) = 0 ); + wr2: ( SIZEOF( QUERY ( dm <* draughting_model | ( NOT ( SIZEOF( QUERY ( it1 <* dm\representation.items | ( ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.DRAUGHTING_CALLOUT' IN TYPEOF( it1 ) ) AND ( + NOT ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.DRAUGHTING_ELEMENTS' IN TYPEOF( it1 ) ) ) ) ) ) + = 0 ) ) ) ) = 0 ); + + END_RULE; + + RULE edge_round_requires_faces FOR ( edge_round, property_definition_representation ); + + WHERE + wr1: ( 0 = SIZEOF( QUERY ( er <* edge_round | ( NOT ( 1 = SIZEOF( QUERY ( pdr <* property_definition_representation | ( ( pdr + \property_definition_representation.definition\property_definition.definition = er ) AND ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.FACE_SHAPE_REPRESENTATION' IN TYPEOF( pdr. + used_representation ) ) AND ( pdr.used_representation.name = 'edge round face' ) ) ) ) ) ) ) ) ); + wr2: ( SIZEOF( QUERY ( er <* edge_round | ( NOT ( 1 = SIZEOF( QUERY ( pdr <* property_definition_representation | ( ( pdr\ + property_definition_representation.definition\property_definition.definition = er ) AND ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.FACE_SHAPE_REPRESENTATION' IN TYPEOF( pdr. + used_representation ) ) AND ( pdr.used_representation.name = 'first face shape' ) ) ) ) ) ) ) ) = 0 ); + wr3: ( SIZEOF( QUERY ( er <* edge_round | ( NOT ( 1 = SIZEOF( QUERY ( pdr <* property_definition_representation | ( ( pdr\ + property_definition_representation.definition\property_definition.definition = er ) AND ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.FACE_SHAPE_REPRESENTATION' IN TYPEOF( pdr. + used_representation ) ) AND ( pdr.used_representation.name = 'second face shape' ) ) ) ) ) ) ) ) = 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 machining_feature_definition_constraints FOR ( feature_definition ); + + LOCAL + mfds : SET OF feature_definition := []; + END_LOCAL; + mfds := QUERY ( temp <* feature_definition | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'MACHINING_FEATURE_DEFINITION' IN TYPEOF( temp ) ) ); + + WHERE + wr1: ( SIZEOF( QUERY ( mfd <* mfds | ( NOT ( SIZEOF( QUERY ( pdr <* get_property_definition_representations( mfd ) | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN + TYPEOF( pdr.used_representation ) ) ) ) <= 1 ) ) ) ) = 0 ); + wr2: ( SIZEOF( QUERY ( mfd <* mfds | ( NOT ( SIZEOF( QUERY ( pd <* USEDIN( mfd, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( + SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) + | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN + TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PLACEMENT' IN TYPEOF( it ) ) AND ( it.name = + 'orientation' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ) ) ) ) = 0 ); + wr3: ( SIZEOF( QUERY ( mfd <* mfds | ( NOT ( ( NOT ( SIZEOF( [ + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.ROUND_HOLE' , + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.BOSS' , + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.OUTSIDE_PROFILE' , + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.REMOVAL_VOLUME' , + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.FLAT_FACE' , + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.POCKET' , + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROTRUSION' , + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.RIB_TOP' , + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.ROUNDED_END' , + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SLOT' , + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.STEP' ] * TYPEOF( mfds ) ) = 1 ) ) OR ( SIZEOF( + QUERY ( pdr <* get_property_definition_representations( mfd ) | ( ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PLANAR_SHAPE_REPRESENTATION' IN TYPEOF( pdr. + used_representation ) ) AND ( pdr.used_representation.name = 'maximum feature limit' ) ) ) ) >= 0 ) ) ) ) ) = 0 ); + + END_RULE; + + RULE machining_feature_life_cycle FOR ( instanced_feature ); + + WHERE + wr1: ( SIZEOF( QUERY ( mf <* instanced_feature | ( NOT ( mf.of_shape.definition.frame_of_reference.life_cycle_stage = + 'manufacturing planning' ) ) ) ) = 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, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MATERIAL_DESIGNATION.DEFINITIONS' ) ) <> 1 ) ) ) + = 0 ); + + END_RULE; + + RULE not_instantiable_pre_defined_surface_side_style FOR ( pre_defined_surface_side_style ); + + WHERE + wr1: ( SIZEOF( pre_defined_surface_side_style ) = 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 | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.KNOWN_SOURCE' IN TYPEOF( edc.source ) ) ); + + WHERE + wr1: ( SIZEOF( QUERY ( edgp <* known_sourced_properties | ( SIZEOF( QUERY ( edir <* USEDIN( edgp, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.EXTERNALLY_DEFINED_ITEM_RELATIONSHIP.' + + 'RELATING_ITEM' ) | ( ( edir.name = 'name scope' ) AND ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.EXTERNALLY_DEFINED_CLASS' IN TYPEOF( edir. + related_item ) ) AND ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 | ( ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.KNOWN_SOURCE' IN TYPEOF( edgp.source ) ) AND ( ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.KNOWN_SOURCE' + '.NAME' ) = 'ISO 13584 library' ) ) ); + + WHERE + wr1: ( SIZEOF( QUERY ( edgp <* plib_properties | ( SIZEOF( QUERY ( edir <* USEDIN( edgp, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 : INTEGER; + j : INTEGER; + 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 ) BY 1; + nnauo := 0; + REPEAT j := LOINDEX( next_assembly_usage_occurrence ) TO HIINDEX( next_assembly_usage_occurrence ) BY 1; + 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 ) BY 1; + 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 : INTEGER; + j : INTEGER; + k : INTEGER; + 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 ) BY 1; + 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 ) BY 1; + nmfuo := 0; + REPEAT j := LOINDEX( make_from_usage_option ) TO HIINDEX( make_from_usage_option ) BY 1; + 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 ) BY 1; + 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( [ + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'INCLUSION_PRODUCT_CONCEPT_FEATURE', + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'CONDITIONAL_CONCEPT_FEATURE'] * TYPEOF( + pcf ) ) = 0 ) AND ( SIZEOF( QUERY ( aga <* USEDIN( pcf, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'APPLIED_GROUP_ASSIGNMENT.' + 'ITEMS' ) | + ( ( aga\group_assignment.role\object_role.name = 'specification category member' ) AND ( ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 | ( ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'CONCEPT_FEATURE_RELATIONSHIP_WITH_CONDITION.' + 'CONDITIONAL_OPERATOR' ) | ( SIZEOF( QUERY ( ccf <* USEDIN( cfrwc, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'CONDITIONAL_CONCEPT_FEATURE.CONDITION' ) + | ( NOT ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CLASS' IN TYPEOF( gr\group_relationship. + related_group ) ) ) OR ( NOT ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PRODUCT_CONCEPT_FEATURE_CATEGORY' IN TYPEOF( gr + .related_group ) ) ) OR ( NOT ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'PRODUCT_DEFINITION_RELATIONSHIP.' + + 'RELATED_PRODUCT_DEFINITION' ) | ( pdr.name = 'definition usage' ) ) ) <> 1 ) AND ( SIZEOF( QUERY ( cd <* + USEDIN( pd, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'CONFIGURATION_DESIGN.DESIGN' ) + | ( ( cd.name = 'occurrence usage definition' ) AND ( NOT ( ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'PRODUCT_IDENTIFICATION' ) IN TYPEOF( cd. + configuration ) ) ) ) ) ) <> 1 ) ) ) ) = 0 ); + wr3: ( SIZEOF( QUERY ( pd <* part_occurrences | ( ( SIZEOF( QUERY ( cd <* USEDIN( pd, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'PRODUCT_DEFINITION_RELATIONSHIP.' + + 'RELATED_PRODUCT_DEFINITION' ) | ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PRODUCT_DEFINITION_USAGE' ) IN TYPEOF( cd ) ) ) ) = 0 ) AND ( SIZEOF( USEDIN( pd, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'PROPERTY_DEFINITION.DEFINITION' ) | ( ( + ppd.name = 'occurrence quantity' ) AND ( SIZEOF( QUERY ( pdr <* USEDIN( ppd, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 | ( ( ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'PRODUCT_DEFINITION_OCCURRENCE_RELATIONSHIP.' + + 'OCCURRENCE' ) | ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 ( ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 shape_representation_requires_origin FOR ( shape_representation ); + + WHERE + wr1: ( SIZEOF( QUERY ( sr <* shape_representation | ( NOT ( ( SIZEOF( QUERY ( it <* sr\representation.items | ( ( ( it\ + representation_item.name = 'origin' ) OR ( it\representation_item.name = 'orientation' ) ) AND ( ( ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'AXIS2_PLACEMENT_2D' ) IN TYPEOF( it ) ) OR + ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'AXIS2_PLACEMENT_2D' ) IN TYPEOF( it ) ) ) ) ) ) + = 1 ) OR ( SIZEOF( QUERY ( it <* sr\representation.items | ( ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'STYLED_ITEM' ) IN TYPEOF( it ) ) ) ) >= 1 ) + OR ( SIZEOF( QUERY ( it <* sr\representation.items | ( ( ( it\representation_item.name = 'origin' ) OR ( it\ + representation_item.name = 'orientation' ) ) AND ( ( sr\representation.name = 'zone shape' ) OR ( sr.context_of_items + \representation_context.context_type = 'connection zone colour' ) ) ) ) ) = 0 ) ) ) ) ) = 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, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'PRODUCT_RELATED_PRODUCT_CATEGORY.PRODUCTS' ) + | ( prpc.name = 'alternative solution' ) ) ) = 0 ) ) ) = 0 ); + + END_RULE; + + RULE spline_curve_population_constraint FOR ( curve ); + + WHERE + wr1: ( SIZEOF( QUERY ( cu <* curve | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.B_SPLINE_CURVE' IN + TYPEOF( cu ) ) ) ) = 0 ); + + END_RULE; + + RULE styled_curve FOR ( styled_item ); + + WHERE + wr1: ( SIZEOF( QUERY ( si <* styled_item | ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CURVE' IN + TYPEOF( si.item ) ) AND ( SIZEOF( QUERY ( psa <* si.styles | ( SIZEOF( QUERY ( cs <* psa.styles | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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, [ + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.ANGULARITY_TOLERANCE' , + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CIRCULAR_RUNOUT_TOLERANCE' , + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.COAXIALITY_TOLERANCE' , + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CONCENTRICITY_TOLERANCE' , + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CYLINDRICITY_TOLERANCE' , + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.FLATNESS_TOLERANCE' , + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LINE_PROFILE_TOLERANCE' , + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PARALLELISM_TOLERANCE' , + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PERPENDICULARITY_TOLERANCE' , + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.POSITION_TOLERANCE' , + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.ROUNDNESS_TOLERANCE' , + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.STRAIGHTNESS_TOLERANCE' , + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SURFACE_PROFILE_TOLERANCE' , + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SYMMETRY_TOLERANCE' , + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.TOTAL_RUNOUT_TOLERANCE' ], 2 ) ) ) ) = 0 ); + + END_RULE; + + RULE subtype_exclusiveness_representation_item FOR ( representation_item ); + + WHERE + wr1: ( SIZEOF( QUERY ( cri <* representation_item | ( NOT type_check_function( cri, [ + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM' , + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.VALUE_REPRESENTATION_ITEM' , + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.COMPOUND_REPRESENTATION_ITEM' ], 3 ) ) ) ) = 0 ); + + END_RULE; + + RULE subtype_mandatory_shape_representation FOR ( shape_representation ); + + WHERE + wr1: ( SIZEOF( QUERY ( sr <* shape_representation | ( NOT ( ( SIZEOF( [ + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.ADVANCED_BREP_SHAPE_REPRESENTATION' , + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.FACETED_BREP_SHAPE_REPRESENTATION' , + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MANIFOLD_SURFACE_SHAPE_REPRESENTATION' , + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MANIFOLD_SUBSURFACE_SHAPE_REPRESENTATION' , + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.EDGE_BASED_WIREFRAME_SHAPE_REPRESENTATION' , + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHELL_BASED_WIREFRAME_SHAPE_REPRESENTATION' , + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'GEOMETRICALLY_BOUNDED_SURFACE_SHAPE_REPRESENTATION' , + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'GEOMETRICALLY_BOUNDED_WIREFRAME_SHAPE_REPRESENTATION' , + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.BEVELED_SHEET_REPRESENTATION' , + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.COMPOSITE_SHEET_REPRESENTATION' , + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.COMPOUND_SHAPE_REPRESENTATION' , + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CSG_2D_SHAPE_REPRESENTATION' , + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CSG_SHAPE_REPRESENTATION' , + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CURVE_SWEPT_SOLID_SHAPE_REPRESENTATION' , + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.DIRECTION_SHAPE_REPRESENTATION' , + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.ELEMENTARY_BREP_SHAPE_REPRESENTATION' , + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.FACE_SHAPE_REPRESENTATION' , + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'GEOMETRICALLY_BOUNDED_2D_WIREFRAME_REPRESENTATION' , + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LOCATION_SHAPE_REPRESENTATION' , + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.NEUTRAL_SKETCH_REPRESENTATION' , + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.NON_MANIFOLD_SURFACE_SHAPE_REPRESENTATION' , + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PATH_SHAPE_REPRESENTATION' , + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PLANAR_SHAPE_REPRESENTATION' , + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROCEDURAL_SHAPE_REPRESENTATION' , + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.REPRESENTATIVE_SHAPE_REPRESENTATION' , + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_DIMENSION_REPRESENTATION' , + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' , + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.TESSELLATED_SHAPE_REPRESENTATION' ] * TYPEOF( sr ) ) + = 1 ) OR ( SIZEOF( QUERY ( it <* sr\representation.items | ( NOT ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.AXIS2_PLACEMENT_3D' IN TYPEOF( it ) ) ) ) ) = 0 ) + OR ( SIZEOF( QUERY ( sdr <* QUERY ( pdr <* USEDIN( sr, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.' + + 'USED_REPRESENTATION' ) | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'SHAPE_DEFINITION_REPRESENTATION' IN TYPEOF( pdr ) ) ) | ( NOT ( SIZEOF( [ + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT' , + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP' ] * TYPEOF( sdr. + definition ) ) = 1 ) ) ) ) = 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, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.TEXT_LITERAL.FONT' ) ) = 0 ) ) ) = 0 ); + wr2: ( SIZEOF( QUERY ( edtf <* externally_defined_text_font | ( SIZEOF( USEDIN( edtf, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.TEXT_LITERAL.FONT' ) ) = 0 ) ) ) = 0 ); + + END_RULE; + + RULE tolerance_zone_form_name_constraint FOR ( tolerance_zone_form ); + + LOCAL + names : SET OF STRING := [ 'within a circle', 'between two concentric circles', 'between two equidistant curves', + 'within a cylinder' , 'between two coaxial cylinders', 'between two equidistant surfaces', 'non uniform', + 'cylindrical or circular' , 'spherical', 'unknown']; + pass : BOOLEAN := TRUE; + END_LOCAL; + REPEAT i := 1 TO SIZEOF( tolerance_zone_form ) BY 1 WHILE pass; + pass := tolerance_zone_form[i].name IN names; + END_REPEAT; + + WHERE + wr1: pass; + + END_RULE; + + RULE transition_feature_life_cycle FOR ( transition_feature ); + + WHERE + wr1: ( SIZEOF( QUERY ( tf <* transition_feature | ( NOT ( tf.of_shape.definition.frame_of_reference.life_cycle_stage = + 'manufacturing planning' ) ) ) ) = 0 ); + + END_RULE; + + RULE transition_feature_on_part_boundary FOR ( transition_feature ); + + WHERE + wr1: ( SIZEOF( QUERY ( tf <* transition_feature | ( NOT tf.product_definitional ) ) ) = 0 ); + + END_RULE; + + RULE unique_datum_system FOR ( datum_system ); + + LOCAL + pass : BOOLEAN := TRUE; + END_LOCAL; + REPEAT i := 1 TO SIZEOF( datum_system ) BY 1; + REPEAT j := 1 TO SIZEOF( datum_system ) BY 1; + IF i <> j THEN + IF datum_system[i]\datum_system.constituents = datum_system[j]\datum_system.constituents THEN + pass := FALSE; + END_IF; + END_IF; + END_REPEAT; + END_REPEAT; + + WHERE + wr1: pass; + + END_RULE; + + RULE unique_gdt_element_id_constraint FOR ( product_definition_shape, dimensional_location, dimensional_size, shape_aspect, + shape_aspect_relationship ); + + LOCAL + bss : BAG OF STRING := []; + ds : SET OF dimensional_size := QUERY ( ds <* dimensional_size | EXISTS( ds\dimensional_size.id ) ); + sa : SET OF shape_aspect := QUERY ( sa <* shape_aspect | EXISTS( sa\shape_aspect.id ) ); + sar : SET OF shape_aspect_relationship := QUERY ( sar <* shape_aspect_relationship | EXISTS( sar\shape_aspect_relationship + .id ) ); + ssa : SET OF shape_aspect := []; + pass : BOOLEAN := TRUE; + END_LOCAL; + REPEAT ii := 1 TO SIZEOF( product_definition_shape ) BY 1 WHILE pass; + bss := []; + ssa := bag_to_set( USEDIN( product_definition_shape[ii], + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'SHAPE_ASPECT.' + 'OF_SHAPE' ) ); + REPEAT i := 1 TO SIZEOF( ds ) BY 1; + IF ds[i]\dimensional_size.applies_to IN ssa THEN + bss := bss + ds[i]\dimensional_size.id; + END_IF; + END_REPEAT; + REPEAT i := 1 TO SIZEOF( sa ) BY 1; + IF sa[i] IN ssa THEN + bss := bss + sa[i]\shape_aspect.id; + END_IF; + END_REPEAT; + REPEAT i := 1 TO SIZEOF( sar ) BY 1; + IF sar[i]\shape_aspect_relationship.relating_shape_aspect IN ssa THEN + bss := bss + sar[i]\shape_aspect_relationship.id; + END_IF; + END_REPEAT; + IF SIZEOF( bag_to_set( bss ) ) <> SIZEOF( bss ) THEN + pass := FALSE; + END_IF; + END_REPEAT; + + WHERE + wr1: pass; + + END_RULE; + + RULE valid_product_and_manufacturing_information_view_contexts FOR ( product_definition_context ); + + LOCAL + design_view_contexts : SET OF product_definition_context := QUERY ( pdc <* + product_definition_context | ( pdc.life_cycle_stage = 'design' ) ); + gdt_representation_view_contexts : SET OF product_definition_context := QUERY ( pdc <* + product_definition_context | ( pdc.frame_of_reference.application = + 'geometrical dimensioning and tolerancing representation' ) ); + machining_feature_view_contexts : SET OF product_definition_context := QUERY ( pdc <* + product_definition_context | ( pdc.frame_of_reference.application = + 'machining feature' ) ); + material_specification_view_contexts : SET OF product_definition_context := QUERY ( pdc <* + product_definition_context | ( pdc.frame_of_reference.application = + 'material specification' ) ); + model_based_3d_annotation_presentation_view_contexts : SET OF product_definition_context := QUERY ( pdc <* + product_definition_context | ( pdc.frame_of_reference.application = + 'model based 3D annotation presentation' ) ); + model_based_view_contexts : SET OF product_definition_context := QUERY ( pdc <* + product_definition_context | ( pdc.frame_of_reference.application = + 'model based product geometry' ) ); + process_state_view_contexts : SET OF product_definition_context := QUERY ( pdc <* + product_definition_context | ( pdc.frame_of_reference.application = + 'process state' ) ); + surface_finish_view_contexts : SET OF product_definition_context := QUERY ( pdc <* + product_definition_context | ( pdc.frame_of_reference.application = + 'surface finish' ) ); + additional_view_contexts : SET OF product_definition_context := + gdt_representation_view_contexts + machining_feature_view_contexts + + material_specification_view_contexts + + model_based_3d_annotation_presentation_view_contexts + + process_state_view_contexts + surface_finish_view_contexts; + need_initial_model_based_view_contexts : SET OF product_definition_context := + gdt_representation_view_contexts + + model_based_3d_annotation_presentation_view_contexts; + END_LOCAL; + + WHERE + wr1 : ( SIZEOF( gdt_representation_view_contexts * design_view_contexts ) = SIZEOF( gdt_representation_view_contexts ) ); + wr2 : ( SIZEOF( machining_feature_view_contexts * design_view_contexts ) = SIZEOF( machining_feature_view_contexts ) ); + wr3 : ( SIZEOF( material_specification_view_contexts * design_view_contexts ) = SIZEOF( material_specification_view_contexts ) ); + wr4 : ( SIZEOF( model_based_3d_annotation_presentation_view_contexts * design_view_contexts ) = SIZEOF( + model_based_3d_annotation_presentation_view_contexts ) ); + wr5 : ( SIZEOF( model_based_view_contexts * design_view_contexts ) = SIZEOF( model_based_view_contexts ) ); + wr6 : ( SIZEOF( process_state_view_contexts * design_view_contexts ) = SIZEOF( process_state_view_contexts ) ); + wr7 : ( SIZEOF( surface_finish_view_contexts * design_view_contexts ) = SIZEOF( surface_finish_view_contexts ) ); + wr8 : ( SIZEOF( QUERY ( mbvc <* model_based_view_contexts | ( SIZEOF( USEDIN( mbvc, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PRODUCT_DEFINITION_CONTEXT_ASSOCIATION.' + + 'FRAME_OF_REFERENCE' ) ) = 0 ) ) ) = SIZEOF( model_based_view_contexts ) ); + wr9 : ( SIZEOF( QUERY ( avc <* additional_view_contexts | ( SIZEOF( USEDIN( avc, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PRODUCT_DEFINITION.FRAME_OF_REFERENCE' ) ) = 0 ) ) ) + = SIZEOF( additional_view_contexts ) ); + wr10: ( SIZEOF( QUERY ( nimbvc <* need_initial_model_based_view_contexts | ( NOT ( SIZEOF( QUERY ( pdca <* USEDIN( nimbvc, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PRODUCT_DEFINITION_CONTEXT_ASSOCIATION.' + + 'FRAME_OF_REFERENCE' ) | ( pdca\product_definition_context_association.definition\product_definition. + frame_of_reference IN model_based_view_contexts ) ) ) = SIZEOF( need_initial_model_based_view_contexts ) ) ) ) ) = 0 ); + wr11: ( SIZEOF( QUERY ( gdt_pdc <* gdt_representation_view_contexts | ( SIZEOF( [ 'ISO 1101', 'ASME Y14.5'] * + get_associated_mandatory_document_ids( gdt_pdc ) ) = 0 ) ) ) = 0 ); + wr12: ( SIZEOF( QUERY ( mb3d_pdc <* model_based_3d_annotation_presentation_view_contexts | ( SIZEOF( [ 'ISO 1101', 'ISO 16792', + 'ASME Y14.41' , 'ASME Y14.5'] * get_associated_mandatory_document_ids( mb3d_pdc ) ) = 0 ) ) ) = 0 ); + + END_RULE; + + RULE validate_dependently_instantiable_entity_data_types FOR ( abstracted_expression_function, action_method_role, + action_resource_type, application_defined_function, atom_based_literal, attribute_value_role, b_spline_basis, + b_spline_function, basic_sparse_matrix, binary_literal, camera_model_d2, cartesian_complex_number_region, + cartesian_transformation_operator, complex_number_literal, concept_feature_relationship, + concept_feature_relationship_with_condition, constant_function, definite_integral_expression, + definite_integral_function, edge_blended_solid, effectivity_context_role, elementary_function, event_occurrence_role, + explicit_procedural_representation_item_relationship, explicit_table_function, expression_denoted_function, + extended_tuple_space, externally_listed_data, finite_function, founded_item, function_application, function_space, + general_linear_function, homogeneous_linear_function, imported_curve_function, imported_point_function, + imported_surface_function, imported_volume_function, indirectly_selected_elements, integer_tuple_literal, + linearized_table_function, listed_data, maths_enum_literal, maths_function, maths_tuple_literal, + modified_solid_with_placed_configuration, one_direction_repeat_factor, oriented_open_shell, oriented_path, + parallel_composed_function, partial_derivative_expression, partial_derivative_function, polar_complex_number_region, + procedural_representation, procedural_representation_sequence, product_definition_effectivity, quantifier_expression, + rationalize_function, real_tuple_literal, reindexed_array_function, repackaging_function, restriction_function, + runout_zone_orientation, selector_function, series_composed_function, 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, two_direction_repeat_factor, user_selected_elements, 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 + abstracted_expression_function; + all_instances := all_instances + action_method_role; + all_instances := all_instances + action_resource_type; + all_instances := all_instances + application_defined_function; + all_instances := all_instances + atom_based_literal; + all_instances := all_instances + attribute_value_role; + all_instances := all_instances + b_spline_basis; + all_instances := all_instances + b_spline_function; + all_instances := all_instances + basic_sparse_matrix; + all_instances := all_instances + binary_literal; + all_instances := all_instances + camera_model_d2; + all_instances := all_instances + cartesian_complex_number_region; + all_instances := all_instances + cartesian_transformation_operator; + all_instances := all_instances + complex_number_literal; + all_instances := all_instances + concept_feature_relationship; + all_instances := all_instances + concept_feature_relationship_with_condition; + all_instances := all_instances + constant_function; + all_instances := all_instances + definite_integral_expression; + all_instances := all_instances + definite_integral_function; + all_instances := all_instances + edge_blended_solid; + all_instances := all_instances + effectivity_context_role; + all_instances := all_instances + elementary_function; + all_instances := all_instances + event_occurrence_role; + all_instances := all_instances + explicit_procedural_representation_item_relationship; + all_instances := all_instances + explicit_table_function; + all_instances := all_instances + expression_denoted_function; + all_instances := all_instances + extended_tuple_space; + all_instances := all_instances + externally_listed_data; + all_instances := all_instances + finite_function; + all_instances := all_instances + founded_item; + all_instances := all_instances + function_application; + all_instances := all_instances + function_space; + all_instances := all_instances + general_linear_function; + all_instances := all_instances + homogeneous_linear_function; + all_instances := all_instances + imported_curve_function; + all_instances := all_instances + imported_point_function; + all_instances := all_instances + imported_surface_function; + all_instances := all_instances + imported_volume_function; + all_instances := all_instances + indirectly_selected_elements; + all_instances := all_instances + integer_tuple_literal; + all_instances := all_instances + linearized_table_function; + all_instances := all_instances + listed_data; + all_instances := all_instances + maths_enum_literal; + all_instances := all_instances + maths_function; + all_instances := all_instances + maths_tuple_literal; + all_instances := all_instances + modified_solid_with_placed_configuration; + all_instances := all_instances + one_direction_repeat_factor; + all_instances := all_instances + oriented_open_shell; + all_instances := all_instances + oriented_path; + all_instances := all_instances + parallel_composed_function; + all_instances := all_instances + partial_derivative_expression; + all_instances := all_instances + partial_derivative_function; + all_instances := all_instances + polar_complex_number_region; + all_instances := all_instances + procedural_representation; + all_instances := all_instances + procedural_representation_sequence; + all_instances := all_instances + product_definition_effectivity; + all_instances := all_instances + quantifier_expression; + all_instances := all_instances + rationalize_function; + all_instances := all_instances + real_tuple_literal; + all_instances := all_instances + reindexed_array_function; + all_instances := all_instances + repackaging_function; + all_instances := all_instances + restriction_function; + all_instances := all_instances + runout_zone_orientation; + all_instances := all_instances + selector_function; + all_instances := all_instances + series_composed_function; + all_instances := all_instances + solid_with_depression; + all_instances := all_instances + solid_with_hole; + all_instances := all_instances + solid_with_pocket; + all_instances := all_instances + solid_with_protrusion; + all_instances := all_instances + solid_with_shape_element_pattern; + all_instances := all_instances + solid_with_slot; + all_instances := all_instances + swept_area_solid; + all_instances := all_instances + symbol_target; + all_instances := all_instances + two_direction_repeat_factor; + all_instances := all_instances + user_selected_elements; + all_instances := all_instances + volume; + number_of_input_instances := SIZEOF( all_instances ); + REPEAT i := 1 TO number_of_input_instances BY 1; + 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; + +(* + The following two FUNCTIONs have been added to address Bug 5057 for the + initial ed2 version until they can properly be added to the constituent modules. +*) + + FUNCTION above_plane + (p1 : cartesian_point; p2 : cartesian_point; p3 : cartesian_point; p4 : cartesian_point) : REAL; + LOCAL + dir2, dir3, dir4 : direction := + dummy_gri || direction([1.0, 0.0, 0.0]); + val, mag : REAL; + END_LOCAL; + + IF (p1.dim <> 3) THEN + RETURN(?); + END_IF; + REPEAT i := 1 TO 3; + dir2.direction_ratios[i] := p2.coordinates[i] - p1.coordinates[i]; + dir3.direction_ratios[i] := p3.coordinates[i] - p1.coordinates[i]; + dir4.direction_ratios[i] := p4.coordinates[i] - p1.coordinates[i]; + mag := dir4.direction_ratios[i]*dir4.direction_ratios[i]; + END_REPEAT; + mag := sqrt(mag); + val := mag*dot_product(dir4, cross_product(dir2, dir3).orientation); + RETURN(val); + END_FUNCTION; + + FUNCTION same_side + (plane_pts : LIST[3:3] OF cartesian_point; test_points : LIST[2:?] OF cartesian_point) : BOOLEAN; + LOCAL + val1, val2 : REAL; + n : INTEGER; + END_LOCAL; + + IF (plane_pts[1].dim = 2) OR (test_points[1].dim = 2) THEN + RETURN(?); + END_IF; + n := SIZEOF(test_points); + val1 := above_plane(plane_pts[1], plane_pts[2], plane_pts[3], + test_points[1] ); + REPEAT i := 2 TO n; + val2 := above_plane(plane_pts[1], plane_pts[2], plane_pts[3], + test_points[i] ); + IF (val1*val2 <= 0.0) THEN + RETURN(FALSE); + END_IF; + END_REPEAT; + RETURN(TRUE); + END_FUNCTION; + +(* End of added FUNCTIONs. JH 2014-05-22 *) + + FUNCTION acyclic( + arg1 : generic_expression; + arg2 : SET OF generic_expression + ) : BOOLEAN; + + LOCAL + result : BOOLEAN := TRUE; + END_LOCAL; + IF 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SIMPLE_GENERIC_EXPRESSION' IN TYPEOF( arg1 ) THEN + RETURN( TRUE ); + END_IF; + IF arg1 IN arg2 THEN + RETURN( FALSE ); + END_IF; + IF 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.UNARY_GENERIC_EXPRESSION' IN TYPEOF( arg1 ) THEN + RETURN( acyclic( arg1\unary_generic_expression.operand, arg2 + [arg1] ) ); + END_IF; + IF 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MULTIPLE_ARITY_GENERIC_EXPRESSION' IN TYPEOF( arg1 ) + THEN + result := TRUE; + REPEAT i := 1 TO SIZEOF( arg1\multiple_arity_generic_expression.operands ) BY 1; + 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 | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'COMPOSITE_TEXT' IN TYPEOF( child ) ) ); + IF SIZEOF( local_composite_text ) > 0 THEN + REPEAT i := 1 TO HIINDEX( local_composite_text ) BY 1; + 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 ) BY 1; + local_children := local_children + local_composite_text[i].collected_text; + END_REPEAT; + END_IF; + local_annotation_text := QUERY ( child <* child_text | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'ANNOTATION_TEXT' IN TYPEOF( child ) ) ); + IF SIZEOF( local_annotation_text ) > 0 THEN + REPEAT i := 1 TO HIINDEX( local_annotation_text ) BY 1; + local_children := local_children + QUERY ( item <* local_annotation_text[i]\mapped_item.mapping_source. + mapped_representation.items | ( SIZEOF( [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'ANNOTATION_TEXT' , 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CURVE_REPLICA' IN TYPEOF( parent ) ) THEN + RETURN( TRUE ); + END_IF; + IF parent :=: rep THEN + RETURN( FALSE ); + ELSE + RETURN( acyclic_curve_replica( rep, parent\curve_replica.parent_curve ) ); + END_IF; + + END_FUNCTION; + + FUNCTION acyclic_mapped_representation( + mi : mapped_item + ) : BOOLEAN; + + LOCAL + rms : SET OF representation_map; + mis : SET OF mapped_item; + rs1 : SET OF representation; + rs2 : SET OF representation; + END_LOCAL; + rs1 := using_representations( mi ); + rs2 := []; + REPEAT WHILE SIZEOF( rs1 ) > 0; + REPEAT i := 1 TO HIINDEX( rs1 ) BY 1; + rms := bag_to_set( USEDIN( rs1[i], 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'REPRESENTATION_MAP.MAPPED_REPRESENTATION' ) ); + IF SIZEOF( rms ) > 0 THEN + REPEAT j := 1 TO HIINDEX( rms ) BY 1; + mis := bag_to_set( USEDIN( rms[i], 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MAPPED_ITEM.' + + 'MAPPING_SOURCE' ) ); + IF SIZEOF( mis ) > 0 THEN + REPEAT j := 1 TO HIINDEX( mis ) BY 1; + 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 ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.POINT_REPLICA' IN TYPEOF( parent ) ) THEN + RETURN( TRUE ); + END_IF; + IF parent :=: rep THEN + RETURN( FALSE ); + ELSE + RETURN( acyclic_point_replica( rep, parent\point_replica.parent_pt ) ); + END_IF; + + END_FUNCTION; + + FUNCTION acyclic_product_category_relationship( + relation : product_category_relationship; + children : SET OF product_category + ) : BOOLEAN; + + LOCAL + x : SET OF product_category_relationship; + local_children : SET OF product_category; + END_LOCAL; + REPEAT i := 1 TO HIINDEX( children ) BY 1; + IF relation.category :=: children[i] THEN + RETURN( FALSE ); + END_IF; + END_REPEAT; + x := bag_to_set( USEDIN( relation.category, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PRODUCT_CATEGORY_RELATIONSHIP.SUB_CATEGORY' ) ); + local_children := children + relation.category; + IF SIZEOF( x ) > 0 THEN + REPEAT i := 1 TO HIINDEX( x ) BY 1; + IF NOT acyclic_product_category_relationship( x[i], local_children ) THEN + RETURN( FALSE ); + END_IF; + END_REPEAT; + END_IF; + RETURN( TRUE ); + + END_FUNCTION; + + FUNCTION acyclic_product_definition_relationship( + relation : product_definition_relationship; + relatives : SET [1 : ?] OF product_definition_or_reference; + 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, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'PRODUCT_DEFINITION_RELATIONSHIP.' + + 'RELATED_PRODUCT_DEFINITION' ) ) | ( specific_relation IN TYPEOF( pd ) ) ); + REPEAT i := 1 TO HIINDEX( x ) BY 1; + 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, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'REPRESENTATION_RELATIONSHIP.' + 'REP_2' ) ) | ( specific_relation IN TYPEOF( r ) ) ); + REPEAT i := 1 TO HIINDEX( x ) BY 1; + 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_shape_aspect_relationship( + relation : shape_aspect_relationship; + relatives : SET [1 : ?] OF shape_aspect; + specific_relation : STRING + ) : BOOLEAN; + + LOCAL + x : SET OF shape_aspect_relationship; + END_LOCAL; + IF relation.relating_shape_aspect IN relatives THEN + RETURN( FALSE ); + END_IF; + x := QUERY ( sa <* bag_to_set( USEDIN( relation.relating_shape_aspect, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'SHAPE_ASPECT_RELATIONSHIP.' + + 'RELATED_SHAPE_ASPECT' ) ) | ( specific_relation IN TYPEOF( sa ) ) ); + REPEAT i := 1 TO HIINDEX( x ) BY 1; + IF NOT acyclic_shape_aspect_relationship( x[i], relatives + relation.relating_shape_aspect, 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 ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SOLID_REPLICA' IN TYPEOF( parent ) ) THEN + RETURN( TRUE ); + END_IF; + IF parent :=: rep THEN + RETURN( FALSE ); + 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 ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SURFACE_REPLICA' IN TYPEOF( parent ) ) THEN + RETURN( TRUE ); + END_IF; + IF parent :=: rep THEN + RETURN( FALSE ); + ELSE + RETURN( acyclic_surface_replica( rep, parent\surface_replica.parent_surface ) ); + END_IF; + + END_FUNCTION; + + FUNCTION advanced_face_properties( + testface : face + ) : BOOLEAN; + IF 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.ADVANCED_FACE' IN TYPEOF( testface ) THEN + RETURN( TRUE ); + END_IF; + IF 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SUBFACE' IN TYPEOF( testface ) THEN + RETURN( advanced_face_properties( testface\subface.parent_face ) ); + ELSE + RETURN( FALSE ); + END_IF; + + END_FUNCTION; + + FUNCTION all_members_of_es( + sv : SET OF maths_value; + es : elementary_space_enumerators + ) : LOGICAL; + + CONSTANT + base_types : SET OF STRING := + [ 'NUMBER' , + 'COMPLEX_NUMBER_LITERAL' , + 'REAL' , + 'INTEGER' , + 'LOGICAL' , + 'BOOLEAN' , + 'STRING' , + 'BINARY' , + 'MATHS_SPACE' , + 'MATHS_FUNCTION' , + 'LIST' , + 'ELEMENTARY_SPACE_ENUMERATORS' , + 'ORDERING_TYPE' , + 'LOWER_UPPER' , + 'SYMMETRY_TYPE' , + 'ELEMENTARY_FUNCTION_ENUMERATORS' , + 'OPEN_CLOSED' , + 'SPACE_CONSTRAINT_TYPE' , + 'REPACKAGE_OPTIONS' , + 'EXTENSION_OPTIONS' ]; + END_CONSTANT; + + LOCAL + v : maths_value; + key_type : STRING := ''; + types : SET OF STRING; + ge : generic_expression; + cum : LOGICAL := TRUE; + vspc : maths_space; + END_LOCAL; + IF ( NOT EXISTS( sv ) ) OR ( NOT EXISTS( es ) ) THEN + RETURN( FALSE ); + END_IF; + CASE es OF + es_numbers : key_type := 'NUMBER'; + es_complex_numbers : key_type := 'COMPLEX_NUMBER_LITERAL'; + es_reals : key_type := 'REAL'; + es_integers : key_type := 'INTEGER'; + es_logicals : key_type := 'LOGICAL'; + es_booleans : key_type := 'BOOLEAN'; + es_strings : key_type := 'STRING'; + es_binarys : key_type := 'BINARY'; + es_maths_spaces : key_type := 'MATHS_SPACE'; + es_maths_functions : key_type := 'MATHS_FUNCTION'; + es_generics : RETURN( TRUE ); + END_CASE; + REPEAT i := 1 TO SIZEOF( sv ) BY 1; + IF NOT EXISTS( sv[i] ) THEN + RETURN( FALSE ); + END_IF; + v := simplify_maths_value( sv[i] ); + types := stripped_typeof( v ); + IF key_type IN types THEN + SKIP; + END_IF; + IF ( es = es_numbers ) AND ( 'COMPLEX_NUMBER_LITERAL' IN types ) THEN + SKIP; + END_IF; + IF SIZEOF( base_types * types ) > 0 THEN + RETURN( FALSE ); + END_IF; + ge := v; + IF has_values_space( ge ) THEN + vspc := values_space_of( ge ); + IF NOT subspace_of_es( vspc, es ) THEN + IF NOT compatible_spaces( vspc, make_elementary_space( es ) ) THEN + RETURN( FALSE ); + END_IF; + cum := UNKNOWN; + END_IF; + ELSE + cum := UNKNOWN; + END_IF; + IF cum = FALSE THEN + RETURN( FALSE ); + END_IF; + END_REPEAT; + RETURN( cum ); + + END_FUNCTION; + + FUNCTION any_space_satisfies( + sc : space_constraint_type; + spc : maths_space + ) : BOOLEAN; + + LOCAL + spc_id : elementary_space_enumerators; + END_LOCAL; + IF ( sc = sc_equal ) OR ( NOT ( 'ELEMENTARY_SPACE' IN stripped_typeof( spc ) ) ) THEN + RETURN( FALSE ); + END_IF; + spc_id := spc\elementary_space.space_id; + IF sc = sc_subspace THEN + RETURN( bool( spc_id = es_generics ) ); + END_IF; + IF sc = sc_member THEN + RETURN( bool( ( spc_id = es_generics ) OR ( spc_id = es_maths_spaces ) ) ); + END_IF; + RETURN( ? ); + + END_FUNCTION; + + FUNCTION apeaid_is_base( + input : area_component + ) : LOGICAL; + + LOCAL + pd : SET OF property_definition := bag_to_set( QUERY ( pd <* USEDIN( input, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( pd\ + property_definition.name = 'is base' ) ) ); + END_LOCAL; + RETURN( pd[1].description = 'true' ); + + 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 assembly_leaf( + item : product_definition + ) : BOOLEAN; + + LOCAL + local_relation : SET OF assembly_component_usage := []; + local_relation2 : BAG OF assembly_component_usage := []; + END_LOCAL; + local_relation2 := local_relation2 + QUERY ( pdr <* USEDIN( item, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PRODUCT_DEFINITION_RELATIONSHIP.' + + 'RELATING_PRODUCT_DEFINITION' ) | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'ASSEMBLY_COMPONENT_USAGE' IN TYPEOF( pdr ) ) ); + local_relation := bag_to_set( local_relation2 ); + IF SIZEOF( local_relation ) = 0 THEN + RETURN( TRUE ); + ELSE + RETURN( FALSE ); + END_IF; + + END_FUNCTION; + + FUNCTION assembly_root( + item : product_definition + ) : BOOLEAN; + IF SIZEOF( QUERY ( pdr <* USEDIN( item, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PRODUCT_DEFINITION_RELATIONSHIP.' + 'RELATED_PRODUCT_DEFINITION' ) | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.ASSEMBLY_COMPONENT_USAGE' IN TYPEOF( pdr ) ) ) ) = 0 + THEN + RETURN( TRUE ); + ELSE + RETURN( FALSE ); + END_IF; + + END_FUNCTION; + + FUNCTION assoc_product_space( + ts1, ts2 : tuple_space + ) : tuple_space; + + LOCAL + types1 : SET OF STRING := stripped_typeof( ts1 ); + types2 : SET OF STRING := stripped_typeof( ts2 ); + up1 : uniform_product_space := make_uniform_product_space( the_reals, 1 ); + up2 : uniform_product_space := make_uniform_product_space( the_reals, 1 ); + lp1 : listed_product_space := the_zero_tuple_space; + lp2 : listed_product_space := the_zero_tuple_space; + lps : listed_product_space := the_zero_tuple_space; + et1 : extended_tuple_space := the_tuples; + et2 : extended_tuple_space := the_tuples; + ets : extended_tuple_space := the_tuples; + use_up1 : BOOLEAN; + use_up2 : BOOLEAN; + use_lp1 : BOOLEAN; + use_lp2 : BOOLEAN; + factors : LIST OF maths_space := []; + tspace : tuple_space; + END_LOCAL; + IF 'UNIFORM_PRODUCT_SPACE' IN types1 THEN + up1 := ts1; + use_up1 := TRUE; + use_lp1 := FALSE; + ELSE + IF 'LISTED_PRODUCT_SPACE' IN types1 THEN + lp1 := ts1; + use_up1 := FALSE; + use_lp1 := TRUE; + ELSE + IF NOT ( 'EXTENDED_TUPLE_SPACE' IN types1 ) THEN + RETURN( ? ); + END_IF; + et1 := ts1; + use_up1 := FALSE; + use_lp1 := FALSE; + END_IF; + END_IF; + IF 'UNIFORM_PRODUCT_SPACE' IN types2 THEN + up2 := ts2; + use_up2 := TRUE; + use_lp2 := FALSE; + ELSE + IF 'LISTED_PRODUCT_SPACE' IN types2 THEN + lp2 := ts2; + use_up2 := FALSE; + use_lp2 := TRUE; + ELSE + IF NOT ( 'EXTENDED_TUPLE_SPACE' IN types2 ) THEN + RETURN( ? ); + END_IF; + et2 := ts2; + use_up2 := FALSE; + use_lp2 := FALSE; + END_IF; + END_IF; + IF use_up1 THEN + IF use_up2 THEN + IF up1.base = up2.base THEN + tspace := make_uniform_product_space( up1.base, up1.exponent + up2.exponent ); + ELSE + factors := [up1.base : 0, up2.base : 0]; + tspace := make_listed_product_space( factors ); + END_IF; + ELSE + IF use_lp2 THEN + factors := [up1.base : 0]; + factors := factors + lp2.factors; + tspace := make_listed_product_space( factors ); + ELSE + tspace := assoc_product_space( up1, et2.base ); + tspace := make_extended_tuple_space( tspace, et2.extender ); + END_IF; + END_IF; + ELSE + IF use_lp1 THEN + IF use_up2 THEN + factors := [up2.base : 0]; + factors := lp1.factors + factors; + tspace := make_listed_product_space( factors ); + ELSE + IF use_lp2 THEN + tspace := make_listed_product_space( lp1.factors + lp2.factors ); + ELSE + tspace := assoc_product_space( lp1, et2.base ); + tspace := make_extended_tuple_space( tspace, et2.extender ); + END_IF; + END_IF; + ELSE + IF use_up2 THEN + IF et1.extender = up2.base THEN + tspace := assoc_product_space( et1.base, up2 ); + tspace := make_extended_tuple_space( tspace, et1.extender ); + ELSE + RETURN( ? ); + END_IF; + ELSE + IF use_lp2 THEN + factors := lp2.factors; + REPEAT i := 1 TO SIZEOF( factors ) BY 1; + IF et1.extender <> factors[i] THEN + RETURN( ? ); + END_IF; + END_REPEAT; + tspace := assoc_product_space( et1.base, lp2 ); + tspace := make_extended_tuple_space( tspace, et1.extender ); + ELSE + IF et1.extender = et2.extender THEN + tspace := assoc_product_space( et1, et2.base ); + ELSE + RETURN( ? ); + END_IF; + END_IF; + END_IF; + END_IF; + END_IF; + RETURN( tspace ); + + END_FUNCTION; + + FUNCTION associated_surface( + arg : pcurve_or_surface + ) : surface; + + LOCAL + surf : surface; + END_LOCAL; + IF 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PCURVE' IN TYPEOF( arg ) THEN + surf := arg\pcurve.basis_surface; + ELSE + surf := arg; + END_IF; + RETURN( surf ); + + END_FUNCTION; + + FUNCTION atan2( + y, x : REAL + ) : REAL; + + LOCAL + r : REAL; + END_LOCAL; + IF ( y = 0 ) AND ( x = 0 ) THEN + RETURN( ? ); + END_IF; + r := ATAN( y, x ); + IF x < 0 THEN + IF y < 0 THEN + r := r - PI; + ELSE + r := r + PI; + END_IF; + END_IF; + RETURN( r ); + + END_FUNCTION; + + FUNCTION bag_to_set( + the_bag : BAG OF GENERIC:intype + ) : SET 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 ) BY 1; + the_set := the_set + the_bag[i]; + END_REPEAT; + END_IF; + RETURN( the_set ); + + END_FUNCTION; + + FUNCTION base_axis( + dim : INTEGER; + axis1, axis2, axis3 : direction + ) : LIST [2 : 3] OF direction; + + LOCAL + u : LIST [2 : 3] OF direction; + factor : REAL; + d1 : direction; + d2 : direction; + END_LOCAL; + IF dim = 3 THEN + d1 := NVL( normalise( axis3 ), dummy_gri || direction( [0, 0, 1] ) ); + 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 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] ), dummy_gri || direction( [0, 1] )]; + END_IF; + END_IF; + END_IF; + RETURN( u ); + + END_FUNCTION; + + FUNCTION bool( + lgcl : LOGICAL + ) : BOOLEAN; + IF NOT EXISTS( lgcl ) THEN + RETURN( FALSE ); + END_IF; + IF lgcl <> TRUE THEN + RETURN( FALSE ); + END_IF; + RETURN( TRUE ); + + END_FUNCTION; + + FUNCTION boolean_choose( + b : BOOLEAN; + choice1, 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] ) ); + END_LOCAL; + RETURN( [d, orthogonal_complement( d )] ); + + END_FUNCTION; + + FUNCTION build_axes( + axis, ref_direction : direction + ) : LIST [3 : 3] OF direction; + + LOCAL + d1 : direction; + d2 : direction; + END_LOCAL; + d1 := NVL( normalise( axis ), dummy_gri || direction( [0, 0, 1] ) ); + 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 OF STRING; + + LOCAL + category_assignments : BAG OF product_category; + categories : SET OF STRING := []; + END_LOCAL; + category_assignments := USEDIN( obj, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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( [ + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'CHANGE_REQUEST', + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'START_REQUEST'] * TYPEOF( x ) ) = 1 ) ) ) + THEN + RETURN( FALSE ); + END_IF; + 'initiator' : IF SIZEOF( e.items ) <> SIZEOF( QUERY ( x <* e.items | ( SIZEOF( [ + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'CHANGE_REQUEST', + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'START_REQUEST', + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'START_WORK', + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'CHANGE'] * TYPEOF( x ) ) = 1 ) ) ) THEN + RETURN( FALSE ); + END_IF; + 'creator' : IF SIZEOF( e.items ) <> SIZEOF( QUERY ( x <* e.items | ( SIZEOF( [ + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'PRODUCT_DEFINITION_FORMATION', + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'PRODUCT_DEFINITION'] * TYPEOF( x ) ) = 1 ) ) ) + THEN + RETURN( FALSE ); + END_IF; + 'part_supplier' : IF SIZEOF( e.items ) <> SIZEOF( QUERY ( x <* e.items | ( ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'PRODUCT_DEFINITION_FORMATION' ) IN TYPEOF( + x ) ) ) ) THEN + RETURN( FALSE ); + END_IF; + 'design_supplier' : IF SIZEOF( e.items ) <> SIZEOF( QUERY ( x <* e.items | ( ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'PRODUCT_DEFINITION_FORMATION' ) IN TYPEOF( + x ) ) ) ) THEN + RETURN( FALSE ); + END_IF; + 'design_owner' : IF SIZEOF( e.items ) <> SIZEOF( QUERY ( x <* e.items | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PRODUCT' IN TYPEOF( x ) ) ) ) THEN + RETURN( FALSE ); + END_IF; + 'configuration_manager' : IF SIZEOF( e.items ) <> SIZEOF( QUERY ( x <* e.items | ( ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'CONFIGURATION_ITEM' ) IN TYPEOF( x ) ) ) ) + THEN + RETURN( FALSE ); + END_IF; + 'contractor' : IF SIZEOF( e.items ) <> SIZEOF( QUERY ( x <* e.items | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CONTRACT' IN TYPEOF( x ) ) ) ) THEN + RETURN( FALSE ); + END_IF; + 'classification_officer' : IF SIZEOF( e.items ) <> SIZEOF( QUERY ( x <* e.items | ( ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 OF UNIQUE edge_curve + ) : BOOLEAN; + + LOCAL + i : INTEGER; + next_vertex : vertex; + END_LOCAL; + IF SIZEOF( edges ) = 1 THEN + RETURN( TRUE ); + END_IF; + 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 ); + END_IF; + END_IF; + IF SIZEOF( edges ) = 2 THEN + RETURN( TRUE ); + END_IF; + REPEAT i := 3 TO HIINDEX( edges ) BY 1; + 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 ); + END_IF; + END_IF; + END_REPEAT; + RETURN( TRUE ); + + END_FUNCTION; + + FUNCTION check_curve_planarity( + checked_curve : curve + ) : BOOLEAN; + + LOCAL + crv : curve := checked_curve; + i : INTEGER; + j : INTEGER; + result : BOOLEAN := FALSE; + END_LOCAL; + IF SIZEOF( [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CONIC', + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LINE' ] * TYPEOF( crv ) ) > 0 THEN + result := TRUE; + ELSE + IF ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.TRIMMED_CURVE' IN TYPEOF( crv ) ) AND + check_curve_planarity( crv\trimmed_curve.basis_curve ) THEN + result := TRUE; + ELSE + IF ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PCURVE' IN TYPEOF( crv ) ) AND ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PLANE' IN TYPEOF( crv\pcurve.basis_surface ) ) + THEN + result := TRUE; + ELSE + IF 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SURFACE_CURVE' IN TYPEOF( crv ) THEN + + BEGIN + REPEAT j := 1 TO HIINDEX( crv\surface_curve.basis_surface ) BY 1; + IF 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PLANE' IN TYPEOF( crv\surface_curve. + basis_surface[j] ) THEN + result := TRUE; + END_IF; + END_REPEAT; + END; + END_IF; + END_IF; + END_IF; + END_IF; + RETURN( result ); + + END_FUNCTION; + + FUNCTION check_sparse_index_domain( + idxdom : tuple_space; + base : zero_or_one; + shape : LIST [1 : ?] OF positive_integer; + order : ordering_type + ) : BOOLEAN; + + LOCAL + mthspc : maths_space; + interval : finite_integer_interval; + i : INTEGER; + END_LOCAL; + mthspc := factor1( idxdom ); + interval := mthspc; + IF order = by_rows THEN + i := 1; + ELSE + i := 2; + END_IF; + RETURN( bool( ( interval.min <= base ) AND ( interval.max >= ( base + shape[i] ) ) ) ); + + END_FUNCTION; + + FUNCTION check_sparse_index_to_loc( + index_range, loc_domain : tuple_space + ) : BOOLEAN; + + LOCAL + temp : maths_space; + idx_rng_itvl : finite_integer_interval; + loc_dmn_itvl : finite_integer_interval; + END_LOCAL; + temp := factor1( index_range ); + IF ( schema_prefix + 'TUPLE_SPACE' ) IN TYPEOF( temp ) THEN + temp := factor1( temp ); + END_IF; + IF NOT ( ( schema_prefix + 'FINITE_INTEGER_INTERVAL' ) IN TYPEOF( temp ) ) THEN + RETURN( FALSE ); + END_IF; + idx_rng_itvl := temp; + temp := factor1( loc_domain ); + IF ( schema_prefix + 'TUPLE_SPACE' ) IN TYPEOF( temp ) THEN + temp := factor1( temp ); + END_IF; + IF NOT ( ( schema_prefix + 'FINITE_INTEGER_INTERVAL' ) IN TYPEOF( temp ) ) THEN + RETURN( FALSE ); + END_IF; + loc_dmn_itvl := temp; + RETURN( bool( ( loc_dmn_itvl.min <= idx_rng_itvl.min ) AND ( idx_rng_itvl.max <= ( loc_dmn_itvl.max + 1 ) ) ) ); + + END_FUNCTION; + + FUNCTION check_sparse_loc_range( + locrng : tuple_space; + base : zero_or_one; + shape : LIST [1 : ?] OF positive_integer; + order : ordering_type + ) : BOOLEAN; + + LOCAL + mthspc : maths_space; + interval : finite_integer_interval; + i : INTEGER; + END_LOCAL; + IF space_dimension( locrng ) <> 1 THEN + RETURN( FALSE ); + END_IF; + mthspc := factor1( locrng ); + IF NOT ( ( schema_prefix + 'FINITE_INTEGER_INTERVAL' ) IN TYPEOF( mthspc ) ) THEN + RETURN( FALSE ); + END_IF; + interval := mthspc; + IF order = by_rows THEN + i := 2; + ELSE + i := 1; + END_IF; + RETURN( bool( ( interval.min >= base ) AND ( interval.max <= ( ( base + shape[i] ) - 1 ) ) ) ); + + END_FUNCTION; + + FUNCTION check_text_alignment( + ct : composite_text + ) : BOOLEAN; + + LOCAL + a : SET OF text_alignment := []; + END_LOCAL; + REPEAT i := 1 TO HIINDEX( ct.collected_text ) BY 1; + a := a + [ct.collected_text[i]\text_literal.alignment]; + END_REPEAT; + RETURN( SIZEOF( a ) = 1 ); + + END_FUNCTION; + + FUNCTION check_text_font( + ct : composite_text + ) : BOOLEAN; + + LOCAL + f : SET OF font_select := []; + END_LOCAL; + REPEAT i := 1 TO HIINDEX( ct.collected_text ) BY 1; + f := f + [ct.collected_text[i]\text_literal.font]; + END_REPEAT; + 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 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 ) + BY 1; + item := aia\applied_classification_assignment.items[i]; + IF SIZEOF( [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CHARACTERIZED_CLASS'] * TYPEOF( item ) ) + = 0 THEN + RETURN( FALSE ); + END_IF; + END_REPEAT; + END_IF; + IF 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 ) + BY 1; + item := aia\applied_classification_assignment.items[i]; + IF SIZEOF( [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CLASSIFIED_ITEM'] * TYPEOF( item ) ) = 0 + THEN + 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( [ + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PRODUCT' , + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PRODUCT_DEFINITION_FORMATION' , + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 collect_joints( + items : SET [1 : ?] OF pair_representation_relationship + ) : SET OF kinematic_joint; + + LOCAL + result : SET OF kinematic_joint := []; + END_LOCAL; + REPEAT i := 1 TO HIINDEX( items ) BY 1; + result := result + items[i].transformation_operator.joint; + END_REPEAT; + RETURN( result ); + + END_FUNCTION; + + FUNCTION compare_basis_and_coef( + basis : LIST [1 : ?] OF b_spline_basis; + coef : maths_function + ) : BOOLEAN; + + LOCAL + shape : LIST OF positive_integer; + END_LOCAL; + IF ( NOT EXISTS( basis ) ) OR ( NOT EXISTS( coef ) ) THEN + RETURN( FALSE ); + END_IF; + shape := shape_of_array( coef ); + IF NOT EXISTS( shape ) THEN + RETURN( FALSE ); + END_IF; + IF SIZEOF( shape ) < SIZEOF( basis ) THEN + RETURN( FALSE ); + END_IF; + REPEAT i := 1 TO SIZEOF( basis ) BY 1; + IF ( basis[i].num_basis = shape[i] ) <> TRUE THEN + RETURN( FALSE ); + END_IF; + END_REPEAT; + RETURN( TRUE ); + + END_FUNCTION; + + FUNCTION compatible_complex_number_regions( + sp1, sp2 : maths_space + ) : BOOLEAN; + + LOCAL + typenames : SET OF STRING := stripped_typeof( sp1 ); + crgn1 : cartesian_complex_number_region; + crgn2 : cartesian_complex_number_region; + prgn1 : polar_complex_number_region; + prgn2 : polar_complex_number_region; + prgn1c2 : polar_complex_number_region; + prgn2c1 : polar_complex_number_region; + sp1_is_crgn : BOOLEAN; + sp2_is_crgn : BOOLEAN; + END_LOCAL; + IF 'CARTESIAN_COMPLEX_NUMBER_REGION' IN typenames THEN + sp1_is_crgn := TRUE; + crgn1 := sp1; + ELSE + IF 'POLAR_COMPLEX_NUMBER_REGION' IN typenames THEN + sp1_is_crgn := FALSE; + prgn1 := sp1; + ELSE + RETURN( TRUE ); + END_IF; + END_IF; + typenames := stripped_typeof( sp2 ); + IF 'CARTESIAN_COMPLEX_NUMBER_REGION' IN typenames THEN + sp2_is_crgn := TRUE; + crgn2 := sp2; + ELSE + IF 'POLAR_COMPLEX_NUMBER_REGION' IN typenames THEN + sp2_is_crgn := FALSE; + prgn2 := sp2; + ELSE + RETURN( TRUE ); + END_IF; + END_IF; + IF sp1_is_crgn AND sp2_is_crgn THEN + RETURN( compatible_intervals( crgn1.real_constraint, crgn2.real_constraint ) AND compatible_intervals( crgn1. + imag_constraint, crgn2.imag_constraint ) ); + END_IF; + IF ( NOT sp1_is_crgn ) AND ( NOT sp2_is_crgn ) AND ( prgn1.centre.real_part = prgn2.centre.real_part ) AND ( prgn1.centre. + imag_part = prgn2.centre.imag_part ) THEN + IF NOT compatible_intervals( prgn1.distance_constraint, prgn2.distance_constraint ) THEN + RETURN( FALSE ); + END_IF; + IF compatible_intervals( prgn1.direction_constraint, prgn2.direction_constraint ) THEN + RETURN( TRUE ); + END_IF; + IF ( prgn1.direction_constraint.max > PI ) AND ( prgn2.direction_constraint.max < PI ) THEN + RETURN( compatible_intervals( prgn2.direction_constraint, make_finite_real_interval( -PI, open, prgn1. + direction_constraint.max - ( 2 * PI ), prgn1.direction_constraint.max_closure ) ) ); + END_IF; + IF ( prgn2.direction_constraint.max > PI ) AND ( prgn1.direction_constraint.max < PI ) THEN + RETURN( compatible_intervals( prgn1.direction_constraint, make_finite_real_interval( -PI, open, prgn2. + direction_constraint.max - ( 2 * PI ), prgn2.direction_constraint.max_closure ) ) ); + END_IF; + RETURN( FALSE ); + END_IF; + IF sp1_is_crgn AND ( NOT sp2_is_crgn ) THEN + crgn2 := enclose_pregion_in_cregion( prgn2 ); + prgn1 := enclose_cregion_in_pregion( crgn1, prgn2.centre ); + RETURN( compatible_complex_number_regions( crgn1, crgn2 ) AND compatible_complex_number_regions( prgn1, prgn2 ) ); + END_IF; + IF ( NOT sp1_is_crgn ) AND sp2_is_crgn THEN + crgn1 := enclose_pregion_in_cregion( prgn1 ); + prgn2 := enclose_cregion_in_pregion( crgn2, prgn1.centre ); + RETURN( compatible_complex_number_regions( crgn1, crgn2 ) AND compatible_complex_number_regions( prgn1, prgn2 ) ); + END_IF; + prgn1c2 := enclose_pregion_in_pregion( prgn1, prgn2.centre ); + prgn2c1 := enclose_pregion_in_pregion( prgn2, prgn1.centre ); + RETURN( compatible_complex_number_regions( prgn1, prgn2c1 ) AND compatible_complex_number_regions( prgn1c2, prgn2 ) ); + + END_FUNCTION; + + FUNCTION compatible_es_values( + esval1, esval2 : elementary_space_enumerators + ) : BOOLEAN; + + LOCAL + esval1_is_numeric : LOGICAL; + esval2_is_numeric : LOGICAL; + END_LOCAL; + IF ( esval1 = esval2 ) OR ( esval1 = es_generics ) OR ( esval2 = es_generics ) THEN + RETURN( TRUE ); + END_IF; + esval1_is_numeric := ( esval1 >= es_numbers ) AND ( esval1 <= es_integers ); + esval2_is_numeric := ( esval2 >= es_numbers ) AND ( esval2 <= es_integers ); + IF ( esval1_is_numeric AND ( esval2 = es_numbers ) ) OR ( esval2_is_numeric AND ( esval1 = es_numbers ) ) THEN + RETURN( TRUE ); + END_IF; + IF esval1_is_numeric XOR esval2_is_numeric THEN + RETURN( FALSE ); + END_IF; + IF ( ( esval1 = es_logicals ) AND ( esval2 = es_booleans ) ) OR ( ( esval1 = es_booleans ) AND ( esval2 = es_logicals ) ) + THEN + RETURN( TRUE ); + END_IF; + RETURN( FALSE ); + + END_FUNCTION; + + FUNCTION compatible_intervals( + sp1, sp2 : maths_space + ) : BOOLEAN; + + LOCAL + amin : REAL; + amax : REAL; + END_LOCAL; + IF min_exists( sp1 ) AND max_exists( sp2 ) THEN + amin := real_min( sp1 ); + amax := real_max( sp2 ); + IF amin > amax THEN + RETURN( FALSE ); + END_IF; + IF amin = amax THEN + RETURN( min_included( sp1 ) AND max_included( sp2 ) ); + END_IF; + END_IF; + IF min_exists( sp2 ) AND max_exists( sp1 ) THEN + amin := real_min( sp2 ); + amax := real_max( sp1 ); + IF amin > amax THEN + RETURN( FALSE ); + END_IF; + IF amin = amax THEN + RETURN( min_included( sp2 ) AND max_included( sp1 ) ); + END_IF; + END_IF; + RETURN( TRUE ); + + END_FUNCTION; + + FUNCTION compatible_spaces( + sp1, sp2 : maths_space + ) : BOOLEAN; + + LOCAL + types1 : SET OF STRING := stripped_typeof( sp1 ); + types2 : SET OF STRING := stripped_typeof( sp2 ); + lgcl : LOGICAL := UNKNOWN; + m : INTEGER; + n : INTEGER; + s1 : maths_space; + s2 : maths_space; + END_LOCAL; + IF 'FINITE_SPACE' IN types1 THEN + REPEAT i := 1 TO SIZEOF( sp1\finite_space.members ) BY 1; + lgcl := member_of( sp1\finite_space.members[i], sp2 ); + IF lgcl <> FALSE THEN + RETURN( TRUE ); + END_IF; + END_REPEAT; + RETURN( FALSE ); + END_IF; + IF 'FINITE_SPACE' IN types2 THEN + REPEAT i := 1 TO SIZEOF( sp2\finite_space.members ) BY 1; + lgcl := member_of( sp2\finite_space.members[i], sp1 ); + IF lgcl <> FALSE THEN + RETURN( TRUE ); + END_IF; + END_REPEAT; + RETURN( FALSE ); + END_IF; + IF 'ELEMENTARY_SPACE' IN types1 THEN + IF sp1\elementary_space.space_id = es_generics THEN + RETURN( TRUE ); + END_IF; + IF 'ELEMENTARY_SPACE' IN types2 THEN + RETURN( compatible_es_values( sp1\elementary_space.space_id, sp2\elementary_space.space_id ) ); + END_IF; + IF ( 'FINITE_INTEGER_INTERVAL' IN types2 ) OR ( 'INTEGER_INTERVAL_FROM_MIN' IN types2 ) OR ( 'INTEGER_INTERVAL_TO_MAX' IN + types2 ) THEN + RETURN( compatible_es_values( sp1\elementary_space.space_id, es_integers ) ); + END_IF; + IF ( 'FINITE_REAL_INTERVAL' IN types2 ) OR ( 'REAL_INTERVAL_FROM_MIN' IN types2 ) OR ( 'REAL_INTERVAL_TO_MAX' IN types2 ) + THEN + RETURN( compatible_es_values( sp1\elementary_space.space_id, es_reals ) ); + END_IF; + IF ( 'CARTESIAN_COMPLEX_NUMBER_REGION' IN types2 ) OR ( 'POLAR_COMPLEX_NUMBER_REGION' IN types2 ) THEN + RETURN( compatible_es_values( sp1\elementary_space.space_id, es_complex_numbers ) ); + END_IF; + IF 'TUPLE_SPACE' IN types2 THEN + RETURN( FALSE ); + END_IF; + IF 'FUNCTION_SPACE' IN types2 THEN + RETURN( bool( sp1\elementary_space.space_id = es_maths_functions ) ); + END_IF; + RETURN( TRUE ); + END_IF; + IF 'ELEMENTARY_SPACE' IN types2 THEN + IF sp2\elementary_space.space_id = es_generics THEN + RETURN( TRUE ); + END_IF; + IF ( 'FINITE_INTEGER_INTERVAL' IN types1 ) OR ( 'INTEGER_INTERVAL_FROM_MIN' IN types1 ) OR ( 'INTEGER_INTERVAL_TO_MAX' IN + types1 ) THEN + RETURN( compatible_es_values( sp2\elementary_space.space_id, es_integers ) ); + END_IF; + IF ( 'FINITE_REAL_INTERVAL' IN types1 ) OR ( 'REAL_INTERVAL_FROM_MIN' IN types1 ) OR ( 'REAL_INTERVAL_TO_MAX' IN types1 ) + THEN + RETURN( compatible_es_values( sp2\elementary_space.space_id, es_reals ) ); + END_IF; + IF ( 'CARTESIAN_COMPLEX_NUMBER_REGION' IN types1 ) OR ( 'POLAR_COMPLEX_NUMBER_REGION' IN types1 ) THEN + RETURN( compatible_es_values( sp2\elementary_space.space_id, es_complex_numbers ) ); + END_IF; + IF 'TUPLE_SPACE' IN types1 THEN + RETURN( FALSE ); + END_IF; + IF 'FUNCTION_SPACE' IN types1 THEN + RETURN( bool( sp2\elementary_space.space_id = es_maths_functions ) ); + END_IF; + RETURN( TRUE ); + END_IF; + IF subspace_of_es( sp1, es_integers ) THEN + IF subspace_of_es( sp2, es_integers ) THEN + RETURN( compatible_intervals( sp1, sp2 ) ); + END_IF; + RETURN( FALSE ); + END_IF; + IF subspace_of_es( sp2, es_integers ) THEN + RETURN( FALSE ); + END_IF; + IF subspace_of_es( sp1, es_reals ) THEN + IF subspace_of_es( sp2, es_reals ) THEN + RETURN( compatible_intervals( sp1, sp2 ) ); + END_IF; + RETURN( FALSE ); + END_IF; + IF subspace_of_es( sp2, es_reals ) THEN + RETURN( FALSE ); + END_IF; + IF subspace_of_es( sp1, es_complex_numbers ) THEN + IF subspace_of_es( sp2, es_complex_numbers ) THEN + RETURN( compatible_complex_number_regions( sp1, sp2 ) ); + END_IF; + RETURN( FALSE ); + END_IF; + IF subspace_of_es( sp2, es_complex_numbers ) THEN + RETURN( FALSE ); + END_IF; + IF 'UNIFORM_PRODUCT_SPACE' IN types1 THEN + IF 'UNIFORM_PRODUCT_SPACE' IN types2 THEN + IF sp1\uniform_product_space.exponent <> sp2\uniform_product_space.exponent THEN + RETURN( FALSE ); + END_IF; + RETURN( compatible_spaces( sp1\uniform_product_space.base, sp2\uniform_product_space.base ) ); + END_IF; + IF 'LISTED_PRODUCT_SPACE' IN types2 THEN + n := SIZEOF( sp2\listed_product_space.factors ); + IF sp1\uniform_product_space.exponent <> n THEN + RETURN( FALSE ); + END_IF; + REPEAT i := 1 TO n BY 1; + IF NOT compatible_spaces( sp1\uniform_product_space.base, sp2\listed_product_space.factors[i] ) THEN + RETURN( FALSE ); + END_IF; + END_REPEAT; + RETURN( TRUE ); + END_IF; + IF 'EXTENDED_TUPLE_SPACE' IN types2 THEN + m := sp1\uniform_product_space.exponent; + n := space_dimension( sp2\extended_tuple_space.base ); + IF m < n THEN + RETURN( FALSE ); + END_IF; + IF m = n THEN + RETURN( compatible_spaces( sp1, sp2\extended_tuple_space.base ) ); + END_IF; + RETURN( compatible_spaces( sp1, assoc_product_space( sp2\extended_tuple_space.base, make_uniform_product_space( sp2\ + extended_tuple_space.extender, m - n ) ) ) ); + END_IF; + IF 'FUNCTION_SPACE' IN types2 THEN + RETURN( FALSE ); + END_IF; + RETURN( TRUE ); + END_IF; + IF 'LISTED_PRODUCT_SPACE' IN types1 THEN + n := SIZEOF( sp1\listed_product_space.factors ); + IF 'UNIFORM_PRODUCT_SPACE' IN types2 THEN + IF n <> sp2\uniform_product_space.exponent THEN + RETURN( FALSE ); + END_IF; + REPEAT i := 1 TO n BY 1; + IF NOT compatible_spaces( sp2\uniform_product_space.base, sp1\listed_product_space.factors[i] ) THEN + RETURN( FALSE ); + END_IF; + END_REPEAT; + RETURN( TRUE ); + END_IF; + IF 'LISTED_PRODUCT_SPACE' IN types2 THEN + IF n <> SIZEOF( sp2\listed_product_space.factors ) THEN + RETURN( FALSE ); + END_IF; + REPEAT i := 1 TO n BY 1; + IF NOT compatible_spaces( sp1\listed_product_space.factors[i], sp2\listed_product_space.factors[i] ) THEN + RETURN( FALSE ); + END_IF; + END_REPEAT; + RETURN( TRUE ); + END_IF; + IF 'EXTENDED_TUPLE_SPACE' IN types2 THEN + m := space_dimension( sp2\extended_tuple_space.base ); + IF n < m THEN + RETURN( FALSE ); + END_IF; + IF n = m THEN + RETURN( compatible_spaces( sp1, sp2\extended_tuple_space.base ) ); + END_IF; + RETURN( compatible_spaces( sp1, assoc_product_space( sp2\extended_tuple_space.base, make_uniform_product_space( sp2\ + extended_tuple_space.extender, n - m ) ) ) ); + END_IF; + IF ( schema_prefix + 'FUNCTION_SPACE' ) IN types2 THEN + RETURN( FALSE ); + END_IF; + RETURN( TRUE ); + END_IF; + IF 'EXTENDED_TUPLE_SPACE' IN types1 THEN + IF ( 'UNIFORM_PRODUCT_SPACE' IN types2 ) OR ( 'LISTED_PRODUCT_SPACE' IN types2 ) THEN + RETURN( compatible_spaces( sp2, sp1 ) ); + END_IF; + IF 'EXTENDED_TUPLE_SPACE' IN types2 THEN + IF NOT compatible_spaces( sp1\extended_tuple_space.extender, sp2\extended_tuple_space.extender ) THEN + RETURN( FALSE ); + END_IF; + n := space_dimension( sp1\extended_tuple_space.base ); + m := space_dimension( sp2\extended_tuple_space.base ); + IF n < m THEN + RETURN( compatible_spaces( assoc_product_space( sp1\extended_tuple_space.base, make_uniform_product_space( sp1\ + extended_tuple_space.extender, m - n ) ), sp2\extended_tuple_space.base ) ); + END_IF; + IF n = m THEN + RETURN( compatible_spaces( sp1\extended_tuple_space.base, sp2\extended_tuple_space.base ) ); + END_IF; + IF n > m THEN + RETURN( compatible_spaces( sp1\extended_tuple_space.base, assoc_product_space( sp2\extended_tuple_space.base, + make_uniform_product_space( sp2\extended_tuple_space.extender, n - m ) ) ) ); + END_IF; + END_IF; + IF 'FUNCTION_SPACE' IN types2 THEN + RETURN( FALSE ); + END_IF; + RETURN( TRUE ); + END_IF; + IF 'FUNCTION_SPACE' IN types1 THEN + IF 'FUNCTION_SPACE' IN types2 THEN + s1 := sp1\function_space.domain_argument; + s2 := sp2\function_space.domain_argument; + CASE sp1\function_space.domain_constraint OF + sc_equal : + BEGIN + CASE sp2\function_space.domain_constraint OF + sc_equal : lgcl := subspace_of( s1, s2 ) AND subspace_of( s2, s1 ); + sc_subspace : lgcl := subspace_of( s1, s2 ); + sc_member : lgcl := member_of( s1, s2 ); + END_CASE; + END; + sc_subspace : + BEGIN + CASE sp2\function_space.domain_constraint OF + sc_equal : lgcl := subspace_of( s2, s1 ); + sc_subspace : lgcl := compatible_spaces( s1, s2 ); + sc_member : lgcl := UNKNOWN; + END_CASE; + END; + sc_member : + BEGIN + CASE sp2\function_space.domain_constraint OF + sc_equal : lgcl := member_of( s2, s1 ); + sc_subspace : lgcl := UNKNOWN; + sc_member : lgcl := compatible_spaces( s1, s2 ); + END_CASE; + END; + END_CASE; + IF lgcl = FALSE THEN + RETURN( FALSE ); + END_IF; + s1 := sp1\function_space.range_argument; + s2 := sp2\function_space.range_argument; + CASE sp1\function_space.range_constraint OF + sc_equal : + BEGIN + CASE sp2\function_space.range_constraint OF + sc_equal : lgcl := subspace_of( s1, s2 ) AND subspace_of( s2, s1 ); + sc_subspace : lgcl := subspace_of( s1, s2 ); + sc_member : lgcl := member_of( s1, s2 ); + END_CASE; + END; + sc_subspace : + BEGIN + CASE sp2\function_space.range_constraint OF + sc_equal : lgcl := subspace_of( s2, s1 ); + sc_subspace : lgcl := compatible_spaces( s1, s2 ); + sc_member : lgcl := UNKNOWN; + END_CASE; + END; + sc_member : + BEGIN + CASE sp2\function_space.range_constraint OF + sc_equal : lgcl := member_of( s2, s1 ); + sc_subspace : lgcl := UNKNOWN; + sc_member : lgcl := compatible_spaces( s1, s2 ); + END_CASE; + END; + END_CASE; + IF lgcl = FALSE THEN + RETURN( FALSE ); + END_IF; + RETURN( TRUE ); + END_IF; + RETURN( TRUE ); + END_IF; + RETURN( TRUE ); + + END_FUNCTION; + + FUNCTION composable_sequence( + operands : LIST [2 : ?] OF maths_function + ) : BOOLEAN; + REPEAT i := 1 TO SIZEOF( operands ) - 1 BY 1; + IF NOT compatible_spaces( operands[i].range, operands[i + 1].domain ) THEN + RETURN( FALSE ); + END_IF; + END_REPEAT; + RETURN( TRUE ); + + 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 BY 1; + 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 BY 1; + IF ( NOT ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PCURVE' IN TYPEOF( c\composite_curve. + segments[k].parent_curve ) ) ) AND ( NOT ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'SURFACE_CURVE' IN TYPEOF( c\composite_curve.segments[k].parent_curve ) ) ) AND ( NOT ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 ) BY 1; + IF ( NOT ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.OPEN_SHELL' IN TYPEOF( m.sbsm_boundary[j] ) ) ) + AND ( NOT ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CLOSED_SHELL' IN TYPEOF( m.sbsm_boundary + [j] ) ) ) THEN + result := FALSE; + RETURN( result ); + 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 ) BY 1; + IF ( NOT ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.WIRE_SHELL' IN TYPEOF( m.sbwm_boundary[j] ) ) ) + AND ( NOT ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.VERTEX_SHELL' IN TYPEOF( m.sbwm_boundary + [j] ) ) ) THEN + result := FALSE; + RETURN( result ); + 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 : INTEGER; + sum : INTEGER; + END_LOCAL; + sum := knot_mult[1]; + REPEAT i := 2 TO up_knots BY 1; + sum := sum + knot_mult[i]; + END_REPEAT; + 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 BY 1; + 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 BY 1; + REPEAT j := 1 TO s.n_v BY 1; + IF NOT ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.B_SPLINE_SURFACE' IN TYPEOF( s.segments[i] + [j].parent_surface ) ) OR ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'RECTANGULAR_TRIMMED_SURFACE' IN TYPEOF( s.segments[i][j].parent_surface ) ) ) THEN + RETURN( FALSE ); + END_IF; + END_REPEAT; + END_REPEAT; + REPEAT i := 1 TO s.n_u - 1 BY 1; + REPEAT j := 1 TO s.n_v BY 1; + IF s.segments[i][j].u_transition = discontinuous THEN + RETURN( FALSE ); + END_IF; + END_REPEAT; + END_REPEAT; + REPEAT i := 1 TO s.n_u BY 1; + REPEAT j := 1 TO s.n_v - 1 BY 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 ) BY 1; + ch := s[i]; + IF ( ch = '\x9' ) OR ( ch = '\xA' ) OR ( ch = '\xD' ) THEN + RETURN( FALSE ); + END_IF; + END_REPEAT; + RETURN( TRUE ); + + END_FUNCTION; + + FUNCTION convert_spatial_to_ypr_rotation( + pair : kinematic_pair; + rotation : spatial_rotation + ) : ypr_rotation; + + LOCAL + axis : direction; + angle : plane_angle_measure; + conv_angle : plane_angle_measure; + ya : plane_angle_measure; + pa : plane_angle_measure; + ra : plane_angle_measure; + ucf : REAL; + dx : REAL; + dy : REAL; + dz : REAL; + s_a : REAL; + c_a : REAL; + rotmat : ARRAY [1 : 3] OF ARRAY [1 : 3] OF REAL; + cm1 : REAL; + s_y : REAL; + c_y : REAL; + s_r : REAL; + c_r : REAL; + END_LOCAL; + IF 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.YPR_ROTATION' IN TYPEOF( rotation ) THEN + RETURN( rotation ); + END_IF; + axis := normalise( rotation\rotation_about_direction.direction_of_axis ); + angle := rotation\rotation_about_direction.rotation_angle; + IF angle = 0 THEN + RETURN( [0, 0, 0] ); + END_IF; + dx := axis.direction_ratios[1]; + dy := axis.direction_ratios[2]; + dz := axis.direction_ratios[3]; + conv_angle := plane_angle_for_pair_in_radian( pair, angle ); + IF NOT ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PLANE_ANGLE_MEASURE' IN TYPEOF( conv_angle ) ) + THEN + RETURN( ? ); + END_IF; + ucf := angle / conv_angle; + s_a := SIN( conv_angle ); + c_a := COS( conv_angle ); + IF ( dy = 0 ) AND ( ( dx * dz ) = 0 ) THEN + REPEAT WHILE conv_angle <= ( -PI ); + conv_angle := conv_angle + ( 2 * PI ); + END_REPEAT; + REPEAT WHILE conv_angle > PI; + conv_angle := conv_angle - ( 2 * PI ); + END_REPEAT; + ya := ucf * conv_angle; + IF conv_angle <> PI THEN + ra := -ya; + ELSE + ra := ya; + END_IF; + IF dx <> 0 THEN + IF dx > 0 THEN + RETURN( [0, 0, ya] ); + ELSE + RETURN( [0, 0, ra] ); + END_IF; + ELSE + IF dz > 0 THEN + RETURN( [ya, 0, 0] ); + ELSE + RETURN( [ra, 0, 0] ); + END_IF; + END_IF; + END_IF; + IF ( dy <> 0 ) AND ( dx = 0 ) AND ( dz = 0 ) THEN + IF c_a >= 0 THEN + ya := 0; + ra := 0; + ELSE + ya := ucf * PI; + ra := ya; + END_IF; + pa := ucf * ATAN( s_a, ABS( c_a ) ); + IF dy < 0 THEN + pa := -pa; + END_IF; + RETURN( [ya, pa, ra] ); + END_IF; + cm1 := 1 - c_a; + rotmat := [[( dx * dx * cm1 ) + c_a, ( dx * dy * cm1 ) - ( dz * s_a ), ( dx * dz * cm1 ) + ( dy * s_a )], [( dx * dy * cm1 ) + + ( dz * s_a ), ( dy * dy * cm1 ) + c_a, ( dy * dz * cm1 ) - ( dx * s_a )], [( dx * dz * cm1 ) - ( dy * s_a ), ( dy * dz * + cm1 ) + ( dx * s_a ), ( dz * dz * cm1 ) + c_a]]; + IF ABS( rotmat[1][3] ) = 1 THEN + + BEGIN + IF rotmat[1][3] = 1 THEN + pa := 0.5 * PI; + ELSE + pa := ( -0.5 ) * PI; + END_IF; + ra := 0; + ya := ATAN( rotmat[2][1], rotmat[2][2] ); + IF rotmat[2][2] < 0 THEN + IF ya <= 0 THEN + ya := ya + PI; + ELSE + ya := ya - PI; + END_IF; + END_IF; + END; + ELSE + + BEGIN + ya := ATAN( -rotmat[1][2], rotmat[1][1] ); + IF rotmat[1][1] < 0 THEN + IF ya <= 0 THEN + ya := ya + PI; + ELSE + ya := ya - PI; + END_IF; + END_IF; + ra := ATAN( -rotmat[2][3], rotmat[3][3] ); + IF rotmat[3][3] < 0 THEN + IF ra <= 0 THEN + ra := ra + PI; + ELSE + ra := ra - PI; + END_IF; + END_IF; + s_y := SIN( ya ); + c_y := COS( ya ); + s_r := SIN( ra ); + c_r := COS( ra ); + IF ( ABS( s_y ) > ABS( c_y ) ) AND ( ABS( s_y ) > ABS( s_r ) ) AND ( ABS( s_y ) > ABS( c_r ) ) THEN + cm1 := ( -rotmat[1][2] ) / s_y; + ELSE + IF ( ABS( c_y ) > ABS( s_r ) ) AND ( ABS( c_y ) > ABS( c_r ) ) THEN + cm1 := rotmat[1][1] / c_y; + ELSE + IF ABS( s_r ) > ABS( c_r ) THEN + cm1 := ( -rotmat[2][3] ) / s_r; + ELSE + cm1 := rotmat[3][3] / c_r; + END_IF; + END_IF; + END_IF; + pa := ATAN( rotmat[1][3], cm1 ); + END; + END_IF; + ya := ya * ucf; + pa := pa * ucf; + ra := ra * ucf; + RETURN( [ya, pa, ra] ); + + END_FUNCTION; + + FUNCTION convert_to_literal( + val : maths_atom + ) : generic_literal; + + LOCAL + types : SET OF STRING := TYPEOF( val ); + END_LOCAL; + IF 'INTEGER' IN types THEN + RETURN( make_int_literal( val ) ); + END_IF; + IF 'REAL' IN types THEN + RETURN( make_real_literal( val ) ); + END_IF; + IF 'BOOLEAN' IN types THEN + RETURN( make_boolean_literal( val ) ); + END_IF; + IF 'STRING' IN types THEN + RETURN( make_string_literal( val ) ); + END_IF; + IF 'LOGICAL' IN types THEN + RETURN( make_logical_literal( val ) ); + END_IF; + IF 'BINARY' IN types THEN + RETURN( make_binary_literal( val ) ); + END_IF; + IF ( schema_prefix + 'MATHS_ENUM_ATOM' ) IN types THEN + RETURN( make_maths_enum_literal( val ) ); + END_IF; + RETURN( ? ); + + END_FUNCTION; + + FUNCTION convert_to_maths_function( + func : maths_function_select + ) : maths_function; + + LOCAL + efenum : elementary_function_enumerators; + mthfun : maths_function; + END_LOCAL; + IF ( schema_prefix + 'MATHS_FUNCTION' ) IN TYPEOF( func ) THEN + mthfun := func; + ELSE + efenum := func; + mthfun := make_elementary_function( efenum ); + END_IF; + RETURN( mthfun ); + + END_FUNCTION; + + FUNCTION convert_to_maths_value( + val : GENERIC:g + ) : maths_value; + + LOCAL + types : SET OF STRING := TYPEOF( val ); + ival : maths_integer; + rval : maths_real; + nval : maths_number; + tfval : maths_boolean; + lval : maths_logical; + sval : maths_string; + bval : maths_binary; + tval : maths_tuple := the_empty_maths_tuple; + mval : maths_value; + END_LOCAL; + IF ( schema_prefix + 'MATHS_VALUE' ) IN types THEN + RETURN( val ); + END_IF; + IF 'INTEGER' IN types THEN + ival := val; + RETURN( ival ); + END_IF; + IF 'REAL' IN types THEN + rval := val; + RETURN( rval ); + END_IF; + IF 'NUMBER' IN types THEN + nval := val; + RETURN( nval ); + END_IF; + IF 'BOOLEAN' IN types THEN + tfval := val; + RETURN( tfval ); + END_IF; + IF 'LOGICAL' IN types THEN + lval := val; + RETURN( lval ); + END_IF; + IF 'STRING' IN types THEN + sval := val; + RETURN( sval ); + END_IF; + IF 'BINARY' IN types THEN + bval := val; + RETURN( bval ); + END_IF; + IF 'LIST' IN types THEN + REPEAT i := 1 TO SIZEOF( val ) BY 1; + mval := convert_to_maths_value( val[i] ); + IF NOT EXISTS( mval ) THEN + RETURN( ? ); + END_IF; + INSERT( tval, mval, i - 1 ); + END_REPEAT; + RETURN( tval ); + END_IF; + RETURN( ? ); + + END_FUNCTION; + + FUNCTION convert_to_operand( + val : maths_value + ) : generic_expression; + + LOCAL + types : SET OF STRING := stripped_typeof( val ); + END_LOCAL; + IF 'GENERIC_EXPRESSION' IN types THEN + RETURN( val ); + END_IF; + IF 'MATHS_ATOM' IN types THEN + RETURN( convert_to_literal( val ) ); + END_IF; + IF 'ATOM_BASED_VALUE' IN types THEN + RETURN( make_atom_based_literal( val ) ); + END_IF; + IF 'MATHS_TUPLE' IN types THEN + RETURN( make_maths_tuple_literal( val ) ); + END_IF; + RETURN( ? ); + + END_FUNCTION; + + FUNCTION convert_to_operands( + values : AGGREGATE OF maths_value + ) : LIST OF generic_expression; + + LOCAL + operands : LIST OF generic_expression := []; + loc : INTEGER := 0; + END_LOCAL; + IF NOT EXISTS( values ) THEN + RETURN( ? ); + END_IF; + REPEAT i := LOINDEX( values ) TO HIINDEX( values ) BY 1; + INSERT( operands, convert_to_operand( values[i] ), loc ); + loc := loc + 1; + END_REPEAT; + RETURN( operands ); + + END_FUNCTION; + + FUNCTION convert_to_operands_prcmfn( + srcdom : maths_space_or_function; + prepfun : LIST OF maths_function; + finfun : maths_function_select + ) : LIST [2 : ?] OF generic_expression; + + LOCAL + operands : LIST OF generic_expression := []; + END_LOCAL; + INSERT( operands, srcdom, 0 ); + REPEAT i := 1 TO SIZEOF( prepfun ) BY 1; + INSERT( operands, prepfun[i], i ); + END_REPEAT; + INSERT( operands, convert_to_maths_function( finfun ), SIZEOF( prepfun ) + 1 ); + RETURN( operands ); + + END_FUNCTION; + + FUNCTION cross_product( + arg1, arg2 : direction + ) : vector; + + LOCAL + mag : REAL; + res : direction; + v1 : LIST [3 : 3] OF REAL; + 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; + REPEAT i := 1 TO 3 BY 1; + mag := mag + ( res.direction_ratios[i] * res.direction_ratios[i] ); + END_REPEAT; + IF mag > 0 THEN + result := dummy_gri || vector( res, SQRT( mag ) ); + ELSE + result := dummy_gri || vector( arg1, 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 BY 1; + IF b.weights[i] <= 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 | ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'MEASURE_REPRESENTATION_ITEM' IN TYPEOF( i ) ) AND ( i\representation_item.name = 'significant number of digits' ) ) ) ) + = 1 ) OR ( ( SIZEOF( QUERY ( i <* agg | ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'MEASURE_REPRESENTATION_ITEM' IN TYPEOF( i ) ) AND ( i\representation_item.name = 'lower limit' ) ) ) ) = 1 ) AND ( + SIZEOF( QUERY ( i <* agg | ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 | ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'MEASURE_REPRESENTATION_ITEM' IN TYPEOF( i ) ) AND ( i\representation_item.name = 'plus minus tolerance value' ) ) ) ) + = 1 ) OR ( ( SIZEOF( QUERY ( i <* agg | ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'MEASURE_REPRESENTATION_ITEM' IN TYPEOF( i ) ) AND ( i\representation_item.name = 'lower tolerance value' ) ) ) ) = + 1 ) AND ( SIZEOF( QUERY ( i <* agg | ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF( i ) ) ) ) <= 1 ) AND ( SIZEOF( QUERY ( i <* agg | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF( i ) ) ) ) + = SIZEOF( QUERY ( i <* agg | ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 definite_integral_check( + domain : tuple_space; + vrblint : input_selector; + lowerinf : BOOLEAN; + upperinf : BOOLEAN + ) : BOOLEAN; + + LOCAL + domn : tuple_space := domain; + fspc : maths_space; + dim : nonnegative_integer; + k : positive_integer; + END_LOCAL; + IF ( space_dimension( domain ) = 1 ) AND ( ( schema_prefix + 'TUPLE_SPACE' ) IN TYPEOF( factor1( domain ) ) ) THEN + domn := factor1( domain ); + END_IF; + dim := space_dimension( domn ); + k := vrblint; + IF k > dim THEN + RETURN( FALSE ); + END_IF; + fspc := factor_space( domn, k ); + IF NOT ( ( schema_prefix + 'REAL_INTERVAL' ) IN TYPEOF( fspc ) ) THEN + RETURN( FALSE ); + END_IF; + IF lowerinf AND min_exists( fspc ) THEN + RETURN( FALSE ); + END_IF; + IF upperinf AND max_exists( fspc ) THEN + RETURN( FALSE ); + END_IF; + RETURN( TRUE ); + + END_FUNCTION; + + FUNCTION definite_integral_expr_check( + operands : LIST [2 : ?] OF generic_expression; + lowerinf : BOOLEAN; + upperinf : BOOLEAN + ) : BOOLEAN; + + LOCAL + nops : INTEGER := 2; + vspc : maths_space; + dim : nonnegative_integer; + k : positive_integer; + bspc : maths_space; + END_LOCAL; + IF NOT lowerinf THEN + nops := nops + 1; + END_IF; + IF NOT upperinf THEN + nops := nops + 1; + END_IF; + IF SIZEOF( operands ) <> nops THEN + RETURN( FALSE ); + END_IF; + IF NOT ( 'GENERIC_VARIABLE' IN stripped_typeof( operands[2] ) ) THEN + RETURN( FALSE ); + END_IF; + IF NOT has_values_space( operands[2] ) THEN + RETURN( FALSE ); + END_IF; + vspc := values_space_of( operands[2] ); + IF NOT ( 'REAL_INTERVAL' IN stripped_typeof( vspc ) ) THEN + RETURN( FALSE ); + END_IF; + IF lowerinf THEN + IF min_exists( vspc ) THEN + RETURN( FALSE ); + END_IF; + k := 3; + ELSE + IF NOT has_values_space( operands[3] ) THEN + RETURN( FALSE ); + END_IF; + bspc := values_space_of( operands[3] ); + IF NOT compatible_spaces( bspc, vspc ) THEN + RETURN( FALSE ); + END_IF; + k := 4; + END_IF; + IF upperinf THEN + IF max_exists( vspc ) THEN + RETURN( FALSE ); + END_IF; + ELSE + IF NOT has_values_space( operands[k] ) THEN + RETURN( FALSE ); + END_IF; + bspc := values_space_of( operands[k] ); + IF NOT compatible_spaces( bspc, vspc ) THEN + RETURN( FALSE ); + END_IF; + END_IF; + RETURN( TRUE ); + + END_FUNCTION; + + FUNCTION dependently_instantiated( + set_of_input_instances : SET OF GENERIC:igen; + set_of_input_types : SET OF STRING; + previous_in_chain : LIST 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 ); + set_of_input_types := set_of_input_types + 'GENERIC'; + REPEAT i := 1 TO number_of_input_instances BY 1; + 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 BY 1; + set_of_types := TYPEOF( bag_of_referring_instances[j] ); + IF set_of_types <= set_of_input_types THEN + 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; + ELSE + SKIP; + END_IF; + END_IF; + ELSE + dependently_instantiated_flag := TRUE; + ESCAPE; + END_IF; + END_REPEAT; + IF NOT dependently_instantiated_flag THEN + RETURN( FALSE ); + END_IF; + ELSE + RETURN( FALSE ); + END_IF; + END_REPEAT; + ELSE + RETURN( FALSE ); + END_IF; + RETURN( TRUE ); + + END_FUNCTION; + + FUNCTION derive_angle( + placement_1, 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 ) OR ( mag_v2 = 0 ) THEN + theta := 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_definite_integral_domain( + igrl : definite_integral_function + ) : tuple_space; + + FUNCTION process_product_space( + spc : product_space; + idx, prefix : INTEGER; + vdomn : maths_space + ) : product_space; + + LOCAL + uspc : uniform_product_space; + expnt : INTEGER; + factors : LIST OF maths_space; + END_LOCAL; + IF ( schema_prefix + 'UNIFORM_PRODUCT_SPACE' ) IN TYPEOF( spc ) THEN + uspc := spc; + expnt := uspc.exponent + prefix; + IF idx <= uspc.exponent THEN + expnt := expnt - 1; + END_IF; + IF expnt = 0 THEN + RETURN( make_listed_product_space( [] ) ); + ELSE + RETURN( make_uniform_product_space( uspc.base, expnt ) ); + END_IF; + ELSE + factors := spc\listed_product_space.factors; + IF idx <= SIZEOF( factors ) THEN + REMOVE( factors, idx ); + END_IF; + IF prefix > 0 THEN + INSERT( factors, vdomn, 0 ); + IF prefix > 1 THEN + INSERT( factors, vdomn, 0 ); + END_IF; + END_IF; + RETURN( make_listed_product_space( factors ) ); + END_IF; + + END_FUNCTION; + + LOCAL + idomn : tuple_space := igrl.integrand.domain; + types : SET OF STRING := TYPEOF( idomn ); + idx : INTEGER := igrl.variable_of_integration; + tupled : BOOLEAN := bool( ( space_dimension( idomn ) = 1 ) AND ( ( schema_prefix + 'TUPLE_SPACE' ) IN types ) ); + prefix : INTEGER := 0; + espc : extended_tuple_space; + vdomn : maths_space; + END_LOCAL; + IF tupled THEN + idomn := factor1( idomn ); + types := TYPEOF( idomn ); + END_IF; + IF igrl.lower_limit_neg_infinity THEN + prefix := prefix + 1; + END_IF; + IF igrl.upper_limit_pos_infinity THEN + prefix := prefix + 1; + END_IF; + vdomn := factor_space( idomn, idx ); + IF ( schema_prefix + 'EXTENDED_TUPLE_SPACE' ) IN types THEN + espc := idomn; + idomn := make_extended_tuple_space( process_product_space( espc.base, idx, prefix, vdomn ), espc.extender ); + ELSE + idomn := process_product_space( idomn, idx, prefix, vdomn ); + END_IF; + IF tupled THEN + RETURN( one_tuples_of( idomn ) ); + ELSE + RETURN( idomn ); + END_IF; + + END_FUNCTION; + + FUNCTION derive_dimensional_exponents( + x : unit + ) : dimensional_exponents; + + LOCAL + result : dimensional_exponents := dimensional_exponents( 0, 0, 0, 0, 0, 0, 0 ); + END_LOCAL; + IF 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.DERIVED_UNIT' IN TYPEOF( x ) THEN + REPEAT i := LOINDEX( x\derived_unit.elements ) TO HIINDEX( x\derived_unit.elements ) BY 1; + 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 derive_elementary_function_domain( + ef_val : elementary_function_enumerators + ) : tuple_space; + IF NOT EXISTS( ef_val ) THEN + RETURN( ? ); + END_IF; + CASE ef_val OF + ef_and : RETURN( make_extended_tuple_space( the_zero_tuple_space, the_logicals ) ); + ef_or : RETURN( make_extended_tuple_space( the_zero_tuple_space, the_logicals ) ); + ef_not : RETURN( make_uniform_product_space( the_logicals, 1 ) ); + ef_xor : RETURN( make_uniform_product_space( the_logicals, 2 ) ); + ef_negate_i : RETURN( make_uniform_product_space( the_integers, 1 ) ); + ef_add_i : RETURN( the_integer_tuples ); + ef_subtract_i : RETURN( make_uniform_product_space( the_integers, 2 ) ); + ef_multiply_i : RETURN( the_integer_tuples ); + ef_divide_i : RETURN( make_uniform_product_space( the_integers, 2 ) ); + ef_mod_i : RETURN( make_uniform_product_space( the_integers, 2 ) ); + ef_exponentiate_i : RETURN( make_uniform_product_space( the_integers, 2 ) ); + ef_eq_i : RETURN( make_uniform_product_space( the_integers, 2 ) ); + ef_ne_i : RETURN( make_uniform_product_space( the_integers, 2 ) ); + ef_gt_i : RETURN( make_uniform_product_space( the_integers, 2 ) ); + ef_lt_i : RETURN( make_uniform_product_space( the_integers, 2 ) ); + ef_ge_i : RETURN( make_uniform_product_space( the_integers, 2 ) ); + ef_le_i : RETURN( make_uniform_product_space( the_integers, 2 ) ); + ef_abs_i : RETURN( make_uniform_product_space( the_integers, 1 ) ); + ef_if_i : RETURN( make_listed_product_space( [the_logicals, the_integers, the_integers] ) ); + ef_negate_r : RETURN( make_uniform_product_space( the_reals, 1 ) ); + ef_reciprocal_r : RETURN( make_uniform_product_space( the_reals, 1 ) ); + ef_add_r : RETURN( the_real_tuples ); + ef_subtract_r : RETURN( make_uniform_product_space( the_reals, 2 ) ); + ef_multiply_r : RETURN( the_real_tuples ); + ef_divide_r : RETURN( make_uniform_product_space( the_reals, 2 ) ); + ef_mod_r : RETURN( make_uniform_product_space( the_reals, 2 ) ); + ef_exponentiate_r : RETURN( make_listed_product_space( [the_nonnegative_reals, the_reals] ) ); + ef_exponentiate_ri : RETURN( make_listed_product_space( [the_reals, the_integers] ) ); + ef_eq_r : RETURN( make_uniform_product_space( the_reals, 2 ) ); + ef_ne_r : RETURN( make_uniform_product_space( the_reals, 2 ) ); + ef_gt_r : RETURN( make_uniform_product_space( the_reals, 2 ) ); + ef_lt_r : RETURN( make_uniform_product_space( the_reals, 2 ) ); + ef_ge_r : RETURN( make_uniform_product_space( the_reals, 2 ) ); + ef_le_r : RETURN( make_uniform_product_space( the_reals, 2 ) ); + ef_abs_r : RETURN( make_uniform_product_space( the_reals, 1 ) ); + ef_acos_r : RETURN( make_uniform_product_space( the_neg1_one_interval, 1 ) ); + ef_asin_r : RETURN( make_uniform_product_space( the_neg1_one_interval, 1 ) ); + ef_atan2_r : RETURN( make_uniform_product_space( the_reals, 2 ) ); + ef_cos_r : RETURN( make_uniform_product_space( the_reals, 1 ) ); + ef_exp_r : RETURN( make_uniform_product_space( the_reals, 1 ) ); + ef_ln_r : RETURN( make_uniform_product_space( the_nonnegative_reals, 1 ) ); + ef_log2_r : RETURN( make_uniform_product_space( the_nonnegative_reals, 1 ) ); + ef_log10_r : RETURN( make_uniform_product_space( the_nonnegative_reals, 1 ) ); + ef_sin_r : RETURN( make_uniform_product_space( the_reals, 1 ) ); + ef_sqrt_r : RETURN( make_uniform_product_space( the_nonnegative_reals, 1 ) ); + ef_tan_r : RETURN( make_uniform_product_space( the_reals, 1 ) ); + ef_if_r : RETURN( make_listed_product_space( [the_logicals, the_reals, the_reals] ) ); + ef_negate_c : RETURN( make_uniform_product_space( the_complex_numbers, 1 ) ); + ef_reciprocal_c : RETURN( make_uniform_product_space( the_complex_numbers, 1 ) ); + ef_add_c : RETURN( the_complex_tuples ); + ef_subtract_c : RETURN( make_uniform_product_space( the_complex_numbers, 2 ) ); + ef_multiply_c : RETURN( the_complex_tuples ); + ef_divide_c : RETURN( make_uniform_product_space( the_complex_numbers, 2 ) ); + ef_exponentiate_c : RETURN( make_uniform_product_space( the_complex_numbers, 2 ) ); + ef_exponentiate_ci : RETURN( make_listed_product_space( [the_complex_numbers, the_integers] ) ); + ef_eq_c : RETURN( make_uniform_product_space( the_complex_numbers, 2 ) ); + ef_ne_c : RETURN( make_uniform_product_space( the_complex_numbers, 2 ) ); + ef_conjugate_c : RETURN( make_uniform_product_space( the_complex_numbers, 1 ) ); + ef_abs_c : RETURN( make_uniform_product_space( the_complex_numbers, 1 ) ); + ef_arg_c : RETURN( make_uniform_product_space( the_complex_numbers, 1 ) ); + ef_cos_c : RETURN( make_uniform_product_space( the_complex_numbers, 1 ) ); + ef_exp_c : RETURN( make_uniform_product_space( the_complex_numbers, 1 ) ); + ef_ln_c : RETURN( make_uniform_product_space( the_complex_numbers, 1 ) ); + ef_sin_c : RETURN( make_uniform_product_space( the_complex_numbers, 1 ) ); + ef_sqrt_c : RETURN( make_uniform_product_space( the_complex_numbers, 1 ) ); + ef_tan_c : RETURN( make_uniform_product_space( the_complex_numbers, 1 ) ); + ef_if_c : RETURN( make_listed_product_space( [the_logicals, the_complex_numbers, the_complex_numbers] ) ); + ef_subscript_s : RETURN( make_listed_product_space( [the_strings, the_integers] ) ); + ef_eq_s : RETURN( make_uniform_product_space( the_strings, 2 ) ); + ef_ne_s : RETURN( make_uniform_product_space( the_strings, 2 ) ); + ef_gt_s : RETURN( make_uniform_product_space( the_strings, 2 ) ); + ef_lt_s : RETURN( make_uniform_product_space( the_strings, 2 ) ); + ef_ge_s : RETURN( make_uniform_product_space( the_strings, 2 ) ); + ef_le_s : RETURN( make_uniform_product_space( the_strings, 2 ) ); + ef_subsequence_s : RETURN( make_listed_product_space( [the_strings, the_integers, the_integers] ) ); + ef_concat_s : RETURN( make_extended_tuple_space( the_zero_tuple_space, the_strings ) ); + ef_size_s : RETURN( make_uniform_product_space( the_strings, 1 ) ); + ef_format : RETURN( make_listed_product_space( [the_numbers, the_strings] ) ); + ef_value : RETURN( make_uniform_product_space( the_strings, 1 ) ); + ef_like : RETURN( make_uniform_product_space( the_strings, 2 ) ); + ef_if_s : RETURN( make_listed_product_space( [the_logicals, the_strings, the_strings] ) ); + ef_subscript_b : RETURN( make_listed_product_space( [the_binarys, the_integers] ) ); + ef_eq_b : RETURN( make_uniform_product_space( the_binarys, 2 ) ); + ef_ne_b : RETURN( make_uniform_product_space( the_binarys, 2 ) ); + ef_gt_b : RETURN( make_uniform_product_space( the_binarys, 2 ) ); + ef_lt_b : RETURN( make_uniform_product_space( the_binarys, 2 ) ); + ef_ge_b : RETURN( make_uniform_product_space( the_binarys, 2 ) ); + ef_le_b : RETURN( make_uniform_product_space( the_binarys, 2 ) ); + ef_subsequence_b : RETURN( make_listed_product_space( [the_binarys, the_integers, the_integers] ) ); + ef_concat_b : RETURN( make_extended_tuple_space( the_zero_tuple_space, the_binarys ) ); + ef_size_b : RETURN( make_uniform_product_space( the_binarys, 1 ) ); + ef_if_b : RETURN( make_listed_product_space( [the_logicals, the_binarys, the_binarys] ) ); + ef_subscript_t : RETURN( make_listed_product_space( [the_tuples, the_integers] ) ); + ef_eq_t : RETURN( make_uniform_product_space( the_tuples, 2 ) ); + ef_ne_t : RETURN( make_uniform_product_space( the_tuples, 2 ) ); + ef_concat_t : RETURN( make_extended_tuple_space( the_zero_tuple_space, the_tuples ) ); + ef_size_t : RETURN( make_uniform_product_space( the_tuples, 1 ) ); + ef_entuple : RETURN( the_tuples ); + ef_detuple : RETURN( make_uniform_product_space( the_generics, 1 ) ); + ef_insert : RETURN( make_listed_product_space( [the_tuples, the_generics, the_integers] ) ); + ef_remove : RETURN( make_listed_product_space( [the_tuples, the_integers] ) ); + ef_if_t : RETURN( make_listed_product_space( [the_logicals, the_tuples, the_tuples] ) ); + ef_sum_it : RETURN( make_uniform_product_space( the_integer_tuples, 1 ) ); + ef_product_it : RETURN( make_uniform_product_space( the_integer_tuples, 1 ) ); + ef_add_it : RETURN( make_extended_tuple_space( the_integer_tuples, the_integer_tuples ) ); + ef_subtract_it : RETURN( make_uniform_product_space( the_integer_tuples, 2 ) ); + ef_scalar_mult_it : RETURN( make_listed_product_space( [the_integers, the_integer_tuples] ) ); + ef_dot_prod_it : RETURN( make_uniform_product_space( the_integer_tuples, 2 ) ); + ef_sum_rt : RETURN( make_uniform_product_space( the_real_tuples, 1 ) ); + ef_product_rt : RETURN( make_uniform_product_space( the_real_tuples, 1 ) ); + ef_add_rt : RETURN( make_extended_tuple_space( the_real_tuples, the_real_tuples ) ); + ef_subtract_rt : RETURN( make_uniform_product_space( the_real_tuples, 2 ) ); + ef_scalar_mult_rt : RETURN( make_listed_product_space( [the_reals, the_real_tuples] ) ); + ef_dot_prod_rt : RETURN( make_uniform_product_space( the_real_tuples, 2 ) ); + ef_norm_rt : RETURN( make_uniform_product_space( the_real_tuples, 1 ) ); + ef_sum_ct : RETURN( make_uniform_product_space( the_complex_tuples, 1 ) ); + ef_product_ct : RETURN( make_uniform_product_space( the_complex_tuples, 1 ) ); + ef_add_ct : RETURN( make_extended_tuple_space( the_complex_tuples, the_complex_tuples ) ); + ef_subtract_ct : RETURN( make_uniform_product_space( the_complex_tuples, 2 ) ); + ef_scalar_mult_ct : RETURN( make_listed_product_space( [the_complex_numbers, the_complex_tuples] ) ); + ef_dot_prod_ct : RETURN( make_uniform_product_space( the_complex_tuples, 2 ) ); + ef_norm_ct : RETURN( make_uniform_product_space( the_complex_tuples, 1 ) ); + ef_if : RETURN( make_listed_product_space( [the_logicals, the_generics, the_generics] ) ); + ef_ensemble : RETURN( the_tuples ); + ef_member_of : RETURN( make_listed_product_space( [the_generics, the_maths_spaces] ) ); + OTHERWISE : RETURN( ? ); + END_CASE; + + END_FUNCTION; + + FUNCTION derive_elementary_function_range( + ef_val : elementary_function_enumerators + ) : tuple_space; + IF NOT EXISTS( ef_val ) THEN + RETURN( ? ); + END_IF; + CASE ef_val OF + ef_and : RETURN( make_uniform_product_space( the_logicals, 1 ) ); + ef_or : RETURN( make_uniform_product_space( the_logicals, 1 ) ); + ef_not : RETURN( make_uniform_product_space( the_logicals, 1 ) ); + ef_xor : RETURN( make_uniform_product_space( the_logicals, 2 ) ); + ef_negate_i : RETURN( make_uniform_product_space( the_integers, 1 ) ); + ef_add_i : RETURN( make_uniform_product_space( the_integers, 1 ) ); + ef_subtract_i : RETURN( make_uniform_product_space( the_integers, 1 ) ); + ef_multiply_i : RETURN( make_uniform_product_space( the_integers, 1 ) ); + ef_divide_i : RETURN( make_uniform_product_space( the_integers, 1 ) ); + ef_mod_i : RETURN( make_uniform_product_space( the_integers, 1 ) ); + ef_exponentiate_i : RETURN( make_uniform_product_space( the_integers, 1 ) ); + ef_eq_i : RETURN( make_uniform_product_space( the_logicals, 1 ) ); + ef_ne_i : RETURN( make_uniform_product_space( the_logicals, 1 ) ); + ef_gt_i : RETURN( make_uniform_product_space( the_logicals, 1 ) ); + ef_lt_i : RETURN( make_uniform_product_space( the_logicals, 1 ) ); + ef_ge_i : RETURN( make_uniform_product_space( the_logicals, 1 ) ); + ef_le_i : RETURN( make_uniform_product_space( the_logicals, 1 ) ); + ef_abs_i : RETURN( make_uniform_product_space( the_integers, 1 ) ); + ef_if_i : RETURN( make_uniform_product_space( the_integers, 1 ) ); + ef_negate_r : RETURN( make_uniform_product_space( the_reals, 1 ) ); + ef_reciprocal_r : RETURN( make_uniform_product_space( the_reals, 1 ) ); + ef_add_r : RETURN( make_uniform_product_space( the_reals, 1 ) ); + ef_subtract_r : RETURN( make_uniform_product_space( the_reals, 1 ) ); + ef_multiply_r : RETURN( make_uniform_product_space( the_reals, 1 ) ); + ef_divide_r : RETURN( make_uniform_product_space( the_reals, 1 ) ); + ef_mod_r : RETURN( make_uniform_product_space( the_reals, 1 ) ); + ef_exponentiate_r : RETURN( make_uniform_product_space( the_reals, 1 ) ); + ef_exponentiate_ri : RETURN( make_uniform_product_space( the_reals, 1 ) ); + ef_eq_r : RETURN( make_uniform_product_space( the_logicals, 1 ) ); + ef_ne_r : RETURN( make_uniform_product_space( the_logicals, 1 ) ); + ef_gt_r : RETURN( make_uniform_product_space( the_logicals, 1 ) ); + ef_lt_r : RETURN( make_uniform_product_space( the_logicals, 1 ) ); + ef_ge_r : RETURN( make_uniform_product_space( the_logicals, 1 ) ); + ef_le_r : RETURN( make_uniform_product_space( the_logicals, 1 ) ); + ef_abs_r : RETURN( make_uniform_product_space( the_nonnegative_reals, 1 ) ); + ef_acos_r : RETURN( make_uniform_product_space( the_zero_pi_interval, 1 ) ); + ef_asin_r : RETURN( make_uniform_product_space( the_neghalfpi_halfpi_interval, 1 ) ); + ef_atan2_r : RETURN( make_uniform_product_space( the_negpi_pi_interval, 1 ) ); + ef_cos_r : RETURN( make_uniform_product_space( the_neg1_one_interval, 1 ) ); + ef_exp_r : RETURN( make_uniform_product_space( the_nonnegative_reals, 1 ) ); + ef_ln_r : RETURN( make_uniform_product_space( the_reals, 1 ) ); + ef_log2_r : RETURN( make_uniform_product_space( the_reals, 1 ) ); + ef_log10_r : RETURN( make_uniform_product_space( the_reals, 1 ) ); + ef_sin_r : RETURN( make_uniform_product_space( the_neg1_one_interval, 1 ) ); + ef_sqrt_r : RETURN( make_uniform_product_space( the_nonnegative_reals, 1 ) ); + ef_tan_r : RETURN( make_uniform_product_space( the_reals, 1 ) ); + ef_if_r : RETURN( make_uniform_product_space( the_reals, 1 ) ); + ef_negate_c : RETURN( make_uniform_product_space( the_complex_numbers, 1 ) ); + ef_reciprocal_c : RETURN( make_uniform_product_space( the_complex_numbers, 1 ) ); + ef_add_c : RETURN( make_uniform_product_space( the_complex_numbers, 1 ) ); + ef_subtract_c : RETURN( make_uniform_product_space( the_complex_numbers, 1 ) ); + ef_multiply_c : RETURN( make_uniform_product_space( the_complex_numbers, 1 ) ); + ef_divide_c : RETURN( make_uniform_product_space( the_complex_numbers, 1 ) ); + ef_exponentiate_c : RETURN( make_uniform_product_space( the_complex_numbers, 1 ) ); + ef_exponentiate_ci : RETURN( make_uniform_product_space( the_complex_numbers, 1 ) ); + ef_eq_c : RETURN( make_uniform_product_space( the_logicals, 1 ) ); + ef_ne_c : RETURN( make_uniform_product_space( the_logicals, 1 ) ); + ef_conjugate_c : RETURN( make_uniform_product_space( the_complex_numbers, 1 ) ); + ef_abs_c : RETURN( make_uniform_product_space( the_nonnegative_reals, 1 ) ); + ef_arg_c : RETURN( make_uniform_product_space( the_negpi_pi_interval, 1 ) ); + ef_cos_c : RETURN( make_uniform_product_space( the_complex_numbers, 1 ) ); + ef_exp_c : RETURN( make_uniform_product_space( the_complex_numbers, 1 ) ); + ef_ln_c : RETURN( make_uniform_product_space( the_complex_numbers, 1 ) ); + ef_sin_c : RETURN( make_uniform_product_space( the_complex_numbers, 1 ) ); + ef_sqrt_c : RETURN( make_uniform_product_space( the_complex_numbers, 1 ) ); + ef_tan_c : RETURN( make_uniform_product_space( the_complex_numbers, 1 ) ); + ef_if_c : RETURN( make_uniform_product_space( the_complex_numbers, 1 ) ); + ef_subscript_s : RETURN( make_uniform_product_space( the_strings, 1 ) ); + ef_eq_s : RETURN( make_uniform_product_space( the_logicals, 1 ) ); + ef_ne_s : RETURN( make_uniform_product_space( the_logicals, 1 ) ); + ef_gt_s : RETURN( make_uniform_product_space( the_logicals, 1 ) ); + ef_lt_s : RETURN( make_uniform_product_space( the_logicals, 1 ) ); + ef_ge_s : RETURN( make_uniform_product_space( the_logicals, 1 ) ); + ef_le_s : RETURN( make_uniform_product_space( the_logicals, 1 ) ); + ef_subsequence_s : RETURN( make_uniform_product_space( the_strings, 1 ) ); + ef_concat_s : RETURN( make_uniform_product_space( the_strings, 1 ) ); + ef_size_s : RETURN( make_uniform_product_space( the_integers, 1 ) ); + ef_format : RETURN( make_uniform_product_space( the_strings, 1 ) ); + ef_value : RETURN( make_uniform_product_space( the_reals, 1 ) ); + ef_like : RETURN( make_uniform_product_space( the_booleans, 1 ) ); + ef_if_s : RETURN( make_uniform_product_space( the_strings, 1 ) ); + ef_subscript_b : RETURN( make_uniform_product_space( the_binarys, 1 ) ); + ef_eq_b : RETURN( make_uniform_product_space( the_logicals, 1 ) ); + ef_ne_b : RETURN( make_uniform_product_space( the_logicals, 1 ) ); + ef_gt_b : RETURN( make_uniform_product_space( the_logicals, 1 ) ); + ef_lt_b : RETURN( make_uniform_product_space( the_logicals, 1 ) ); + ef_ge_b : RETURN( make_uniform_product_space( the_logicals, 1 ) ); + ef_le_b : RETURN( make_uniform_product_space( the_logicals, 1 ) ); + ef_subsequence_b : RETURN( make_uniform_product_space( the_binarys, 1 ) ); + ef_concat_b : RETURN( make_uniform_product_space( the_binarys, 1 ) ); + ef_size_b : RETURN( make_uniform_product_space( the_integers, 1 ) ); + ef_if_b : RETURN( make_uniform_product_space( the_binarys, 1 ) ); + ef_subscript_t : RETURN( make_uniform_product_space( the_generics, 1 ) ); + ef_eq_t : RETURN( make_uniform_product_space( the_logicals, 1 ) ); + ef_ne_t : RETURN( make_uniform_product_space( the_logicals, 1 ) ); + ef_concat_t : RETURN( make_uniform_product_space( the_tuples, 1 ) ); + ef_size_t : RETURN( make_uniform_product_space( the_integers, 1 ) ); + ef_entuple : RETURN( make_uniform_product_space( the_tuples, 1 ) ); + ef_detuple : RETURN( the_tuples ); + ef_insert : RETURN( make_uniform_product_space( the_tuples, 1 ) ); + ef_remove : RETURN( make_uniform_product_space( the_tuples, 1 ) ); + ef_if_t : RETURN( make_uniform_product_space( the_tuples, 1 ) ); + ef_sum_it : RETURN( make_uniform_product_space( the_integers, 1 ) ); + ef_product_it : RETURN( make_uniform_product_space( the_integers, 1 ) ); + ef_add_it : RETURN( make_uniform_product_space( the_integer_tuples, 1 ) ); + ef_subtract_it : RETURN( make_uniform_product_space( the_integer_tuples, 1 ) ); + ef_scalar_mult_it : RETURN( make_uniform_product_space( the_integer_tuples, 1 ) ); + ef_dot_prod_it : RETURN( make_uniform_product_space( the_integers, 1 ) ); + ef_sum_rt : RETURN( make_uniform_product_space( the_reals, 1 ) ); + ef_product_rt : RETURN( make_uniform_product_space( the_reals, 1 ) ); + ef_add_rt : RETURN( make_uniform_product_space( the_real_tuples, 1 ) ); + ef_subtract_rt : RETURN( make_uniform_product_space( the_real_tuples, 1 ) ); + ef_scalar_mult_rt : RETURN( make_uniform_product_space( the_real_tuples, 1 ) ); + ef_dot_prod_rt : RETURN( make_uniform_product_space( the_reals, 1 ) ); + ef_norm_rt : RETURN( make_uniform_product_space( the_reals, 1 ) ); + ef_sum_ct : RETURN( make_uniform_product_space( the_complex_numbers, 1 ) ); + ef_product_ct : RETURN( make_uniform_product_space( the_complex_numbers, 1 ) ); + ef_add_ct : RETURN( make_uniform_product_space( the_complex_tuples, 1 ) ); + ef_subtract_ct : RETURN( make_uniform_product_space( the_complex_tuples, 1 ) ); + ef_scalar_mult_ct : RETURN( make_uniform_product_space( the_complex_tuples, 1 ) ); + ef_dot_prod_ct : RETURN( make_uniform_product_space( the_complex_numbers, 1 ) ); + ef_norm_ct : RETURN( make_uniform_product_space( the_nonnegative_reals, 1 ) ); + ef_if : RETURN( make_uniform_product_space( the_generics, 1 ) ); + ef_ensemble : RETURN( make_uniform_product_space( the_maths_spaces, 1 ) ); + ef_member_of : RETURN( make_uniform_product_space( the_logicals, 1 ) ); + OTHERWISE : RETURN( ? ); + END_CASE; + + END_FUNCTION; + + FUNCTION derive_finite_function_domain( + pairs : SET [1 : ?] OF LIST [2 : 2] OF maths_value + ) : tuple_space; + + LOCAL + result : SET OF maths_value := []; + END_LOCAL; + result := result + list_selected_components( pairs, 1 ); + RETURN( one_tuples_of( make_finite_space( result ) ) ); + + END_FUNCTION; + + FUNCTION derive_finite_function_range( + pairs : SET [1 : ?] OF LIST [2 : 2] OF maths_value + ) : tuple_space; + + LOCAL + result : SET OF maths_value := []; + END_LOCAL; + result := result + list_selected_components( pairs, 2 ); + RETURN( one_tuples_of( make_finite_space( result ) ) ); + + END_FUNCTION; + + FUNCTION derive_function_domain( + func : maths_function + ) : tuple_space; + + LOCAL + typenames : SET OF STRING := stripped_typeof( func ); + tspace : tuple_space := make_listed_product_space( [] ); + shape : LIST OF positive_integer; + sidxs : LIST OF INTEGER := [0]; + itvl : finite_integer_interval; + factors : LIST OF finite_integer_interval := []; + is_uniform : BOOLEAN := TRUE; + END_LOCAL; + IF 'FINITE_FUNCTION' IN typenames THEN + RETURN( derive_finite_function_domain( func\finite_function.pairs ) ); + END_IF; + IF 'CONSTANT_FUNCTION' IN typenames THEN + RETURN( domain_from( func\constant_function.source_of_domain ) ); + END_IF; + IF 'SELECTOR_FUNCTION' IN typenames THEN + RETURN( domain_from( func\selector_function.source_of_domain ) ); + END_IF; + IF 'ELEMENTARY_FUNCTION' IN typenames THEN + RETURN( derive_elementary_function_domain( func\elementary_function.func_id ) ); + END_IF; + IF 'RESTRICTION_FUNCTION' IN typenames THEN + RETURN( one_tuples_of( func\restriction_function.operand ) ); + END_IF; + IF 'REPACKAGING_FUNCTION' IN typenames THEN + IF func\repackaging_function.input_repack = ro_nochange THEN + RETURN( func\repackaging_function.operand.domain ); + END_IF; + IF func\repackaging_function.input_repack = ro_wrap_as_tuple THEN + RETURN( factor1( func\repackaging_function.operand.domain ) ); + END_IF; + IF func\repackaging_function.input_repack = ro_unwrap_tuple THEN + RETURN( one_tuples_of( func\repackaging_function.operand.domain ) ); + END_IF; + RETURN( ? ); + END_IF; + IF 'REINDEXED_ARRAY_FUNCTION' IN typenames THEN + shape := shape_of_array( func\unary_generic_expression.operand ); + sidxs := func\reindexed_array_function.starting_indices; + REPEAT i := 1 TO SIZEOF( shape ) BY 1; + itvl := make_finite_integer_interval( sidxs[i], ( sidxs[i] + shape[i] ) - 1 ); + INSERT( factors, itvl, i - 1 ); + IF shape[i] <> shape[1] THEN + is_uniform := FALSE; + END_IF; + END_REPEAT; + IF is_uniform THEN + RETURN( make_uniform_product_space( factors[1], SIZEOF( shape ) ) ); + END_IF; + RETURN( make_listed_product_space( factors ) ); + END_IF; + IF 'SERIES_COMPOSED_FUNCTION' IN typenames THEN + RETURN( func\series_composed_function.operands[1].domain ); + END_IF; + IF 'PARALLEL_COMPOSED_FUNCTION' IN typenames THEN + RETURN( domain_from( func\parallel_composed_function.source_of_domain ) ); + END_IF; + IF 'EXPLICIT_TABLE_FUNCTION' IN typenames THEN + shape := func\explicit_table_function.shape; + sidxs[1] := func\explicit_table_function.index_base; + REPEAT i := 1 TO SIZEOF( shape ) BY 1; + itvl := make_finite_integer_interval( sidxs[1], ( sidxs[1] + shape[i] ) - 1 ); + INSERT( factors, itvl, i - 1 ); + IF shape[i] <> shape[1] THEN + is_uniform := FALSE; + END_IF; + END_REPEAT; + IF is_uniform THEN + RETURN( make_uniform_product_space( factors[1], SIZEOF( shape ) ) ); + END_IF; + RETURN( make_listed_product_space( factors ) ); + END_IF; + IF 'HOMOGENEOUS_LINEAR_FUNCTION' IN typenames THEN + RETURN( one_tuples_of( make_uniform_product_space( factor1( func\homogeneous_linear_function.mat.range ), func\ + homogeneous_linear_function.mat\explicit_table_function.shape[func\homogeneous_linear_function.sum_index] ) ) ); + END_IF; + IF 'GENERAL_LINEAR_FUNCTION' IN typenames THEN + RETURN( one_tuples_of( make_uniform_product_space( factor1( func\general_linear_function.mat.range ), func\ + general_linear_function.mat\explicit_table_function.shape[func\general_linear_function.sum_index] - 1 ) ) ); + END_IF; + IF 'B_SPLINE_BASIS' IN typenames THEN + RETURN( one_tuples_of( make_finite_real_interval( func\b_spline_basis.repeated_knots[func\b_spline_basis.order], closed, + func\b_spline_basis.repeated_knots[func\b_spline_basis.num_basis + 1], closed ) ) ); + END_IF; + IF 'B_SPLINE_FUNCTION' IN typenames THEN + REPEAT i := 1 TO SIZEOF( func\b_spline_function.basis ) BY 1; + tspace := assoc_product_space( tspace, func\b_spline_function.basis[i].domain ); + END_REPEAT; + RETURN( one_tuples_of( tspace ) ); + END_IF; + IF 'RATIONALIZE_FUNCTION' IN typenames THEN + RETURN( func\rationalize_function.fun.domain ); + END_IF; + IF 'PARTIAL_DERIVATIVE_FUNCTION' IN typenames THEN + RETURN( func\partial_derivative_function.derivand.domain ); + END_IF; + IF 'DEFINITE_INTEGRAL_FUNCTION' IN typenames THEN + RETURN( derive_definite_integral_domain( func ) ); + END_IF; + IF 'ABSTRACTED_EXPRESSION_FUNCTION' IN typenames THEN + REPEAT i := 1 TO SIZEOF( func\abstracted_expression_function.variables ) BY 1; + tspace := assoc_product_space( tspace, one_tuples_of( values_space_of( func\abstracted_expression_function.variables[i] ) ) ); + END_REPEAT; + RETURN( tspace ); + END_IF; + IF 'EXPRESSION_DENOTED_FUNCTION' IN typenames THEN + RETURN( values_space_of( func\expression_denoted_function.expr )\function_space.domain_argument ); + END_IF; + IF 'IMPORTED_POINT_FUNCTION' IN typenames THEN + RETURN( one_tuples_of( make_listed_product_space( [] ) ) ); + END_IF; + IF 'IMPORTED_CURVE_FUNCTION' IN typenames THEN + RETURN( func\imported_curve_function.parametric_domain ); + END_IF; + IF 'IMPORTED_SURFACE_FUNCTION' IN typenames THEN + RETURN( func\imported_surface_function.parametric_domain ); + END_IF; + IF 'IMPORTED_VOLUME_FUNCTION' IN typenames THEN + RETURN( func\imported_volume_function.parametric_domain ); + END_IF; + IF 'APPLICATION_DEFINED_FUNCTION' IN typenames THEN + RETURN( func\application_defined_function.explicit_domain ); + END_IF; + RETURN( ? ); + + END_FUNCTION; + + FUNCTION derive_function_range( + func : maths_function + ) : tuple_space; + + LOCAL + typenames : SET OF STRING := stripped_typeof( func ); + tspace : tuple_space := make_listed_product_space( [] ); + m : nonnegative_integer := 0; + n : nonnegative_integer := 0; + temp : INTEGER := 0; + END_LOCAL; + IF 'FINITE_FUNCTION' IN typenames THEN + RETURN( derive_finite_function_range( func\finite_function.pairs ) ); + END_IF; + IF 'CONSTANT_FUNCTION' IN typenames THEN + RETURN( one_tuples_of( make_finite_space( [func\constant_function.sole_output] ) ) ); + END_IF; + IF 'SELECTOR_FUNCTION' IN typenames THEN + tspace := func.domain; + IF ( space_dimension( tspace ) = 1 ) AND ( ( schema_prefix + 'TUPLE_SPACE' ) IN TYPEOF( tspace ) ) THEN + tspace := factor1( tspace ); + END_IF; + RETURN( one_tuples_of( factor_space( tspace, func\selector_function.selector ) ) ); + END_IF; + IF 'ELEMENTARY_FUNCTION' IN typenames THEN + RETURN( derive_elementary_function_range( func\elementary_function.func_id ) ); + END_IF; + IF 'RESTRICTION_FUNCTION' IN typenames THEN + RETURN( one_tuples_of( func\restriction_function.operand ) ); + END_IF; + IF 'REPACKAGING_FUNCTION' IN typenames THEN + tspace := func\repackaging_function.operand.range; + IF func\repackaging_function.output_repack = ro_wrap_as_tuple THEN + tspace := one_tuples_of( tspace ); + END_IF; + IF func\repackaging_function.output_repack = ro_unwrap_tuple THEN + tspace := factor1( tspace ); + END_IF; + IF func\repackaging_function.selected_output > 0 THEN + tspace := one_tuples_of( factor_space( tspace, func\repackaging_function.selected_output ) ); + END_IF; + RETURN( tspace ); + END_IF; + IF 'REINDEXED_ARRAY_FUNCTION' IN typenames THEN + RETURN( func\unary_generic_expression.operand\maths_function.range ); + END_IF; + IF 'SERIES_COMPOSED_FUNCTION' IN typenames THEN + RETURN( func\series_composed_function.operands[SIZEOF( func\series_composed_function.operands )].range ); + END_IF; + IF 'PARALLEL_COMPOSED_FUNCTION' IN typenames THEN + RETURN( func\parallel_composed_function.final_function.range ); + END_IF; + IF 'EXPLICIT_TABLE_FUNCTION' IN typenames THEN + IF 'LISTED_REAL_DATA' IN typenames THEN + RETURN( one_tuples_of( the_reals ) ); + END_IF; + IF 'LISTED_INTEGER_DATA' IN typenames THEN + RETURN( one_tuples_of( the_integers ) ); + END_IF; + IF 'LISTED_LOGICAL_DATA' IN typenames THEN + RETURN( one_tuples_of( the_logicals ) ); + END_IF; + IF 'LISTED_STRING_DATA' IN typenames THEN + RETURN( one_tuples_of( the_strings ) ); + END_IF; + IF 'LISTED_COMPLEX_NUMBER_DATA' IN typenames THEN + RETURN( one_tuples_of( the_complex_numbers ) ); + END_IF; + IF 'LISTED_DATA' IN typenames THEN + RETURN( one_tuples_of( func\listed_data.value_range ) ); + END_IF; + IF 'EXTERNALLY_LISTED_DATA' IN typenames THEN + RETURN( one_tuples_of( func\externally_listed_data.value_range ) ); + END_IF; + IF 'LINEARIZED_TABLE_FUNCTION' IN typenames THEN + RETURN( func\linearized_table_function.source.range ); + END_IF; + IF 'BASIC_SPARSE_MATRIX' IN typenames THEN + RETURN( func\basic_sparse_matrix.val.range ); + END_IF; + RETURN( ? ); + END_IF; + IF 'HOMOGENEOUS_LINEAR_FUNCTION' IN typenames THEN + RETURN( one_tuples_of( make_uniform_product_space( factor1( func\homogeneous_linear_function.mat.range ), func\ + homogeneous_linear_function.mat\explicit_table_function.shape[3 - func\homogeneous_linear_function.sum_index] ) ) ); + END_IF; + IF 'GENERAL_LINEAR_FUNCTION' IN typenames THEN + RETURN( one_tuples_of( make_uniform_product_space( factor1( func\general_linear_function.mat.range ), func\ + general_linear_function.mat\explicit_table_function.shape[3 - func\general_linear_function.sum_index] ) ) ); + END_IF; + IF 'B_SPLINE_BASIS' IN typenames THEN + RETURN( one_tuples_of( make_uniform_product_space( the_reals, func\b_spline_basis.num_basis ) ) ); + END_IF; + IF 'B_SPLINE_FUNCTION' IN typenames THEN + tspace := factor1( func\b_spline_function.coef.domain ); + m := SIZEOF( func\b_spline_function.basis ); + n := space_dimension( tspace ); + IF m = n THEN + RETURN( one_tuples_of( the_reals ) ); + END_IF; + IF m = ( n - 1 ) THEN + RETURN( one_tuples_of( make_uniform_product_space( the_reals, factor_space( tspace, n )\finite_integer_interval.size ) ) ); + END_IF; + tspace := extract_factors( tspace, m + 1, n ); + RETURN( one_tuples_of( make_function_space( sc_equal, tspace, sc_subspace, number_superspace_of( func\b_spline_function. + coef.range ) ) ) ); + END_IF; + IF 'RATIONALIZE_FUNCTION' IN typenames THEN + tspace := factor1( func\rationalize_function.fun.range ); + n := space_dimension( tspace ); + RETURN( one_tuples_of( make_uniform_product_space( number_superspace_of( factor1( tspace ) ), n - 1 ) ) ); + END_IF; + IF 'PARTIAL_DERIVATIVE_FUNCTION' IN typenames THEN + RETURN( drop_numeric_constraints( func\partial_derivative_function.derivand.range ) ); + END_IF; + IF 'DEFINITE_INTEGRAL_FUNCTION' IN typenames THEN + RETURN( drop_numeric_constraints( func\definite_integral_function.integrand.range ) ); + END_IF; + IF 'ABSTRACTED_EXPRESSION_FUNCTION' IN typenames THEN + RETURN( one_tuples_of( values_space_of( func\abstracted_expression_function.expr ) ) ); + END_IF; + IF 'EXPRESSION_DENOTED_FUNCTION' IN typenames THEN + RETURN( values_space_of( func\expression_denoted_function.expr )\function_space.range_argument ); + END_IF; + IF 'IMPORTED_POINT_FUNCTION' IN typenames THEN + temp := dimension_of( func\imported_point_function.geometry ); + RETURN( one_tuples_of( make_uniform_product_space( the_reals, temp ) ) ); + END_IF; + IF 'IMPORTED_CURVE_FUNCTION' IN typenames THEN + temp := dimension_of( func\imported_curve_function.geometry ); + RETURN( one_tuples_of( make_uniform_product_space( the_reals, temp ) ) ); + END_IF; + IF 'IMPORTED_SURFACE_FUNCTION' IN typenames THEN + temp := dimension_of( func\imported_surface_function.geometry ); + RETURN( one_tuples_of( make_uniform_product_space( the_reals, temp ) ) ); + END_IF; + IF 'IMPORTED_VOLUME_FUNCTION' IN typenames THEN + temp := dimension_of( func\imported_volume_function.geometry ); + RETURN( one_tuples_of( make_uniform_product_space( the_reals, temp ) ) ); + END_IF; + IF 'APPLICATION_DEFINED_FUNCTION' IN typenames THEN + RETURN( func\application_defined_function.explicit_range ); + END_IF; + RETURN( ? ); + + END_FUNCTION; + + FUNCTION dimension_of( + item : geometric_representation_item + ) : dimension_count; + + LOCAL + x : SET OF representation; + y : representation_context; + dim : dimension_count; + END_LOCAL; + IF 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CARTESIAN_POINT' IN TYPEOF( item ) THEN + dim := SIZEOF( item\cartesian_point.coordinates ); + RETURN( dim ); + END_IF; + IF 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.DIRECTION' IN TYPEOF( item ) THEN + dim := SIZEOF( item\direction.direction_ratios ); + RETURN( dim ); + END_IF; + IF 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.VECTOR' IN TYPEOF( item ) THEN + dim := SIZEOF( item\vector.orientation\direction.direction_ratios ); + RETURN( dim ); + END_IF; + x := using_representations( item ); + IF SIZEOF( x ) > 0 THEN + y := x[1].context_of_items; + dim := y\geometric_representation_context.coordinate_space_dimension; + RETURN( dim ); + ELSE + RETURN( ? ); + END_IF; + + 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 ) ); + gram : RETURN( dimensional_exponents( 0, 1, 0, 0, 0, 0, 0 ) ); + second : RETURN( dimensional_exponents( 0, 0, 1, 0, 0, 0, 0 ) ); + ampere : RETURN( dimensional_exponents( 0, 0, 0, 1, 0, 0, 0 ) ); + kelvin : RETURN( dimensional_exponents( 0, 0, 0, 0, 1, 0, 0 ) ); + mole : RETURN( dimensional_exponents( 0, 0, 0, 0, 0, 1, 0 ) ); + candela : RETURN( dimensional_exponents( 0, 0, 0, 0, 0, 0, 1 ) ); + radian : RETURN( dimensional_exponents( 0, 0, 0, 0, 0, 0, 0 ) ); + steradian : RETURN( dimensional_exponents( 0, 0, 0, 0, 0, 0, 0 ) ); + hertz : RETURN( dimensional_exponents( 0, 0, -1, 0, 0, 0, 0 ) ); + newton : RETURN( dimensional_exponents( 1, 1, -2, 0, 0, 0, 0 ) ); + pascal : RETURN( dimensional_exponents( -1, 1, -2, 0, 0, 0, 0 ) ); + joule : RETURN( dimensional_exponents( 2, 1, -2, 0, 0, 0, 0 ) ); + watt : RETURN( dimensional_exponents( 2, 1, -3, 0, 0, 0, 0 ) ); + coulomb : RETURN( dimensional_exponents( 0, 0, 1, 1, 0, 0, 0 ) ); + volt : RETURN( dimensional_exponents( 2, 1, -3, -1, 0, 0, 0 ) ); + farad : RETURN( dimensional_exponents( -2, -1, 4, 2, 0, 0, 0 ) ); + ohm : RETURN( dimensional_exponents( 2, 1, -3, -2, 0, 0, 0 ) ); + siemens : RETURN( dimensional_exponents( -2, -1, 3, 2, 0, 0, 0 ) ); + weber : RETURN( dimensional_exponents( 2, 1, -2, -1, 0, 0, 0 ) ); + tesla : RETURN( dimensional_exponents( 0, 1, -2, -1, 0, 0, 0 ) ); + henry : RETURN( dimensional_exponents( 2, 1, -2, -2, 0, 0, 0 ) ); + degree_celsius : RETURN( dimensional_exponents( 0, 0, 0, 0, 1, 0, 0 ) ); + lumen : RETURN( dimensional_exponents( 0, 0, 0, 0, 0, 0, 1 ) ); + lux : RETURN( dimensional_exponents( -2, 0, 0, 0, 0, 0, 1 ) ); + becquerel : RETURN( dimensional_exponents( 0, 0, -1, 0, 0, 0, 0 ) ); + gray : RETURN( dimensional_exponents( 2, 0, -2, 0, 0, 0, 0 ) ); + sievert : RETURN( dimensional_exponents( 2, 0, -2, 0, 0, 0, 0 ) ); + OTHERWISE : RETURN( ? ); + END_CASE; + + END_FUNCTION; + + FUNCTION domain_from( + ref : maths_space_or_function + ) : tuple_space; + + LOCAL + typenames : SET OF STRING := stripped_typeof( ref ); + func : maths_function; + END_LOCAL; + IF NOT EXISTS( ref ) THEN + RETURN( ? ); + END_IF; + IF 'TUPLE_SPACE' IN typenames THEN + RETURN( ref ); + END_IF; + IF 'MATHS_SPACE' IN typenames THEN + RETURN( one_tuples_of( ref ) ); + END_IF; + func := ref; + IF 'CONSTANT_FUNCTION' IN typenames THEN + RETURN( domain_from( func\constant_function.source_of_domain ) ); + END_IF; + IF 'SELECTOR_FUNCTION' IN typenames THEN + RETURN( domain_from( func\selector_function.source_of_domain ) ); + END_IF; + IF 'PARALLEL_COMPOSED_FUNCTION' IN typenames THEN + RETURN( domain_from( func\parallel_composed_function.source_of_domain ) ); + END_IF; + RETURN( func.domain ); + + END_FUNCTION; + + FUNCTION dot_product( + arg1, arg2 : direction + ) : REAL; + + LOCAL + scalar : REAL; + vec1 : direction; + vec2 : direction; + ndim : INTEGER; + END_LOCAL; + IF ( NOT EXISTS( arg1 ) ) OR ( NOT EXISTS( arg2 ) ) THEN + scalar := ?; + ELSE + IF arg1.dim <> arg2.dim THEN + scalar := ?; + ELSE + + BEGIN + vec1 := normalise( arg1 ); + vec2 := normalise( arg2 ); + ndim := arg1.dim; + scalar := 0; + REPEAT i := 1 TO ndim BY 1; + scalar := scalar + ( vec1.direction_ratios[i] * vec2.direction_ratios[i] ); + END_REPEAT; + END; + END_IF; + END_IF; + RETURN( scalar ); + + END_FUNCTION; + + FUNCTION drop_numeric_constraints( + spc : maths_space + ) : maths_space; + + LOCAL + typenames : SET OF STRING := stripped_typeof( spc ); + tspc : listed_product_space; + factors : LIST OF maths_space := []; + xspc : extended_tuple_space; + END_LOCAL; + IF 'UNIFORM_PRODUCT_SPACE' IN typenames THEN + RETURN( make_uniform_product_space( drop_numeric_constraints( spc\uniform_product_space.base ), spc\uniform_product_space. + exponent ) ); + END_IF; + IF 'LISTED_PRODUCT_SPACE' IN typenames THEN + tspc := spc; + REPEAT i := 1 TO SIZEOF( tspc.factors ) BY 1; + INSERT( factors, drop_numeric_constraints( tspc.factors[i] ), i - 1 ); + END_REPEAT; + RETURN( make_listed_product_space( factors ) ); + END_IF; + IF 'EXTENDED_TUPLE_SPACE' IN typenames THEN + xspc := spc; + RETURN( make_extended_tuple_space( drop_numeric_constraints( xspc.base ), drop_numeric_constraints( xspc.extender ) ) ); + END_IF; + IF subspace_of_es( spc, es_numbers ) THEN + RETURN( number_superspace_of( spc ) ); + END_IF; + RETURN( spc ); + + END_FUNCTION; + + FUNCTION duration_is_negative( + duration : time_measure_with_unit + ) : BOOLEAN; + IF duration\measure_with_unit.value_component < 0 THEN + RETURN( TRUE ); + ELSE + RETURN( FALSE ); + END_IF; + + END_FUNCTION; + + FUNCTION duration_is_positive( + duration : time_measure_with_unit + ) : BOOLEAN; + IF duration\measure_with_unit.value_component > 0 THEN + RETURN( TRUE ); + ELSE + RETURN( FALSE ); + END_IF; + + END_FUNCTION; + + FUNCTION edge_reversed( + an_edge : edge + ) : oriented_edge; + + LOCAL + the_reverse : oriented_edge; + END_LOCAL; + IF 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 enclose_cregion_in_pregion( + crgn : cartesian_complex_number_region; + centre : complex_number_literal + ) : polar_complex_number_region; + + FUNCTION angle( + a : REAL + ) : REAL; + REPEAT WHILE a > PI; + a := a - ( 2 * PI ); + END_REPEAT; + REPEAT WHILE a <= ( -PI ); + a := a + ( 2 * PI ); + END_REPEAT; + RETURN( a ); + + END_FUNCTION; + + FUNCTION strictly_in( + z : REAL; + zitv : real_interval + ) : LOGICAL; + RETURN( ( ( NOT min_exists( zitv ) ) OR ( z > real_min( zitv ) ) ) AND ( ( NOT max_exists( zitv ) ) OR ( z < real_max( zitv ) ) ) ); + + END_FUNCTION; + + PROCEDURE angle_minmax( + ab, a : REAL; + a_in : BOOLEAN; + VAR amin, amax : REAL; + VAR amin_in, amax_in : BOOLEAN ); + a := angle( a - ab ); + IF amin = a THEN + amin_in := amin_in OR a_in; + END_IF; + IF amin > a THEN + amin := a; + amin_in := a_in; + END_IF; + IF amax = a THEN + amax_in := amax_in OR a_in; + END_IF; + IF amax < a THEN + amax := a; + amax_in := a_in; + END_IF; + + END_PROCEDURE; + + PROCEDURE range_max( + r : REAL; + incl : BOOLEAN; + VAR rmax : REAL; + VAR rmax_in : BOOLEAN ); + IF rmax = r THEN + rmax_in := rmax_in OR incl; + END_IF; + IF rmax < r THEN + rmax := r; + rmax_in := incl; + END_IF; + + END_PROCEDURE; + + PROCEDURE range_min( + r : REAL; + incl : BOOLEAN; + VAR rmin : REAL; + VAR rmin_in : BOOLEAN ); + IF rmin = r THEN + rmin_in := rmin_in OR incl; + END_IF; + IF ( rmin < 0 ) OR ( rmin > r ) THEN + rmin := r; + rmin_in := incl; + END_IF; + + END_PROCEDURE; + + LOCAL + xitv : real_interval; + yitv : real_interval; + is_xmin : BOOLEAN; + is_xmax : BOOLEAN; + is_ymin : BOOLEAN; + is_ymax : BOOLEAN; + xmin : REAL := 0; + xmax : REAL := 0; + ymin : REAL := 0; + ymax : REAL := 0; + xc : REAL := 0; + yc : REAL := 0; + xmin_in : BOOLEAN := FALSE; + xmax_in : BOOLEAN := FALSE; + ymin_in : BOOLEAN := FALSE; + ymax_in : BOOLEAN := FALSE; + rmin : REAL := -1; + rmax : REAL := -1; + amin : REAL := 4; + amax : REAL := -4; + rmax_exists : BOOLEAN := TRUE; + outside : BOOLEAN := TRUE; + rmin_in : BOOLEAN := FALSE; + rmax_in : BOOLEAN := FALSE; + amin_in : BOOLEAN := FALSE; + amax_in : BOOLEAN := FALSE; + ab : REAL := 0; + a : REAL := 0; + r : REAL := 0; + incl : BOOLEAN; + ritv : real_interval; + aitv : finite_real_interval; + minclo : open_closed := open; + maxclo : open_closed := open; + END_LOCAL; + IF ( NOT EXISTS( crgn ) ) OR ( NOT EXISTS( centre ) ) THEN + RETURN( ? ); + END_IF; + xitv := crgn.real_constraint; + yitv := crgn.imag_constraint; + xc := centre.real_part; + yc := centre.imag_part; + is_xmin := min_exists( xitv ); + is_xmax := max_exists( xitv ); + is_ymin := min_exists( yitv ); + is_ymax := max_exists( yitv ); + IF is_xmin THEN + xmin := real_min( xitv ); + xmin_in := min_included( xitv ); + END_IF; + IF is_xmax THEN + xmax := real_max( xitv ); + xmax_in := max_included( xitv ); + END_IF; + IF is_ymin THEN + ymin := real_min( yitv ); + ymin_in := min_included( yitv ); + END_IF; + IF is_ymax THEN + ymax := real_max( yitv ); + ymax_in := max_included( yitv ); + END_IF; + rmax_exists := is_xmin AND is_xmax AND is_ymin AND is_ymax; + IF is_xmin AND ( xc <= xmin ) THEN + ab := 0; + ELSE + IF is_ymin AND ( yc <= ymin ) THEN + ab := 0.5 * PI; + ELSE + IF is_ymax AND ( yc >= ymax ) THEN + ab := ( -0.5 ) * PI; + ELSE + IF is_xmax AND ( xc >= xmax ) THEN + ab := PI; + ELSE + outside := FALSE; + END_IF; + END_IF; + END_IF; + END_IF; + IF ( NOT outside ) AND ( NOT rmax_exists ) THEN + RETURN( ? ); + END_IF; + IF is_xmin AND ( xc <= xmin ) AND strictly_in( yc, yitv ) THEN + rmin := xmin - xc; + rmin_in := xmin_in; + ELSE + IF is_ymin AND ( yc <= ymin ) AND strictly_in( xc, xitv ) THEN + rmin := ymin - yc; + rmin_in := ymin_in; + ELSE + IF is_ymax AND ( yc >= ymax ) AND strictly_in( xc, xitv ) THEN + rmin := yc - ymax; + rmin_in := ymax_in; + ELSE + IF is_xmax AND ( xc >= xmax ) AND strictly_in( yc, yitv ) THEN + rmin := xc - xmax; + rmin_in := xmax_in; + END_IF; + END_IF; + END_IF; + END_IF; + IF is_xmin THEN + IF is_ymin THEN + r := SQRT( ( ( xmin - xc ) ** 2 ) + ( ( ymin - yc ) ** 2 ) ); + incl := xmin_in AND ymin_in; + IF rmax_exists THEN + range_max( r, incl, rmax, rmax_in ); + END_IF; + IF outside THEN + IF r > 0 THEN + range_min( r, incl, rmin, rmin_in ); + a := angle( atan2( ymin - yc, xmin - xc ) - ab ); + IF xc = xmin THEN + incl := xmin_in; + END_IF; + IF yc = ymin THEN + incl := ymin_in; + END_IF; + angle_minmax( ab, a, incl, amin, amax, amin_in, amax_in ); + ELSE + rmin := 0; + rmin_in := xmin_in AND ymin_in; + amin := angle( 0 - ab ); + amin_in := ymin_in; + amax := angle( ( 0.5 * PI ) - ab ); + amax_in := xmin_in; + END_IF; + END_IF; + ELSE + IF xc <= xmin THEN + angle_minmax( ab, ( -0.5 ) * PI, ( xc = xmin ) AND xmin_in, amin, amax, amin_in, amax_in ); + END_IF; + END_IF; + IF ( NOT is_ymax ) AND ( xc <= xmin ) THEN + angle_minmax( ab, 0.5 * PI, ( xc = xmin ) AND xmin_in, amin, amax, amin_in, amax_in ); + END_IF; + END_IF; + IF is_ymin THEN + IF is_xmax THEN + r := SQRT( ( ( xmax - xc ) ** 2 ) + ( ( ymin - yc ) ** 2 ) ); + incl := xmax_in AND ymin_in; + IF rmax_exists THEN + range_max( r, incl, rmax, rmax_in ); + END_IF; + IF outside THEN + IF r > 0 THEN + range_min( r, incl, rmin, rmin_in ); + a := angle( atan2( ymin - yc, xmax - xc ) - ab ); + IF xc = xmax THEN + incl := xmax_in; + END_IF; + IF yc = ymin THEN + incl := ymin_in; + END_IF; + angle_minmax( ab, a, incl, amin, amax, amin_in, amax_in ); + ELSE + rmin := 0; + rmin_in := xmax_in AND ymin_in; + amin := angle( ( 0.5 * PI ) - ab ); + amin_in := ymin_in; + amax := angle( PI - ab ); + amax_in := xmax_in; + END_IF; + END_IF; + ELSE + IF yc <= ymin THEN + angle_minmax( ab, 0, ( yc = ymin ) AND ymin_in, amin, amax, amin_in, amax_in ); + END_IF; + END_IF; + IF ( NOT is_xmin ) AND ( yc <= ymin ) THEN + angle_minmax( ab, PI, ( yc = ymin ) AND ymin_in, amin, amax, amin_in, amax_in ); + END_IF; + END_IF; + IF is_xmax THEN + IF is_ymax THEN + r := SQRT( ( ( xmax - xc ) ** 2 ) + ( ( ymax - yc ) ** 2 ) ); + incl := xmax_in AND ymax_in; + IF rmax_exists THEN + range_max( r, incl, rmax, rmax_in ); + END_IF; + IF outside THEN + IF r > 0 THEN + range_min( r, incl, rmin, rmin_in ); + a := angle( atan2( ymax - yc, xmax - xc ) - ab ); + IF xc = xmax THEN + incl := xmax_in; + END_IF; + IF yc = ymax THEN + incl := ymax_in; + END_IF; + angle_minmax( ab, a, incl, amin, amax, amin_in, amax_in ); + ELSE + rmin := 0; + rmin_in := xmax_in AND ymax_in; + amin := angle( ( -PI ) - ab ); + amin_in := ymax_in; + amax := angle( ( ( -0.5 ) * PI ) - ab ); + amax_in := xmax_in; + END_IF; + END_IF; + ELSE + IF xc >= xmax THEN + angle_minmax( ab, 0.5 * PI, ( xc = xmax ) AND xmax_in, amin, amax, amin_in, amax_in ); + END_IF; + END_IF; + IF ( NOT is_ymin ) AND ( xc >= xmax ) THEN + angle_minmax( ab, ( -0.5 ) * PI, ( xc = xmax ) AND xmax_in, amin, amax, amin_in, amax_in ); + END_IF; + END_IF; + IF is_ymax THEN + IF is_xmin THEN + r := SQRT( ( ( xmin - xc ) ** 2 ) + ( ( ymax - yc ) ** 2 ) ); + incl := xmin_in AND ymax_in; + IF rmax_exists THEN + range_max( r, incl, rmax, rmax_in ); + END_IF; + IF outside THEN + IF r > 0 THEN + range_min( r, incl, rmin, rmin_in ); + a := angle( atan2( ymax - yc, xmin - xc ) - ab ); + IF xc = xmin THEN + incl := xmin_in; + END_IF; + IF yc = ymax THEN + incl := ymax_in; + END_IF; + angle_minmax( ab, a, incl, amin, amax, amin_in, amax_in ); + ELSE + rmin := 0; + rmin_in := xmin_in AND ymax_in; + amin := angle( ( 0.5 * PI ) - ab ); + amin_in := ymax_in; + amax := angle( PI - ab ); + amax_in := xmin_in; + END_IF; + END_IF; + ELSE + IF yc >= ymax THEN + angle_minmax( ab, PI, ( yc = ymax ) AND ymax_in, amin, amax, amin_in, amax_in ); + END_IF; + END_IF; + IF ( NOT is_xmax ) AND ( yc >= ymax ) THEN + angle_minmax( ab, 0, ( yc = ymax ) AND ymax_in, amin, amax, amin_in, amax_in ); + END_IF; + END_IF; + IF outside THEN + amin := angle( amin + ab ); + IF amin = PI THEN + amin := -PI; + END_IF; + amax := angle( amax + ab ); + IF amax <= amin THEN + amax := amax + ( 2 * PI ); + END_IF; + ELSE + amin := -PI; + amin_in := FALSE; + amax := PI; + amax_in := FALSE; + END_IF; + IF amin_in THEN + minclo := closed; + END_IF; + IF amax_in THEN + maxclo := closed; + END_IF; + aitv := make_finite_real_interval( amin, minclo, amax, maxclo ); + minclo := open; + IF rmin_in THEN + minclo := closed; + END_IF; + IF rmax_exists THEN + maxclo := open; + IF rmax_in THEN + maxclo := closed; + END_IF; + ritv := make_finite_real_interval( rmin, minclo, rmax, maxclo ); + ELSE + ritv := make_real_interval_from_min( rmin, minclo ); + END_IF; + RETURN( make_polar_complex_number_region( centre, ritv, aitv ) ); + + END_FUNCTION; + + FUNCTION enclose_pregion_in_cregion( + prgn : polar_complex_number_region + ) : cartesian_complex_number_region; + + PROCEDURE nearest_good_direction( + acart : REAL; + aitv : finite_real_interval; + VAR a : REAL; + VAR a_in : BOOLEAN ); + a := acart; + a_in := TRUE; + IF a < aitv.min THEN + IF ( a + ( 2 * PI ) ) < aitv.max THEN + RETURN; + END_IF; + IF ( a + ( 2 * PI ) ) = aitv.max THEN + a_in := max_included( aitv ); + RETURN; + END_IF; + ELSE + IF a = aitv.min THEN + a_in := min_included( aitv ); + RETURN; + ELSE + IF a < aitv.max THEN + RETURN; + ELSE + IF a = aitv.max THEN + a_in := max_included( aitv ); + RETURN; + END_IF; + END_IF; + END_IF; + END_IF; + IF COS( acart - aitv.max ) >= COS( acart - aitv.min ) THEN + a := aitv.max; + a_in := max_included( aitv ); + ELSE + a := aitv.min; + a_in := min_included( aitv ); + END_IF; + + END_PROCEDURE; + + LOCAL + xc : REAL := 0; + yc : REAL := 0; + xmin : REAL := 0; + xmax : REAL := 0; + ymin : REAL := 0; + ymax : REAL := 0; + ritv : real_interval; + xitv : real_interval; + yitv : real_interval; + aitv : finite_real_interval; + xmin_exists : BOOLEAN; + xmax_exists : BOOLEAN; + ymin_exists : BOOLEAN; + ymax_exists : BOOLEAN; + xmin_in : BOOLEAN := FALSE; + xmax_in : BOOLEAN := FALSE; + ymin_in : BOOLEAN := FALSE; + ymax_in : BOOLEAN := FALSE; + a : REAL := 0; + r : REAL := 0; + a_in : BOOLEAN := FALSE; + min_clo : open_closed := open; + max_clo : open_closed := open; + END_LOCAL; + IF NOT EXISTS( prgn ) THEN + RETURN( ? ); + END_IF; + xc := prgn.centre.real_part; + yc := prgn.centre.imag_part; + ritv := prgn.distance_constraint; + aitv := prgn.direction_constraint; + nearest_good_direction( PI, aitv, a, a_in ); + IF COS( a ) >= 0 THEN + xmin_exists := TRUE; + xmin := xc + ( real_min( ritv ) * COS( a ) ); + xmin_in := a_in AND ( min_included( ritv ) OR ( COS( a ) = 0 ) ); + ELSE + IF max_exists( ritv ) THEN + xmin_exists := TRUE; + xmin := xc + ( real_max( ritv ) * COS( a ) ); + xmin_in := a_in AND max_included( ritv ); + ELSE + xmin_exists := FALSE; + END_IF; + END_IF; + nearest_good_direction( 0, aitv, a, a_in ); + IF COS( a ) <= 0 THEN + xmax_exists := TRUE; + xmax := xc + ( real_min( ritv ) * COS( a ) ); + xmax_in := a_in AND ( min_included( ritv ) OR ( COS( a ) = 0 ) ); + ELSE + IF max_exists( ritv ) THEN + xmax_exists := TRUE; + xmax := xc + ( real_max( ritv ) * COS( a ) ); + xmax_in := a_in AND max_included( ritv ); + ELSE + xmax_exists := FALSE; + END_IF; + END_IF; + nearest_good_direction( ( -0.5 ) * PI, aitv, a, a_in ); + IF SIN( a ) >= 0 THEN + ymin_exists := TRUE; + ymin := yc + ( real_min( ritv ) * SIN( a ) ); + ymin_in := a_in AND ( min_included( ritv ) OR ( SIN( a ) = 0 ) ); + ELSE + IF max_exists( ritv ) THEN + ymin_exists := TRUE; + ymin := yc + ( real_max( ritv ) * SIN( a ) ); + ymin_in := a_in AND max_included( ritv ); + ELSE + ymin_exists := FALSE; + END_IF; + END_IF; + nearest_good_direction( 0.5 * PI, aitv, a, a_in ); + IF SIN( a ) <= 0 THEN + ymax_exists := TRUE; + ymax := yc + ( real_min( ritv ) * SIN( a ) ); + ymax_in := a_in AND ( min_included( ritv ) OR ( SIN( a ) = 0 ) ); + ELSE + IF max_exists( ritv ) THEN + ymax_exists := TRUE; + ymax := yc + ( real_max( ritv ) * SIN( a ) ); + ymax_in := a_in AND max_included( ritv ); + ELSE + ymax_exists := FALSE; + END_IF; + END_IF; + IF NOT ( xmin_exists OR xmax_exists OR ymin_exists OR ymax_exists ) THEN + RETURN( ? ); + END_IF; + IF xmin_exists THEN + IF xmin_in THEN + min_clo := closed; + ELSE + min_clo := open; + END_IF; + IF xmax_exists THEN + IF xmax_in THEN + max_clo := closed; + ELSE + max_clo := open; + END_IF; + xitv := make_finite_real_interval( xmin, min_clo, xmax, max_clo ); + ELSE + xitv := make_real_interval_from_min( xmin, min_clo ); + END_IF; + ELSE + IF xmax_exists THEN + IF xmax_in THEN + max_clo := closed; + ELSE + max_clo := open; + END_IF; + xitv := make_real_interval_to_max( xmax, max_clo ); + ELSE + xitv := the_reals; + END_IF; + END_IF; + IF ymin_exists THEN + IF ymin_in THEN + min_clo := closed; + ELSE + min_clo := open; + END_IF; + IF ymax_exists THEN + IF ymax_in THEN + max_clo := closed; + ELSE + max_clo := open; + END_IF; + yitv := make_finite_real_interval( ymin, min_clo, ymax, max_clo ); + ELSE + yitv := make_real_interval_from_min( ymin, min_clo ); + END_IF; + ELSE + IF ymax_exists THEN + IF ymax_in THEN + max_clo := closed; + ELSE + max_clo := open; + END_IF; + yitv := make_real_interval_to_max( ymax, max_clo ); + ELSE + yitv := the_reals; + END_IF; + END_IF; + RETURN( make_cartesian_complex_number_region( xitv, yitv ) ); + + END_FUNCTION; + + FUNCTION enclose_pregion_in_pregion( + prgn : polar_complex_number_region; + centre : complex_number_literal + ) : polar_complex_number_region; + + FUNCTION angle( + a : REAL + ) : REAL; + REPEAT WHILE a > PI; + a := a - ( 2 * PI ); + END_REPEAT; + REPEAT WHILE a <= ( -PI ); + a := a + ( 2 * PI ); + END_REPEAT; + RETURN( a ); + + END_FUNCTION; + + FUNCTION strictly_in( + a : REAL; + aitv : finite_real_interval + ) : LOGICAL; + a := angle( a ); + RETURN( ( ( aitv.min < a ) AND ( a < aitv.max ) ) OR ( ( aitv.min < ( a + ( 2 * PI ) ) ) AND ( ( a + ( 2 * PI ) ) < aitv. + max ) ) ); + + END_FUNCTION; + + PROCEDURE angle_range( + VAR amin, amax : REAL ); + amin := angle( amin ); + IF amin = PI THEN + amin := -PI; + END_IF; + amax := angle( amax ); + IF amax <= amin THEN + amax := amax + ( 2 * PI ); + END_IF; + + END_PROCEDURE; + + PROCEDURE find_aminmax( + ab, a0, a1, a2, a3 : REAL; + in0, in1, in2, in3 : BOOLEAN; + VAR amin, amax : REAL; + VAR amin_in, amax_in : BOOLEAN ); + + LOCAL + a : REAL; + END_LOCAL; + amin := angle( a0 - ab ); + amin_in := in0; + amax := amin; + amax_in := in0; + a := angle( a1 - ab ); + IF a = amin THEN + amin_in := amin_in OR in1; + END_IF; + IF a < amin THEN + amin := a; + amin_in := in1; + END_IF; + IF a = amax THEN + amax_in := amax_in OR in1; + END_IF; + IF a > amax THEN + amax := a; + amax_in := in1; + END_IF; + a := angle( a2 - ab ); + IF a = amin THEN + amin_in := amin_in OR in2; + END_IF; + IF a < amin THEN + amin := a; + amin_in := in2; + END_IF; + IF a = amax THEN + amax_in := amax_in OR in2; + END_IF; + IF a > amax THEN + amax := a; + amax_in := in2; + END_IF; + a := angle( a3 - ab ); + IF a = amin THEN + amin_in := amin_in OR in3; + END_IF; + IF a < amin THEN + amin := a; + amin_in := in3; + END_IF; + IF a = amax THEN + amax_in := amax_in OR in3; + END_IF; + IF a > amax THEN + amax := a; + amax_in := in3; + END_IF; + amin := amin + ab; + amax := amax + ab; + angle_range( amin, amax ); + + END_PROCEDURE; + + LOCAL + ritp : real_interval; + ritv : real_interval; + aitp : finite_real_interval; + aitv : finite_real_interval; + xp : REAL := 0; + yp : REAL := 0; + xc : REAL := 0; + yc : REAL := 0; + rmax : REAL := 0; + rmin : REAL := 0; + amin : REAL := 0; + amax : REAL := 0; + rc : REAL := 0; + acp : REAL := 0; + apc : REAL := 0; + rmax_in : BOOLEAN := FALSE; + rmin_in : BOOLEAN := FALSE; + amin_in : BOOLEAN := FALSE; + amax_in : BOOLEAN := FALSE; + rmxp : REAL := 0; + rmnp : REAL := 0; + x : REAL := 0; + y : REAL := 0; + r : REAL := 0; + a : REAL := 0; + ab : REAL := 0; + r0 : REAL := 0; + a0 : REAL := 0; + r1 : REAL := 0; + a1 : REAL := 0; + r2 : REAL := 0; + a2 : REAL := 0; + r3 : REAL := 0; + a3 : REAL := 0; + in0 : BOOLEAN := FALSE; + in1 : BOOLEAN := FALSE; + in2 : BOOLEAN := FALSE; + in3 : BOOLEAN := FALSE; + inn : BOOLEAN := FALSE; + minclo : open_closed := open; + maxclo : open_closed := open; + END_LOCAL; + IF ( NOT EXISTS( prgn ) ) OR ( NOT EXISTS( centre ) ) THEN + RETURN( ? ); + END_IF; + xp := prgn.centre.real_part; + yp := prgn.centre.imag_part; + ritp := prgn.distance_constraint; + aitp := prgn.direction_constraint; + xc := centre.real_part; + yc := centre.imag_part; + IF ( xc = xp ) AND ( yc = yp ) THEN + RETURN( prgn ); + END_IF; + rc := SQRT( ( ( xp - xc ) ** 2 ) + ( ( yp - yc ) ** 2 ) ); + acp := atan2( yp - yc, xp - xc ); + apc := atan2( yc - yp, xc - xp ); + rmnp := real_min( ritp ); + IF max_exists( ritp ) THEN + rmxp := real_max( ritp ); + IF ( aitp.max - aitp.min ) = ( 2 * PI ) THEN + inn := NOT max_included( aitp ); + a := angle( aitp.min ); + rmax := rc + rmxp; + rmax_in := max_included( ritp ); + IF inn AND ( acp = a ) THEN + rmax_in := FALSE; + END_IF; + IF rc > rmxp THEN + a0 := ASIN( rmxp / rc ); + amin := angle( acp - a0 ); + amin_in := max_included( ritp ); + IF amin = PI THEN + amin := -PI; + END_IF; + amax := angle( acp + a0 ); + amax_in := amin_in; + IF amax < amin THEN + amax := amax + ( 2 * PI ); + END_IF; + rmin := rc - rmxp; + rmin_in := amin_in; + IF inn THEN + IF apc = a THEN + rmin_in := FALSE; + END_IF; + IF angle( amin + ( 0.5 * PI ) ) = a THEN + amin_in := FALSE; + END_IF; + IF angle( amax - ( 0.5 * PI ) ) = a THEN + amax_in := FALSE; + END_IF; + END_IF; + ELSE + IF rc = rmxp THEN + amin := angle( acp - ( 0.5 * PI ) ); + amin_in := FALSE; + IF amin = PI THEN + amin := -PI; + END_IF; + amax := angle( acp + ( 0.5 * PI ) ); + amax_in := FALSE; + IF amax < amin THEN + amax := amax + ( 2 * PI ); + END_IF; + rmin := 0; + rmin_in := max_included( ritp ); + IF inn AND ( apc = a ) THEN + rmin_in := FALSE; + END_IF; + ELSE + IF rc > rmnp THEN + IF inn AND ( apc = a ) THEN + rmin := 0; + rmin_in := FALSE; + amin := aitp.min; + amin_in := FALSE; + amax := aitp.max; + amax_in := FALSE; + ELSE + rmin := 0; + rmin_in := TRUE; + amin := -PI; + amin_in := FALSE; + amax := PI; + amax_in := TRUE; + END_IF; + ELSE + rmin := rmnp - rc; + rmin_in := min_included( ritp ); + amin := -PI; + amin_in := FALSE; + amax := PI; + amax_in := TRUE; + IF inn THEN + IF apc = a THEN + rmin_in := FALSE; + amin := aitp.min; + amin_in := FALSE; + amax := aitp.max; + amax_in := FALSE; + ELSE + IF acp = a THEN + amin := aitp.min; + amin_in := FALSE; + amax := aitp.max; + amax_in := FALSE; + END_IF; + END_IF; + END_IF; + END_IF; + END_IF; + END_IF; + ELSE + x := ( xp + ( rmxp * COS( aitp.min ) ) ) - xc; + y := ( yp + ( rmxp * SIN( aitp.min ) ) ) - yc; + r0 := SQRT( ( x ** 2 ) + ( y ** 2 ) ); + in0 := max_included( ritp ) AND min_included( aitp ); + IF r0 <> 0 THEN + a0 := atan2( y, x ); + END_IF; + x := ( xp + ( rmxp * COS( aitp.max ) ) ) - xc; + y := ( yp + ( rmxp * SIN( aitp.max ) ) ) - yc; + r1 := SQRT( ( x ** 2 ) + ( y ** 2 ) ); + in1 := max_included( ritp ) AND max_included( aitp ); + IF r1 <> 0 THEN + a1 := atan2( y, x ); + END_IF; + x := ( xp + ( rmnp * COS( aitp.max ) ) ) - xc; + y := ( yp + ( rmnp * SIN( aitp.max ) ) ) - yc; + r2 := SQRT( ( x ** 2 ) + ( y ** 2 ) ); + in2 := min_included( ritp ) AND max_included( aitp ); + IF r2 <> 0 THEN + a2 := atan2( y, x ); + ELSE + a2 := a1; + in2 := in1; + END_IF; + IF r1 = 0 THEN + a1 := a2; + in1 := in2; + END_IF; + x := ( xp + ( rmnp * COS( aitp.min ) ) ) - xc; + y := ( yp + ( rmnp * SIN( aitp.min ) ) ) - yc; + r3 := SQRT( ( x ** 2 ) + ( y ** 2 ) ); + in3 := min_included( ritp ) AND min_included( aitp ); + IF r3 <> 0 THEN + a3 := atan2( y, x ); + ELSE + a3 := a0; + in3 := in0; + END_IF; + IF r0 = 0 THEN + a0 := a3; + in0 := in3; + END_IF; + IF rmnp = 0 THEN + in2 := min_included( ritp ); + in3 := in2; + END_IF; + IF ( apc = angle( aitp.min ) ) OR ( acp = angle( aitp.min ) ) THEN + in0 := min_included( aitp ); + in3 := in0; + ELSE + IF ( apc = angle( aitp.max ) ) OR ( acp = angle( aitp.max ) ) THEN + in1 := max_included( aitp ); + in2 := in1; + END_IF; + END_IF; + IF strictly_in( acp, aitp ) THEN + rmax := rc + rmxp; + rmax_in := max_included( ritp ); + ELSE + rmax := r0; + rmax_in := in0; + IF rmax = r1 THEN + rmax_in := rmax_in OR in1; + END_IF; + IF rmax < r1 THEN + rmax := r1; + rmax_in := in1; + END_IF; + IF rmax = r2 THEN + rmax_in := rmax_in OR in2; + END_IF; + IF rmax < r2 THEN + rmax := r2; + rmax_in := in2; + END_IF; + IF rmax = r3 THEN + rmax_in := rmax_in OR in3; + END_IF; + IF rmax < r3 THEN + rmax := r3; + rmax_in := in3; + END_IF; + END_IF; + IF strictly_in( apc, aitp ) THEN + IF rc >= rmxp THEN + rmin := rc - rmxp; + rmin_in := max_included( ritp ); + ELSE + IF rc <= rmnp THEN + rmin := rmnp - rc; + rmin_in := min_included( ritp ); + ELSE + rmin := 0; + rmin_in := TRUE; + END_IF; + END_IF; + ELSE + rmin := r0; + rmin_in := in0; + a := apc - aitp.min; + r := rc * COS( a ); + IF ( rmnp < r ) AND ( r < rmxp ) THEN + rmin := rc * SIN( ABS( a ) ); + rmin_in := min_included( aitp ); + END_IF; + a := apc - aitp.max; + r := rc * COS( a ); + IF ( rmnp < r ) AND ( r < rmxp ) THEN + r := rc * SIN( ABS( a ) ); + inn := max_included( aitp ); + IF r = rmin THEN + rmin_in := rmin_in OR inn; + END_IF; + IF r < rmin THEN + rmin := r; + rmin_in := inn; + END_IF; + END_IF; + IF r1 = rmin THEN + rmin_in := rmin_in OR in1; + END_IF; + IF r1 < rmin THEN + rmin := r1; + rmin_in := in1; + END_IF; + IF r2 = rmin THEN + rmin_in := rmin_in OR in2; + END_IF; + IF r2 < rmin THEN + rmin := r2; + rmin_in := in2; + END_IF; + IF r3 = rmin THEN + rmin_in := rmin_in OR in3; + END_IF; + IF r3 < rmin THEN + rmin := r3; + rmin_in := in3; + END_IF; + END_IF; + IF rc >= rmxp THEN + ab := acp; + find_aminmax( ab, a0, a1, a2, a3, in0, in1, in2, in3, amin, amax, amin_in, amax_in ); + a := ACOS( rmxp / rc ); + IF strictly_in( apc - a, aitp ) THEN + amin := ab - ASIN( rmxp / rc ); + amin_in := max_included( ritp ); + END_IF; + IF strictly_in( apc + a, aitp ) THEN + amax := ab + ASIN( rmxp / rc ); + amax_in := max_included( ritp ); + END_IF; + angle_range( amin, amax ); + ELSE + IF rc > rmnp THEN + ab := angle( 0.5 * ( aitp.min + aitp.max ) ); + find_aminmax( ab, a0, a1, a2, a3, in0, in1, in2, in3, amin, amax, amin_in, amax_in ); + ELSE + ab := angle( 0.5 * ( aitp.min + aitp.max ) ); + a0 := angle( a0 - ab ); + a1 := angle( a1 - ab ); + a2 := angle( a2 - ab ); + a3 := angle( a3 - ab ); + IF a3 > a2 THEN + a2 := a2 + ( 2 * PI ); + END_IF; + IF a0 > a1 THEN + a0 := a0 + ( 2 * PI ); + END_IF; + IF a3 < a0 THEN + amin := a3; + amin_in := in3; + ELSE + amin := a0; + amin_in := in0; + END_IF; + IF a2 > a1 THEN + amax := a2; + amax_in := in2; + ELSE + amax := a1; + amax_in := in1; + END_IF; + IF ( ( amax - amin ) > ( 2 * PI ) ) OR ( ( ( amax - amin ) = ( 2 * PI ) ) AND ( amin_in OR amax_in ) ) THEN + amin := -PI; + amin_in := FALSE; + amax := PI; + amax_in := TRUE; + ELSE + amin := amin + ab; + amax := amax + ab; + angle_range( amin, amax ); + END_IF; + END_IF; + END_IF; + END_IF; + IF rmin_in THEN + minclo := closed; + END_IF; + IF rmax_in THEN + maxclo := closed; + END_IF; + ritv := make_finite_real_interval( rmin, minclo, rmax, maxclo ); + ELSE + IF ( rc > rmnp ) AND strictly_in( apc, aitp ) THEN + RETURN( ? ); + END_IF; + IF ( aitp.max - aitp.min ) = ( 2 * PI ) THEN + a := angle( aitp.min ); + IF rc > rmnp THEN + IF max_included( aitp ) THEN + RETURN( ? ); + END_IF; + rmin := 0; + rmin_in := FALSE; + amin := aitp.min; + amin_in := FALSE; + amax := aitp.max; + amax_in := FALSE; + ELSE + rmin := rmnp - rc; + rmin_in := min_included( ritp ); + amin := -PI; + amin_in := FALSE; + amax := PI; + amax_in := TRUE; + IF NOT max_included( aitp ) THEN + IF apc = a THEN + rmin_in := FALSE; + amin := aitp.min; + amin_in := FALSE; + amax := aitp.max; + amax_in := FALSE; + ELSE + IF acp = a THEN + amin := aitp.min; + amin_in := FALSE; + amax := aitp.max; + amax_in := FALSE; + END_IF; + END_IF; + END_IF; + END_IF; + ELSE + a0 := angle( aitp.min ); + in0 := FALSE; + a1 := angle( aitp.max ); + in1 := FALSE; + x := ( xp + ( rmnp * COS( aitp.max ) ) ) - xc; + y := ( yp + ( rmnp * SIN( aitp.max ) ) ) - yc; + r2 := SQRT( ( x ** 2 ) + ( y ** 2 ) ); + in2 := min_included( ritp ) AND max_included( aitp ); + IF r2 <> 0 THEN + a2 := atan2( y, x ); + ELSE + a2 := a1; + in2 := in1; + END_IF; + x := ( xp + ( rmnp * COS( aitp.min ) ) ) - xc; + y := ( yp + ( rmnp * SIN( aitp.min ) ) ) - yc; + r3 := SQRT( ( x ** 2 ) + ( y ** 2 ) ); + in3 := min_included( ritp ) AND min_included( aitp ); + IF r3 <> 0 THEN + a3 := atan2( y, x ); + ELSE + a3 := a0; + in3 := in0; + END_IF; + IF rmnp = 0 THEN + in2 := min_included( ritp ); + in3 := in2; + END_IF; + IF ( apc = angle( aitp.min ) ) OR ( acp = angle( aitp.min ) ) THEN + in0 := min_included( aitp ); + in3 := in0; + ELSE + IF ( apc = angle( aitp.max ) ) OR ( acp = angle( aitp.max ) ) THEN + in1 := max_included( aitp ); + in2 := in1; + END_IF; + END_IF; + IF strictly_in( apc, aitp ) THEN + rmin := rmnp - rc; + rmin_in := min_included( ritp ); + ELSE + rmin := r2; + rmin_in := in2; + a := apc - aitp.min; + r := rc * COS( a ); + IF rmnp < r THEN + rmin := rc * SIN( ABS( a ) ); + rmin_in := min_included( aitp ); + END_IF; + a := apc - aitp.max; + r := rc * COS( a ); + IF rmnp < r THEN + r := rc * SIN( ABS( a ) ); + inn := max_included( aitp ); + IF r = rmin THEN + rmin_in := rmin_in OR inn; + END_IF; + IF r < rmin THEN + rmin := r; + rmin_in := inn; + END_IF; + END_IF; + IF r3 = rmin THEN + rmin_in := rmin_in OR in3; + END_IF; + IF r3 < rmin THEN + rmin := r3; + rmin_in := in3; + END_IF; + END_IF; + ab := angle( 0.5 * ( aitp.min + aitp.max ) ); + IF rc > rmnp THEN + find_aminmax( ab, a0, a1, a2, a3, in0, in1, in2, in3, amin, amax, amin_in, amax_in ); + ELSE + a0 := angle( a0 - ab ); + a1 := angle( a1 - ab ); + a2 := angle( a2 - ab ); + a3 := angle( a3 - ab ); + IF a3 > a2 THEN + a2 := a2 + ( 2 * PI ); + END_IF; + IF a0 > a1 THEN + a0 := a0 + ( 2 * PI ); + END_IF; + IF a3 < a0 THEN + amin := a3; + amin_in := in3; + ELSE + amin := a0; + amin_in := in0; + END_IF; + IF a2 > a1 THEN + amax := a2; + amax_in := in2; + ELSE + amax := a1; + amax_in := in1; + END_IF; + IF ( ( amax - amin ) > ( 2 * PI ) ) OR ( ( ( amax - amin ) = ( 2 * PI ) ) AND ( amin_in OR amax_in ) ) THEN + amin := -PI; + amin_in := FALSE; + amax := PI; + amax_in := TRUE; + IF ( rmin = 0 ) AND rmin_in THEN + RETURN( ? ); + END_IF; + ELSE + amin := amin + ab; + amax := amax + ab; + angle_range( amin, amax ); + END_IF; + END_IF; + END_IF; + IF rmin_in THEN + minclo := closed; + END_IF; + ritv := make_real_interval_from_min( rmin, minclo ); + END_IF; + minclo := open; + maxclo := open; + IF amin_in THEN + minclo := closed; + END_IF; + IF amax_in THEN + maxclo := closed; + END_IF; + aitv := make_finite_real_interval( amin, minclo, amax, maxclo ); + RETURN( make_polar_complex_number_region( centre, ritv, aitv ) ); + + END_FUNCTION; + + FUNCTION equal_cregion_pregion( + crgn : cartesian_complex_number_region; + prgn : polar_complex_number_region + ) : LOGICAL; + + LOCAL + arng : REAL; + amin : REAL; + xc : REAL; + yc : REAL; + aitv : real_interval; + xitv : real_interval; + yitv : real_interval; + c_in : BOOLEAN; + END_LOCAL; + IF ( NOT EXISTS( crgn ) ) OR ( NOT EXISTS( prgn ) ) THEN + RETURN( FALSE ); + END_IF; + IF max_exists( prgn.distance_constraint ) THEN + RETURN( FALSE ); + END_IF; + IF real_min( prgn.distance_constraint ) <> 0 THEN + RETURN( FALSE ); + END_IF; + c_in := min_included( prgn.distance_constraint ); + aitv := prgn.direction_constraint; + amin := aitv.min; + arng := aitv.max - amin; + xc := prgn.centre.real_part; + yc := prgn.centre.imag_part; + xitv := crgn.real_constraint; + yitv := crgn.imag_constraint; + IF arng = ( 0.5 * PI ) THEN + IF amin = 0 THEN + RETURN( ( NOT max_exists( xitv ) ) AND ( NOT max_exists( yitv ) ) AND min_exists( xitv ) AND min_exists( yitv ) AND ( + real_min( xitv ) = xc ) AND ( real_min( yitv ) = yc ) AND ( ( c_in AND min_included( aitv ) AND max_included( aitv ) + AND min_included( xitv ) AND min_included( yitv ) ) OR ( ( NOT c_in ) AND ( NOT min_included( aitv ) ) AND + max_included( aitv ) AND min_included( xitv ) AND ( NOT min_included( yitv ) ) ) OR ( ( NOT c_in ) AND min_included( + aitv ) AND ( NOT max_included( aitv ) ) AND ( NOT min_included( xitv ) ) AND min_included( yitv ) ) OR ( ( NOT c_in ) + AND ( NOT min_included( aitv ) ) AND ( NOT max_included( aitv ) ) AND ( NOT min_included( xitv ) ) AND ( NOT + min_included( yitv ) ) ) ) ); + END_IF; + IF amin = ( 0.5 * PI ) THEN + RETURN( max_exists( xitv ) AND ( NOT max_exists( yitv ) ) AND ( NOT min_exists( xitv ) ) AND min_exists( yitv ) AND ( + real_max( xitv ) = xc ) AND ( real_min( yitv ) = yc ) AND ( ( c_in AND min_included( aitv ) AND max_included( aitv ) + AND max_included( xitv ) AND min_included( yitv ) ) OR ( ( NOT c_in ) AND ( NOT min_included( aitv ) ) AND + max_included( aitv ) AND max_included( xitv ) AND ( NOT min_included( yitv ) ) ) OR ( ( NOT c_in ) AND min_included( + aitv ) AND ( NOT max_included( aitv ) ) AND ( NOT max_included( xitv ) ) AND min_included( yitv ) ) OR ( ( NOT c_in ) + AND ( NOT min_included( aitv ) ) AND ( NOT max_included( aitv ) ) AND ( NOT max_included( xitv ) ) AND ( NOT + min_included( yitv ) ) ) ) ); + END_IF; + IF amin = ( -PI ) THEN + RETURN( max_exists( xitv ) AND max_exists( yitv ) AND ( NOT min_exists( xitv ) ) AND ( NOT min_exists( yitv ) ) AND ( + real_max( xitv ) = xc ) AND ( real_max( yitv ) = yc ) AND ( ( c_in AND min_included( aitv ) AND max_included( aitv ) + AND max_included( xitv ) AND max_included( yitv ) ) OR ( ( NOT c_in ) AND ( NOT min_included( aitv ) ) AND + max_included( aitv ) AND max_included( xitv ) AND ( NOT max_included( yitv ) ) ) OR ( ( NOT c_in ) AND min_included( + aitv ) AND ( NOT max_included( aitv ) ) AND ( NOT max_included( xitv ) ) AND max_included( yitv ) ) OR ( ( NOT c_in ) + AND ( NOT min_included( aitv ) ) AND ( NOT max_included( aitv ) ) AND ( NOT max_included( xitv ) ) AND ( NOT + max_included( yitv ) ) ) ) ); + END_IF; + IF amin = ( ( -0.5 ) * PI ) THEN + RETURN( ( NOT max_exists( xitv ) ) AND max_exists( yitv ) AND min_exists( xitv ) AND ( NOT min_exists( yitv ) ) AND ( + real_min( xitv ) = xc ) AND ( real_max( yitv ) = yc ) AND ( ( c_in AND min_included( aitv ) AND max_included( aitv ) + AND min_included( xitv ) AND max_included( yitv ) ) OR ( ( NOT c_in ) AND ( NOT min_included( aitv ) ) AND + max_included( aitv ) AND min_included( xitv ) AND ( NOT max_included( yitv ) ) ) OR ( ( NOT c_in ) AND min_included( + aitv ) AND ( NOT max_included( aitv ) ) AND ( NOT min_included( xitv ) ) AND max_included( yitv ) ) OR ( ( NOT c_in ) + AND ( NOT min_included( aitv ) ) AND ( NOT max_included( aitv ) ) AND ( NOT min_included( xitv ) ) AND ( NOT + max_included( yitv ) ) ) ) ); + END_IF; + END_IF; + IF arng = PI THEN + IF amin = 0 THEN + RETURN( ( NOT max_exists( xitv ) ) AND ( NOT max_exists( yitv ) ) AND ( NOT min_exists( xitv ) ) AND min_exists( yitv ) + AND ( real_min( yitv ) = yc ) AND ( ( c_in AND min_included( aitv ) AND max_included( aitv ) AND min_included( yitv ) ) + OR ( ( NOT c_in ) AND ( NOT min_included( aitv ) ) AND ( NOT max_included( aitv ) ) AND ( NOT min_included( yitv ) ) ) ) ); + END_IF; + IF amin = ( 0.5 * PI ) THEN + RETURN( max_exists( xitv ) AND ( NOT max_exists( yitv ) ) AND ( NOT min_exists( xitv ) ) AND ( NOT min_exists( yitv ) ) + AND ( real_max( xitv ) = xc ) AND ( ( c_in AND min_included( aitv ) AND max_included( aitv ) AND max_included( xitv ) ) + OR ( ( NOT c_in ) AND ( NOT min_included( aitv ) ) AND ( NOT max_included( aitv ) ) AND ( NOT max_included( xitv ) ) ) ) ); + END_IF; + IF amin = ( -PI ) THEN + RETURN( ( NOT max_exists( xitv ) ) AND max_exists( yitv ) AND ( NOT min_exists( xitv ) ) AND ( NOT min_exists( yitv ) ) + AND ( real_max( yitv ) = yc ) AND ( ( c_in AND min_included( aitv ) AND max_included( aitv ) AND max_included( yitv ) ) + OR ( ( NOT c_in ) AND ( NOT min_included( aitv ) ) AND ( NOT max_included( aitv ) ) AND ( NOT max_included( yitv ) ) ) ) ); + END_IF; + IF amin = ( ( -0.5 ) * PI ) THEN + RETURN( ( NOT max_exists( xitv ) ) AND ( NOT max_exists( yitv ) ) AND min_exists( xitv ) AND ( NOT min_exists( yitv ) ) + AND ( real_min( xitv ) = xc ) AND ( ( c_in AND min_included( aitv ) AND max_included( aitv ) AND min_included( xitv ) ) + OR ( ( NOT c_in ) AND ( NOT min_included( aitv ) ) AND ( NOT max_included( aitv ) ) AND ( NOT min_included( xitv ) ) ) ) ); + END_IF; + END_IF; + RETURN( FALSE ); + + END_FUNCTION; + + FUNCTION equal_maths_functions( + fun1, fun2 : maths_function + ) : LOGICAL; + + LOCAL + cum : LOGICAL; + END_LOCAL; + IF fun1 = fun2 THEN + RETURN( TRUE ); + END_IF; + cum := equal_maths_spaces( fun1.domain, fun2.domain ); + IF cum = FALSE THEN + RETURN( FALSE ); + END_IF; + cum := cum AND equal_maths_spaces( fun1.range, fun2.range ); + IF cum = FALSE THEN + RETURN( FALSE ); + END_IF; + RETURN( UNKNOWN ); + + END_FUNCTION; + + FUNCTION equal_maths_spaces( + spc1, spc2 : maths_space + ) : LOGICAL; + + LOCAL + spc1types : SET OF STRING := stripped_typeof( spc1 ); + spc2types : SET OF STRING := stripped_typeof( spc2 ); + set1 : SET OF maths_value; + set2 : SET OF maths_value; + cum : LOGICAL := TRUE; + base : maths_space; + expnt : INTEGER; + factors : LIST OF maths_space; + factors2 : LIST OF maths_space; + fs1 : function_space; + fs2 : function_space; + cum2 : LOGICAL; + END_LOCAL; + IF spc1 = spc2 THEN + RETURN( TRUE ); + END_IF; + IF 'FINITE_SPACE' IN spc1types THEN + set1 := spc1\finite_space.members; + IF 'FINITE_SPACE' IN spc2types THEN + set2 := spc2\finite_space.members; + REPEAT i := 1 TO SIZEOF( set1 ) BY 1; + cum := cum AND member_of( set1[i], spc2 ); + IF cum = FALSE THEN + RETURN( FALSE ); + END_IF; + END_REPEAT; + IF cum = TRUE THEN + REPEAT i := 1 TO SIZEOF( set2 ) BY 1; + cum := cum AND member_of( set2[i], spc1 ); + IF cum = FALSE THEN + RETURN( FALSE ); + END_IF; + END_REPEAT; + END_IF; + RETURN( cum ); + END_IF; + IF 'FINITE_INTEGER_INTERVAL' IN spc2types THEN + set2 := []; + REPEAT i := spc2\finite_integer_interval.min TO spc2\finite_integer_interval.max BY 1; + set2 := set2 + [i]; + END_REPEAT; + RETURN( equal_maths_spaces( spc1, make_finite_space( set2 ) ) ); + END_IF; + END_IF; + IF ( 'FINITE_INTEGER_INTERVAL' IN spc1types ) AND ( 'FINITE_SPACE' IN spc2types ) THEN + set1 := []; + REPEAT i := spc1\finite_integer_interval.min TO spc1\finite_integer_interval.max BY 1; + set1 := set1 + [i]; + END_REPEAT; + RETURN( equal_maths_spaces( make_finite_space( set1 ), spc2 ) ); + END_IF; + IF ( 'CARTESIAN_COMPLEX_NUMBER_REGION' IN spc1types ) AND ( 'POLAR_COMPLEX_NUMBER_REGION' IN spc2types ) THEN + RETURN( equal_cregion_pregion( spc1, spc2 ) ); + END_IF; + IF ( 'POLAR_COMPLEX_NUMBER_REGION' IN spc1types ) AND ( 'CARTESIAN_COMPLEX_NUMBER_REGION' IN spc2types ) THEN + RETURN( equal_cregion_pregion( spc2, spc1 ) ); + END_IF; + IF 'UNIFORM_PRODUCT_SPACE' IN spc1types THEN + base := spc1\uniform_product_space.base; + expnt := spc1\uniform_product_space.exponent; + IF 'UNIFORM_PRODUCT_SPACE' IN spc2types THEN + IF expnt <> spc2\uniform_product_space.exponent THEN + RETURN( FALSE ); + END_IF; + RETURN( equal_maths_spaces( base, spc2\uniform_product_space.base ) ); + END_IF; + IF 'LISTED_PRODUCT_SPACE' IN spc2types THEN + factors := spc2\listed_product_space.factors; + IF expnt <> SIZEOF( factors ) THEN + RETURN( FALSE ); + END_IF; + REPEAT i := 1 TO SIZEOF( factors ) BY 1; + cum := cum AND equal_maths_spaces( base, factors[i] ); + IF cum = FALSE THEN + RETURN( FALSE ); + END_IF; + END_REPEAT; + RETURN( cum ); + END_IF; + END_IF; + IF 'LISTED_PRODUCT_SPACE' IN spc1types THEN + factors := spc1\listed_product_space.factors; + IF 'UNIFORM_PRODUCT_SPACE' IN spc2types THEN + IF spc2\uniform_product_space.exponent <> SIZEOF( factors ) THEN + RETURN( FALSE ); + END_IF; + base := spc2\uniform_product_space.base; + REPEAT i := 1 TO SIZEOF( factors ) BY 1; + cum := cum AND equal_maths_spaces( base, factors[i] ); + IF cum = FALSE THEN + RETURN( FALSE ); + END_IF; + END_REPEAT; + RETURN( cum ); + END_IF; + IF 'LISTED_PRODUCT_SPACE' IN spc2types THEN + factors2 := spc2\listed_product_space.factors; + IF SIZEOF( factors ) <> SIZEOF( factors2 ) THEN + RETURN( FALSE ); + END_IF; + REPEAT i := 1 TO SIZEOF( factors ) BY 1; + cum := cum AND equal_maths_spaces( factors[i], factors2[i] ); + IF cum = FALSE THEN + RETURN( FALSE ); + END_IF; + END_REPEAT; + RETURN( cum ); + END_IF; + END_IF; + IF ( 'EXTENDED_TUPLE_SPACE' IN spc1types ) AND ( 'EXTENDED_TUPLE_SPACE' IN spc2types ) THEN + RETURN( equal_maths_spaces( spc1\extended_tuple_space.extender, spc2\extended_tuple_space.extender ) AND + equal_maths_spaces( spc1\extended_tuple_space.base, spc2\extended_tuple_space.base ) ); + END_IF; + IF ( 'FUNCTION_SPACE' IN spc1types ) AND ( 'FUNCTION_SPACE' IN spc2types ) THEN + fs1 := spc1; + fs2 := spc2; + IF fs1.domain_constraint <> fs2.domain_constraint THEN + IF ( fs1.domain_constraint = sc_equal ) OR ( fs2.domain_constraint = sc_equal ) THEN + RETURN( FALSE ); + END_IF; + IF fs1.domain_constraint <> sc_subspace THEN + fs1 := spc2; + fs2 := spc1; + END_IF; + IF ( fs1.domain_constraint <> sc_subspace ) OR ( fs2.domain_constraint <> sc_member ) THEN + RETURN( UNKNOWN ); + END_IF; + IF any_space_satisfies( fs1.domain_constraint, fs1.domain_argument ) <> any_space_satisfies( fs2.domain_constraint, fs2. + domain_argument ) THEN + RETURN( FALSE ); + END_IF; + IF NOT ( 'FINITE_SPACE' IN stripped_typeof( fs2.domain_argument ) ) THEN + RETURN( FALSE ); + END_IF; + IF SIZEOF( [ 'FINITE_SPACE', 'FINITE_INTEGER_INTERVAL'] * stripped_typeof( fs1.domain_argument ) ) = 0 THEN + RETURN( FALSE ); + END_IF; + RETURN( UNKNOWN ); + END_IF; + cum := equal_maths_spaces( fs1.domain_argument, fs2.domain_argument ); + IF cum = FALSE THEN + RETURN( FALSE ); + END_IF; + IF fs1.range_constraint <> fs2.range_constraint THEN + IF ( fs1.range_constraint = sc_equal ) OR ( fs2.range_constraint = sc_equal ) THEN + RETURN( FALSE ); + END_IF; + IF fs1.range_constraint <> sc_subspace THEN + fs1 := spc2; + fs2 := spc1; + END_IF; + IF ( fs1.range_constraint <> sc_subspace ) OR ( fs2.range_constraint <> sc_member ) THEN + RETURN( UNKNOWN ); + END_IF; + IF any_space_satisfies( fs1.range_constraint, fs1.range_argument ) <> any_space_satisfies( fs2.range_constraint, fs2. + range_argument ) THEN + RETURN( FALSE ); + END_IF; + IF NOT ( 'FINITE_SPACE' IN stripped_typeof( fs2.range_argument ) ) THEN + RETURN( FALSE ); + END_IF; + IF SIZEOF( [ 'FINITE_SPACE', 'FINITE_INTEGER_INTERVAL'] * stripped_typeof( fs1.range_argument ) ) = 0 THEN + RETURN( FALSE ); + END_IF; + RETURN( UNKNOWN ); + END_IF; + cum := cum AND equal_maths_spaces( fs1.range_argument, fs2.range_argument ); + RETURN( cum ); + END_IF; + RETURN( FALSE ); + + END_FUNCTION; + + FUNCTION equal_maths_values( + val1, val2 : maths_value + ) : LOGICAL; + + FUNCTION mem_of_vs( + val1, val2 : maths_value + ) : LOGICAL; + IF NOT has_values_space( val2 ) THEN + RETURN( UNKNOWN ); + END_IF; + IF NOT member_of( val1, values_space_of( val2 ) ) THEN + RETURN( FALSE ); + END_IF; + RETURN( UNKNOWN ); + + END_FUNCTION; + + LOCAL + types1 : SET OF STRING; + types2 : SET OF STRING; + list1 : LIST OF maths_value; + list2 : LIST OF maths_value; + cum : LOGICAL := TRUE; + END_LOCAL; + IF ( NOT EXISTS( val1 ) ) OR ( NOT EXISTS( val2 ) ) THEN + RETURN( FALSE ); + END_IF; + IF val1 = val2 THEN + RETURN( TRUE ); + END_IF; + types1 := stripped_typeof( val1 ); + types2 := stripped_typeof( val2 ); + IF ( 'MATHS_ATOM' IN types1 ) OR ( 'COMPLEX_NUMBER_LITERAL' IN types1 ) THEN + IF 'MATHS_ATOM' IN types2 THEN + RETURN( FALSE ); + END_IF; + IF 'COMPLEX_NUMBER_LITERAL' IN types2 THEN + RETURN( FALSE ); + END_IF; + IF 'LIST' IN types2 THEN + RETURN( FALSE ); + END_IF; + IF 'MATHS_SPACE' IN types2 THEN + RETURN( FALSE ); + END_IF; + IF 'MATHS_FUNCTION' IN types2 THEN + RETURN( FALSE ); + END_IF; + IF 'GENERIC_EXPRESSION' IN types2 THEN + RETURN( mem_of_vs( val1, val2 ) ); + END_IF; + RETURN( UNKNOWN ); + END_IF; + IF ( 'MATHS_ATOM' IN types2 ) OR ( 'COMPLEX_NUMBER_LITERAL' IN types2 ) THEN + RETURN( equal_maths_values( val2, val1 ) ); + END_IF; + IF 'LIST' IN types1 THEN + IF 'LIST' IN types2 THEN + list1 := val1; + list2 := val2; + IF SIZEOF( list1 ) <> SIZEOF( list2 ) THEN + RETURN( FALSE ); + END_IF; + REPEAT i := 1 TO SIZEOF( list1 ) BY 1; + cum := cum AND equal_maths_values( list1[i], list2[i] ); + IF cum = FALSE THEN + RETURN( FALSE ); + END_IF; + END_REPEAT; + RETURN( cum ); + END_IF; + IF 'MATHS_SPACE' IN types2 THEN + RETURN( FALSE ); + END_IF; + IF 'MATHS_FUNCTION' IN types2 THEN + RETURN( FALSE ); + END_IF; + IF 'GENERIC_EXPRESSION' IN types2 THEN + RETURN( mem_of_vs( val1, val2 ) ); + END_IF; + RETURN( UNKNOWN ); + END_IF; + IF 'LIST' IN types2 THEN + RETURN( equal_maths_values( val2, val1 ) ); + END_IF; + IF 'MATHS_SPACE' IN types1 THEN + IF 'MATHS_SPACE' IN types2 THEN + RETURN( equal_maths_spaces( val1, val2 ) ); + END_IF; + IF 'MATHS_FUNCTION' IN types2 THEN + RETURN( FALSE ); + END_IF; + IF 'GENERIC_EXPRESSION' IN types2 THEN + RETURN( mem_of_vs( val1, val2 ) ); + END_IF; + RETURN( UNKNOWN ); + END_IF; + IF 'MATHS_SPACE' IN types2 THEN + RETURN( equal_maths_values( val2, val1 ) ); + END_IF; + IF 'MATHS_FUNCTION' IN types1 THEN + IF 'MATHS_FUNCTION' IN types2 THEN + RETURN( equal_maths_functions( val1, val2 ) ); + END_IF; + IF 'GENERIC_EXPRESSION' IN types2 THEN + RETURN( mem_of_vs( val1, val2 ) ); + END_IF; + RETURN( UNKNOWN ); + END_IF; + IF 'MATHS_FUNCTION' IN types2 THEN + RETURN( equal_maths_values( val2, val1 ) ); + END_IF; + IF ( 'GENERIC_EXPRESSION' IN types1 ) AND ( 'GENERIC_EXPRESSION' IN types2 ) THEN + IF ( NOT has_values_space( val1 ) ) OR ( NOT has_values_space( val2 ) ) THEN + RETURN( UNKNOWN ); + END_IF; + IF NOT compatible_spaces( values_space_of( val1 ), values_space_of( val2 ) ) THEN + RETURN( FALSE ); + END_IF; + END_IF; + RETURN( UNKNOWN ); + + END_FUNCTION; + + FUNCTION es_subspace_of_es( + es1, es2 : elementary_space_enumerators + ) : BOOLEAN; + IF ( NOT EXISTS( es1 ) ) OR ( NOT EXISTS( es2 ) ) THEN + RETURN( FALSE ); + END_IF; + IF es1 = es2 THEN + RETURN( TRUE ); + END_IF; + IF es2 = es_generics THEN + RETURN( TRUE ); + END_IF; + IF ( es1 = es_booleans ) AND ( es2 = es_logicals ) THEN + RETURN( TRUE ); + END_IF; + IF ( es2 = es_numbers ) AND ( ( es1 = es_complex_numbers ) OR ( es1 = es_reals ) OR ( es1 = es_integers ) ) THEN + RETURN( TRUE ); + END_IF; + RETURN( FALSE ); + + END_FUNCTION; + + FUNCTION expression_is_constant( + expr : generic_expression + ) : BOOLEAN; + RETURN( bool( SIZEOF( free_variables_of( expr ) ) = 0 ) ); + + END_FUNCTION; + + FUNCTION external_version_assignment_is_valid( + aia : applied_external_identification_assignment + ) : BOOLEAN; + + LOCAL + item : external_identification_item; + role : identification_role; + END_LOCAL; + role := aia.role; + IF role.name = 'version' THEN + REPEAT i := LOINDEX( aia\applied_external_identification_assignment.items ) TO HIINDEX( aia\ + applied_external_identification_assignment.items ) BY 1; + item := aia\applied_external_identification_assignment.items[i]; + IF SIZEOF( [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.EXTERNALLY_DEFINED_GENERAL_PROPERTY'] * + TYPEOF( item ) ) = 0 THEN + RETURN( FALSE ); + END_IF; + END_REPEAT; + RETURN( TRUE ); + ELSE + RETURN( TRUE ); + END_IF; + + END_FUNCTION; + + FUNCTION extract_factors( + tspace : tuple_space; + m, n : INTEGER + ) : tuple_space; + + LOCAL + tsp : tuple_space := the_zero_tuple_space; + END_LOCAL; + REPEAT i := m TO n BY 1; + tsp := assoc_product_space( tsp, factor_space( tspace, i ) ); + END_REPEAT; + RETURN( tsp ); + + END_FUNCTION; + + FUNCTION face_bound_reversed( + a_face_bound : face_bound + ) : face_bound; + + LOCAL + the_reverse : face_bound; + END_LOCAL; + IF 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 factor1( + tspace : tuple_space + ) : maths_space; + + LOCAL + typenames : SET OF STRING := TYPEOF( tspace ); + END_LOCAL; + IF ( schema_prefix + 'UNIFORM_PRODUCT_SPACE' ) IN typenames THEN + RETURN( tspace\uniform_product_space.base ); + END_IF; + IF ( schema_prefix + 'LISTED_PRODUCT_SPACE' ) IN typenames THEN + RETURN( tspace\listed_product_space.factors[1] ); + END_IF; + IF ( schema_prefix + 'EXTENDED_TUPLE_SPACE' ) IN typenames THEN + RETURN( factor1( tspace\extended_tuple_space.base ) ); + END_IF; + RETURN( ? ); + + END_FUNCTION; + + FUNCTION factor_space( + tspace : tuple_space; + idx : positive_integer + ) : maths_space; + + LOCAL + typenames : SET OF STRING := TYPEOF( tspace ); + END_LOCAL; + IF ( schema_prefix + 'UNIFORM_PRODUCT_SPACE' ) IN typenames THEN + IF idx <= tspace\uniform_product_space.exponent THEN + RETURN( tspace\uniform_product_space.base ); + END_IF; + RETURN( ? ); + END_IF; + IF ( schema_prefix + 'LISTED_PRODUCT_SPACE' ) IN typenames THEN + IF idx <= SIZEOF( tspace\listed_product_space.factors ) THEN + RETURN( tspace\listed_product_space.factors[idx] ); + END_IF; + RETURN( ? ); + END_IF; + IF ( schema_prefix + 'EXTENDED_TUPLE_SPACE' ) IN typenames THEN + IF idx <= space_dimension( tspace\extended_tuple_space.base ) THEN + RETURN( factor_space( tspace\extended_tuple_space.base, idx ) ); + END_IF; + RETURN( tspace\extended_tuple_space.extender ); + END_IF; + RETURN( ? ); + + END_FUNCTION; + + FUNCTION find_assembly_root( + constituent : SET OF product_definition + ) : SET OF product_definition; + + LOCAL + local_relation : SET OF assembly_component_usage := []; + local_relation2 : BAG OF assembly_component_usage := []; + local_parent : SET OF product_definition := []; + root : SET OF product_definition; + i : INTEGER := 0; + j : INTEGER := 0; + END_LOCAL; + IF ( SIZEOF( constituent ) = 1 ) AND assembly_root( constituent[1] ) THEN + RETURN( [constituent[1]] ); + ELSE + IF SIZEOF( constituent ) = 0 THEN + RETURN( [] ); + ELSE + REPEAT j := 1 TO HIINDEX( constituent ) BY 1; + local_relation2 := local_relation2 + QUERY ( pdr <* USEDIN( constituent[j], + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PRODUCT_DEFINITION_RELATIONSHIP.' + + 'RELATED_PRODUCT_DEFINITION' ) | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'ASSEMBLY_COMPONENT_USAGE' IN TYPEOF( pdr ) ) ); + END_REPEAT; + local_relation := bag_to_set( local_relation2 ); + IF SIZEOF( local_relation ) = 0 THEN + IF SIZEOF( constituent ) = 1 THEN + RETURN( [constituent[1]] ); + ELSE + RETURN( [] ); + END_IF; + ELSE + REPEAT i := 1 TO HIINDEX( local_relation ) BY 1; + REPEAT j := 1 TO HIINDEX( constituent ) BY 1; + IF local_relation[i].relating_product_definition <> constituent[j] THEN + local_parent := local_parent + local_relation[i].relating_product_definition; + END_IF; + END_REPEAT; + END_REPEAT; + IF ( SIZEOF( local_parent ) = 1 ) AND assembly_root( local_parent[1] ) THEN + RETURN( [local_parent[1]] ); + ELSE + IF SIZEOF( local_parent ) = 0 THEN + RETURN( [] ); + ELSE + root := find_assembly_root( local_parent ); + IF SIZEOF( root ) = 1 THEN + RETURN( root ); + ELSE + IF SIZEOF( root ) = 0 THEN + RETURN( [] ); + END_IF; + END_IF; + END_IF; + END_IF; + END_IF; + END_IF; + END_IF; + RETURN( [] ); + + END_FUNCTION; + + FUNCTION find_representative_shape_representation_of_product_definition( + item : product_definition + ) : shape_representation; + + LOCAL + local_s_r : SET OF shape_representation := []; + END_LOCAL; + local_s_r := QUERY ( z <* find_shape_representation_of_product_definition( item ) | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.REPRESENTATIVE_SHAPE_REPRESENTATION' IN TYPEOF( z ) ) ); + IF SIZEOF( local_s_r ) = 1 THEN + RETURN( local_s_r[1] ); + ELSE + RETURN( ? ); + END_IF; + + END_FUNCTION; + + FUNCTION find_representative_shape_representation_of_shape_aspect( + item : shape_aspect + ) : shape_representation; + + LOCAL + local_s_r : SET OF shape_representation := []; + END_LOCAL; + local_s_r := QUERY ( z <* find_shape_representation_of_shape_aspect( item ) | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.REPRESENTATIVE_SHAPE_REPRESENTATION' IN TYPEOF( z ) ) ); + IF SIZEOF( local_s_r ) = 1 THEN + RETURN( local_s_r[1] ); + ELSE + RETURN( ? ); + END_IF; + + END_FUNCTION; + + FUNCTION find_shape_representation_of_product_definition( + item : product_definition + ) : SET OF shape_representation; + + LOCAL + local_p_d_s : SET OF product_definition_shape := []; + local_p_d_s2 : BAG OF product_definition_shape := []; + local_s_d_r : SET OF shape_definition_representation := []; + local_s_d_r2 : BAG OF shape_definition_representation := []; + local_s_r : SET OF shape_representation := []; + i : INTEGER; + END_LOCAL; + local_p_d_s2 := local_p_d_s2 + QUERY ( pd <* USEDIN( item, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ); + local_p_d_s := bag_to_set( local_p_d_s2 ); + REPEAT i := 1 TO HIINDEX( local_p_d_s ) BY 1; + local_s_d_r2 := local_s_d_r2 + QUERY ( pdr <* USEDIN( local_p_d_s[i], + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) + | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_DEFINITION_REPRESENTATION' IN TYPEOF( pdr ) ) ); + END_REPEAT; + local_s_d_r := bag_to_set( local_s_d_r2 ); + REPEAT i := 1 TO HIINDEX( local_s_d_r ) BY 1; + IF 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION' IN TYPEOF( local_s_d_r[i]. + used_representation ) THEN + local_s_r := local_s_r + local_s_d_r[i].used_representation; + END_IF; + END_REPEAT; + RETURN( local_s_r ); + + END_FUNCTION; + + FUNCTION find_shape_representation_of_shape_aspect( + item : shape_aspect + ) : SET OF shape_representation; + + LOCAL + local_p_d : SET OF property_definition := []; + local_s_d_r : SET OF shape_definition_representation := []; + local_s_d_r2 : BAG OF shape_definition_representation := []; + local_s_r : SET OF shape_representation := []; + i : INTEGER; + END_LOCAL; + local_p_d := bag_to_set( USEDIN( item, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION.DEFINITION' ) ); + REPEAT i := 1 TO HIINDEX( local_p_d ) BY 1; + local_s_d_r2 := local_s_d_r2 + QUERY ( pdr <* USEDIN( local_p_d[i], + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) + | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_DEFINITION_REPRESENTATION' IN TYPEOF( pdr ) ) ); + END_REPEAT; + local_s_d_r := bag_to_set( local_s_d_r2 ); + REPEAT i := 1 TO HIINDEX( local_s_d_r ) BY 1; + IF 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION' IN TYPEOF( local_s_d_r[i]. + used_representation ) THEN + local_s_r := local_s_r + local_s_d_r[i].used_representation; + END_IF; + END_REPEAT; + RETURN( local_s_r ); + + END_FUNCTION; + + FUNCTION first_proj_axis( + z_axis, 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] ) AND ( z.direction_ratios <> [-1, 0, 0] ) THEN + v := dummy_gri || direction( [1, 0, 0] ); + ELSE + v := dummy_gri || direction( [0, 1, 0] ); + END_IF; + ELSE + IF arg.dim <> 3 THEN + RETURN( ? ); + END_IF; + IF cross_product( arg, z ).magnitude = 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 free_variables_of( + expr : generic_expression + ) : SET OF generic_variable; + + LOCAL + typenames : SET OF STRING := stripped_typeof( expr ); + result : SET OF generic_variable := []; + exprs : LIST OF generic_expression := []; + END_LOCAL; + IF 'GENERIC_LITERAL' IN typenames THEN + RETURN( result ); + END_IF; + IF 'GENERIC_VARIABLE' IN typenames THEN + result := result + expr; + RETURN( result ); + END_IF; + IF 'QUANTIFIER_EXPRESSION' IN typenames THEN + exprs := QUERY ( ge <* expr\multiple_arity_generic_expression.operands | ( NOT ( ge IN expr\quantifier_expression.variables ) ) ); + REPEAT i := 1 TO SIZEOF( exprs ) BY 1; + result := result + free_variables_of( exprs[i] ); + END_REPEAT; + REPEAT i := 1 TO SIZEOF( expr\quantifier_expression.variables ) BY 1; + result := result - expr\quantifier_expression.variables[i]; + END_REPEAT; + RETURN( result ); + END_IF; + IF 'UNARY_GENERIC_EXPRESSION' IN typenames THEN + RETURN( free_variables_of( expr\unary_generic_expression.operand ) ); + END_IF; + IF 'BINARY_GENERIC_EXPRESSION' IN typenames THEN + result := free_variables_of( expr\binary_generic_expression.operands[1] ); + RETURN( result + free_variables_of( expr\binary_generic_expression.operands[2] ) ); + END_IF; + IF 'MULTIPLE_ARITY_GENERIC_EXPRESSION' IN typenames THEN + REPEAT i := 1 TO SIZEOF( expr\multiple_arity_generic_expression.operands ) BY 1; + result := result + free_variables_of( expr\multiple_arity_generic_expression.operands[i] ); + END_REPEAT; + RETURN( result ); + END_IF; + RETURN( result ); + + END_FUNCTION; + + FUNCTION function_applicability( + func : maths_function_select; + arguments : LIST [1 : ?] OF maths_value + ) : BOOLEAN; + + LOCAL + domain : tuple_space := convert_to_maths_function( func ).domain; + domain_types : SET OF STRING := TYPEOF( domain ); + narg : positive_integer := SIZEOF( arguments ); + arg : generic_expression; + END_LOCAL; + IF ( schema_prefix + 'PRODUCT_SPACE' ) IN domain_types THEN + IF space_dimension( domain ) <> narg THEN + RETURN( FALSE ); + END_IF; + ELSE + IF ( schema_prefix + 'EXTENDED_TUPLE_SPACE' ) IN domain_types THEN + IF space_dimension( domain ) > narg THEN + RETURN( FALSE ); + END_IF; + ELSE + RETURN( FALSE ); + END_IF; + END_IF; + REPEAT i := 1 TO narg BY 1; + arg := convert_to_operand( arguments[i] ); + IF NOT has_values_space( arg ) THEN + RETURN( FALSE ); + END_IF; + IF NOT compatible_spaces( factor_space( domain, i ), values_space_of( arg ) ) THEN + RETURN( FALSE ); + END_IF; + END_REPEAT; + RETURN( TRUE ); + + END_FUNCTION; + + FUNCTION function_is_1d_array( + func : maths_function + ) : BOOLEAN; + + LOCAL + temp : maths_space; + END_LOCAL; + IF NOT EXISTS( func ) THEN + RETURN( FALSE ); + END_IF; + IF space_dimension( func.domain ) <> 1 THEN + RETURN( FALSE ); + END_IF; + temp := factor1( func.domain ); + IF ( schema_prefix + 'PRODUCT_SPACE' ) IN TYPEOF( temp ) THEN + IF space_dimension( temp ) <> 1 THEN + RETURN( FALSE ); + END_IF; + temp := factor1( temp ); + END_IF; + IF ( schema_prefix + 'FINITE_INTEGER_INTERVAL' ) IN TYPEOF( temp ) THEN + RETURN( TRUE ); + END_IF; + RETURN( FALSE ); + + END_FUNCTION; + + FUNCTION function_is_1d_table( + func : maths_function + ) : BOOLEAN; + + LOCAL + temp : maths_space; + itvl : finite_integer_interval; + END_LOCAL; + IF NOT EXISTS( func ) THEN + RETURN( FALSE ); + END_IF; + IF space_dimension( func.domain ) <> 1 THEN + RETURN( FALSE ); + END_IF; + temp := factor1( func.domain ); + IF ( schema_prefix + 'PRODUCT_SPACE' ) IN TYPEOF( temp ) THEN + IF space_dimension( temp ) <> 1 THEN + RETURN( FALSE ); + END_IF; + temp := factor1( temp ); + END_IF; + IF ( schema_prefix + 'FINITE_INTEGER_INTERVAL' ) IN TYPEOF( temp ) THEN + itvl := temp; + RETURN( bool( ( itvl.min = 0 ) OR ( itvl.min = 1 ) ) ); + END_IF; + RETURN( FALSE ); + + END_FUNCTION; + + FUNCTION function_is_2d_table( + func : maths_function + ) : BOOLEAN; + + LOCAL + temp : maths_space; + pspace : product_space; + itvl1 : finite_integer_interval; + itvl2 : finite_integer_interval; + END_LOCAL; + IF NOT EXISTS( func ) THEN + RETURN( FALSE ); + END_IF; + IF space_dimension( func.domain ) <> 1 THEN + RETURN( FALSE ); + END_IF; + temp := factor1( func.domain ); + IF NOT ( 'PRODUCT_SPACE' IN stripped_typeof( temp ) ) THEN + RETURN( FALSE ); + END_IF; + pspace := temp; + IF space_dimension( pspace ) <> 2 THEN + RETURN( FALSE ); + END_IF; + temp := factor1( pspace ); + IF NOT ( 'FINITE_INTEGER_INTERVAL' IN stripped_typeof( temp ) ) THEN + RETURN( FALSE ); + END_IF; + itvl1 := temp; + temp := factor_space( pspace, 2 ); + IF NOT ( 'FINITE_INTEGER_INTERVAL' IN stripped_typeof( temp ) ) THEN + RETURN( FALSE ); + END_IF; + itvl2 := temp; + RETURN( bool( ( itvl1.min = itvl2.min ) AND ( ( itvl1.min = 0 ) OR ( itvl1.min = 1 ) ) ) ); + + END_FUNCTION; + + FUNCTION function_is_array( + func : maths_function + ) : BOOLEAN; + + LOCAL + tspace : tuple_space; + temp : maths_space; + END_LOCAL; + IF NOT EXISTS( func ) THEN + RETURN( FALSE ); + END_IF; + tspace := func.domain; + IF ( space_dimension( tspace ) = 1 ) AND ( ( schema_prefix + 'TUPLE_SPACE' ) IN TYPEOF( factor1( tspace ) ) ) THEN + tspace := factor1( tspace ); + END_IF; + IF NOT ( ( schema_prefix + 'PRODUCT_SPACE' ) IN TYPEOF( tspace ) ) THEN + RETURN( FALSE ); + END_IF; + REPEAT i := 1 TO space_dimension( tspace ) BY 1; + temp := factor_space( tspace, i ); + IF NOT ( ( schema_prefix + 'FINITE_INTEGER_INTERVAL' ) IN TYPEOF( temp ) ) THEN + RETURN( FALSE ); + END_IF; + END_REPEAT; + RETURN( TRUE ); + + END_FUNCTION; + + FUNCTION function_is_table( + func : maths_function + ) : BOOLEAN; + + LOCAL + tspace : tuple_space; + temp : maths_space; + base : INTEGER; + END_LOCAL; + IF NOT EXISTS( func ) THEN + RETURN( FALSE ); + END_IF; + tspace := func.domain; + IF ( space_dimension( tspace ) = 1 ) AND ( ( schema_prefix + 'TUPLE_SPACE' ) IN TYPEOF( factor1( tspace ) ) ) THEN + tspace := factor1( tspace ); + END_IF; + IF NOT ( ( schema_prefix + 'PRODUCT_SPACE' ) IN TYPEOF( tspace ) ) THEN + RETURN( FALSE ); + END_IF; + temp := factor1( tspace ); + IF NOT ( ( schema_prefix + 'FINITE_INTEGER_INTERVAL' ) IN TYPEOF( temp ) ) THEN + RETURN( FALSE ); + END_IF; + base := temp\finite_integer_interval.min; + IF ( base <> 0 ) AND ( base <> 1 ) THEN + RETURN( FALSE ); + END_IF; + REPEAT i := 2 TO space_dimension( tspace ) BY 1; + temp := factor_space( tspace, i ); + IF NOT ( ( schema_prefix + 'FINITE_INTEGER_INTERVAL' ) IN TYPEOF( temp ) ) THEN + RETURN( FALSE ); + END_IF; + IF temp\finite_integer_interval.min <> base THEN + RETURN( FALSE ); + END_IF; + END_REPEAT; + RETURN( TRUE ); + + END_FUNCTION; + + FUNCTION gbsf_check_curve( + cv : representation_item + ) : BOOLEAN; + IF SIZEOF( [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.BOUNDED_CURVE', + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CONIC' , + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CURVE_REPLICA' , + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LINE' , + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.OFFSET_CURVE_3D' ] * TYPEOF( cv ) ) > 1 THEN + RETURN( FALSE ); + END_IF; + IF SIZEOF( [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CIRCLE', + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.ELLIPSE' , + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.TRIMMED_CURVE' ] * TYPEOF( cv ) ) = 1 THEN + RETURN( TRUE ); + ELSE + IF ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CURVE_REPLICA' IN TYPEOF( cv ) THEN + RETURN( gbsf_check_curve( cv\curve_replica.parent_curve ) ); + ELSE + IF ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.POLYLINE' IN TYPEOF( cv\offset_curve_3d. + basis_curve ) ) ) THEN + RETURN( gbsf_check_curve( cv\offset_curve_3d.basis_curve ) ); + ELSE + IF 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.POLYLINE' IN TYPEOF( cv ) THEN + IF SIZEOF( cv\polyline.points ) >= 3 THEN + RETURN( TRUE ); + END_IF; + ELSE + IF 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 ) BY 1; + IF 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CARTESIAN_POINT' IN TYPEOF( pnt ) THEN + RETURN( TRUE ); + ELSE + IF 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.POINT_ON_CURVE' IN TYPEOF( pnt ) THEN + RETURN( gbsf_check_curve( pnt\point_on_curve.basis_curve ) ); + ELSE + IF 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.POINT_ON_SURFACE' IN TYPEOF( pnt ) THEN + RETURN( gbsf_check_surface( pnt\point_on_surface.basis_surface ) ); + ELSE + IF 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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( [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SPHERICAL_SURFACE', + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.TOROIDAL_SURFACE' , + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CURVE_BOUNDED_SURFACE' , + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.RECTANGULAR_TRIMMED_SURFACE' ] * TYPEOF( sf ) ) = 1 + THEN + RETURN( TRUE ); + ELSE + IF ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.RECTANGULAR_COMPOSITE_SURFACE' IN TYPEOF( sf ) + THEN + REPEAT i := 1 TO SIZEOF( sf\rectangular_composite_surface.segments ) BY 1; + REPEAT j := 1 TO SIZEOF( sf\rectangular_composite_surface.segments[i] ) BY 1; + 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 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SURFACE_REPLICA' IN TYPEOF( sf ) THEN + RETURN( gbsf_check_surface( sf\surface_replica.parent_surface ) ); + ELSE + IF 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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_associated_mandatory_document_ids( + pdc : product_definition_context + ) : SET OF STRING; + + LOCAL + result : SET OF STRING := []; + adrs_raw : SET OF applied_document_reference := bag_to_set( USEDIN( pdc, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.APPLIED_DOCUMENT_REFERENCE.ITEMS' ) ); + adrs_filtered : SET OF applied_document_reference := []; + ras : SET OF role_association; + dpas : SET OF document_product_association; + END_LOCAL; + REPEAT i := 1 TO HIINDEX( adrs_raw ) BY 1; + IF adrs_raw[i]\document_reference.role\object_role.name = 'mandatory' THEN + adrs_filtered := adrs_filtered + adrs_raw[i]; + END_IF; + END_REPEAT; + REPEAT i := 1 TO HIINDEX( adrs_filtered ) BY 1; + dpas := bag_to_set( USEDIN( adrs_filtered[i]\document_reference.assigned_document, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.DOCUMENT_PRODUCT_ASSOCIATION.RELATING_DOCUMENT' ) ); + REPEAT j := 1 TO HIINDEX( dpas ) BY 1; + IF 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.DOCUMENT_PRODUCT_EQUIVALENCE' IN TYPEOF( dpas[j] ) + THEN + IF 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PRODUCT_DEFINITION_FORMATION' IN TYPEOF( dpas[j] + \document_product_association.related_product ) THEN + result := result + dpas[j]\document_product_association.related_product\product_definition_formation.of_product\ + product.id; + END_IF; + IF 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PRODUCT' IN TYPEOF( dpas[j].related_product ) + THEN + result := result + dpas[j]\document_product_association.related_product\product.id; + END_IF; + END_IF; + END_REPEAT; + END_REPEAT; + RETURN( result ); + + 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 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PCURVE' IN TYPEOF( c ) THEN + surfs := [c\pcurve.basis_surface]; + ELSE + IF 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SURFACE_CURVE' IN TYPEOF( c ) THEN + n := SIZEOF( c\surface_curve.associated_geometry ); + REPEAT i := 1 TO n BY 1; + surfs := surfs + associated_surface( c\surface_curve.associated_geometry[i] ); + END_REPEAT; + END_IF; + END_IF; + IF 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.COMPOSITE_CURVE_ON_SURFACE' IN TYPEOF( c ) THEN + 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 BY 1; + 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, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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_directed_link( + nodes : LIST OF representation; + undirected_link : LIST OF chained_representation_link + ) : LIST OF representation_relationship; + + LOCAL + directed_link : LIST OF representation_relationship := []; + END_LOCAL; + IF ( SIZEOF( nodes ) <> ( SIZEOF( undirected_link ) + 1 ) ) OR ( VALUE_UNIQUE( nodes ) = FALSE ) THEN + RETURN( ? ); + END_IF; + REPEAT i := 1 TO SIZEOF( undirected_link ) BY 1; + CASE TRUE OF + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.REPRESENTATION_CONTEXT' IN TYPEOF( undirected_link[i] ) : + BEGIN + IF ( nodes[i]\representation.context_of_items :=: undirected_link[i] ) AND ( nodes[i + 1]\representation. + context_of_items :=: undirected_link[i] ) THEN + INSERT( directed_link, representation_relationship( '', '', nodes[i + 1], nodes[i] ), i - 1 ); + ELSE + RETURN( ? ); + END_IF; + END; + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.REPRESENTATION_RELATIONSHIP' IN TYPEOF( + undirected_link[i] ) : + BEGIN + IF ( ( nodes[i] :=: undirected_link[i]\representation_relationship.rep_1 ) AND ( nodes[i + 1] :=: undirected_link[i]\ + representation_relationship.rep_2 ) ) OR ( ( nodes[i] :=: undirected_link[i]\representation_relationship.rep_2 ) + AND ( nodes[i + 1] :=: undirected_link[i]\representation_relationship.rep_1 ) ) THEN + INSERT( directed_link, representation_relationship( '', '', nodes[i + 1], nodes[i] ), i - 1 ); + ELSE + RETURN( ? ); + END_IF; + END; + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MAPPED_ITEM' IN TYPEOF( undirected_link[i] ) : + BEGIN + IF ( nodes[i] IN using_representations( undirected_link[i] ) ) AND ( nodes[i + 1] :=: undirected_link[i]\mapped_item. + mapping_source\representation_map.mapped_representation ) THEN + INSERT( directed_link, representation_relationship( '', '', nodes[i + 1], nodes[i] ), i - 1 ); + ELSE + RETURN( ? ); + END_IF; + END; + OTHERWISE : RETURN( ? ); + END_CASE; + END_REPEAT; + IF VALUE_UNIQUE( directed_link ) = FALSE THEN + RETURN( ? ); + END_IF; + RETURN( directed_link ); + + END_FUNCTION; + + FUNCTION get_id_value( + obj : id_attribute_select + ) : identifier; + + LOCAL + id_bag : BAG OF id_attribute := USEDIN( obj, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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_kinematic_joints_from_kinematic_loops( + kls : SET OF kinematic_loop + ) : SET OF kinematic_joint; + + LOCAL + result : SET OF oriented_joint := []; + END_LOCAL; + IF SIZEOF( kls ) > 0 THEN + REPEAT i := 1 TO HIINDEX( kls ) BY 1; + result := result + kls[i].edge_list; + END_REPEAT; + END_IF; + RETURN( get_kinematic_joints_from_oriented_joints( result ) ); + + END_FUNCTION; + + FUNCTION get_kinematic_joints_from_oriented_joints( + ors : SET OF oriented_joint + ) : SET OF kinematic_joint; + + LOCAL + result : SET OF kinematic_joint := []; + END_LOCAL; + IF SIZEOF( ors ) > 0 THEN + REPEAT i := 1 TO HIINDEX( ors ) BY 1; + result := result + ors[i].edge_element; + END_REPEAT; + END_IF; + RETURN( result ); + + END_FUNCTION; + + FUNCTION get_name_value( + obj : name_attribute_select + ) : label; + + LOCAL + name_bag : BAG OF name_attribute := USEDIN( obj, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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_plane_of_implicit_geometry( + ps : positioned_sketch + ) : plane; + + LOCAL + sb : sketch_basis_select := ps.sketch_basis; + result : plane := ?; + END_LOCAL; + IF 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.FACE_SURFACE' IN TYPEOF( sb ) THEN + result := sb\face_surface.face_geometry; + ELSE + IF 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CURVE_BOUNDED_SURFACE' IN TYPEOF( sb ) THEN + result := sb\curve_bounded_surface.basis_surface; + ELSE + IF 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PLANAR_CURVE_SELECT' IN TYPEOF( sb ) THEN + + BEGIN + IF 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CONIC' IN TYPEOF( sb ) THEN + result := dummy_gri || surface( ) || elementary_surface( sb\conic.position ) || plane( ); + END_IF; + IF 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.TRIMMED_CURVE' IN TYPEOF( sb ) THEN + + BEGIN + result := get_plane_of_implicit_geometry( dummy_gri || positioned_sketch( sb\trimmed_curve.basis_curve, [] ) ); + END; + END_IF; + IF 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PCURVE' IN TYPEOF( sb ) THEN + result := sb\pcurve.basis_surface; + END_IF; + IF 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SURFACE_CURVE' IN TYPEOF( sb ) THEN + + BEGIN + IF ( SIZEOF( sb\surface_curve.basis_surface ) = 1 ) AND ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PLANE' IN TYPEOF( sb\surface_curve. + basis_surface[1] ) ) THEN + result := sb\surface_curve.basis_surface[1]; + ELSE + IF ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PLANE' IN TYPEOF( sb\surface_curve. + basis_surface[1] ) ) AND ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PLANE' IN + TYPEOF( sb\surface_curve.basis_surface[2] ) ) THEN + result := ?; + ELSE + IF 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PLANE' IN TYPEOF( sb\surface_curve. + basis_surface[1] ) THEN + result := sb\surface_curve.basis_surface[1]; + ELSE + result := sb\surface_curve.basis_surface[2]; + END_IF; + END_IF; + END_IF; + END; + END_IF; + END; + END_IF; + END_IF; + END_IF; + RETURN( result ); + + END_FUNCTION; + + FUNCTION get_property_definition_representations( + c_def_instance : characterized_definition + ) : SET 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( c_def_instance, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION.DEFINITION' ) ); + IF SIZEOF( pd_set ) < 1 THEN + RETURN( pdr_set ); + END_IF; + REPEAT i := 1 TO HIINDEX( pd_set ) BY 1; + pdr_set := pdr_set + bag_to_set( USEDIN( pd_set[i], 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) ); + END_REPEAT; + RETURN( pdr_set ); + + END_FUNCTION; + + FUNCTION get_relative_direction_2points( + cp1, cp2 : cartesian_point + ) : direction; + + LOCAL + d1 : REAL; + d2 : REAL; + d3 : REAL; + magnitude : REAL; + result : direction := ?; + END_LOCAL; + IF ( cp1.dim <> 3 ) OR ( cp2.dim <> 3 ) THEN + RETURN( result ); + ELSE + + BEGIN + d1 := cp2.coordinates[1] - cp1.coordinates[1]; + d2 := cp2.coordinates[2] - cp1.coordinates[2]; + d3 := cp2.coordinates[3] - cp1.coordinates[3]; + magnitude := SQRT( ( d1 * d1 ) + ( d2 * d2 ) + ( d3 * d3 ) ); + IF magnitude = 0 THEN + RETURN( result ); + END_IF; + result := dummy_gri || direction( [d1, d2, d3] ); + END; + END_IF; + RETURN( result ); + + END_FUNCTION; + + FUNCTION get_role( + obj : role_select + ) : object_role; + + LOCAL + role_bag : BAG OF role_association := USEDIN( obj, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 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, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION.DEFINITION' ) ); + IF SIZEOF( pd_set ) < 1 THEN + RETURN( pdr_set ); + END_IF; + REPEAT i := 1 TO HIINDEX( pd_set ) BY 1; + pdr_set := pdr_set + QUERY ( pdr <* USEDIN( pd_set[i], 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION_REPRESENTATION.' + 'DEFINITION' ) | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_DEFINITION_REPRESENTATION' IN TYPEOF( pdr ) ) ); + END_REPEAT; + RETURN( pdr_set ); + + END_FUNCTION; + + FUNCTION get_shape_aspects( + c_def_instance : characterized_definition + ) : SET OF shape_aspect; + + LOCAL + pd_set : SET OF product_definition_shape := []; + pdr_set : SET OF shape_aspect := []; + END_LOCAL; + pd_set := bag_to_set( QUERY ( pd <* USEDIN( c_def_instance, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) ); + IF SIZEOF( pd_set ) < 1 THEN + RETURN( pdr_set ); + END_IF; + REPEAT i := 1 TO HIINDEX( pd_set ) BY 1; + pdr_set := pdr_set + bag_to_set( USEDIN( pd_set[i], 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'SHAPE_ASPECT.OF_SHAPE' ) ); + END_REPEAT; + RETURN( pdr_set ); + + END_FUNCTION; + + FUNCTION has_values_space( + expr : generic_expression + ) : BOOLEAN; + + LOCAL + typenames : SET OF STRING := stripped_typeof( expr ); + END_LOCAL; + IF 'EXPRESSION' IN typenames THEN + RETURN( bool( ( 'NUMERIC_EXPRESSION' IN typenames ) OR ( 'STRING_EXPRESSION' IN typenames ) OR ( 'BOOLEAN_EXPRESSION' IN + typenames ) ) ); + END_IF; + IF 'MATHS_FUNCTION' IN typenames THEN + RETURN( TRUE ); + END_IF; + IF 'FUNCTION_APPLICATION' IN typenames THEN + RETURN( TRUE ); + END_IF; + IF 'MATHS_SPACE' IN typenames THEN + RETURN( TRUE ); + END_IF; + IF 'MATHS_VARIABLE' IN typenames THEN + RETURN( TRUE ); + END_IF; + IF 'DEPENDENT_VARIABLE_DEFINITION' IN typenames THEN + RETURN( has_values_space( expr\unary_generic_expression.operand ) ); + END_IF; + IF 'COMPLEX_NUMBER_LITERAL' IN typenames THEN + RETURN( TRUE ); + END_IF; + IF 'LOGICAL_LITERAL' IN typenames THEN + RETURN( TRUE ); + END_IF; + IF 'BINARY_LITERAL' IN typenames THEN + RETURN( TRUE ); + END_IF; + IF 'MATHS_ENUM_LITERAL' IN typenames THEN + RETURN( TRUE ); + END_IF; + IF 'REAL_TUPLE_LITERAL' IN typenames THEN + RETURN( TRUE ); + END_IF; + IF 'INTEGER_TUPLE_LITERAL' IN typenames THEN + RETURN( TRUE ); + END_IF; + IF 'ATOM_BASED_LITERAL' IN typenames THEN + RETURN( TRUE ); + END_IF; + IF 'MATHS_TUPLE_LITERAL' IN typenames THEN + RETURN( TRUE ); + END_IF; + IF 'PARTIAL_DERIVATIVE_EXPRESSION' IN typenames THEN + RETURN( TRUE ); + END_IF; + IF 'DEFINITE_INTEGRAL_EXPRESSION' IN typenames THEN + RETURN( TRUE ); + END_IF; + RETURN( FALSE ); + + END_FUNCTION; + + FUNCTION inspected_product_definition( + dqir : data_quality_inspection_result_representation + ) : BAG OF product_definition; + + LOCAL + dqdr : BAG OF data_quality_definition_representation_relationship := []; + pdqdr : BAG OF product_data_and_data_quality_relationship := []; + pd : BAG OF product_definition := []; + END_LOCAL; + dqdr := USEDIN( dqir, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'DATA_QUALITY_DEFINITION_REPRESENTATION_RELATIONSHIP.' + 'USED_REPRESENTATION' ); + REPEAT i := 1 TO SIZEOF( dqdr ) BY 1; + pdqdr := USEDIN( dqdr[i].definition, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PRODUCT_DATA_AND_DATA_QUALITY_RELATIONSHIP.' + 'DATA_QUALITY' ); + REPEAT j := 1 TO SIZEOF( pdqdr ) BY 1; + pd := pd + pdqdr[j].product_data; + END_REPEAT; + END_REPEAT; + RETURN( pd ); + + END_FUNCTION; + + FUNCTION invalidate_vrep_item( + item : variational_representation_item + ) : BOOLEAN; + + LOCAL + reps : SET [1 : ?] OF representation := using_representations( item ); + svri : SET [1 : ?] OF variational_representation_item; + iar : instance_attribute_reference; + i : INTEGER; + n : INTEGER := HIINDEX( reps ); + END_LOCAL; + IF 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.BOUND_VARIATIONAL_PARAMETER' IN TYPEOF( item ) THEN + IF 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.INSTANCE_ATTRIBUTE_REFERENCE' IN TYPEOF( item\ + generic_variable.interpretation\environment.semantics ) THEN + + BEGIN + iar := item\generic_variable.interpretation\environment.semantics; + IF reps <> using_representations( iar\instance_attribute_reference.owning_instance ) THEN + RETURN( TRUE ); + END_IF; + END; + ELSE + RETURN( TRUE ); + END_IF; + END_IF; + IF 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.UNBOUND_VARIATIONAL_PARAMETER' IN TYPEOF( item ) THEN + + BEGIN + REPEAT i := 1 TO n BY 1; + svri := QUERY ( q <* reps[i]\representation.items | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.FREE_FORM_CONSTRAINT' IN TYPEOF( q ) ) ); + IF SIZEOF( QUERY ( r <* svri | ( item IN ( r\free_form_constraint.reference_elements + r\free_form_constraint. + constrained_elements ) ) ) ) = 0 THEN + RETURN( TRUE ); + END_IF; + END_REPEAT; + END; + END_IF; + IF 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.FIXED_INSTANCE_ATTRIBUTE_SET' IN TYPEOF( item ) THEN + REPEAT i := 1 TO SIZEOF( item\fixed_instance_attribute_set.fixed_attributes ) BY 1; + IF reps <> using_representations( item\fixed_instance_attribute_set.fixed_attributes[i]\instance_attribute_reference. + owning_instance ) THEN + RETURN( TRUE ); + END_IF; + END_REPEAT; + END_IF; + IF 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.EXPLICIT_CONSTRAINT' IN TYPEOF( item ) THEN + IF SIZEOF( QUERY ( q <* ( item\explicit_constraint.reference_elements + item\explicit_constraint.constrained_elements ) | + ( reps <> using_representations( q ) ) ) ) > 0 THEN + RETURN( TRUE ); + END_IF; + END_IF; + IF 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.AUXILIARY_GEOMETRIC_REPRESENTATION_ITEM' IN TYPEOF( + item ) THEN + + BEGIN + REPEAT i := 1 TO n BY 1; + svri := QUERY ( q <* reps[i]\representation.items | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.EXPLICIT_GEOMETRIC_CONSTRAINT' IN TYPEOF( q ) ) ); + IF SIZEOF( QUERY ( r <* svri | ( item IN r\explicit_geometric_constraint.reference_elements ) ) ) = 0 THEN + RETURN( TRUE ); + END_IF; + END_REPEAT; + END; + END_IF; + RETURN( FALSE ); + + END_FUNCTION; + + FUNCTION is_acyclic( + arg : generic_expression + ) : BOOLEAN; + RETURN( acyclic( arg, [] ) ); + + END_FUNCTION; + + FUNCTION is_int_expr( + arg : numeric_expression + ) : BOOLEAN; + IF 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.INT_LITERAL' IN TYPEOF( arg ) THEN + RETURN( TRUE ); + END_IF; + IF 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.REAL_LITERAL' IN TYPEOF( arg ) THEN + RETURN( FALSE ); + END_IF; + IF 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.INT_NUMERIC_VARIABLE' IN TYPEOF( arg ) THEN + RETURN( TRUE ); + END_IF; + IF 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.REAL_NUMERIC_VARIABLE' IN TYPEOF( arg ) THEN + RETURN( FALSE ); + END_IF; + IF 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.ABS_FUNCTION' IN TYPEOF( arg ) THEN + RETURN( is_int_expr( arg\unary_numeric_expression.operand ) ); + END_IF; + IF 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MINUS_FUNCTION' IN TYPEOF( arg ) THEN + RETURN( is_int_expr( arg\unary_numeric_expression.operand ) ); + END_IF; + IF ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SIN_FUNCTION' IN TYPEOF( arg ) ) OR ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.COS_FUNCTION' IN TYPEOF( arg ) ) OR ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.TAN_FUNCTION' IN TYPEOF( arg ) ) OR ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.ASIN_FUNCTION' IN TYPEOF( arg ) ) OR ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.ACOS_FUNCTION' IN TYPEOF( arg ) ) OR ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.ATAN_FUNCTION' IN TYPEOF( arg ) ) OR ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.EXP_FUNCTION' IN TYPEOF( arg ) ) OR ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LOG_FUNCTION' IN TYPEOF( arg ) ) OR ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LOG2_FUNCTION' IN TYPEOF( arg ) ) OR ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LOG10_FUNCTION' IN TYPEOF( arg ) ) OR ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SQUARE_ROOT_FUNCTION' IN TYPEOF( arg ) ) THEN + RETURN( FALSE ); + END_IF; + IF ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PLUS_EXPRESSION' IN TYPEOF( arg ) ) OR ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MULT_EXPRESSION' IN TYPEOF( arg ) ) OR ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MAXIMUM_FUNCTION' IN TYPEOF( arg ) ) OR ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MINIMUM_FUNCTION' IN TYPEOF( arg ) ) THEN + REPEAT i := 1 TO SIZEOF( arg\multiple_arity_numeric_expression.operands ) BY 1; + IF NOT is_int_expr( arg\multiple_arity_numeric_expression.operands[i] ) THEN + RETURN( FALSE ); + END_IF; + END_REPEAT; + RETURN( TRUE ); + END_IF; + IF ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MINUS_EXPRESSION' IN TYPEOF( arg ) ) OR ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.DIV_EXPRESSION' IN TYPEOF( arg ) ) OR ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MOD_EXPRESSION' IN TYPEOF( arg ) ) THEN + RETURN( TRUE ); + END_IF; + IF 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SLASH_EXPRESSION' IN TYPEOF( arg ) THEN + RETURN( FALSE ); + END_IF; + IF 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_FUNCTION' IN TYPEOF( arg ) THEN + RETURN( TRUE ); + END_IF; + IF 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.VALUE_FUNCTION' IN TYPEOF( arg ) THEN + IF 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.INT_VALUE_FUNCTION' IN TYPEOF( arg ) THEN + RETURN( TRUE ); + ELSE + RETURN( FALSE ); + END_IF; + END_IF; + IF 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.INTEGER_DEFINED_FUNCTION' IN TYPEOF( arg ) THEN + RETURN( TRUE ); + END_IF; + IF 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.REAL_DEFINED_FUNCTION' IN TYPEOF( arg ) THEN + RETURN( FALSE ); + END_IF; + IF 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.BOOLEAN_DEFINED_FUNCTION' IN TYPEOF( arg ) THEN + RETURN( FALSE ); + END_IF; + IF 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.STRING_DEFINED_FUNCTION' IN TYPEOF( arg ) THEN + RETURN( FALSE ); + END_IF; + RETURN( FALSE ); + + END_FUNCTION; + + FUNCTION is_sql_mappable( + arg : expression + ) : BOOLEAN; + IF 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SIMPLE_NUMERIC_EXPRESSION' IN TYPEOF( arg ) THEN + RETURN( TRUE ); + END_IF; + IF 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SQL_MAPPABLE_DEFINED_FUNCTION' IN TYPEOF( arg ) THEN + RETURN( TRUE ); + END_IF; + IF 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MINUS_FUNCTION' IN TYPEOF( arg ) THEN + RETURN( is_sql_mappable( arg\unary_numeric_expression.operand ) ); + END_IF; + IF ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.ABS_FUNCTION' IN TYPEOF( arg ) ) OR ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SIN_FUNCTION' IN TYPEOF( arg ) ) OR ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.COS_FUNCTION' IN TYPEOF( arg ) ) OR ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.TAN_FUNCTION' IN TYPEOF( arg ) ) OR ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.ASIN_FUNCTION' IN TYPEOF( arg ) ) OR ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.ACOS_FUNCTION' IN TYPEOF( arg ) ) OR ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.ATAN_FUNCTION' IN TYPEOF( arg ) ) OR ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.EXP_FUNCTION' IN TYPEOF( arg ) ) OR ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LOG_FUNCTION' IN TYPEOF( arg ) ) OR ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LOG2_FUNCTION' IN TYPEOF( arg ) ) OR ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LOG10_FUNCTION' IN TYPEOF( arg ) ) OR ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SQUARE_ROOT_FUNCTION' IN TYPEOF( arg ) ) OR ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.VALUE_FUNCTION' IN TYPEOF( arg ) ) OR ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_FUNCTION' IN TYPEOF( arg ) ) THEN + RETURN( FALSE ); + END_IF; + IF ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PLUS_EXPRESSION' IN TYPEOF( arg ) ) OR ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MULT_EXPRESSION' IN TYPEOF( arg ) ) OR ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MAXIMUM_FUNCTION' IN TYPEOF( arg ) ) OR ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MINIMUM_FUNCTION' IN TYPEOF( arg ) ) THEN + REPEAT i := 1 TO SIZEOF( arg\multiple_arity_numeric_expression.operands ) BY 1; + IF NOT is_sql_mappable( arg\multiple_arity_numeric_expression.operands[i] ) THEN + RETURN( FALSE ); + END_IF; + END_REPEAT; + RETURN( TRUE ); + END_IF; + IF ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MINUS_EXPRESSION' IN TYPEOF( arg ) ) OR ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.DIV_EXPRESSION' IN TYPEOF( arg ) ) OR ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MOD_EXPRESSION' IN TYPEOF( arg ) ) OR ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.POWER_EXPRESSION' IN TYPEOF( arg ) ) THEN + RETURN( FALSE ); + END_IF; + IF 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SIMPLE_BOOLEAN_EXPRESSION' IN TYPEOF( arg ) THEN + RETURN( TRUE ); + END_IF; + IF 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.NOT_EXPRESSION' IN TYPEOF( arg ) THEN + RETURN( is_sql_mappable( arg\unary_generic_expression.operand ) ); + END_IF; + IF ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.ODD_FUNCTION' IN TYPEOF( arg ) ) OR ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.XOR_EXPRESSION' IN TYPEOF( arg ) ) THEN + RETURN( FALSE ); + END_IF; + IF ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.AND_EXPRESSION' IN TYPEOF( arg ) ) OR ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.OR_EXPRESSION' IN TYPEOF( arg ) ) THEN + REPEAT i := 1 TO SIZEOF( arg\multiple_arity_boolean_expression.operands ) BY 1; + IF NOT is_sql_mappable( arg\multiple_arity_boolean_expression.operands[i] ) THEN + RETURN( FALSE ); + END_IF; + END_REPEAT; + RETURN( TRUE ); + END_IF; + IF 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.COMPARISON_EQUAL' IN TYPEOF( arg ) ) OR ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.COMPARISON_GREATER' IN TYPEOF( arg ) ) OR ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.COMPARISON_GREATER_EQUAL' IN TYPEOF( arg ) ) OR ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.COMPARISON_LESS' IN TYPEOF( arg ) ) OR ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.COMPARISON_LESS_EQUAL' IN TYPEOF( arg ) ) OR ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.COMPARISON_NOT_EQUAL' IN TYPEOF( arg ) ) OR ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.NUMERIC_DEFINED_FUNCTION' IN TYPEOF( arg ) ) OR ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.BOOLEAN_DEFINED_FUNCTION' IN TYPEOF( arg ) ) OR ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.STRING_DEFINED_FUNCTION' IN TYPEOF( arg ) ) THEN + RETURN( FALSE ); + END_IF; + IF 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SIMPLE_STRING_EXPRESSION' IN TYPEOF( arg ) THEN + RETURN( TRUE ); + END_IF; + IF ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.INDEX_EXPRESSION' IN TYPEOF( arg ) ) OR ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SUBSTRING_EXPRESSION' IN TYPEOF( arg ) ) OR ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CONCAT_EXPRESSION' IN TYPEOF( arg ) ) OR ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 SIZEOF( USEDIN( item, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.REPRESENTATION.ITEMS' ) * cntxt. + representations_in_context ) > 0 THEN + RETURN( TRUE ); + ELSE + y := QUERY ( z <* USEDIN( item, '' ) | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'REPRESENTATION_ITEM' IN TYPEOF( z ) ) ); + IF SIZEOF( y ) > 0 THEN + REPEAT i := 1 TO HIINDEX( y ) BY 1; + IF item_in_context( y[i], cntxt ) THEN + RETURN( TRUE ); + END_IF; + END_REPEAT; + END_IF; + END_IF; + 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 ) BY 1; + 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 ) BY 1; + the_reverse := topology_reversed( a_list[i] ) + the_reverse; + END_REPEAT; + RETURN( the_reverse ); + + END_FUNCTION; + + FUNCTION list_selected_components( + aggr : AGGREGATE OF LIST OF maths_value; + k : positive_integer + ) : LIST OF maths_value; + + LOCAL + result : LIST OF maths_value := []; + j : INTEGER := 0; + END_LOCAL; + REPEAT i := LOINDEX( aggr ) TO HIINDEX( aggr ) BY 1; + IF k <= SIZEOF( aggr[i] ) THEN + INSERT( result, aggr[i][k], j ); + j := j + 1; + END_IF; + END_REPEAT; + RETURN( result ); + + 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] : 0]; + REPEAT i := 2 TO n BY 1; + 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 OF GENERIC:t; + + LOCAL + s : SET OF GENERIC:t := []; + END_LOCAL; + REPEAT i := 1 TO SIZEOF( l ) BY 1; + 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; + IF ( ( u1 - low1 ) + 1 ) <> SIZEOF( lis ) THEN + RETURN( ? ); + END_IF; + IF ( ( u2 - low2 ) + 1 ) <> SIZEOF( lis[1] ) THEN + RETURN( ? ); + END_IF; + res := [list_to_array( lis[1], low2, u2 ) : 0]; + REPEAT i := 2 TO HIINDEX( lis ) BY 1; + 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 make_atom_based_literal( + lit_value : atom_based_value + ) : atom_based_literal; + RETURN( atom_based_literal( lit_value ) || generic_literal( ) || simple_generic_expression( ) || generic_expression( ) ); + + END_FUNCTION; + + FUNCTION make_binary_literal( + lit_value : BINARY + ) : binary_literal; + RETURN( binary_literal( lit_value ) || generic_literal( ) || simple_generic_expression( ) || generic_expression( ) ); + + END_FUNCTION; + + FUNCTION make_boolean_literal( + lit_value : BOOLEAN + ) : boolean_literal; + RETURN( boolean_literal( lit_value ) || simple_boolean_expression( ) || boolean_expression( ) || expression( ) || + generic_expression( ) || simple_generic_expression( ) || generic_literal( ) ); + + END_FUNCTION; + + FUNCTION make_cartesian_complex_number_region( + real_constraint, imag_constraint : real_interval + ) : cartesian_complex_number_region; + RETURN( cartesian_complex_number_region( real_constraint, imag_constraint ) || maths_space( ) || generic_expression( ) || + generic_literal( ) || simple_generic_expression( ) ); + + END_FUNCTION; + + FUNCTION make_complex_number_literal( + rpart, ipart : REAL + ) : complex_number_literal; + RETURN( complex_number_literal( rpart, ipart ) || generic_literal( ) || simple_generic_expression( ) || + generic_expression( ) ); + + END_FUNCTION; + + FUNCTION make_elementary_function( + func_id : elementary_function_enumerators + ) : elementary_function; + RETURN( elementary_function( func_id ) || maths_function( ) || generic_expression( ) || generic_literal( ) || + simple_generic_expression( ) ); + + END_FUNCTION; + + FUNCTION make_elementary_space( + space_id : elementary_space_enumerators + ) : elementary_space; + RETURN( elementary_space( space_id ) || maths_space( ) || generic_expression( ) || generic_literal( ) || + simple_generic_expression( ) ); + + END_FUNCTION; + + FUNCTION make_extended_tuple_space( +(* next line replaced by the line thereafter as patch for BZ#5052 + base : product_space; *) + base : tuple_space; + extender : maths_space + ) : extended_tuple_space; + RETURN( extended_tuple_space( base, extender ) || maths_space( ) || generic_expression( ) || generic_literal( ) || + simple_generic_expression( ) ); + + END_FUNCTION; + + FUNCTION make_finite_integer_interval( + min : INTEGER; + max : INTEGER + ) : finite_integer_interval; + RETURN( finite_integer_interval( min, max ) || maths_space( ) || generic_expression( ) || generic_literal( ) || + simple_generic_expression( ) ); + + END_FUNCTION; + + FUNCTION make_finite_real_interval( + min : REAL; + minclo : open_closed; + max : REAL; + maxclo : open_closed + ) : finite_real_interval; + RETURN( finite_real_interval( min, minclo, max, maxclo ) || maths_space( ) || generic_expression( ) || generic_literal( ) + || simple_generic_expression( ) ); + + END_FUNCTION; + + FUNCTION make_finite_space( + members : SET OF maths_value + ) : finite_space; + RETURN( finite_space( members ) || maths_space( ) || generic_expression( ) || generic_literal( ) || + simple_generic_expression( ) ); + + END_FUNCTION; + + FUNCTION make_function_application( + afunction : maths_function_select; + arguments : LIST [1 : ?] OF maths_value + ) : function_application; + RETURN( function_application( afunction, arguments ) || multiple_arity_generic_expression( convert_to_maths_function( + afunction ) + convert_to_operands( arguments ) ) || generic_expression( ) ); + + END_FUNCTION; + + FUNCTION make_function_space( + domain_constraint : space_constraint_type; + domain_argument : maths_space; + range_constraint : space_constraint_type; + range_argument : maths_space + ) : function_space; + RETURN( function_space( domain_constraint, domain_argument, range_constraint, range_argument ) || maths_space( ) || + generic_expression( ) || generic_literal( ) || simple_generic_expression( ) ); + + END_FUNCTION; + + FUNCTION make_int_literal( + lit_value : INTEGER + ) : int_literal; + RETURN( int_literal( ) || literal_number( lit_value ) || simple_numeric_expression( ) || numeric_expression( ) || + expression( ) || generic_expression( ) || simple_generic_expression( ) || generic_literal( ) ); + + END_FUNCTION; + + FUNCTION make_listed_product_space( + factors : LIST OF maths_space + ) : listed_product_space; + RETURN( listed_product_space( factors ) || maths_space( ) || generic_expression( ) || generic_literal( ) || + simple_generic_expression( ) ); + + END_FUNCTION; + + FUNCTION make_logical_literal( + lit_value : LOGICAL + ) : logical_literal; + RETURN( logical_literal( lit_value ) || generic_literal( ) || simple_generic_expression( ) || generic_expression( ) ); + + END_FUNCTION; + + FUNCTION make_maths_enum_literal( + lit_value : maths_enum_atom + ) : maths_enum_literal; + RETURN( maths_enum_literal( lit_value ) || generic_literal( ) || simple_generic_expression( ) || generic_expression( ) ); + + END_FUNCTION; + + FUNCTION make_maths_tuple_literal( + lit_value : LIST OF maths_value + ) : maths_tuple_literal; + RETURN( maths_tuple_literal( lit_value ) || generic_literal( ) || simple_generic_expression( ) || generic_expression( ) ); + + END_FUNCTION; + + FUNCTION make_numeric_set( + start, delta : maths_number; + incs : positive_integer + ) : SET [2 : ?] OF maths_number; + + LOCAL + i : INTEGER; + numeric_set : SET [2 : ?] OF maths_number := [start, start + delta]; + END_LOCAL; + IF incs > 1 THEN + REPEAT i := 2 TO incs BY 1; + numeric_set := numeric_set + start + ( i * delta ); + END_REPEAT; + END_IF; + RETURN( numeric_set ); + + END_FUNCTION; + + FUNCTION make_parallel_composed_function( + srcdom : maths_space_or_function; + prepfuncs : LIST [2 : ?] OF maths_function; + finfunc : maths_function_select + ) : parallel_composed_function; + RETURN( parallel_composed_function( srcdom, prepfuncs, finfunc ) || maths_function( ) || generic_expression( ) || + multiple_arity_generic_expression( convert_to_operands_prcmfn( srcdom, prepfuncs, finfunc ) ) ); + + END_FUNCTION; + + FUNCTION make_polar_complex_number_region( + centre : complex_number_literal; + dis_constraint : real_interval; + dir_constraint : finite_real_interval + ) : polar_complex_number_region; + RETURN( polar_complex_number_region( centre, dis_constraint, dir_constraint ) || maths_space( ) || generic_expression( ) || + generic_literal( ) || simple_generic_expression( ) ); + + END_FUNCTION; + + FUNCTION make_real_interval_from_min( + min : REAL; + minclo : open_closed + ) : real_interval_from_min; + RETURN( real_interval_from_min( min, minclo ) || maths_space( ) || generic_expression( ) || generic_literal( ) || + simple_generic_expression( ) ); + + END_FUNCTION; + + FUNCTION make_real_interval_to_max( + max : REAL; + maxclo : open_closed + ) : real_interval_to_max; + RETURN( real_interval_to_max( max, maxclo ) || maths_space( ) || generic_expression( ) || generic_literal( ) || + simple_generic_expression( ) ); + + END_FUNCTION; + + FUNCTION make_real_literal( + lit_value : REAL + ) : real_literal; + RETURN( real_literal( ) || literal_number( lit_value ) || simple_numeric_expression( ) || numeric_expression( ) || + expression( ) || generic_expression( ) || simple_generic_expression( ) || generic_literal( ) ); + + END_FUNCTION; + + FUNCTION make_string_literal( + lit_value : STRING + ) : string_literal; + RETURN( string_literal( lit_value ) || simple_string_expression( ) || string_expression( ) || expression( ) || + generic_expression( ) || simple_generic_expression( ) || generic_literal( ) ); + + END_FUNCTION; + + FUNCTION make_uniform_product_space( + base : maths_space; + exponent : positive_integer + ) : uniform_product_space; + RETURN( uniform_product_space( base, exponent ) || maths_space( ) || generic_expression( ) || generic_literal( ) || + simple_generic_expression( ) ); + + END_FUNCTION; + + FUNCTION max_exists( + spc : maths_space + ) : BOOLEAN; + + LOCAL + types : SET OF STRING := TYPEOF( spc ); + END_LOCAL; + RETURN( bool( ( ( schema_prefix + 'FINITE_INTEGER_INTERVAL' ) IN types ) OR ( ( schema_prefix + 'INTEGER_INTERVAL_TO_MAX' ) + IN types ) OR ( ( schema_prefix + 'FINITE_REAL_INTERVAL' ) IN types ) OR ( ( schema_prefix + 'REAL_INTERVAL_TO_MAX' ) IN + types ) ) ); + + END_FUNCTION; + + FUNCTION max_included( + spc : maths_space + ) : BOOLEAN; + + LOCAL + types : SET OF STRING := TYPEOF( spc ); + END_LOCAL; + IF ( ( schema_prefix + 'FINITE_INTEGER_INTERVAL' ) IN types ) OR ( ( schema_prefix + 'INTEGER_INTERVAL_TO_MAX' ) IN types ) + THEN + RETURN( TRUE ); + END_IF; + IF ( schema_prefix + 'FINITE_REAL_INTERVAL' ) IN types THEN + RETURN( bool( spc\finite_real_interval.max_closure = closed ) ); + END_IF; + IF ( schema_prefix + 'REAL_INTERVAL_TO_MAX' ) IN types THEN + RETURN( bool( spc\real_interval_to_max.max_closure = closed ) ); + END_IF; + RETURN( FALSE ); + + END_FUNCTION; + + FUNCTION member_of( + val : GENERIC:g; + spc : maths_space + ) : LOGICAL; + + FUNCTION fedex( + val : AGGREGATE OF GENERIC:x; + i : INTEGER + ) : GENERIC:x; + RETURN( val[i] ); + + END_FUNCTION; + + LOCAL + v : maths_value := simplify_maths_value( convert_to_maths_value( val ) ); + vtypes : SET OF STRING := stripped_typeof( v ); + s : maths_space := simplify_maths_space( spc ); + stypes : SET OF STRING := stripped_typeof( s ); + tmp_int : INTEGER; + tmp_real : REAL; + tmp_cmplx : complex_number_literal; + lgcl : LOGICAL; + cum : LOGICAL; + vspc : maths_space; + sspc : maths_space; + smem : SET OF maths_value; + factors : LIST OF maths_space; + END_LOCAL; + IF NOT EXISTS( s ) THEN + RETURN( FALSE ); + END_IF; + IF NOT EXISTS( v ) THEN + RETURN( s = the_generics ); + END_IF; + IF ( 'GENERIC_EXPRESSION' IN vtypes ) AND ( NOT ( 'MATHS_SPACE' IN vtypes ) ) AND ( NOT ( 'MATHS_FUNCTION' IN vtypes ) ) AND + ( NOT ( 'COMPLEX_NUMBER_LITERAL' IN vtypes ) ) THEN + IF has_values_space( v ) THEN + vspc := values_space_of( v ); + IF subspace_of( vspc, s ) THEN + RETURN( TRUE ); + END_IF; + IF NOT compatible_spaces( vspc, s ) THEN + RETURN( FALSE ); + END_IF; + RETURN( UNKNOWN ); + END_IF; + RETURN( UNKNOWN ); + END_IF; + IF 'ELEMENTARY_SPACE' IN stypes THEN + CASE s\elementary_space.space_id OF + es_numbers : RETURN( ( 'NUMBER' IN vtypes ) OR ( 'COMPLEX_NUMBER_LITERAL' IN vtypes ) ); + es_complex_numbers : RETURN( 'COMPLEX_NUMBER_LITERAL' IN vtypes ); + es_reals : RETURN( ( 'REAL' IN vtypes ) AND ( NOT ( 'INTEGER' IN vtypes ) ) ); + es_integers : RETURN( 'INTEGER' IN vtypes ); + es_logicals : RETURN( 'LOGICAL' IN vtypes ); + es_booleans : RETURN( 'BOOLEAN' IN vtypes ); + es_strings : RETURN( 'STRING' IN vtypes ); + es_binarys : RETURN( 'BINARY' IN vtypes ); + es_maths_spaces : RETURN( 'MATHS_SPACE' IN vtypes ); + es_maths_functions : RETURN( 'MATHS_FUNCTION' IN vtypes ); + es_generics : RETURN( TRUE ); + END_CASE; + END_IF; + IF 'FINITE_INTEGER_INTERVAL' IN stypes THEN + IF 'INTEGER' IN vtypes THEN + tmp_int := v; + RETURN( ( s\finite_integer_interval.min <= tmp_int ) AND ( tmp_int <= s\finite_integer_interval.max ) ); + END_IF; + RETURN( FALSE ); + END_IF; + IF 'INTEGER_INTERVAL_FROM_MIN' IN stypes THEN + IF 'INTEGER' IN vtypes THEN + tmp_int := v; + RETURN( s\integer_interval_from_min.min <= tmp_int ); + END_IF; + RETURN( FALSE ); + END_IF; + IF 'INTEGER_INTERVAL_TO_MAX' IN stypes THEN + IF 'INTEGER' IN vtypes THEN + tmp_int := v; + RETURN( tmp_int <= s\integer_interval_to_max.max ); + END_IF; + RETURN( FALSE ); + END_IF; + IF 'FINITE_REAL_INTERVAL' IN stypes THEN + IF ( 'REAL' IN vtypes ) AND ( NOT ( 'INTEGER' IN vtypes ) ) THEN + tmp_real := v; + IF s\finite_real_interval.min_closure = closed THEN + IF s\finite_real_interval.max_closure = closed THEN + RETURN( ( s\finite_real_interval.min <= tmp_real ) AND ( tmp_real <= s\finite_real_interval.max ) ); + ELSE + RETURN( ( s\finite_real_interval.min <= tmp_real ) AND ( tmp_real < s\finite_real_interval.max ) ); + END_IF; + ELSE + IF s\finite_real_interval.max_closure = closed THEN + RETURN( ( s\finite_real_interval.min < tmp_real ) AND ( tmp_real <= s\finite_real_interval.max ) ); + ELSE + RETURN( ( s\finite_real_interval.min < tmp_real ) AND ( tmp_real < s\finite_real_interval.max ) ); + END_IF; + END_IF; + END_IF; + RETURN( FALSE ); + END_IF; + IF 'REAL_INTERVAL_FROM_MIN' IN stypes THEN + IF ( 'REAL' IN vtypes ) AND ( NOT ( 'INTEGER' IN vtypes ) ) THEN + tmp_real := v; + IF s\real_interval_from_min.min_closure = closed THEN + RETURN( s\real_interval_from_min.min <= tmp_real ); + ELSE + RETURN( s\real_interval_from_min.min < tmp_real ); + END_IF; + END_IF; + RETURN( FALSE ); + END_IF; + IF 'REAL_INTERVAL_TO_MAX' IN stypes THEN + IF ( 'REAL' IN vtypes ) AND ( NOT ( 'INTEGER' IN vtypes ) ) THEN + tmp_real := v; + IF s\real_interval_to_max.max_closure = closed THEN + RETURN( tmp_real <= s\real_interval_to_max.max ); + ELSE + RETURN( tmp_real < s\real_interval_to_max.max ); + END_IF; + END_IF; + RETURN( FALSE ); + END_IF; + IF 'CARTESIAN_COMPLEX_NUMBER_REGION' IN stypes THEN + IF 'COMPLEX_NUMBER_LITERAL' IN vtypes THEN + RETURN( member_of( v\complex_number_literal.real_part, s\cartesian_complex_number_region.real_constraint ) AND + member_of( v\complex_number_literal.imag_part, s\cartesian_complex_number_region.imag_constraint ) ); + END_IF; + RETURN( FALSE ); + END_IF; + IF 'POLAR_COMPLEX_NUMBER_REGION' IN stypes THEN + IF 'COMPLEX_NUMBER_LITERAL' IN vtypes THEN + tmp_cmplx := v; + tmp_cmplx.real_part := tmp_cmplx.real_part - s\polar_complex_number_region.centre.real_part; + tmp_cmplx.imag_part := tmp_cmplx.imag_part - s\polar_complex_number_region.centre.imag_part; + tmp_real := SQRT( ( tmp_cmplx.real_part ** 2 ) + ( tmp_cmplx.imag_part ** 2 ) ); + IF NOT member_of( tmp_real, s\polar_complex_number_region.distance_constraint ) THEN + RETURN( FALSE ); + END_IF; + IF tmp_real = 0 THEN + RETURN( TRUE ); + END_IF; + tmp_real := atan2( tmp_cmplx.imag_part, tmp_cmplx.real_part ); + RETURN( member_of( tmp_real, s\polar_complex_number_region.direction_constraint ) OR member_of( tmp_real + ( 2 * PI ), s\ + polar_complex_number_region.direction_constraint ) ); + END_IF; + RETURN( FALSE ); + END_IF; + IF 'FINITE_SPACE' IN stypes THEN + smem := s\finite_space.members; + cum := FALSE; + REPEAT i := 1 TO SIZEOF( smem ) BY 1; + cum := cum OR equal_maths_values( v, smem[i] ); + IF cum = TRUE THEN + RETURN( TRUE ); + END_IF; + END_REPEAT; + RETURN( cum ); + END_IF; + IF 'UNIFORM_PRODUCT_SPACE' IN stypes THEN + IF 'LIST' IN vtypes THEN + IF SIZEOF( v ) = s\uniform_product_space.exponent THEN + sspc := s\uniform_product_space.base; + cum := TRUE; + REPEAT i := 1 TO SIZEOF( v ) BY 1; + cum := cum AND member_of( v[i], sspc ); + IF cum = FALSE THEN + RETURN( FALSE ); + END_IF; + END_REPEAT; + RETURN( cum ); + END_IF; + END_IF; + RETURN( FALSE ); + END_IF; + IF 'LISTED_PRODUCT_SPACE' IN stypes THEN + IF 'LIST' IN vtypes THEN + factors := s\listed_product_space.factors; + IF SIZEOF( v ) = SIZEOF( factors ) THEN + cum := TRUE; + REPEAT i := 1 TO SIZEOF( v ) BY 1; + cum := cum AND member_of( v[i], factors[i] ); + IF cum = FALSE THEN + RETURN( FALSE ); + END_IF; + END_REPEAT; + RETURN( cum ); + END_IF; + END_IF; + RETURN( FALSE ); + END_IF; + IF 'EXTENDED_TUPLE_SPACE' IN stypes THEN + IF 'LIST' IN vtypes THEN + sspc := s\extended_tuple_space.base; + tmp_int := space_dimension( sspc ); + IF SIZEOF( v ) >= tmp_int THEN + cum := TRUE; + REPEAT i := 1 TO tmp_int BY 1; + cum := cum AND member_of( v[i], factor_space( sspc, i ) ); + IF cum = FALSE THEN + RETURN( FALSE ); + END_IF; + END_REPEAT; + sspc := s\extended_tuple_space.extender; + REPEAT i := tmp_int + 1 TO SIZEOF( v ) BY 1; + cum := cum AND member_of( v[i], sspc ); + IF cum = FALSE THEN + RETURN( FALSE ); + END_IF; + END_REPEAT; + RETURN( cum ); + END_IF; + END_IF; + RETURN( FALSE ); + END_IF; + IF 'FUNCTION_SPACE' IN stypes THEN + IF 'MATHS_FUNCTION' IN vtypes THEN + vspc := v\maths_function.domain; + sspc := s\function_space.domain_argument; + CASE s\function_space.domain_constraint OF + sc_equal : cum := equal_maths_spaces( vspc, sspc ); + sc_subspace : cum := subspace_of( vspc, sspc ); + sc_member : cum := member_of( vspc, sspc ); + END_CASE; + IF cum = FALSE THEN + RETURN( FALSE ); + END_IF; + vspc := v\maths_function.range; + sspc := s\function_space.range_argument; + CASE s\function_space.range_constraint OF + sc_equal : cum := cum AND equal_maths_spaces( vspc, sspc ); + sc_subspace : cum := cum AND subspace_of( vspc, sspc ); + sc_member : cum := cum AND member_of( vspc, sspc ); + END_CASE; + RETURN( cum ); + END_IF; + RETURN( FALSE ); + END_IF; + RETURN( UNKNOWN ); + + END_FUNCTION; + + FUNCTION min_exists( + spc : maths_space + ) : BOOLEAN; + + LOCAL + types : SET OF STRING := TYPEOF( spc ); + END_LOCAL; + RETURN( bool( ( ( schema_prefix + 'FINITE_INTEGER_INTERVAL' ) IN types ) OR ( ( schema_prefix + 'INTEGER_INTERVAL_FROM_MIN' ) + IN types ) OR ( ( schema_prefix + 'FINITE_REAL_INTERVAL' ) IN types ) OR ( ( schema_prefix + 'REAL_INTERVAL_FROM_MIN' ) IN + types ) ) ); + + END_FUNCTION; + + FUNCTION min_included( + spc : maths_space + ) : BOOLEAN; + + LOCAL + types : SET OF STRING := TYPEOF( spc ); + END_LOCAL; + IF ( ( schema_prefix + 'FINITE_INTEGER_INTERVAL' ) IN types ) OR ( ( schema_prefix + 'INTEGER_INTERVAL_FROM_MIN' ) IN types ) + THEN + RETURN( TRUE ); + END_IF; + IF ( schema_prefix + 'FINITE_REAL_INTERVAL' ) IN types THEN + RETURN( bool( spc\finite_real_interval.min_closure = closed ) ); + END_IF; + IF ( schema_prefix + 'REAL_INTERVAL_FROM_MIN' ) IN types THEN + RETURN( bool( spc\real_interval_from_min.min_closure = closed ) ); + END_IF; + RETURN( FALSE ); + + 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 := 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.POLY_LOOP' IN TYPEOF( l[1] ); + REPEAT i := 2 TO SIZEOF( l ) BY 1; + IF ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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( [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.BOUNDED_CURVE', + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CONIC' , + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CURVE_REPLICA' , + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LINE' , + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.OFFSET_CURVE_3D' ] * TYPEOF( cv ) ) > 1 THEN + RETURN( FALSE ); + END_IF; + IF ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 SIZEOF( [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CONIC', + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LINE' ] * TYPEOF( cv ) ) = 1 THEN + RETURN( TRUE ); + ELSE + IF 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CURVE_REPLICA' IN TYPEOF( cv ) THEN + RETURN( msf_curve_check( cv\curve_replica.parent_curve ) ); + ELSE + IF ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.POLYLINE' IN TYPEOF( cv\offset_curve_3d. + basis_curve ) ) ) THEN + RETURN( msf_curve_check( cv\offset_curve_3d.basis_curve ) ); + ELSE + IF 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 + IF 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SURFACE_CURVE' IN TYPEOF( cv ) THEN + IF msf_curve_check( cv\surface_curve.curve_3d ) THEN + REPEAT i := 1 TO SIZEOF( cv\surface_curve.associated_geometry ) BY 1; + IF 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 + IF 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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; + RETURN( FALSE ); + + END_FUNCTION; + + FUNCTION msf_surface_check( + surf : surface + ) : BOOLEAN; + IF 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.ELEMENTARY_SURFACE' IN TYPEOF( surf ) THEN + RETURN( TRUE ); + ELSE + IF 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SWEPT_SURFACE' IN TYPEOF( surf ) THEN + RETURN( msf_curve_check( surf\swept_surface.swept_curve ) ); + ELSE + IF ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 + IF 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SURFACE_REPLICA' IN TYPEOF( surf ) THEN + RETURN( msf_surface_check( surf\surface_replica.parent_surface ) ); + ELSE + IF ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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( [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.BOUNDED_CURVE', + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CONIC' , + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CURVE_REPLICA' , + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LINE' , + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.OFFSET_CURVE_3D' ] * TYPEOF( cv ) ) > 1 THEN + RETURN( FALSE ); + ELSE + IF ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 SIZEOF( [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CONIC', + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LINE' ] * TYPEOF( cv ) ) = 1 THEN + RETURN( TRUE ); + ELSE + IF 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CURVE_REPLICA' IN TYPEOF( cv ) THEN + RETURN( nmsf_curve_check( cv\curve_replica.parent_curve ) ); + ELSE + IF ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.POLYLINE' IN TYPEOF( cv\offset_curve_3d. + basis_curve ) ) ) THEN + RETURN( nmsf_curve_check( cv\offset_curve_3d.basis_curve ) ); + ELSE + IF 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 + IF 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SURFACE_CURVE' IN TYPEOF( cv ) THEN + IF nmsf_curve_check( cv\surface_curve.curve_3d ) THEN + REPEAT i := 1 TO SIZEOF( cv\surface_curve.associated_geometry ) BY 1; + IF 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 + IF 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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; + RETURN( FALSE ); + + END_FUNCTION; + + FUNCTION nmsf_surface_check( + surf : surface + ) : BOOLEAN; + IF 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.ELEMENTARY_SURFACE' IN TYPEOF( surf ) THEN + RETURN( TRUE ); + ELSE + IF 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SWEPT_SURFACE' IN TYPEOF( surf ) THEN + RETURN( nmsf_curve_check( surf\swept_surface.swept_curve ) ); + ELSE + IF ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 + IF 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SURFACE_REPLICA' IN TYPEOF( surf ) THEN + RETURN( nmsf_surface_check( surf\surface_replica.parent_surface ) ); + ELSE + IF ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 no_cyclic_domain_reference( + ref : maths_space_or_function; + used : SET OF maths_function + ) : BOOLEAN; + + LOCAL + typenames : SET OF STRING := TYPEOF( ref ); + func : maths_function; + END_LOCAL; + IF ( NOT EXISTS( ref ) ) OR ( NOT EXISTS( used ) ) THEN + RETURN( FALSE ); + END_IF; + IF ( schema_prefix + 'MATHS_SPACE' ) IN typenames THEN + RETURN( TRUE ); + END_IF; + func := ref; + IF func IN used THEN + RETURN( FALSE ); + END_IF; + IF ( schema_prefix + 'CONSTANT_FUNCTION' ) IN typenames THEN + RETURN( no_cyclic_domain_reference( func\constant_function.source_of_domain, used + [func] ) ); + END_IF; + IF ( schema_prefix + 'SELECTOR_FUNCTION' ) IN typenames THEN + RETURN( no_cyclic_domain_reference( func\selector_function.source_of_domain, used + [func] ) ); + END_IF; + IF ( schema_prefix + 'PARALLEL_COMPOSED_FUNCTION' ) IN typenames THEN + RETURN( no_cyclic_domain_reference( func\parallel_composed_function.source_of_domain, used + [func] ) ); + END_IF; + RETURN( TRUE ); + + END_FUNCTION; + + FUNCTION no_cyclic_space_reference( + spc : maths_space; + refs : SET OF maths_space + ) : BOOLEAN; + + LOCAL + types : SET OF STRING; + refs_plus : SET OF maths_space; + END_LOCAL; + IF spc IN refs THEN + RETURN( FALSE ); + END_IF; + types := TYPEOF( spc ); + refs_plus := refs + spc; + IF ( schema_prefix + 'FINITE_SPACE' ) IN types THEN + RETURN( bool( SIZEOF( QUERY ( sp <* QUERY ( mem <* spc\finite_space.members | ( ( schema_prefix + 'MATHS_SPACE' ) IN + TYPEOF( mem ) ) ) | ( NOT no_cyclic_space_reference( sp, refs_plus ) ) ) ) = 0 ) ); + END_IF; + IF ( schema_prefix + 'UNIFORM_PRODUCT_SPACE' ) IN types THEN + RETURN( no_cyclic_space_reference( spc\uniform_product_space.base, refs_plus ) ); + END_IF; + IF ( schema_prefix + 'LISTED_PRODUCT_SPACE' ) IN types THEN + RETURN( bool( SIZEOF( QUERY ( fac <* spc\listed_product_space.factors | ( NOT no_cyclic_space_reference( fac, refs_plus ) ) ) ) + = 0 ) ); + END_IF; + IF ( schema_prefix + 'EXTENDED_TUPLE_SPACE' ) IN types THEN + RETURN( no_cyclic_space_reference( spc\extended_tuple_space.base, refs_plus ) AND no_cyclic_space_reference( spc\ + extended_tuple_space.extender, refs_plus ) ); + END_IF; + RETURN( TRUE ); + + END_FUNCTION; + + FUNCTION nondecreasing( + lr : LIST OF REAL + ) : BOOLEAN; + IF NOT EXISTS( lr ) THEN + RETURN( FALSE ); + END_IF; + REPEAT j := 2 TO SIZEOF( lr ) BY 1; + IF lr[j] < lr[j - 1] THEN + RETURN( FALSE ); + END_IF; + END_REPEAT; + RETURN( TRUE ); + + END_FUNCTION; + + FUNCTION normalise( + arg : vector_or_direction + ) : vector_or_direction; + + LOCAL + ndim : INTEGER; + v : direction := dummy_gri || direction( [1, 0, 0] ); + result : vector_or_direction; + vec : vector := dummy_gri || vector( v, 1 ); + mag : REAL; + END_LOCAL; + IF NOT EXISTS( arg ) THEN + result := ?; + ELSE + ndim := arg.dim; + IF 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.VECTOR' IN TYPEOF( arg ) THEN + + BEGIN + v := dummy_gri || direction( arg\vector.orientation.direction_ratios ); + IF arg\vector.magnitude = 0 THEN + RETURN( ? ); + ELSE + vec := dummy_gri || vector( v, 1 ); + END_IF; + END; + ELSE + v := dummy_gri || direction( arg.direction_ratios ); + END_IF; + mag := 0; + REPEAT i := 1 TO ndim BY 1; + mag := mag + ( v.direction_ratios[i] * v.direction_ratios[i] ); + END_REPEAT; + IF mag > 0 THEN + mag := SQRT( mag ); + REPEAT i := 1 TO ndim BY 1; + v.direction_ratios[i] := v.direction_ratios[i] / mag; + END_REPEAT; + IF 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 number_superspace_of( + spc : maths_space + ) : elementary_space; + IF subspace_of_es( spc, es_integers ) THEN + RETURN( the_integers ); + END_IF; + IF subspace_of_es( spc, es_reals ) THEN + RETURN( the_reals ); + END_IF; + IF subspace_of_es( spc, es_complex_numbers ) THEN + RETURN( the_complex_numbers ); + END_IF; + IF subspace_of_es( spc, es_numbers ) THEN + RETURN( the_numbers ); + END_IF; + RETURN( ? ); + + END_FUNCTION; + + FUNCTION number_tuple_subspace_check( + spc : maths_space + ) : LOGICAL; + + LOCAL + types : SET OF STRING := stripped_typeof( spc ); + factors : LIST OF maths_space; + cum : LOGICAL := TRUE; + END_LOCAL; + IF 'UNIFORM_PRODUCT_SPACE' IN types THEN + RETURN( subspace_of_es( spc\uniform_product_space.base, es_numbers ) ); + END_IF; + IF 'LISTED_PRODUCT_SPACE' IN types THEN + factors := spc\listed_product_space.factors; + REPEAT i := 1 TO SIZEOF( factors ) BY 1; + cum := cum AND subspace_of_es( factors[i], es_numbers ); + END_REPEAT; + RETURN( cum ); + END_IF; + IF 'EXTENDED_TUPLE_SPACE' IN types THEN + cum := subspace_of_es( spc\extended_tuple_space.extender, es_numbers ); + cum := cum AND number_tuple_subspace_check( spc\extended_tuple_space.base ); + RETURN( cum ); + END_IF; + RETURN( FALSE ); + + END_FUNCTION; + + FUNCTION one_tuples_of( + spc : maths_space + ) : tuple_space; + RETURN( make_uniform_product_space( spc, 1 ) ); + + END_FUNCTION; + + FUNCTION open_path_based_inner_boundary( + input : SET OF primitive_2d + ) : BOOLEAN; + + LOCAL + pass : BOOLEAN := TRUE; + END_LOCAL; + REPEAT i := 1 TO SIZEOF( input ) BY 1; + IF ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PATH_AREA_WITH_PARAMETERS' IN TYPEOF( input[i] ) ) + AND ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CIRCLE' IN TYPEOF( input[i]\mapped_item. + mapping_source\representation_map.mapping_origin ) ) OR ( ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.COMPOSITE_CURVE' IN TYPEOF( input[i]\mapped_item. + mapping_source\representation_map.mapping_origin ) ) AND ( input[i]\mapped_item.mapping_source\representation_map. + mapping_origin\composite_curve.closed_curve = TRUE ) ) ) THEN + pass := FALSE; + END_IF; + END_REPEAT; + RETURN( pass ); + + END_FUNCTION; + + FUNCTION open_shell_reversed( + a_shell : open_shell + ) : oriented_open_shell; + + LOCAL + the_reverse : oriented_open_shell; + END_LOCAL; + IF 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 parallel_composed_function_composability_check( + funcs : LIST OF maths_function; + final : maths_function_select + ) : BOOLEAN; + + LOCAL + tplsp : tuple_space := the_zero_tuple_space; + finfun : maths_function := convert_to_maths_function( final ); + END_LOCAL; + REPEAT i := 1 TO SIZEOF( funcs ) BY 1; + tplsp := assoc_product_space( tplsp, funcs[i].range ); + END_REPEAT; + RETURN( compatible_spaces( tplsp, finfun.domain ) ); + + END_FUNCTION; + + FUNCTION parallel_composed_function_domain_check( + comdom : tuple_space; + funcs : LIST OF maths_function + ) : BOOLEAN; + REPEAT i := 1 TO SIZEOF( funcs ) BY 1; + IF NOT compatible_spaces( comdom, funcs[i].domain ) THEN + RETURN( FALSE ); + END_IF; + END_REPEAT; + RETURN( TRUE ); + + END_FUNCTION; + + FUNCTION partial_derivative_check( + domain : tuple_space; + d_vars : LIST [1 : ?] OF input_selector + ) : BOOLEAN; + + LOCAL + domn : tuple_space := domain; + fspc : maths_space; + dim : INTEGER; + k : INTEGER; + END_LOCAL; + IF ( space_dimension( domain ) = 1 ) AND ( ( schema_prefix + 'TUPLE_SPACE' ) IN TYPEOF( factor1( domain ) ) ) THEN + domn := factor1( domain ); + END_IF; + dim := space_dimension( domn ); + REPEAT i := 1 TO SIZEOF( d_vars ) BY 1; + k := d_vars[i]; + IF k > dim THEN + RETURN( FALSE ); + END_IF; + fspc := factor_space( domn, k ); + IF ( NOT subspace_of_es( fspc, es_reals ) ) AND ( NOT subspace_of_es( fspc, es_complex_numbers ) ) THEN + RETURN( FALSE ); + END_IF; + END_REPEAT; + RETURN( TRUE ); + + 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 BY 1; + 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 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 plane_angle_for_pair_in_radian( + pair : kinematic_pair; + angle : plane_angle_measure + ) : plane_angle_measure; + + LOCAL + converted_angle : plane_angle_measure := angle; + link_rep : kinematic_link_representation := representation_of_link( pair.joint.edge_start ); + link_cntxt : representation_context; + pa_units : SET OF unit := []; + pau : unit; + END_LOCAL; + link_cntxt := link_rep\representation.context_of_items; + IF NOT ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.GLOBAL_UNIT_ASSIGNED_CONTEXT' IN TYPEOF( + link_cntxt ) ) THEN + RETURN( ? ); + END_IF; + pa_units := QUERY ( unit <* link_cntxt\global_unit_assigned_context.units | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PLANE_ANGLE_UNIT' IN TYPEOF( unit ) ) ); + IF SIZEOF( pa_units ) <> 1 THEN + RETURN( ? ); + END_IF; + pau := pa_units[1]; + IF ( NOT ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SI_UNIT' IN TYPEOF( pau ) ) ) AND ( NOT ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CONVERSION_BASED_UNIT' IN TYPEOF( pau ) ) ) THEN + RETURN( ? ); + END_IF; + REPEAT WHILE 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CONVERSION_BASED_UNIT' IN TYPEOF( pau ); + converted_angle := converted_angle * pau\conversion_based_unit.conversion_factor.value_component; + pau := pau\conversion_based_unit.conversion_factor.unit_component; + IF ( ( NOT ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SI_UNIT' IN TYPEOF( pau ) ) ) AND ( NOT ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CONVERSION_BASED_UNIT' IN TYPEOF( pau ) ) ) ) OR + ( NOT ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PLANE_ANGLE_UNIT' IN TYPEOF( pau ) ) ) THEN + RETURN( ? ); + END_IF; + END_REPEAT; + IF pau\si_unit.name <> si_unit_name.radian THEN + RETURN( ? ); + END_IF; + CASE pau\si_unit.prefix OF + si_prefix.exa : RETURN( 1.e+18 * converted_angle ); + si_prefix.peta : RETURN( 1.e+15 * converted_angle ); + si_prefix.tera : RETURN( 1.e+12 * converted_angle ); + si_prefix.giga : RETURN( 1000000000 * converted_angle ); + si_prefix.mega : RETURN( 1000000 * converted_angle ); + si_prefix.kilo : RETURN( 1000 * converted_angle ); + si_prefix.hecto : RETURN( 100 * converted_angle ); + si_prefix.deca : RETURN( 10 * converted_angle ); + si_prefix.deci : RETURN( 0.1 * converted_angle ); + si_prefix.centi : RETURN( 0.01 * converted_angle ); + si_prefix.milli : RETURN( 0.001 * converted_angle ); + si_prefix.micro : RETURN( 1.e-06 * converted_angle ); + si_prefix.nano : RETURN( 1.e-09 * converted_angle ); + si_prefix.pico : RETURN( 1.e-12 * converted_angle ); + si_prefix.femto : RETURN( 1.e-15 * converted_angle ); + si_prefix.atto : RETURN( 1.e-18 * converted_angle ); + OTHERWISE : RETURN( converted_angle ); + END_CASE; + + END_FUNCTION; + + FUNCTION real_max( + spc : maths_space + ) : REAL; + + LOCAL + types : SET OF STRING := TYPEOF( spc ); + END_LOCAL; + IF ( schema_prefix + 'FINITE_INTEGER_INTERVAL' ) IN types THEN + RETURN( spc\finite_integer_interval.max ); + END_IF; + IF ( schema_prefix + 'INTEGER_INTERVAL_TO_MAX' ) IN types THEN + RETURN( spc\integer_interval_to_max.max ); + END_IF; + IF ( schema_prefix + 'FINITE_REAL_INTERVAL' ) IN types THEN + RETURN( spc\finite_real_interval.max ); + END_IF; + IF ( schema_prefix + 'REAL_INTERVAL_TO_MAX' ) IN types THEN + RETURN( spc\real_interval_to_max.max ); + END_IF; + RETURN( ? ); + + END_FUNCTION; + + FUNCTION real_min( + spc : maths_space + ) : REAL; + + LOCAL + types : SET OF STRING := TYPEOF( spc ); + END_LOCAL; + IF ( schema_prefix + 'FINITE_INTEGER_INTERVAL' ) IN types THEN + RETURN( spc\finite_integer_interval.min ); + END_IF; + IF ( schema_prefix + 'INTEGER_INTERVAL_FROM_MIN' ) IN types THEN + RETURN( spc\integer_interval_from_min.min ); + END_IF; + IF ( schema_prefix + 'FINITE_REAL_INTERVAL' ) IN types THEN + RETURN( spc\finite_real_interval.min ); + END_IF; + IF ( schema_prefix + 'REAL_INTERVAL_FROM_MIN' ) IN types THEN + RETURN( spc\real_interval_from_min.min ); + END_IF; + RETURN( ? ); + + END_FUNCTION; + + FUNCTION relating_shape_representations_of_extreme_values( + item : location_of_extreme_value_select + ) : SET OF shape_representation; + + LOCAL + results : SET OF shape_representation := []; + exti : SET OF extreme_instance := []; + ii_ei : SET OF instance_report_item_with_extreme_instances := []; + sdiir : SET OF shape_data_quality_inspection_instance_report := []; + sdqr : SET OF shape_data_quality_inspection_result_representation := []; + sdisr : SET OF shape_data_quality_inspected_shape_and_result_relationship := []; + END_LOCAL; + exti := exti + bag_to_set( USEDIN( item, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'EXTREME_INSTANCE.' + 'LOCATIONS_OF_EXTREME_VALUE' ) ); + REPEAT i := 1 TO HIINDEX( exti ) BY 1; + ii_ei := ii_ei + bag_to_set( USEDIN( exti[i], 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'INSTANCE_REPORT_ITEM_WITH_EXTREME_INSTANCES.' + 'EXTREME_INSTANCES' ) ); + END_REPEAT; + REPEAT i := 1 TO HIINDEX( ii_ei ) BY 1; + sdiir := sdiir + bag_to_set( USEDIN( ii_ei[i], 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'SHAPE_DATA_QUALITY_INSPECTION_INSTANCE_REPORT.' + 'INSPECTED_INSTANCES' ) ); + END_REPEAT; + REPEAT i := 1 TO HIINDEX( sdiir ) BY 1; + sdqr := sdqr + QUERY ( i1 <* bag_to_set( USEDIN( sdiir[i].inspection_result, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.REPRESENTATION.ITEMS' ) ) | ( ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'SHAPE_DATA_QUALITY_INSPECTION_RESULT_REPRESENTATION' ) IN TYPEOF( i1 ) ) ); + END_REPEAT; + REPEAT i := 1 TO HIINDEX( sdqr ) BY 1; + sdisr := sdisr + bag_to_set( USEDIN( sdqr[i], 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'SHAPE_DATA_QUALITY_INSPECTED_SHAPE_AND_RESULT_RELATIONSHIP.' + 'REP_2' ) ); + END_REPEAT; + REPEAT i := 1 TO HIINDEX( sdisr ) BY 1; + results := results + sdisr[i].rep_1; + END_REPEAT; + RETURN( results ); + + END_FUNCTION; + + FUNCTION remove_first( + alist : LIST OF GENERIC:gen + ) : LIST OF GENERIC:gen; + + LOCAL + blist : LIST OF GENERIC:gen := alist; + END_LOCAL; + IF SIZEOF( blist ) > 0 THEN + REMOVE( blist, 1 ); + END_IF; + RETURN( blist ); + + END_FUNCTION; + + FUNCTION repackage( + tspace : tuple_space; + repckg : repackage_options + ) : tuple_space; + CASE repckg OF + ro_nochange : RETURN( tspace ); + ro_wrap_as_tuple : RETURN( one_tuples_of( tspace ) ); + ro_unwrap_tuple : RETURN( factor1( tspace ) ); + OTHERWISE : RETURN( ? ); + END_CASE; + + END_FUNCTION; + + FUNCTION representation_of_link( + link : kinematic_link + ) : kinematic_link_representation; + RETURN( ? ); + + 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 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.VECTOR' IN TYPEOF( vec ) THEN + v := dummy_gri || direction( vec\vector.orientation.direction_ratios ); + mag := scalar * vec\vector.magnitude; + ELSE + v := dummy_gri || direction( vec.direction_ratios ); + mag := scalar; + END_IF; + IF mag < 0 THEN + REPEAT i := 1 TO SIZEOF( v.direction_ratios ) BY 1; + 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, x_axis, arg : direction + ) : direction; + + LOCAL + y_axis : vector; + v : direction; + temp : vector; + END_LOCAL; + IF NOT EXISTS( arg ) THEN + v := dummy_gri || direction( [0, 1, 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 ) BY 1; + the_reverse := the_reverse + topology_reversed( a_set[i] ); + END_REPEAT; + RETURN( the_reverse ); + + END_FUNCTION; + + FUNCTION shape_of_array( + func : maths_function + ) : LIST OF positive_integer; + + LOCAL + tspace : tuple_space; + temp : maths_space; + result : LIST OF positive_integer := []; + END_LOCAL; + IF ( schema_prefix + 'EXPLICIT_TABLE_FUNCTION' ) IN TYPEOF( func ) THEN + RETURN( func\explicit_table_function.shape ); + END_IF; + tspace := func.domain; + IF ( space_dimension( tspace ) = 1 ) AND ( ( schema_prefix + 'TUPLE_SPACE' ) IN TYPEOF( factor1( tspace ) ) ) THEN + tspace := factor1( tspace ); + END_IF; + REPEAT i := 1 TO space_dimension( tspace ) BY 1; + temp := factor_space( tspace, i ); + IF NOT ( ( schema_prefix + 'FINITE_INTEGER_INTERVAL' ) IN TYPEOF( temp ) ) THEN + RETURN( ? ); + END_IF; + INSERT( result, temp\finite_integer_interval.size, i - 1 ); + END_REPEAT; + RETURN( result ); + + END_FUNCTION; + + FUNCTION shell_reversed( + a_shell : shell + ) : shell; + IF 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.OPEN_SHELL' IN TYPEOF( a_shell ) THEN + RETURN( open_shell_reversed( a_shell ) ); + ELSE + IF 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CLOSED_SHELL' IN TYPEOF( a_shell ) THEN + RETURN( closed_shell_reversed( a_shell ) ); + ELSE + RETURN( ? ); + END_IF; + END_IF; + + END_FUNCTION; + + FUNCTION simplify_function_application( + expr : function_application + ) : maths_value; + + FUNCTION ctmv( + x : GENERIC:g + ) : maths_value; + RETURN( convert_to_maths_value( x ) ); + + END_FUNCTION; + + FUNCTION good_t( + v : maths_value; + tn : STRING + ) : BOOLEAN; + + LOCAL + tpl : LIST OF maths_value; + END_LOCAL; + IF 'LIST' IN TYPEOF( v ) THEN + tpl := v; + REPEAT i := 1 TO SIZEOF( tpl ) BY 1; + IF NOT ( tn IN TYPEOF( tpl[i] ) ) THEN + RETURN( FALSE ); + END_IF; + END_REPEAT; + RETURN( TRUE ); + END_IF; + RETURN( FALSE ); + + END_FUNCTION; + + FUNCTION makec( + x, y : REAL + ) : complex_number_literal; + RETURN( make_complex_number_literal( x, y ) ); + + END_FUNCTION; + + PROCEDURE parts( + c : complex_number_literal; + VAR x, y : REAL ); + x := c.real_part; + y := c.imag_part; + + END_PROCEDURE; + + CONSTANT + cnlit : STRING := + schema_prefix + + + 'COMPLEX_NUMBER_LITERAL' ; + END_CONSTANT; + + LOCAL + types : SET OF STRING := stripped_typeof( expr.func ); + ef_val : elementary_function_enumerators; + is_elementary : BOOLEAN := FALSE; + v : maths_value; + v1 : maths_value; + v2 : maths_value; + v3 : maths_value; + vlist : LIST OF maths_value := []; + gexpr : generic_expression; + pairs : SET [1 : ?] OF LIST [2 : 2] OF maths_value; + boo : BOOLEAN; + lgc : LOGICAL; + cum : LOGICAL; + j : INTEGER; + k : INTEGER; + n : INTEGER; + p : REAL; + q : REAL; + r : REAL; + s : REAL; + t : REAL; + u : REAL; + str : STRING; + st2 : STRING; + bin : BINARY; + bi2 : BINARY; + tpl : LIST OF maths_value; + tp2 : LIST OF maths_value; + mem : SET OF maths_value := []; + END_LOCAL; + REPEAT i := 1 TO SIZEOF( expr.arguments ) BY 1; + v := simplify_maths_value( expr.arguments[i] ); + INSERT( vlist, v, i - 1 ); + END_REPEAT; + IF SIZEOF( vlist ) >= 1 THEN + v1 := vlist[1]; + END_IF; + IF SIZEOF( vlist ) >= 2 THEN + v2 := vlist[2]; + END_IF; + IF SIZEOF( vlist ) >= 3 THEN + v3 := vlist[3]; + END_IF; + IF 'ELEMENTARY_FUNCTION_ENUMERATORS' IN types THEN + ef_val := expr.func; + is_elementary := TRUE; + END_IF; + IF 'ELEMENTARY_FUNCTION' IN types THEN + ef_val := expr.func\elementary_function.func_id; + is_elementary := TRUE; + END_IF; + IF is_elementary THEN + CASE ef_val OF + ef_and : + BEGIN + cum := TRUE; + REPEAT i := SIZEOF( vlist ) TO 1 BY -1; + IF 'LOGICAL' IN TYPEOF( vlist[i] ) THEN + lgc := vlist[i]; + cum := cum AND lgc; + IF lgc = FALSE THEN + RETURN( ctmv( FALSE ) ); + END_IF; + REMOVE( vlist, i ); + END_IF; + END_REPEAT; + IF SIZEOF( vlist ) = 0 THEN + RETURN( ctmv( cum ) ); + END_IF; + IF cum <> TRUE THEN + INSERT( vlist, ctmv( cum ), 0 ); + END_IF; + IF SIZEOF( vlist ) = 1 THEN + RETURN( vlist[1] ); + END_IF; + END; + ef_or : + BEGIN + cum := FALSE; + REPEAT i := SIZEOF( vlist ) TO 1 BY -1; + IF 'LOGICAL' IN TYPEOF( vlist[i] ) THEN + lgc := vlist[i]; + cum := cum OR lgc; + IF lgc = TRUE THEN + RETURN( ctmv( TRUE ) ); + END_IF; + REMOVE( vlist, i ); + END_IF; + END_REPEAT; + IF SIZEOF( vlist ) = 0 THEN + RETURN( ctmv( cum ) ); + END_IF; + IF cum <> FALSE THEN + INSERT( vlist, ctmv( cum ), 0 ); + END_IF; + IF SIZEOF( vlist ) = 1 THEN + RETURN( vlist[1] ); + END_IF; + END; + ef_not : IF 'LOGICAL' IN TYPEOF( v1 ) THEN + lgc := v1; + RETURN( ctmv( NOT lgc ) ); + END_IF; + ef_xor : + BEGIN + IF 'LOGICAL' IN TYPEOF( v1 ) THEN + lgc := v1; + IF 'LOGICAL' IN TYPEOF( v2 ) THEN + cum := v2; + RETURN( ctmv( lgc XOR cum ) ); + ELSE + IF lgc = FALSE THEN + RETURN( ctmv( v2 ) ); + ELSE + IF lgc = UNKNOWN THEN + RETURN( ctmv( UNKNOWN ) ); + ELSE + RETURN( make_function_application( ef_not, [v2] ) ); + END_IF; + END_IF; + END_IF; + ELSE + IF 'LOGICAL' IN TYPEOF( v2 ) THEN + lgc := v2; + IF lgc = FALSE THEN + RETURN( ctmv( v1 ) ); + ELSE + IF lgc = UNKNOWN THEN + RETURN( ctmv( UNKNOWN ) ); + ELSE + RETURN( make_function_application( ef_not, [v1] ) ); + END_IF; + END_IF; + END_IF; + END_IF; + END; + ef_negate_i : IF 'INTEGER' IN TYPEOF( v1 ) THEN + j := v1; + RETURN( ctmv( -j ) ); + END_IF; + ef_add_i : + BEGIN + j := 0; + REPEAT i := SIZEOF( vlist ) TO 1 BY -1; + IF 'INTEGER' IN TYPEOF( vlist[i] ) THEN + k := vlist[i]; + j := j + k; + REMOVE( vlist, i ); + END_IF; + END_REPEAT; + IF SIZEOF( vlist ) = 0 THEN + RETURN( ctmv( j ) ); + END_IF; + IF j <> 0 THEN + INSERT( vlist, ctmv( j ), 0 ); + END_IF; + IF SIZEOF( vlist ) = 1 THEN + RETURN( vlist[1] ); + END_IF; + END; + ef_subtract_i : IF ( 'INTEGER' IN TYPEOF( v1 ) ) AND ( 'INTEGER' IN TYPEOF( v2 ) ) THEN + j := v1; + k := v2; + RETURN( ctmv( j - k ) ); + END_IF; + ef_multiply_i : + BEGIN + j := 1; + REPEAT i := SIZEOF( vlist ) TO 1 BY -1; + IF 'INTEGER' IN TYPEOF( vlist[i] ) THEN + k := vlist[i]; + j := j * k; + REMOVE( vlist, i ); + END_IF; + END_REPEAT; + IF SIZEOF( vlist ) = 0 THEN + RETURN( ctmv( j ) ); + END_IF; + IF j <> 1 THEN + INSERT( vlist, ctmv( j ), 0 ); + END_IF; + IF SIZEOF( vlist ) = 1 THEN + RETURN( vlist[1] ); + END_IF; + END; + ef_divide_i : IF ( 'INTEGER' IN TYPEOF( v1 ) ) AND ( 'INTEGER' IN TYPEOF( v2 ) ) THEN + j := v1; + k := v2; + RETURN( ctmv( j DIV k ) ); + END_IF; + ef_mod_i : IF ( 'INTEGER' IN TYPEOF( v1 ) ) AND ( 'INTEGER' IN TYPEOF( v2 ) ) THEN + j := v1; + k := v2; + RETURN( ctmv( j MOD k ) ); + END_IF; + ef_exponentiate_i : IF ( 'INTEGER' IN TYPEOF( v1 ) ) AND ( 'INTEGER' IN TYPEOF( v2 ) ) THEN + j := v1; + k := v2; + n := 1; + REPEAT i := 1 TO ABS( k ) BY 1; + n := n * j; + END_REPEAT; + IF k < 0 THEN + n := 1 DIV n; + END_IF; + RETURN( ctmv( n ) ); + END_IF; + ef_eq_i : IF ( 'INTEGER' IN TYPEOF( v1 ) ) AND ( 'INTEGER' IN TYPEOF( v2 ) ) THEN + j := v1; + k := v2; + RETURN( ctmv( j = k ) ); + END_IF; + ef_ne_i : IF ( 'INTEGER' IN TYPEOF( v1 ) ) AND ( 'INTEGER' IN TYPEOF( v2 ) ) THEN + j := v1; + k := v2; + RETURN( ctmv( j <> k ) ); + END_IF; + ef_gt_i : IF ( 'INTEGER' IN TYPEOF( v1 ) ) AND ( 'INTEGER' IN TYPEOF( v2 ) ) THEN + j := v1; + k := v2; + RETURN( ctmv( j > k ) ); + END_IF; + ef_lt_i : IF ( 'INTEGER' IN TYPEOF( v1 ) ) AND ( 'INTEGER' IN TYPEOF( v2 ) ) THEN + j := v1; + k := v2; + RETURN( ctmv( j < k ) ); + END_IF; + ef_ge_i : IF ( 'INTEGER' IN TYPEOF( v1 ) ) AND ( 'INTEGER' IN TYPEOF( v2 ) ) THEN + j := v1; + k := v2; + RETURN( ctmv( j >= k ) ); + END_IF; + ef_le_i : IF ( 'INTEGER' IN TYPEOF( v1 ) ) AND ( 'INTEGER' IN TYPEOF( v2 ) ) THEN + j := v1; + k := v2; + RETURN( ctmv( j <= k ) ); + END_IF; + ef_abs_i : IF 'INTEGER' IN TYPEOF( v1 ) THEN + j := v1; + RETURN( ctmv( ABS( j ) ) ); + END_IF; + ef_max_i : + BEGIN + boo := FALSE; + REPEAT i := SIZEOF( vlist ) TO 1 BY -1; + IF 'INTEGER' IN TYPEOF( vlist[i] ) THEN + IF boo THEN + k := vlist[i]; + IF k > j THEN + j := k; + END_IF; + ELSE + j := vlist[i]; + boo := TRUE; + END_IF; + REMOVE( vlist, i ); + END_IF; + END_REPEAT; + IF SIZEOF( vlist ) = 0 THEN + RETURN( ctmv( j ) ); + END_IF; + IF boo THEN + INSERT( vlist, ctmv( j ), 0 ); + END_IF; + IF SIZEOF( vlist ) = 1 THEN + RETURN( vlist[1] ); + END_IF; + END; + ef_min_i : + BEGIN + boo := FALSE; + REPEAT i := SIZEOF( vlist ) TO 1 BY -1; + IF 'INTEGER' IN TYPEOF( vlist[i] ) THEN + IF boo THEN + k := vlist[i]; + IF k < j THEN + j := k; + END_IF; + ELSE + j := vlist[i]; + boo := TRUE; + END_IF; + REMOVE( vlist, i ); + END_IF; + END_REPEAT; + IF SIZEOF( vlist ) = 0 THEN + RETURN( ctmv( j ) ); + END_IF; + IF boo THEN + INSERT( vlist, ctmv( j ), 0 ); + END_IF; + IF SIZEOF( vlist ) = 1 THEN + RETURN( vlist[1] ); + END_IF; + END; + ef_negate_r : IF 'REAL' IN TYPEOF( v1 ) THEN + r := v1; + RETURN( ctmv( -r ) ); + END_IF; + ef_reciprocal_r : IF 'REAL' IN TYPEOF( v1 ) THEN + r := v1; + RETURN( ctmv( 1 / r ) ); + END_IF; + ef_add_r : + BEGIN + r := 0; + REPEAT i := SIZEOF( vlist ) TO 1 BY -1; + IF 'REAL' IN TYPEOF( vlist[i] ) THEN + s := vlist[i]; + r := r + s; + REMOVE( vlist, i ); + END_IF; + END_REPEAT; + IF SIZEOF( vlist ) = 0 THEN + RETURN( ctmv( r ) ); + END_IF; + IF r <> 0 THEN + INSERT( vlist, ctmv( r ), 0 ); + END_IF; + IF SIZEOF( vlist ) = 1 THEN + RETURN( vlist[1] ); + END_IF; + END; + ef_subtract_r : IF ( 'REAL' IN TYPEOF( v1 ) ) AND ( 'REAL' IN TYPEOF( v2 ) ) THEN + r := v1; + s := v2; + RETURN( ctmv( r - s ) ); + END_IF; + ef_multiply_r : + BEGIN + r := 1; + REPEAT i := SIZEOF( vlist ) TO 1 BY -1; + IF 'REAL' IN TYPEOF( vlist[i] ) THEN + s := vlist[i]; + r := r * s; + REMOVE( vlist, i ); + END_IF; + END_REPEAT; + IF SIZEOF( vlist ) = 0 THEN + RETURN( ctmv( r ) ); + END_IF; + IF r <> 1 THEN + INSERT( vlist, ctmv( r ), 0 ); + END_IF; + IF SIZEOF( vlist ) = 1 THEN + RETURN( vlist[1] ); + END_IF; + END; + ef_divide_r : IF ( 'REAL' IN TYPEOF( v1 ) ) AND ( 'REAL' IN TYPEOF( v2 ) ) THEN + r := v1; + s := v2; + RETURN( ctmv( r / s ) ); + END_IF; + ef_mod_r : IF ( 'REAL' IN TYPEOF( v1 ) ) AND ( 'REAL' IN TYPEOF( v2 ) ) THEN + r := v1; + s := v2; + t := r / s; + j := t DIV 1; + IF ( t < 0 ) AND ( j <> t ) THEN + j := j - 1; + END_IF; + RETURN( ctmv( r - ( j * s ) ) ); + END_IF; + ef_exponentiate_r : IF ( 'REAL' IN TYPEOF( v1 ) ) AND ( 'REAL' IN TYPEOF( v2 ) ) THEN + r := v1; + s := v2; + RETURN( ctmv( r ** s ) ); + END_IF; + ef_exponentiate_ri : IF ( 'REAL' IN TYPEOF( v1 ) ) AND ( 'INTEGER' IN TYPEOF( v2 ) ) THEN + r := v1; + k := v2; + t := 1; + REPEAT i := 1 TO ABS( k ) BY 1; + t := t * r; + END_REPEAT; + IF k < 0 THEN + t := 1 / t; + END_IF; + RETURN( ctmv( t ) ); + END_IF; + ef_eq_r : IF ( 'REAL' IN TYPEOF( v1 ) ) AND ( 'REAL' IN TYPEOF( v2 ) ) THEN + r := v1; + s := v2; + RETURN( ctmv( r = s ) ); + END_IF; + ef_ne_r : IF ( 'REAL' IN TYPEOF( v1 ) ) AND ( 'REAL' IN TYPEOF( v2 ) ) THEN + r := v1; + s := v2; + RETURN( ctmv( r <> s ) ); + END_IF; + ef_gt_r : IF ( 'REAL' IN TYPEOF( v1 ) ) AND ( 'REAL' IN TYPEOF( v2 ) ) THEN + r := v1; + s := v2; + RETURN( ctmv( r > s ) ); + END_IF; + ef_lt_r : IF ( 'REAL' IN TYPEOF( v1 ) ) AND ( 'REAL' IN TYPEOF( v2 ) ) THEN + r := v1; + s := v2; + RETURN( ctmv( r < s ) ); + END_IF; + ef_ge_r : IF ( 'REAL' IN TYPEOF( v1 ) ) AND ( 'REAL' IN TYPEOF( v2 ) ) THEN + r := v1; + s := v2; + RETURN( ctmv( r >= s ) ); + END_IF; + ef_le_r : IF ( 'REAL' IN TYPEOF( v1 ) ) AND ( 'REAL' IN TYPEOF( v2 ) ) THEN + r := v1; + s := v2; + RETURN( ctmv( r <= s ) ); + END_IF; + ef_abs_r : IF 'REAL' IN TYPEOF( v1 ) THEN + r := v1; + RETURN( ctmv( ABS( r ) ) ); + END_IF; + ef_max_r : + BEGIN + boo := FALSE; + REPEAT i := SIZEOF( vlist ) TO 1 BY -1; + IF 'REAL' IN TYPEOF( vlist[i] ) THEN + IF boo THEN + s := vlist[i]; + IF s > r THEN + r := s; + END_IF; + ELSE + r := vlist[i]; + boo := TRUE; + END_IF; + REMOVE( vlist, i ); + END_IF; + END_REPEAT; + IF SIZEOF( vlist ) = 0 THEN + RETURN( ctmv( r ) ); + END_IF; + IF boo THEN + INSERT( vlist, ctmv( r ), 0 ); + END_IF; + IF SIZEOF( vlist ) = 1 THEN + RETURN( vlist[1] ); + END_IF; + END; + ef_min_r : + BEGIN + boo := FALSE; + REPEAT i := SIZEOF( vlist ) TO 1 BY -1; + IF 'REAL' IN TYPEOF( vlist[i] ) THEN + IF boo THEN + s := vlist[i]; + IF s < r THEN + r := s; + END_IF; + ELSE + r := vlist[i]; + boo := TRUE; + END_IF; + REMOVE( vlist, i ); + END_IF; + END_REPEAT; + IF SIZEOF( vlist ) = 0 THEN + RETURN( ctmv( r ) ); + END_IF; + IF boo THEN + INSERT( vlist, ctmv( r ), 0 ); + END_IF; + IF SIZEOF( vlist ) = 1 THEN + RETURN( vlist[1] ); + END_IF; + END; + ef_acos_r : IF 'REAL' IN TYPEOF( v1 ) THEN + r := v1; + RETURN( ctmv( ACOS( r ) ) ); + END_IF; + ef_asin_r : IF 'REAL' IN TYPEOF( v1 ) THEN + r := v1; + RETURN( ctmv( ASIN( r ) ) ); + END_IF; + ef_atan2_r : IF ( 'REAL' IN TYPEOF( v1 ) ) AND ( 'REAL' IN TYPEOF( v2 ) ) THEN + r := v1; + s := v2; + RETURN( ctmv( atan2( r, s ) ) ); + END_IF; + ef_cos_r : IF 'REAL' IN TYPEOF( v1 ) THEN + r := v1; + RETURN( ctmv( COS( r ) ) ); + END_IF; + ef_exp_r : IF 'REAL' IN TYPEOF( v1 ) THEN + r := v1; + RETURN( ctmv( EXP( r ) ) ); + END_IF; + ef_ln_r : IF 'REAL' IN TYPEOF( v1 ) THEN + r := v1; + RETURN( ctmv( LOG( r ) ) ); + END_IF; + ef_log2_r : IF 'REAL' IN TYPEOF( v1 ) THEN + r := v1; + RETURN( ctmv( LOG2( r ) ) ); + END_IF; + ef_log10_r : IF 'REAL' IN TYPEOF( v1 ) THEN + r := v1; + RETURN( ctmv( LOG10( r ) ) ); + END_IF; + ef_sin_r : IF 'REAL' IN TYPEOF( v1 ) THEN + r := v1; + RETURN( ctmv( SIN( r ) ) ); + END_IF; + ef_sqrt_r : IF 'REAL' IN TYPEOF( v1 ) THEN + r := v1; + RETURN( ctmv( SQRT( r ) ) ); + END_IF; + ef_tan_r : IF 'REAL' IN TYPEOF( v1 ) THEN + r := v1; + RETURN( ctmv( TAN( r ) ) ); + END_IF; + ef_form_c : IF ( 'REAL' IN TYPEOF( v1 ) ) AND ( 'REAL' IN TYPEOF( v2 ) ) THEN + r := v1; + s := v2; + RETURN( makec( r, s ) ); + END_IF; + ef_rpart_c : IF cnlit IN TYPEOF( v1 ) THEN + RETURN( ctmv( v1\complex_number_literal.real_part ) ); + END_IF; + ef_ipart_c : IF cnlit IN TYPEOF( v1 ) THEN + RETURN( ctmv( v1\complex_number_literal.imag_part ) ); + END_IF; + ef_negate_c : IF cnlit IN TYPEOF( v1 ) THEN + parts( v1, p, q ); + RETURN( makec( -p, -q ) ); + END_IF; + ef_reciprocal_c : IF cnlit IN TYPEOF( v1 ) THEN + parts( v1, p, q ); + t := ( p * p ) + ( q * q ); + RETURN( makec( p / t, ( -q ) / t ) ); + END_IF; + ef_add_c : + BEGIN + p := 0; + q := 0; + REPEAT i := SIZEOF( vlist ) TO 1 BY -1; + IF cnlit IN TYPEOF( vlist[i] ) THEN + parts( vlist[i], r, s ); + p := p + r; + q := q + s; + REMOVE( vlist, i ); + END_IF; + END_REPEAT; + IF SIZEOF( vlist ) = 0 THEN + RETURN( makec( p, q ) ); + END_IF; + IF ( ( p * p ) + ( q * q ) ) <> 0 THEN + INSERT( vlist, makec( p, q ), 0 ); + END_IF; + IF SIZEOF( vlist ) = 1 THEN + RETURN( vlist[1] ); + END_IF; + END; + ef_subtract_c : IF ( cnlit IN TYPEOF( v1 ) ) AND ( cnlit IN TYPEOF( v2 ) ) THEN + parts( v1, p, q ); + parts( v2, r, s ); + RETURN( makec( p - r, q - s ) ); + END_IF; + ef_multiply_c : + BEGIN + p := 1; + q := 0; + REPEAT i := SIZEOF( vlist ) TO 1 BY -1; + IF cnlit IN TYPEOF( vlist[i] ) THEN + parts( vlist[i], r, s ); + p := ( p * r ) - ( q * s ); + q := ( p * s ) + ( q * r ); + REMOVE( vlist, i ); + END_IF; + END_REPEAT; + IF SIZEOF( vlist ) = 0 THEN + RETURN( makec( p, q ) ); + END_IF; + IF ( p <> 1 ) OR ( q <> 0 ) THEN + INSERT( vlist, makec( p, q ), 0 ); + END_IF; + IF SIZEOF( vlist ) = 1 THEN + RETURN( vlist[1] ); + END_IF; + END; + ef_divide_c : IF ( cnlit IN TYPEOF( v1 ) ) AND ( cnlit IN TYPEOF( v2 ) ) THEN + parts( v1, p, q ); + parts( v2, r, s ); + t := ( r * r ) + ( s * s ); + RETURN( makec( ( ( p * r ) + ( q * s ) ) / t, ( ( q * r ) - ( p * s ) ) / t ) ); + END_IF; + ef_exponentiate_c : IF ( cnlit IN TYPEOF( v1 ) ) AND ( cnlit IN TYPEOF( v2 ) ) THEN + parts( v1, p, q ); + parts( v2, r, s ); + t := 0.5 * LOG( ( p * p ) + ( q * q ) ); + u := atan2( q, p ); + p := ( r * t ) - ( s * u ); + q := ( r * u ) + ( s * t ); + r := EXP( p ); + RETURN( makec( r * COS( q ), r * SIN( q ) ) ); + END_IF; + ef_exponentiate_ci : IF ( cnlit IN TYPEOF( v1 ) ) AND ( 'INTEGER' IN TYPEOF( v2 ) ) THEN + parts( v1, p, q ); + k := v2; + r := 1; + s := 0; + REPEAT i := 1 TO ABS( k ) BY 1; + r := ( p * r ) - ( q * s ); + s := ( p * s ) + ( q * r ); + END_REPEAT; + IF k < 0 THEN + t := ( r * r ) + ( s * s ); + r := r / t; + s := ( -s ) / t; + END_IF; + RETURN( makec( r, s ) ); + END_IF; + ef_eq_c : IF ( cnlit IN TYPEOF( v1 ) ) AND ( cnlit IN TYPEOF( v2 ) ) THEN + parts( v1, p, q ); + parts( v2, r, s ); + RETURN( ctmv( ( p = r ) AND ( q = s ) ) ); + END_IF; + ef_ne_c : IF ( cnlit IN TYPEOF( v1 ) ) AND ( cnlit IN TYPEOF( v2 ) ) THEN + parts( v1, p, q ); + parts( v2, r, s ); + RETURN( ctmv( ( p <> r ) OR ( q <> s ) ) ); + END_IF; + ef_conjugate_c : IF cnlit IN TYPEOF( v1 ) THEN + parts( v1, p, q ); + RETURN( makec( p, -q ) ); + END_IF; + ef_abs_c : IF cnlit IN TYPEOF( v1 ) THEN + parts( v1, p, q ); + RETURN( ctmv( SQRT( ( p * p ) + ( q * q ) ) ) ); + END_IF; + ef_arg_c : IF cnlit IN TYPEOF( v1 ) THEN + parts( v1, p, q ); + RETURN( ctmv( atan2( q, p ) ) ); + END_IF; + ef_cos_c : IF cnlit IN TYPEOF( v1 ) THEN + parts( v1, p, q ); + t := 0.5 * EXP( -q ); + u := 0.5 * EXP( q ); + RETURN( makec( ( t + u ) * COS( p ), ( t - u ) * SIN( p ) ) ); + END_IF; + ef_exp_c : IF cnlit IN TYPEOF( v1 ) THEN + parts( v1, p, q ); + RETURN( makec( EXP( p ) * COS( q ), EXP( p ) * SIN( q ) ) ); + END_IF; + ef_ln_c : IF cnlit IN TYPEOF( v1 ) THEN + parts( v1, p, q ); + RETURN( makec( 0.5 * LOG( ( p * p ) + ( q * q ) ), atan2( q, p ) ) ); + END_IF; + ef_sin_c : IF cnlit IN TYPEOF( v1 ) THEN + parts( v1, p, q ); + t := 0.5 * EXP( -q ); + u := 0.5 * EXP( q ); + RETURN( makec( ( t + u ) * SIN( p ), ( u - t ) * COS( p ) ) ); + END_IF; + ef_sqrt_c : IF cnlit IN TYPEOF( v1 ) THEN + parts( v1, p, q ); + t := SQRT( SQRT( ( p * p ) + ( q * q ) ) ); + u := 0.5 * atan2( q, p ); + RETURN( makec( t * COS( u ), t * SIN( u ) ) ); + END_IF; + ef_tan_c : IF cnlit IN TYPEOF( v1 ) THEN + parts( v1, p, q ); + t := EXP( 2 * q ) + EXP( ( -2 ) * q ) + ( 2 * COS( 2 * p ) ); + RETURN( makec( ( 2 * SIN( 2 * p ) ) / t, ( EXP( ( -2 ) * q ) - EXP( 2 * q ) ) / t ) ); + END_IF; + ef_subscript_s : IF ( 'STRING' IN TYPEOF( v1 ) ) AND ( 'INTEGER' IN TYPEOF( v2 ) ) THEN + str := v1; + k := v2; + RETURN( ctmv( str[k] ) ); + END_IF; + ef_eq_s : IF ( 'STRING' IN TYPEOF( v1 ) ) AND ( 'STRING' IN TYPEOF( v2 ) ) THEN + str := v1; + st2 := v2; + RETURN( ctmv( str = st2 ) ); + END_IF; + ef_ne_s : IF ( 'STRING' IN TYPEOF( v1 ) ) AND ( 'STRING' IN TYPEOF( v2 ) ) THEN + str := v1; + st2 := v2; + RETURN( ctmv( str <> st2 ) ); + END_IF; + ef_gt_s : IF ( 'STRING' IN TYPEOF( v1 ) ) AND ( 'STRING' IN TYPEOF( v2 ) ) THEN + str := v1; + st2 := v2; + RETURN( ctmv( str > st2 ) ); + END_IF; + ef_lt_s : IF ( 'STRING' IN TYPEOF( v1 ) ) AND ( 'STRING' IN TYPEOF( v2 ) ) THEN + str := v1; + st2 := v2; + RETURN( ctmv( str < st2 ) ); + END_IF; + ef_ge_s : IF ( 'STRING' IN TYPEOF( v1 ) ) AND ( 'STRING' IN TYPEOF( v2 ) ) THEN + str := v1; + st2 := v2; + RETURN( ctmv( str >= st2 ) ); + END_IF; + ef_le_s : IF ( 'STRING' IN TYPEOF( v1 ) ) AND ( 'STRING' IN TYPEOF( v2 ) ) THEN + str := v1; + st2 := v2; + RETURN( ctmv( str <= st2 ) ); + END_IF; + ef_subsequence_s : IF ( 'STRING' IN TYPEOF( v1 ) ) AND ( 'INTEGER' IN TYPEOF( v2 ) ) AND ( 'INTEGER' IN + TYPEOF( v3 ) ) THEN + str := v1; + j := v2; + k := v3; + RETURN( ctmv( str[j : k] ) ); + END_IF; + ef_concat_s : + BEGIN + str := ''; + REPEAT i := SIZEOF( vlist ) TO 1 BY -1; + IF 'STRING' IN TYPEOF( vlist[i] ) THEN + st2 := vlist[i]; + str := str + st2; + REMOVE( vlist, i ); + ELSE + IF str <> '' THEN + INSERT( vlist, ctmv( str ), i ); + str := ''; + END_IF; + END_IF; + END_REPEAT; + IF SIZEOF( vlist ) = 0 THEN + RETURN( ctmv( str ) ); + END_IF; + IF str <> '' THEN + INSERT( vlist, ctmv( str ), 0 ); + END_IF; + IF SIZEOF( vlist ) = 1 THEN + RETURN( vlist[1] ); + END_IF; + END; + ef_size_s : IF 'STRING' IN TYPEOF( v1 ) THEN + str := v1; + RETURN( ctmv( LENGTH( str ) ) ); + END_IF; + ef_format : IF ( 'NUMBER' IN TYPEOF( v1 ) ) AND ( 'STRING' IN TYPEOF( v2 ) ) THEN + RETURN( ctmv( FORMAT( v1, v2 ) ) ); + END_IF; + ef_value : IF 'STRING' IN TYPEOF( v1 ) THEN + str := v1; + RETURN( ctmv( VALUE( str ) ) ); + END_IF; + ef_like : IF ( 'STRING' IN TYPEOF( v1 ) ) AND ( 'STRING' IN TYPEOF( v2 ) ) THEN + RETURN( ctmv( v1 LIKE v2 ) ); + END_IF; + ef_subscript_b : IF ( 'BINARY' IN TYPEOF( v1 ) ) AND ( 'INTEGER' IN TYPEOF( v2 ) ) THEN + bin := v1; + k := v2; + RETURN( ctmv( bin[k] ) ); + END_IF; + ef_eq_b : IF ( 'BINARY' IN TYPEOF( v1 ) ) AND ( 'BINARY' IN TYPEOF( v2 ) ) THEN + bin := v1; + bi2 := v2; + RETURN( ctmv( bin = bi2 ) ); + END_IF; + ef_ne_b : IF ( 'BINARY' IN TYPEOF( v1 ) ) AND ( 'BINARY' IN TYPEOF( v2 ) ) THEN + bin := v1; + bi2 := v2; + RETURN( ctmv( bin <> bi2 ) ); + END_IF; + ef_gt_b : IF ( 'BINARY' IN TYPEOF( v1 ) ) AND ( 'BINARY' IN TYPEOF( v2 ) ) THEN + bin := v1; + bi2 := v2; + RETURN( ctmv( bin > bi2 ) ); + END_IF; + ef_lt_b : IF ( 'BINARY' IN TYPEOF( v1 ) ) AND ( 'BINARY' IN TYPEOF( v2 ) ) THEN + bin := v1; + bi2 := v2; + RETURN( ctmv( bin < bi2 ) ); + END_IF; + ef_ge_b : IF ( 'BINARY' IN TYPEOF( v1 ) ) AND ( 'BINARY' IN TYPEOF( v2 ) ) THEN + bin := v1; + bi2 := v2; + RETURN( ctmv( bin >= bi2 ) ); + END_IF; + ef_le_b : IF ( 'BINARY' IN TYPEOF( v1 ) ) AND ( 'BINARY' IN TYPEOF( v2 ) ) THEN + bin := v1; + bi2 := v2; + RETURN( ctmv( bin <= bi2 ) ); + END_IF; + ef_subsequence_b : IF ( 'BINARY' IN TYPEOF( v1 ) ) AND ( 'INTEGER' IN TYPEOF( v2 ) ) AND ( 'INTEGER' IN + TYPEOF( v3 ) ) THEN + bin := v1; + j := v2; + k := v3; + RETURN( ctmv( bin[j : k] ) ); + END_IF; + ef_concat_b : + BEGIN + boo := FALSE; + REPEAT i := SIZEOF( vlist ) TO 1 BY -1; + IF 'BINARY' IN TYPEOF( vlist[i] ) THEN + IF boo THEN + bi2 := vlist[i]; + bin := bin + bi2; + ELSE + bin := vlist[i]; + boo := TRUE; + END_IF; + REMOVE( vlist, i ); + ELSE + IF boo THEN + INSERT( vlist, ctmv( bin ), i ); + boo := FALSE; + END_IF; + END_IF; + END_REPEAT; + IF SIZEOF( vlist ) = 0 THEN + RETURN( ctmv( bin ) ); + END_IF; + IF boo THEN + INSERT( vlist, ctmv( bin ), 0 ); + END_IF; + IF SIZEOF( vlist ) = 1 THEN + RETURN( vlist[1] ); + END_IF; + END; + ef_size_b : IF 'BINARY' IN TYPEOF( v1 ) THEN + bin := v1; + RETURN( ctmv( BLENGTH( bin ) ) ); + END_IF; + ef_subscript_t : IF ( 'LIST' IN TYPEOF( v1 ) ) AND ( 'INTEGER' IN TYPEOF( v2 ) ) THEN + tpl := v1; + k := v2; + RETURN( ctmv( tpl[k] ) ); + END_IF; + ef_eq_t : IF ( 'LIST' IN TYPEOF( v1 ) ) AND ( 'LIST' IN TYPEOF( v2 ) ) THEN + lgc := equal_maths_values( v1, v2 ); + IF lgc <> UNKNOWN THEN + RETURN( ctmv( lgc ) ); + END_IF; + END_IF; + ef_ne_t : IF ( 'LIST' IN TYPEOF( v1 ) ) AND ( 'LIST' IN TYPEOF( v2 ) ) THEN + lgc := equal_maths_values( v1, v2 ); + IF lgc <> UNKNOWN THEN + RETURN( ctmv( NOT lgc ) ); + END_IF; + END_IF; + ef_concat_t : + BEGIN + tpl := []; + REPEAT i := SIZEOF( vlist ) TO 1 BY -1; + IF 'STRING' IN TYPEOF( vlist[i] ) THEN + tp2 := vlist[i]; + tpl := tpl + tp2; + REMOVE( vlist, i ); + ELSE + IF SIZEOF( tpl ) <> 0 THEN + INSERT( vlist, ctmv( tpl ), i ); + tpl := []; + END_IF; + END_IF; + END_REPEAT; + IF SIZEOF( vlist ) = 0 THEN + RETURN( ctmv( tpl ) ); + END_IF; + IF SIZEOF( tpl ) <> 0 THEN + INSERT( vlist, ctmv( tpl ), 0 ); + END_IF; + IF SIZEOF( vlist ) = 1 THEN + RETURN( vlist[1] ); + END_IF; + END; + ef_size_t : IF 'LIST' IN TYPEOF( v1 ) THEN + tpl := v1; + RETURN( ctmv( SIZEOF( tpl ) ) ); + END_IF; + ef_entuple : RETURN( ctmv( vlist ) ); + ef_detuple : IF 'LIST' IN TYPEOF( v1 ) THEN + tpl := v1; + RETURN( ctmv( tpl[1] ) ); + END_IF; + ef_insert : IF ( 'LIST' IN TYPEOF( v1 ) ) AND ( 'INTEGER' IN TYPEOF( v3 ) ) THEN + tpl := v1; + k := v3; + INSERT( tpl, v2, k ); + RETURN( ctmv( tpl ) ); + END_IF; + ef_remove : IF ( 'LIST' IN TYPEOF( v1 ) ) AND ( 'INTEGER' IN TYPEOF( v2 ) ) THEN + tpl := v1; + k := v2; + REMOVE( tpl, k ); + RETURN( ctmv( tpl ) ); + END_IF; + ef_sum_it : IF good_t( v1, 'INTEGER' ) THEN + tpl := v1; + j := 0; + REPEAT i := 1 TO SIZEOF( tpl ) BY 1; + j := j + tpl[i]; + END_REPEAT; + RETURN( ctmv( j ) ); + END_IF; + ef_product_it : IF good_t( v1, 'INTEGER' ) THEN + tpl := v1; + j := 1; + REPEAT i := 1 TO SIZEOF( tpl ) BY 1; + j := j * tpl[i]; + END_REPEAT; + RETURN( ctmv( j ) ); + END_IF; + ef_add_it : + BEGIN + boo := FALSE; + REPEAT i := SIZEOF( vlist ) TO 1 BY -1; + IF good_t( vlist[i], 'INTEGER' ) THEN + IF NOT boo THEN + tpl := vlist[i]; + boo := TRUE; + ELSE + tp2 := vlist[i]; + IF SIZEOF( tpl ) <> SIZEOF( tp2 ) THEN + RETURN( ? ); + END_IF; + REPEAT l := 1 TO SIZEOF( tpl ) BY 1; + tpl[j] := tpl[j] + tp2[j]; + END_REPEAT; + END_IF; + REMOVE( vlist, i ); + END_IF; + END_REPEAT; + IF SIZEOF( vlist ) = 0 THEN + RETURN( ctmv( tpl ) ); + END_IF; + IF boo THEN + INSERT( vlist, ctmv( tpl ), 0 ); + END_IF; + IF SIZEOF( vlist ) = 1 THEN + RETURN( vlist[1] ); + END_IF; + END; + ef_subtract_it : IF good_t( v1, 'INTEGER' ) AND good_t( v2, 'INTEGER' ) THEN + tpl := v1; + tp2 := v2; + IF SIZEOF( tpl ) <> SIZEOF( tp2 ) THEN + RETURN( ? ); + END_IF; + REPEAT i := 1 TO SIZEOF( tpl ) BY 1; + tpl[i] := tpl[i] - tp2[i]; + END_REPEAT; + RETURN( ctmv( tpl ) ); + END_IF; + ef_scalar_mult_it : IF ( 'INTEGER' IN TYPEOF( v1 ) ) AND good_t( v2, 'INTEGER' ) THEN + j := v1; + tpl := v2; + REPEAT i := 1 TO SIZEOF( tpl ) BY 1; + tpl[i] := j * tpl[i]; + END_REPEAT; + RETURN( ctmv( tpl ) ); + END_IF; + ef_dot_prod_it : IF good_t( v1, 'INTEGER' ) AND good_t( v2, 'INTEGER' ) THEN + tpl := v1; + tp2 := v2; + j := 0; + IF SIZEOF( tpl ) <> SIZEOF( tp2 ) THEN + RETURN( ? ); + END_IF; + REPEAT i := 1 TO SIZEOF( tpl ) BY 1; + j := j + ( tpl[i] * tp2[i] ); + END_REPEAT; + RETURN( ctmv( j ) ); + END_IF; + ef_sum_rt : IF good_t( v1, 'REAL' ) THEN + tpl := v1; + r := 0; + REPEAT i := 1 TO SIZEOF( tpl ) BY 1; + r := r + tpl[i]; + END_REPEAT; + RETURN( ctmv( r ) ); + END_IF; + ef_product_rt : IF good_t( v1, 'REAL' ) THEN + tpl := v1; + r := 1; + REPEAT i := 1 TO SIZEOF( tpl ) BY 1; + r := r * tpl[i]; + END_REPEAT; + RETURN( ctmv( r ) ); + END_IF; + ef_add_rt : + BEGIN + boo := FALSE; + REPEAT i := SIZEOF( vlist ) TO 1 BY -1; + IF good_t( vlist[i], 'REAL' ) THEN + IF NOT boo THEN + tpl := vlist[i]; + boo := TRUE; + ELSE + tp2 := vlist[i]; + IF SIZEOF( tpl ) <> SIZEOF( tp2 ) THEN + RETURN( ? ); + END_IF; + REPEAT l := 1 TO SIZEOF( tpl ) BY 1; + tpl[j] := tpl[j] + tp2[j]; + END_REPEAT; + END_IF; + REMOVE( vlist, i ); + END_IF; + END_REPEAT; + IF SIZEOF( vlist ) = 0 THEN + RETURN( ctmv( tpl ) ); + END_IF; + IF boo THEN + INSERT( vlist, ctmv( tpl ), 0 ); + END_IF; + IF SIZEOF( vlist ) = 1 THEN + RETURN( vlist[1] ); + END_IF; + END; + ef_subtract_rt : IF good_t( v1, 'REAL' ) AND good_t( v2, 'REAL' ) THEN + tpl := v1; + tp2 := v2; + IF SIZEOF( tpl ) <> SIZEOF( tp2 ) THEN + RETURN( ? ); + END_IF; + REPEAT i := 1 TO SIZEOF( tpl ) BY 1; + tpl[i] := tpl[i] - tp2[i]; + END_REPEAT; + RETURN( ctmv( tpl ) ); + END_IF; + ef_scalar_mult_rt : IF ( 'REAL' IN TYPEOF( v1 ) ) AND good_t( v2, 'REAL' ) THEN + r := v1; + tpl := v2; + REPEAT i := 1 TO SIZEOF( tpl ) BY 1; + tpl[i] := r * tpl[i]; + END_REPEAT; + RETURN( ctmv( tpl ) ); + END_IF; + ef_dot_prod_rt : IF good_t( v1, 'REAL' ) AND good_t( v2, 'REAL' ) THEN + tpl := v1; + tp2 := v2; + r := 0; + IF SIZEOF( tpl ) <> SIZEOF( tp2 ) THEN + RETURN( ? ); + END_IF; + REPEAT i := 1 TO SIZEOF( tpl ) BY 1; + r := r + ( tpl[i] * tp2[i] ); + END_REPEAT; + RETURN( ctmv( r ) ); + END_IF; + ef_norm_rt : IF good_t( v1, 'REAL' ) THEN + tpl := v1; + r := 0; + REPEAT i := 1 TO SIZEOF( tpl ) BY 1; + r := r + ( tpl[i] * tpl[i] ); + END_REPEAT; + RETURN( ctmv( SQRT( r ) ) ); + END_IF; + ef_sum_ct : IF good_t( v1, cnlit ) THEN + tpl := v1; + p := 0; + q := 0; + REPEAT i := 1 TO SIZEOF( tpl ) BY 1; + parts( tpl[i], r, s ); + p := p + r; + q := q + s; + END_REPEAT; + RETURN( makec( p, q ) ); + END_IF; + ef_product_ct : IF good_t( v1, cnlit ) THEN + tpl := v1; + p := 1; + q := 0; + REPEAT i := 1 TO SIZEOF( tpl ) BY 1; + parts( tpl[i], r, s ); + p := ( p * r ) - ( q * s ); + q := ( p * s ) + ( q * r ); + END_REPEAT; + RETURN( makec( p, q ) ); + END_IF; + ef_add_ct : + BEGIN + boo := FALSE; + REPEAT i := SIZEOF( vlist ) TO 1 BY -1; + IF good_t( vlist[i], cnlit ) THEN + IF NOT boo THEN + tpl := vlist[i]; + boo := TRUE; + ELSE + tp2 := vlist[i]; + IF SIZEOF( tpl ) <> SIZEOF( tp2 ) THEN + RETURN( ? ); + END_IF; + REPEAT l := 1 TO SIZEOF( tpl ) BY 1; + parts( tpl[j], p, q ); + parts( tp2[j], r, s ); + tpl[j] := makec( p + r, q + s ); + END_REPEAT; + END_IF; + REMOVE( vlist, i ); + END_IF; + END_REPEAT; + IF SIZEOF( vlist ) = 0 THEN + RETURN( ctmv( tpl ) ); + END_IF; + IF boo THEN + INSERT( vlist, ctmv( tpl ), 0 ); + END_IF; + IF SIZEOF( vlist ) = 1 THEN + RETURN( vlist[1] ); + END_IF; + END; + ef_subtract_ct : IF good_t( v1, cnlit ) AND good_t( v2, cnlit ) THEN + tpl := v1; + tp2 := v2; + IF SIZEOF( tpl ) <> SIZEOF( tp2 ) THEN + RETURN( ? ); + END_IF; + REPEAT i := 1 TO SIZEOF( tpl ) BY 1; + parts( tpl[i], p, q ); + parts( tp2[i], r, s ); + tpl[i] := makec( p - r, q - s ); + END_REPEAT; + RETURN( ctmv( tpl ) ); + END_IF; + ef_scalar_mult_ct : IF ( cnlit IN TYPEOF( v1 ) ) AND good_t( v2, cnlit ) THEN + parts( v1, p, q ); + tpl := v2; + REPEAT i := 1 TO SIZEOF( tpl ) BY 1; + parts( tpl[i], r, s ); + tpl[i] := makec( ( p * r ) - ( q * s ), ( p * s ) + ( q * r ) ); + END_REPEAT; + RETURN( ctmv( tpl ) ); + END_IF; + ef_dot_prod_ct : IF good_t( v1, cnlit ) AND good_t( v2, cnlit ) THEN + tpl := v1; + tp2 := v2; + t := 0; + u := 0; + IF SIZEOF( tpl ) <> SIZEOF( tp2 ) THEN + RETURN( ? ); + END_IF; + REPEAT i := 1 TO SIZEOF( tpl ) BY 1; + parts( tpl[i], p, q ); + parts( tp2[i], r, s ); + t := t + ( p * r ) + ( q * s ); + u := ( u + ( q * r ) ) - ( p * s ); + END_REPEAT; + RETURN( makec( t, u ) ); + END_IF; + ef_norm_ct : IF good_t( v1, cnlit ) THEN + tpl := v1; + r := 0; + REPEAT i := 1 TO SIZEOF( tpl ) BY 1; + parts( tpl[i], p, q ); + r := r + ( p * p ) + ( q * q ); + END_REPEAT; + RETURN( ctmv( SQRT( r ) ) ); + END_IF; + ef_if : IF 'LOGICAL' IN TYPEOF( v1 ) THEN + lgc := v1; + IF lgc THEN + RETURN( v2 ); + ELSE + RETURN( v3 ); + END_IF; + END_IF; + ef_if_i : IF 'LOGICAL' IN TYPEOF( v1 ) THEN + lgc := v1; + IF lgc THEN + RETURN( v2 ); + ELSE + RETURN( v3 ); + END_IF; + END_IF; + ef_if_r : IF 'LOGICAL' IN TYPEOF( v1 ) THEN + lgc := v1; + IF lgc THEN + RETURN( v2 ); + ELSE + RETURN( v3 ); + END_IF; + END_IF; + ef_if_c : IF 'LOGICAL' IN TYPEOF( v1 ) THEN + lgc := v1; + IF lgc THEN + RETURN( v2 ); + ELSE + RETURN( v3 ); + END_IF; + END_IF; + ef_if_s : IF 'LOGICAL' IN TYPEOF( v1 ) THEN + lgc := v1; + IF lgc THEN + RETURN( v2 ); + ELSE + RETURN( v3 ); + END_IF; + END_IF; + ef_if_b : IF 'LOGICAL' IN TYPEOF( v1 ) THEN + lgc := v1; + IF lgc THEN + RETURN( v2 ); + ELSE + RETURN( v3 ); + END_IF; + END_IF; + ef_if_t : IF 'LOGICAL' IN TYPEOF( v1 ) THEN + lgc := v1; + IF lgc THEN + RETURN( v2 ); + ELSE + RETURN( v3 ); + END_IF; + END_IF; + ef_ensemble : RETURN( make_finite_space( mem + vlist ) ); + ef_member_of : IF ( schema_prefix + 'MATHS_SPACE' ) IN TYPEOF( v2 ) THEN + lgc := member_of( v1, v2 ); + IF lgc <> UNKNOWN THEN + RETURN( ctmv( lgc ) ); + END_IF; + END_IF; + END_CASE; + RETURN( make_function_application( expr.func, vlist ) ); + END_IF; + IF 'ABSTRACTED_EXPRESSION_FUNCTION' IN types THEN + gexpr := substitute( expr.func\abstracted_expression_function.expr, expr.func\quantifier_expression.variables, vlist ); + RETURN( simplify_generic_expression( gexpr ) ); + END_IF; + IF 'FINITE_FUNCTION' IN types THEN + pairs := expr.func\finite_function.pairs; + REPEAT i := 1 TO SIZEOF( pairs ) BY 1; + IF equal_maths_values( vlist[1], pairs[i][1] ) THEN + RETURN( simplify_maths_value( pairs[i][2] ) ); + END_IF; + END_REPEAT; + RETURN( make_function_application( expr.func, vlist ) ); + END_IF; + RETURN( expr ); + + END_FUNCTION; + + FUNCTION simplify_generic_expression( + expr : generic_expression + ) : maths_value; + + FUNCTION make_number_literal( + nmb : NUMBER + ) : generic_literal; + IF 'INTEGER' IN TYPEOF( nmb ) THEN + RETURN( make_int_literal( nmb ) ); + END_IF; + RETURN( make_real_literal( nmb ) ); + + END_FUNCTION; + + FUNCTION restore_binary( + expr : binary_generic_expression; + opd1, opd2 : generic_expression + ) : generic_expression; + expr.operands[1] := opd1; + expr.operands[2] := opd2; + RETURN( expr ); + + END_FUNCTION; + + FUNCTION restore_mulary( + expr : multiple_arity_generic_expression; + ops : LIST OF generic_expression + ) : generic_expression; + expr.operands := ops; + RETURN( expr ); + + END_FUNCTION; + + FUNCTION restore_unary( + expr : unary_generic_expression; + opnd : generic_expression + ) : generic_expression; + expr.operand := opnd; + RETURN( expr ); + + END_FUNCTION; + + LOCAL + types : SET OF STRING := stripped_typeof( expr ); + v1 : maths_value; + v2 : maths_value; + vlist : LIST OF maths_value := []; + op1 : generic_expression; + op2 : generic_expression; + oplist : LIST OF generic_expression := []; + opnds : LIST [2 : ?] OF generic_expression; + n : INTEGER; + m : INTEGER; + finfun : maths_function_select; + boo : BOOLEAN; + str : STRING; + nmb : NUMBER; + END_LOCAL; + IF 'INT_LITERAL' IN types THEN + RETURN( convert_to_maths_value( expr\int_literal.the_value ) ); + END_IF; + IF 'REAL_LITERAL' IN types THEN + RETURN( convert_to_maths_value( expr\real_literal.the_value ) ); + END_IF; + IF 'BOOLEAN_LITERAL' IN types THEN + RETURN( convert_to_maths_value( expr\boolean_literal.the_value ) ); + END_IF; + IF 'STRING_LITERAL' IN types THEN + RETURN( convert_to_maths_value( expr\string_literal.the_value ) ); + END_IF; + IF 'COMPLEX_NUMBER_LITERAL' IN types THEN + RETURN( expr ); + END_IF; + IF 'LOGICAL_LITERAL' IN types THEN + RETURN( convert_to_maths_value( expr\logical_literal.lit_value ) ); + END_IF; + IF 'BINARY_LITERAL' IN types THEN + RETURN( convert_to_maths_value( expr\binary_literal.lit_value ) ); + END_IF; + IF 'MATHS_ENUM_LITERAL' IN types THEN + RETURN( expr\maths_enum_literal.lit_value ); + END_IF; + IF 'REAL_TUPLE_LITERAL' IN types THEN + RETURN( convert_to_maths_value( expr\real_tuple_literal.lit_value ) ); + END_IF; + IF 'INTEGER_TUPLE_LITERAL' IN types THEN + RETURN( convert_to_maths_value( expr\integer_tuple_literal.lit_value ) ); + END_IF; + IF 'ATOM_BASED_LITERAL' IN types THEN + RETURN( expr\atom_based_literal.lit_value ); + END_IF; + IF 'MATHS_TUPLE_LITERAL' IN types THEN + RETURN( convert_to_maths_value( expr\maths_tuple_literal.lit_value ) ); + END_IF; + IF 'MATHS_SPACE' IN types THEN + RETURN( simplify_maths_space( expr ) ); + END_IF; + IF 'FUNCTION_APPLICATION' IN types THEN + RETURN( simplify_function_application( expr ) ); + END_IF; + IF 'UNARY_GENERIC_EXPRESSION' IN types THEN + v1 := simplify_generic_expression( expr\unary_generic_expression.operand ); + op1 := convert_to_operand( v1 ); + END_IF; + IF 'BINARY_GENERIC_EXPRESSION' IN types THEN + v1 := simplify_generic_expression( expr\binary_generic_expression.operands[1] ); + op1 := convert_to_operand( v1 ); + v2 := simplify_generic_expression( expr\binary_generic_expression.operands[2] ); + op2 := convert_to_operand( v2 ); + END_IF; + IF 'MULTIPLE_ARITY_GENERIC_EXPRESSION' IN types THEN + opnds := expr\multiple_arity_generic_expression.operands; + REPEAT i := 1 TO SIZEOF( opnds ) BY 1; + v1 := simplify_generic_expression( opnds[i] ); + INSERT( vlist, v1, i - 1 ); + INSERT( oplist, convert_to_operand( v1 ), i - 1 ); + END_REPEAT; + END_IF; + IF 'PARALLEL_COMPOSED_FUNCTION' IN types THEN + v1 := vlist[1]; + n := SIZEOF( vlist ); + finfun := vlist[n]; + REMOVE( vlist, n ); + REMOVE( vlist, 1 ); + RETURN( make_parallel_composed_function( v1, vlist, finfun ) ); + END_IF; + IF ( 'ABS_EXPRESSION' IN types ) AND ( 'NUMBER' IN TYPEOF( v1 ) ) THEN + RETURN( convert_to_maths_value( ABS( v1 ) ) ); + END_IF; + IF ( 'ACOS_EXPRESSION' IN types ) AND ( 'NUMBER' IN TYPEOF( v1 ) ) THEN + RETURN( convert_to_maths_value( ACOS( v1 ) ) ); + END_IF; + IF 'AND_EXPRESSION' IN types THEN + REPEAT i := SIZEOF( vlist ) TO 1 BY -1; + IF 'BOOLEAN' IN TYPEOF( vlist[i] ) THEN + boo := vlist[i]; + IF NOT boo THEN + RETURN( convert_to_maths_value( FALSE ) ); + END_IF; + REMOVE( oplist, i ); + END_IF; + END_REPEAT; + IF SIZEOF( oplist ) = 0 THEN + RETURN( convert_to_maths_value( TRUE ) ); + END_IF; + IF SIZEOF( oplist ) = 1 THEN + RETURN( oplist[1] ); + END_IF; + END_IF; + IF ( 'ASIN_EXPRESSION' IN types ) AND ( 'NUMBER' IN TYPEOF( v1 ) ) THEN + RETURN( convert_to_maths_value( ASIN( v1 ) ) ); + END_IF; + IF ( 'ATAN_EXPRESSION' IN types ) AND ( 'NUMBER' IN TYPEOF( v1 ) ) AND ( 'NUMBER' IN TYPEOF( v2 ) ) THEN + RETURN( convert_to_maths_value( ATAN( v1, v2 ) ) ); + END_IF; + IF ( 'COMPARISON_EXPRESSION' IN types ) AND ( ( ( 'NUMBER' IN TYPEOF( v1 ) ) AND ( 'NUMBER' IN TYPEOF( v2 ) ) ) OR ( ( 'STRING' + IN TYPEOF( v1 ) ) AND ( 'STRING' IN TYPEOF( v2 ) ) ) OR ( ( 'BOOLEAN' IN TYPEOF( v1 ) ) AND ( 'BOOLEAN' IN TYPEOF( v2 ) ) ) ) + THEN + IF 'COMPARISON_EQUAL' IN types THEN + boo := bool( v1 = v2 ); + ELSE + IF 'COMPARISON_GREATER' IN types THEN + boo := bool( v1 > v2 ); + ELSE + IF 'COMPARISON_GREATER_EQUAL' IN types THEN + boo := bool( v1 >= v2 ); + ELSE + IF 'COMPARISON_LESS' IN types THEN + boo := bool( v1 < v2 ); + ELSE + IF 'COMPARISON_LESS_EQUAL' IN types THEN + boo := bool( v1 <= v2 ); + ELSE + IF 'COMPARISON_NOT_EQUAL' IN types THEN + boo := bool( v1 <> v2 ); + ELSE + IF 'LIKE_EXPRESSION' IN types THEN + boo := bool( v1 LIKE v2 ); + ELSE + RETURN( ? ); + END_IF; + END_IF; + END_IF; + END_IF; + END_IF; + END_IF; + END_IF; + RETURN( convert_to_maths_value( boo ) ); + END_IF; + IF 'CONCAT_EXPRESSION' IN types THEN + str := ''; + REPEAT i := SIZEOF( vlist ) TO 1 BY -1; + IF 'STRING' IN TYPEOF( vlist[i] ) THEN + str := vlist[i] + str; + REMOVE( oplist, i ); + ELSE + IF LENGTH( str ) > 0 THEN + INSERT( oplist, make_string_literal( str ), i ); + str := ''; + END_IF; + END_IF; + END_REPEAT; + IF SIZEOF( oplist ) = 0 THEN + RETURN( convert_to_maths_value( str ) ); + END_IF; + IF LENGTH( str ) > 0 THEN + INSERT( oplist, make_string_literal( str ), 0 ); + END_IF; + IF SIZEOF( oplist ) = 1 THEN + RETURN( oplist[1] ); + END_IF; + END_IF; + IF ( 'COS_EXPRESSION' IN types ) AND ( 'NUMBER' IN TYPEOF( v1 ) ) THEN + RETURN( convert_to_maths_value( COS( v1 ) ) ); + END_IF; + IF ( 'DIV_EXPRESSION' IN types ) AND ( 'NUMBER' IN TYPEOF( v1 ) ) AND ( 'NUMBER' IN TYPEOF( v2 ) ) THEN + RETURN( convert_to_maths_value( v1 DIV v2 ) ); + END_IF; + IF 'EQUALS_EXPRESSION' IN types THEN + opnds := expr\binary_generic_expression.operands; + RETURN( convert_to_maths_value( opnds[1] :=: opnds[2] ) ); + END_IF; + IF ( 'EXP_EXPRESSION' IN types ) AND ( 'NUMBER' IN TYPEOF( v1 ) ) THEN + RETURN( convert_to_maths_value( EXP( v1 ) ) ); + END_IF; + IF ( 'FORMAT_EXPRESSION' IN types ) AND ( 'NUMBER' IN TYPEOF( v1 ) ) AND ( 'STRING' IN TYPEOF( v2 ) ) THEN + RETURN( convert_to_maths_value( FORMAT( v1, v2 ) ) ); + END_IF; + IF ( 'INDEX_EXPRESSION' IN types ) AND ( 'STRING' IN TYPEOF( v1 ) ) AND ( 'NUMBER' IN TYPEOF( v2 ) ) THEN + str := v1; + n := v2; + RETURN( convert_to_maths_value( str[n] ) ); + END_IF; + IF ( 'INT_VALUE_EXPRESSION' IN types ) AND ( 'STRING' IN TYPEOF( v1 ) ) THEN + RETURN( convert_to_maths_value( VALUE( v1 ) ) ); + END_IF; + IF 'INTERVAL_EXPRESSION' IN types THEN + str := ''; + IF 'NUMBER' IN TYPEOF( vlist[1] ) THEN + str := 'NUMBER'; + END_IF; + IF 'STRING' IN TYPEOF( vlist[1] ) THEN + str := 'STRING'; + END_IF; + IF 'BOOLEAN' IN TYPEOF( vlist[1] ) THEN + str := 'BOOLEAN'; + END_IF; + IF ( LENGTH( str ) > 0 ) AND ( str IN TYPEOF( vlist[2] ) ) AND ( str IN TYPEOF( vlist[3] ) ) THEN + RETURN( convert_to_maths_value( ( vlist[1] <= vlist[2] ) AND ( vlist[2] <= vlist[3] ) ) ); + END_IF; + END_IF; + IF ( 'LENGTH_EXPRESSION' IN types ) AND ( 'STRING' IN TYPEOF( v1 ) ) THEN + RETURN( convert_to_maths_value( LENGTH( v1 ) ) ); + END_IF; + IF ( 'LOG_EXPRESSION' IN types ) AND ( 'NUMBER' IN TYPEOF( v1 ) ) THEN + RETURN( convert_to_maths_value( LOG( v1 ) ) ); + END_IF; + IF ( 'LOG10_EXPRESSION' IN types ) AND ( 'NUMBER' IN TYPEOF( v1 ) ) THEN + RETURN( convert_to_maths_value( LOG10( v1 ) ) ); + END_IF; + IF ( 'LOG2_EXPRESSION' IN types ) AND ( 'NUMBER' IN TYPEOF( v1 ) ) THEN + RETURN( convert_to_maths_value( LOG2( v1 ) ) ); + END_IF; + IF 'MAXIMUM_EXPRESSION' IN types THEN + boo := FALSE; + REPEAT i := SIZEOF( vlist ) TO 1 BY -1; + IF 'NUMBER' IN TYPEOF( vlist[i] ) THEN + IF boo THEN + IF nmb < vlist[i] THEN + nmb := vlist[i]; + END_IF; + ELSE + nmb := vlist[i]; + boo := TRUE; + END_IF; + REMOVE( oplist, i ); + END_IF; + END_REPEAT; + IF SIZEOF( oplist ) = 0 THEN + RETURN( convert_to_maths_value( nmb ) ); + END_IF; + IF boo THEN + INSERT( oplist, make_number_literal( nmb ), 0 ); + END_IF; + END_IF; + IF 'MINIMUM_EXPRESSION' IN types THEN + boo := FALSE; + REPEAT i := SIZEOF( vlist ) TO 1 BY -1; + IF 'NUMBER' IN TYPEOF( vlist[i] ) THEN + IF boo THEN + IF nmb > vlist[i] THEN + nmb := vlist[i]; + END_IF; + ELSE + nmb := vlist[i]; + boo := TRUE; + END_IF; + REMOVE( oplist, i ); + END_IF; + END_REPEAT; + IF SIZEOF( oplist ) = 0 THEN + RETURN( convert_to_maths_value( nmb ) ); + END_IF; + IF boo THEN + INSERT( oplist, make_number_literal( nmb ), 0 ); + END_IF; + END_IF; + IF ( 'MINUS_EXPRESSION' IN types ) AND ( 'NUMBER' IN TYPEOF( v1 ) ) AND ( 'NUMBER' IN TYPEOF( v2 ) ) THEN + RETURN( convert_to_maths_value( v1 - v2 ) ); + END_IF; + IF ( 'MOD_EXPRESSION' IN types ) AND ( 'NUMBER' IN TYPEOF( v1 ) ) AND ( 'NUMBER' IN TYPEOF( v2 ) ) THEN + RETURN( convert_to_maths_value( v1 MOD v2 ) ); + END_IF; + IF 'MULT_EXPRESSION' IN types THEN + nmb := 1; + REPEAT i := SIZEOF( vlist ) TO 1 BY -1; + IF 'NUMBER' IN TYPEOF( vlist[i] ) THEN + nmb := nmb * vlist[i]; + REMOVE( oplist, i ); + END_IF; + END_REPEAT; + IF SIZEOF( oplist ) = 0 THEN + RETURN( convert_to_maths_value( nmb ) ); + END_IF; + IF nmb <> 1 THEN + INSERT( oplist, make_number_literal( nmb ), 0 ); + END_IF; + IF SIZEOF( oplist ) = 1 THEN + RETURN( oplist[1] ); + END_IF; + END_IF; + IF ( 'NOT_EXPRESSION' IN types ) AND ( 'BOOLEAN' IN TYPEOF( v1 ) ) THEN + boo := v1; + RETURN( convert_to_maths_value( NOT boo ) ); + END_IF; + IF ( 'ODD_EXPRESSION' IN types ) AND ( 'INTEGER' IN TYPEOF( v1 ) ) THEN + RETURN( convert_to_maths_value( ODD( v1 ) ) ); + END_IF; + IF 'OR_EXPRESSION' IN types THEN + REPEAT i := SIZEOF( vlist ) TO 1 BY -1; + IF 'BOOLEAN' IN TYPEOF( vlist[i] ) THEN + boo := vlist[i]; + IF boo THEN + RETURN( convert_to_maths_value( TRUE ) ); + END_IF; + REMOVE( oplist, i ); + END_IF; + END_REPEAT; + IF SIZEOF( oplist ) = 0 THEN + RETURN( convert_to_maths_value( FALSE ) ); + END_IF; + IF SIZEOF( oplist ) = 1 THEN + RETURN( oplist[1] ); + END_IF; + END_IF; + IF 'PLUS_EXPRESSION' IN types THEN + nmb := 0; + REPEAT i := SIZEOF( vlist ) TO 1 BY -1; + IF 'NUMBER' IN TYPEOF( vlist[i] ) THEN + nmb := nmb + vlist[i]; + REMOVE( oplist, i ); + END_IF; + END_REPEAT; + IF SIZEOF( oplist ) = 0 THEN + RETURN( convert_to_maths_value( nmb ) ); + END_IF; + IF nmb <> 0 THEN + INSERT( oplist, make_number_literal( nmb ), 0 ); + END_IF; + IF SIZEOF( oplist ) = 1 THEN + RETURN( oplist[1] ); + END_IF; + END_IF; + IF ( 'POWER_EXPRESSION' IN types ) AND ( 'NUMBER' IN TYPEOF( v1 ) ) AND ( 'NUMBER' IN TYPEOF( v2 ) ) THEN + RETURN( convert_to_maths_value( v1 ** v2 ) ); + END_IF; + IF ( 'SIN_EXPRESSION' IN types ) AND ( 'NUMBER' IN TYPEOF( v1 ) ) THEN + RETURN( convert_to_maths_value( SIN( v1 ) ) ); + END_IF; + IF ( 'SLASH_EXPRESSION' IN types ) AND ( 'NUMBER' IN TYPEOF( v1 ) ) AND ( 'NUMBER' IN TYPEOF( v2 ) ) THEN + RETURN( convert_to_maths_value( v1 / v2 ) ); + END_IF; + IF ( 'SQUARE_ROOT_EXPRESSION' IN types ) AND ( 'NUMBER' IN TYPEOF( v1 ) ) THEN + RETURN( convert_to_maths_value( SQRT( v1 ) ) ); + END_IF; + IF ( 'SUBSTRING_EXPRESSION' IN types ) AND ( 'STRING' IN TYPEOF( vlist[1] ) ) AND ( 'NUMBER' IN TYPEOF( vlist[2] ) ) AND ( + 'NUMBER' IN TYPEOF( vlist[3] ) ) THEN + str := vlist[1]; + n := vlist[2]; + m := vlist[3]; + RETURN( convert_to_maths_value( str[n : m] ) ); + END_IF; + IF ( 'TAN_EXPRESSION' IN types ) AND ( 'NUMBER' IN TYPEOF( v1 ) ) THEN + RETURN( convert_to_maths_value( TAN( v1 ) ) ); + END_IF; + IF ( 'UNARY_MINUS_EXPRESSION' IN types ) AND ( 'NUMBER' IN TYPEOF( v1 ) ) THEN + nmb := v1; + RETURN( convert_to_maths_value( -nmb ) ); + END_IF; + IF ( 'VALUE_EXPRESSION' IN types ) AND ( 'STRING' IN TYPEOF( v1 ) ) THEN + RETURN( convert_to_maths_value( VALUE( v1 ) ) ); + END_IF; + IF ( 'XOR_EXPRESSION' IN types ) AND ( 'BOOLEAN' IN TYPEOF( v1 ) ) AND ( 'BOOLEAN' IN TYPEOF( v2 ) ) THEN + RETURN( convert_to_maths_value( v1 XOR v2 ) ); + END_IF; + IF 'UNARY_GENERIC_EXPRESSION' IN types THEN + RETURN( restore_unary( expr, op1 ) ); + END_IF; + IF 'BINARY_GENERIC_EXPRESSION' IN types THEN + RETURN( restore_binary( expr, op1, op2 ) ); + END_IF; + IF 'MULTIPLE_ARITY_GENERIC_EXPRESSION' IN types THEN + RETURN( restore_mulary( expr, oplist ) ); + END_IF; + RETURN( expr ); + + END_FUNCTION; + + FUNCTION simplify_maths_space( + spc : maths_space + ) : maths_space; + + LOCAL + stypes : SET OF STRING := stripped_typeof( spc ); + sset : SET OF maths_value; + zset : SET OF maths_value := []; + zval : maths_value; + zspc : maths_space; + zallint : BOOLEAN := TRUE; + zint : INTEGER; + zmin : INTEGER; + zmax : INTEGER; + factors : LIST OF maths_space; + zfactors : LIST OF maths_space := []; + rspc : maths_space; + END_LOCAL; + IF 'FINITE_SPACE' IN stypes THEN + sset := spc\finite_space.members; + REPEAT i := 1 TO SIZEOF( sset ) BY 1; + zval := simplify_maths_value( sset[i] ); + zset := zset + [zval]; + IF zallint AND ( 'INTEGER' IN TYPEOF( zval ) ) THEN + zint := zval; + IF i = 1 THEN + zmin := zint; + zmax := zint; + ELSE + IF zint < zmin THEN + zmin := zint; + END_IF; + IF zint > zmax THEN + zmax := zint; + END_IF; + END_IF; + ELSE + zallint := FALSE; + END_IF; + END_REPEAT; + IF zallint AND ( SIZEOF( zset ) = ( ( zmax - zmin ) + 1 ) ) THEN + RETURN( make_finite_integer_interval( zmin, zmax ) ); + END_IF; + RETURN( make_finite_space( zset ) ); + END_IF; + IF 'UNIFORM_PRODUCT_SPACE' IN stypes THEN + zspc := simplify_maths_space( spc\uniform_product_space.base ); + RETURN( make_uniform_product_space( zspc, spc\uniform_product_space.exponent ) ); + END_IF; + IF 'LISTED_PRODUCT_SPACE' IN stypes THEN + factors := spc\listed_product_space.factors; + REPEAT i := 1 TO SIZEOF( factors ) BY 1; + INSERT( zfactors, simplify_maths_space( factors[i] ), i - 1 ); + END_REPEAT; + RETURN( make_listed_product_space( zfactors ) ); + END_IF; + IF 'EXTENDED_TUPLE_SPACE' IN stypes THEN + zspc := simplify_maths_space( spc\extended_tuple_space.base ); + rspc := simplify_maths_space( spc\extended_tuple_space.extender ); + RETURN( make_extended_tuple_space( zspc, rspc ) ); + END_IF; + IF 'FUNCTION_SPACE' IN stypes THEN + zspc := simplify_maths_space( spc\function_space.domain_argument ); + rspc := simplify_maths_space( spc\function_space.range_argument ); + RETURN( make_function_space( spc\function_space.domain_constraint, zspc, spc\function_space.range_constraint, rspc ) ); + END_IF; + RETURN( spc ); + + END_FUNCTION; + + FUNCTION simplify_maths_value( + val : maths_value + ) : maths_value; + + LOCAL + vtypes : SET OF STRING := stripped_typeof( val ); + vlist : LIST OF maths_value; + nlist : LIST OF maths_value := []; + END_LOCAL; + IF 'GENERIC_EXPRESSION' IN vtypes THEN + RETURN( simplify_generic_expression( val ) ); + END_IF; + IF 'LIST' IN vtypes THEN + vlist := val; + REPEAT i := 1 TO SIZEOF( vlist ) BY 1; + INSERT( nlist, simplify_maths_value( vlist[i] ), i - 1 ); + END_REPEAT; + RETURN( convert_to_maths_value( nlist ) ); + END_IF; + RETURN( val ); + + END_FUNCTION; + + FUNCTION singleton_member_of( + spc : maths_space + ) : maths_value; + + LOCAL + types : SET OF STRING := stripped_typeof( spc ); + END_LOCAL; + IF 'FINITE_SPACE' IN types THEN + IF SIZEOF( spc\finite_space.members ) = 1 THEN + RETURN( spc\finite_space.members[1] ); + END_IF; + RETURN( ? ); + END_IF; + IF 'FINITE_INTEGER_INTERVAL' IN types THEN + IF spc\finite_integer_interval.size = 1 THEN + RETURN( spc\finite_integer_interval.min ); + END_IF; + RETURN( ? ); + END_IF; + RETURN( ? ); + + END_FUNCTION; + + FUNCTION sort_link_associations( + aprr : SET [1 : ?] OF pair_representation_relationship; + one_not_two : BOOLEAN + ) : SET OF kinematic_link_representation; + + LOCAL + result : SET OF kinematic_link_representation := []; + END_LOCAL; + IF one_not_two THEN + REPEAT i := 1 TO HIINDEX( aprr ) BY 1; + result := result + aprr[i].rep_1; + END_REPEAT; + ELSE + REPEAT i := 1 TO HIINDEX( aprr ) BY 1; + result := result + aprr[i].rep_2; + END_REPEAT; + END_IF; + RETURN( result ); + + END_FUNCTION; + + FUNCTION space_dimension( + tspace : tuple_space + ) : nonnegative_integer; + + LOCAL + types : SET OF STRING := TYPEOF( tspace ); + END_LOCAL; + IF ( schema_prefix + 'UNIFORM_PRODUCT_SPACE' ) IN types THEN + RETURN( tspace\uniform_product_space.exponent ); + END_IF; + IF ( schema_prefix + 'LISTED_PRODUCT_SPACE' ) IN types THEN + RETURN( SIZEOF( tspace\listed_product_space.factors ) ); + END_IF; + IF ( schema_prefix + 'EXTENDED_TUPLE_SPACE' ) IN types THEN + RETURN( space_dimension( tspace\extended_tuple_space.base ) ); + END_IF; + RETURN( ? ); + + END_FUNCTION; + + FUNCTION space_is_continuum( + space : maths_space + ) : BOOLEAN; + + LOCAL + typenames : SET OF STRING := TYPEOF( space ); + factors : LIST OF maths_space; + END_LOCAL; + IF NOT EXISTS( space ) THEN + RETURN( FALSE ); + END_IF; + IF subspace_of_es( space, es_reals ) OR subspace_of_es( space, es_complex_numbers ) THEN + RETURN( TRUE ); + END_IF; + IF ( schema_prefix + 'UNIFORM_PRODUCT_SPACE' ) IN typenames THEN + RETURN( space_is_continuum( space\uniform_product_space.base ) ); + END_IF; + IF ( schema_prefix + 'LISTED_PRODUCT_SPACE' ) IN typenames THEN + factors := space\listed_product_space.factors; + IF SIZEOF( factors ) = 0 THEN + RETURN( FALSE ); + END_IF; + REPEAT i := 1 TO SIZEOF( factors ) BY 1; + IF NOT space_is_continuum( factors[i] ) THEN + RETURN( FALSE ); + END_IF; + END_REPEAT; + RETURN( TRUE ); + END_IF; + RETURN( FALSE ); + + END_FUNCTION; + + FUNCTION space_is_singleton( + spc : maths_space + ) : BOOLEAN; + + LOCAL + types : SET OF STRING := stripped_typeof( spc ); + END_LOCAL; + IF 'FINITE_SPACE' IN types THEN + RETURN( bool( SIZEOF( spc\finite_space.members ) = 1 ) ); + END_IF; + IF 'FINITE_INTEGER_INTERVAL' IN types THEN + RETURN( bool( spc\finite_integer_interval.size = 1 ) ); + END_IF; + RETURN( FALSE ); + + END_FUNCTION; + + FUNCTION stripped_typeof( + arg : GENERIC:g + ) : SET OF STRING; + + LOCAL + types : SET OF STRING := TYPEOF( arg ); + stypes : SET OF STRING := []; + n : INTEGER := LENGTH( schema_prefix ); + END_LOCAL; + REPEAT i := 1 TO SIZEOF( types ) BY 1; + IF types[i][1 : n] = schema_prefix THEN + stypes := stypes + types[i][n + 1 : LENGTH( types[i] )]; + ELSE + stypes := stypes + types[i]; + END_IF; + END_REPEAT; + RETURN( stypes ); + + END_FUNCTION; + + FUNCTION sts_get_general_datum_reference( + input : datum_reference_element + ) : general_datum_reference; + + LOCAL + general_datum_reference_bag : BAG OF general_datum_reference := USEDIN( input, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'GENERAL_DATUM_REFERENCE.' + 'BASE' ); + END_LOCAL; + IF SIZEOF( general_datum_reference_bag ) = 1 THEN + RETURN( general_datum_reference_bag[1] ); + ELSE + RETURN( ? ); + END_IF; + + END_FUNCTION; + + FUNCTION sts_get_product_definition_shape( + input : geometric_tolerance_target + ) : product_definition_shape; + CASE TRUE OF + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.DIMENSIONAL_LOCATION' IN TYPEOF( input ) : RETURN + ( input\shape_aspect_relationship.relating_shape_aspect\shape_aspect.of_shape ); + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.DIMENSIONAL_SIZE' IN TYPEOF( input ) : RETURN( + input\dimensional_size.applies_to\shape_aspect.of_shape ); + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF( input ) : RETURN + ( input ); + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT' IN TYPEOF( input ) : RETURN( + input\shape_aspect.of_shape ); + OTHERWISE : RETURN( ? ); + END_CASE; + + END_FUNCTION; + + FUNCTION subspace_of( + space1, space2 : maths_space + ) : LOGICAL; + + LOCAL + spc1 : maths_space := simplify_maths_space( space1 ); + spc2 : maths_space := simplify_maths_space( space2 ); + types1 : SET OF STRING := stripped_typeof( spc1 ); + types2 : SET OF STRING := stripped_typeof( spc2 ); + lgcl : LOGICAL; + cum : LOGICAL; + es_val : elementary_space_enumerators; + bnd1 : REAL; + bnd2 : REAL; + n : INTEGER; + sp1 : maths_space; + sp2 : maths_space; + prgn1 : polar_complex_number_region; + prgn2 : polar_complex_number_region; + aitv : finite_real_interval; + END_LOCAL; + IF ( NOT EXISTS( spc1 ) ) OR ( NOT EXISTS( spc2 ) ) THEN + RETURN( FALSE ); + END_IF; + IF spc2 = the_generics THEN + RETURN( TRUE ); + END_IF; + IF 'ELEMENTARY_SPACE' IN types1 THEN + IF NOT ( 'ELEMENTARY_SPACE' IN types2 ) THEN + RETURN( FALSE ); + END_IF; + es_val := spc2\elementary_space.space_id; + IF spc1\elementary_space.space_id = es_val THEN + RETURN( TRUE ); + END_IF; + CASE spc1\elementary_space.space_id OF + es_numbers : RETURN( FALSE ); + es_complex_numbers : RETURN( es_val = es_numbers ); + es_reals : RETURN( es_val = es_numbers ); + es_integers : RETURN( es_val = es_numbers ); + es_logicals : RETURN( FALSE ); + es_booleans : RETURN( es_val = es_logicals ); + es_strings : RETURN( FALSE ); + es_binarys : RETURN( FALSE ); + es_maths_spaces : RETURN( FALSE ); + es_maths_functions : RETURN( FALSE ); + es_generics : RETURN( FALSE ); + END_CASE; + RETURN( UNKNOWN ); + END_IF; + IF 'FINITE_INTEGER_INTERVAL' IN types1 THEN + cum := TRUE; + REPEAT i := spc1\finite_integer_interval.min TO spc1\finite_integer_interval.max BY 1; + cum := cum AND member_of( i, spc2 ); + IF cum = FALSE THEN + RETURN( FALSE ); + END_IF; + END_REPEAT; + RETURN( cum ); + END_IF; + IF 'INTEGER_INTERVAL_FROM_MIN' IN types1 THEN + IF 'ELEMENTARY_SPACE' IN types2 THEN + es_val := spc2\elementary_space.space_id; + RETURN( ( es_val = es_numbers ) OR ( es_val = es_integers ) ); + END_IF; + IF 'INTEGER_INTERVAL_FROM_MIN' IN types2 THEN + RETURN( spc1\integer_interval_from_min.min >= spc2\integer_interval_from_min.min ); + END_IF; + RETURN( FALSE ); + END_IF; + IF 'INTEGER_INTERVAL_TO_MAX' IN types1 THEN + IF 'ELEMENTARY_SPACE' IN types2 THEN + es_val := spc2\elementary_space.space_id; + RETURN( ( es_val = es_numbers ) OR ( es_val = es_integers ) ); + END_IF; + IF 'INTEGER_INTERVAL_TO_MAX' IN types2 THEN + RETURN( spc1\integer_interval_to_max.max <= spc2\integer_interval_to_max.max ); + END_IF; + RETURN( FALSE ); + END_IF; + IF 'FINITE_REAL_INTERVAL' IN types1 THEN + IF 'ELEMENTARY_SPACE' IN types2 THEN + es_val := spc2\elementary_space.space_id; + RETURN( ( es_val = es_numbers ) OR ( es_val = es_reals ) ); + END_IF; + IF ( 'FINITE_REAL_INTERVAL' IN types2 ) OR ( 'REAL_INTERVAL_FROM_MIN' IN types2 ) OR ( 'REAL_INTERVAL_TO_MAX' IN types2 ) + THEN + IF min_exists( spc2 ) THEN + bnd1 := spc1\finite_real_interval.min; + bnd2 := real_min( spc2 ); + IF ( bnd1 < bnd2 ) OR ( ( bnd1 = bnd2 ) AND min_included( spc1 ) AND ( NOT min_included( spc2 ) ) ) THEN + RETURN( FALSE ); + END_IF; + END_IF; + IF max_exists( spc2 ) THEN + bnd1 := spc1\finite_real_interval.max; + bnd2 := real_max( spc2 ); + IF ( bnd1 > bnd2 ) OR ( ( bnd1 = bnd2 ) AND max_included( spc1 ) AND ( NOT max_included( spc2 ) ) ) THEN + RETURN( FALSE ); + END_IF; + END_IF; + RETURN( TRUE ); + END_IF; + RETURN( FALSE ); + END_IF; + IF 'REAL_INTERVAL_FROM_MIN' IN types1 THEN + IF 'ELEMENTARY_SPACE' IN types2 THEN + es_val := spc2\elementary_space.space_id; + RETURN( ( es_val = es_numbers ) OR ( es_val = es_reals ) ); + END_IF; + IF 'REAL_INTERVAL_FROM_MIN' IN types2 THEN + bnd1 := spc1\real_interval_from_min.min; + bnd2 := spc2\real_interval_from_min.min; + RETURN( ( bnd2 < bnd1 ) OR ( ( bnd2 = bnd1 ) AND ( min_included( spc2 ) OR ( NOT min_included( spc1 ) ) ) ) ); + END_IF; + RETURN( FALSE ); + END_IF; + IF 'REAL_INTERVAL_TO_MAX' IN types1 THEN + IF 'ELEMENTARY_SPACE' IN types2 THEN + es_val := spc2\elementary_space.space_id; + RETURN( ( es_val = es_numbers ) OR ( es_val = es_reals ) ); + END_IF; + IF 'REAL_INTERVAL_TO_MAX' IN types2 THEN + bnd1 := spc1\real_interval_to_max.max; + bnd2 := spc2\real_interval_to_max.max; + RETURN( ( bnd2 > bnd1 ) OR ( ( bnd2 = bnd1 ) AND ( max_included( spc2 ) OR ( NOT max_included( spc1 ) ) ) ) ); + END_IF; + RETURN( FALSE ); + END_IF; + IF 'CARTESIAN_COMPLEX_NUMBER_REGION' IN types1 THEN + IF 'ELEMENTARY_SPACE' IN types2 THEN + es_val := spc2\elementary_space.space_id; + RETURN( ( es_val = es_numbers ) OR ( es_val = es_complex_numbers ) ); + END_IF; + IF 'CARTESIAN_COMPLEX_NUMBER_REGION' IN types2 THEN + RETURN( subspace_of( spc1\cartesian_complex_number_region.real_constraint, spc2\cartesian_complex_number_region. + real_constraint ) AND subspace_of( spc1\cartesian_complex_number_region.imag_constraint, spc2\ + cartesian_complex_number_region.imag_constraint ) ); + END_IF; + IF 'POLAR_COMPLEX_NUMBER_REGION' IN types2 THEN + RETURN( subspace_of( enclose_cregion_in_pregion( spc1, spc2\polar_complex_number_region.centre ), spc2 ) ); + END_IF; + RETURN( FALSE ); + END_IF; + IF 'POLAR_COMPLEX_NUMBER_REGION' IN types1 THEN + IF 'ELEMENTARY_SPACE' IN types2 THEN + es_val := spc2\elementary_space.space_id; + RETURN( ( es_val = es_numbers ) OR ( es_val = es_complex_numbers ) ); + END_IF; + IF 'CARTESIAN_COMPLEX_NUMBER_REGION' IN types2 THEN + RETURN( subspace_of( enclose_pregion_in_cregion( spc1 ), spc2 ) ); + END_IF; + IF 'POLAR_COMPLEX_NUMBER_REGION' IN types2 THEN + prgn1 := spc1; + prgn2 := spc2; + IF prgn1.centre = prgn2.centre THEN + IF prgn2.direction_constraint.max > PI THEN + aitv := make_finite_real_interval( -PI, open, prgn2.direction_constraint.max - ( 2 * PI ), prgn2.direction_constraint + .max_closure ); + RETURN( subspace_of( prgn1.distance_constraint, prgn2.distance_constraint ) AND ( subspace_of( prgn1. + direction_constraint, prgn2.direction_constraint ) OR subspace_of( prgn1.direction_constraint, aitv ) ) ); + ELSE + RETURN( subspace_of( prgn1.distance_constraint, prgn2.distance_constraint ) AND subspace_of( prgn1. + direction_constraint, prgn2.direction_constraint ) ); + END_IF; + END_IF; + RETURN( subspace_of( enclose_pregion_in_pregion( prgn1, prgn2.centre ), prgn2 ) ); + END_IF; + RETURN( FALSE ); + END_IF; + IF 'FINITE_SPACE' IN types1 THEN + cum := TRUE; + REPEAT i := 1 TO SIZEOF( spc1\finite_space.members ) BY 1; + cum := cum AND member_of( spc1\finite_space.members[i], spc2 ); + IF cum = FALSE THEN + RETURN( FALSE ); + END_IF; + END_REPEAT; + RETURN( cum ); + END_IF; + IF 'PRODUCT_SPACE' IN types1 THEN + IF 'PRODUCT_SPACE' IN types2 THEN + IF space_dimension( spc1 ) = space_dimension( spc2 ) THEN + cum := TRUE; + REPEAT i := 1 TO space_dimension( spc1 ) BY 1; + cum := cum AND subspace_of( factor_space( spc1, i ), factor_space( spc2, i ) ); + IF cum = FALSE THEN + RETURN( FALSE ); + END_IF; + END_REPEAT; + RETURN( cum ); + END_IF; + END_IF; + IF 'EXTENDED_TUPLE_SPACE' IN types2 THEN + IF space_dimension( spc1 ) >= space_dimension( spc2 ) THEN + cum := TRUE; + REPEAT i := 1 TO space_dimension( spc1 ) BY 1; + cum := cum AND subspace_of( factor_space( spc1, i ), factor_space( spc2, i ) ); + IF cum = FALSE THEN + RETURN( FALSE ); + END_IF; + END_REPEAT; + RETURN( cum ); + END_IF; + END_IF; + RETURN( FALSE ); + END_IF; + IF 'EXTENDED_TUPLE_SPACE' IN types1 THEN + IF 'EXTENDED_TUPLE_SPACE' IN types2 THEN + n := space_dimension( spc1 ); + IF n < space_dimension( spc2 ) THEN + n := space_dimension( spc2 ); + END_IF; + cum := TRUE; + REPEAT i := 1 TO n + 1 BY 1; + cum := cum AND subspace_of( factor_space( spc1, i ), factor_space( spc2, i ) ); + IF cum = FALSE THEN + RETURN( FALSE ); + END_IF; + END_REPEAT; + RETURN( cum ); + END_IF; + RETURN( FALSE ); + END_IF; + IF 'FUNCTION_SPACE' IN types1 THEN + IF 'ELEMENTARY_SPACE' IN types2 THEN + RETURN( spc2\elementary_space.space_id = es_maths_functions ); + END_IF; + IF 'FUNCTION_SPACE' IN types2 THEN + cum := TRUE; + sp1 := spc1\function_space.domain_argument; + sp2 := spc2\function_space.domain_argument; + CASE spc1\function_space.domain_constraint OF + sc_equal : + BEGIN + CASE spc2\function_space.domain_constraint OF + sc_equal : cum := cum AND equal_maths_spaces( sp1, sp2 ); + sc_subspace : cum := cum AND subspace_of( sp1, sp2 ); + sc_member : cum := cum AND member_of( sp1, sp2 ); + END_CASE; + END; + sc_subspace : + BEGIN + CASE spc2\function_space.domain_constraint OF + sc_equal : RETURN( FALSE ); + sc_subspace : cum := cum AND subspace_of( sp1, sp2 ); + sc_member : + BEGIN + IF NOT member_of( sp1, sp2 ) THEN + RETURN( FALSE ); + END_IF; + cum := UNKNOWN; + END; + END_CASE; + END; + sc_member : + BEGIN + CASE spc2\function_space.domain_constraint OF + sc_equal : cum := cum AND space_is_singleton( sp1 ) AND equal_maths_spaces( + singleton_member_of( sp1 ), sp2 ); + sc_subspace : + BEGIN + IF NOT member_of( sp2, sp1 ) THEN + RETURN( FALSE ); + END_IF; + cum := UNKNOWN; + END; + sc_member : cum := cum AND subspace_of( sp1, sp2 ); + END_CASE; + END; + END_CASE; + IF cum = FALSE THEN + RETURN( FALSE ); + END_IF; + sp1 := spc1\function_space.range_argument; + sp2 := spc2\function_space.range_argument; + CASE spc1\function_space.range_constraint OF + sc_equal : + BEGIN + CASE spc2\function_space.range_constraint OF + sc_equal : cum := cum AND equal_maths_spaces( sp1, sp2 ); + sc_subspace : cum := cum AND subspace_of( sp1, sp2 ); + sc_member : cum := cum AND member_of( sp1, sp2 ); + END_CASE; + END; + sc_subspace : + BEGIN + CASE spc2\function_space.domain_constraint OF + sc_equal : RETURN( FALSE ); + sc_subspace : cum := cum AND subspace_of( sp1, sp2 ); + sc_member : + BEGIN + IF NOT member_of( sp1, sp2 ) THEN + RETURN( FALSE ); + END_IF; + cum := UNKNOWN; + END; + END_CASE; + END; + sc_member : + BEGIN + CASE spc2\function_space.domain_constraint OF + sc_equal : cum := cum AND space_is_singleton( sp1 ) AND equal_maths_spaces( + singleton_member_of( sp1 ), sp2 ); + sc_subspace : + BEGIN + IF NOT member_of( sp2, sp1 ) THEN + RETURN( FALSE ); + END_IF; + cum := UNKNOWN; + END; + sc_member : cum := cum AND subspace_of( sp1, sp2 ); + END_CASE; + END; + END_CASE; + RETURN( cum ); + END_IF; + RETURN( FALSE ); + END_IF; + RETURN( UNKNOWN ); + + END_FUNCTION; + + FUNCTION subspace_of_es( + spc : maths_space; + es : elementary_space_enumerators + ) : LOGICAL; + + LOCAL + types : SET OF STRING := stripped_typeof( spc ); + END_LOCAL; + IF ( NOT EXISTS( spc ) ) OR ( NOT EXISTS( es ) ) THEN + RETURN( FALSE ); + END_IF; + IF 'ELEMENTARY_SPACE' IN types THEN + RETURN( es_subspace_of_es( spc\elementary_space.space_id, es ) ); + END_IF; + IF 'FINITE_SPACE' IN types THEN + RETURN( all_members_of_es( spc\finite_space.members, es ) ); + END_IF; + CASE es OF + es_numbers : RETURN( ( 'FINITE_INTEGER_INTERVAL' IN types ) OR ( 'INTEGER_INTERVAL_FROM_MIN' IN types ) OR + ( 'INTEGER_INTERVAL_TO_MAX' IN types ) OR ( 'FINITE_REAL_INTERVAL' IN types ) OR ( 'REAL_INTERVAL_FROM_MIN' IN types ) + OR ( 'REAL_INTERVAL_TO_MAX' IN types ) OR ( 'CARTESIAN_COMPLEX_NUMBER_REGION' IN types ) OR ( + 'POLAR_COMPLEX_NUMBER_REGION' IN types ) ); + es_complex_numbers : RETURN( ( 'CARTESIAN_COMPLEX_NUMBER_REGION' IN types ) OR ( 'POLAR_COMPLEX_NUMBER_REGION' IN + types ) ); + es_reals : RETURN( ( 'FINITE_REAL_INTERVAL' IN types ) OR ( 'REAL_INTERVAL_FROM_MIN' IN types ) OR ( + 'REAL_INTERVAL_TO_MAX' IN types ) ); + es_integers : RETURN( ( 'FINITE_INTEGER_INTERVAL' IN types ) OR ( 'INTEGER_INTERVAL_FROM_MIN' IN types ) OR + ( 'INTEGER_INTERVAL_TO_MAX' IN types ) ); + es_logicals : RETURN( FALSE ); + es_booleans : RETURN( FALSE ); + es_strings : RETURN( FALSE ); + es_binarys : RETURN( FALSE ); + es_maths_spaces : RETURN( FALSE ); + es_maths_functions : RETURN( 'FUNCTION_SPACE' IN types ); + es_generics : RETURN( TRUE ); + END_CASE; + RETURN( UNKNOWN ); + + END_FUNCTION; + + FUNCTION substitute( + expr : generic_expression; + vars : LIST [1 : ?] OF generic_variable; + vals : LIST [1 : ?] OF maths_value + ) : generic_expression; + + LOCAL + types : SET OF STRING := stripped_typeof( expr ); + opnds : LIST OF generic_expression; + op1 : generic_expression; + op2 : generic_expression; + qvars : LIST OF generic_variable; + srcdom : maths_space_or_function; + prpfun : LIST [1 : ?] OF maths_function; + finfun : maths_function_select; + END_LOCAL; + IF SIZEOF( vars ) <> SIZEOF( vals ) THEN + RETURN( ? ); + END_IF; + IF 'GENERIC_LITERAL' IN types THEN + RETURN( expr ); + END_IF; + IF 'GENERIC_VARIABLE' IN types THEN + REPEAT i := 1 TO SIZEOF( vars ) BY 1; + IF expr :=: vars[i] THEN + RETURN( vals[i] ); + END_IF; + END_REPEAT; + RETURN( expr ); + END_IF; + IF 'QUANTIFIER_EXPRESSION' IN types THEN + qvars := expr\quantifier_expression.variables; + REPEAT i := SIZEOF( vars ) TO 1 BY -1; + IF vars[i] IN qvars THEN + REMOVE( vars, i ); + REMOVE( vals, i ); + END_IF; + END_REPEAT; + opnds := expr\multiple_arity_generic_expression.operands; + REPEAT i := 1 TO SIZEOF( opnds ) BY 1; + IF NOT ( opnds[i] IN qvars ) THEN + expr\multiple_arity_generic_expression.operands[i] := substitute( opnds[i], vars, vals ); + END_IF; + END_REPEAT; + RETURN( expr ); + END_IF; + IF 'UNARY_GENERIC_EXPRESSION' IN types THEN + op1 := expr\unary_generic_expression.operand; + expr\unary_generic_expression.operand := substitute( op1, vars, vals ); + END_IF; + IF 'BINARY_GENERIC_EXPRESSION' IN types THEN + op1 := expr\binary_generic_expression.operands[1]; + expr\binary_generic_expression.operands[1] := substitute( op1, vars, vals ); + op2 := expr\binary_generic_expression.operands[2]; + expr\binary_generic_expression.operands[2] := substitute( op2, vars, vals ); + END_IF; + IF 'PARALLEL_COMPOSED_FUNCTION' IN types THEN + srcdom := expr\parallel_composed_function.source_of_domain; + prpfun := expr\parallel_composed_function.prep_functions; + finfun := expr\parallel_composed_function.final_function; + srcdom := substitute( srcdom, vars, vals ); + REPEAT i := 1 TO SIZEOF( prpfun ) BY 1; + prpfun[i] := substitute( prpfun[i], vars, vals ); + END_REPEAT; + IF 'MATHS_FUNCTION' IN stripped_typeof( finfun ) THEN + finfun := substitute( finfun, vars, vals ); + END_IF; + RETURN( make_parallel_composed_function( srcdom, prpfun, finfun ) ); + END_IF; + IF 'MULTIPLE_ARITY_GENERIC_EXPRESSION' IN types THEN + opnds := expr\multiple_arity_generic_expression.operands; + REPEAT i := 1 TO SIZEOF( opnds ) BY 1; + expr\multiple_arity_generic_expression.operands[i] := substitute( opnds[i], vars, vals ); + END_REPEAT; + END_IF; + RETURN( expr ); + + END_FUNCTION; + + FUNCTION surface_condition_correlation( + pd : property_definition; + rep : representation + ) : LOGICAL; + CASE pd.name OF + 'visual appearance' : RETURN( pd.name = rep.name ); + 'tactile appearance' : RETURN( pd.name = rep.name ); + 'contact ratio' : RETURN( pd.name = rep.name ); + 'hardness' : RETURN( pd.name = rep.name ); + 'treatment result' : RETURN( pd.name = rep.name ); + '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 BY 1; + REPEAT j := 0 TO b.v_upper BY 1; + IF b.weights[i][j] <= 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 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.EDGE' IN TYPEOF( an_item ) THEN + RETURN( edge_reversed( an_item ) ); + END_IF; + IF 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PATH' IN TYPEOF( an_item ) THEN + RETURN( path_reversed( an_item ) ); + END_IF; + IF 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.FACE_BOUND' IN TYPEOF( an_item ) THEN + RETURN( face_bound_reversed( an_item ) ); + END_IF; + IF 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.FACE' IN TYPEOF( an_item ) THEN + RETURN( face_reversed( an_item ) ); + END_IF; + IF 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 OF STRING; + criterion : INTEGER + ) : LOGICAL; + IF ( NOT EXISTS( the_type ) ) 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 ); + OTHERWISE : RETURN( UNKNOWN ); + END_CASE; + END_IF; + + END_FUNCTION; + + FUNCTION unambiguously_specified_multi_level_reference_designator( + links : LIST [1 : ?] OF next_assembly_usage_occurrence + ) : BOOLEAN; + REPEAT i := 1 TO SIZEOF( links ) - 1 BY 1; + CASE TRUE OF + ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PRODUCT_DEFINITION' IN TYPEOF( links[i]\ + product_definition_relationship.relating_product_definition ) ) AND ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PRODUCT_DEFINITION' IN TYPEOF( links[i]\ + product_definition_relationship.related_product_definition ) ) AND ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PRODUCT_DEFINITION' IN TYPEOF( links[i + 1]\ + product_definition_relationship.relating_product_definition ) ) : + BEGIN + IF NOT ( ( links[i]\product_definition_relationship.related_product_definition :=: links[i + 1]\ + product_definition_relationship.relating_product_definition ) OR ( ( SIZEOF( QUERY ( pdr <* USEDIN( links[i]\ + product_definition_relationship.related_product_definition, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PRODUCT_DEFINITION_RELATIONSHIP.' + + 'RELATED_PRODUCT_DEFINITION' ) | ( pdr\product_definition_relationship.relating_product_definition :=: links[i + + 1]\product_definition_relationship.relating_product_definition ) ) ) = 1 ) AND ( links[i]\ + product_definition_relationship.related_product_definition\product_definition.formation\ + product_definition_formation.of_product :=: links[i + 1]\product_definition_relationship. + relating_product_definition\product_definition.formation\product_definition_formation.of_product ) ) ) THEN + RETURN( FALSE ); + END_IF; + END; + ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PRODUCT_DEFINITION_REFERENCE' IN TYPEOF( links[i]\ + product_definition_relationship.related_product_definition ) ) AND ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PRODUCT_DEFINITION_REFERENCE' IN TYPEOF( links[i + + 1]\product_definition_relationship.relating_product_definition ) ) : + BEGIN + IF NOT ( ( links[i]\product_definition_relationship.related_product_definition :=: links[i + 1]\ + product_definition_relationship.relating_product_definition ) OR ( ( SIZEOF( QUERY ( pdr <* USEDIN( links[i]\ + product_definition_relationship.related_product_definition, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PRODUCT_DEFINITION_RELATIONSHIP.' + + 'RELATED_PRODUCT_DEFINITION' ) | ( pdr\product_definition_relationship.relating_product_definition :=: links[i + + 1]\product_definition_relationship.relating_product_definition ) ) ) = 1 ) AND ( links[i]\ + product_definition_relationship.related_product_definition\product_definition_reference.product_id = links[i + 1]\ + product_definition_relationship.relating_product_definition\product_definition_reference.product_id ) AND ( links[ + i]\product_definition_relationship.related_product_definition\product_definition_reference. + id_owning_organization_name = links[i + 1]\product_definition_relationship.relating_product_definition\ + product_definition_reference.id_owning_organization_name ) AND ( links[i]\product_definition_relationship. + related_product_definition\product_definition_reference.product_definition_id <> links[i + 1]\ + product_definition_relationship.relating_product_definition\product_definition_reference.product_definition_id ) ) ) + THEN + RETURN( FALSE ); + END_IF; + END; + ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PRODUCT_DEFINITION_REFERENCE' IN TYPEOF( links[i]\ + product_definition_relationship.relating_product_definition ) ) AND ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PRODUCT_DEFINITION' IN TYPEOF( links[i]\ + product_definition_relationship.related_product_definition ) ) : RETURN( FALSE ); + OTHERWISE : RETURN( FALSE ); + END_CASE; + END_REPEAT; + RETURN( TRUE ); + + END_FUNCTION; + + FUNCTION unique_in_product_definition( + item : representative_shape_representation + ) : BOOLEAN; + + LOCAL + local_p_d : SET OF product_definition := []; + local_s_r : SET OF shape_representation := []; + i : INTEGER; + j : INTEGER; + END_LOCAL; + local_p_d := using_product_definition_of_shape_representation( item ); + IF SIZEOF( local_p_d ) <> 1 THEN + RETURN( FALSE ); + ELSE + REPEAT i := 1 TO HIINDEX( local_p_d ) BY 1; + local_s_r := find_shape_representation_of_product_definition( local_p_d[i] ); + REPEAT j := 1 TO HIINDEX( local_s_r ) BY 1; + IF ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.REPRESENTATIVE_SHAPE_REPRESENTATION' IN + TYPEOF( local_s_r[j] ) ) AND ( local_s_r[j] :<>: item ) THEN + RETURN( FALSE ); + END_IF; + END_REPEAT; + END_REPEAT; + END_IF; + RETURN( TRUE ); + + END_FUNCTION; + + FUNCTION unique_in_shape_aspect( + item : representative_shape_representation + ) : BOOLEAN; + + LOCAL + local_s_a : SET OF shape_aspect := []; + local_s_r : SET OF shape_representation := []; + i : INTEGER; + j : INTEGER; + END_LOCAL; + local_s_a := using_shape_aspect_of_shape_representation( item ); + IF SIZEOF( local_s_a ) <> 1 THEN + RETURN( FALSE ); + ELSE + REPEAT i := 1 TO HIINDEX( local_s_a ) BY 1; + local_s_r := find_shape_representation_of_shape_aspect( local_s_a[i] ); + REPEAT j := 1 TO HIINDEX( local_s_r ) BY 1; + IF ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.REPRESENTATIVE_SHAPE_REPRESENTATION' IN + TYPEOF( local_s_r[j] ) ) AND ( local_s_r[j] :<>: item ) THEN + RETURN( FALSE ); + END_IF; + END_REPEAT; + END_REPEAT; + END_IF; + RETURN( TRUE ); + + END_FUNCTION; + + FUNCTION used_variables( + arg : generic_expression + ) : SET OF generic_variable; + + LOCAL + result : SET OF generic_variable := []; + END_LOCAL; + IF 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.GENERIC_VARIABLE' IN TYPEOF( arg ) THEN + RETURN( [arg] ); + END_IF; + IF 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.UNARY_GENERIC_EXPRESSION' IN TYPEOF( arg ) THEN + RETURN( used_variables( arg\unary_generic_expression.operand ) ); + END_IF; + IF 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.BINARY_GENERIC_EXPRESSION' IN TYPEOF( arg ) THEN + RETURN( used_variables( arg\binary_generic_expression.operands[1] ) + used_variables( arg\binary_generic_expression. + operands[2] ) ); + END_IF; + IF 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MULTIPLE_ARITY_GENERIC_EXPRESSION' IN TYPEOF( arg ) + THEN + REPEAT i := 1 TO SIZEOF( arg\multiple_arity_generic_expression.operands ) BY 1; + result := result + used_variables( arg\multiple_arity_generic_expression.operands[i] ); + END_REPEAT; + RETURN( result ); + END_IF; + RETURN( [] ); + + END_FUNCTION; + + FUNCTION using_items( + item : founded_item_select; + checked_items : SET OF founded_item_select + ) : SET 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; + next_items := QUERY ( z <* bag_to_set( USEDIN( item, '' ) ) | ( ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.REPRESENTATION_ITEM' IN TYPEOF( z ) ) OR ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.FOUNDED_ITEM' IN TYPEOF( z ) ) ) ); + IF SIZEOF( next_items ) > 0 THEN + REPEAT i := 1 TO HIINDEX( next_items ) BY 1; + 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( result_items ); + + END_FUNCTION; + + FUNCTION using_product_definition_of_shape_aspect( + item : shape_aspect + ) : product_definition; + IF 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PRODUCT_DEFINITION' IN TYPEOF( item.of_shape. + definition ) THEN + RETURN( item.of_shape.definition ); + ELSE + RETURN( ? ); + END_IF; + + END_FUNCTION; + + FUNCTION using_product_definition_of_shape_representation( + item : shape_representation + ) : SET OF product_definition; + + LOCAL + local_s_d_r : SET OF shape_definition_representation := []; + local_p_d : SET OF product_definition := []; + i : INTEGER; + END_LOCAL; + local_s_d_r := QUERY ( i1 <* bag_to_set( USEDIN( item, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'PROPERTY_DEFINITION_REPRESENTATION.USED_REPRESENTATION' ) ) | ( ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'SHAPE_DEFINITION_REPRESENTATION' ) IN TYPEOF( + i1 ) ) ); + REPEAT i := 1 TO HIINDEX( local_s_d_r ) BY 1; + IF 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION' IN TYPEOF( local_s_d_r[i]\ + property_definition_representation.definition ) THEN + IF 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PRODUCT_DEFINITION' IN TYPEOF( local_s_d_r[i]\ + property_definition_representation.definition\property_definition.definition ) THEN + local_p_d := local_p_d + local_s_d_r[i]\property_definition_representation.definition\property_definition.definition; + END_IF; + END_IF; + END_REPEAT; + RETURN( local_p_d ); + + END_FUNCTION; + + FUNCTION using_representation_with_mapping( + item : representation_item + ) : SET OF representation; + + LOCAL + results : SET OF representation := []; + local_results : SET OF representation := []; + local_representation_map : SET OF representation_map := []; + intermediate_items : SET OF representation_item := []; + i : INTEGER; + j : INTEGER; + END_LOCAL; + local_results := QUERY ( z <* using_representations( item ) | ( SIZEOF( USEDIN( z, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.REPRESENTATION_MAP.' + 'MAPPED_REPRESENTATION' ) ) > + 0 ) ); + IF SIZEOF( local_results ) = 0 THEN + RETURN( [] ); + ELSE + REPEAT i := 1 TO HIINDEX( local_results ) BY 1; + local_representation_map := local_representation_map + bag_to_set( USEDIN( local_results[i], + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.REPRESENTATION_MAP.MAPPED_REPRESENTATION' ) ); + END_REPEAT; + REPEAT i := 1 TO HIINDEX( local_representation_map ) BY 1; + intermediate_items := intermediate_items + bag_to_set( USEDIN( local_representation_map[i], + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MAPPED_ITEM.MAPPING_SOURCE' ) ); + END_REPEAT; + REPEAT j := 1 TO HIINDEX( intermediate_items ) BY 1; + results := results + bag_to_set( using_representation_with_mapping( intermediate_items[j] ) ); + END_REPEAT; + END_IF; + RETURN( results ); + + END_FUNCTION; + + FUNCTION using_representations( + item : founded_item_select + ) : SET OF representation; + + LOCAL + results : SET OF representation; + result_bag : BAG OF representation; + intermediate_items : SET OF founded_item_select; + END_LOCAL; + results := []; + result_bag := USEDIN( item, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.REPRESENTATION.ITEMS' ); + IF SIZEOF( result_bag ) > 0 THEN + REPEAT i := 1 TO HIINDEX( result_bag ) BY 1; + results := results + result_bag[i]; + END_REPEAT; + END_IF; + intermediate_items := using_items( item, [] ); + IF SIZEOF( intermediate_items ) > 0 THEN + REPEAT i := 1 TO HIINDEX( intermediate_items ) BY 1; + result_bag := USEDIN( intermediate_items[i], 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'REPRESENTATION.ITEMS' ); + IF SIZEOF( result_bag ) > 0 THEN + REPEAT j := 1 TO HIINDEX( result_bag ) BY 1; + results := results + result_bag[j]; + END_REPEAT; + END_IF; + END_REPEAT; + END_IF; + RETURN( results ); + + END_FUNCTION; + + FUNCTION using_shape_aspect_of_shape_representation( + item : shape_representation + ) : SET OF shape_aspect; + + LOCAL + local_s_d_r : SET OF shape_definition_representation := []; + local_s_d_r2 : BAG OF shape_definition_representation := []; + local_s_a : SET OF shape_aspect := []; + i : INTEGER; + END_LOCAL; + local_s_d_r2 := local_s_d_r2 + QUERY ( pdr <* USEDIN( item, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.' + + 'USED_REPRESENTATION' ) | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'SHAPE_DEFINITION_REPRESENTATION' IN TYPEOF( pdr ) ) ); + local_s_d_r := bag_to_set( local_s_d_r2 ); + REPEAT i := 1 TO HIINDEX( local_s_d_r ) BY 1; + IF 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT' IN TYPEOF( local_s_d_r[i]\ + property_definition_representation.definition\property_definition.definition ) THEN + local_s_a := local_s_a + local_s_d_r[i]\property_definition_representation.definition\property_definition.definition; + END_IF; + END_REPEAT; + RETURN( local_s_a ); + + END_FUNCTION; + + FUNCTION valid_2d_wireframe_edge_curve( + crv : curve; + schma : STRING + ) : BOOLEAN; + IF SIZEOF( [schma + '.LINE', schma + '.B_SPLINE_CURVE', schma + '.CIRCLE', schma + '.HYPERBOLA', schma + '.ELLIPSE', schma + + '.PARABOLA' , schma + '.POLYLINE'] * TYPEOF( crv ) ) = 1 THEN + RETURN( TRUE ); + ELSE + IF ( schma + '.CURVE_REPLICA' ) IN TYPEOF( crv ) THEN + RETURN( valid_2d_wireframe_edge_curve( crv\curve_replica.parent_curve, schma ) ); + ELSE + IF ( schma + '.OFFSET_CURVE_2D' ) IN TYPEOF( crv ) THEN + RETURN( valid_2d_wireframe_edge_curve( crv\offset_curve_2d.basis_curve, schma ) ); + END_IF; + END_IF; + END_IF; + RETURN( FALSE ); + + END_FUNCTION; + + FUNCTION valid_basis_curve_in_2d_wireframe( + crv : curve + ) : BOOLEAN; + IF SIZEOF( [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.POLYLINE', + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.B_SPLINE_CURVE' , + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.ELLIPSE' , + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CIRCLE' ] * TYPEOF( crv ) ) = 1 THEN + RETURN( TRUE ); + ELSE + IF 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.TRIMMED_CURVE' IN TYPEOF( crv ) THEN + IF SIZEOF( [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LINE', + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PARABOLA' , + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.HYPERBOLA' ] * TYPEOF( crv\trimmed_curve. + basis_curve ) ) = 1 THEN + RETURN( TRUE ); + ELSE + RETURN( valid_basis_curve_in_2d_wireframe( crv\trimmed_curve.basis_curve ) ); + END_IF; + ELSE + IF 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.OFFSET_CURVE_2D' IN TYPEOF( crv ) THEN + RETURN( valid_basis_curve_in_2d_wireframe( crv\offset_curve_2d.basis_curve ) ); + ELSE + IF 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CURVE_REPLICA' IN TYPEOF( crv ) THEN + RETURN( valid_basis_curve_in_2d_wireframe( crv\curve_replica.parent_curve ) ); + ELSE + IF 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 ) AND ( date.day_component <= 31 ) ); + 2 : + BEGIN + IF leap_year( date.year_component ) THEN + RETURN( ( 1 <= date.day_component ) AND ( date.day_component <= 29 ) ); + ELSE + RETURN( ( 1 <= date.day_component ) AND ( date.day_component <= 28 ) ); + END_IF; + END; + 3 : RETURN( ( 1 <= date.day_component ) AND ( date.day_component <= 31 ) ); + 4 : RETURN( ( 1 <= date.day_component ) AND ( date.day_component <= 30 ) ); + 5 : RETURN( ( 1 <= date.day_component ) AND ( date.day_component <= 31 ) ); + 6 : RETURN( ( 1 <= date.day_component ) AND ( date.day_component <= 30 ) ); + 7 : RETURN( ( 1 <= date.day_component ) AND ( date.day_component <= 31 ) ); + 8 : RETURN( ( 1 <= date.day_component ) AND ( date.day_component <= 31 ) ); + 9 : RETURN( ( 1 <= date.day_component ) AND ( date.day_component <= 30 ) ); + 10 : RETURN( ( 1 <= date.day_component ) AND ( date.day_component <= 31 ) ); + 11 : RETURN( ( 1 <= date.day_component ) AND ( date.day_component <= 30 ) ); + 12 : RETURN( ( 1 <= date.day_component ) AND ( date.day_component <= 31 ) ); + END_CASE; + RETURN( FALSE ); + + END_FUNCTION; + + FUNCTION valid_csg_2d_primitives( + input : csg_solid_2d + ) : BOOLEAN; + CASE TRUE OF + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PRIMITIVE_2D' IN TYPEOF( input\csg_solid_2d. + tree_root_expression ) : + BEGIN + IF SIZEOF( [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CIRCULAR_AREA', + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.COMPLEX_AREA' , + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.ELLIPTIC_AREA' , + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.POLYGONAL_AREA' , + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PRIMITIVE_2D_WITH_INNER_BOUNDARY' , + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.RECTANGULAR_AREA' ] * TYPEOF( input\ + csg_solid_2d.tree_root_expression ) ) > 0 THEN + RETURN( TRUE ); + ELSE + RETURN( FALSE ); + END_IF; + END; + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.BOOLEAN_RESULT_2D' IN TYPEOF( input\csg_solid_2d. + tree_root_expression ) : RETURN( valid_csg_2d_primitives( input\csg_solid_2d.tree_root_expression\ + boolean_result_2d.first_operand ) AND valid_csg_2d_primitives( input\csg_solid_2d.tree_root_expression\ + boolean_result_2d.second_operand ) ); + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.HALF_SPACE_2D' IN TYPEOF( input\csg_solid_2d. + tree_root_expression ) : RETURN( TRUE ); + OTHERWISE : RETURN( FALSE ); + END_CASE; + + 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 ) BY 1; + rep_set := rep_set + pdf.representation_associations[i].used_representation; + END_REPEAT; + parameter_representations := QUERY ( rep <* rep_set | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( rep ) ) ); + IF SIZEOF( QUERY ( srwp <* parameter_representations | ( SIZEOF( QUERY ( i <* srwp.items | ( ( i.name = 'orientation' ) AND + ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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( [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'MEASURE_REPRESENTATION_ITEM' , 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( i ) ) = 2 ) ) ) ) = 1 ) ) ) = 1 ) ); + 'circular curve' : 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( [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'MEASURE_REPRESENTATION_ITEM' , 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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( [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'MEASURE_REPRESENTATION_ITEM' , 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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( [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'MEASURE_REPRESENTATION_ITEM' , 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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( [ + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM' , + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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( [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.POLYLINE', + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.B_SPLINE_CURVE' , + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.ELLIPSE' , + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CIRCLE' ] * TYPEOF( crv ) ) = 1 THEN + RETURN( TRUE ); + ELSE + IF 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.TRIMMED_CURVE' IN TYPEOF( crv ) THEN + IF SIZEOF( [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LINE', + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PARABOLA' , + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.OFFSET_CURVE_3D' IN TYPEOF( crv ) THEN + RETURN( valid_geometrically_bounded_wf_curve( crv\offset_curve_3d.basis_curve ) ); + ELSE + IF 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CURVE_REPLICA' IN TYPEOF( crv ) THEN + RETURN( valid_geometrically_bounded_wf_curve( crv\curve_replica.parent_curve ) ); + ELSE + IF 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CARTESIAN_POINT' IN TYPEOF( pnt ) THEN + RETURN( TRUE ); + ELSE + IF 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.POINT_ON_CURVE' IN TYPEOF( pnt ) THEN + RETURN( valid_geometrically_bounded_wf_curve( pnt\point_on_curve.basis_curve ) ); + ELSE + IF 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 ); + 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, + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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], 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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( [ + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM' , + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 | ( ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF( i ) ) + AND ( i.name = 'selection control' ) ) ) ) > 1 THEN + RETURN( FALSE ); + END_IF; + IF ( SIZEOF( QUERY ( i <* selected_representation\representation.items | ( ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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( [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'QUALIFIED_REPRESENTATION_ITEM' , 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 ) THEN + RETURN( FALSE ); + END_IF; + END_IF; + IF 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MASS_MEASURE' IN TYPEOF( m.value_component ) THEN + IF derive_dimensional_exponents( m.unit_component ) <> dimensional_exponents( 0, 1, 0, 0, 0, 0, 0 ) THEN + RETURN( FALSE ); + END_IF; + END_IF; + IF 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.TIME_MEASURE' IN TYPEOF( m.value_component ) THEN + IF derive_dimensional_exponents( m.unit_component ) <> dimensional_exponents( 0, 0, 1, 0, 0, 0, 0 ) THEN + RETURN( FALSE ); + END_IF; + END_IF; + IF 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.ELECTRIC_CURRENT_MEASURE' IN TYPEOF( m.value_component ) + THEN + IF derive_dimensional_exponents( m.unit_component ) <> dimensional_exponents( 0, 0, 0, 1, 0, 0, 0 ) THEN + RETURN( FALSE ); + END_IF; + END_IF; + IF 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.THERMODYNAMIC_TEMPERATURE_MEASURE' IN TYPEOF( m. + value_component ) THEN + IF derive_dimensional_exponents( m.unit_component ) <> dimensional_exponents( 0, 0, 0, 0, 1, 0, 0 ) THEN + RETURN( FALSE ); + END_IF; + END_IF; + IF 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CELSIUS_TEMPERATURE_MEASURE' IN TYPEOF( m. + value_component ) THEN + IF derive_dimensional_exponents( m.unit_component ) <> dimensional_exponents( 0, 0, 0, 0, 1, 0, 0 ) THEN + RETURN( FALSE ); + END_IF; + END_IF; + IF 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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, 1, 0 ) THEN + RETURN( FALSE ); + END_IF; + END_IF; + IF 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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, 1 ) THEN + RETURN( FALSE ); + END_IF; + END_IF; + IF 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 ) THEN + RETURN( FALSE ); + END_IF; + END_IF; + IF 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 ) THEN + RETURN( FALSE ); + END_IF; + END_IF; + IF 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 ) THEN + RETURN( FALSE ); + END_IF; + END_IF; + IF 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 ) THEN + RETURN( FALSE ); + END_IF; + END_IF; + IF 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 ) THEN + RETURN( FALSE ); + END_IF; + END_IF; + IF 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 ) THEN + RETURN( FALSE ); + END_IF; + END_IF; + IF 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 ) THEN + RETURN( FALSE ); + END_IF; + END_IF; + IF 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.ACCELERATION_MEASURE' IN TYPEOF( m.value_component ) + THEN + IF derive_dimensional_exponents( m.unit_component ) <> dimensional_exponents( 1, 0, -2, 0, 0, 0, 0 ) THEN + RETURN( FALSE ); + END_IF; + END_IF; + IF 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CAPACITANCE_MEASURE' IN TYPEOF( m.value_component ) + THEN + IF derive_dimensional_exponents( m.unit_component ) <> dimensional_exponents( -2, -1, 4, 2, 0, 0, 0 ) THEN + RETURN( FALSE ); + END_IF; + END_IF; + IF 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.ELECTRIC_CHARGE_MEASURE' IN TYPEOF( m.value_component ) + THEN + IF derive_dimensional_exponents( m.unit_component ) <> dimensional_exponents( 0, 0, 1, 1, 0, 0, 0 ) THEN + RETURN( FALSE ); + END_IF; + END_IF; + IF 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CONDUCTANCE_MEASURE' IN TYPEOF( m.value_component ) + THEN + IF derive_dimensional_exponents( m.unit_component ) <> dimensional_exponents( -2, -1, 3, 2, 0, 0, 0 ) THEN + RETURN( FALSE ); + END_IF; + END_IF; + IF 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.ELECTRIC_POTENTIAL_MEASURE' IN TYPEOF( m. + value_component ) THEN + IF derive_dimensional_exponents( m.unit_component ) <> dimensional_exponents( 2, 1, -3, -1, 0, 0, 0 ) THEN + RETURN( FALSE ); + END_IF; + END_IF; + IF 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.ENERGY_MEASURE' IN TYPEOF( m.value_component ) THEN + IF derive_dimensional_exponents( m.unit_component ) <> dimensional_exponents( 2, 1, -2, 0, 0, 0, 0 ) THEN + RETURN( FALSE ); + END_IF; + END_IF; + IF 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.FORCE_MEASURE' IN TYPEOF( m.value_component ) THEN + IF derive_dimensional_exponents( m.unit_component ) <> dimensional_exponents( 1, 1, -2, 0, 0, 0, 0 ) THEN + RETURN( FALSE ); + END_IF; + END_IF; + IF 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.FREQUENCY_MEASURE' IN TYPEOF( m.value_component ) + THEN + IF derive_dimensional_exponents( m.unit_component ) <> dimensional_exponents( 0, 0, -1, 0, 0, 0, 0 ) THEN + RETURN( FALSE ); + END_IF; + END_IF; + IF 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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, 1 ) THEN + RETURN( FALSE ); + END_IF; + END_IF; + IF 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.INDUCTANCE_MEASURE' IN TYPEOF( m.value_component ) + THEN + IF derive_dimensional_exponents( m.unit_component ) <> dimensional_exponents( 2, 1, -2, -2, 0, 0, 0 ) THEN + RETURN( FALSE ); + END_IF; + END_IF; + IF 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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, 1 ) THEN + RETURN( FALSE ); + END_IF; + END_IF; + IF 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MAGNETIC_FLUX_MEASURE' IN TYPEOF( m.value_component ) + THEN + IF derive_dimensional_exponents( m.unit_component ) <> dimensional_exponents( 2, 1, -2, -1, 0, 0, 0 ) THEN + RETURN( FALSE ); + END_IF; + END_IF; + IF 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MAGNETIC_FLUX_DENSITY_MEASURE' IN TYPEOF( m. + value_component ) THEN + IF derive_dimensional_exponents( m.unit_component ) <> dimensional_exponents( 0, 1, -2, -1, 0, 0, 0 ) THEN + RETURN( FALSE ); + END_IF; + END_IF; + IF 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.POWER_MEASURE' IN TYPEOF( m.value_component ) THEN + IF derive_dimensional_exponents( m.unit_component ) <> dimensional_exponents( 2, 1, -3, 0, 0, 0, 0 ) THEN + RETURN( FALSE ); + END_IF; + END_IF; + IF 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PRESSURE_MEASURE' IN TYPEOF( m.value_component ) THEN + IF derive_dimensional_exponents( m.unit_component ) <> dimensional_exponents( -1, 1, -2, 0, 0, 0, 0 ) THEN + RETURN( FALSE ); + END_IF; + END_IF; + IF 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.RESISTANCE_MEASURE' IN TYPEOF( m.value_component ) + THEN + IF derive_dimensional_exponents( m.unit_component ) <> dimensional_exponents( 2, 1, -3, -2, 0, 0, 0 ) THEN + RETURN( FALSE ); + END_IF; + END_IF; + IF 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.VELOCITY_MEASURE' IN TYPEOF( m.value_component ) THEN + IF derive_dimensional_exponents( m.unit_component ) <> dimensional_exponents( 1, 0, -1, 0, 0, 0, 0 ) THEN + RETURN( FALSE ); + END_IF; + END_IF; + IF 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.RADIOACTIVITY_MEASURE' IN TYPEOF( m.value_component ) + THEN + IF derive_dimensional_exponents( m.unit_component ) <> dimensional_exponents( 0, 0, -1, 0, 0, 0, 0 ) THEN + RETURN( FALSE ); + END_IF; + END_IF; + IF 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.ABSORBED_DOSE_MEASURE' IN TYPEOF( m.value_component ) + THEN + IF derive_dimensional_exponents( m.unit_component ) <> dimensional_exponents( 2, 0, -2, 0, 0, 0, 0 ) THEN + RETURN( FALSE ); + END_IF; + END_IF; + IF 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.DOSE_EQUIVALENT_MEASURE' IN TYPEOF( m.value_component ) + THEN + IF derive_dimensional_exponents( m.unit_component ) <> dimensional_exponents( 2, 0, -2, 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( [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LINE', + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CONIC' , + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.B_SPLINE_CURVE' , + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.POLYLINE' ] * TYPEOF( crv ) ) = 1 THEN + RETURN( TRUE ); + ELSE + IF 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CURVE_REPLICA' IN TYPEOF( crv ) THEN + RETURN( valid_wireframe_edge_curve( crv\curve_replica.parent_curve ) ); + ELSE + IF 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CARTESIAN_POINT' IN TYPEOF( pnt ) THEN + RETURN( TRUE ); + ELSE + IF 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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_accuracy_types( + ei : shape_data_quality_criterion; + type_list : BAG OF STRING + ) : LOGICAL; + + LOCAL + sdqca : BAG OF shape_data_quality_criterion_and_accuracy_association := []; + sma : BAG OF shape_measurement_accuracy := []; + sdqir : SET OF shape_data_quality_inspection_result := []; + scraa : BAG OF shape_inspection_result_accuracy_association := []; + t_logic : BOOLEAN; + END_LOCAL; + sdqca := USEDIN( ei, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'SHAPE_DATA_QUALITY_CRITERION_AND_ACCURACY_ASSOCIATION.' + 'SHAPE_DATA_QUALITY_CRITERION' ); + IF SIZEOF( sdqca ) <> 0 THEN + REPEAT i := 1 TO SIZEOF( sdqca ) BY 1; + sma := sma + sdqca[i].required_specific_accuracy; + END_REPEAT; + IF SIZEOF( type_list ) < SIZEOF( sma ) THEN + RETURN( FALSE ); + END_IF; + REPEAT i := 1 TO SIZEOF( sma ) BY 1; + t_logic := FALSE; + REPEAT j := 1 TO SIZEOF( type_list ) BY 1; + IF type_list[j] IN value_limit_type( sma[i].range ) THEN + t_logic := TRUE; + ESCAPE; + END_IF; + END_REPEAT; + IF NOT t_logic THEN + RETURN( FALSE ); + END_IF; + END_REPEAT; + END_IF; + sdqir := QUERY ( q <* bag_to_set( USEDIN( ei, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'DATA_QUALITY_INSPECTION_RESULT.' + 'CRITERION_INSPECTED' ) ) | ( ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'SHAPE_DATA_QUALITY_INSPECTION_RESULT' ) IN + TYPEOF( q ) ) ); + IF SIZEOF( sdqir ) = 0 THEN + RETURN( TRUE ); + END_IF; + REPEAT i := 1 TO SIZEOF( sdqir ) BY 1; + scraa := USEDIN( sdqir[i], 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'SHAPE_INSPECTION_RESULT_ACCURACY_ASSOCIATION.' + 'SHAPE_DATA_QUALITY_RESULT' ); + IF SIZEOF( scraa ) <> 0 THEN + sma := []; + REPEAT j := 1 TO SIZEOF( scraa ) BY 1; + sma := sma + scraa[j].applied_specific_accuracy; + END_REPEAT; + IF SIZEOF( type_list ) < SIZEOF( sma ) THEN + RETURN( FALSE ); + END_IF; + REPEAT j := 1 TO SIZEOF( sma ) BY 1; + t_logic := FALSE; + REPEAT k := 1 TO SIZEOF( type_list ) BY 1; + IF type_list[k] IN value_limit_type( sma[j].range ) THEN + t_logic := TRUE; + ESCAPE; + END_IF; + END_REPEAT; + IF NOT t_logic THEN + RETURN( FALSE ); + END_IF; + END_REPEAT; + END_IF; + END_REPEAT; + RETURN( TRUE ); + + END_FUNCTION; + + FUNCTION validate_attribute_id( + attid : attribute_identifier + ) : BOOLEAN; + + CONSTANT + letters : SET [52 : 52] OF STRING := + [ 'a' , + 'b' , + 'c' , + 'd' , + 'e' , + 'f' , + 'g' , + 'h' , + 'i' , + 'j' , + 'k' , + 'l' , + 'm' , + 'n' , + 'o' , + 'p' , + 'q' , + 'r' , + 's' , + 't' , + 'u' , + 'v' , + 'w' , + 'x' , + 'y' , + 'z' , + 'A' , + 'B' , + 'C' , + 'D' , + 'E' , + 'F' , + 'G' , + 'H' , + 'I' , + 'J' , + 'K' , + 'L' , + 'M' , + 'N' , + 'O' , + 'P' , + 'Q' , + 'R' , + 'S' , + 'T' , + 'U' , + 'V' , + 'W' , + 'X' , + 'Y' , + 'Z' ]; + numbers_etc : SET [15 : 15] OF STRING := + [ '0' , + '1' , + '2' , + '3' , + '4' , + '5' , + '6' , + '7' , + '8' , + '9' , + '_' , + '[' , + ']' , + '.' , + '\' ]; + valid_chars : SET [67 : 67] OF STRING := + letters + + + numbers_etc; + END_CONSTANT; + + LOCAL + id_length : INTEGER := LENGTH( attid ); + id_valid : BOOLEAN := TRUE; + i : INTEGER; + END_LOCAL; + IF NOT ( attid[1] IN letters ) THEN + id_valid := FALSE; + END_IF; + REPEAT i := 2 TO id_length BY 1 WHILE id_valid = TRUE; + IF NOT ( attid[i] IN valid_chars ) THEN + id_valid := FALSE; + END_IF; + END_REPEAT; + RETURN( id_valid ); + + END_FUNCTION; + + FUNCTION validate_countersink_radii( + cskhole : solid_with_stepped_round_hole_and_conical_transitions + ) : BOOLEAN; + + LOCAL + i : INTEGER; + j : INTEGER; + n : INTEGER := 1 + cskhole\solid_with_stepped_round_hole.segments; + smaller : positive_length_measure; + larger : positive_length_measure; + END_LOCAL; + REPEAT i := 1 TO SIZEOF( cskhole.conical_transitions ) BY 1; + 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 + + 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 validate_ecdq_inspected_elements_type( + ei : externally_conditioned_data_quality_criterion; + type_list : BAG OF STRING + ) : LOGICAL; + + LOCAL + sdqir : SET OF externally_conditioned_data_quality_inspection_result := []; + dir : SET OF data_quality_inspection_instance_report := []; + sdiri : SET OF externally_conditioned_data_quality_inspection_instance_report_item := []; + t_type_list : BAG OF STRING := []; + END_LOCAL; + sdqir := QUERY ( q <* bag_to_set( USEDIN( ei, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'DATA_QUALITY_INSPECTION_RESULT.' + 'CRITERION_INSPECTED' ) ) | ( ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'EXTERNALLY_CONDITIONED_DATA_QUALITY_INSPECTION_RESULT' ) IN TYPEOF( q ) ) ); + IF SIZEOF( sdqir ) = 0 THEN + RETURN( TRUE ); + END_IF; + REPEAT i := 1 TO SIZEOF( sdqir ) BY 1; + dir := dir + QUERY ( q <* bag_to_set( USEDIN( sdqir[i], 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'DATA_QUALITY_INSPECTION_REPORT.' + 'INSPECTION_RESULT' ) ) | ( ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'DATA_QUALITY_INSPECTION_INSTANCE_REPORT' ) IN + TYPEOF( q ) ) ); + END_REPEAT; + IF SIZEOF( dir ) = 0 THEN + RETURN( TRUE ); + END_IF; + REPEAT i := 1 TO SIZEOF( dir ) BY 1; + sdiri := sdiri + QUERY ( q <* dir[i].inspected_instances | ( ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'EXTERNALLY_CONDITIONED_DATA_QUALITY_INSPECTION_INSTANCE_REPORT_ITEM' ) IN TYPEOF( q ) ) ); + END_REPEAT; + IF SIZEOF( sdiri ) = 0 THEN + RETURN( TRUE ); + END_IF; + REPEAT i := 1 TO SIZEOF( sdiri ) BY 1; + IF SIZEOF( sdiri[i].inspected_elements ) <> SIZEOF( type_list ) THEN + RETURN( FALSE ); + END_IF; + t_type_list := type_list; + REPEAT j := 1 TO SIZEOF( sdiri[i].inspected_elements ) BY 1; + REPEAT k := 1 TO SIZEOF( t_type_list ) BY 1; + IF t_type_list[k] IN TYPEOF( sdiri[i].inspected_elements[j] ) THEN + t_type_list := t_type_list - t_type_list[k]; + ESCAPE; + END_IF; + END_REPEAT; + END_REPEAT; + IF SIZEOF( t_type_list ) > 0 THEN + RETURN( FALSE ); + END_IF; + END_REPEAT; + RETURN( TRUE ); + + END_FUNCTION; + + FUNCTION validate_inspected_elements_type( + ei : shape_data_quality_criterion; + type_list : BAG OF STRING + ) : LOGICAL; + + LOCAL + sdqir : SET OF shape_data_quality_inspection_result := []; + sdir : SET OF shape_data_quality_inspection_instance_report := []; + sdiri : SET OF shape_data_quality_inspection_instance_report_item := []; + t_type_list : BAG OF STRING := []; + END_LOCAL; + sdqir := QUERY ( q <* bag_to_set( USEDIN( ei, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'DATA_QUALITY_INSPECTION_RESULT.' + 'CRITERION_INSPECTED' ) ) | ( ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'SHAPE_DATA_QUALITY_INSPECTION_RESULT' ) IN + TYPEOF( q ) ) ); + IF SIZEOF( sdqir ) = 0 THEN + RETURN( TRUE ); + END_IF; + REPEAT i := 1 TO SIZEOF( sdqir ) BY 1; + sdir := sdir + QUERY ( q <* bag_to_set( USEDIN( sdqir[i], + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'DATA_QUALITY_INSPECTION_REPORT.' + + 'INSPECTION_RESULT' ) ) | ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'SHAPE_DATA_QUALITY_INSPECTION_INSTANCE_REPORT' ) IN TYPEOF( q ) ) ); + END_REPEAT; + IF SIZEOF( sdir ) = 0 THEN + RETURN( TRUE ); + END_IF; + REPEAT i := 1 TO SIZEOF( sdir ) BY 1; + sdiri := sdiri + QUERY ( q <* sdir[i].inspected_instances | ( ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'SHAPE_DATA_QUALITY_INSPECTION_INSTANCE_REPORT_ITEM' ) IN TYPEOF( q ) ) ); + END_REPEAT; + IF SIZEOF( sdiri ) = 0 THEN + RETURN( TRUE ); + END_IF; + REPEAT i := 1 TO SIZEOF( sdiri ) BY 1; + IF SIZEOF( sdiri[i].inspected_elements ) <> SIZEOF( type_list ) THEN + RETURN( FALSE ); + END_IF; + t_type_list := type_list; + REPEAT j := 1 TO SIZEOF( sdiri[i].inspected_elements ) BY 1; + REPEAT k := 1 TO SIZEOF( t_type_list ) BY 1; + IF t_type_list[k] IN TYPEOF( sdiri[i].inspected_elements[j] ) THEN + t_type_list := t_type_list - t_type_list[k]; + ESCAPE; + END_IF; + END_REPEAT; + END_REPEAT; + IF SIZEOF( t_type_list ) > 0 THEN + RETURN( FALSE ); + END_IF; + END_REPEAT; + RETURN( TRUE ); + + END_FUNCTION; + + FUNCTION validate_locations_of_extreme_value_type( + ei : shape_data_quality_criterion; + type_list : BAG OF STRING + ) : LOGICAL; + + LOCAL + sdqir : SET OF shape_data_quality_inspection_result := []; + sdir : SET OF shape_data_quality_inspection_instance_report := []; + sdei : SET OF instance_report_item_with_extreme_instances := []; + t_type_list : BAG OF STRING := []; + END_LOCAL; + sdqir := QUERY ( q <* bag_to_set( USEDIN( ei, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'DATA_QUALITY_INSPECTION_RESULT.' + 'CRITERION_INSPECTED' ) ) | ( ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'SHAPE_DATA_QUALITY_INSPECTION_RESULT' ) IN + TYPEOF( q ) ) ); + IF SIZEOF( sdqir ) = 0 THEN + RETURN( TRUE ); + END_IF; + REPEAT i := 1 TO SIZEOF( sdqir ) BY 1; + sdir := sdir + QUERY ( q <* bag_to_set( USEDIN( sdqir[i], + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'DATA_QUALITY_INSPECTION_REPORT.' + + 'INSPECTION_RESULT' ) ) | ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'SHAPE_DATA_QUALITY_INSPECTION_INSTANCE_REPORT' ) IN TYPEOF( q ) ) ); + END_REPEAT; + REPEAT i := 1 TO SIZEOF( sdir ) BY 1; + sdei := sdei + QUERY ( q <* sdir[i].inspected_instances | ( ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'INSTANCE_REPORT_ITEM_WITH_EXTREME_INSTANCES' ) + IN TYPEOF( q ) ) ); + END_REPEAT; + IF SIZEOF( sdei ) = 0 THEN + RETURN( TRUE ); + END_IF; + IF ( SIZEOF( type_list ) = 0 ) AND ( SIZEOF( sdei ) <> 0 ) THEN + RETURN( FALSE ); + END_IF; + REPEAT i := 1 TO SIZEOF( sdei ) BY 1; + REPEAT j := 1 TO SIZEOF( sdei[i].extreme_instances ) BY 1; + IF SIZEOF( sdei[i].extreme_instances[j].locations_of_extreme_value ) <> SIZEOF( type_list ) THEN + RETURN( FALSE ); + END_IF; + t_type_list := type_list; + REPEAT k := 1 TO SIZEOF( sdei[i].extreme_instances[j].locations_of_extreme_value ) BY 1; + REPEAT l := 1 TO SIZEOF( t_type_list ) BY 1; + IF t_type_list[l] IN TYPEOF( sdei[i].extreme_instances[j].locations_of_extreme_value[k] ) THEN + t_type_list := t_type_list - t_type_list[l]; + ESCAPE; + END_IF; + END_REPEAT; + END_REPEAT; + IF SIZEOF( t_type_list ) > 0 THEN + RETURN( FALSE ); + END_IF; + END_REPEAT; + END_REPEAT; + RETURN( TRUE ); + + END_FUNCTION; + + FUNCTION validate_measured_data_type( + ei : shape_data_quality_criterion; + type_string : STRING + ) : LOGICAL; + + LOCAL + sdqir : SET OF shape_data_quality_inspection_result := []; + sdcr : SET OF shape_data_quality_inspection_criterion_report := []; + sdir : SET OF shape_data_quality_inspection_instance_report := []; + sdii : SET OF shape_data_quality_inspection_instance_report_item := []; + sdei : BAG OF instance_report_item_with_extreme_instances := []; + END_LOCAL; + sdqir := QUERY ( q <* bag_to_set( USEDIN( ei, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'DATA_QUALITY_INSPECTION_RESULT.' + 'CRITERION_INSPECTED' ) ) | ( ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'SHAPE_DATA_QUALITY_INSPECTION_RESULT' ) IN + TYPEOF( q ) ) ); + IF SIZEOF( sdqir ) = 0 THEN + RETURN( TRUE ); + END_IF; + REPEAT i := 1 TO SIZEOF( sdqir ) BY 1; + sdcr := sdcr + QUERY ( q <* bag_to_set( USEDIN( sdqir[i], + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'DATA_QUALITY_INSPECTION_REPORT.' + + 'INSPECTION_RESULT' ) ) | ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'SHAPE_DATA_QUALITY_INSPECTION_CRITERION_REPORT' ) IN TYPEOF( q ) ) ); + END_REPEAT; + REPEAT i := 1 TO SIZEOF( sdqir ) BY 1; + sdir := sdir + QUERY ( q <* bag_to_set( USEDIN( sdqir[i], + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'DATA_QUALITY_INSPECTION_REPORT.' + + 'INSPECTION_RESULT' ) ) | ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'SHAPE_DATA_QUALITY_INSPECTION_INSTANCE_REPORT' ) IN TYPEOF( q ) ) ); + END_REPEAT; + IF ( SIZEOF( sdcr ) = 0 ) AND ( SIZEOF( sdir ) = 0 ) THEN + RETURN( TRUE ); + END_IF; + REPEAT i := 1 TO SIZEOF( sdir ) BY 1; + sdii := sdii + QUERY ( q <* sdir[i].inspected_instances | ( ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'SHAPE_DATA_QUALITY_INSPECTION_INSTANCE_REPORT_ITEM' ) IN TYPEOF( q ) ) ); + END_REPEAT; + REPEAT i := 1 TO SIZEOF( sdir ) BY 1; + sdei := sdei + QUERY ( q <* sdir[i].inspected_instances | ( ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'INSTANCE_REPORT_ITEM_WITH_EXTREME_INSTANCES' ) + IN TYPEOF( q ) ) ); + END_REPEAT; + REPEAT i := 1 TO SIZEOF( sdcr ) BY 1; + IF NOT ( type_string IN TYPEOF( sdcr[i].representative_measured_value ) ) THEN + RETURN( FALSE ); + END_IF; + END_REPEAT; + REPEAT i := 1 TO SIZEOF( sdii ) BY 1; + IF NOT ( type_string IN TYPEOF( sdii[i].measured_value ) ) THEN + RETURN( FALSE ); + END_IF; + END_REPEAT; + REPEAT i := 1 TO SIZEOF( sdei ) BY 1; + REPEAT j := 1 TO SIZEOF( sdei[i].extreme_instances ) BY 1; + IF NOT ( type_string IN TYPEOF( sdei[i].extreme_instances[j].measured_value ) ) THEN + RETURN( FALSE ); + END_IF; + END_REPEAT; + END_REPEAT; + RETURN( TRUE ); + + END_FUNCTION; + + FUNCTION value_limit_type( + iv : shape_data_quality_value_limit_type_select + ) : SET OF STRING; + + LOCAL + retval : SET OF STRING := []; + END_LOCAL; + IF ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'SHAPE_DATA_QUALITY_VALUE_RANGE' ) IN TYPEOF( iv ) + THEN + retval := TYPEOF( iv\compound_representation_item.item_element[1].value_component ); + END_IF; + IF ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'SHAPE_DATA_QUALITY_VALUE_LIMIT' ) IN TYPEOF( iv ) + THEN + IF ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'MEASURE_WITH_UNIT' ) IN TYPEOF( iv ) THEN + retval := TYPEOF( iv\measure_with_unit.value_component ); + END_IF; + END_IF; + RETURN( retval ); + + END_FUNCTION; + + FUNCTION value_range_aggregate_rep_item( + agg : AGGREGATE OF representation_item + ) : BOOLEAN; + + BEGIN + IF SIZEOF( QUERY ( i1 <* agg | ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 | ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM' IN TYPEOF( i1 ) ) ) ) + = 2 ) OR ( SIZEOF( QUERY ( i2 <* agg | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 | ( ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + + 'MEASURE_REPRESENTATION_ITEM' IN TYPEOF( i1 ) ) AND ( SIZEOF( QUERY ( i2 <* agg | ( ( + 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 values_space_of( + expr : generic_expression + ) : maths_space; + + LOCAL + e_prefix : STRING := 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.'; + typenames : SET OF STRING := TYPEOF( expr ); + END_LOCAL; + IF ( schema_prefix + 'MATHS_VARIABLE' ) IN typenames THEN + RETURN( expr\maths_variable.values_space ); + END_IF; + IF ( e_prefix + 'EXPRESSION' ) IN typenames THEN + IF ( e_prefix + 'NUMERIC_EXPRESSION' ) IN typenames THEN + IF expr\numeric_expression.is_int THEN + IF ( e_prefix + 'INT_LITERAL' ) IN typenames THEN + RETURN( make_finite_space( [expr\int_literal.the_value] ) ); + ELSE + RETURN( the_integers ); + END_IF; + ELSE + IF ( e_prefix + 'REAL_LITERAL' ) IN typenames THEN + RETURN( make_finite_space( [expr\real_literal.the_value] ) ); + ELSE + RETURN( the_reals ); + END_IF; + END_IF; + END_IF; + IF ( e_prefix + 'BOOLEAN_EXPRESSION' ) IN typenames THEN + IF ( e_prefix + 'BOOLEAN_LITERAL' ) IN typenames THEN + RETURN( make_finite_space( [expr\boolean_literal.the_value] ) ); + ELSE + RETURN( the_booleans ); + END_IF; + END_IF; + IF ( e_prefix + 'STRING_EXPRESSION' ) IN typenames THEN + IF ( e_prefix + 'STRING_LITERAL' ) IN typenames THEN + RETURN( make_finite_space( [expr\string_literal.the_value] ) ); + ELSE + RETURN( the_strings ); + END_IF; + END_IF; + RETURN( ? ); + END_IF; + IF ( schema_prefix + 'MATHS_FUNCTION' ) IN typenames THEN + IF expression_is_constant( expr ) THEN + RETURN( make_finite_space( [expr] ) ); + ELSE + RETURN( make_function_space( sc_equal, expr\maths_function.domain, sc_equal, expr\maths_function.range ) ); + END_IF; + END_IF; + IF ( schema_prefix + 'FUNCTION_APPLICATION' ) IN typenames THEN + RETURN( expr\function_application.func.range ); + END_IF; + IF ( schema_prefix + 'MATHS_SPACE' ) IN typenames THEN + IF expression_is_constant( expr ) THEN + RETURN( make_finite_space( [expr] ) ); + ELSE + RETURN( make_elementary_space( es_maths_spaces ) ); + END_IF; + END_IF; + IF ( schema_prefix + 'DEPENDENT_VARIABLE_DEFINITION' ) IN typenames THEN + RETURN( values_space_of( expr\unary_generic_expression.operand ) ); + END_IF; + IF ( schema_prefix + 'COMPLEX_NUMBER_LITERAL' ) IN typenames THEN + RETURN( make_finite_space( [expr] ) ); + END_IF; + IF ( schema_prefix + 'LOGICAL_LITERAL' ) IN typenames THEN + RETURN( make_finite_space( [expr\logical_literal.lit_value] ) ); + END_IF; + IF ( schema_prefix + 'BINARY_LITERAL' ) IN typenames THEN + RETURN( make_finite_space( [expr\binary_literal.lit_value] ) ); + END_IF; + IF ( schema_prefix + 'MATHS_ENUM_LITERAL' ) IN typenames THEN + RETURN( make_finite_space( [expr\maths_enum_literal.lit_value] ) ); + END_IF; + IF ( schema_prefix + 'REAL_TUPLE_LITERAL' ) IN typenames THEN + RETURN( make_finite_space( [expr\real_tuple_literal.lit_value] ) ); + END_IF; + IF ( schema_prefix + 'INTEGER_TUPLE_LITERAL' ) IN typenames THEN + RETURN( make_finite_space( [expr\integer_tuple_literal.lit_value] ) ); + END_IF; + IF ( schema_prefix + 'ATOM_BASED_LITERAL' ) IN typenames THEN + RETURN( make_finite_space( [expr\atom_based_literal.lit_value] ) ); + END_IF; + IF ( schema_prefix + 'MATHS_TUPLE_LITERAL' ) IN typenames THEN + RETURN( make_finite_space( [expr\maths_tuple_literal.lit_value] ) ); + END_IF; + IF ( schema_prefix + 'PARTIAL_DERIVATIVE_EXPRESSION' ) IN typenames THEN + RETURN( drop_numeric_constraints( values_space_of( expr\partial_derivative_expression.derivand ) ) ); + END_IF; + IF ( schema_prefix + 'DEFINITE_INTEGRAL_EXPRESSION' ) IN typenames THEN + RETURN( drop_numeric_constraints( values_space_of( expr\definite_integral_expression.integrand ) ) ); + END_IF; + RETURN( ? ); + + END_FUNCTION; + + FUNCTION vector_difference( + arg1, arg2 : vector_or_direction + ) : vector; + + LOCAL + result : vector; + res : direction; + vec1 : direction; + vec2 : direction; + mag : REAL; + mag1 : REAL; + mag2 : REAL; + ndim : INTEGER; + END_LOCAL; + IF ( NOT EXISTS( arg1 ) ) OR ( NOT EXISTS( arg2 ) ) OR ( arg1.dim <> arg2.dim ) THEN + RETURN( ? ); + ELSE + + BEGIN + IF 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.VECTOR' IN TYPEOF( arg1 ) THEN + mag1 := arg1\vector.magnitude; + vec1 := arg1\vector.orientation; + ELSE + mag1 := 1; + vec1 := arg1; + END_IF; + IF 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.VECTOR' IN TYPEOF( arg2 ) THEN + mag2 := arg2\vector.magnitude; + vec2 := arg2\vector.orientation; + ELSE + mag2 := 1; + vec2 := arg2; + END_IF; + vec1 := normalise( vec1 ); + vec2 := normalise( vec2 ); + ndim := SIZEOF( vec1.direction_ratios ); + mag := 0; + res := dummy_gri || direction( vec1.direction_ratios ); + REPEAT i := 1 TO ndim BY 1; + 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 THEN + result := dummy_gri || vector( res, SQRT( mag ) ); + ELSE + result := dummy_gri || vector( vec1, 0 ); + END_IF; + END; + END_IF; + RETURN( result ); + + END_FUNCTION; + + FUNCTION ypr_index( + ypr : ypr_enumeration + ) : INTEGER; + CASE ypr OF + yaw : RETURN( 1 ); + pitch : RETURN( 2 ); + roll : RETURN( 3 ); + END_CASE; + RETURN( ? ); + + END_FUNCTION; + +END_SCHEMA; diff --git a/data/cd242/242_n2813_mim_lf.exp b/data/ap242/242_n8324_mim_lf.exp similarity index 89% rename from data/cd242/242_n2813_mim_lf.exp rename to data/ap242/242_n8324_mim_lf.exp index 587179b9..feb12b77 100644 --- a/data/cd242/242_n2813_mim_lf.exp +++ b/data/ap242/242_n8324_mim_lf.exp @@ -1,92 +1,166 @@ (* - $Id: mim_lf.exp,v 1.27 2013/10/30 23:30:29 thomasrthurman Exp $ + $Id: mim_lf.exp,v 1.36 2014/05/22 15:53:33 jhaenisch Exp $ ISO TC184/SC4/WG12 N8324 - ISO/TS 10303-442 AP242 managed model based 3d engineering - EXPRESS MIM Long form *) (* ===================================================================================== *) (* Long form schema generated by The EXPRESS Data Manager compiler version 9.8.3B 20121030*) -(* Tue Feb 19 18:44:31 2013 *) +(* Fri Feb 07 11:23:49 2014 *) (* The schema is converted from ISO10303 P11-2003 to ISO10303 P11-1994 *) (* ===================================================================================== *) - - -(* Pretty print generated by the EXPRESS Pretty Printer exppp, +(* + This file was generated by the EXPRESS Pretty Printer exppp, part of STEPcode (formerly NIST's SCL). exppp version: -git commit id: v0.7-241-g5de98bb, build timestamp 30 Oct 2013 16:43 - +git commit id: v0.7-353-g0a46b86, build timestamp 26 Feb 2014 19:15 *) -SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; +(* +patched for bug 4665, 4668, 5004, 5052, 5056, 5057 +link_motion_relationship.WR1 has been commented out. +*) +SCHEMA ap242_managed_model_based_3d_engineering_mim_lf; CONSTANT + schema_date_stamp : STRING := 'Mon Mar 24 10:53:49 2014'; deprecated_constructed_data_types : SET 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']; + [ '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 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' , 'product_category_relationship', 'start_request', - 'start_work' , 'supplied_part_relationship']; + [ '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' , + 'product_category_relationship' , + 'start_request' , + 'start_work' , + 'supplied_part_relationship' ]; deprecated_interfaced_data_types : SET OF STRING := - [ 'document_with_class', 'ordinal_date', - 'product_definition_formation_with_specified_source' , + [ '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( ); + representation_item( '' ) + || + geometric_representation_item( ); dummy_tri : topological_representation_item := - representation_item( '' ) || topological_representation_item( ); + representation_item( '' ) + || + topological_representation_item( ); pre_defined_picture_representation_types : SET [0 : ?] OF STRING := - [ 'JPEG', 'PNG', 'TIFF', 'BMP', 'GIF']; + [ 'JPEG' , + 'PNG' , + 'TIFF' , + 'BMP' , + 'GIF' ]; schema_prefix : STRING := - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.'; + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' ; the_binarys : elementary_space := - make_elementary_space( es_binarys ); + make_elementary_space( + es_binarys ); the_booleans : elementary_space := - make_elementary_space( es_booleans ); + make_elementary_space( + es_booleans ); the_complex_numbers : elementary_space := - make_elementary_space( es_complex_numbers ); + make_elementary_space( + es_complex_numbers ); the_complex_tuples : extended_tuple_space := - make_extended_tuple_space( the_zero_tuple_space, the_complex_numbers ); + make_extended_tuple_space( + the_zero_tuple_space, + the_complex_numbers ); the_empty_maths_tuple : maths_tuple := []; the_empty_space : finite_space := - make_finite_space( [] ); + make_finite_space( + [] ); the_generics : elementary_space := - make_elementary_space( es_generics ); + make_elementary_space( + es_generics ); the_integer_tuples : extended_tuple_space := - make_extended_tuple_space( the_zero_tuple_space, the_integers ); + make_extended_tuple_space( + the_zero_tuple_space, + the_integers ); the_integers : elementary_space := - make_elementary_space( es_integers ); + make_elementary_space( + es_integers ); the_logicals : elementary_space := - make_elementary_space( es_logicals ); + make_elementary_space( + es_logicals ); the_maths_spaces : elementary_space := - make_elementary_space( es_maths_spaces ); + make_elementary_space( + es_maths_spaces ); the_neg1_one_interval : finite_real_interval := - make_finite_real_interval( -1, closed, 1, closed ); + make_finite_real_interval( + - + 1, + closed, + 1, + closed ); the_neghalfpi_halfpi_interval : finite_real_interval := - make_finite_real_interval( ( -0.5 ) * PI, closed, 0.5 * PI, closed ); + make_finite_real_interval( + ( + - + 0.5 ) + * + PI, + closed, + 0.5 + * + PI, + closed ); the_negpi_pi_interval : finite_real_interval := - make_finite_real_interval( -PI, open, PI, closed ); + make_finite_real_interval( + - + PI, + open, + PI, + closed ); the_nonnegative_reals : real_interval_from_min := - make_real_interval_from_min( 0, closed ); + make_real_interval_from_min( + 0, + closed ); the_numbers : elementary_space := - make_elementary_space( es_numbers ); + make_elementary_space( + es_numbers ); the_real_tuples : extended_tuple_space := - make_extended_tuple_space( the_zero_tuple_space, the_reals ); + make_extended_tuple_space( + the_zero_tuple_space, + the_reals ); the_reals : elementary_space := - make_elementary_space( es_reals ); + make_elementary_space( + es_reals ); the_strings : elementary_space := - make_elementary_space( es_strings ); + make_elementary_space( + es_strings ); the_tuples : extended_tuple_space := - make_extended_tuple_space( the_zero_tuple_space, the_generics ); + make_extended_tuple_space( + the_zero_tuple_space, + the_generics ); the_zero_pi_interval : finite_real_interval := - make_finite_real_interval( 0, closed, PI, closed ); + make_finite_real_interval( + 0, + closed, + PI, + closed ); the_zero_tuple_space : listed_product_space := - make_listed_product_space( [] ); + make_listed_product_space( + [] ); END_CONSTANT; TYPE absorbed_dose_measure = REAL; @@ -995,6 +1069,13 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; TYPE csg_primitive = SELECT ( block, bounded_primitive_2d, +(* The following five items have been added to resolve BZ#5057. *) + cyclide_segment_solid, + eccentric_cone, + ellipsoid, + faceted_primitive, + rectangular_pyramid, +(* end of insertion *) right_angular_wedge, right_circular_cone, right_circular_cylinder, @@ -2130,6 +2211,30 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; TYPE luminous_intensity_measure = REAL; END_TYPE; +TYPE machining_feature_definition = SELECT ( + boss, + compound_feature, + externally_defined_feature_definition, + flat_face, + gear, + marking, + outer_round, + outside_profile, + pocket, + protrusion, + removal_volume, + replicate_feature, + revolved_profile, + rib_top, + round_hole, + rounded_end, + spherical_cap, + step, + slot, + thread, + turned_knurl); +END_TYPE; + TYPE magnetic_flux_density_measure = REAL; END_TYPE; @@ -2928,7 +3033,7 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; TYPE second_in_minute = REAL; WHERE - wr1: ( ( 0 <= SELF ) AND ( SELF <= 60 ) ); + wr1: ( ( 0 <= SELF ) AND ( SELF < 60 ) ); END_TYPE; TYPE security_classification_item = SELECT @@ -3474,6 +3579,8 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; END_TYPE; TYPE year_number = INTEGER; + WHERE + wr1: ( SELF > 1581 ); END_TYPE; TYPE ypr_enumeration = ENUMERATION OF @@ -3489,6 +3596,86 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; WHERE in_range: ( ( SELF = 0 ) OR ( SELF = 1 ) ); END_TYPE; + +(* + The following seven ENTITYs have been added to address Bug 5057 for the + initial ed2 version until they can properly be added to the constituent modules. +*) + + ENTITY convex_hexahedron + SUBTYPE OF (faceted_primitive); + WHERE + WR1: SIZEOF(points) = 8; + WR2: above_plane(points[1], points[2], points[3], points[4]) = 0.0; + WR3: above_plane(points[5], points[8], points[7], points[6]) = 0.0; + WR4: above_plane(points[1], points[4], points[8], points[5]) = 0.0; + WR5: above_plane(points[4], points[3], points[7], points[8]) = 0.0; + WR6: above_plane(points[3], points[2], points[6], points[7]) = 0.0; + WR7: above_plane(points[1], points[5], points[6], points[2]) = 0.0; + WR8: same_side([points[1], points[2], points[3]], [points[5], points[6], points[7], points[8]]); + WR9: same_side([points[1], points[4], points[8]], [points[3], points[7], points[6], points[2]]); + WR10: same_side([points[1], points[2], points[5]], [points[3], points[7], points[8], points[4]]); + WR11: same_side([points[5], points[6], points[7]], [points[1], points[2], points[3], points[4]]); + WR12: same_side([points[3], points[7], points[6]], [points[1], points[4], points[8], points[5]]); + WR13: same_side([points[3], points[7], points[8]], [points[1], points[5], points[6], points[2]]); + END_ENTITY; + + ENTITY cyclide_segment_solid + SUBTYPE OF (geometric_representation_item); + position : axis2_placement_3d; + radius1 : positive_length_measure; + radius2 : positive_length_measure; + cone_angle1 : plane_angle_measure; + cone_angle2 : plane_angle_measure; + turn_angle : plane_angle_measure; + END_ENTITY; + + ENTITY eccentric_cone + SUBTYPE OF (geometric_representation_item); + position : axis2_placement_3d; + semi_axis_1 : positive_length_measure; + semi_axis_2 : positive_length_measure; + height : positive_length_measure; + x_offset : length_measure; + y_offset : length_measure; + ratio : REAL; + WHERE + WR1: ratio >= 0.0; + END_ENTITY; + + ENTITY ellipsoid + SUBTYPE OF (geometric_representation_item); + position : axis2_placement_3d; + semi_axis_1 : positive_length_measure; + semi_axis_2 : positive_length_measure; + semi_axis_3 : positive_length_measure; + END_ENTITY; + + ENTITY faceted_primitive + SUPERTYPE OF (ONEOF (tetrahedron, + convex_hexahedron)) + SUBTYPE OF (geometric_representation_item); + points : LIST[4:?] OF UNIQUE cartesian_point; + WHERE + WR1: points[1].dim = 3; + END_ENTITY; + + ENTITY rectangular_pyramid + SUBTYPE OF (geometric_representation_item); + position : axis2_placement_3d; + xlength : positive_length_measure; + ylength : positive_length_measure; + height : positive_length_measure; + END_ENTITY; + + ENTITY tetrahedron + SUBTYPE OF (faceted_primitive); + WHERE + WR1: SIZEOF(points) = 4; + WR2: above_plane(points[1], points[2], points[3], points[4]) <> 0.0; + END_ENTITY; + +(* End of added ENTITYs. JH 2014-05-22 *) ENTITY abrupt_change_of_surface_normal SUBTYPE OF ( geometry_with_local_irregularity ); @@ -3498,7 +3685,7 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; WHERE wr1: validate_measured_data_type( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.BOOLEAN_VALUE' ); wr2: validate_inspected_elements_type( SELF, [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SURFACE'] ); - wr3: validate_locations_of_extreme_value_type( SELF, [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POINT_ON_SURFACE', + wr3: validate_locations_of_extreme_value_type( SELF, [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POINT_ON_SURFACE', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POINT_ON_SURFACE' ] ); wr4: validate_accuracy_types( SELF, [] ); END_ENTITY; @@ -3531,7 +3718,7 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; multiple_arity_generic_expression.operands ); expr : generic_expression := SELF\multiple_arity_generic_expression.operands[1]; WHERE - wr1: ( SIZEOF( QUERY ( operand <* SELF\multiple_arity_generic_expression.operands | ( NOT has_values_space( operand ) ) ) ) + wr1: ( SIZEOF( QUERY ( operand <* SELF\multiple_arity_generic_expression.operands | ( NOT has_values_space( operand ) ) ) ) = 0 ); END_ENTITY; @@ -3567,7 +3754,7 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; DERIVE role : object_role := get_role( SELF ); WHERE - wr1: ( SIZEOF( USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'ROLE_ASSOCIATION.ITEM_WITH_ROLE' ) ) <= + wr1: ( SIZEOF( USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'ROLE_ASSOCIATION.ITEM_WITH_ROLE' ) ) <= 1 ); END_ENTITY; @@ -3630,7 +3817,7 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; DERIVE role : object_role := get_role( SELF ); WHERE - wr1: ( SIZEOF( USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'ROLE_ASSOCIATION.ITEM_WITH_ROLE' ) ) <= + wr1: ( SIZEOF( USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'ROLE_ASSOCIATION.ITEM_WITH_ROLE' ) ) <= 1 ); END_ENTITY; @@ -3641,7 +3828,7 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; description : text := get_description_value( SELF ); name : label := get_name_value( SELF ); WHERE - wr1: ( SIZEOF( USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'DESCRIPTION_ATTRIBUTE.DESCRIBED_ITEM' ) ) + wr1: ( SIZEOF( USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'DESCRIPTION_ATTRIBUTE.DESCRIBED_ITEM' ) ) <= 1 ); wr2: ( SIZEOF( USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'NAME_ATTRIBUTE.NAMED_ITEM' ) ) <= 1 ); END_ENTITY; @@ -3705,8 +3892,8 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; 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( + 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; @@ -3714,77 +3901,77 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; SUBTYPE OF ( shape_representation ); WHERE wr1: ( SIZEOF( QUERY ( it <* SELF.items | ( NOT ( SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'MANIFOLD_SOLID_BREP' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FACETED_BREP', + + 'MANIFOLD_SOLID_BREP' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FACETED_BREP', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MAPPED_ITEM' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'AXIS2_PLACEMENT_3D' ] * TYPEOF( it ) ) = 1 ) ) ) ) = 0 ); - wr2: ( SIZEOF( QUERY ( it <* SELF.items | ( SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MANIFOLD_SOLID_BREP', + wr2: ( SIZEOF( QUERY ( it <* SELF.items | ( SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MANIFOLD_SOLID_BREP', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MAPPED_ITEM' ] * TYPEOF( it ) ) = 1 ) ) ) > 0 ); wr3: ( SIZEOF( QUERY ( msb <* QUERY ( it <* SELF.items | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'MANIFOLD_SOLID_BREP' IN TYPEOF( it ) ) ) | ( NOT ( SIZEOF( QUERY ( csh <* msb_shells( msb ) | ( NOT ( SIZEOF( + + 'MANIFOLD_SOLID_BREP' IN TYPEOF( it ) ) ) | ( NOT ( SIZEOF( QUERY ( csh <* msb_shells( msb ) | ( NOT ( SIZEOF( QUERY ( fcs <* csh\connected_face_set.cfs_faces | ( NOT ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'ADVANCED_FACE' IN TYPEOF( fcs ) ) ) ) ) = 0 ) ) ) ) = 0 ) ) ) ) = 0 ); - wr4: ( SIZEOF( QUERY ( msb <* QUERY ( it <* items | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MANIFOLD_SOLID_BREP' + wr4: ( SIZEOF( QUERY ( msb <* QUERY ( it <* items | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MANIFOLD_SOLID_BREP' IN TYPEOF( it ) ) ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ORIENTED_CLOSED_SHELL' IN TYPEOF( msb\ manifold_solid_brep.outer ) ) ) ) = 0 ); - wr5: ( SIZEOF( QUERY ( brv <* QUERY ( it <* items | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.BREP_WITH_VOIDS' IN - TYPEOF( it ) ) ) | ( NOT ( SIZEOF( QUERY ( csh <* brv\brep_with_voids.voids | csh\oriented_closed_shell.orientation ) ) + wr5: ( SIZEOF( QUERY ( brv <* QUERY ( it <* items | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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 | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MAPPED_ITEM' IN - TYPEOF( it ) ) ) | ( NOT ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ADVANCED_BREP_SHAPE_REPRESENTATION' IN + wr6: ( SIZEOF( QUERY ( mi <* QUERY ( it <* items | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MAPPED_ITEM' IN + TYPEOF( it ) ) ) | ( NOT ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ELEMENTARY_SURFACE', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.B_SPLINE_SURFACE' , + wr1 : ( SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ELEMENTARY_SURFACE', + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.B_SPLINE_SURFACE' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SWEPT_SURFACE' ] * TYPEOF( face_geometry ) ) = 1 ); - wr2 : ( SIZEOF( QUERY ( elp_fbnds <* QUERY ( bnds <* bounds | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EDGE_LOOP' - IN TYPEOF( bnds.bound ) ) ) | ( NOT ( SIZEOF( QUERY ( oe <* elp_fbnds.bound\path.edge_list | ( NOT ( - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EDGE_CURVE' IN TYPEOF( oe\oriented_edge.edge_element ) ) ) ) ) + wr2 : ( SIZEOF( QUERY ( elp_fbnds <* QUERY ( bnds <* bounds | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EDGE_LOOP' + IN TYPEOF( bnds.bound ) ) ) | ( NOT ( SIZEOF( QUERY ( oe <* elp_fbnds.bound\path.edge_list | ( NOT ( + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EDGE_CURVE' IN TYPEOF( oe\oriented_edge.edge_element ) ) ) ) ) = 0 ) ) ) ) = 0 ); - wr3 : ( SIZEOF( QUERY ( elp_fbnds <* QUERY ( bnds <* bounds | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EDGE_LOOP' + wr3 : ( SIZEOF( QUERY ( elp_fbnds <* QUERY ( bnds <* bounds | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EDGE_LOOP' IN TYPEOF( bnds.bound ) ) ) | ( NOT ( SIZEOF( QUERY ( oe <* elp_fbnds.bound\path.edge_list | ( NOT ( SIZEOF( [ - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LINE' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CONIC', + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LINE' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CONIC', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POLYLINE' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'SURFACE_CURVE' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.B_SPLINE_CURVE'] * TYPEOF( oe.edge_element\ edge_curve.edge_geometry ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ); - wr4 : ( SIZEOF( QUERY ( elp_fbnds <* QUERY ( bnds <* bounds | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EDGE_LOOP' - IN TYPEOF( bnds.bound ) ) ) | ( NOT ( SIZEOF( QUERY ( oe <* elp_fbnds.bound\path.edge_list | ( NOT ( ( - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.VERTEX_POINT' IN TYPEOF( oe\edge.edge_start ) ) AND ( + wr4 : ( SIZEOF( QUERY ( elp_fbnds <* QUERY ( bnds <* bounds | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EDGE_LOOP' + IN TYPEOF( bnds.bound ) ) ) | ( NOT ( SIZEOF( QUERY ( oe <* elp_fbnds.bound\path.edge_list | ( NOT ( ( + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.VERTEX_POINT' IN TYPEOF( oe\edge.edge_start ) ) AND ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CARTESIAN_POINT' IN TYPEOF( oe\edge.edge_start\vertex_point. vertex_geometry ) ) AND ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.VERTEX_POINT' IN TYPEOF( oe\edge. edge_end ) ) AND ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CARTESIAN_POINT' IN TYPEOF( oe\edge.edge_end\ vertex_point.vertex_geometry ) ) ) ) ) ) = 0 ) ) ) ) = 0 ); - wr5 : ( SIZEOF( QUERY ( elp_fbnds <* QUERY ( bnds <* bounds | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EDGE_LOOP' - IN TYPEOF( bnds.bound ) ) ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ORIENTED_PATH' IN TYPEOF( + wr5 : ( SIZEOF( QUERY ( elp_fbnds <* QUERY ( bnds <* bounds | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EDGE_LOOP' + IN TYPEOF( bnds.bound ) ) ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ORIENTED_PATH' IN TYPEOF( elp_fbnds.bound ) ) ) ) = 0 ); - wr6 : ( ( NOT ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SWEPT_SURFACE' IN TYPEOF( face_geometry ) ) ) OR ( + wr6 : ( ( NOT ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SWEPT_SURFACE' IN TYPEOF( face_geometry ) ) ) OR ( SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LINE', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'CONIC' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POLYLINE', + + 'CONIC' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POLYLINE', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.B_SPLINE_CURVE' ] * TYPEOF( face_geometry\swept_surface. swept_curve ) ) = 1 ) ); wr7 : ( SIZEOF( QUERY ( vlp_fbnds <* QUERY ( bnds <* bounds | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'VERTEX_LOOP' IN TYPEOF( bnds.bound ) ) ) | ( NOT ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'VERTEX_POINT' IN TYPEOF( vlp_fbnds\face_bound.bound\vertex_loop.loop_vertex ) ) AND ( + + 'VERTEX_POINT' IN TYPEOF( vlp_fbnds\face_bound.bound\vertex_loop.loop_vertex ) ) AND ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EDGE_LOOP', + wr8 : ( SIZEOF( QUERY ( bnd <* bounds | ( NOT ( SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EDGE_LOOP', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.VERTEX_LOOP' ] * TYPEOF( bnd.bound ) ) = 1 ) ) ) ) = 0 ); - wr9 : ( SIZEOF( QUERY ( elp_fbnds <* QUERY ( bnds <* bounds | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EDGE_LOOP' - IN TYPEOF( bnds.bound ) ) ) | ( NOT ( SIZEOF( QUERY ( oe <* elp_fbnds.bound\path.edge_list | ( ( + wr9 : ( SIZEOF( QUERY ( elp_fbnds <* QUERY ( bnds <* bounds | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EDGE_LOOP' + IN TYPEOF( bnds.bound ) ) ) | ( NOT ( SIZEOF( QUERY ( oe <* elp_fbnds.bound\path.edge_list | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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 ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PCURVE' IN TYPEOF( + surface_curve.associated_geometry | ( NOT ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PCURVE' IN TYPEOF( sc_ag ) ) ) ) ) = 0 ) ) ) ) ) = 0 ) ) ) ) = 0 ); - wr10: ( ( ( NOT ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SWEPT_SURFACE' IN TYPEOF( face_geometry ) ) ) OR ( NOT - ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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 | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EDGE_LOOP' IN - TYPEOF( bnds.bound ) ) ) | ( NOT ( SIZEOF( QUERY ( oe <* elp_fbnds.bound\path.edge_list | ( ( + wr10: ( ( ( NOT ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SWEPT_SURFACE' IN TYPEOF( face_geometry ) ) ) OR ( NOT + ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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 | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EDGE_LOOP' IN + TYPEOF( bnds.bound ) ) ) | ( NOT ( SIZEOF( QUERY ( oe <* elp_fbnds.bound\path.edge_list | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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 ) >= + edge_geometry ) ) AND ( NOT ( SIZEOF( oe\oriented_edge.edge_element\edge_curve.edge_geometry\polyline.points ) >= 3 ) ) ) ) ) = 0 ) ) ) ) = 0 ) ); END_ENTITY; @@ -3820,7 +4007,7 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; SUBTYPE OF ( named_unit ); WHERE wr1: ( ( SELF\named_unit.dimensions.length_exponent = 0 ) AND ( SELF\named_unit.dimensions.mass_exponent = 0 ) AND ( SELF\ - named_unit.dimensions.time_exponent = 0 ) AND ( SELF\named_unit.dimensions.electric_current_exponent = 0 ) AND ( + named_unit.dimensions.time_exponent = 0 ) AND ( SELF\named_unit.dimensions.electric_current_exponent = 0 ) AND ( SELF\named_unit.dimensions.thermodynamic_temperature_exponent = 0 ) AND ( SELF\named_unit.dimensions. amount_of_substance_exponent = 1 ) AND ( SELF\named_unit.dimensions.luminous_intensity_exponent = 0 ) ); END_ENTITY; @@ -3838,10 +4025,10 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; SELF\representation_item_relationship.relating_representation_item : orientation_basis_select; SELF\representation_item_relationship.related_representation_item : angle_direction_reference_select; WHERE - wr1: ( ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POINT_PATH' IN TYPEOF( related_representation_item ) ) AND ( - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MIN_AND_MAJOR_PLY_ORIENTATION_BASIS' IN TYPEOF( - relating_representation_item ) ) ) OR ( ( NOT ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POINT_PATH' IN - TYPEOF( related_representation_item ) ) ) AND ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.AXIS2_PLACEMENT_3D' + wr1: ( ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POINT_PATH' IN TYPEOF( related_representation_item ) ) AND ( + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MIN_AND_MAJOR_PLY_ORIENTATION_BASIS' IN TYPEOF( + relating_representation_item ) ) ) OR ( ( NOT ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POINT_PATH' IN + TYPEOF( related_representation_item ) ) ) AND ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.AXIS2_PLACEMENT_3D' IN TYPEOF( relating_representation_item ) ) ) ); END_ENTITY; @@ -3850,7 +4037,7 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; SELF\explicit_constraint.constrained_elements : SET [1 : ?] OF linear_geometry_constraint_element; SELF\explicit_constraint.reference_elements : SET [0 : 1] OF linear_geometry_constraint_element; WHERE - wr1: ( ( SIZEOF( SELF\explicit_constraint.reference_elements ) = 1 ) OR ( ( + wr1: ( ( SIZEOF( SELF\explicit_constraint.reference_elements ) = 1 ) OR ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.AGC_WITH_DIMENSION' IN TYPEOF( SELF ) ) AND ( SIZEOF( SELF\ explicit_constraint.constrained_elements ) = 2 ) ) ); END_ENTITY; @@ -3874,7 +4061,11 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; END_ENTITY; ENTITY annotation_curve_occurrence - SUPERTYPE OF ( ONEOF ( dimension_curve, leader_curve, projection_curve ) ) + SUPERTYPE OF ( + ONEOF ( + dimension_curve, + leader_curve, + projection_curve ) ) SUBTYPE OF ( annotation_occurrence ); SELF\styled_item.item : curve_or_curve_set; END_ENTITY; @@ -3883,11 +4074,11 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; 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 ( ( - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CIRCLE' IN TYPEOF( curve ) ) OR ( - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ELLIPSE' IN TYPEOF( curve ) ) OR ( ( + wr1: ( ( SELF\geometric_representation_item.dim = 3 ) OR ( SIZEOF( QUERY ( curve <* SELF.boundaries | ( NOT ( ( + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CIRCLE' IN TYPEOF( curve ) ) OR ( + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ELLIPSE' IN TYPEOF( curve ) ) OR ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.B_SPLINE_CURVE' IN TYPEOF( curve ) ) AND ( curve\b_spline_curve. - closed_curve = TRUE ) ) OR ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COMPOSITE_CURVE' IN TYPEOF( curve ) ) + closed_curve = TRUE ) ) OR ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COMPOSITE_CURVE' IN TYPEOF( curve ) ) AND ( curve\composite_curve.closed_curve = TRUE ) ) OR ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'POLYLINE' IN TYPEOF( curve ) ) AND ( curve\polyline.points[LOINDEX( curve\polyline.points )] = curve\polyline. points[HIINDEX( curve\polyline.points )] ) ) ) ) ) ) = 0 ) ); @@ -3900,9 +4091,20 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; END_ENTITY; ENTITY annotation_occurrence - SUPERTYPE OF ( ONEOF ( annotation_curve_occurrence, annotation_fill_area_occurrence, annotation_text_occurrence, - annotation_symbol_occurrence ) ANDOR ONEOF ( annotation_curve_occurrence, annotation_fill_area_occurrence, - annotation_plane, annotation_symbol_occurrence, annotation_text_occurrence, tessellated_annotation_occurrence ) ) + SUPERTYPE OF ( + ONEOF ( + annotation_curve_occurrence, + annotation_fill_area_occurrence, + annotation_text_occurrence, + annotation_symbol_occurrence ) + ANDOR + ONEOF ( + annotation_curve_occurrence, + annotation_fill_area_occurrence, + annotation_plane, + annotation_symbol_occurrence, + annotation_text_occurrence, + tessellated_annotation_occurrence ) ) SUBTYPE OF ( styled_item ); WHERE wr1: ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.GEOMETRIC_REPRESENTATION_ITEM' IN TYPEOF( SELF ) ); @@ -3914,7 +4116,7 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; SUBTYPE OF ( annotation_occurrence_relationship ); WHERE wr1: ( SIZEOF( TYPEOF( SELF.related_annotation_occurrence ) * [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'ANNOTATION_FILL_AREA_OCCURRENCE' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROJECTION_CURVE', + + 'ANNOTATION_FILL_AREA_OCCURRENCE' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROJECTION_CURVE', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LEADER_CURVE' ] ) = 1 ); END_ENTITY; @@ -3931,13 +4133,13 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; SELF\styled_item.item : plane_or_planar_box; WHERE wr1: ( SELF\geometric_representation_item.dim = 3 ); - wr2: ( ( NOT ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PLANAR_BOX' ) IN TYPEOF( SELF\styled_item.item ) ) ) + wr2: ( ( NOT ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PLANAR_BOX' ) IN TYPEOF( SELF\styled_item.item ) ) ) OR ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'AXIS2_PLACEMENT_3D' ) IN TYPEOF( SELF\styled_item.item \planar_box.placement ) ) ); - wr3: ( ( ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PLANAR_BOX' ) IN TYPEOF( SELF\styled_item.item ) ) AND + wr3: ( ( ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PLANAR_BOX' ) IN TYPEOF( SELF\styled_item.item ) ) AND ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'CURVE_STYLE' ) IN TYPEOF( SELF\styled_item.styles[1]\ - presentation_style_assignment.styles[1] ) ) ) OR ( ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PLANE' ) - IN TYPEOF( SELF\styled_item.item ) ) AND ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'FILL_AREA_STYLE' ) + presentation_style_assignment.styles[1] ) ) ) OR ( ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PLANE' ) + IN TYPEOF( SELF\styled_item.item ) ) AND ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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 ) ); @@ -3947,7 +4149,7 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; 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 ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.NULL_STYLE' IN + wr2: ( SIZEOF( QUERY ( sty <* SELF.styles | ( NOT ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.NULL_STYLE' IN TYPEOF( sty.styles[1] ) ) ) ) ) = 0 ); wr3: ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ANNOTATION_SYMBOL' IN TYPEOF( SELF.item ) ); wr4: ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DRAUGHTING_SUBFIGURE_REPRESENTATION' IN TYPEOF( SELF.item\ @@ -4003,13 +4205,17 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; INVERSE context_elements : SET [1 : ?] OF application_context_element FOR frame_of_reference; WHERE - wr1: ( SIZEOF( USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'DESCRIPTION_ATTRIBUTE.DESCRIBED_ITEM' ) ) + wr1: ( SIZEOF( USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'DESCRIPTION_ATTRIBUTE.DESCRIBED_ITEM' ) ) <= 1 ); wr2: ( SIZEOF( USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'ID_ATTRIBUTE.IDENTIFIED_ITEM' ) ) <= 1 ); END_ENTITY; ENTITY application_context_element - SUPERTYPE OF ( ONEOF ( product_concept_context, product_context, product_definition_context ) ); + SUPERTYPE OF ( + ONEOF ( + product_concept_context, + product_context, + product_definition_context ) ); name : label; frame_of_reference : application_context; END_ENTITY; @@ -4062,34 +4268,34 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; wr3: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( ( 2 <= SIZEOF( - impl_rep.used_representation.items ) ) AND ( SIZEOF( impl_rep.used_representation.items ) <= 3 ) ) ) ) ) = 0 ) ) ) ) + + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( ( 2 <= SIZEOF( + impl_rep.used_representation.items ) ) AND ( SIZEOF( impl_rep.used_representation.items ) <= 3 ) ) ) ) ) = 0 ) ) ) ) = 0 ); wr4: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( SIZEOF( QUERY ( pdr <* USEDIN( pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) AND ( SIZEOF( QUERY ( srwp_i <* - pdr.used_representation.items | ( NOT ( srwp_i.name IN [ 'orientation', 'effective length', 'maximum length'] ) ) ) ) + + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) AND ( SIZEOF( QUERY ( srwp_i <* + pdr.used_representation.items | ( NOT ( srwp_i.name IN [ 'orientation', 'effective length', 'maximum length'] ) ) ) ) > 0 ) ) ) ) = 0 ) ) ) = 0 ); wr5: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( + + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'MEASURE_REPRESENTATION_ITEM' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * + + 'MEASURE_REPRESENTATION_ITEM' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF( it ) ) = 2 ) AND ( it.name = 'effective length' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) <= 1 ); wr6: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( + + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'MEASURE_REPRESENTATION_ITEM' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * + + 'MEASURE_REPRESENTATION_ITEM' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF( it ) ) = 2 ) AND ( it.name = 'maximum length' ) ) ) ) <= 1 ) ) ) ) = 0 ) ) ) ) = 0 ); wr7: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( - QUERY ( it <* impl_rep.used_representation.items | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLACEMENT' + + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( + QUERY ( it <* impl_rep.used_representation.items | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLACEMENT' IN TYPEOF( it ) ) AND ( it.name = 'orientation' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ); END_ENTITY; @@ -4163,8 +4369,8 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; SUBTYPE OF ( effectivity_assignment ); items : SET [1 : ?] OF effectivity_item; WHERE - wr1: ( SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LOT_EFFECTIVITY', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SERIAL_NUMBERED_EFFECTIVITY' , + wr1: ( SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LOT_EFFECTIVITY', + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SERIAL_NUMBERED_EFFECTIVITY' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_EFFECTIVITY' ] * TYPEOF( SELF. assigned_effectivity ) ) = 0 ); END_ENTITY; @@ -4220,7 +4426,7 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; DERIVE role : object_role := get_role( SELF ); WHERE - wr1: ( SIZEOF( USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'ROLE_ASSOCIATION.ITEM_WITH_ROLE' ) ) <= + wr1: ( SIZEOF( USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'ROLE_ASSOCIATION.ITEM_WITH_ROLE' ) ) <= 1 ); END_ENTITY; @@ -4230,7 +4436,7 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; DERIVE role : object_role := get_role( SELF ); WHERE - wr1: ( SIZEOF( USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'ROLE_ASSOCIATION.ITEM_WITH_ROLE' ) ) <= + wr1: ( SIZEOF( USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'ROLE_ASSOCIATION.ITEM_WITH_ROLE' ) ) <= 1 ); END_ENTITY; @@ -4252,7 +4458,7 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; DERIVE description : text := get_description_value( SELF ); WHERE - wr1: ( SIZEOF( USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'DESCRIPTION_ATTRIBUTE.DESCRIBED_ITEM' ) ) + wr1: ( SIZEOF( USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'DESCRIPTION_ATTRIBUTE.DESCRIBED_ITEM' ) ) <= 1 ); END_ENTITY; @@ -4285,7 +4491,10 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; END_ENTITY; ENTITY array_placement_group - SUPERTYPE OF ( ONEOF ( linear_array_placement_group_component, rectangular_array_placement_group_component ) ) + SUPERTYPE OF ( + ONEOF ( + linear_array_placement_group_component, + rectangular_array_placement_group_component ) ) SUBTYPE OF ( assembly_group_component ); END_ENTITY; @@ -4296,7 +4505,7 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; ENTITY assembly_bond_definition SUBTYPE OF ( shape_aspect ); UNIQUE - ur1 : name; + ur1 : SELF\shape_aspect.name; END_ENTITY; ENTITY assembly_component @@ -4308,8 +4517,14 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; END_ENTITY; ENTITY assembly_component_usage - SUPERTYPE OF ( quantified_assembly_component_usage ANDOR ONEOF ( multi_level_reference_designator, - next_assembly_usage_occurrence, promissory_usage_occurrence, specified_higher_usage_occurrence ) ) + SUPERTYPE OF ( + quantified_assembly_component_usage + ANDOR + ONEOF ( + multi_level_reference_designator, + next_assembly_usage_occurrence, + promissory_usage_occurrence, + specified_higher_usage_occurrence ) ) SUBTYPE OF ( product_definition_usage ); reference_designator : OPTIONAL identifier; END_ENTITY; @@ -4327,7 +4542,10 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; END_ENTITY; ENTITY assembly_geometric_constraint - ABSTRACT SUPERTYPE OF ( ONEOF ( binary_assembly_constraint, fixed_constituent_assembly_constraint ) ) + ABSTRACT SUPERTYPE OF ( + ONEOF ( + binary_assembly_constraint, + fixed_constituent_assembly_constraint ) ) SUBTYPE OF ( explicit_constraint ); END_ENTITY; @@ -4342,14 +4560,14 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; WHERE wr1: ( SELF\product_definition_relationship.related_product_definition :<>: SELF\product_definition_relationship. relating_product_definition ); - wr2: acyclic_product_definition_relationship( SELF, [SELF\product_definition_relationship.related_product_definition], + wr2: acyclic_product_definition_relationship( SELF, [SELF\product_definition_relationship.related_product_definition], 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ASSEMBLY_GROUP_COMPONENT_DEFINITION_PLACEMENT_LINK' ); END_ENTITY; ENTITY assembly_joint SUBTYPE OF ( component_feature_joint ); WHERE - wr1: acyclic_shape_aspect_relationship( SELF, [SELF\shape_aspect_relationship.related_shape_aspect], + wr1: acyclic_shape_aspect_relationship( SELF, [SELF\shape_aspect_relationship.related_shape_aspect], 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'ASSEMBLY_JOINT' ); END_ENTITY; @@ -4453,7 +4671,13 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; END_ENTITY; ENTITY b_spline_curve - SUPERTYPE OF ( ONEOF ( uniform_curve, b_spline_curve_with_knots, quasi_uniform_curve, bezier_curve ) ANDOR + 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; @@ -4463,12 +4687,12 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; self_intersect : LOGICAL; DERIVE upper_index_on_control_points : INTEGER := SIZEOF( control_points_list ) - 1; - control_points : ARRAY [0 : upper_index_on_control_points] OF cartesian_point := list_to_array( + control_points : ARRAY [0 : upper_index_on_control_points] OF cartesian_point := list_to_array( control_points_list, 0, upper_index_on_control_points ); WHERE - wr1: ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.UNIFORM_CURVE' IN TYPEOF( SELF ) ) OR ( - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.QUASI_UNIFORM_CURVE' IN TYPEOF( SELF ) ) OR ( - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.BEZIER_CURVE' IN TYPEOF( SELF ) ) OR ( + wr1: ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.UNIFORM_CURVE' IN TYPEOF( SELF ) ) OR ( + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.QUASI_UNIFORM_CURVE' IN TYPEOF( SELF ) ) OR ( + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.BEZIER_CURVE' IN TYPEOF( SELF ) ) OR ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.B_SPLINE_CURVE_WITH_KNOTS' IN TYPEOF( SELF ) ) ); END_ENTITY; @@ -4514,7 +4738,13 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; END_ENTITY; ENTITY b_spline_surface - SUPERTYPE OF ( ONEOF ( b_spline_surface_with_knots, uniform_surface, quasi_uniform_surface, bezier_surface ) ANDOR + 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; @@ -4527,12 +4757,12 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; DERIVE u_upper : INTEGER := SIZEOF( control_points_list ) - 1; v_upper : INTEGER := SIZEOF( control_points_list[1] ) - 1; - control_points : ARRAY [0 : u_upper] OF ARRAY [0 : v_upper] OF cartesian_point := make_array_of_array( control_points_list, + control_points : ARRAY [0 : u_upper] OF ARRAY [0 : v_upper] OF cartesian_point := make_array_of_array( control_points_list, 0, u_upper, 0, v_upper ); WHERE - wr1: ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.UNIFORM_SURFACE' IN TYPEOF( SELF ) ) OR ( - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.QUASI_UNIFORM_SURFACE' IN TYPEOF( SELF ) ) OR ( - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.BEZIER_SURFACE' IN TYPEOF( SELF ) ) OR ( + wr1: ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.UNIFORM_SURFACE' IN TYPEOF( SELF ) ) OR ( + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.QUASI_UNIFORM_SURFACE' IN TYPEOF( SELF ) ) OR ( + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.BEZIER_SURFACE' IN TYPEOF( SELF ) ) OR ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.B_SPLINE_SURFACE_WITH_KNOTS' IN TYPEOF( SELF ) ) ); END_ENTITY; @@ -4574,9 +4804,9 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; 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, + 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, + 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 ); @@ -4600,35 +4830,35 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; ENTITY barring_hole SUBTYPE OF ( feature_definition ); WHERE - wr1: ( SIZEOF( QUERY ( sa <* get_shape_aspects( SELF ) | ( ( sa.name = 'hole profile' ) AND ( sa.description = - 'closed profile occurrence' ) AND ( SIZEOF( QUERY ( sar <* USEDIN( sa, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT' ) | ( ( + wr1: ( SIZEOF( QUERY ( sa <* get_shape_aspects( SELF ) | ( ( sa.name = 'hole profile' ) AND ( sa.description = + 'closed profile occurrence' ) AND ( SIZEOF( QUERY ( sar <* USEDIN( sa, + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT' ) | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF( sar ) ) AND ( sar. description = 'profile usage' ) AND ( SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'CIRCULAR_CLOSED_PROFILE' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.NGON_CLOSED_PROFILE', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.RECTANGULAR_CLOSED_PROFILE' , - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CLOSED_PATH_PROFILE' ] * TYPEOF( sar.relating_shape_aspect ) ) = + + 'CIRCULAR_CLOSED_PROFILE' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.NGON_CLOSED_PROFILE', + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.RECTANGULAR_CLOSED_PROFILE' , + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CLOSED_PATH_PROFILE' ] * TYPEOF( sar.relating_shape_aspect ) ) = 1 ) ) ) ) = 1 ) ) ) ) = 1 ); - wr2: ( SIZEOF( QUERY ( sa <* get_shape_aspects( SELF ) | ( ( sa.name = 'barring profile' ) AND ( sa.description = - 'closed profile occurrence' ) AND ( SIZEOF( QUERY ( sar <* USEDIN( sa, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT' ) | ( ( + wr2: ( SIZEOF( QUERY ( sa <* get_shape_aspects( SELF ) | ( ( sa.name = 'barring profile' ) AND ( sa.description = + 'closed profile occurrence' ) AND ( SIZEOF( QUERY ( sar <* USEDIN( sa, + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT' ) | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF( sar ) ) AND ( sar. description = 'profile usage' ) ) ) ) = 1 ) ) ) ) = 1 ); - wr3: ( ( SIZEOF( QUERY ( pdr <* get_property_definition_representations( SELF ) | ( + wr3: ( ( SIZEOF( QUERY ( pdr <* get_property_definition_representations( SELF ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. - used_representation ) ) ) ) = 1 ) AND ( SIZEOF( QUERY ( pdr <* get_property_definition_representations( SELF ) | ( + used_representation ) ) ) ) = 1 ) AND ( SIZEOF( QUERY ( pdr <* get_property_definition_representations( SELF ) | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. used_representation ) ) AND ( 1 <= SIZEOF( pdr.used_representation.items ) ) AND ( SIZEOF( pdr.used_representation. items ) <= 2 ) ) ) ) = 1 ) ); - wr4: ( SIZEOF( QUERY ( pdr <* get_property_definition_representations( SELF ) | ( ( + wr4: ( SIZEOF( QUERY ( pdr <* get_property_definition_representations( SELF ) | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. - used_representation ) ) AND ( SIZEOF( QUERY ( i <* pdr.used_representation.items | ( NOT ( i.name IN [ 'orientation', + used_representation ) ) AND ( SIZEOF( QUERY ( i <* pdr.used_representation.items | ( NOT ( i.name IN [ 'orientation', 'base radius' ] ) ) ) ) > 0 ) ) ) ) = 0 ); - wr5: ( SIZEOF( QUERY ( pdr <* get_property_definition_representations( SELF ) | ( ( + wr5: ( SIZEOF( QUERY ( pdr <* get_property_definition_representations( SELF ) | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. used_representation ) ) AND ( SIZEOF( QUERY ( i <* pdr.used_representation.items | ( ( i.name = 'base radius' ) AND - ( SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( i ) ) = 2 ) ) ) ) <> 1 ) ) ) ) + ( SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( i ) ) = 2 ) ) ) ) <> 1 ) ) ) ) = 0 ); END_ENTITY; @@ -4655,48 +4885,48 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; ENTITY bead SUBTYPE OF ( feature_definition ); WHERE - wr1: ( ( SIZEOF( QUERY ( pdr <* get_property_definition_representations( SELF ) | ( + wr1: ( ( SIZEOF( QUERY ( pdr <* get_property_definition_representations( SELF ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. - used_representation ) ) ) ) <= 1 ) AND ( SIZEOF( QUERY ( pdr <* get_property_definition_representations( SELF ) | + used_representation ) ) ) ) <= 1 ) AND ( SIZEOF( QUERY ( pdr <* get_property_definition_representations( SELF ) | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. used_representation ) ) AND ( SIZEOF( pdr.used_representation.items ) > 2 ) ) ) ) = 0 ) ); - wr2: ( SIZEOF( QUERY ( pdr <* get_property_definition_representations( SELF ) | ( ( + wr2: ( SIZEOF( QUERY ( pdr <* get_property_definition_representations( SELF ) | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. - used_representation ) ) AND ( SIZEOF( QUERY ( i <* pdr.used_representation.items | ( NOT ( i.name IN [ 'orientation', + used_representation ) ) AND ( SIZEOF( QUERY ( i <* pdr.used_representation.items | ( NOT ( i.name IN [ 'orientation', 'base radius' ] ) ) ) ) > 0 ) ) ) ) = 0 ); - wr3: ( SIZEOF( QUERY ( pdr <* get_property_definition_representations( SELF ) | ( ( + wr3: ( SIZEOF( QUERY ( pdr <* get_property_definition_representations( SELF ) | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. used_representation ) ) AND ( SIZEOF( QUERY ( i <* pdr.used_representation.items | ( ( i.name = 'base radius' ) AND - ( SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( i ) ) = 2 ) ) ) ) > 1 ) ) ) ) + ( SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( i ) ) = 2 ) ) ) ) > 1 ) ) ) ) = 0 ); - wr4: ( SIZEOF( QUERY ( sa <* get_shape_aspects( SELF ) | ( ( sa.name = 'sweep path' ) AND ( sa.description = - 'path feature component occurrence' ) AND ( SIZEOF( QUERY ( sar <* USEDIN( sa, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT' ) | ( ( + wr4: ( SIZEOF( QUERY ( sa <* get_shape_aspects( SELF ) | ( ( sa.name = 'sweep path' ) AND ( sa.description = + 'path feature component occurrence' ) AND ( SIZEOF( QUERY ( sar <* USEDIN( sa, + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT' ) | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF( sar ) ) AND ( sar. description = 'path feature component usage' ) AND ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PATH_FEATURE_COMPONENT' IN TYPEOF( sar.relating_shape_aspect ) ) ) ) ) = 1 ) ) ) ) = 1 ); - wr5: ( SIZEOF( QUERY ( sa <* get_shape_aspects( SELF ) | ( ( sa.name = 'bead profile' ) AND ( sa.description = - 'open profile occurrence' ) AND ( SIZEOF( QUERY ( sar <* USEDIN( sa, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT' ) | ( ( + wr5: ( SIZEOF( QUERY ( sa <* get_shape_aspects( SELF ) | ( ( sa.name = 'bead profile' ) AND ( sa.description = + 'open profile occurrence' ) AND ( SIZEOF( QUERY ( sar <* USEDIN( sa, + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT' ) | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF( sar ) ) AND ( sar. - description = 'profile usage' ) AND ( SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.OPEN_PATH_PROFILE', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PARTIAL_CIRCULAR_PROFILE' , - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ROUNDED_U_PROFILE' , - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SQUARE_U_PROFILE' , + description = 'profile usage' ) AND ( SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.OPEN_PATH_PROFILE', + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PARTIAL_CIRCULAR_PROFILE' , + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ROUNDED_U_PROFILE' , + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SQUARE_U_PROFILE' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.TEE_PROFILE' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'VEE_PROFILE' ] * TYPEOF( sar.relating_shape_aspect ) ) = 1 ) ) ) ) = 1 ) ) ) ) = 1 ); - wr6: ( SIZEOF( QUERY ( sa <* get_shape_aspects( SELF ) | ( ( sa.name = 'end condition' ) AND ( sa.description = - 'bead end occurrence' ) AND ( SIZEOF( QUERY ( sar <* USEDIN( sa, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + wr6: ( SIZEOF( QUERY ( sa <* get_shape_aspects( SELF ) | ( ( sa.name = 'end condition' ) AND ( sa.description = + 'bead end occurrence' ) AND ( SIZEOF( QUERY ( sar <* USEDIN( sa, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT' ) | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF( sar ) ) AND ( sar.name = 'bead end usage' ) AND ( sar.description = - 'starting' ) AND ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.BEAD_END' IN TYPEOF( sar.relating_shape_aspect ) ) ) ) ) + 'starting' ) AND ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.BEAD_END' IN TYPEOF( sar.relating_shape_aspect ) ) ) ) ) = 1 ) ) ) ) = 1 ); - wr7: ( SIZEOF( QUERY ( sa <* get_shape_aspects( SELF ) | ( ( sa.name = 'end condition' ) AND ( sa.description = - 'bead end occurrence' ) AND ( SIZEOF( QUERY ( sar <* USEDIN( sa, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + wr7: ( SIZEOF( QUERY ( sa <* get_shape_aspects( SELF ) | ( ( sa.name = 'end condition' ) AND ( sa.description = + 'bead end occurrence' ) AND ( SIZEOF( QUERY ( sar <* USEDIN( sa, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT' ) | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF( sar ) ) AND ( sar.name = 'bead end usage' ) AND ( sar.description = - 'ending' ) AND ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.BEAD_END' IN TYPEOF( sar.relating_shape_aspect ) ) ) ) ) + 'ending' ) AND ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.BEAD_END' IN TYPEOF( sar.relating_shape_aspect ) ) ) ) ) = 1 ) ) ) ) = 1 ); END_ENTITY; @@ -4705,28 +4935,28 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; WHERE wr1: ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FEATURE_COMPONENT_DEFINITION' IN TYPEOF( SELF.of_shape.definition ) ); wr2: ( SELF.description IN [ 'linear', 'open', 'radiused'] ); - wr3: ( ( SELF.description <> 'linear' ) XOR ( SIZEOF( QUERY ( pdr <* get_shape_aspect_property_definition_representations( + wr3: ( ( SELF.description <> 'linear' ) XOR ( SIZEOF( QUERY ( pdr <* get_shape_aspect_property_definition_representations( SELF ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. used_representation ) ) ) ) > 0 ) ); - wr4: ( ( SELF.description <> 'linear' ) OR ( SIZEOF( QUERY ( pdr <* get_shape_aspect_property_definition_representations( + wr4: ( ( SELF.description <> 'linear' ) OR ( SIZEOF( QUERY ( pdr <* get_shape_aspect_property_definition_representations( SELF ) | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. used_representation ) ) AND ( SIZEOF( pdr.used_representation.items ) = 2 ) ) ) ) = 1 ) ); - wr5: ( ( SELF.description <> 'linear' ) OR ( SIZEOF( QUERY ( pdr <* get_shape_aspect_property_definition_representations( + wr5: ( ( SELF.description <> 'linear' ) OR ( SIZEOF( QUERY ( pdr <* get_shape_aspect_property_definition_representations( SELF ) | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. - used_representation ) ) AND ( SIZEOF( QUERY ( i <* pdr.used_representation.items | ( ( i.name = 'end length' ) AND - ( SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( i ) ) = 2 ) ) ) ) = 1 ) ) ) ) + used_representation ) ) AND ( SIZEOF( QUERY ( i <* pdr.used_representation.items | ( ( i.name = 'end length' ) AND + ( SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( i ) ) = 2 ) ) ) ) = 1 ) ) ) ) = 1 ) ); - wr6: ( ( SELF.description <> 'linear' ) OR ( SIZEOF( QUERY ( pdr <* get_shape_aspect_property_definition_representations( + wr6: ( ( SELF.description <> 'linear' ) OR ( SIZEOF( QUERY ( pdr <* get_shape_aspect_property_definition_representations( SELF ) | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. - used_representation ) ) AND ( SIZEOF( QUERY ( i <* pdr.used_representation.items | ( ( i.name = 'end shape' ) AND - ( i\descriptive_representation_item.description IN [ 'straight', 'tapered'] ) AND ( - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF( i ) ) ) ) ) = 1 ) ) ) ) + used_representation ) ) AND ( SIZEOF( QUERY ( i <* pdr.used_representation.items | ( ( i.name = 'end shape' ) AND + ( i\descriptive_representation_item.description IN [ 'straight', 'tapered'] ) AND ( + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF( i ) ) ) ) ) = 1 ) ) ) ) = 1 ) ); wr7: ( SIZEOF( QUERY ( sar <* USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'SHAPE_ASPECT_RELATIONSHIP.' - + 'RELATING_SHAPE_ASPECT' ) | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP' - IN TYPEOF( sar ) ) AND ( sar.name = 'bead end usage' ) AND ( sar.description IN [ 'starting', 'ending'] ) AND ( - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.BEAD' IN TYPEOF( sar.related_shape_aspect.of_shape.definition ) ) + + 'RELATING_SHAPE_ASPECT' ) | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP' + IN TYPEOF( sar ) ) AND ( sar.name = 'bead end usage' ) AND ( sar.description IN [ 'starting', 'ending'] ) AND ( + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.BEAD' IN TYPEOF( sar.related_shape_aspect.of_shape.definition ) ) AND ( sar.related_shape_aspect.of_shape.definition\characterized_object.name = 'end condition' ) AND ( sar. related_shape_aspect.of_shape.definition\characterized_object.description = 'bead end occurrence' ) ) ) ) = 1 ); END_ENTITY; @@ -4748,9 +4978,15 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; END_ENTITY; ENTITY binary_assembly_constraint - ABSTRACT SUPERTYPE OF ( ONEOF ( parallel_assembly_constraint, surface_distance_assembly_constraint_with_dimension, - angle_assembly_constraint_with_dimension, perpendicular_assembly_constraint, incidence_assembly_constraint, - coaxial_assembly_constraint, tangent_assembly_constraint ) ) + ABSTRACT SUPERTYPE OF ( + ONEOF ( + parallel_assembly_constraint, + surface_distance_assembly_constraint_with_dimension, + angle_assembly_constraint_with_dimension, + perpendicular_assembly_constraint, + incidence_assembly_constraint, + coaxial_assembly_constraint, + tangent_assembly_constraint ) ) SUBTYPE OF ( assembly_geometric_constraint, representation_relationship_with_transformation ); SELF\representation_relationship.rep_1 : representative_shape_representation; SELF\representation_relationship.rep_2 : representative_shape_representation; @@ -4774,7 +5010,10 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; END_ENTITY; ENTITY binary_boolean_expression - ABSTRACT SUPERTYPE OF ( ONEOF ( xor_expression, equals_expression ) ) + ABSTRACT SUPERTYPE OF ( + ONEOF ( + xor_expression, + equals_expression ) ) SUBTYPE OF ( boolean_expression, binary_generic_expression ); END_ENTITY; @@ -4795,8 +5034,14 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; END_ENTITY; ENTITY binary_numeric_expression - ABSTRACT SUPERTYPE OF ( ONEOF ( minus_expression, div_expression, mod_expression, slash_expression, power_expression, - binary_function_call ) ) + ABSTRACT SUPERTYPE OF ( + ONEOF ( + minus_expression, + div_expression, + mod_expression, + slash_expression, + power_expression, + binary_function_call ) ) SUBTYPE OF ( numeric_expression, binary_generic_expression ); SELF\binary_generic_expression.operands : LIST [2 : 2] OF numeric_expression; END_ENTITY; @@ -4820,8 +5065,15 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; END_ENTITY; ENTITY boolean_expression - ABSTRACT SUPERTYPE OF ( ONEOF ( simple_boolean_expression, unary_boolean_expression, binary_boolean_expression, - multiple_arity_boolean_expression, comparison_expression, interval_expression, boolean_defined_function ) ) + ABSTRACT SUPERTYPE OF ( + ONEOF ( + simple_boolean_expression, + unary_boolean_expression, + binary_boolean_expression, + multiple_arity_boolean_expression, + comparison_expression, + interval_expression, + boolean_defined_function ) ) SUBTYPE OF ( expression ); END_ENTITY; @@ -4857,13 +5109,13 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; wr1 : ( SELF\characterized_object.description IN [ 'circular', 'complex', 'rectangular'] ); wr2 : ( SIZEOF( QUERY ( pds <* QUERY ( pd <* USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PROPERTY_DEFINITION.DEFINITION' ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) | ( NOT ( SIZEOF( QUERY ( sa_occ <* USEDIN( pds, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) | ( ( sa_occ.description = - 'boss height occurrence' ) AND ( SIZEOF( QUERY ( sdr <* QUERY ( sar <* USEDIN( sa_occ, + + 'PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) | ( NOT ( SIZEOF( QUERY ( sa_occ <* USEDIN( pds, + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) | ( ( sa_occ.description = + 'boss height occurrence' ) AND ( SIZEOF( QUERY ( sdr <* QUERY ( sar <* USEDIN( sa_occ, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT' ) | ( ( sar. description = 'path feature component usage' ) AND ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF( sar ) ) ) ) | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'PATH_FEATURE_COMPONENT' IN TYPEOF( sdr.relating_shape_aspect ) ) AND ( sdr.relating_shape_aspect.description + + 'PATH_FEATURE_COMPONENT' IN TYPEOF( sdr.relating_shape_aspect ) ) AND ( sdr.relating_shape_aspect.description = 'linear' ) AND ( sdr.name = 'boss height' ) ) ) ) = 1 ) ) ) ) = 1 ) ) ) ) = 0 ); wr3 : ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( SIZEOF( QUERY ( pdr <* USEDIN( pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' @@ -4873,77 +5125,77 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; wr4 : ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( SIZEOF( QUERY ( pdr <* USEDIN( pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) AND ( SIZEOF( QUERY ( srwp_i <* - pdr.used_representation.items | ( ( srwp_i.name = 'orientation' ) OR ( srwp_i.name = 'fillet radius' ) ) ) ) = + + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) AND ( SIZEOF( QUERY ( srwp_i <* + pdr.used_representation.items | ( ( srwp_i.name = 'orientation' ) OR ( srwp_i.name = 'fillet radius' ) ) ) ) = SIZEOF( pdr.used_representation.items ) ) ) ) ) = 1 ) ) ) = 1 ); wr5 : ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( + + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'MEASURE_REPRESENTATION_ITEM' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * + + 'MEASURE_REPRESENTATION_ITEM' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF( it ) ) = 2 ) AND ( it.name = 'fillet radius' ) ) ) ) <= 1 ) ) ) ) = 0 ) ) ) ) = 0 ); - wr6 : ( ( NOT ( SELF\characterized_object.description = 'circular' ) ) OR ( SIZEOF( QUERY ( pds <* QUERY ( pd <* USEDIN( - SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) | ( NOT ( + wr6 : ( ( NOT ( SELF\characterized_object.description = 'circular' ) ) OR ( SIZEOF( QUERY ( pds <* QUERY ( pd <* USEDIN( + SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) | ( NOT ( SIZEOF( QUERY ( sa_occ <* USEDIN( pds, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) - | ( ( sa_occ.description = 'circular profile occurrence' ) AND ( SIZEOF( QUERY ( sdr <* QUERY ( sar <* USEDIN( - sa_occ, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT' ) | ( ( + | ( ( sa_occ.description = 'circular profile occurrence' ) AND ( SIZEOF( QUERY ( sdr <* QUERY ( sar <* USEDIN( + sa_occ, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT' ) | ( ( sar.description = 'profile usage' ) AND ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF( sar ) ) ) ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'CIRCULAR_CLOSED_PROFILE' IN TYPEOF( sdr.relating_shape_aspect ) ) ) ) = 1 ) ) ) ) = 1 ) ) ) ) = 0 ) ); wr7 : ( SIZEOF( QUERY ( pds <* QUERY ( pd <* USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PROPERTY_DEFINITION.DEFINITION' ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) | ( NOT ( SIZEOF( QUERY ( sa_occ <* USEDIN( pds, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) | ( ( sa_occ.description = - 'top condition occurrence' ) AND ( SIZEOF( QUERY ( fcr <* QUERY ( sar <* USEDIN( sa_occ, + + 'PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) | ( NOT ( SIZEOF( QUERY ( sa_occ <* USEDIN( pds, + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) | ( ( sa_occ.description = + 'top condition occurrence' ) AND ( SIZEOF( QUERY ( fcr <* QUERY ( sar <* USEDIN( sa_occ, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT' ) | ( ( sar. description = 'boss top usage' ) AND ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF( sar ) ) ) ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'BOSS_TOP' IN TYPEOF( fcr.relating_shape_aspect ) ) ) ) = 1 ) ) ) ) = 1 ) ) ) ) = 0 ); - wr8 : ( ( NOT ( SELF\characterized_object.description = 'circular' ) ) OR ( SIZEOF( QUERY ( pds <* QUERY ( pd <* USEDIN( - SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) | ( NOT ( + wr8 : ( ( NOT ( SELF\characterized_object.description = 'circular' ) ) OR ( SIZEOF( QUERY ( pds <* QUERY ( pd <* USEDIN( + SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) | ( NOT ( SIZEOF( QUERY ( sa_occ <* USEDIN( pds, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) - | ( ( sa_occ.description = 'change in diameter occurrence' ) AND ( SIZEOF( QUERY ( fcr <* QUERY ( sar <* USEDIN( - sa_occ, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT' ) | ( ( + | ( ( sa_occ.description = 'change in diameter occurrence' ) AND ( SIZEOF( QUERY ( fcr <* QUERY ( sar <* USEDIN( + sa_occ, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT' ) | ( ( sar.description = 'taper usage' ) AND ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF( sar ) ) ) ) | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'TAPER' IN TYPEOF( fcr.related_shape_aspect ) ) AND ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.BOSS' + + 'TAPER' IN TYPEOF( fcr.related_shape_aspect ) ) AND ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.BOSS' IN TYPEOF( fcr.relating_shape_aspect ) ) ) ) ) = 1 ) ) ) ) <= 1 ) ) ) ) = 0 ) ); - wr9 : ( ( NOT ( SELF\characterized_object.description = 'complex' ) ) OR ( SIZEOF( QUERY ( pds <* QUERY ( pd <* USEDIN( - SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) | ( NOT ( + wr9 : ( ( NOT ( SELF\characterized_object.description = 'complex' ) ) OR ( SIZEOF( QUERY ( pds <* QUERY ( pd <* USEDIN( + SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) | ( NOT ( SIZEOF( QUERY ( sa_occ <* USEDIN( pds, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) - | ( ( sa_occ.description = 'enclosed boundary occurrence' ) AND ( SIZEOF( QUERY ( sdr <* QUERY ( sar <* USEDIN( - sa_occ, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT' ) | ( ( + | ( ( sa_occ.description = 'enclosed boundary occurrence' ) AND ( SIZEOF( QUERY ( sdr <* QUERY ( sar <* USEDIN( + sa_occ, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT' ) | ( ( sar.description = 'profile usage' ) AND ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF( sar ) ) ) ) | ( SIZEOF( [ - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.NGON_CLOSED_PROFILE' , + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.NGON_CLOSED_PROFILE' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CLOSED_PATH_PROFILE' ] * TYPEOF( sdr.relating_shape_aspect ) ) = 1 ) ) ) = 1 ) ) ) ) = 1 ) ) ) ) = 0 ) ); - wr10: ( ( NOT ( SELF\characterized_object.description IN [ 'complex', 'rectangular'] ) ) OR ( SIZEOF( QUERY ( pds <* - QUERY ( pd <* USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | - ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) | ( NOT ( + wr10: ( ( NOT ( SELF\characterized_object.description IN [ 'complex', 'rectangular'] ) ) OR ( SIZEOF( QUERY ( pds <* + QUERY ( pd <* USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | + ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) | ( NOT ( SIZEOF( QUERY ( sa_occ <* USEDIN( pds, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) - | ( ( sa_occ.description = 'change in boundary occurrence' ) AND ( SIZEOF( QUERY ( fcr <* QUERY ( sar <* USEDIN( - sa_occ, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATING_SHAPE_ASPECT' ) | ( ( + | ( ( sa_occ.description = 'change in boundary occurrence' ) AND ( SIZEOF( QUERY ( fcr <* QUERY ( sar <* USEDIN( + sa_occ, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATING_SHAPE_ASPECT' ) | ( ( sar.description = 'taper usage' ) AND ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF( sar ) ) ) ) | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'TAPER' IN TYPEOF( fcr.related_shape_aspect ) ) AND ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.BOSS' - IN TYPEOF( fcr.relating_shape_aspect ) ) AND ( fcr.related_shape_aspect.description IN [ 'angle taper', + + 'TAPER' IN TYPEOF( fcr.related_shape_aspect ) ) AND ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.BOSS' + IN TYPEOF( fcr.relating_shape_aspect ) ) AND ( fcr.related_shape_aspect.description IN [ 'angle taper', 'directed taper' ] ) ) ) ) = 1 ) ) ) ) <= 1 ) ) ) ) = 0 ) ); - wr11: ( ( NOT ( SELF\characterized_object.description = 'rectangular' ) ) OR ( SIZEOF( QUERY ( pds <* QUERY ( pd <* - USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) | ( NOT ( + wr11: ( ( NOT ( SELF\characterized_object.description = 'rectangular' ) ) OR ( SIZEOF( QUERY ( pds <* QUERY ( pd <* + USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) | ( NOT ( SIZEOF( QUERY ( sa_occ <* USEDIN( pds, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) - | ( ( sa_occ.description = 'rectangular profile occurrence' ) AND ( SIZEOF( QUERY ( sdr <* QUERY ( sar <* USEDIN( - sa_occ, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT' ) | ( ( + | ( ( sa_occ.description = 'rectangular profile occurrence' ) AND ( SIZEOF( QUERY ( sdr <* QUERY ( sar <* USEDIN( + sa_occ, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT' ) | ( ( sar.description = 'profile usage' ) AND ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF( sar ) ) ) ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'RECTANGULAR_CLOSED_PROFILE' IN TYPEOF( sdr.relating_shape_aspect ) ) ) ) = 1 ) ) ) ) = 1 ) ) ) ) = 0 ) ); - wr12: ( SIZEOF( QUERY ( pdr <* get_property_definition_representations( SELF ) | ( ( - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANAR_SHAPE_REPRESENTATION' IN TYPEOF( pdr.used_representation ) ) + wr12: ( SIZEOF( QUERY ( pdr <* get_property_definition_representations( SELF ) | ( ( + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANAR_SHAPE_REPRESENTATION' IN TYPEOF( pdr.used_representation ) ) AND ( pdr.used_representation.name = 'maximum feature limit' ) ) ) ) >= 0 ); END_ENTITY; @@ -4952,27 +5204,27 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; WHERE wr1: ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FEATURE_COMPONENT_DEFINITION' IN TYPEOF( SELF.of_shape.definition ) ); wr2: ( SELF.description IN [ 'planar', 'complex'] ); - wr3: ( ( NOT ( SELF.description = 'planar' ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( + wr3: ( ( NOT ( SELF.description = 'planar' ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( pdr <* USEDIN( pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.' - + 'DEFINITION' ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DIRECTION_SHAPE_REPRESENTATION' IN TYPEOF( + + 'DEFINITION' ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DIRECTION_SHAPE_REPRESENTATION' IN TYPEOF( pdr.used_representation ) ) ) ) = 1 ) ) ) ) = 0 ) ); - wr4: ( ( NOT ( SELF.description = 'planar' ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( + wr4: ( ( NOT ( SELF.description = 'planar' ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( pdr <* USEDIN( pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.' - + 'DEFINITION' ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LOCATION_SHAPE_REPRESENTATION' IN TYPEOF( + + 'DEFINITION' ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LOCATION_SHAPE_REPRESENTATION' IN TYPEOF( pdr.used_representation ) ) ) ) = 1 ) ) ) ) = 0 ) ); - wr5: ( ( NOT ( SELF.description = 'complex' ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( + wr5: ( ( NOT ( SELF.description = 'complex' ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( pdr <* USEDIN( pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.' + 'DEFINITION' ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FACE_SHAPE_REPRESENTATION' IN TYPEOF( pdr. used_representation ) ) ) ) = 1 ) ) ) ) = 0 ) ); wr6: ( SIZEOF( QUERY ( fcr <* QUERY ( sar <* USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'SHAPE_ASPECT_RELATIONSHIP.' + 'RELATING_SHAPE_ASPECT' ) | ( ( sar.description = 'boss top usage' ) AND ( sar. name IN [ 'boss height start', 'boss height end'] ) AND ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF( sar ) ) ) ) | ( ( fcr.related_shape_aspect.description = + + 'FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF( sar ) ) ) ) | ( ( fcr.related_shape_aspect.description = 'top condition occurrence' ) AND ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.BOSS' IN TYPEOF( fcr. - related_shape_aspect.of_shape.definition ) ) AND ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.BOSS_TOP' IN + related_shape_aspect.of_shape.definition ) ) AND ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.BOSS_TOP' IN TYPEOF( fcr.relating_shape_aspect ) ) ) ) ) >= 1 ); wr7: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( pdr <* USEDIN( pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' @@ -4986,9 +5238,9 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; wr9: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( + + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'MEASURE_REPRESENTATION_ITEM' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * + + 'MEASURE_REPRESENTATION_ITEM' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF( it ) ) = 2 ) AND ( it.name = 'top radius' ) ) ) ) <= 1 ) ) ) ) = 0 ) ) ) ) = 0 ); END_ENTITY; @@ -4996,7 +5248,7 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; SUBTYPE OF ( environment ); WHERE wr1: ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.BOUND_VARIATIONAL_PARAMETER' IN TYPEOF( SELF\environment. - syntactic_representation ) ) AND ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.INSTANCE_ATTRIBUTE_REFERENCE' + syntactic_representation ) ) AND ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.INSTANCE_ATTRIBUTE_REFERENCE' IN TYPEOF( SELF\environment.semantics ) ) ); END_ENTITY; @@ -5024,7 +5276,14 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; END_ENTITY; ENTITY bounded_curve - SUPERTYPE OF ( ONEOF ( polyline, b_spline_curve, trimmed_curve, bounded_pcurve, bounded_surface_curve, composite_curve ) ) + SUPERTYPE OF ( + ONEOF ( + polyline, + b_spline_curve, + trimmed_curve, + bounded_pcurve, + bounded_surface_curve, + composite_curve ) ) SUBTYPE OF ( curve ); END_ENTITY; @@ -5035,7 +5294,12 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; END_ENTITY; ENTITY bounded_surface - SUPERTYPE OF ( ONEOF ( b_spline_surface, rectangular_trimmed_surface, curve_bounded_surface, rectangular_composite_surface ) ) + SUPERTYPE OF ( + ONEOF ( + b_spline_surface, + rectangular_trimmed_surface, + curve_bounded_surface, + rectangular_composite_surface ) ) SUBTYPE OF ( surface ); END_ENTITY; @@ -5105,7 +5369,10 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; END_ENTITY; ENTITY camera_image - SUPERTYPE OF ( ONEOF ( camera_image_2d_with_scale, camera_image_3d_with_scale ) ) + SUPERTYPE OF ( + ONEOF ( + camera_image_2d_with_scale, + camera_image_3d_with_scale ) ) SUBTYPE OF ( mapped_item ); SELF\mapped_item.mapping_source : camera_usage; SELF\mapped_item.mapping_target : planar_box; @@ -5116,7 +5383,7 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; ENTITY camera_image_2d_with_scale SUBTYPE OF ( camera_image ); DERIVE - scale : positive_ratio_measure := SELF\mapped_item.mapping_target\planar_extent.size_in_x DIV SELF\mapped_item. + scale : positive_ratio_measure := SELF\mapped_item.mapping_target\planar_extent.size_in_x / SELF\mapped_item. mapping_source.mapping_origin\camera_model_d2.view_window\planar_extent.size_in_x; WHERE wr1: ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CAMERA_MODEL_D2' IN TYPEOF( SELF\mapped_item.mapping_source. @@ -5129,7 +5396,7 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; 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 DIV SELF\mapped_item. + 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: ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CAMERA_MODEL_D3' IN TYPEOF( SELF\mapped_item.mapping_source. @@ -5140,20 +5407,23 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; 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 > + 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: ( ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'AXIS2_PLACEMENT_2D' ) IN TYPEOF( SELF\mapped_item. - mapping_target\planar_box.placement ) ) AND ( NOT ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + + mapping_target\planar_box.placement ) ) AND ( NOT ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'AXIS2_PLACEMENT_3D' ) IN TYPEOF( SELF\mapped_item.mapping_target\planar_box.placement ) ) ) ); END_ENTITY; ENTITY camera_model - ABSTRACT SUPERTYPE OF ( ONEOF ( camera_model_d2, camera_model_d3 ) ) + ABSTRACT SUPERTYPE OF ( + ONEOF ( + camera_model_d2, + camera_model_d3 ) ) SUBTYPE OF ( geometric_representation_item ); WHERE - wr1: ( ( SIZEOF( USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'ITEM_DEFINED_TRANSFORMATION.' + - 'TRANSFORM_ITEM_1' ) ) + SIZEOF( USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + + wr1: ( ( SIZEOF( USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'ITEM_DEFINED_TRANSFORMATION.' + + 'TRANSFORM_ITEM_1' ) ) + SIZEOF( USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'REPRESENTATION_MAP.MAPPING_ORIGIN' ) ) ) > 0 ); wr2: ( SIZEOF( USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'STYLED_ITEM.ITEM' ) ) = 0 ); END_ENTITY; @@ -5224,7 +5494,7 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; real_constraint : real_interval; imag_constraint : real_interval; WHERE - wr1: ( min_exists( real_constraint ) OR max_exists( real_constraint ) OR min_exists( imag_constraint ) OR max_exists( + wr1: ( min_exists( real_constraint ) OR max_exists( real_constraint ) OR min_exists( imag_constraint ) OR max_exists( imag_constraint ) ); END_ENTITY; @@ -5234,7 +5504,10 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; END_ENTITY; ENTITY cartesian_transformation_operator - SUPERTYPE OF ( ONEOF ( cartesian_transformation_operator_2d, cartesian_transformation_operator_3d ) ) + 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; @@ -5330,7 +5603,7 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; DERIVE role : object_role := get_role( SELF ); WHERE - wr1: ( SIZEOF( USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'ROLE_ASSOCIATION.ITEM_WITH_ROLE' ) ) <= + wr1: ( SIZEOF( USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'ROLE_ASSOCIATION.ITEM_WITH_ROLE' ) ) <= 1 ); END_ENTITY; @@ -5349,7 +5622,7 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; DERIVE root : representation := nodes[1]; SELF\item_identified_representation_usage.used_representation : representation := nodes[HIINDEX( nodes )]; - directed_link : LIST [1 : ?] OF representation_relationship := get_directed_link( nodes, + directed_link : LIST [1 : ?] OF representation_relationship := get_directed_link( nodes, undirected_link ); leaf : representation := SELF\item_identified_representation_usage.used_representation; WHERE @@ -5362,19 +5635,19 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; wr1: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( pdr <* USEDIN( pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'FACE_SHAPE_REPRESENTATION' IN TYPEOF( pdr.used_representation ) ) AND ( pdr.used_representation.name = + + 'FACE_SHAPE_REPRESENTATION' IN TYPEOF( pdr.used_representation ) ) AND ( pdr.used_representation.name = 'chamfer face' ) ) ) ) <= 1 ) ) ) ) = 0 ); wr2: ( SIZEOF( QUERY ( fcr <* QUERY ( sar <* USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'SHAPE_ASPECT_RELATIONSHIP.RELATING_SHAPE_ASPECT' ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF( sar ) ) ) | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'CHAMFER_OFFSET' IN TYPEOF( fcr.related_shape_aspect ) ) AND ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'CHAMFER' IN TYPEOF( fcr.relating_shape_aspect ) ) AND ( fcr.related_shape_aspect.description = 'first offset' ) ) ) ) + + 'CHAMFER' IN TYPEOF( fcr.relating_shape_aspect ) ) AND ( fcr.related_shape_aspect.description = 'first offset' ) ) ) ) = 1 ); wr3: ( SIZEOF( QUERY ( fcr <* QUERY ( sar <* USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'SHAPE_ASPECT_RELATIONSHIP.RELATING_SHAPE_ASPECT' ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF( sar ) ) ) | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'CHAMFER_OFFSET' IN TYPEOF( fcr.related_shape_aspect ) ) AND ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'CHAMFER' IN TYPEOF( fcr.relating_shape_aspect ) ) AND ( fcr.related_shape_aspect.description = 'second offset' ) ) ) ) + + 'CHAMFER' IN TYPEOF( fcr.relating_shape_aspect ) ) AND ( fcr.related_shape_aspect.description = 'second offset' ) ) ) ) = 1 ); END_ENTITY; @@ -5391,32 +5664,32 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( impl_rep. used_representation.items ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ); - wr4: ( ( NOT ( SELF.description = 'first offset' ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( + wr4: ( ( NOT ( SELF.description = 'first offset' ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( + + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'MEASURE_REPRESENTATION_ITEM' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * + + 'MEASURE_REPRESENTATION_ITEM' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF( it ) ) = 2 ) AND ( it.name = 'offset amount' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ) ); - wr5: ( ( NOT ( SELF.description = 'first offset' ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( + wr5: ( ( NOT ( SELF.description = 'first offset' ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( pdr <* USEDIN( pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.' + 'DEFINITION' ) | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FACE_SHAPE_REPRESENTATION' IN TYPEOF( pdr .used_representation ) ) AND ( pdr.used_representation.name = 'first face shape' ) ) ) ) <= 1 ) ) ) ) = 0 ) ); - wr6: ( ( NOT ( SELF.description = 'second offset' ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( + wr6: ( ( NOT ( SELF.description = 'second offset' ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( + + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( ( SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'MEASURE_REPRESENTATION_ITEM' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * + + 'MEASURE_REPRESENTATION_ITEM' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF( it ) ) = 2 ) AND ( it.name = 'offset amount' ) ) OR ( ( SIZEOF( [ - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM' , + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANE_ANGLE_MEASURE_WITH_UNIT' ] * TYPEOF( it ) ) = 2 ) AND ( it. name = 'offset angle' ) ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ) ); - wr7: ( ( NOT ( SELF.description = 'second offset' ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( + wr7: ( ( NOT ( SELF.description = 'second offset' ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( pdr <* USEDIN( pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.' + 'DEFINITION' ) | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FACE_SHAPE_REPRESENTATION' IN TYPEOF( pdr .used_representation ) ) AND ( pdr.used_representation.name = 'second face shape' ) ) ) ) <= 1 ) ) ) ) = 0 ) ); @@ -5442,7 +5715,11 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; END_ENTITY; ENTITY change_element - ABSTRACT SUPERTYPE OF ( ONEOF ( modify_element, delete_element, add_element ) ) + ABSTRACT SUPERTYPE OF ( + ONEOF ( + modify_element, + delete_element, + add_element ) ) SUBTYPE OF ( group, characterized_object ); END_ENTITY; @@ -5538,7 +5815,7 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; DERIVE root : representation := nodes[1]; SELF\characterized_item_within_representation.rep : representation := nodes[HIINDEX( nodes )]; - directed_link : LIST [1 : ?] OF representation_relationship := get_directed_link( nodes, + directed_link : LIST [1 : ?] OF representation_relationship := get_directed_link( nodes, undirected_link ); leaf : representation := SELF\characterized_item_within_representation.rep; WHERE @@ -5598,15 +5875,15 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; wr4: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( - QUERY ( it <* impl_rep.used_representation.items | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLACEMENT' + + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( + QUERY ( it <* impl_rep.used_representation.items | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLACEMENT' IN TYPEOF( it ) ) AND ( it.name = 'orientation' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ); wr5: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( + + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'MEASURE_REPRESENTATION_ITEM' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * + + 'MEASURE_REPRESENTATION_ITEM' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF( it ) ) = 2 ) AND ( it.name = 'diameter' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ); END_ENTITY; @@ -5620,9 +5897,9 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; WHERE wr1: ( SIZEOF( QUERY ( pds <* QUERY ( pd <* USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PROPERTY_DEFINITION.DEFINITION' ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) | ( NOT ( SIZEOF( QUERY ( sa_occ <* USEDIN( pds, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) | ( SIZEOF( QUERY ( sdr <* - QUERY ( sar <* USEDIN( sa_occ, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.' + + + 'PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) | ( NOT ( SIZEOF( QUERY ( sa_occ <* USEDIN( pds, + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) | ( SIZEOF( QUERY ( sdr <* + QUERY ( sar <* USEDIN( sa_occ, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.' + 'RELATING_SHAPE_ASPECT' ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF( sar ) ) ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT' IN TYPEOF( sdr. related_shape_aspect ) ) ) ) = 1 ) ) ) <= 3 ) ) ) ) = 0 ); @@ -5634,42 +5911,42 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( ( SIZEOF( impl_rep. - used_representation.items ) >= 3 ) AND ( SIZEOF( impl_rep.used_representation.items ) <= 5 ) ) ) ) ) = 0 ) ) ) ) = + used_representation.items ) >= 3 ) AND ( SIZEOF( impl_rep.used_representation.items ) <= 5 ) ) ) ) ) = 0 ) ) ) ) = 0 ); wr4: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( + + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'MEASURE_REPRESENTATION_ITEM' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * + + 'MEASURE_REPRESENTATION_ITEM' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF( it ) ) = 2 ) AND ( it.name = 'diameter' ) ) ) ) <= 1 ) ) ) ) = 0 ) ) ) ) = 0 ); wr5: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( + + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'MEASURE_REPRESENTATION_ITEM' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANE_ANGLE_MEASURE_WITH_UNIT'] + + 'MEASURE_REPRESENTATION_ITEM' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANE_ANGLE_MEASURE_WITH_UNIT'] * TYPEOF( it ) ) = 2 ) AND ( it.name = 'base feature rotation' ) ) ) ) <= 1 ) ) ) ) = 0 ) ) ) ) = 0 ); wr6: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( + + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'MEASURE_REPRESENTATION_ITEM' IN TYPEOF( it ) ) AND ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'COUNT_MEASURE' IN TYPEOF( it\measure_with_unit.value_component ) ) AND ( it.name = 'number of features' ) ) ) ) + + 'COUNT_MEASURE' IN TYPEOF( it\measure_with_unit.value_component ) ) AND ( it.name = 'number of features' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ); wr7: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( + + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'MEASURE_REPRESENTATION_ITEM' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANE_ANGLE_MEASURE_WITH_UNIT'] + + 'MEASURE_REPRESENTATION_ITEM' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANE_ANGLE_MEASURE_WITH_UNIT'] * TYPEOF( it ) ) = 2 ) AND ( it.name = 'angular spacing' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ); wr8: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( - QUERY ( it <* impl_rep.used_representation.items | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLACEMENT' + + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( + QUERY ( it <* impl_rep.used_representation.items | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLACEMENT' IN TYPEOF( it ) ) AND ( it.name = 'orientation' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ); END_ENTITY; @@ -5698,12 +5975,12 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; items : SET [1 : ?] OF class_usage_effectivity_context_item; WHERE wr1: ( SELF.role.name = 'class usage influence' ); - wr2: ( SIZEOF( QUERY ( i <* SELF.items | ( NOT ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION' IN + wr2: ( SIZEOF( QUERY ( i <* SELF.items | ( NOT ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION' IN TYPEOF( i ) ) ) ) ) = 0 ); wr3: ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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 ( + 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 ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_CONCEPT_FEATURE_CATEGORY_USAGE' IN TYPEOF( i ) ) ) ) ) = 0 ) ); END_ENTITY; @@ -5744,8 +6021,8 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; wr4: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( - QUERY ( it <* impl_rep.used_representation.items | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLACEMENT' + + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( + QUERY ( it <* impl_rep.used_representation.items | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLACEMENT' IN TYPEOF( it ) ) AND ( it.name = 'orientation' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ); wr5: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( pdr <* USEDIN( pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' @@ -5767,8 +6044,8 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; SELF\explicit_constraint.reference_elements : SET [0 : 1] OF axial_geometry_constraint_element; WHERE wr1: ( SIZEOF( QUERY ( q <* SELF\explicit_constraint.reference_elements | ( SIZEOF( TYPEOF( q ) * [ - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POINT' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANE', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SPHERICAL_SURFACE' , + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POINT' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANE', + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SPHERICAL_SURFACE' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SPHERE' ] ) > 0 ) ) ) = 0 ); END_ENTITY; @@ -5799,9 +6076,9 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; 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 ( ( - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DATUM' IN TYPEOF( sar.related_shape_aspect ) ) AND ( NOT ( - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COMMON_DATUM' IN TYPEOF( sar.related_shape_aspect ) ) ) ) ) ) ) + wr2: ( SIZEOF( QUERY ( sar <* SELF\composite_shape_aspect.component_relationships | ( NOT ( ( + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DATUM' IN TYPEOF( sar.related_shape_aspect ) ) AND ( NOT ( + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COMMON_DATUM' IN TYPEOF( sar.related_shape_aspect ) ) ) ) ) ) ) = 0 ); END_ENTITY; @@ -5810,18 +6087,25 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; END_ENTITY; ENTITY comparison_expression - ABSTRACT SUPERTYPE OF ( ONEOF ( comparison_equal, comparison_greater, comparison_greater_equal, comparison_less, - comparison_less_equal, comparison_not_equal, like_expression ) ) + ABSTRACT SUPERTYPE OF ( + ONEOF ( + comparison_equal, + comparison_greater, + comparison_greater_equal, + comparison_less, + comparison_less_equal, + comparison_not_equal, + like_expression ) ) SUBTYPE OF ( boolean_expression, binary_generic_expression ); SELF\binary_generic_expression.operands : LIST [2 : 2] OF expression; WHERE wr1: ( ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.NUMERIC_EXPRESSION' IN TYPEOF( SELF\binary_generic_expression. operands[1] ) ) AND ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.NUMERIC_EXPRESSION' IN TYPEOF( SELF\ binary_generic_expression.operands[2] ) ) ) OR ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'BOOLEAN_EXPRESSION' IN TYPEOF( SELF\binary_generic_expression.operands[1] ) ) AND ( + + 'BOOLEAN_EXPRESSION' IN TYPEOF( SELF\binary_generic_expression.operands[1] ) ) AND ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.BOOLEAN_EXPRESSION' IN TYPEOF( SELF\binary_generic_expression. operands[2] ) ) ) OR ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.STRING_EXPRESSION' IN TYPEOF( SELF\ - binary_generic_expression.operands[1] ) ) AND ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.STRING_EXPRESSION' + binary_generic_expression.operands[1] ) ) AND ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.STRING_EXPRESSION' IN TYPEOF( SELF\binary_generic_expression.operands[2] ) ) ) ); END_ENTITY; @@ -5846,7 +6130,10 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; END_ENTITY; ENTITY complex_area - ABSTRACT SUPERTYPE OF ( path_area_with_parameters ANDOR primitive_2d_with_inner_boundary ) + ABSTRACT SUPERTYPE OF ( + path_area_with_parameters + ANDOR + primitive_2d_with_inner_boundary ) SUBTYPE OF ( primitive_2d ); END_ENTITY; @@ -5945,7 +6232,7 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; ENTITY component_mating_constraint_condition SUBTYPE OF ( shape_aspect ); UNIQUE - ur1 : name, of_shape; + ur1 : SELF\shape_aspect.name, SELF\shape_aspect.of_shape; END_ENTITY; ENTITY component_path_shape_aspect @@ -5963,9 +6250,9 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; ENTITY composite_assembly_sequence_definition SUBTYPE OF ( product_definition ); WHERE - wr1: ( SIZEOF( QUERY ( pdr <* USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + - 'PRODUCT_DEFINITION_RELATIONSHIP.' + 'RELATING_PRODUCT_DEFINITION' ) | ( ( - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'NEXT_ASSEMBLY_USAGE_OCCURRENCE' ) IN TYPEOF( pdr ) ) ) ) > + wr1: ( SIZEOF( QUERY ( pdr <* USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + + 'PRODUCT_DEFINITION_RELATIONSHIP.' + 'RELATING_PRODUCT_DEFINITION' ) | ( ( + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'NEXT_ASSEMBLY_USAGE_OCCURRENCE' ) IN TYPEOF( pdr ) ) ) ) > 0 ); END_ENTITY; @@ -5981,12 +6268,13 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; n_segments : INTEGER := SIZEOF( segments ); closed_curve : LOGICAL := segments[n_segments].transition <> discontinuous; WHERE - wr1: ( ( ( NOT closed_curve ) AND ( SIZEOF( QUERY ( temp <* segments | ( temp.transition = discontinuous ) ) ) = 1 ) ) OR + 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 ) + SUPERTYPE OF ( + boundary_curve ) SUBTYPE OF ( composite_curve ); DERIVE basis_surface : SET [0 : 2] OF surface := get_basis_surface( SELF ); @@ -6023,25 +6311,25 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; WHERE wr1: ( SELF\characterized_object.description IN [ 'counterbore', 'countersunk'] ); wr2: ( SIZEOF( QUERY ( pds <* USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) - | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pds ) ) AND ( SIZEOF( - QUERY ( csa <* USEDIN( pds, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) | ( ( - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COMPOSITE_SHAPE_ASPECT' IN TYPEOF( csa ) ) AND ( SIZEOF( + | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pds ) ) AND ( SIZEOF( + QUERY ( csa <* USEDIN( pds, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) | ( ( + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COMPOSITE_SHAPE_ASPECT' IN TYPEOF( csa ) ) AND ( SIZEOF( QUERY ( sar <* csa.component_relationships | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF( sar ) ) AND ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'ROUND_HOLE' IN TYPEOF( sar.related_shape_aspect ) ) ) ) ) = 2 ) ) ) ) = 1 ) ) ) ) = 1 ); - wr3: ( ( NOT ( SELF\characterized_object.description = 'countersunk' ) ) OR ( SIZEOF( QUERY ( pds <* USEDIN( SELF, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( ( - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pds ) ) AND ( SIZEOF( - QUERY ( csa <* USEDIN( pds, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) | ( ( - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COMPOSITE_SHAPE_ASPECT' IN TYPEOF( csa ) ) AND ( SIZEOF( - QUERY ( sar <* csa.component_relationships | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ROUND_HOLE' IN + wr3: ( ( NOT ( SELF\characterized_object.description = 'countersunk' ) ) OR ( SIZEOF( QUERY ( pds <* USEDIN( SELF, + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( ( + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pds ) ) AND ( SIZEOF( + QUERY ( csa <* USEDIN( pds, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) | ( ( + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COMPOSITE_SHAPE_ASPECT' IN TYPEOF( csa ) ) AND ( SIZEOF( + QUERY ( sar <* csa.component_relationships | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ROUND_HOLE' IN TYPEOF( sar.related_shape_aspect ) ) AND ( NOT ( SIZEOF( QUERY ( pds <* QUERY ( pd <* USEDIN( sar. - related_shape_aspect, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) | ( NOT ( SIZEOF( - QUERY ( sa_occ <* USEDIN( pds, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) | ( ( - sa_occ.description = 'change in diameter occurrence' ) AND ( SIZEOF( QUERY ( fcr2 <* QUERY ( sar2 <* USEDIN( sa_occ, + related_shape_aspect, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) | ( NOT ( SIZEOF( + QUERY ( sa_occ <* USEDIN( pds, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) | ( ( + sa_occ.description = 'change in diameter occurrence' ) AND ( SIZEOF( QUERY ( fcr2 <* QUERY ( sar2 <* USEDIN( sa_occ, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATING_SHAPE_ASPECT' ) | ( ( sar2. - description = 'taper usage' ) AND ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP' + description = 'taper usage' ) AND ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF( sar2 ) ) ) ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.TAPER' IN TYPEOF( fcr2. related_shape_aspect ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ) ) ) ) ) = 1 ) ) ) ) = 1 ) ) ) ) = 1 ) ); END_ENTITY; @@ -6051,7 +6339,11 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; END_ENTITY; ENTITY composite_shape_aspect - SUPERTYPE OF ( ONEOF ( continuous_shape_aspect, common_datum, composite_group_shape_aspect ) ) + SUPERTYPE OF ( + ONEOF ( + continuous_shape_aspect, + common_datum, + composite_group_shape_aspect ) ) SUBTYPE OF ( shape_aspect ); INVERSE component_relationships : SET [2 : ?] OF shape_aspect_relationship FOR relating_shape_aspect; @@ -6060,8 +6352,8 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; ENTITY composite_sheet_representation SUBTYPE OF ( shape_representation ); WHERE - wr1: ( SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'GEOMETRICALLY_BOUNDED_SURFACE_SHAPE_REPRESENTATION', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'MANIFOLD_SURFACE_SHAPE_REPRESENTATION'] * TYPEOF( SELF ) ) + wr1: ( SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'GEOMETRICALLY_BOUNDED_SURFACE_SHAPE_REPRESENTATION', + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'MANIFOLD_SURFACE_SHAPE_REPRESENTATION'] * TYPEOF( SELF ) ) = 1 ); END_ENTITY; @@ -6100,41 +6392,48 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; SUBTYPE OF ( feature_definition ); WHERE wr1: ( SIZEOF( QUERY ( pds <* USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) - | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pds ) ) AND ( SIZEOF( + | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pds ) ) AND ( SIZEOF( QUERY ( csa <* USEDIN( pds, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) | ( ( csa. - name = 'compound feature in solid' ) AND ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COMPOSITE_SHAPE_ASPECT' + name = 'compound feature in solid' ) AND ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COMPOSITE_SHAPE_ASPECT' IN TYPEOF( csa ) ) ) ) ) = 1 ) ) ) ) = 1 ); wr2: ( SIZEOF( QUERY ( pds <* USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) - | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pds ) ) AND ( SIZEOF( - QUERY ( csa <* USEDIN( pds, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) | ( + | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pds ) ) AND ( SIZEOF( + QUERY ( csa <* USEDIN( pds, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COMPOSITE_SHAPE_ASPECT' IN TYPEOF( csa ) ) ) ) = 1 ) ) ) ) = 1 ); wr3: ( SIZEOF( QUERY ( pds <* USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) - | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pds ) ) AND ( SIZEOF( - QUERY ( csa <* USEDIN( pds, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) | ( ( - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COMPOSITE_SHAPE_ASPECT' IN TYPEOF( csa ) ) AND ( SIZEOF( + | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pds ) ) AND ( SIZEOF( + QUERY ( csa <* USEDIN( pds, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) | ( ( + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COMPOSITE_SHAPE_ASPECT' IN TYPEOF( csa ) ) AND ( SIZEOF( QUERY ( fcr <* csa.component_relationships | ( NOT ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF( fcr ) ) ) ) ) = 0 ) ) ) ) = 1 ) ) ) ) = 1 ); wr4: ( SIZEOF( QUERY ( pds <* USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) - | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pds ) ) AND ( SIZEOF( - QUERY ( csa <* USEDIN( pds, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) | ( + | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pds ) ) AND ( SIZEOF( + QUERY ( csa <* USEDIN( pds, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COMPOSITE_SHAPE_ASPECT' IN TYPEOF( csa ) ) ) ) = 1 ) ) ) ) = 1 ); wr5: ( SIZEOF( QUERY ( pds <* USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) - | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pds ) ) AND ( SIZEOF( - QUERY ( csa <* USEDIN( pds, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) | ( ( - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COMPOSITE_SHAPE_ASPECT' IN TYPEOF( csa ) ) AND ( SIZEOF( - QUERY ( sar <* csa.component_relationships | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.THREAD' IN TYPEOF( + | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pds ) ) AND ( SIZEOF( + QUERY ( csa <* USEDIN( pds, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) | ( ( + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COMPOSITE_SHAPE_ASPECT' IN TYPEOF( csa ) ) AND ( SIZEOF( + QUERY ( sar <* csa.component_relationships | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.THREAD' IN TYPEOF( sar.related_shape_aspect ) ) ) ) = 0 ) ) ) ) = 1 ) ) ) ) = 1 ); wr6: ( SIZEOF( QUERY ( pds <* USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) - | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pds ) ) AND ( SIZEOF( - QUERY ( csa <* USEDIN( pds, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) | ( ( - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COMPOSITE_SHAPE_ASPECT' IN TYPEOF( csa ) ) AND ( SIZEOF( - QUERY ( sar <* csa.component_relationships | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COMPOUND_FEATURE' + | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pds ) ) AND ( SIZEOF( + QUERY ( csa <* USEDIN( pds, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) | ( ( + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COMPOSITE_SHAPE_ASPECT' IN TYPEOF( csa ) ) AND ( SIZEOF( + QUERY ( sar <* csa.component_relationships | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COMPOUND_FEATURE' IN TYPEOF( sar.related_shape_aspect ) ) AND ( sar.related_shape_aspect\characterized_object.name <> SELF\ characterized_object.name ) ) ) ) = 0 ) ) ) ) = 1 ) ) ) ) = 1 ); END_ENTITY; ENTITY compound_representation_item - SUPERTYPE OF ( ONEOF ( point_and_vector, point_path ) ANDOR ONEOF ( row_representation_item, table_representation_item ) ) + SUPERTYPE OF ( + ONEOF ( + point_and_vector, + point_path ) + ANDOR + ONEOF ( + row_representation_item, + table_representation_item ) ) SUBTYPE OF ( representation_item ); item_element : compound_item_definition; END_ENTITY; @@ -6144,17 +6443,17 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; WHERE wr1: ( ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + - 'EDGE_BASED_WIREFRAME_MODEL' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'FACE_BASED_SURFACE_MODEL', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'MAPPED_ITEM', + wr2: ( SIZEOF( QUERY ( cbsr_i <* SELF.items | ( SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + + 'EDGE_BASED_WIREFRAME_MODEL' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'FACE_BASED_SURFACE_MODEL', + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'MAPPED_ITEM', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'AXIS2_PLACEMENT_3D'] * TYPEOF( cbsr_i ) ) <> 1 ) ) ) = 0 ); - wr3: ( SIZEOF( QUERY ( cbsr_i <* SELF.items | ( SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + - 'EDGE_BASED_WIREFRAME_MODEL' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'FACE_BASED_SURFACE_MODEL', + wr3: ( SIZEOF( QUERY ( cbsr_i <* SELF.items | ( SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + + 'EDGE_BASED_WIREFRAME_MODEL' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'FACE_BASED_SURFACE_MODEL', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'MAPPED_ITEM'] * TYPEOF( cbsr_i ) ) = 1 ) ) ) > 0 ); wr4: ( SIZEOF( QUERY ( cbsr_i <* SELF.items | ( ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'MAPPED_ITEM' ) IN - TYPEOF( cbsr_i ) ) AND ( SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + - 'COMPOUND_SHAPE_REPRESENTATION' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + - 'EDGE_BASED_WIREFRAME_SHAPE_REPRESENTATION' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + + TYPEOF( cbsr_i ) ) AND ( SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + + 'COMPOUND_SHAPE_REPRESENTATION' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + + 'EDGE_BASED_WIREFRAME_SHAPE_REPRESENTATION' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'NON_MANIFOLD_SURFACE_SHAPE_REPRESENTATION' ] * TYPEOF( cbsr_i\mapped_item.mapping_source ) ) <> 1 ) ) ) ) = 0 ); END_ENTITY; @@ -6216,7 +6515,7 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; ur1 : configuration, design; WHERE wr1: ( SIZEOF( USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'NAME_ATTRIBUTE.NAMED_ITEM' ) ) <= 1 ); - wr2: ( SIZEOF( USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'DESCRIPTION_ATTRIBUTE.DESCRIBED_ITEM' ) ) + wr2: ( SIZEOF( USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'DESCRIPTION_ATTRIBUTE.DESCRIBED_ITEM' ) ) <= 1 ); END_ENTITY; @@ -6224,7 +6523,7 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; SUBTYPE OF ( product_definition_effectivity ); configuration : configuration_design; UNIQUE - ur1 : configuration, usage, id; + ur1 : configuration, SELF\product_definition_effectivity.usage, SELF\effectivity.id; WHERE wr1: ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_USAGE' IN TYPEOF( SELF\ product_definition_effectivity.usage ) ); @@ -6260,20 +6559,20 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; wr1: ( ( SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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 ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION' IN - TYPEOF( i ) ) ) OR ( NOT ( i\product_definition.frame_of_reference.name IN [ 'conceptual definition', + wr3: ( SIZEOF( QUERY ( i <* SELF.items | ( ( NOT ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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 | ( ( + wr5: ( ( SELF.role.name <> 'design' ) OR ( SIZEOF( QUERY ( i <* SELF.items | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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 | ( ( + wr6: ( ( SELF.role.name <> 'usage' ) OR ( SIZEOF( QUERY ( i <* SELF.items | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + - 'EFFECTIVITY_CONTEXT_ASSIGNMENT.ASSIGNED_EFFECTIVITY_ASSIGNMENT' ) | ( - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CONFIGURED_EFFECTIVITY_CONTEXT_ASSIGNMENT' IN TYPEOF( x ) ) ) ) + wr8: ( SIZEOF( QUERY ( x <* USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + + 'EFFECTIVITY_CONTEXT_ASSIGNMENT.ASSIGNED_EFFECTIVITY_ASSIGNMENT' ) | ( + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CONFIGURED_EFFECTIVITY_CONTEXT_ASSIGNMENT' IN TYPEOF( x ) ) ) ) = 1 ); END_ENTITY; @@ -6286,7 +6585,12 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; END_ENTITY; ENTITY conic - SUPERTYPE OF ( ONEOF ( circle, ellipse, hyperbola, parabola ) ) + SUPERTYPE OF ( + ONEOF ( + circle, + ellipse, + hyperbola, + parabola ) ) SUBTYPE OF ( curve ); position : axis2_placement; END_ENTITY; @@ -6312,7 +6616,10 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; END_ENTITY; ENTITY connected_face_set - SUPERTYPE OF ( ONEOF ( closed_shell, open_shell ) ) + SUPERTYPE OF ( + ONEOF ( + closed_shell, + open_shell ) ) SUBTYPE OF ( topological_representation_item ); cfs_faces : SET [1 : ?] OF face; END_ENTITY; @@ -6329,7 +6636,7 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; ENTITY connection_zone_interface_plane_relationship SUBTYPE OF ( shape_aspect, shape_aspect_relationship ); UNIQUE - ur1 : name; + ur1 : SELF\shape_aspect_relationship.name; END_ENTITY; ENTITY constant_function @@ -6371,17 +6678,17 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; SUBTYPE OF ( representation ); WHERE wr1: ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.GEOMETRIC_REPRESENTATION_CONTEXT' IN TYPEOF( SELF. - context_of_items ) ) AND ( 2 <= SELF.context_of_items\geometric_representation_context.coordinate_space_dimension ) + context_of_items ) ) AND ( 2 <= SELF.context_of_items\geometric_representation_context.coordinate_space_dimension ) AND ( SELF.context_of_items\geometric_representation_context.coordinate_space_dimension <= 3 ) ); - wr2: ( SIZEOF( QUERY ( cgr_i <* SELF.items | ( SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLACEMENT', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CURVE' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EDGE', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FACE' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POINT', + wr2: ( SIZEOF( QUERY ( cgr_i <* SELF.items | ( SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLACEMENT', + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CURVE' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EDGE', + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FACE' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POINT', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SURFACE' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'FACE_SURFACE' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.VERTEX_POINT'] * TYPEOF( cgr_i ) ) <> 1 ) ) ) + + 'FACE_SURFACE' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.VERTEX_POINT'] * TYPEOF( cgr_i ) ) <> 1 ) ) ) = 0 ); wr3: ( SIZEOF( USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'REPRESENTATION_RELATIONSHIP.REP_2' ) ) > 0 ); - wr4: ( SIZEOF( USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'REPRESENTATION_MAP.MAPPED_REPRESENTATION' ) ) + wr4: ( SIZEOF( USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'REPRESENTATION_MAP.MAPPED_REPRESENTATION' ) ) = 0 ); END_ENTITY; @@ -6390,10 +6697,10 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; 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 ( + wr1: ( ( SELF.rep_1.context_of_items :=: SELF.rep_2.context_of_items ) AND ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.GEOMETRIC_REPRESENTATION_CONTEXT' IN TYPEOF( SELF.rep_1. context_of_items ) ) ); - wr2: ( NOT ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'REPRESENTATION_RELATIONSHIP_WITH_TRANSFORMATION' ) IN + wr2: ( NOT ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'REPRESENTATION_RELATIONSHIP_WITH_TRANSFORMATION' ) IN TYPEOF( SELF ) ) ); END_ENTITY; @@ -6401,21 +6708,21 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; SUBTYPE OF ( representation ); WHERE wr1: ( ( SIZEOF( SELF.items ) = 1 ) AND ( SIZEOF( QUERY ( i <* SELF.items | ( ( SIZEOF( [ - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'MEASURE_REPRESENTATION_ITEM', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'VALUE_RANGE'] * TYPEOF( i ) ) = 1 ) AND ( i.name = + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'MEASURE_REPRESENTATION_ITEM', + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'VALUE_RANGE'] * TYPEOF( i ) ) = 1 ) AND ( i.name = 'ratio value' ) ) ) ) = 1 ) ); - wr2: ( ( SIZEOF( QUERY ( pdr <* USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + + wr2: ( ( SIZEOF( QUERY ( pdr <* USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.' + 'USED_REPRESENTATION' ) | ( pdr\property_definition_representation.name = - 'contact ratio reference' ) ) ) = 1 ) AND ( SIZEOF( QUERY ( pdr <* USEDIN( SELF, + 'contact ratio reference' ) ) ) = 1 ) AND ( SIZEOF( QUERY ( pdr <* USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.' + 'USED_REPRESENTATION' ) - | ( ( pdr\property_definition_representation.name = 'contact ratio reference' ) AND ( ( + | ( ( pdr\property_definition_representation.name = 'contact ratio reference' ) AND ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PRODUCT_DEFINITION' ) IN TYPEOF( pdr\ property_definition_representation.definition\property_definition.definition ) ) ) ) ) = 1 ) ); wr3: ( ( SIZEOF( USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.' + - 'USED_REPRESENTATION' ) ) = 1 ) AND ( SIZEOF( QUERY ( pdr <* USEDIN( SELF, + 'USED_REPRESENTATION' ) ) = 1 ) AND ( SIZEOF( QUERY ( pdr <* USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.' + 'USED_REPRESENTATION' ) - | ( SIZEOF( QUERY ( gpa <* USEDIN( pdr.definition, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + - 'GENERAL_PROPERTY_ASSOCIATION.' + 'DERIVED_DEFINITION' ) | ( ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + | ( SIZEOF( QUERY ( gpa <* USEDIN( pdr.definition, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + + 'GENERAL_PROPERTY_ASSOCIATION.' + 'DERIVED_DEFINITION' ) | ( ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'GENERAL_PROPERTY' ) IN TYPEOF( gpa\general_property_association.base_definition ) ) AND ( gpa\ general_property_association.base_definition\general_property.name = 'surface_condition' ) ) ) ) = 1 ) ) ) = 1 ) ); END_ENTITY; @@ -6440,10 +6747,10 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; SUBTYPE OF ( over_riding_styled_item ); style_context : LIST [1 : ?] OF style_context_select; WHERE - wr1: ( ( SIZEOF( QUERY ( sc <* SELF.style_context | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.REPRESENTATION_ITEM' - IN TYPEOF( sc ) ) ) ) = 1 ) OR ( SIZEOF( QUERY ( sc <* SELF.style_context | ( ( - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MAPPED_ITEM' IN TYPEOF( sc ) ) OR ( - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.REPRESENTATION_RELATIONSHIP' IN TYPEOF( sc ) ) ) ) ) = SIZEOF( + wr1: ( ( SIZEOF( QUERY ( sc <* SELF.style_context | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.REPRESENTATION_ITEM' + IN TYPEOF( sc ) ) ) ) = 1 ) OR ( SIZEOF( QUERY ( sc <* SELF.style_context | ( ( + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MAPPED_ITEM' IN TYPEOF( sc ) ) OR ( + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.REPRESENTATION_RELATIONSHIP' IN TYPEOF( sc ) ) ) ) ) = SIZEOF( style_context ) ) ); END_ENTITY; @@ -6456,7 +6763,7 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; WHERE wr1: ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_RELATIONSHIP' IN TYPEOF( SELF. represented_product_relation.definition ) ); - wr2: ( SIZEOF( USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'DESCRIPTION_ATTRIBUTE.DESCRIBED_ITEM' ) ) + wr2: ( SIZEOF( USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'DESCRIPTION_ATTRIBUTE.DESCRIBED_ITEM' ) ) <= 1 ); wr3: ( SIZEOF( USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'NAME_ATTRIBUTE.NAMED_ITEM' ) ) <= 1 ); END_ENTITY; @@ -6467,7 +6774,10 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; END_ENTITY; ENTITY continuous_shape_aspect - SUPERTYPE OF ( ONEOF ( between_shape_aspect, all_around_shape_aspect ) ) + SUPERTYPE OF ( + ONEOF ( + between_shape_aspect, + all_around_shape_aspect ) ) SUBTYPE OF ( composite_shape_aspect ); END_ENTITY; @@ -6483,7 +6793,7 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; DERIVE role : object_role := get_role( SELF ); WHERE - wr1: ( SIZEOF( USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'ROLE_ASSOCIATION.ITEM_WITH_ROLE' ) ) <= + wr1: ( SIZEOF( USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'ROLE_ASSOCIATION.ITEM_WITH_ROLE' ) ) <= 1 ); END_ENTITY; @@ -6537,11 +6847,11 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; SELF\representation.items : SET [1 : ?] OF csg_2d_shape_select; WHERE wr1: ( SELF.context_of_items\geometric_representation_context.coordinate_space_dimension = 2 ); - wr2: ( SIZEOF( QUERY ( it <* SELF.items | ( ( SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CSG_SOLID'] * - TYPEOF( it ) ) = 1 ) OR ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MAPPED_ITEM' IN TYPEOF( it ) ) AND ( + wr2: ( SIZEOF( QUERY ( it <* SELF.items | ( ( SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CSG_SOLID'] * + TYPEOF( it ) ) = 1 ) OR ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MAPPED_ITEM' IN TYPEOF( it ) ) AND ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'CSG_2D_SHAPE_REPRESENTATION' ) IN TYPEOF( it\mapped_item. mapping_source.mapped_representation ) ) ) ) ) ) >= 1 ); - wr3: ( SIZEOF( QUERY ( it <* SELF.items | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MAPPED_ITEM' IN TYPEOF( it ) ) + wr3: ( SIZEOF( QUERY ( it <* SELF.items | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MAPPED_ITEM' IN TYPEOF( it ) ) AND ( NOT ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'CSG_2D_SHAPE_REPRESENTATION' ) IN TYPEOF( it\ mapped_item.mapping_source.mapped_representation ) ) ) ) ) ) = 0 ); END_ENTITY; @@ -6555,20 +6865,20 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; SUBTYPE OF ( shape_representation ); WHERE wr1: ( SELF.context_of_items\geometric_representation_context.coordinate_space_dimension = 3 ); - wr2: ( SIZEOF( QUERY ( it <* SELF.items | ( SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CSG_SOLID', + wr2: ( SIZEOF( QUERY ( it <* SELF.items | ( SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CSG_SOLID', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MAPPED_ITEM' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'AXIS2_PLACEMENT_3D' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SOLID_REPLICA', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.REVOLVED_FACE_SOLID' , + + 'AXIS2_PLACEMENT_3D' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SOLID_REPLICA', + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.REVOLVED_FACE_SOLID' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EXTRUDED_FACE_SOLID' ] * TYPEOF( it ) ) <> 1 ) ) ) = 0 ); - wr3: ( SIZEOF( QUERY ( mi <* QUERY ( it <* SELF.items | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MAPPED_ITEM' IN + wr3: ( SIZEOF( QUERY ( mi <* QUERY ( it <* SELF.items | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MAPPED_ITEM' IN TYPEOF( it ) ) ) | ( NOT ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CSG_SHAPE_REPRESENTATION' IN TYPEOF( mi \mapped_item.mapping_source.mapped_representation ) ) ) ) ) = 0 ); - wr4: ( SIZEOF( QUERY ( sr <* QUERY ( it <* SELF.items | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SOLID_REPLICA' - IN TYPEOF( it ) ) ) | ( SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CSG_SOLID', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.REVOLVED_FACE_SOLID' , - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EXTRUDED_FACE_SOLID' ] * TYPEOF( sr\solid_replica.parent_solid ) ) + wr4: ( SIZEOF( QUERY ( sr <* QUERY ( it <* SELF.items | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SOLID_REPLICA' + IN TYPEOF( it ) ) ) | ( SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CSG_SOLID', + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.REVOLVED_FACE_SOLID' , + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EXTRUDED_FACE_SOLID' ] * TYPEOF( sr\solid_replica.parent_solid ) ) = 0 ) ) ) = 0 ); - wr5: ( SIZEOF( QUERY ( it <* SELF.items | ( NOT ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.AXIS2_PLACEMENT_3D' IN + wr5: ( SIZEOF( QUERY ( it <* SELF.items | ( NOT ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.AXIS2_PLACEMENT_3D' IN TYPEOF( it ) ) ) ) ) > 0 ); END_ENTITY; @@ -6585,11 +6895,14 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; END_ENTITY; ENTITY currency - ABSTRACT SUPERTYPE OF ( ONEOF ( externally_defined_currency, iso4217_currency ) ) + ABSTRACT SUPERTYPE OF ( + ONEOF ( + externally_defined_currency, + iso4217_currency ) ) SUBTYPE OF ( context_dependent_unit ); WHERE wr1: ( ( SELF\named_unit.dimensions.length_exponent = 0 ) AND ( SELF\named_unit.dimensions.mass_exponent = 0 ) AND ( SELF\ - named_unit.dimensions.time_exponent = 0 ) AND ( SELF\named_unit.dimensions.electric_current_exponent = 0 ) AND ( + named_unit.dimensions.time_exponent = 0 ) AND ( SELF\named_unit.dimensions.electric_current_exponent = 0 ) AND ( SELF\named_unit.dimensions.thermodynamic_temperature_exponent = 0 ) AND ( SELF\named_unit.dimensions. amount_of_substance_exponent = 0 ) AND ( SELF\named_unit.dimensions.luminous_intensity_exponent = 0 ) ); END_ENTITY; @@ -6606,7 +6919,15 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; END_ENTITY; ENTITY curve - SUPERTYPE OF ( ONEOF ( line, conic, pcurve, surface_curve, offset_curve_2d, offset_curve_3d, curve_replica ) ) + SUPERTYPE OF ( + ONEOF ( + line, + conic, + pcurve, + surface_curve, + offset_curve_2d, + offset_curve_3d, + curve_replica ) ) SUBTYPE OF ( geometric_representation_item ); END_ENTITY; @@ -6636,11 +6957,11 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; WHERE wr1: ( ( NOT implicit_outer ) OR ( SIZEOF( QUERY ( temp <* boundaries | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'OUTER_BOUNDARY_CURVE' IN TYPEOF( temp ) ) ) ) = 0 ) ); - wr2: ( ( NOT implicit_outer ) OR ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.BOUNDED_SURFACE' IN TYPEOF( + wr2: ( ( NOT implicit_outer ) OR ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.BOUNDED_SURFACE' IN TYPEOF( basis_surface ) ) ); - wr3: ( SIZEOF( QUERY ( temp <* boundaries | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.OUTER_BOUNDARY_CURVE' IN + wr3: ( SIZEOF( QUERY ( temp <* boundaries | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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 ) ) ) + wr4: ( SIZEOF( QUERY ( temp <* boundaries | ( temp\composite_curve_on_surface.basis_surface[1] <> SELF.basis_surface ) ) ) = 0 ); END_ENTITY; @@ -6654,7 +6975,7 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; SELF\explicit_constraint.reference_elements : SET [0 : 4] OF point_curve_or_surface_constraint_element; near_points : SET [0 : 4] OF near_point_relationship; WHERE - wr1: ( ( SIZEOF( SELF\explicit_constraint.reference_elements ) > 0 ) OR ( ( + wr1: ( ( SIZEOF( SELF\explicit_constraint.reference_elements ) > 0 ) OR ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CDGC_WITH_DIMENSION' IN TYPEOF( SELF ) ) AND ( SIZEOF( SELF\ explicit_constraint.constrained_elements ) = 2 ) ) ); wr2: ( SIZEOF( near_points ) <= SIZEOF( SELF\explicit_constraint.reference_elements ) ); @@ -6737,17 +7058,17 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; SUBTYPE OF ( shape_representation ); WHERE wr1: ( SIZEOF( QUERY ( it <* SELF.items | ( NOT ( SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'SWEPT_AREA_SOLID' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SWEPT_DISK_SOLID', + + 'SWEPT_AREA_SOLID' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SWEPT_DISK_SOLID', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MAPPED_ITEM' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'AXIS2_PLACEMENT_3D' ] * TYPEOF( it ) ) = 1 ) ) ) ) = 0 ); - wr2: ( SIZEOF( QUERY ( it <* SELF.items | ( SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SWEPT_AREA_SOLID', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SWEPT_DISK_SOLID' , + wr2: ( SIZEOF( QUERY ( it <* SELF.items | ( SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SWEPT_AREA_SOLID', + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SWEPT_DISK_SOLID' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MAPPED_ITEM' ] * TYPEOF( it ) ) = 1 ) ) ) > 0 ); - wr3: ( SIZEOF( QUERY ( mi <* QUERY ( it <* items | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MAPPED_ITEM' IN - TYPEOF( it ) ) ) | ( NOT ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CURVE_SWEPT_SOLID_SHAPE_REPRESENTATION' + wr3: ( SIZEOF( QUERY ( mi <* QUERY ( it <* items | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MAPPED_ITEM' IN + TYPEOF( it ) ) ) | ( NOT ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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 | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'SURFACE_CURVE_SWEPT_AREA_SOLID' IN TYPEOF( it ) ) ) | ( NOT ( ( + + 'SURFACE_CURVE_SWEPT_AREA_SOLID' IN TYPEOF( it ) ) ) | ( NOT ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SURFACE_CURVE' IN TYPEOF( scsas\surface_curve_swept_area_solid. directrix ) ) OR ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PCURVE' IN TYPEOF( scsas\ surface_curve_swept_area_solid.directrix ) ) ) ) ) ) = 0 ); @@ -6758,11 +7079,11 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; WHERE wr1: ( ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' ) IN TYPEOF( SELF\ - shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold ) ) + shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold ) ) AND ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COUNT_MEASURE' IN value_limit_type( SELF\ shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold ) ) ); wr2: validate_measured_data_type( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COUNT_MEASURE' ); - wr3: validate_inspected_elements_type( SELF, [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + + wr3: validate_inspected_elements_type( SELF, [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'B_SPLINE_OR_COMPOSITE_CURVE_SELECT' ] ); wr4: validate_locations_of_extreme_value_type( SELF, [] ); wr5: validate_accuracy_types( SELF, [] ); @@ -6773,7 +7094,7 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; WHERE wr1: ( ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'SHAPE_DATA_QUALITY_UPPER_VALUE_LIMIT' ) IN TYPEOF( SELF\ - shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold ) ) + shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold ) ) AND ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE' IN value_limit_type( SELF\ shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold ) ) ); wr2: validate_measured_data_type( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE' ); @@ -6807,9 +7128,9 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; lower_limit_actual_rotation : OPTIONAL plane_angle_measure; upper_limit_actual_rotation : OPTIONAL plane_angle_measure; WHERE - wr1: ( ( ( NOT EXISTS( lower_limit_actual_translation ) ) OR ( NOT EXISTS( upper_limit_actual_translation ) ) ) XOR ( + wr1: ( ( ( NOT EXISTS( lower_limit_actual_translation ) ) OR ( NOT EXISTS( upper_limit_actual_translation ) ) ) XOR ( lower_limit_actual_translation < upper_limit_actual_translation ) ); - wr2: ( ( ( NOT EXISTS( lower_limit_actual_rotation ) ) OR ( NOT EXISTS( upper_limit_actual_rotation ) ) ) XOR ( + wr2: ( ( ( NOT EXISTS( lower_limit_actual_rotation ) ) OR ( NOT EXISTS( upper_limit_actual_rotation ) ) ) XOR ( lower_limit_actual_rotation < upper_limit_actual_rotation ) ); END_ENTITY; @@ -6821,7 +7142,7 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; ENTITY cylindricity_tolerance SUBTYPE OF ( geometric_tolerance ); WHERE - wr1: ( NOT ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'GEOMETRIC_TOLERANCE_WITH_DATUM_REFERENCE' ) IN + wr1: ( NOT ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'GEOMETRIC_TOLERANCE_WITH_DATUM_REFERENCE' ) IN TYPEOF( SELF ) ) ); END_ENTITY; @@ -6846,7 +7167,7 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; ENTITY data_quality_criteria_representation SUBTYPE OF ( representation ); WHERE - wr1: ( SIZEOF( QUERY ( q <* SELF\representation.items | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + + wr1: ( SIZEOF( QUERY ( q <* SELF\representation.items | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'DATA_QUALITY_CRITERION' ) IN TYPEOF( q ) ) ) ) > 0 ); END_ENTITY; @@ -6854,7 +7175,7 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; SUBTYPE OF ( representation_item ); WHERE wr1: ( SIZEOF( QUERY ( q <* bag_to_set( USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.REPRESENTATION.ITEMS' ) ) - | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'DATA_QUALITY_INSPECTION_RESULT_REPRESENTATION' ) IN + | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'DATA_QUALITY_INSPECTION_RESULT_REPRESENTATION' ) IN TYPEOF( q ) ) ) ) = 0 ); END_ENTITY; @@ -6889,7 +7210,7 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; SUBTYPE OF ( data_quality_inspection_report ); statistical_values : SET [1 : 2] OF data_quality_inspection_criterion_report_item; WHERE - wr1: ( SIZEOF( QUERY ( i1 <* bag_to_set( USEDIN( SELF\data_quality_inspection_report.inspection_result.criterion_inspected, + wr1: ( SIZEOF( QUERY ( i1 <* bag_to_set( USEDIN( SELF\data_quality_inspection_report.inspection_result.criterion_inspected, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'DATA_QUALITY_REPORT_REQUEST.CRITERION_OF_REPORT_REQUEST' ) ) | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'SUMMARY_REPORT_REQUEST' ) IN TYPEOF( i1 ) ) ) ) > 0 ); wr2: ( ( SIZEOF( SELF.statistical_values ) = 1 ) OR ( SELF.statistical_values[1].value_type <> SELF.statistical_values[2]. @@ -6902,7 +7223,7 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; value_type : statistical_value_type; WHERE wr1: ( SIZEOF( QUERY ( q <* bag_to_set( USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.REPRESENTATION.ITEMS' ) ) - | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'DATA_QUALITY_CRITERIA_REPRESENTATION' ) IN TYPEOF( q ) ) ) ) + | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'DATA_QUALITY_CRITERIA_REPRESENTATION' ) IN TYPEOF( q ) ) ) ) = 0 ); END_ENTITY; @@ -6910,7 +7231,7 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; SUBTYPE OF ( data_quality_inspection_report ); inspected_instances : LIST [1 : ?] OF data_quality_inspection_instance_report_item; WHERE - wr1: ( SIZEOF( QUERY ( i1 <* bag_to_set( USEDIN( SELF\data_quality_inspection_report.inspection_result.criterion_inspected, + wr1: ( SIZEOF( QUERY ( i1 <* bag_to_set( USEDIN( SELF\data_quality_inspection_report.inspection_result.criterion_inspected, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'DATA_QUALITY_REPORT_REQUEST.CRITERION_OF_REPORT_REQUEST' ) ) | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'DETAILED_REPORT_REQUEST' ) IN TYPEOF( i1 ) ) ) ) > 0 ); END_ENTITY; @@ -6920,17 +7241,20 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; inspected_elements : SET [1 : ?] OF inspected_element_select; WHERE wr1: ( SIZEOF( QUERY ( q <* bag_to_set( USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.REPRESENTATION.ITEMS' ) ) - | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'DATA_QUALITY_CRITERIA_REPRESENTATION' ) IN TYPEOF( q ) ) ) ) + | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'DATA_QUALITY_CRITERIA_REPRESENTATION' ) IN TYPEOF( q ) ) ) ) = 0 ); END_ENTITY; ENTITY data_quality_inspection_report - SUPERTYPE OF ( ONEOF ( data_quality_inspection_criterion_report, data_quality_inspection_instance_report ) ) + SUPERTYPE OF ( + ONEOF ( + data_quality_inspection_criterion_report, + data_quality_inspection_instance_report ) ) SUBTYPE OF ( representation_item ); inspection_result : data_quality_inspection_result; WHERE wr1: ( SIZEOF( QUERY ( q <* bag_to_set( USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.REPRESENTATION.ITEMS' ) ) - | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'DATA_QUALITY_CRITERIA_REPRESENTATION' ) IN TYPEOF( q ) ) ) ) + | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'DATA_QUALITY_CRITERIA_REPRESENTATION' ) IN TYPEOF( q ) ) ) ) = 0 ); END_ENTITY; @@ -6939,7 +7263,7 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; criterion_inspected : data_quality_criterion; WHERE wr1: ( SIZEOF( QUERY ( q <* bag_to_set( USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.REPRESENTATION.ITEMS' ) ) - | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'DATA_QUALITY_CRITERIA_REPRESENTATION' ) IN TYPEOF( q ) ) ) ) + | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'DATA_QUALITY_CRITERIA_REPRESENTATION' ) IN TYPEOF( q ) ) ) ) = 0 ); END_ENTITY; @@ -6947,7 +7271,7 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; SUBTYPE OF ( representation ); criteria_inspected : data_quality_criteria_representation; WHERE - wr1: ( SIZEOF( QUERY ( q <* SELF\representation.items | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + + wr1: ( SIZEOF( QUERY ( q <* SELF\representation.items | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'DATA_QUALITY_INSPECTION_RESULT' ) IN TYPEOF( q ) ) ) ) > 0 ); wr2: ( SIZEOF( inspected_product_definition( SELF ) ) > 0 ); END_ENTITY; @@ -6961,7 +7285,7 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; SUBTYPE OF ( representation_item ); WHERE wr1: ( SIZEOF( QUERY ( q <* bag_to_set( USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.REPRESENTATION.ITEMS' ) ) - | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'DATA_QUALITY_INSPECTION_RESULT_REPRESENTATION' ) IN + | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'DATA_QUALITY_INSPECTION_RESULT_REPRESENTATION' ) IN TYPEOF( q ) ) ) ) = 0 ); END_ENTITY; @@ -6972,13 +7296,21 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; END_ENTITY; ENTITY data_quality_report_request - ABSTRACT SUPERTYPE OF ( ONEOF ( summary_report_request, detailed_report_request ) ); + ABSTRACT SUPERTYPE OF ( + ONEOF ( + summary_report_request, + detailed_report_request ) ); description : text; criterion_of_report_request : data_quality_criterion; END_ENTITY; ENTITY date - SUPERTYPE OF ( ONEOF ( calendar_date, ordinal_date, week_of_year_and_day_date, year_month ) ); + SUPERTYPE OF ( + ONEOF ( + calendar_date, + ordinal_date, + week_of_year_and_day_date, + year_month ) ); year_component : year_number; END_ENTITY; @@ -7008,7 +7340,7 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; DERIVE description : text := get_description_value( SELF ); WHERE - wr1: ( SIZEOF( USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'DESCRIPTION_ATTRIBUTE.DESCRIBED_ITEM' ) ) + wr1: ( SIZEOF( USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'DESCRIPTION_ATTRIBUTE.DESCRIBED_ITEM' ) ) <= 1 ); END_ENTITY; @@ -7021,7 +7353,7 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; DERIVE description : text := get_description_value( SELF ); WHERE - wr1: ( SIZEOF( USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'DESCRIPTION_ATTRIBUTE.DESCRIBED_ITEM' ) ) + wr1: ( SIZEOF( USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'DESCRIPTION_ATTRIBUTE.DESCRIBED_ITEM' ) ) <= 1 ); END_ENTITY; @@ -7039,10 +7371,10 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; INVERSE established_by_relationships : SET [1 : ?] OF shape_aspect_relationship FOR related_shape_aspect; UNIQUE - ur1 : identification, of_shape; + ur1 : identification, SELF\shape_aspect.of_shape; WHERE wr1: ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COMMON_DATUM' IN TYPEOF( SELF ) ) XOR ( SIZEOF( QUERY ( x <* SELF - \datum.established_by_relationships | ( SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DATUM_FEATURE', + \datum.established_by_relationships | ( SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DATUM_FEATURE', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DATUM_TARGET' ] * TYPEOF( x\shape_aspect_relationship. relating_shape_aspect ) ) = 1 ) ) ) >= 1 ) ); wr2: ( SIZEOF( QUERY ( x <* SELF\datum.established_by_relationships | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' @@ -7052,12 +7384,15 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; END_ENTITY; ENTITY datum_feature - SUPERTYPE OF ( ONEOF ( dimensional_location_with_datum_feature, dimensional_size_with_datum_feature ) ) + SUPERTYPE OF ( + ONEOF ( + dimensional_location_with_datum_feature, + dimensional_size_with_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 | ( + wr1: ( SIZEOF( QUERY ( sar <* SELF\datum_feature.feature_basis_relationship | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DATUM' IN TYPEOF( sar\shape_aspect_relationship. related_shape_aspect ) ) ) ) = 1 ); wr2: ( SELF\shape_aspect.product_definitional = TRUE ); @@ -7101,7 +7436,7 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; SUBTYPE OF ( shape_aspect ); constituents : LIST [1 : 3] OF UNIQUE datum_reference_compartment; UNIQUE - ur1 : of_shape, name; + ur1 : SELF\shape_aspect.of_shape, SELF\shape_aspect.name; WHERE wr1: ( SELF\shape_aspect.product_definitional = FALSE ); END_ENTITY; @@ -7112,7 +7447,7 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; 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 | ( + wr1: ( SIZEOF( QUERY ( sar <* SELF\datum_target.target_basis_relationship | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DATUM' IN TYPEOF( sar\shape_aspect_relationship. related_shape_aspect ) ) ) ) = 1 ); wr2: ( SELF\shape_aspect.product_definitional = TRUE ); @@ -7127,18 +7462,18 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; WHERE wr1: ( SIZEOF( QUERY ( i <* SELF.items | ( NOT ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'DEFAULT_TOLERANCE_TABLE_CELL' IN TYPEOF( i ) ) ) ) ) = 0 ); - wr2: ( ( SIZEOF( QUERY ( rr <* USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + - 'REPRESENTATION_RELATIONSHIP.REP_1' ) | ( rr.name < 'general tolerance definition' ) ) ) = 0 ) AND ( SIZEOF( + wr2: ( ( SIZEOF( QUERY ( rr <* USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + + 'REPRESENTATION_RELATIONSHIP.REP_1' ) | ( rr.name < 'general tolerance definition' ) ) ) = 0 ) AND ( SIZEOF( QUERY ( rr <* USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'REPRESENTATION_RELATIONSHIP.REP_1' ) - | ( ( rr.name = 'general tolerance definition' ) AND ( rr.rep_2.name < 'default tolerance' ) ) ) ) = 0 ) AND ( - SIZEOF( USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'REPRESENTATION_RELATIONSHIP.REP_2' ) ) + | ( ( rr.name = 'general tolerance definition' ) AND ( rr.rep_2.name < 'default tolerance' ) ) ) ) = 0 ) AND ( + SIZEOF( USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'REPRESENTATION.ITEMS' ) | + wr1: ( SIZEOF( QUERY ( x <* USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'REPRESENTATION.ITEMS' ) | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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 ); @@ -7153,12 +7488,18 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; END_ENTITY; ENTITY defined_constraint - ABSTRACT SUPERTYPE OF ( equal_parameter_constraint ) + ABSTRACT SUPERTYPE OF ( + equal_parameter_constraint ) SUBTYPE OF ( explicit_constraint ); END_ENTITY; ENTITY defined_function - ABSTRACT SUPERTYPE OF ( ONEOF ( numeric_defined_function, string_defined_function, boolean_defined_function ) ANDOR + ABSTRACT SUPERTYPE OF ( + ONEOF ( + numeric_defined_function, + string_defined_function, + boolean_defined_function ) + ANDOR sql_mappable_defined_function ); END_ENTITY; @@ -7179,7 +7520,7 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; WHERE wr1: has_values_space( integrand ); wr2: space_is_continuum( values_space_of( integrand ) ); - wr3: definite_integral_expr_check( SELF\multiple_arity_generic_expression.operands, lower_limit_neg_infinity, + wr3: definite_integral_expr_check( SELF\multiple_arity_generic_expression.operands, lower_limit_neg_infinity, upper_limit_pos_infinity ); END_ENTITY; @@ -7206,7 +7547,7 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; ENTITY definitional_representation_relationship SUBTYPE OF ( representation_relationship ); WHERE - wr1: acyclic_representation_relationship( SELF, [SELF\representation_relationship.rep_2], + wr1: acyclic_representation_relationship( SELF, [SELF\representation_relationship.rep_2], 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'REPRESENTATION' ); END_ENTITY; @@ -7238,18 +7579,46 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; END_ENTITY; ENTITY derived_shape_aspect - SUPERTYPE OF ( ONEOF ( apex, centre_of_symmetry, geometric_alignment, geometric_contact, geometric_intersection, - parallel_offset, perpendicular_to, extension, tangent ) ) + SUPERTYPE OF ( + ONEOF ( + apex, + centre_of_symmetry, + geometric_alignment, + geometric_contact, + geometric_intersection, + parallel_offset, + perpendicular_to, + extension, + tangent ) ) SUBTYPE OF ( shape_aspect ); INVERSE deriving_relationships : SET [1 : ?] OF shape_aspect_deriving_relationship FOR relating_shape_aspect; 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 ) ); + 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 ); @@ -7269,7 +7638,10 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; END_ENTITY; ENTITY descriptive_representation_item - SUPERTYPE OF ( ONEOF ( tagged_text_item, uniform_resource_identifier ) ) + SUPERTYPE OF ( + ONEOF ( + tagged_text_item, + uniform_resource_identifier ) ) SUBTYPE OF ( representation_item ); description : text; END_ENTITY; @@ -7308,13 +7680,13 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; ENTITY dimension_callout SUBTYPE OF ( draughting_callout ); WHERE - wr1: ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LEADER_DIRECTED_CALLOUT' IN TYPEOF( SELF ) ) XOR ( SIZEOF( - QUERY ( dce_1 <* SELF\draughting_callout.contents | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LEADER_CURVE' + wr1: ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LEADER_DIRECTED_CALLOUT' IN TYPEOF( SELF ) ) XOR ( SIZEOF( + QUERY ( dce_1 <* SELF\draughting_callout.contents | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LEADER_CURVE' IN TYPEOF( dce_1 ) ) ) ) = 0 ) ); - wr2: ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROJECTION_DIRECTED_CALLOUT' IN TYPEOF( SELF ) ) XOR ( SIZEOF( + wr2: ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROJECTION_DIRECTED_CALLOUT' IN TYPEOF( SELF ) ) XOR ( SIZEOF( QUERY ( dce_1 <* SELF\draughting_callout.contents | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PROJECTION_CURVE' IN TYPEOF( dce_1 ) ) ) ) = 0 ) ); - wr3: ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DIMENSION_CURVE_DIRECTED_CALLOUT' IN TYPEOF( SELF ) ) XOR ( + wr3: ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DIMENSION_CURVE_DIRECTED_CALLOUT' IN TYPEOF( SELF ) ) XOR ( SIZEOF( QUERY ( dce_1 <* SELF\draughting_callout.contents | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'DIMENSION_CURVE' IN TYPEOF( dce_1 ) ) ) ) = 0 ) ); END_ENTITY; @@ -7326,15 +7698,15 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; wr2: ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.STRUCTURED_DIMENSION_CALLOUT' IN TYPEOF( SELF. relating_draughting_callout ) ); wr3: ( SIZEOF( TYPEOF( SELF.related_draughting_callout ) * [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'LEADER_DIRECTED_CALLOUT' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROJECTION_DIRECTED_CALLOUT', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DIMENSION_CURVE_DIRECTED_CALLOUT' , + + 'LEADER_DIRECTED_CALLOUT' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROJECTION_DIRECTED_CALLOUT', + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DIMENSION_CURVE_DIRECTED_CALLOUT' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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 | ( + wr5: ( ( SELF.name = 'prefix' ) AND ( SIZEOF( QUERY ( ato <* QUERY ( con <* SELF.related_draughting_callout.contents | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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 | ( + wr6: ( ( SELF.name = 'suffix' ) AND ( SIZEOF( QUERY ( ato <* QUERY ( con <* SELF.related_draughting_callout.contents | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ANNOTATION_TEXT_OCCURRENCE' IN TYPEOF( con ) ) ) | ( NOT ( ato. name = 'suffix text' ) ) ) ) = 0 ) ); END_ENTITY; @@ -7344,11 +7716,11 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; WHERE wr1: ( SELF.name IN [ 'primary', 'secondary'] ); wr2: ( SIZEOF( TYPEOF( SELF.relating_draughting_callout ) * [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'ANGULAR_DIMENSION' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CURVE_DIMENSION', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DIAMETER_DIMENSION' , - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LEADER_DIRECTED_DIMENSION' , - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LINEAR_DIMENSION' , - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ORDINATE_DIMENSION' , + + 'ANGULAR_DIMENSION' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CURVE_DIMENSION', + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DIAMETER_DIMENSION' , + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LEADER_DIRECTED_DIMENSION' , + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LINEAR_DIMENSION' , + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ORDINATE_DIMENSION' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.RADIUS_DIMENSION' ] ) >= 1 ); wr3: ( SIZEOF( TYPEOF( SELF.related_draughting_callout ) * [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'DIMENSION_CURVE_DIRECTED_CALLOUT' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' @@ -7361,16 +7733,16 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; SUBTYPE OF ( annotation_curve_occurrence ); WHERE wr1: ( SIZEOF( QUERY ( dct <* USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'TERMINATOR_SYMBOL.' - + 'ANNOTATED_CURVE' ) | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'DIMENSION_CURVE_TERMINATOR' ) + + 'ANNOTATED_CURVE' ) | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'DIMENSION_CURVE_TERMINATOR' ) IN TYPEOF( dct ) ) ) ) <= 2 ); wr2: ( SIZEOF( QUERY ( dcdc <* USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'DRAUGHTING_CALLOUT.' + 'CONTENTS' ) | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'DIMENSION_CURVE_DIRECTED_CALLOUT' ) IN TYPEOF( dcdc ) ) ) ) >= 1 ); wr3: ( ( SIZEOF( QUERY ( dct1 <* USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'TERMINATOR_SYMBOL.' - + 'ANNOTATED_CURVE' ) | ( ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'DIMENSION_CURVE_TERMINATOR' ) - IN TYPEOF( dct1 ) ) AND ( dct1\dimension_curve_terminator.role = dimension_extent_usage.origin ) ) ) ) <= 1 ) AND + + 'ANNOTATED_CURVE' ) | ( ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'TERMINATOR_SYMBOL.' - + 'ANNOTATED_CURVE' ) | ( ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'DIMENSION_CURVE_TERMINATOR' ) + + 'ANNOTATED_CURVE' ) | ( ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'DIMENSION_CURVE_TERMINATOR' ) IN TYPEOF( dct2 ) ) AND ( dct2\dimension_curve_terminator.role = dimension_extent_usage.target ) ) ) ) <= 1 ) ); END_ENTITY; @@ -7400,16 +7772,16 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; WHERE wr1: ( SELF.name IN [ 'chained', 'parallel'] ); wr2: ( SIZEOF( TYPEOF( SELF.relating_draughting_callout ) * [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'ANGULAR_DIMENSION' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CURVE_DIMENSION', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DIAMETER_DIMENSION' , - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LINEAR_DIMENSION' , - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ORDINATE_DIMENSION' , + + 'ANGULAR_DIMENSION' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CURVE_DIMENSION', + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DIAMETER_DIMENSION' , + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LINEAR_DIMENSION' , + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ORDINATE_DIMENSION' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.RADIUS_DIMENSION' ] ) = 1 ); wr3: ( SIZEOF( TYPEOF( SELF.related_draughting_callout ) * [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'ANGULAR_DIMENSION' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CURVE_DIMENSION', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DIAMETER_DIMENSION' , - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LINEAR_DIMENSION' , - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ORDINATE_DIMENSION' , + + 'ANGULAR_DIMENSION' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CURVE_DIMENSION', + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DIAMETER_DIMENSION' , + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LINEAR_DIMENSION' , + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ORDINATE_DIMENSION' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.RADIUS_DIMENSION' ] ) = 1 ); END_ENTITY; @@ -7425,7 +7797,7 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; mapping_source.mapped_representation ) ); wr2: ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DRAUGHTING_CALLOUT' IN TYPEOF( SELF\mapped_item.mapping_target ) ); wr3: ( SIZEOF( QUERY ( ato <* QUERY ( si <* USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.STYLED_ITEM.ITEM' ) - | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ANNOTATION_TEXT_OCCURRENCE' IN TYPEOF( si ) ) ) | ( NOT ( + | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ANNOTATION_TEXT_OCCURRENCE' IN TYPEOF( si ) ) ) | ( NOT ( SIZEOF( QUERY ( dc <* USEDIN( ato, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'DRAUGHTING_CALLOUT.' + 'CONTENTS' ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DRAUGHTING_CALLOUT' IN TYPEOF( dc ) ) ) * [ SELF\mapped_item.mapping_target] ) = 1 ) ) ) ) = 0 ); @@ -7447,7 +7819,10 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; END_ENTITY; ENTITY dimensional_location - SUPERTYPE OF ( ONEOF ( angular_location, dimensional_location_with_path ) ) + SUPERTYPE OF ( + ONEOF ( + angular_location, + dimensional_location_with_path ) ) SUBTYPE OF ( shape_aspect_relationship ); WHERE wr1: ( SELF\shape_aspect_relationship.relating_shape_aspect :<>: SELF\shape_aspect_relationship.related_shape_aspect ); @@ -7465,7 +7840,10 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; END_ENTITY; ENTITY dimensional_size - SUPERTYPE OF ( ONEOF ( angular_size, dimensional_size_with_path ) ); + SUPERTYPE OF ( + ONEOF ( + angular_size, + dimensional_size_with_path ) ); applies_to : shape_aspect; name : label; DERIVE @@ -7495,18 +7873,18 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; SUBTYPE OF ( shape_aspect ); WHERE wr1: ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FEATURE_COMPONENT_DEFINITION' IN TYPEOF( SELF.of_shape.definition ) ); - wr2: ( SIZEOF( QUERY ( pdr <* get_shape_aspect_property_definition_representations( SELF ) | ( + wr2: ( SIZEOF( QUERY ( pdr <* get_shape_aspect_property_definition_representations( SELF ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. used_representation ) ) ) ) = 1 ); - wr3: ( SIZEOF( QUERY ( pdr <* get_shape_aspect_property_definition_representations( SELF ) | ( ( + wr3: ( SIZEOF( QUERY ( pdr <* get_shape_aspect_property_definition_representations( SELF ) | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. used_representation ) ) AND ( SIZEOF( pdr.used_representation.items ) = 1 ) ) ) ) = 1 ); wr4: ( SELF.description IN [ 'punch direction', 'profile normal', 'surface normal'] ); - wr5: ( SIZEOF( QUERY ( pdr <* get_shape_aspect_property_definition_representations( SELF ) | ( ( + wr5: ( SIZEOF( QUERY ( pdr <* get_shape_aspect_property_definition_representations( SELF ) | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. - used_representation ) ) AND ( SIZEOF( QUERY ( i <* pdr.used_representation.items | ( ( i.name = 'angle' ) AND ( - SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANE_ANGLE_MEASURE_WITH_UNIT' ] * TYPEOF( i ) ) = 2 ) ) ) ) = 1 ) ) ) ) + used_representation ) ) AND ( SIZEOF( QUERY ( i <* pdr.used_representation.items | ( ( i.name = 'angle' ) AND ( + SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANE_ANGLE_MEASURE_WITH_UNIT' ] * TYPEOF( i ) ) = 2 ) ) ) ) = 1 ) ) ) ) = 1 ); END_ENTITY; @@ -7525,7 +7903,7 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; SUBTYPE OF ( shape_representation ); WHERE wr1: ( SIZEOF( SELF.items ) = 1 ); - wr2: ( SIZEOF( QUERY ( it <* SELF.items | ( NOT ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DIRECTION' IN TYPEOF( it ) ) ) ) ) + wr2: ( SIZEOF( QUERY ( it <* SELF.items | ( NOT ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DIRECTION' IN TYPEOF( it ) ) ) ) ) = 0 ); END_ENTITY; @@ -7547,8 +7925,12 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; END_ENTITY; ENTITY discontinuous_geometry - ABSTRACT SUPERTYPE OF ( ONEOF ( g1_discontinuous_curve, g2_discontinuous_curve, g1_discontinuous_surface, - g2_discontinuous_surface ) ) + ABSTRACT SUPERTYPE OF ( + ONEOF ( + g1_discontinuous_curve, + g2_discontinuous_curve, + g1_discontinuous_surface, + g2_discontinuous_surface ) ) SUBTYPE OF ( inapt_geometry ); END_ENTITY; @@ -7576,7 +7958,7 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; ENTITY document_identifier SUBTYPE OF ( group ); UNIQUE - ur1 : name, description; + ur1 : SELF\group.name, SELF\group.description; END_ENTITY; ENTITY document_identifier_assignment @@ -7585,7 +7967,8 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; items : SET [1 : ?] OF document_identifier_assigned_item; END_ENTITY; - ENTITY document_product_association; + ENTITY document_product_association + ABSTRACT SUPERTYPE; name : label; description : OPTIONAL text; relating_document : document; @@ -7597,20 +7980,20 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; WHERE wr1: ( SELF\document_product_association.name = 'equivalence' ); wr2: ( ( NOT ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT' IN TYPEOF( SELF\document_product_association. - related_product ) ) ) OR ( ( SELF\document_product_association.relating_document.kind.product_data_type = + 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, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PRODUCT_RELATED_PRODUCT_CATEGORY.PRODUCTS' ) | ( prpc.name = 'document' ) ) ) = 1 ) ) ); wr3: ( ( NOT ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_FORMATION' IN TYPEOF( SELF. - related_product ) ) ) OR ( ( SELF\document_product_association.relating_document.kind.product_data_type = + 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, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PRODUCT_RELATED_PRODUCT_CATEGORY.PRODUCTS' ) | ( prpc.name = 'document' ) ) ) = 1 ) ) ); - wr4: ( ( NOT ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION' IN TYPEOF( SELF.related_product ) ) ) - OR ( ( SELF\document_product_association.relating_document.kind.product_data_type = + wr4: ( ( NOT ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_RELATED_PRODUCT_CATEGORY.PRODUCTS' ) | ( prpc.name = + document_product_association.related_product\product_definition.formation.of_product, + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_RELATED_PRODUCT_CATEGORY.PRODUCTS' ) | ( prpc.name = 'document' ) ) ) = 1 ) ) ); END_ENTITY; @@ -7621,7 +8004,7 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; DERIVE role : object_role := get_role( SELF ); WHERE - wr1: ( SIZEOF( USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'ROLE_ASSOCIATION.ITEM_WITH_ROLE' ) ) <= + wr1: ( SIZEOF( USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'ROLE_ASSOCIATION.ITEM_WITH_ROLE' ) ) <= 1 ); END_ENTITY; @@ -7686,86 +8069,86 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; ENTITY draughting_annotation_occurrence SUBTYPE OF ( annotation_occurrence ); WHERE - wr1 : ( ( NOT ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ANNOTATION_CURVE_OCCURRENCE' IN TYPEOF( SELF ) ) ) OR ( - SIZEOF( QUERY ( sty <* SELF.styles | ( NOT ( ( SIZEOF( sty.styles ) = 1 ) AND ( + wr1 : ( ( NOT ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ANNOTATION_CURVE_OCCURRENCE' IN TYPEOF( SELF ) ) ) OR ( + SIZEOF( QUERY ( sty <* SELF.styles | ( NOT ( ( SIZEOF( sty.styles ) = 1 ) AND ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CURVE_STYLE' IN TYPEOF( sty.styles[1] ) ) ) ) ) ) = 0 ) ); - wr2 : ( ( NOT ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ANNOTATION_FILL_AREA_OCCURRENCE' IN TYPEOF( SELF ) ) ) OR - ( SIZEOF( QUERY ( sty <* SELF.styles | ( NOT ( ( SIZEOF( sty.styles ) = 1 ) AND ( + wr2 : ( ( NOT ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ANNOTATION_FILL_AREA_OCCURRENCE' IN TYPEOF( SELF ) ) ) OR + ( SIZEOF( QUERY ( sty <* SELF.styles | ( NOT ( ( SIZEOF( sty.styles ) = 1 ) AND ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FILL_AREA_STYLE' IN TYPEOF( sty.styles[1] ) ) ) ) ) ) = 0 ) ); - wr3 : ( ( NOT ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'STYLED_ITEM.ITEM' ) | ( ( - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'ANNOTATION_CURVE_OCCURRENCE' ) IN TYPEOF( si ) ) ) ) > 0 ) ) ) ) + wr3 : ( ( NOT ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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, + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'STYLED_ITEM.ITEM' ) | ( ( + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'ANNOTATION_CURVE_OCCURRENCE' ) IN TYPEOF( si ) ) ) ) > 0 ) ) ) ) = 0 ) ); - wr4 : ( ( NOT ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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] ) * + wr4 : ( ( NOT ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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] ) * [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SYMBOL_STYLE', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'NULL_STYLE' ] ) = 1 ) ) ) ) ) = 0 ) ); - wr5 : ( ( NOT ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ANNOTATION_SYMBOL_OCCURRENCE' IN TYPEOF( SELF ) ) AND ( + wr5 : ( ( NOT ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ANNOTATION_SYMBOL_OCCURRENCE' IN TYPEOF( SELF ) ) AND ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ANNOTATION_SYMBOL' IN TYPEOF( SELF.item ) ) ) ) OR ( SIZEOF( [ - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'DRAUGHTING_SYMBOL_REPRESENTATION', + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'DRAUGHTING_SYMBOL_REPRESENTATION', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'DRAUGHTING_SUBFIGURE_REPRESENTATION'] * TYPEOF( SELF.item\ mapped_item.mapping_source.mapped_representation ) ) = 1 ) ); - wr6 : ( ( NOT ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ANNOTATION_TEXT_OCCURRENCE' IN TYPEOF( SELF ) ) ) OR ( - SIZEOF( QUERY ( sty <* SELF.styles | ( NOT ( ( SIZEOF( sty.styles ) = 1 ) AND ( + wr6 : ( ( NOT ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ANNOTATION_TEXT_OCCURRENCE' IN TYPEOF( SELF ) ) ) OR ( + SIZEOF( QUERY ( sty <* SELF.styles | ( NOT ( ( SIZEOF( sty.styles ) = 1 ) AND ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.TEXT_STYLE' IN TYPEOF( sty.styles[1] ) ) ) ) ) ) = 0 ) ); - wr7 : ( ( NOT ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ANNOTATION_TEXT_OCCURRENCE' IN TYPEOF( SELF ) ) ) OR ( - SIZEOF( TYPEOF( SELF.item ) * [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COMPOSITE_TEXT', + wr7 : ( ( NOT ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ANNOTATION_TEXT_OCCURRENCE' IN TYPEOF( SELF ) ) ) OR ( + SIZEOF( TYPEOF( SELF.item ) * [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COMPOSITE_TEXT', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.TEXT_LITERAL' ] ) = 1 ) ); - wr8 : ( ( NOT ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ANNOTATION_TEXT_OCCURRENCE' IN TYPEOF( SELF ) ) AND ( - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COMPOSITE_TEXT' IN TYPEOF( SELF.item ) ) ) ) OR ( SIZEOF( + wr8 : ( ( NOT ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ANNOTATION_TEXT_OCCURRENCE' IN TYPEOF( SELF ) ) AND ( + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COMPOSITE_TEXT' IN TYPEOF( SELF.item ) ) ) ) OR ( SIZEOF( QUERY ( tl <* SELF.item\composite_text.collected_text | ( NOT ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'TEXT_LITERAL' IN TYPEOF( tl ) ) ) ) ) = 0 ) ); - wr9 : ( ( NOT ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ANNOTATION_TEXT_OCCURRENCE' IN TYPEOF( SELF ) ) AND ( + wr9 : ( ( NOT ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ANNOTATION_TEXT_OCCURRENCE' IN TYPEOF( SELF ) ) AND ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.TEXT_LITERAL' IN TYPEOF( SELF.item ) ) ) ) OR ( SELF.item\ text_literal.alignment IN [ 'baseline left', 'baseline centre', 'baseline right'] ) ); - wr10: ( ( NOT ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ANNOTATION_TEXT_OCCURRENCE' IN TYPEOF( SELF ) ) AND ( - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COMPOSITE_TEXT' IN TYPEOF( SELF.item ) ) ) ) OR ( SIZEOF( - QUERY ( tl <* QUERY ( text <* SELF.item\composite_text.collected_text | ( + wr10: ( ( NOT ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ANNOTATION_TEXT_OCCURRENCE' IN TYPEOF( SELF ) ) AND ( + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COMPOSITE_TEXT' IN TYPEOF( SELF.item ) ) ) ) OR ( SIZEOF( + QUERY ( tl <* QUERY ( text <* SELF.item\composite_text.collected_text | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.TEXT_LITERAL' IN TYPEOF( text ) ) ) | ( NOT ( tl\text_literal. alignment IN [ 'baseline left', 'baseline centre', 'baseline right'] ) ) ) ) = 0 ) ); - wr11: ( ( NOT ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ANNOTATION_TEXT_OCCURRENCE' IN TYPEOF( SELF ) ) AND ( - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COMPOSITE_TEXT' IN TYPEOF( SELF.item ) ) ) ) OR + wr11: ( ( NOT ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ANNOTATION_TEXT_OCCURRENCE' IN TYPEOF( SELF ) ) AND ( + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COMPOSITE_TEXT' IN TYPEOF( SELF.item ) ) ) ) OR check_text_alignment( SELF.item ) ); - wr12: ( ( NOT ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ANNOTATION_TEXT_OCCURRENCE' IN TYPEOF( SELF ) ) AND ( - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COMPOSITE_TEXT' IN TYPEOF( SELF.item ) ) ) ) OR + wr12: ( ( NOT ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ANNOTATION_TEXT_OCCURRENCE' IN TYPEOF( SELF ) ) AND ( + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COMPOSITE_TEXT' IN TYPEOF( SELF.item ) ) ) ) OR check_text_font( SELF.item ) ); - wr13: ( ( NOT ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ANNOTATION_TEXT_OCCURRENCE' IN TYPEOF( SELF ) ) AND ( - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COMPOSITE_TEXT' IN TYPEOF( SELF.item ) ) ) ) OR ( SIZEOF( - QUERY ( tl <* QUERY ( text <* SELF.item\composite_text.collected_text | ( - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.TEXT_LITERAL' IN TYPEOF( text ) ) ) | ( NOT ( SIZEOF( TYPEOF( - tl ) * [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'TEXT_LITERAL_WITH_BLANKING_BOX', + wr13: ( ( NOT ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ANNOTATION_TEXT_OCCURRENCE' IN TYPEOF( SELF ) ) AND ( + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COMPOSITE_TEXT' IN TYPEOF( SELF.item ) ) ) ) OR ( SIZEOF( + QUERY ( tl <* QUERY ( text <* SELF.item\composite_text.collected_text | ( + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.TEXT_LITERAL' IN TYPEOF( text ) ) ) | ( NOT ( SIZEOF( TYPEOF( + tl ) * [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'TEXT_LITERAL_WITH_BLANKING_BOX', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'TEXT_LITERAL_WITH_ASSOCIATED_CURVES'] ) = 0 ) ) ) ) = 0 ) ); - wr14: ( ( NOT ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ANNOTATION_TEXT_OCCURRENCE' IN TYPEOF( SELF ) ) AND ( - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.STYLED_ITEM.ITEM' ) | ( - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ANNOTATION_CURVE_OCCURRENCE' IN TYPEOF( si ) ) ) ) > 0 ) ) ) ) + wr14: ( ( NOT ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ANNOTATION_TEXT_OCCURRENCE' IN TYPEOF( SELF ) ) AND ( + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.STYLED_ITEM.ITEM' ) | ( + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ANNOTATION_CURVE_OCCURRENCE' IN TYPEOF( si ) ) ) ) > 0 ) ) ) ) = 0 ) ); - wr15: ( ( NOT ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ANNOTATION_TEXT_OCCURRENCE' IN TYPEOF( SELF ) ) AND ( - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.STYLED_ITEM.ITEM' ) | ( - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ANNOTATION_CURVE_OCCURRENCE' IN TYPEOF( si ) ) ) ) > 0 ) ) ) ) + wr15: ( ( NOT ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ANNOTATION_TEXT_OCCURRENCE' IN TYPEOF( SELF ) ) AND ( + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.STYLED_ITEM.ITEM' ) | ( + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ANNOTATION_CURVE_OCCURRENCE' IN TYPEOF( si ) ) ) ) > 0 ) ) ) ) = 0 ) ); - wr16: ( SIZEOF( QUERY ( cs <* QUERY ( sty <* SELF.styles | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CURVE_STYLE' + wr16: ( SIZEOF( QUERY ( cs <* QUERY ( sty <* SELF.styles | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CURVE_STYLE' IN TYPEOF( sty.styles[1] ) ) ) | ( NOT ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'LENGTH_MEASURE_WITH_UNIT' IN TYPEOF( cs.styles[1]\curve_style.curve_width ) ) AND ( + + 'LENGTH_MEASURE_WITH_UNIT' IN TYPEOF( cs.styles[1]\curve_style.curve_width ) ) AND ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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 | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'FILL_AREA_STYLE' IN TYPEOF( sty.styles[1] ) ) ) | ( NOT ( ( SIZEOF( QUERY ( fs <* fas.styles[1]\ - fill_area_style.fill_styles | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FILL_AREA_STYLE_TILES' IN - TYPEOF( fs ) ) ) ) <= 1 ) AND ( SIZEOF( QUERY ( fst <* QUERY ( fs <* fas.styles[1]\fill_area_style.fill_styles | - ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FILL_AREA_STYLE_TILES' IN TYPEOF( fs ) ) ) | ( NOT ( SIZEOF( + fill_area_style.fill_styles | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FILL_AREA_STYLE_TILES' IN + TYPEOF( fs ) ) ) ) <= 1 ) AND ( SIZEOF( QUERY ( fst <* QUERY ( fs <* fas.styles[1]\fill_area_style.fill_styles | + ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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 | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'FILL_AREA_STYLE' IN TYPEOF( sty.styles[1] ) ) ) | ( NOT ( SIZEOF( QUERY ( fsh <* QUERY ( fs <* fas.styles[1]\ - fill_area_style.fill_styles | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FILL_AREA_STYLE_HATCHING' IN + fill_area_style.fill_styles | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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 | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.TEXT_STYLE' - IN TYPEOF( sty.styles[1] ) ) ) | ( NOT ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + + wr19: ( SIZEOF( QUERY ( ts <* QUERY ( sty <* SELF.styles | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.TEXT_STYLE' + IN TYPEOF( sty.styles[1] ) ) ) | ( NOT ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'TEXT_STYLE_WITH_BOX_CHARACTERISTICS' ) IN TYPEOF( ts.styles[1] ) ) ) ) ) = 0 ); wr20: ( SIZEOF( QUERY ( ts <* QUERY ( sty <* SELF.styles | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'TEXT_STYLE_WITH_BOX_CHARACTERISTICS' IN TYPEOF( sty.styles[1] ) ) ) | ( NOT ( SIZEOF( ts.styles[1]\ @@ -7778,9 +8161,9 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; WHERE wr1: ( ( SIZEOF( QUERY ( l_1 <* SELF\draughting_callout.contents | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'LEADER_CURVE' IN TYPEOF( l_1 ) ) ) ) = 0 ) OR ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'LEADER_DIRECTED_CALLOUT' IN TYPEOF( SELF ) ) AND ( SIZEOF( QUERY ( l_1 <* SELF\draughting_callout.contents | - ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROJECTION_CURVE' IN TYPEOF( l_1 ) ) ) ) = 0 ) ) OR ( ( - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROJECTION_DIRECTED_CALLOUT' IN TYPEOF( SELF ) ) AND ( SIZEOF( + + 'LEADER_DIRECTED_CALLOUT' IN TYPEOF( SELF ) ) AND ( SIZEOF( QUERY ( l_1 <* SELF\draughting_callout.contents | + ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROJECTION_CURVE' IN TYPEOF( l_1 ) ) ) ) = 0 ) ) OR ( ( + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROJECTION_DIRECTED_CALLOUT' IN TYPEOF( SELF ) ) AND ( SIZEOF( QUERY ( l_1 <* SELF\draughting_callout.contents | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'DIMENSION_CURVE' IN TYPEOF( l_1 ) ) ) ) = 0 ) ) OR ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'DIMENSION_CURVE_DIRECTED_CALLOUT' IN TYPEOF( SELF ) ) ); @@ -7797,24 +8180,24 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; SUBTYPE OF ( draughting_callout ); WHERE wr1: ( SIZEOF( QUERY ( l_c <* QUERY ( con <* SELF.contents | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'LEADER_CURVE' IN TYPEOF( con ) ) ) | ( NOT ( SIZEOF( QUERY ( ldc <* USEDIN( l_c, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'DRAUGHTING_CALLOUT.CONTENTS' ) | ( + + 'LEADER_CURVE' IN TYPEOF( con ) ) ) | ( NOT ( SIZEOF( QUERY ( ldc <* USEDIN( l_c, + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'DRAUGHTING_CALLOUT.CONTENTS' ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LEADER_DIRECTED_CALLOUT' IN TYPEOF( ldc ) ) ) ) <= 1 ) ) ) ) = 0 ); - wr2: ( ( NOT ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DIMENSION_CURVE_DIRECTED_CALLOUT' IN TYPEOF( SELF ) ) ) OR - ( SIZEOF( QUERY ( con <* SELF.contents | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROJECTION_CURVE' IN + wr2: ( ( NOT ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DIMENSION_CURVE_DIRECTED_CALLOUT' IN TYPEOF( SELF ) ) ) OR + ( SIZEOF( QUERY ( con <* SELF.contents | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROJECTION_CURVE' IN TYPEOF( con ) ) ) ) <= 2 ) ); - wr3: ( SIZEOF( QUERY ( rc <* USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DRAUGHTING_CALLOUT_' + - 'RELATIONSHIP.RELATING_DRAUGHTING_CALLOUT' ) | ( ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + + wr3: ( SIZEOF( QUERY ( rc <* USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DRAUGHTING_CALLOUT_' + + 'RELATIONSHIP.RELATING_DRAUGHTING_CALLOUT' ) | ( ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'DIMENSION_CALLOUT_RELATIONSHIP' ) IN TYPEOF( rc ) ) AND ( rc.name = 'primary' ) ) ) ) <= 1 ); - wr4: ( SIZEOF( QUERY ( rc <* USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DRAUGHTING_CALLOUT_' + - 'RELATIONSHIP.RELATING_DRAUGHTING_CALLOUT' ) | ( ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + + wr4: ( SIZEOF( QUERY ( rc <* USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DRAUGHTING_CALLOUT_' + + 'RELATIONSHIP.RELATING_DRAUGHTING_CALLOUT' ) | ( ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'DIMENSION_CALLOUT_RELATIONSHIP' ) IN TYPEOF( rc ) ) AND ( rc.name = 'secondary' ) ) ) ) <= 1 ); wr5: ( SIZEOF( QUERY ( sec <* QUERY ( rc <* USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'DRAUGHTING_CALLOUT_' + 'RELATIONSHIP.RELATING_DRAUGHTING_CALLOUT' ) | ( ( ( - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'DIMENSION_CALLOUT_RELATIONSHIP' ) IN TYPEOF( rc ) ) AND ( - rc.name = 'secondary' ) ) ) | ( NOT ( SIZEOF( QUERY ( prim <* USEDIN( SELF, + + 'DRAUGHTING_CALLOUT_' + 'RELATIONSHIP.RELATING_DRAUGHTING_CALLOUT' ) | ( ( ( + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'DIMENSION_CALLOUT_RELATIONSHIP' ) IN TYPEOF( rc ) ) AND ( + rc.name = 'secondary' ) ) ) | ( NOT ( SIZEOF( QUERY ( prim <* USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DRAUGHTING_CALLOUT_' + 'RELATIONSHIP.RELATING_DRAUGHTING_CALLOUT' ) - | ( ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'DIMENSION_CALLOUT_RELATIONSHIP' ) IN TYPEOF( prim ) ) + | ( ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'DIMENSION_CALLOUT_RELATIONSHIP' ) IN TYPEOF( prim ) ) AND ( prim.name = 'primary' ) ) ) ) = 1 ) ) ) ) = 0 ); END_ENTITY; @@ -7822,18 +8205,18 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; SUBTYPE OF ( representation ); SELF\representation.items : SET [1 : ?] OF draughting_model_item_select; UNIQUE - ur1 : name; + ur1 : SELF\representation.name; WHERE - wr1: ( SIZEOF( QUERY ( mi <* QUERY ( it <* SELF.items | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MAPPED_ITEM' IN - TYPEOF( it ) ) ) | ( NOT ( SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION', + wr1: ( SIZEOF( QUERY ( mi <* QUERY ( it <* SELF.items | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MAPPED_ITEM' IN + TYPEOF( it ) ) ) | ( NOT ( SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DRAUGHTING_MODEL' ] * TYPEOF( mi\mapped_item.mapping_source. mapped_representation ) ) = 1 ) ) ) ) = 0 ); wr2: ( SIZEOF( QUERY ( smi <* QUERY ( si <* QUERY ( it <* SELF.items | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'STYLED_ITEM' IN TYPEOF( it ) ) ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MAPPED_ITEM' IN TYPEOF( - si\styled_item.item ) ) ) | ( NOT ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION' IN + + 'STYLED_ITEM' IN TYPEOF( it ) ) ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MAPPED_ITEM' IN TYPEOF( + si\styled_item.item ) ) ) | ( NOT ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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 ( - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CURVE_STYLE' IN TYPEOF( psa ) ) ) ) ) = 1 ) ) ) ) = 1 ) ) ) ) ) + styled_item.styles | ( NOT ( SIZEOF( QUERY ( psa <* sty.styles | ( NOT ( + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CURVE_STYLE' IN TYPEOF( psa ) ) ) ) ) = 1 ) ) ) ) = 1 ) ) ) ) ) = 0 ); END_ENTITY; @@ -7867,14 +8250,14 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; SELF\representation.items : SET [1 : ?] OF draughting_subfigure_representation_item; WHERE wr1: ( SIZEOF( QUERY ( item <* SELF\representation.items | ( SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'ANNOTATION_OCCURRENCE' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DRAUGHTING_CALLOUT'] * TYPEOF( item ) ) + + 'ANNOTATION_OCCURRENCE' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DRAUGHTING_CALLOUT'] * TYPEOF( item ) ) = 1 ) ) ) >= 1 ); - wr2: ( SIZEOF( QUERY ( srm <* QUERY ( rm <* USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + + wr2: ( SIZEOF( QUERY ( srm <* QUERY ( rm <* USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'REPRESENTATION_MAP.MAPPED_REPRESENTATION' ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'SYMBOL_REPRESENTATION_MAP' IN TYPEOF( rm ) ) ) | ( NOT ( SIZEOF( QUERY ( a_s <* QUERY ( mi <* srm.map_usage | - ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ANNOTATION_SYMBOL' IN TYPEOF( mi ) ) ) | ( NOT ( SIZEOF( - QUERY ( aso <* USEDIN( a_s, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'STYLED_ITEM.ITEM' ) | ( NOT ( - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ANNOTATION_SUBFIGURE_OCCURRENCE' IN TYPEOF( aso ) ) ) ) ) = 0 ) ) ) ) + + 'SYMBOL_REPRESENTATION_MAP' IN TYPEOF( rm ) ) ) | ( NOT ( SIZEOF( QUERY ( a_s <* QUERY ( mi <* srm.map_usage | + ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ANNOTATION_SYMBOL' IN TYPEOF( mi ) ) ) | ( NOT ( SIZEOF( + QUERY ( aso <* USEDIN( a_s, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'STYLED_ITEM.ITEM' ) | ( NOT ( + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ANNOTATION_SUBFIGURE_OCCURRENCE' IN TYPEOF( aso ) ) ) ) ) = 0 ) ) ) ) = 0 ) ) ) ) > 0 ); wr3: ( SIZEOF( SELF.context_of_items.representations_in_context ) = 1 ); END_ENTITY; @@ -7883,17 +8266,17 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; SUBTYPE OF ( symbol_representation ); SELF\representation.items : SET [1 : ?] OF draughting_symbol_representation_item; UNIQUE - ur1 : name; + ur1 : SELF\representation.name; WHERE wr1: ( SIZEOF( QUERY ( item <* SELF\representation.items | ( SIZEOF( TYPEOF( item ) * [ - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ANNOTATION_CURVE_OCCURRENCE' , - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ANNOTATION_SYMBOL_OCCURRENCE' , - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ANNOTATION_FILL_AREA_OCCURRENCE' , + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ANNOTATION_CURVE_OCCURRENCE' , + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ANNOTATION_SYMBOL_OCCURRENCE' , + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ANNOTATION_FILL_AREA_OCCURRENCE' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ANNOTATION_TEXT_OCCURRENCE' ] ) = 1 ) ) ) >= 1 ); wr2: ( SIZEOF( QUERY ( item <* SELF\representation.items | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'ANNOTATION_SUBFIGURE_OCCURRENCE' IN TYPEOF( item ) ) ) ) = 0 ); wr3: ( SIZEOF( QUERY ( rm <* USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'REPRESENTATION_MAP.' - + 'MAPPED_REPRESENTATION' ) | ( NOT ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SYMBOL_REPRESENTATION_MAP' + + 'MAPPED_REPRESENTATION' ) | ( NOT ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SYMBOL_REPRESENTATION_MAP' IN TYPEOF( rm ) ) ) ) ) = 0 ); wr4: ( SIZEOF( SELF.context_of_items.representations_in_context ) = 1 ); END_ENTITY; @@ -7939,7 +8322,7 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; SUBTYPE OF ( presentation_area ); revision_identifier : identifier; WHERE - wr1: ( SIZEOF( QUERY ( item <* SELF\representation.items | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MAPPED_ITEM' + wr1: ( SIZEOF( QUERY ( item <* SELF\representation.items | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MAPPED_ITEM' IN TYPEOF( item ) ) AND ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DRAWING_SHEET_REVISION' IN TYPEOF( item\ mapped_item.mapping_source.mapped_representation ) ) ) ) ) = 0 ); END_ENTITY; @@ -7958,14 +8341,18 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; SUBTYPE OF ( area_in_set ); sheet_number : identifier; UNIQUE - ur1 : sheet_number, in_set; + ur1 : sheet_number, SELF\area_in_set.in_set; WHERE - wr1: ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DRAWING_SHEET_REVISION' IN TYPEOF( SELF\area_in_set.area ) ) AND + wr1: ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DRAWING_SHEET_REVISION' IN TYPEOF( SELF\area_in_set.area ) ) AND ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DRAWING_REVISION' IN TYPEOF( SELF\area_in_set.in_set ) ) ); END_ENTITY; ENTITY edge - SUPERTYPE OF ( ONEOF ( edge_curve, oriented_edge, subedge ) ) + SUPERTYPE OF ( + ONEOF ( + edge_curve, + oriented_edge, + subedge ) ) SUBTYPE OF ( topological_representation_item ); edge_start : vertex; edge_end : vertex; @@ -7980,45 +8367,50 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; SUBTYPE OF ( shape_representation ); WHERE wr1: ( SIZEOF( QUERY ( it <* SELF.items | ( NOT ( SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'EDGE_BASED_WIREFRAME_MODEL' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MAPPED_ITEM', + + 'EDGE_BASED_WIREFRAME_MODEL' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MAPPED_ITEM', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.AXIS2_PLACEMENT_3D' ] * TYPEOF( it ) ) = 1 ) ) ) ) = 0 ); wr2: ( SIZEOF( QUERY ( it <* SELF.items | ( SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'EDGE_BASED_WIREFRAME_MODEL' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MAPPED_ITEM'] * TYPEOF( it ) ) = 1 ) ) ) >= 1 ); wr3: ( SIZEOF( QUERY ( ebwm <* QUERY ( it <* SELF.items | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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 ( + edge_based_wireframe_model.ebwm_boundary | ( NOT ( SIZEOF( QUERY ( edges <* eb.ces_edges | ( NOT ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EDGE_CURVE' IN TYPEOF( edges ) ) ) ) ) = 0 ) ) ) ) = 0 ) ) ) ) = 0 ); wr4: ( SIZEOF( QUERY ( ebwm <* QUERY ( it <* SELF.items | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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 | - ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POLYLINE' IN TYPEOF( edges\edge_curve.edge_geometry ) ) ) | ( + edge_based_wireframe_model.ebwm_boundary | ( NOT ( SIZEOF( QUERY ( pline_edges <* QUERY ( edges <* eb.ces_edges | + ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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 | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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 ( ( - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.VERTEX_POINT' IN TYPEOF( edges.edge_start ) ) AND ( - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.VERTEX_POINT' IN TYPEOF( edges.edge_end ) ) ) ) ) ) = 0 ) ) ) ) + edge_based_wireframe_model.ebwm_boundary | ( NOT ( SIZEOF( QUERY ( edges <* eb.ces_edges | ( NOT ( ( + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.VERTEX_POINT' IN TYPEOF( edges.edge_start ) ) AND ( + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.VERTEX_POINT' IN TYPEOF( edges.edge_end ) ) ) ) ) ) = 0 ) ) ) ) = 0 ) ) ) ) = 0 ); wr6: ( SIZEOF( QUERY ( ebwm <* QUERY ( it <* SELF.items | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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 + 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 | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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( + 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 | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MAPPED_ITEM' IN - TYPEOF( it ) ) ) | ( NOT ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + - 'EDGE_BASED_WIREFRAME_SHAPE_REPRESENTATION' ) IN TYPEOF( mi\mapped_item.mapping_source.mapped_representation ) ) ) ) ) + wr8: ( SIZEOF( QUERY ( mi <* QUERY ( it <* SELF.items | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MAPPED_ITEM' IN + TYPEOF( it ) ) ) | ( NOT ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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_chamfered_edges ) ) + ABSTRACT SUPERTYPE OF ( + track_blended_solid + ANDOR + ONEOF ( + solid_with_constant_radius_edge_blend, + solid_with_chamfered_edges ) ) SUBTYPE OF ( modified_solid ); blended_edges : LIST [1 : ?] OF UNIQUE edge_curve; END_ENTITY; @@ -8040,56 +8432,56 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; ENTITY edge_round SUBTYPE OF ( transition_feature ); WHERE - wr1: ( ( NOT ( SELF\shape_aspect.description = 'constant radius' ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( + wr1: ( ( NOT ( SELF\shape_aspect.description = 'constant radius' ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( pdr <* USEDIN( pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.' - + 'DEFINITION' ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN + + 'DEFINITION' ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) ) = 1 ) ) ) ) = 0 ) ); - wr2: ( ( NOT ( SELF\shape_aspect.description = 'constant radius' ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( + wr2: ( ( NOT ( SELF\shape_aspect.description = 'constant radius' ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( ( NOT ( SIZEOF( impl_rep. - used_representation.items ) >= 1 ) ) AND ( SIZEOF( impl_rep.used_representation.items ) <= 3 ) ) ) ) = 0 ) ) ) ) = + used_representation.items ) >= 1 ) ) AND ( SIZEOF( impl_rep.used_representation.items ) <= 3 ) ) ) ) = 0 ) ) ) ) = 0 ) ); - wr3: ( ( NOT ( SELF.description = 'constant radius' ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( + wr3: ( ( NOT ( SELF.description = 'constant radius' ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( + + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'MEASURE_REPRESENTATION_ITEM' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * + + 'MEASURE_REPRESENTATION_ITEM' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF( it ) ) = 2 ) AND ( it.name = 'radius' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ) ); - wr4: ( ( NOT ( SELF.description = 'constant radius' ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( + wr4: ( ( NOT ( SELF.description = 'constant radius' ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( + + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'MEASURE_REPRESENTATION_ITEM' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * + + 'MEASURE_REPRESENTATION_ITEM' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF( it ) ) = 2 ) AND ( it.name = 'first offset' ) ) ) ) <= 1 ) ) ) ) = 0 ) ) ) ) = 0 ) ); - wr5: ( ( NOT ( SELF.description = 'constant radius' ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( + wr5: ( ( NOT ( SELF.description = 'constant radius' ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( + + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'MEASURE_REPRESENTATION_ITEM' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * + + 'MEASURE_REPRESENTATION_ITEM' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF( it ) ) = 2 ) AND ( it.name = 'second offset' ) ) ) ) <= 1 ) ) ) ) = 0 ) ) ) ) = 0 ) ); wr6: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( pdr <* USEDIN( pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'FACE_SHAPE_REPRESENTATION' IN TYPEOF( pdr.used_representation ) ) AND ( pdr.used_representation.name = + + 'FACE_SHAPE_REPRESENTATION' IN TYPEOF( pdr.used_representation ) ) AND ( pdr.used_representation.name = 'edge round face' ) ) ) ) <= 1 ) ) ) ) = 0 ); wr7: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( pdr <* USEDIN( pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'FACE_SHAPE_REPRESENTATION' IN TYPEOF( pdr.used_representation ) ) AND ( pdr.used_representation.name = + + 'FACE_SHAPE_REPRESENTATION' IN TYPEOF( pdr.used_representation ) ) AND ( pdr.used_representation.name = 'first face shape' ) ) ) ) <= 1 ) ) ) ) = 0 ); wr8: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( pdr <* USEDIN( pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'FACE_SHAPE_REPRESENTATION' IN TYPEOF( pdr.used_representation ) ) AND ( pdr.used_representation.name = + + 'FACE_SHAPE_REPRESENTATION' IN TYPEOF( pdr.used_representation ) ) AND ( pdr.used_representation.name = 'second face shape' ) ) ) ) <= 1 ) ) ) ) = 0 ); END_ENTITY; @@ -8098,7 +8490,7 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; WHERE wr1: ( ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' ) IN TYPEOF( SELF\ - shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold ) ) + shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold ) ) AND ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COUNT_MEASURE' IN value_limit_type( SELF\ shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold ) ) ); wr2: validate_measured_data_type( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COUNT_MEASURE' ); @@ -8108,14 +8500,19 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; END_ENTITY; ENTITY effectivity - SUPERTYPE OF ( ONEOF ( serial_numbered_effectivity, dated_effectivity, lot_effectivity, time_interval_based_effectivity ) ); + SUPERTYPE OF ( + ONEOF ( + serial_numbered_effectivity, + dated_effectivity, + lot_effectivity, + time_interval_based_effectivity ) ); id : identifier; DERIVE name : label := get_name_value( SELF ); description : text := get_description_value( SELF ); WHERE wr1: ( SIZEOF( USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'NAME_ATTRIBUTE.NAMED_ITEM' ) ) <= 1 ); - wr2: ( SIZEOF( USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'DESCRIPTION_ATTRIBUTE.DESCRIBED_ITEM' ) ) + wr2: ( SIZEOF( USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'DESCRIPTION_ATTRIBUTE.DESCRIBED_ITEM' ) ) <= 1 ); END_ENTITY; @@ -8125,7 +8522,7 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; DERIVE role : object_role := get_role( SELF ); WHERE - wr1: ( SIZEOF( USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'ROLE_ASSOCIATION.ITEM_WITH_ROLE' ) ) <= + wr1: ( SIZEOF( USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'ROLE_ASSOCIATION.ITEM_WITH_ROLE' ) ) <= 1 ); END_ENTITY; @@ -8171,7 +8568,7 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; SUBTYPE OF ( named_unit ); WHERE wr1: ( ( SELF\named_unit.dimensions.length_exponent = 0 ) AND ( SELF\named_unit.dimensions.mass_exponent = 0 ) AND ( SELF\ - named_unit.dimensions.time_exponent = 0 ) AND ( SELF\named_unit.dimensions.electric_current_exponent = 1 ) AND ( + named_unit.dimensions.time_exponent = 0 ) AND ( SELF\named_unit.dimensions.electric_current_exponent = 1 ) AND ( SELF\named_unit.dimensions.thermodynamic_temperature_exponent = 0 ) AND ( SELF\named_unit.dimensions. amount_of_substance_exponent = 0 ) AND ( SELF\named_unit.dimensions.luminous_intensity_exponent = 0 ) ); END_ENTITY; @@ -8193,64 +8590,64 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; SUBTYPE OF ( shape_representation ); WHERE wr1 : ( SIZEOF( QUERY ( it <* SELF.items | ( NOT ( SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'MANIFOLD_SOLID_BREP' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FACETED_BREP', + + 'MANIFOLD_SOLID_BREP' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FACETED_BREP', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MAPPED_ITEM' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'AXIS2_PLACEMENT_3D' ] * TYPEOF( it ) ) = 1 ) ) ) ) = 0 ); - wr2 : ( SIZEOF( QUERY ( it <* SELF.items | ( SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MANIFOLD_SOLID_BREP', + wr2 : ( SIZEOF( QUERY ( it <* SELF.items | ( SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MANIFOLD_SOLID_BREP', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MAPPED_ITEM' ] * TYPEOF( it ) ) = 1 ) ) ) > 0 ); wr3 : ( SIZEOF( QUERY ( msb <* QUERY ( it <* SELF.items | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'MANIFOLD_SOLID_BREP' IN TYPEOF( it ) ) ) | ( NOT ( SIZEOF( QUERY ( csh <* msb_shells( msb ) | ( NOT ( - SIZEOF( QUERY ( fcs <* csh.cfs_faces | ( NOT ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FACE_SURFACE' IN + + 'MANIFOLD_SOLID_BREP' IN TYPEOF( it ) ) ) | ( NOT ( SIZEOF( QUERY ( csh <* msb_shells( msb ) | ( NOT ( + SIZEOF( QUERY ( fcs <* csh.cfs_faces | ( NOT ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FACE_SURFACE' IN TYPEOF( fcs ) ) ) ) ) = 0 ) ) ) ) = 0 ) ) ) ) = 0 ); wr4 : ( SIZEOF( QUERY ( msb <* QUERY ( it <* SELF.items | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'MANIFOLD_SOLID_BREP' IN TYPEOF( it ) ) ) | ( NOT ( SIZEOF( QUERY ( csh <* msb_shells( msb ) | ( NOT ( + + 'MANIFOLD_SOLID_BREP' IN TYPEOF( it ) ) ) | ( NOT ( SIZEOF( QUERY ( csh <* msb_shells( msb ) | ( NOT ( SIZEOF( QUERY ( fcs <* csh\connected_face_set.cfs_faces | ( NOT ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'ELEMENTARY_SURFACE' IN TYPEOF( fcs\face_surface.face_geometry ) ) ) ) ) = 0 ) ) ) ) = 0 ) ) ) ) = 0 ); wr5 : ( SIZEOF( QUERY ( msb <* QUERY ( it <* SELF.items | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'MANIFOLD_SOLID_BREP' IN TYPEOF( it ) ) ) | ( NOT ( SIZEOF( QUERY ( csh <* msb_shells( msb ) | ( NOT ( + + '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 | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EDGE_LOOP' IN TYPEOF( bnds.bound ) ) ) | ( NOT ( + .bounds | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EDGE_LOOP' IN TYPEOF( bnds.bound ) ) ) | ( NOT ( SIZEOF( QUERY ( oe <* elp_fbnds.bound\path.edge_list | ( NOT ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'EDGE_CURVE' IN TYPEOF( oe.edge_element ) ) ) ) ) = 0 ) ) ) ) = 0 ) ) ) ) = 0 ) ) ) ) = 0 ) ) ) ) = 0 ); wr6 : ( SIZEOF( QUERY ( msb <* QUERY ( it <* SELF.items | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'MANIFOLD_SOLID_BREP' IN TYPEOF( it ) ) ) | ( NOT ( SIZEOF( QUERY ( csh <* msb_shells( msb ) | ( NOT ( + + '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 | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EDGE_LOOP' IN TYPEOF( bnds.bound ) ) ) | ( NOT ( + .bounds | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EDGE_LOOP' IN TYPEOF( bnds.bound ) ) ) | ( NOT ( SIZEOF( QUERY ( oe <* elp_fbnds.bound\path.edge_list | ( NOT ( SIZEOF( [ - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LINE' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CONIC', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POLYLINE' ] * TYPEOF( oe.edge_element\edge_curve.edge_geometry ) ) + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LINE' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CONIC', + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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 | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'MANIFOLD_SOLID_BREP' IN TYPEOF( it ) ) ) | ( NOT ( SIZEOF( QUERY ( csh <* msb_shells( msb ) | ( NOT ( + + '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 | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EDGE_LOOP' IN TYPEOF( bnds.bound ) ) ) | ( NOT ( + .bounds | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EDGE_LOOP' IN TYPEOF( bnds.bound ) ) ) | ( NOT ( SIZEOF( QUERY ( oe <* elp_fbnds.bound\path.edge_list | ( NOT ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'VERTEX_POINT' IN TYPEOF( oe.edge_start ) ) AND ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'VERTEX_POINT' IN TYPEOF( oe.edge_end ) ) ) ) ) ) = 0 ) ) ) ) = 0 ) ) ) ) = 0 ) ) ) ) = 0 ) ) ) ) = 0 ); wr8 : ( SIZEOF( QUERY ( msb <* QUERY ( it <* SELF.items | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'MANIFOLD_SOLID_BREP' IN TYPEOF( it ) ) ) | ( NOT ( SIZEOF( QUERY ( csh <* msb_shells( msb ) | ( NOT ( + + '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 | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EDGE_LOOP' IN TYPEOF( bnds.bound ) ) ) | ( NOT ( + .bounds | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EDGE_LOOP' IN TYPEOF( bnds.bound ) ) ) | ( NOT ( SIZEOF( QUERY ( oe <* elp_fbnds.bound\path.edge_list | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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 ) ) ) ) + edge_element\edge_curve.edge_geometry\polyline.points ) >= 3 ) ) ) ) ) = 0 ) ) ) ) = 0 ) ) ) ) = 0 ) ) ) ) = 0 ) ) ) ) = 0 ); - wr9 : ( SIZEOF( QUERY ( msb <* QUERY ( it <* items | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MANIFOLD_SOLID_BREP' + wr9 : ( SIZEOF( QUERY ( msb <* QUERY ( it <* items | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MANIFOLD_SOLID_BREP' IN TYPEOF( it ) ) ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ORIENTED_CLOSED_SHELL' IN TYPEOF( msb\ manifold_solid_brep.outer ) ) ) ) = 0 ); wr10: ( SIZEOF( QUERY ( brv <* QUERY ( it <* items | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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 | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MAPPED_ITEM' IN - TYPEOF( it ) ) ) | ( NOT ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ELEMENTARY_BREP_SHAPE_REPRESENTATION' + wr11: ( SIZEOF( QUERY ( mi <* QUERY ( it <* items | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MAPPED_ITEM' IN + TYPEOF( it ) ) ) | ( NOT ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ELEMENTARY_BREP_SHAPE_REPRESENTATION' IN TYPEOF( mi\mapped_item.mapping_source.mapped_representation ) ) ) ) ) = 0 ); wr12: ( SIZEOF( QUERY ( msb <* QUERY ( it <* SELF.items | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'MANIFOLD_SOLID_BREP' IN TYPEOF( it ) ) ) | ( NOT ( SIZEOF( QUERY ( csh <* msb_shells( msb ) | ( NOT ( + + '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 | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.VERTEX_LOOP' IN TYPEOF( bnds.bound ) ) ) | ( NOT ( ( + .bounds | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.VERTEX_LOOP' IN TYPEOF( bnds.bound ) ) ) | ( NOT ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.VERTEX_POINT' IN TYPEOF( vlp_fbnds\face_bound.bound\vertex_loop .loop_vertex ) ) AND ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CARTESIAN_POINT' IN TYPEOF( vlp_fbnds\ - face_bound.bound\vertex_loop.loop_vertex\vertex_point.vertex_geometry ) ) ) ) ) ) = 0 ) ) ) ) = 0 ) ) ) ) = 0 ) ) ) ) + face_bound.bound\vertex_loop.loop_vertex\vertex_point.vertex_geometry ) ) ) ) ) ) = 0 ) ) ) ) = 0 ) ) ) ) = 0 ) ) ) ) = 0 ); END_ENTITY; @@ -8265,7 +8662,13 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; END_ENTITY; ENTITY elementary_surface - SUPERTYPE OF ( ONEOF ( plane, cylindrical_surface, conical_surface, spherical_surface, toroidal_surface ) ) + SUPERTYPE OF ( + ONEOF ( + plane, + cylindrical_surface, + conical_surface, + spherical_surface, + toroidal_surface ) ) SUBTYPE OF ( surface ); position : axis2_placement_3d; END_ENTITY; @@ -8374,38 +8777,60 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; END_ENTITY; ENTITY erroneous_data - ABSTRACT SUPERTYPE OF ( ONEOF ( erroneous_topology, erroneous_geometry, erroneous_topology_and_geometry_relationship, - erroneous_manifold_solid_brep ) ) + ABSTRACT SUPERTYPE OF ( + ONEOF ( + erroneous_topology, + erroneous_geometry, + erroneous_topology_and_geometry_relationship, + erroneous_manifold_solid_brep ) ) SUBTYPE OF ( shape_data_quality_criterion ); END_ENTITY; ENTITY erroneous_geometry - ABSTRACT SUPERTYPE OF ( ONEOF ( inconsistent_curve_transition_code, erroneous_b_spline_curve_definition, - inconsistent_surface_transition_code, erroneous_b_spline_surface_definition ) ) + ABSTRACT SUPERTYPE OF ( + ONEOF ( + inconsistent_curve_transition_code, + erroneous_b_spline_curve_definition, + inconsistent_surface_transition_code, + erroneous_b_spline_surface_definition ) ) SUBTYPE OF ( erroneous_data ); END_ENTITY; ENTITY erroneous_manifold_solid_brep - ABSTRACT SUPERTYPE OF ( ONEOF ( wrongly_oriented_void, wrongly_placed_void, intersecting_shells_in_solid, - solid_with_wrong_number_of_voids ) ) + ABSTRACT SUPERTYPE OF ( + ONEOF ( + wrongly_oriented_void, + wrongly_placed_void, + intersecting_shells_in_solid, + solid_with_wrong_number_of_voids ) ) SUBTYPE OF ( erroneous_data ); END_ENTITY; ENTITY erroneous_topology - ABSTRACT SUPERTYPE OF ( ONEOF ( open_edge_loop, open_closed_shell, inconsistent_adjacent_face_normals, disconnected_face_set ) ) + ABSTRACT SUPERTYPE OF ( + ONEOF ( + open_edge_loop, + open_closed_shell, + inconsistent_adjacent_face_normals, + disconnected_face_set ) ) SUBTYPE OF ( erroneous_data ); END_ENTITY; ENTITY erroneous_topology_and_geometry_relationship - ABSTRACT SUPERTYPE OF ( ONEOF ( inconsistent_edge_and_curve_directions, inconsistent_face_and_surface_normals, - inconsistent_face_and_closed_shell_normals, intersecting_loops_in_face, wrongly_placed_loop ) ) + ABSTRACT SUPERTYPE OF ( + ONEOF ( + inconsistent_edge_and_curve_directions, + inconsistent_face_and_surface_normals, + inconsistent_face_and_closed_shell_normals, + intersecting_loops_in_face, + wrongly_placed_loop ) ) SUBTYPE OF ( erroneous_data ); END_ENTITY; ENTITY evaluated_characteristic SUBTYPE OF ( representation, representation_relationship ); UNIQUE - ur1 : rep_1, rep_2; + 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; @@ -8465,7 +8890,7 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; WHERE wr1: ( ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' ) IN TYPEOF( SELF\ - shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold ) ) + shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold ) ) AND ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COUNT_MEASURE' IN value_limit_type( SELF\ shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold ) ) ); wr2: validate_measured_data_type( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COUNT_MEASURE' ); @@ -8479,7 +8904,7 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; WHERE wr1: ( ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' ) IN TYPEOF( SELF\ - shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold ) ) + shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold ) ) AND ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COUNT_MEASURE' IN value_limit_type( SELF\ shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold ) ) ); wr2: validate_measured_data_type( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COUNT_MEASURE' ); @@ -8506,7 +8931,10 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; END_ENTITY; ENTITY explicit_constraint - ABSTRACT SUPERTYPE OF ( ONEOF ( defined_constraint, free_form_constraint ) ) + ABSTRACT SUPERTYPE OF ( + ONEOF ( + defined_constraint, + free_form_constraint ) ) SUBTYPE OF ( variational_representation_item ); description : OPTIONAL text; constrained_elements : SET [1 : ?] OF representation_item; @@ -8516,13 +8944,27 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; END_ENTITY; ENTITY explicit_geometric_constraint - ABSTRACT SUPERTYPE OF ( ONEOF ( fixed_element_geometric_constraint, parallel_geometric_constraint, - point_distance_geometric_constraint, skew_line_distance_geometric_constraint, curve_distance_geometric_constraint, - surface_distance_geometric_constraint, radius_geometric_constraint, curve_length_geometric_constraint, - parallel_offset_geometric_constraint, angle_geometric_constraint, perpendicular_geometric_constraint, - incidence_geometric_constraint, coaxial_geometric_constraint, tangent_geometric_constraint, symmetry_geometric_constraint, - swept_point_curve_geometric_constraint, swept_curve_surface_geometric_constraint, curve_smoothness_geometric_constraint, - surface_smoothness_geometric_constraint ) ) + ABSTRACT SUPERTYPE OF ( + ONEOF ( + fixed_element_geometric_constraint, + parallel_geometric_constraint, + point_distance_geometric_constraint, + skew_line_distance_geometric_constraint, + curve_distance_geometric_constraint, + surface_distance_geometric_constraint, + radius_geometric_constraint, + curve_length_geometric_constraint, + parallel_offset_geometric_constraint, + angle_geometric_constraint, + perpendicular_geometric_constraint, + incidence_geometric_constraint, + coaxial_geometric_constraint, + tangent_geometric_constraint, + symmetry_geometric_constraint, + swept_point_curve_geometric_constraint, + swept_curve_surface_geometric_constraint, + curve_smoothness_geometric_constraint, + surface_smoothness_geometric_constraint ) ) SUBTYPE OF ( defined_constraint, geometric_representation_item ); SELF\explicit_constraint.constrained_elements : SET [1 : ?] OF geometric_representation_item; SELF\explicit_constraint.reference_elements : SET [0 : ?] OF geometric_representation_item; @@ -8543,7 +8985,7 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; WHERE wr1: ( NOT ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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 ) | + 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; @@ -8564,14 +9006,23 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; END_ENTITY; ENTITY explicit_table_function - ABSTRACT SUPERTYPE OF ( ONEOF ( listed_data, externally_listed_data, linearized_table_function, basic_sparse_matrix ) ) + ABSTRACT SUPERTYPE OF ( + ONEOF ( + listed_data, + externally_listed_data, + linearized_table_function, + basic_sparse_matrix ) ) SUBTYPE OF ( maths_function ); index_base : zero_or_one; shape : LIST [1 : ?] OF positive_integer; END_ENTITY; ENTITY expression - ABSTRACT SUPERTYPE OF ( ONEOF ( numeric_expression, boolean_expression, string_expression ) ) + ABSTRACT SUPERTYPE OF ( + ONEOF ( + numeric_expression, + boolean_expression, + string_expression ) ) SUBTYPE OF ( generic_expression ); END_ENTITY; @@ -8603,7 +9054,9 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; ENTITY extended_tuple_space SUBTYPE OF ( maths_space, generic_literal ); - base : product_space; +(* next line replaced by the line thereafter as patch for BZ#5052 + base : product_space; *) + base : tuple_space; extender : maths_space; WHERE wr1: ( expression_is_constant( base ) AND expression_is_constant( extender ) ); @@ -8636,7 +9089,7 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; DERIVE description : text := get_description_value( SELF ); WHERE - wr1: ( SIZEOF( USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'DESCRIPTION_ATTRIBUTE.DESCRIBED_ITEM' ) ) + wr1: ( SIZEOF( USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'DESCRIPTION_ATTRIBUTE.DESCRIBED_ITEM' ) ) <= 1 ); END_ENTITY; @@ -8650,22 +9103,22 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; ENTITY externally_conditioned_data_quality_criteria_representation SUBTYPE OF ( data_quality_criteria_representation ); WHERE - wr1: ( SIZEOF( QUERY ( q <* SELF\representation.items | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + + wr1: ( SIZEOF( QUERY ( q <* SELF\representation.items | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'EXTERNALLY_CONDITIONED_DATA_QUALITY_CRITERION' ) IN TYPEOF( q ) ) ) ) > 0 ); END_ENTITY; ENTITY externally_conditioned_data_quality_criterion SUBTYPE OF ( data_quality_criterion, data_quality_measurement_requirement ); WHERE - wr1: ( SIZEOF( USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + + wr1: ( SIZEOF( USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'DATA_QUALITY_CRITERION_ASSESSMENT_ASSOCIATION.' + 'CRITERION' ) ) = 0 ); - wr2: ( SIZEOF( QUERY ( i1 <* bag_to_set( USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + - 'REPRESENTATION_ITEM_RELATIONSHIP.' + 'RELATED_REPRESENTATION_ITEM' ) ) | ( ( - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'DATA_QUALITY_CRITERION_MEASUREMENT_ASSOCIATION' ) IN + wr2: ( SIZEOF( QUERY ( i1 <* bag_to_set( USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + + 'REPRESENTATION_ITEM_RELATIONSHIP.' + 'RELATED_REPRESENTATION_ITEM' ) ) | ( ( + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'DATA_QUALITY_CRITERION_MEASUREMENT_ASSOCIATION' ) IN TYPEOF( i1 ) ) ) ) = 0 ); - wr3: ( SIZEOF( QUERY ( i1 <* bag_to_set( USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + - 'REPRESENTATION_ITEM_RELATIONSHIP.' + 'RELATING_REPRESENTATION_ITEM' ) ) | ( ( - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'DATA_QUALITY_CRITERION_MEASUREMENT_ASSOCIATION' ) IN + wr3: ( SIZEOF( QUERY ( i1 <* bag_to_set( USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + + 'REPRESENTATION_ITEM_RELATIONSHIP.' + 'RELATING_REPRESENTATION_ITEM' ) ) | ( ( + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'DATA_QUALITY_CRITERION_MEASUREMENT_ASSOCIATION' ) IN TYPEOF( i1 ) ) ) ) = 0 ); END_ENTITY; @@ -8673,8 +9126,8 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; SUBTYPE OF ( data_quality_inspection_instance_report_item ); SELF\data_quality_inspection_instance_report_item.inspected_elements : SET [1 : ?] OF inspected_ecdq_element_select; WHERE - wr1: ( SIZEOF( QUERY ( i1 <* bag_to_set( USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + - 'DATA_QUALITY_INSPECTION_INSTANCE_REPORT.' + 'INSPECTED_INSTANCES' ) ) | ( NOT ( ( + wr1: ( SIZEOF( QUERY ( i1 <* bag_to_set( USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + + 'DATA_QUALITY_INSPECTION_INSTANCE_REPORT.' + 'INSPECTED_INSTANCES' ) ) | ( NOT ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'EXTERNALLY_CONDITIONED_DATA_QUALITY_INSPECTION_RESULT' ) IN TYPEOF( i1.inspection_result ) ) ) ) ) = 0 ); END_ENTITY; @@ -8682,14 +9135,14 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; ENTITY externally_conditioned_data_quality_inspection_result SUBTYPE OF ( data_quality_inspection_result ); WHERE - wr1: ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'EXTERNALLY_CONDITIONED_DATA_QUALITY_CRITERION' ) IN TYPEOF( + wr1: ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'EXTERNALLY_CONDITIONED_DATA_QUALITY_CRITERION' ) IN TYPEOF( SELF\data_quality_inspection_result.criterion_inspected ) ); END_ENTITY; ENTITY externally_conditioned_data_quality_inspection_result_representation SUBTYPE OF ( data_quality_inspection_result_representation ); WHERE - wr1: ( SIZEOF( QUERY ( q <* SELF\representation.items | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + + wr1: ( SIZEOF( QUERY ( q <* SELF\representation.items | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'EXTERNALLY_CONDITIONED_DATA_QUALITY_INSPECTION_RESULT' ) IN TYPEOF( q ) ) ) ) > 0 ); END_ENTITY; @@ -8727,216 +9180,216 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; 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, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'APPLIED_DOCUMENT_REFERENCE.ITEMS' ) | ( adr.assigned_document.description = + + 'APPLIED_DOCUMENT_REFERENCE.ITEMS' ) | ( adr.assigned_document.description = 'external size dimension specification' ) ) ) ); END_ENTITY; ENTITY externally_defined_feature_definition SUBTYPE OF ( feature_definition, externally_defined_item ); WHERE - wr1 : ( ( ( SELF\characterized_object.description = 'thread' ) AND ( SELF\externally_defined_item.item_id = 'external thread' ) + wr1 : ( ( ( SELF\characterized_object.description = 'thread' ) AND ( SELF\externally_defined_item.item_id = 'external thread' ) AND ( SELF\externally_defined_item.source.source_id = 'external feature specification' ) ) OR ( ( SELF\ - characterized_object.description = 'gear' ) AND ( SELF\externally_defined_item.item_id = 'external gear' ) AND ( + characterized_object.description = 'gear' ) AND ( SELF\externally_defined_item.item_id = 'external gear' ) AND ( SELF\externally_defined_item.source.source_id = 'external feature specification' ) ) OR ( ( SELF\ - characterized_object.description = 'marking' ) AND ( SELF\externally_defined_item.item_id = 'external marking' ) + characterized_object.description = 'marking' ) AND ( SELF\externally_defined_item.item_id = 'external marking' ) AND ( SELF\externally_defined_item.source.source_id = 'external feature specification' ) ) OR ( ( SELF\ - characterized_object.description = 'knurl' ) AND ( SELF\externally_defined_item.item_id = 'external knurl' ) AND + characterized_object.description = 'knurl' ) AND ( SELF\externally_defined_item.item_id = 'external knurl' ) AND ( SELF\externally_defined_item.source.source_id = 'external feature specification' ) ) ); - wr2 : ( ( NOT ( SELF\characterized_object.description = 'thread' ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( SIZEOF( QUERY ( pdr <* - USEDIN( pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( + wr2 : ( ( NOT ( SELF\characterized_object.description = 'thread' ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( SIZEOF( QUERY ( pdr <* + USEDIN( pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. used_representation ) ) AND ( 5 <= SIZEOF( pdr.used_representation.items ) ) AND ( SIZEOF( pdr.used_representation .items ) <= 10 ) ) ) ) = 1 ) ) ) = 1 ) ); - wr3 : ( ( NOT ( SELF\characterized_object.description = 'marking' ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( SIZEOF( QUERY ( pdr <* - USEDIN( pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( + wr3 : ( ( NOT ( SELF\characterized_object.description = 'marking' ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( SIZEOF( QUERY ( pdr <* + USEDIN( pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. used_representation ) ) AND ( SIZEOF( pdr.used_representation.items ) = 2 ) ) ) ) = 1 ) ) ) = 1 ) ); - wr4 : ( ( NOT ( SELF\characterized_object.description = 'knurl' ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( SIZEOF( QUERY ( pdr <* - USEDIN( pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( + wr4 : ( ( NOT ( SELF\characterized_object.description = 'knurl' ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( SIZEOF( QUERY ( pdr <* + USEDIN( pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. used_representation ) ) AND ( SIZEOF( pdr.used_representation.items ) = 1 ) ) ) ) = 1 ) ) ) = 1 ) ); - wr5 : ( ( NOT ( SELF\characterized_object.description IN [ 'knurl', 'thread'] ) ) OR ( SIZEOF( QUERY ( pds <* - QUERY ( pd <* USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | - ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) | ( NOT ( + wr5 : ( ( NOT ( SELF\characterized_object.description IN [ 'knurl', 'thread'] ) ) OR ( SIZEOF( QUERY ( pds <* + QUERY ( pd <* USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | + ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) | ( NOT ( SIZEOF( QUERY ( sa_occ <* USEDIN( pds, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) - | ( ( sa_occ.description = 'partial area occurrence' ) AND ( SIZEOF( QUERY ( sdr <* QUERY ( sar <* USEDIN( sa_occ, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.' + 'RELATED_SHAPE_ASPECT' ) | ( ( + | ( ( sa_occ.description = 'partial area occurrence' ) AND ( SIZEOF( QUERY ( sdr <* QUERY ( sar <* USEDIN( sa_occ, + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.' + 'RELATED_SHAPE_ASPECT' ) | ( ( sar.description = 'applied area usage' ) AND ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF( sar ) ) ) ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'APPLIED_AREA' IN TYPEOF( sdr.relating_shape_aspect ) ) ) ) = 1 ) ) ) ) <= 1 ) ) ) ) = 0 ) ); - wr6 : ( ( NOT ( SELF\characterized_object.description = 'marking' ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( + wr6 : ( ( NOT ( SELF\characterized_object.description = 'marking' ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( + + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF( it ) ) AND ( it.name = 'marking text' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) + + 'DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF( it ) ) AND ( it.name = 'marking text' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ) ); - wr7 : ( ( NOT ( SELF\characterized_object.description = 'thread' ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( + wr7 : ( ( NOT ( SELF\characterized_object.description = 'thread' ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( + + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF( it ) ) AND ( it.name = 'removal direction' ) AND ( ( it. description = 'internal' ) OR ( it.description = 'external' ) ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ) ); - wr8 : ( ( NOT ( SELF\characterized_object.description = 'thread' ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( + wr8 : ( ( NOT ( SELF\characterized_object.description = 'thread' ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( + + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF( it ) ) AND ( it.name = 'qualifier' ) ) ) ) <= 1 ) ) ) ) = 0 ) ) ) ) + + 'DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF( it ) ) AND ( it.name = 'qualifier' ) ) ) ) <= 1 ) ) ) ) = 0 ) ) ) ) = 0 ) ); - wr9 : ( ( NOT ( SELF\characterized_object.description = 'thread' ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( + wr9 : ( ( NOT ( SELF\characterized_object.description = 'thread' ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( + + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF( it ) ) AND ( it.name = 'hand' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ) ); - wr10: ( ( NOT ( SELF\characterized_object.description = 'thread' ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( + wr10: ( ( NOT ( SELF\characterized_object.description = 'thread' ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( + + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF( it ) ) AND ( it.name = 'fit class' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) + + 'DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF( it ) ) AND ( it.name = 'fit class' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ) ); - wr11: ( ( NOT ( SELF\characterized_object.description = 'thread' ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( + wr11: ( ( NOT ( SELF\characterized_object.description = 'thread' ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( + + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF( it ) ) AND ( it.name = 'form' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ) ); - wr12: ( ( NOT ( SELF\characterized_object.description = 'thread' ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( + wr12: ( ( NOT ( SELF\characterized_object.description = 'thread' ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( + + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'MEASURE_REPRESENTATION_ITEM' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * + + 'MEASURE_REPRESENTATION_ITEM' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF( it ) ) = 2 ) AND ( it.name = 'major diameter' ) ) ) ) <= 1 ) ) ) ) = 0 ) ) ) ) = 0 ) ); - wr13: ( ( NOT ( SELF\characterized_object.description = 'thread' ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( + wr13: ( ( NOT ( SELF\characterized_object.description = 'thread' ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( + + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'MEASURE_REPRESENTATION_ITEM' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.RATIO_MEASURE_WITH_UNIT'] * + + 'MEASURE_REPRESENTATION_ITEM' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.RATIO_MEASURE_WITH_UNIT'] * TYPEOF( it ) ) = 2 ) AND ( it.name = 'number of threads' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ) ); wr14: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( + + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF( it ) ) AND ( it.name = 'fit class 2' ) ) ) ) <= 1 ) ) ) ) = 0 ) ) ) ) + + 'DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF( it ) ) AND ( it.name = 'fit class 2' ) ) ) ) <= 1 ) ) ) ) = 0 ) ) ) ) = 0 ); wr15: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( + + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'MEASURE_REPRESENTATION_ITEM' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * + + 'MEASURE_REPRESENTATION_ITEM' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF( it ) ) = 2 ) AND ( it.name = 'nominal size' ) ) ) ) <= 1 ) ) ) ) = 0 ) ) ) ) = 0 ); - wr16: ( ( NOT ( SELF\characterized_object.description IN [ 'knurl', 'gear', 'thread'] ) ) OR ( SIZEOF( QUERY ( pds <* - QUERY ( pd <* USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | - ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) | ( NOT ( + wr16: ( ( NOT ( SELF\characterized_object.description IN [ 'knurl', 'gear', 'thread'] ) ) OR ( SIZEOF( QUERY ( pds <* + QUERY ( pd <* USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | + ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) | ( NOT ( SIZEOF( QUERY ( sa_occ <* USEDIN( pds, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) | ( SIZEOF( QUERY ( sdr <* QUERY ( sar <* USEDIN( sa_occ, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'SHAPE_ASPECT_RELATIONSHIP.' + 'RELATED_SHAPE_ASPECT' ) | ( ( sar.description = 'applied shape' ) AND ( - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF( sar ) ) ) ) | ( - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT' IN TYPEOF( sdr.relating_shape_aspect ) ) ) ) = 1 ) ) ) + + 'SHAPE_ASPECT_RELATIONSHIP.' + 'RELATED_SHAPE_ASPECT' ) | ( ( sar.description = 'applied shape' ) AND ( + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF( sar ) ) ) ) | ( + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT' IN TYPEOF( sdr.relating_shape_aspect ) ) ) ) = 1 ) ) ) <= 1 ) ) ) ) = 0 ) ); - wr17: ( ( NOT ( SELF\characterized_object.description IN [ 'gear'] ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( SIZEOF( QUERY ( pdr <* - USEDIN( pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( + wr17: ( ( NOT ( SELF\characterized_object.description IN [ 'gear'] ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( SIZEOF( QUERY ( pdr <* + USEDIN( pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. used_representation ) ) AND ( 10 <= SIZEOF( pdr.used_representation.items ) ) AND ( SIZEOF( pdr. used_representation.items ) >= 11 ) ) ) ) = 1 ) ) ) = 1 ) ); - wr18: ( ( NOT ( SELF\characterized_object.description IN [ 'gear'] ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( + wr18: ( ( NOT ( SELF\characterized_object.description IN [ 'gear'] ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( + + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'MEASURE_REPRESENTATION_ITEM' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.RATIO_MEASURE_WITH_UNIT'] * + + 'MEASURE_REPRESENTATION_ITEM' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.RATIO_MEASURE_WITH_UNIT'] * TYPEOF( it ) ) = 2 ) AND ( it.name = 'number of teeth' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ) ); - wr19: ( ( NOT ( SELF\characterized_object.description IN [ 'gear'] ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( + wr19: ( ( NOT ( SELF\characterized_object.description IN [ 'gear'] ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( + + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'MEASURE_REPRESENTATION_ITEM' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANE_ANGLE_MEASURE_WITH_UNIT'] + + 'MEASURE_REPRESENTATION_ITEM' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANE_ANGLE_MEASURE_WITH_UNIT'] * TYPEOF( it ) ) = 2 ) AND ( it.name = 'reference pressure angle' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ) ); - wr20: ( ( NOT ( SELF\characterized_object.description IN [ 'gear'] ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( + wr20: ( ( NOT ( SELF\characterized_object.description IN [ 'gear'] ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( + + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'MEASURE_REPRESENTATION_ITEM' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * + + 'MEASURE_REPRESENTATION_ITEM' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF( it ) ) = 2 ) AND ( it.name = 'rake shift factor' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ) ); - wr21: ( ( NOT ( SELF\characterized_object.description IN [ 'gear'] ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( + wr21: ( ( NOT ( SELF\characterized_object.description IN [ 'gear'] ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( + + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'MEASURE_REPRESENTATION_ITEM' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * + + 'MEASURE_REPRESENTATION_ITEM' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF( it ) ) = 2 ) AND ( it.name = 'nominal tooth depth' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ) ); - wr22: ( ( NOT ( SELF\characterized_object.description IN [ 'gear'] ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( + wr22: ( ( NOT ( SELF\characterized_object.description IN [ 'gear'] ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( + + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'MEASURE_REPRESENTATION_ITEM' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * + + 'MEASURE_REPRESENTATION_ITEM' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF( it ) ) = 2 ) AND ( it.name = 'face width' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ) ); - wr23: ( ( NOT ( SELF\characterized_object.description IN [ 'gear'] ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( + wr23: ( ( NOT ( SELF\characterized_object.description IN [ 'gear'] ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( + + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'MEASURE_REPRESENTATION_ITEM' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * + + 'MEASURE_REPRESENTATION_ITEM' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF( it ) ) = 2 ) AND ( it.name = 'tip diameter' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ) ); - wr24: ( ( NOT ( SELF\characterized_object.description IN [ 'gear'] ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( + wr24: ( ( NOT ( SELF\characterized_object.description IN [ 'gear'] ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( + + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF( it ) ) AND ( it.name = 'module or diametral pitch' ) AND ( ( it. description = 'module' ) OR ( it.description = 'diametral pitch' ) ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ) ); - wr25: ( ( NOT ( SELF\characterized_object.description IN [ 'gear'] ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( + wr25: ( ( NOT ( SELF\characterized_object.description IN [ 'gear'] ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( + + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'MEASURE_REPRESENTATION_ITEM' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * + + 'MEASURE_REPRESENTATION_ITEM' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF( it ) ) = 2 ) AND ( it.name = 'normal attribute' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ) ); - wr26: ( ( NOT ( SELF\characterized_object.description IN [ 'gear'] ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( + wr26: ( ( NOT ( SELF\characterized_object.description IN [ 'gear'] ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( + + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF( it ) ) AND ( it.name = 'internal or external gear' ) AND ( ( it. description = 'internal' ) OR ( it.description = 'external' ) ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ) ); - wr27: ( ( NOT ( SELF\characterized_object.description IN [ 'gear'] ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( + wr27: ( ( NOT ( SELF\characterized_object.description IN [ 'gear'] ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( + + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'MEASURE_REPRESENTATION_ITEM' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANE_ANGLE_MEASURE_WITH_UNIT'] + + 'MEASURE_REPRESENTATION_ITEM' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANE_ANGLE_MEASURE_WITH_UNIT'] * TYPEOF( it ) ) = 2 ) AND ( it.name = 'root fillet radius' ) ) ) ) <= 1 ) ) ) ) = 0 ) ) ) ) = 0 ) ); END_ENTITY; @@ -9035,12 +9488,12 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; WHERE wr1: ( ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' ) IN TYPEOF( SELF\ - shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold ) ) + shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold ) ) AND ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.RATIO_MEASURE' IN value_limit_type( SELF\ shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold ) ) ); wr2: validate_measured_data_type( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.RATIO_MEASURE' ); wr3: validate_inspected_elements_type( SELF, [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.B_SPLINE_SURFACE'] ); - wr4: validate_locations_of_extreme_value_type( SELF, [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + + wr4: validate_locations_of_extreme_value_type( SELF, [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'B_SPLINE_SURFACE_KNOT_LOCATOR' ] ); wr5: validate_accuracy_types( SELF, [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE'] ); END_ENTITY; @@ -9050,7 +9503,7 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; 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 ) + wr1: ( dot_product( SELF\swept_area_solid.swept_area.basis_surface\elementary_surface.position.p[3], extruded_direction ) <> 0 ); END_ENTITY; @@ -9059,7 +9512,7 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; 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 ) + wr1: ( dot_product( SELF\swept_face_solid.swept_face.face_geometry\elementary_surface.position.p[3], extruded_direction ) <> 0 ); END_ENTITY; @@ -9077,12 +9530,15 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; 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 + 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 ) ) + 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; @@ -9093,29 +9549,33 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; WHERE wr1: ( NOT ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANE_ANGLE_MEASURE' IN TYPEOF( first_trim_condition ) ) OR ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANE_ANGLE_MEASURE' IN TYPEOF( second_trim_condition ) ) ) ); - wr2: ( NOT ( ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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 ( ( - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE' IN TYPEOF( second_trim_condition ) ) AND ( ( + wr2: ( NOT ( ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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 ( ( + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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 ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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 - ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE' IN TYPEOF( second_trim_condition ) ) ) AND ( ( + wr3: ( NOT ( ( ( NOT ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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 + ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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 ) ) + 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 ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE' IN TYPEOF( first_trim_condition ) ) AND ( - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE' IN TYPEOF( second_trim_condition ) ) AND ( + wr5: ( NOT ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE' IN TYPEOF( first_trim_condition ) ) AND ( + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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 ) ) + 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 | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FACE_OUTER_BOUND' IN TYPEOF( + wr2: ( SIZEOF( QUERY ( temp <* bounds | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FACE_OUTER_BOUND' IN TYPEOF( temp ) ) ) ) <= 1 ); END_ENTITY; @@ -9138,7 +9598,7 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; SUBTYPE OF ( shape_representation ); WHERE wr1: ( SIZEOF( SELF.items ) >= 1 ); - wr2: ( SIZEOF( QUERY ( it <* SELF.items | ( NOT ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FACE_SURFACE' IN + wr2: ( SIZEOF( QUERY ( it <* SELF.items | ( NOT ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FACE_SURFACE' IN TYPEOF( it ) ) OR ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ORIENTED_FACE' IN TYPEOF( it ) ) ) ) ) ) = 0 ); END_ENTITY; @@ -9162,7 +9622,7 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; WHERE wr1: ( ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' ) IN TYPEOF( SELF\ - shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold ) ) + shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold ) ) AND ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COUNT_MEASURE' IN value_limit_type( SELF\ shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold ) ) ); wr2: validate_measured_data_type( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COUNT_MEASURE' ); @@ -9178,30 +9638,30 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; ENTITY faceted_brep_shape_representation SUBTYPE OF ( shape_representation ); WHERE - wr1: ( SIZEOF( QUERY ( it <* items | ( NOT ( SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FACETED_BREP', + wr1: ( SIZEOF( QUERY ( it <* items | ( NOT ( SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FACETED_BREP', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MAPPED_ITEM' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'AXIS2_PLACEMENT_3D' ] * TYPEOF( it ) ) = 1 ) ) ) ) = 0 ); - wr2: ( SIZEOF( QUERY ( it <* items | ( SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FACETED_BREP', + wr2: ( SIZEOF( QUERY ( it <* items | ( SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FACETED_BREP', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MAPPED_ITEM' ] * TYPEOF( it ) ) = 1 ) ) ) > 0 ); - wr3: ( SIZEOF( QUERY ( fbrep <* QUERY ( it <* items | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FACETED_BREP' IN + wr3: ( SIZEOF( QUERY ( fbrep <* QUERY ( it <* items | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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 ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FACE_SURFACE' IN TYPEOF( - fcs ) ) AND ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANE' IN TYPEOF( fcs\face_surface.face_geometry ) ) + connected_face_set.cfs_faces | ( NOT ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FACE_SURFACE' IN TYPEOF( + fcs ) ) AND ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANE' IN TYPEOF( fcs\face_surface.face_geometry ) ) AND ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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 | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FACETED_BREP' IN + wr4: ( SIZEOF( QUERY ( fbrep <* QUERY ( it <* items | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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 | ( - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FACE_OUTER_BOUND' IN TYPEOF( bnds ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) + connected_face_set.cfs_faces | ( NOT ( SIZEOF( QUERY ( bnds <* fcs.bounds | ( + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FACE_OUTER_BOUND' IN TYPEOF( bnds ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ) ) ) ) = 0 ); - wr5: ( SIZEOF( QUERY ( msb <* QUERY ( it <* items | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MANIFOLD_SOLID_BREP' + wr5: ( SIZEOF( QUERY ( msb <* QUERY ( it <* items | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MANIFOLD_SOLID_BREP' IN TYPEOF( it ) ) ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ORIENTED_CLOSED_SHELL' IN TYPEOF( msb\ manifold_solid_brep.outer ) ) ) ) = 0 ); - wr6: ( SIZEOF( QUERY ( brv <* QUERY ( it <* items | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.BREP_WITH_VOIDS' IN - TYPEOF( it ) ) ) | ( NOT ( SIZEOF( QUERY ( csh <* brv\brep_with_voids.voids | csh\oriented_closed_shell.orientation ) ) + wr6: ( SIZEOF( QUERY ( brv <* QUERY ( it <* items | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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 | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MAPPED_ITEM' IN - TYPEOF( it ) ) ) | ( NOT ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FACETED_BREP_SHAPE_REPRESENTATION' IN + wr7: ( SIZEOF( QUERY ( mi <* QUERY ( it <* items | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MAPPED_ITEM' IN + TYPEOF( it ) ) ) | ( NOT ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FACETED_BREP_SHAPE_REPRESENTATION' IN TYPEOF( mi\mapped_item.mapping_source.mapped_representation ) ) ) ) ) = 0 ); END_ENTITY; @@ -9213,27 +9673,50 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; SUBTYPE OF ( characterized_object ); WHERE wr1: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) - | ( NOT ( SIZEOF( USEDIN( pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) ) = 1 ) ) ) ) + | ( NOT ( SIZEOF( USEDIN( pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) ) = 1 ) ) ) ) = 0 ); END_ENTITY; ENTITY feature_component_relationship - SUPERTYPE OF ( ONEOF ( pattern_omit_membership, pattern_offset_membership ) ) + SUPERTYPE OF ( + ONEOF ( + pattern_omit_membership, + pattern_offset_membership ) ) SUBTYPE OF ( shape_aspect_relationship ); WHERE - wr1: ( ( SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COMPOSITE_SHAPE_ASPECT', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.REPLICATE_FEATURE' , - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.TRANSITION_FEATURE' , - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MODIFIED_PATTERN' ] * TYPEOF( SELF.relating_shape_aspect ) ) = 1 ) + wr1: ( ( SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COMPOSITE_SHAPE_ASPECT', + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.REPLICATE_FEATURE' , + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.TRANSITION_FEATURE' , + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MODIFIED_PATTERN' ] * TYPEOF( SELF.relating_shape_aspect ) ) = 1 ) OR ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MACHINING_FEATURE_DEFINITION' IN TYPEOF( SELF. relating_shape_aspect.of_shape.definition ) ) OR ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'FEATURE_COMPONENT_DEFINITION' IN TYPEOF( SELF.relating_shape_aspect.of_shape.definition ) ) ); END_ENTITY; ENTITY feature_definition - SUPERTYPE OF ( ONEOF ( boss, compound_feature, externally_defined_feature_definition, flat_face, gear, marking, outer_round, - outside_profile, pocket, protrusion, removal_volume, replicate_feature, revolved_profile, rib_top, round_hole, rounded_end, - spherical_cap, step, slot, thread, turned_knurl ) ) + SUPERTYPE OF ( + ONEOF ( + boss, + compound_feature, + externally_defined_feature_definition, + flat_face, + gear, + marking, + outer_round, + outside_profile, + pocket, + protrusion, + removal_volume, + replicate_feature, + revolved_profile, + rib_top, + round_hole, + rounded_end, + spherical_cap, + step, + slot, + thread, + turned_knurl ) ) SUBTYPE OF ( characterized_object ); END_ENTITY; @@ -9245,7 +9728,7 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; SUBTYPE OF ( shape_aspect_relationship ); SELF\shape_aspect_relationship.related_shape_aspect : datum_target; UNIQUE - ur1 : SELF\shape_aspect_relationship.related_shape_aspect; + ur1 : related_shape_aspect; WHERE wr1: ( relating_shape_aspect.of_shape :=: related_shape_aspect.of_shape ); wr2: ( relating_shape_aspect\shape_aspect.product_definitional = TRUE ); @@ -9255,54 +9738,54 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; SUBTYPE OF ( feature_definition ); WHERE wr1 : ( SELF.description IN [ 'pocket', 'boss', 'stairstep'] ); - wr2 : ( SIZEOF( QUERY ( pdr <* get_property_definition_representations( SELF ) | ( ( + wr2 : ( SIZEOF( QUERY ( pdr <* get_property_definition_representations( SELF ) | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. used_representation ) ) AND ( NOT ( ( 2 <= SIZEOF( pdr.used_representation.items ) ) AND ( SIZEOF( pdr. used_representation.items ) <= 3 ) ) ) ) ) ) = 0 ); - wr3 : ( SIZEOF( QUERY ( pdr <* get_property_definition_representations( SELF ) | ( ( + wr3 : ( SIZEOF( QUERY ( pdr <* get_property_definition_representations( SELF ) | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. - used_representation ) ) AND ( SIZEOF( QUERY ( i <* pdr.used_representation.items | ( NOT ( i.name IN [ 'orientation', + used_representation ) ) AND ( SIZEOF( QUERY ( i <* pdr.used_representation.items | ( NOT ( i.name IN [ 'orientation', 'base radius' , 'target radius'] ) ) ) ) > 0 ) ) ) ) = 0 ); - wr4 : ( SIZEOF( QUERY ( pdr <* get_property_definition_representations( SELF ) | ( ( + wr4 : ( SIZEOF( QUERY ( pdr <* get_property_definition_representations( SELF ) | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. - used_representation ) ) AND ( SIZEOF( QUERY ( i <* pdr.used_representation.items | ( ( i.name = 'base radius' ) - AND ( SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( i ) ) = 2 ) ) ) ) = 1 ) ) ) ) + used_representation ) ) AND ( SIZEOF( QUERY ( i <* pdr.used_representation.items | ( ( i.name = 'base radius' ) + AND ( SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( i ) ) = 2 ) ) ) ) = 1 ) ) ) ) = 1 ); - wr5 : ( SIZEOF( QUERY ( pdr <* get_property_definition_representations( SELF ) | ( ( + wr5 : ( SIZEOF( QUERY ( pdr <* get_property_definition_representations( SELF ) | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. - used_representation ) ) AND ( SIZEOF( QUERY ( i <* pdr.used_representation.items | ( ( i.name = 'target radius' ) - AND ( SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( i ) ) = 2 ) ) ) ) = 1 ) ) ) ) + used_representation ) ) AND ( SIZEOF( QUERY ( i <* pdr.used_representation.items | ( ( i.name = 'target radius' ) + AND ( SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( i ) ) = 2 ) ) ) ) = 1 ) ) ) ) = 1 ); wr6 : ( SIZEOF( QUERY ( sa <* get_shape_aspects( SELF ) | ( ( sa.name = 'base boundary' ) AND ( sa.description IN [ 'directed angle occurrence' , 'closed profile occurrence'] ) ) ) ) = 1 ); wr7 : ( SIZEOF( QUERY ( sa <* get_shape_aspects( SELF ) | ( ( sa.name = 'target boundary' ) AND ( sa.description IN [ 'directed angle occurrence' , 'closed profile occurrence'] ) ) ) ) = 1 ); wr8 : ( SIZEOF( QUERY ( sa <* get_shape_aspects( SELF ) | ( sa.description = 'directed angle occurrence' ) ) ) <= 1 ); - wr9 : ( SIZEOF( QUERY ( sa <* get_shape_aspects( SELF ) | ( ( sa.description = 'directed angle occurrence' ) AND ( SIZEOF( + wr9 : ( SIZEOF( QUERY ( sa <* get_shape_aspects( SELF ) | ( ( sa.description = 'directed angle occurrence' ) AND ( SIZEOF( QUERY ( sar <* USEDIN( sa, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'SHAPE_ASPECT_RELATIONSHIP.' - + 'RELATED_SHAPE_ASPECT' ) | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DEFINING_RELATIONSHIP' - IN TYPEOF( sar ) ) AND ( sar.name = 'directed angle usage' ) AND ( - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DIRECTED_ANGLE' IN TYPEOF( sar.relating_shape_aspect ) ) ) ) ) + + 'RELATED_SHAPE_ASPECT' ) | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DEFINING_RELATIONSHIP' + IN TYPEOF( sar ) ) AND ( sar.name = 'directed angle usage' ) AND ( + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DIRECTED_ANGLE' IN TYPEOF( sar.relating_shape_aspect ) ) ) ) ) = 1 ) ) ) ) = SIZEOF( QUERY ( sa <* get_shape_aspects( SELF ) | ( sa.description = 'directed angle occurrence' ) ) ) ); - wr10: ( SIZEOF( QUERY ( sa <* get_shape_aspects( SELF ) | ( ( sa.description = 'closed profile occurrence' ) AND ( SIZEOF( + wr10: ( SIZEOF( QUERY ( sa <* get_shape_aspects( SELF ) | ( ( sa.description = 'closed profile occurrence' ) AND ( SIZEOF( QUERY ( sar <* USEDIN( sa, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'SHAPE_ASPECT_RELATIONSHIP.' - + 'RELATED_SHAPE_ASPECT' ) | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DEFINING_RELATIONSHIP' + + 'RELATED_SHAPE_ASPECT' ) | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF( sar ) ) AND ( sar.description = 'profile usage' ) AND ( SIZEOF( [ - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CIRCULAR_CLOSED_PROFILE' , - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.NGON_CLOSED_PROFILE' , - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.RECTANGULAR_CLOSED_PROFILE' , + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CIRCULAR_CLOSED_PROFILE' , + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.NGON_CLOSED_PROFILE' , + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.RECTANGULAR_CLOSED_PROFILE' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CLOSED_PATH_PROFILE' ] * TYPEOF( sar.relating_shape_aspect ) ) = - 1 ) ) ) ) = 1 ) ) ) ) = SIZEOF( QUERY ( sa <* get_shape_aspects( SELF ) | ( sa.description = + 1 ) ) ) ) = 1 ) ) ) ) = SIZEOF( QUERY ( sa <* get_shape_aspects( SELF ) | ( sa.description = 'closed profile occurrence' ) ) ) ); - wr11: ( ( SIZEOF( QUERY ( pdr <* get_property_definition_representations( SELF ) | ( - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FACE_SHAPE_REPRESENTATION' IN TYPEOF( pdr.used_representation ) ) ) ) - <= 1 ) AND ( SIZEOF( QUERY ( pdr <* get_property_definition_representations( SELF ) | ( ( - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FACE_SHAPE_REPRESENTATION' IN TYPEOF( pdr.used_representation ) ) + wr11: ( ( SIZEOF( QUERY ( pdr <* get_property_definition_representations( SELF ) | ( + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FACE_SHAPE_REPRESENTATION' IN TYPEOF( pdr.used_representation ) ) ) ) + <= 1 ) AND ( SIZEOF( QUERY ( pdr <* get_property_definition_representations( SELF ) | ( ( + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FACE_SHAPE_REPRESENTATION' IN TYPEOF( pdr.used_representation ) ) AND ( NOT ( pdr.used_representation.name = 'target face' ) ) ) ) ) = 0 ) ); - wr12: ( ( SIZEOF( QUERY ( sa <* get_shape_aspects( SELF ) | ( ( sa.name = 'target boundary' ) AND ( sa.description = - 'directed angle occurrence' ) ) ) ) = 0 ) OR ( SIZEOF( QUERY ( pdr <* get_property_definition_representations( + wr12: ( ( SIZEOF( QUERY ( sa <* get_shape_aspects( SELF ) | ( ( sa.name = 'target boundary' ) AND ( sa.description = + 'directed angle occurrence' ) ) ) ) = 0 ) OR ( SIZEOF( QUERY ( pdr <* get_property_definition_representations( SELF ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FACE_SHAPE_REPRESENTATION' IN TYPEOF( pdr. used_representation ) ) ) ) = 1 ) ); END_ENTITY; @@ -9313,14 +9796,14 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; wr1: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( SIZEOF( QUERY ( pdr <* USEDIN( pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) AND ( SIZEOF( QUERY ( srwp_i <* - pdr.used_representation.items | ( NOT ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLACEMENT' IN TYPEOF( + + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) AND ( SIZEOF( QUERY ( srwp_i <* + pdr.used_representation.items | ( NOT ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLACEMENT' IN TYPEOF( srwp_i ) ) ) ) ) > 0 ) ) ) ) > 0 ) ) ) = 0 ); wr2: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( - QUERY ( it <* impl_rep.used_representation.items | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLACEMENT' + + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( + QUERY ( it <* impl_rep.used_representation.items | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLACEMENT' IN TYPEOF( it ) ) AND ( it.name = 'base feature placement' ) ) ) ) > 1 ) ) ) ) = 0 ) ) ) ) = 0 ); END_ENTITY; @@ -9329,7 +9812,7 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; name : label; fill_styles : SET [1 : ?] OF fill_style_select; WHERE - wr1: ( SIZEOF( QUERY ( fill_style <* SELF.fill_styles | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + + wr1: ( SIZEOF( QUERY ( fill_style <* SELF.fill_styles | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'FILL_AREA_STYLE_COLOUR' ) IN TYPEOF( fill_style ) ) ) ) <= 1 ); END_ENTITY; @@ -9352,12 +9835,12 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; closed_curve : curve_or_annotation_curve_occurrence; region_colour : colour; WHERE - wr1: ( ( NOT ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CURVE' IN TYPEOF( closed_curve ) ) ) OR ( - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CIRCLE' IN TYPEOF( closed_curve ) ) OR ( - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ELLIPSE' IN TYPEOF( closed_curve ) ) OR ( ( + wr1: ( ( NOT ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CURVE' IN TYPEOF( closed_curve ) ) ) OR ( + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CIRCLE' IN TYPEOF( closed_curve ) ) OR ( + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ELLIPSE' IN TYPEOF( closed_curve ) ) OR ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.B_SPLINE_CURVE' IN TYPEOF( closed_curve ) ) AND ( closed_curve\ - b_spline_curve.closed_curve = TRUE ) ) OR ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COMPOSITE_CURVE' IN - TYPEOF( closed_curve ) ) AND ( closed_curve\composite_curve.closed_curve = TRUE ) ) OR ( ( + b_spline_curve.closed_curve = TRUE ) ) OR ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COMPOSITE_CURVE' IN + TYPEOF( closed_curve ) ) AND ( closed_curve\composite_curve.closed_curve = TRUE ) ) OR ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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 )] ) ) ); @@ -9383,56 +9866,56 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; ENTITY fillet SUBTYPE OF ( transition_feature ); WHERE - wr1: ( ( NOT ( SELF\shape_aspect.description = 'constant radius' ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( + wr1: ( ( NOT ( SELF\shape_aspect.description = 'constant radius' ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( pdr <* USEDIN( pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.' - + 'DEFINITION' ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN + + 'DEFINITION' ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) ) = 1 ) ) ) ) = 0 ) ); - wr2: ( ( NOT ( SELF\shape_aspect.description = 'constant radius' ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( + wr2: ( ( NOT ( SELF\shape_aspect.description = 'constant radius' ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( ( NOT ( SIZEOF( impl_rep. - used_representation.items ) >= 1 ) ) AND ( SIZEOF( impl_rep.used_representation.items ) <= 3 ) ) ) ) = 0 ) ) ) ) = + used_representation.items ) >= 1 ) ) AND ( SIZEOF( impl_rep.used_representation.items ) <= 3 ) ) ) ) = 0 ) ) ) ) = 0 ) ); - wr3: ( ( NOT ( SELF.description = 'constant radius' ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( + wr3: ( ( NOT ( SELF.description = 'constant radius' ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( + + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'MEASURE_REPRESENTATION_ITEM' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * + + 'MEASURE_REPRESENTATION_ITEM' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF( it ) ) = 2 ) AND ( it.name = 'radius' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ) ); - wr4: ( ( NOT ( SELF.description = 'constant radius' ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( + wr4: ( ( NOT ( SELF.description = 'constant radius' ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( + + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'MEASURE_REPRESENTATION_ITEM' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * + + 'MEASURE_REPRESENTATION_ITEM' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF( it ) ) = 2 ) AND ( it.name = 'first offset' ) ) ) ) <= 1 ) ) ) ) = 0 ) ) ) ) = 0 ) ); - wr5: ( ( NOT ( SELF.description = 'constant radius' ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( + wr5: ( ( NOT ( SELF.description = 'constant radius' ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( + + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'MEASURE_REPRESENTATION_ITEM' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * + + 'MEASURE_REPRESENTATION_ITEM' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF( it ) ) = 2 ) AND ( it.name = 'second offset' ) ) ) ) <= 1 ) ) ) ) = 0 ) ) ) ) = 0 ) ); wr6: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( pdr <* USEDIN( pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'FACE_SHAPE_REPRESENTATION' IN TYPEOF( pdr.used_representation ) ) AND ( pdr.used_representation.name = + + 'FACE_SHAPE_REPRESENTATION' IN TYPEOF( pdr.used_representation ) ) AND ( pdr.used_representation.name = 'fillet face' ) ) ) ) = 1 ) ) ) ) = 0 ); wr7: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( pdr <* USEDIN( pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'FACE_SHAPE_REPRESENTATION' IN TYPEOF( pdr.used_representation ) ) AND ( pdr.used_representation.name = + + 'FACE_SHAPE_REPRESENTATION' IN TYPEOF( pdr.used_representation ) ) AND ( pdr.used_representation.name = 'first face shape' ) ) ) ) = 1 ) ) ) ) = 0 ); wr8: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( pdr <* USEDIN( pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'FACE_SHAPE_REPRESENTATION' IN TYPEOF( pdr.used_representation ) ) AND ( pdr.used_representation.name = + + 'FACE_SHAPE_REPRESENTATION' IN TYPEOF( pdr.used_representation ) ) AND ( pdr.used_representation.name = 'second face shape' ) ) ) ) = 1 ) ) ) ) = 0 ); END_ENTITY; @@ -9481,7 +9964,7 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; wr2: assembly_leaf( using_product_definition_of_shape_representation( fixed_constituent )[1] ); wr3: ( ( SIZEOF( SELF\explicit_constraint.constrained_elements ) = 1 ) AND ( SIZEOF( SELF\explicit_constraint. reference_elements ) = 0 ) ); - wr4: ( fixed_constituent IN ( using_representations( SELF\explicit_constraint.constrained_elements[1] ) + + wr4: ( fixed_constituent IN ( using_representations( SELF\explicit_constraint.constrained_elements[1] ) + using_representation_with_mapping( SELF\explicit_constraint.constrained_elements[1] ) ) ); END_ENTITY; @@ -9496,7 +9979,7 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; SUBTYPE OF ( variational_representation_item ); fixed_attributes : SET [1 : ?] OF instance_attribute_reference; WHERE - wr1: ( SIZEOF( QUERY ( q <* using_representations( SELF ) | ( SIZEOF( QUERY ( r <* q.items | ( + wr1: ( SIZEOF( QUERY ( q <* using_representations( SELF ) | ( SIZEOF( QUERY ( r <* q.items | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FIXED_INSTANCE_ATTRIBUTE_SET' IN TYPEOF( r ) ) ) ) > 1 ) ) ) = 0 ); END_ENTITY; @@ -9506,13 +9989,13 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; wr1: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( pdr <* USEDIN( pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'DIRECTION_SHAPE_REPRESENTATION' IN TYPEOF( pdr.used_representation ) ) AND ( pdr.used_representation.name = + + 'DIRECTION_SHAPE_REPRESENTATION' IN TYPEOF( pdr.used_representation ) ) AND ( pdr.used_representation.name = 'removal direction' ) ) ) ) = 1 ) ) ) ) = 0 ); wr2: ( SIZEOF( QUERY ( pds <* QUERY ( pd <* USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PROPERTY_DEFINITION.DEFINITION' ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) | ( NOT ( SIZEOF( QUERY ( sa_occ <* USEDIN( pds, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) | ( ( sa_occ.description = - 'course of travel occurrence' ) AND ( SIZEOF( QUERY ( sdr <* QUERY ( sar <* USEDIN( sa_occ, + + 'PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) | ( NOT ( SIZEOF( QUERY ( sa_occ <* USEDIN( pds, + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) | ( ( sa_occ.description = + 'course of travel occurrence' ) AND ( SIZEOF( QUERY ( sdr <* QUERY ( sar <* USEDIN( sa_occ, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT' ) | ( ( sar. description = 'path feature component usage' ) AND ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF( sar ) ) ) ) | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' @@ -9520,42 +10003,42 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; 'linear' ) AND ( sdr.name = 'course of travel' ) ) ) ) = 1 ) ) ) ) = 1 ) ) ) ) = 0 ); wr3: ( SIZEOF( QUERY ( pds <* QUERY ( pd <* USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PROPERTY_DEFINITION.DEFINITION' ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) | ( NOT ( SIZEOF( QUERY ( sa_occ <* USEDIN( pds, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) | ( ( sa_occ.description = - 'removal boundary occurrence' ) AND ( SIZEOF( QUERY ( sdr <* QUERY ( sar <* USEDIN( sa_occ, + + 'PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) | ( NOT ( SIZEOF( QUERY ( sa_occ <* USEDIN( pds, + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) | ( ( sa_occ.description = + 'removal boundary occurrence' ) AND ( SIZEOF( QUERY ( sdr <* QUERY ( sar <* USEDIN( sa_occ, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT' ) | ( ( sar. - description = 'profile usage' ) AND ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DEFINING_RELATIONSHIP' + description = 'profile usage' ) AND ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF( sar ) ) ) ) | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LINEAR_PROFILE' IN TYPEOF( sdr. relating_shape_aspect ) ) AND ( sdr.name = 'removal boundary' ) ) ) ) = 1 ) ) ) ) = 1 ) ) ) ) = 0 ); wr4: ( SIZEOF( QUERY ( pds <* QUERY ( pd <* USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PROPERTY_DEFINITION.DEFINITION' ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) | ( NOT ( SIZEOF( QUERY ( sa_occ <* USEDIN( pds, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) | ( ( sa_occ.description = - 'enclosed boundary occurrence' ) AND ( SIZEOF( QUERY ( sdr <* QUERY ( sar <* USEDIN( sa_occ, + + 'PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) | ( NOT ( SIZEOF( QUERY ( sa_occ <* USEDIN( pds, + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) | ( ( sa_occ.description = + 'enclosed boundary occurrence' ) AND ( SIZEOF( QUERY ( sdr <* QUERY ( sar <* USEDIN( sa_occ, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT' ) | ( ( sar. - description = 'profile usage' ) AND ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DEFINING_RELATIONSHIP' - IN TYPEOF( sar ) ) ) ) | ( ( SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CIRCULAR_CLOSED_PROFILE', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.NGON_CLOSED_PROFILE' , - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.RECTANGULAR_CLOSED_PROFILE' , - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CLOSED_PATH_PROFILE' ] * TYPEOF( sdr.relating_shape_aspect ) ) = + description = 'profile usage' ) AND ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DEFINING_RELATIONSHIP' + IN TYPEOF( sar ) ) ) ) | ( ( SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CIRCULAR_CLOSED_PROFILE', + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.NGON_CLOSED_PROFILE' , + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.RECTANGULAR_CLOSED_PROFILE' , + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CLOSED_PATH_PROFILE' ] * TYPEOF( sdr.relating_shape_aspect ) ) = 1 ) AND ( sdr.relating_shape_aspect.description = 'boundary' ) ) ) ) = 1 ) ) ) ) <= 1 ) ) ) ) = 0 ); - wr5: ( SIZEOF( QUERY ( pdr <* get_property_definition_representations( SELF ) | ( ( - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANAR_SHAPE_REPRESENTATION' IN TYPEOF( pdr.used_representation ) ) + wr5: ( SIZEOF( QUERY ( pdr <* get_property_definition_representations( SELF ) | ( ( + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANAR_SHAPE_REPRESENTATION' IN TYPEOF( pdr.used_representation ) ) AND ( pdr.used_representation.name = 'maximum feature limit' ) ) ) ) >= 0 ); wr6: ( SIZEOF( QUERY ( pds <* USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) - | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pds ) ) AND ( SIZEOF( - QUERY ( csa <* USEDIN( pds, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) | ( ( - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COMPOSITE_SHAPE_ASPECT' IN TYPEOF( csa ) ) AND ( csa.name = - 'uncut volume' ) AND ( SIZEOF( QUERY ( sar <* csa.component_relationships | ( ( - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF( sar ) ) AND ( + | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pds ) ) AND ( SIZEOF( + QUERY ( csa <* USEDIN( pds, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) | ( ( + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COMPOSITE_SHAPE_ASPECT' IN TYPEOF( csa ) ) AND ( csa.name = + 'uncut volume' ) AND ( SIZEOF( QUERY ( sar <* csa.component_relationships | ( ( + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF( sar ) ) AND ( SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.BOSS', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PROTRUSION' ] * TYPEOF( sar.related_shape_aspect ) ) = 1 ) ) ) ) = 1 ) ) ) ) <= 1 ) ) ) ) = 1 ); wr7: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( + + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'MEASURE_REPRESENTATION_ITEM' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * + + 'MEASURE_REPRESENTATION_ITEM' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF( it ) ) = 2 ) AND ( it.name = 'removal depth' ) ) ) ) <= 1 ) ) ) ) = 0 ) ) ) ) = 0 ); END_ENTITY; @@ -9564,14 +10047,14 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; WHERE wr1: ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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 + 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 ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'GEOMETRIC_TOLERANCE_WITH_DATUM_REFERENCE' ) IN + wr1: ( NOT ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'GEOMETRIC_TOLERANCE_WITH_DATUM_REFERENCE' ) IN TYPEOF( SELF ) ) ); END_ENTITY; @@ -9593,7 +10076,7 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; value_to_format : generic_expression := SELF\binary_generic_expression.operands[1]; format_string : generic_expression := SELF\binary_generic_expression.operands[2]; WHERE - wr1: ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.NUMERIC_EXPRESSION' IN TYPEOF( value_to_format ) ) AND ( + wr1: ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.NUMERIC_EXPRESSION' IN TYPEOF( value_to_format ) ) AND ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.STRING_EXPRESSION' IN TYPEOF( format_string ) ) ); END_ENTITY; @@ -9606,19 +10089,66 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; END_ENTITY; ENTITY founded_item - SUPERTYPE OF ( ONEOF ( b_spline_curve_knot_locator, b_spline_curve_segment, b_spline_surface_knot_locator, - b_spline_surface_patch, b_spline_surface_strip, boundary_curve_of_b_spline_or_rectangular_composite_surface, box_domain, - character_glyph_style_outline, character_glyph_style_stroke, composite_curve_segment, composite_curve_transition_locator, - curve_style, curve_style_font, curve_style_font_and_scaling, curve_style_font_pattern, externally_defined_style, - fill_area_style, interpolated_configuration_segment, kinematic_path_segment, plane_angle_and_length_pair, - plane_angle_and_ratio_pair, point_style, presentation_style_assignment, rectangular_composite_surface_transition_locator, - surface_patch, 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, view_volume ) ANDOR ONEOF ( character_glyph_style_outline, character_glyph_style_stroke, - curve_style, curve_style_font, curve_style_font_and_scaling, curve_style_font_pattern, externally_defined_style, - 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 ) ); + SUPERTYPE OF ( + ONEOF ( + b_spline_curve_knot_locator, + b_spline_curve_segment, + b_spline_surface_knot_locator, + b_spline_surface_patch, + b_spline_surface_strip, + boundary_curve_of_b_spline_or_rectangular_composite_surface, + box_domain, + character_glyph_style_outline, + character_glyph_style_stroke, + composite_curve_segment, + composite_curve_transition_locator, + curve_style, + curve_style_font, + curve_style_font_and_scaling, + curve_style_font_pattern, + externally_defined_style, + fill_area_style, + interpolated_configuration_segment, + kinematic_path_segment, + plane_angle_and_length_pair, + plane_angle_and_ratio_pair, + point_style, + presentation_style_assignment, + rectangular_composite_surface_transition_locator, + surface_patch, + 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, + view_volume ) + ANDOR + ONEOF ( + character_glyph_style_outline, + character_glyph_style_stroke, + curve_style, + curve_style_font, + curve_style_font_and_scaling, + curve_style_font_pattern, + externally_defined_style, + 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 @@ -9634,14 +10164,14 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; wr2: validate_inspected_elements_type( SELF, [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CONNECTED_FACE_SET'] ); wr3: validate_locations_of_extreme_value_type( SELF, [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EDGE_CURVE'] ); wr4: validate_accuracy_types( SELF, [] ); - wr5: ( SIZEOF( QUERY ( sdqr <* bag_to_set( USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + - 'DATA_QUALITY_INSPECTION_RESULT.' + 'CRITERION_INSPECTED' ) ) | ( ( ( - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'SHAPE_DATA_QUALITY_INSPECTION_RESULT' ) IN TYPEOF( sdqr ) ) - AND ( SIZEOF( QUERY ( sdqiir <* bag_to_set( USEDIN( sdqr, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + - 'DATA_QUALITY_INSPECTION_REPORT.' + 'INSPECTION_RESULT' ) ) | ( ( ( - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'SHAPE_DATA_QUALITY_INSPECTION_INSTANCE_REPORT' ) IN - TYPEOF( sdqiir ) ) AND ( SIZEOF( QUERY ( sdqiri <* sdqiir.inspected_instances | ( - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CLOSED_SHELL' IN TYPEOF( sdqiri.inspected_elements[1] ) ) ) ) = + wr5: ( SIZEOF( QUERY ( sdqr <* bag_to_set( USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + + 'DATA_QUALITY_INSPECTION_RESULT.' + 'CRITERION_INSPECTED' ) ) | ( ( ( + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'SHAPE_DATA_QUALITY_INSPECTION_RESULT' ) IN TYPEOF( sdqr ) ) + AND ( SIZEOF( QUERY ( sdqiir <* bag_to_set( USEDIN( sdqr, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + + 'DATA_QUALITY_INSPECTION_REPORT.' + 'INSPECTION_RESULT' ) ) | ( ( ( + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'SHAPE_DATA_QUALITY_INSPECTION_INSTANCE_REPORT' ) IN + TYPEOF( sdqiir ) ) AND ( SIZEOF( QUERY ( sdqiri <* sdqiir.inspected_instances | ( + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CLOSED_SHELL' IN TYPEOF( sdqiri.inspected_elements[1] ) ) ) ) = 0 ) ) ) ) = 0 ) ) ) ) = 0 ); END_ENTITY; @@ -9658,7 +10188,10 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; END_ENTITY; ENTITY free_form_constraint - ABSTRACT SUPERTYPE OF ( ONEOF ( free_form_assignment, free_form_relation ) ) + ABSTRACT SUPERTYPE OF ( + ONEOF ( + free_form_assignment, + free_form_relation ) ) SUBTYPE OF ( explicit_constraint ); SELF\explicit_constraint.constrained_elements : SET [1 : ?] OF variational_parameter; SELF\explicit_constraint.reference_elements : SET [0 : ?] OF variational_parameter; @@ -9684,7 +10217,7 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; representation_relationship_with_transformation.transformation_operator ) ); wr2: ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.GEOMETRIC_REPRESENTATION_ITEM' IN TYPEOF( SELF\ representation_relationship_with_transformation.transformation_operator\item_defined_transformation. - transform_item_1 ) ) AND ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.GEOMETRIC_REPRESENTATION_ITEM' IN + transform_item_1 ) ) AND ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.GEOMETRIC_REPRESENTATION_ITEM' IN TYPEOF( SELF\representation_relationship_with_transformation.transformation_operator\item_defined_transformation. transform_item_2 ) ) ); wr3: ( ( dimension_of( SELF\representation_relationship_with_transformation.transformation_operator\ @@ -9738,7 +10271,7 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; func : maths_function_select; arguments : LIST [1 : ?] OF maths_expression; DERIVE - SELF\multiple_arity_generic_expression.operands : LIST [2 : ?] OF generic_expression := [convert_to_maths_function( func )] + SELF\multiple_arity_generic_expression.operands : LIST [2 : ?] OF generic_expression := [convert_to_maths_function( func )] + convert_to_operands( arguments ); WHERE wr1: function_applicability( func, arguments ); @@ -9755,7 +10288,7 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; wr2: ( ( domain_argument <> the_empty_space ) AND ( range_argument <> the_empty_space ) ); wr3: ( ( domain_constraint <> sc_member ) OR ( NOT member_of( the_empty_space, domain_argument ) ) ); wr4: ( ( range_constraint <> sc_member ) OR ( NOT member_of( the_empty_space, range_argument ) ) ); - wr5: ( NOT ( any_space_satisfies( domain_constraint, domain_argument ) AND any_space_satisfies( range_constraint, + wr5: ( NOT ( any_space_satisfies( domain_constraint, domain_argument ) AND any_space_satisfies( range_constraint, range_argument ) ) ); END_ENTITY; @@ -9777,12 +10310,12 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; WHERE wr1: ( ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' ) IN TYPEOF( SELF\ - shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold ) ) + shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold ) ) AND ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANE_ANGLE_MEASURE' IN value_limit_type( SELF\ shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold ) ) ); wr2: validate_measured_data_type( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANE_ANGLE_MEASURE' ); wr3: validate_inspected_elements_type( SELF, [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CONNECTED_FACE_SET'] ); - wr4: validate_locations_of_extreme_value_type( SELF, [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + + wr4: validate_locations_of_extreme_value_type( SELF, [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'POINT_ON_EDGE_CURVE' ] ); wr5: validate_accuracy_types( SELF, [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANE_ANGLE_MEASURE'] ); END_ENTITY; @@ -9792,12 +10325,12 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; WHERE wr1: ( ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' ) IN TYPEOF( SELF\ - shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold ) ) + shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold ) ) AND ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANE_ANGLE_MEASURE' IN value_limit_type( SELF\ shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold ) ) ); wr2: validate_measured_data_type( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANE_ANGLE_MEASURE' ); wr3: validate_inspected_elements_type( SELF, [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.B_SPLINE_CURVE'] ); - wr4: validate_locations_of_extreme_value_type( SELF, [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + + wr4: validate_locations_of_extreme_value_type( SELF, [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'B_SPLINE_CURVE_KNOT_LOCATOR' ] ); wr5: validate_accuracy_types( SELF, [] ); END_ENTITY; @@ -9807,12 +10340,12 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; WHERE wr1: ( ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' ) IN TYPEOF( SELF\ - shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold ) ) + shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold ) ) AND ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANE_ANGLE_MEASURE' IN value_limit_type( SELF\ shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold ) ) ); wr2: validate_measured_data_type( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANE_ANGLE_MEASURE' ); wr3: validate_inspected_elements_type( SELF, [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.B_SPLINE_SURFACE'] ); - wr4: validate_locations_of_extreme_value_type( SELF, [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + + wr4: validate_locations_of_extreme_value_type( SELF, [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'B_SPLINE_SURFACE_KNOT_LOCATOR' ] ); wr5: validate_accuracy_types( SELF, [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANE_ANGLE_MEASURE'] ); END_ENTITY; @@ -9824,16 +10357,16 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; flat_curvature_radius_tolerance : length_measure; WHERE wr1: ( ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' ) IN TYPEOF( SELF\ - shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold ) ) + shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold ) ) AND ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANE_ANGLE_MEASURE' IN value_limit_type( SELF\ shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold ) ) ); - wr2: ( ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' ) IN TYPEOF( - assessment_specification_2\shape_data_quality_assessment_by_numerical_test.threshold ) ) AND ( + wr2: ( ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' ) IN TYPEOF( + assessment_specification_2\shape_data_quality_assessment_by_numerical_test.threshold ) ) AND ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.RATIO_MEASURE' IN value_limit_type( assessment_specification_2\ shape_data_quality_assessment_by_numerical_test.threshold ) ) ); wr3: validate_measured_data_type( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PLANE_ANGLE_AND_RATIO_PAIR' ); wr4: validate_inspected_elements_type( SELF, [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CONNECTED_FACE_SET'] ); - wr5: validate_locations_of_extreme_value_type( SELF, [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + + wr5: validate_locations_of_extreme_value_type( SELF, [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'POINT_ON_EDGE_CURVE' ] ); wr6: validate_accuracy_types( SELF, [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.RATIO_MEASURE'] ); END_ENTITY; @@ -9845,16 +10378,16 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; flat_curvature_radius_tolerance : length_measure; WHERE wr1: ( ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' ) IN TYPEOF( SELF\ - shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold ) ) + shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold ) ) AND ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANE_ANGLE_MEASURE' IN value_limit_type( SELF\ shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold ) ) ); - wr2: ( ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' ) IN TYPEOF( - assessment_specification_2\shape_data_quality_assessment_by_numerical_test.threshold ) ) AND ( + wr2: ( ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' ) IN TYPEOF( + assessment_specification_2\shape_data_quality_assessment_by_numerical_test.threshold ) ) AND ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.RATIO_MEASURE' IN value_limit_type( assessment_specification_2\ shape_data_quality_assessment_by_numerical_test.threshold ) ) ); wr3: validate_measured_data_type( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PLANE_ANGLE_AND_RATIO_PAIR' ); wr4: validate_inspected_elements_type( SELF, [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.B_SPLINE_CURVE'] ); - wr5: validate_locations_of_extreme_value_type( SELF, [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + + wr5: validate_locations_of_extreme_value_type( SELF, [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'B_SPLINE_CURVE_KNOT_LOCATOR' ] ); wr6: validate_accuracy_types( SELF, [] ); END_ENTITY; @@ -9866,16 +10399,16 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; flat_curvature_radius_tolerance : length_measure; WHERE wr1: ( ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' ) IN TYPEOF( SELF\ - shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold ) ) + shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold ) ) AND ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANE_ANGLE_MEASURE' IN value_limit_type( SELF\ shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold ) ) ); - wr2: ( ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' ) IN TYPEOF( - assessment_specification_2\shape_data_quality_assessment_by_numerical_test.threshold ) ) AND ( + wr2: ( ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' ) IN TYPEOF( + assessment_specification_2\shape_data_quality_assessment_by_numerical_test.threshold ) ) AND ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.RATIO_MEASURE' IN value_limit_type( assessment_specification_2\ shape_data_quality_assessment_by_numerical_test.threshold ) ) ); wr3: validate_measured_data_type( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PLANE_ANGLE_AND_RATIO_PAIR' ); wr4: validate_inspected_elements_type( SELF, [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.B_SPLINE_SURFACE'] ); - wr5: validate_locations_of_extreme_value_type( SELF, [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + + wr5: validate_locations_of_extreme_value_type( SELF, [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'B_SPLINE_SURFACE_KNOT_LOCATOR' ] ); wr6: validate_accuracy_types( SELF, [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.RATIO_MEASURE'] ); END_ENTITY; @@ -9885,7 +10418,7 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; WHERE wr1: ( ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' ) IN TYPEOF( SELF\ - shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold ) ) + shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold ) ) AND ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE' IN value_limit_type( SELF\ shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold ) ) ); wr2: validate_measured_data_type( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE' ); @@ -9899,12 +10432,12 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; WHERE wr1: ( ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' ) IN TYPEOF( SELF\ - shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold ) ) + shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold ) ) AND ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE' IN value_limit_type( SELF\ shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold ) ) ); wr2: validate_measured_data_type( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE' ); wr3: validate_inspected_elements_type( SELF, [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FACE_SURFACE'] ); - wr4: validate_locations_of_extreme_value_type( SELF, [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + + wr4: validate_locations_of_extreme_value_type( SELF, [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'POINT_ON_EDGE_CURVE' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'POINT_ON_FACE_SURFACE'] ); wr5: validate_accuracy_types( SELF, [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE'] ); END_ENTITY; @@ -9914,12 +10447,12 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; WHERE wr1: ( ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' ) IN TYPEOF( SELF\ - shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold ) ) + shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold ) ) AND ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE' IN value_limit_type( SELF\ shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold ) ) ); wr2: validate_measured_data_type( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE' ); wr3: validate_inspected_elements_type( SELF, [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CONNECTED_FACE_SET'] ); - wr4: validate_locations_of_extreme_value_type( SELF, [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + + wr4: validate_locations_of_extreme_value_type( SELF, [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'POINT_ON_EDGE_CURVE' ] ); wr5: validate_accuracy_types( SELF, [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE'] ); END_ENTITY; @@ -9929,12 +10462,12 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; WHERE wr1: ( ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' ) IN TYPEOF( SELF\ - shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold ) ) + shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold ) ) AND ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE' IN value_limit_type( SELF\ shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold ) ) ); wr2: validate_measured_data_type( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE' ); wr3: validate_inspected_elements_type( SELF, [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CONNECTED_FACE_SET'] ); - wr4: validate_locations_of_extreme_value_type( SELF, [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POINT_ON_SURFACE', + wr4: validate_locations_of_extreme_value_type( SELF, [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POINT_ON_SURFACE', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POINT_ON_SURFACE' ] ); wr5: validate_accuracy_types( SELF, [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE'] ); END_ENTITY; @@ -9944,12 +10477,12 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; WHERE wr1: ( ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' ) IN TYPEOF( SELF\ - shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold ) ) + shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold ) ) AND ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE' IN value_limit_type( SELF\ shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold ) ) ); wr2: validate_measured_data_type( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE' ); wr3: validate_inspected_elements_type( SELF, [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FACE_SURFACE'] ); - wr4: validate_locations_of_extreme_value_type( SELF, [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.VERTEX_POINT', + wr4: validate_locations_of_extreme_value_type( SELF, [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.VERTEX_POINT', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'POINT_ON_FACE_SURFACE'] ); wr5: validate_accuracy_types( SELF, [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE'] ); END_ENTITY; @@ -9959,12 +10492,12 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; WHERE wr1: ( ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' ) IN TYPEOF( SELF\ - shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold ) ) + shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold ) ) AND ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE' IN value_limit_type( SELF\ shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold ) ) ); wr2: validate_measured_data_type( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE' ); wr3: validate_inspected_elements_type( SELF, [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EDGE_CURVE'] ); - wr4: validate_locations_of_extreme_value_type( SELF, [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.VERTEX_POINT', + wr4: validate_locations_of_extreme_value_type( SELF, [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.VERTEX_POINT', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'POINT_ON_EDGE_CURVE'] ); wr5: validate_accuracy_types( SELF, [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE'] ); END_ENTITY; @@ -9977,136 +10510,136 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) AND ( 10 <= SIZEOF( pdr. used_representation.items ) ) AND ( SIZEOF( pdr.used_representation.items ) <= 13 ) ) ) ) = 1 ) ) ) = 1 ); - wr2 : ( ( NOT ( SELF\characterized_object.description IN [ 'straight bevel gear', 'helical bevel gear', 'spur gear', + wr2 : ( ( NOT ( SELF\characterized_object.description IN [ 'straight bevel gear', 'helical bevel gear', 'spur gear', 'helical gear' ] ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( + + 'PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( SIZEOF( [ - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM' , - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.RATIO_MEASURE_WITH_UNIT' ] * TYPEOF( it ) ) = 2 ) AND ( it.name + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM' , + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.RATIO_MEASURE_WITH_UNIT' ] * TYPEOF( it ) ) = 2 ) AND ( it.name = 'number of teeth' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ) ); - wr3 : ( ( NOT ( SELF\characterized_object.description IN [ 'straight bevel gear', 'helical bevel gear', 'spur gear', + wr3 : ( ( NOT ( SELF\characterized_object.description IN [ 'straight bevel gear', 'helical bevel gear', 'spur gear', 'helical gear' ] ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( + + 'PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( SIZEOF( [ - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM' , + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANE_ANGLE_MEASURE_WITH_UNIT' ] * TYPEOF( it ) ) = 2 ) AND ( it .name = 'reference pressure angle' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ) ); - wr4 : ( ( NOT ( SELF\characterized_object.description IN [ 'straight bevel gear', 'helical bevel gear', 'spur gear', + wr4 : ( ( NOT ( SELF\characterized_object.description IN [ 'straight bevel gear', 'helical bevel gear', 'spur gear', 'helical gear' ] ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( + + 'PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( SIZEOF( [ - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM' , - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( it ) ) = 2 ) AND ( it.name + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM' , + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( it ) ) = 2 ) AND ( it.name = 'rake shift factor' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ) ); - wr5 : ( ( NOT ( SELF\characterized_object.description IN [ 'straight bevel gear', 'helical bevel gear', 'spur gear', + wr5 : ( ( NOT ( SELF\characterized_object.description IN [ 'straight bevel gear', 'helical bevel gear', 'spur gear', 'helical gear' ] ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( + + 'PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( SIZEOF( [ - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM' , - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( it ) ) = 2 ) AND ( it.name + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM' , + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( it ) ) = 2 ) AND ( it.name = 'nominal tooth depth' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ) ); - wr6 : ( ( NOT ( SELF\characterized_object.description IN [ 'straight bevel gear', 'helical bevel gear', 'spur gear', + wr6 : ( ( NOT ( SELF\characterized_object.description IN [ 'straight bevel gear', 'helical bevel gear', 'spur gear', 'helical gear' ] ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( + + 'PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( SIZEOF( [ - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM' , - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( it ) ) = 2 ) AND ( it.name + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM' , + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( it ) ) = 2 ) AND ( it.name = 'face width' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ) ); - wr7 : ( ( NOT ( SELF\characterized_object.description IN [ 'straight bevel gear', 'helical bevel gear', 'spur gear', + wr7 : ( ( NOT ( SELF\characterized_object.description IN [ 'straight bevel gear', 'helical bevel gear', 'spur gear', 'helical gear' ] ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( + + 'PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( SIZEOF( [ - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM' , - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( it ) ) = 2 ) AND ( it.name + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM' , + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( it ) ) = 2 ) AND ( it.name = 'tip diameter' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ) ); - wr8 : ( ( NOT ( SELF\characterized_object.description IN [ 'straight bevel gear', 'helical bevel gear', 'spur gear', + wr8 : ( ( NOT ( SELF\characterized_object.description IN [ 'straight bevel gear', 'helical bevel gear', 'spur gear', 'helical gear' ] ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( + + 'PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. - used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( + used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF( it ) ) AND ( it. - name = 'module or diametral pitch' ) AND ( ( it.description = 'module' ) OR ( it.description = 'diametral pitch' ) ) ) ) ) + name = 'module or diametral pitch' ) AND ( ( it.description = 'module' ) OR ( it.description = 'diametral pitch' ) ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ) ); - wr9 : ( ( NOT ( SELF\characterized_object.description IN [ 'straight bevel gear', 'helical bevel gear', 'spur gear', + wr9 : ( ( NOT ( SELF\characterized_object.description IN [ 'straight bevel gear', 'helical bevel gear', 'spur gear', 'helical gear' ] ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( + + 'PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. - used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( + used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF( it ) ) AND ( it. - name = 'internal or external gear' ) AND ( ( it.description = 'internal' ) OR ( it.description = 'external' ) ) ) ) ) + name = 'internal or external gear' ) AND ( ( it.description = 'internal' ) OR ( it.description = 'external' ) ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ) ); - wr10: ( ( NOT ( SELF\characterized_object.description IN [ 'straight bevel gear', 'helical bevel gear', 'spur gear', + wr10: ( ( NOT ( SELF\characterized_object.description IN [ 'straight bevel gear', 'helical bevel gear', 'spur gear', 'helical gear' ] ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( + + 'PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( SIZEOF( [ - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM' , - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( it ) ) = 2 ) AND ( it.name + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM' , + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( it ) ) = 2 ) AND ( it.name = 'normal attribute' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ) ); - wr11: ( ( NOT ( SELF\characterized_object.description IN [ 'straight bevel gear', 'helical bevel gear', 'spur gear', + wr11: ( ( NOT ( SELF\characterized_object.description IN [ 'straight bevel gear', 'helical bevel gear', 'spur gear', 'helical gear' ] ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( + + 'PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( SIZEOF( [ - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM' , - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( it ) ) = 2 ) AND ( it.name + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM' , + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( it ) ) = 2 ) AND ( it.name = 'root fillet radius' ) ) ) ) <= 1 ) ) ) ) = 0 ) ) ) ) = 0 ) ); - wr12: ( ( NOT ( SELF\characterized_object.description IN [ 'helix gear', 'helical bevel gear'] ) ) OR ( SIZEOF( - QUERY ( pd <* USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | + wr12: ( ( NOT ( SELF\characterized_object.description IN [ 'helix gear', 'helical bevel gear'] ) ) OR ( SIZEOF( + QUERY ( pd <* USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( + + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'MEASURE_REPRESENTATION_ITEM' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANE_ANGLE_MEASURE_WITH_UNIT'] + + 'MEASURE_REPRESENTATION_ITEM' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANE_ANGLE_MEASURE_WITH_UNIT'] * TYPEOF( it ) ) = 2 ) AND ( it.name = 'reference helix angle' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ) ); - wr13: ( ( NOT ( SELF\characterized_object.description IN [ 'helix gear', 'helical bevel gear'] ) ) OR ( SIZEOF( - QUERY ( pd <* USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | + wr13: ( ( NOT ( SELF\characterized_object.description IN [ 'helix gear', 'helical bevel gear'] ) ) OR ( SIZEOF( + QUERY ( pd <* USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( + + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF( it ) ) AND ( it.name = 'gear tooth' ) AND ( ( it.description = + + 'DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF( it ) ) AND ( it.name = 'gear tooth' ) AND ( ( it.description = 'left hand tooth' ) OR ( it.description = 'right hand tooth' ) ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ) ); - wr14: ( ( NOT ( SELF\characterized_object.description IN [ 'straight bevel gear', 'helical bevel gear'] ) ) OR ( SIZEOF( - QUERY ( pd <* USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | + wr14: ( ( NOT ( SELF\characterized_object.description IN [ 'straight bevel gear', 'helical bevel gear'] ) ) OR ( SIZEOF( + QUERY ( pd <* USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( + + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'MEASURE_REPRESENTATION_ITEM' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANE_ANGLE_MEASURE_WITH_UNIT'] + + 'MEASURE_REPRESENTATION_ITEM' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANE_ANGLE_MEASURE_WITH_UNIT'] * TYPEOF( it ) ) = 2 ) AND ( it.name = 'tip angle' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ) ); - wr15: ( ( NOT ( SELF\characterized_object.description IN [ 'straight bevel gear', 'helical bevel gear'] ) ) OR ( SIZEOF( - QUERY ( pd <* USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | + wr15: ( ( NOT ( SELF\characterized_object.description IN [ 'straight bevel gear', 'helical bevel gear'] ) ) OR ( SIZEOF( + QUERY ( pd <* USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( + + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'MEASURE_REPRESENTATION_ITEM' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANE_ANGLE_MEASURE_WITH_UNIT'] + + 'MEASURE_REPRESENTATION_ITEM' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANE_ANGLE_MEASURE_WITH_UNIT'] * TYPEOF( it ) ) = 2 ) AND ( it.name = 'root angle' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ) ); wr16: ( SIZEOF( QUERY ( pds <* QUERY ( pd <* USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PROPERTY_DEFINITION.DEFINITION' ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) | ( NOT ( SIZEOF( QUERY ( sa_occ <* USEDIN( pds, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) | ( SIZEOF( QUERY ( sdr <* + + 'PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) | ( NOT ( SIZEOF( QUERY ( sa_occ <* USEDIN( pds, + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) | ( SIZEOF( QUERY ( sdr <* QUERY ( sar <* USEDIN( sa_occ, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.' - + 'RELATED_SHAPE_ASPECT' ) | ( ( sar.description = 'applied shape' ) AND ( - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF( sar ) ) ) ) | ( - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT' IN TYPEOF( sdr.relating_shape_aspect ) ) ) ) = 1 ) ) ) + + 'RELATED_SHAPE_ASPECT' ) | ( ( sar.description = 'applied shape' ) AND ( + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF( sar ) ) ) ) | ( + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT' IN TYPEOF( sdr.relating_shape_aspect ) ) ) ) = 1 ) ) ) = 1 ) ) ) ) = 0 ); END_ENTITY; @@ -10118,7 +10651,7 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; helical_angle : plane_angle_measure; gear_ratio : REAL; WHERE - wr1: ( SIZEOF( QUERY ( lr <* SELF\kinematic_pair.associated_link_representations_1 | ( NOT ( + wr1: ( SIZEOF( QUERY ( lr <* SELF\kinematic_pair.associated_link_representations_1 | ( NOT ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.RIGID_LINK_REPRESENTATION' IN TYPEOF( lr ) ) ) ) ) = 0 ); END_ENTITY; @@ -10135,12 +10668,15 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; lower_limit_actual_rotation_1 : OPTIONAL plane_angle_measure; upper_limit_actual_rotation_1 : OPTIONAL plane_angle_measure; WHERE - wr1: ( ( ( NOT EXISTS( lower_limit_actual_rotation_1 ) ) OR ( NOT EXISTS( upper_limit_actual_rotation_1 ) ) ) XOR ( + wr1: ( ( ( NOT EXISTS( lower_limit_actual_rotation_1 ) ) OR ( NOT EXISTS( upper_limit_actual_rotation_1 ) ) ) XOR ( lower_limit_actual_rotation_1 < upper_limit_actual_rotation_1 ) ); END_ENTITY; ENTITY general_datum_reference - ABSTRACT SUPERTYPE OF ( ONEOF ( datum_reference_compartment, datum_reference_element ) ) + ABSTRACT SUPERTYPE OF ( + ONEOF ( + datum_reference_compartment, + datum_reference_element ) ) SUBTYPE OF ( shape_aspect ); base : datum_or_common_datum; modifiers : OPTIONAL SET [1 : ?] OF datum_reference_modifier; @@ -10158,32 +10694,32 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; ENTITY general_feature SUBTYPE OF ( shape_feature_definition ); WHERE - wr1: ( ( SIZEOF( get_property_definition_representations( SELF ) ) <= 1 ) AND ( SIZEOF( QUERY ( pdr <* + wr1: ( ( SIZEOF( get_property_definition_representations( SELF ) ) <= 1 ) AND ( SIZEOF( QUERY ( pdr <* get_property_definition_representations( SELF ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) ) <= 1 ) ); - wr2: ( SIZEOF( QUERY ( sa <* get_shape_aspects( SELF ) | ( sa.description = 'course of travel occurrence' ) ) ) = SIZEOF( - QUERY ( sa <* get_shape_aspects( SELF ) | ( ( sa.description = 'course of travel occurrence' ) AND ( SIZEOF( + wr2: ( SIZEOF( QUERY ( sa <* get_shape_aspects( SELF ) | ( sa.description = 'course of travel occurrence' ) ) ) = SIZEOF( + QUERY ( sa <* get_shape_aspects( SELF ) | ( ( sa.description = 'course of travel occurrence' ) AND ( SIZEOF( QUERY ( sar <* USEDIN( sa, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.' + 'RELATED_SHAPE_ASPECT' ) | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF( sar ) ) AND ( sar.name = 'course of travel' ) ) ) ) = 1 ) ) ) ) ); - wr3: ( SIZEOF( QUERY ( sa <* get_shape_aspects( SELF ) | ( sa.description = 'course of travel occurrence' ) ) ) = SIZEOF( - QUERY ( sa <* get_shape_aspects( SELF ) | ( ( sa.description = 'course of travel occurrence' ) AND ( SIZEOF( + wr3: ( SIZEOF( QUERY ( sa <* get_shape_aspects( SELF ) | ( sa.description = 'course of travel occurrence' ) ) ) = SIZEOF( + QUERY ( sa <* get_shape_aspects( SELF ) | ( ( sa.description = 'course of travel occurrence' ) AND ( SIZEOF( QUERY ( sar <* USEDIN( sa, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.' + 'RELATED_SHAPE_ASPECT' ) | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF( sar ) ) AND ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PATH_FEATURE_COMPONENT' IN TYPEOF( sar. relating_shape_aspect ) ) ) ) ) = 1 ) ) ) ) ); - wr4: ( SIZEOF( QUERY ( sa <* get_shape_aspects( SELF ) | ( sa.description = 'boundary occurrence' ) ) ) = SIZEOF( - QUERY ( sa <* get_shape_aspects( SELF ) | ( ( sa.description = 'boundary occurrence' ) AND ( SIZEOF( + wr4: ( SIZEOF( QUERY ( sa <* get_shape_aspects( SELF ) | ( sa.description = 'boundary occurrence' ) ) ) = SIZEOF( + QUERY ( sa <* get_shape_aspects( SELF ) | ( ( sa.description = 'boundary occurrence' ) AND ( SIZEOF( QUERY ( sar <* USEDIN( sa, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.' + 'RELATED_SHAPE_ASPECT' ) | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF( sar ) ) AND ( sar.description = 'profile usage' ) ) ) ) = 1 ) ) ) ) ); wr5: ( ( SIZEOF( QUERY ( sa <* get_shape_aspects( SELF ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'COMPOSITE_SHAPE_ASPECT' IN TYPEOF( sa ) ) ) ) <= 1 ) AND ( SIZEOF( QUERY ( sa <* get_shape_aspects( SELF ) | - ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COMPOSITE_SHAPE_ASPECT' IN TYPEOF( sa ) ) AND ( sa.name = - 'general compound feature' ) AND ( SIZEOF( QUERY ( sar <* USEDIN( sa, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATING_SHAPE_ASPECT' ) | ( ( - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF( sar ) ) AND ( - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.INSTANCED_FEATURE' IN TYPEOF( sar.related_shape_aspect ) ) ) ) ) + + 'COMPOSITE_SHAPE_ASPECT' IN TYPEOF( sa ) ) ) ) <= 1 ) AND ( SIZEOF( QUERY ( sa <* get_shape_aspects( SELF ) | + ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COMPOSITE_SHAPE_ASPECT' IN TYPEOF( sa ) ) AND ( sa.name = + 'general compound feature' ) AND ( SIZEOF( QUERY ( sar <* USEDIN( sa, + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATING_SHAPE_ASPECT' ) | ( ( + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF( sar ) ) AND ( + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.INSTANCED_FEATURE' IN TYPEOF( sar.related_shape_aspect ) ) ) ) ) >= 2 ) ) ) ) <= 1 ) ); END_ENTITY; @@ -10202,7 +10738,7 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; SUBTYPE OF ( general_property ); WHERE wr1: ( SIZEOF( QUERY ( gpa <* USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.GENERAL_PROPERTY_ASSOCIATION.' - + 'BASE_DEFINITION' ) | ( NOT ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MATERIAL_PROPERTY' IN TYPEOF( + + 'BASE_DEFINITION' ) | ( NOT ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MATERIAL_PROPERTY' IN TYPEOF( gpa\general_property_association.derived_definition ) ) ) ) ) = 0 ); END_ENTITY; @@ -10218,7 +10754,7 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; base_definition : general_property; derived_definition : derived_property_select; WHERE - wr1: ( SIZEOF( USEDIN( derived_definition, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + + wr1: ( SIZEOF( USEDIN( derived_definition, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'GENERAL_PROPERTY_ASSOCIATION.' + 'DERIVED_DEFINITION' ) ) = 1 ); wr2: ( derived_definition.name = base_definition.name ); END_ENTITY; @@ -10236,7 +10772,7 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; increment_value : maths_number; increment_number : positive_integer; DERIVE - SELF\finite_space.members : SET [2 : ?] OF maths_number := make_numeric_set( start_value, increment_value, + SELF\finite_space.members : SET [2 : ?] OF maths_number := make_numeric_set( start_value, increment_value, increment_number ); WHERE wr1: ( increment_value <> 0 ); @@ -10248,8 +10784,12 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; END_ENTITY; ENTITY generic_expression - ABSTRACT SUPERTYPE OF ( ONEOF ( simple_generic_expression, unary_generic_expression, binary_generic_expression, - multiple_arity_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; @@ -10260,7 +10800,10 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; END_ENTITY; ENTITY generic_product_definition_reference - ABSTRACT SUPERTYPE OF ( ONEOF ( product_definition_reference, product_definition_reference_with_local_representation ) ); + ABSTRACT SUPERTYPE OF ( + ONEOF ( + product_definition_reference, + product_definition_reference_with_local_representation ) ); source : external_source; END_ENTITY; @@ -10291,9 +10834,14 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; END_ENTITY; ENTITY geometric_gap_in_topology - ABSTRACT SUPERTYPE OF ( ONEOF ( gap_between_adjacent_edges_in_loop, gap_between_vertex_and_base_surface, - gap_between_vertex_and_edge, gap_between_edge_and_base_surface, gap_between_pcurves_related_to_an_edge, - gap_between_faces_related_to_an_edge ) ) + ABSTRACT SUPERTYPE OF ( + ONEOF ( + gap_between_adjacent_edges_in_loop, + gap_between_vertex_and_base_surface, + gap_between_vertex_and_edge, + gap_between_edge_and_base_surface, + gap_between_pcurves_related_to_an_edge, + gap_between_faces_related_to_an_edge ) ) SUBTYPE OF ( inapt_topology_and_geometry_relationship ); END_ENTITY; @@ -10309,7 +10857,7 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; SELF\item_identified_representation_usage.used_representation : shape_model; SELF\item_identified_representation_usage.identified_item : geometric_model_item; UNIQUE - ur1 : SELF\item_identified_representation_usage.definition; + ur1 : definition; END_ENTITY; ENTITY geometric_model_element_relationship @@ -10317,14 +10865,18 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; SELF\representation_item_relationship.relating_representation_item : geometric_representation_item; SELF\representation_item_relationship.related_representation_item : geometric_representation_item; UNIQUE - ur1 : relating_representation_item, related_representation_item; + ur1 : SELF\representation_item_relationship.relating_representation_item, SELF\representation_item_relationship. + 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 - SUPERTYPE OF ( ONEOF ( geometric_representation_context_with_parameter, path_parameter_representation_context ) ) + SUPERTYPE OF ( + ONEOF ( + geometric_representation_context_with_parameter, + path_parameter_representation_context ) ) SUBTYPE OF ( representation_context ); coordinate_space_dimension : dimension_count; END_ENTITY; @@ -10335,22 +10887,84 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; 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, primitive_2d, right_angular_wedge, volume, half_space_solid, shell_based_surface_model, - face_based_surface_model, shell_based_wireframe_model, edge_based_wireframe_model, geometric_set, tessellated_item ) ANDOR - ONEOF ( camera_model, camera_model_d3_multi_clipping_intersection, camera_model_d3_multi_clipping_union, curve, direction, - light_source ) ANDOR ONEOF ( annotation_fill_area, composite_text, curve, defined_character_glyph, defined_symbol, point, - symbol_target, text_literal ) ANDOR ONEOF ( kinematic_path, placement ) ANDOR ONEOF ( curve, - externally_defined_hatch_style, externally_defined_tile_style, fill_area_style_hatching, - fill_area_style_tile_coloured_region, fill_area_style_tile_curve_with_style, fill_area_style_tile_symbol_with_style, - fill_area_style_tiles, one_direction_repeat_factor, point, vector ) ANDOR ONEOF ( curve, planar_extent ) ANDOR ONEOF ( - rotation_about_direction, su_parameters ) ) + 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, + primitive_2d, + right_angular_wedge, + volume, + half_space_solid, + shell_based_surface_model, + face_based_surface_model, + shell_based_wireframe_model, + edge_based_wireframe_model, + geometric_set, + tessellated_item ) + ANDOR + ONEOF ( + camera_model, + camera_model_d3_multi_clipping_intersection, + camera_model_d3_multi_clipping_union, + curve, + direction, + light_source ) + ANDOR + ONEOF ( + annotation_fill_area, + composite_text, + curve, + defined_character_glyph, + defined_symbol, + point, + symbol_target, + text_literal ) + ANDOR + ONEOF ( + kinematic_path, + placement ) + ANDOR + ONEOF ( + curve, + externally_defined_hatch_style, + externally_defined_tile_style, + fill_area_style_hatching, + fill_area_style_tile_coloured_region, + fill_area_style_tile_curve_with_style, + fill_area_style_tile_symbol_with_style, + fill_area_style_tiles, + one_direction_repeat_factor, + point, + vector ) + ANDOR + ONEOF ( + curve, + planar_extent ) + ANDOR + ONEOF ( + rotation_about_direction, + su_parameters ) ) SUBTYPE OF ( representation_item ); DERIVE dim : dimension_count := dimension_of( SELF ); WHERE - wr1: ( SIZEOF( QUERY ( using_rep <* using_representations( SELF ) | ( NOT ( + wr1: ( SIZEOF( QUERY ( using_rep <* using_representations( SELF ) | ( NOT ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.GEOMETRIC_REPRESENTATION_CONTEXT' IN TYPEOF( using_rep. context_of_items ) ) ) ) ) = 0 ); END_ENTITY; @@ -10361,10 +10975,25 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; END_ENTITY; ENTITY geometric_tolerance - ABSTRACT SUPERTYPE OF ( geometric_tolerance_with_datum_reference ANDOR geometric_tolerance_with_defined_unit ANDOR ONEOF ( - geometric_tolerance_with_modifiers, modified_geometric_tolerance ) ANDOR unequally_disposed_geometric_tolerance ANDOR - ONEOF ( cylindricity_tolerance, flatness_tolerance, line_profile_tolerance, position_tolerance, roundness_tolerance, - straightness_tolerance, surface_profile_tolerance ) ); + ABSTRACT SUPERTYPE OF ( + geometric_tolerance_with_datum_reference + ANDOR + geometric_tolerance_with_defined_unit + ANDOR + ONEOF ( + geometric_tolerance_with_modifiers, + modified_geometric_tolerance ) + ANDOR + unequally_disposed_geometric_tolerance + ANDOR + ONEOF ( + cylindricity_tolerance, + flatness_tolerance, + line_profile_tolerance, + position_tolerance, + roundness_tolerance, + straightness_tolerance, + surface_profile_tolerance ) ); name : label; description : OPTIONAL text; magnitude : OPTIONAL length_measure_with_unit; @@ -10377,8 +11006,8 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; WHERE wr1: ( magnitude\measure_with_unit.value_component >= 0 ); wr2: EXISTS( controlling_shape ); - wr3: ( ( NOT ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT_RELATIONSHIP' IN TYPEOF( - toleranced_shape_aspect ) ) ) OR ( toleranced_shape_aspect\shape_aspect_relationship.relating_shape_aspect.of_shape + wr3: ( ( NOT ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT_RELATIONSHIP' IN TYPEOF( + toleranced_shape_aspect ) ) ) OR ( toleranced_shape_aspect\shape_aspect_relationship.relating_shape_aspect.of_shape :=: toleranced_shape_aspect\shape_aspect_relationship.related_shape_aspect.of_shape ) ); wr4: ( SIZEOF( USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'ID_ATTRIBUTE.IDENTIFIED_ITEM' ) ) <= 1 ); END_ENTITY; @@ -10391,12 +11020,20 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; END_ENTITY; ENTITY geometric_tolerance_with_datum_reference - SUPERTYPE OF ( ONEOF ( angularity_tolerance, circular_runout_tolerance, coaxiality_tolerance, concentricity_tolerance, - parallelism_tolerance, perpendicularity_tolerance, symmetry_tolerance, total_runout_tolerance ) ) + SUPERTYPE OF ( + ONEOF ( + angularity_tolerance, + circular_runout_tolerance, + coaxiality_tolerance, + concentricity_tolerance, + parallelism_tolerance, + perpendicularity_tolerance, + symmetry_tolerance, + total_runout_tolerance ) ) SUBTYPE OF ( geometric_tolerance ); datum_system : SET [1 : ?] OF datum_system_or_reference; WHERE - wr1: ( ( SIZEOF( QUERY ( ds <* datum_system | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'DATUM_SYSTEM' ) IN + wr1: ( ( SIZEOF( QUERY ( ds <* datum_system | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'DATUM_SYSTEM' ) IN TYPEOF( ds ) ) ) ) = 0 ) OR ( SIZEOF( datum_system ) = 1 ) ); END_ENTITY; @@ -10420,7 +11057,7 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; SUBTYPE OF ( geometric_tolerance_with_modifiers ); maximum_upper_tolerance : length_measure_with_unit; WHERE - wr1: ( ( geometric_tolerance_modifier.maximum_material_requirement IN SELF\geometric_tolerance_with_modifiers.modifiers ) + wr1: ( ( geometric_tolerance_modifier.maximum_material_requirement IN SELF\geometric_tolerance_with_modifiers.modifiers ) OR ( geometric_tolerance_modifier.least_material_requirement IN SELF\geometric_tolerance_with_modifiers.modifiers ) ); wr2: ( ( maximum_upper_tolerance\measure_with_unit.unit_component = SELF\geometric_tolerance.magnitude\measure_with_unit. unit_component ) AND ( maximum_upper_tolerance\measure_with_unit.value_component > SELF\geometric_tolerance. @@ -10441,61 +11078,61 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; WHERE wr1: ( SELF.context_of_items\geometric_representation_context.coordinate_space_dimension = 2 ); wr2: ( SIZEOF( QUERY ( item <* SELF.items | ( NOT ( SIZEOF( TYPEOF( item ) * [ - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.GEOMETRIC_CURVE_SET' , - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.AXIS2_PLACEMENT_2D' , + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.GEOMETRIC_CURVE_SET' , + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.AXIS2_PLACEMENT_2D' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MAPPED_ITEM' ] ) = 1 ) ) ) ) = 0 ); wr3: ( SIZEOF( QUERY ( item <* SELF.items | ( SIZEOF( TYPEOF( item ) * [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'GEOMETRIC_CURVE_SET' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MAPPED_ITEM'] ) = 1 ) ) ) >= 1 ); - wr4: ( SIZEOF( QUERY ( mi <* QUERY ( item <* SELF.items | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MAPPED_ITEM' - IN TYPEOF( item ) ) ) | ( NOT ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + + wr4: ( SIZEOF( QUERY ( mi <* QUERY ( item <* SELF.items | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MAPPED_ITEM' + IN TYPEOF( item ) ) ) | ( NOT ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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 | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'GEOMETRIC_CURVE_SET' IN TYPEOF( item ) ) ) | ( NOT ( SIZEOF( QUERY ( elem <* gcs\geometric_set.elements | ( - NOT ( SIZEOF( TYPEOF( elem ) * [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.B_SPLINE_CURVE', + + 'GEOMETRIC_CURVE_SET' IN TYPEOF( item ) ) ) | ( NOT ( SIZEOF( QUERY ( elem <* gcs\geometric_set.elements | ( + NOT ( SIZEOF( TYPEOF( elem ) * [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.B_SPLINE_CURVE', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CIRCLE' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'COMPOSITE_CURVE' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ELLIPSE', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.OFFSET_CURVE_2D' , + + 'COMPOSITE_CURVE' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ELLIPSE', + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.OFFSET_CURVE_2D' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POINT' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'POLYLINE' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.TRIMMED_CURVE'] ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ); wr6: ( SIZEOF( QUERY ( gcs <* QUERY ( item <* SELF.items | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'GEOMETRIC_CURVE_SET' IN TYPEOF( item ) ) ) | ( NOT ( SIZEOF( QUERY ( crv <* QUERY ( elem <* gcs\geometric_set. - elements | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CURVE' IN TYPEOF( elem ) ) ) | ( NOT + elements | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CURVE' IN TYPEOF( elem ) ) ) | ( NOT valid_basis_curve_in_2d_wireframe( crv ) ) ) ) = 0 ) ) ) ) = 0 ); wr7: ( SIZEOF( QUERY ( gcs <* QUERY ( item <* SELF.items | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'GEOMETRIC_CURVE_SET' IN TYPEOF( item ) ) ) | ( NOT ( SIZEOF( QUERY ( pnt <* QUERY ( elem <* gcs\geometric_set. - elements | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POINT' IN TYPEOF( elem ) ) ) | ( NOT ( SIZEOF( - TYPEOF( pnt ) * [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CARTESIAN_POINT', + elements | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POINT' IN TYPEOF( elem ) ) ) | ( NOT ( SIZEOF( + TYPEOF( pnt ) * [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CARTESIAN_POINT', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.GEOMETRIC_SET', + wr1: ( SIZEOF( QUERY ( it <* SELF.items | ( NOT ( SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.GEOMETRIC_SET', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MAPPED_ITEM' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'AXIS2_PLACEMENT_3D' ] * TYPEOF( it ) ) = 1 ) ) ) ) = 0 ); - wr2: ( SIZEOF( QUERY ( it <* SELF.items | ( SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.GEOMETRIC_SET', + wr2: ( SIZEOF( QUERY ( it <* SELF.items | ( SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.GEOMETRIC_SET', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MAPPED_ITEM' ] * TYPEOF( it ) ) = 1 ) ) ) > 0 ); - wr3: ( SIZEOF( QUERY ( mi <* QUERY ( it <* SELF.items | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MAPPED_ITEM' IN - TYPEOF( it ) ) ) | ( NOT ( ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + + wr3: ( SIZEOF( QUERY ( mi <* QUERY ( it <* SELF.items | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MAPPED_ITEM' IN + TYPEOF( it ) ) ) | ( NOT ( ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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 | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.GEOMETRIC_SET' IN TYPEOF( mr_it ) ) ) ) > 0 ) ) ) ) ) = 0 ); - wr4: ( SIZEOF( QUERY ( gs <* QUERY ( it <* SELF.items | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.GEOMETRIC_SET' - IN TYPEOF( it ) ) ) | ( NOT ( SIZEOF( QUERY ( pnt <* QUERY ( gsel <* gs\geometric_set.elements | ( - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POINT' IN TYPEOF( gsel ) ) ) | ( NOT gbsf_check_point( pnt ) ) ) ) + wr4: ( SIZEOF( QUERY ( gs <* QUERY ( it <* SELF.items | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.GEOMETRIC_SET' + IN TYPEOF( it ) ) ) | ( NOT ( SIZEOF( QUERY ( pnt <* QUERY ( gsel <* gs\geometric_set.elements | ( + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POINT' IN TYPEOF( gsel ) ) ) | ( NOT gbsf_check_point( pnt ) ) ) ) = 0 ) ) ) ) = 0 ); - wr5: ( SIZEOF( QUERY ( gs <* QUERY ( it <* SELF.items | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.GEOMETRIC_SET' - IN TYPEOF( it ) ) ) | ( NOT ( SIZEOF( QUERY ( cv <* QUERY ( gsel <* gs\geometric_set.elements | ( - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CURVE' IN TYPEOF( gsel ) ) ) | ( NOT gbsf_check_curve( cv ) ) ) ) + wr5: ( SIZEOF( QUERY ( gs <* QUERY ( it <* SELF.items | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.GEOMETRIC_SET' + IN TYPEOF( it ) ) ) | ( NOT ( SIZEOF( QUERY ( cv <* QUERY ( gsel <* gs\geometric_set.elements | ( + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CURVE' IN TYPEOF( gsel ) ) ) | ( NOT gbsf_check_curve( cv ) ) ) ) = 0 ) ) ) ) = 0 ); - wr6: ( SIZEOF( QUERY ( gs <* QUERY ( it <* SELF.items | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.GEOMETRIC_SET' - IN TYPEOF( it ) ) ) | ( NOT ( SIZEOF( QUERY ( sf <* QUERY ( gsel <* gs\geometric_set.elements | ( - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SURFACE' IN TYPEOF( gsel ) ) ) | ( NOT gbsf_check_surface( sf ) ) ) ) + wr6: ( SIZEOF( QUERY ( gs <* QUERY ( it <* SELF.items | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.GEOMETRIC_SET' + IN TYPEOF( it ) ) ) | ( NOT ( SIZEOF( QUERY ( sf <* QUERY ( gsel <* gs\geometric_set.elements | ( + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SURFACE' IN TYPEOF( gsel ) ) ) | ( NOT gbsf_check_surface( sf ) ) ) ) = 0 ) ) ) ) = 0 ); - wr7: ( SIZEOF( QUERY ( gs <* QUERY ( it <* SELF.items | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.GEOMETRIC_SET' - IN TYPEOF( it ) ) ) | ( SIZEOF( QUERY ( gsel <* gs\geometric_set.elements | ( + wr7: ( SIZEOF( QUERY ( gs <* QUERY ( it <* SELF.items | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.GEOMETRIC_SET' + IN TYPEOF( it ) ) ) | ( SIZEOF( QUERY ( gsel <* gs\geometric_set.elements | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SURFACE' IN TYPEOF( gsel ) ) ) ) > 0 ) ) ) > 0 ); END_ENTITY; @@ -10503,42 +11140,54 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; SUBTYPE OF ( shape_representation ); WHERE wr1: ( SIZEOF( QUERY ( it <* SELF.items | ( NOT ( SIZEOF( TYPEOF( it ) * [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'GEOMETRIC_CURVE_SET' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.AXIS2_PLACEMENT_3D', + + 'GEOMETRIC_CURVE_SET' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.AXIS2_PLACEMENT_3D', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MAPPED_ITEM' ] ) = 1 ) ) ) ) = 0 ); wr2: ( SIZEOF( QUERY ( it <* SELF.items | ( SIZEOF( TYPEOF( it ) * [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'GEOMETRIC_CURVE_SET' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MAPPED_ITEM'] ) = 1 ) ) ) >= 1 ); wr3: ( SIZEOF( QUERY ( gcs <* QUERY ( it <* SELF.items | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'GEOMETRIC_CURVE_SET' IN TYPEOF( it ) ) ) | ( NOT ( SIZEOF( QUERY ( crv <* QUERY ( elem <* gcs\geometric_set. - elements | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CURVE' IN TYPEOF( elem ) ) ) | ( NOT + elements | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CURVE' IN TYPEOF( elem ) ) ) | ( NOT valid_geometrically_bounded_wf_curve( crv ) ) ) ) = 0 ) ) ) ) = 0 ); wr4: ( SIZEOF( QUERY ( gcs <* QUERY ( it <* SELF.items | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'GEOMETRIC_CURVE_SET' IN TYPEOF( it ) ) ) | ( NOT ( SIZEOF( QUERY ( pnts <* QUERY ( elem <* gcs\geometric_set. - elements | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POINT' IN TYPEOF( elem ) ) ) | ( NOT + elements | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POINT' IN TYPEOF( elem ) ) ) | ( NOT valid_geometrically_bounded_wf_point( pnts ) ) ) ) = 0 ) ) ) ) = 0 ); wr5: ( SIZEOF( QUERY ( gcs <* QUERY ( it <* SELF.items | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'GEOMETRIC_CURVE_SET' IN TYPEOF( it ) ) ) | ( NOT ( SIZEOF( QUERY ( cnc <* QUERY ( elem <* gcs\geometric_set. - elements | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CONIC' IN TYPEOF( elem ) ) ) | ( NOT ( - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.AXIS2_PLACEMENT_3D' IN TYPEOF( cnc\conic.position ) ) ) ) ) = 0 ) ) ) ) + elements | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CONIC' IN TYPEOF( elem ) ) ) | ( NOT ( + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.AXIS2_PLACEMENT_3D' IN TYPEOF( cnc\conic.position ) ) ) ) ) = 0 ) ) ) ) = 0 ); wr6: ( SIZEOF( QUERY ( gcs <* QUERY ( it <* SELF.items | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'GEOMETRIC_CURVE_SET' IN TYPEOF( it ) ) ) | ( NOT ( SIZEOF( QUERY ( pline <* QUERY ( elem <* gcs\geometric_set. - elements | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POLYLINE' IN TYPEOF( elem ) ) ) | ( NOT ( SIZEOF( + elements | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POLYLINE' IN TYPEOF( elem ) ) ) | ( NOT ( SIZEOF( pline\polyline.points ) > 2 ) ) ) ) = 0 ) ) ) ) = 0 ); - wr7: ( SIZEOF( QUERY ( mi <* QUERY ( it <* SELF.items | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MAPPED_ITEM' IN - TYPEOF( it ) ) ) | ( NOT ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + + wr7: ( SIZEOF( QUERY ( mi <* QUERY ( it <* SELF.items | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MAPPED_ITEM' IN + TYPEOF( it ) ) ) | ( NOT ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'GEOMETRICALLY_BOUNDED_WIREFRAME_SHAPE_REPRESENTATION' ) IN TYPEOF( mi\mapped_item.mapping_source. mapped_representation ) ) ) ) ) = 0 ); END_ENTITY; ENTITY geometry_with_local_irregularity - ABSTRACT SUPERTYPE OF ( ONEOF ( extreme_patch_width_variation, zero_surface_normal, abrupt_change_of_surface_normal ) ) + ABSTRACT SUPERTYPE OF ( + ONEOF ( + extreme_patch_width_variation, + zero_surface_normal, + abrupt_change_of_surface_normal ) ) SUBTYPE OF ( inapt_geometry ); END_ENTITY; ENTITY geometry_with_local_near_degeneracy - ABSTRACT SUPERTYPE OF ( ONEOF ( curve_with_small_curvature_radius, short_length_curve_segment, - surface_with_small_curvature_radius, small_area_surface_patch, narrow_surface_patch, indistinct_surface_knots, - indistinct_curve_knots, nearly_degenerate_surface_boundary, nearly_degenerate_surface_patch ) ) + ABSTRACT SUPERTYPE OF ( + ONEOF ( + curve_with_small_curvature_radius, + short_length_curve_segment, + surface_with_small_curvature_radius, + small_area_surface_patch, + narrow_surface_patch, + indistinct_surface_knots, + indistinct_curve_knots, + nearly_degenerate_surface_boundary, + nearly_degenerate_surface_patch ) ) SUBTYPE OF ( inapt_geometry ); END_ENTITY; @@ -10561,7 +11210,10 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; END_ENTITY; ENTITY group - SUPERTYPE OF ( ONEOF ( change_group, change_element ) ); + SUPERTYPE OF ( + ONEOF ( + change_group, + change_element ) ); name : label; description : OPTIONAL text; DERIVE @@ -10571,13 +11223,16 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; END_ENTITY; ENTITY group_assignment - ABSTRACT SUPERTYPE OF ( ONEOF ( current_change_element_assignment, previous_change_element_assignment, - change_group_assignment ) ); + ABSTRACT SUPERTYPE OF ( + ONEOF ( + current_change_element_assignment, + previous_change_element_assignment, + change_group_assignment ) ); assigned_group : group; DERIVE role : object_role := get_role( SELF ); WHERE - wr1: ( SIZEOF( USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'ROLE_ASSOCIATION.ITEM_WITH_ROLE' ) ) <= + wr1: ( SIZEOF( USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'ROLE_ASSOCIATION.ITEM_WITH_ROLE' ) ) <= 1 ); END_ENTITY; @@ -10603,21 +11258,21 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; ENTITY hardness_representation SUBTYPE OF ( representation ); WHERE - wr1: ( ( 2 <= SIZEOF( SELF.items ) ) AND ( SIZEOF( SELF.items ) <= 4 ) AND ( ( SIZEOF( QUERY ( i <* items | ( ( ( + wr1: ( ( 2 <= SIZEOF( SELF.items ) ) AND ( SIZEOF( SELF.items ) <= 4 ) AND ( ( SIZEOF( QUERY ( i <* items | ( ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'DESCRIPTIVE_REPRESENTATION_ITEM' ) IN TYPEOF( i ) ) AND ( i .name IN [ 'measuring method', 'measuring position'] ) ) ) ) + SIZEOF( QUERY ( i <* items | ( ( SIZEOF( [ - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'MEASURE_REPRESENTATION_ITEM', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'VALUE_RANGE'] * TYPEOF( i ) ) = 1 ) AND ( i.name IN [ 'depth', + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'MEASURE_REPRESENTATION_ITEM', + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.' + - 'USED_REPRESENTATION' ) ) = 1 ) AND ( SIZEOF( QUERY ( pdr <* USEDIN( SELF, + 'USED_REPRESENTATION' ) ) = 1 ) AND ( SIZEOF( QUERY ( pdr <* USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.' + 'USED_REPRESENTATION' ) - | ( SIZEOF( QUERY ( gpa <* USEDIN( pdr.definition, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + - 'GENERAL_PROPERTY_ASSOCIATION.' + 'DERIVED_DEFINITION' ) | ( ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + | ( SIZEOF( QUERY ( gpa <* USEDIN( pdr.definition, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + + 'GENERAL_PROPERTY_ASSOCIATION.' + 'DERIVED_DEFINITION' ) | ( ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'GENERAL_PROPERTY' ) IN TYPEOF( gpa.base_definition ) ) AND ( gpa\general_property_association.base_definition\ general_property.name = 'surface_condition' ) ) ) ) = 1 ) ) ) = 1 ) ); END_ENTITY; @@ -10639,7 +11294,7 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; approximation_tolerance : length_measure; WHERE wr1: ( ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' ) IN TYPEOF( SELF\ - shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold ) ) + shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold ) ) AND ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COUNT_MEASURE' IN value_limit_type( SELF\ shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold ) ) ); wr2: validate_measured_data_type( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COUNT_MEASURE' ); @@ -10654,7 +11309,7 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; approximation_tolerance : length_measure; WHERE wr1: ( ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' ) IN TYPEOF( SELF\ - shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold ) ) + shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold ) ) AND ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COUNT_MEASURE' IN value_limit_type( SELF\ shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold ) ) ); wr2: validate_measured_data_type( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COUNT_MEASURE' ); @@ -10669,7 +11324,7 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; approximation_tolerance : length_measure; WHERE wr1: ( ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' ) IN TYPEOF( SELF\ - shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold ) ) + shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold ) ) AND ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COUNT_MEASURE' IN value_limit_type( SELF\ shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold ) ) ); wr2: validate_measured_data_type( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COUNT_MEASURE' ); @@ -10684,7 +11339,7 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; approximation_tolerance : length_measure; WHERE wr1: ( ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' ) IN TYPEOF( SELF\ - shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold ) ) + shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold ) ) AND ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COUNT_MEASURE' IN value_limit_type( SELF\ shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold ) ) ); wr2: validate_measured_data_type( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COUNT_MEASURE' ); @@ -10694,11 +11349,16 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; END_ENTITY; ENTITY high_order_kinematic_pair - ABSTRACT SUPERTYPE OF ( ONEOF ( linear_flexible_and_planar_curve_pair, point_on_surface_pair, point_on_planar_curve_pair, - planar_curve_pair, surface_pair ) ) + ABSTRACT SUPERTYPE OF ( + ONEOF ( + linear_flexible_and_planar_curve_pair, + point_on_surface_pair, + point_on_planar_curve_pair, + planar_curve_pair, + surface_pair ) ) SUBTYPE OF ( kinematic_pair ); WHERE - wr1: ( SIZEOF( QUERY ( lr <* SELF\kinematic_pair.associated_link_representations_2 | ( NOT ( + wr1: ( SIZEOF( QUERY ( lr <* SELF\kinematic_pair.associated_link_representations_2 | ( NOT ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.RIGID_LINK_REPRESENTATION' IN TYPEOF( lr ) ) ) ) ) = 0 ); END_ENTITY; @@ -10707,115 +11367,115 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; WHERE wr1 : ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FEATURE_COMPONENT_DEFINITION' IN TYPEOF( SELF.of_shape.definition ) ); wr2 : ( SELF.description IN [ 'through', 'flat', 'flat with radius', 'flat with taper', 'spherical', 'conical'] ); - wr3 : ( ( NOT ( SELF.description = 'through' ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( USEDIN( pd, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) ) = 0 ) ) ) ) + wr3 : ( ( NOT ( SELF.description = 'through' ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( USEDIN( pd, + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) ) = 0 ) ) ) ) = 0 ) ); - wr4 : ( ( NOT ( SELF.description IN [ 'flat with radius', 'flat with taper', 'spherical', 'conical'] ) ) OR ( SIZEOF( - QUERY ( pd <* USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | + wr4 : ( ( NOT ( SELF.description IN [ 'flat with radius', 'flat with taper', 'spherical', 'conical'] ) ) OR ( SIZEOF( + QUERY ( pd <* USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( pdr <* USEDIN( pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) ) = 1 ) ) ) ) = 0 ) ); - wr5 : ( ( NOT ( SELF.description = 'flat' ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( + wr5 : ( ( NOT ( SELF.description = 'flat' ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( impl_rep. used_representation.items ) = 0 ) ) ) ) = 0 ) ) ) ) = 0 ) ); - wr6 : ( ( NOT ( SELF.description IN [ 'flat with radius', 'spherical'] ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( + wr6 : ( ( NOT ( SELF.description IN [ 'flat with radius', 'spherical'] ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( impl_rep. used_representation.items ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ) ); - wr7 : ( ( NOT ( SELF.description = 'flat with taper' ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( + wr7 : ( ( NOT ( SELF.description = 'flat with taper' ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( impl_rep. used_representation.items ) = 2 ) ) ) ) = 0 ) ) ) ) = 0 ) ); - wr8 : ( ( NOT ( SELF.description = 'conical' ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( + wr8 : ( ( NOT ( SELF.description = 'conical' ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( ( NOT ( SIZEOF( impl_rep. used_representation.items ) >= 1 ) ) AND ( SIZEOF( impl_rep.used_representation.items ) <= 2 ) ) ) ) = 0 ) ) ) ) = 0 ) ); - wr9 : ( ( SELF.description = 'through' ) OR ( SIZEOF( QUERY ( fcr <* QUERY ( sar <* USEDIN( SELF, + wr9 : ( ( SELF.description = 'through' ) OR ( SIZEOF( QUERY ( fcr <* QUERY ( sar <* USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATING_SHAPE_ASPECT' ) | ( ( sar. description = 'hole bottom usage' ) AND ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF( sar ) ) ) ) | ( fcr.name IN [ 'hole depth start', 'hole depth end'] ) ) ) + + 'FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF( sar ) ) ) ) | ( fcr.name IN [ 'hole depth start', 'hole depth end'] ) ) ) >= 1 ) ); - wr10: ( ( NOT ( SELF.description = 'flat with radius' ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( + wr10: ( ( NOT ( SELF.description = 'flat with radius' ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( + + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'MEASURE_REPRESENTATION_ITEM' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * + + 'MEASURE_REPRESENTATION_ITEM' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF( it ) ) = 2 ) AND ( it.name = 'corner radius' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ) ); - wr11: ( ( NOT ( SELF.description = 'spherical' ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( + wr11: ( ( NOT ( SELF.description = 'spherical' ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( + + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'MEASURE_REPRESENTATION_ITEM' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * + + 'MEASURE_REPRESENTATION_ITEM' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF( it ) ) = 2 ) AND ( it.name = 'radius' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ) ); - wr12: ( ( NOT ( SELF.description = 'conical' ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( + wr12: ( ( NOT ( SELF.description = 'conical' ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( + + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'MEASURE_REPRESENTATION_ITEM' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * + + 'MEASURE_REPRESENTATION_ITEM' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF( it ) ) = 2 ) AND ( it.name = 'tip radius' ) ) ) ) <= 1 ) ) ) ) = 0 ) ) ) ) = 0 ) ); - wr13: ( ( NOT ( SELF.description = 'conical' ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( + wr13: ( ( NOT ( SELF.description = 'conical' ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( + + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'MEASURE_REPRESENTATION_ITEM' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANE_ANGLE_MEASURE_WITH_UNIT'] + + 'MEASURE_REPRESENTATION_ITEM' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANE_ANGLE_MEASURE_WITH_UNIT'] * TYPEOF( it ) ) = 2 ) AND ( it.name = 'tip angle' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ) ); wr14: ( SIZEOF( QUERY ( fcr <* QUERY ( sar <* USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'SHAPE_ASPECT_RELATIONSHIP.RELATING_SHAPE_ASPECT' ) | ( ( sar.description = 'hole bottom usage' ) AND ( - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF( sar ) ) ) ) | ( ( - fcr.related_shape_aspect.description = 'bottom condition occurrence' ) AND ( + + 'SHAPE_ASPECT_RELATIONSHIP.RELATING_SHAPE_ASPECT' ) | ( ( sar.description = 'hole bottom usage' ) AND ( + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF( sar ) ) ) ) | ( ( + fcr.related_shape_aspect.description = 'bottom condition occurrence' ) AND ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ROUND_HOLE' IN TYPEOF( fcr.related_shape_aspect.of_shape. definition ) ) AND ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.HOLE_BOTTOM' IN TYPEOF( fcr. relating_shape_aspect ) ) ) ) ) >= 1 ); - wr15: ( ( NOT ( SELF.description = 'flat with taper' ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( + wr15: ( ( NOT ( SELF.description = 'flat with taper' ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( + + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'MEASURE_REPRESENTATION_ITEM' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * + + 'MEASURE_REPRESENTATION_ITEM' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF( it ) ) = 2 ) AND ( it.name = 'final diameter' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ) ); - wr16: ( ( NOT ( SELF.description = 'flat with taper' ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( + wr16: ( ( NOT ( SELF.description = 'flat with taper' ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( + + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'MEASURE_REPRESENTATION_ITEM' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANE_ANGLE_MEASURE_WITH_UNIT'] + + 'MEASURE_REPRESENTATION_ITEM' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANE_ANGLE_MEASURE_WITH_UNIT'] * TYPEOF( it ) ) = 2 ) AND ( it.name = 'taper diameter' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ) ); END_ENTITY; ENTITY hole_in_panel SUBTYPE OF ( feature_definition ); WHERE - wr1: ( SIZEOF( QUERY ( sa <* get_shape_aspects( SELF ) | ( ( sa.name = 'hole profile' ) AND ( sa.description = - 'closed profile occurrence' ) AND ( SIZEOF( QUERY ( sar <* USEDIN( sa, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT' ) | ( ( + wr1: ( SIZEOF( QUERY ( sa <* get_shape_aspects( SELF ) | ( ( sa.name = 'hole profile' ) AND ( sa.description = + 'closed profile occurrence' ) AND ( SIZEOF( QUERY ( sar <* USEDIN( sa, + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT' ) | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF( sar ) ) AND ( sar. description = 'profile usage' ) AND ( SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'CIRCULAR_CLOSED_PROFILE' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.NGON_CLOSED_PROFILE', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.RECTANGULAR_CLOSED_PROFILE' , - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CLOSED_PATH_PROFILE' ] * TYPEOF( sar.relating_shape_aspect ) ) = + + 'CIRCULAR_CLOSED_PROFILE' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.NGON_CLOSED_PROFILE', + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.RECTANGULAR_CLOSED_PROFILE' , + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CLOSED_PATH_PROFILE' ] * TYPEOF( sar.relating_shape_aspect ) ) = 1 ) ) ) ) = 1 ) ) ) ) = 1 ); - wr2: ( SIZEOF( get_property_definition_representations( SELF ) ) = SIZEOF( QUERY ( pdr <* + wr2: ( SIZEOF( get_property_definition_representations( SELF ) ) = SIZEOF( QUERY ( pdr <* get_property_definition_representations( SELF ) | ( SIZEOF( pdr.used_representation.items ) = 1 ) ) ) ); END_ENTITY; @@ -10875,7 +11535,7 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; SELF\representation_item_relationship.relating_representation_item : repositioned_neutral_sketch; SELF\representation_item_relationship.related_representation_item : positioned_sketch; WHERE - wr1: ( SIZEOF( QUERY ( q <* using_representations( SELF\representation_item_relationship.related_representation_item ) | + wr1: ( 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; @@ -10890,15 +11550,19 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; END_ENTITY; ENTITY implicit_planar_curve - ABSTRACT SUPERTYPE OF ( ONEOF ( implicit_intersection_curve, implicit_projected_curve, implicit_model_intersection_curve, - implicit_silhouette_curve ) ) + ABSTRACT SUPERTYPE OF ( + ONEOF ( + implicit_intersection_curve, + implicit_projected_curve, + implicit_model_intersection_curve, + implicit_silhouette_curve ) ) SUBTYPE OF ( curve, auxiliary_geometric_representation_item ); using_sketch : positioned_sketch; computed_representation : curve; DERIVE curve_plane : plane := get_plane_of_implicit_geometry( using_sketch ); WHERE - wr1: ( SIZEOF( TYPEOF( computed_representation ) * [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.IMPLICIT_PLANAR_CURVE', + wr1: ( SIZEOF( TYPEOF( computed_representation ) * [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.IMPLICIT_PLANAR_CURVE', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CURVE_REPLICA' ] ) = 0 ); END_ENTITY; @@ -10914,7 +11578,10 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; END_ENTITY; ENTITY implicit_point_on_plane - ABSTRACT SUPERTYPE OF ( ONEOF ( implicit_planar_intersection_point, implicit_planar_projection_point ) ) + ABSTRACT SUPERTYPE OF ( + ONEOF ( + implicit_planar_intersection_point, + implicit_planar_projection_point ) ) SUBTYPE OF ( point, auxiliary_geometric_representation_item ); using_sketch : positioned_sketch; computed_representation : cartesian_point; @@ -10983,34 +11650,61 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; END_ENTITY; ENTITY inapt_data - ABSTRACT SUPERTYPE OF ( ONEOF ( inapt_topology, inapt_geometry, inapt_topology_and_geometry_relationship, - inapt_manifold_solid_brep ) ) + ABSTRACT SUPERTYPE OF ( + ONEOF ( + inapt_topology, + inapt_geometry, + inapt_topology_and_geometry_relationship, + inapt_manifold_solid_brep ) ) SUBTYPE OF ( shape_data_quality_criterion ); END_ENTITY; ENTITY inapt_geometry - ABSTRACT SUPERTYPE OF ( ONEOF ( nearly_degenerate_geometry, discontinuous_geometry, self_intersecting_geometry, - geometry_with_local_near_degeneracy, overlapping_geometry, multiply_defined_geometry, geometry_with_local_irregularity, - overcomplex_geometry ) ) + ABSTRACT SUPERTYPE OF ( + ONEOF ( + nearly_degenerate_geometry, + discontinuous_geometry, + self_intersecting_geometry, + geometry_with_local_near_degeneracy, + overlapping_geometry, + multiply_defined_geometry, + geometry_with_local_irregularity, + overcomplex_geometry ) ) SUBTYPE OF ( inapt_data ); END_ENTITY; ENTITY inapt_manifold_solid_brep - ABSTRACT SUPERTYPE OF ( ONEOF ( partly_overlapping_solids, small_volume_solid, multiply_defined_solids, entirely_narrow_solid, - solid_with_excessive_number_of_voids ) ) + ABSTRACT SUPERTYPE OF ( + ONEOF ( + partly_overlapping_solids, + small_volume_solid, + multiply_defined_solids, + entirely_narrow_solid, + solid_with_excessive_number_of_voids ) ) SUBTYPE OF ( inapt_data ); END_ENTITY; ENTITY inapt_topology - ABSTRACT SUPERTYPE OF ( ONEOF ( free_edge, non_manifold_at_edge, non_manifold_at_vertex, over_used_vertex ) ) + ABSTRACT SUPERTYPE OF ( + ONEOF ( + free_edge, + non_manifold_at_edge, + non_manifold_at_vertex, + over_used_vertex ) ) SUBTYPE OF ( inapt_data ); END_ENTITY; ENTITY inapt_topology_and_geometry_relationship - ABSTRACT SUPERTYPE OF ( ONEOF ( topology_related_to_nearly_degenerate_geometry, geometric_gap_in_topology, - non_smooth_geometry_transition_across_edge, topology_related_to_self_intersecting_geometry, - steep_geometry_transition_across_edge, topology_related_to_overlapping_geometry, - topology_related_to_multiply_defined_geometry, overcomplex_topology_and_geometry_relationship ) ) + ABSTRACT SUPERTYPE OF ( + ONEOF ( + topology_related_to_nearly_degenerate_geometry, + geometric_gap_in_topology, + non_smooth_geometry_transition_across_edge, + topology_related_to_self_intersecting_geometry, + steep_geometry_transition_across_edge, + topology_related_to_overlapping_geometry, + topology_related_to_multiply_defined_geometry, + overcomplex_topology_and_geometry_relationship ) ) SUBTYPE OF ( inapt_data ); END_ENTITY; @@ -11042,12 +11736,12 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; SUBTYPE OF ( conditional_concept_feature ); WHERE wr1: ( NOT ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PACKAGE_PRODUCT_CONCEPT_FEATURE' ) IN TYPEOF( SELF ) ) ); - wr2: ( ( SIZEOF( QUERY ( cfr <* USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + - 'CONCEPT_FEATURE_RELATIONSHIP.RELATING_PRODUCT_CONCEPT_FEATURE' ) | ( ( - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'CONCEPT_FEATURE_RELATIONSHIP_WITH_CONDITION' ) IN TYPEOF( - cfr ) ) ) ) + SIZEOF( QUERY ( cfr <* USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + - 'CONCEPT_FEATURE_RELATIONSHIP.RELATED_PRODUCT_CONCEPT_FEATURE' ) | ( ( - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'CONCEPT_FEATURE_RELATIONSHIP_WITH_CONDITION' ) IN TYPEOF( + wr2: ( ( SIZEOF( QUERY ( cfr <* USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + + 'CONCEPT_FEATURE_RELATIONSHIP.RELATING_PRODUCT_CONCEPT_FEATURE' ) | ( ( + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'CONCEPT_FEATURE_RELATIONSHIP_WITH_CONDITION' ) IN TYPEOF( + cfr ) ) ) ) + SIZEOF( QUERY ( cfr <* USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + + 'CONCEPT_FEATURE_RELATIONSHIP.RELATED_PRODUCT_CONCEPT_FEATURE' ) | ( ( + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'CONCEPT_FEATURE_RELATIONSHIP_WITH_CONDITION' ) IN TYPEOF( cfr ) ) ) ) ) = 0 ); wr3: ( SELF.condition.conditional_operator.name = 'implication' ); END_ENTITY; @@ -11057,7 +11751,7 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_logical_test; WHERE wr1: validate_measured_data_type( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.BOOLEAN_VALUE' ); - wr2: validate_inspected_elements_type( SELF, [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + + wr2: validate_inspected_elements_type( SELF, [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'CLOSED_OR_OPEN_SHELL_SELECT' ] ); wr3: validate_locations_of_extreme_value_type( SELF, [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EDGE_CURVE'] ); wr4: validate_accuracy_types( SELF, [] ); @@ -11073,7 +11767,7 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; WHERE wr1: validate_measured_data_type( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.BOOLEAN_VALUE' ); wr2: validate_inspected_elements_type( SELF, [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COMPOSITE_CURVE'] ); - wr3: validate_locations_of_extreme_value_type( SELF, [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + + wr3: validate_locations_of_extreme_value_type( SELF, [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'COMPOSITE_CURVE_TRANSITION_LOCATOR' ] ); wr4: validate_accuracy_types( SELF, [] ); END_ENTITY; @@ -11126,7 +11820,7 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; wr1: validate_measured_data_type( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.BOOLEAN_VALUE' ); wr2: validate_inspected_elements_type( SELF, [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'RECTANGULAR_COMPOSITE_SURFACE' ] ); - wr3: validate_locations_of_extreme_value_type( SELF, [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + + wr3: validate_locations_of_extreme_value_type( SELF, [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'RECTANGULAR_COMPOSITE_SURFACE_TRANSITION_LOCATOR' ] ); wr4: validate_accuracy_types( SELF, [] ); END_ENTITY; @@ -11137,7 +11831,7 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; operand : generic_expression := SELF\binary_generic_expression.operands[1]; index : generic_expression := SELF\binary_generic_expression.operands[2]; WHERE - wr1: ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.STRING_EXPRESSION' IN TYPEOF( operand ) ) AND ( + wr1: ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.STRING_EXPRESSION' IN TYPEOF( operand ) ) AND ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.NUMERIC_EXPRESSION' IN TYPEOF( index ) ) ); wr2: is_int_expr( index ); END_ENTITY; @@ -11157,12 +11851,12 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; WHERE wr1: ( ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'SHAPE_DATA_QUALITY_UPPER_VALUE_LIMIT' ) IN TYPEOF( SELF\ - shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold ) ) + shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold ) ) AND ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PARAMETER_VALUE' IN value_limit_type( SELF\ shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold ) ) ); wr2: validate_measured_data_type( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PARAMETER_VALUE' ); wr3: validate_inspected_elements_type( SELF, [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.B_SPLINE_CURVE_WITH_KNOTS'] ); - wr4: validate_locations_of_extreme_value_type( SELF, [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + + wr4: validate_locations_of_extreme_value_type( SELF, [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'B_SPLINE_CURVE_KNOT_LOCATOR' ] ); wr5: validate_accuracy_types( SELF, [] ); END_ENTITY; @@ -11172,12 +11866,12 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; WHERE wr1: ( ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'SHAPE_DATA_QUALITY_UPPER_VALUE_LIMIT' ) IN TYPEOF( SELF\ - shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold ) ) + shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold ) ) AND ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PARAMETER_VALUE' IN value_limit_type( SELF\ shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold ) ) ); wr2: validate_measured_data_type( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PARAMETER_VALUE' ); wr3: validate_inspected_elements_type( SELF, [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.B_SPLINE_SURFACE_WITH_KNOTS'] ); - wr4: validate_locations_of_extreme_value_type( SELF, [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + + wr4: validate_locations_of_extreme_value_type( SELF, [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'B_SPLINE_SURFACE_KNOT_LOCATOR' ] ); wr5: validate_accuracy_types( SELF, [] ); END_ENTITY; @@ -11296,9 +11990,9 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; interference_tolerance : length_measure; WHERE wr1: validate_measured_data_type( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.BOOLEAN_VALUE' ); - wr2: validate_inspected_elements_type( SELF, [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CONNECTED_FACE_SET', + wr2: validate_inspected_elements_type( SELF, [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CONNECTED_FACE_SET', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CONNECTED_FACE_SET' ] ); - wr3: validate_locations_of_extreme_value_type( SELF, [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + + wr3: validate_locations_of_extreme_value_type( SELF, [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'POINT_ON_FACE_SURFACE' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'POINT_ON_FACE_SURFACE'] ); wr4: validate_accuracy_types( SELF, [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE'] ); END_ENTITY; @@ -11310,7 +12004,7 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; WHERE wr1: validate_measured_data_type( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.BOOLEAN_VALUE' ); wr2: validate_inspected_elements_type( SELF, [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FACE'] ); - wr3: validate_locations_of_extreme_value_type( SELF, [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + + wr3: validate_locations_of_extreme_value_type( SELF, [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'POINT_ON_EDGE_CURVE' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'POINT_ON_EDGE_CURVE'] ); wr4: validate_accuracy_types( SELF, [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE'] ); END_ENTITY; @@ -11341,14 +12035,14 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; interval_item : generic_expression := SELF\multiple_arity_generic_expression.operands[2]; interval_high : generic_expression := SELF\multiple_arity_generic_expression.operands[3]; WHERE - wr1: ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EXPRESSION' IN TYPEOF( interval_low ) ) AND ( - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EXPRESSION' IN TYPEOF( interval_item ) ) AND ( + wr1: ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EXPRESSION' IN TYPEOF( interval_low ) ) AND ( + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EXPRESSION' IN TYPEOF( interval_item ) ) AND ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EXPRESSION' IN TYPEOF( interval_high ) ) ); - wr2: ( ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.STRING_EXPRESSION' IN TYPEOF( SELF.interval_low ) ) AND ( - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.STRING_EXPRESSION' IN TYPEOF( SELF.interval_high ) ) AND ( - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.STRING_EXPRESSION' IN TYPEOF( SELF.interval_item ) ) ) OR ( ( - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.NUMERIC_EXPRESSION' IN TYPEOF( SELF.interval_low ) ) AND ( - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.NUMERIC_EXPRESSION' IN TYPEOF( SELF.interval_item ) ) AND ( + wr2: ( ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.STRING_EXPRESSION' IN TYPEOF( SELF.interval_low ) ) AND ( + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.STRING_EXPRESSION' IN TYPEOF( SELF.interval_high ) ) AND ( + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.STRING_EXPRESSION' IN TYPEOF( SELF.interval_item ) ) ) OR ( ( + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.NUMERIC_EXPRESSION' IN TYPEOF( SELF.interval_low ) ) AND ( + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.NUMERIC_EXPRESSION' IN TYPEOF( SELF.interval_item ) ) AND ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.NUMERIC_EXPRESSION' IN TYPEOF( SELF.interval_high ) ) ) ); END_ENTITY; @@ -11386,81 +12080,81 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; ENTITY joggle SUBTYPE OF ( feature_definition ); WHERE - wr1 : ( SIZEOF( QUERY ( pdr <* get_property_definition_representations( SELF ) | ( ( + wr1 : ( SIZEOF( QUERY ( pdr <* get_property_definition_representations( SELF ) | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. used_representation ) ) AND ( NOT ( ( 5 <= SIZEOF( pdr.used_representation.items ) ) AND ( SIZEOF( pdr. used_representation.items ) <= 10 ) ) ) ) ) ) = 0 ); - wr2 : ( SIZEOF( QUERY ( pdr <* get_property_definition_representations( SELF ) | ( ( + wr2 : ( SIZEOF( QUERY ( pdr <* get_property_definition_representations( SELF ) | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. - used_representation ) ) AND ( SIZEOF( QUERY ( i <* pdr.used_representation.items | ( NOT ( i.name IN [ 'orientation', - 'base radius 1' , 'base radius 2', 'direction angle 1', 'direction angle 2', 'height', 'slope angle 1', + used_representation ) ) AND ( SIZEOF( QUERY ( i <* pdr.used_representation.items | ( NOT ( i.name IN [ 'orientation', + 'base radius 1' , 'base radius 2', 'direction angle 1', 'direction angle 2', 'height', 'slope angle 1', 'slope angle 2' , 'top radius 1', 'top radius 2'] ) ) ) ) > 0 ) ) ) ) = 0 ); - wr3 : ( SIZEOF( QUERY ( pdr <* get_property_definition_representations( SELF ) | ( ( + wr3 : ( SIZEOF( QUERY ( pdr <* get_property_definition_representations( SELF ) | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. - used_representation ) ) AND ( SIZEOF( QUERY ( i <* pdr.used_representation.items | ( ( i.name = 'direction angle 1' ) - AND ( SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANE_ANGLE_MEASURE_WITH_UNIT' ] * TYPEOF( i ) ) = 2 ) ) ) ) = 1 ) ) ) ) + used_representation ) ) AND ( SIZEOF( QUERY ( i <* pdr.used_representation.items | ( ( i.name = 'direction angle 1' ) + AND ( SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANE_ANGLE_MEASURE_WITH_UNIT' ] * TYPEOF( i ) ) = 2 ) ) ) ) = 1 ) ) ) ) = 1 ); - wr4 : ( SIZEOF( QUERY ( pdr <* get_property_definition_representations( SELF ) | ( ( + wr4 : ( SIZEOF( QUERY ( pdr <* get_property_definition_representations( SELF ) | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. - used_representation ) ) AND ( SIZEOF( QUERY ( i <* pdr.used_representation.items | ( ( i.name = 'direction angle 2' ) - AND ( SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANE_ANGLE_MEASURE_WITH_UNIT' ] * TYPEOF( i ) ) = 2 ) ) ) ) = 1 ) ) ) ) + used_representation ) ) AND ( SIZEOF( QUERY ( i <* pdr.used_representation.items | ( ( i.name = 'direction angle 2' ) + AND ( SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANE_ANGLE_MEASURE_WITH_UNIT' ] * TYPEOF( i ) ) = 2 ) ) ) ) = 1 ) ) ) ) = 1 ); - wr5 : ( SIZEOF( QUERY ( pdr <* get_property_definition_representations( SELF ) | ( ( + wr5 : ( SIZEOF( QUERY ( pdr <* get_property_definition_representations( SELF ) | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. - used_representation ) ) AND ( SIZEOF( QUERY ( i <* pdr.used_representation.items | ( ( i.name = 'height' ) AND ( - SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( i ) ) = 2 ) ) ) ) = 1 ) ) ) ) + used_representation ) ) AND ( SIZEOF( QUERY ( i <* pdr.used_representation.items | ( ( i.name = 'height' ) AND ( + SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( i ) ) = 2 ) ) ) ) = 1 ) ) ) ) <= 1 ); - wr6 : ( SIZEOF( QUERY ( pdr <* get_property_definition_representations( SELF ) | ( ( + wr6 : ( SIZEOF( QUERY ( pdr <* get_property_definition_representations( SELF ) | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. - used_representation ) ) AND ( SIZEOF( QUERY ( i <* pdr.used_representation.items | ( ( i.name = 'slope angle 1' ) - AND ( SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANE_ANGLE_MEASURE_WITH_UNIT' ] * TYPEOF( i ) ) = 2 ) ) ) ) = 1 ) ) ) ) + used_representation ) ) AND ( SIZEOF( QUERY ( i <* pdr.used_representation.items | ( ( i.name = 'slope angle 1' ) + AND ( SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANE_ANGLE_MEASURE_WITH_UNIT' ] * TYPEOF( i ) ) = 2 ) ) ) ) = 1 ) ) ) ) = 1 ); - wr7 : ( SIZEOF( QUERY ( pdr <* get_property_definition_representations( SELF ) | ( ( + wr7 : ( SIZEOF( QUERY ( pdr <* get_property_definition_representations( SELF ) | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. - used_representation ) ) AND ( SIZEOF( QUERY ( i <* pdr.used_representation.items | ( ( i.name = 'slope angle 2' ) - AND ( SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANE_ANGLE_MEASURE_WITH_UNIT' ] * TYPEOF( i ) ) = 2 ) ) ) ) = 1 ) ) ) ) + used_representation ) ) AND ( SIZEOF( QUERY ( i <* pdr.used_representation.items | ( ( i.name = 'slope angle 2' ) + AND ( SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANE_ANGLE_MEASURE_WITH_UNIT' ] * TYPEOF( i ) ) = 2 ) ) ) ) = 1 ) ) ) ) = 1 ); - wr8 : ( SIZEOF( QUERY ( sa <* get_shape_aspects( SELF ) | ( ( sa.name = 'defining path' ) AND ( sa.description = - 'path feature component occurrence' ) AND ( SIZEOF( QUERY ( sar <* USEDIN( sa, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT' ) | ( ( + wr8 : ( SIZEOF( QUERY ( sa <* get_shape_aspects( SELF ) | ( ( sa.name = 'defining path' ) AND ( sa.description = + 'path feature component occurrence' ) AND ( SIZEOF( QUERY ( sar <* USEDIN( sa, + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT' ) | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF( sar ) ) AND ( sar. description = 'path feature component usage' ) AND ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'PATH_FEATURE_COMPONENT' IN TYPEOF( sar.relating_shape_aspect ) ) AND ( sar.relating_shape_aspect.description + + 'PATH_FEATURE_COMPONENT' IN TYPEOF( sar.relating_shape_aspect ) ) AND ( sar.relating_shape_aspect.description = 'linear' ) ) ) ) = 1 ) ) ) ) = 1 ); - wr9 : ( SIZEOF( QUERY ( sa <* get_shape_aspects( SELF ) | ( ( sa.name = 'termination' ) AND ( sa.description = - 'joggle termination occurrence' ) AND ( SIZEOF( QUERY ( sar <* USEDIN( sa, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT' ) | ( ( + wr9 : ( SIZEOF( QUERY ( sa <* get_shape_aspects( SELF ) | ( ( sa.name = 'termination' ) AND ( sa.description = + 'joggle termination occurrence' ) AND ( SIZEOF( QUERY ( sar <* USEDIN( sa, + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT' ) | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF( sar ) ) AND ( sar. - name = 'joggle termination usage' ) AND ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.JOGGLE_TERMINATION' IN + name = 'joggle termination usage' ) AND ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.JOGGLE_TERMINATION' IN TYPEOF( sar.relating_shape_aspect ) ) ) ) ) = 1 ) ) ) ) = 1 ); - wr10: ( SIZEOF( QUERY ( pdr <* get_property_definition_representations( SELF ) | ( ( + wr10: ( SIZEOF( QUERY ( pdr <* get_property_definition_representations( SELF ) | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. - used_representation ) ) AND ( SIZEOF( QUERY ( i <* pdr.used_representation.items | ( ( i.name = 'base radius 1' ) - AND ( SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( i ) ) = 2 ) ) ) ) = 1 ) ) ) ) + used_representation ) ) AND ( SIZEOF( QUERY ( i <* pdr.used_representation.items | ( ( i.name = 'base radius 1' ) + AND ( SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( i ) ) = 2 ) ) ) ) = 1 ) ) ) ) <= 1 ); - wr11: ( SIZEOF( QUERY ( pdr <* get_property_definition_representations( SELF ) | ( ( + wr11: ( SIZEOF( QUERY ( pdr <* get_property_definition_representations( SELF ) | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. - used_representation ) ) AND ( SIZEOF( QUERY ( i <* pdr.used_representation.items | ( ( i.name = 'base radius 2' ) - AND ( SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( i ) ) = 2 ) ) ) ) = 1 ) ) ) ) + used_representation ) ) AND ( SIZEOF( QUERY ( i <* pdr.used_representation.items | ( ( i.name = 'base radius 2' ) + AND ( SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( i ) ) = 2 ) ) ) ) = 1 ) ) ) ) <= 1 ); - wr12: ( SIZEOF( QUERY ( pdr <* get_property_definition_representations( SELF ) | ( ( + wr12: ( SIZEOF( QUERY ( pdr <* get_property_definition_representations( SELF ) | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. - used_representation ) ) AND ( SIZEOF( QUERY ( i <* pdr.used_representation.items | ( ( i.name = 'top radius 1' ) - AND ( SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( i ) ) = 2 ) ) ) ) = 1 ) ) ) ) + used_representation ) ) AND ( SIZEOF( QUERY ( i <* pdr.used_representation.items | ( ( i.name = 'top radius 1' ) + AND ( SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( i ) ) = 2 ) ) ) ) = 1 ) ) ) ) <= 1 ); - wr13: ( SIZEOF( QUERY ( pdr <* get_property_definition_representations( SELF ) | ( ( + wr13: ( SIZEOF( QUERY ( pdr <* get_property_definition_representations( SELF ) | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. - used_representation ) ) AND ( SIZEOF( QUERY ( i <* pdr.used_representation.items | ( ( i.name = 'top radius 2' ) - AND ( SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( i ) ) = 2 ) ) ) ) = 1 ) ) ) ) + used_representation ) ) AND ( SIZEOF( QUERY ( i <* pdr.used_representation.items | ( ( i.name = 'top radius 2' ) + AND ( SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( i ) ) = 2 ) ) ) ) = 1 ) ) ) ) <= 1 ); END_ENTITY; @@ -11469,31 +12163,31 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; WHERE wr1: ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FEATURE_COMPONENT_DEFINITION' IN TYPEOF( SELF.of_shape.definition ) ); wr2: ( SELF.description IN [ 'value termination', 'face termination'] ); - wr3: ( ( SELF.description = 'value termination' ) XOR ( SIZEOF( QUERY ( pdr <* + wr3: ( ( SELF.description = 'value termination' ) XOR ( SIZEOF( QUERY ( pdr <* get_shape_aspect_property_definition_representations( SELF ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) ) = 0 ) ); - wr4: ( ( SELF.description <> 'value termination' ) OR ( SIZEOF( QUERY ( pdr <* + wr4: ( ( SELF.description <> 'value termination' ) OR ( SIZEOF( QUERY ( pdr <* get_shape_aspect_property_definition_representations( SELF ) | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) AND ( SIZEOF( pdr. used_representation.items ) = 2 ) ) ) ) = 1 ) ); - wr5: ( ( SELF.description <> 'value termination' ) OR ( SIZEOF( QUERY ( pdr <* + wr5: ( ( SELF.description <> 'value termination' ) OR ( SIZEOF( QUERY ( pdr <* get_shape_aspect_property_definition_representations( SELF ) | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) AND ( SIZEOF( QUERY ( i <* pdr. used_representation.items | ( ( i.name = 'depth' ) AND ( SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'MEASURE_REPRESENTATION_ITEM' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * + + 'MEASURE_REPRESENTATION_ITEM' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF( i ) ) = 2 ) ) ) ) = 1 ) ) ) ) = 1 ) ); - wr6: ( ( SELF.description <> 'value termination' ) OR ( SIZEOF( QUERY ( pdr <* + wr6: ( ( SELF.description <> 'value termination' ) OR ( SIZEOF( QUERY ( pdr <* get_shape_aspect_property_definition_representations( SELF ) | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) AND ( SIZEOF( QUERY ( i <* pdr. used_representation.items | ( ( i.name = 'angle' ) AND ( SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'MEASURE_REPRESENTATION_ITEM' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANE_ANGLE_MEASURE_WITH_UNIT'] + + 'MEASURE_REPRESENTATION_ITEM' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANE_ANGLE_MEASURE_WITH_UNIT'] * TYPEOF( i ) ) = 2 ) ) ) ) = 1 ) ) ) ) = 1 ) ); wr7: ( SIZEOF( QUERY ( sar <* USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'SHAPE_ASPECT_RELATIONSHIP.' - + 'RELATING_SHAPE_ASPECT' ) | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP' - IN TYPEOF( sar ) ) AND ( sar.name = 'joggle termination usage' ) AND ( - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.JOGGLE' IN TYPEOF( sar.related_shape_aspect.of_shape.definition ) ) + + 'RELATING_SHAPE_ASPECT' ) | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP' + IN TYPEOF( sar ) ) AND ( sar.name = 'joggle termination usage' ) AND ( + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.JOGGLE' IN TYPEOF( sar.related_shape_aspect.of_shape.definition ) ) AND ( sar.related_shape_aspect.of_shape.definition\characterized_object.name = 'termination' ) AND ( sar. - related_shape_aspect.of_shape.definition\characterized_object.description = 'joggle termination occurrence' ) ) ) ) + related_shape_aspect.of_shape.definition\characterized_object.description = 'joggle termination occurrence' ) ) ) ) = 1 ); END_ENTITY; @@ -11519,7 +12213,7 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; SELF\edge.edge_start : kinematic_link; SELF\edge.edge_end : kinematic_link; UNIQUE - ur1 : SELF\edge.edge_start, SELF\edge.edge_end; + ur1 : edge_start, edge_end; WHERE wr1: ( edge_start :<>: edge_end ); END_ENTITY; @@ -11529,7 +12223,10 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; END_ENTITY; ENTITY kinematic_link_representation - ABSTRACT SUPERTYPE OF ( ONEOF ( linear_flexible_link_representation, rigid_link_representation ) ) + ABSTRACT SUPERTYPE OF ( + ONEOF ( + linear_flexible_link_representation, + rigid_link_representation ) ) SUBTYPE OF ( representation ); SELF\representation.context_of_items : geometric_representation_context; SELF\representation.items : SET [1 : ?] OF kinematic_link_representation_items; @@ -11554,16 +12251,21 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; END_ENTITY; ENTITY kinematic_pair - ABSTRACT SUPERTYPE OF ( ONEOF ( high_order_kinematic_pair, low_order_kinematic_pair_with_motion_coupling, - low_order_kinematic_pair ) ANDOR actuated_kinematic_pair ) + ABSTRACT SUPERTYPE OF ( + ONEOF ( + high_order_kinematic_pair, + low_order_kinematic_pair_with_motion_coupling, + low_order_kinematic_pair ) + ANDOR + actuated_kinematic_pair ) SUBTYPE OF ( geometric_representation_item, item_defined_transformation ); joint : kinematic_joint; SELF\item_defined_transformation.transform_item_1 : rigid_placement; SELF\item_defined_transformation.transform_item_2 : rigid_placement; DERIVE - associated_link_representations_1 : SET [1 : ?] OF kinematic_link_representation := sort_link_associations( + associated_link_representations_1 : SET [1 : ?] OF kinematic_link_representation := sort_link_associations( link_representation_associations, TRUE ); - associated_link_representations_2 : SET [1 : ?] OF kinematic_link_representation := sort_link_associations( + associated_link_representations_2 : SET [1 : ?] OF kinematic_link_representation := sort_link_associations( link_representation_associations, FALSE ); SELF\item_defined_transformation.name : label := SELF\representation_item.name; INVERSE @@ -11571,7 +12273,10 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; END_ENTITY; ENTITY kinematic_path - ABSTRACT SUPERTYPE OF ( ONEOF ( kinematic_path_defined_by_nodes, kinematic_path_defined_by_curves ) ) + ABSTRACT SUPERTYPE OF ( + ONEOF ( + kinematic_path_defined_by_nodes, + kinematic_path_defined_by_curves ) ) SUBTYPE OF ( geometric_representation_item ); segments : LIST [1 : ?] OF kinematic_path_segment; t_start : parameter_value; @@ -11579,8 +12284,8 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; n_segments : INTEGER := SIZEOF( segments ); closed_path : LOGICAL := segments[n_segments].transition <> discontinuous; WHERE - wr1: ( SIZEOF( QUERY ( using_rep <* using_representations( SELF ) | ( NOT ( - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.GEOMETRIC_REPRESENTATION_CONTEXT_WITH_PARAMETER' IN TYPEOF( + wr1: ( SIZEOF( QUERY ( using_rep <* using_representations( SELF ) | ( NOT ( + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.GEOMETRIC_REPRESENTATION_CONTEXT_WITH_PARAMETER' IN TYPEOF( using_rep.context_of_items ) ) ) ) ) = 0 ); END_ENTITY; @@ -11596,14 +12301,20 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; END_ENTITY; ENTITY kinematic_path_segment - ABSTRACT SUPERTYPE OF ( ONEOF ( path_node, curve_based_path_with_orientation ) ) + ABSTRACT SUPERTYPE OF ( + ONEOF ( + path_node, + curve_based_path_with_orientation ) ) SUBTYPE OF ( founded_item ); t_end : parameter_value; transition : transition_code; END_ENTITY; ENTITY kinematic_property_definition_representation - ABSTRACT SUPERTYPE OF ( ONEOF ( kinematic_property_topology_representation, kinematic_property_mechanism_representation ) ) + ABSTRACT SUPERTYPE OF ( + ONEOF ( + kinematic_property_topology_representation, + kinematic_property_mechanism_representation ) ) SUBTYPE OF ( property_definition_representation ); SELF\property_definition_representation.definition : product_definition_kinematics; END_ENTITY; @@ -11647,7 +12358,7 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; SUBTYPE OF ( representation ); SELF\representation.items : SET [1 : ?] OF kinematic_joint; WHERE - wr1: ( SIZEOF( QUERY ( item <* items | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ORIENTED_EDGE' IN TYPEOF( item ) ) ) ) + wr1: ( SIZEOF( QUERY ( item <* items | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ORIENTED_EDGE' IN TYPEOF( item ) ) ) ) = 0 ); END_ENTITY; @@ -11672,7 +12383,10 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; END_ENTITY; ENTITY laminate_table - SUPERTYPE OF ( ONEOF ( part_laminate_table, zone_structural_makeup ) ) + SUPERTYPE OF ( + ONEOF ( + part_laminate_table, + zone_structural_makeup ) ) SUBTYPE OF ( product_definition ); END_ENTITY; @@ -11686,7 +12400,7 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; SUBTYPE OF ( annotation_curve_occurrence ); WHERE wr1: ( SIZEOF( QUERY ( ldc <* USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'DRAUGHTING_CALLOUT.' - + 'CONTENTS' ) | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'LEADER_DIRECTED_CALLOUT' ) IN TYPEOF( + + 'CONTENTS' ) | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'LEADER_DIRECTED_CALLOUT' ) IN TYPEOF( ldc ) ) ) ) >= 1 ); END_ENTITY; @@ -11701,7 +12415,7 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; ENTITY leader_directed_dimension SUBTYPE OF ( leader_directed_callout ); WHERE - wr1: ( SIZEOF( QUERY ( con <* SELF.contents | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LEADER_CURVE' IN TYPEOF( + wr1: ( SIZEOF( QUERY ( con <* SELF.contents | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LEADER_CURVE' IN TYPEOF( con ) ) ) ) = 1 ); END_ENTITY; @@ -11726,13 +12440,18 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; SUBTYPE OF ( named_unit ); WHERE wr1: ( ( SELF\named_unit.dimensions.length_exponent = 1 ) AND ( SELF\named_unit.dimensions.mass_exponent = 0 ) AND ( SELF\ - named_unit.dimensions.time_exponent = 0 ) AND ( SELF\named_unit.dimensions.electric_current_exponent = 0 ) AND ( + named_unit.dimensions.time_exponent = 0 ) AND ( SELF\named_unit.dimensions.electric_current_exponent = 0 ) AND ( SELF\named_unit.dimensions.thermodynamic_temperature_exponent = 0 ) AND ( SELF\named_unit.dimensions. amount_of_substance_exponent = 0 ) AND ( SELF\named_unit.dimensions.luminous_intensity_exponent = 0 ) ); END_ENTITY; ENTITY light_source - SUPERTYPE OF ( ONEOF ( light_source_ambient, light_source_directional, light_source_positional, light_source_spot ) ) + SUPERTYPE OF ( + ONEOF ( + light_source_ambient, + light_source_directional, + light_source_positional, + light_source_spot ) ) SUBTYPE OF ( geometric_representation_item ); light_colour : colour; WHERE @@ -11799,7 +12518,7 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; WHERE wr1: ( SELF\product_definition_relationship.related_product_definition :<>: SELF\product_definition_relationship. relating_product_definition ); - wr2: acyclic_product_definition_relationship( SELF, [SELF\product_definition_relationship.related_product_definition], + wr2: acyclic_product_definition_relationship( SELF, [SELF\product_definition_relationship.related_product_definition], 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LINEAR_ARRAY_COMPONENT_DEFINITION_LINK' ); END_ENTITY; @@ -11815,7 +12534,7 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; SUBTYPE OF ( low_order_kinematic_pair_with_motion_coupling ); pinion_radius : length_measure; WHERE - wr1: ( SIZEOF( QUERY ( lr <* SELF\kinematic_pair.associated_link_representations_1 | ( NOT ( + wr1: ( SIZEOF( QUERY ( lr <* SELF\kinematic_pair.associated_link_representations_1 | ( NOT ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LINEAR_FLEXIBLE_LINK_REPRESENTATION' IN TYPEOF( lr ) ) ) ) ) = 0 ); END_ENTITY; @@ -11826,7 +12545,7 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; WHERE wr1: ( SIZEOF( QUERY ( r <* SELF\kinematic_pair.associated_link_representations_1 | ( NOT ( pair_curve IN r.items ) ) ) ) = 0 ); - wr2: ( SIZEOF( QUERY ( lr <* SELF\kinematic_pair.associated_link_representations_1 | ( NOT ( + wr2: ( SIZEOF( QUERY ( lr <* SELF\kinematic_pair.associated_link_representations_1 | ( NOT ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LINEAR_FLEXIBLE_LINK_REPRESENTATION' IN TYPEOF( lr ) ) ) ) ) = 0 ); END_ENTITY; @@ -11856,15 +12575,15 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; wr4: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( - QUERY ( it <* impl_rep.used_representation.items | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLACEMENT' + + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( + QUERY ( it <* impl_rep.used_representation.items | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLACEMENT' IN TYPEOF( it ) ) AND ( it.name = 'orientation' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ); wr5: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( + + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'MEASURE_REPRESENTATION_ITEM' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * + + 'MEASURE_REPRESENTATION_ITEM' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF( it ) ) = 2 ) AND ( it.name = 'profile length' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ); END_ENTITY; @@ -11885,12 +12604,18 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; SELF\representation_relationship.rep_2 : link_motion_representation_along_path; SELF\representation_relationship_with_transformation.transformation_operator : link_motion_transformation; WHERE - wr1: ( transformation_operator\item_defined_transformation.transform_item_1 IN rep_1.items ); + (* JH removed WR1 on 2014-05-14 for the following compilation error; fix is not ISO confirmed: + ERROR : Line 19237: C3001:Unresolved attribute qualification in WHERE clause. + Attribute qualification: REP_1[].ITEMS + wr1: ( transformation_operator\item_defined_transformation.transform_item_1 IN rep_1.items ); *) wr2: ( transformation_operator\item_defined_transformation.transform_item_2 IN rep_2.items ); END_ENTITY; ENTITY link_motion_representation_along_path - SUPERTYPE OF ( ONEOF ( prescribed_path, resulting_path ) ) + SUPERTYPE OF ( + ONEOF ( + prescribed_path, + resulting_path ) ) SUBTYPE OF ( representation ); SELF\representation.items : SET [1 : ?] OF kinematic_path; SELF\representation.context_of_items : geometric_representation_context_with_parameter; @@ -11931,7 +12656,10 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; END_ENTITY; ENTITY literal_number - ABSTRACT SUPERTYPE OF ( ONEOF ( int_literal, real_literal ) ) + ABSTRACT SUPERTYPE OF ( + ONEOF ( + int_literal, + real_literal ) ) SUBTYPE OF ( simple_numeric_expression, generic_literal ); the_value : NUMBER; END_ENTITY; @@ -11954,40 +12682,40 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; SUBTYPE OF ( shape_representation ); WHERE wr1: ( SIZEOF( SELF.items ) = 1 ); - wr2: ( SIZEOF( QUERY ( it <* SELF.items | ( NOT ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POINT' IN TYPEOF( it ) ) ) ) ) + wr2: ( SIZEOF( QUERY ( it <* SELF.items | ( NOT ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POINT' IN TYPEOF( it ) ) ) ) ) = 0 ); END_ENTITY; ENTITY locator SUBTYPE OF ( feature_definition ); WHERE - wr1: ( SIZEOF( QUERY ( pdr <* get_property_definition_representations( SELF ) | ( ( + wr1: ( SIZEOF( QUERY ( pdr <* get_property_definition_representations( SELF ) | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. used_representation ) ) AND ( NOT ( ( 2 <= SIZEOF( pdr.used_representation.items ) ) AND ( SIZEOF( pdr. used_representation.items ) <= 5 ) ) ) ) ) ) = 0 ); - wr2: ( SIZEOF( QUERY ( pdr <* get_property_definition_representations( SELF ) | ( ( + wr2: ( SIZEOF( QUERY ( pdr <* get_property_definition_representations( SELF ) | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. - used_representation ) ) AND ( SIZEOF( QUERY ( i <* pdr.used_representation.items | ( ( i.name = 'diameter' ) AND ( - SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( i ) ) = 2 ) ) ) ) = 1 ) ) ) ) + used_representation ) ) AND ( SIZEOF( QUERY ( i <* pdr.used_representation.items | ( ( i.name = 'diameter' ) AND ( + SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( i ) ) = 2 ) ) ) ) = 1 ) ) ) ) = 1 ); - wr3: ( SIZEOF( QUERY ( pdr <* get_property_definition_representations( SELF ) | ( ( + wr3: ( SIZEOF( QUERY ( pdr <* get_property_definition_representations( SELF ) | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. - used_representation ) ) AND ( SIZEOF( QUERY ( i <* pdr.used_representation.items | ( ( i.name = 'tip radius' ) AND - ( SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( i ) ) = 2 ) ) ) ) = 1 ) ) ) ) + used_representation ) ) AND ( SIZEOF( QUERY ( i <* pdr.used_representation.items | ( ( i.name = 'tip radius' ) AND + ( SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( i ) ) = 2 ) ) ) ) = 1 ) ) ) ) <= 1 ); - wr4: ( SIZEOF( QUERY ( pdr <* get_property_definition_representations( SELF ) | ( ( + wr4: ( SIZEOF( QUERY ( pdr <* get_property_definition_representations( SELF ) | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. - used_representation ) ) AND ( SIZEOF( QUERY ( i <* pdr.used_representation.items | ( ( i.name = 'tip angle' ) AND - ( SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANE_ANGLE_MEASURE_WITH_UNIT' ] * TYPEOF( i ) ) = 2 ) ) ) ) = 1 ) ) ) ) + used_representation ) ) AND ( SIZEOF( QUERY ( i <* pdr.used_representation.items | ( ( i.name = 'tip angle' ) AND + ( SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANE_ANGLE_MEASURE_WITH_UNIT' ] * TYPEOF( i ) ) = 2 ) ) ) ) = 1 ) ) ) ) = 1 ); - wr5: ( SIZEOF( QUERY ( pdr <* get_property_definition_representations( SELF ) | ( ( + wr5: ( SIZEOF( QUERY ( pdr <* get_property_definition_representations( SELF ) | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. used_representation ) ) AND ( SIZEOF( QUERY ( i <* pdr.used_representation.items | ( ( i.name = 'base radius' ) AND - ( SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( i ) ) = 2 ) ) ) ) = 1 ) ) ) ) + ( SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( i ) ) = 2 ) ) ) ) = 1 ) ) ) ) <= 1 ); END_ENTITY; @@ -12013,7 +12741,11 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; END_ENTITY; ENTITY loop - SUPERTYPE OF ( ONEOF ( vertex_loop, edge_loop, poly_loop ) ) + SUPERTYPE OF ( + ONEOF ( + vertex_loop, + edge_loop, + poly_loop ) ) SUBTYPE OF ( topological_representation_item ); END_ENTITY; @@ -12028,8 +12760,18 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; END_ENTITY; ENTITY low_order_kinematic_pair - SUPERTYPE OF ( ONEOF ( revolute_pair, cylindrical_pair, spherical_pair, spherical_pair_with_pin, planar_pair, - unconstrained_pair, fully_constrained_pair, prismatic_pair, universal_pair, low_order_kinematic_pair_with_range ) ) + SUPERTYPE OF ( + ONEOF ( + revolute_pair, + cylindrical_pair, + spherical_pair, + spherical_pair_with_pin, + planar_pair, + unconstrained_pair, + fully_constrained_pair, + prismatic_pair, + universal_pair, + low_order_kinematic_pair_with_range ) ) SUBTYPE OF ( kinematic_pair ); t_x : BOOLEAN; t_y : BOOLEAN; @@ -12038,9 +12780,9 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; r_y : BOOLEAN; r_z : BOOLEAN; WHERE - wr1: ( SIZEOF( QUERY ( lr <* SELF\kinematic_pair.associated_link_representations_1 | ( NOT ( + wr1: ( SIZEOF( QUERY ( lr <* SELF\kinematic_pair.associated_link_representations_1 | ( NOT ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.RIGID_LINK_REPRESENTATION' IN TYPEOF( lr ) ) ) ) ) = 0 ); - wr2: ( SIZEOF( QUERY ( lr <* SELF\kinematic_pair.associated_link_representations_2 | ( NOT ( + wr2: ( SIZEOF( QUERY ( lr <* SELF\kinematic_pair.associated_link_representations_2 | ( NOT ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.RIGID_LINK_REPRESENTATION' IN TYPEOF( lr ) ) ) ) ) = 0 ); END_ENTITY; @@ -12056,10 +12798,15 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; END_ENTITY; ENTITY low_order_kinematic_pair_with_motion_coupling - ABSTRACT SUPERTYPE OF ( ONEOF ( gear_pair, linear_flexible_and_pinion_pair, rack_and_pinion_pair, screw_pair ) ) + ABSTRACT SUPERTYPE OF ( + ONEOF ( + gear_pair, + linear_flexible_and_pinion_pair, + rack_and_pinion_pair, + screw_pair ) ) SUBTYPE OF ( kinematic_pair ); WHERE - wr1: ( SIZEOF( QUERY ( lr <* SELF\kinematic_pair.associated_link_representations_2 | ( NOT ( + wr1: ( SIZEOF( QUERY ( lr <* SELF\kinematic_pair.associated_link_representations_2 | ( NOT ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.RIGID_LINK_REPRESENTATION' IN TYPEOF( lr ) ) ) ) ) = 0 ); END_ENTITY; @@ -12103,7 +12850,7 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; SUBTYPE OF ( named_unit ); WHERE wr1: ( ( SELF\named_unit.dimensions.length_exponent = 0 ) AND ( SELF\named_unit.dimensions.mass_exponent = 0 ) AND ( SELF\ - named_unit.dimensions.time_exponent = 0 ) AND ( SELF\named_unit.dimensions.electric_current_exponent = 0 ) AND ( + named_unit.dimensions.time_exponent = 0 ) AND ( SELF\named_unit.dimensions.electric_current_exponent = 0 ) AND ( SELF\named_unit.dimensions.thermodynamic_temperature_exponent = 0 ) AND ( SELF\named_unit.dimensions. amount_of_substance_exponent = 0 ) AND ( SELF\named_unit.dimensions.luminous_intensity_exponent = 1 ) ); END_ENTITY; @@ -12156,75 +12903,75 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; SUBTYPE OF ( shape_representation ); WHERE wr1 : ( SIZEOF( QUERY ( it <* SELF.items | ( NOT ( SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'CONNECTED_FACE_SUB_SET' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MAPPED_ITEM', + + 'CONNECTED_FACE_SUB_SET' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MAPPED_ITEM', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.AXIS2_PLACEMENT_3D' ] * TYPEOF( it ) ) = 1 ) ) ) ) = 0 ); wr2 : ( SIZEOF( QUERY ( it <* SELF.items | ( SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'CONNECTED_FACE_SUB_SET' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MAPPED_ITEM'] * TYPEOF( it ) ) = 1 ) ) ) + + 'CONNECTED_FACE_SUB_SET' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MAPPED_ITEM'] * TYPEOF( it ) ) = 1 ) ) ) > 0 ); - wr3 : ( SIZEOF( QUERY ( mi <* QUERY ( it <* items | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MAPPED_ITEM' IN + wr3 : ( SIZEOF( QUERY ( mi <* QUERY ( it <* items | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MAPPED_ITEM' IN TYPEOF( it ) ) ) | ( NOT ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'MANIFOLD_SUBSURFACE_SHAPE_REPRESENTATION' IN TYPEOF( mi\mapped_item.mapping_source.mapped_representation ) ) ) ) ) + + 'MANIFOLD_SUBSURFACE_SHAPE_REPRESENTATION' IN TYPEOF( mi\mapped_item.mapping_source.mapped_representation ) ) ) ) ) = 0 ); wr4 : ( SIZEOF( QUERY ( cfss <* QUERY ( it <* SELF.items | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'CONNECTED_FACE_SUB_SET' IN TYPEOF( it ) ) ) | ( NOT ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'OPEN_SHELL' IN TYPEOF( cfss ) ) ) ) ) = 0 ); wr5 : ( SIZEOF( QUERY ( cfss <* QUERY ( it <* SELF.items | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'CONNECTED_FACE_SUB_SET' IN TYPEOF( it ) ) ) | ( NOT ( ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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 + + '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 ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'ADVANCED_FACE' IN TYPEOF( fac ) ) ) ) ) = 0 ) ) ) ) ) = 0 ); wr6 : ( SIZEOF( QUERY ( cfss <* QUERY ( it <* SELF.items | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'CONNECTED_FACE_SUB_SET' IN TYPEOF( it ) ) ) | ( SIZEOF( QUERY ( fac <* cfss\connected_face_set.cfs_faces | ( + + '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 | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'CONNECTED_FACE_SUB_SET' IN TYPEOF( it ) ) ) | ( NOT ( SIZEOF( QUERY ( fcs <* cfss\connected_face_set. - cfs_faces | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SUBFACE' IN TYPEOF( fcs ) ) AND ( NOT ( SIZEOF( + cfs_faces | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SUBFACE' IN TYPEOF( fcs ) ) AND ( NOT ( SIZEOF( QUERY ( elp_fbnds <* QUERY ( bnds <* fcs.bounds | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EDGE_LOOP' IN - TYPEOF( bnds.bound ) ) ) | ( NOT ( SIZEOF( QUERY ( oe <* elp_fbnds.bound\path.edge_list | ( NOT ( ( - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EDGE_CURVE' IN TYPEOF( oe.edge_element ) ) OR ( - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SUBEDGE' IN TYPEOF( oe.edge_element ) ) ) ) ) ) = 0 ) ) ) ) = 0 ) ) ) ) ) + TYPEOF( bnds.bound ) ) ) | ( NOT ( SIZEOF( QUERY ( oe <* elp_fbnds.bound\path.edge_list | ( NOT ( ( + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EDGE_CURVE' IN TYPEOF( oe.edge_element ) ) OR ( + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SUBEDGE' IN TYPEOF( oe.edge_element ) ) ) ) ) ) = 0 ) ) ) ) = 0 ) ) ) ) ) = 0 ) ) ) ) = 0 ); wr8 : ( SIZEOF( QUERY ( cfss <* QUERY ( it <* SELF.items | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'CONNECTED_FACE_SUB_SET' IN TYPEOF( it ) ) ) | ( NOT ( SIZEOF( QUERY ( fcs <* cfss\connected_face_set. - cfs_faces | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SUBFACE' IN TYPEOF( fcs ) ) AND ( NOT ( SIZEOF( + cfs_faces | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SUBFACE' IN TYPEOF( fcs ) ) AND ( NOT ( SIZEOF( QUERY ( elp_fbnds <* QUERY ( bnds <* fcs.bounds | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EDGE_LOOP' IN - TYPEOF( bnds.bound ) ) ) | ( NOT ( SIZEOF( QUERY ( oe <* elp_fbnds.bound\path.edge_list | ( NOT ( ( - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.VERTEX_POINT' IN TYPEOF( oe.edge_start ) ) AND ( - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.VERTEX_POINT' IN TYPEOF( oe.edge_end ) ) ) ) ) ) = 0 ) ) ) ) = + TYPEOF( bnds.bound ) ) ) | ( NOT ( SIZEOF( QUERY ( oe <* elp_fbnds.bound\path.edge_list | ( NOT ( ( + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.VERTEX_POINT' IN TYPEOF( oe.edge_start ) ) AND ( + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.VERTEX_POINT' IN TYPEOF( oe.edge_end ) ) ) ) ) ) = 0 ) ) ) ) = 0 ) ) ) ) ) = 0 ) ) ) ) = 0 ); wr9 : ( SIZEOF( QUERY ( cfss <* QUERY ( it <* SELF.items | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'CONNECTED_FACE_SUB_SET' IN TYPEOF( it ) ) ) | ( NOT ( SIZEOF( QUERY ( fcs <* cfss\connected_face_set. - cfs_faces | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SUBFACE' IN TYPEOF( fcs ) ) AND ( NOT ( SIZEOF( - QUERY ( bnds <* fcs.bounds | ( NOT ( SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EDGE_LOOP', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.VERTEX_LOOP' ] * TYPEOF( bnds.bound ) ) = 1 ) ) ) ) = 0 ) ) ) ) ) + cfs_faces | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SUBFACE' IN TYPEOF( fcs ) ) AND ( NOT ( SIZEOF( + QUERY ( bnds <* fcs.bounds | ( NOT ( SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EDGE_LOOP', + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.VERTEX_LOOP' ] * TYPEOF( bnds.bound ) ) = 1 ) ) ) ) = 0 ) ) ) ) ) = 0 ) ) ) ) = 0 ); wr10: ( SIZEOF( QUERY ( cfss <* QUERY ( it <* SELF.items | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'CONNECTED_FACE_SUB_SET' IN TYPEOF( it ) ) ) | ( NOT ( SIZEOF( QUERY ( fcs <* cfss\connected_face_set. - cfs_faces | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SUBFACE' IN TYPEOF( fcs ) ) AND ( NOT ( SIZEOF( + cfs_faces | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SUBFACE' IN TYPEOF( fcs ) ) AND ( NOT ( SIZEOF( QUERY ( elp_fbnds <* QUERY ( bnds <* fcs.bounds | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EDGE_LOOP' IN TYPEOF( bnds.bound ) ) ) | ( NOT ( SIZEOF( QUERY ( oe <* elp_fbnds.bound\path.edge_list | ( NOT ( SIZEOF( [ - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LINE' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CONIC', + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LINE' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CONIC', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POLYLINE' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'SURFACE_CURVE' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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 | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'CONNECTED_FACE_SUB_SET' IN TYPEOF( it ) ) ) | ( NOT ( SIZEOF( QUERY ( fcs <* cfss\connected_face_set. - cfs_faces | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SUBFACE' IN TYPEOF( fcs ) ) AND ( NOT ( SIZEOF( + cfs_faces | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SUBFACE' IN TYPEOF( fcs ) ) AND ( NOT ( SIZEOF( QUERY ( elp_fbnds <* QUERY ( bnds <* fcs.bounds | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EDGE_LOOP' IN - TYPEOF( bnds.bound ) ) ) | ( NOT ( SIZEOF( QUERY ( oe <* elp_fbnds.bound\path.edge_list | ( ( + TYPEOF( bnds.bound ) ) ) | ( NOT ( SIZEOF( QUERY ( oe <* elp_fbnds.bound\path.edge_list | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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 ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PCURVE' IN TYPEOF( sc_ag ) ) ) ) ) + associated_geometry | ( NOT ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PCURVE' IN TYPEOF( sc_ag ) ) ) ) ) = 0 ) ) ) ) ) = 0 ) ) ) ) = 0 ) ) ) ) ) = 0 ) ) ) ) = 0 ); wr12: ( SIZEOF( QUERY ( cfss <* QUERY ( it <* SELF.items | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'CONNECTED_FACE_SUB_SET' IN TYPEOF( it ) ) ) | ( NOT ( SIZEOF( QUERY ( fcs <* cfss\connected_face_set. - cfs_faces | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SUBFACE' IN TYPEOF( fcs ) ) AND ( NOT ( SIZEOF( + cfs_faces | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SUBFACE' IN TYPEOF( fcs ) ) AND ( NOT ( SIZEOF( QUERY ( elp_fbnds <* QUERY ( bnds <* fcs.bounds | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EDGE_LOOP' IN - TYPEOF( bnds.bound ) ) ) | ( NOT ( SIZEOF( QUERY ( oe <* elp_fbnds.bound\path.edge_list | ( ( - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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 ) ) ) ) + TYPEOF( bnds.bound ) ) ) | ( NOT ( SIZEOF( QUERY ( oe <* elp_fbnds.bound\path.edge_list | ( ( + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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; @@ -12232,7 +12979,7 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; SUBTYPE OF ( shape_representation ); WHERE wr1 : ( SIZEOF( QUERY ( it <* SELF.items | ( NOT ( SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'SHELL_BASED_SURFACE_MODEL' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MAPPED_ITEM', + + 'SHELL_BASED_SURFACE_MODEL' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MAPPED_ITEM', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.AXIS2_PLACEMENT_3D' ] * TYPEOF( it ) ) = 1 ) ) ) ) = 0 ); wr2 : ( SIZEOF( QUERY ( it <* SELF.items | ( SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'SHELL_BASED_SURFACE_MODEL' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MAPPED_ITEM'] * TYPEOF( it ) ) = @@ -12240,99 +12987,99 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; wr3 : ( SIZEOF( QUERY ( mi <* QUERY ( it <* SELF.items | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MAPPED_ITEM' IN TYPEOF( it ) ) ) | ( NOT ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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 | ( - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHELL_BASED_SURFACE_MODEL' IN TYPEOF( mr_it ) ) ) ) > 0 ) ) ) ) ) + ( SIZEOF( QUERY ( mr_it <* mi\mapped_item.mapping_source.mapped_representation.items | ( + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHELL_BASED_SURFACE_MODEL' IN TYPEOF( mr_it ) ) ) ) > 0 ) ) ) ) ) = 0 ); wr4 : ( SIZEOF( QUERY ( sbsm <* QUERY ( it <* SELF.items | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'SHELL_BASED_SURFACE_MODEL' IN TYPEOF( it ) ) ) | ( NOT ( SIZEOF( QUERY ( sh <* sbsm\shell_based_surface_model - .sbsm_boundary | ( NOT ( SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.OPEN_SHELL', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ORIENTED_CLOSED_SHELL' , + .sbsm_boundary | ( NOT ( SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.OPEN_SHELL', + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ORIENTED_CLOSED_SHELL' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CLOSED_SHELL' ] * TYPEOF( sh ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ); wr5 : ( SIZEOF( QUERY ( sbsm <* QUERY ( it <* SELF.items | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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 + shell_based_surface_model.sbsm_boundary | ( NOT ( SIZEOF( QUERY ( fa <* cfs\connected_face_set.cfs_faces | ( NOT ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FACE_SURFACE' IN TYPEOF( fa ) ) ) ) ) = 0 ) ) ) ) = 0 ) ) ) ) = 0 ); wr6 : ( SIZEOF( QUERY ( sbsm <* QUERY ( it <* SELF.items | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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 + shell_based_surface_model.sbsm_boundary | ( NOT ( SIZEOF( QUERY ( fa <* cfs\connected_face_set.cfs_faces | ( NOT ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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 | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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 - ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ADVANCED_FACE' IN TYPEOF( fa ) ) OR ( SIZEOF( - QUERY ( bnds <* fa.bounds | ( NOT ( SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EDGE_LOOP', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.VERTEX_LOOP' ] * TYPEOF( bnds.bound ) ) = 1 ) ) ) ) = 0 ) ) ) ) ) + shell_based_surface_model.sbsm_boundary | ( NOT ( SIZEOF( QUERY ( fa <* cfs\connected_face_set.cfs_faces | ( NOT + ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ADVANCED_FACE' IN TYPEOF( fa ) ) OR ( SIZEOF( + QUERY ( bnds <* fa.bounds | ( NOT ( SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EDGE_LOOP', + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.VERTEX_LOOP' ] * TYPEOF( bnds.bound ) ) = 1 ) ) ) ) = 0 ) ) ) ) ) = 0 ) ) ) ) = 0 ) ) ) ) = 0 ); wr8 : ( SIZEOF( QUERY ( sbsm <* QUERY ( it <* SELF.items | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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 - ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ADVANCED_FACE' IN TYPEOF( fa ) ) OR ( SIZEOF( - QUERY ( elp_fbnds <* QUERY ( bnds <* fa.bounds | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EDGE_LOOP' IN - TYPEOF( bnds.bound ) ) ) | ( NOT ( SIZEOF( QUERY ( oe <* elp_fbnds\path.edge_list | ( NOT ( - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EDGE_CURVE' IN TYPEOF( oe.edge_element ) ) ) ) ) = 0 ) ) ) ) = + shell_based_surface_model.sbsm_boundary | ( NOT ( SIZEOF( QUERY ( fa <* cfs\connected_face_set.cfs_faces | ( NOT + ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ADVANCED_FACE' IN TYPEOF( fa ) ) OR ( SIZEOF( + QUERY ( elp_fbnds <* QUERY ( bnds <* fa.bounds | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EDGE_LOOP' IN + TYPEOF( bnds.bound ) ) ) | ( NOT ( SIZEOF( QUERY ( oe <* elp_fbnds\path.edge_list | ( NOT ( + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EDGE_CURVE' IN TYPEOF( oe.edge_element ) ) ) ) ) = 0 ) ) ) ) = 0 ) ) ) ) ) = 0 ) ) ) ) = 0 ) ) ) ) = 0 ); wr9 : ( SIZEOF( QUERY ( sbsm <* QUERY ( it <* SELF.items | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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 - ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ADVANCED_FACE' IN TYPEOF( fa ) ) OR ( SIZEOF( - QUERY ( elp_fbnds <* QUERY ( bnds <* fa.bounds | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EDGE_LOOP' IN - TYPEOF( bnds.bound ) ) ) | ( NOT ( SIZEOF( QUERY ( oe_cv <* QUERY ( oe <* elp_fbnds\path.edge_list | ( - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EDGE_CURVE' IN TYPEOF( oe.edge_element ) ) ) | ( NOT ( SIZEOF( - [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.B_SPLINE_CURVE', + shell_based_surface_model.sbsm_boundary | ( NOT ( SIZEOF( QUERY ( fa <* cfs\connected_face_set.cfs_faces | ( NOT + ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ADVANCED_FACE' IN TYPEOF( fa ) ) OR ( SIZEOF( + QUERY ( elp_fbnds <* QUERY ( bnds <* fa.bounds | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EDGE_LOOP' IN + TYPEOF( bnds.bound ) ) ) | ( NOT ( SIZEOF( QUERY ( oe_cv <* QUERY ( oe <* elp_fbnds\path.edge_list | ( + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EDGE_CURVE' IN TYPEOF( oe.edge_element ) ) ) | ( NOT ( SIZEOF( + [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.B_SPLINE_CURVE', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CONIC' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'CURVE_REPLICA' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LINE', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.OFFSET_CURVE_3D' , + + 'CURVE_REPLICA' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LINE', + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.OFFSET_CURVE_3D' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PCURVE' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'POLYLINE' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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 | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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 - ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ADVANCED_FACE' IN TYPEOF( fa ) ) OR ( SIZEOF( - QUERY ( elp_fbnds <* QUERY ( bnds <* fa.bounds | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EDGE_LOOP' IN + shell_based_surface_model.sbsm_boundary | ( NOT ( SIZEOF( QUERY ( fa <* cfs\connected_face_set.cfs_faces | ( NOT + ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ADVANCED_FACE' IN TYPEOF( fa ) ) OR ( SIZEOF( + QUERY ( elp_fbnds <* QUERY ( bnds <* fa.bounds | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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 | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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 - ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ADVANCED_FACE' IN TYPEOF( fa ) ) OR ( SIZEOF( - QUERY ( elp_fbnds <* QUERY ( bnds <* fa.bounds | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EDGE_LOOP' IN - TYPEOF( bnds.bound ) ) ) | ( NOT ( SIZEOF( QUERY ( oe <* elp_fbnds\path.edge_list | ( NOT ( ( - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.VERTEX_POINT' IN TYPEOF( oe.edge_element.edge_start ) ) AND ( + shell_based_surface_model.sbsm_boundary | ( NOT ( SIZEOF( QUERY ( fa <* cfs\connected_face_set.cfs_faces | ( NOT + ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ADVANCED_FACE' IN TYPEOF( fa ) ) OR ( SIZEOF( + QUERY ( elp_fbnds <* QUERY ( bnds <* fa.bounds | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EDGE_LOOP' IN + TYPEOF( bnds.bound ) ) ) | ( NOT ( SIZEOF( QUERY ( oe <* elp_fbnds\path.edge_list | ( NOT ( ( + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.VERTEX_POINT' IN TYPEOF( oe.edge_element.edge_start ) ) AND ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.VERTEX_POINT' IN TYPEOF( oe.edge_element.edge_end ) ) ) ) ) ) = 0 ) ) ) ) = 0 ) ) ) ) ) = 0 ) ) ) ) = 0 ) ) ) ) = 0 ); wr12: ( SIZEOF( QUERY ( sbsm <* QUERY ( it <* SELF.items | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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 - ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ADVANCED_FACE' IN TYPEOF( fa ) ) OR ( SIZEOF( - QUERY ( elp_fbnds <* QUERY ( bnds <* fa.bounds | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EDGE_LOOP' IN + shell_based_surface_model.sbsm_boundary | ( NOT ( SIZEOF( QUERY ( fa <* cfs\connected_face_set.cfs_faces | ( NOT + ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ADVANCED_FACE' IN TYPEOF( fa ) ) OR ( SIZEOF( + QUERY ( elp_fbnds <* QUERY ( bnds <* fa.bounds | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EDGE_LOOP' IN TYPEOF( bnds.bound ) ) ) | ( NOT ( SIZEOF( QUERY ( oe <* elp_fbnds\path.edge_list | ( NOT ( ( SIZEOF( [ - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CARTESIAN_POINT' , - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DEGENERATE_PCURVE' , - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POINT_ON_CURVE' , + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CARTESIAN_POINT' , + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DEGENERATE_PCURVE' , + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POINT_ON_CURVE' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POINT_ON_SURFACE' ] * TYPEOF( oe.edge_element.edge_start\ vertex_point.vertex_geometry ) ) = 1 ) AND ( SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'CARTESIAN_POINT' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DEGENERATE_PCURVE', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POINT_ON_CURVE' , + + 'CARTESIAN_POINT' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DEGENERATE_PCURVE', + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POINT_ON_CURVE' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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 | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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 - ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ADVANCED_FACE' IN TYPEOF( fa ) ) OR ( SIZEOF( - QUERY ( vlp_fbnds <* QUERY ( bnds <* fa.bounds | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.VERTEX_LOOP' - IN TYPEOF( bnds.bound ) ) ) | ( NOT ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.VERTEX_POINT' IN TYPEOF( + shell_based_surface_model.sbsm_boundary | ( NOT ( SIZEOF( QUERY ( fa <* cfs\connected_face_set.cfs_faces | ( NOT + ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ADVANCED_FACE' IN TYPEOF( fa ) ) OR ( SIZEOF( + QUERY ( vlp_fbnds <* QUERY ( bnds <* fa.bounds | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.VERTEX_LOOP' + IN TYPEOF( bnds.bound ) ) ) | ( NOT ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.VERTEX_POINT' IN TYPEOF( vlp_fbnds\vertex_loop.loop_vertex ) ) ) ) ) = 0 ) ) ) ) ) = 0 ) ) ) ) = 0 ) ) ) ) = 0 ); wr14: ( SIZEOF( QUERY ( sbsm <* QUERY ( it <* SELF.items | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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 - ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ADVANCED_FACE' IN TYPEOF( fa ) ) OR ( SIZEOF( - QUERY ( vlp_fbnds <* QUERY ( bnds <* fa.bounds | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.VERTEX_LOOP' - IN TYPEOF( bnds.bound ) ) ) | ( NOT ( SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CARTESIAN_POINT', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DEGENERATE_PCURVE' , - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POINT_ON_CURVE' , + shell_based_surface_model.sbsm_boundary | ( NOT ( SIZEOF( QUERY ( fa <* cfs\connected_face_set.cfs_faces | ( NOT + ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ADVANCED_FACE' IN TYPEOF( fa ) ) OR ( SIZEOF( + QUERY ( vlp_fbnds <* QUERY ( bnds <* fa.bounds | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.VERTEX_LOOP' + IN TYPEOF( bnds.bound ) ) ) | ( NOT ( SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CARTESIAN_POINT', + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DEGENERATE_PCURVE' , + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POINT_ON_CURVE' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POINT_ON_SURFACE' ] * TYPEOF( vlp_fbnds\vertex_loop.loop_vertex\ vertex_point.vertex_geometry ) ) = 1 ) ) ) ) = 0 ) ) ) ) ) = 0 ) ) ) ) = 0 ) ) ) ) = 0 ); END_ENTITY; @@ -12356,46 +13103,46 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; wr2: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( + + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF( it ) ) AND ( it.name = 'marking text' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) + + 'DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF( it ) ) AND ( it.name = 'marking text' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ); wr3: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( + + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF( it ) ) AND ( it.name = 'special instructions' ) ) ) ) <= 1 ) ) ) ) + + 'DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF( it ) ) AND ( it.name = 'special instructions' ) ) ) ) <= 1 ) ) ) ) = 0 ) ) ) ) = 0 ); wr4: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( + + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF( it ) ) AND ( it.name = 'font name' ) ) ) ) <= 1 ) ) ) ) = 0 ) ) ) ) + + 'DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF( it ) ) AND ( it.name = 'font name' ) ) ) ) <= 1 ) ) ) ) = 0 ) ) ) ) = 0 ); wr5: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( + + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'MEASURE_REPRESENTATION_ITEM' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * + + 'MEASURE_REPRESENTATION_ITEM' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF( it ) ) = 2 ) AND ( it.name = 'character height' ) ) ) ) <= 1 ) ) ) ) = 0 ) ) ) ) = 0 ); wr6: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( + + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'MEASURE_REPRESENTATION_ITEM' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * + + 'MEASURE_REPRESENTATION_ITEM' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF( it ) ) = 2 ) AND ( it.name = 'character spacing' ) ) ) ) <= 1 ) ) ) ) = 0 ) ) ) ) = 0 ); wr7: ( SIZEOF( QUERY ( pds <* QUERY ( pd <* USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PROPERTY_DEFINITION.DEFINITION' ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) | ( NOT ( SIZEOF( QUERY ( sa_occ <* USEDIN( pds, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) | ( SIZEOF( QUERY ( sdr <* - QUERY ( sar <* USEDIN( sa_occ, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.' + - 'RELATED_SHAPE_ASPECT' ) | ( ( sar.description = 'applied shape' ) AND ( - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF( sar ) ) ) ) | ( - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT' IN TYPEOF( sdr.relating_shape_aspect ) ) ) ) = 1 ) ) ) + + 'PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) | ( NOT ( SIZEOF( QUERY ( sa_occ <* USEDIN( pds, + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) | ( SIZEOF( QUERY ( sdr <* + QUERY ( sar <* USEDIN( sa_occ, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.' + + 'RELATED_SHAPE_ASPECT' ) | ( ( sar.description = 'applied shape' ) AND ( + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF( sar ) ) ) ) | ( + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT' IN TYPEOF( sdr.relating_shape_aspect ) ) ) ) = 1 ) ) ) = 1 ) ) ) ) = 0 ); END_ENTITY; @@ -12409,7 +13156,7 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; SUBTYPE OF ( named_unit ); WHERE wr1: ( ( SELF\named_unit.dimensions.length_exponent = 0 ) AND ( SELF\named_unit.dimensions.mass_exponent = 1 ) AND ( SELF\ - named_unit.dimensions.time_exponent = 0 ) AND ( SELF\named_unit.dimensions.electric_current_exponent = 0 ) AND ( + named_unit.dimensions.time_exponent = 0 ) AND ( SELF\named_unit.dimensions.electric_current_exponent = 0 ) AND ( SELF\named_unit.dimensions.thermodynamic_temperature_exponent = 0 ) AND ( SELF\named_unit.dimensions. amount_of_substance_exponent = 0 ) AND ( SELF\named_unit.dimensions.luminous_intensity_exponent = 0 ) ); END_ENTITY; @@ -12438,13 +13185,13 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; ENTITY material_property SUBTYPE OF ( property_definition ); UNIQUE - ur1 : name, definition; + ur1 : SELF\property_definition.name, SELF\property_definition.definition; WHERE wr1: ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CHARACTERIZED_OBJECT' IN TYPEOF( SELF\property_definition. - definition ) ) OR ( SIZEOF( bag_to_set( USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + - 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) ) - QUERY ( temp <* bag_to_set( USEDIN( SELF, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) ) | ( ( - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'MATERIAL_PROPERTY_REPRESENTATION' ) IN TYPEOF( temp ) ) ) ) + definition ) ) OR ( SIZEOF( bag_to_set( USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) ) - QUERY ( temp <* bag_to_set( USEDIN( SELF, + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) ) | ( ( + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'MATERIAL_PROPERTY_REPRESENTATION' ) IN TYPEOF( temp ) ) ) ) = 0 ) ); END_ENTITY; @@ -12459,12 +13206,32 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; END_ENTITY; ENTITY maths_function - ABSTRACT SUPERTYPE OF ( ONEOF ( finite_function, constant_function, selector_function, elementary_function, - restriction_function, repackaging_function, reindexed_array_function, series_composed_function, parallel_composed_function, - explicit_table_function, homogeneous_linear_function, general_linear_function, b_spline_basis, b_spline_function, - rationalize_function, partial_derivative_function, definite_integral_function, abstracted_expression_function, - expression_denoted_function, imported_point_function, imported_curve_function, imported_surface_function, - imported_volume_function, application_defined_function ) ) + ABSTRACT SUPERTYPE OF ( + ONEOF ( + finite_function, + constant_function, + selector_function, + elementary_function, + restriction_function, + repackaging_function, + reindexed_array_function, + series_composed_function, + parallel_composed_function, + explicit_table_function, + homogeneous_linear_function, + general_linear_function, + b_spline_basis, + b_spline_function, + rationalize_function, + partial_derivative_function, + definite_integral_function, + abstracted_expression_function, + expression_denoted_function, + imported_point_function, + imported_curve_function, + imported_surface_function, + imported_volume_function, + application_defined_function ) ) SUBTYPE OF ( generic_expression ); DERIVE domain : tuple_space := derive_function_domain( SELF ); @@ -12472,10 +13239,22 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; END_ENTITY; ENTITY maths_space - ABSTRACT SUPERTYPE OF ( ONEOF ( elementary_space, finite_integer_interval, integer_interval_from_min, integer_interval_to_max, - finite_real_interval, real_interval_from_min, real_interval_to_max, cartesian_complex_number_region, - polar_complex_number_region, finite_space, uniform_product_space, listed_product_space, extended_tuple_space, - function_space ) ) + ABSTRACT SUPERTYPE OF ( + ONEOF ( + elementary_space, + finite_integer_interval, + integer_interval_from_min, + integer_interval_to_max, + finite_real_interval, + real_interval_from_min, + real_interval_to_max, + cartesian_complex_number_region, + polar_complex_number_region, + finite_space, + uniform_product_space, + listed_product_space, + extended_tuple_space, + function_space ) ) SUBTYPE OF ( generic_expression ); END_ENTITY; @@ -12502,7 +13281,7 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; qualified_measure : measure_with_unit; qualifiers : SET [1 : ?] OF value_qualifier; WHERE - wr1: ( SIZEOF( QUERY ( temp <* qualifiers | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRECISION_QUALIFIER' IN + wr1: ( SIZEOF( QUERY ( temp <* qualifiers | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRECISION_QUALIFIER' IN TYPEOF( temp ) ) ) ) < 2 ); wr2: ( NOT ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.REPRESENTATION_ITEM' IN TYPEOF( SELF\measure_qualification. qualified_measure ) ) ); @@ -12513,17 +13292,41 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; 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 ) ); + 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 @@ -12541,17 +13344,17 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; 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 ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'DRAUGHTING_MODEL' ) IN TYPEOF( rep_2 ) ) ) OR ( ( - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'DRAUGHTING_MODEL' ) IN TYPEOF( rep_1 ) ) OR ( ( + wr1: ( ( NOT ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'DRAUGHTING_MODEL' ) IN TYPEOF( rep_2 ) ) ) OR ( ( + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'DRAUGHTING_MODEL' ) IN TYPEOF( rep_1 ) ) OR ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'SHAPE_REPRESENTATION' ) IN TYPEOF( rep_1 ) ) ); - wr2: ( ( NOT ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + - 'MECHANICAL_DESIGN_GEOMETRIC_PRESENTATION_REPRESENTATION' ) IN TYPEOF( rep_2 ) ) ) OR ( ( - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'MECHANICAL_DESIGN_GEOMETRIC_PRESENTATION_REPRESENTATION' ) - IN TYPEOF( rep_1 ) ) OR ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'SHAPE_REPRESENTATION' ) IN + wr2: ( ( NOT ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + + 'MECHANICAL_DESIGN_GEOMETRIC_PRESENTATION_REPRESENTATION' ) IN TYPEOF( rep_2 ) ) ) OR ( ( + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'MECHANICAL_DESIGN_GEOMETRIC_PRESENTATION_REPRESENTATION' ) + IN TYPEOF( rep_1 ) ) OR ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'SHAPE_REPRESENTATION' ) IN TYPEOF( rep_1 ) ) ); - wr3: ( ( NOT ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'MECHANICAL_DESIGN_SHADED_PRESENTATION_REPRESENTATION' ) - IN TYPEOF( rep_2 ) ) ) OR ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + - 'MECHANICAL_DESIGN_SHADED_PRESENTATION_REPRESENTATION' ) IN TYPEOF( rep_1 ) ) OR ( ( + wr3: ( ( NOT ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'MECHANICAL_DESIGN_SHADED_PRESENTATION_REPRESENTATION' ) + IN TYPEOF( rep_2 ) ) ) OR ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + + 'MECHANICAL_DESIGN_SHADED_PRESENTATION_REPRESENTATION' ) IN TYPEOF( rep_1 ) ) OR ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'SHAPE_REPRESENTATION' ) IN TYPEOF( rep_1 ) ) ); END_ENTITY; @@ -12559,38 +13362,38 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; SUBTYPE OF ( presentation_area ); SELF\representation.items : SET [1 : ?] OF mechanical_design_geometric_presentation_area_items; WHERE - wr1: ( SIZEOF( QUERY ( it1 <* SELF.items | ( ( NOT ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MAPPED_ITEM' IN + wr1: ( SIZEOF( QUERY ( it1 <* SELF.items | ( ( NOT ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MAPPED_ITEM' IN TYPEOF( it1 ) ) ) OR ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRESENTATION_VIEW' IN TYPEOF( it1\ mapped_item.mapping_source.mapped_representation ) ) ) ) ) = 0 ); wr2: ( SIZEOF( QUERY ( pv <* QUERY ( mi1 <* QUERY ( it1 <* SELF.items | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'MAPPED_ITEM' IN TYPEOF( it1 ) ) ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRESENTATION_VIEW' IN + + 'MAPPED_ITEM' IN TYPEOF( it1 ) ) ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRESENTATION_VIEW' IN TYPEOF( mi1\mapped_item.mapping_source.mapped_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it2 <* pv\mapped_item. - mapping_source.mapped_representation\representation.items | ( ( NOT ( ( - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.AXIS2_PLACEMENT' IN TYPEOF( it2 ) ) OR ( ( - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MAPPED_ITEM' IN TYPEOF( it2 ) ) AND ( NOT ( ( - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'CAMERA_IMAGE_3D_WITH_SCALE' ) IN TYPEOF( it2 ) ) ) AND ( + mapping_source.mapped_representation\representation.items | ( ( NOT ( ( + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.AXIS2_PLACEMENT' IN TYPEOF( it2 ) ) OR ( ( + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MAPPED_ITEM' IN TYPEOF( it2 ) ) AND ( NOT ( ( + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'CAMERA_IMAGE_3D_WITH_SCALE' ) IN TYPEOF( it2 ) ) ) AND ( NOT ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRESENTATION_VIEW' IN TYPEOF( it2\mapped_item.mapping_source - .mapped_representation ) ) ) ) ) ) OR ( ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + - 'CAMERA_IMAGE_3D_WITH_SCALE' ) IN TYPEOF( it2 ) ) AND ( NOT ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + .mapped_representation ) ) ) ) ) ) OR ( ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + + 'CAMERA_IMAGE_3D_WITH_SCALE' ) IN TYPEOF( it2 ) ) AND ( NOT ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'MECHANICAL_DESIGN_GEOMETRIC_PRESENTATION_REPRESENTATION' ) IN TYPEOF( it2\mapped_item.mapping_source. mapped_representation ) ) ) ) ) ) ) = 0 ) ) ) ) = 0 ); wr3: ( ( SIZEOF( QUERY ( ps <* USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PRESENTATION_SIZE.UNIT' ) - | ( ( ps\presentation_size.size.size_in_x <= 0 ) OR ( ps\presentation_size.size.size_in_y <= 0 ) ) ) ) = 0 ) AND ( - SIZEOF( QUERY ( ais <* USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'AREA_IN_SET.AREA' ) | ( + | ( ( ps\presentation_size.size.size_in_x <= 0 ) OR ( ps\presentation_size.size.size_in_y <= 0 ) ) ) ) = 0 ) AND ( + SIZEOF( QUERY ( ais <* USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'AREA_IN_SET.AREA' ) | ( SIZEOF( QUERY ( ps <* USEDIN( ais, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PRESENTATION_SIZE.UNIT' ) - | ( ( ps\presentation_size.size.size_in_x <= 0 ) OR ( ps\presentation_size.size.size_in_y <= 0 ) ) ) ) > 0 ) ) ) = + | ( ( ps\presentation_size.size.size_in_x <= 0 ) OR ( ps\presentation_size.size.size_in_y <= 0 ) ) ) ) > 0 ) ) ) = 0 ) ); wr4: ( ( ( SIZEOF( QUERY ( ps <* USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PRESENTATION_SIZE.UNIT' ) - | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'AXIS2_PLACEMENT_2D' ) IN TYPEOF( ps.size.placement ) ) ) ) - = 1 ) AND ( SIZEOF( QUERY ( ps <* USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + - 'PRESENTATION_SIZE.UNIT' ) | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'AXIS2_PLACEMENT_3D' ) IN - TYPEOF( ps.size.placement ) ) ) ) = 0 ) ) OR ( ( SIZEOF( QUERY ( ais <* USEDIN( SELF, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'AREA_IN_SET.AREA' ) | ( SIZEOF( QUERY ( ps <* USEDIN( ais, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PRESENTATION_SIZE.UNIT' ) | ( ( - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'AXIS2_PLACEMENT_2D' ) IN TYPEOF( ps.size.placement ) ) ) ) - = 1 ) ) ) = 1 ) AND ( SIZEOF( QUERY ( ais <* USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + - 'AREA_IN_SET.AREA' ) | ( SIZEOF( QUERY ( ps <* USEDIN( ais, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + - 'PRESENTATION_SIZE.UNIT' ) | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'AXIS2_PLACEMENT_3D' ) IN + | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'AXIS2_PLACEMENT_2D' ) IN TYPEOF( ps.size.placement ) ) ) ) + = 1 ) AND ( SIZEOF( QUERY ( ps <* USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + + 'PRESENTATION_SIZE.UNIT' ) | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'AXIS2_PLACEMENT_3D' ) IN + TYPEOF( ps.size.placement ) ) ) ) = 0 ) ) OR ( ( SIZEOF( QUERY ( ais <* USEDIN( SELF, + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'AREA_IN_SET.AREA' ) | ( SIZEOF( QUERY ( ps <* USEDIN( ais, + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PRESENTATION_SIZE.UNIT' ) | ( ( + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'AXIS2_PLACEMENT_2D' ) IN TYPEOF( ps.size.placement ) ) ) ) + = 1 ) ) ) = 1 ) AND ( SIZEOF( QUERY ( ais <* USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + + 'AREA_IN_SET.AREA' ) | ( SIZEOF( QUERY ( ps <* USEDIN( ais, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + + 'PRESENTATION_SIZE.UNIT' ) | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'AXIS2_PLACEMENT_3D' ) IN TYPEOF( ps.size.placement ) ) ) ) = 0 ) ) ) = 1 ) ) ); END_ENTITY; @@ -12599,131 +13402,131 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; SELF\representation.items : SET [1 : ?] OF mechanical_design_geometric_presentation_representation_items; WHERE wr1 : ( SIZEOF( QUERY ( mi <* QUERY ( it <* SELF.items | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MAPPED_ITEM' IN - TYPEOF( it ) ) ) | ( NOT ( SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'SHAPE_REPRESENTATION', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'MECHANICAL_DESIGN_GEOMETRIC_PRESENTATION_REPRESENTATION'] + TYPEOF( it ) ) ) | ( NOT ( SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'SHAPE_REPRESENTATION', + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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 | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'STYLED_ITEM' IN TYPEOF( it ) ) ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MAPPED_ITEM' IN - TYPEOF( si\styled_item.item ) ) ) | ( NOT ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + - 'SHAPE_REPRESENTATION' ) IN TYPEOF( smi\styled_item.item\mapped_item.mapping_source.mapped_representation ) ) ) ) ) + + 'STYLED_ITEM' IN TYPEOF( it ) ) ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MAPPED_ITEM' IN + TYPEOF( si\styled_item.item ) ) ) | ( NOT ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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 | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.STYLED_ITEM' IN TYPEOF( it ) ) ) | ( NOT ( SIZEOF( QUERY ( psa <* si\styled_item.styles | ( NOT ( SIZEOF( QUERY ( pss <* psa. - styles | ( NOT ( SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POINT_STYLE', + styles | ( NOT ( SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POINT_STYLE', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CURVE_STYLE' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'SURFACE_STYLE_USAGE' ] * TYPEOF( pss ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ) ) ) ) = 0 ); wr4 : ( SIZEOF( QUERY ( si <* QUERY ( it <* SELF.items | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.STYLED_ITEM' IN - TYPEOF( it ) ) ) | ( NOT ( SIZEOF( QUERY ( psbc <* QUERY ( psa <* si\styled_item.styles | ( ( - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PRESENTATION_STYLE_BY_CONTEXT' ) IN TYPEOF( psa ) ) ) | ( - NOT ( SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'REPRESENTATION_ITEM', + TYPEOF( it ) ) ) | ( NOT ( SIZEOF( QUERY ( psbc <* QUERY ( psa <* si\styled_item.styles | ( ( + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PRESENTATION_STYLE_BY_CONTEXT' ) IN TYPEOF( psa ) ) ) | ( + NOT ( SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'REPRESENTATION_ITEM', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.REPRESENTATION' ] * TYPEOF( psbc\presentation_style_by_context. style_context ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ); wr5 : ( SIZEOF( QUERY ( si <* QUERY ( it <* SELF.items | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.STYLED_ITEM' IN - TYPEOF( it ) ) ) | ( NOT ( SIZEOF( QUERY ( psa <* si\styled_item.styles | ( NOT ( SIZEOF( QUERY ( ps <* + TYPEOF( it ) ) ) | ( NOT ( SIZEOF( QUERY ( psa <* si\styled_item.styles | ( NOT ( SIZEOF( QUERY ( ps <* QUERY ( pss <* psa.styles | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POINT_STYLE' IN TYPEOF( pss ) ) ) | ( NOT ( ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'POSITIVE_LENGTH_MEASURE' ) IN TYPEOF( ps\ - point_style.marker_size ) ) AND ( SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COLOUR_RGB', + point_style.marker_size ) ) AND ( SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COLOUR_RGB', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'DRAUGHTING_PRE_DEFINED_COLOUR'] * TYPEOF( ps\point_style. marker_colour ) ) = 1 ) ) ) ) ) = 0 ) ) ) ) = 0 ) ) ) ) = 0 ); wr6 : ( SIZEOF( QUERY ( si <* QUERY ( it <* SELF.items | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.STYLED_ITEM' IN - TYPEOF( it ) ) ) | ( NOT ( SIZEOF( QUERY ( psa <* si\styled_item.styles | ( NOT ( SIZEOF( QUERY ( cs <* + TYPEOF( it ) ) ) | ( NOT ( SIZEOF( QUERY ( psa <* si\styled_item.styles | ( NOT ( SIZEOF( QUERY ( cs <* QUERY ( pss <* psa.styles | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CURVE_STYLE' IN TYPEOF( pss ) ) ) - | ( NOT ( ( SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COLOUR_RGB', + | ( NOT ( ( SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COLOUR_RGB', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'DRAUGHTING_PRE_DEFINED_COLOUR'] * TYPEOF( cs\curve_style. curve_colour ) ) = 1 ) AND ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'POSITIVE_LENGTH_MEASURE' ) IN TYPEOF( cs\curve_style.curve_width ) ) AND ( SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'CURVE_STYLE_FONT' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'DRAUGHTING_PRE_DEFINED_CURVE_FONT'] + + 'CURVE_STYLE_FONT' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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 | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.STYLED_ITEM' IN - TYPEOF( it ) ) ) | ( NOT ( SIZEOF( QUERY ( psa <* si\styled_item.styles | ( NOT ( SIZEOF( QUERY ( ssu <* + TYPEOF( it ) ) ) | ( NOT ( SIZEOF( QUERY ( psa <* si\styled_item.styles | ( NOT ( SIZEOF( QUERY ( ssu <* QUERY ( pss <* psa.styles | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SURFACE_STYLE_USAGE' IN TYPEOF( pss ) ) ) | ( NOT ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'SURFACE_SIDE_STYLE' ) IN TYPEOF( ssu\ surface_style_usage.style ) ) ) ) ) = 0 ) ) ) ) = 0 ) ) ) ) = 0 ); wr8 : ( SIZEOF( QUERY ( si <* QUERY ( it <* SELF.items | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.STYLED_ITEM' IN - TYPEOF( it ) ) ) | ( NOT ( SIZEOF( QUERY ( psa <* si\styled_item.styles | ( NOT ( SIZEOF( QUERY ( ssu <* + TYPEOF( it ) ) ) | ( NOT ( SIZEOF( QUERY ( psa <* si\styled_item.styles | ( NOT ( SIZEOF( QUERY ( ssu <* QUERY ( pss <* psa.styles | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SURFACE_STYLE_USAGE' IN TYPEOF( pss ) ) ) | ( NOT ( SIZEOF( QUERY ( sses <* ssu\surface_style_usage.style\surface_side_style.styles | ( NOT ( SIZEOF( [ - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'SURFACE_STYLE_PARAMETER_LINE', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'SURFACE_STYLE_CONTROL_GRID', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'SURFACE_STYLE_SILHOUETTE', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'SURFACE_STYLE_SEGMENTATION_CURVE', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'SURFACE_STYLE_FILL_AREA', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'SURFACE_STYLE_BOUNDARY'] * TYPEOF( sses ) ) = 1 ) ) ) ) = + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'SURFACE_STYLE_PARAMETER_LINE', + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'SURFACE_STYLE_CONTROL_GRID', + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'SURFACE_STYLE_SILHOUETTE', + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'SURFACE_STYLE_SEGMENTATION_CURVE', + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'SURFACE_STYLE_FILL_AREA', + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'SURFACE_STYLE_BOUNDARY'] * TYPEOF( sses ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ) ) ) ) = 0 ) ) ) ) = 0 ); wr9 : ( SIZEOF( QUERY ( si <* QUERY ( it <* SELF.items | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.STYLED_ITEM' IN - TYPEOF( it ) ) ) | ( NOT ( SIZEOF( QUERY ( psa <* si\styled_item.styles | ( NOT ( SIZEOF( QUERY ( ssu <* + TYPEOF( it ) ) ) | ( NOT ( SIZEOF( QUERY ( psa <* si\styled_item.styles | ( NOT ( SIZEOF( QUERY ( ssu <* QUERY ( pss <* psa.styles | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SURFACE_STYLE_USAGE' IN TYPEOF( pss ) ) ) - | ( NOT ( SIZEOF( QUERY ( sspl <* QUERY ( sses <* ssu\surface_style_usage.style\surface_side_style.styles | ( ( - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'SURFACE_STYLE_PARAMETER_LINE' ) IN TYPEOF( sses ) ) ) | ( + | ( NOT ( SIZEOF( QUERY ( sspl <* QUERY ( sses <* ssu\surface_style_usage.style\surface_side_style.styles | ( ( + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'SURFACE_STYLE_PARAMETER_LINE' ) IN TYPEOF( sses ) ) ) | ( NOT ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CURVE_STYLE' IN TYPEOF( sspl\surface_style_parameter_line - .style_of_parameter_lines ) ) AND ( SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COLOUR_RGB', + .style_of_parameter_lines ) ) AND ( SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COLOUR_RGB', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'DRAUGHTING_PRE_DEFINED_COLOUR'] * TYPEOF( sspl\ - surface_style_parameter_line.style_of_parameter_lines\curve_style.curve_colour ) ) = 1 ) AND ( ( + surface_style_parameter_line.style_of_parameter_lines\curve_style.curve_colour ) ) = 1 ) AND ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'POSITIVE_LENGTH_MEASURE' ) IN TYPEOF( sspl\ surface_style_parameter_line.style_of_parameter_lines\curve_style.curve_width ) ) AND ( SIZEOF( [ - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CURVE_STYLE_FONT' , + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CURVE_STYLE_FONT' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'DRAUGHTING_PRE_DEFINED_CURVE_FONT'] * TYPEOF( sspl\ - surface_style_parameter_line.style_of_parameter_lines\curve_style.curve_font ) ) = 1 ) ) ) ) ) = 0 ) ) ) ) = 0 ) ) ) ) + 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 | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.STYLED_ITEM' IN - TYPEOF( it ) ) ) | ( NOT ( SIZEOF( QUERY ( psa <* si\styled_item.styles | ( NOT ( SIZEOF( QUERY ( ssu <* + TYPEOF( it ) ) ) | ( NOT ( SIZEOF( QUERY ( psa <* si\styled_item.styles | ( NOT ( SIZEOF( QUERY ( ssu <* QUERY ( pss <* psa.styles | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SURFACE_STYLE_USAGE' IN TYPEOF( pss ) ) ) - | ( NOT ( SIZEOF( QUERY ( sscg <* QUERY ( sses <* ssu\surface_style_usage.style\surface_side_style.styles | ( ( - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'SURFACE_STYLE_CONTROL_GRID' ) IN TYPEOF( sses ) ) ) | ( + | ( NOT ( SIZEOF( QUERY ( sscg <* QUERY ( sses <* ssu\surface_style_usage.style\surface_side_style.styles | ( ( + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'SURFACE_STYLE_CONTROL_GRID' ) IN TYPEOF( sses ) ) ) | ( NOT ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CURVE_STYLE' IN TYPEOF( sscg\surface_style_control_grid. - style_of_control_grid ) ) AND ( SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COLOUR_RGB', + style_of_control_grid ) ) AND ( SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COLOUR_RGB', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'DRAUGHTING_PRE_DEFINED_COLOUR'] * TYPEOF( sscg\ - surface_style_control_grid.style_of_control_grid\curve_style.curve_colour ) ) = 1 ) AND ( ( + surface_style_control_grid.style_of_control_grid\curve_style.curve_colour ) ) = 1 ) AND ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'POSITIVE_LENGTH_MEASURE' ) IN TYPEOF( sscg\ surface_style_control_grid.style_of_control_grid\curve_style.curve_width ) ) AND ( SIZEOF( [ - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CURVE_STYLE_FONT' , + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CURVE_STYLE_FONT' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'DRAUGHTING_PRE_DEFINED_CURVE_FONT'] * TYPEOF( sscg\ - surface_style_control_grid.style_of_control_grid\curve_style.curve_font ) ) = 1 ) ) ) ) ) = 0 ) ) ) ) = 0 ) ) ) ) + 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 | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.STYLED_ITEM' IN - TYPEOF( it ) ) ) | ( NOT ( SIZEOF( QUERY ( psa <* si\styled_item.styles | ( NOT ( SIZEOF( QUERY ( ssu <* + TYPEOF( it ) ) ) | ( NOT ( SIZEOF( QUERY ( psa <* si\styled_item.styles | ( NOT ( SIZEOF( QUERY ( ssu <* QUERY ( pss <* psa.styles | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SURFACE_STYLE_USAGE' IN TYPEOF( pss ) ) ) - | ( NOT ( SIZEOF( QUERY ( sssh <* QUERY ( sses <* ssu\surface_style_usage.style\surface_side_style.styles | ( ( - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'SURFACE_STYLE_SILHOUETTE' ) IN TYPEOF( sses ) ) ) | ( NOT + | ( NOT ( SIZEOF( QUERY ( sssh <* QUERY ( sses <* ssu\surface_style_usage.style\surface_side_style.styles | ( ( + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'SURFACE_STYLE_SILHOUETTE' ) IN TYPEOF( sses ) ) ) | ( NOT ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CURVE_STYLE' IN TYPEOF( sssh\surface_style_silhouette. - style_of_silhouette ) ) AND ( SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COLOUR_RGB', + style_of_silhouette ) ) AND ( SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COLOUR_RGB', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'DRAUGHTING_PRE_DEFINED_COLOUR'] * TYPEOF( sssh\ - surface_style_silhouette.style_of_silhouette\curve_style.curve_colour ) ) = 1 ) AND ( ( + surface_style_silhouette.style_of_silhouette\curve_style.curve_colour ) ) = 1 ) AND ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'POSITIVE_LENGTH_MEASURE' ) IN TYPEOF( sssh\ surface_style_silhouette.style_of_silhouette\curve_style.curve_width ) ) AND ( SIZEOF( [ - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CURVE_STYLE_FONT' , + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CURVE_STYLE_FONT' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'DRAUGHTING_PRE_DEFINED_CURVE_FONT'] * TYPEOF( sssh\ - surface_style_silhouette.style_of_silhouette\curve_style.curve_font ) ) = 1 ) ) ) ) ) = 0 ) ) ) ) = 0 ) ) ) ) = 0 ) ) ) ) + surface_style_silhouette.style_of_silhouette\curve_style.curve_font ) ) = 1 ) ) ) ) ) = 0 ) ) ) ) = 0 ) ) ) ) = 0 ) ) ) ) = 0 ); wr12: ( SIZEOF( QUERY ( si <* QUERY ( it <* SELF.items | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.STYLED_ITEM' IN - TYPEOF( it ) ) ) | ( NOT ( SIZEOF( QUERY ( psa <* si\styled_item.styles | ( NOT ( SIZEOF( QUERY ( ssu <* + TYPEOF( it ) ) ) | ( NOT ( SIZEOF( QUERY ( psa <* si\styled_item.styles | ( NOT ( SIZEOF( QUERY ( ssu <* QUERY ( pss <* psa.styles | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SURFACE_STYLE_USAGE' IN TYPEOF( pss ) ) ) - | ( NOT ( SIZEOF( QUERY ( sssc <* QUERY ( sses <* ssu\surface_style_usage.style\surface_side_style.styles | ( ( + | ( NOT ( SIZEOF( QUERY ( sssc <* QUERY ( sses <* ssu\surface_style_usage.style\surface_side_style.styles | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'SURFACE_STYLE_SEGMENTATION_CURVE' ) IN TYPEOF( sses ) ) ) | ( NOT ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CURVE_STYLE' IN TYPEOF( sssc\ surface_style_segmentation_curve.style_of_segmentation_curve ) ) AND ( SIZEOF( [ - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COLOUR_RGB' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COLOUR_RGB' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'DRAUGHTING_PRE_DEFINED_COLOUR'] * TYPEOF( sssc\surface_style_segmentation_curve.style_of_segmentation_curve\ - curve_style.curve_colour ) ) = 1 ) AND ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + + curve_style.curve_colour ) ) = 1 ) AND ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'POSITIVE_LENGTH_MEASURE' ) IN TYPEOF( sssc\surface_style_segmentation_curve.style_of_segmentation_curve\ - curve_style.curve_width ) ) AND ( SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CURVE_STYLE_FONT', + curve_style.curve_width ) ) AND ( SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CURVE_STYLE_FONT', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'DRAUGHTING_PRE_DEFINED_CURVE_FONT'] * TYPEOF( sssc\ - surface_style_segmentation_curve.style_of_segmentation_curve\curve_style.curve_font ) ) = 1 ) ) ) ) ) = 0 ) ) ) ) + 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 | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.STYLED_ITEM' IN - TYPEOF( it ) ) ) | ( NOT ( SIZEOF( QUERY ( psa <* si\styled_item.styles | ( NOT ( SIZEOF( QUERY ( ssu <* + TYPEOF( it ) ) ) | ( NOT ( SIZEOF( QUERY ( psa <* si\styled_item.styles | ( NOT ( SIZEOF( QUERY ( ssu <* QUERY ( pss <* psa.styles | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SURFACE_STYLE_USAGE' IN TYPEOF( pss ) ) ) - | ( NOT ( SIZEOF( QUERY ( ssbd <* QUERY ( sses <* ssu\surface_style_usage.style\surface_side_style.styles | ( ( - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'SURFACE_STYLE_BOUNDARY' ) IN TYPEOF( sses ) ) ) | ( NOT ( + | ( NOT ( SIZEOF( QUERY ( ssbd <* QUERY ( sses <* ssu\surface_style_usage.style\surface_side_style.styles | ( ( + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'SURFACE_STYLE_BOUNDARY' ) IN TYPEOF( sses ) ) ) | ( NOT ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CURVE_STYLE' IN TYPEOF( ssbd\surface_style_boundary. - style_of_boundary ) ) AND ( SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COLOUR_RGB', + style_of_boundary ) ) AND ( SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COLOUR_RGB', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'DRAUGHTING_PRE_DEFINED_COLOUR'] * TYPEOF( ssbd\ - surface_style_boundary.style_of_boundary\curve_style.curve_colour ) ) = 1 ) AND ( ( + surface_style_boundary.style_of_boundary\curve_style.curve_colour ) ) = 1 ) AND ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'POSITIVE_LENGTH_MEASURE' ) IN TYPEOF( ssbd\ surface_style_boundary.style_of_boundary\curve_style.curve_width ) ) AND ( SIZEOF( [ - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CURVE_STYLE_FONT' , + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CURVE_STYLE_FONT' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'DRAUGHTING_PRE_DEFINED_CURVE_FONT'] * TYPEOF( ssbd\ - surface_style_boundary.style_of_boundary\curve_style.curve_font ) ) = 1 ) ) ) ) ) = 0 ) ) ) ) = 0 ) ) ) ) = 0 ) ) ) ) + surface_style_boundary.style_of_boundary\curve_style.curve_font ) ) = 1 ) ) ) ) ) = 0 ) ) ) ) = 0 ) ) ) ) = 0 ) ) ) ) = 0 ); END_ENTITY; @@ -12736,43 +13539,43 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; SUBTYPE OF ( presentation_area ); SELF\representation.items : SET [1 : ?] OF mechanical_design_shaded_presentation_area_items; WHERE - wr1: ( SIZEOF( QUERY ( it1 <* SELF.items | ( NOT ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.AXIS2_PLACEMENT' IN - TYPEOF( it1 ) ) OR ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MAPPED_ITEM' IN TYPEOF( it1 ) ) AND ( + wr1: ( SIZEOF( QUERY ( it1 <* SELF.items | ( NOT ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.AXIS2_PLACEMENT' IN + TYPEOF( it1 ) ) OR ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MAPPED_ITEM' IN TYPEOF( it1 ) ) AND ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRESENTATION_VIEW' IN TYPEOF( it1\mapped_item.mapping_source. mapped_representation ) ) ) ) ) ) ) = 0 ); wr2: ( SIZEOF( QUERY ( pv <* QUERY ( mi1 <* QUERY ( it1 <* SELF.items | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'MAPPED_ITEM' IN TYPEOF( it1 ) ) ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRESENTATION_VIEW' IN + + 'MAPPED_ITEM' IN TYPEOF( it1 ) ) ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRESENTATION_VIEW' IN TYPEOF( mi1\mapped_item.mapping_source.mapped_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it2 <* pv\mapped_item. - mapping_source.mapped_representation\representation.items | ( ( NOT ( ( - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.AXIS2_PLACEMENT' IN TYPEOF( it2 ) ) OR ( ( - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MAPPED_ITEM' IN TYPEOF( it2 ) ) AND ( NOT ( ( - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'CAMERA_IMAGE_3D_WITH_SCALE' ) IN TYPEOF( it2 ) ) ) AND ( + mapping_source.mapped_representation\representation.items | ( ( NOT ( ( + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.AXIS2_PLACEMENT' IN TYPEOF( it2 ) ) OR ( ( + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MAPPED_ITEM' IN TYPEOF( it2 ) ) AND ( NOT ( ( + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'CAMERA_IMAGE_3D_WITH_SCALE' ) IN TYPEOF( it2 ) ) ) AND ( NOT ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRESENTATION_VIEW' IN TYPEOF( it2\mapped_item.mapping_source - .mapped_representation ) ) ) ) ) ) OR ( ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + - 'CAMERA_IMAGE_3D_WITH_SCALE' ) IN TYPEOF( it2 ) ) AND ( NOT ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + .mapped_representation ) ) ) ) ) ) OR ( ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + + 'CAMERA_IMAGE_3D_WITH_SCALE' ) IN TYPEOF( it2 ) ) AND ( NOT ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'MECHANICAL_DESIGN_SHADED_PRESENTATION_REPRESENTATION' ) IN TYPEOF( it2\mapped_item.mapping_source. mapped_representation ) ) ) ) ) ) ) = 0 ) ) ) ) = 0 ); wr3: ( ( SIZEOF( QUERY ( ps <* USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PRESENTATION_SIZE.UNIT' ) - | ( NOT ( ( ps\presentation_size.size.size_in_x > 0 ) AND ( ps\presentation_size.size.size_in_y > 0 ) ) ) ) ) = 0 ) - AND ( SIZEOF( QUERY ( pset <* QUERY ( ais <* USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + - 'AREA_IN_SET.AREA' ) | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PRESENTATION_SET' ) IN TYPEOF( - ais.in_set ) ) ) | ( SIZEOF( QUERY ( ps <* USEDIN( pset, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + + | ( NOT ( ( ps\presentation_size.size.size_in_x > 0 ) AND ( ps\presentation_size.size.size_in_y > 0 ) ) ) ) ) = 0 ) + AND ( SIZEOF( QUERY ( pset <* QUERY ( ais <* USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + + 'AREA_IN_SET.AREA' ) | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PRESENTATION_SET' ) IN TYPEOF( + ais.in_set ) ) ) | ( SIZEOF( QUERY ( ps <* USEDIN( pset, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PRESENTATION_SIZE.UNIT' ) | ( NOT ( ( ps\presentation_size.size.size_in_x > 0 ) AND ( ps\presentation_size.size. size_in_y > 0 ) ) ) ) ) = 0 ) ) ) = 0 ) ); wr4: ( ( SIZEOF( QUERY ( psize <* USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PRESENTATION_SIZE.' + 'UNIT' ) | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'AXIS2_PLACEMENT_2D' ) IN TYPEOF( psize. - size.placement ) ) ) ) = 1 ) AND ( SIZEOF( QUERY ( pset <* QUERY ( ais <* USEDIN( SELF, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'AREA_IN_SET.AREA' ) | ( ( - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PRESENTATION_SET' ) IN TYPEOF( ais.in_set ) ) ) | ( + size.placement ) ) ) ) = 1 ) AND ( SIZEOF( QUERY ( pset <* QUERY ( ais <* USEDIN( SELF, + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'AREA_IN_SET.AREA' ) | ( ( + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PRESENTATION_SET' ) IN TYPEOF( ais.in_set ) ) ) | ( SIZEOF( QUERY ( psize <* USEDIN( pset, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PRESENTATION_SIZE.UNIT' ) | ( NOT ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'AXIS2_PLACEMENT_2D' ) IN TYPEOF( psize.size. placement ) ) ) ) ) = 0 ) ) ) = 0 ) ); wr5: ( SIZEOF( QUERY ( pv <* QUERY ( mi1 <* QUERY ( it1 <* SELF.items | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'MAPPED_ITEM' IN TYPEOF( it1 ) ) ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRESENTATION_VIEW' IN + + 'MAPPED_ITEM' IN TYPEOF( it1 ) ) ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRESENTATION_VIEW' IN TYPEOF( mi1\mapped_item.mapping_source.mapped_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( ci <* pv\mapped_item. - mapping_source.mapped_representation\representation.items | ( ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'CAMERA_IMAGE_3D_WITH_SCALE' ) IN TYPEOF( ci ) ) AND ( SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'CAMERA_MODEL_D3', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'CAMERA_MODEL_D3_WITH_HLHSR', + mapping_source.mapped_representation\representation.items | ( ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + + 'CAMERA_IMAGE_3D_WITH_SCALE' ) IN TYPEOF( ci ) ) AND ( SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + + 'CAMERA_MODEL_D3', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'CAMERA_MODEL_D3_WITH_HLHSR', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'CAMERA_MODEL_WITH_LIGHT_SOURCES'] * TYPEOF( ci\mapped_item. mapping_source.mapping_origin ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ); END_ENTITY; @@ -12782,172 +13585,172 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; SELF\representation.items : SET [1 : ?] OF mechanical_design_shaded_presentation_representation_items; WHERE wr1 : ( SIZEOF( QUERY ( mi <* QUERY ( it <* SELF.items | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MAPPED_ITEM' IN - TYPEOF( it ) ) ) | ( NOT ( SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'SHAPE_REPRESENTATION', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'MECHANICAL_DESIGN_SHADED_PRESENTATION_REPRESENTATION'] * + TYPEOF( it ) ) ) | ( NOT ( SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'SHAPE_REPRESENTATION', + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'MECHANICAL_DESIGN_SHADED_PRESENTATION_REPRESENTATION'] * TYPEOF( mi\mapped_item.mapping_source.mapped_representation ) ) = 1 ) ) ) ) = 0 ); wr2 : ( SIZEOF( QUERY ( smi <* QUERY ( si <* QUERY ( it <* SELF.items | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'STYLED_ITEM' IN TYPEOF( it ) ) ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MAPPED_ITEM' IN - TYPEOF( si\styled_item.item ) ) ) | ( NOT ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + - 'SHAPE_REPRESENTATION' ) IN TYPEOF( smi\styled_item.item\mapped_item.mapping_source.mapped_representation ) ) ) ) ) + + 'STYLED_ITEM' IN TYPEOF( it ) ) ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MAPPED_ITEM' IN + TYPEOF( si\styled_item.item ) ) ) | ( NOT ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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 | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.STYLED_ITEM' IN TYPEOF( it ) ) ) | ( NOT ( SIZEOF( QUERY ( psa <* si\styled_item.styles | ( NOT ( SIZEOF( QUERY ( pss <* psa. - styles | ( NOT ( SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POINT_STYLE', + styles | ( NOT ( SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POINT_STYLE', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CURVE_STYLE' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'SURFACE_STYLE_USAGE' ] * TYPEOF( pss ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ) ) ) ) = 0 ); wr4 : ( SIZEOF( QUERY ( si <* QUERY ( it <* SELF.items | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.STYLED_ITEM' IN - TYPEOF( it ) ) ) | ( NOT ( SIZEOF( QUERY ( psbc <* QUERY ( psa <* si\styled_item.styles | ( ( - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PRESENTATION_STYLE_BY_CONTEXT' ) IN TYPEOF( psa ) ) ) | ( - NOT ( SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.REPRESENTATION_ITEM', + TYPEOF( it ) ) ) | ( NOT ( SIZEOF( QUERY ( psbc <* QUERY ( psa <* si\styled_item.styles | ( ( + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PRESENTATION_STYLE_BY_CONTEXT' ) IN TYPEOF( psa ) ) ) | ( + NOT ( SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.REPRESENTATION_ITEM', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.REPRESENTATION' ] * TYPEOF( psbc\presentation_style_by_context. style_context ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ); wr5 : ( SIZEOF( QUERY ( si <* QUERY ( it <* SELF.items | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.STYLED_ITEM' IN - TYPEOF( it ) ) ) | ( NOT ( SIZEOF( QUERY ( psa <* si\styled_item.styles | ( NOT ( SIZEOF( QUERY ( ps <* + TYPEOF( it ) ) ) | ( NOT ( SIZEOF( QUERY ( psa <* si\styled_item.styles | ( NOT ( SIZEOF( QUERY ( ps <* QUERY ( pss <* psa.styles | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POINT_STYLE' IN TYPEOF( pss ) ) ) | ( NOT ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MARKER_TYPE' IN TYPEOF( ps\point_style.marker ) ) AND - ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POSITIVE_LENGTH_MEASURE' IN TYPEOF( ps\point_style.marker_size ) ) - AND ( SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COLOUR_RGB', + ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POSITIVE_LENGTH_MEASURE' IN TYPEOF( ps\point_style.marker_size ) ) + AND ( SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COLOUR_RGB', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'DRAUGHTING_PRE_DEFINED_COLOUR'] * TYPEOF( ps\point_style. marker_colour ) ) = 1 ) ) ) ) ) = 0 ) ) ) ) = 0 ) ) ) ) = 0 ); wr6 : ( SIZEOF( QUERY ( si <* QUERY ( it <* SELF.items | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.STYLED_ITEM' IN - TYPEOF( it ) ) ) | ( NOT ( SIZEOF( QUERY ( psa <* si\styled_item.styles | ( NOT ( SIZEOF( QUERY ( cs <* + TYPEOF( it ) ) ) | ( NOT ( SIZEOF( QUERY ( psa <* si\styled_item.styles | ( NOT ( SIZEOF( QUERY ( cs <* QUERY ( pss <* psa.styles | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CURVE_STYLE' IN TYPEOF( pss ) ) ) - | ( NOT ( ( SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COLOUR_RGB', + | ( NOT ( ( SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COLOUR_RGB', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'DRAUGHTING_PRE_DEFINED_COLOUR'] * TYPEOF( cs\curve_style. - curve_colour ) ) = 1 ) AND ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POSITIVE_LENGTH_MEASURE' IN TYPEOF( - cs\curve_style.curve_width ) ) AND ( SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + - 'CURVE_STYLE_FONT' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'DRAUGHTING_PRE_DEFINED_CURVE_FONT'] * + curve_colour ) ) = 1 ) AND ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POSITIVE_LENGTH_MEASURE' IN TYPEOF( + cs\curve_style.curve_width ) ) AND ( SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + + 'CURVE_STYLE_FONT' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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 | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.STYLED_ITEM' IN - TYPEOF( it ) ) ) | ( NOT ( SIZEOF( QUERY ( psa <* si\styled_item.styles | ( NOT ( SIZEOF( QUERY ( ssu <* + TYPEOF( it ) ) ) | ( NOT ( SIZEOF( QUERY ( psa <* si\styled_item.styles | ( NOT ( SIZEOF( QUERY ( ssu <* QUERY ( pss <* psa.styles | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SURFACE_STYLE_USAGE' IN TYPEOF( pss ) ) ) | ( NOT ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SURFACE_SIDE_STYLE' IN TYPEOF( ssu\surface_style_usage. style ) ) ) ) ) = 0 ) ) ) ) = 0 ) ) ) ) = 0 ); wr8 : ( SIZEOF( QUERY ( si <* QUERY ( it <* SELF.items | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.STYLED_ITEM' IN - TYPEOF( it ) ) ) | ( NOT ( SIZEOF( QUERY ( psa <* si\styled_item.styles | ( NOT ( SIZEOF( QUERY ( ssu <* + TYPEOF( it ) ) ) | ( NOT ( SIZEOF( QUERY ( psa <* si\styled_item.styles | ( NOT ( SIZEOF( QUERY ( ssu <* QUERY ( pss <* psa.styles | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SURFACE_STYLE_USAGE' IN TYPEOF( pss ) ) ) | ( NOT ( SIZEOF( QUERY ( sses <* ssu\surface_style_usage.style\surface_side_style.styles | ( NOT ( SIZEOF( [ - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'SURFACE_STYLE_PARAMETER_LINE', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'SURFACE_STYLE_CONTROL_GRID', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'SURFACE_STYLE_SILHOUETTE', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'SURFACE_STYLE_SEGMENTATION_CURVE', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'SURFACE_STYLE_BOUNDARY', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'SURFACE_STYLE_FILL_AREA', + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'SURFACE_STYLE_PARAMETER_LINE', + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'SURFACE_STYLE_CONTROL_GRID', + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'SURFACE_STYLE_SILHOUETTE', + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'SURFACE_STYLE_SEGMENTATION_CURVE', + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'SURFACE_STYLE_BOUNDARY', + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'SURFACE_STYLE_FILL_AREA', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'SURFACE_STYLE_RENDERING'] * TYPEOF( sses ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ) ) ) ) = 0 ) ) ) ) = 0 ); wr9 : ( SIZEOF( QUERY ( si <* QUERY ( it <* SELF.items | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.STYLED_ITEM' IN - TYPEOF( it ) ) ) | ( NOT ( SIZEOF( QUERY ( psa <* si\styled_item.styles | ( NOT ( SIZEOF( QUERY ( ssu <* + TYPEOF( it ) ) ) | ( NOT ( SIZEOF( QUERY ( psa <* si\styled_item.styles | ( NOT ( SIZEOF( QUERY ( ssu <* QUERY ( pss <* psa.styles | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SURFACE_STYLE_USAGE' IN TYPEOF( pss ) ) ) - | ( NOT ( SIZEOF( QUERY ( ssfa <* QUERY ( sses <* ssu\surface_style_usage.style\surface_side_style.styles | ( - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SURFACE_STYLE_FILL_AREA' IN TYPEOF( sses ) ) ) | ( NOT ( - SIZEOF( QUERY ( fss <* ssfa\surface_style_fill_area.fill_area.fill_styles | ( NOT ( ( ( - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'FILL_AREA_STYLE_COLOUR' ) IN TYPEOF( fss ) ) AND ( - SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COLOUR_RGB', + | ( NOT ( SIZEOF( QUERY ( ssfa <* QUERY ( sses <* ssu\surface_style_usage.style\surface_side_style.styles | ( + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SURFACE_STYLE_FILL_AREA' IN TYPEOF( sses ) ) ) | ( NOT ( + SIZEOF( QUERY ( fss <* ssfa\surface_style_fill_area.fill_area.fill_styles | ( NOT ( ( ( + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'FILL_AREA_STYLE_COLOUR' ) IN TYPEOF( fss ) ) AND ( + SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COLOUR_RGB', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'DRAUGHTING_PRE_DEFINED_COLOUR'] * TYPEOF( fss\ fill_area_style_colour.fill_colour ) ) = 1 ) ) ) ) ) = 0 ) ) ) ) = 0 ) ) ) ) = 0 ) ) ) ) = 0 ) ) ) ) = 0 ); wr10: ( SIZEOF( QUERY ( si <* QUERY ( it <* SELF.items | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.STYLED_ITEM' IN - TYPEOF( it ) ) ) | ( NOT ( SIZEOF( QUERY ( psa <* si\styled_item.styles | ( NOT ( SIZEOF( QUERY ( ssu <* + TYPEOF( it ) ) ) | ( NOT ( SIZEOF( QUERY ( psa <* si\styled_item.styles | ( NOT ( SIZEOF( QUERY ( ssu <* QUERY ( pss <* psa.styles | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SURFACE_STYLE_USAGE' IN TYPEOF( pss ) ) ) - | ( NOT ( SIZEOF( QUERY ( sspl <* QUERY ( sses <* ssu\surface_style_usage.style\surface_side_style.styles | ( ( - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'SURFACE_STYLE_PARAMETER_LINE' ) IN TYPEOF( sses ) ) ) | ( + | ( NOT ( SIZEOF( QUERY ( sspl <* QUERY ( sses <* ssu\surface_style_usage.style\surface_side_style.styles | ( ( + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'SURFACE_STYLE_PARAMETER_LINE' ) IN TYPEOF( sses ) ) ) | ( NOT ( ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CURVE_STYLE' IN TYPEOF( sspl\ surface_style_parameter_line.style_of_parameter_lines ) ) AND ( SIZEOF( [ - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COLOUR_RGB' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COLOUR_RGB' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'DRAUGHTING_PRE_DEFINED_COLOUR'] * TYPEOF( sspl\surface_style_parameter_line.style_of_parameter_lines\ - curve_style.curve_colour ) ) = 1 ) AND ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POSITIVE_LENGTH_MEASURE' + curve_style.curve_colour ) ) = 1 ) AND ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POSITIVE_LENGTH_MEASURE' IN TYPEOF( sspl\surface_style_parameter_line.style_of_parameter_lines\curve_style.curve_width ) ) AND ( SIZEOF( [ - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'CURVE_STYLE_FONT', + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'CURVE_STYLE_FONT', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'DRAUGHTING_PRE_DEFINED_CURVE_FONT'] * TYPEOF( sspl\ - surface_style_parameter_line.style_of_parameter_lines\curve_style.curve_font ) ) = 1 ) ) OR ( ( + surface_style_parameter_line.style_of_parameter_lines\curve_style.curve_font ) ) = 1 ) ) OR ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CURVE_STYLE_RENDERING' IN TYPEOF( sspl\ surface_style_parameter_line.style_of_parameter_lines ) ) AND ( SIZEOF( [ - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COLOUR_RGB' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COLOUR_RGB' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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 ) ) ) ) + curve_style_rendering.rendering_properties.rendered_colour ) ) = 1 ) ) ) ) ) ) = 0 ) ) ) ) = 0 ) ) ) ) = 0 ) ) ) ) = 0 ); wr11: ( SIZEOF( QUERY ( si <* QUERY ( it <* SELF.items | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.STYLED_ITEM' IN - TYPEOF( it ) ) ) | ( NOT ( SIZEOF( QUERY ( psa <* si\styled_item.styles | ( NOT ( SIZEOF( QUERY ( ssu <* + TYPEOF( it ) ) ) | ( NOT ( SIZEOF( QUERY ( psa <* si\styled_item.styles | ( NOT ( SIZEOF( QUERY ( ssu <* QUERY ( pss <* psa.styles | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SURFACE_STYLE_USAGE' IN TYPEOF( pss ) ) ) - | ( NOT ( SIZEOF( QUERY ( sscg <* QUERY ( sses <* ssu\surface_style_usage.style\surface_side_style.styles | ( ( - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'SURFACE_STYLE_CONTROL_GRID' ) IN TYPEOF( sses ) ) ) | ( + | ( NOT ( SIZEOF( QUERY ( sscg <* QUERY ( sses <* ssu\surface_style_usage.style\surface_side_style.styles | ( ( + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'SURFACE_STYLE_CONTROL_GRID' ) IN TYPEOF( sses ) ) ) | ( NOT ( ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CURVE_STYLE' IN TYPEOF( sscg\surface_style_control_grid - .style_of_control_grid ) ) AND ( SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COLOUR_RGB', + .style_of_control_grid ) ) AND ( SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COLOUR_RGB', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'DRAUGHTING_PRE_DEFINED_COLOUR'] * TYPEOF( sscg\ - surface_style_control_grid.style_of_control_grid\curve_style.curve_colour ) ) = 1 ) AND ( + surface_style_control_grid.style_of_control_grid\curve_style.curve_colour ) ) = 1 ) AND ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POSITIVE_LENGTH_MEASURE' IN TYPEOF( sscg\ surface_style_control_grid.style_of_control_grid\curve_style.curve_width ) ) AND ( SIZEOF( [ - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'CURVE_STYLE_FONT', + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'CURVE_STYLE_FONT', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'DRAUGHTING_PRE_DEFINED_CURVE_FONT'] * TYPEOF( sscg\ - surface_style_control_grid.style_of_control_grid\curve_style.curve_font ) ) = 1 ) ) OR ( ( + surface_style_control_grid.style_of_control_grid\curve_style.curve_font ) ) = 1 ) ) OR ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CURVE_STYLE_RENDERING' IN TYPEOF( sscg\ surface_style_control_grid.style_of_control_grid ) ) AND ( SIZEOF( [ - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COLOUR_RGB' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COLOUR_RGB' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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 ) ) ) ) + curve_style_rendering.rendering_properties.rendered_colour ) ) = 1 ) ) ) ) ) ) = 0 ) ) ) ) = 0 ) ) ) ) = 0 ) ) ) ) = 0 ); wr12: ( SIZEOF( QUERY ( si <* QUERY ( it <* SELF.items | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.STYLED_ITEM' IN - TYPEOF( it ) ) ) | ( NOT ( SIZEOF( QUERY ( psa <* si\styled_item.styles | ( NOT ( SIZEOF( QUERY ( ssu <* + TYPEOF( it ) ) ) | ( NOT ( SIZEOF( QUERY ( psa <* si\styled_item.styles | ( NOT ( SIZEOF( QUERY ( ssu <* QUERY ( pss <* psa.styles | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SURFACE_STYLE_USAGE' IN TYPEOF( pss ) ) ) - | ( NOT ( SIZEOF( QUERY ( sssh <* QUERY ( sses <* ssu\surface_style_usage.style\surface_side_style.styles | ( ( - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'SURFACE_STYLE_SILHOUETTE' ) IN TYPEOF( sses ) ) ) | ( NOT + | ( NOT ( SIZEOF( QUERY ( sssh <* QUERY ( sses <* ssu\surface_style_usage.style\surface_side_style.styles | ( ( + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'SURFACE_STYLE_SILHOUETTE' ) IN TYPEOF( sses ) ) ) | ( NOT ( ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CURVE_STYLE' IN TYPEOF( sssh\surface_style_silhouette. - style_of_silhouette ) ) AND ( SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COLOUR_RGB', + style_of_silhouette ) ) AND ( SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COLOUR_RGB', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'DRAUGHTING_PRE_DEFINED_COLOUR'] * TYPEOF( sssh\ - surface_style_silhouette.style_of_silhouette\curve_style.curve_colour ) ) = 1 ) AND ( + surface_style_silhouette.style_of_silhouette\curve_style.curve_colour ) ) = 1 ) AND ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POSITIVE_LENGTH_MEASURE' IN TYPEOF( sssh\ surface_style_silhouette.style_of_silhouette\curve_style.curve_width ) ) AND ( SIZEOF( [ - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'CURVE_STYLE_FONT', + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'CURVE_STYLE_FONT', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'DRAUGHTING_PRE_DEFINED_CURVE_FONT'] * TYPEOF( sssh\ - surface_style_silhouette.style_of_silhouette\curve_style.curve_font ) ) = 1 ) ) OR ( ( + surface_style_silhouette.style_of_silhouette\curve_style.curve_font ) ) = 1 ) ) OR ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CURVE_STYLE_RENDERING' IN TYPEOF( sssh\surface_style_silhouette - .style_of_silhouette ) ) AND ( SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COLOUR_RGB', + .style_of_silhouette ) ) AND ( SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COLOUR_RGB', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'DRAUGHTING_PRE_DEFINED_COLOUR'] * TYPEOF( sssh\ - surface_style_silhouette.style_of_silhouette\curve_style_rendering.rendering_properties.rendered_colour ) ) = 1 ) ) ) ) ) ) + surface_style_silhouette.style_of_silhouette\curve_style_rendering.rendering_properties.rendered_colour ) ) = 1 ) ) ) ) ) ) = 0 ) ) ) ) = 0 ) ) ) ) = 0 ) ) ) ) = 0 ); wr13: ( SIZEOF( QUERY ( si <* QUERY ( it <* SELF.items | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.STYLED_ITEM' IN - TYPEOF( it ) ) ) | ( NOT ( SIZEOF( QUERY ( psa <* si\styled_item.styles | ( NOT ( SIZEOF( QUERY ( ssu <* + TYPEOF( it ) ) ) | ( NOT ( SIZEOF( QUERY ( psa <* si\styled_item.styles | ( NOT ( SIZEOF( QUERY ( ssu <* QUERY ( pss <* psa.styles | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SURFACE_STYLE_USAGE' IN TYPEOF( pss ) ) ) - | ( NOT ( SIZEOF( QUERY ( sssc <* QUERY ( sses <* ssu\surface_style_usage.style\surface_side_style.styles | ( ( + | ( NOT ( SIZEOF( QUERY ( sssc <* QUERY ( sses <* ssu\surface_style_usage.style\surface_side_style.styles | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'SURFACE_STYLE_SEGMENTATION_CURVE' ) IN TYPEOF( sses ) ) ) | ( NOT ( ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CURVE_STYLE' IN TYPEOF( sssc\ surface_style_segmentation_curve.style_of_segmentation_curve ) ) AND ( SIZEOF( [ - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COLOUR_RGB' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COLOUR_RGB' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'DRAUGHTING_PRE_DEFINED_COLOUR'] * TYPEOF( sssc\surface_style_segmentation_curve.style_of_segmentation_curve\ - curve_style.curve_colour ) ) = 1 ) AND ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POSITIVE_LENGTH_MEASURE' - IN TYPEOF( sssc\surface_style_segmentation_curve.style_of_segmentation_curve\curve_style.curve_width ) ) AND ( - SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'CURVE_STYLE_FONT', + curve_style.curve_colour ) ) = 1 ) AND ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POSITIVE_LENGTH_MEASURE' + IN TYPEOF( sssc\surface_style_segmentation_curve.style_of_segmentation_curve\curve_style.curve_width ) ) AND ( + SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'CURVE_STYLE_FONT', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'DRAUGHTING_PRE_DEFINED_CURVE_FONT'] * TYPEOF( sssc\ - surface_style_segmentation_curve.style_of_segmentation_curve\curve_style.curve_font ) ) = 1 ) ) OR ( ( + surface_style_segmentation_curve.style_of_segmentation_curve\curve_style.curve_font ) ) = 1 ) ) OR ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CURVE_STYLE_RENDERING' IN TYPEOF( sssc\ surface_style_segmentation_curve.style_of_segmentation_curve ) ) AND ( SIZEOF( [ - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COLOUR_RGB' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COLOUR_RGB' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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 ) ) ) ) + curve_style_rendering.rendering_properties.rendered_colour ) ) = 1 ) ) ) ) ) ) = 0 ) ) ) ) = 0 ) ) ) ) = 0 ) ) ) ) = 0 ); wr14: ( SIZEOF( QUERY ( si <* QUERY ( it <* SELF.items | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.STYLED_ITEM' IN - TYPEOF( it ) ) ) | ( NOT ( SIZEOF( QUERY ( psa <* si\styled_item.styles | ( NOT ( SIZEOF( QUERY ( ssu <* + TYPEOF( it ) ) ) | ( NOT ( SIZEOF( QUERY ( psa <* si\styled_item.styles | ( NOT ( SIZEOF( QUERY ( ssu <* QUERY ( pss <* psa.styles | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SURFACE_STYLE_USAGE' IN TYPEOF( pss ) ) ) - | ( NOT ( SIZEOF( QUERY ( ssbd <* QUERY ( sses <* ssu\surface_style_usage.style\surface_side_style.styles | ( ( - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'SURFACE_STYLE_BOUNDARY' ) IN TYPEOF( sses ) ) ) | ( NOT ( + | ( NOT ( SIZEOF( QUERY ( ssbd <* QUERY ( sses <* ssu\surface_style_usage.style\surface_side_style.styles | ( ( + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'SURFACE_STYLE_BOUNDARY' ) IN TYPEOF( sses ) ) ) | ( NOT ( ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CURVE_STYLE' IN TYPEOF( ssbd\surface_style_boundary. - style_of_boundary ) ) AND ( SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COLOUR_RGB', + style_of_boundary ) ) AND ( SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COLOUR_RGB', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'DRAUGHTING_PRE_DEFINED_COLOUR'] * TYPEOF( ssbd\ - surface_style_boundary.style_of_boundary\curve_style.curve_colour ) ) = 1 ) AND ( + surface_style_boundary.style_of_boundary\curve_style.curve_colour ) ) = 1 ) AND ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POSITIVE_LENGTH_MEASURE' IN TYPEOF( ssbd\surface_style_boundary - .style_of_boundary\curve_style.curve_width ) ) AND ( SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'CURVE_STYLE_FONT', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'DRAUGHTING_PRE_DEFINED_CURVE_FONT'] * - TYPEOF( ssbd\surface_style_boundary.style_of_boundary\curve_style.curve_font ) ) = 1 ) ) OR ( ( + .style_of_boundary\curve_style.curve_width ) ) AND ( SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + + 'CURVE_STYLE_FONT', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'DRAUGHTING_PRE_DEFINED_CURVE_FONT'] * + TYPEOF( ssbd\surface_style_boundary.style_of_boundary\curve_style.curve_font ) ) = 1 ) ) OR ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CURVE_STYLE_RENDERING' IN TYPEOF( ssbd\surface_style_boundary. - style_of_boundary ) ) AND ( SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COLOUR_RGB', + style_of_boundary ) ) AND ( SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COLOUR_RGB', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'DRAUGHTING_PRE_DEFINED_COLOUR'] * TYPEOF( ssbd\ - surface_style_boundary.style_of_boundary\curve_style_rendering.rendering_properties.rendered_colour ) ) = 1 ) ) ) ) ) ) + surface_style_boundary.style_of_boundary\curve_style_rendering.rendering_properties.rendered_colour ) ) = 1 ) ) ) ) ) ) = 0 ) ) ) ) = 0 ) ) ) ) = 0 ) ) ) ) = 0 ); wr15: ( SIZEOF( QUERY ( si <* QUERY ( it <* SELF.items | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.STYLED_ITEM' IN - TYPEOF( it ) ) ) | ( NOT ( SIZEOF( QUERY ( psa <* si\styled_item.styles | ( NOT ( SIZEOF( QUERY ( ssu <* + TYPEOF( it ) ) ) | ( NOT ( SIZEOF( QUERY ( psa <* si\styled_item.styles | ( NOT ( SIZEOF( QUERY ( ssu <* QUERY ( pss <* psa.styles | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SURFACE_STYLE_USAGE' IN TYPEOF( pss ) ) ) - | ( NOT ( SIZEOF( QUERY ( ssre <* QUERY ( sses <* ssu\surface_style_usage.style\surface_side_style.styles | ( ( - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'SURFACE_STYLE_RENDERING' ) IN TYPEOF( sses ) ) ) | ( NOT - ( SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COLOUR_RGB', + | ( NOT ( SIZEOF( QUERY ( ssre <* QUERY ( sses <* ssu\surface_style_usage.style\surface_side_style.styles | ( ( + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'SURFACE_STYLE_RENDERING' ) IN TYPEOF( sses ) ) ) | ( NOT + ( SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COLOUR_RGB', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'DRAUGHTING_PRE_DEFINED_COLOUR'] * TYPEOF( ssre\ surface_style_rendering.surface_colour ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ) ) ) ) = 0 ) ) ) ) = 0 ); END_ENTITY; @@ -12960,12 +13763,12 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; DERIVE represented_joints : SET [1 : ?] OF kinematic_joint := collect_joints( items ); WHERE - wr1: ( ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.KINEMATIC_TOPOLOGY_STRUCTURE' IN TYPEOF( represented_topology ) ) + wr1: ( ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.KINEMATIC_TOPOLOGY_STRUCTURE' IN TYPEOF( represented_topology ) ) AND ( represented_joints :=: represented_topology.items ) ) OR ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'KINEMATIC_TOPOLOGY_DIRECTED_STRUCTURE' IN TYPEOF( represented_topology ) ) AND ( represented_joints :=: - get_kinematic_joints_from_oriented_joints( represented_topology.items ) ) ) OR ( ( - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.KINEMATIC_TOPOLOGY_NETWORK_STRUCTURE' IN TYPEOF( - represented_topology ) ) AND ( represented_joints :=: get_kinematic_joints_from_kinematic_loops( + + 'KINEMATIC_TOPOLOGY_DIRECTED_STRUCTURE' IN TYPEOF( represented_topology ) ) AND ( represented_joints :=: + get_kinematic_joints_from_oriented_joints( represented_topology.items ) ) ) OR ( ( + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.KINEMATIC_TOPOLOGY_NETWORK_STRUCTURE' IN TYPEOF( + represented_topology ) ) AND ( represented_joints :=: get_kinematic_joints_from_kinematic_loops( represented_topology.items ) ) ) ); END_ENTITY; @@ -13013,32 +13816,41 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; wr1: ( SIZEOF( QUERY ( fcr <* QUERY ( sar <* USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'SHAPE_ASPECT_RELATIONSHIP.RELATING_SHAPE_ASPECT' ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF( sar ) ) ) | ( ( SIZEOF( [ - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.REPLICATE_FEATURE' , + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.REPLICATE_FEATURE' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.INSTANCED_FEATURE' ] * TYPEOF( fcr.related_shape_aspect.of_shape. definition ) ) >= 1 ) AND ( fcr.description = 'base shape' ) ) ) ) = 1 ); wr2: ( SIZEOF( QUERY ( fcr <* QUERY ( sar <* USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'SHAPE_ASPECT_RELATIONSHIP.RELATING_SHAPE_ASPECT' ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF( sar ) ) ) | ( ( SIZEOF( [ - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CIRCULAR_PATTERN' , + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CIRCULAR_PATTERN' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.RECTANGULAR_PATTERN' ] * TYPEOF( fcr.related_shape_aspect. of_shape.definition ) ) = 1 ) AND ( fcr.description = 'base pattern' ) ) ) ) = 1 ); wr3: ( SIZEOF( QUERY ( sar <* USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.' - + 'RELATING_SHAPE_ASPECT' ) | ( SIZEOF( QUERY ( msar <* USEDIN( sar.related_shape_aspect, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT' ) | ( ( SIZEOF( - [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PATTERN_OFFSET_MEMBERSHIP', + + 'RELATING_SHAPE_ASPECT' ) | ( SIZEOF( QUERY ( msar <* USEDIN( sar.related_shape_aspect, + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT' ) | ( ( SIZEOF( + [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PATTERN_OFFSET_MEMBERSHIP', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PATTERN_OMIT_MEMBERSHIP' ] * TYPEOF( sar ) ) = 1 ) AND ( sar. description = 'modified pattern' ) AND ( sar :<>: msar ) ) ) ) >= 1 ) ) ) = 0 ); END_ENTITY; ENTITY modified_solid - ABSTRACT SUPERTYPE OF ( ONEOF ( edge_blended_solid, sculptured_solid, shelled_solid, modified_solid_with_placed_configuration ) ) + 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 ) ) + 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; @@ -13050,12 +13862,12 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; ENTITY moments_of_inertia_representation SUBTYPE OF ( representation ); WHERE - wr1: ( ( SIZEOF( SELF.items ) = 1 ) AND ( SIZEOF( QUERY ( i <* SELF.items | ( ( ( + wr1: ( ( SIZEOF( SELF.items ) = 1 ) AND ( SIZEOF( QUERY ( i <* SELF.items | ( ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'COMPOUND_REPRESENTATION_ITEM' ) IN TYPEOF( i ) ) AND ( i. name = 'moments of inertia matrix' ) ) ) ) = 1 ) ); - wr2: ( SIZEOF( QUERY ( i <* SELF.items | ( ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + - 'COMPOUND_REPRESENTATION_ITEM' ) IN TYPEOF( i ) ) AND ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + - 'LIST_REPRESENTATION_ITEM' ) IN TYPEOF( i\compound_representation_item.item_element ) ) AND + wr2: ( SIZEOF( QUERY ( i <* SELF.items | ( ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + + 'COMPOUND_REPRESENTATION_ITEM' ) IN TYPEOF( i ) ) AND ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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; @@ -13072,15 +13884,15 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; 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 = + 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, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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 ) ) ) + attribute_value_assignment.attribute_name ) AND ( ata.translation_language :=: translation_language ) ) ) ) > 1 ) ) ) = 0 ); wr5: ( SIZEOF( QUERY ( ci <* items | ( SIZEOF( QUERY ( ata <* USEDIN( ci, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS' ) | ( ( ata\attribute_classification_assignment.role.name = 'primary' ) + + '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; @@ -13091,7 +13903,7 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; DERIVE SELF\product_definition_relationship.relating_product_definition : product_definition := location[1]\ product_definition_relationship.relating_product_definition; - SELF\product_definition_relationship.related_product_definition : product_definition_or_reference := location[HIINDEX( + SELF\product_definition_relationship.related_product_definition : product_definition_or_reference := location[HIINDEX( location )]\product_definition_relationship.related_product_definition; leaf : product_definition_or_reference := SELF\product_definition_relationship. related_product_definition; @@ -13103,13 +13915,19 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; END_ENTITY; ENTITY multiple_arity_boolean_expression - ABSTRACT SUPERTYPE OF ( ONEOF ( and_expression, or_expression ) ) + ABSTRACT SUPERTYPE OF ( + ONEOF ( + and_expression, + or_expression ) ) SUBTYPE OF ( boolean_expression, multiple_arity_generic_expression ); SELF\multiple_arity_generic_expression.operands : LIST [2 : ?] OF boolean_expression; END_ENTITY; ENTITY multiple_arity_function_call - ABSTRACT SUPERTYPE OF ( ONEOF ( maximum_function, minimum_function ) ) + ABSTRACT SUPERTYPE OF ( + ONEOF ( + maximum_function, + minimum_function ) ) SUBTYPE OF ( multiple_arity_numeric_expression ); END_ENTITY; @@ -13120,7 +13938,11 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; END_ENTITY; ENTITY multiple_arity_numeric_expression - ABSTRACT SUPERTYPE OF ( ONEOF ( plus_expression, mult_expression, multiple_arity_function_call ) ) + ABSTRACT SUPERTYPE OF ( + ONEOF ( + plus_expression, + mult_expression, + multiple_arity_function_call ) ) SUBTYPE OF ( numeric_expression, multiple_arity_generic_expression ); SELF\multiple_arity_generic_expression.operands : LIST [2 : ?] OF numeric_expression; END_ENTITY; @@ -13130,11 +13952,11 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; WHERE wr1: ( ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'SHAPE_DATA_QUALITY_UPPER_VALUE_LIMIT' ) IN TYPEOF( SELF\ - shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold ) ) + shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold ) ) AND ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE' IN value_limit_type( SELF\ shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold ) ) ); wr2: validate_measured_data_type( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE' ); - wr3: validate_inspected_elements_type( SELF, [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CARTESIAN_POINT', + wr3: validate_inspected_elements_type( SELF, [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CARTESIAN_POINT', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CARTESIAN_POINT' ] ); wr4: validate_locations_of_extreme_value_type( SELF, [] ); wr5: validate_accuracy_types( SELF, [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE'] ); @@ -13145,11 +13967,11 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; WHERE wr1: ( ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'SHAPE_DATA_QUALITY_UPPER_VALUE_LIMIT' ) IN TYPEOF( SELF\ - shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold ) ) + shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold ) ) AND ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE' IN value_limit_type( SELF\ shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold ) ) ); wr2: validate_measured_data_type( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE' ); - wr3: validate_inspected_elements_type( SELF, [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CURVE', + wr3: validate_inspected_elements_type( SELF, [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CURVE', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CURVE' ] ); wr4: validate_locations_of_extreme_value_type( SELF, [] ); wr5: validate_accuracy_types( SELF, [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE'] ); @@ -13160,11 +13982,11 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; WHERE wr1: ( ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'SHAPE_DATA_QUALITY_UPPER_VALUE_LIMIT' ) IN TYPEOF( SELF\ - shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold ) ) + shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold ) ) AND ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANE_ANGLE_MEASURE' IN value_limit_type( SELF\ shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold ) ) ); wr2: validate_measured_data_type( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANE_ANGLE_MEASURE' ); - wr3: validate_inspected_elements_type( SELF, [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DIRECTION', + wr3: validate_inspected_elements_type( SELF, [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DIRECTION', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DIRECTION' ] ); wr4: validate_locations_of_extreme_value_type( SELF, [] ); wr5: validate_accuracy_types( SELF, [] ); @@ -13175,11 +13997,11 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; WHERE wr1: ( ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'SHAPE_DATA_QUALITY_UPPER_VALUE_LIMIT' ) IN TYPEOF( SELF\ - shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold ) ) + shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold ) ) AND ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE' IN value_limit_type( SELF\ shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold ) ) ); wr2: validate_measured_data_type( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE' ); - wr3: validate_inspected_elements_type( SELF, [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EDGE_CURVE', + wr3: validate_inspected_elements_type( SELF, [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EDGE_CURVE', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EDGE_CURVE' ] ); wr4: validate_locations_of_extreme_value_type( SELF, [] ); wr5: validate_accuracy_types( SELF, [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE'] ); @@ -13190,19 +14012,24 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; WHERE wr1: ( ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'SHAPE_DATA_QUALITY_UPPER_VALUE_LIMIT' ) IN TYPEOF( SELF\ - shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold ) ) + shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold ) ) AND ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE' IN value_limit_type( SELF\ shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold ) ) ); wr2: validate_measured_data_type( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE' ); - wr3: validate_inspected_elements_type( SELF, [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FACE_SURFACE', + wr3: validate_inspected_elements_type( SELF, [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FACE_SURFACE', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FACE_SURFACE' ] ); wr4: validate_locations_of_extreme_value_type( SELF, [] ); wr5: validate_accuracy_types( SELF, [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE'] ); END_ENTITY; ENTITY multiply_defined_geometry - ABSTRACT SUPERTYPE OF ( ONEOF ( multiply_defined_curves, multiply_defined_surfaces, multiply_defined_cartesian_points, - multiply_defined_directions, multiply_defined_placements ) ) + ABSTRACT SUPERTYPE OF ( + ONEOF ( + multiply_defined_curves, + multiply_defined_surfaces, + multiply_defined_cartesian_points, + multiply_defined_directions, + multiply_defined_placements ) ) SUBTYPE OF ( inapt_geometry ); END_ENTITY; @@ -13212,24 +14039,24 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; assessment_specification_2 : shape_data_quality_assessment_by_numerical_test; WHERE wr1: ( ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'SHAPE_DATA_QUALITY_UPPER_VALUE_LIMIT' ) IN TYPEOF( SELF\ - shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold ) ) + shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold ) ) AND ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE' IN value_limit_type( SELF\ shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold ) ) ); - wr2: ( ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'SHAPE_DATA_QUALITY_UPPER_VALUE_LIMIT' ) IN TYPEOF( - assessment_specification_2\shape_data_quality_assessment_by_numerical_test.threshold ) ) AND ( - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANE_ANGLE_MEASURE' IN value_limit_type( + wr2: ( ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'SHAPE_DATA_QUALITY_UPPER_VALUE_LIMIT' ) IN TYPEOF( + assessment_specification_2\shape_data_quality_assessment_by_numerical_test.threshold ) ) AND ( + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANE_ANGLE_MEASURE' IN value_limit_type( assessment_specification_2\shape_data_quality_assessment_by_numerical_test.threshold ) ) ); wr3: validate_measured_data_type( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PLANE_ANGLE_AND_LENGTH_PAIR' ); - wr4: validate_inspected_elements_type( SELF, [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLACEMENT', + wr4: validate_inspected_elements_type( SELF, [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLACEMENT', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLACEMENT' ] ); wr5: validate_locations_of_extreme_value_type( SELF, [] ); wr6: validate_accuracy_types( SELF, [] ); - wr7: ( SIZEOF( QUERY ( sdqr <* bag_to_set( USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + - 'DATA_QUALITY_INSPECTION_RESULT.' + 'CRITERION_INSPECTED' ) ) | ( ( ( - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'SHAPE_DATA_QUALITY_INSPECTION_RESULT' ) IN TYPEOF( sdqr ) ) - AND ( SIZEOF( QUERY ( sdqiir <* bag_to_set( USEDIN( sdqr, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + - 'DATA_QUALITY_INSPECTION_REPORT.' + 'INSPECTION_RESULT' ) ) | ( ( ( - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'SHAPE_DATA_QUALITY_INSPECTION_INSTANCE_REPORT' ) IN + wr7: ( SIZEOF( QUERY ( sdqr <* bag_to_set( USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + + 'DATA_QUALITY_INSPECTION_RESULT.' + 'CRITERION_INSPECTED' ) ) | ( ( ( + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'SHAPE_DATA_QUALITY_INSPECTION_RESULT' ) IN TYPEOF( sdqr ) ) + AND ( SIZEOF( QUERY ( sdqiir <* bag_to_set( USEDIN( sdqr, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + + 'DATA_QUALITY_INSPECTION_REPORT.' + 'INSPECTION_RESULT' ) ) | ( ( ( + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'SHAPE_DATA_QUALITY_INSPECTION_INSTANCE_REPORT' ) IN TYPEOF( sdqiir ) ) AND ( SIZEOF( QUERY ( sdqiri <* sdqiir.inspected_instances | ( TYPEOF( sdqiri.inspected_elements [1] ) <> TYPEOF( sdqiri.inspected_elements[2] ) ) ) ) = 0 ) ) ) ) = 0 ) ) ) ) = 0 ); END_ENTITY; @@ -13239,11 +14066,11 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; WHERE wr1: ( ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'SHAPE_DATA_QUALITY_UPPER_VALUE_LIMIT' ) IN TYPEOF( SELF\ - shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold ) ) + shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold ) ) AND ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE' IN value_limit_type( SELF\ shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold ) ) ); wr2: validate_measured_data_type( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE' ); - wr3: validate_inspected_elements_type( SELF, [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MANIFOLD_SOLID_BREP', + wr3: validate_inspected_elements_type( SELF, [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MANIFOLD_SOLID_BREP', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MANIFOLD_SOLID_BREP' ] ); wr4: validate_locations_of_extreme_value_type( SELF, [] ); wr5: validate_accuracy_types( SELF, [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE'] ); @@ -13254,11 +14081,11 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; WHERE wr1: ( ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'SHAPE_DATA_QUALITY_UPPER_VALUE_LIMIT' ) IN TYPEOF( SELF\ - shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold ) ) + shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold ) ) AND ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE' IN value_limit_type( SELF\ shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold ) ) ); wr2: validate_measured_data_type( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE' ); - wr3: validate_inspected_elements_type( SELF, [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SURFACE', + wr3: validate_inspected_elements_type( SELF, [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SURFACE', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SURFACE' ] ); wr4: validate_locations_of_extreme_value_type( SELF, [] ); wr5: validate_accuracy_types( SELF, [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE'] ); @@ -13269,11 +14096,11 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; WHERE wr1: ( ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'SHAPE_DATA_QUALITY_UPPER_VALUE_LIMIT' ) IN TYPEOF( SELF\ - shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold ) ) + shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold ) ) AND ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE' IN value_limit_type( SELF\ shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold ) ) ); wr2: validate_measured_data_type( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE' ); - wr3: validate_inspected_elements_type( SELF, [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.VERTEX_POINT', + wr3: validate_inspected_elements_type( SELF, [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.VERTEX_POINT', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.VERTEX_POINT' ] ); wr4: validate_locations_of_extreme_value_type( SELF, [] ); wr5: validate_accuracy_types( SELF, [] ); @@ -13285,7 +14112,7 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; DERIVE role : object_role := get_role( SELF ); WHERE - wr1: ( SIZEOF( USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'ROLE_ASSOCIATION.ITEM_WITH_ROLE' ) ) <= + wr1: ( SIZEOF( USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'ROLE_ASSOCIATION.ITEM_WITH_ROLE' ) ) <= 1 ); END_ENTITY; @@ -13295,9 +14122,24 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; 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 ) ); + 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; @@ -13308,7 +14150,7 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; WHERE wr1: validate_measured_data_type( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.BOOLEAN_VALUE' ); wr2: validate_inspected_elements_type( SELF, [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.B_SPLINE_SURFACE'] ); - wr3: validate_locations_of_extreme_value_type( SELF, [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + + wr3: validate_locations_of_extreme_value_type( SELF, [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'B_SPLINE_SURFACE_PATCH' ] ); wr4: validate_accuracy_types( SELF, [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE'] ); END_ENTITY; @@ -13320,7 +14162,11 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; END_ENTITY; ENTITY nearly_degenerate_geometry - ABSTRACT SUPERTYPE OF ( ONEOF ( small_area_surface, short_length_curve, entirely_narrow_surface ) ) + ABSTRACT SUPERTYPE OF ( + ONEOF ( + small_area_surface, + short_length_curve, + entirely_narrow_surface ) ) SUBTYPE OF ( inapt_geometry ); END_ENTITY; @@ -13329,13 +14175,13 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; WHERE wr1: ( ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'SHAPE_DATA_QUALITY_VALUE_RANGE' ) IN TYPEOF( SELF\ - shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold ) ) + shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold ) ) AND ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE' IN value_limit_type( SELF\ shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold ) ) ); wr2: validate_measured_data_type( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE' ); - wr3: validate_inspected_elements_type( SELF, [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + + wr3: validate_inspected_elements_type( SELF, [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'B_SPLINE_OR_RECTANGULAR_COMPOSITE_SURFACE_SELECT' ] ); - wr4: validate_locations_of_extreme_value_type( SELF, [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + + wr4: validate_locations_of_extreme_value_type( SELF, [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'BOUNDARY_CURVE_OF_B_SPLINE_OR_RECTANGULAR_COMPOSITE_SURFACE' ] ); wr5: validate_accuracy_types( SELF, [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE'] ); END_ENTITY; @@ -13345,12 +14191,12 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; WHERE wr1: ( ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'SHAPE_DATA_QUALITY_VALUE_RANGE' ) IN TYPEOF( SELF\ - shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold ) ) + shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold ) ) AND ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE' IN value_limit_type( SELF\ shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold ) ) ); wr2: validate_measured_data_type( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE' ); wr3: validate_inspected_elements_type( SELF, [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.B_SPLINE_SURFACE'] ); - wr4: validate_locations_of_extreme_value_type( SELF, [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + + wr4: validate_locations_of_extreme_value_type( SELF, [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'B_SPLINE_SURFACE_PATCH' ] ); wr5: validate_accuracy_types( SELF, [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE'] ); END_ENTITY; @@ -13367,7 +14213,7 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; ENTITY next_assembly_usage_occurrence SUBTYPE OF ( assembly_component_usage ); UNIQUE - ur1 : reference_designator, relating_product_definition; + ur1 : SELF\assembly_component_usage.reference_designator, SELF\product_definition_relationship.relating_product_definition; END_ENTITY; ENTITY ngon_closed_profile @@ -13382,25 +14228,25 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( ( SIZEOF( impl_rep. - used_representation.items ) >= 3 ) AND ( SIZEOF( impl_rep.used_representation.items ) <= 4 ) ) ) ) ) = 0 ) ) ) ) = + used_representation.items ) >= 3 ) AND ( SIZEOF( impl_rep.used_representation.items ) <= 4 ) ) ) ) ) = 0 ) ) ) ) = 0 ); wr4: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( SIZEOF( QUERY ( pdr <* USEDIN( pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) AND ( SIZEOF( QUERY ( srwp_i <* - pdr.used_representation.items | ( ( srwp_i.name = 'orientation' ) OR ( srwp_i.name = 'number of sides' ) OR ( - srwp_i.name = 'circumscribed diameter' ) OR ( srwp_i.name = 'corner radius' ) OR ( srwp_i.name = + + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) AND ( SIZEOF( QUERY ( srwp_i <* + pdr.used_representation.items | ( ( srwp_i.name = 'orientation' ) OR ( srwp_i.name = 'number of sides' ) OR ( + srwp_i.name = 'circumscribed diameter' ) OR ( srwp_i.name = 'corner radius' ) OR ( srwp_i.name = 'diameter across flats' ) ) ) ) = SIZEOF( pdr.used_representation.items ) ) ) ) ) = 1 ) ) ) = 1 ); wr5: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( - QUERY ( it <* impl_rep.used_representation.items | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLACEMENT' + + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( + QUERY ( it <* impl_rep.used_representation.items | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLACEMENT' IN TYPEOF( it ) ) AND ( it.name = 'orientation' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ); wr6: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( + + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'MEASURE_REPRESENTATION_ITEM' IN TYPEOF( it ) ) AND ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'COUNT_MEASURE' IN TYPEOF( it\measure_with_unit.value_component ) ) AND ( it.name = 'number of sides' ) ) ) ) = @@ -13408,17 +14254,17 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; wr7: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( + + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'MEASURE_REPRESENTATION_ITEM' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * - TYPEOF( it ) ) = 2 ) AND ( it.name IN [ 'circumscribed diameter', 'diameter across flats'] ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) + + 'MEASURE_REPRESENTATION_ITEM' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * + TYPEOF( it ) ) = 2 ) AND ( it.name IN [ 'circumscribed diameter', 'diameter across flats'] ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ); wr8: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( + + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'MEASURE_REPRESENTATION_ITEM' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * + + 'MEASURE_REPRESENTATION_ITEM' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF( it ) ) = 2 ) AND ( it.name = 'corner radius' ) ) ) ) <= 1 ) ) ) ) = 0 ) ) ) ) = 0 ); END_ENTITY; @@ -13467,16 +14313,16 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; SUBTYPE OF ( shape_representation ); WHERE wr1 : ( SIZEOF( QUERY ( it <* SELF.items | ( NOT ( SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'FACE_BASED_SURFACE_MODEL' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MAPPED_ITEM', + + 'FACE_BASED_SURFACE_MODEL' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MAPPED_ITEM', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.AXIS2_PLACEMENT_3D' ] * TYPEOF( it ) ) = 1 ) ) ) ) = 0 ); wr2 : ( SIZEOF( QUERY ( it <* SELF.items | ( SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'FACE_BASED_SURFACE_MODEL' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MAPPED_ITEM'] * TYPEOF( it ) ) = + + 'FACE_BASED_SURFACE_MODEL' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MAPPED_ITEM'] * TYPEOF( it ) ) = 1 ) ) ) > 0 ); wr3 : ( SIZEOF( QUERY ( mi <* QUERY ( it <* SELF.items | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MAPPED_ITEM' IN - TYPEOF( it ) ) ) | ( NOT ( ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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 | ( - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FACE_BASED_SURFACE_MODEL' IN TYPEOF( mr_it ) ) ) ) > 0 ) ) ) ) ) + TYPEOF( it ) ) ) | ( NOT ( ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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 | ( + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FACE_BASED_SURFACE_MODEL' IN TYPEOF( mr_it ) ) ) ) > 0 ) ) ) ) ) = 0 ); wr4 : ( SIZEOF( QUERY ( fbsm <* QUERY ( it <* SELF.items | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'FACE_BASED_SURFACE_MODEL' IN TYPEOF( it ) ) ) | ( NOT ( SIZEOF( QUERY ( cfs <* fbsm\face_based_surface_model. @@ -13485,92 +14331,92 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; + 'ORIENTED_FACE' ] * TYPEOF( fa ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ) ) ) ) = 0 ); wr5 : ( SIZEOF( QUERY ( fbsm <* QUERY ( it <* SELF.items | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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 | ( - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FACE_SURFACE' IN TYPEOF( fa ) ) ) | ( NOT ( ( + fbsm_faces | ( NOT ( SIZEOF( QUERY ( f_sf <* QUERY ( fa <* cfs.cfs_faces | ( + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FACE_SURFACE' IN TYPEOF( fa ) ) ) | ( NOT ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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 | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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 | ( - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ORIENTED_FACE' IN TYPEOF( fa ) ) ) | ( NOT ( ( - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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 ) ) ) ) + fbsm_faces | ( NOT ( SIZEOF( QUERY ( o_fa <* QUERY ( fa <* cfs.cfs_faces | ( + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ORIENTED_FACE' IN TYPEOF( fa ) ) ) | ( NOT ( ( + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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 | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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 ( ( - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ADVANCED_FACE' IN TYPEOF( fa ) ) OR ( SIZEOF( QUERY ( bnds <* - fa.bounds | ( NOT ( SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EDGE_LOOP', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.VERTEX_LOOP' ] * TYPEOF( bnds.bound ) ) = 1 ) ) ) ) = 0 ) ) ) ) ) + fbsm_faces | ( NOT ( SIZEOF( QUERY ( fa <* cfs.cfs_faces | ( NOT ( ( + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ADVANCED_FACE' IN TYPEOF( fa ) ) OR ( SIZEOF( QUERY ( bnds <* + fa.bounds | ( NOT ( SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EDGE_LOOP', + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.VERTEX_LOOP' ] * TYPEOF( bnds.bound ) ) = 1 ) ) ) ) = 0 ) ) ) ) ) = 0 ) ) ) ) = 0 ) ) ) ) = 0 ); wr8 : ( SIZEOF( QUERY ( fbsm <* QUERY ( it <* SELF.items | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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 ( ( - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ADVANCED_FACE' IN TYPEOF( fa ) ) OR ( SIZEOF( - QUERY ( elp_fbnds <* QUERY ( bnds <* fa.bounds | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EDGE_LOOP' IN - TYPEOF( bnds.bound ) ) ) | ( NOT ( SIZEOF( QUERY ( oe <* elp_fbnds\path.edge_list | ( NOT ( - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EDGE_CURVE' IN TYPEOF( oe.edge_element ) ) ) ) ) = 0 ) ) ) ) = + fbsm_faces | ( NOT ( SIZEOF( QUERY ( fa <* cfs.cfs_faces | ( NOT ( ( + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ADVANCED_FACE' IN TYPEOF( fa ) ) OR ( SIZEOF( + QUERY ( elp_fbnds <* QUERY ( bnds <* fa.bounds | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EDGE_LOOP' IN + TYPEOF( bnds.bound ) ) ) | ( NOT ( SIZEOF( QUERY ( oe <* elp_fbnds\path.edge_list | ( NOT ( + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EDGE_CURVE' IN TYPEOF( oe.edge_element ) ) ) ) ) = 0 ) ) ) ) = 0 ) ) ) ) ) = 0 ) ) ) ) = 0 ) ) ) ) = 0 ); wr9 : ( SIZEOF( QUERY ( fbsm <* QUERY ( it <* SELF.items | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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 ( ( - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ADVANCED_FACE' IN TYPEOF( fa ) ) OR ( SIZEOF( - QUERY ( elp_fbnds <* QUERY ( bnds <* fa.bounds | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EDGE_LOOP' IN - TYPEOF( bnds.bound ) ) ) | ( NOT ( SIZEOF( QUERY ( oe_cv <* QUERY ( oe <* elp_fbnds\path.edge_list | ( - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EDGE_CURVE' IN TYPEOF( oe.edge_element ) ) ) | ( NOT ( SIZEOF( - [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.B_SPLINE_CURVE', + fbsm_faces | ( NOT ( SIZEOF( QUERY ( fa <* cfs.cfs_faces | ( NOT ( ( + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ADVANCED_FACE' IN TYPEOF( fa ) ) OR ( SIZEOF( + QUERY ( elp_fbnds <* QUERY ( bnds <* fa.bounds | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EDGE_LOOP' IN + TYPEOF( bnds.bound ) ) ) | ( NOT ( SIZEOF( QUERY ( oe_cv <* QUERY ( oe <* elp_fbnds\path.edge_list | ( + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EDGE_CURVE' IN TYPEOF( oe.edge_element ) ) ) | ( NOT ( SIZEOF( + [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.B_SPLINE_CURVE', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CONIC' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'CURVE_REPLICA' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LINE', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.OFFSET_CURVE_3D' , + + 'CURVE_REPLICA' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LINE', + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.OFFSET_CURVE_3D' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PCURVE' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'POLYLINE' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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 | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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 ( ( - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ADVANCED_FACE' IN TYPEOF( fa ) ) OR ( SIZEOF( - QUERY ( elp_fbnds <* QUERY ( bnds <* fa.bounds | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EDGE_LOOP' IN + fbsm_faces | ( NOT ( SIZEOF( QUERY ( fa <* cfs.cfs_faces | ( NOT ( ( + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ADVANCED_FACE' IN TYPEOF( fa ) ) OR ( SIZEOF( + QUERY ( elp_fbnds <* QUERY ( bnds <* fa.bounds | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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 | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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 ( ( - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ADVANCED_FACE' IN TYPEOF( fa ) ) OR ( SIZEOF( - QUERY ( elp_fbnds <* QUERY ( bnds <* fa.bounds | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EDGE_LOOP' IN - TYPEOF( bnds.bound ) ) ) | ( NOT ( SIZEOF( QUERY ( oe <* elp_fbnds\path.edge_list | ( NOT ( ( - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.VERTEX_POINT' IN TYPEOF( oe.edge_element.edge_start ) ) AND ( + fbsm_faces | ( NOT ( SIZEOF( QUERY ( fa <* cfs.cfs_faces | ( NOT ( ( + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ADVANCED_FACE' IN TYPEOF( fa ) ) OR ( SIZEOF( + QUERY ( elp_fbnds <* QUERY ( bnds <* fa.bounds | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EDGE_LOOP' IN + TYPEOF( bnds.bound ) ) ) | ( NOT ( SIZEOF( QUERY ( oe <* elp_fbnds\path.edge_list | ( NOT ( ( + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.VERTEX_POINT' IN TYPEOF( oe.edge_element.edge_start ) ) AND ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.VERTEX_POINT' IN TYPEOF( oe.edge_element.edge_end ) ) ) ) ) ) = 0 ) ) ) ) = 0 ) ) ) ) ) = 0 ) ) ) ) = 0 ) ) ) ) = 0 ); wr12: ( SIZEOF( QUERY ( fbsm <* QUERY ( it <* SELF.items | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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 ( ( - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ADVANCED_FACE' IN TYPEOF( fa ) ) OR ( SIZEOF( - QUERY ( elp_fbnds <* QUERY ( bnds <* fa.bounds | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EDGE_LOOP' IN + fbsm_faces | ( NOT ( SIZEOF( QUERY ( fa <* cfs.cfs_faces | ( NOT ( ( + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ADVANCED_FACE' IN TYPEOF( fa ) ) OR ( SIZEOF( + QUERY ( elp_fbnds <* QUERY ( bnds <* fa.bounds | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EDGE_LOOP' IN TYPEOF( bnds.bound ) ) ) | ( NOT ( SIZEOF( QUERY ( oe <* elp_fbnds\path.edge_list | ( NOT ( ( SIZEOF( [ - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CARTESIAN_POINT' , - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DEGENERATE_PCURVE' , - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POINT_ON_CURVE' , + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CARTESIAN_POINT' , + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DEGENERATE_PCURVE' , + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POINT_ON_CURVE' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POINT_ON_SURFACE' ] * TYPEOF( oe.edge_element.edge_start\ vertex_point.vertex_geometry ) ) = 1 ) AND ( SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'CARTESIAN_POINT' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DEGENERATE_PCURVE', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POINT_ON_CURVE' , + + 'CARTESIAN_POINT' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DEGENERATE_PCURVE', + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POINT_ON_CURVE' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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 | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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 ( ( - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ADVANCED_FACE' IN TYPEOF( fa ) ) OR ( SIZEOF( - QUERY ( vlp_fbnds <* QUERY ( bnds <* fa.bounds | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.VERTEX_LOOP' - IN TYPEOF( bnds.bound ) ) ) | ( NOT ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.VERTEX_POINT' IN TYPEOF( + fbsm_faces | ( NOT ( SIZEOF( QUERY ( fa <* cfs.cfs_faces | ( NOT ( ( + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ADVANCED_FACE' IN TYPEOF( fa ) ) OR ( SIZEOF( + QUERY ( vlp_fbnds <* QUERY ( bnds <* fa.bounds | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.VERTEX_LOOP' + IN TYPEOF( bnds.bound ) ) ) | ( NOT ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.VERTEX_POINT' IN TYPEOF( vlp_fbnds\vertex_loop.loop_vertex ) ) ) ) ) = 0 ) ) ) ) ) = 0 ) ) ) ) = 0 ) ) ) ) = 0 ); wr14: ( SIZEOF( QUERY ( fbsm <* QUERY ( it <* SELF.items | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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 ( ( - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ADVANCED_FACE' IN TYPEOF( fa ) ) OR ( SIZEOF( - QUERY ( vlp_fbnds <* QUERY ( bnds <* fa.bounds | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.VERTEX_LOOP' - IN TYPEOF( bnds.bound ) ) ) | ( NOT ( SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CARTESIAN_POINT', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DEGENERATE_PCURVE' , - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POINT_ON_CURVE' , + fbsm_faces | ( NOT ( SIZEOF( QUERY ( fa <* cfs.cfs_faces | ( NOT ( ( + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ADVANCED_FACE' IN TYPEOF( fa ) ) OR ( SIZEOF( + QUERY ( vlp_fbnds <* QUERY ( bnds <* fa.bounds | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.VERTEX_LOOP' + IN TYPEOF( bnds.bound ) ) ) | ( NOT ( SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CARTESIAN_POINT', + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DEGENERATE_PCURVE' , + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POINT_ON_CURVE' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POINT_ON_SURFACE' ] * TYPEOF( vlp_fbnds\vertex_loop.loop_vertex\ vertex_point.vertex_geometry ) ) = 1 ) ) ) ) = 0 ) ) ) ) ) = 0 ) ) ) ) = 0 ) ) ) ) = 0 ); END_ENTITY; @@ -13582,7 +14428,10 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; END_ENTITY; ENTITY non_smooth_geometry_transition_across_edge - ABSTRACT SUPERTYPE OF ( ONEOF ( g1_discontinuity_between_adjacent_faces, g2_discontinuity_between_adjacent_faces ) ) + ABSTRACT SUPERTYPE OF ( + ONEOF ( + g1_discontinuity_between_adjacent_faces, + g2_discontinuity_between_adjacent_faces ) ) SUBTYPE OF ( inapt_topology_and_geometry_relationship ); END_ENTITY; @@ -13600,13 +14449,23 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; END_ENTITY; ENTITY numeric_defined_function - ABSTRACT SUPERTYPE OF ( ONEOF ( integer_defined_function, real_defined_function ) ) + ABSTRACT SUPERTYPE OF ( + ONEOF ( + integer_defined_function, + real_defined_function ) ) SUBTYPE OF ( numeric_expression, defined_function ); END_ENTITY; ENTITY numeric_expression - ABSTRACT SUPERTYPE OF ( ONEOF ( simple_numeric_expression, unary_numeric_expression, binary_numeric_expression, - multiple_arity_numeric_expression, length_function, value_function, numeric_defined_function ) ) + ABSTRACT SUPERTYPE OF ( + ONEOF ( + simple_numeric_expression, + unary_numeric_expression, + binary_numeric_expression, + multiple_arity_numeric_expression, + length_function, + value_function, + numeric_defined_function ) ) SUBTYPE OF ( expression ); DERIVE is_int : BOOLEAN := is_int_expr( SELF ); @@ -13614,10 +14473,13 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; END_ENTITY; ENTITY numeric_variable - SUPERTYPE OF ( ONEOF ( int_numeric_variable, real_numeric_variable ) ) + SUPERTYPE OF ( + ONEOF ( + int_numeric_variable, + real_numeric_variable ) ) SUBTYPE OF ( simple_numeric_expression, variable ); WHERE - wr1: ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.INT_NUMERIC_VARIABLE' IN TYPEOF( SELF ) ) OR ( + wr1: ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.INT_NUMERIC_VARIABLE' IN TYPEOF( SELF ) ) OR ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.REAL_NUMERIC_VARIABLE' IN TYPEOF( SELF ) ) ); END_ENTITY; @@ -13700,8 +14562,8 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; wr4: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( - QUERY ( it <* impl_rep.used_representation.items | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLACEMENT' + + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( + QUERY ( it <* impl_rep.used_representation.items | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLACEMENT' IN TYPEOF( it ) ) AND ( it.name = 'orientation' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ); wr5: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( pdr <* USEDIN( pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' @@ -13710,7 +14572,7 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; wr6: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( pdr <* USEDIN( pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'PLANAR_SHAPE_REPRESENTATION' IN TYPEOF( pdr.used_representation ) ) AND ( pdr.used_representation.name = + + 'PLANAR_SHAPE_REPRESENTATION' IN TYPEOF( pdr.used_representation ) ) AND ( pdr.used_representation.name = 'profile limit' ) ) ) ) <= 1 ) ) ) ) = 0 ); END_ENTITY; @@ -13726,7 +14588,7 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; SUBTYPE OF ( date ); day_component : day_in_year_number; WHERE - wr1: ( ( ( NOT leap_year( SELF.year_component ) ) AND ( 1 <= day_component ) AND ( day_component <= 365 ) ) OR ( + wr1: ( ( ( NOT leap_year( SELF.year_component ) ) AND ( 1 <= day_component ) AND ( day_component <= 365 ) ) OR ( leap_year( SELF.year_component ) AND ( 1 <= day_component ) AND ( day_component <= 366 ) ) ); END_ENTITY; @@ -13758,7 +14620,7 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; DERIVE description : text := get_description_value( SELF ); WHERE - wr1: ( SIZEOF( USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'DESCRIPTION_ATTRIBUTE.DESCRIBED_ITEM' ) ) + wr1: ( SIZEOF( USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'DESCRIPTION_ATTRIBUTE.DESCRIBED_ITEM' ) ) <= 1 ); END_ENTITY; @@ -13869,68 +14731,68 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; ENTITY outer_round SUBTYPE OF ( feature_definition ); WHERE - wr1: ( ( NOT ( SELF\characterized_object.description = 'outer diameter' ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( SIZEOF( QUERY ( pdr <* - USEDIN( pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( + wr1: ( ( NOT ( SELF\characterized_object.description = 'outer diameter' ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( SIZEOF( QUERY ( pdr <* + USEDIN( pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. used_representation ) ) AND ( SIZEOF( pdr.used_representation.items ) = 3 ) ) ) ) = 1 ) ) ) = 1 ) ); - wr2: ( ( NOT ( SELF\characterized_object.description = 'outer diameter to shoulder' ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( - SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( SIZEOF( + wr2: ( ( NOT ( SELF\characterized_object.description = 'outer diameter to shoulder' ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( + SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( SIZEOF( QUERY ( pdr <* USEDIN( pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.' - + 'DEFINITION' ) | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN + + 'DEFINITION' ) | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) AND ( 2 <= SIZEOF( pdr.used_representation.items ) ) AND ( SIZEOF( pdr. used_representation.items ) <= 3 ) ) ) ) = 1 ) ) ) = 1 ) ); wr3: ( SELF\characterized_object.description IN [ 'outer diameter', 'outer diameter to shoulder'] ); - wr4: ( ( NOT ( SELF\characterized_object.description = 'outer diameter' ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( + wr4: ( ( NOT ( SELF\characterized_object.description = 'outer diameter' ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( + + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'MEASURE_REPRESENTATION_ITEM' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * + + 'MEASURE_REPRESENTATION_ITEM' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF( it ) ) = 2 ) AND ( it.name = 'length' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ) ); wr5: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( + + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'MEASURE_REPRESENTATION_ITEM' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * + + 'MEASURE_REPRESENTATION_ITEM' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF( it ) ) = 2 ) AND ( it.name = 'diameter' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ); - wr6: ( ( NOT ( SELF\characterized_object.description = 'outer diameter to shoulder' ) ) OR ( SIZEOF( QUERY ( pds <* - QUERY ( pd <* USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) | ( NOT ( SIZEOF( - QUERY ( sa_occ <* USEDIN( pds, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) | ( ( - sa_occ.description = 'v-shape boundary occurrence' ) AND ( SIZEOF( QUERY ( sdr <* QUERY ( sar <* USEDIN( sa_occ, + wr6: ( ( NOT ( SELF\characterized_object.description = 'outer diameter to shoulder' ) ) OR ( SIZEOF( QUERY ( pds <* + QUERY ( pd <* USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) | ( NOT ( SIZEOF( + QUERY ( sa_occ <* USEDIN( pds, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) | ( ( + sa_occ.description = 'v-shape boundary occurrence' ) AND ( SIZEOF( QUERY ( sdr <* QUERY ( sar <* USEDIN( sa_occ, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT' ) | ( ( sar. - description = 'profile usage' ) AND ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DEFINING_RELATIONSHIP' + description = 'profile usage' ) AND ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF( sar ) ) ) ) | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.VEE_PROFILE' IN TYPEOF( sdr. relating_shape_aspect ) ) AND ( sdr.relating_shape_aspect.description = 'v-shape' ) ) ) ) = 1 ) ) ) ) = 1 ) ) ) ) = 0 ) ); - wr7: ( ( NOT ( SELF\characterized_object.description = 'outer diameter' ) ) OR ( SIZEOF( QUERY ( pds <* QUERY ( pd <* - USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) | ( NOT ( SIZEOF( - QUERY ( sa_occ <* USEDIN( pds, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) | ( ( - sa_occ.description = 'reduced size occurrence' ) AND ( SIZEOF( QUERY ( sdr <* QUERY ( sar <* USEDIN( sa_occ, + wr7: ( ( NOT ( SELF\characterized_object.description = 'outer diameter' ) ) OR ( SIZEOF( QUERY ( pds <* QUERY ( pd <* + USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) | ( NOT ( SIZEOF( + QUERY ( sa_occ <* USEDIN( pds, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) | ( ( + sa_occ.description = 'reduced size occurrence' ) AND ( SIZEOF( QUERY ( sdr <* QUERY ( sar <* USEDIN( sa_occ, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT' ) | ( ( sar. - description = 'taper usage' ) AND ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP' + description = 'taper usage' ) AND ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF( sar ) ) ) ) | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.TAPER' IN TYPEOF( sdr. relating_shape_aspect ) ) AND ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.OUTER_ROUND' IN TYPEOF( sdr. related_shape_aspect.of_shape.definition ) ) AND ( sdr.name = 'reduced size' ) ) ) ) = 1 ) ) ) ) <= 1 ) ) ) ) = 0 ) ); - wr8: ( ( NOT ( SELF\characterized_object.description = 'outer diameter to shoulder' ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( - SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( + wr8: ( ( NOT ( SELF\characterized_object.description = 'outer diameter to shoulder' ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( + SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( + + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'MEASURE_REPRESENTATION_ITEM' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * + + 'MEASURE_REPRESENTATION_ITEM' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF( it ) ) = 2 ) AND ( it.name = 'length' ) ) ) ) <= 1 ) ) ) ) = 0 ) ) ) ) = 0 ) ); - wr9: ( ( NOT ( SELF\characterized_object.description = 'outer diameter to shoulder' ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( - SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( + wr9: ( ( NOT ( SELF\characterized_object.description = 'outer diameter to shoulder' ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( + SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( + + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'MEASURE_REPRESENTATION_ITEM' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * + + 'MEASURE_REPRESENTATION_ITEM' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF( it ) ) = 2 ) AND ( it.name = 'feature length' ) ) ) ) <= 1 ) ) ) ) = 0 ) ) ) ) = 0 ) ); END_ENTITY; @@ -13944,154 +14806,154 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; used_representation.items ) = 1 ) ) ) ) = 1 ) ) ) = 1 ); wr2 : ( SIZEOF( QUERY ( pds <* QUERY ( pd <* USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PROPERTY_DEFINITION.DEFINITION' ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) | ( NOT ( SIZEOF( QUERY ( sa_occ <* USEDIN( pds, + + 'PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) | ( NOT ( SIZEOF( QUERY ( sa_occ <* USEDIN( pds, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) | ( sa_occ.description IN [ - 'boundary occurrence' , 'non-planar boundary occurrence', 'partial circular boundary occurrence', - 'closed circular boundary occurrence' , 'open rectangular boundary occurrence', + 'boundary occurrence' , 'non-planar boundary occurrence', 'partial circular boundary occurrence', + 'closed circular boundary occurrence' , 'open rectangular boundary occurrence', 'closed rectangular boundary occurrence' ] ) ) ) = 1 ) ) ) ) = 0 ); wr3 : ( ( NOT ( SIZEOF( QUERY ( pds <* QUERY ( pd <* USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PROPERTY_DEFINITION.DEFINITION' ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) | ( NOT ( SIZEOF( QUERY ( sa_occ <* USEDIN( pds, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) | ( sa_occ.description = - 'boundary occurrence' ) ) ) = 1 ) ) ) ) = 0 ) ) OR ( SIZEOF( QUERY ( pds <* QUERY ( pd <* USEDIN( SELF, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) | ( NOT ( + + 'PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) | ( NOT ( SIZEOF( QUERY ( sa_occ <* USEDIN( pds, + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) | ( sa_occ.description = + 'boundary occurrence' ) ) ) = 1 ) ) ) ) = 0 ) ) OR ( SIZEOF( QUERY ( pds <* QUERY ( pd <* USEDIN( SELF, + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) | ( NOT ( SIZEOF( QUERY ( sa_occ <* USEDIN( pds, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) | ( SIZEOF( QUERY ( sdr <* QUERY ( sar <* USEDIN( sa_occ, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT' ) | ( ( sar.description = 'profile usage' ) AND ( - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF( sar ) ) ) ) | ( ( - SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CIRCULAR_CLOSED_PROFILE', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.NGON_CLOSED_PROFILE' , - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.RECTANGULAR_CLOSED_PROFILE' , - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CLOSED_PATH_PROFILE' , - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SQUARE_U_PROFILE' , - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PARTIAL_CIRCULAR_PROFILE' , - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ROUNDED_U_PROFILE' , - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LINEAR_PROFILE' , + + 'SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT' ) | ( ( sar.description = 'profile usage' ) AND ( + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF( sar ) ) ) ) | ( ( + SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CIRCULAR_CLOSED_PROFILE', + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.NGON_CLOSED_PROFILE' , + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.RECTANGULAR_CLOSED_PROFILE' , + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CLOSED_PATH_PROFILE' , + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SQUARE_U_PROFILE' , + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PARTIAL_CIRCULAR_PROFILE' , + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ROUNDED_U_PROFILE' , + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LINEAR_PROFILE' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.VEE_PROFILE' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'TEE_PROFILE' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.OPEN_PATH_PROFILE'] * TYPEOF( sdr. - relating_shape_aspect ) ) = 1 ) AND ( sdr.relating_shape_aspect.description = 'outside boundary' ) ) ) ) = 1 ) ) ) + relating_shape_aspect ) ) = 1 ) AND ( sdr.relating_shape_aspect.description = 'outside boundary' ) ) ) ) = 1 ) ) ) = 1 ) ) ) ) = 0 ) ); wr4 : ( ( NOT ( SIZEOF( QUERY ( pds <* QUERY ( pd <* USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PROPERTY_DEFINITION.DEFINITION' ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) | ( NOT ( SIZEOF( QUERY ( sa_occ <* USEDIN( pds, + + 'PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) | ( NOT ( SIZEOF( QUERY ( sa_occ <* USEDIN( pds, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) | ( sa_occ.description IN [ - 'complex boundary occurrence' , 'partial circular boundary occurrence', 'closed circular boundary occurrence', - 'open rectangular boundary occurrence' , 'closed rectangular boundary occurrence'] ) ) ) = 1 ) ) ) ) = 0 ) ) OR + 'complex boundary occurrence' , 'partial circular boundary occurrence', 'closed circular boundary occurrence', + 'open rectangular boundary occurrence' , 'closed rectangular boundary occurrence'] ) ) ) = 1 ) ) ) ) = 0 ) ) OR ( SIZEOF( QUERY ( pds <* QUERY ( pd <* USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PROPERTY_DEFINITION.DEFINITION' ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) | ( NOT ( SIZEOF( QUERY ( sa_occ <* USEDIN( pds, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) | ( NOT ( SIZEOF( QUERY ( sdr <* + + 'PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) | ( NOT ( SIZEOF( QUERY ( sa_occ <* USEDIN( pds, + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) | ( NOT ( SIZEOF( QUERY ( sdr <* QUERY ( sar <* USEDIN( sa_occ, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.' - + 'RELATED_SHAPE_ASPECT' ) | ( ( sar.description = 'profile floor usage' ) AND ( - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF( sar ) ) ) ) | ( ( - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROFILE_FLOOR' IN TYPEOF( sdr.relating_shape_aspect ) ) AND ( + + 'RELATED_SHAPE_ASPECT' ) | ( ( sar.description = 'profile floor usage' ) AND ( + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF( sar ) ) ) ) | ( ( + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROFILE_FLOOR' IN TYPEOF( sdr.relating_shape_aspect ) ) AND ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.OUTSIDE_PROFILE' IN TYPEOF( sdr.related_shape_aspect.of_shape. definition ) ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ) ); wr5 : ( ( NOT ( SIZEOF( QUERY ( pds <* QUERY ( pd <* USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PROPERTY_DEFINITION.DEFINITION' ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) | ( NOT ( SIZEOF( QUERY ( sa_occ <* USEDIN( pds, + + 'PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) | ( NOT ( SIZEOF( QUERY ( sa_occ <* USEDIN( pds, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) | ( sa_occ.description IN [ - 'outside boundary' , 'complex boundary occurrence', 'partial circular boundary occurrence', - 'closed circular boundary occurrence' , 'open rectangular boundary occurrence', - 'closed rectangular boundary occurrence' ] ) ) ) = 1 ) ) ) ) = 0 ) ) OR ( SIZEOF( QUERY ( pds <* QUERY ( pd <* - USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) | ( NOT ( + 'outside boundary' , 'complex boundary occurrence', 'partial circular boundary occurrence', + 'closed circular boundary occurrence' , 'open rectangular boundary occurrence', + 'closed rectangular boundary occurrence' ] ) ) ) = 1 ) ) ) ) = 0 ) ) OR ( SIZEOF( QUERY ( pds <* QUERY ( pd <* + USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) | ( NOT ( SIZEOF( QUERY ( sa_occ <* USEDIN( pds, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) | ( SIZEOF( QUERY ( sdr <* QUERY ( sar <* USEDIN( sa_occ, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT' ) | ( ( sar.description = 'path feature component usage' ) - AND ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF( sar ) ) ) ) | ( ( + + 'SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT' ) | ( ( sar.description = 'path feature component usage' ) + AND ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF( sar ) ) ) ) | ( ( SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PATH_FEATURE_COMPONENT'] * TYPEOF( sdr. relating_shape_aspect ) ) = 1 ) AND ( sdr.name = 'profile swept shape' ) AND ( sdr.relating_shape_aspect. description = 'linear' ) ) ) ) = 1 ) ) ) = 1 ) ) ) ) = 0 ) ); wr6 : ( ( NOT ( SIZEOF( QUERY ( pds <* QUERY ( pd <* USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PROPERTY_DEFINITION.DEFINITION' ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) | ( NOT ( SIZEOF( QUERY ( sa_occ <* USEDIN( pds, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) | ( sa_occ.description = - 'complex boundary occurrence' ) ) ) = 1 ) ) ) ) = 0 ) ) OR ( SIZEOF( QUERY ( pds <* QUERY ( pd <* USEDIN( SELF, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) | ( NOT ( + + 'PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) | ( NOT ( SIZEOF( QUERY ( sa_occ <* USEDIN( pds, + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) | ( sa_occ.description = + 'complex boundary occurrence' ) ) ) = 1 ) ) ) ) = 0 ) ) OR ( SIZEOF( QUERY ( pds <* QUERY ( pd <* USEDIN( SELF, + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) | ( NOT ( SIZEOF( QUERY ( sa_occ <* USEDIN( pds, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) | ( SIZEOF( QUERY ( sdr <* QUERY ( sar <* USEDIN( sa_occ, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT' ) | ( ( sar.description = 'profile usage' ) AND ( - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF( sar ) ) ) ) | ( - SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CIRCULAR_CLOSED_PROFILE', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.NGON_CLOSED_PROFILE' , - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.RECTANGULAR_CLOSED_PROFILE' , - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CLOSED_PATH_PROFILE' , - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SQUARE_U_PROFILE' , - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PARTIAL_CIRCULAR_PROFILE' , - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ROUNDED_U_PROFILE' , + + 'SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT' ) | ( ( sar.description = 'profile usage' ) AND ( + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF( sar ) ) ) ) | ( + SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CIRCULAR_CLOSED_PROFILE', + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.NGON_CLOSED_PROFILE' , + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.RECTANGULAR_CLOSED_PROFILE' , + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CLOSED_PATH_PROFILE' , + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SQUARE_U_PROFILE' , + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PARTIAL_CIRCULAR_PROFILE' , + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ROUNDED_U_PROFILE' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.VEE_PROFILE' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'TEE_PROFILE' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LINEAR_PROFILE', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.OPEN_PATH_PROFILE' ] * TYPEOF( sdr.relating_shape_aspect ) ) = 1 ) ) ) + + 'TEE_PROFILE' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LINEAR_PROFILE', + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.OPEN_PATH_PROFILE' ] * TYPEOF( sdr.relating_shape_aspect ) ) = 1 ) ) ) = 1 ) ) ) = 1 ) ) ) ) = 0 ) ); wr7 : ( ( NOT ( SIZEOF( QUERY ( pds <* QUERY ( pd <* USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PROPERTY_DEFINITION.DEFINITION' ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) | ( NOT ( SIZEOF( QUERY ( sa_occ <* USEDIN( pds, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) | ( sa_occ.description = - 'partial circular boundary occurrence' ) ) ) = 1 ) ) ) ) = 0 ) ) OR ( SIZEOF( QUERY ( pds <* QUERY ( pd <* - USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) | ( NOT ( + + 'PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) | ( NOT ( SIZEOF( QUERY ( sa_occ <* USEDIN( pds, + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) | ( sa_occ.description = + 'partial circular boundary occurrence' ) ) ) = 1 ) ) ) ) = 0 ) ) OR ( SIZEOF( QUERY ( pds <* QUERY ( pd <* + USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) | ( NOT ( SIZEOF( QUERY ( sa_occ <* USEDIN( pds, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) | ( SIZEOF( QUERY ( sdr <* QUERY ( sar <* USEDIN( sa_occ, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT' ) | ( ( sar.description = 'profile usage' ) AND ( - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF( sar ) ) ) ) | ( - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PARTIAL_CIRCULAR_PROFILE' IN TYPEOF( sdr.relating_shape_aspect ) ) ) ) + + 'SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT' ) | ( ( sar.description = 'profile usage' ) AND ( + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF( sar ) ) ) ) | ( + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PARTIAL_CIRCULAR_PROFILE' IN TYPEOF( sdr.relating_shape_aspect ) ) ) ) = 1 ) ) ) = 1 ) ) ) ) = 0 ) ); wr8 : ( ( NOT ( SIZEOF( QUERY ( pds <* QUERY ( pd <* USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PROPERTY_DEFINITION.DEFINITION' ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) | ( NOT ( SIZEOF( QUERY ( sa_occ <* USEDIN( pds, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) | ( sa_occ.description = - 'closed circular boundary occurrence' ) ) ) = 1 ) ) ) ) = 0 ) ) OR ( SIZEOF( QUERY ( pds <* QUERY ( pd <* - USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) | ( NOT ( + + 'PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) | ( NOT ( SIZEOF( QUERY ( sa_occ <* USEDIN( pds, + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) | ( sa_occ.description = + 'closed circular boundary occurrence' ) ) ) = 1 ) ) ) ) = 0 ) ) OR ( SIZEOF( QUERY ( pds <* QUERY ( pd <* + USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) | ( NOT ( SIZEOF( QUERY ( sa_occ <* USEDIN( pds, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) | ( SIZEOF( QUERY ( sdr <* QUERY ( sar <* USEDIN( sa_occ, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT' ) | ( ( sar.description = 'profile usage' ) AND ( - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF( sar ) ) ) ) | ( - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CIRCULAR_CLOSED_PROFILE' IN TYPEOF( sdr.relating_shape_aspect ) ) ) ) + + 'SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT' ) | ( ( sar.description = 'profile usage' ) AND ( + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF( sar ) ) ) ) | ( + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CIRCULAR_CLOSED_PROFILE' IN TYPEOF( sdr.relating_shape_aspect ) ) ) ) = 1 ) ) ) = 1 ) ) ) ) = 0 ) ); wr9 : ( ( NOT ( SIZEOF( QUERY ( pds <* QUERY ( pd <* USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PROPERTY_DEFINITION.DEFINITION' ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) | ( NOT ( SIZEOF( QUERY ( sa_occ <* USEDIN( pds, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) | ( sa_occ.description = - 'open rectangular boundary occurrence' ) ) ) = 1 ) ) ) ) = 0 ) ) OR ( SIZEOF( QUERY ( pds <* QUERY ( pd <* - USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) | ( NOT ( + + 'PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) | ( NOT ( SIZEOF( QUERY ( sa_occ <* USEDIN( pds, + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) | ( sa_occ.description = + 'open rectangular boundary occurrence' ) ) ) = 1 ) ) ) ) = 0 ) ) OR ( SIZEOF( QUERY ( pds <* QUERY ( pd <* + USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) | ( NOT ( SIZEOF( QUERY ( sa_occ <* USEDIN( pds, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) | ( SIZEOF( QUERY ( sdr <* QUERY ( sar <* USEDIN( sa_occ, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT' ) | ( ( sar.description = 'profile usage' ) AND ( - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF( sar ) ) ) ) | ( - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SQUARE_U_PROFILE' IN TYPEOF( sdr.relating_shape_aspect ) ) ) ) + + 'SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT' ) | ( ( sar.description = 'profile usage' ) AND ( + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF( sar ) ) ) ) | ( + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SQUARE_U_PROFILE' IN TYPEOF( sdr.relating_shape_aspect ) ) ) ) = 1 ) ) ) = 1 ) ) ) ) = 0 ) ); wr10: ( ( NOT ( SIZEOF( QUERY ( pds <* QUERY ( pd <* USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PROPERTY_DEFINITION.DEFINITION' ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) | ( NOT ( SIZEOF( QUERY ( sa_occ <* USEDIN( pds, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) | ( sa_occ.description = - 'closed rectangular boundary occurrence' ) ) ) = 1 ) ) ) ) = 0 ) ) OR ( SIZEOF( QUERY ( pds <* QUERY ( pd <* - USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) | ( NOT ( + + 'PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) | ( NOT ( SIZEOF( QUERY ( sa_occ <* USEDIN( pds, + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) | ( sa_occ.description = + 'closed rectangular boundary occurrence' ) ) ) = 1 ) ) ) ) = 0 ) ) OR ( SIZEOF( QUERY ( pds <* QUERY ( pd <* + USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) | ( NOT ( SIZEOF( QUERY ( sa_occ <* USEDIN( pds, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) | ( SIZEOF( QUERY ( sdr <* QUERY ( sar <* USEDIN( sa_occ, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT' ) | ( ( sar.description = 'profile usage' ) AND ( - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF( sar ) ) ) ) | ( + + 'SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT' ) | ( ( sar.description = 'profile usage' ) AND ( + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF( sar ) ) ) ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.RECTANGULAR_CLOSED_PROFILE' IN TYPEOF( sdr. relating_shape_aspect ) ) ) ) = 1 ) ) ) = 1 ) ) ) ) = 0 ) ); wr11: ( ( SIZEOF( QUERY ( pds <* QUERY ( pd <* USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PROPERTY_DEFINITION.DEFINITION' ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) | ( NOT ( SIZEOF( QUERY ( sa_occ <* USEDIN( pds, + + 'PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) | ( NOT ( SIZEOF( QUERY ( sa_occ <* USEDIN( pds, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) | ( sa_occ.description IN [ - 'boundary occurrence' , 'complex boundary occurrence', 'partial circular boundary occurrence', - 'closed circular boundary occurrence' , 'open rectangular boundary occurrence', - 'closed rectangular boundary occurrence' ] ) ) ) = 1 ) ) ) ) = 0 ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( + 'boundary occurrence' , 'complex boundary occurrence', 'partial circular boundary occurrence', + 'closed circular boundary occurrence' , 'open rectangular boundary occurrence', + 'closed rectangular boundary occurrence' ] ) ) ) = 1 ) ) ) ) = 0 ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( pdr <* USEDIN( pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.' - + 'DEFINITION' ) | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DIRECTION_SHAPE_REPRESENTATION' IN + + 'DEFINITION' ) | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DIRECTION_SHAPE_REPRESENTATION' IN TYPEOF( pdr.used_representation ) ) AND ( pdr.used_representation.name = 'removal direction' ) ) ) ) = 1 ) ) ) ) = 0 ) ); - wr12: ( SIZEOF( QUERY ( pdr <* get_property_definition_representations( SELF ) | ( ( - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANAR_SHAPE_REPRESENTATION' IN TYPEOF( pdr.used_representation ) ) + wr12: ( SIZEOF( QUERY ( pdr <* get_property_definition_representations( SELF ) | ( ( + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANAR_SHAPE_REPRESENTATION' IN TYPEOF( pdr.used_representation ) ) AND ( pdr.used_representation.name = 'maximum feature limit' ) ) ) ) >= 0 ); END_ENTITY; @@ -14105,7 +14967,7 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; WHERE wr1: ( ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' ) IN TYPEOF( SELF\ - shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold ) ) + shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold ) ) AND ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COUNT_MEASURE' IN value_limit_type( SELF\ shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold ) ) ); wr2: validate_measured_data_type( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COUNT_MEASURE' ); @@ -14115,20 +14977,33 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; END_ENTITY; ENTITY overcomplex_geometry - ABSTRACT SUPERTYPE OF ( ONEOF ( excessively_high_degree_curve, excessively_high_degree_surface, - surface_with_excessive_patches_in_one_direction, curve_with_excessive_segments, high_degree_linear_curve, - high_degree_planar_surface, high_degree_conic, high_degree_axi_symmetric_surface ) ) + ABSTRACT SUPERTYPE OF ( + ONEOF ( + excessively_high_degree_curve, + excessively_high_degree_surface, + surface_with_excessive_patches_in_one_direction, + curve_with_excessive_segments, + high_degree_linear_curve, + high_degree_planar_surface, + high_degree_conic, + high_degree_axi_symmetric_surface ) ) SUBTYPE OF ( inapt_geometry ); END_ENTITY; ENTITY overcomplex_topology_and_geometry_relationship - ABSTRACT SUPERTYPE OF ( ONEOF ( unused_patches, edge_with_excessive_segments, - face_surface_with_excessive_patches_in_one_direction ) ) + ABSTRACT SUPERTYPE OF ( + ONEOF ( + unused_patches, + edge_with_excessive_segments, + face_surface_with_excessive_patches_in_one_direction ) ) SUBTYPE OF ( inapt_topology_and_geometry_relationship ); END_ENTITY; ENTITY overlapping_geometry - ABSTRACT SUPERTYPE OF ( ONEOF ( partly_overlapping_curves, partly_overlapping_surfaces ) ) + ABSTRACT SUPERTYPE OF ( + ONEOF ( + partly_overlapping_curves, + partly_overlapping_surfaces ) ) SUBTYPE OF ( inapt_geometry ); END_ENTITY; @@ -14136,11 +15011,11 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; SUBTYPE OF ( product_concept_feature ); WHERE wr1: ( NOT ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'CONDITIONAL_CONCEPT_FEATURE' ) IN TYPEOF( SELF ) ) ); - wr2: ( SIZEOF( QUERY ( cfr <* USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + - 'CONCEPT_FEATURE_RELATIONSHIP.' + 'RELATING_PRODUCT_CONCEPT_FEATURE' ) | ( ( ( - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'CONCEPT_FEATURE_RELATIONSHIP_WITH_CONDITION' ) IN TYPEOF( - cfr ) ) AND ( SIZEOF( QUERY ( ipcf <* USEDIN( cfr, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + - 'CONDITIONAL_CONCEPT_FEATURE.' + 'CONDITION' ) | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + + wr2: ( SIZEOF( QUERY ( cfr <* USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + + 'CONCEPT_FEATURE_RELATIONSHIP.' + 'RELATING_PRODUCT_CONCEPT_FEATURE' ) | ( ( ( + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'CONCEPT_FEATURE_RELATIONSHIP_WITH_CONDITION' ) IN TYPEOF( + cfr ) ) AND ( SIZEOF( QUERY ( ipcf <* USEDIN( cfr, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + + 'CONDITIONAL_CONCEPT_FEATURE.' + 'CONDITION' ) | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'INCLUSION_PRODUCT_CONCEPT_FEATURE' ) IN TYPEOF( ipcf ) ) ) ) = 1 ) ) ) ) > 0 ); END_ENTITY; @@ -14157,10 +15032,25 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; END_ENTITY; ENTITY pair_value - ABSTRACT SUPERTYPE OF ( ONEOF ( sliding_surface_pair_value, rolling_surface_pair_value, revolute_pair_value, - prismatic_pair_value, screw_pair_value, cylindrical_pair_value, spherical_pair_value, sliding_curve_pair_value, - rolling_curve_pair_value, gear_pair_value, rack_and_pinion_pair_value, universal_pair_value, planar_pair_value, - unconstrained_pair_value, point_on_surface_pair_value, point_on_planar_curve_pair_value, low_order_kinematic_pair_value ) ) + ABSTRACT SUPERTYPE OF ( + ONEOF ( + sliding_surface_pair_value, + rolling_surface_pair_value, + revolute_pair_value, + prismatic_pair_value, + screw_pair_value, + cylindrical_pair_value, + spherical_pair_value, + sliding_curve_pair_value, + rolling_curve_pair_value, + gear_pair_value, + rack_and_pinion_pair_value, + universal_pair_value, + planar_pair_value, + unconstrained_pair_value, + point_on_surface_pair_value, + point_on_planar_curve_pair_value, + low_order_kinematic_pair_value ) ) SUBTYPE OF ( geometric_representation_item ); applies_to_pair : kinematic_pair; END_ENTITY; @@ -14186,7 +15076,7 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; prep_functions : LIST [1 : ?] OF maths_function; final_function : maths_function_select; DERIVE - SELF\multiple_arity_generic_expression.operands : LIST [2 : ?] OF generic_expression := convert_to_operands_prcmfn( + SELF\multiple_arity_generic_expression.operands : LIST [2 : ?] OF generic_expression := convert_to_operands_prcmfn( source_of_domain, prep_functions, final_function ); WHERE wr1: no_cyclic_domain_reference( source_of_domain, [SELF] ); @@ -14215,10 +15105,10 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; offset_type : parallel_offset_type; WHERE wr1: ( NOT ( ( ( offset_type = curve_2d_offset ) OR ( offset_type = curve_3d_offset ) ) AND ( SIZEOF( QUERY ( q <* ( SELF\ - explicit_constraint.constrained_elements + SELF\explicit_constraint.reference_elements ) | ( + explicit_constraint.constrained_elements + SELF\explicit_constraint.reference_elements ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SURFACE' IN TYPEOF( q ) ) ) ) > 0 ) ) ); - wr2: ( NOT ( ( offset_type = surface_offset ) AND ( SIZEOF( QUERY ( q <* ( SELF\explicit_constraint.constrained_elements + - SELF\explicit_constraint.reference_elements ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CURVE' IN + wr2: ( NOT ( ( offset_type = surface_offset ) AND ( SIZEOF( QUERY ( q <* ( SELF\explicit_constraint.constrained_elements + + SELF\explicit_constraint.reference_elements ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CURVE' IN TYPEOF( q ) ) ) ) > 0 ) ) ); END_ENTITY; @@ -14231,7 +15121,10 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; END_ENTITY; ENTITY part_laminate_table - SUPERTYPE OF ( ONEOF ( composite_assembly_table, ply_laminate_table ) ) + SUPERTYPE OF ( + ONEOF ( + composite_assembly_table, + ply_laminate_table ) ) SUBTYPE OF ( laminate_table ); END_ENTITY; @@ -14251,27 +15144,27 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; wr4: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( - QUERY ( it <* impl_rep.used_representation.items | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLACEMENT' + + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( + QUERY ( it <* impl_rep.used_representation.items | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLACEMENT' IN TYPEOF( it ) ) AND ( it.name = 'orientation' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ); wr5: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( + + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'MEASURE_REPRESENTATION_ITEM' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * + + 'MEASURE_REPRESENTATION_ITEM' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF( it ) ) = 2 ) AND ( it.name = 'radius' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ); wr6: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( + + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'MEASURE_REPRESENTATION_ITEM' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANE_ANGLE_MEASURE_WITH_UNIT'] + + 'MEASURE_REPRESENTATION_ITEM' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANE_ANGLE_MEASURE_WITH_UNIT'] * TYPEOF( it ) ) = 2 ) AND ( it.name = 'sweep angle' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ); wr7: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( pdr <* USEDIN( pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'PLANAR_SHAPE_REPRESENTATION' IN TYPEOF( pdr.used_representation ) ) AND ( pdr.used_representation.name = + + 'PLANAR_SHAPE_REPRESENTATION' IN TYPEOF( pdr.used_representation ) ) AND ( pdr.used_representation.name = 'profile limit' ) ) ) ) <= 1 ) ) ) ) = 0 ); END_ENTITY; @@ -14284,7 +15177,7 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; WHERE wr1: has_values_space( derivand ); wr2: space_is_continuum( values_space_of( derivand ) ); - wr3: ( SIZEOF( QUERY ( vbl <* d_variables | ( ( NOT subspace_of( values_space_of( vbl ), the_reals ) ) AND ( NOT + wr3: ( SIZEOF( QUERY ( vbl <* d_variables | ( ( NOT subspace_of( values_space_of( vbl ), the_reals ) ) AND ( NOT subspace_of( values_space_of( vbl ), the_complex_numbers ) ) ) ) ) = 0 ); END_ENTITY; @@ -14310,13 +15203,13 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; interference_tolerance : length_measure; WHERE wr1: ( ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' ) IN TYPEOF( SELF\ - shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold ) ) + shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold ) ) AND ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE' IN value_limit_type( SELF\ shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold ) ) ); wr2: validate_measured_data_type( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE' ); - wr3: validate_inspected_elements_type( SELF, [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CURVE', + wr3: validate_inspected_elements_type( SELF, [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CURVE', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CURVE' ] ); - wr4: validate_locations_of_extreme_value_type( SELF, [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.TRIMMED_CURVE', + wr4: validate_locations_of_extreme_value_type( SELF, [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.TRIMMED_CURVE', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.TRIMMED_CURVE' ] ); wr5: validate_accuracy_types( SELF, [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE'] ); END_ENTITY; @@ -14327,13 +15220,13 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; interference_tolerance : length_measure; WHERE wr1: ( ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' ) IN TYPEOF( SELF\ - shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold ) ) + shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold ) ) AND ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE' IN value_limit_type( SELF\ shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold ) ) ); wr2: validate_measured_data_type( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE' ); - wr3: validate_inspected_elements_type( SELF, [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EDGE_CURVE', + wr3: validate_inspected_elements_type( SELF, [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EDGE_CURVE', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EDGE_CURVE' ] ); - wr4: validate_locations_of_extreme_value_type( SELF, [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SUBEDGE', + wr4: validate_locations_of_extreme_value_type( SELF, [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SUBEDGE', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SUBEDGE' ] ); wr5: validate_accuracy_types( SELF, [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE'] ); END_ENTITY; @@ -14344,13 +15237,13 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; interference_tolerance : length_measure; WHERE wr1: ( ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' ) IN TYPEOF( SELF\ - shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold ) ) + shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold ) ) AND ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.AREA_MEASURE' IN value_limit_type( SELF\ shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold ) ) ); wr2: validate_measured_data_type( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.AREA_MEASURE' ); - wr3: validate_inspected_elements_type( SELF, [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FACE_SURFACE', + wr3: validate_inspected_elements_type( SELF, [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FACE_SURFACE', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FACE_SURFACE' ] ); - wr4: validate_locations_of_extreme_value_type( SELF, [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SUBFACE', + wr4: validate_locations_of_extreme_value_type( SELF, [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SUBFACE', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SUBFACE' ] ); wr5: validate_accuracy_types( SELF, [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.AREA_MEASURE'] ); END_ENTITY; @@ -14361,13 +15254,13 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; interference_tolerance : length_measure; WHERE wr1: ( ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' ) IN TYPEOF( SELF\ - shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold ) ) + shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold ) ) AND ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.AREA_MEASURE' IN value_limit_type( SELF\ shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold ) ) ); wr2: validate_measured_data_type( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.AREA_MEASURE' ); - wr3: validate_inspected_elements_type( SELF, [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MANIFOLD_SOLID_BREP', + wr3: validate_inspected_elements_type( SELF, [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MANIFOLD_SOLID_BREP', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MANIFOLD_SOLID_BREP' ] ); - wr4: validate_locations_of_extreme_value_type( SELF, [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SUBFACE', + wr4: validate_locations_of_extreme_value_type( SELF, [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SUBFACE', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SUBFACE' ] ); wr5: validate_accuracy_types( SELF, [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.AREA_MEASURE'] ); END_ENTITY; @@ -14378,11 +15271,11 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; interference_tolerance : length_measure; WHERE wr1: ( ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' ) IN TYPEOF( SELF\ - shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold ) ) + shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold ) ) AND ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.AREA_MEASURE' IN value_limit_type( SELF\ shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold ) ) ); wr2: validate_measured_data_type( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.AREA_MEASURE' ); - wr3: validate_inspected_elements_type( SELF, [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SURFACE', + wr3: validate_inspected_elements_type( SELF, [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SURFACE', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SURFACE' ] ); wr4: validate_locations_of_extreme_value_type( SELF, [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'CURVE_BOUNDED_SURFACE' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CURVE_BOUNDED_SURFACE'] ); @@ -14390,7 +15283,10 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; END_ENTITY; ENTITY path - SUPERTYPE OF ( ONEOF ( edge_loop, oriented_path ) ) + SUPERTYPE OF ( + ONEOF ( + edge_loop, + oriented_path ) ) SUBTYPE OF ( topological_representation_item ); edge_list : LIST [1 : ?] OF UNIQUE oriented_edge; WHERE @@ -14411,82 +15307,87 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; WHERE wr1 : ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FEATURE_COMPONENT_DEFINITION' IN TYPEOF( SELF.of_shape.definition ) ); wr2 : ( SELF.description IN [ 'partial circular', 'complete circular', 'linear', 'complex'] ); - wr3 : ( ( NOT ( SELF.description = 'complex' ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( + wr3 : ( ( NOT ( SELF.description = 'complex' ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( pdr <* USEDIN( pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.' - + 'DEFINITION' ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN + + 'DEFINITION' ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) ) = 1 ) ) ) ) = 0 ) ); wr4 : ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( - QUERY ( it <* impl_rep.used_representation.items | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLACEMENT' + + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( + QUERY ( it <* impl_rep.used_representation.items | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLACEMENT' IN TYPEOF( it ) ) AND ( it.name = 'orientation' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ); - wr5 : ( ( NOT ( SELF.description = 'partial circular' ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( + wr5 : ( ( NOT ( SELF.description = 'partial circular' ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( impl_rep. used_representation.items ) = 3 ) ) ) ) = 0 ) ) ) ) = 0 ) ); - wr6 : ( ( NOT ( SELF.description = 'partial circular' ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( + wr6 : ( ( NOT ( SELF.description = 'partial circular' ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( + + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'MEASURE_REPRESENTATION_ITEM' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * + + 'MEASURE_REPRESENTATION_ITEM' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF( it ) ) = 2 ) AND ( it.name = 'radius' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ) ); - wr7 : ( ( NOT ( SELF.description = 'partial circular' ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( + wr7 : ( ( NOT ( SELF.description = 'partial circular' ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( + + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'MEASURE_REPRESENTATION_ITEM' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANE_ANGLE_MEASURE_WITH_UNIT'] + + 'MEASURE_REPRESENTATION_ITEM' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANE_ANGLE_MEASURE_WITH_UNIT'] * TYPEOF( it ) ) = 2 ) AND ( it.name = 'sweep angle' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ) ); - wr8 : ( ( NOT ( SELF.description = 'complete circular' ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( + wr8 : ( ( NOT ( SELF.description = 'complete circular' ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( impl_rep. used_representation.items ) = 2 ) ) ) ) = 0 ) ) ) ) = 0 ) ); - wr9 : ( ( NOT ( SELF.description = 'complete circular' ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( + wr9 : ( ( NOT ( SELF.description = 'complete circular' ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( + + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'MEASURE_REPRESENTATION_ITEM' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * + + 'MEASURE_REPRESENTATION_ITEM' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF( it ) ) = 2 ) AND ( it.name = 'radius' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ) ); - wr10: ( ( NOT ( SELF.description = 'linear' ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( + wr10: ( ( NOT ( SELF.description = 'linear' ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( impl_rep. used_representation.items ) = 2 ) ) ) ) = 0 ) ) ) ) = 0 ) ); - wr11: ( ( NOT ( SELF.description = 'linear' ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( + wr11: ( ( NOT ( SELF.description = 'linear' ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( + + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'MEASURE_REPRESENTATION_ITEM' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * + + 'MEASURE_REPRESENTATION_ITEM' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF( it ) ) = 2 ) AND ( it.name = 'distance' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ) ); - wr12: ( ( NOT ( SELF.description = 'linear' ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( + wr12: ( ( NOT ( SELF.description = 'linear' ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( pdr <* USEDIN( pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.' - + 'DEFINITION' ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DIRECTION_SHAPE_REPRESENTATION' IN + + 'DEFINITION' ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DIRECTION_SHAPE_REPRESENTATION' IN TYPEOF( pdr.used_representation ) ) ) ) = 1 ) ) ) ) = 0 ) ); - wr13: ( ( NOT ( SELF.description = 'complex' ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( + wr13: ( ( NOT ( SELF.description = 'complex' ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( pdr <* USEDIN( pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.' - + 'DEFINITION' ) | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PATH_SHAPE_REPRESENTATION' IN TYPEOF( - pdr.used_representation ) ) AND ( pdr.used_representation.name = 'sweep path' ) AND ( SIZEOF( QUERY ( srwp_i <* + + 'DEFINITION' ) | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PATH_SHAPE_REPRESENTATION' IN TYPEOF( + pdr.used_representation ) ) AND ( pdr.used_representation.name = 'sweep path' ) AND ( SIZEOF( QUERY ( srwp_i <* pdr.used_representation.items | ( srwp_i.name = 'profile shape' ) ) ) = 1 ) ) ) ) = 1 ) ) ) ) = 0 ) ); END_ENTITY; ENTITY path_node - ABSTRACT SUPERTYPE OF ( ONEOF ( point_to_point_path, circular_path, linear_path, curve_based_path ) ) + ABSTRACT SUPERTYPE OF ( + ONEOF ( + point_to_point_path, + circular_path, + linear_path, + curve_based_path ) ) SUBTYPE OF ( kinematic_path_segment ); placement_end : placement; END_ENTITY; @@ -14507,7 +15408,7 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; SUBTYPE OF ( shape_representation ); WHERE wr1: ( SIZEOF( SELF.items ) >= 1 ); - wr2: ( SIZEOF( QUERY ( i <* SELF.items | ( SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.BOUNDED_CURVE', + wr2: ( SIZEOF( QUERY ( i <* SELF.items | ( SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.BOUNDED_CURVE', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EDGE_CURVE' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PATH' ] * TYPEOF( i ) ) = 1 ) ) ) >= 1 ); END_ENTITY; @@ -14515,179 +15416,179 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; ENTITY pattern_offset_membership SUBTYPE OF ( feature_component_relationship ); WHERE - wr1 : ( SIZEOF( QUERY ( fcr <* QUERY ( sar <* USEDIN( SELF.relating_shape_aspect, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.' + 'RELATING_SHAPE_ASPECT' ) | ( ( - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF( sar ) ) AND ( sar - :<>: SELF ) ) ) | ( SIZEOF( QUERY ( pdr <* QUERY ( pd <* USEDIN( fcr.related_shape_aspect.of_shape, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( + wr1 : ( SIZEOF( QUERY ( fcr <* QUERY ( sar <* USEDIN( SELF.relating_shape_aspect, + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.' + 'RELATING_SHAPE_ASPECT' ) | ( ( + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF( sar ) ) AND ( sar + :<>: SELF ) ) ) | ( SIZEOF( QUERY ( pdr <* QUERY ( pd <* USEDIN( fcr.related_shape_aspect.of_shape, + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) | ( SIZEOF( [ - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CIRCULAR_PATTERN' , - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.RECTANGULAR_PATTERN' ] * TYPEOF( pdr.definition ) ) = 1 ) ) ) = + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CIRCULAR_PATTERN' , + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.RECTANGULAR_PATTERN' ] * TYPEOF( pdr.definition ) ) = 1 ) ) ) = 0 ) ) ) = 0 ); - wr2 : ( SIZEOF( QUERY ( fcr <* QUERY ( sar <* USEDIN( SELF.related_shape_aspect, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT' ) | ( ( - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF( sar ) ) AND ( sar - :<>: SELF ) ) ) | ( ( fcr.description = 'modified pattern' ) AND ( - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MODIFIED_PATTERN' IN TYPEOF( fcr.relating_shape_aspect ) ) ) ) ) + wr2 : ( SIZEOF( QUERY ( fcr <* QUERY ( sar <* USEDIN( SELF.related_shape_aspect, + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT' ) | ( ( + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF( sar ) ) AND ( sar + :<>: SELF ) ) ) | ( ( fcr.description = 'modified pattern' ) AND ( + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MODIFIED_PATTERN' IN TYPEOF( fcr.relating_shape_aspect ) ) ) ) ) >= 1 ); - wr3 : ( SIZEOF( QUERY ( fcr <* QUERY ( sar <* USEDIN( SELF.related_shape_aspect, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT' ) | ( ( - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF( sar ) ) AND ( sar + wr3 : ( SIZEOF( QUERY ( fcr <* QUERY ( sar <* USEDIN( SELF.related_shape_aspect, + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT' ) | ( ( + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF( sar ) ) AND ( sar :<>: SELF ) ) ) | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MODIFIED_PATTERN' IN TYPEOF( fcr. relating_shape_aspect ) ) AND ( NOT ( SIZEOF( QUERY ( modfcr <* QUERY ( modsar <* USEDIN( fcr. relating_shape_aspect, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.' - + 'RELATING_SHAPE_ASPECT' ) | ( ( SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CIRCULAR_PATTERN', + + 'RELATING_SHAPE_ASPECT' ) | ( ( SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CIRCULAR_PATTERN', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.RECTANGULAR_PATTERN' ] * TYPEOF( modsar.related_shape_aspect. of_shape.definition ) ) = 1 ) AND ( modsar :<>: fcr ) ) ) | ( NOT ( modfcr.related_shape_aspect.of_shape. definition :=: SELF.relating_shape_aspect.of_shape.definition ) ) ) ) = 0 ) ) ) ) ) = 0 ); wr4 : ( ( NOT ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.RECTANGULAR_PATTERN' IN TYPEOF( SELF.relating_shape_aspect - .of_shape.definition ) ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF.related_shape_aspect, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( USEDIN( pd, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) ) = 2 ) ) ) ) + .of_shape.definition ) ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF.related_shape_aspect, + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( USEDIN( pd, + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) ) = 2 ) ) ) ) = 0 ) ); wr5 : ( ( NOT ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CIRCULAR_PATTERN' IN TYPEOF( SELF.relating_shape_aspect. - of_shape.definition ) ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF.related_shape_aspect, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( USEDIN( pd, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) ) = 1 ) ) ) ) + of_shape.definition ) ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF.related_shape_aspect, + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( USEDIN( pd, + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) ) = 1 ) ) ) ) = 0 ) ); wr6 : ( ( NOT ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CIRCULAR_PATTERN' IN TYPEOF( SELF.relating_shape_aspect. - of_shape.definition ) ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF.related_shape_aspect, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( + of_shape.definition ) ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF.related_shape_aspect, + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( pdr <* USEDIN( pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.' + 'DEFINITION' ) | ( NOT ( SIZEOF( pdr.used_representation.items ) = 2 ) ) ) ) = 0 ) ) ) ) = 0 ) ); wr7 : ( ( NOT ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CIRCULAR_PATTERN' IN TYPEOF( SELF.relating_shape_aspect. - of_shape.definition ) ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF.related_shape_aspect, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( + of_shape.definition ) ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF.related_shape_aspect, + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( + + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'MEASURE_REPRESENTATION_ITEM' IN TYPEOF( it ) ) AND ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'COUNT_MEASURE' IN TYPEOF( it\measure_with_unit.value_component ) ) AND ( it.name = 'index number' ) ) ) ) = 1 ) ) ) ) + + 'COUNT_MEASURE' IN TYPEOF( it\measure_with_unit.value_component ) ) AND ( it.name = 'index number' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ) ); wr8 : ( ( NOT ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CIRCULAR_PATTERN' IN TYPEOF( SELF.relating_shape_aspect. - of_shape.definition ) ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF.related_shape_aspect, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( + of_shape.definition ) ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF.related_shape_aspect, + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( + + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PLANE_ANGLE_MEASURE_WITH_UNIT' IN TYPEOF( it ) ) AND ( it.name = 'offset' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ) ); wr9 : ( ( NOT ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.RECTANGULAR_PATTERN' IN TYPEOF( SELF.relating_shape_aspect - .of_shape.definition ) ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF.related_shape_aspect, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( + .of_shape.definition ) ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF.related_shape_aspect, + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( impl_rep. used_representation.items ) = 3 ) ) ) ) = 0 ) ) ) ) = 0 ) ); wr10: ( ( NOT ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.RECTANGULAR_PATTERN' IN TYPEOF( SELF.relating_shape_aspect - .of_shape.definition ) ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF.related_shape_aspect, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( + .of_shape.definition ) ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF.related_shape_aspect, + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( + + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'MEASURE_REPRESENTATION_ITEM' IN TYPEOF( it ) ) AND ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'COUNT_MEASURE' IN TYPEOF( it\measure_with_unit.value_component ) ) AND ( it.name = 'row index' ) ) ) ) = 1 ) ) ) ) + + 'COUNT_MEASURE' IN TYPEOF( it\measure_with_unit.value_component ) ) AND ( it.name = 'row index' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ) ); wr11: ( ( NOT ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.RECTANGULAR_PATTERN' IN TYPEOF( SELF.relating_shape_aspect - .of_shape.definition ) ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF.related_shape_aspect, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( + .of_shape.definition ) ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF.related_shape_aspect, + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( + + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'MEASURE_REPRESENTATION_ITEM' IN TYPEOF( it ) ) AND ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'COUNT_MEASURE' IN TYPEOF( it\measure_with_unit.value_component ) ) AND ( it.name = 'column index' ) ) ) ) = 1 ) ) ) ) + + 'COUNT_MEASURE' IN TYPEOF( it\measure_with_unit.value_component ) ) AND ( it.name = 'column index' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ) ); wr12: ( ( NOT ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.RECTANGULAR_PATTERN' IN TYPEOF( SELF.relating_shape_aspect - .of_shape.definition ) ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF.related_shape_aspect, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( + .of_shape.definition ) ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF.related_shape_aspect, + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( + + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'LENGTH_MEASURE_WITH_UNIT' IN TYPEOF( it ) ) AND ( it.name = 'offset distance' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) + + 'LENGTH_MEASURE_WITH_UNIT' IN TYPEOF( it ) ) AND ( it.name = 'offset distance' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ) ); wr13: ( ( NOT ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.RECTANGULAR_PATTERN' IN TYPEOF( SELF.relating_shape_aspect - .of_shape.definition ) ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF.related_shape_aspect, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( + .of_shape.definition ) ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF.related_shape_aspect, + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( pdr <* USEDIN( pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.' - + 'DEFINITION' ) | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DIRECTION_SHAPE_REPRESENTATION' IN - TYPEOF( pdr.used_representation ) ) AND ( pdr.used_representation.name = 'offset direction' ) ) ) ) = 1 ) ) ) ) = + + 'DEFINITION' ) | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DIRECTION_SHAPE_REPRESENTATION' IN + TYPEOF( pdr.used_representation ) ) AND ( pdr.used_representation.name = 'offset direction' ) ) ) ) = 1 ) ) ) ) = 0 ) ); END_ENTITY; ENTITY pattern_omit_membership SUBTYPE OF ( feature_component_relationship ); WHERE - wr1: ( SIZEOF( QUERY ( fcr <* QUERY ( sar <* USEDIN( SELF.relating_shape_aspect, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.' + 'RELATING_SHAPE_ASPECT' ) | ( ( - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF( sar ) ) AND ( sar - :<>: SELF ) ) ) | ( SIZEOF( QUERY ( pdr <* QUERY ( pd <* USEDIN( fcr.related_shape_aspect.of_shape, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( + wr1: ( SIZEOF( QUERY ( fcr <* QUERY ( sar <* USEDIN( SELF.relating_shape_aspect, + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.' + 'RELATING_SHAPE_ASPECT' ) | ( ( + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF( sar ) ) AND ( sar + :<>: SELF ) ) ) | ( SIZEOF( QUERY ( pdr <* QUERY ( pd <* USEDIN( fcr.related_shape_aspect.of_shape, + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) | ( SIZEOF( [ - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CIRCULAR_PATTERN' , - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.RECTANGULAR_PATTERN' ] * TYPEOF( pdr.definition ) ) = 1 ) ) ) = 0 ) ) ) + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CIRCULAR_PATTERN' , + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.RECTANGULAR_PATTERN' ] * TYPEOF( pdr.definition ) ) = 1 ) ) ) = 0 ) ) ) = 0 ); - wr2: ( SIZEOF( QUERY ( fcr <* QUERY ( sar <* USEDIN( SELF.related_shape_aspect, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT' ) | ( ( - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF( sar ) ) AND ( sar + wr2: ( SIZEOF( QUERY ( fcr <* QUERY ( sar <* USEDIN( SELF.related_shape_aspect, + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT' ) | ( ( + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF( sar ) ) AND ( sar :<>: SELF ) ) ) | ( ( fcr.description = 'modified pattern' ) AND ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'MODIFIED_PATTERN' IN TYPEOF( fcr.relating_shape_aspect ) ) ) ) ) >= 1 ); - wr3: ( SIZEOF( QUERY ( fcr <* QUERY ( sar <* USEDIN( SELF.related_shape_aspect, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT' ) | ( ( - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF( sar ) ) AND ( sar + wr3: ( SIZEOF( QUERY ( fcr <* QUERY ( sar <* USEDIN( SELF.related_shape_aspect, + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT' ) | ( ( + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF( sar ) ) AND ( sar :<>: SELF ) ) ) | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MODIFIED_PATTERN' IN TYPEOF( fcr. - relating_shape_aspect ) ) AND ( NOT ( SIZEOF( QUERY ( modfcr <* QUERY ( modsar <* USEDIN( fcr.relating_shape_aspect, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATING_SHAPE_ASPECT' ) | ( ( - SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CIRCULAR_PATTERN', + relating_shape_aspect ) ) AND ( NOT ( SIZEOF( QUERY ( modfcr <* QUERY ( modsar <* USEDIN( fcr.relating_shape_aspect, + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATING_SHAPE_ASPECT' ) | ( ( + SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CIRCULAR_PATTERN', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.RECTANGULAR_PATTERN' ] * TYPEOF( modsar.related_shape_aspect. - of_shape.definition ) ) = 1 ) AND ( modsar :<>: fcr ) ) ) | ( NOT ( modfcr.related_shape_aspect.of_shape.definition + of_shape.definition ) ) = 1 ) AND ( modsar :<>: fcr ) ) ) | ( NOT ( modfcr.related_shape_aspect.of_shape.definition :=: SELF.relating_shape_aspect.of_shape.definition ) ) ) ) = 0 ) ) ) ) ) = 0 ); wr4: ( SIZEOF( QUERY ( pd <* USEDIN( SELF.related_shape_aspect, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( USEDIN( pd, + + 'PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( USEDIN( pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) ) = 1 ) ) ) ) = 0 ); wr5: ( ( NOT ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CIRCULAR_PATTERN' IN TYPEOF( SELF.relating_shape_aspect. - of_shape.definition ) ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF.related_shape_aspect, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( + of_shape.definition ) ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF.related_shape_aspect, + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( pdr <* USEDIN( pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.' + 'DEFINITION' ) | ( NOT ( SIZEOF( pdr.used_representation.items ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ) ); wr6: ( ( NOT ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CIRCULAR_PATTERN' IN TYPEOF( SELF.relating_shape_aspect. - of_shape.definition ) ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF.related_shape_aspect, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( + of_shape.definition ) ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF.related_shape_aspect, + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( + + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'MEASURE_REPRESENTATION_ITEM' IN TYPEOF( it ) ) AND ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'COUNT_MEASURE' IN TYPEOF( it\measure_with_unit.value_component ) ) AND ( it.name = 'index number' ) ) ) ) = 1 ) ) ) ) + + 'COUNT_MEASURE' IN TYPEOF( it\measure_with_unit.value_component ) ) AND ( it.name = 'index number' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ) ); wr7: ( ( NOT ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.RECTANGULAR_PATTERN' IN TYPEOF( SELF.relating_shape_aspect. - of_shape.definition ) ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF.related_shape_aspect, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( + of_shape.definition ) ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF.related_shape_aspect, + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( pdr <* USEDIN( pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.' + 'DEFINITION' ) | ( NOT ( SIZEOF( pdr.used_representation.items ) = 2 ) ) ) ) = 0 ) ) ) ) = 0 ) ); wr8: ( ( NOT ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.RECTANGULAR_PATTERN' IN TYPEOF( SELF.relating_shape_aspect. - of_shape.definition ) ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF.related_shape_aspect, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( + of_shape.definition ) ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF.related_shape_aspect, + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( + + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'MEASURE_REPRESENTATION_ITEM' IN TYPEOF( it ) ) AND ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'COUNT_MEASURE' IN TYPEOF( it\measure_with_unit.value_component ) ) AND ( it.name = 'row index' ) ) ) ) = 1 ) ) ) ) + + 'COUNT_MEASURE' IN TYPEOF( it\measure_with_unit.value_component ) ) AND ( it.name = 'row index' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ) ); wr9: ( ( NOT ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.RECTANGULAR_PATTERN' IN TYPEOF( SELF.relating_shape_aspect. - of_shape.definition ) ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF.related_shape_aspect, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( + of_shape.definition ) ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF.related_shape_aspect, + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( + + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'MEASURE_REPRESENTATION_ITEM' IN TYPEOF( it ) ) AND ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'COUNT_MEASURE' IN TYPEOF( it\measure_with_unit.value_component ) ) AND ( it.name = 'column index' ) ) ) ) = 1 ) ) ) ) + + 'COUNT_MEASURE' IN TYPEOF( it\measure_with_unit.value_component ) ) AND ( it.name = 'column index' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ) ); END_ENTITY; @@ -14720,18 +15621,18 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; SELF\explicit_constraint.reference_elements : SET [0 : 2] OF linear_geometry_constraint_element; WHERE wr1: ( NOT ( ( SIZEOF( SELF\explicit_constraint.reference_elements ) = 2 ) AND ( NOT ( ( SIZEOF( QUERY ( q <* ( SELF\ - explicit_constraint.constrained_elements + SELF\explicit_constraint.reference_elements ) | ( + explicit_constraint.constrained_elements + SELF\explicit_constraint.reference_elements ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LINE' IN TYPEOF( q ) ) ) ) = SIZEOF( SELF\explicit_constraint. reference_elements + SELF\explicit_constraint.constrained_elements ) ) XOR ( SIZEOF( QUERY ( q <* ( SELF\ - explicit_constraint.constrained_elements + SELF\explicit_constraint.reference_elements ) | ( + explicit_constraint.constrained_elements + SELF\explicit_constraint.reference_elements ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANE' IN TYPEOF( q ) ) ) ) = SIZEOF( SELF\explicit_constraint. reference_elements + SELF\explicit_constraint.constrained_elements ) ) ) ) ) ); wr2: ( ( SIZEOF( SELF\explicit_constraint.reference_elements ) > 0 ) OR ( SIZEOF( SELF\explicit_constraint. constrained_elements ) IN [2, 3] ) ); wr3: ( ( NOT ( ( SIZEOF( SELF\explicit_constraint.reference_elements ) = 0 ) AND ( SIZEOF( SELF\explicit_constraint. constrained_elements ) = 3 ) ) ) AND ( NOT ( ( SIZEOF( QUERY ( q <* SELF\explicit_constraint.constrained_elements - | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LINE' IN TYPEOF( q ) ) ) ) = 3 ) XOR ( SIZEOF( QUERY ( q <* - SELF\explicit_constraint.constrained_elements | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANE' IN + | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LINE' IN TYPEOF( q ) ) ) ) = 3 ) XOR ( SIZEOF( QUERY ( q <* + SELF\explicit_constraint.constrained_elements | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANE' IN TYPEOF( q ) ) ) ) = 3 ) ) ) ); END_ENTITY; @@ -14764,7 +15665,7 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; description : text := get_description_value( SELF ); WHERE wr1: ( SIZEOF( USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'NAME_ATTRIBUTE.NAMED_ITEM' ) ) <= 1 ); - wr2: ( SIZEOF( USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'DESCRIPTION_ATTRIBUTE.DESCRIBED_ITEM' ) ) + wr2: ( SIZEOF( USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'DESCRIPTION_ATTRIBUTE.DESCRIBED_ITEM' ) ) <= 1 ); END_ENTITY; @@ -14774,7 +15675,7 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; SELF\personal_address.people : SET [1 : 1] OF person; WHERE wr1: ( SIZEOF( QUERY ( pao <* USEDIN( SELF\personal_address.people[1], 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'PERSON_AND_ORGANIZATION.THE_PERSON' ) | ( pao.the_organization :=: SELF\organizational_address.organizations[1] ) ) ) + + 'PERSON_AND_ORGANIZATION.THE_PERSON' ) | ( pao.the_organization :=: SELF\organizational_address.organizations[1] ) ) ) = 1 ); END_ENTITY; @@ -14789,7 +15690,7 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; DERIVE description : text := get_description_value( SELF ); WHERE - wr1: ( SIZEOF( USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'DESCRIPTION_ATTRIBUTE.DESCRIBED_ITEM' ) ) + wr1: ( SIZEOF( USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'DESCRIPTION_ATTRIBUTE.DESCRIBED_ITEM' ) ) <= 1 ); END_ENTITY; @@ -14807,7 +15708,7 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; wr1: ( ( SIZEOF( SELF\explicit_constraint.reference_elements ) = 1 ) OR ( SIZEOF( SELF\explicit_constraint. constrained_elements ) = 2 ) ); wr2: ( SIZEOF( QUERY ( q <* ( SELF\explicit_constraint.reference_elements + SELF\explicit_constraint.constrained_elements ) - | ( SIZEOF( TYPEOF( q ) * [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DIRECTION', + | ( SIZEOF( TYPEOF( q ) * [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DIRECTION', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.VECTOR' ] ) > 0 ) ) ) = 0 ); END_ENTITY; @@ -14837,22 +15738,25 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; INVERSE size : presentation_size FOR unit; WHERE - wr1: ( SIZEOF( QUERY ( item <* items | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.STYLED_ITEM' IN TYPEOF( item ) ) ) ) + wr1: ( SIZEOF( QUERY ( item <* items | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.STYLED_ITEM' IN TYPEOF( item ) ) ) ) = 1 ); - wr2: ( SIZEOF( QUERY ( se <* QUERY ( item <* SELF.items | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.STYLED_ITEM' - IN TYPEOF( item ) ) ) | ( NOT ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PICTURE_REPRESENTATION_ITEM' IN + wr2: ( SIZEOF( QUERY ( se <* QUERY ( item <* SELF.items | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.STYLED_ITEM' + IN TYPEOF( item ) ) ) | ( NOT ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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 ) ) + 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 := + 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 curve'] ); @@ -14866,7 +15770,11 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; END_ENTITY; ENTITY placement - SUPERTYPE OF ( ONEOF ( axis1_placement, axis2_placement_2d, axis2_placement_3d ) ) + SUPERTYPE OF ( + ONEOF ( + axis1_placement, + axis2_placement_2d, + axis2_placement_3d ) ) SUBTYPE OF ( geometric_representation_item ); location : cartesian_point; END_ENTITY; @@ -14877,7 +15785,12 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; END_ENTITY; ENTITY planar_curve_pair - SUPERTYPE OF ( ONEOF ( sliding_curve_pair, rolling_curve_pair ) ANDOR planar_curve_pair_range ) + SUPERTYPE OF ( + ONEOF ( + sliding_curve_pair, + rolling_curve_pair ) + ANDOR + planar_curve_pair_range ) SUBTYPE OF ( high_order_kinematic_pair ); curve_1 : curve; curve_2 : curve; @@ -14885,7 +15798,7 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; WHERE wr1: ( SIZEOF( QUERY ( r <* SELF\kinematic_pair.associated_link_representations_1 | ( NOT ( curve_1 IN r.items ) ) ) ) = 0 ); wr2: ( SIZEOF( QUERY ( r <* SELF\kinematic_pair.associated_link_representations_2 | ( NOT ( curve_2 IN r.items ) ) ) ) = 0 ); - wr3: ( SIZEOF( QUERY ( lr <* SELF\kinematic_pair.associated_link_representations_1 | ( NOT ( + wr3: ( SIZEOF( QUERY ( lr <* SELF\kinematic_pair.associated_link_representations_1 | ( NOT ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.RIGID_LINK_REPRESENTATION' IN TYPEOF( lr ) ) ) ) ) = 0 ); END_ENTITY; @@ -14896,9 +15809,9 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; WHERE wr1: ( SELF\planar_curve_pair.curve_1 :=: range_on_curve_1.basis_curve ); wr2: ( SELF\planar_curve_pair.curve_2 :=: range_on_curve_2.basis_curve ); - wr3: ( SIZEOF( QUERY ( r <* SELF\kinematic_pair.associated_link_representations_1 | ( NOT ( range_on_curve_1 IN r.items ) ) ) ) + wr3: ( SIZEOF( QUERY ( r <* SELF\kinematic_pair.associated_link_representations_1 | ( NOT ( range_on_curve_1 IN r.items ) ) ) ) = 0 ); - wr4: ( SIZEOF( QUERY ( r <* SELF\kinematic_pair.associated_link_representations_2 | ( NOT ( range_on_curve_2 IN r.items ) ) ) ) + wr4: ( SIZEOF( QUERY ( r <* SELF\kinematic_pair.associated_link_representations_2 | ( NOT ( range_on_curve_2 IN r.items ) ) ) ) = 0 ); END_ENTITY; @@ -14936,11 +15849,11 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; lower_limit_actual_translation_y : OPTIONAL length_measure; upper_limit_actual_translation_y : OPTIONAL length_measure; WHERE - wr1: ( ( ( NOT EXISTS( lower_limit_actual_rotation ) ) OR ( NOT EXISTS( upper_limit_actual_rotation ) ) ) XOR ( + wr1: ( ( ( NOT EXISTS( lower_limit_actual_rotation ) ) OR ( NOT EXISTS( upper_limit_actual_rotation ) ) ) XOR ( lower_limit_actual_rotation < upper_limit_actual_rotation ) ); - wr2: ( ( ( NOT EXISTS( lower_limit_actual_translation_x ) ) OR ( NOT EXISTS( upper_limit_actual_translation_x ) ) ) XOR ( + wr2: ( ( ( NOT EXISTS( lower_limit_actual_translation_x ) ) OR ( NOT EXISTS( upper_limit_actual_translation_x ) ) ) XOR ( lower_limit_actual_translation_x < upper_limit_actual_translation_x ) ); - wr3: ( ( ( NOT EXISTS( lower_limit_actual_translation_y ) ) OR ( NOT EXISTS( upper_limit_actual_translation_y ) ) ) XOR ( + wr3: ( ( ( NOT EXISTS( lower_limit_actual_translation_y ) ) OR ( NOT EXISTS( upper_limit_actual_translation_y ) ) ) XOR ( lower_limit_actual_translation_y < upper_limit_actual_translation_y ) ); END_ENTITY; @@ -14978,7 +15891,7 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; SUBTYPE OF ( named_unit ); WHERE wr1: ( ( SELF\named_unit.dimensions.length_exponent = 0 ) AND ( SELF\named_unit.dimensions.mass_exponent = 0 ) AND ( SELF\ - named_unit.dimensions.time_exponent = 0 ) AND ( SELF\named_unit.dimensions.electric_current_exponent = 0 ) AND ( + named_unit.dimensions.time_exponent = 0 ) AND ( SELF\named_unit.dimensions.electric_current_exponent = 0 ) AND ( SELF\named_unit.dimensions.thermodynamic_temperature_exponent = 0 ) AND ( SELF\named_unit.dimensions. amount_of_substance_exponent = 0 ) AND ( SELF\named_unit.dimensions.luminous_intensity_exponent = 0 ) ); END_ENTITY; @@ -14997,9 +15910,9 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; ENTITY ply_laminate_sequence_definition SUBTYPE OF ( product_definition ); WHERE - wr1: ( SIZEOF( QUERY ( pdr <* USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + - 'PRODUCT_DEFINITION_RELATIONSHIP.' + 'RELATING_PRODUCT_DEFINITION' ) | ( ( - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'NEXT_ASSEMBLY_USAGE_OCCURRENCE' ) IN TYPEOF( pdr ) ) ) ) > + wr1: ( SIZEOF( QUERY ( pdr <* USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + + 'PRODUCT_DEFINITION_RELATIONSHIP.' + 'RELATING_PRODUCT_DEFINITION' ) | ( ( + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'NEXT_ASSEMBLY_USAGE_OCCURRENCE' ) IN TYPEOF( pdr ) ) ) ) > 0 ); END_ENTITY; @@ -15010,19 +15923,19 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; ENTITY pocket SUBTYPE OF ( feature_definition ); WHERE - wr1 : ( SELF\characterized_object.description IN [ 'closed rectangular', 'open rectangular', 'complex', 'circular cutout', + wr1 : ( SELF\characterized_object.description IN [ 'closed rectangular', 'open rectangular', 'complex', 'circular cutout', 'complex cutout' , 'recess'] ); wr2 : ( SIZEOF( QUERY ( pds <* QUERY ( pd <* USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PROPERTY_DEFINITION.DEFINITION' ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) | ( NOT ( SIZEOF( QUERY ( sa_occ <* USEDIN( pds, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) | ( ( sa_occ.description = - 'pocket depth occurrence' ) AND ( SIZEOF( QUERY ( sdr <* QUERY ( sar <* USEDIN( sa_occ, + + 'PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) | ( NOT ( SIZEOF( QUERY ( sa_occ <* USEDIN( pds, + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) | ( ( sa_occ.description = + 'pocket depth occurrence' ) AND ( SIZEOF( QUERY ( sdr <* QUERY ( sar <* USEDIN( sa_occ, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT' ) | ( ( sar. - description = 'path feature component usage' ) AND ( sar.name = 'pocket depth' ) AND ( - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF( sar ) ) ) ) | ( ( - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PATH_FEATURE_COMPONENT' IN TYPEOF( sdr.relating_shape_aspect ) ) + description = 'path feature component usage' ) AND ( sar.name = 'pocket depth' ) AND ( + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF( sar ) ) ) ) | ( ( + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PATH_FEATURE_COMPONENT' IN TYPEOF( sdr.relating_shape_aspect ) ) AND ( sdr.relating_shape_aspect.description = 'linear' ) ) ) ) = 1 ) ) ) ) = 1 ) ) ) ) = 0 ); - wr3 : ( SIZEOF( QUERY ( pdr <* get_property_definition_representations( SELF ) | ( + wr3 : ( SIZEOF( QUERY ( pdr <* get_property_definition_representations( SELF ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. used_representation ) ) ) ) = 1 ); wr4 : ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) @@ -15033,129 +15946,129 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; wr5 : ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( SIZEOF( QUERY ( pdr <* USEDIN( pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) AND ( SIZEOF( QUERY ( srwp_i <* - pdr.used_representation.items | ( ( srwp_i.name = 'orientation' ) OR ( srwp_i.name = 'fillet radius' ) ) ) ) = + + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) AND ( SIZEOF( QUERY ( srwp_i <* + pdr.used_representation.items | ( ( srwp_i.name = 'orientation' ) OR ( srwp_i.name = 'fillet radius' ) ) ) ) = SIZEOF( pdr.used_representation.items ) ) ) ) ) = 1 ) ) ) = 1 ); wr6 : ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( + + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'MEASURE_REPRESENTATION_ITEM' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * + + 'MEASURE_REPRESENTATION_ITEM' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF( it ) ) = 2 ) AND ( it.name = 'fillet radius' ) ) ) ) <= 1 ) ) ) ) = 0 ) ) ) ) = 0 ); - wr7 : ( ( NOT ( SELF\characterized_object.description IN [ 'complex', 'non-circular cutout', 'recess'] ) ) OR ( SIZEOF( + wr7 : ( ( NOT ( SELF\characterized_object.description IN [ 'complex', 'non-circular cutout', 'recess'] ) ) OR ( SIZEOF( QUERY ( pds <* QUERY ( pd <* USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.' + 'DEFINITION' ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) | ( NOT ( SIZEOF( QUERY ( sa_occ <* USEDIN( pds, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT.' - + 'OF_SHAPE' ) | ( ( sa_occ.description = 'boundary occurrence' ) AND ( SIZEOF( QUERY ( sdr <* QUERY ( sar <* + + 'OF_SHAPE' ) | ( ( sa_occ.description = 'boundary occurrence' ) AND ( SIZEOF( QUERY ( sdr <* QUERY ( sar <* USEDIN( sa_occ, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT' ) | ( ( sar.description = 'profile usage' ) AND ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF( sar ) ) ) ) | ( SIZEOF( [ - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CIRCULAR_CLOSED_PROFILE' , - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.NGON_CLOSED_PROFILE' , - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.RECTANGULAR_CLOSED_PROFILE' , - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CLOSED_PATH_PROFILE' , - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SQUARE_U_PROFILE' , - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PARTIAL_CIRCULAR_PROFILE' , - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ROUNDED_U_PROFILE' , + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CIRCULAR_CLOSED_PROFILE' , + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.NGON_CLOSED_PROFILE' , + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.RECTANGULAR_CLOSED_PROFILE' , + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CLOSED_PATH_PROFILE' , + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SQUARE_U_PROFILE' , + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PARTIAL_CIRCULAR_PROFILE' , + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ROUNDED_U_PROFILE' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.VEE_PROFILE' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'TEE_PROFILE' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.OPEN_PATH_PROFILE'] * TYPEOF( sdr. relating_shape_aspect ) ) = 1 ) ) ) = 1 ) ) ) ) = 1 ) ) ) ) = 0 ) ); - wr8 : ( ( NOT ( SELF\characterized_object.description = 'closed rectangular' ) ) OR ( SIZEOF( QUERY ( pds <* QUERY ( pd <* - USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) | ( NOT ( + wr8 : ( ( NOT ( SELF\characterized_object.description = 'closed rectangular' ) ) OR ( SIZEOF( QUERY ( pds <* QUERY ( pd <* + USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) | ( NOT ( SIZEOF( QUERY ( sa_occ <* USEDIN( pds, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) - | ( ( sa_occ.description = 'closed boundary occurrence' ) AND ( SIZEOF( QUERY ( sdr <* QUERY ( sar <* USEDIN( - sa_occ, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT' ) | ( ( + | ( ( sa_occ.description = 'closed boundary occurrence' ) AND ( SIZEOF( QUERY ( sdr <* QUERY ( sar <* USEDIN( + sa_occ, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT' ) | ( ( sar.description = 'profile usage' ) AND ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF( sar ) ) ) ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'RECTANGULAR_CLOSED_PROFILE' IN TYPEOF( sdr.relating_shape_aspect ) ) ) ) = 1 ) ) ) ) = 1 ) ) ) ) = 0 ) ); - wr9 : ( ( NOT ( SELF\characterized_object.description = 'open rectangular' ) ) OR ( SIZEOF( QUERY ( pds <* QUERY ( pd <* - USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) | ( NOT ( + wr9 : ( ( NOT ( SELF\characterized_object.description = 'open rectangular' ) ) OR ( SIZEOF( QUERY ( pds <* QUERY ( pd <* + USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) | ( NOT ( SIZEOF( QUERY ( sa_occ <* USEDIN( pds, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) - | ( ( sa_occ.description = 'open boundary occurrence' ) AND ( SIZEOF( QUERY ( sdr <* QUERY ( sar <* USEDIN( sa_occ, + | ( ( sa_occ.description = 'open boundary occurrence' ) AND ( SIZEOF( QUERY ( sdr <* QUERY ( sar <* USEDIN( sa_occ, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT' ) | ( ( sar. - description = 'profile usage' ) AND ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DEFINING_RELATIONSHIP' + description = 'profile usage' ) AND ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF( sar ) ) ) ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SQUARE_U_PROFILE' IN TYPEOF( sdr. relating_shape_aspect ) ) ) ) = 1 ) ) ) ) = 1 ) ) ) ) = 0 ) ); wr10: ( SIZEOF( QUERY ( pds <* QUERY ( pd <* USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PROPERTY_DEFINITION.DEFINITION' ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) | ( NOT ( SIZEOF( QUERY ( sa_occ <* USEDIN( pds, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) | ( ( sa_occ.description = - 'bottom condition occurrence' ) AND ( SIZEOF( QUERY ( sdr <* QUERY ( sar <* USEDIN( sa_occ, + + 'PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) | ( NOT ( SIZEOF( QUERY ( sa_occ <* USEDIN( pds, + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) | ( ( sa_occ.description = + 'bottom condition occurrence' ) AND ( SIZEOF( QUERY ( sdr <* QUERY ( sar <* USEDIN( sa_occ, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT' ) | ( ( sar. description = 'pocket bottom usage' ) AND ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF( sar ) ) ) ) | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'POCKET_BOTTOM' IN TYPEOF( sdr.relating_shape_aspect ) ) AND ( - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POCKET' IN TYPEOF( sdr.related_shape_aspect.of_shape.definition ) ) ) ) ) + + 'POCKET_BOTTOM' IN TYPEOF( sdr.relating_shape_aspect ) ) AND ( + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POCKET' IN TYPEOF( sdr.related_shape_aspect.of_shape.definition ) ) ) ) ) = 1 ) ) ) ) = 1 ) ) ) ) = 0 ); - wr11: ( ( NOT ( SELF\characterized_object.description IN [ 'complex', 'non-circular cutout', 'recess'] ) ) OR ( SIZEOF( + wr11: ( ( NOT ( SELF\characterized_object.description IN [ 'complex', 'non-circular cutout', 'recess'] ) ) OR ( SIZEOF( QUERY ( pds <* QUERY ( pd <* USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.' + 'DEFINITION' ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) | ( NOT ( SIZEOF( QUERY ( sa_occ <* USEDIN( pds, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT.' - + 'OF_SHAPE' ) | ( ( sa_occ.description = 'change in boundary occurrence' ) AND ( SIZEOF( QUERY ( fcr <* + + 'OF_SHAPE' ) | ( ( sa_occ.description = 'change in boundary occurrence' ) AND ( SIZEOF( QUERY ( fcr <* QUERY ( sar <* USEDIN( sa_occ, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.' - + 'RELATING_SHAPE_ASPECT' ) | ( ( sar.description = 'taper usage' ) AND ( - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF( sar ) ) ) ) | ( ( - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.TAPER' IN TYPEOF( fcr.relating_shape_aspect ) ) AND ( - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POCKET' IN TYPEOF( fcr.related_shape_aspect.of_shape.definition ) ) - AND ( fcr.related_shape_aspect.description IN [ 'angle taper', 'directed taper'] ) ) ) ) = 1 ) ) ) ) <= 1 ) ) ) ) + + 'RELATING_SHAPE_ASPECT' ) | ( ( sar.description = 'taper usage' ) AND ( + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF( sar ) ) ) ) | ( ( + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.TAPER' IN TYPEOF( fcr.relating_shape_aspect ) ) AND ( + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POCKET' IN TYPEOF( fcr.related_shape_aspect.of_shape.definition ) ) + AND ( fcr.related_shape_aspect.description IN [ 'angle taper', 'directed taper'] ) ) ) ) = 1 ) ) ) ) <= 1 ) ) ) ) = 0 ) ); - wr12: ( ( NOT ( SELF\characterized_object.description = 'circular cutout' ) ) OR ( SIZEOF( QUERY ( pds <* QUERY ( pd <* - USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) | ( NOT ( + wr12: ( ( NOT ( SELF\characterized_object.description = 'circular cutout' ) ) OR ( SIZEOF( QUERY ( pds <* QUERY ( pd <* + USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) | ( NOT ( SIZEOF( QUERY ( sa_occ <* USEDIN( pds, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) - | ( ( sa_occ.description = 'enclosed boundary occurrence' ) AND ( SIZEOF( QUERY ( sdr <* QUERY ( sar <* USEDIN( - sa_occ, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT' ) | ( ( + | ( ( sa_occ.description = 'enclosed boundary occurrence' ) AND ( SIZEOF( QUERY ( sdr <* QUERY ( sar <* USEDIN( + sa_occ, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT' ) | ( ( sar.description = 'profile usage' ) AND ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF( sar ) ) ) ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'CIRCULAR_CLOSED_PROFILE' IN TYPEOF( sdr.relating_shape_aspect ) ) ) ) = 1 ) ) ) ) = 1 ) ) ) ) = 0 ) ); - wr13: ( ( NOT ( SELF\characterized_object.description IN [ 'circular cutout', 'complex cutout'] ) ) OR ( SIZEOF( + wr13: ( ( NOT ( SELF\characterized_object.description IN [ 'circular cutout', 'complex cutout'] ) ) OR ( SIZEOF( QUERY ( pds <* QUERY ( pd <* USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.' + 'DEFINITION' ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) | ( NOT ( SIZEOF( QUERY ( sa_occ <* USEDIN( pds, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT.' - + 'OF_SHAPE' ) | ( ( sa_occ.description = 'bottom condition occurrence' ) AND ( SIZEOF( QUERY ( sdr <* + + 'OF_SHAPE' ) | ( ( sa_occ.description = 'bottom condition occurrence' ) AND ( SIZEOF( QUERY ( sdr <* QUERY ( sar <* USEDIN( sa_occ, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.' - + 'RELATED_SHAPE_ASPECT' ) | ( ( sar.description = 'pocket bottom usage' ) AND ( - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF( sar ) ) ) ) | ( ( - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POCKET_BOTTOM' IN TYPEOF( sdr.relating_shape_aspect ) ) AND ( - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POCKET' IN TYPEOF( sdr.related_shape_aspect.of_shape.definition ) ) + + 'RELATED_SHAPE_ASPECT' ) | ( ( sar.description = 'pocket bottom usage' ) AND ( + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF( sar ) ) ) ) | ( ( + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POCKET_BOTTOM' IN TYPEOF( sdr.relating_shape_aspect ) ) AND ( + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POCKET' IN TYPEOF( sdr.related_shape_aspect.of_shape.definition ) ) AND ( sdr.relating_shape_aspect.description = 'through' ) ) ) ) = 1 ) ) ) ) = 1 ) ) ) ) = 0 ) ); - wr14: ( ( NOT ( SELF\characterized_object.description = 'recess' ) ) OR ( SIZEOF( QUERY ( pds <* QUERY ( pd <* USEDIN( SELF, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) | ( NOT ( + wr14: ( ( NOT ( SELF\characterized_object.description = 'recess' ) ) OR ( SIZEOF( QUERY ( pds <* QUERY ( pd <* USEDIN( SELF, + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) | ( NOT ( SIZEOF( QUERY ( sa_occ <* USEDIN( pds, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) - | ( ( sa_occ.description = 'bottom condition occurrence' ) AND ( SIZEOF( QUERY ( sdr <* QUERY ( sar <* USEDIN( - sa_occ, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT' ) | ( ( + | ( ( sa_occ.description = 'bottom condition occurrence' ) AND ( SIZEOF( QUERY ( sdr <* QUERY ( sar <* USEDIN( + sa_occ, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT' ) | ( ( sar.description = 'pocket bottom usage' ) AND ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF( sar ) ) ) ) | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'POCKET_BOTTOM' IN TYPEOF( sdr.relating_shape_aspect ) ) AND ( - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POCKET' IN TYPEOF( sdr.related_shape_aspect.of_shape.definition ) ) + + 'POCKET_BOTTOM' IN TYPEOF( sdr.relating_shape_aspect ) ) AND ( + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POCKET' IN TYPEOF( sdr.related_shape_aspect.of_shape.definition ) ) AND ( sdr.relating_shape_aspect.description IN [ 'planar', 'complex'] ) ) ) ) = 1 ) ) ) ) = 1 ) ) ) ) = 0 ) ); - wr15: ( SIZEOF( QUERY ( pdr <* get_property_definition_representations( SELF ) | ( ( - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANAR_SHAPE_REPRESENTATION' IN TYPEOF( pdr.used_representation ) ) + wr15: ( SIZEOF( QUERY ( pdr <* get_property_definition_representations( SELF ) | ( ( + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANAR_SHAPE_REPRESENTATION' IN TYPEOF( pdr.used_representation ) ) AND ( pdr.used_representation.name = 'maximum feature limit' ) ) ) ) >= 0 ); - wr16: ( ( NOT ( SELF\characterized_object.description IN [ 'closed rectangular', 'open rectangular', 'complex', 'recess'] ) ) + wr16: ( ( NOT ( SELF\characterized_object.description IN [ 'closed rectangular', 'open rectangular', 'complex', 'recess'] ) ) OR ( SIZEOF( QUERY ( pds <* USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.' - + 'DEFINITION' ) | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pds ) ) + + 'DEFINITION' ) | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pds ) ) AND ( SIZEOF( QUERY ( csa <* USEDIN( pds, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COMPOSITE_SHAPE_ASPECT' IN TYPEOF( csa ) ) AND ( csa.name = - 'uncut volume' ) AND ( SIZEOF( QUERY ( sar <* csa.component_relationships | ( ( - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF( sar ) ) AND ( + 'uncut volume' ) AND ( SIZEOF( QUERY ( sar <* csa.component_relationships | ( ( + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF( sar ) ) AND ( SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.BOSS', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PROTRUSION' ] * TYPEOF( sar.related_shape_aspect ) ) = 1 ) ) ) ) = 1 ) ) ) ) <= 1 ) ) ) ) = 1 ) ); - wr17: ( ( NOT ( SELF\characterized_object.description IN [ 'closed rectangular', 'open rectangular'] ) ) OR ( SIZEOF( + wr17: ( ( NOT ( SELF\characterized_object.description IN [ 'closed rectangular', 'open rectangular'] ) ) OR ( SIZEOF( QUERY ( pds <* QUERY ( pd <* USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.' + 'DEFINITION' ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) | ( NOT ( SIZEOF( QUERY ( sa_occ <* USEDIN( pds, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT.' - + 'OF_SHAPE' ) | ( ( sa_occ.description = 'change in boundary occurrence' ) AND ( SIZEOF( QUERY ( fcr <* + + 'OF_SHAPE' ) | ( ( sa_occ.description = 'change in boundary occurrence' ) AND ( SIZEOF( QUERY ( fcr <* QUERY ( sar <* USEDIN( sa_occ, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.' - + 'RELATING_SHAPE_ASPECT' ) | ( ( sar.description = 'taper usage' ) AND ( - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF( sar ) ) ) ) | ( ( - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.TAPER' IN TYPEOF( fcr.relating_shape_aspect ) ) AND ( - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POCKET' IN TYPEOF( fcr.related_shape_aspect.of_shape.definition ) ) - AND ( fcr.related_shape_aspect.description IN [ 'angle taper', 'directed taper'] ) ) ) ) >= 1 ) ) ) ) <= 1 ) ) ) ) + + 'RELATING_SHAPE_ASPECT' ) | ( ( sar.description = 'taper usage' ) AND ( + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF( sar ) ) ) ) | ( ( + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.TAPER' IN TYPEOF( fcr.relating_shape_aspect ) ) AND ( + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POCKET' IN TYPEOF( fcr.related_shape_aspect.of_shape.definition ) ) + AND ( fcr.related_shape_aspect.description IN [ 'angle taper', 'directed taper'] ) ) ) ) >= 1 ) ) ) ) <= 1 ) ) ) ) = 0 ) ); END_ENTITY; @@ -15164,57 +16077,57 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; WHERE wr1 : ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FEATURE_COMPONENT_DEFINITION' IN TYPEOF( SELF.of_shape.definition ) ); wr2 : ( SELF.description IN [ 'planar', 'complex', 'through'] ); - wr3 : ( ( NOT ( SELF.description = 'planar' ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( + wr3 : ( ( NOT ( SELF.description = 'planar' ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( pdr <* USEDIN( pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.' - + 'DEFINITION' ) | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DIRECTION_SHAPE_REPRESENTATION' IN + + 'DEFINITION' ) | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DIRECTION_SHAPE_REPRESENTATION' IN TYPEOF( pdr.used_representation ) ) AND ( pdr.used_representation.name = 'floor normal' ) ) ) ) = 1 ) ) ) ) = 0 ) ); - wr4 : ( ( NOT ( SELF.description = 'planar' ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( + wr4 : ( ( NOT ( SELF.description = 'planar' ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( pdr <* USEDIN( pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.' - + 'DEFINITION' ) | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LOCATION_SHAPE_REPRESENTATION' IN + + 'DEFINITION' ) | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LOCATION_SHAPE_REPRESENTATION' IN TYPEOF( pdr.used_representation ) ) AND ( pdr.used_representation.name = 'floor location' ) ) ) ) = 1 ) ) ) ) = 0 ) ); - wr5 : ( ( NOT ( SELF.description = 'complex' ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( + wr5 : ( ( NOT ( SELF.description = 'complex' ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( pdr <* USEDIN( pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.' - + 'DEFINITION' ) | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FACE_SHAPE_REPRESENTATION' IN TYPEOF( + + 'DEFINITION' ) | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FACE_SHAPE_REPRESENTATION' IN TYPEOF( pdr.used_representation ) ) AND ( pdr.used_representation.name = 'floor face' ) ) ) ) = 1 ) ) ) ) = 0 ) ); - wr6 : ( ( NOT ( SELF.description IN [ 'planar', 'complex'] ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( + wr6 : ( ( NOT ( SELF.description IN [ 'planar', 'complex'] ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( pdr <* USEDIN( pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.' - + 'DEFINITION' ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN + + 'DEFINITION' ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) ) = 1 ) ) ) ) = 0 ) ); - wr7 : ( ( NOT ( SELF.description IN [ 'planar', 'complex'] ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( + wr7 : ( ( NOT ( SELF.description IN [ 'planar', 'complex'] ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( impl_rep. used_representation.items ) <= 1 ) ) ) ) = 0 ) ) ) ) = 0 ) ); - wr8 : ( ( NOT ( SELF.description = 'through' ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( + wr8 : ( ( NOT ( SELF.description = 'through' ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( pdr <* USEDIN( pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.' - + 'DEFINITION' ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN + + 'DEFINITION' ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) ) = 0 ) ) ) ) = 0 ) ); - wr9 : ( ( NOT ( SELF.description IN [ 'planar', 'complex'] ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( + wr9 : ( ( NOT ( SELF.description IN [ 'planar', 'complex'] ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( + + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'MEASURE_REPRESENTATION_ITEM' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * + + 'MEASURE_REPRESENTATION_ITEM' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF( it ) ) = 2 ) AND ( it.name = 'radius' ) ) ) ) <= 1 ) ) ) ) = 0 ) ) ) ) = 0 ) ); wr10: ( SIZEOF( QUERY ( fcr <* QUERY ( sar <* USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'SHAPE_ASPECT_RELATIONSHIP.RELATING_SHAPE_ASPECT' ) | ( ( sar.description = 'pocket bottom usage' ) AND ( - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF( sar ) ) ) ) | ( ( - fcr.related_shape_aspect.description = 'bottom condition occurrence' ) AND ( - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POCKET' IN TYPEOF( fcr.related_shape_aspect.of_shape.definition ) ) - AND ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POCKET_BOTTOM' IN TYPEOF( fcr.relating_shape_aspect ) ) ) ) ) + + 'SHAPE_ASPECT_RELATIONSHIP.RELATING_SHAPE_ASPECT' ) | ( ( sar.description = 'pocket bottom usage' ) AND ( + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF( sar ) ) ) ) | ( ( + fcr.related_shape_aspect.description = 'bottom condition occurrence' ) AND ( + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POCKET' IN TYPEOF( fcr.related_shape_aspect.of_shape.definition ) ) + AND ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POCKET_BOTTOM' IN TYPEOF( fcr.relating_shape_aspect ) ) ) ) ) >= 1 ); - wr11: ( ( NOT ( SELF.description IN [ 'planar', 'complex'] ) ) OR ( SIZEOF( QUERY ( fcr <* QUERY ( sar <* USEDIN( SELF, + wr11: ( ( NOT ( SELF.description IN [ 'planar', 'complex'] ) ) OR ( SIZEOF( QUERY ( fcr <* QUERY ( sar <* USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATING_SHAPE_ASPECT' ) | ( ( sar. description = 'pocket bottom usage' ) AND ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF( sar ) ) ) ) | ( ( fcr.related_shape_aspect.description = - 'bottom condition occurrence' ) AND ( fcr.related_shape_aspect.name IN [ 'pocket depth start', 'pocket depth end'] ) ) ) ) + + 'FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF( sar ) ) ) ) | ( ( fcr.related_shape_aspect.description = + 'bottom condition occurrence' ) AND ( fcr.related_shape_aspect.name IN [ 'pocket depth start', 'pocket depth end'] ) ) ) ) = 0 ) ); END_ENTITY; @@ -15225,12 +16138,18 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; WHERE wr1: ( ( SIZEOF( SELF\explicit_constraint.reference_elements ) = 1 ) OR ( SIZEOF( SELF\explicit_constraint. constrained_elements ) = 2 ) ); - wr2: ( ( NOT ( offset_direction_constrained = TRUE ) ) AND ( ( offset_type = curve_2d_offset ) OR ( offset_type = + wr2: ( ( NOT ( offset_direction_constrained = TRUE ) ) AND ( ( offset_type = curve_2d_offset ) OR ( offset_type = surface_offset ) ) ); END_ENTITY; ENTITY point - SUPERTYPE OF ( ONEOF ( cartesian_point, point_on_curve, point_on_surface, point_replica, degenerate_pcurve ) ) + SUPERTYPE OF ( + ONEOF ( + cartesian_point, + point_on_curve, + point_on_surface, + point_replica, + degenerate_pcurve ) ) SUBTYPE OF ( geometric_representation_item ); END_ENTITY; @@ -15244,7 +16163,7 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; SELF\explicit_constraint.constrained_elements : SET [1 : ?] OF point; SELF\explicit_constraint.reference_elements : SET [0 : 4] OF point_curve_or_surface_constraint_element; WHERE - wr1: ( ( SIZEOF( SELF\explicit_constraint.reference_elements ) > 0 ) OR ( ( + wr1: ( ( SIZEOF( SELF\explicit_constraint.reference_elements ) > 0 ) OR ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PDGC_WITH_DIMENSION' IN TYPEOF( SELF ) ) AND ( SIZEOF( SELF\ explicit_constraint.constrained_elements ) = 2 ) ) ); END_ENTITY; @@ -15261,7 +16180,7 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; DERIVE SELF\point_on_curve.basis_curve : curve := SELF.basis_edge_curve.edge_geometry; WHERE - wr1: ( SIZEOF( using_representations( SELF.basis_edge_curve ) * relating_shape_representations_of_extreme_values( SELF ) ) + wr1: ( SIZEOF( using_representations( SELF.basis_edge_curve ) * relating_shape_representations_of_extreme_values( SELF ) ) > 0 ); END_ENTITY; @@ -15271,7 +16190,7 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; DERIVE SELF\point_on_surface.basis_surface : surface := SELF.basis_face_surface.face_geometry; WHERE - wr1: ( SIZEOF( using_representations( SELF.basis_face_surface ) * relating_shape_representations_of_extreme_values( SELF ) ) + wr1: ( SIZEOF( using_representations( SELF.basis_face_surface ) * relating_shape_representations_of_extreme_values( SELF ) ) > 0 ); END_ENTITY; @@ -15282,7 +16201,7 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; WHERE wr1: ( SIZEOF( QUERY ( r <* SELF\kinematic_pair.associated_link_representations_1 | ( NOT ( pair_curve IN r.items ) ) ) ) = 0 ); - wr2: ( SIZEOF( QUERY ( lr <* SELF\kinematic_pair.associated_link_representations_1 | ( NOT ( + wr2: ( SIZEOF( QUERY ( lr <* SELF\kinematic_pair.associated_link_representations_1 | ( NOT ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.RIGID_LINK_REPRESENTATION' IN TYPEOF( lr ) ) ) ) ) = 0 ); END_ENTITY; @@ -15307,12 +16226,12 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; lower_limit_roll : OPTIONAL plane_angle_measure; upper_limit_roll : OPTIONAL plane_angle_measure; WHERE - wr1: ( ( ( NOT EXISTS( lower_limit_pitch ) ) OR ( NOT EXISTS( upper_limit_pitch ) ) ) XOR ( lower_limit_pitch < + wr1: ( ( ( NOT EXISTS( lower_limit_pitch ) ) OR ( NOT EXISTS( upper_limit_pitch ) ) ) XOR ( lower_limit_pitch < upper_limit_pitch ) ); wr2: ( ( ( NOT EXISTS( lower_limit_yaw ) ) OR ( NOT EXISTS( upper_limit_yaw ) ) ) XOR ( lower_limit_yaw < upper_limit_yaw ) ); - wr3: ( ( ( NOT EXISTS( lower_limit_roll ) ) OR ( NOT EXISTS( upper_limit_roll ) ) ) XOR ( lower_limit_roll < + wr3: ( ( ( NOT EXISTS( lower_limit_roll ) ) OR ( NOT EXISTS( upper_limit_roll ) ) ) XOR ( lower_limit_roll < upper_limit_roll ) ); - wr4: ( SIZEOF( QUERY ( r <* SELF\kinematic_pair.associated_link_representations_1 | ( NOT ( range_on_pair_curve IN r.items ) ) ) ) + wr4: ( SIZEOF( QUERY ( r <* SELF\kinematic_pair.associated_link_representations_1 | ( NOT ( range_on_pair_curve IN r.items ) ) ) ) = 0 ); END_ENTITY; @@ -15327,9 +16246,9 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; SUBTYPE OF ( high_order_kinematic_pair ); pair_surface : surface; WHERE - wr1: ( SIZEOF( QUERY ( r <* SELF\kinematic_pair.associated_link_representations_1 | ( NOT ( pair_surface IN r.items ) ) ) ) + wr1: ( SIZEOF( QUERY ( r <* SELF\kinematic_pair.associated_link_representations_1 | ( NOT ( pair_surface IN r.items ) ) ) ) = 0 ); - wr2: ( SIZEOF( QUERY ( lr <* SELF\kinematic_pair.associated_link_representations_1 | ( NOT ( + wr2: ( SIZEOF( QUERY ( lr <* SELF\kinematic_pair.associated_link_representations_1 | ( NOT ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.RIGID_LINK_REPRESENTATION' IN TYPEOF( lr ) ) ) ) ) = 0 ); END_ENTITY; @@ -15354,10 +16273,10 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; lower_limit_roll : OPTIONAL plane_angle_measure; upper_limit_roll : OPTIONAL plane_angle_measure; WHERE - wr1: ( ( ( NOT EXISTS( lower_limit_pitch ) ) OR ( NOT EXISTS( upper_limit_pitch ) ) ) XOR ( lower_limit_pitch < + wr1: ( ( ( NOT EXISTS( lower_limit_pitch ) ) OR ( NOT EXISTS( upper_limit_pitch ) ) ) XOR ( lower_limit_pitch < upper_limit_pitch ) ); wr2: ( ( ( NOT EXISTS( lower_limit_yaw ) ) OR ( NOT EXISTS( upper_limit_yaw ) ) ) XOR ( lower_limit_yaw < upper_limit_yaw ) ); - wr3: ( ( ( NOT EXISTS( lower_limit_roll ) ) OR ( NOT EXISTS( upper_limit_roll ) ) ) XOR ( lower_limit_roll < + wr3: ( ( ( NOT EXISTS( lower_limit_roll ) ) OR ( NOT EXISTS( upper_limit_roll ) ) ) XOR ( lower_limit_roll < upper_limit_roll ) ); wr4: ( SIZEOF( QUERY ( r <* SELF\kinematic_pair.associated_link_representations_1 | ( NOT ( range_on_pair_surface IN r. items ) ) ) ) = 0 ); @@ -15373,7 +16292,7 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; SELF\representation.items : SET [1 : ?] OF point_placement_shape_representation_item; WHERE wr1: ( SIZEOF( QUERY ( i <* SELF.items | ( SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'COMPOUND_REPRESENTATION_ITEM' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MAPPED_ITEM'] * TYPEOF( i ) ) + + 'COMPOUND_REPRESENTATION_ITEM' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MAPPED_ITEM'] * TYPEOF( i ) ) = 1 ) ) ) > 0 ); END_ENTITY; @@ -15409,11 +16328,11 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; wr1: ( min_exists( distance_constraint ) AND ( real_min( distance_constraint ) >= 0 ) ); wr2: ( ( ( -PI ) <= direction_constraint.min ) AND ( direction_constraint.min < PI ) ); wr3: ( ( direction_constraint.max - direction_constraint.min ) <= ( 2 * PI ) ); - wr4: ( ( ( direction_constraint.max - direction_constraint.min ) < ( 2 * PI ) ) OR ( direction_constraint.min_closure = + wr4: ( ( ( direction_constraint.max - direction_constraint.min ) < ( 2 * PI ) ) OR ( direction_constraint.min_closure = open ) ); - wr5: ( ( ( direction_constraint.max - direction_constraint.min ) < ( 2 * PI ) ) OR ( direction_constraint.max_closure = + wr5: ( ( ( direction_constraint.max - direction_constraint.min ) < ( 2 * PI ) ) OR ( direction_constraint.max_closure = open ) OR ( direction_constraint.min = ( -PI ) ) ); - wr6: ( ( real_min( distance_constraint ) > 0 ) OR max_exists( distance_constraint ) OR ( ( direction_constraint.max - + wr6: ( ( real_min( distance_constraint ) > 0 ) OR max_exists( distance_constraint ) OR ( ( direction_constraint.max - direction_constraint.min ) < ( 2 * PI ) ) OR ( direction_constraint.max_closure = open ) ); END_ENTITY; @@ -15441,10 +16360,10 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; sketch_basis : sketch_basis_select; auxiliary_elements : SET [0 : ?] OF auxiliary_geometric_representation_item; WHERE - wr1: ( NOT ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CURVE_BOUNDED_SURFACE' IN TYPEOF( sketch_basis ) ) AND ( + wr1: ( NOT ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CURVE_BOUNDED_SURFACE' IN TYPEOF( sketch_basis ) ) AND ( NOT ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANE' IN TYPEOF( sketch_basis\curve_bounded_surface. basis_surface ) ) ) ) ); - wr2: ( NOT ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FACE_SURFACE' IN TYPEOF( sketch_basis ) ) AND ( NOT ( + wr2: ( NOT ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FACE_SURFACE' IN TYPEOF( sketch_basis ) ) AND ( NOT ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANE' IN TYPEOF( sketch_basis\face_surface.face_geometry ) ) ) ) ); wr3: ( SIZEOF( QUERY ( q <* auxiliary_elements | ( SIZEOF( TYPEOF( q ) * [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'POINT' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CURVE'] ) = 0 ) ) ) = 0 ); @@ -15482,17 +16401,17 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; 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', + 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', + 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; @@ -15513,9 +16432,9 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; 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', + 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; @@ -15530,8 +16449,8 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; 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', + 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; @@ -15561,9 +16480,9 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; ENTITY presentation_area SUBTYPE OF ( presentation_representation ); WHERE - wr1: ( ( SIZEOF( QUERY ( ais <* USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'AREA_IN_SET.AREA' ) | - ( SIZEOF( USEDIN( ais, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PRESENTATION_SIZE.UNIT' ) ) = 1 ) ) ) - > 0 ) OR ( SIZEOF( USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PRESENTATION_SIZE.UNIT' ) ) + wr1: ( ( SIZEOF( QUERY ( ais <* USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'AREA_IN_SET.AREA' ) | + ( SIZEOF( USEDIN( ais, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PRESENTATION_SIZE.UNIT' ) ) = 1 ) ) ) + > 0 ) OR ( SIZEOF( USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PRESENTATION_SIZE.UNIT' ) ) = 1 ) ); END_ENTITY; @@ -15574,19 +16493,22 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; END_ENTITY; ENTITY presentation_representation - SUPERTYPE OF ( ONEOF ( presentation_area, presentation_view ) ) + 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: ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRESENTATION_AREA' IN TYPEOF( SELF ) ) OR ( SIZEOF( + wr2: ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRESENTATION_AREA' IN TYPEOF( SELF ) ) OR ( SIZEOF( QUERY ( prr <* USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'REPRESENTATION_RELATIONSHIP.' + 'REP_2' ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRESENTATION_REPRESENTATION' IN TYPEOF( prr\ - representation_relationship.rep_1 ) ) ) ) > 0 ) OR ( SIZEOF( QUERY ( rm <* USEDIN( SELF, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'REPRESENTATION_MAP.' + 'MAPPED_REPRESENTATION' ) | ( - SIZEOF( QUERY ( mi <* USEDIN( rm, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'MAPPED_ITEM.' + - 'MAPPING_SOURCE' ) | ( SIZEOF( QUERY ( rep <* using_representations( mi ) | ( ( - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PRESENTATION_REPRESENTATION' ) IN TYPEOF( rep ) ) ) ) > 0 ) ) ) + representation_relationship.rep_1 ) ) ) ) > 0 ) OR ( SIZEOF( QUERY ( rm <* USEDIN( SELF, + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'REPRESENTATION_MAP.' + 'MAPPED_REPRESENTATION' ) | ( + SIZEOF( QUERY ( mi <* USEDIN( rm, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'MAPPED_ITEM.' + + 'MAPPING_SOURCE' ) | ( SIZEOF( QUERY ( rep <* using_representations( mi ) | ( ( + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PRESENTATION_REPRESENTATION' ) IN TYPEOF( rep ) ) ) ) > 0 ) ) ) > 0 ) ) ) > 0 ) ); END_ENTITY; @@ -15601,9 +16523,9 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; UNIQUE ur1 : unit; WHERE - wr1: ( ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRESENTATION_REPRESENTATION' IN TYPEOF( SELF.unit ) ) AND - item_in_context( SELF.size, SELF.unit\representation.context_of_items ) ) OR ( ( - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.AREA_IN_SET' IN TYPEOF( SELF.unit ) ) AND ( SIZEOF( + wr1: ( ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRESENTATION_REPRESENTATION' IN TYPEOF( SELF.unit ) ) AND + item_in_context( SELF.size, SELF.unit\representation.context_of_items ) ) OR ( ( + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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; @@ -15612,14 +16534,14 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; 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( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + - 'SURFACE_STYLE_USAGE' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'EXTERNALLY_DEFINED_STYLE'] * + wr1: ( SIZEOF( QUERY ( style1 <* SELF.styles | ( NOT ( SIZEOF( QUERY ( style2 <* ( SELF.styles - style1 ) | ( NOT ( ( + TYPEOF( style1 ) <> TYPEOF( style2 ) ) OR ( SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + + 'SURFACE_STYLE_USAGE' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'EXTERNALLY_DEFINED_STYLE'] * TYPEOF( style1 ) ) = 1 ) ) ) ) ) = 0 ) ) ) ) = 0 ); - wr2: ( SIZEOF( QUERY ( style1 <* SELF.styles | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SURFACE_STYLE_USAGE' IN + wr2: ( SIZEOF( QUERY ( style1 <* SELF.styles | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SURFACE_STYLE_USAGE' IN TYPEOF( style1 ) ) ) ) <= 2 ); wr3: ( SIZEOF( QUERY ( style1 <* SELF.styles | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SURFACE_STYLE_USAGE' IN - TYPEOF( style1 ) ) AND ( SIZEOF( QUERY ( style2 <* ( SELF.styles - style1 ) | ( ( + TYPEOF( style1 ) ) AND ( SIZEOF( QUERY ( style2 <* ( SELF.styles - style1 ) | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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 ); @@ -15662,7 +16584,13 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; END_ENTITY; ENTITY primitive_2d - SUPERTYPE OF ( ONEOF ( circular_area, elliptic_area, rectangular_area, polygonal_area, half_space_2d ) ) + SUPERTYPE OF ( + ONEOF ( + circular_area, + elliptic_area, + rectangular_area, + polygonal_area, + half_space_2d ) ) SUBTYPE OF ( geometric_representation_item ); WHERE wr1: ( SELF\geometric_representation_item.dim = 2 ); @@ -15670,13 +16598,14 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; ENTITY primitive_2d_with_inner_boundary SUBTYPE OF ( complex_area, compound_representation_item ); + SELF\compound_representation_item.item_element : compound_inner_area_boundary; DERIVE - inner_boundary : compound_inner_area_boundary := SELF\compound_representation_item.item_element; + inner_boundary : compound_inner_area_boundary := item_element; WHERE - wr1: ( SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CIRCULAR_AREA', + wr1: ( SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CIRCULAR_AREA', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ELLIPTIC_AREA' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'RECTANGULAR_AREA' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POLYGONAL_AREA', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.AREA_WITH_OUTER_BOUNDARY' , + + 'RECTANGULAR_AREA' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POLYGONAL_AREA', + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.AREA_WITH_OUTER_BOUNDARY' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PATH_AREA_WITH_PARAMETERS' ] * TYPEOF( SELF ) ) > 0 ); wr2: ( SIZEOF( QUERY ( inner <* inner_boundary | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PRIMITIVE_2D_WITH_INNER_BOUNDARY' IN TYPEOF( inner ) ) ) ) = 0 ); @@ -15705,7 +16634,7 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; lower_limit_actual_translation : OPTIONAL length_measure; upper_limit_actual_translation : OPTIONAL length_measure; WHERE - wr1: ( ( ( NOT EXISTS( lower_limit_actual_translation ) ) OR ( NOT EXISTS( upper_limit_actual_translation ) ) ) XOR ( + wr1: ( ( ( NOT EXISTS( lower_limit_actual_translation ) ) OR ( NOT EXISTS( upper_limit_actual_translation ) ) ) XOR ( lower_limit_actual_translation < upper_limit_actual_translation ) ); END_ENTITY; @@ -15738,11 +16667,11 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; WHERE wr1: ( SIZEOF( QUERY ( amr <* USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ACTION_METHOD_RELATIONSHIP.' + 'RELATING_METHOD' ) | ( ( NOT ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROCESS_OPERATION' IN TYPEOF( amr\ - action_method_relationship.related_method ) ) ) OR ( SELF :=: amr\action_method_relationship.related_method ) ) ) ) + action_method_relationship.related_method ) ) ) OR ( SELF :=: amr\action_method_relationship.related_method ) ) ) ) = 0 ); wr2: ( SIZEOF( QUERY ( amr <* USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ACTION_METHOD_RELATIONSHIP.' + 'RELATED_METHOD' ) | ( ( NOT ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROCESS_OPERATION' IN TYPEOF( amr\ - action_method_relationship.relating_method ) ) ) OR ( SELF :=: amr\action_method_relationship.relating_method ) ) ) ) + action_method_relationship.relating_method ) ) ) OR ( SELF :=: amr\action_method_relationship.relating_method ) ) ) ) = 0 ); END_ENTITY; @@ -15750,14 +16679,14 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; SUBTYPE OF ( action ); WHERE wr1: ( SIZEOF( QUERY ( ar <* USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'ACTION_RELATIONSHIP.' - + 'RELATED_ACTION' ) | ( SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROCESS_PLAN', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_PROCESS_PLAN' ] * TYPEOF( ar.relating_action ) ) <> 1 ) ) ) + + 'RELATED_ACTION' ) | ( SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROCESS_PLAN', + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_PROCESS_PLAN' ] * TYPEOF( ar.relating_action ) ) <> 1 ) ) ) = 0 ); wr2: ( SIZEOF( QUERY ( ar <* USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'ACTION_RELATIONSHIP.' - + 'RELATING_ACTION' ) | ( ( SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROCESS_PLAN', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_PROCESS_PLAN' ] * TYPEOF( ar.related_action ) ) = 1 ) OR + + 'RELATING_ACTION' ) | ( ( SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROCESS_PLAN', + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_PROCESS_PLAN' ] * TYPEOF( ar.related_action ) ) = 1 ) OR ( ( ar.name = 'process operation occurrence' ) AND ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'PROCESS_OPERATION' IN TYPEOF( ar.related_action.chosen_method ) ) ) ) ) ) = SIZEOF( USEDIN( SELF, + + 'PROCESS_OPERATION' IN TYPEOF( ar.related_action.chosen_method ) ) ) ) ) ) = SIZEOF( USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'ACTION_RELATIONSHIP.RELATING_ACTION' ) ) ); END_ENTITY; @@ -15840,10 +16769,10 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; WHERE wr1: ( SIZEOF( QUERY ( aga <* USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'GROUP_ASSIGNMENT.' + 'ASSIGNED_GROUP' ) | ( ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'APPLIED_GROUP_ASSIGNMENT' ) IN - TYPEOF( aga ) ) AND ( ( aga\group_assignment.role\object_role.name <> 'specification category member' ) OR ( - SIZEOF( QUERY ( i <* aga\applied_group_assignment.items | ( ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'PRODUCT_CONCEPT_FEATURE' ) IN TYPEOF( i ) ) AND ( NOT ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + - 'CONDITIONAL_CONCEPT_FEATURE' ) IN TYPEOF( i ) ) ) ) ) ) <> SIZEOF( aga\applied_group_assignment.items ) ) ) ) ) ) + TYPEOF( aga ) ) AND ( ( aga\group_assignment.role\object_role.name <> 'specification category member' ) OR ( + SIZEOF( QUERY ( i <* aga\applied_group_assignment.items | ( ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + + 'PRODUCT_CONCEPT_FEATURE' ) IN TYPEOF( i ) ) AND ( NOT ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + + 'CONDITIONAL_CONCEPT_FEATURE' ) IN TYPEOF( i ) ) ) ) ) ) <> SIZEOF( aga\applied_group_assignment.items ) ) ) ) ) ) = 0 ); END_ENTITY; @@ -15874,7 +16803,11 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; END_ENTITY; ENTITY product_definition - SUPERTYPE OF ( ONEOF ( composite_assembly_sequence_definition, laminate_table, ply_laminate_sequence_definition ) ); + SUPERTYPE OF ( + ONEOF ( + composite_assembly_sequence_definition, + laminate_table, + ply_laminate_sequence_definition ) ); id : identifier; description : OPTIONAL text; formation : product_definition_formation; @@ -15946,7 +16879,7 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; INVERSE representation_relation : kinematic_property_definition_representation FOR definition; UNIQUE - ur1 : SELF\property_definition.definition; + ur1 : definition; END_ENTITY; ENTITY product_definition_occurrence_relationship; @@ -15991,7 +16924,7 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; SUBTYPE OF ( property_definition ); SELF\property_definition.definition : product_definition_relationship; UNIQUE - ur1 : SELF\property_definition.definition; + ur1 : definition; END_ENTITY; ENTITY product_definition_resource @@ -16005,9 +16938,9 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; ENTITY product_definition_shape SUBTYPE OF ( property_definition ); UNIQUE - ur1 : definition; + ur1 : SELF\property_definition.definition; WHERE - wr1: ( SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CHARACTERIZED_PRODUCT_DEFINITION', + wr1: ( SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CHARACTERIZED_PRODUCT_DEFINITION', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CHARACTERIZED_OBJECT' ] * TYPEOF( SELF\property_definition. definition ) ) > 0 ); END_ENTITY; @@ -16024,12 +16957,16 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; END_ENTITY; ENTITY product_definition_usage - SUPERTYPE OF ( ONEOF ( make_from_usage_option, assembly_component_usage ) ) + SUPERTYPE OF ( + ONEOF ( + make_from_usage_option, + assembly_component_usage ) ) SUBTYPE OF ( product_definition_relationship ); UNIQUE - ur1 : id, relating_product_definition, related_product_definition; + 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], + wr1: acyclic_product_definition_relationship( SELF, [SELF\product_definition_relationship.related_product_definition], 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_USAGE' ); END_ENTITY; @@ -16059,11 +16996,11 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; SELF\configuration_item.item_concept : product_class; WHERE wr1: ( SIZEOF( QUERY ( cd <* USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CONFIGURATION_DESIGN.' - + 'CONFIGURATION' ) | ( ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PRODUCT_DEFINITION_FORMATION' ) - IN TYPEOF( cd.design ) ) AND ( SIZEOF( QUERY ( prpc <* USEDIN( cd.design\product_definition_formation.of_product, + + 'CONFIGURATION' ) | ( ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PRODUCT_DEFINITION_FORMATION' ) + IN TYPEOF( cd.design ) ) AND ( SIZEOF( QUERY ( prpc <* USEDIN( cd.design\product_definition_formation.of_product, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_RELATED_PRODUCT_CATEGORY.PRODUCTS' ) | ( prpc.name IN [ 'part' , 'raw material', 'tool'] ) ) ) > 0 ) ) ) ) <= 1 ); - wr2: ( ( NOT ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'CONFIGURABLE_ITEM' ) IN TYPEOF( SELF ) ) ) XOR ( ( + wr2: ( ( NOT ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'CONFIGURABLE_ITEM' ) IN TYPEOF( SELF ) ) ) XOR ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PRODUCT_SPECIFICATION' ) IN TYPEOF( SELF ) ) ); END_ENTITY; @@ -16088,17 +17025,17 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; SUBTYPE OF ( product_definition_process ); WHERE wr1: ( SIZEOF( QUERY ( ar <* USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'ACTION_RELATIONSHIP.' - + 'RELATED_ACTION' ) | ( SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROCESS_PLAN', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_PROCESS_PLAN' ] * TYPEOF( ar.relating_action ) ) <> 1 ) ) ) + + 'RELATED_ACTION' ) | ( SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROCESS_PLAN', + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_PROCESS_PLAN' ] * TYPEOF( ar.relating_action ) ) <> 1 ) ) ) = 0 ); wr2: ( SIZEOF( QUERY ( ar <* USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'ACTION_RELATIONSHIP.' - + 'RELATING_ACTION' ) | ( ( SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROCESS_PLAN', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_PROCESS_PLAN' ] * TYPEOF( ar.related_action ) ) = 1 ) OR + + 'RELATING_ACTION' ) | ( ( SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROCESS_PLAN', + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_PROCESS_PLAN' ] * TYPEOF( ar.related_action ) ) = 1 ) OR ( ( ar.name = 'process operation occurrence' ) AND ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'PROCESS_OPERATION' IN TYPEOF( ar.related_action.chosen_method ) ) ) ) ) ) = SIZEOF( USEDIN( SELF, + + 'PROCESS_OPERATION' IN TYPEOF( ar.related_action.chosen_method ) ) ) ) ) ) = SIZEOF( USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'ACTION_RELATIONSHIP.RELATING_ACTION' ) ) ); - wr3: ( SIZEOF( QUERY ( ppa <* USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + - 'PROCESS_PRODUCT_ASSOCIATION.PROCESS' ) | ( ( ppa.name <> 'produced output' ) OR ( NOT ( + wr3: ( SIZEOF( QUERY ( ppa <* USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + + 'PROCESS_PRODUCT_ASSOCIATION.PROCESS' ) | ( ( ppa.name <> 'produced output' ) OR ( NOT ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION' IN TYPEOF( ppa.defined_product ) ) ) ) ) ) = 0 ); END_ENTITY; @@ -16125,54 +17062,54 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; WHERE wr1 : ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FEATURE_COMPONENT_DEFINITION' IN TYPEOF( SELF.of_shape.definition ) ); wr2 : ( SELF.description IN [ 'planar', 'complex', 'through'] ); - wr3 : ( ( NOT ( SELF.description IN [ 'planar', 'complex'] ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( + wr3 : ( ( NOT ( SELF.description IN [ 'planar', 'complex'] ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( pdr <* USEDIN( pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.' - + 'DEFINITION' ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN + + 'DEFINITION' ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) ) = 1 ) ) ) ) = 0 ) ); - wr4 : ( ( NOT ( SELF.description IN [ 'planar', 'complex'] ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( + wr4 : ( ( NOT ( SELF.description IN [ 'planar', 'complex'] ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( ( NOT ( SIZEOF( impl_rep. used_representation.items ) >= 1 ) ) AND ( SIZEOF( impl_rep.used_representation.items ) <= 2 ) ) ) ) = 0 ) ) ) ) = 0 ) ); - wr5 : ( ( NOT ( SELF.description = 'through' ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( + wr5 : ( ( NOT ( SELF.description = 'through' ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( pdr <* USEDIN( pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.' - + 'DEFINITION' ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN + + 'DEFINITION' ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) ) = 0 ) ) ) ) = 0 ) ); - wr6 : ( ( NOT ( SELF.description IN [ 'planar', 'complex'] ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( + wr6 : ( ( NOT ( SELF.description IN [ 'planar', 'complex'] ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( + + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'MEASURE_REPRESENTATION_ITEM' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * + + 'MEASURE_REPRESENTATION_ITEM' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF( it ) ) = 2 ) AND ( it.name = 'radius' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ) ); wr7 : ( SIZEOF( QUERY ( fcr <* QUERY ( sar <* USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'SHAPE_ASPECT_RELATIONSHIP.RELATING_SHAPE_ASPECT' ) | ( ( sar.description = 'profile floor usage' ) AND ( - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF( sar ) ) ) ) | ( ( + + 'SHAPE_ASPECT_RELATIONSHIP.RELATING_SHAPE_ASPECT' ) | ( ( sar.description = 'profile floor usage' ) AND ( + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF( sar ) ) ) ) | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.OUTSIDE_PROFILE' IN TYPEOF( fcr.related_shape_aspect.of_shape. definition ) ) AND ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROFILE_FLOOR' IN TYPEOF( fcr. relating_shape_aspect ) ) ) ) ) >= 1 ); - wr8 : ( ( NOT ( SELF.description IN [ 'planar', 'complex'] ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( + wr8 : ( ( NOT ( SELF.description IN [ 'planar', 'complex'] ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( + + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF( it ) ) AND ( it.name = 'shape profile floor orientation' ) AND ( + + 'DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF( it ) ) AND ( it.name = 'shape profile floor orientation' ) AND ( it.description IN [ 'shape profile start', 'shape profile end'] ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ) ); - wr9 : ( ( NOT ( SELF.description = 'complex' ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( + wr9 : ( ( NOT ( SELF.description = 'complex' ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( pdr <* USEDIN( pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.' - + 'DEFINITION' ) | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FACE_SHAPE_REPRESENTATION' IN TYPEOF( + + 'DEFINITION' ) | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FACE_SHAPE_REPRESENTATION' IN TYPEOF( pdr.used_representation ) ) AND ( pdr.used_representation.name = 'floor' ) ) ) ) = 1 ) ) ) ) = 1 ) ); - wr10: ( ( NOT ( SELF.description = 'planar' ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( + wr10: ( ( NOT ( SELF.description = 'planar' ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( pdr <* USEDIN( pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.' - + 'DEFINITION' ) | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANAR_SHAPE_REPRESENTATION' IN TYPEOF( + + 'DEFINITION' ) | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANAR_SHAPE_REPRESENTATION' IN TYPEOF( pdr.used_representation ) ) AND ( pdr.used_representation.name = 'floor' ) ) ) ) = 1 ) ) ) ) = 1 ) ); END_ENTITY; @@ -16183,7 +17120,7 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; WHERE wr1: ( ( 'NUMBER' IN TYPEOF( projected_length\measure_with_unit.value_component ) ) AND ( projected_length\ measure_with_unit.value_component > 0 ) ); - wr2: ( derive_dimensional_exponents( projected_length\measure_with_unit.unit_component ) = dimensional_exponents( 1, 0, 0, + wr2: ( derive_dimensional_exponents( projected_length\measure_with_unit.unit_component ) = dimensional_exponents( 1, 0, 0, 0, 0, 0, 0 ) ); END_ENTITY; @@ -16209,7 +17146,11 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; END_ENTITY; ENTITY property_definition - SUPERTYPE OF ( ONEOF ( product_definition_kinematics, product_definition_relationship_kinematics, product_definition_shape ) ); + SUPERTYPE OF ( + ONEOF ( + product_definition_kinematics, + product_definition_relationship_kinematics, + product_definition_shape ) ); name : label; description : OPTIONAL text; definition : characterized_definition; @@ -16233,7 +17174,7 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; description : text := get_description_value( SELF ); name : label := get_name_value( SELF ); WHERE - wr1: ( SIZEOF( USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'DESCRIPTION_ATTRIBUTE.DESCRIBED_ITEM' ) ) + wr1: ( SIZEOF( USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'DESCRIPTION_ATTRIBUTE.DESCRIBED_ITEM' ) ) <= 1 ); wr2: ( SIZEOF( USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'NAME_ATTRIBUTE.NAMED_ITEM' ) ) <= 1 ); END_ENTITY; @@ -16255,15 +17196,15 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; used_representation.items ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ); wr2: ( SIZEOF( QUERY ( pds <* QUERY ( pd <* USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PROPERTY_DEFINITION.DEFINITION' ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) | ( NOT ( SIZEOF( QUERY ( sa_occ <* USEDIN( pds, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) | ( ( sa_occ.description = - 'shape volume occurrence' ) AND ( SIZEOF( QUERY ( sdr <* QUERY ( sar <* USEDIN( sa_occ, + + 'PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) | ( NOT ( SIZEOF( QUERY ( sa_occ <* USEDIN( pds, + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) | ( ( sa_occ.description = + 'shape volume occurrence' ) AND ( SIZEOF( QUERY ( sdr <* QUERY ( sar <* USEDIN( sa_occ, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT' ) | ( ( sar. description = 'volume shape usage' ) AND ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF( sar ) ) ) ) | ( sdr.relating_shape_aspect.description = 'volume shape' ) ) ) + + 'SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF( sar ) ) ) ) | ( sdr.relating_shape_aspect.description = 'volume shape' ) ) ) = 1 ) ) ) ) = 1 ) ) ) ) = 0 ); - wr3: ( SIZEOF( QUERY ( pdr <* get_property_definition_representations( SELF ) | ( ( - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANAR_SHAPE_REPRESENTATION' IN TYPEOF( pdr.used_representation ) ) + wr3: ( SIZEOF( QUERY ( pdr <* get_property_definition_representations( SELF ) | ( ( + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANAR_SHAPE_REPRESENTATION' IN TYPEOF( pdr.used_representation ) ) AND ( pdr.used_representation.name = 'maximum feature limit' ) ) ) ) >= 0 ); END_ENTITY; @@ -16271,7 +17212,7 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; SUBTYPE OF ( representation_item ); qualifiers : SET [1 : ?] OF value_qualifier; WHERE - wr1: ( SIZEOF( QUERY ( temp <* qualifiers | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRECISION_QUALIFIER' IN + wr1: ( SIZEOF( QUERY ( temp <* qualifiers | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRECISION_QUALIFIER' IN TYPEOF( temp ) ) ) ) < 2 ); END_ENTITY; @@ -16309,7 +17250,7 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; SUBTYPE OF ( low_order_kinematic_pair_with_motion_coupling ); pinion_radius : length_measure; WHERE - wr1: ( SIZEOF( QUERY ( lr <* SELF\kinematic_pair.associated_link_representations_1 | ( NOT ( + wr1: ( SIZEOF( QUERY ( lr <* SELF\kinematic_pair.associated_link_representations_1 | ( NOT ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.RIGID_LINK_REPRESENTATION' IN TYPEOF( lr ) ) ) ) ) = 0 ); END_ENTITY; @@ -16326,7 +17267,7 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; lower_limit_rack_displacement : OPTIONAL length_measure; upper_limit_rack_displacement : OPTIONAL length_measure; WHERE - wr1: ( ( ( NOT EXISTS( lower_limit_rack_displacement ) ) OR ( NOT EXISTS( upper_limit_rack_displacement ) ) ) XOR ( + wr1: ( ( ( NOT EXISTS( lower_limit_rack_displacement ) ) OR ( NOT EXISTS( upper_limit_rack_displacement ) ) ) XOR ( lower_limit_rack_displacement < upper_limit_rack_displacement ) ); END_ENTITY; @@ -16346,7 +17287,7 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; ENTITY radius_dimension SUBTYPE OF ( dimension_curve_directed_callout ); WHERE - wr1: ( SIZEOF( QUERY ( con <* SELF.contents | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROJECTION_CURVE' IN + wr1: ( SIZEOF( QUERY ( con <* SELF.contents | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROJECTION_CURVE' IN TYPEOF( con ) ) ) ) <= 1 ); END_ENTITY; @@ -16360,7 +17301,7 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; ENTITY range_characteristic SUBTYPE OF ( representation, descriptive_representation_item ); WHERE - wr1: ( NOT ( SELF\representation.name IN [ 'tolerance', 'minimum tolerance', 'maximum tolerance', 'nominal tolerance', + wr1: ( NOT ( SELF\representation.name IN [ 'tolerance', 'minimum tolerance', 'maximum tolerance', 'nominal tolerance', 'plus minus tolerance' , 'symmetrical tolerance', 'statistical tolerance'] ) ); END_ENTITY; @@ -16374,7 +17315,7 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; SUBTYPE OF ( named_unit ); WHERE wr1: ( ( SELF\named_unit.dimensions.length_exponent = 0 ) AND ( SELF\named_unit.dimensions.mass_exponent = 0 ) AND ( SELF\ - named_unit.dimensions.time_exponent = 0 ) AND ( SELF\named_unit.dimensions.electric_current_exponent = 0 ) AND ( + named_unit.dimensions.time_exponent = 0 ) AND ( SELF\named_unit.dimensions.electric_current_exponent = 0 ) AND ( SELF\named_unit.dimensions.thermodynamic_temperature_exponent = 0 ) AND ( SELF\named_unit.dimensions. amount_of_substance_exponent = 0 ) AND ( SELF\named_unit.dimensions.luminous_intensity_exponent = 0 ) ); END_ENTITY; @@ -16383,7 +17324,7 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; 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, + 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 ) ); @@ -16396,7 +17337,7 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; 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] ) = + 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; @@ -16404,7 +17345,7 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; ENTITY rational_representation_item SUBTYPE OF ( representation_item, slash_expression ); WHERE - wr1: ( SIZEOF( QUERY ( operand <* SELF\binary_generic_expression.operands | ( NOT ( + wr1: ( SIZEOF( QUERY ( operand <* SELF\binary_generic_expression.operands | ( NOT ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.INT_LITERAL' IN TYPEOF( operand ) ) ) ) ) = 0 ); END_ENTITY; @@ -16477,41 +17418,41 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( ( SIZEOF( impl_rep. - used_representation.items ) >= 3 ) AND ( SIZEOF( impl_rep.used_representation.items ) <= 4 ) ) ) ) ) = 0 ) ) ) ) = + used_representation.items ) >= 3 ) AND ( SIZEOF( impl_rep.used_representation.items ) <= 4 ) ) ) ) ) = 0 ) ) ) ) = 0 ); wr4: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( SIZEOF( QUERY ( pdr <* USEDIN( pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) AND ( SIZEOF( QUERY ( srwp_i <* - pdr.used_representation.items | ( ( srwp_i.name = 'orientation' ) OR ( srwp_i.name = 'length' ) OR ( srwp_i.name = - 'width' ) OR ( srwp_i.name = 'corner radius' ) ) ) ) = SIZEOF( pdr.used_representation.items ) ) ) ) ) = 1 ) ) ) + + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) AND ( SIZEOF( QUERY ( srwp_i <* + pdr.used_representation.items | ( ( srwp_i.name = 'orientation' ) OR ( srwp_i.name = 'length' ) OR ( srwp_i.name = + 'width' ) OR ( srwp_i.name = 'corner radius' ) ) ) ) = SIZEOF( pdr.used_representation.items ) ) ) ) ) = 1 ) ) ) = 1 ); wr5: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( - QUERY ( it <* impl_rep.used_representation.items | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLACEMENT' + + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( + QUERY ( it <* impl_rep.used_representation.items | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLACEMENT' IN TYPEOF( it ) ) AND ( it.name = 'orientation' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ); wr6: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( + + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'MEASURE_REPRESENTATION_ITEM' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * + + 'MEASURE_REPRESENTATION_ITEM' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF( it ) ) = 2 ) AND ( it.name = 'width' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ); wr7: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( + + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'MEASURE_REPRESENTATION_ITEM' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * + + 'MEASURE_REPRESENTATION_ITEM' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF( it ) ) = 2 ) AND ( it.name = 'length' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ); wr8: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( + + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'MEASURE_REPRESENTATION_ITEM' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * + + 'MEASURE_REPRESENTATION_ITEM' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF( it ) ) = 2 ) AND ( it.name = 'corner radius' ) ) ) ) <= 1 ) ) ) ) = 0 ) ) ) ) = 0 ); END_ENTITY; @@ -16541,21 +17482,21 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; WHERE wr1 : ( SIZEOF( QUERY ( pds <* QUERY ( pd <* USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PROPERTY_DEFINITION.DEFINITION' ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) | ( NOT ( SIZEOF( QUERY ( sa_occ <* USEDIN( pds, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) | ( SIZEOF( QUERY ( sdr <* - QUERY ( sar <* USEDIN( sa_occ, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.' + - 'RELATING_SHAPE_ASPECT' ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP' + + 'PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) | ( NOT ( SIZEOF( QUERY ( sa_occ <* USEDIN( pds, + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) | ( SIZEOF( QUERY ( sdr <* + QUERY ( sar <* USEDIN( sa_occ, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.' + + 'RELATING_SHAPE_ASPECT' ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF( sar ) ) ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT' IN TYPEOF( sdr. related_shape_aspect ) ) ) ) = 1 ) ) ) <= 5 ) ) ) ) = 0 ); wr2 : ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( pdr <* USEDIN( pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'DIRECTION_SHAPE_REPRESENTATION' IN TYPEOF( pdr.used_representation ) ) AND ( pdr.used_representation.name = + + 'DIRECTION_SHAPE_REPRESENTATION' IN TYPEOF( pdr.used_representation ) ) AND ( pdr.used_representation.name = 'row layout direction' ) ) ) ) = 1 ) ) ) ) = 0 ); wr3 : ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( pdr <* USEDIN( pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'DIRECTION_SHAPE_REPRESENTATION' IN TYPEOF( pdr.used_representation ) ) AND ( pdr.used_representation.name = + + 'DIRECTION_SHAPE_REPRESENTATION' IN TYPEOF( pdr.used_representation ) ) AND ( pdr.used_representation.name = 'column layout direction' ) ) ) ) = 1 ) ) ) ) = 0 ); wr4 : ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( pdr <* USEDIN( pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' @@ -16569,7 +17510,7 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; wr6 : ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( + + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'MEASURE_REPRESENTATION_ITEM' IN TYPEOF( it ) ) AND ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'COUNT_MEASURE' IN TYPEOF( it\measure_with_unit.value_component ) ) AND ( it.name = 'number of rows' ) ) ) ) = @@ -16577,30 +17518,30 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; wr7 : ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( + + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'MEASURE_REPRESENTATION_ITEM' IN TYPEOF( it ) ) AND ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'COUNT_MEASURE' IN TYPEOF( it\measure_with_unit.value_component ) ) AND ( it.name = 'number of columns' ) ) ) ) + + 'COUNT_MEASURE' IN TYPEOF( it\measure_with_unit.value_component ) ) AND ( it.name = 'number of columns' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ); wr8 : ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( + + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'MEASURE_REPRESENTATION_ITEM' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * + + 'MEASURE_REPRESENTATION_ITEM' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF( it ) ) = 2 ) AND ( it.name = 'row spacing' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ); wr9 : ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( + + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'MEASURE_REPRESENTATION_ITEM' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * + + 'MEASURE_REPRESENTATION_ITEM' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF( it ) ) = 2 ) AND ( it.name = 'column spacing' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ); wr10: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( - QUERY ( it <* impl_rep.used_representation.items | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLACEMENT' + + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( + QUERY ( it <* impl_rep.used_representation.items | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLACEMENT' IN TYPEOF( it ) ) AND ( it.name = 'orientation' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ); END_ENTITY; @@ -16616,12 +17557,12 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; WHERE wr1: ( u1 <> u2 ); wr2: ( v1 <> v2 ); - wr3: ( ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ELEMENTARY_SURFACE' IN TYPEOF( basis_surface ) ) AND ( NOT ( - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANE' IN TYPEOF( basis_surface ) ) ) ) OR ( - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SURFACE_OF_REVOLUTION' IN TYPEOF( basis_surface ) ) OR ( usense + wr3: ( ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ELEMENTARY_SURFACE' IN TYPEOF( basis_surface ) ) AND ( NOT ( + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANE' IN TYPEOF( basis_surface ) ) ) ) OR ( + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SURFACE_OF_REVOLUTION' IN TYPEOF( basis_surface ) ) OR ( usense = ( u2 > u1 ) ) ); - wr4: ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SPHERICAL_SURFACE' IN TYPEOF( basis_surface ) ) OR ( - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.TOROIDAL_SURFACE' IN TYPEOF( basis_surface ) ) OR ( vsense = ( + wr4: ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SPHERICAL_SURFACE' IN TYPEOF( basis_surface ) ) OR ( + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.TOROIDAL_SURFACE' IN TYPEOF( basis_surface ) ) OR ( vsense = ( v2 > v1 ) ) ); END_ENTITY; @@ -16655,27 +17596,27 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; used_representation.items ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ); wr2: ( SIZEOF( QUERY ( pds <* QUERY ( pd <* USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PROPERTY_DEFINITION.DEFINITION' ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) | ( NOT ( SIZEOF( QUERY ( sa_occ <* USEDIN( pds, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) | ( ( sa_occ.description = - 'shape volume occurrence' ) AND ( SIZEOF( QUERY ( sdr <* QUERY ( sar <* USEDIN( sa_occ, + + 'PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) | ( NOT ( SIZEOF( QUERY ( sa_occ <* USEDIN( pds, + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) | ( ( sa_occ.description = + 'shape volume occurrence' ) AND ( SIZEOF( QUERY ( sdr <* QUERY ( sar <* USEDIN( sa_occ, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.' + 'RELATED_SHAPE_ASPECT' ) | ( ( sar .description = 'volume shape usage' ) AND ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF( sar ) ) ) ) | ( sdr.relating_shape_aspect.description = 'volume shape' ) ) ) + + 'SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF( sar ) ) ) ) | ( sdr.relating_shape_aspect.description = 'volume shape' ) ) ) = 1 ) ) ) ) = 1 ) ) ) ) = 0 ); END_ENTITY; ENTITY rep_item_group SUBTYPE OF ( group, representation_item ); WHERE - wr1: ( SIZEOF( USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PRESENTATION_LAYER_ASSIGNMENT.' + + wr1: ( SIZEOF( USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PRESENTATION_LAYER_ASSIGNMENT.' + 'ASSIGNED_ITEMS' ) ) > 0 ); wr2: ( SIZEOF( QUERY ( r <* USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'REPRESENTATION.' + 'ITEMS' ) | ( r.name = 'group representation' ) ) ) > 0 ); - wr3: ( SIZEOF( QUERY ( ga <* USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'GROUP_ASSIGNMENT.' + + wr3: ( SIZEOF( QUERY ( ga <* USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'GROUP_ASSIGNMENT.' + 'ASSIGNED_GROUP' ) | ( ga.role.name <> 'group membership' ) ) ) = 0 ); - wr4: ( SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'GEOMETRIC_REPRESENTATION_ITEM', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'TOPOLOGICAL_REPRESENTATION_ITEM', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'MAPPED_ITEM', + wr4: ( SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'GEOMETRIC_REPRESENTATION_ITEM', + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'TOPOLOGICAL_REPRESENTATION_ITEM', + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'MAPPED_ITEM', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'STYLED_ITEM'] * TYPEOF( SELF ) ) = 1 ); END_ENTITY; @@ -16686,9 +17627,9 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; output_repack : repackage_options; selected_output : nonnegative_integer; WHERE - wr1: ( ( input_repack <> ro_wrap_as_tuple ) OR ( ( space_dimension( operand.domain ) = 1 ) AND ( ( schema_prefix + + wr1: ( ( input_repack <> ro_wrap_as_tuple ) OR ( ( space_dimension( operand.domain ) = 1 ) AND ( ( schema_prefix + 'TUPLE_SPACE' ) IN TYPEOF( factor1( operand.domain ) ) ) ) ); - wr2: ( ( output_repack <> ro_unwrap_tuple ) OR ( ( space_dimension( operand.range ) = 1 ) AND ( ( schema_prefix + + wr2: ( ( output_repack <> ro_unwrap_tuple ) OR ( ( space_dimension( operand.range ) = 1 ) AND ( ( schema_prefix + 'TUPLE_SPACE' ) IN TYPEOF( factor1( operand.range ) ) ) ) ); wr3: ( selected_output <= space_dimension( repackage( operand.range, output_repack ) ) ); END_ENTITY; @@ -16701,7 +17642,11 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; END_ENTITY; ENTITY replicate_feature - SUPERTYPE OF ( ONEOF ( circular_pattern, rectangular_pattern, feature_pattern ) ) + SUPERTYPE OF ( + ONEOF ( + circular_pattern, + rectangular_pattern, + feature_pattern ) ) SUBTYPE OF ( feature_definition ); WHERE wr1: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) @@ -16711,13 +17656,13 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; wr2: ( SIZEOF( QUERY ( fcr <* QUERY ( sar <* USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'SHAPE_ASPECT_RELATIONSHIP.' + 'RELATING_SHAPE_ASPECT' ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF( sar ) ) ) | ( ( SIZEOF( [ - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.REPLICATE_FEATURE' , - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.INSTANCED_FEATURE' ] * TYPEOF( fcr.related_shape_aspect ) ) >= 1 ) + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.REPLICATE_FEATURE' , + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.INSTANCED_FEATURE' ] * TYPEOF( fcr.related_shape_aspect ) ) >= 1 ) AND ( fcr.name = 'pattern basis' ) ) ) ) = 1 ); - wr3: ( ( SIZEOF( QUERY ( sar <* USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.' + wr3: ( ( SIZEOF( QUERY ( sar <* USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.' + 'RELATING_SHAPE_ASPECT' ) | ( NOT ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF( sar ) ) ) ) ) + SIZEOF( QUERY ( sar <* USEDIN( SELF, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.' + 'RELATED_SHAPE_ASPECT' ) | ( NOT + + 'FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF( sar ) ) ) ) ) + SIZEOF( QUERY ( sar <* USEDIN( SELF, + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.' + 'RELATED_SHAPE_ASPECT' ) | ( NOT ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF( sar ) ) ) ) ) ) = 0 ); END_ENTITY; @@ -16735,20 +17680,33 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; SUBTYPE OF ( tessellated_item ); location : axis2_placement_3d; WHERE - wr1: ( NOT ( SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.TESSELLATED_CURVE_SET', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.TESSELLATED_GEOMETRIC_SET' , - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.TESSELLATED_POINT_SET' , - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.TESSELLATED_SURFACE_SET' , - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.TESSELLATED_SHELL' , - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.TESSELLATED_SOLID' , + wr1: ( NOT ( SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.TESSELLATED_CURVE_SET', + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.TESSELLATED_GEOMETRIC_SET' , + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.TESSELLATED_POINT_SET' , + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.TESSELLATED_SURFACE_SET' , + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.TESSELLATED_SHELL' , + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.TESSELLATED_SOLID' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.TESSELLATED_WIRE' ] * TYPEOF( SELF ) ) = 0 ) ); END_ENTITY; ENTITY representation - SUPERTYPE OF ( ONEOF ( interpolated_configuration_representation, link_motion_representation_along_path ) ANDOR ONEOF ( - kinematic_link_representation, kinematic_topology_structure, kinematic_topology_directed_structure, - kinematic_topology_network_structure, mechanism_representation, shape_representation ) ANDOR ONEOF ( - kinematic_topology_structure, kinematic_topology_directed_structure, kinematic_topology_network_structure ) ); + SUPERTYPE OF ( + ONEOF ( + interpolated_configuration_representation, + link_motion_representation_along_path ) + ANDOR + ONEOF ( + kinematic_link_representation, + kinematic_topology_structure, + kinematic_topology_directed_structure, + kinematic_topology_network_structure, + mechanism_representation, + shape_representation ) + ANDOR + ONEOF ( + kinematic_topology_structure, + kinematic_topology_directed_structure, + kinematic_topology_network_structure ) ); name : label; items : SET [1 : ?] OF representation_item; context_of_items : representation_context; @@ -16757,7 +17715,7 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; description : text := get_description_value( SELF ); WHERE wr1: ( SIZEOF( USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'ID_ATTRIBUTE.IDENTIFIED_ITEM' ) ) <= 1 ); - wr2: ( SIZEOF( USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'DESCRIPTION_ATTRIBUTE.DESCRIBED_ITEM' ) ) + wr2: ( SIZEOF( USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'DESCRIPTION_ATTRIBUTE.DESCRIBED_ITEM' ) ) <= 1 ); END_ENTITY; @@ -16769,10 +17727,25 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; END_ENTITY; ENTITY representation_item - SUPERTYPE OF ( ONEOF ( binary_representation_item, compound_representation_item, mapped_item, value_representation_item ) - ANDOR ONEOF ( mapped_item, styled_item ) ANDOR ONEOF ( boolean_representation_item, date_representation_item, - date_time_representation_item, integer_representation_item, logical_representation_item, rational_representation_item, - real_representation_item ) ); + SUPERTYPE OF ( + ONEOF ( + binary_representation_item, + compound_representation_item, + mapped_item, + value_representation_item ) + ANDOR + ONEOF ( + mapped_item, + styled_item ) + ANDOR + ONEOF ( + 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 ); @@ -16837,6 +17810,10 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; 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 @@ -16881,25 +17858,25 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; SUBTYPE OF ( action ); WHERE wr1: ( SIZEOF( QUERY ( aa <* USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'ACTION_ASSIGNMENT.' - + 'ASSIGNED_ACTION' ) | ( ( 'ACTIVITY.APPLIED_ACTION_ASSIGNMENT' IN TYPEOF( aa ) ) AND ( aa.role.name = 'retention' ) ) ) ) + + 'ASSIGNED_ACTION' ) | ( ( 'ACTIVITY.APPLIED_ACTION_ASSIGNMENT' IN TYPEOF( aa ) ) AND ( aa.role.name = 'retention' ) ) ) ) >= 1 ); - wr2: ( ( SIZEOF( QUERY ( atia <* USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + - 'APPLIED_TIME_INTERVAL_ASSIGNMENT.ITEMS' ) | ( atia.role.name = 'minimum retention period' ) ) ) = 1 ) AND ( - SIZEOF( QUERY ( atia <* USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + - 'APPLIED_TIME_INTERVAL_ASSIGNMENT.ITEMS' ) | ( atia.role.name = 'maximum retention period' ) ) ) = 1 ) AND ( - SIZEOF( QUERY ( atia1 <* USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + - 'APPLIED_TIME_INTERVAL_ASSIGNMENT.ITEMS' ) | ( ( atia1.role.name = 'minimum retention period' ) AND ( + wr2: ( ( SIZEOF( QUERY ( atia <* USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + + 'APPLIED_TIME_INTERVAL_ASSIGNMENT.ITEMS' ) | ( atia.role.name = 'minimum retention period' ) ) ) = 1 ) AND ( + SIZEOF( QUERY ( atia <* USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + + 'APPLIED_TIME_INTERVAL_ASSIGNMENT.ITEMS' ) | ( atia.role.name = 'maximum retention period' ) ) ) = 1 ) AND ( + SIZEOF( QUERY ( atia1 <* USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + + 'APPLIED_TIME_INTERVAL_ASSIGNMENT.ITEMS' ) | ( ( atia1.role.name = 'minimum retention period' ) AND ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.TIME_INTERVAL_WITH_BOUNDS' IN TYPEOF( atia1. - assigned_time_interval ) ) AND ( EXISTS( atia1.assigned_time_interval\time_interval_with_bounds.secondary_bound ) - OR EXISTS( atia1.assigned_time_interval\time_interval_with_bounds.duration ) ) AND ( SIZEOF( QUERY ( atia2 <* - USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'APPLIED_TIME_INTERVAL_ASSIGNMENT.ITEMS' ) | ( + assigned_time_interval ) ) AND ( EXISTS( atia1.assigned_time_interval\time_interval_with_bounds.secondary_bound ) + OR EXISTS( atia1.assigned_time_interval\time_interval_with_bounds.duration ) ) AND ( SIZEOF( QUERY ( atia2 <* + USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'APPLIED_TIME_INTERVAL_ASSIGNMENT.ITEMS' ) | ( ( atia2.role.name = 'maximum retention period' ) AND ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'TIME_INTERVAL_WITH_BOUNDS' IN TYPEOF( atia2.assigned_time_interval ) ) AND ( EXISTS( atia2. assigned_time_interval\time_interval_with_bounds.secondary_bound ) OR EXISTS( atia2.assigned_time_interval\ - time_interval_with_bounds.duration ) ) AND ( atia1.assigned_time_interval\time_interval_with_bounds.primary_bound + time_interval_with_bounds.duration ) ) AND ( atia1.assigned_time_interval\time_interval_with_bounds.primary_bound :=: atia2.assigned_time_interval\time_interval_with_bounds.primary_bound ) ) ) ) = 1 ) ) ) ) = 1 ) ); - wr3: ( ( SIZEOF( USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'ACTION_RELATIONSHIP.RELATING_ACTION' ) ) - + SIZEOF( USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'ACTION_RELATIONSHIP.RELATED_ACTION' ) ) ) + wr3: ( ( SIZEOF( USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'ACTION_RELATIONSHIP.RELATING_ACTION' ) ) + + SIZEOF( USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'ACTION_RELATIONSHIP.RELATED_ACTION' ) ) ) = 0 ); END_ENTITY; @@ -16925,7 +17902,7 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; lower_limit_actual_rotation : OPTIONAL plane_angle_measure; upper_limit_actual_rotation : OPTIONAL plane_angle_measure; WHERE - wr1: ( ( ( NOT EXISTS( lower_limit_actual_rotation ) ) OR ( NOT EXISTS( upper_limit_actual_rotation ) ) ) XOR ( + wr1: ( ( ( NOT EXISTS( lower_limit_actual_rotation ) ) OR ( NOT EXISTS( upper_limit_actual_rotation ) ) ) XOR ( lower_limit_actual_rotation < upper_limit_actual_rotation ) ); END_ENTITY; @@ -16934,7 +17911,7 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; axis : axis1_placement; angle : plane_angle_measure; DERIVE - axis_line : line := representation_item( '' ) || geometric_representation_item( ) || curve( ) || line( axis.location, + axis_line : line := representation_item( '' ) || geometric_representation_item( ) || curve( ) || line( axis.location, representation_item( '' ) || geometric_representation_item( ) || vector( axis.z, 1 ) ); END_ENTITY; @@ -16943,7 +17920,7 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; axis : axis1_placement; angle : plane_angle_measure; DERIVE - axis_line : line := representation_item( '' ) || geometric_representation_item( ) || curve( ) || line( axis.location, + axis_line : line := representation_item( '' ) || geometric_representation_item( ) || curve( ) || line( axis.location, representation_item( '' ) || geometric_representation_item( ) || vector( axis.z, 1 ) ); END_ENTITY; @@ -16952,10 +17929,10 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; first_trim_condition : trim_condition_select; second_trim_condition : trim_condition_select; WHERE - wr1: ( NOT ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE' IN TYPEOF( first_trim_condition ) ) OR ( + wr1: ( NOT ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE' IN TYPEOF( first_trim_condition ) ) OR ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE' IN TYPEOF( second_trim_condition ) ) ) ); - wr2: ( NOT ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANE_ANGLE_MEASURE' IN TYPEOF( first_trim_condition ) ) - AND ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANE_ANGLE_MEASURE' IN TYPEOF( second_trim_condition ) ) + wr2: ( NOT ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANE_ANGLE_MEASURE' IN TYPEOF( first_trim_condition ) ) + AND ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANE_ANGLE_MEASURE' IN TYPEOF( second_trim_condition ) ) AND ( first_trim_condition = second_trim_condition ) ) ); END_ENTITY; @@ -16971,59 +17948,59 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; wr3: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( + + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'MEASURE_REPRESENTATION_ITEM' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * + + 'MEASURE_REPRESENTATION_ITEM' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF( it ) ) = 2 ) AND ( it.name = 'radius' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ); - wr4: ( SIZEOF( QUERY ( pdr <* get_property_definition_representations( SELF ) | ( ( + wr4: ( SIZEOF( QUERY ( pdr <* get_property_definition_representations( SELF ) | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DIRECTION_SHAPE_REPRESENTATION' IN TYPEOF( pdr. used_representation ) ) AND ( pdr.used_representation.name = 'removal direction' ) ) ) ) = 1 ); - wr5: ( ( NOT ( SELF\characterized_object.description = 'open profile' ) ) OR ( SIZEOF( QUERY ( pds <* QUERY ( pd <* - USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) | ( NOT ( SIZEOF( - QUERY ( sa_occ <* USEDIN( pds, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) | ( ( - sa_occ.description = 'outer edge shape occurrence' ) AND ( SIZEOF( QUERY ( sdr <* QUERY ( sar <* USEDIN( sa_occ, + wr5: ( ( NOT ( SELF\characterized_object.description = 'open profile' ) ) OR ( SIZEOF( QUERY ( pds <* QUERY ( pd <* + USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) | ( NOT ( SIZEOF( + QUERY ( sa_occ <* USEDIN( pds, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) | ( ( + sa_occ.description = 'outer edge shape occurrence' ) AND ( SIZEOF( QUERY ( sdr <* QUERY ( sar <* USEDIN( sa_occ, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT' ) | ( ( sar. - description = 'profile usage' ) AND ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DEFINING_RELATIONSHIP' + description = 'profile usage' ) AND ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF( sar ) ) ) ) | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.OPEN_PATH_PROFILE' IN TYPEOF( sdr. - relating_shape_aspect ) ) AND ( sdr.relating_shape_aspect.description = 'outer edge shape' ) ) ) ) = 1 ) ) ) ) = 1 ) ) ) ) + relating_shape_aspect ) ) AND ( sdr.relating_shape_aspect.description = 'outer edge shape' ) ) ) ) = 1 ) ) ) ) = 1 ) ) ) ) = 0 ) ); - wr6: ( ( NOT ( SELF\characterized_object.description = 'flat' ) ) OR ( SIZEOF( QUERY ( pds <* QUERY ( pd <* USEDIN( SELF, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) | ( NOT ( SIZEOF( - QUERY ( sa_occ <* USEDIN( pds, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) | ( ( - sa_occ.description = 'flat edge shape occurrence' ) AND ( SIZEOF( QUERY ( sdr <* QUERY ( sar <* USEDIN( sa_occ, + wr6: ( ( NOT ( SELF\characterized_object.description = 'flat' ) ) OR ( SIZEOF( QUERY ( pds <* QUERY ( pd <* USEDIN( SELF, + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) | ( NOT ( SIZEOF( + QUERY ( sa_occ <* USEDIN( pds, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) | ( ( + sa_occ.description = 'flat edge shape occurrence' ) AND ( SIZEOF( QUERY ( sdr <* QUERY ( sar <* USEDIN( sa_occ, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT' ) | ( ( sar. - description = 'profile usage' ) AND ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DEFINING_RELATIONSHIP' + description = 'profile usage' ) AND ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF( sar ) ) ) ) | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LINEAR_PROFILE' IN TYPEOF( sdr. - relating_shape_aspect ) ) AND ( sdr.relating_shape_aspect.description = 'flat edge shape' ) ) ) ) = 1 ) ) ) ) = 1 ) ) ) ) + relating_shape_aspect ) ) AND ( sdr.relating_shape_aspect.description = 'flat edge shape' ) ) ) ) = 1 ) ) ) ) = 1 ) ) ) ) = 0 ) ); - wr7: ( ( NOT ( SELF\characterized_object.description = 'round' ) ) OR ( SIZEOF( QUERY ( pds <* QUERY ( pd <* USEDIN( SELF, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) | ( NOT ( SIZEOF( - QUERY ( sa_occ <* USEDIN( pds, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) | ( ( - sa_occ.description = 'rounded edge shape occurrence' ) AND ( SIZEOF( QUERY ( sdr <* QUERY ( sar <* USEDIN( sa_occ, + wr7: ( ( NOT ( SELF\characterized_object.description = 'round' ) ) OR ( SIZEOF( QUERY ( pds <* QUERY ( pd <* USEDIN( SELF, + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) | ( NOT ( SIZEOF( + QUERY ( sa_occ <* USEDIN( pds, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) | ( ( + sa_occ.description = 'rounded edge shape occurrence' ) AND ( SIZEOF( QUERY ( sdr <* QUERY ( sar <* USEDIN( sa_occ, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT' ) | ( ( sar. - description = 'profile usage' ) AND ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DEFINING_RELATIONSHIP' - IN TYPEOF( sar ) ) ) ) | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PARTIAL_CIRCULAR_PROFILE' IN TYPEOF( - sdr.relating_shape_aspect ) ) AND ( sdr.relating_shape_aspect.description = 'rounded edge shape' ) ) ) ) = 1 ) ) ) ) + description = 'profile usage' ) AND ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DEFINING_RELATIONSHIP' + IN TYPEOF( sar ) ) ) ) | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PARTIAL_CIRCULAR_PROFILE' IN TYPEOF( + sdr.relating_shape_aspect ) ) AND ( sdr.relating_shape_aspect.description = 'rounded edge shape' ) ) ) ) = 1 ) ) ) ) = 1 ) ) ) ) = 0 ) ); - wr8: ( ( NOT ( SELF\characterized_object.description = 'groove' ) ) OR ( SIZEOF( QUERY ( pds <* QUERY ( pd <* USEDIN( SELF, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) | ( NOT ( SIZEOF( - QUERY ( sa_occ <* USEDIN( pds, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) | ( ( - sa_occ.description = 'sweep occurrence' ) AND ( SIZEOF( QUERY ( sdr <* QUERY ( sar <* USEDIN( sa_occ, + wr8: ( ( NOT ( SELF\characterized_object.description = 'groove' ) ) OR ( SIZEOF( QUERY ( pds <* QUERY ( pd <* USEDIN( SELF, + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) | ( NOT ( SIZEOF( + QUERY ( sa_occ <* USEDIN( pds, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) | ( ( + sa_occ.description = 'sweep occurrence' ) AND ( SIZEOF( QUERY ( sdr <* QUERY ( sar <* USEDIN( sa_occ, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT' ) | ( ( sar. - description = 'profile usage' ) AND ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DEFINING_RELATIONSHIP' - IN TYPEOF( sar ) ) ) ) | ( ( SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SQUARE_U_PROFILE', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PARTIAL_CIRCULAR_PROFILE' , - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ROUNDED_U_PROFILE' , + description = 'profile usage' ) AND ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DEFINING_RELATIONSHIP' + IN TYPEOF( sar ) ) ) ) | ( ( SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SQUARE_U_PROFILE', + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PARTIAL_CIRCULAR_PROFILE' , + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ROUNDED_U_PROFILE' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.VEE_PROFILE' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'TEE_PROFILE' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.OPEN_PATH_PROFILE'] * TYPEOF( sdr. - relating_shape_aspect ) ) = 1 ) AND ( sdr.relating_shape_aspect.description = 'sweep' ) ) ) ) = 1 ) ) ) ) = 1 ) ) ) ) + relating_shape_aspect ) ) = 1 ) AND ( sdr.relating_shape_aspect.description = 'sweep' ) ) ) ) = 1 ) ) ) ) = 1 ) ) ) ) = 0 ) ); - wr9: ( SIZEOF( QUERY ( pdr <* get_property_definition_representations( SELF ) | ( ( - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANAR_SHAPE_REPRESENTATION' IN TYPEOF( pdr.used_representation ) ) + wr9: ( SIZEOF( QUERY ( pdr <* get_property_definition_representations( SELF ) | ( ( + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANAR_SHAPE_REPRESENTATION' IN TYPEOF( pdr.used_representation ) ) AND ( pdr.used_representation.name = 'maximum feature limit' ) ) ) ) >= 0 ); END_ENTITY; @@ -17037,9 +18014,9 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; WHERE wr1: ( SIZEOF( QUERY ( pds <* QUERY ( pd <* USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PROPERTY_DEFINITION.DEFINITION' ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) | ( NOT ( SIZEOF( QUERY ( sa_occ <* USEDIN( pds, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) | ( ( sa_occ.description = - 'rib top condition occurrence' ) AND ( SIZEOF( QUERY ( sdr <* QUERY ( sar <* USEDIN( sa_occ, + + 'PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) | ( NOT ( SIZEOF( QUERY ( sa_occ <* USEDIN( pds, + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) | ( ( sa_occ.description = + 'rib top condition occurrence' ) AND ( SIZEOF( QUERY ( sdr <* QUERY ( sar <* USEDIN( sa_occ, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT' ) | ( ( sar. description = 'rib top usage' ) AND ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF( sar ) ) ) ) | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' @@ -17048,10 +18025,10 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; wr2: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( pdr <* USEDIN( pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'DIRECTION_SHAPE_REPRESENTATION' IN TYPEOF( pdr.used_representation ) ) AND ( pdr.used_representation.name = + + 'DIRECTION_SHAPE_REPRESENTATION' IN TYPEOF( pdr.used_representation ) ) AND ( pdr.used_representation.name = 'removal direction' ) ) ) ) = 1 ) ) ) ) = 1 ); - wr3: ( SIZEOF( QUERY ( pdr <* get_property_definition_representations( SELF ) | ( ( - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANAR_SHAPE_REPRESENTATION' IN TYPEOF( pdr.used_representation ) ) + wr3: ( SIZEOF( QUERY ( pdr <* get_property_definition_representations( SELF ) | ( ( + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANAR_SHAPE_REPRESENTATION' IN TYPEOF( pdr.used_representation ) ) AND ( pdr.used_representation.name = 'maximum feature limit' ) ) ) ) >= 0 ); END_ENTITY; @@ -17061,33 +18038,33 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; wr1: ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FEATURE_COMPONENT_DEFINITION' IN TYPEOF( SELF.of_shape.definition ) ); wr2: ( SELF.description IN [ 'planar', 'complex'] ); wr3: ( SIZEOF( QUERY ( fcr <* QUERY ( sar <* USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'SHAPE_ASPECT_RELATIONSHIP.RELATING_SHAPE_ASPECT' ) | ( ( sar.description = 'rib top usage' ) AND ( + + 'SHAPE_ASPECT_RELATIONSHIP.RELATING_SHAPE_ASPECT' ) | ( ( sar.description = 'rib top usage' ) AND ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF( sar ) ) ) ) | ( ( fcr - .related_shape_aspect.description = 'rib top condition occurrence' ) AND ( - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.RIB_TOP' IN TYPEOF( fcr.related_shape_aspect.of_shape.definition ) ) - AND ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.RIB_TOP_FLOOR' IN TYPEOF( fcr.relating_shape_aspect ) ) ) ) ) + .related_shape_aspect.description = 'rib top condition occurrence' ) AND ( + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.RIB_TOP' IN TYPEOF( fcr.related_shape_aspect.of_shape.definition ) ) + AND ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.RIB_TOP_FLOOR' IN TYPEOF( fcr.relating_shape_aspect ) ) ) ) ) >= 1 ); - wr4: ( ( NOT ( SELF.description = 'complex' ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( + wr4: ( ( NOT ( SELF.description = 'complex' ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( pdr <* USEDIN( pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.' + 'DEFINITION' ) | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FACE_SHAPE_REPRESENTATION' IN TYPEOF( pdr .used_representation ) ) AND ( pdr.used_representation.name = 'rib top face' ) ) ) ) = 1 ) ) ) ) = 0 ) ); - wr5: ( ( NOT ( SELF.description = 'planar' ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( + wr5: ( ( NOT ( SELF.description = 'planar' ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( pdr <* USEDIN( pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.' - + 'DEFINITION' ) | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANAR_SHAPE_REPRESENTATION' IN TYPEOF( + + 'DEFINITION' ) | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANAR_SHAPE_REPRESENTATION' IN TYPEOF( pdr.used_representation ) ) AND ( pdr.used_representation.name = 'rib top face' ) ) ) ) = 1 ) ) ) ) = 0 ) ); - wr6: ( ( NOT ( SELF.description = 'planar' ) ) OR ( SIZEOF( QUERY ( pds <* QUERY ( pd <* USEDIN( SELF, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) | ( NOT ( SIZEOF( - QUERY ( sa_occ <* USEDIN( pds, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) | ( ( - sa_occ.description = 'boundary occurrence' ) AND ( SIZEOF( QUERY ( sdr <* QUERY ( sar <* USEDIN( sa_occ, + wr6: ( ( NOT ( SELF.description = 'planar' ) ) OR ( SIZEOF( QUERY ( pds <* QUERY ( pd <* USEDIN( SELF, + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) | ( NOT ( SIZEOF( + QUERY ( sa_occ <* USEDIN( pds, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) | ( ( + sa_occ.description = 'boundary occurrence' ) AND ( SIZEOF( QUERY ( sdr <* QUERY ( sar <* USEDIN( sa_occ, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT' ) | ( ( sar. - description = 'profile usage' ) AND ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DEFINING_RELATIONSHIP' - IN TYPEOF( sar ) ) ) ) | ( ( SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CIRCULAR_CLOSED_PROFILE', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.NGON_CLOSED_PROFILE' , - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.RECTANGULAR_CLOSED_PROFILE' , - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CLOSED_PATH_PROFILE' ] * TYPEOF( sdr.relating_shape_aspect ) ) = + description = 'profile usage' ) AND ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DEFINING_RELATIONSHIP' + IN TYPEOF( sar ) ) ) ) | ( ( SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CIRCULAR_CLOSED_PROFILE', + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.NGON_CLOSED_PROFILE' , + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.RECTANGULAR_CLOSED_PROFILE' , + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CLOSED_PATH_PROFILE' ] * TYPEOF( sdr.relating_shape_aspect ) ) = 1 ) AND ( sdr.relating_shape_aspect.description = 'rib top floor boundary' ) ) ) ) = 1 ) ) ) ) = 1 ) ) ) ) = 0 ) ); END_ENTITY; @@ -17179,18 +18156,18 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; WHERE wr1: ( SIZEOF( QUERY ( pds <* QUERY ( pd <* USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PROPERTY_DEFINITION.DEFINITION' ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) | ( NOT ( SIZEOF( QUERY ( sa_occ <* USEDIN( pds, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) | ( ( sa_occ.description = - 'diameter occurrence' ) AND ( SIZEOF( QUERY ( sdr <* QUERY ( sar <* USEDIN( sa_occ, + + 'PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) | ( NOT ( SIZEOF( QUERY ( sa_occ <* USEDIN( pds, + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) | ( ( sa_occ.description = + 'diameter occurrence' ) AND ( SIZEOF( QUERY ( sdr <* QUERY ( sar <* USEDIN( sa_occ, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT' ) | ( ( sar. - description = 'profile usage' ) AND ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DEFINING_RELATIONSHIP' - IN TYPEOF( sar ) ) ) ) | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CIRCULAR_CLOSED_PROFILE' IN TYPEOF( + description = 'profile usage' ) AND ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DEFINING_RELATIONSHIP' + IN TYPEOF( sar ) ) ) ) | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CIRCULAR_CLOSED_PROFILE' IN TYPEOF( sdr.relating_shape_aspect ) ) AND ( sdr.name = 'diameter' ) ) ) ) = 1 ) ) ) ) = 1 ) ) ) ) = 0 ); wr2: ( SIZEOF( QUERY ( pds <* QUERY ( pd <* USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PROPERTY_DEFINITION.DEFINITION' ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) | ( NOT ( SIZEOF( QUERY ( sa_occ <* USEDIN( pds, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) | ( ( sa_occ.description = - 'hole depth occurrence' ) AND ( SIZEOF( QUERY ( sdr <* QUERY ( sar <* USEDIN( sa_occ, + + 'PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) | ( NOT ( SIZEOF( QUERY ( sa_occ <* USEDIN( pds, + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) | ( ( sa_occ.description = + 'hole depth occurrence' ) AND ( SIZEOF( QUERY ( sdr <* QUERY ( sar <* USEDIN( sa_occ, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT' ) | ( ( sar. description = 'path feature component usage' ) AND ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF( sar ) ) ) ) | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' @@ -17198,9 +18175,9 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; relating_shape_aspect.description = 'linear' ) ) ) ) = 1 ) ) ) ) = 1 ) ) ) ) = 0 ); wr3: ( SIZEOF( QUERY ( pds <* QUERY ( pd <* USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PROPERTY_DEFINITION.DEFINITION' ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) | ( NOT ( SIZEOF( QUERY ( sa_occ <* USEDIN( pds, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) | ( ( sa_occ.description = - 'bottom condition occurrence' ) AND ( SIZEOF( QUERY ( fcr <* QUERY ( sar <* USEDIN( sa_occ, + + 'PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) | ( NOT ( SIZEOF( QUERY ( sa_occ <* USEDIN( pds, + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) | ( ( sa_occ.description = + 'bottom condition occurrence' ) AND ( SIZEOF( QUERY ( fcr <* QUERY ( sar <* USEDIN( sa_occ, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT' ) | ( ( sar. description = 'hole bottom usage' ) AND ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF( sar ) ) ) ) | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' @@ -17208,15 +18185,15 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; + 'ROUND_HOLE' IN TYPEOF( fcr.related_shape_aspect.of_shape.definition ) ) ) ) ) = 1 ) ) ) ) = 1 ) ) ) ) = 0 ); wr4: ( SIZEOF( QUERY ( pds <* QUERY ( pd <* USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PROPERTY_DEFINITION.DEFINITION' ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) | ( NOT ( SIZEOF( QUERY ( sa_occ <* USEDIN( pds, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) | ( ( sa_occ.description = - 'change in diameter occurrence' ) AND ( SIZEOF( QUERY ( fcr <* QUERY ( sar <* USEDIN( sa_occ, + + 'PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) | ( NOT ( SIZEOF( QUERY ( sa_occ <* USEDIN( pds, + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) | ( ( sa_occ.description = + 'change in diameter occurrence' ) AND ( SIZEOF( QUERY ( fcr <* QUERY ( sar <* USEDIN( sa_occ, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT' ) | ( ( sar. - description = 'taper usage' ) AND ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP' + description = 'taper usage' ) AND ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF( sar ) ) ) ) | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.TAPER' IN TYPEOF( fcr. relating_shape_aspect ) ) AND ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ROUND_HOLE' IN TYPEOF( fcr. related_shape_aspect.of_shape.definition ) ) ) ) ) = 1 ) ) ) ) <= 1 ) ) ) ) = 0 ); - wr5: ( SIZEOF( QUERY ( pdr <* get_property_definition_representations( SELF ) | ( + wr5: ( SIZEOF( QUERY ( pdr <* get_property_definition_representations( SELF ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. used_representation ) ) ) ) = 1 ); END_ENTITY; @@ -17231,25 +18208,25 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; used_representation.items ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ); wr2: ( SIZEOF( QUERY ( pds <* QUERY ( pd <* USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PROPERTY_DEFINITION.DEFINITION' ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) | ( NOT ( SIZEOF( QUERY ( sa_occ <* USEDIN( pds, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) | ( ( sa_occ.description = - 'partial circular boundary occurrence' ) AND ( SIZEOF( QUERY ( sdr <* QUERY ( sar <* USEDIN( sa_occ, + + 'PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) | ( NOT ( SIZEOF( QUERY ( sa_occ <* USEDIN( pds, + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) | ( ( sa_occ.description = + 'partial circular boundary occurrence' ) AND ( SIZEOF( QUERY ( sdr <* QUERY ( sar <* USEDIN( sa_occ, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT' ) | ( ( sar. - description = 'profile usage' ) AND ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DEFINING_RELATIONSHIP' - IN TYPEOF( sar ) ) ) ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PARTIAL_CIRCULAR_PROFILE' IN TYPEOF( + description = 'profile usage' ) AND ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DEFINING_RELATIONSHIP' + IN TYPEOF( sar ) ) ) ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PARTIAL_CIRCULAR_PROFILE' IN TYPEOF( sdr.relating_shape_aspect ) ) ) ) = 1 ) ) ) ) = 1 ) ) ) ) = 0 ); wr3: ( SIZEOF( QUERY ( pds <* QUERY ( pd <* USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PROPERTY_DEFINITION.DEFINITION' ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) | ( NOT ( SIZEOF( QUERY ( sa_occ <* USEDIN( pds, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) | ( ( sa_occ.description = - 'course of travel occurrence' ) AND ( SIZEOF( QUERY ( sdr <* QUERY ( sar <* USEDIN( sa_occ, + + 'PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) | ( NOT ( SIZEOF( QUERY ( sa_occ <* USEDIN( pds, + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) | ( ( sa_occ.description = + 'course of travel occurrence' ) AND ( SIZEOF( QUERY ( sdr <* QUERY ( sar <* USEDIN( sa_occ, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT' ) | ( ( sar. description = 'path feature component usage' ) AND ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF( sar ) ) ) ) | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PATH_FEATURE_COMPONENT' IN TYPEOF( sdr.relating_shape_aspect ) ) AND ( sdr.relating_shape_aspect.description = 'linear' ) ) ) ) = 1 ) ) ) ) = 1 ) ) ) ) = 0 ); - wr4: ( SIZEOF( QUERY ( pdr <* get_property_definition_representations( SELF ) | ( ( - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANAR_SHAPE_REPRESENTATION' IN TYPEOF( pdr.used_representation ) ) + wr4: ( SIZEOF( QUERY ( pdr <* get_property_definition_representations( SELF ) | ( ( + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANAR_SHAPE_REPRESENTATION' IN TYPEOF( pdr.used_representation ) ) AND ( pdr.used_representation.name = 'maximum feature limit' ) ) ) ) >= 0 ); END_ENTITY; @@ -17265,39 +18242,39 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( ( NOT ( SIZEOF( impl_rep. - used_representation.items ) >= 1 ) ) AND ( SIZEOF( impl_rep.used_representation.items ) <= 2 ) ) ) ) = 0 ) ) ) ) = + used_representation.items ) >= 1 ) ) AND ( SIZEOF( impl_rep.used_representation.items ) <= 2 ) ) ) ) = 0 ) ) ) ) = 0 ); wr4: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( SIZEOF( QUERY ( pdr <* USEDIN( pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) AND ( SIZEOF( QUERY ( srwp_i <* + + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) AND ( SIZEOF( QUERY ( srwp_i <* pdr.used_representation.items | ( ( srwp_i.name = 'orientation' ) OR ( srwp_i.name = 'depth' ) ) ) ) = SIZEOF( pdr. used_representation.items ) ) ) ) ) = 1 ) ) ) = 1 ); wr5: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( + + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'MEASURE_REPRESENTATION_ITEM' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * + + 'MEASURE_REPRESENTATION_ITEM' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF( it ) ) = 2 ) AND ( it.name = 'width' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ); wr6: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( pdr <* USEDIN( pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'PLANAR_SHAPE_REPRESENTATION' IN TYPEOF( pdr.used_representation ) ) AND ( pdr.used_representation.name = + + 'PLANAR_SHAPE_REPRESENTATION' IN TYPEOF( pdr.used_representation ) ) AND ( pdr.used_representation.name = 'profile limit' ) ) ) ) <= 1 ) ) ) ) = 0 ); wr7: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( + + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'MEASURE_REPRESENTATION_ITEM' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * + + 'MEASURE_REPRESENTATION_ITEM' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF( it ) ) = 2 ) AND ( it.name = 'depth' ) ) ) ) <= 1 ) ) ) ) = 0 ) ) ) ) = 0 ); END_ENTITY; ENTITY roundness_tolerance SUBTYPE OF ( geometric_tolerance ); WHERE - wr1: ( NOT ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'GEOMETRIC_TOLERANCE_WITH_DATUM_REFERENCE' ) IN + wr1: ( NOT ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'GEOMETRIC_TOLERANCE_WITH_DATUM_REFERENCE' ) IN TYPEOF( SELF ) ) ); END_ENTITY; @@ -17350,10 +18327,10 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; ENTITY ruled_surface_swept_area_solid SUBTYPE OF ( surface_curve_swept_area_solid ); WHERE - wr1: ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.B_SPLINE_SURFACE' IN TYPEOF( SELF.reference_surface ) ) AND ( + wr1: ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.B_SPLINE_SURFACE' IN TYPEOF( SELF.reference_surface ) ) AND ( SELF.reference_surface\b_spline_surface.u_degree = 1 ) ); - wr2: ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PCURVE' IN TYPEOF( SELF.directrix ) ) OR ( ( - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.B_SPLINE_CURVE' IN TYPEOF( SELF.directrix\surface_curve.curve_3d ) ) + wr2: ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PCURVE' IN TYPEOF( SELF.directrix ) ) OR ( ( + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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; @@ -17396,7 +18373,7 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; SUBTYPE OF ( low_order_kinematic_pair_with_motion_coupling ); pitch : length_measure; WHERE - wr1: ( SIZEOF( QUERY ( lr <* SELF\kinematic_pair.associated_link_representations_1 | ( NOT ( + wr1: ( SIZEOF( QUERY ( lr <* SELF\kinematic_pair.associated_link_representations_1 | ( NOT ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.RIGID_LINK_REPRESENTATION' IN TYPEOF( lr ) ) ) ) ) = 0 ); END_ENTITY; @@ -17405,8 +18382,8 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; SELF\pair_value.applies_to_pair : screw_pair; actual_rotation : plane_angle_measure; DERIVE - actual_translation : length_measure := ( SELF\pair_value.applies_to_pair\screw_pair.pitch * - plane_angle_for_pair_in_radian( SELF\pair_value.applies_to_pair, actual_rotation ) ) DIV ( 2 * PI ); + actual_translation : length_measure := ( SELF\pair_value.applies_to_pair\screw_pair.pitch * + plane_angle_for_pair_in_radian( SELF\pair_value.applies_to_pair, actual_rotation ) ) / ( 2 * PI ); END_ENTITY; ENTITY screw_pair_with_range @@ -17414,7 +18391,7 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; lower_limit_actual_rotation : OPTIONAL plane_angle_measure; upper_limit_actual_rotation : OPTIONAL plane_angle_measure; WHERE - wr1: ( ( ( NOT EXISTS( lower_limit_actual_rotation ) ) OR ( NOT EXISTS( upper_limit_actual_rotation ) ) ) XOR ( + wr1: ( ( ( NOT EXISTS( lower_limit_actual_rotation ) ) OR ( NOT EXISTS( upper_limit_actual_rotation ) ) ) XOR ( lower_limit_actual_rotation < upper_limit_actual_rotation ) ); END_ENTITY; @@ -17451,7 +18428,7 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; DERIVE role : object_role := get_role( SELF ); WHERE - wr1: ( SIZEOF( USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'ROLE_ASSOCIATION.ITEM_WITH_ROLE' ) ) <= + wr1: ( SIZEOF( USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'ROLE_ASSOCIATION.ITEM_WITH_ROLE' ) ) <= 1 ); END_ENTITY; @@ -17476,13 +18453,16 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; WHERE wr1: validate_measured_data_type( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.BOOLEAN_VALUE' ); wr2: validate_inspected_elements_type( SELF, [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CURVE'] ); - wr3: validate_locations_of_extreme_value_type( SELF, [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POINT_ON_CURVE', + wr3: validate_locations_of_extreme_value_type( SELF, [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POINT_ON_CURVE', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POINT_ON_CURVE' ] ); wr4: validate_accuracy_types( SELF, [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE'] ); END_ENTITY; ENTITY self_intersecting_geometry - ABSTRACT SUPERTYPE OF ( ONEOF ( self_intersecting_curve, self_intersecting_surface ) ) + ABSTRACT SUPERTYPE OF ( + ONEOF ( + self_intersecting_curve, + self_intersecting_surface ) ) SUBTYPE OF ( inapt_geometry ); END_ENTITY; @@ -17494,7 +18474,7 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; WHERE wr1: validate_measured_data_type( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.BOOLEAN_VALUE' ); wr2: validate_inspected_elements_type( SELF, [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EDGE_LOOP'] ); - wr3: validate_locations_of_extreme_value_type( SELF, [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + + wr3: validate_locations_of_extreme_value_type( SELF, [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'POINT_ON_EDGE_CURVE' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'POINT_ON_EDGE_CURVE'] ); wr4: validate_accuracy_types( SELF, [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE'] ); END_ENTITY; @@ -17507,7 +18487,7 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; WHERE wr1: validate_measured_data_type( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.BOOLEAN_VALUE' ); wr2: validate_inspected_elements_type( SELF, [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CONNECTED_FACE_SET'] ); - wr3: validate_locations_of_extreme_value_type( SELF, [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + + wr3: validate_locations_of_extreme_value_type( SELF, [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'POINT_ON_FACE_SURFACE' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'POINT_ON_FACE_SURFACE'] ); wr4: validate_accuracy_types( SELF, [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE'] ); END_ENTITY; @@ -17520,7 +18500,7 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; WHERE wr1: validate_measured_data_type( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.BOOLEAN_VALUE' ); wr2: validate_inspected_elements_type( SELF, [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SURFACE'] ); - wr3: validate_locations_of_extreme_value_type( SELF, [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POINT_ON_SURFACE', + wr3: validate_locations_of_extreme_value_type( SELF, [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POINT_ON_SURFACE', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POINT_ON_SURFACE' ] ); wr4: validate_accuracy_types( SELF, [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE'] ); END_ENTITY; @@ -17539,7 +18519,14 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; END_ENTITY; ENTITY shape_aspect - SUPERTYPE OF ( ONEOF ( contacting_feature, datum, datum_feature, datum_target, datum_system, general_datum_reference ) ); + SUPERTYPE OF ( + ONEOF ( + contacting_feature, + datum, + datum_feature, + datum_target, + datum_system, + general_datum_reference ) ); name : label; description : OPTIONAL text; of_shape : product_definition_shape; @@ -17579,24 +18566,24 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; represented_shape_aspect_relationship : shape_aspect_relationship; representing_representation_relationship : representation_relationship; WHERE - wr1: ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.REPRESENTATIVE_SHAPE_REPRESENTATION' IN TYPEOF( - representing_representation_relationship\representation_relationship.rep_1 ) ) AND ( - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.REPRESENTATIVE_SHAPE_REPRESENTATION' IN TYPEOF( + wr1: ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.REPRESENTATIVE_SHAPE_REPRESENTATION' IN TYPEOF( + representing_representation_relationship\representation_relationship.rep_1 ) ) AND ( + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.REPRESENTATIVE_SHAPE_REPRESENTATION' IN TYPEOF( representing_representation_relationship\representation_relationship.rep_2 ) ) ); - wr2: ( ( represented_shape_aspect_relationship.relating_shape_aspect IN using_shape_aspect_of_shape_representation( - representing_representation_relationship.rep_1 ) ) AND ( represented_shape_aspect_relationship.related_shape_aspect + wr2: ( ( represented_shape_aspect_relationship.relating_shape_aspect IN using_shape_aspect_of_shape_representation( + representing_representation_relationship.rep_1 ) ) AND ( represented_shape_aspect_relationship.related_shape_aspect IN using_shape_aspect_of_shape_representation( representing_representation_relationship.rep_2 ) ) ); - wr3: ( ( find_representative_shape_representation_of_product_definition( using_product_definition_of_shape_aspect( - represented_shape_aspect_relationship.relating_shape_aspect ) ).context_of_items :=: + wr3: ( ( find_representative_shape_representation_of_product_definition( using_product_definition_of_shape_aspect( + represented_shape_aspect_relationship.relating_shape_aspect ) ).context_of_items :=: find_representative_shape_representation_of_shape_aspect( represented_shape_aspect_relationship. - relating_shape_aspect ).context_of_items ) AND ( find_representative_shape_representation_of_product_definition( + relating_shape_aspect ).context_of_items ) AND ( find_representative_shape_representation_of_product_definition( using_product_definition_of_shape_aspect( represented_shape_aspect_relationship.related_shape_aspect ) ). - context_of_items :=: find_representative_shape_representation_of_shape_aspect( + context_of_items :=: find_representative_shape_representation_of_shape_aspect( represented_shape_aspect_relationship.related_shape_aspect ).context_of_items ) ); - wr4: ( using_product_definition_of_shape_aspect( represented_shape_aspect_relationship.relating_shape_aspect ) :<>: + wr4: ( using_product_definition_of_shape_aspect( represented_shape_aspect_relationship.relating_shape_aspect ) :<>: using_product_definition_of_shape_aspect( represented_shape_aspect_relationship.related_shape_aspect ) ); wr5: ( find_assembly_root( [using_product_definition_of_shape_aspect( represented_shape_aspect_relationship. - relating_shape_aspect )] ) :=: find_assembly_root( [using_product_definition_of_shape_aspect( + relating_shape_aspect )] ) :=: find_assembly_root( [using_product_definition_of_shape_aspect( represented_shape_aspect_relationship.related_shape_aspect )] ) ); END_ENTITY; @@ -17617,24 +18604,27 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; ENTITY shape_data_quality_criteria_representation SUBTYPE OF ( data_quality_criteria_representation ); WHERE - wr1: ( SIZEOF( QUERY ( q <* SELF\representation.items | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + + wr1: ( SIZEOF( QUERY ( q <* SELF\representation.items | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'SHAPE_DATA_QUALITY_CRITERION' ) IN TYPEOF( q ) ) ) ) > 0 ); END_ENTITY; ENTITY shape_data_quality_criterion - SUPERTYPE OF ( ONEOF ( erroneous_data, inapt_data ) ) + SUPERTYPE OF ( + ONEOF ( + erroneous_data, + inapt_data ) ) SUBTYPE OF ( data_quality_criterion, data_quality_measurement_requirement ); assessment_specification : shape_data_quality_assessment_specification_select; WHERE - wr1: ( SIZEOF( USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + + wr1: ( SIZEOF( USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'DATA_QUALITY_CRITERION_ASSESSMENT_ASSOCIATION.' + 'CRITERION' ) ) = 0 ); - wr2: ( SIZEOF( QUERY ( i1 <* bag_to_set( USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + - 'REPRESENTATION_ITEM_RELATIONSHIP.' + 'RELATED_REPRESENTATION_ITEM' ) ) | ( ( - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'DATA_QUALITY_CRITERION_MEASUREMENT_ASSOCIATION' ) IN + wr2: ( SIZEOF( QUERY ( i1 <* bag_to_set( USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + + 'REPRESENTATION_ITEM_RELATIONSHIP.' + 'RELATED_REPRESENTATION_ITEM' ) ) | ( ( + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'DATA_QUALITY_CRITERION_MEASUREMENT_ASSOCIATION' ) IN TYPEOF( i1 ) ) ) ) = 0 ); - wr3: ( SIZEOF( QUERY ( i1 <* bag_to_set( USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + - 'REPRESENTATION_ITEM_RELATIONSHIP.' + 'RELATING_REPRESENTATION_ITEM' ) ) | ( ( - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'DATA_QUALITY_CRITERION_MEASUREMENT_ASSOCIATION' ) IN + wr3: ( SIZEOF( QUERY ( i1 <* bag_to_set( USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + + 'REPRESENTATION_ITEM_RELATIONSHIP.' + 'RELATING_REPRESENTATION_ITEM' ) ) | ( ( + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'DATA_QUALITY_CRITERION_MEASUREMENT_ASSOCIATION' ) IN TYPEOF( i1 ) ) ) ) = 0 ); END_ENTITY; @@ -17648,7 +18638,7 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; SELF\representation_relationship.rep_1 : shape_representation; SELF\representation_relationship.rep_2 : shape_data_quality_inspection_result_representation; WHERE - wr1: ( SIZEOF( using_product_definition_of_shape_representation( SELF.rep_1 ) * bag_to_set( inspected_product_definition( + wr1: ( SIZEOF( using_product_definition_of_shape_representation( SELF.rep_1 ) * bag_to_set( inspected_product_definition( SELF.rep_2 ) ) ) > 0 ); wr2: ( SELF.rep_1\representation.context_of_items :=: SELF.rep_2\representation.context_of_items ); END_ENTITY; @@ -17678,11 +18668,11 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; ENTITY shape_data_quality_inspection_result_representation SUBTYPE OF ( data_quality_inspection_result_representation ); WHERE - wr1: ( SIZEOF( QUERY ( q <* SELF\representation.items | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + + wr1: ( SIZEOF( QUERY ( q <* SELF\representation.items | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'SHAPE_DATA_QUALITY_INSPECTION_RESULT' ) IN TYPEOF( q ) ) ) ) > 0 ); wr2: ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.GEOMETRIC_REPRESENTATION_CONTEXT' IN TYPEOF( SELF\representation. context_of_items ) ); - wr3: ( SIZEOF( USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + + wr3: ( SIZEOF( USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'SHAPE_DATA_QUALITY_INSPECTED_SHAPE_AND_RESULT_RELATIONSHIP.' + 'REP_2' ) ) > 0 ); END_ENTITY; @@ -17699,7 +18689,10 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; END_ENTITY; ENTITY shape_data_quality_value_limit - ABSTRACT SUPERTYPE OF ( ONEOF ( shape_data_quality_upper_value_limit, shape_data_quality_lower_value_limit ) ) + ABSTRACT SUPERTYPE OF ( + ONEOF ( + shape_data_quality_upper_value_limit, + shape_data_quality_lower_value_limit ) ) SUBTYPE OF ( measure_representation_item, qualified_representation_item ); END_ENTITY; @@ -17707,21 +18700,21 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; SUBTYPE OF ( compound_representation_item ); WHERE wr1: ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SET_REPRESENTATION_ITEM' IN TYPEOF( SELF\ - compound_representation_item.item_element ) ) AND ( SIZEOF( SELF\compound_representation_item.item_element ) = 2 ) - AND ( ( SIZEOF( QUERY ( i1 <* SELF\compound_representation_item.item_element | ( - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM' IN TYPEOF( i1 ) ) ) ) = 2 ) OR ( - SIZEOF( QUERY ( i2 <* SELF\compound_representation_item.item_element | ( + compound_representation_item.item_element ) ) AND ( SIZEOF( SELF\compound_representation_item.item_element ) = 2 ) + AND ( ( SIZEOF( QUERY ( i1 <* SELF\compound_representation_item.item_element | ( + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM' IN TYPEOF( i1 ) ) ) ) = 2 ) OR ( + SIZEOF( QUERY ( i2 <* SELF\compound_representation_item.item_element | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.VALUE_REPRESENTATION_ITEM' IN TYPEOF( i2 ) ) ) ) = 2 ) ) ); - wr2: ( ( SIZEOF( QUERY ( i <* SELF\compound_representation_item.item_element | ( i.name = 'upper limit' ) ) ) = 1 ) AND ( + wr2: ( ( SIZEOF( QUERY ( i <* SELF\compound_representation_item.item_element | ( i.name = 'upper limit' ) ) ) = 1 ) AND ( SIZEOF( QUERY ( i <* SELF\compound_representation_item.item_element | ( i.name = 'lower limit' ) ) ) = 1 ) ); - wr3: ( ( SIZEOF( QUERY ( i1 <* SELF\compound_representation_item.item_element | ( ( - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM' IN TYPEOF( i1 ) ) AND ( SIZEOF( + wr3: ( ( SIZEOF( QUERY ( i1 <* SELF\compound_representation_item.item_element | ( ( + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM' IN TYPEOF( i1 ) ) AND ( SIZEOF( QUERY ( i2 <* SELF\compound_representation_item.item_element | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'MEASURE_REPRESENTATION_ITEM' IN TYPEOF( i2 ) ) AND ( i1 :<>: i2 ) AND ( i1\measure_with_unit.unit_component + + 'MEASURE_REPRESENTATION_ITEM' IN TYPEOF( i2 ) ) AND ( i1 :<>: i2 ) AND ( i1\measure_with_unit.unit_component :=: i2\measure_with_unit.unit_component ) ) ) ) = 1 ) ) ) ) = 2 ) OR ( SIZEOF( QUERY ( i1 <* SELF\ compound_representation_item.item_element | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'VALUE_REPRESENTATION_ITEM' IN TYPEOF( i1 ) ) AND ( SIZEOF( QUERY ( i2 <* SELF\compound_representation_item. - item_element | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.VALUE_REPRESENTATION_ITEM' IN TYPEOF( i2 ) ) + item_element | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.VALUE_REPRESENTATION_ITEM' IN TYPEOF( i2 ) ) AND ( i1 :<>: i2 ) AND ( TYPEOF( i1\value_representation_item.value_component ) = TYPEOF( i2\ value_representation_item.value_component ) ) ) ) ) = 1 ) ) ) ) = 2 ) ); END_ENTITY; @@ -17735,7 +18728,7 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; SELF\property_definition_representation.definition : property_definition; SELF\property_definition_representation.used_representation : shape_representation; WHERE - wr1: ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF( definition ) ) OR ( + wr1: ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF( definition ) ) OR ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DEFINITION' IN TYPEOF( definition\property_definition. definition ) ) ); END_ENTITY; @@ -17802,82 +18795,85 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; SUBTYPE OF ( shape_representation ); WHERE wr1 : ( SIZEOF( QUERY ( it <* SELF.items | ( NOT ( SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'SHELL_BASED_WIREFRAME_MODEL' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MAPPED_ITEM', + + 'SHELL_BASED_WIREFRAME_MODEL' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MAPPED_ITEM', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.AXIS2_PLACEMENT_3D' ] * TYPEOF( it ) ) = 1 ) ) ) ) = 0 ); wr2 : ( SIZEOF( QUERY ( it <* SELF.items | ( SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'SHELL_BASED_WIREFRAME_MODEL' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MAPPED_ITEM'] * TYPEOF( it ) ) + + 'SHELL_BASED_WIREFRAME_MODEL' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MAPPED_ITEM'] * TYPEOF( it ) ) = 1 ) ) ) >= 1 ); wr3 : ( SIZEOF( QUERY ( sbwm <* QUERY ( it <* SELF.items | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'SHELL_BASED_WIREFRAME_MODEL' IN TYPEOF( it ) ) ) | ( NOT ( SIZEOF( QUERY ( ws <* QUERY ( sb <* sbwm\ - shell_based_wireframe_model.sbwm_boundary | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.WIRE_SHELL' IN - TYPEOF( sb ) ) ) | ( NOT ( SIZEOF( QUERY ( eloop <* QUERY ( wsb <* ws\wire_shell.wire_shell_extent | ( - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EDGE_LOOP' IN TYPEOF( wsb ) ) ) | ( NOT ( SIZEOF( - QUERY ( el <* eloop\path.edge_list | ( NOT ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EDGE_CURVE' IN + shell_based_wireframe_model.sbwm_boundary | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.WIRE_SHELL' IN + TYPEOF( sb ) ) ) | ( NOT ( SIZEOF( QUERY ( eloop <* QUERY ( wsb <* ws\wire_shell.wire_shell_extent | ( + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EDGE_LOOP' IN TYPEOF( wsb ) ) ) | ( NOT ( SIZEOF( + QUERY ( el <* eloop\path.edge_list | ( NOT ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EDGE_CURVE' IN TYPEOF( el.edge_element ) ) ) ) ) = 0 ) ) ) ) = 0 ) ) ) ) = 0 ) ) ) ) = 0 ); wr4 : ( SIZEOF( QUERY ( sbwm <* QUERY ( it <* SELF.items | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'SHELL_BASED_WIREFRAME_MODEL' IN TYPEOF( it ) ) ) | ( NOT ( SIZEOF( QUERY ( ws <* QUERY ( sb <* sbwm\ - shell_based_wireframe_model.sbwm_boundary | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.WIRE_SHELL' IN - TYPEOF( sb ) ) ) | ( NOT ( SIZEOF( QUERY ( eloop <* QUERY ( wsb <* ws\wire_shell.wire_shell_extent | ( - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EDGE_LOOP' IN TYPEOF( wsb ) ) ) | ( NOT ( SIZEOF( + shell_based_wireframe_model.sbwm_boundary | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.WIRE_SHELL' IN + TYPEOF( sb ) ) ) | ( NOT ( SIZEOF( QUERY ( eloop <* QUERY ( wsb <* ws\wire_shell.wire_shell_extent | ( + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EDGE_LOOP' IN TYPEOF( wsb ) ) ) | ( NOT ( SIZEOF( QUERY ( pline_el <* QUERY ( el <* eloop\path.edge_list | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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 | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'SHELL_BASED_WIREFRAME_MODEL' IN TYPEOF( it ) ) ) | ( NOT ( SIZEOF( QUERY ( ws <* QUERY ( sb <* sbwm\ - shell_based_wireframe_model.sbwm_boundary | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.WIRE_SHELL' IN - TYPEOF( sb ) ) ) | ( NOT ( SIZEOF( QUERY ( eloop <* QUERY ( wsb <* ws\wire_shell.wire_shell_extent | ( - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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 ) ) ) ) + shell_based_wireframe_model.sbwm_boundary | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.WIRE_SHELL' IN + TYPEOF( sb ) ) ) | ( NOT ( SIZEOF( QUERY ( eloop <* QUERY ( wsb <* ws\wire_shell.wire_shell_extent | ( + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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 | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'SHELL_BASED_WIREFRAME_MODEL' IN TYPEOF( it ) ) ) | ( NOT ( SIZEOF( QUERY ( ws <* QUERY ( sb <* sbwm\ - shell_based_wireframe_model.sbwm_boundary | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.WIRE_SHELL' IN - TYPEOF( sb ) ) ) | ( NOT ( SIZEOF( QUERY ( eloop <* QUERY ( wsb <* ws\wire_shell.wire_shell_extent | ( - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EDGE_LOOP' IN TYPEOF( wsb ) ) ) | ( NOT ( SIZEOF( - QUERY ( el <* eloop\path.edge_list | ( NOT ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.VERTEX_POINT' IN - TYPEOF( el.edge_element.edge_start ) ) AND ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.VERTEX_POINT' IN + shell_based_wireframe_model.sbwm_boundary | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.WIRE_SHELL' IN + TYPEOF( sb ) ) ) | ( NOT ( SIZEOF( QUERY ( eloop <* QUERY ( wsb <* ws\wire_shell.wire_shell_extent | ( + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EDGE_LOOP' IN TYPEOF( wsb ) ) ) | ( NOT ( SIZEOF( + QUERY ( el <* eloop\path.edge_list | ( NOT ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.VERTEX_POINT' IN + TYPEOF( el.edge_element.edge_start ) ) AND ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.VERTEX_POINT' IN TYPEOF( el.edge_element.edge_end ) ) ) ) ) ) = 0 ) ) ) ) = 0 ) ) ) ) = 0 ) ) ) ) = 0 ); wr7 : ( SIZEOF( QUERY ( sbwm <* QUERY ( it <* SELF.items | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'SHELL_BASED_WIREFRAME_MODEL' IN TYPEOF( it ) ) ) | ( NOT ( SIZEOF( QUERY ( ws <* QUERY ( sb <* sbwm\ - shell_based_wireframe_model.sbwm_boundary | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.WIRE_SHELL' IN - TYPEOF( sb ) ) ) | ( NOT ( SIZEOF( QUERY ( eloop <* QUERY ( wsb <* ws\wire_shell.wire_shell_extent | ( - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EDGE_LOOP' IN TYPEOF( wsb ) ) ) | ( NOT ( SIZEOF( + shell_based_wireframe_model.sbwm_boundary | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.WIRE_SHELL' IN + TYPEOF( sb ) ) ) | ( NOT ( SIZEOF( QUERY ( eloop <* QUERY ( wsb <* ws\wire_shell.wire_shell_extent | ( + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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 ) ) ) ) ) + .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 | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'SHELL_BASED_WIREFRAME_MODEL' IN TYPEOF( it ) ) ) | ( NOT ( SIZEOF( QUERY ( ws <* QUERY ( sb <* sbwm\ - shell_based_wireframe_model.sbwm_boundary | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.WIRE_SHELL' IN - TYPEOF( sb ) ) ) | ( NOT ( SIZEOF( QUERY ( vloop <* QUERY ( wsb <* ws\wire_shell.wire_shell_extent | ( - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.VERTEX_LOOP' IN TYPEOF( wsb ) ) ) | ( NOT ( - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.VERTEX_POINT' IN TYPEOF( vloop\vertex_loop.loop_vertex ) ) ) ) ) + shell_based_wireframe_model.sbwm_boundary | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.WIRE_SHELL' IN + TYPEOF( sb ) ) ) | ( NOT ( SIZEOF( QUERY ( vloop <* QUERY ( wsb <* ws\wire_shell.wire_shell_extent | ( + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.VERTEX_LOOP' IN TYPEOF( wsb ) ) ) | ( NOT ( + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.VERTEX_POINT' IN TYPEOF( vloop\vertex_loop.loop_vertex ) ) ) ) ) = 0 ) ) ) ) = 0 ) ) ) ) = 0 ); wr9 : ( SIZEOF( QUERY ( sbwm <* QUERY ( it <* SELF.items | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'SHELL_BASED_WIREFRAME_MODEL' IN TYPEOF( it ) ) ) | ( NOT ( SIZEOF( QUERY ( ws <* QUERY ( sb <* sbwm\ - shell_based_wireframe_model.sbwm_boundary | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.WIRE_SHELL' IN - TYPEOF( sb ) ) ) | ( NOT ( SIZEOF( QUERY ( vloop <* QUERY ( wsb <* ws\wire_shell.wire_shell_extent | ( - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.VERTEX_LOOP' IN TYPEOF( wsb ) ) ) | ( NOT - valid_wireframe_vertex_point( vloop\vertex_loop.loop_vertex\vertex_point.vertex_geometry ) ) ) ) = 0 ) ) ) ) = 0 ) ) ) ) + shell_based_wireframe_model.sbwm_boundary | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.WIRE_SHELL' IN + TYPEOF( sb ) ) ) | ( NOT ( SIZEOF( QUERY ( vloop <* QUERY ( wsb <* ws\wire_shell.wire_shell_extent | ( + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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 | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'SHELL_BASED_WIREFRAME_MODEL' IN TYPEOF( it ) ) ) | ( NOT ( SIZEOF( QUERY ( vs <* QUERY ( sb <* sbwm\ - shell_based_wireframe_model.sbwm_boundary | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.VERTEX_SHELL' IN + shell_based_wireframe_model.sbwm_boundary | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.VERTEX_SHELL' IN TYPEOF( sb ) ) ) | ( NOT ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.VERTEX_POINT' IN TYPEOF( vs\ vertex_shell.vertex_shell_extent.loop_vertex ) ) ) ) ) = 0 ) ) ) ) = 0 ); wr11: ( SIZEOF( QUERY ( sbwm <* QUERY ( it <* SELF.items | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'SHELL_BASED_WIREFRAME_MODEL' IN TYPEOF( it ) ) ) | ( NOT ( SIZEOF( QUERY ( vs <* QUERY ( sb <* sbwm\ - shell_based_wireframe_model.sbwm_boundary | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.VERTEX_SHELL' IN + shell_based_wireframe_model.sbwm_boundary | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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 | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MAPPED_ITEM' IN - TYPEOF( it ) ) ) | ( NOT ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + - 'SHELL_BASED_WIREFRAME_SHAPE_REPRESENTATION' ) IN TYPEOF( mi\mapped_item.mapping_source.mapped_representation ) ) ) ) ) + TYPEOF( it ) ) ) | ( NOT ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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 ) ) + 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; @@ -17890,7 +18886,7 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; WHERE wr1: ( ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'SHAPE_DATA_QUALITY_UPPER_VALUE_LIMIT' ) IN TYPEOF( SELF\ - shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold ) ) + shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold ) ) AND ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE' IN value_limit_type( SELF\ shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold ) ) ); wr2: validate_measured_data_type( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE' ); @@ -17904,12 +18900,12 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; WHERE wr1: ( ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'SHAPE_DATA_QUALITY_UPPER_VALUE_LIMIT' ) IN TYPEOF( SELF\ - shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold ) ) + shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold ) ) AND ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE' IN value_limit_type( SELF\ shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold ) ) ); wr2: validate_measured_data_type( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE' ); wr3: validate_inspected_elements_type( SELF, [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.B_SPLINE_CURVE'] ); - wr4: validate_locations_of_extreme_value_type( SELF, [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + + wr4: validate_locations_of_extreme_value_type( SELF, [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'B_SPLINE_CURVE_SEGMENT' ] ); wr5: validate_accuracy_types( SELF, [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE'] ); END_ENTITY; @@ -17919,7 +18915,7 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; WHERE wr1: ( ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'SHAPE_DATA_QUALITY_UPPER_VALUE_LIMIT' ) IN TYPEOF( SELF\ - shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold ) ) + shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold ) ) AND ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE' IN value_limit_type( SELF\ shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold ) ) ); wr2: validate_measured_data_type( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE' ); @@ -18054,13 +19050,16 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; DERIVE SELF\named_unit.dimensions : dimensional_exponents := dimensions_for_si_unit( name ); WHERE - wr1: ( ( NOT ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MASS_UNIT' IN TYPEOF( SELF ) ) AND ( SIZEOF( USEDIN( SELF, + wr1: ( ( NOT ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MASS_UNIT' IN TYPEOF( SELF ) ) AND ( SIZEOF( USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DERIVED_UNIT_ELEMENT.UNIT' ) ) > 0 ) ) ) OR ( prefix = si_prefix .kilo ) ); END_ENTITY; ENTITY simple_boolean_expression - ABSTRACT SUPERTYPE OF ( ONEOF ( boolean_literal, boolean_variable ) ) + ABSTRACT SUPERTYPE OF ( + ONEOF ( + boolean_literal, + boolean_variable ) ) SUBTYPE OF ( boolean_expression, simple_generic_expression ); END_ENTITY; @@ -18069,17 +19068,26 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; END_ENTITY; ENTITY simple_generic_expression - ABSTRACT SUPERTYPE OF ( ONEOF ( generic_literal, generic_variable ) ) + ABSTRACT SUPERTYPE OF ( + ONEOF ( + generic_literal, + generic_variable ) ) SUBTYPE OF ( generic_expression ); END_ENTITY; ENTITY simple_numeric_expression - ABSTRACT SUPERTYPE OF ( ONEOF ( literal_number, numeric_variable ) ) + ABSTRACT SUPERTYPE OF ( + ONEOF ( + literal_number, + numeric_variable ) ) SUBTYPE OF ( numeric_expression, simple_generic_expression ); END_ENTITY; ENTITY simple_string_expression - ABSTRACT SUPERTYPE OF ( ONEOF ( string_literal, string_variable ) ) + ABSTRACT SUPERTYPE OF ( + ONEOF ( + string_literal, + string_variable ) ) SUBTYPE OF ( string_expression, simple_generic_expression ); END_ENTITY; @@ -18087,14 +19095,14 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; SUBTYPE OF ( variational_representation_item ); constraint_group : SET [2 : ?] OF constraint_group_member; WHERE - wr1: ( SIZEOF( QUERY ( q <* using_representations( SELF ) | ( SIZEOF( QUERY ( r <* q.items | ( ( - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SIMULTANEOUS_CONSTRAINT_GROUP' IN TYPEOF( r ) ) AND ( SIZEOF( - QUERY ( s <* constraint_group | ( ( s IN r\simultaneous_constraint_group.constraint_group ) AND ( NOT ( r :=: SELF ) ) ) ) ) + wr1: ( SIZEOF( QUERY ( q <* using_representations( SELF ) | ( SIZEOF( QUERY ( r <* q.items | ( ( + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SIMULTANEOUS_CONSTRAINT_GROUP' IN TYPEOF( r ) ) AND ( SIZEOF( + QUERY ( s <* constraint_group | ( ( s IN r\simultaneous_constraint_group.constraint_group ) AND ( NOT ( r :=: SELF ) ) ) ) ) > 0 ) ) ) ) > 0 ) ) ) = 0 ); - wr2: ( SIZEOF( QUERY ( q <* using_representations( constraint_group[1] ) | ( SIZEOF( QUERY ( r <* constraint_group | + wr2: ( SIZEOF( QUERY ( q <* using_representations( constraint_group[1] ) | ( SIZEOF( QUERY ( r <* constraint_group | item_in_context( r, q.context_of_items ) ) ) = SIZEOF( constraint_group ) ) ) ) > 0 ); wr3: ( SIZEOF( QUERY ( q <* constraint_group | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EXPLICIT_CONSTRAINT' IN - TYPEOF( q ) ) AND ( SIZEOF( QUERY ( r <* q.constrained_elements | ( SIZEOF( QUERY ( s <* constraint_group | ( r IN + TYPEOF( q ) ) AND ( SIZEOF( QUERY ( r <* q.constrained_elements | ( SIZEOF( QUERY ( s <* constraint_group | ( r IN s.reference_elements ) ) ) > 0 ) ) ) > 0 ) ) ) ) = 0 ); END_ENTITY; @@ -18106,17 +19114,17 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; SUBTYPE OF ( csg_2d_shape_representation ); SELF\representation.items : SET [1 : ?] OF csg_2d_area_select; WHERE - wr1: ( SIZEOF( QUERY ( it <* SELF.items | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MAPPED_ITEM' IN TYPEOF( it ) ) ) ) + wr1: ( SIZEOF( QUERY ( it <* SELF.items | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MAPPED_ITEM' IN TYPEOF( it ) ) ) ) = 0 ); - wr2: ( SIZEOF( QUERY ( it <* SELF.items | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CSG_SOLID_2D' IN TYPEOF( it ) ) ) ) + wr2: ( SIZEOF( QUERY ( it <* SELF.items | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CSG_SOLID_2D' IN TYPEOF( it ) ) ) ) = 1 ); END_ENTITY; ENTITY single_boundary_csg_2d_shape_representation SUBTYPE OF ( single_area_csg_2d_shape_representation ); WHERE - wr1: ( SIZEOF( QUERY ( it <* SELF.items | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CSG_PRIMITIVE_SOLID_2D' IN - TYPEOF( it ) ) AND ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRIMITIVE_2D_WITH_INNER_BOUNDARY' IN TYPEOF( + wr1: ( SIZEOF( QUERY ( it <* SELF.items | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CSG_PRIMITIVE_SOLID_2D' IN + TYPEOF( it ) ) AND ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRIMITIVE_2D_WITH_INNER_BOUNDARY' IN TYPEOF( it\csg_primitive_solid_2d.tree_root_expression ) ) ) ) ) = 0 ); END_ENTITY; @@ -18124,7 +19132,7 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; SUBTYPE OF ( property_definition ); SELF\property_definition.definition : product_definition; UNIQUE - ur1 : definition; + ur1 : SELF\property_definition.definition; END_ENTITY; ENTITY skew_line_distance_geometric_constraint @@ -18179,70 +19187,70 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; used_representation.items ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ); wr2: ( SIZEOF( QUERY ( pds <* QUERY ( pd <* USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PROPERTY_DEFINITION.DEFINITION' ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) | ( NOT ( SIZEOF( QUERY ( sa_occ <* USEDIN( pds, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) | ( ( sa_occ.description = - 'swept shape occurrence' ) AND ( SIZEOF( QUERY ( sdr <* QUERY ( sar <* USEDIN( sa_occ, + + 'PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) | ( NOT ( SIZEOF( QUERY ( sa_occ <* USEDIN( pds, + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) | ( ( sa_occ.description = + 'swept shape occurrence' ) AND ( SIZEOF( QUERY ( sdr <* QUERY ( sar <* USEDIN( sa_occ, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.' + 'RELATED_SHAPE_ASPECT' ) | ( ( sar - .description = 'profile usage' ) AND ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DEFINING_RELATIONSHIP' - IN TYPEOF( sar ) ) ) ) | ( SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SQUARE_U_PROFILE', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PARTIAL_CIRCULAR_PROFILE' , - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ROUNDED_U_PROFILE' , + .description = 'profile usage' ) AND ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DEFINING_RELATIONSHIP' + IN TYPEOF( sar ) ) ) ) | ( SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SQUARE_U_PROFILE', + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PARTIAL_CIRCULAR_PROFILE' , + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ROUNDED_U_PROFILE' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.VEE_PROFILE' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'TEE_PROFILE' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.OPEN_PATH_PROFILE'] * TYPEOF( sdr. relating_shape_aspect ) ) = 1 ) ) ) = 1 ) ) ) ) = 1 ) ) ) ) = 0 ); wr3: ( SIZEOF( QUERY ( pds <* QUERY ( pd <* USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PROPERTY_DEFINITION.DEFINITION' ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) | ( NOT ( SIZEOF( QUERY ( sa_occ <* USEDIN( pds, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) | ( ( sa_occ.description = - 'course of travel occurrence' ) AND ( SIZEOF( QUERY ( sdr <* QUERY ( sar <* USEDIN( sa_occ, + + 'PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) | ( NOT ( SIZEOF( QUERY ( sa_occ <* USEDIN( pds, + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) | ( ( sa_occ.description = + 'course of travel occurrence' ) AND ( SIZEOF( QUERY ( sdr <* QUERY ( sar <* USEDIN( sa_occ, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.' + 'RELATED_SHAPE_ASPECT' ) | ( ( sar - .description = 'path feature component usage' ) AND ( sar.name = 'course of travel' ) AND ( - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF( sar ) ) ) ) | ( - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PATH_FEATURE_COMPONENT' IN TYPEOF( sdr.relating_shape_aspect ) ) ) ) + .description = 'path feature component usage' ) AND ( sar.name = 'course of travel' ) AND ( + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF( sar ) ) ) ) | ( + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PATH_FEATURE_COMPONENT' IN TYPEOF( sdr.relating_shape_aspect ) ) ) ) = 1 ) ) ) ) = 1 ) ) ) ) = 0 ); wr4: ( SIZEOF( QUERY ( pds <* QUERY ( pd <* USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PROPERTY_DEFINITION.DEFINITION' ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) | ( NOT ( ( SIZEOF( QUERY ( sa_occ <* USEDIN( pds, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) | ( ( sa_occ.description = - 'end condition occurrence' ) AND ( SIZEOF( QUERY ( fcr <* QUERY ( sar <* USEDIN( sa_occ, + + 'PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) | ( NOT ( ( SIZEOF( QUERY ( sa_occ <* USEDIN( pds, + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) | ( ( sa_occ.description = + 'end condition occurrence' ) AND ( SIZEOF( QUERY ( fcr <* QUERY ( sar <* USEDIN( sa_occ, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT' ) | ( ( sar. - description = 'slot end usage' ) AND ( sar.name IN [ 'course of travel start', 'course of travel end'] ) AND ( - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF( sar ) ) ) ) | ( ( + description = 'slot end usage' ) AND ( sar.name IN [ 'course of travel start', 'course of travel end'] ) AND ( + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF( sar ) ) ) ) | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SLOT_END' IN TYPEOF( fcr.relating_shape_aspect ) ) AND ( fcr. - relating_shape_aspect.description IN [ 'open', 'radiused', 'flat', 'woodruff'] ) AND ( - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SLOT' IN TYPEOF( fcr.related_shape_aspect.of_shape.definition ) ) ) ) ) + relating_shape_aspect.description IN [ 'open', 'radiused', 'flat', 'woodruff'] ) AND ( + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SLOT' IN TYPEOF( fcr.related_shape_aspect.of_shape.definition ) ) ) ) ) = 1 ) ) ) ) = 2 ) OR ( SIZEOF( QUERY ( sa_occ <* USEDIN( pds, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'SHAPE_ASPECT.OF_SHAPE' ) | ( ( sa_occ.description = 'end condition occurrence' ) AND ( SIZEOF( QUERY ( fcr <* + + 'SHAPE_ASPECT.OF_SHAPE' ) | ( ( sa_occ.description = 'end condition occurrence' ) AND ( SIZEOF( QUERY ( fcr <* QUERY ( sar <* USEDIN( sa_occ, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.' - + 'RELATED_SHAPE_ASPECT' ) | ( ( sar.description = 'slot end usage' ) AND ( sar.name IN [ 'course of travel start', - 'course of travel end' ] ) AND ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP' + + 'RELATED_SHAPE_ASPECT' ) | ( ( sar.description = 'slot end usage' ) AND ( sar.name IN [ 'course of travel start', + 'course of travel end' ] ) AND ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF( sar ) ) ) ) | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SLOT_END' IN TYPEOF( fcr. - relating_shape_aspect ) ) AND ( fcr.relating_shape_aspect.description IN [ 'loop'] ) AND ( - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SLOT' IN TYPEOF( fcr.related_shape_aspect.of_shape.definition ) ) ) ) ) + relating_shape_aspect ) ) AND ( fcr.relating_shape_aspect.description IN [ 'loop'] ) AND ( + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SLOT' IN TYPEOF( fcr.related_shape_aspect.of_shape.definition ) ) ) ) ) = 1 ) ) ) ) = 1 ) ) ) ) ) = 0 ); wr5: ( ( NOT ( SIZEOF( QUERY ( pds <* QUERY ( pd <* USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PROPERTY_DEFINITION.DEFINITION' ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) | ( NOT ( SIZEOF( QUERY ( sa_occ <* USEDIN( pds, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) | ( ( sa_occ.description = - 'end condition occurrence' ) AND ( SIZEOF( QUERY ( fcr <* QUERY ( sar <* USEDIN( sa_occ, + + 'PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) | ( NOT ( SIZEOF( QUERY ( sa_occ <* USEDIN( pds, + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) | ( ( sa_occ.description = + 'end condition occurrence' ) AND ( SIZEOF( QUERY ( fcr <* QUERY ( sar <* USEDIN( sa_occ, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT' ) | ( ( sar. - description = 'slot end usage' ) AND ( sar.name IN [ 'course of travel start', 'course of travel end'] ) AND ( - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF( sar ) ) ) ) | ( ( + description = 'slot end usage' ) AND ( sar.name IN [ 'course of travel start', 'course of travel end'] ) AND ( + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF( sar ) ) ) ) | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SLOT_END' IN TYPEOF( fcr.relating_shape_aspect ) ) AND ( fcr. - relating_shape_aspect.description IN [ 'loop'] ) AND ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SLOT' IN - TYPEOF( fcr.related_shape_aspect.of_shape.definition ) ) ) ) ) = 1 ) ) ) ) = 1 ) ) ) ) = 0 ) ) OR ( SIZEOF( + relating_shape_aspect.description IN [ 'loop'] ) AND ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SLOT' IN + TYPEOF( fcr.related_shape_aspect.of_shape.definition ) ) ) ) ) = 1 ) ) ) ) = 1 ) ) ) ) = 0 ) ) OR ( SIZEOF( QUERY ( pds <* QUERY ( pd <* USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.' + 'DEFINITION' ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) | ( NOT ( SIZEOF( QUERY ( sa_occ <* USEDIN( pds, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT.' - + 'OF_SHAPE' ) | ( ( sa_occ.description = 'course of travel occurrence' ) AND ( SIZEOF( QUERY ( sdr <* + + 'OF_SHAPE' ) | ( ( sa_occ.description = 'course of travel occurrence' ) AND ( SIZEOF( QUERY ( sdr <* QUERY ( sar <* USEDIN( sa_occ, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.' - + 'RELATED_SHAPE_ASPECT' ) | ( ( sar.description = 'path feature component usage' ) AND ( sar.name = - 'course of travel' ) AND ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DEFINING_RELATIONSHIP' IN + + 'RELATED_SHAPE_ASPECT' ) | ( ( sar.description = 'path feature component usage' ) AND ( sar.name = + 'course of travel' ) AND ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF( sar ) ) ) ) | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PATH_FEATURE_COMPONENT' IN TYPEOF( sdr. - relating_shape_aspect ) ) AND ( sdr.relating_shape_aspect.description IN [ 'complex', 'complete circular'] ) ) ) ) + relating_shape_aspect ) ) AND ( sdr.relating_shape_aspect.description IN [ 'complex', 'complete circular'] ) ) ) ) = 1 ) ) ) ) = 1 ) ) ) ) = 0 ) ); - wr6: ( SIZEOF( QUERY ( pdr <* get_property_definition_representations( SELF ) | ( ( - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANAR_SHAPE_REPRESENTATION' IN TYPEOF( pdr.used_representation ) ) + wr6: ( SIZEOF( QUERY ( pdr <* get_property_definition_representations( SELF ) | ( ( + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANAR_SHAPE_REPRESENTATION' IN TYPEOF( pdr.used_representation ) ) AND ( pdr.used_representation.name = 'maximum feature limit' ) ) ) ) >= 0 ); END_ENTITY; @@ -18251,57 +19259,57 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; WHERE wr1 : ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FEATURE_COMPONENT_DEFINITION' IN TYPEOF( SELF.of_shape.definition ) ); wr2 : ( SELF.description IN [ 'open', 'radiused', 'flat', 'woodruff', 'loop'] ); - wr3 : ( ( NOT ( SELF.description IN [ 'open', 'radiused', 'loop'] ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( + wr3 : ( ( NOT ( SELF.description IN [ 'open', 'radiused', 'loop'] ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( pdr <* USEDIN( pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.' - + 'DEFINITION' ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN + + 'DEFINITION' ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) ) = 0 ) ) ) ) = 0 ) ); - wr4 : ( ( NOT ( SELF.description IN [ 'flat', 'woodruff'] ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( + wr4 : ( ( NOT ( SELF.description IN [ 'flat', 'woodruff'] ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( pdr <* USEDIN( pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.' - + 'DEFINITION' ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN + + 'DEFINITION' ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) ) = 1 ) ) ) ) = 0 ) ); - wr5 : ( ( NOT ( SELF.description IN [ 'flat'] ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( + wr5 : ( ( NOT ( SELF.description IN [ 'flat'] ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( impl_rep. used_representation.items ) = 2 ) ) ) ) = 0 ) ) ) ) = 0 ) ); - wr6 : ( ( NOT ( SELF.description = 'flat' ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( + wr6 : ( ( NOT ( SELF.description = 'flat' ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( + + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'MEASURE_REPRESENTATION_ITEM' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * + + 'MEASURE_REPRESENTATION_ITEM' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF( it ) ) = 2 ) AND ( it.name = 'first radius' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ) ); - wr7 : ( ( NOT ( SELF.description = 'flat' ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( + wr7 : ( ( NOT ( SELF.description = 'flat' ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( + + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'MEASURE_REPRESENTATION_ITEM' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * + + 'MEASURE_REPRESENTATION_ITEM' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF( it ) ) = 2 ) AND ( it.name = 'second radius' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ) ); - wr8 : ( ( NOT ( SELF.description = 'woodruff' ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( + wr8 : ( ( NOT ( SELF.description = 'woodruff' ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( + + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'LENGTH_MEASURE_WITH_UNIT' IN TYPEOF( it ) ) AND ( it.name = 'radius' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ) ); - wr9 : ( ( NOT ( SELF.description IN [ 'woodruff'] ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( + wr9 : ( ( NOT ( SELF.description IN [ 'woodruff'] ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( impl_rep. used_representation.items ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ) ); wr10: ( SIZEOF( QUERY ( fcr <* QUERY ( sar <* USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'SHAPE_ASPECT_RELATIONSHIP.' + 'RELATING_SHAPE_ASPECT' ) | ( ( sar.description = 'slot end usage' ) AND ( sar. - name IN [ 'course of travel start', 'course of travel end'] ) AND ( - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF( sar ) ) ) ) | ( ( - fcr.related_shape_aspect.description = 'end condition occurrence' ) AND ( - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SLOT' IN TYPEOF( fcr.related_shape_aspect.of_shape.definition ) ) + name IN [ 'course of travel start', 'course of travel end'] ) AND ( + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF( sar ) ) ) ) | ( ( + fcr.related_shape_aspect.description = 'end condition occurrence' ) AND ( + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SLOT' IN TYPEOF( fcr.related_shape_aspect.of_shape.definition ) ) AND ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SLOT_END' IN TYPEOF( fcr.relating_shape_aspect ) ) ) ) ) >= 1 ); END_ENTITY; @@ -18311,7 +19319,7 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; WHERE wr1: ( ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'SHAPE_DATA_QUALITY_UPPER_VALUE_LIMIT' ) IN TYPEOF( SELF\ - shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold ) ) + shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold ) ) AND ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.AREA_MEASURE' IN value_limit_type( SELF\ shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold ) ) ); wr2: validate_measured_data_type( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.AREA_MEASURE' ); @@ -18325,7 +19333,7 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; WHERE wr1: ( ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'SHAPE_DATA_QUALITY_UPPER_VALUE_LIMIT' ) IN TYPEOF( SELF\ - shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold ) ) + shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold ) ) AND ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.AREA_MEASURE' IN value_limit_type( SELF\ shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold ) ) ); wr2: validate_measured_data_type( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.AREA_MEASURE' ); @@ -18339,12 +19347,12 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; WHERE wr1: ( ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'SHAPE_DATA_QUALITY_UPPER_VALUE_LIMIT' ) IN TYPEOF( SELF\ - shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold ) ) + shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold ) ) AND ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.AREA_MEASURE' IN value_limit_type( SELF\ shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold ) ) ); wr2: validate_measured_data_type( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.AREA_MEASURE' ); wr3: validate_inspected_elements_type( SELF, [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.B_SPLINE_SURFACE'] ); - wr4: validate_locations_of_extreme_value_type( SELF, [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + + wr4: validate_locations_of_extreme_value_type( SELF, [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'B_SPLINE_SURFACE_PATCH' ] ); wr5: validate_accuracy_types( SELF, [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.AREA_MEASURE'] ); END_ENTITY; @@ -18354,7 +19362,7 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; WHERE wr1: ( ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'SHAPE_DATA_QUALITY_UPPER_VALUE_LIMIT' ) IN TYPEOF( SELF\ - shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold ) ) + shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold ) ) AND ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.VOLUME_MEASURE' IN value_limit_type( SELF\ shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold ) ) ); wr2: validate_measured_data_type( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.VOLUME_MEASURE' ); @@ -18384,7 +19392,7 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; SUBTYPE OF ( named_unit ); WHERE wr1: ( ( SELF\named_unit.dimensions.length_exponent = 0 ) AND ( SELF\named_unit.dimensions.mass_exponent = 0 ) AND ( SELF\ - named_unit.dimensions.time_exponent = 0 ) AND ( SELF\named_unit.dimensions.electric_current_exponent = 0 ) AND ( + named_unit.dimensions.time_exponent = 0 ) AND ( SELF\named_unit.dimensions.electric_current_exponent = 0 ) AND ( SELF\named_unit.dimensions.thermodynamic_temperature_exponent = 0 ) AND ( SELF\named_unit.dimensions. amount_of_substance_exponent = 0 ) AND ( SELF\named_unit.dimensions.luminous_intensity_exponent = 0 ) ); END_ENTITY; @@ -18394,7 +19402,14 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; END_ENTITY; ENTITY solid_model - SUPERTYPE OF ( ONEOF ( csg_solid, manifold_solid_brep, swept_face_solid, swept_area_solid, swept_disk_solid, solid_replica ) ) + 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; @@ -18415,13 +19430,17 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; 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 ) ) + 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 ) + SUPERTYPE OF ( + solid_with_incomplete_circular_pattern ) SUBTYPE OF ( solid_with_shape_element_pattern ); replicate_count : positive_integer; angular_spacing : plane_angle_measure; @@ -18460,8 +19479,14 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; 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 ) ) + 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; @@ -18477,7 +19502,7 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; WHERE wr1: ( ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' ) IN TYPEOF( SELF\ - shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold ) ) + shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold ) ) AND ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COUNT_MEASURE' IN value_limit_type( SELF\ shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold ) ) ); wr2: validate_measured_data_type( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COUNT_MEASURE' ); @@ -18498,7 +19523,7 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; profile : positioned_sketch; reference_point : point; WHERE - wr1: ( SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CURVE_BOUNDED_SURFACE', + wr1: ( SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CURVE_BOUNDED_SURFACE', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FACE_SURFACE' ] * TYPEOF( profile.sketch_basis ) ) = 1 ); wr2: ( profile IN using_items( reference_point, [] ) ); END_ENTITY; @@ -18508,7 +19533,7 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; profile : positioned_sketch; reference_point : point; WHERE - wr1: ( SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CURVE_BOUNDED_SURFACE', + wr1: ( SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CURVE_BOUNDED_SURFACE', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FACE_SURFACE' ] * TYPEOF( profile.sketch_basis ) ) = 1 ); wr2: ( profile IN using_items( reference_point, [] ) ); END_ENTITY; @@ -18525,7 +19550,8 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; END_ENTITY; ENTITY solid_with_hole - ABSTRACT SUPERTYPE OF ( solid_with_stepped_round_hole ) + ABSTRACT SUPERTYPE OF ( + solid_with_stepped_round_hole ) SUBTYPE OF ( solid_with_depression ); END_ENTITY; @@ -18549,22 +19575,30 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; END_ENTITY; ENTITY solid_with_pocket - ABSTRACT SUPERTYPE OF ( ONEOF ( solid_with_rectangular_pocket, solid_with_circular_pocket, solid_with_general_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 ) ) + 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 ) + SUPERTYPE OF ( + solid_with_incomplete_rectangular_pattern ) SUBTYPE OF ( solid_with_shape_element_pattern ); row_count : positive_integer; column_count : positive_integer; @@ -18580,7 +19614,7 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; pocket_width : positive_length_measure; corner_radius : non_negative_length_measure; WHERE - wr1: ( ( corner_radius < ( pocket_width DIV 2 ) ) AND ( corner_radius < ( pocket_length DIV 2 ) ) ); + wr1: ( ( corner_radius < ( pocket_width / 2 ) ) AND ( corner_radius < ( pocket_length / 2 ) ) ); END_ENTITY; ENTITY solid_with_rectangular_protrusion @@ -18589,12 +19623,14 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; protrusion_width : positive_length_measure; protrusion_corner_radius : non_negative_length_measure; WHERE - wr1: ( ( protrusion_corner_radius <= ( protrusion_width DIV 2 ) ) AND ( protrusion_corner_radius <= ( protrusion_length DIV - 2 ) ) ); + 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 ) ) + 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; @@ -18605,16 +19641,22 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; 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 ) ) + 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 ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SOLID_WITH_THROUGH_DEPRESSION' IN TYPEOF( SELF ) ) AND ( + wr1: ( NOT ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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 ( + 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; @@ -18626,8 +19668,13 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; 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 ) ) + 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; @@ -18635,9 +19682,9 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; DERIVE SELF\solid_with_depression.depth : positive_length_measure := compute_total_depth( SELF ); WHERE - wr1: ( NOT ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SOLID_WITH_THROUGH_DEPRESSION' IN TYPEOF( SELF ) ) AND ( - SIZEOF( TYPEOF( SELF ) * [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SOLID_WITH_FLAT_BOTTOM_ROUND_HOLE', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SOLID_WITH_SPHERICAL_BOTTOM_ROUND_HOLE' , + wr1: ( NOT ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SOLID_WITH_THROUGH_DEPRESSION' IN TYPEOF( SELF ) ) AND ( + SIZEOF( TYPEOF( SELF ) * [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SOLID_WITH_FLAT_BOTTOM_ROUND_HOLE', + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SOLID_WITH_SPHERICAL_BOTTOM_ROUND_HOLE' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SOLID_WITH_FLAT_BOTTOM_ROUND_HOLE' ] ) <> 0 ) ) ); END_ENTITY; @@ -18646,7 +19693,7 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; conical_transitions : SET [1 : ?] OF conical_stepped_hole_transition; WHERE wr1: ( SIZEOF( conical_transitions ) <= ( SELF\solid_with_stepped_round_hole.segments + 1 ) ); - wr2: ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SOLID_WITH_THROUGH_DEPRESSION' IN TYPEOF( SELF ) ) XOR ( SIZEOF( + wr2: ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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; @@ -18669,8 +19716,8 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; SUBTYPE OF ( solid_with_depression ); exit_faces : SET [1 : ?] OF face_surface; WHERE - wr1: ( SIZEOF( TYPEOF( SELF ) * [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SOLID_WITH_HOLE', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SOLID_WITH_POCKET' , + wr1: ( SIZEOF( TYPEOF( SELF ) * [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SOLID_WITH_HOLE', + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SOLID_WITH_POCKET' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SOLID_WITH_SLOT' ] ) = 1 ); END_ENTITY; @@ -18688,7 +19735,7 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; 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( + wr3: ( NOT ( ( point_list[1] = point_list[HIINDEX( point_list )] ) AND ( NOT ( radius_list[1] = radius_list[HIINDEX( radius_list )] ) ) ) ); END_ENTITY; @@ -18728,12 +19775,12 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; 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 <* + wr4: ( ( upper_usage.related_product_definition :=: next_usage.relating_product_definition ) OR ( SIZEOF( QUERY ( pdr <* USEDIN( upper_usage.related_product_definition, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'PRODUCT_DEFINITION_RELATIONSHIP.' + 'RELATED_PRODUCT_DEFINITION' ) | ( pdr.relating_product_definition :=: + + 'PRODUCT_DEFINITION_RELATIONSHIP.' + 'RELATED_PRODUCT_DEFINITION' ) | ( pdr.relating_product_definition :=: next_usage.relating_product_definition ) ) ) = 1 ) ); - wr5: ( SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.NEXT_ASSEMBLY_USAGE_OCCURRENCE', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SPECIFIED_HIGHER_USAGE_OCCURRENCE' ] * TYPEOF( upper_usage ) ) = + wr5: ( SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.NEXT_ASSEMBLY_USAGE_OCCURRENCE', + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SPECIFIED_HIGHER_USAGE_OCCURRENCE' ] * TYPEOF( upper_usage ) ) = 1 ); END_ENTITY; @@ -18754,16 +19801,16 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; wr2: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( + + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'MEASURE_REPRESENTATION_ITEM' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * + + 'MEASURE_REPRESENTATION_ITEM' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF( it ) ) = 2 ) AND ( it.name = 'radius' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ); wr3: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( + + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'MEASURE_REPRESENTATION_ITEM' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANE_ANGLE_MEASURE_WITH_UNIT'] + + 'MEASURE_REPRESENTATION_ITEM' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANE_ANGLE_MEASURE_WITH_UNIT'] * TYPEOF( it ) ) = 2 ) AND ( it.name = 'internal angle' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ); END_ENTITY; @@ -18805,7 +19852,7 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; upper_limit_roll : OPTIONAL plane_angle_measure; WHERE wr1: ( ( ( NOT EXISTS( lower_limit_yaw ) ) OR ( NOT EXISTS( upper_limit_yaw ) ) ) XOR ( lower_limit_yaw < upper_limit_yaw ) ); - wr2: ( ( ( NOT EXISTS( lower_limit_roll ) ) OR ( NOT EXISTS( upper_limit_roll ) ) ) XOR ( lower_limit_roll < + wr2: ( ( ( NOT EXISTS( lower_limit_roll ) ) OR ( NOT EXISTS( upper_limit_roll ) ) ) XOR ( lower_limit_roll < upper_limit_roll ) ); END_ENTITY; @@ -18819,9 +19866,9 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; upper_limit_roll : OPTIONAL plane_angle_measure; WHERE wr1: ( ( ( NOT EXISTS( lower_limit_yaw ) ) OR ( NOT EXISTS( upper_limit_yaw ) ) ) XOR ( lower_limit_yaw < upper_limit_yaw ) ); - wr2: ( ( ( NOT EXISTS( lower_limit_pitch ) ) OR ( NOT EXISTS( upper_limit_pitch ) ) ) XOR ( lower_limit_pitch < + wr2: ( ( ( NOT EXISTS( lower_limit_pitch ) ) OR ( NOT EXISTS( upper_limit_pitch ) ) ) XOR ( lower_limit_pitch < upper_limit_pitch ) ); - wr3: ( ( ( NOT EXISTS( lower_limit_roll ) ) OR ( NOT EXISTS( upper_limit_roll ) ) ) XOR ( lower_limit_roll < + wr3: ( ( ( NOT EXISTS( lower_limit_roll ) ) OR ( NOT EXISTS( upper_limit_roll ) ) ) XOR ( lower_limit_roll < upper_limit_roll ) ); END_ENTITY; @@ -18856,68 +19903,69 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; wr4 : ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( SIZEOF( QUERY ( pdr <* USEDIN( pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) AND ( SIZEOF( QUERY ( srwp_i <* - pdr.used_representation.items | ( ( srwp_i.name = 'orientation' ) OR ( srwp_i.name = 'width' ) OR ( srwp_i.name = - 'first angle' ) OR ( srwp_i.name = 'second angle' ) OR ( srwp_i.name = 'first radius' ) OR ( srwp_i.name = + + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) AND ( SIZEOF( QUERY ( srwp_i <* + pdr.used_representation.items | ( ( srwp_i.name = 'orientation' ) OR ( srwp_i.name = 'width' ) OR ( srwp_i.name = + 'first angle' ) OR ( srwp_i.name = 'second angle' ) OR ( srwp_i.name = 'first radius' ) OR ( srwp_i.name = 'second radius' ) OR ( srwp_i.name = 'profile limit' ) OR ( srwp_i.name = 'depth' ) ) ) ) = SIZEOF( pdr. used_representation.items ) ) ) ) ) = 1 ) ) ) = 1 ); wr5 : ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( - QUERY ( it <* impl_rep.used_representation.items | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLACEMENT' + + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( + QUERY ( it <* impl_rep.used_representation.items | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLACEMENT' IN TYPEOF( it ) ) AND ( it.name = 'orientation' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ); wr6 : ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( + + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'MEASURE_REPRESENTATION_ITEM' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * + + 'MEASURE_REPRESENTATION_ITEM' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF( it ) ) = 2 ) AND ( it.name = 'width' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ); wr7 : ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( + + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'MEASURE_REPRESENTATION_ITEM' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * + + 'MEASURE_REPRESENTATION_ITEM' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF( it ) ) = 2 ) AND ( it.name = 'first radius' ) ) ) ) <= 1 ) ) ) ) = 0 ) ) ) ) = 0 ); wr8 : ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( + + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'MEASURE_REPRESENTATION_ITEM' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * + + 'MEASURE_REPRESENTATION_ITEM' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF( it ) ) = 2 ) AND ( it.name = 'second radius' ) ) ) ) <= 1 ) ) ) ) = 0 ) ) ) ) = 0 ); wr9 : ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( + + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'MEASURE_REPRESENTATION_ITEM' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANE_ANGLE_MEASURE_WITH_UNIT'] + + 'MEASURE_REPRESENTATION_ITEM' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANE_ANGLE_MEASURE_WITH_UNIT'] * TYPEOF( it ) ) = 2 ) AND ( it.name = 'first angle' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ); wr10: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( + + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'MEASURE_REPRESENTATION_ITEM' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANE_ANGLE_MEASURE_WITH_UNIT'] + + 'MEASURE_REPRESENTATION_ITEM' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANE_ANGLE_MEASURE_WITH_UNIT'] * TYPEOF( it ) ) = 2 ) AND ( it.name = 'second angle' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ); wr11: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( pdr <* USEDIN( pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'PLANAR_SHAPE_REPRESENTATION' IN TYPEOF( pdr.used_representation ) ) AND ( pdr.used_representation.name = + + 'PLANAR_SHAPE_REPRESENTATION' IN TYPEOF( pdr.used_representation ) ) AND ( pdr.used_representation.name = 'profile limit' ) ) ) ) <= 1 ) ) ) ) = 0 ); wr12: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( + + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'MEASURE_REPRESENTATION_ITEM' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * + + 'MEASURE_REPRESENTATION_ITEM' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF( it ) ) = 2 ) AND ( it.name = 'depth' ) ) ) ) <= 1 ) ) ) ) = 0 ) ) ) ) = 0 ); END_ENTITY; ENTITY standard_uncertainty - SUPERTYPE OF ( expanded_uncertainty ) + SUPERTYPE OF ( + expanded_uncertainty ) SUBTYPE OF ( uncertainty_qualifier ); uncertainty_value : REAL; END_ENTITY; @@ -18937,7 +19985,7 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; WHERE wr1: ( ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' ) IN TYPEOF( SELF\ - shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold ) ) + shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold ) ) AND ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANE_ANGLE_MEASURE' IN value_limit_type( SELF\ shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold ) ) ); wr2: validate_measured_data_type( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANE_ANGLE_MEASURE' ); @@ -18951,18 +19999,21 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; WHERE wr1: ( ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' ) IN TYPEOF( SELF\ - shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold ) ) + shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold ) ) AND ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANE_ANGLE_MEASURE' IN value_limit_type( SELF\ shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold ) ) ); wr2: validate_measured_data_type( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANE_ANGLE_MEASURE' ); wr3: validate_inspected_elements_type( SELF, [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CONNECTED_FACE_SET'] ); - wr4: validate_locations_of_extreme_value_type( SELF, [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + + wr4: validate_locations_of_extreme_value_type( SELF, [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'POINT_ON_EDGE_CURVE' ] ); wr5: validate_accuracy_types( SELF, [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANE_ANGLE_MEASURE'] ); END_ENTITY; ENTITY steep_geometry_transition_across_edge - ABSTRACT SUPERTYPE OF ( ONEOF ( steep_angle_between_adjacent_edges, steep_angle_between_adjacent_faces ) ) + ABSTRACT SUPERTYPE OF ( + ONEOF ( + steep_angle_between_adjacent_edges, + steep_angle_between_adjacent_faces ) ) SUBTYPE OF ( inapt_topology_and_geometry_relationship ); END_ENTITY; @@ -18976,9 +20027,9 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; used_representation.items ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ); wr2: ( SIZEOF( QUERY ( pds <* QUERY ( pd <* USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PROPERTY_DEFINITION.DEFINITION' ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) | ( NOT ( SIZEOF( QUERY ( sa_occ <* USEDIN( pds, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) | ( ( sa_occ.description = - 'course of travel occurrence' ) AND ( SIZEOF( QUERY ( sdr <* QUERY ( sar <* USEDIN( sa_occ, + + 'PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) | ( NOT ( SIZEOF( QUERY ( sa_occ <* USEDIN( pds, + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) | ( ( sa_occ.description = + 'course of travel occurrence' ) AND ( SIZEOF( QUERY ( sdr <* QUERY ( sar <* USEDIN( sa_occ, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT' ) | ( ( sar. description = 'path feature component usage' ) AND ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF( sar ) ) ) ) | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' @@ -18986,22 +20037,22 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; 'linear' ) ) ) ) = 1 ) ) ) ) = 1 ) ) ) ) = 0 ); wr3: ( SIZEOF( QUERY ( pds <* QUERY ( pd <* USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PROPERTY_DEFINITION.DEFINITION' ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) | ( NOT ( SIZEOF( QUERY ( sa_occ <* USEDIN( pds, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) | ( ( sa_occ.description = - 'removal boundary occurrence' ) AND ( SIZEOF( QUERY ( sdr <* QUERY ( sar <* USEDIN( sa_occ, + + 'PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) | ( NOT ( SIZEOF( QUERY ( sa_occ <* USEDIN( pds, + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) | ( ( sa_occ.description = + 'removal boundary occurrence' ) AND ( SIZEOF( QUERY ( sdr <* QUERY ( sar <* USEDIN( sa_occ, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT' ) | ( ( sar. - description = 'profile usage' ) AND ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DEFINING_RELATIONSHIP' + description = 'profile usage' ) AND ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF( sar ) ) ) ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.VEE_PROFILE' IN TYPEOF( sdr. relating_shape_aspect ) ) ) ) = 1 ) ) ) ) = 1 ) ) ) ) = 0 ); - wr4: ( SIZEOF( QUERY ( pdr <* get_property_definition_representations( SELF ) | ( ( - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANAR_SHAPE_REPRESENTATION' IN TYPEOF( pdr.used_representation ) ) + wr4: ( SIZEOF( QUERY ( pdr <* get_property_definition_representations( SELF ) | ( ( + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANAR_SHAPE_REPRESENTATION' IN TYPEOF( pdr.used_representation ) ) AND ( pdr.used_representation.name = 'maximum feature limit' ) ) ) ) >= 0 ); wr5: ( SIZEOF( QUERY ( pds <* USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) - | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pds ) ) AND ( SIZEOF( - QUERY ( csa <* USEDIN( pds, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) | ( ( - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COMPOSITE_SHAPE_ASPECT' IN TYPEOF( csa ) ) AND ( csa.name = - 'uncut volume' ) AND ( SIZEOF( QUERY ( sar <* csa.component_relationships | ( ( - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF( sar ) ) AND ( + | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pds ) ) AND ( SIZEOF( + QUERY ( csa <* USEDIN( pds, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) | ( ( + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COMPOSITE_SHAPE_ASPECT' IN TYPEOF( csa ) ) AND ( csa.name = + 'uncut volume' ) AND ( SIZEOF( QUERY ( sar <* csa.component_relationships | ( ( + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF( sar ) ) AND ( SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.BOSS', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PROTRUSION' ] * TYPEOF( sar.related_shape_aspect ) ) = 1 ) ) ) ) = 1 ) ) ) ) <= 1 ) ) ) ) = 1 ); END_ENTITY; @@ -19009,7 +20060,7 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; ENTITY straightness_tolerance SUBTYPE OF ( geometric_tolerance ); WHERE - wr1: ( NOT ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'GEOMETRIC_TOLERANCE_WITH_DATUM_REFERENCE' ) IN + wr1: ( NOT ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'GEOMETRIC_TOLERANCE_WITH_DATUM_REFERENCE' ) IN TYPEOF( SELF ) ) ); END_ENTITY; @@ -19019,8 +20070,14 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; END_ENTITY; ENTITY string_expression - ABSTRACT SUPERTYPE OF ( ONEOF ( simple_string_expression, index_expression, substring_expression, concat_expression, - format_function, string_defined_function ) ) + ABSTRACT SUPERTYPE OF ( + ONEOF ( + simple_string_expression, + index_expression, + substring_expression, + concat_expression, + format_function, + string_defined_function ) ) SUBTYPE OF ( expression ); END_ENTITY; @@ -19036,34 +20093,34 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; ENTITY structured_dimension_callout SUBTYPE OF ( draughting_callout ); WHERE - wr1: ( SIZEOF( TYPEOF( SELF ) * [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DATUM_FEATURE_CALLOUT', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DATUM_TARGET_CALLOUT' , - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.GEOMETRICAL_TOLERANCE_CALLOUT' , - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LEADER_DIRECTED_CALLOUT' , - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROJECTION_DIRECTED_CALLOUT' , + wr1: ( SIZEOF( TYPEOF( SELF ) * [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DATUM_FEATURE_CALLOUT', + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DATUM_TARGET_CALLOUT' , + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.GEOMETRICAL_TOLERANCE_CALLOUT' , + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LEADER_DIRECTED_CALLOUT' , + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROJECTION_DIRECTED_CALLOUT' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DIMENSION_CURVE_DIRECTED_CALLOUT' ] ) = 0 ); wr2: ( SIZEOF( QUERY ( ato <* QUERY ( con <* SELF.contents | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'ANNOTATION_TEXT_OCCURRENCE' IN TYPEOF( con ) ) ) | ( NOT ( ato.name IN [ 'dimension value', 'tolerance value', + + '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 | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'ANNOTATION_TEXT_OCCURRENCE' IN TYPEOF( con ) ) ) | ( ato.name = 'dimension value' ) ) ) >= 1 ); - wr4: ( SIZEOF( QUERY ( dcr <* USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + - 'DRAUGHTING_CALLOUT_RELATIONSHIP.' + 'RELATING_DRAUGHTING_CALLOUT' ) | ( ( ( - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'DIMENSION_CALLOUT_COMPONENT_RELATIONSHIP' ) IN TYPEOF( dcr ) ) + wr4: ( SIZEOF( QUERY ( dcr <* USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + + 'DRAUGHTING_CALLOUT_RELATIONSHIP.' + 'RELATING_DRAUGHTING_CALLOUT' ) | ( ( ( + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'DIMENSION_CALLOUT_COMPONENT_RELATIONSHIP' ) IN TYPEOF( dcr ) ) AND ( dcr.name = 'prefix' ) ) ) ) <= 1 ); - wr5: ( SIZEOF( QUERY ( dcr <* USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + - 'DRAUGHTING_CALLOUT_RELATIONSHIP.' + 'RELATING_DRAUGHTING_CALLOUT' ) | ( ( ( - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'DIMENSION_CALLOUT_COMPONENT_RELATIONSHIP' ) IN TYPEOF( dcr ) ) + wr5: ( SIZEOF( QUERY ( dcr <* USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + + 'DRAUGHTING_CALLOUT_RELATIONSHIP.' + 'RELATING_DRAUGHTING_CALLOUT' ) | ( ( ( + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'DIMENSION_CALLOUT_COMPONENT_RELATIONSHIP' ) IN TYPEOF( dcr ) ) AND ( dcr.name = 'suffix' ) ) ) ) <= 1 ); wr6: ( ( NOT ( SIZEOF( QUERY ( ato <* QUERY ( con <* SELF.contents | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'ANNOTATION_TEXT_OCCURRENCE' IN TYPEOF( con ) ) ) | ( ato.name = 'prefix text' ) ) ) > 0 ) ) OR ( SIZEOF( - QUERY ( dcr <* USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'DRAUGHTING_CALLOUT_RELATIONSHIP.' - + 'RELATING_DRAUGHTING_CALLOUT' ) | ( ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + + + 'ANNOTATION_TEXT_OCCURRENCE' IN TYPEOF( con ) ) ) | ( ato.name = 'prefix text' ) ) ) > 0 ) ) OR ( SIZEOF( + QUERY ( dcr <* USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'DRAUGHTING_CALLOUT_RELATIONSHIP.' + + 'RELATING_DRAUGHTING_CALLOUT' ) | ( ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'DIMENSION_CALLOUT_COMPONENT_RELATIONSHIP' ) IN TYPEOF( dcr ) ) AND ( dcr.name = 'prefix' ) ) ) ) = 1 ) ); wr7: ( ( NOT ( SIZEOF( QUERY ( ato <* QUERY ( con <* SELF.contents | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'ANNOTATION_TEXT_OCCURRENCE' IN TYPEOF( con ) ) ) | ( ato.name = 'suffix text' ) ) ) > 0 ) ) OR ( SIZEOF( - QUERY ( dcr <* USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'DRAUGHTING_CALLOUT_RELATIONSHIP.' - + 'RELATING_DRAUGHTING_CALLOUT' ) | ( ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + + + 'ANNOTATION_TEXT_OCCURRENCE' IN TYPEOF( con ) ) ) | ( ato.name = 'suffix text' ) ) ) > 0 ) ) OR ( SIZEOF( + QUERY ( dcr <* USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'DRAUGHTING_CALLOUT_RELATIONSHIP.' + + 'RELATING_DRAUGHTING_CALLOUT' ) | ( ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'DIMENSION_CALLOUT_COMPONENT_RELATIONSHIP' ) IN TYPEOF( dcr ) ) AND ( dcr.name = 'suffix' ) ) ) ) = 1 ) ); END_ENTITY; @@ -19081,12 +20138,12 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; styles : SET [1 : ?] OF presentation_style_assignment; item : styled_item_target; WHERE - wr1: ( ( SIZEOF( SELF.styles ) = 1 ) XOR ( SIZEOF( QUERY ( pres_style <* SELF.styles | ( NOT ( ( - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PRESENTATION_STYLE_BY_CONTEXT' ) IN TYPEOF( pres_style ) ) ) ) ) + wr1: ( ( SIZEOF( SELF.styles ) = 1 ) XOR ( SIZEOF( QUERY ( pres_style <* SELF.styles | ( NOT ( ( + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PRESENTATION_STYLE_BY_CONTEXT' ) IN TYPEOF( pres_style ) ) ) ) ) = 0 ) ); wr2: ( NOT ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.STYLED_ITEM' IN TYPEOF( item ) ) ); - wr3: ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MAPPED_ITEM' IN TYPEOF( item ) ) OR ( - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.GEOMETRIC_REPRESENTATION_ITEM' IN TYPEOF( item ) ) OR ( + wr3: ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MAPPED_ITEM' IN TYPEOF( item ) ) OR ( + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.GEOMETRIC_REPRESENTATION_ITEM' IN TYPEOF( item ) ) OR ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CONTEXT_DEPENDENT_OVER_RIDING_STYLED_ITEM' IN TYPEOF( SELF ) ) ); END_ENTITY; @@ -19121,8 +20178,8 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; WHERE wr1: ( ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.NEUTRAL_SKETCH_REPRESENTATION' IN TYPEOF( owning_sketch ) ) AND ( SIZEOF( QUERY ( q <* subsketch_elements | ( NOT ( owning_sketch IN using_representations( q ) ) ) ) ) = 0 ) ) XOR - ( ( SIZEOF( TYPEOF( owning_sketch ) * [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POSITIONED_SKETCH', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SUBSKETCH' ] ) = 1 ) AND ( SIZEOF( QUERY ( q <* + ( ( SIZEOF( TYPEOF( owning_sketch ) * [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POSITIONED_SKETCH', + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SUBSKETCH' ] ) = 1 ) AND ( SIZEOF( QUERY ( q <* subsketch_elements | ( NOT ( owning_sketch IN using_items( q, [] ) ) ) ) ) = 0 ) ) ); END_ENTITY; @@ -19133,8 +20190,8 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; index1 : generic_expression := SELF\multiple_arity_generic_expression.operands[2]; index2 : generic_expression := SELF\multiple_arity_generic_expression.operands[3]; WHERE - wr1: ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.STRING_EXPRESSION' IN TYPEOF( operand ) ) AND ( - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.NUMERIC_EXPRESSION' IN TYPEOF( index1 ) ) AND ( + wr1: ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.STRING_EXPRESSION' IN TYPEOF( operand ) ) AND ( + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.NUMERIC_EXPRESSION' IN TYPEOF( index1 ) ) AND ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.NUMERIC_EXPRESSION' IN TYPEOF( index2 ) ) ); wr2: ( SIZEOF( SELF\multiple_arity_generic_expression.operands ) = 3 ); wr3: is_int_expr( index1 ); @@ -19151,20 +20208,31 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; END_ENTITY; ENTITY surface - SUPERTYPE OF ( ONEOF ( elementary_surface, swept_surface, bounded_surface, offset_surface, surface_replica ) ) + 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( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + - 'ANNOTATION_CURVE_OCCURRENCE' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'ANNOTATION_SYMBOL_OCCURRENCE', + wr1: ( SIZEOF( QUERY ( c <* SELF.contents | ( SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + + 'ANNOTATION_CURVE_OCCURRENCE' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'ANNOTATION_SYMBOL_OCCURRENCE', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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 ) + 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; @@ -19173,9 +20241,9 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; basis_surface : SET [1 : 2] OF surface := get_basis_surface( SELF ); WHERE wr1: ( curve_3d.dim = 3 ); - wr2: ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PCURVE' IN TYPEOF( associated_geometry[1] ) ) OR ( + wr2: ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PCURVE' IN TYPEOF( associated_geometry[1] ) ) OR ( master_representation <> pcurve_s1 ) ); - wr3: ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PCURVE' IN TYPEOF( associated_geometry[2] ) ) OR ( + wr3: ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PCURVE' IN TYPEOF( associated_geometry[2] ) ) OR ( master_representation <> pcurve_s2 ) ); wr4: ( NOT ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PCURVE' IN TYPEOF( curve_3d ) ) ); END_ENTITY; @@ -19187,7 +20255,7 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; end_param : REAL; reference_surface : surface; WHERE - wr1: ( ( NOT ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SURFACE_CURVE' IN TYPEOF( directrix ) ) ) OR ( + wr1: ( ( NOT ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SURFACE_CURVE' IN TYPEOF( directrix ) ) ) OR ( reference_surface IN directrix\surface_curve.basis_surface ) ); END_ENTITY; @@ -19201,7 +20269,7 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; SELF\explicit_constraint.reference_elements : SET [0 : 4] OF point_curve_or_surface_constraint_element; near_points : SET [0 : 4] OF near_point_relationship; WHERE - wr1: ( ( SIZEOF( SELF\explicit_constraint.reference_elements ) > 0 ) OR ( ( + wr1: ( ( SIZEOF( SELF\explicit_constraint.reference_elements ) > 0 ) OR ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SDGC_WITH_DIMENSION' IN TYPEOF( SELF ) ) AND ( SIZEOF( SELF\ explicit_constraint.constrained_elements ) = 2 ) ) ); wr2: ( SIZEOF( near_points ) <= SIZEOF( SELF\explicit_constraint.reference_elements ) ); @@ -19223,17 +20291,22 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; END_ENTITY; ENTITY surface_pair - ABSTRACT SUPERTYPE OF ( ONEOF ( sliding_surface_pair, rolling_surface_pair ) ANDOR surface_pair_with_range ) + ABSTRACT SUPERTYPE OF ( + ONEOF ( + sliding_surface_pair, + rolling_surface_pair ) + ANDOR + surface_pair_with_range ) SUBTYPE OF ( high_order_kinematic_pair ); surface_1 : surface; surface_2 : surface; orientation : BOOLEAN; WHERE - wr1: ( SIZEOF( QUERY ( r <* SELF\kinematic_pair.associated_link_representations_1 | ( NOT ( surface_1 IN r.items ) ) ) ) = + wr1: ( SIZEOF( QUERY ( r <* SELF\kinematic_pair.associated_link_representations_1 | ( NOT ( surface_1 IN r.items ) ) ) ) = 0 ); - wr2: ( SIZEOF( QUERY ( r <* SELF\kinematic_pair.associated_link_representations_2 | ( NOT ( surface_2 IN r.items ) ) ) ) = + wr2: ( SIZEOF( QUERY ( r <* SELF\kinematic_pair.associated_link_representations_2 | ( NOT ( surface_2 IN r.items ) ) ) ) = 0 ); - wr3: ( SIZEOF( QUERY ( lr <* SELF\kinematic_pair.associated_link_representations_1 | ( NOT ( + wr3: ( SIZEOF( QUERY ( lr <* SELF\kinematic_pair.associated_link_representations_1 | ( NOT ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.RIGID_LINK_REPRESENTATION' IN TYPEOF( lr ) ) ) ) ) = 0 ); END_ENTITY; @@ -19246,11 +20319,11 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; WHERE wr1: ( SELF\surface_pair.surface_1 :=: range_on_surface_1.basis_surface ); wr2: ( SELF\surface_pair.surface_2 :=: range_on_surface_2.basis_surface ); - wr3: ( ( ( NOT EXISTS( lower_limit_actual_rotation ) ) OR ( NOT EXISTS( upper_limit_actual_rotation ) ) ) XOR ( + wr3: ( ( ( NOT EXISTS( lower_limit_actual_rotation ) ) OR ( NOT EXISTS( upper_limit_actual_rotation ) ) ) XOR ( lower_limit_actual_rotation < upper_limit_actual_rotation ) ); - wr4: ( SIZEOF( QUERY ( r <* SELF\kinematic_pair.associated_link_representations_1 | ( NOT ( range_on_surface_1 IN r.items ) ) ) ) + wr4: ( SIZEOF( QUERY ( r <* SELF\kinematic_pair.associated_link_representations_1 | ( NOT ( range_on_surface_1 IN r.items ) ) ) ) = 0 ); - wr5: ( SIZEOF( QUERY ( r <* SELF\kinematic_pair.associated_link_representations_2 | ( NOT ( range_on_surface_2 IN r.items ) ) ) ) + wr5: ( SIZEOF( QUERY ( r <* SELF\kinematic_pair.associated_link_representations_2 | ( NOT ( range_on_surface_2 IN r.items ) ) ) ) = 0 ); END_ENTITY; @@ -19293,7 +20366,7 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; 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 ) = + wr1: ( SIZEOF( QUERY ( style1 <* SELF.styles | ( SIZEOF( QUERY ( style2 <* ( SELF.styles - style1 ) | ( TYPEOF( style1 ) = TYPEOF( style2 ) ) ) ) > 0 ) ) ) = 0 ); END_ENTITY; @@ -19382,28 +20455,28 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; ENTITY surface_texture_representation SUBTYPE OF ( representation ); WHERE - wr1: ( SIZEOF( QUERY ( i <* SELF.items | ( SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + - 'MEASURE_REPRESENTATION_ITEM' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'VALUE_RANGE', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'DESCRIPTIVE_REPRESENTATION_ITEM'] * TYPEOF( i ) ) <> 1 ) ) ) + wr1: ( SIZEOF( QUERY ( i <* SELF.items | ( SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + + 'MEASURE_REPRESENTATION_ITEM' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'VALUE_RANGE', + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'DESCRIPTIVE_REPRESENTATION_ITEM'] * TYPEOF( i ) ) <> 1 ) ) ) = 0 ); - wr2: ( ( SIZEOF( QUERY ( i <* SELF.items | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + - 'DESCRIPTIVE_REPRESENTATION_ITEM' ) IN TYPEOF( i ) ) ) ) = 1 ) AND ( SIZEOF( QUERY ( i <* SELF.items | ( ( ( + wr2: ( ( SIZEOF( QUERY ( i <* SELF.items | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + + 'DESCRIPTIVE_REPRESENTATION_ITEM' ) IN TYPEOF( i ) ) ) ) = 1 ) AND ( SIZEOF( QUERY ( i <* SELF.items | ( ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'DESCRIPTIVE_REPRESENTATION_ITEM' ) IN TYPEOF( i ) ) AND ( i .name = 'measuring method' ) ) ) ) = 1 ) ); - wr3: ( SIZEOF( QUERY ( i <* SELF.items | ( SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + - 'MEASURE_REPRESENTATION_ITEM' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'VALUE_RANGE'] * TYPEOF( i ) ) + wr3: ( SIZEOF( QUERY ( i <* SELF.items | ( SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + + 'MEASURE_REPRESENTATION_ITEM' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'VALUE_RANGE'] * TYPEOF( i ) ) = 1 ) ) ) > 0 ); - wr4: ( ( SIZEOF( USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'REPRESENTATION_RELATIONSHIP.' + 'REP_1' ) ) - <= 1 ) AND ( SIZEOF( USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + - 'REPRESENTATION_RELATIONSHIP.' + 'REP_2' ) ) = 0 ) AND ( SIZEOF( QUERY ( rr <* USEDIN( SELF, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'REPRESENTATION_RELATIONSHIP.' + 'REP_1' ) | ( rr.rep_2.name - = 'measuring direction' ) ) ) = SIZEOF( USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + + wr4: ( ( SIZEOF( USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'REPRESENTATION_RELATIONSHIP.' + 'REP_1' ) ) + <= 1 ) AND ( SIZEOF( USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + + 'REPRESENTATION_RELATIONSHIP.' + 'REP_2' ) ) = 0 ) AND ( SIZEOF( QUERY ( rr <* USEDIN( SELF, + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'REPRESENTATION_RELATIONSHIP.' + 'REP_1' ) | ( rr.rep_2.name + = 'measuring direction' ) ) ) = SIZEOF( USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'REPRESENTATION_RELATIONSHIP.' + 'REP_1' ) ) ) ); wr5: ( ( SIZEOF( USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.' + - 'USED_REPRESENTATION' ) ) = 1 ) AND ( SIZEOF( QUERY ( pdr <* USEDIN( SELF, + 'USED_REPRESENTATION' ) ) = 1 ) AND ( SIZEOF( QUERY ( pdr <* USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.' + 'USED_REPRESENTATION' ) - | ( SIZEOF( QUERY ( gpa <* USEDIN( pdr.definition, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + - 'GENERAL_PROPERTY_ASSOCIATION.' + 'DERIVED_DEFINITION' ) | ( ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + | ( SIZEOF( QUERY ( gpa <* USEDIN( pdr.definition, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + + 'GENERAL_PROPERTY_ASSOCIATION.' + 'DERIVED_DEFINITION' ) | ( ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'GENERAL_PROPERTY' ) IN TYPEOF( gpa.base_definition ) ) AND ( gpa\general_property_association.base_definition\ general_property.name = 'surface_condition' ) ) ) ) = 1 ) ) ) = 1 ) ); END_ENTITY; @@ -19413,11 +20486,11 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; WHERE wr1: ( ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' ) IN TYPEOF( SELF\ - shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold ) ) + shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold ) ) AND ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COUNT_MEASURE' IN value_limit_type( SELF\ shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold ) ) ); wr2: validate_measured_data_type( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COUNT_MEASURE' ); - wr3: validate_inspected_elements_type( SELF, [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + + wr3: validate_inspected_elements_type( SELF, [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'B_SPLINE_OR_RECTANGULAR_COMPOSITE_SURFACE_SELECT' ] ); wr4: validate_locations_of_extreme_value_type( SELF, [] ); wr5: validate_accuracy_types( SELF, [] ); @@ -19428,7 +20501,7 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; WHERE wr1: ( ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'SHAPE_DATA_QUALITY_UPPER_VALUE_LIMIT' ) IN TYPEOF( SELF\ - shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold ) ) + shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold ) ) AND ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE' IN value_limit_type( SELF\ shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold ) ) ); wr2: validate_measured_data_type( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE' ); @@ -19445,7 +20518,11 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; END_ENTITY; ENTITY swept_area_solid - SUPERTYPE OF ( ONEOF ( revolved_area_solid, extruded_area_solid, surface_curve_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 @@ -19471,7 +20548,10 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; END_ENTITY; ENTITY swept_face_solid - SUPERTYPE OF ( ONEOF ( extruded_face_solid, revolved_face_solid ) ) + SUPERTYPE OF ( + ONEOF ( + extruded_face_solid, + revolved_face_solid ) ) SUBTYPE OF ( solid_model ); swept_face : face_surface; WHERE @@ -19485,7 +20565,10 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; END_ENTITY; ENTITY swept_surface - SUPERTYPE OF ( ONEOF ( surface_of_linear_extrusion, surface_of_revolution ) ) + SUPERTYPE OF ( + ONEOF ( + surface_of_linear_extrusion, + surface_of_revolution ) ) SUBTYPE OF ( surface ); swept_curve : curve; END_ENTITY; @@ -19536,9 +20619,9 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; mirror_element : linear_geometry_constraint_element; WHERE wr1: ( SIZEOF( SELF\explicit_constraint.reference_elements ) = 0 ); - wr2: ( SIZEOF( TYPEOF( mirror_element ) * [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DIRECTION', + wr2: ( SIZEOF( TYPEOF( mirror_element ) * [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DIRECTION', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.VECTOR' ] ) = 0 ); - wr3: ( NOT ( ( SELF\geometric_representation_item.dim = 2 ) AND ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANE' + wr3: ( NOT ( ( SELF\geometric_representation_item.dim = 2 ) AND ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANE' IN TYPEOF( mirror_element ) ) ) ); END_ENTITY; @@ -19549,22 +20632,22 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; ENTITY table_representation_item SUBTYPE OF ( compound_representation_item ); WHERE - wr1: ( SIZEOF( QUERY ( itet <* SELF\compound_representation_item.item_element | ( NOT ( + wr1: ( SIZEOF( QUERY ( itet <* SELF\compound_representation_item.item_element | ( NOT ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + - 'MEASURE_REPRESENTATION_ITEM' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'VALUE_RANGE'] * TYPEOF( i ) ) + wr1: ( SIZEOF( QUERY ( i <* SELF.items | ( SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + + 'MEASURE_REPRESENTATION_ITEM' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'VALUE_RANGE'] * TYPEOF( i ) ) <> 1 ) ) ) = 0 ); wr2: ( SIZEOF( QUERY ( i <* SELF.items | ( name = 'depth' ) ) ) <= 1 ); wr3: ( ( SIZEOF( USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.' + - 'USED_REPRESENTATION' ) ) = 1 ) AND ( SIZEOF( QUERY ( pdr <* USEDIN( SELF, + 'USED_REPRESENTATION' ) ) = 1 ) AND ( SIZEOF( QUERY ( pdr <* USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.' + 'USED_REPRESENTATION' ) - | ( SIZEOF( QUERY ( gpa <* USEDIN( pdr.definition, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + - 'GENERAL_PROPERTY_ASSOCIATION.' + 'DERIVED_DEFINITION' ) | ( ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + | ( SIZEOF( QUERY ( gpa <* USEDIN( pdr.definition, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + + 'GENERAL_PROPERTY_ASSOCIATION.' + 'DERIVED_DEFINITION' ) | ( ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'GENERAL_PROPERTY' ) IN TYPEOF( gpa.base_definition ) ) AND ( gpa\general_property_association.base_definition\ general_property.name = 'surface_condition' ) ) ) ) = 1 ) ) ) = 1 ) ); END_ENTITY; @@ -19619,34 +20702,34 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( impl_rep. used_representation.items ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ); - wr5: ( ( NOT ( SELF.description = 'angle taper' ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( + wr5: ( ( NOT ( SELF.description = 'angle taper' ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( + + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'MEASURE_REPRESENTATION_ITEM' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANE_ANGLE_MEASURE_WITH_UNIT'] + + 'MEASURE_REPRESENTATION_ITEM' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANE_ANGLE_MEASURE_WITH_UNIT'] * TYPEOF( it ) ) = 2 ) AND ( it.name = 'taper angle' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ) ); - wr6: ( ( NOT ( SELF.description = 'diameter taper' ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( + wr6: ( ( NOT ( SELF.description = 'diameter taper' ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( + + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'MEASURE_REPRESENTATION_ITEM' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * + + 'MEASURE_REPRESENTATION_ITEM' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF( it ) ) = 2 ) AND ( it.name = 'final diameter' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ) ); - wr7: ( ( NOT ( SELF.description = 'directed taper' ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( + wr7: ( ( NOT ( SELF.description = 'directed taper' ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( + + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'MEASURE_REPRESENTATION_ITEM' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANE_ANGLE_MEASURE_WITH_UNIT'] + + 'MEASURE_REPRESENTATION_ITEM' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANE_ANGLE_MEASURE_WITH_UNIT'] * TYPEOF( it ) ) = 2 ) AND ( it.name = 'angle' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ) ); - wr8: ( ( NOT ( SELF.description = 'directed taper' ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( + wr8: ( ( NOT ( SELF.description = 'directed taper' ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( pdr <* USEDIN( pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.' - + 'DEFINITION' ) | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DIRECTION_SHAPE_REPRESENTATION' IN + + 'DEFINITION' ) | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DIRECTION_SHAPE_REPRESENTATION' IN TYPEOF( pdr.used_representation ) ) AND ( pdr.used_representation.name = 'direction' ) ) ) ) = 1 ) ) ) ) = 0 ) ); END_ENTITY; @@ -19662,90 +20745,90 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( ( NOT ( SIZEOF( impl_rep. - used_representation.items ) >= 9 ) ) AND ( SIZEOF( impl_rep.used_representation.items ) <= 10 ) ) ) ) = 0 ) ) ) ) + used_representation.items ) >= 9 ) ) AND ( SIZEOF( impl_rep.used_representation.items ) <= 10 ) ) ) ) = 0 ) ) ) ) = 0 ); wr4 : ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( SIZEOF( QUERY ( pdr <* USEDIN( pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) AND ( SIZEOF( QUERY ( srwp_i <* - pdr.used_representation.items | ( ( srwp_i.name = 'orientation' ) OR ( srwp_i.name = 'width' ) OR ( srwp_i.name = - 'depth' ) OR ( srwp_i.name = 'cross bar width' ) OR ( srwp_i.name = 'cross bar depth' ) OR ( srwp_i.name = - 'first offset' ) OR ( srwp_i.name = 'second offset' ) OR ( srwp_i.name = 'first angle' ) OR ( srwp_i.name = - 'second angle' ) OR ( srwp_i.name = 'radius' ) ) ) ) = SIZEOF( pdr.used_representation.items ) ) ) ) ) = 1 ) ) ) + + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) AND ( SIZEOF( QUERY ( srwp_i <* + pdr.used_representation.items | ( ( srwp_i.name = 'orientation' ) OR ( srwp_i.name = 'width' ) OR ( srwp_i.name = + 'depth' ) OR ( srwp_i.name = 'cross bar width' ) OR ( srwp_i.name = 'cross bar depth' ) OR ( srwp_i.name = + 'first offset' ) OR ( srwp_i.name = 'second offset' ) OR ( srwp_i.name = 'first angle' ) OR ( srwp_i.name = + 'second angle' ) OR ( srwp_i.name = 'radius' ) ) ) ) = SIZEOF( pdr.used_representation.items ) ) ) ) ) = 1 ) ) ) = 1 ); wr5 : ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( - QUERY ( it <* impl_rep.used_representation.items | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLACEMENT' + + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( + QUERY ( it <* impl_rep.used_representation.items | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLACEMENT' IN TYPEOF( it ) ) AND ( it.name = 'orientation' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ); wr6 : ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( + + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'MEASURE_REPRESENTATION_ITEM' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * + + 'MEASURE_REPRESENTATION_ITEM' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF( it ) ) = 2 ) AND ( it.name = 'width' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ); wr7 : ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( + + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'MEASURE_REPRESENTATION_ITEM' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * + + 'MEASURE_REPRESENTATION_ITEM' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF( it ) ) = 2 ) AND ( it.name = 'depth' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ); wr8 : ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( + + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'MEASURE_REPRESENTATION_ITEM' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * + + 'MEASURE_REPRESENTATION_ITEM' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF( it ) ) = 2 ) AND ( it.name = 'cross bar width' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ); wr9 : ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( + + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'MEASURE_REPRESENTATION_ITEM' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * + + 'MEASURE_REPRESENTATION_ITEM' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF( it ) ) = 2 ) AND ( it.name = 'cross bar depth' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ); wr10: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( + + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'MEASURE_REPRESENTATION_ITEM' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * + + 'MEASURE_REPRESENTATION_ITEM' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF( it ) ) = 2 ) AND ( it.name = 'first offset' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ); wr11: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( + + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'MEASURE_REPRESENTATION_ITEM' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * + + 'MEASURE_REPRESENTATION_ITEM' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF( it ) ) = 2 ) AND ( it.name = 'second offset' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ); wr12: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( + + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'MEASURE_REPRESENTATION_ITEM' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANE_ANGLE_MEASURE_WITH_UNIT'] + + 'MEASURE_REPRESENTATION_ITEM' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANE_ANGLE_MEASURE_WITH_UNIT'] * TYPEOF( it ) ) = 2 ) AND ( it.name = 'first angle' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ); wr13: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( + + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'MEASURE_REPRESENTATION_ITEM' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANE_ANGLE_MEASURE_WITH_UNIT'] + + 'MEASURE_REPRESENTATION_ITEM' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANE_ANGLE_MEASURE_WITH_UNIT'] * TYPEOF( it ) ) = 2 ) AND ( it.name = 'second angle' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ); wr14: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( + + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'MEASURE_REPRESENTATION_ITEM' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * + + 'MEASURE_REPRESENTATION_ITEM' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF( it ) ) = 2 ) AND ( it.name = 'radius' ) ) ) ) <= 1 ) ) ) ) = 0 ) ) ) ) = 0 ); wr15: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( pdr <* USEDIN( pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'PLANAR_SHAPE_REPRESENTATION' IN TYPEOF( pdr.used_representation ) ) AND ( pdr.used_representation.name = + + 'PLANAR_SHAPE_REPRESENTATION' IN TYPEOF( pdr.used_representation ) ) AND ( pdr.used_representation.name = 'profile limit' ) ) ) ) <= 1 ) ) ) ) = 0 ); END_ENTITY; @@ -19785,7 +20868,10 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; END_ENTITY; ENTITY tessellated_face - ABSTRACT SUPERTYPE OF ( ONEOF ( triangulated_face, complex_triangulated_face ) ) + ABSTRACT SUPERTYPE OF ( + ONEOF ( + triangulated_face, + complex_triangulated_face ) ) SUBTYPE OF ( tessellated_structured_item ); coordinates : coordinates_list; pnmax : INTEGER; @@ -19801,13 +20887,21 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; END_ENTITY; ENTITY tessellated_item - ABSTRACT SUPERTYPE OF ( ONEOF ( coordinates_list, tessellated_solid, tessellated_shell, tessellated_wire, - tessellated_geometric_set, tessellated_curve_set, tessellated_point_set, tessellated_surface_set, - tessellated_structured_item ) ) + ABSTRACT SUPERTYPE OF ( + ONEOF ( + coordinates_list, + tessellated_solid, + tessellated_shell, + tessellated_wire, + tessellated_geometric_set, + tessellated_curve_set, + tessellated_point_set, + tessellated_surface_set, + tessellated_structured_item ) ) SUBTYPE OF ( geometric_representation_item ); WHERE - wr1: ( SIZEOF( QUERY ( using_rep <* using_representations( SELF ) | ( NOT ( - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.TESSELLATED_SHAPE_REPRESENTATION' IN TYPEOF( using_rep ) ) ) ) ) + wr1: ( SIZEOF( QUERY ( using_rep <* using_representations( SELF ) | ( NOT ( + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.TESSELLATED_SHAPE_REPRESENTATION' IN TYPEOF( using_rep ) ) ) ) ) = 0 ); END_ENTITY; @@ -19838,12 +20932,19 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; END_ENTITY; ENTITY tessellated_structured_item - SUPERTYPE OF ( ONEOF ( tessellated_face, tessellated_edge, tessellated_vertex ) ) + SUPERTYPE OF ( + ONEOF ( + tessellated_face, + tessellated_edge, + tessellated_vertex ) ) SUBTYPE OF ( tessellated_item ); END_ENTITY; ENTITY tessellated_surface_set - ABSTRACT SUPERTYPE OF ( ONEOF ( triangulated_surface_set, complex_triangulated_surface_set ) ) + ABSTRACT SUPERTYPE OF ( + ONEOF ( + triangulated_surface_set, + complex_triangulated_surface_set ) ) SUBTYPE OF ( tessellated_item ); coordinates : coordinates_list; pnmax : INTEGER; @@ -19921,15 +21022,15 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; WHERE wr1: ( SIZEOF( QUERY ( item <* SELF\representation.items | ( NOT ( SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.TEXT_LITERAL' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'ANNOTATION_TEXT' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ANNOTATION_TEXT_CHARACTER', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DEFINED_CHARACTER_GLYPH' , + + 'ANNOTATION_TEXT' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ANNOTATION_TEXT_CHARACTER', + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DEFINED_CHARACTER_GLYPH' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COMPOSITE_TEXT' ] * TYPEOF( item ) ) = 0 ) ) ) ) >= 1 ); - wr2: ( SIZEOF( QUERY ( a2p <* QUERY ( item <* SELF\representation.items | ( - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.AXIS2_PLACEMENT' IN TYPEOF( item ) ) ) | ( NOT ( ( SIZEOF( - QUERY ( at <* QUERY ( item <* SELF\representation.items | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + - 'ANNOTATION_TEXT' ) IN TYPEOF( item ) ) ) | ( at\mapped_item.mapping_target :=: a2p ) ) ) >= 1 ) OR ( SIZEOF( + wr2: ( SIZEOF( QUERY ( a2p <* QUERY ( item <* SELF\representation.items | ( + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.AXIS2_PLACEMENT' IN TYPEOF( item ) ) ) | ( NOT ( ( SIZEOF( + QUERY ( at <* QUERY ( item <* SELF\representation.items | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + + 'ANNOTATION_TEXT' ) IN TYPEOF( item ) ) ) | ( at\mapped_item.mapping_target :=: a2p ) ) ) >= 1 ) OR ( SIZEOF( QUERY ( atc <* QUERY ( item <* SELF\representation.items | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + - 'ANNOTATION_TEXT_CHARACTER' ) IN TYPEOF( item ) ) ) | ( atc\mapped_item.mapping_target :=: a2p ) ) ) >= 1 ) ) ) ) ) + 'ANNOTATION_TEXT_CHARACTER' ) IN TYPEOF( item ) ) ) | ( atc\mapped_item.mapping_target :=: a2p ) ) ) >= 1 ) ) ) ) ) = 0 ); END_ENTITY; @@ -19947,7 +21048,7 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; 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 ) + wr1: ( SIZEOF( QUERY ( c1 <* SELF.characteristics | ( SIZEOF( QUERY ( c2 <* ( SELF.characteristics - c1 ) | ( TYPEOF( c1 ) = TYPEOF( c2 ) ) ) ) > 0 ) ) ) = 0 ); END_ENTITY; @@ -19989,7 +21090,7 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; SUBTYPE OF ( named_unit ); WHERE wr1: ( ( SELF\named_unit.dimensions.length_exponent = 0 ) AND ( SELF\named_unit.dimensions.mass_exponent = 0 ) AND ( SELF\ - named_unit.dimensions.time_exponent = 0 ) AND ( SELF\named_unit.dimensions.electric_current_exponent = 0 ) AND ( + named_unit.dimensions.time_exponent = 0 ) AND ( SELF\named_unit.dimensions.electric_current_exponent = 0 ) AND ( SELF\named_unit.dimensions.thermodynamic_temperature_exponent = 1 ) AND ( SELF\named_unit.dimensions. amount_of_substance_exponent = 0 ) AND ( SELF\named_unit.dimensions.luminous_intensity_exponent = 0 ) ); END_ENTITY; @@ -20000,7 +21101,7 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; offset1 : length_measure; offset2 : length_measure; WHERE - wr1: ( NOT ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SURFACE' IN TYPEOF( base_element ) ) AND ( NOT ( + wr1: ( NOT ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SURFACE' IN TYPEOF( base_element ) ) AND ( NOT ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.BOUNDED_SURFACE' IN TYPEOF( base_element ) ) ) ) ); wr2: ( offset1 <> offset2 ); END_ENTITY; @@ -20020,109 +21121,109 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; wr2 : ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( + + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'MEASURE_REPRESENTATION_ITEM' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * + + 'MEASURE_REPRESENTATION_ITEM' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF( it ) ) = 2 ) AND ( it.name = 'major diameter' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ); wr3 : ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( + + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'MEASURE_REPRESENTATION_ITEM' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * + + 'MEASURE_REPRESENTATION_ITEM' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF( it ) ) = 2 ) AND ( it.name = 'minor diameter' ) ) ) ) <= 1 ) ) ) ) = 0 ) ) ) ) = 0 ); wr4 : ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( + + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'MEASURE_REPRESENTATION_ITEM' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * + + 'MEASURE_REPRESENTATION_ITEM' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF( it ) ) = 2 ) AND ( it.name = 'pitch diameter' ) ) ) ) <= 1 ) ) ) ) = 0 ) ) ) ) = 0 ); wr5 : ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( + + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'MEASURE_REPRESENTATION_ITEM' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.RATIO_MEASURE_WITH_UNIT'] * + + 'MEASURE_REPRESENTATION_ITEM' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.RATIO_MEASURE_WITH_UNIT'] * TYPEOF( it ) ) = 2 ) AND ( it.name = 'number of threads' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ); wr6 : ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( + + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF( it ) ) AND ( it.name = 'fit class' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) + + 'DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF( it ) ) AND ( it.name = 'fit class' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ); wr7 : ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( + + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF( it ) ) AND ( it.name = 'form' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ); wr8 : ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( + + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF( it ) ) AND ( it.name = 'hand' ) AND ( it.description IN [ 'left', + + 'DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF( it ) ) AND ( it.name = 'hand' ) AND ( it.description IN [ 'left', 'right' ] ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ); wr9 : ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( + + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF( it ) ) AND ( it.name = 'qualifier' ) ) ) ) <= 1 ) ) ) ) = 0 ) ) ) ) + + 'DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF( it ) ) AND ( it.name = 'qualifier' ) ) ) ) <= 1 ) ) ) ) = 0 ) ) ) ) = 0 ); wr10: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( + + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF( it ) ) AND ( it.name = 'thread side' ) AND ( ( it.description = + + 'DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF( it ) ) AND ( it.name = 'thread side' ) AND ( ( it.description = 'internal' ) OR ( it.description = 'external' ) ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ); wr11: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( + + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'MEASURE_REPRESENTATION_ITEM' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * + + 'MEASURE_REPRESENTATION_ITEM' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF( it ) ) = 2 ) AND ( it.name = 'crest' ) ) ) ) <= 1 ) ) ) ) = 0 ) ) ) ) = 0 ); wr12: ( SIZEOF( QUERY ( pds <* QUERY ( pd <* USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PROPERTY_DEFINITION.DEFINITION' ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) | ( NOT ( SIZEOF( QUERY ( sa_occ <* USEDIN( pds, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) | ( ( sa_occ.description = - 'partial area occurrence' ) AND ( SIZEOF( QUERY ( sdr <* QUERY ( sar <* USEDIN( sa_occ, + + 'PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) | ( NOT ( SIZEOF( QUERY ( sa_occ <* USEDIN( pds, + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) | ( ( sa_occ.description = + 'partial area occurrence' ) AND ( SIZEOF( QUERY ( sdr <* QUERY ( sar <* USEDIN( sa_occ, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT' ) | ( ( sar. description = 'applied area usage' ) AND ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF( sar ) ) ) ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'APPLIED_AREA' IN TYPEOF( sdr.relating_shape_aspect ) ) ) ) = 1 ) ) ) ) = 1 ) ) ) ) = 0 ); wr13: ( SIZEOF( QUERY ( pds <* QUERY ( pd <* USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PROPERTY_DEFINITION.DEFINITION' ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) | ( NOT ( SIZEOF( QUERY ( sa_occ <* USEDIN( pds, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) | ( SIZEOF( QUERY ( sdr <* + + 'PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) | ( NOT ( SIZEOF( QUERY ( sa_occ <* USEDIN( pds, + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) | ( SIZEOF( QUERY ( sdr <* QUERY ( sar <* USEDIN( sa_occ, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.' - + 'RELATED_SHAPE_ASPECT' ) | ( ( sar.description = 'applied shape' ) AND ( - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF( sar ) ) ) ) | ( - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT' IN TYPEOF( sdr.relating_shape_aspect ) ) ) ) = 1 ) ) ) + + 'RELATED_SHAPE_ASPECT' ) | ( ( sar.description = 'applied shape' ) AND ( + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF( sar ) ) ) ) | ( + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT' IN TYPEOF( sdr.relating_shape_aspect ) ) ) ) = 1 ) ) ) = 1 ) ) ) ) = 0 ); wr14: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( + + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF( it ) ) AND ( it.name = 'fit class 2' ) ) ) ) <= 1 ) ) ) ) = 0 ) ) ) ) + + 'DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF( it ) ) AND ( it.name = 'fit class 2' ) ) ) ) <= 1 ) ) ) ) = 0 ) ) ) ) = 0 ); wr15: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( + + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'MEASURE_REPRESENTATION_ITEM' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * + + 'MEASURE_REPRESENTATION_ITEM' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF( it ) ) = 2 ) AND ( it.name = 'nominal size' ) ) ) ) <= 1 ) ) ) ) = 0 ) ) ) ) = 0 ); wr16: ( SIZEOF( QUERY ( pds <* QUERY ( pd <* USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PROPERTY_DEFINITION.DEFINITION' ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) | ( NOT ( SIZEOF( QUERY ( sa_occ <* USEDIN( pds, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) | ( ( sa_occ.description = - 'thread runout' ) AND ( SIZEOF( QUERY ( sdr <* QUERY ( sar <* USEDIN( sa_occ, + + 'PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) | ( NOT ( SIZEOF( QUERY ( sa_occ <* USEDIN( pds, + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) | ( ( sa_occ.description = + 'thread runout' ) AND ( SIZEOF( QUERY ( sdr <* QUERY ( sar <* USEDIN( sa_occ, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT' ) | ( ( sar. description = 'thread runout usage' ) AND ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF( sar ) ) ) ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' @@ -20145,29 +21246,29 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; wr4: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( SIZEOF( QUERY ( pdr <* USEDIN( pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) AND ( SIZEOF( QUERY ( srwp_i <* - pdr.used_representation.items | ( NOT ( srwp_i.name IN [ 'length of runout', 'pitch or dimension', + + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) AND ( SIZEOF( QUERY ( srwp_i <* + pdr.used_representation.items | ( NOT ( srwp_i.name IN [ 'length of runout', 'pitch or dimension', 'included or extra' ] ) ) ) ) > 0 ) ) ) ) = 0 ) ) ) = 0 ); wr5: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( + + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'MEASURE_REPRESENTATION_ITEM' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * + + 'MEASURE_REPRESENTATION_ITEM' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF( it ) ) = 2 ) AND ( it.name = 'length of runout' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) <= 1 ); wr6: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( + + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF( it ) ) AND ( it.name = 'pitch or dimension' ) AND ( it.description + + 'DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF( it ) ) AND ( it.name = 'pitch or dimension' ) AND ( it.description IN [ 'pitch', 'pitch or dimension'] ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ); wr7: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( + + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF( it ) ) AND ( it.name = 'included or extra' ) AND ( it.description + + 'DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF( it ) ) AND ( it.name = 'included or extra' ) AND ( it.description IN [ 'included', 'extra'] ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ); END_ENTITY; @@ -20206,8 +21307,12 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; 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 ) ); + wr1: ( EXISTS( primary_bound ) OR EXISTS( secondary_bound ) ); + wr2: ( NOT ( EXISTS( primary_bound ) AND EXISTS( secondary_bound ) AND EXISTS( duration ) ) ); + wr3: ( EXISTS( primary_bound ) AND ( NOT EXISTS( secondary_bound ) ) AND ( ( NOT EXISTS( duration ) ) OR + duration_is_positive( duration ) ) ); + wr4: ( EXISTS( secondary_bound ) AND ( NOT EXISTS( primary_bound ) ) AND EXISTS( duration ) AND duration_is_negative( + duration ) ); END_ENTITY; ENTITY time_measure_with_unit @@ -20220,7 +21325,7 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; SUBTYPE OF ( named_unit ); WHERE wr1: ( ( SELF\named_unit.dimensions.length_exponent = 0 ) AND ( SELF\named_unit.dimensions.mass_exponent = 0 ) AND ( SELF\ - named_unit.dimensions.time_exponent = 1 ) AND ( SELF\named_unit.dimensions.electric_current_exponent = 0 ) AND ( + named_unit.dimensions.time_exponent = 1 ) AND ( SELF\named_unit.dimensions.electric_current_exponent = 0 ) AND ( SELF\named_unit.dimensions.thermodynamic_temperature_exponent = 0 ) AND ( SELF\named_unit.dimensions. amount_of_substance_exponent = 0 ) AND ( SELF\named_unit.dimensions.luminous_intensity_exponent = 0 ) ); END_ENTITY; @@ -20243,7 +21348,11 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; END_ENTITY; ENTITY tolerance_zone_definition - SUPERTYPE OF ( ONEOF ( projected_zone_definition, non_uniform_zone_definition, runout_zone_definition ) ); + SUPERTYPE OF ( + ONEOF ( + projected_zone_definition, + non_uniform_zone_definition, + runout_zone_definition ) ); zone : tolerance_zone; boundaries : SET [0 : ?] OF shape_aspect; END_ENTITY; @@ -20253,28 +21362,54 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; 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 ) ) + 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 topology_related_to_multiply_defined_geometry - ABSTRACT SUPERTYPE OF ( ONEOF ( multiply_defined_faces, multiply_defined_vertices, multiply_defined_edges ) ) + ABSTRACT SUPERTYPE OF ( + ONEOF ( + multiply_defined_faces, + multiply_defined_vertices, + multiply_defined_edges ) ) SUBTYPE OF ( inapt_topology_and_geometry_relationship ); END_ENTITY; ENTITY topology_related_to_nearly_degenerate_geometry - ABSTRACT SUPERTYPE OF ( ONEOF ( short_length_edge, small_area_face, entirely_narrow_face ) ) + ABSTRACT SUPERTYPE OF ( + ONEOF ( + short_length_edge, + small_area_face, + entirely_narrow_face ) ) SUBTYPE OF ( inapt_topology_and_geometry_relationship ); END_ENTITY; ENTITY topology_related_to_overlapping_geometry - ABSTRACT SUPERTYPE OF ( ONEOF ( partly_overlapping_faces, partly_overlapping_edges ) ) + ABSTRACT SUPERTYPE OF ( + ONEOF ( + partly_overlapping_faces, + partly_overlapping_edges ) ) SUBTYPE OF ( inapt_topology_and_geometry_relationship ); END_ENTITY; ENTITY topology_related_to_self_intersecting_geometry - ABSTRACT SUPERTYPE OF ( ONEOF ( self_intersecting_loop, self_intersecting_shell, intersecting_connected_face_sets ) ) + ABSTRACT SUPERTYPE OF ( + ONEOF ( + self_intersecting_loop, + self_intersecting_shell, + intersecting_connected_face_sets ) ) SUBTYPE OF ( inapt_topology_and_geometry_relationship ); END_ENTITY; @@ -20308,22 +21443,25 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; SUBTYPE OF ( track_blended_solid ); end_conditions : LIST [2 : 2] OF blend_end_condition_select; WHERE - wr1: ( SIZEOF( TYPEOF( SELF ) * [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SOLID_WITH_CONSTANT_RADIUS_EDGE_BLEND', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SOLID_WITH_VARIABLE_RADIUS_EDGE_BLEND' , + wr1: ( SIZEOF( TYPEOF( SELF ) * [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SOLID_WITH_CONSTANT_RADIUS_EDGE_BLEND', + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SOLID_WITH_VARIABLE_RADIUS_EDGE_BLEND' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SOLID_WITH_CHAMFERED_EDGES' ] ) = 1 ); - wr2: ( NOT ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.VERTEX' IN TYPEOF( end_conditions[1] ) ) AND ( + wr2: ( NOT ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.VERTEX' IN TYPEOF( end_conditions[1] ) ) AND ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.VERTEX' IN TYPEOF( end_conditions[2] ) ) ) ); - wr3: ( NOT ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.VERTEX' IN TYPEOF( end_conditions[1] ) ) AND ( NOT ( ( + wr3: ( NOT ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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 ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.VERTEX' IN TYPEOF( end_conditions[2] ) ) AND ( NOT ( ( + wr4: ( NOT ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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 ) ) + 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; @@ -20340,12 +21478,16 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; END_ENTITY; ENTITY transition_feature - SUPERTYPE OF ( ONEOF ( chamfer, edge_round, fillet ) ) + SUPERTYPE OF ( + ONEOF ( + chamfer, + edge_round, + fillet ) ) SUBTYPE OF ( shape_aspect ); WHERE - wr1: ( SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION', + wr1: ( SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COMPOUND_FEATURE' ] * TYPEOF( SELF.of_shape.definition ) ) = 1 ); - wr2: ( SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CHAMFER', + wr2: ( SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CHAMFER', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EDGE_ROUND' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'FILLET' ] * TYPEOF( SELF ) ) = 1 ); END_ENTITY; @@ -20392,79 +21534,79 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; wr3 : ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( + + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'MEASURE_REPRESENTATION_ITEM' IN TYPEOF( it ) ) AND ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'COUNT_MEASURE' IN TYPEOF( it\measure_with_unit.value_component ) ) AND ( it.name = 'number of teeth' ) ) ) ) + + 'COUNT_MEASURE' IN TYPEOF( it\measure_with_unit.value_component ) ) AND ( it.name = 'number of teeth' ) ) ) ) <= 1 ) ) ) ) = 0 ) ) ) ) = 0 ); wr4 : ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( + + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'MEASURE_REPRESENTATION_ITEM' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * + + 'MEASURE_REPRESENTATION_ITEM' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF( it ) ) = 2 ) AND ( it.name = 'major diameter' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ); wr5 : ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( + + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'MEASURE_REPRESENTATION_ITEM' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * + + 'MEASURE_REPRESENTATION_ITEM' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF( it ) ) = 2 ) AND ( it.name = 'nominal diameter' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ); wr6 : ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( + + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'MEASURE_REPRESENTATION_ITEM' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * + + 'MEASURE_REPRESENTATION_ITEM' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF( it ) ) = 2 ) AND ( it.name = 'tooth depth' ) ) ) ) <= 1 ) ) ) ) = 0 ) ) ) ) = 0 ); wr7 : ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( + + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'MEASURE_REPRESENTATION_ITEM' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * + + 'MEASURE_REPRESENTATION_ITEM' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF( it ) ) = 2 ) AND ( it.name = 'root fillet' ) ) ) ) <= 1 ) ) ) ) = 0 ) ) ) ) = 0 ); wr8 : ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( + + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'MEASURE_REPRESENTATION_ITEM' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * + + 'MEASURE_REPRESENTATION_ITEM' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF( it ) ) = 2 ) AND ( it.name = 'diametral pitch' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ); - wr9 : ( ( NOT ( SELF\characterized_object.description IN [ 'diamond', 'diagonal'] ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( - SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( + wr9 : ( ( NOT ( SELF\characterized_object.description IN [ 'diamond', 'diagonal'] ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( + SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( + + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'MEASURE_REPRESENTATION_ITEM' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANE_ANGLE_MEASURE_WITH_UNIT'] + + 'MEASURE_REPRESENTATION_ITEM' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANE_ANGLE_MEASURE_WITH_UNIT'] * TYPEOF( it ) ) = 2 ) AND ( it.name = 'helix angle' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ) ); - wr10: ( ( NOT ( SELF\characterized_object.description = 'diagonal' ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( + wr10: ( ( NOT ( SELF\characterized_object.description = 'diagonal' ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( + + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF( it ) ) AND ( it.name = 'helix hand' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) + + 'DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF( it ) ) AND ( it.name = 'helix hand' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ) ); wr11: ( SIZEOF( QUERY ( pds <* QUERY ( pd <* USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PROPERTY_DEFINITION.DEFINITION' ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) | ( NOT ( SIZEOF( QUERY ( sa_occ <* USEDIN( pds, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) | ( ( sa_occ.description = - 'partial area occurrence' ) AND ( SIZEOF( QUERY ( sdr <* QUERY ( sar <* USEDIN( sa_occ, + + 'PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) | ( NOT ( SIZEOF( QUERY ( sa_occ <* USEDIN( pds, + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) | ( ( sa_occ.description = + 'partial area occurrence' ) AND ( SIZEOF( QUERY ( sdr <* QUERY ( sar <* USEDIN( sa_occ, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT' ) | ( ( sar. description = 'applied area usage' ) AND ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF( sar ) ) ) ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'APPLIED_AREA' IN TYPEOF( sdr.relating_shape_aspect ) ) ) ) = 1 ) ) ) ) = 1 ) ) ) ) = 0 ); wr12: ( SIZEOF( QUERY ( pds <* QUERY ( pd <* USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PROPERTY_DEFINITION.DEFINITION' ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) | ( NOT ( SIZEOF( QUERY ( sa_occ <* USEDIN( pds, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) | ( SIZEOF( QUERY ( sdr <* + + 'PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) | ( NOT ( SIZEOF( QUERY ( sa_occ <* USEDIN( pds, + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) | ( SIZEOF( QUERY ( sdr <* QUERY ( sar <* USEDIN( sa_occ, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.' - + 'RELATED_SHAPE_ASPECT' ) | ( ( sar.description = 'applied shape' ) AND ( - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF( sar ) ) ) ) | ( - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT' IN TYPEOF( sdr.relating_shape_aspect ) ) ) ) = 1 ) ) ) + + 'RELATED_SHAPE_ASPECT' ) | ( ( sar.description = 'applied shape' ) AND ( + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF( sar ) ) ) ) | ( + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT' IN TYPEOF( sdr.relating_shape_aspect ) ) ) ) = 1 ) ) ) = 1 ) ) ) ) = 0 ); END_ENTITY; @@ -20478,13 +21620,28 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; END_ENTITY; ENTITY unary_boolean_expression - ABSTRACT SUPERTYPE OF ( ONEOF ( not_expression, odd_function ) ) + ABSTRACT SUPERTYPE OF ( + ONEOF ( + not_expression, + odd_function ) ) SUBTYPE OF ( boolean_expression, unary_generic_expression ); END_ENTITY; ENTITY unary_function_call - ABSTRACT SUPERTYPE OF ( ONEOF ( abs_function, minus_function, sin_function, cos_function, tan_function, asin_function, - acos_function, exp_function, log_function, log2_function, log10_function, square_root_function ) ) + ABSTRACT SUPERTYPE OF ( + ONEOF ( + abs_function, + minus_function, + sin_function, + cos_function, + tan_function, + asin_function, + acos_function, + exp_function, + log_function, + log2_function, + log10_function, + square_root_function ) ) SUBTYPE OF ( unary_numeric_expression ); END_ENTITY; @@ -20533,7 +21690,10 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; END_ENTITY; ENTITY uncertainty_qualifier - SUPERTYPE OF ( ONEOF ( standard_uncertainty, qualitative_uncertainty ) ); + SUPERTYPE OF ( + ONEOF ( + standard_uncertainty, + qualitative_uncertainty ) ); measure_name : label; description : text; END_ENTITY; @@ -20614,9 +21774,9 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; lower_limit_second_rotation : OPTIONAL plane_angle_measure; upper_limit_second_rotation : OPTIONAL plane_angle_measure; WHERE - wr1: ( ( ( NOT EXISTS( lower_limit_first_rotation ) ) OR ( NOT EXISTS( upper_limit_first_rotation ) ) ) XOR ( + wr1: ( ( ( NOT EXISTS( lower_limit_first_rotation ) ) OR ( NOT EXISTS( upper_limit_first_rotation ) ) ) XOR ( lower_limit_first_rotation < upper_limit_first_rotation ) ); - wr2: ( ( ( NOT EXISTS( lower_limit_second_rotation ) ) OR ( NOT EXISTS( upper_limit_second_rotation ) ) ) XOR ( + wr2: ( ( ( NOT EXISTS( lower_limit_second_rotation ) ) OR ( NOT EXISTS( upper_limit_second_rotation ) ) ) XOR ( lower_limit_second_rotation < upper_limit_second_rotation ) ); END_ENTITY; @@ -20625,12 +21785,12 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; WHERE wr1: ( ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' ) IN TYPEOF( SELF\ - shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold ) ) + shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold ) ) AND ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COUNT_MEASURE' IN value_limit_type( SELF\ shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold ) ) ); wr2: validate_measured_data_type( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COUNT_MEASURE' ); wr3: validate_inspected_elements_type( SELF, [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FACE_SURFACE'] ); - wr4: validate_locations_of_extreme_value_type( SELF, [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + + wr4: validate_locations_of_extreme_value_type( SELF, [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'B_SPLINE_SURFACE_STRIP' ] ); wr5: validate_accuracy_types( SELF, [] ); END_ENTITY; @@ -20677,7 +21837,8 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; END_ENTITY; ENTITY value_function - SUPERTYPE OF ( int_value_function ) + SUPERTYPE OF ( + int_value_function ) SUBTYPE OF ( numeric_expression, unary_generic_expression ); SELF\unary_generic_expression.operand : string_expression; END_ENTITY; @@ -20700,7 +21861,11 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; END_ENTITY; ENTITY variable - ABSTRACT SUPERTYPE OF ( ONEOF ( numeric_variable, boolean_variable, string_variable ) ) + ABSTRACT SUPERTYPE OF ( + ONEOF ( + numeric_variable, + boolean_variable, + string_variable ) ) SUBTYPE OF ( generic_variable ); END_ENTITY; @@ -20723,7 +21888,7 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; wr1: ( QUERY ( q <* SELF\representation_relationship.rep_1.items | ( NOT ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'VARIATIONAL_REPRESENTATION_ITEM' IN TYPEOF( q ) ) ) ) = SELF\representation_relationship.rep_2.items ); wr2: ( SELF\representation_relationship.rep_1.context_of_items :=: SELF\representation_relationship.rep_2.context_of_items ); - wr3: ( SIZEOF( QUERY ( q <* SELF\representation_relationship.rep_2.items | ( + wr3: ( SIZEOF( QUERY ( q <* SELF\representation_relationship.rep_2.items | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.VARIATIONAL_REPRESENTATION_ITEM' IN TYPEOF( q ) ) ) ) = 0 ); wr4: ( ( TYPEOF( SELF\representation_relationship.rep_1 ) - TYPEOF( SELF\representation_relationship.rep_2 ) ) = [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.VARIATIONAL_REPRESENTATION' ] ); @@ -20731,7 +21896,10 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; END_ENTITY; ENTITY variational_parameter - ABSTRACT SUPERTYPE OF ( ONEOF ( bound_variational_parameter, unbound_variational_parameter ) ) + ABSTRACT SUPERTYPE OF ( + ONEOF ( + bound_variational_parameter, + unbound_variational_parameter ) ) SUBTYPE OF ( variational_representation_item, maths_variable ); parameter_description : OPTIONAL text; parameter_current_value : maths_value; @@ -20751,7 +21919,8 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; END_ENTITY; ENTITY variational_representation_item - ABSTRACT SUPERTYPE OF ( auxiliary_geometric_representation_item ) + ABSTRACT SUPERTYPE OF ( + auxiliary_geometric_representation_item ) SUBTYPE OF ( representation_item ); WHERE wr1: ( SIZEOF( QUERY ( q <* using_representations( SELF ) | ( NOT ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' @@ -20788,58 +21957,58 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; wr4 : ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( SIZEOF( QUERY ( pdr <* USEDIN( pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) AND ( SIZEOF( QUERY ( srwp_i <* + + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) AND ( SIZEOF( QUERY ( srwp_i <* pdr.used_representation.items | ( ( srwp_i.name = 'orientation' ) OR ( srwp_i.name = 'profile angle' ) OR ( srwp_i - .name = 'tilt angle' ) OR ( srwp_i.name = 'profile radius' ) OR ( srwp_i.name = 'first length' ) OR ( srwp_i.name + .name = 'tilt angle' ) OR ( srwp_i.name = 'profile radius' ) OR ( srwp_i.name = 'first length' ) OR ( srwp_i.name = 'second length' ) ) ) ) = SIZEOF( pdr.used_representation.items ) ) ) ) ) = 1 ) ) ) = 1 ); wr5 : ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( - QUERY ( it <* impl_rep.used_representation.items | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLACEMENT' + + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( + QUERY ( it <* impl_rep.used_representation.items | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLACEMENT' IN TYPEOF( it ) ) AND ( it.name = 'orientation' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ); wr6 : ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( + + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'MEASURE_REPRESENTATION_ITEM' IN TYPEOF( it ) ) AND ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'LENGTH_MEASURE_WITH_UNIT' IN TYPEOF( it\measure_with_unit.value_component ) ) AND ( it.name = 'profile radius' ) ) ) ) + + 'LENGTH_MEASURE_WITH_UNIT' IN TYPEOF( it\measure_with_unit.value_component ) ) AND ( it.name = 'profile radius' ) ) ) ) <= 1 ) ) ) ) = 0 ) ) ) ) = 0 ); wr7 : ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( + + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'MEASURE_REPRESENTATION_ITEM' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANE_ANGLE_MEASURE_WITH_UNIT'] + + 'MEASURE_REPRESENTATION_ITEM' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANE_ANGLE_MEASURE_WITH_UNIT'] * TYPEOF( it ) ) = 2 ) AND ( it.name = 'profile angle' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ); wr8 : ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( + + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'MEASURE_REPRESENTATION_ITEM' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANE_ANGLE_MEASURE_WITH_UNIT'] + + 'MEASURE_REPRESENTATION_ITEM' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANE_ANGLE_MEASURE_WITH_UNIT'] * TYPEOF( it ) ) = 2 ) AND ( it.name = 'tilt angle' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ); wr9 : ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( pdr <* USEDIN( pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'PLANAR_SHAPE_REPRESENTATION' IN TYPEOF( pdr.used_representation ) ) AND ( pdr.used_representation.name = + + 'PLANAR_SHAPE_REPRESENTATION' IN TYPEOF( pdr.used_representation ) ) AND ( pdr.used_representation.name = 'profile limit' ) ) ) ) <= 1 ) ) ) ) = 0 ); wr10: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( + + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'MEASURE_REPRESENTATION_ITEM' IN TYPEOF( it ) ) AND ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'LENGTH_MEASURE_WITH_UNIT' IN TYPEOF( it\measure_with_unit.value_component ) ) AND ( it.name = 'first length' ) ) ) ) + + 'LENGTH_MEASURE_WITH_UNIT' IN TYPEOF( it\measure_with_unit.value_component ) ) AND ( it.name = 'first length' ) ) ) ) <= 1 ) ) ) ) = 0 ) ) ) ) = 0 ); wr11: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( + + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'MEASURE_REPRESENTATION_ITEM' IN TYPEOF( it ) ) AND ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'LENGTH_MEASURE_WITH_UNIT' IN TYPEOF( it\measure_with_unit.value_component ) ) AND ( it.name = 'second length' ) ) ) ) + + 'LENGTH_MEASURE_WITH_UNIT' IN TYPEOF( it\measure_with_unit.value_component ) ) AND ( it.name = 'second length' ) ) ) ) <= 1 ) ) ) ) = 0 ) ) ) ) = 0 ); END_ENTITY; @@ -20904,7 +22073,7 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; camera_usages : SET [1 : ?] OF camera_model_d3 FOR perspective_of_volume; WHERE wr1: ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.AXIS2_PLACEMENT_2D' IN TYPEOF( SELF\view_volume.view_window. - placement ) ) OR ( dot_product( representation_item( ' ' ) || geometric_representation_item( ) || direction( [0, 0, + placement ) ) OR ( dot_product( representation_item( ' ' ) || geometric_representation_item( ) || direction( [0, 0, 1] ), SELF.view_window\planar_box.placement\axis2_placement_3d.p[3] ) = 1 ) ); wr2: ( view_plane_distance = view_window.placement\placement.location.coordinates[3] ); END_ENTITY; @@ -20912,12 +22081,12 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; ENTITY visual_appearance_representation SUBTYPE OF ( representation ); WHERE - wr1 : ( ( 3 <= SIZEOF( SELF.items ) ) AND ( SIZEOF( SELF.items ) <= 9 ) AND ( ( SIZEOF( QUERY ( i <* items | ( ( ( - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + - 'MEASURE_REPRESENTATION_ITEM' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'VALUE_RANGE'] * TYPEOF( i ) ) - = 1 ) AND ( i.name IN [ 'refraction index', 'opacity'] ) ) ) ) + SIZEOF( QUERY ( i <* items | ( ( ( + wr1 : ( ( 3 <= SIZEOF( SELF.items ) ) AND ( SIZEOF( SELF.items ) <= 9 ) AND ( ( SIZEOF( QUERY ( i <* items | ( ( ( + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + + 'MEASURE_REPRESENTATION_ITEM' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'VALUE_RANGE'] * TYPEOF( i ) ) + = 1 ) AND ( i.name IN [ 'refraction index', 'opacity'] ) ) ) ) + SIZEOF( QUERY ( i <* items | ( ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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 ); @@ -20929,11 +22098,11 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; 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, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.' - + 'USED_REPRESENTATION' ) ) = 1 ) AND ( SIZEOF( QUERY ( pdr <* USEDIN( SELF, + wr11: ( ( SIZEOF( USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.' + + 'USED_REPRESENTATION' ) ) = 1 ) AND ( SIZEOF( QUERY ( pdr <* USEDIN( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.' + 'USED_REPRESENTATION' ) - | ( SIZEOF( QUERY ( gpa <* USEDIN( pdr.definition, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + - 'GENERAL_PROPERTY_ASSOCIATION.' + 'DERIVED_DEFINITION' ) | ( ( ( + | ( SIZEOF( QUERY ( gpa <* USEDIN( pdr.definition, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + + 'GENERAL_PROPERTY_ASSOCIATION.' + 'DERIVED_DEFINITION' ) | ( ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'GENERAL_PROPERTY' ) IN TYPEOF( gpa.base_definition ) ) AND ( gpa\general_property_association.base_definition\general_property.name = 'surface_condition' ) ) ) ) = 1 ) ) ) = 1 ) ); @@ -20961,6 +22130,11 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; SUBTYPE OF ( date ); week_component : week_in_year_number; day_component : OPTIONAL day_in_week_number; + WHERE + wr1: ( ( NOT leap_year( SELF\date.year_component ) ) OR ( ( 1 <= ( day_component + ( 7 * ( week_component - 1 ) ) ) ) AND + ( ( day_component + ( 7 * ( week_component - 1 ) ) ) <= 366 ) ) ); + wr2: ( leap_year( SELF\date.year_component ) OR ( ( 1 <= ( day_component + ( 7 * ( week_component - 1 ) ) ) ) AND ( ( + day_component + ( 7 * ( week_component - 1 ) ) ) <= 365 ) ) ); END_ENTITY; ENTITY wire_shell @@ -21023,7 +22197,7 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; WHERE wr1: ( ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'SHAPE_DATA_QUALITY_UPPER_VALUE_LIMIT' ) IN TYPEOF( SELF\ - shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold ) ) + shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold ) ) AND ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANE_ANGLE_MEASURE' IN value_limit_type( SELF\ shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold ) ) ); wr2: validate_measured_data_type( SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANE_ANGLE_MEASURE' ); @@ -21033,8 +22207,17 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; 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 ) ) + 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; @@ -21043,12 +22226,12 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; LOCAL solution_versions : SET OF product_definition_formation := []; END_LOCAL; - solution_versions := QUERY ( pdf <* product_definition_formation | ( SIZEOF( QUERY ( prpc <* USEDIN( pdf.of_product, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PRODUCT_RELATED_PRODUCT_CATEGORY.PRODUCTS' ) | ( prpc.name = + solution_versions := QUERY ( pdf <* product_definition_formation | ( SIZEOF( QUERY ( prpc <* USEDIN( pdf.of_product, + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PRODUCT_RELATED_PRODUCT_CATEGORY.PRODUCTS' ) | ( prpc.name = 'alternative solution' ) ) ) = 1 ) ); WHERE - wr1: ( SIZEOF( QUERY ( pdf <* solution_versions | ( SIZEOF( QUERY ( pd <* USEDIN( pdf, + wr1: ( SIZEOF( QUERY ( pdf <* solution_versions | ( SIZEOF( QUERY ( pd <* USEDIN( pdf, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PRODUCT_DEFINITION.FORMATION' ) | ( pd.frame_of_reference. name = 'alternative definition' ) ) ) <> 1 ) ) ) = 0 ); @@ -21057,7 +22240,7 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; RULE application_protocol_definition_required FOR ( application_context ); WHERE - wr1: ( SIZEOF( QUERY ( ac <* application_context | ( SIZEOF( QUERY ( apd <* USEDIN( ac, + wr1: ( SIZEOF( QUERY ( ac <* application_context | ( SIZEOF( QUERY ( apd <* USEDIN( ac, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.APPLICATION_PROTOCOL_DEFINITION.APPLICATION' ) | ( apd. application_interpreted_model_schema_name = 'ap242_managed_model_based_3d_engineering' ) ) ) > 0 ) ) ) > 0 ); @@ -21066,15 +22249,15 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; 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, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_RELATED_PRODUCT_CATEGORY.PRODUCTS' ) | ( prpc.name = - 'functionality' ) ) ) = 1 ) AND ( SIZEOF( QUERY ( pd <* USEDIN( pdf, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION.FORMATION' ) | ( pd.frame_of_reference.name = + wr1: ( SIZEOF( QUERY ( pdf <* product_definition_formation | ( ( SIZEOF( QUERY ( prpc <* USEDIN( pdf.of_product, + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_RELATED_PRODUCT_CATEGORY.PRODUCTS' ) | ( prpc.name = + 'functionality' ) ) ) = 1 ) AND ( SIZEOF( QUERY ( pd <* USEDIN( pdf, + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_RELATED_PRODUCT_CATEGORY.PRODUCTS' ) | ( prpc.name = - 'conceptual design' ) ) ) = 1 ) AND ( SIZEOF( QUERY ( pd <* USEDIN( pdf, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION.FORMATION' ) | ( pd.frame_of_reference.name = + wr2: ( SIZEOF( QUERY ( pdf <* product_definition_formation | ( ( SIZEOF( QUERY ( prpc <* USEDIN( pdf.of_product, + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_RELATED_PRODUCT_CATEGORY.PRODUCTS' ) | ( prpc.name = + 'conceptual design' ) ) ) = 1 ) AND ( SIZEOF( QUERY ( pd <* USEDIN( pdf, + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION.FORMATION' ) | ( pd.frame_of_reference.name = 'conceptual definition' ) ) ) < 1 ) ) ) ) = 0 ); END_RULE; @@ -21083,11 +22266,11 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; WHERE wr1: ( SIZEOF( QUERY ( co <* chamfer_offset | ( NOT ( 1 = SIZEOF( QUERY ( pdr <* property_definition_representation | ( ( pdr - \property_definition_representation.definition\property_definition.definition = co ) AND ( - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FACE_SHAPE_REPRESENTATION' IN TYPEOF( pdr.used_representation ) ) - AND ( ( ( pdr\property_definition_representation.definition\property_definition.definition.description = 'first offset' ) + \property_definition_representation.definition\property_definition.definition = co ) AND ( + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FACE_SHAPE_REPRESENTATION' IN TYPEOF( pdr.used_representation ) ) + AND ( ( ( pdr\property_definition_representation.definition\property_definition.definition.description = 'first offset' ) AND ( pdr.used_representation.name = 'first face shape' ) ) OR ( ( pdr\property_definition_representation.definition\ - property_definition.definition.description = 'second offset' ) AND ( pdr.used_representation.name = 'second face shape' ) ) ) ) ) ) ) ) ) ) + property_definition.definition.description = 'second offset' ) AND ( pdr.used_representation.name = 'second face shape' ) ) ) ) ) ) ) ) ) ) = 0 ); END_RULE; @@ -21096,8 +22279,8 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; WHERE wr1: ( SIZEOF( QUERY ( cf <* chamfer | ( NOT ( 1 = SIZEOF( QUERY ( pdr <* property_definition_representation | ( ( pdr\ - property_definition_representation.definition\property_definition.definition = cf ) AND ( - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FACE_SHAPE_REPRESENTATION' IN TYPEOF( pdr.used_representation ) ) + property_definition_representation.definition\property_definition.definition = cf ) AND ( + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FACE_SHAPE_REPRESENTATION' IN TYPEOF( pdr.used_representation ) ) AND ( pdr.used_representation.name = 'chamfer face' ) ) ) ) ) ) ) ) = 0 ); END_RULE; @@ -21105,24 +22288,24 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; 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, + 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 ) + 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, + RULE component_class_for_assembly_select FOR ( composite_assembly_sequence_definition, next_assembly_usage_occurrence, product_related_product_category ); LOCAL i : INTEGER := 0; j : INTEGER := 0; k : INTEGER := 0; - nnauo : INTEGER := 0; dkuhr : LOGICAL := TRUE; - rp : product; + nnauo : INTEGER := 0; nprpc : INTEGER := 0; + rp : product; END_LOCAL; REPEAT i := LOINDEX( composite_assembly_sequence_definition ) TO HIINDEX( composite_assembly_sequence_definition ) BY 1; nnauo := 0; @@ -21131,7 +22314,7 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; 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 ) BY 1; - IF ( rp IN product_related_product_category[k].products ) AND ( product_related_product_category[k].name IN [ 'ply', + 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; @@ -21158,18 +22341,18 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; END_RULE; - RULE consistent_uncertainty FOR ( global_uncertainty_assigned_context, qualified_representation_item, + 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( + 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( + 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 | ( ( ( - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'UNCERTAINTY_QUALIFIER' ) IN TYPEOF( u1 ) ) AND ( SIZEOF( - QUERY ( u2 <* qri.qualifiers | ( ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'UNCERTAINTY_QUALIFIER' ) - IN TYPEOF( u2 ) ) AND ( u2\uncertainty_qualifier.measure_name = u1\uncertainty_qualifier.measure_name ) ) ) ) > 1 ) ) ) ) + wr3: ( SIZEOF( QUERY ( qri <* qualified_representation_item | ( SIZEOF( QUERY ( u1 <* qri.qualifiers | ( ( ( + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'UNCERTAINTY_QUALIFIER' ) IN TYPEOF( u1 ) ) AND ( SIZEOF( + QUERY ( u2 <* qri.qualifiers | ( ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'UNCERTAINTY_QUALIFIER' ) + IN TYPEOF( u2 ) ) AND ( u2\uncertainty_qualifier.measure_name = u1\uncertainty_qualifier.measure_name ) ) ) ) > 1 ) ) ) ) > 0 ) ) ) = 0 ); END_RULE; @@ -21182,8 +22365,8 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; 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, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_RELATED_PRODUCT_CATEGORY.PRODUCTS' ) | ( prpc.name = + wr1: ( SIZEOF( QUERY ( pd <* constraint_definitions | ( SIZEOF( QUERY ( prpc <* USEDIN( pd.formation.of_product, + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_RELATED_PRODUCT_CATEGORY.PRODUCTS' ) | ( prpc.name = 'requirement' ) ) ) = 0 ) ) ) = 0 ); END_RULE; @@ -21191,33 +22374,33 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; 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, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_RELATED_PRODUCT_CATEGORY.PRODUCTS' ) | ( prpc.name = + wr1: ( SIZEOF( QUERY ( pdf <* product_definition_formation | ( ( SIZEOF( QUERY ( prpc <* USEDIN( pdf.of_product, + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_RELATED_PRODUCT_CATEGORY.PRODUCTS' ) | ( prpc.name = 'requirement' ) ) ) > 0 ) AND ( SIZEOF( QUERY ( pd <* USEDIN( pdf, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'PRODUCT_DEFINITION.FORMATION' ) | ( pd.frame_of_reference.name = 'design constraint definition' ) ) ) < 1 ) ) ) ) + + 'PRODUCT_DEFINITION.FORMATION' ) | ( pd.frame_of_reference.name = 'design constraint definition' ) ) ) < 1 ) ) ) ) = 0 ); END_RULE; - RULE dimensioning_data_requires_document FOR ( applied_document_reference, product_definition_context_association, + RULE dimensioning_data_requires_document FOR ( applied_document_reference, product_definition_context_association, role_association ); LOCAL - pdca : SET OF product_definition_context_association := QUERY ( pdca <* product_definition_context_association | ( ( pdca - \product_definition_context_association.role\product_definition_context_role.name = 'additional context' ) AND ( - pdca\product_definition_context_association.frame_of_reference\application_context_element.name = - 'Geometric Dimensioning and Tolerancing Product Specification' ) ) ); - pdadr : SET OF product_definition := []; - ra1 : SET OF role_association := []; adr : SET OF applied_document_reference := QUERY ( adr <* applied_document_reference | ( ( adr\document_reference. assigned_document\document.kind\document_type.product_data_type = 'Standards Document' ) AND ( ( adr\ document_reference.assigned_document\document.id = 'ASME Y14.41-2003' ) OR ( adr\document_reference. - assigned_document\document.id = 'ASME Y14.5M-1994' ) OR ( adr\document_reference.assigned_document\document.id = + assigned_document\document.id = 'ASME Y14.5M-1994' ) OR ( adr\document_reference.assigned_document\document.id = 'ISO 1101: 2004' ) ) ) ); - ra : SET OF role_association := QUERY ( ra <* role_association | ( ra\role_association.role\object_role.name = + pdca : SET OF product_definition_context_association := QUERY ( pdca <* product_definition_context_association | ( ( pdca + \product_definition_context_association.role\product_definition_context_role.name = 'additional context' ) AND ( + pdca\product_definition_context_association.frame_of_reference\application_context_element.name = + 'Geometric Dimensioning and Tolerancing Product Specification' ) ) ); + ra : SET OF role_association := QUERY ( ra <* role_association | ( ra\role_association.role\object_role.name = 'dimensioning standard' ) ); - pass : BOOLEAN := TRUE; + ra1 : SET OF role_association := []; pdpdca : SET OF product_definition := []; + pdadr : SET OF product_definition := []; + pass : BOOLEAN := TRUE; END_LOCAL; REPEAT i := 1 TO HIINDEX( pdca ) BY 1; pdpdca := pdpdca + pdca[i]\product_definition_context_association.definition; @@ -21244,12 +22427,12 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; RULE draughting_model_items_constraint FOR ( draughting_model ); WHERE - wr1: ( SIZEOF( QUERY ( dm <* draughting_model | ( NOT ( SIZEOF( QUERY ( it1 <* dm\representation.items | ( ( - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ANNOTATION_OCCURRENCE' IN TYPEOF( it1 ) ) AND ( NOT ( ( - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'DRAUGHTING_ANNOTATION_OCCURRENCE' ) IN TYPEOF( it1 ) ) ) ) ) ) + wr1: ( SIZEOF( QUERY ( dm <* draughting_model | ( NOT ( SIZEOF( QUERY ( it1 <* dm\representation.items | ( ( + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ANNOTATION_OCCURRENCE' IN TYPEOF( it1 ) ) AND ( NOT ( ( + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'DRAUGHTING_ANNOTATION_OCCURRENCE' ) IN TYPEOF( it1 ) ) ) ) ) ) = 0 ) ) ) ) = 0 ); - wr2: ( SIZEOF( QUERY ( dm <* draughting_model | ( NOT ( SIZEOF( QUERY ( it1 <* dm\representation.items | ( ( - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DRAUGHTING_CALLOUT' IN TYPEOF( it1 ) ) AND ( NOT ( + wr2: ( SIZEOF( QUERY ( dm <* draughting_model | ( NOT ( SIZEOF( QUERY ( it1 <* dm\representation.items | ( ( + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DRAUGHTING_CALLOUT' IN TYPEOF( it1 ) ) AND ( NOT ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DRAUGHTING_ELEMENTS' IN TYPEOF( it1 ) ) ) ) ) ) = 0 ) ) ) ) = 0 ); END_RULE; @@ -21258,16 +22441,16 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; WHERE wr1: ( 0 = SIZEOF( QUERY ( er <* edge_round | ( NOT ( 1 = SIZEOF( QUERY ( pdr <* property_definition_representation | ( ( pdr - \property_definition_representation.definition\property_definition.definition = er ) AND ( - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FACE_SHAPE_REPRESENTATION' IN TYPEOF( pdr.used_representation ) ) + \property_definition_representation.definition\property_definition.definition = er ) AND ( + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FACE_SHAPE_REPRESENTATION' IN TYPEOF( pdr.used_representation ) ) AND ( pdr.used_representation.name = 'edge round face' ) ) ) ) ) ) ) ) ); wr2: ( SIZEOF( QUERY ( er <* edge_round | ( NOT ( 1 = SIZEOF( QUERY ( pdr <* property_definition_representation | ( ( pdr\ - property_definition_representation.definition\property_definition.definition = er ) AND ( - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FACE_SHAPE_REPRESENTATION' IN TYPEOF( pdr.used_representation ) ) + property_definition_representation.definition\property_definition.definition = er ) AND ( + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FACE_SHAPE_REPRESENTATION' IN TYPEOF( pdr.used_representation ) ) AND ( pdr.used_representation.name = 'first face shape' ) ) ) ) ) ) ) ) = 0 ); wr3: ( SIZEOF( QUERY ( er <* edge_round | ( NOT ( 1 = SIZEOF( QUERY ( pdr <* property_definition_representation | ( ( pdr\ - property_definition_representation.definition\property_definition.definition = er ) AND ( - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FACE_SHAPE_REPRESENTATION' IN TYPEOF( pdr.used_representation ) ) + property_definition_representation.definition\property_definition.definition = er ) AND ( + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FACE_SHAPE_REPRESENTATION' IN TYPEOF( pdr.used_representation ) ) AND ( pdr.used_representation.name = 'second face shape' ) ) ) ) ) ) ) ) = 0 ); END_RULE; @@ -21275,7 +22458,7 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; 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 ) ) ) ) + wr1: ( SIZEOF( QUERY ( aia <* applied_external_identification_assignment | ( NOT external_version_assignment_is_valid( aia ) ) ) ) = 0 ); END_RULE; @@ -21285,30 +22468,30 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; LOCAL mfds : SET OF feature_definition := []; END_LOCAL; - mfds := QUERY ( temp <* feature_definition | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MACHINING_FEATURE_DEFINITION' + mfds := QUERY ( temp <* feature_definition | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MACHINING_FEATURE_DEFINITION' IN TYPEOF( temp ) ) ); WHERE - wr1: ( SIZEOF( QUERY ( mfd <* mfds | ( NOT ( SIZEOF( QUERY ( pdr <* get_property_definition_representations( mfd ) | ( + wr1: ( SIZEOF( QUERY ( mfd <* mfds | ( NOT ( SIZEOF( QUERY ( pdr <* get_property_definition_representations( mfd ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. used_representation ) ) ) ) <= 1 ) ) ) ) = 0 ); - wr2: ( SIZEOF( QUERY ( mfd <* mfds | ( NOT ( SIZEOF( QUERY ( pd <* USEDIN( mfd, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( + wr2: ( SIZEOF( QUERY ( mfd <* mfds | ( NOT ( SIZEOF( QUERY ( pd <* USEDIN( mfd, + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* - impl_rep.used_representation.items | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLACEMENT' IN TYPEOF( it ) ) + + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* + impl_rep.used_representation.items | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLACEMENT' IN TYPEOF( it ) ) AND ( it.name = 'orientation' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ) ) ) ) = 0 ); - wr3: ( SIZEOF( QUERY ( mfd <* mfds | ( NOT ( ( NOT ( SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ROUND_HOLE', + wr3: ( SIZEOF( QUERY ( mfd <* mfds | ( NOT ( ( NOT ( SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ROUND_HOLE', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.BOSS' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'OUTSIDE_PROFILE' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.REMOVAL_VOLUME', + + 'OUTSIDE_PROFILE' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.REMOVAL_VOLUME', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FLAT_FACE' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'POCKET' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROTRUSION', + + 'POCKET' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROTRUSION', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.RIB_TOP' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'ROUNDED_END' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SLOT', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.STEP' ] * TYPEOF( mfds ) ) = 1 ) ) OR ( SIZEOF( QUERY ( pdr <* + + 'ROUNDED_END' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SLOT', + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.STEP' ] * TYPEOF( mfds ) ) = 1 ) ) OR ( SIZEOF( QUERY ( pdr <* get_property_definition_representations( mfd ) | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'PLANAR_SHAPE_REPRESENTATION' IN TYPEOF( pdr.used_representation ) ) AND ( pdr.used_representation.name = + + 'PLANAR_SHAPE_REPRESENTATION' IN TYPEOF( pdr.used_representation ) ) AND ( pdr.used_representation.name = 'maximum feature limit' ) ) ) ) >= 0 ) ) ) ) ) = 0 ); END_RULE; @@ -21316,7 +22499,7 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; RULE machining_feature_life_cycle FOR ( instanced_feature ); WHERE - wr1: ( SIZEOF( QUERY ( mf <* instanced_feature | ( NOT ( mf.of_shape.definition.frame_of_reference.life_cycle_stage = + wr1: ( SIZEOF( QUERY ( mf <* instanced_feature | ( NOT ( mf.of_shape.definition.frame_of_reference.life_cycle_stage = 'manufacturing planning' ) ) ) ) = 0 ); END_RULE; @@ -21339,13 +22522,13 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; LOCAL known_sourced_properties : SET OF externally_defined_general_property; END_LOCAL; - known_sourced_properties := QUERY ( edc <* externally_defined_general_property | ( + known_sourced_properties := QUERY ( edc <* externally_defined_general_property | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.KNOWN_SOURCE' IN TYPEOF( edc.source ) ) ); WHERE - wr1: ( SIZEOF( QUERY ( edgp <* known_sourced_properties | ( SIZEOF( QUERY ( edir <* USEDIN( edgp, + wr1: ( SIZEOF( QUERY ( edgp <* known_sourced_properties | ( SIZEOF( QUERY ( edir <* USEDIN( edgp, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EXTERNALLY_DEFINED_ITEM_RELATIONSHIP.RELATING_ITEM' ) | ( ( edir. - name = 'name scope' ) AND ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EXTERNALLY_DEFINED_CLASS' IN TYPEOF( + name = 'name scope' ) AND ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EXTERNALLY_DEFINED_CLASS' IN TYPEOF( edir.related_item ) ) AND ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.KNOWN_SOURCE' IN TYPEOF( edir. related_item.source ) ) ) ) ) <> 1 ) ) ) = 0 ); @@ -21361,7 +22544,7 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; + 'NAME' ) = 'ISO 13584 library' ) ) ); WHERE - wr1: ( SIZEOF( QUERY ( edgp <* plib_properties | ( SIZEOF( QUERY ( edir <* USEDIN( edgp, + wr1: ( SIZEOF( QUERY ( edgp <* plib_properties | ( SIZEOF( QUERY ( edir <* USEDIN( edgp, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.APPLIED_EXTERNAL_IDENTIFICATION_ASSIGNMENT.ITEMS' ) | ( edir.role. name = 'version' ) ) ) <> 1 ) ) ) = 0 ); @@ -21373,10 +22556,10 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; i : INTEGER; j : INTEGER; k : INTEGER; - nnauo : INTEGER; dkuhr : LOGICAL := TRUE; - rp : product; + nnauo : INTEGER; nprpc : INTEGER := 0; + rp : product; END_LOCAL; REPEAT i := LOINDEX( ply_laminate_sequence_definition ) TO HIINDEX( ply_laminate_sequence_definition ) BY 1; nnauo := 0; @@ -21418,11 +22601,11 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; i : INTEGER; j : INTEGER; k : INTEGER; - dkuhr : LOGICAL; kp : INTEGER; - rp : product; - nprpc : INTEGER := 0; + 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 ) BY 1; @@ -21466,11 +22649,11 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; RULE product_concept_feature_requires_category FOR ( product_concept_feature ); WHERE - wr1: ( SIZEOF( QUERY ( pcf <* product_concept_feature | ( ( SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + - 'INCLUSION_PRODUCT_CONCEPT_FEATURE' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + - 'CONDITIONAL_CONCEPT_FEATURE' ] * TYPEOF( pcf ) ) = 0 ) AND ( SIZEOF( QUERY ( aga <* USEDIN( pcf, + wr1: ( SIZEOF( QUERY ( pcf <* product_concept_feature | ( ( SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + + 'INCLUSION_PRODUCT_CONCEPT_FEATURE' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + + 'CONDITIONAL_CONCEPT_FEATURE' ] * TYPEOF( pcf ) ) = 0 ) AND ( SIZEOF( QUERY ( aga <* USEDIN( pcf, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'APPLIED_GROUP_ASSIGNMENT.' + 'ITEMS' ) | ( ( aga\ - group_assignment.role\object_role.name = 'specification category member' ) AND ( ( + group_assignment.role\object_role.name = 'specification category member' ) AND ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PRODUCT_CONCEPT_FEATURE_CATEGORY' ) IN TYPEOF( aga. assigned_group ) ) ) ) ) <> 1 ) ) ) ) = 0 ); @@ -21479,7 +22662,7 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; 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( + wr1: ( SIZEOF( QUERY ( pdr <* product_definition_relationship | ( ( pdr.name = 'definition replacement' ) AND ( SIZEOF( USEDIN( pdr, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.APPLIED_EFFECTIVITY_ASSIGNMENT.ITEMS' ) ) = 0 ) ) ) ) = 0 ); @@ -21493,13 +22676,13 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; 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, + wr1: ( SIZEOF( QUERY ( pd <* solution_definitions | ( SIZEOF( QUERY ( pdr <* USEDIN( pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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', ''] ) ) ) ) + 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, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + + wr3: ( SIZEOF( QUERY ( pd <* solution_definitions | ( ( pd.name IN [ 'supplier', 'technical supplier'] ) AND ( SIZEOF( + QUERY ( aoa <* USEDIN( pd.formation, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'APPLIED_ORGANIZATION_ASSIGNMENT.ITEMS' ) | ( aoa.role.name = 'supplier' ) ) ) <> 1 ) ) ) ) = 0 ); END_RULE; @@ -21509,12 +22692,12 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; LOCAL assembly_definitions : SET OF product_definition := []; END_LOCAL; - assembly_definitions := QUERY ( pd <* product_definition | ( SIZEOF( QUERY ( pdca <* USEDIN( pd, + assembly_definitions := QUERY ( pd <* product_definition | ( SIZEOF( QUERY ( pdca <* USEDIN( pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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 ) ) ) ) ) + wr1: ( SIZEOF( QUERY ( pd <* assembly_definitions | ( NOT ( 'assembly' IN categories_of_product( pd.formation.of_product ) ) ) ) ) = 0 ); END_RULE; @@ -21522,7 +22705,7 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; 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( + wr1: ( SIZEOF( QUERY ( r <* representation | ( ( r.name = 'centre of mass' ) AND ( ( SIZEOF( r.items ) <> 1 ) OR ( SIZEOF( QUERY ( i <* r.items | ( ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'POINT' ) IN TYPEOF( i ) ) AND ( i. name = 'centre point' ) ) ) ) <> 1 ) ) ) ) ) = 0 ); @@ -21540,12 +22723,12 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; LOCAL collection_definitions : SET OF product_definition := []; END_LOCAL; - collection_definitions := QUERY ( pd <* product_definition | ( SIZEOF( QUERY ( pdca <* USEDIN( pd, + collection_definitions := QUERY ( pd <* product_definition | ( SIZEOF( QUERY ( pdca <* USEDIN( pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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 ) ) ) ) ) + wr1: ( SIZEOF( QUERY ( pd <* collection_definitions | ( NOT ( 'collection' IN categories_of_product( pd.formation.of_product ) ) ) ) ) = 0 ); END_RULE; @@ -21553,16 +22736,16 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; 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'] ) ) ) ) + 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, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'CONCEPT_FEATURE_RELATIONSHIP_WITH_CONDITION.' + - 'CONDITIONAL_OPERATOR' ) | ( SIZEOF( QUERY ( ccf <* USEDIN( cfrwc, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'CONDITIONAL_CONCEPT_FEATURE.CONDITION' ) | ( NOT ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + + wr2: ( SIZEOF( QUERY ( cfo <* concept_feature_operator | ( ( cfo.name = 'implication' ) AND ( SIZEOF( QUERY ( cfrwc <* + USEDIN( cfo, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'CONCEPT_FEATURE_RELATIONSHIP_WITH_CONDITION.' + + 'CONDITIONAL_OPERATOR' ) | ( SIZEOF( QUERY ( ccf <* USEDIN( cfrwc, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + + 'CONDITIONAL_CONCEPT_FEATURE.CONDITION' ) | ( NOT ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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, + wr3: ( SIZEOF( QUERY ( cfo <* concept_feature_operator | ( ( cfo.name = 'not' ) AND ( SIZEOF( QUERY ( cfrwc <* USEDIN( cfo, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'CONCEPT_FEATURE_RELATIONSHIP_WITH_CONDITION.' - + 'CONDITIONAL_OPERATOR' ) | ( cfrwc.related_product_concept_feature :<>: cfrwc.relating_product_concept_feature ) ) ) + + 'CONDITIONAL_OPERATOR' ) | ( cfrwc.related_product_concept_feature :<>: cfrwc.relating_product_concept_feature ) ) ) > 0 ) ) ) ) = 0 ); END_RULE; @@ -21570,14 +22753,14 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; RULE restrict_configuration_design_for_class_breakdown_association FOR ( configuration_design ); WHERE - wr1: ( SIZEOF( QUERY ( cd <* configuration_design | ( ( cd.name = 'functionality' ) AND ( ( NOT ( + wr1: ( SIZEOF( QUERY ( cd <* configuration_design | ( ( cd.name = 'functionality' ) AND ( ( NOT ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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 ( + wr2: ( SIZEOF( QUERY ( cd <* configuration_design | ( ( cd.name = 'realization' ) AND ( ( NOT ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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 ( - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_CLASS' IN TYPEOF( cd.configuration.item_concept ) ) ) ) ) ) + wr3: ( SIZEOF( QUERY ( cd <* configuration_design | ( ( cd.name IN [ 'functionality', 'realization'] ) AND ( NOT ( + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_CLASS' IN TYPEOF( cd.configuration.item_concept ) ) ) ) ) ) = 0 ); END_RULE; @@ -21585,7 +22768,7 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; RULE restrict_configuration_design_for_design_constraint FOR ( configuration_design ); WHERE - wr1: ( SIZEOF( QUERY ( cd <* configuration_design | ( ( cd.name = 'design constraint usage' ) AND ( ( NOT ( + wr1: ( SIZEOF( QUERY ( cd <* configuration_design | ( ( cd.name = 'design constraint usage' ) AND ( ( NOT ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION' IN TYPEOF( cd.design ) ) ) OR ( cd.design\ product_definition.frame_of_reference.name <> 'design constraint definition' ) ) ) ) ) = 0 ); @@ -21594,9 +22777,9 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; 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 ( - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CLASS' IN TYPEOF( gr\group_relationship.related_group ) ) ) OR ( - NOT ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CLASS' IN TYPEOF( gr\group_relationship.relating_group ) ) ) ) ) ) ) + wr1: ( SIZEOF( QUERY ( gr <* group_relationship | ( ( gr\group_relationship.name = 'class hierarchy' ) AND ( ( NOT ( + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CLASS' IN TYPEOF( gr\group_relationship.related_group ) ) ) OR ( + NOT ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CLASS' IN TYPEOF( gr\group_relationship.relating_group ) ) ) ) ) ) ) = 0 ); END_RULE; @@ -21604,8 +22787,8 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; RULE restrict_group_relationship_for_specification_category FOR ( group_relationship ); WHERE - wr1: ( SIZEOF( QUERY ( gr <* group_relationship | ( ( gr.name = 'specification category hierarchy' ) AND ( ( NOT ( - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_CONCEPT_FEATURE_CATEGORY' IN TYPEOF( gr.related_group ) ) ) + wr1: ( SIZEOF( QUERY ( gr <* group_relationship | ( ( gr.name = 'specification category hierarchy' ) AND ( ( NOT ( + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_CONCEPT_FEATURE_CATEGORY' IN TYPEOF( gr.related_group ) ) ) OR ( NOT ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_CONCEPT_FEATURE_CATEGORY' IN TYPEOF( gr. relating_group ) ) ) ) ) ) ) = 0 ); @@ -21614,7 +22797,7 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; RULE restrict_language_assignment_per_attribute FOR ( attribute_language_assignment ); WHERE - wr1: ( SIZEOF( QUERY ( ala1 <* attribute_language_assignment | ( SIZEOF( QUERY ( it <* ala1.items | ( SIZEOF( + wr1: ( SIZEOF( QUERY ( ala1 <* attribute_language_assignment | ( SIZEOF( QUERY ( it <* ala1.items | ( SIZEOF( QUERY ( ala2 <* USEDIN( it, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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\ @@ -21625,35 +22808,35 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; RULE restrict_part_occurrence FOR ( product_definition ); LOCAL - part_occurrences : SET OF product_definition := QUERY ( pd <* product_definition | ( pd.frame_of_reference.name = + 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', + 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, + wr2: ( SIZEOF( QUERY ( pd <* part_occurrences | ( ( SIZEOF( QUERY ( pdr <* USEDIN( pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PRODUCT_DEFINITION_RELATIONSHIP.RELATED_PRODUCT_DEFINITION' ) - | ( pdr.name = 'definition usage' ) ) ) <> 1 ) AND ( SIZEOF( QUERY ( cd <* USEDIN( pd, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'CONFIGURATION_DESIGN.DESIGN' ) | ( ( cd.name = - 'occurrence usage definition' ) AND ( NOT ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + + | ( pdr.name = 'definition usage' ) ) ) <> 1 ) AND ( SIZEOF( QUERY ( cd <* USEDIN( pd, + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'CONFIGURATION_DESIGN.DESIGN' ) | ( ( cd.name = + 'occurrence usage definition' ) AND ( NOT ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PRODUCT_IDENTIFICATION' ) IN TYPEOF( cd.configuration ) ) ) ) ) ) <> 1 ) ) ) ) = 0 ); - wr3: ( SIZEOF( QUERY ( pd <* part_occurrences | ( ( SIZEOF( QUERY ( cd <* USEDIN( pd, + wr3: ( SIZEOF( QUERY ( pd <* part_occurrences | ( ( SIZEOF( QUERY ( cd <* USEDIN( pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PRODUCT_DEFINITION_RELATIONSHIP.RELATED_PRODUCT_DEFINITION' ) - | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PRODUCT_DEFINITION_USAGE' ) IN TYPEOF( cd ) ) ) ) = 0 ) - AND ( SIZEOF( USEDIN( pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + + | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PRODUCT_DEFINITION_USAGE' ) IN TYPEOF( cd ) ) ) ) = 0 ) + AND ( SIZEOF( USEDIN( pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PRODUCT_DEFINITION_OCCURRENCE_RELATIONSHIP.OCCURRENCE' ) ) = 0 ) ) ) ) = 0 ); - wr4: ( SIZEOF( QUERY ( pd <* part_occurrences | ( ( pd.name = 'selected instance' ) AND ( NOT + 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, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PROPERTY_DEFINITION.DEFINITION' ) | ( ( ppd.name = - 'occurrence quantity' ) AND ( SIZEOF( QUERY ( pdr <* USEDIN( ppd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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 | ( ( ( - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'MEASURE_REPRESENTATION_ITEM' ) IN TYPEOF( i ) ) AND ( i.name + wr5: ( SIZEOF( QUERY ( pd <* part_occurrences | ( ( pd.name = 'quantified instance' ) AND ( SIZEOF( QUERY ( ppd <* USEDIN( pd, + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PROPERTY_DEFINITION.DEFINITION' ) | ( ( ppd.name = + 'occurrence quantity' ) AND ( SIZEOF( QUERY ( pdr <* USEDIN( ppd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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 | ( ( ( + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PRODUCT_DEFINITION_OCCURRENCE_RELATIONSHIP.OCCURRENCE' ) | ( + wr6: ( SIZEOF( QUERY ( pd <* part_occurrences | ( ( pd.name = 'specified instance' ) AND ( SIZEOF( QUERY ( pdor <* USEDIN( pd, + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PRODUCT_DEFINITION_OCCURRENCE_RELATIONSHIP.OCCURRENCE' ) | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'SPECIFIED_HIGHER_USAGE_OCCURRENCE' ) IN TYPEOF( pdor. occurrence_usage ) ) ) ) = 0 ) ) ) ) = 0 ); @@ -21662,12 +22845,12 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; 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_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, + wr1: ( SIZEOF( QUERY ( pd <* part_occurrences | ( SIZEOF( QUERY ( prpc <* USEDIN( pd.formation.of_product, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_RELATED_PRODUCT_CATEGORY.PRODUCTS' ) | ( prpc.name IN [ 'part' , 'raw material', 'tool'] ) ) ) = 0 ) ) ) = 0 ); @@ -21676,9 +22859,9 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; 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' ) ) ) ) ) + 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; @@ -21688,9 +22871,9 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; 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, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PRODUCT_DEFINITION_CONTEXT_ASSOCIATION.DEFINITION' ) | ( ( - pdca.role.name = 'part definition type' ) AND ( pdca.frame_of_reference.name = 'collection definition' ) ) ) ) = 0 ) ) ) ) ) + frame_of_reference.name <> 'part occurrence' ) OR ( SIZEOF( QUERY ( pdca <* USEDIN( pdr.relating_product_definition, + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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; @@ -21709,7 +22892,7 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; 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', + related_product_definition.frame_of_reference.name IN [ 'alternative definition', 'functional definition', 'conceptual definition' ] ) ) ) ) ) ) = 0 ); END_RULE; @@ -21717,8 +22900,8 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; 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' ) + 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; @@ -21739,8 +22922,8 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; 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 ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + + wr1: ( ( SIZEOF( QUERY ( r <* treatment_results | ( SIZEOF( r.items ) > 2 ) ) ) = 0 ) AND ( SIZEOF( QUERY ( r <* + treatment_results | ( SIZEOF( QUERY ( i <* r.items | ( NOT ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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 ); @@ -21750,7 +22933,7 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; 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_usages : SET OF assembly_component_usage := QUERY ( acr <* assembly_component_usage | ( acr.name = 'selected instance usage' ) ); END_LOCAL; @@ -21767,8 +22950,8 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; 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, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PRODUCT_RELATED_PRODUCT_CATEGORY.PRODUCTS' ) | ( prpc.name = + wr1: ( SIZEOF( QUERY ( pd <* solution_definitions | ( SIZEOF( QUERY ( prpc <* USEDIN( pd.formation.of_product, + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PRODUCT_RELATED_PRODUCT_CATEGORY.PRODUCTS' ) | ( prpc.name = 'alternative solution' ) ) ) = 0 ) ) ) = 0 ); END_RULE; @@ -21776,8 +22959,8 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; RULE styled_curve FOR ( styled_item ); WHERE - wr1: ( SIZEOF( QUERY ( si <* styled_item | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CURVE' IN TYPEOF( si.item ) ) - AND ( SIZEOF( QUERY ( psa <* si.styles | ( SIZEOF( QUERY ( cs <* psa.styles | ( + wr1: ( SIZEOF( QUERY ( si <* styled_item | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CURVE' IN TYPEOF( si.item ) ) + AND ( SIZEOF( QUERY ( psa <* si.styles | ( SIZEOF( QUERY ( cs <* psa.styles | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CURVE_STYLE' IN TYPEOF( cs ) ) ) ) > 0 ) ) ) <> 1 ) ) ) ) = 0 ); END_RULE; @@ -21786,20 +22969,20 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; WHERE wr1: ( SIZEOF( QUERY ( gt <* geometric_tolerance | ( NOT type_check_function( gt, [ - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ANGULARITY_TOLERANCE' , - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CIRCULAR_RUNOUT_TOLERANCE' , - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COAXIALITY_TOLERANCE' , - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CONCENTRICITY_TOLERANCE' , - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CYLINDRICITY_TOLERANCE' , - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FLATNESS_TOLERANCE' , - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LINE_PROFILE_TOLERANCE' , - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PARALLELISM_TOLERANCE' , - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PERPENDICULARITY_TOLERANCE' , - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POSITION_TOLERANCE' , - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ROUNDNESS_TOLERANCE' , - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.STRAIGHTNESS_TOLERANCE' , - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SURFACE_PROFILE_TOLERANCE' , - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SYMMETRY_TOLERANCE' , + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ANGULARITY_TOLERANCE' , + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CIRCULAR_RUNOUT_TOLERANCE' , + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COAXIALITY_TOLERANCE' , + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CONCENTRICITY_TOLERANCE' , + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CYLINDRICITY_TOLERANCE' , + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FLATNESS_TOLERANCE' , + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LINE_PROFILE_TOLERANCE' , + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PARALLELISM_TOLERANCE' , + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PERPENDICULARITY_TOLERANCE' , + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POSITION_TOLERANCE' , + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ROUNDNESS_TOLERANCE' , + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.STRAIGHTNESS_TOLERANCE' , + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SURFACE_PROFILE_TOLERANCE' , + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SYMMETRY_TOLERANCE' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.TOTAL_RUNOUT_TOLERANCE' ], 2 ) ) ) ) = 0 ); END_RULE; @@ -21808,8 +22991,8 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; WHERE wr1: ( SIZEOF( QUERY ( cri <* representation_item | ( NOT type_check_function( cri, [ - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM' , - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.VALUE_REPRESENTATION_ITEM' , + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM' , + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.VALUE_REPRESENTATION_ITEM' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COMPOUND_REPRESENTATION_ITEM' ], 3 ) ) ) ) = 0 ); END_RULE; @@ -21826,31 +23009,31 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; + 'SHELL_BASED_WIREFRAME_SHAPE_REPRESENTATION' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'GEOMETRICALLY_BOUNDED_SURFACE_SHAPE_REPRESENTATION' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'GEOMETRICALLY_BOUNDED_WIREFRAME_SHAPE_REPRESENTATION' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'BEVELED_SHEET_REPRESENTATION' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COMPOSITE_SHEET_REPRESENTATION', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COMPOUND_SHAPE_REPRESENTATION' , - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CSG_2D_SHAPE_REPRESENTATION' , - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CSG_SHAPE_REPRESENTATION' , - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CURVE_SWEPT_SOLID_SHAPE_REPRESENTATION' , - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DIRECTION_SHAPE_REPRESENTATION' , - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ELEMENTARY_BREP_SHAPE_REPRESENTATION' , - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FACE_SHAPE_REPRESENTATION' , - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.GEOMETRICALLY_BOUNDED_2D_WIREFRAME_REPRESENTATION' , - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LOCATION_SHAPE_REPRESENTATION' , - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.NEUTRAL_SKETCH_REPRESENTATION' , - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.NON_MANIFOLD_SURFACE_SHAPE_REPRESENTATION' , - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PATH_SHAPE_REPRESENTATION' , - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANAR_SHAPE_REPRESENTATION' , - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROCEDURAL_SHAPE_REPRESENTATION' , - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.REPRESENTATIVE_SHAPE_REPRESENTATION' , - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DIMENSION_REPRESENTATION' , - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' , - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.TESSELLATED_SHAPE_REPRESENTATION' ] * TYPEOF( sr ) ) = 1 ) OR ( + + 'BEVELED_SHEET_REPRESENTATION' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COMPOSITE_SHEET_REPRESENTATION', + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COMPOUND_SHAPE_REPRESENTATION' , + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CSG_2D_SHAPE_REPRESENTATION' , + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CSG_SHAPE_REPRESENTATION' , + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CURVE_SWEPT_SOLID_SHAPE_REPRESENTATION' , + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DIRECTION_SHAPE_REPRESENTATION' , + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ELEMENTARY_BREP_SHAPE_REPRESENTATION' , + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FACE_SHAPE_REPRESENTATION' , + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.GEOMETRICALLY_BOUNDED_2D_WIREFRAME_REPRESENTATION' , + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LOCATION_SHAPE_REPRESENTATION' , + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.NEUTRAL_SKETCH_REPRESENTATION' , + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.NON_MANIFOLD_SURFACE_SHAPE_REPRESENTATION' , + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PATH_SHAPE_REPRESENTATION' , + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANAR_SHAPE_REPRESENTATION' , + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROCEDURAL_SHAPE_REPRESENTATION' , + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.REPRESENTATIVE_SHAPE_REPRESENTATION' , + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DIMENSION_REPRESENTATION' , + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' , + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.TESSELLATED_SHAPE_REPRESENTATION' ] * TYPEOF( sr ) ) = 1 ) OR ( SIZEOF( QUERY ( it <* sr\representation.items | ( NOT ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'AXIS2_PLACEMENT_3D' IN TYPEOF( it ) ) ) ) ) = 0 ) OR ( SIZEOF( QUERY ( sdr <* QUERY ( pdr <* USEDIN( sr, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.' + 'USED_REPRESENTATION' ) | - ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DEFINITION_REPRESENTATION' IN TYPEOF( pdr ) ) ) | ( NOT ( - SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT_RELATIONSHIP' ] * TYPEOF( sdr.definition ) ) = 1 ) ) ) ) + + 'AXIS2_PLACEMENT_3D' IN TYPEOF( it ) ) ) ) ) = 0 ) OR ( SIZEOF( QUERY ( sdr <* QUERY ( pdr <* USEDIN( sr, + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.' + 'USED_REPRESENTATION' ) | + ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DEFINITION_REPRESENTATION' IN TYPEOF( pdr ) ) ) | ( NOT ( + SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT', + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT_RELATIONSHIP' ] * TYPEOF( sdr.definition ) ) = 1 ) ) ) ) = 0 ) ) ) ) ) = 0 ); END_RULE; @@ -21858,9 +23041,9 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; 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, + wr1: ( SIZEOF( QUERY ( pdtf <* pre_defined_text_font | ( SIZEOF( USEDIN( pdtf, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.TEXT_LITERAL.FONT' ) ) = 0 ) ) ) = 0 ); - wr2: ( SIZEOF( QUERY ( edtf <* externally_defined_text_font | ( SIZEOF( USEDIN( edtf, + wr2: ( SIZEOF( QUERY ( edtf <* externally_defined_text_font | ( SIZEOF( USEDIN( edtf, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.TEXT_LITERAL.FONT' ) ) = 0 ) ) ) = 0 ); END_RULE; @@ -21868,8 +23051,8 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; RULE tolerance_zone_form_name_constraint FOR ( tolerance_zone_form ); LOCAL - names : SET OF STRING := [ 'within a circle', 'between two concentric circles', 'between two equidistant curves', - 'within a cylinder' , 'between two coaxial cylinders', 'between two equidistant surfaces', 'non uniform', + names : SET OF STRING := [ 'within a circle', 'between two concentric circles', 'between two equidistant curves', + 'within a cylinder' , 'between two coaxial cylinders', 'between two equidistant surfaces', 'non uniform', 'cylindrical or circular' , 'spherical', 'unknown']; pass : BOOLEAN := TRUE; END_LOCAL; @@ -21885,7 +23068,7 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; RULE transition_feature_life_cycle FOR ( transition_feature ); WHERE - wr1: ( SIZEOF( QUERY ( tf <* transition_feature | ( NOT ( tf.of_shape.definition.frame_of_reference.life_cycle_stage = + wr1: ( SIZEOF( QUERY ( tf <* transition_feature | ( NOT ( tf.of_shape.definition.frame_of_reference.life_cycle_stage = 'manufacturing planning' ) ) ) ) = 0 ); END_RULE; @@ -21917,21 +23100,21 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; END_RULE; - RULE unique_gdt_element_id_constraint FOR ( product_definition_shape, dimensional_location, dimensional_size, shape_aspect, + RULE unique_gdt_element_id_constraint FOR ( product_definition_shape, dimensional_location, dimensional_size, shape_aspect, shape_aspect_relationship ); LOCAL bss : BAG OF STRING := []; + ds : SET OF dimensional_size := QUERY ( ds <* dimensional_size | EXISTS( ds\dimensional_size.id ) ); + sa : SET OF shape_aspect := QUERY ( sa <* shape_aspect | EXISTS( sa\shape_aspect.id ) ); sar : SET OF shape_aspect_relationship := QUERY ( sar <* shape_aspect_relationship | EXISTS( sar\shape_aspect_relationship .id ) ); - ds : SET OF dimensional_size := QUERY ( ds <* dimensional_size | EXISTS( ds\dimensional_size.id ) ); ssa : SET OF shape_aspect := []; - sa : SET OF shape_aspect := QUERY ( sa <* shape_aspect | EXISTS( sa\shape_aspect.id ) ); pass : BOOLEAN := TRUE; END_LOCAL; REPEAT ii := 1 TO SIZEOF( product_definition_shape ) BY 1 WHILE pass; bss := []; - ssa := bag_to_set( USEDIN( product_definition_shape[ii], 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'SHAPE_ASPECT.' + ssa := bag_to_set( USEDIN( product_definition_shape[ii], 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'SHAPE_ASPECT.' + 'OF_SHAPE' ) ); REPEAT i := 1 TO SIZEOF( ds ) BY 1; IF ds[i]\dimensional_size.applies_to IN ssa THEN @@ -21961,90 +23144,90 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; RULE valid_product_and_manufacturing_information_view_contexts FOR ( product_definition_context ); LOCAL - material_specification_view_contexts : SET OF product_definition_context := QUERY ( pdc <* - product_definition_context | ( pdc.frame_of_reference.application = - 'material specification' ) ); - need_initial_model_based_view_contexts : SET OF product_definition_context := - gdt_representation_view_contexts + - model_based_3d_annotation_presentation_view_contexts; - additional_view_contexts : SET OF product_definition_context := - gdt_representation_view_contexts + machining_feature_view_contexts + - material_specification_view_contexts + - model_based_3d_annotation_presentation_view_contexts + - process_state_view_contexts + surface_finish_view_contexts; - process_state_view_contexts : SET OF product_definition_context := QUERY ( pdc <* - product_definition_context | ( pdc.frame_of_reference.application = - 'process state' ) ); - model_based_view_contexts : SET OF product_definition_context := QUERY ( pdc <* - product_definition_context | ( pdc.frame_of_reference.application = - 'model based product geometry' ) ); - design_view_contexts : SET OF product_definition_context := QUERY ( pdc <* + design_view_contexts : SET OF product_definition_context := QUERY ( pdc <* product_definition_context | ( pdc.life_cycle_stage = 'design' ) ); - model_based_3d_annotation_presentation_view_contexts : SET OF product_definition_context := QUERY ( pdc <* - product_definition_context | ( pdc.frame_of_reference.application = - 'model based 3D annotation presentation' ) ); - surface_finish_view_contexts : SET OF product_definition_context := QUERY ( pdc <* - product_definition_context | ( pdc.frame_of_reference.application = - 'surface finish' ) ); - gdt_representation_view_contexts : SET OF product_definition_context := QUERY ( pdc <* - product_definition_context | ( pdc.frame_of_reference.application = + gdt_representation_view_contexts : SET OF product_definition_context := QUERY ( pdc <* + product_definition_context | ( pdc.frame_of_reference.application = 'geometrical dimensioning and tolerancing representation' ) ); - machining_feature_view_contexts : SET OF product_definition_context := QUERY ( pdc <* - product_definition_context | ( pdc.frame_of_reference.application = + machining_feature_view_contexts : SET OF product_definition_context := QUERY ( pdc <* + product_definition_context | ( pdc.frame_of_reference.application = 'machining feature' ) ); + material_specification_view_contexts : SET OF product_definition_context := QUERY ( pdc <* + product_definition_context | ( pdc.frame_of_reference.application = + 'material specification' ) ); + model_based_3d_annotation_presentation_view_contexts : SET OF product_definition_context := QUERY ( pdc <* + product_definition_context | ( pdc.frame_of_reference.application = + 'model based 3D annotation presentation' ) ); + model_based_view_contexts : SET OF product_definition_context := QUERY ( pdc <* + product_definition_context | ( pdc.frame_of_reference.application = + 'model based product geometry' ) ); + process_state_view_contexts : SET OF product_definition_context := QUERY ( pdc <* + product_definition_context | ( pdc.frame_of_reference.application = + 'process state' ) ); + surface_finish_view_contexts : SET OF product_definition_context := QUERY ( pdc <* + product_definition_context | ( pdc.frame_of_reference.application = + 'surface finish' ) ); + additional_view_contexts : SET OF product_definition_context := + gdt_representation_view_contexts + machining_feature_view_contexts + + material_specification_view_contexts + + model_based_3d_annotation_presentation_view_contexts + + process_state_view_contexts + surface_finish_view_contexts; + need_initial_model_based_view_contexts : SET OF product_definition_context := + gdt_representation_view_contexts + + model_based_3d_annotation_presentation_view_contexts; END_LOCAL; WHERE wr1 : ( SIZEOF( gdt_representation_view_contexts * design_view_contexts ) = SIZEOF( gdt_representation_view_contexts ) ); wr2 : ( SIZEOF( machining_feature_view_contexts * design_view_contexts ) = SIZEOF( machining_feature_view_contexts ) ); wr3 : ( SIZEOF( material_specification_view_contexts * design_view_contexts ) = SIZEOF( material_specification_view_contexts ) ); - wr4 : ( SIZEOF( model_based_3d_annotation_presentation_view_contexts * design_view_contexts ) = SIZEOF( + wr4 : ( SIZEOF( model_based_3d_annotation_presentation_view_contexts * design_view_contexts ) = SIZEOF( model_based_3d_annotation_presentation_view_contexts ) ); wr5 : ( SIZEOF( model_based_view_contexts * design_view_contexts ) = SIZEOF( model_based_view_contexts ) ); wr6 : ( SIZEOF( process_state_view_contexts * design_view_contexts ) = SIZEOF( process_state_view_contexts ) ); wr7 : ( SIZEOF( surface_finish_view_contexts * design_view_contexts ) = SIZEOF( surface_finish_view_contexts ) ); - wr8 : ( SIZEOF( QUERY ( mbvc <* model_based_view_contexts | ( SIZEOF( USEDIN( mbvc, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_CONTEXT_ASSOCIATION.FRAME_OF_REFERENCE' ) ) = + wr8 : ( SIZEOF( QUERY ( mbvc <* model_based_view_contexts | ( SIZEOF( USEDIN( mbvc, + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_CONTEXT_ASSOCIATION.FRAME_OF_REFERENCE' ) ) = 0 ) ) ) = SIZEOF( model_based_view_contexts ) ); - wr9 : ( SIZEOF( QUERY ( avc <* additional_view_contexts | ( SIZEOF( USEDIN( avc, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION.FRAME_OF_REFERENCE' ) ) = 0 ) ) ) = SIZEOF( + wr9 : ( SIZEOF( QUERY ( avc <* additional_view_contexts | ( SIZEOF( USEDIN( avc, + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION.FRAME_OF_REFERENCE' ) ) = 0 ) ) ) = SIZEOF( additional_view_contexts ) ); - wr10: ( SIZEOF( QUERY ( nimbvc <* need_initial_model_based_view_contexts | ( NOT ( SIZEOF( QUERY ( pdca <* USEDIN( nimbvc, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_CONTEXT_ASSOCIATION.FRAME_OF_REFERENCE' ) | ( - pdca\product_definition_context_association.definition\product_definition.frame_of_reference IN + wr10: ( SIZEOF( QUERY ( nimbvc <* need_initial_model_based_view_contexts | ( NOT ( SIZEOF( QUERY ( pdca <* USEDIN( nimbvc, + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_CONTEXT_ASSOCIATION.FRAME_OF_REFERENCE' ) | ( + pdca\product_definition_context_association.definition\product_definition.frame_of_reference IN model_based_view_contexts ) ) ) = SIZEOF( need_initial_model_based_view_contexts ) ) ) ) ) = 0 ); - wr11: ( SIZEOF( QUERY ( gdt_pdc <* gdt_representation_view_contexts | ( SIZEOF( [ 'ISO 1101', 'ASME Y14.5'] * + wr11: ( SIZEOF( QUERY ( gdt_pdc <* gdt_representation_view_contexts | ( SIZEOF( [ 'ISO 1101', 'ASME Y14.5'] * get_associated_mandatory_document_ids( gdt_pdc ) ) = 0 ) ) ) = 0 ); - wr12: ( SIZEOF( QUERY ( mb3d_pdc <* model_based_3d_annotation_presentation_view_contexts | ( SIZEOF( [ 'ISO 1101', 'ISO 16792', + wr12: ( SIZEOF( QUERY ( mb3d_pdc <* model_based_3d_annotation_presentation_view_contexts | ( SIZEOF( [ 'ISO 1101', 'ISO 16792', 'ASME Y14.41' , 'ASME Y14.5'] * get_associated_mandatory_document_ids( mb3d_pdc ) ) = 0 ) ) ) = 0 ); END_RULE; - RULE validate_dependently_instantiable_entity_data_types FOR ( abstracted_expression_function, action_method_role, - action_resource_type, application_defined_function, atom_based_literal, attribute_value_role, b_spline_basis, - b_spline_function, basic_sparse_matrix, binary_literal, camera_model_d2, cartesian_complex_number_region, - cartesian_transformation_operator, complex_number_literal, concept_feature_relationship, - concept_feature_relationship_with_condition, constant_function, definite_integral_expression, - definite_integral_function, document_usage_constraint, edge_blended_solid, effectivity_context_role, - elementary_function, event_occurrence_role, explicit_procedural_representation_item_relationship, - explicit_table_function, expression_denoted_function, extended_tuple_space, externally_listed_data, finite_function, - founded_item, function_application, function_space, general_linear_function, homogeneous_linear_function, - imported_curve_function, imported_point_function, imported_surface_function, imported_volume_function, - indirectly_selected_elements, integer_tuple_literal, linearized_table_function, listed_data, maths_enum_literal, - maths_function, maths_tuple_literal, modified_solid_with_placed_configuration, one_direction_repeat_factor, - oriented_open_shell, oriented_path, parallel_composed_function, partial_derivative_expression, - partial_derivative_function, polar_complex_number_region, procedural_representation, - procedural_representation_sequence, product_definition_effectivity, quantifier_expression, rationalize_function, - real_tuple_literal, reindexed_array_function, repackaging_function, restriction_function, runout_zone_orientation, - selector_function, series_composed_function, 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, + RULE validate_dependently_instantiable_entity_data_types FOR ( abstracted_expression_function, action_method_role, + action_resource_type, application_defined_function, atom_based_literal, attribute_value_role, b_spline_basis, + b_spline_function, basic_sparse_matrix, binary_literal, camera_model_d2, cartesian_complex_number_region, + cartesian_transformation_operator, complex_number_literal, concept_feature_relationship, + concept_feature_relationship_with_condition, constant_function, definite_integral_expression, + definite_integral_function, document_usage_constraint, edge_blended_solid, effectivity_context_role, + elementary_function, event_occurrence_role, explicit_procedural_representation_item_relationship, + explicit_table_function, expression_denoted_function, extended_tuple_space, externally_listed_data, finite_function, + founded_item, function_application, function_space, general_linear_function, homogeneous_linear_function, + imported_curve_function, imported_point_function, imported_surface_function, imported_volume_function, + indirectly_selected_elements, integer_tuple_literal, linearized_table_function, listed_data, maths_enum_literal, + maths_function, maths_tuple_literal, modified_solid_with_placed_configuration, one_direction_repeat_factor, + oriented_open_shell, oriented_path, parallel_composed_function, partial_derivative_expression, + partial_derivative_function, polar_complex_number_region, procedural_representation, + procedural_representation_sequence, product_definition_effectivity, quantifier_expression, rationalize_function, + real_tuple_literal, reindexed_array_function, repackaging_function, restriction_function, runout_zone_orientation, + selector_function, series_composed_function, 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, two_direction_repeat_factor, user_selected_elements, volume ); LOCAL - set_of_input_types : SET OF STRING := []; number_of_input_instances : INTEGER; - all_instances : SET OF GENERIC := []; previous_in_chain : LIST OF GENERIC := []; + set_of_input_types : SET OF STRING := []; + all_instances : SET OF GENERIC := []; END_LOCAL; all_instances := all_instances + abstracted_expression_function; all_instances := all_instances + action_method_role; @@ -22132,6 +23315,58 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; wr1: dependently_instantiated( all_instances, set_of_input_types, previous_in_chain ); END_RULE; + +(* + The following two FUNCTIONs have been added to address Bug 5057 for the + initial ed2 version until they can properly be added to the constituent modules. +*) + + FUNCTION above_plane + (p1 : cartesian_point; p2 : cartesian_point; p3 : cartesian_point; p4 : cartesian_point) : REAL; + LOCAL + dir2, dir3, dir4 : direction := + dummy_gri || direction([1.0, 0.0, 0.0]); + val, mag : REAL; + END_LOCAL; + + IF (p1.dim <> 3) THEN + RETURN(?); + END_IF; + REPEAT i := 1 TO 3; + dir2.direction_ratios[i] := p2.coordinates[i] - p1.coordinates[i]; + dir3.direction_ratios[i] := p3.coordinates[i] - p1.coordinates[i]; + dir4.direction_ratios[i] := p4.coordinates[i] - p1.coordinates[i]; + mag := dir4.direction_ratios[i]*dir4.direction_ratios[i]; + END_REPEAT; + mag := sqrt(mag); + val := mag*dot_product(dir4, cross_product(dir2, dir3).orientation); + RETURN(val); + END_FUNCTION; + + FUNCTION same_side + (plane_pts : LIST[3:3] OF cartesian_point; test_points : LIST[2:?] OF cartesian_point) : BOOLEAN; + LOCAL + val1, val2 : REAL; + n : INTEGER; + END_LOCAL; + + IF (plane_pts[1].dim = 2) OR (test_points[1].dim = 2) THEN + RETURN(?); + END_IF; + n := SIZEOF(test_points); + val1 := above_plane(plane_pts[1], plane_pts[2], plane_pts[3], + test_points[1] ); + REPEAT i := 2 TO n; + val2 := above_plane(plane_pts[1], plane_pts[2], plane_pts[3], + test_points[i] ); + IF (val1*val2 <= 0.0) THEN + RETURN(FALSE); + END_IF; + END_REPEAT; + RETURN(TRUE); + END_FUNCTION; + +(* End of added FUNCTIONs. JH 2014-05-22 *) FUNCTION acyclic( arg1 : generic_expression; @@ -22172,11 +23407,11 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; LOCAL i : INTEGER; - local_children : SET [0 : ?] OF text_or_character; - local_annotation_text : SET [0 : ?] OF annotation_text; 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 | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COMPOSITE_TEXT' IN + local_composite_text := QUERY ( child <* child_text | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COMPOSITE_TEXT' IN TYPEOF( child ) ) ); IF SIZEOF( local_composite_text ) > 0 THEN REPEAT i := 1 TO HIINDEX( local_composite_text ) BY 1; @@ -22196,7 +23431,7 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; IF SIZEOF( local_annotation_text ) > 0 THEN REPEAT i := 1 TO HIINDEX( local_annotation_text ) BY 1; local_children := local_children + QUERY ( item <* local_annotation_text[i]\mapped_item.mapping_source. - mapped_representation.items | ( SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ANNOTATION_TEXT', + mapped_representation.items | ( SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ANNOTATION_TEXT', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COMPOSITE_TEXT' ] * TYPEOF( item ) ) > 0 ) ); END_REPEAT; END_IF; @@ -22228,8 +23463,8 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; ) : BOOLEAN; LOCAL - mis : SET OF mapped_item; rms : SET OF representation_map; + mis : SET OF mapped_item; rs1 : SET OF representation; rs2 : SET OF representation; END_LOCAL; @@ -22289,7 +23524,7 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; RETURN( FALSE ); END_IF; END_REPEAT; - x := bag_to_set( USEDIN( relation.category, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + + x := bag_to_set( USEDIN( relation.category, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PRODUCT_CATEGORY_RELATIONSHIP.SUB_CATEGORY' ) ); local_children := children + relation.category; IF SIZEOF( x ) > 0 THEN @@ -22315,7 +23550,7 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; IF relation.relating_product_definition IN relatives THEN RETURN( FALSE ); END_IF; - x := QUERY ( pd <* bag_to_set( USEDIN( relation.relating_product_definition, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + x := QUERY ( pd <* bag_to_set( USEDIN( relation.relating_product_definition, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PRODUCT_DEFINITION_RELATIONSHIP.' + 'RELATED_PRODUCT_DEFINITION' ) ) | ( specific_relation IN TYPEOF( pd ) ) ); REPEAT i := 1 TO HIINDEX( x ) BY 1; IF NOT acyclic_product_definition_relationship( x[i], relatives + relation.relating_product_definition, specific_relation ) @@ -22339,7 +23574,7 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; IF relation.rep_1 IN relatives THEN RETURN( FALSE ); END_IF; - x := QUERY ( r <* bag_to_set( USEDIN( relation.rep_1, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + + x := QUERY ( r <* bag_to_set( USEDIN( relation.rep_1, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'REPRESENTATION_RELATIONSHIP.' + 'REP_2' ) ) | ( specific_relation IN TYPEOF( r ) ) ); REPEAT i := 1 TO HIINDEX( x ) BY 1; IF NOT acyclic_representation_relationship( x[i], relatives + relation.rep_1, specific_relation ) THEN @@ -22362,7 +23597,7 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; IF relation.relating_shape_aspect IN relatives THEN RETURN( FALSE ); END_IF; - x := QUERY ( sa <* bag_to_set( USEDIN( relation.relating_shape_aspect, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + + x := QUERY ( sa <* bag_to_set( USEDIN( relation.relating_shape_aspect, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'SHAPE_ASPECT_RELATIONSHIP.' + 'RELATED_SHAPE_ASPECT' ) ) | ( specific_relation IN TYPEOF( sa ) ) ); REPEAT i := 1 TO HIINDEX( x ) BY 1; IF NOT acyclic_shape_aspect_relationship( x[i], relatives + relation.relating_shape_aspect, specific_relation ) THEN @@ -22424,18 +23659,34 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; CONSTANT base_types : SET OF STRING := - [ 'NUMBER', 'COMPLEX_NUMBER_LITERAL', 'REAL', 'INTEGER', 'LOGICAL', 'BOOLEAN', 'STRING', 'BINARY', - 'MATHS_SPACE' , 'MATHS_FUNCTION', 'LIST', 'ELEMENTARY_SPACE_ENUMERATORS', 'ORDERING_TYPE', 'LOWER_UPPER', - 'SYMMETRY_TYPE' , 'ELEMENTARY_FUNCTION_ENUMERATORS', 'OPEN_CLOSED', 'SPACE_CONSTRAINT_TYPE', - 'REPACKAGE_OPTIONS' , 'EXTENSION_OPTIONS']; + [ 'NUMBER' , + 'COMPLEX_NUMBER_LITERAL' , + 'REAL' , + 'INTEGER' , + 'LOGICAL' , + 'BOOLEAN' , + 'STRING' , + 'BINARY' , + 'MATHS_SPACE' , + 'MATHS_FUNCTION' , + 'LIST' , + 'ELEMENTARY_SPACE_ENUMERATORS' , + 'ORDERING_TYPE' , + 'LOWER_UPPER' , + 'SYMMETRY_TYPE' , + 'ELEMENTARY_FUNCTION_ENUMERATORS' , + 'OPEN_CLOSED' , + 'SPACE_CONSTRAINT_TYPE' , + 'REPACKAGE_OPTIONS' , + 'EXTENSION_OPTIONS' ]; END_CONSTANT; LOCAL - ge : generic_expression; v : maths_value; - cum : LOGICAL := TRUE; key_type : STRING := ''; types : SET OF STRING; + ge : generic_expression; + cum : LOGICAL := TRUE; vspc : maths_space; END_LOCAL; IF ( NOT EXISTS( sv ) ) OR ( NOT EXISTS( es ) ) THEN @@ -22515,7 +23766,7 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; p : planar_box ) : positive_ratio_measure; IF ( p.size_in_x > 0 ) AND ( p.size_in_y > 0 ) THEN - RETURN( p.size_in_x DIV p.size_in_y ); + RETURN( p.size_in_x / p.size_in_y ); ELSE RETURN( ? ); END_IF; @@ -22545,8 +23796,8 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; FUNCTION assembly_root( item : product_definition ) : BOOLEAN; - IF SIZEOF( QUERY ( pdr <* USEDIN( item, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_RELATIONSHIP.' + - 'RELATED_PRODUCT_DEFINITION' ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ASSEMBLY_COMPONENT_USAGE' IN + IF SIZEOF( QUERY ( pdr <* USEDIN( item, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_RELATIONSHIP.' + + 'RELATED_PRODUCT_DEFINITION' ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ASSEMBLY_COMPONENT_USAGE' IN TYPEOF( pdr ) ) ) ) = 0 THEN RETURN( TRUE ); ELSE @@ -22560,22 +23811,22 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; ) : tuple_space; LOCAL + types1 : SET OF STRING := stripped_typeof( ts1 ); + types2 : SET OF STRING := stripped_typeof( ts2 ); + up1 : uniform_product_space := make_uniform_product_space( the_reals, 1 ); + up2 : uniform_product_space := make_uniform_product_space( the_reals, 1 ); + lp1 : listed_product_space := the_zero_tuple_space; + lp2 : listed_product_space := the_zero_tuple_space; + lps : listed_product_space := the_zero_tuple_space; et1 : extended_tuple_space := the_tuples; et2 : extended_tuple_space := the_tuples; - factors : LIST OF maths_space := []; - use_lp1 : BOOLEAN; - use_lp2 : BOOLEAN; ets : extended_tuple_space := the_tuples; use_up1 : BOOLEAN; use_up2 : BOOLEAN; - up1 : uniform_product_space := make_uniform_product_space( the_reals, 1 ); - up2 : uniform_product_space := make_uniform_product_space( the_reals, 1 ); - lps : listed_product_space := the_zero_tuple_space; + use_lp1 : BOOLEAN; + use_lp2 : BOOLEAN; + factors : LIST OF maths_space := []; tspace : tuple_space; - types2 : SET OF STRING := stripped_typeof( ts2 ); - types1 : SET OF STRING := stripped_typeof( ts1 ); - lp1 : listed_product_space := the_zero_tuple_space; - lp2 : listed_product_space := the_zero_tuple_space; END_LOCAL; IF 'UNIFORM_PRODUCT_SPACE' IN types1 THEN up1 := ts1; @@ -22738,9 +23989,9 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; LOCAL u : LIST [2 : 3] OF direction; + factor : REAL; d1 : direction; d2 : direction; - factor : REAL; END_LOCAL; IF dim = 3 THEN d1 := NVL( normalise( axis3 ), dummy_gri || direction( [0, 0, 1] ) ); @@ -22827,8 +24078,8 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; ) : SET OF STRING; LOCAL - categories : SET OF STRING := []; category_assignments : BAG OF product_category; + categories : SET OF STRING := []; END_LOCAL; category_assignments := USEDIN( obj, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PRODUCT_RELATED_PRODUCT_CATEGORY.' + 'PRODUCTS' ); @@ -22849,43 +24100,43 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; 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( [ - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'CHANGE_REQUEST', + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'CHANGE_REQUEST', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'START_REQUEST'] * TYPEOF( x ) ) = 1 ) ) ) THEN RETURN( FALSE ); END_IF; 'initiator' : IF SIZEOF( e.items ) <> SIZEOF( QUERY ( x <* e.items | ( SIZEOF( [ - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'CHANGE_REQUEST', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'START_REQUEST', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'START_WORK', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'CHANGE_REQUEST', + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'START_REQUEST', + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'START_WORK', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'CHANGE'] * TYPEOF( x ) ) = 1 ) ) ) THEN RETURN( FALSE ); END_IF; 'creator' : IF SIZEOF( e.items ) <> SIZEOF( QUERY ( x <* e.items | ( SIZEOF( [ - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PRODUCT_DEFINITION_FORMATION', + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PRODUCT_DEFINITION_FORMATION', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PRODUCT_DEFINITION'] * TYPEOF( x ) ) = 1 ) ) ) THEN RETURN( FALSE ); END_IF; - 'part_supplier' : IF SIZEOF( e.items ) <> SIZEOF( QUERY ( x <* e.items | ( ( + 'part_supplier' : IF SIZEOF( e.items ) <> SIZEOF( QUERY ( x <* e.items | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PRODUCT_DEFINITION_FORMATION' ) IN TYPEOF( x ) ) ) ) THEN RETURN( FALSE ); END_IF; - 'design_supplier' : IF SIZEOF( e.items ) <> SIZEOF( QUERY ( x <* e.items | ( ( + 'design_supplier' : IF SIZEOF( e.items ) <> SIZEOF( QUERY ( x <* e.items | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PRODUCT_DEFINITION_FORMATION' ) IN TYPEOF( x ) ) ) ) THEN RETURN( FALSE ); END_IF; - 'design_owner' : IF SIZEOF( e.items ) <> SIZEOF( QUERY ( x <* e.items | ( + 'design_owner' : IF SIZEOF( e.items ) <> SIZEOF( QUERY ( x <* e.items | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT' IN TYPEOF( x ) ) ) ) THEN RETURN( FALSE ); END_IF; - 'configuration_manager' : IF SIZEOF( e.items ) <> SIZEOF( QUERY ( x <* e.items | ( ( + 'configuration_manager' : IF SIZEOF( e.items ) <> SIZEOF( QUERY ( x <* e.items | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'CONFIGURATION_ITEM' ) IN TYPEOF( x ) ) ) ) THEN RETURN( FALSE ); END_IF; - 'contractor' : IF SIZEOF( e.items ) <> SIZEOF( QUERY ( x <* e.items | ( + 'contractor' : IF SIZEOF( e.items ) <> SIZEOF( QUERY ( x <* e.items | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CONTRACT' IN TYPEOF( x ) ) ) ) THEN RETURN( FALSE ); END_IF; - 'classification_officer' : IF SIZEOF( e.items ) <> SIZEOF( QUERY ( x <* e.items | ( ( + 'classification_officer' : IF SIZEOF( e.items ) <> SIZEOF( QUERY ( x <* e.items | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'SECURITY_CLASSIFICATION' ) IN TYPEOF( x ) ) ) ) THEN RETURN( FALSE ); END_IF; @@ -22938,12 +24189,12 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; ) : BOOLEAN; LOCAL + crv : curve := checked_curve; i : INTEGER; j : INTEGER; - crv : curve := checked_curve; result : BOOLEAN := FALSE; END_LOCAL; - IF SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CONIC', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LINE'] + IF SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CONIC', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LINE'] * TYPEOF( crv ) ) > 0 THEN result := TRUE; ELSE @@ -22951,7 +24202,7 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; trimmed_curve.basis_curve ) THEN result := TRUE; ELSE - IF ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PCURVE' IN TYPEOF( crv ) ) AND ( + IF ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PCURVE' IN TYPEOF( crv ) ) AND ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANE' IN TYPEOF( crv\pcurve.basis_surface ) ) THEN result := TRUE; ELSE @@ -22981,8 +24232,8 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; LOCAL mthspc : maths_space; - i : INTEGER; interval : finite_integer_interval; + i : INTEGER; END_LOCAL; mthspc := factor1( idxdom ); interval := mthspc; @@ -23033,8 +24284,8 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; LOCAL mthspc : maths_space; - i : INTEGER; interval : finite_integer_interval; + i : INTEGER; END_LOCAL; IF space_dimension( locrng ) <> 1 THEN RETURN( FALSE ); @@ -23119,7 +24370,7 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; IF role\classification_role.name = 'definitional' THEN IF NOT ( SIZEOF( QUERY ( it <* aia\applied_classification_assignment.items | ( NOT ( SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'PRODUCT_DEFINITION_FORMATION' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION'] * TYPEOF( it ) ) + + 'PRODUCT_DEFINITION_FORMATION' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION'] * TYPEOF( it ) ) = 1 ) ) ) ) = 0 ) THEN RETURN( FALSE ); END_IF; @@ -23136,10 +24387,10 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; the_reverse : oriented_closed_shell; END_LOCAL; IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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( ) || + 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( ) || + 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 ); @@ -23192,15 +24443,15 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; ) : BOOLEAN; LOCAL - prgn2 : polar_complex_number_region; - prgn1 : polar_complex_number_region; typenames : SET OF STRING := stripped_typeof( sp1 ); - prgn1c2 : polar_complex_number_region; - sp2_is_crgn : BOOLEAN; - sp1_is_crgn : BOOLEAN; - prgn2c1 : polar_complex_number_region; crgn1 : cartesian_complex_number_region; crgn2 : cartesian_complex_number_region; + prgn1 : polar_complex_number_region; + prgn2 : polar_complex_number_region; + prgn1c2 : polar_complex_number_region; + prgn2c1 : polar_complex_number_region; + sp1_is_crgn : BOOLEAN; + sp2_is_crgn : BOOLEAN; END_LOCAL; IF 'CARTESIAN_COMPLEX_NUMBER_REGION' IN typenames THEN sp1_is_crgn := TRUE; @@ -23295,8 +24546,8 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; ) : BOOLEAN; LOCAL - amax : REAL; amin : REAL; + amax : REAL; END_LOCAL; IF min_exists( sp1 ) AND max_exists( sp2 ) THEN amin := real_min( sp1 ); @@ -23327,13 +24578,13 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; ) : BOOLEAN; LOCAL + types1 : SET OF STRING := stripped_typeof( sp1 ); + types2 : SET OF STRING := stripped_typeof( sp2 ); + lgcl : LOGICAL := UNKNOWN; m : INTEGER; n : INTEGER; - lgcl : LOGICAL := UNKNOWN; - types2 : SET OF STRING := stripped_typeof( sp2 ); - types1 : SET OF STRING := stripped_typeof( sp1 ); - s2 : maths_space; s1 : maths_space; + s2 : maths_space; END_LOCAL; IF 'FINITE_SPACE' IN types1 THEN REPEAT i := 1 TO SIZEOF( sp1\finite_space.members ) BY 1; @@ -23360,7 +24611,7 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; IF 'ELEMENTARY_SPACE' IN types2 THEN RETURN( compatible_es_values( sp1\elementary_space.space_id, sp2\elementary_space.space_id ) ); END_IF; - IF ( 'FINITE_INTEGER_INTERVAL' IN types2 ) OR ( 'INTEGER_INTERVAL_FROM_MIN' IN types2 ) OR ( 'INTEGER_INTERVAL_TO_MAX' IN + IF ( 'FINITE_INTEGER_INTERVAL' IN types2 ) OR ( 'INTEGER_INTERVAL_FROM_MIN' IN types2 ) OR ( 'INTEGER_INTERVAL_TO_MAX' IN types2 ) THEN RETURN( compatible_es_values( sp1\elementary_space.space_id, es_integers ) ); END_IF; @@ -23383,7 +24634,7 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; IF sp2\elementary_space.space_id = es_generics THEN RETURN( TRUE ); END_IF; - IF ( 'FINITE_INTEGER_INTERVAL' IN types1 ) OR ( 'INTEGER_INTERVAL_FROM_MIN' IN types1 ) OR ( 'INTEGER_INTERVAL_TO_MAX' IN + IF ( 'FINITE_INTEGER_INTERVAL' IN types1 ) OR ( 'INTEGER_INTERVAL_FROM_MIN' IN types1 ) OR ( 'INTEGER_INTERVAL_TO_MAX' IN types1 ) THEN RETURN( compatible_es_values( sp2\elementary_space.space_id, es_integers ) ); END_IF; @@ -23523,7 +24774,7 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; RETURN( compatible_spaces( sp1\extended_tuple_space.base, sp2\extended_tuple_space.base ) ); END_IF; IF n > m THEN - RETURN( compatible_spaces( sp1\extended_tuple_space.base, assoc_product_space( sp2\extended_tuple_space.base, + RETURN( compatible_spaces( sp1\extended_tuple_space.base, assoc_product_space( sp2\extended_tuple_space.base, make_uniform_product_space( sp2\extended_tuple_space.extender, n - m ) ) ) ); END_IF; END_IF; @@ -23537,7 +24788,7 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; s1 := sp1\function_space.domain_argument; s2 := sp2\function_space.domain_argument; CASE sp1\function_space.domain_constraint OF - sc_equal : + sc_equal : BEGIN CASE sp2\function_space.domain_constraint OF sc_equal : lgcl := subspace_of( s1, s2 ) AND subspace_of( s2, s1 ); @@ -23545,7 +24796,7 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; sc_member : lgcl := member_of( s1, s2 ); END_CASE; END; - sc_subspace : + sc_subspace : BEGIN CASE sp2\function_space.domain_constraint OF sc_equal : lgcl := subspace_of( s2, s1 ); @@ -23553,7 +24804,7 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; sc_member : lgcl := UNKNOWN; END_CASE; END; - sc_member : + sc_member : BEGIN CASE sp2\function_space.domain_constraint OF sc_equal : lgcl := member_of( s2, s1 ); @@ -23568,7 +24819,7 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; s1 := sp1\function_space.range_argument; s2 := sp2\function_space.range_argument; CASE sp1\function_space.range_constraint OF - sc_equal : + sc_equal : BEGIN CASE sp2\function_space.range_constraint OF sc_equal : lgcl := subspace_of( s1, s2 ) AND subspace_of( s2, s1 ); @@ -23576,7 +24827,7 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; sc_member : lgcl := member_of( s1, s2 ); END_CASE; END; - sc_subspace : + sc_subspace : BEGIN CASE sp2\function_space.range_constraint OF sc_equal : lgcl := subspace_of( s2, s1 ); @@ -23584,7 +24835,7 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; sc_member : lgcl := UNKNOWN; END_CASE; END; - sc_member : + sc_member : BEGIN CASE sp2\function_space.range_constraint OF sc_equal : lgcl := member_of( s2, s1 ); @@ -23656,7 +24907,7 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; n_segments : INTEGER := SIZEOF( c.segments ); END_LOCAL; REPEAT k := 1 TO n_segments BY 1; - IF ( NOT ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PCURVE' IN TYPEOF( c\composite_curve.segments[k].parent_curve ) ) ) + IF ( NOT ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PCURVE' IN TYPEOF( c\composite_curve.segments[k].parent_curve ) ) ) AND ( NOT ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SURFACE_CURVE' IN TYPEOF( c\composite_curve.segments[k]. parent_curve ) ) ) AND ( NOT ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COMPOSITE_CURVE_ON_SURFACE' IN TYPEOF( c \composite_curve.segments[k].parent_curve ) ) ) THEN @@ -23675,7 +24926,7 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; result : BOOLEAN := TRUE; END_LOCAL; REPEAT j := 1 TO SIZEOF( m.sbsm_boundary ) BY 1; - IF ( NOT ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.OPEN_SHELL' IN TYPEOF( m.sbsm_boundary[j] ) ) ) AND ( NOT ( + IF ( NOT ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.OPEN_SHELL' IN TYPEOF( m.sbsm_boundary[j] ) ) ) AND ( NOT ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CLOSED_SHELL' IN TYPEOF( m.sbsm_boundary[j] ) ) ) THEN result := FALSE; RETURN( result ); @@ -23693,7 +24944,7 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; result : BOOLEAN := TRUE; END_LOCAL; REPEAT j := 1 TO SIZEOF( m.sbwm_boundary ) BY 1; - IF ( NOT ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.WIRE_SHELL' IN TYPEOF( m.sbwm_boundary[j] ) ) ) AND ( NOT ( + IF ( NOT ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.WIRE_SHELL' IN TYPEOF( m.sbwm_boundary[j] ) ) ) AND ( NOT ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.VERTEX_SHELL' IN TYPEOF( m.sbwm_boundary[j] ) ) ) THEN result := FALSE; RETURN( result ); @@ -23712,9 +24963,9 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; ) : BOOLEAN; LOCAL + result : BOOLEAN := TRUE; k : INTEGER; sum : INTEGER; - result : BOOLEAN := TRUE; END_LOCAL; sum := knot_mult[1]; REPEAT i := 2 TO up_knots BY 1; @@ -23753,7 +25004,7 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; ) : BOOLEAN; REPEAT i := 1 TO s.n_u BY 1; REPEAT j := 1 TO s.n_v BY 1; - IF NOT ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.B_SPLINE_SURFACE' IN TYPEOF( s.segments[i][j].parent_surface ) ) + IF NOT ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.B_SPLINE_SURFACE' IN TYPEOF( s.segments[i][j].parent_surface ) ) OR ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.RECTANGULAR_TRIMMED_SURFACE' IN TYPEOF( s.segments[i][j]. parent_surface ) ) ) THEN RETURN( FALSE ); @@ -23801,24 +25052,24 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; ) : ypr_rotation; LOCAL + axis : direction; + angle : plane_angle_measure; + conv_angle : plane_angle_measure; + ya : plane_angle_measure; + pa : plane_angle_measure; + ra : plane_angle_measure; ucf : REAL; - s_a : REAL; - c_r : REAL; - c_y : REAL; dx : REAL; dy : REAL; dz : REAL; + s_a : REAL; c_a : REAL; - angle : plane_angle_measure; - s_r : REAL; rotmat : ARRAY [1 : 3] OF ARRAY [1 : 3] OF REAL; - conv_angle : plane_angle_measure; - axis : direction; - s_y : REAL; - ra : plane_angle_measure; - ya : plane_angle_measure; cm1 : REAL; - pa : plane_angle_measure; + s_y : REAL; + c_y : REAL; + s_r : REAL; + c_r : REAL; END_LOCAL; IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.YPR_ROTATION' IN TYPEOF( rotation ) THEN RETURN( rotation ); @@ -23835,7 +25086,7 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; IF NOT ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANE_ANGLE_MEASURE' IN TYPEOF( conv_angle ) ) THEN RETURN( ? ); END_IF; - ucf := angle DIV conv_angle; + ucf := angle / conv_angle; s_a := SIN( conv_angle ); c_a := COS( conv_angle ); IF ( dy = 0 ) AND ( ( dx * dz ) = 0 ) THEN @@ -23880,7 +25131,7 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; RETURN( [ya, pa, ra] ); END_IF; cm1 := 1 - c_a; - rotmat := [[( dx * dx * cm1 ) + c_a, ( dx * dy * cm1 ) - ( dz * s_a ), ( dx * dz * cm1 ) + ( dy * s_a )], [( dx * dy * cm1 ) + rotmat := [[( dx * dx * cm1 ) + c_a, ( dx * dy * cm1 ) - ( dz * s_a ), ( dx * dz * cm1 ) + ( dy * s_a )], [( dx * dy * cm1 ) + ( dz * s_a ), ( dy * dy * cm1 ) + c_a, ( dy * dz * cm1 ) - ( dx * s_a )], [( dx * dz * cm1 ) - ( dy * s_a ), ( dy * dz * cm1 ) + ( dx * s_a ), ( dz * dz * cm1 ) + c_a]]; IF ABS( rotmat[1][3] ) = 1 THEN @@ -23925,15 +25176,15 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; s_r := SIN( ra ); c_r := COS( ra ); IF ( ABS( s_y ) > ABS( c_y ) ) AND ( ABS( s_y ) > ABS( s_r ) ) AND ( ABS( s_y ) > ABS( c_r ) ) THEN - cm1 := ( -rotmat[1][2] ) DIV s_y; + cm1 := ( -rotmat[1][2] ) / s_y; ELSE IF ( ABS( c_y ) > ABS( s_r ) ) AND ( ABS( c_y ) > ABS( c_r ) ) THEN - cm1 := rotmat[1][1] DIV c_y; + cm1 := rotmat[1][1] / c_y; ELSE IF ABS( s_r ) > ABS( c_r ) THEN - cm1 := ( -rotmat[2][3] ) DIV s_r; + cm1 := ( -rotmat[2][3] ) / s_r; ELSE - cm1 := rotmat[3][3] DIV c_r; + cm1 := rotmat[3][3] / c_r; END_IF; END_IF; END_IF; @@ -24002,16 +25253,16 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; ) : maths_value; LOCAL - bval : maths_binary; + types : SET OF STRING := TYPEOF( val ); + ival : maths_integer; + rval : maths_real; + nval : maths_number; tfval : maths_boolean; lval : maths_logical; - mval : maths_value; - nval : maths_number; - rval : maths_real; - ival : maths_integer; - tval : maths_tuple := the_empty_maths_tuple; - types : SET OF STRING := TYPEOF( val ); sval : maths_string; + bval : maths_binary; + tval : maths_tuple := the_empty_maths_tuple; + mval : maths_value; END_LOCAL; IF ( schema_prefix + 'MATHS_VALUE' ) IN types THEN RETURN( val ); @@ -24086,8 +25337,8 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; ) : LIST OF generic_expression; LOCAL - loc : INTEGER := 0; operands : LIST OF generic_expression := []; + loc : INTEGER := 0; END_LOCAL; IF NOT EXISTS( values ) THEN RETURN( ? ); @@ -24123,10 +25374,10 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; ) : vector; LOCAL - v2 : LIST [3 : 3] OF REAL; - v1 : LIST [3 : 3] OF REAL; mag : REAL; res : direction; + v1 : LIST [3 : 3] OF REAL; + 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 @@ -24136,7 +25387,7 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; 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] * + 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; REPEAT i := 1 TO 3 BY 1; @@ -24189,10 +25440,10 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; ) : BOOLEAN; BEGIN - IF ( SIZEOF( QUERY ( i <* agg | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM' IN - TYPEOF( i ) ) AND ( i\representation_item.name = 'significant number of digits' ) ) ) ) = 1 ) OR ( ( SIZEOF( - QUERY ( i <* agg | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM' IN TYPEOF( i ) ) - AND ( i\representation_item.name = 'lower limit' ) ) ) ) = 1 ) AND ( SIZEOF( QUERY ( i <* agg | ( ( + IF ( SIZEOF( QUERY ( i <* agg | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM' IN + TYPEOF( i ) ) AND ( i\representation_item.name = 'significant number of digits' ) ) ) ) = 1 ) OR ( ( SIZEOF( + QUERY ( i <* agg | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM' IN TYPEOF( i ) ) + AND ( i\representation_item.name = 'lower limit' ) ) ) ) = 1 ) AND ( SIZEOF( QUERY ( i <* agg | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM' IN TYPEOF( i ) ) AND ( i\ representation_item.name = 'upper limit' ) ) ) ) = 1 ) ) THEN RETURN( TRUE ); @@ -24208,10 +25459,10 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; ) : BOOLEAN; BEGIN - IF ( SIZEOF( QUERY ( i <* agg | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM' IN - TYPEOF( i ) ) AND ( i\representation_item.name = 'plus minus tolerance value' ) ) ) ) = 1 ) OR ( ( SIZEOF( QUERY ( i <* + IF ( SIZEOF( QUERY ( i <* agg | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM' IN + TYPEOF( i ) ) AND ( i\representation_item.name = 'plus minus tolerance value' ) ) ) ) = 1 ) OR ( ( SIZEOF( QUERY ( i <* agg | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM' IN TYPEOF( i ) ) AND ( i\ - representation_item.name = 'lower tolerance value' ) ) ) ) = 1 ) AND ( SIZEOF( QUERY ( i <* agg | ( ( + representation_item.name = 'lower tolerance value' ) ) ) ) = 1 ) AND ( SIZEOF( QUERY ( i <* agg | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM' IN TYPEOF( i ) ) AND ( i\ representation_item.name = 'upper tolerance value' ) ) ) ) = 1 ) ) THEN RETURN( TRUE ); @@ -24227,9 +25478,9 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; ) : BOOLEAN; BEGIN - IF ( SIZEOF( QUERY ( i <* agg | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DESCRIPTIVE_REPRESENTATION_ITEM' IN + IF ( SIZEOF( QUERY ( i <* agg | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF( i ) ) ) ) <= 1 ) AND ( SIZEOF( QUERY ( i <* agg | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF( i ) ) ) ) = SIZEOF( QUERY ( i <* agg | ( ( + + 'DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF( i ) ) ) ) = SIZEOF( QUERY ( i <* agg | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF( i ) ) AND ( i\ representation_item.name = 'cell description' ) ) ) ) ) THEN RETURN( TRUE ); @@ -24248,10 +25499,10 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; ) : BOOLEAN; LOCAL - fspc : maths_space; domn : tuple_space := domain; - k : positive_integer; + fspc : maths_space; dim : nonnegative_integer; + k : positive_integer; END_LOCAL; IF ( space_dimension( domain ) = 1 ) AND ( ( schema_prefix + 'TUPLE_SPACE' ) IN TYPEOF( factor1( domain ) ) ) THEN domn := factor1( domain ); @@ -24282,11 +25533,11 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; ) : BOOLEAN; LOCAL - k : positive_integer; nops : INTEGER := 2; - bspc : maths_space; vspc : maths_space; dim : nonnegative_integer; + k : positive_integer; + bspc : maths_space; END_LOCAL; IF NOT lowerinf THEN nops := nops + 1; @@ -24346,13 +25597,13 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; ) : BOOLEAN; LOCAL + number_of_input_instances : INTEGER; + number_of_referring_instances : INTEGER; bag_of_referring_instances : BAG OF GENERIC:igen := []; dependently_instantiated_flag : BOOLEAN; - number_of_input_instances : INTEGER; - set_of_types : SET OF STRING := []; previous_in_chain_plus : LIST OF GENERIC:cgen := []; - number_of_referring_instances : INTEGER; 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 ); @@ -24398,10 +25649,10 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; ) : plane_angle_measure; LOCAL - v2 : direction; v1 : direction; - mag_v2 : REAL; + v2 : direction; mag_v1 : REAL; + mag_v2 : REAL; theta : plane_angle_measure; END_LOCAL; v1 := placement_1.p[1]; @@ -24412,8 +25663,8 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; theta := 0; RETURN( theta ); END_IF; - theta := ACOS( ( ( v1.direction_ratios[1] * v2.direction_ratios[1] ) + ( v1.direction_ratios[2] * v2.direction_ratios[2] ) ) - DIV ( mag_v1 * mag_v2 ) ); + 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; @@ -24429,9 +25680,9 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; ) : product_space; LOCAL - factors : LIST OF maths_space; uspc : uniform_product_space; expnt : INTEGER; + factors : LIST OF maths_space; END_LOCAL; IF ( schema_prefix + 'UNIFORM_PRODUCT_SPACE' ) IN TYPEOF( spc ) THEN uspc := spc; @@ -24461,13 +25712,13 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; END_FUNCTION; LOCAL - espc : extended_tuple_space; - idx : INTEGER := igrl.variable_of_integration; - prefix : INTEGER := 0; - tupled : BOOLEAN := bool( ( space_dimension( idomn ) = 1 ) AND ( ( schema_prefix + 'TUPLE_SPACE' ) IN types ) ); - types : SET OF STRING := TYPEOF( idomn ); - vdomn : maths_space; idomn : tuple_space := igrl.integrand.domain; + types : SET OF STRING := TYPEOF( idomn ); + idx : INTEGER := igrl.variable_of_integration; + tupled : BOOLEAN := bool( ( space_dimension( idomn ) = 1 ) AND ( ( schema_prefix + 'TUPLE_SPACE' ) IN types ) ); + prefix : INTEGER := 0; + espc : extended_tuple_space; + vdomn : maths_space; END_LOCAL; IF tupled THEN idomn := factor1( idomn ); @@ -24831,13 +26082,13 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; ) : tuple_space; LOCAL - is_uniform : BOOLEAN := TRUE; - factors : LIST OF finite_integer_interval := []; - shape : LIST OF positive_integer; typenames : SET OF STRING := stripped_typeof( func ); - sidxs : LIST OF INTEGER := [0]; tspace : tuple_space := make_listed_product_space( [] ); + shape : LIST OF positive_integer; + sidxs : LIST OF INTEGER := [0]; itvl : finite_integer_interval; + factors : LIST OF finite_integer_interval := []; + is_uniform : BOOLEAN := TRUE; END_LOCAL; IF 'FINITE_FUNCTION' IN typenames THEN RETURN( derive_finite_function_domain( func\finite_function.pairs ) ); @@ -24911,7 +26162,7 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; general_linear_function.mat\explicit_table_function.shape[func\general_linear_function.sum_index] - 1 ) ) ); END_IF; IF 'B_SPLINE_BASIS' IN typenames THEN - RETURN( one_tuples_of( make_finite_real_interval( func\b_spline_basis.repeated_knots[func\b_spline_basis.order], closed, + RETURN( one_tuples_of( make_finite_real_interval( func\b_spline_basis.repeated_knots[func\b_spline_basis.order], closed, func\b_spline_basis.repeated_knots[func\b_spline_basis.num_basis + 1], closed ) ) ); END_IF; IF 'B_SPLINE_FUNCTION' IN typenames THEN @@ -24962,11 +26213,11 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; ) : tuple_space; LOCAL - temp : INTEGER := 0; typenames : SET OF STRING := stripped_typeof( func ); + tspace : tuple_space := make_listed_product_space( [] ); m : nonnegative_integer := 0; n : nonnegative_integer := 0; - tspace : tuple_space := make_listed_product_space( [] ); + temp : INTEGER := 0; END_LOCAL; IF 'FINITE_FUNCTION' IN typenames THEN RETURN( derive_finite_function_range( func\finite_function.pairs ) ); @@ -25209,10 +26460,10 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; ) : REAL; LOCAL - ndim : INTEGER; scalar : REAL; vec1 : direction; vec2 : direction; + ndim : INTEGER; END_LOCAL; IF ( NOT EXISTS( arg1 ) ) OR ( NOT EXISTS( arg2 ) ) THEN scalar := ?; @@ -25241,10 +26492,10 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; ) : maths_space; LOCAL - factors : LIST OF maths_space := []; typenames : SET OF STRING := stripped_typeof( spc ); - xspc : extended_tuple_space; tspc : listed_product_space; + factors : LIST OF maths_space := []; + xspc : extended_tuple_space; END_LOCAL; IF 'UNIFORM_PRODUCT_SPACE' IN typenames THEN RETURN( make_uniform_product_space( drop_numeric_constraints( spc\uniform_product_space.base ), spc\uniform_product_space. @@ -25268,6 +26519,28 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; END_FUNCTION; + FUNCTION duration_is_negative( + duration : time_measure_with_unit + ) : BOOLEAN; + IF duration\measure_with_unit.value_component < 0 THEN + RETURN( TRUE ); + ELSE + RETURN( FALSE ); + END_IF; + + END_FUNCTION; + + FUNCTION duration_is_positive( + duration : time_measure_with_unit + ) : BOOLEAN; + IF duration\measure_with_unit.value_component > 0 THEN + RETURN( TRUE ); + ELSE + RETURN( FALSE ); + END_IF; + + END_FUNCTION; + FUNCTION edge_reversed( an_edge : edge ) : oriented_edge; @@ -25314,8 +26587,8 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; PROCEDURE angle_minmax( ab, a : REAL; a_in : BOOLEAN; - amin, amax : REAL; - amin_in, amax_in : BOOLEAN ); + VAR amin, amax : REAL; + VAR amin_in, amax_in : BOOLEAN ); a := angle( a - ab ); IF amin = a THEN amin_in := amin_in OR a_in; @@ -25337,8 +26610,8 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; PROCEDURE range_max( r : REAL; incl : BOOLEAN; - rmax : REAL; - rmax_in : BOOLEAN ); + VAR rmax : REAL; + VAR rmax_in : BOOLEAN ); IF rmax = r THEN rmax_in := rmax_in OR incl; END_IF; @@ -25352,8 +26625,8 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; PROCEDURE range_min( r : REAL; incl : BOOLEAN; - rmin : REAL; - rmin_in : BOOLEAN ); + VAR rmin : REAL; + VAR rmin_in : BOOLEAN ); IF rmin = r THEN rmin_in := rmin_in OR incl; END_IF; @@ -25365,40 +26638,40 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; END_PROCEDURE; LOCAL - ritv : real_interval; - is_xmin : BOOLEAN; - ab : REAL := 0; - rmax : REAL := -1; - ymin : REAL := 0; - a : REAL := 0; - r : REAL := 0; - aitv : finite_real_interval; - rmin_in : BOOLEAN := FALSE; - xmax : REAL := 0; - is_xmax : BOOLEAN; - xmax_in : BOOLEAN := FALSE; - maxclo : open_closed := open; - amax : REAL := -4; + xitv : real_interval; yitv : real_interval; - ymax : REAL := 0; - xmin_in : BOOLEAN := FALSE; - yc : REAL := 0; - ymax_in : BOOLEAN := FALSE; + is_xmin : BOOLEAN; + is_xmax : BOOLEAN; is_ymin : BOOLEAN; is_ymax : BOOLEAN; - rmax_exists : BOOLEAN := TRUE; - rmax_in : BOOLEAN := FALSE; - incl : BOOLEAN; - ymin_in : BOOLEAN := FALSE; - outside : BOOLEAN := TRUE; xmin : REAL := 0; - minclo : open_closed := open; + xmax : REAL := 0; + ymin : REAL := 0; + ymax : REAL := 0; + xc : REAL := 0; + yc : REAL := 0; + xmin_in : BOOLEAN := FALSE; + xmax_in : BOOLEAN := FALSE; + ymin_in : BOOLEAN := FALSE; + ymax_in : BOOLEAN := FALSE; + rmin : REAL := -1; + rmax : REAL := -1; amin : REAL := 4; - xitv : real_interval; + amax : REAL := -4; + rmax_exists : BOOLEAN := TRUE; + outside : BOOLEAN := TRUE; + rmin_in : BOOLEAN := FALSE; + rmax_in : BOOLEAN := FALSE; amin_in : BOOLEAN := FALSE; amax_in : BOOLEAN := FALSE; - rmin : REAL := -1; - xc : REAL := 0; + ab : REAL := 0; + a : REAL := 0; + r : REAL := 0; + incl : BOOLEAN; + ritv : real_interval; + aitv : finite_real_interval; + minclo : open_closed := open; + maxclo : open_closed := open; END_LOCAL; IF ( NOT EXISTS( crgn ) ) OR ( NOT EXISTS( centre ) ) THEN RETURN( ? ); @@ -25657,8 +26930,8 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; PROCEDURE nearest_good_direction( acart : REAL; aitv : finite_real_interval; - a : REAL; - a_in : BOOLEAN ); + VAR a : REAL; + VAR a_in : BOOLEAN ); a := acart; a_in := TRUE; IF a < aitv.min THEN @@ -25695,29 +26968,29 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; END_PROCEDURE; LOCAL - ritv : real_interval; - ymin : REAL := 0; - a : REAL := 0; - ymax_exists : BOOLEAN; - r : REAL := 0; - aitv : finite_real_interval; - xmax : REAL := 0; - xmax_in : BOOLEAN := FALSE; - a_in : BOOLEAN := FALSE; - yitv : real_interval; - ymax : REAL := 0; - xmax_exists : BOOLEAN; - xmin_in : BOOLEAN := FALSE; - ymin_exists : BOOLEAN; - yc : REAL := 0; - ymax_in : BOOLEAN := FALSE; - min_clo : open_closed := open; - xmin_exists : BOOLEAN; - ymin_in : BOOLEAN := FALSE; - xmin : REAL := 0; - max_clo : open_closed := open; - xitv : real_interval; xc : REAL := 0; + yc : REAL := 0; + xmin : REAL := 0; + xmax : REAL := 0; + ymin : REAL := 0; + ymax : REAL := 0; + ritv : real_interval; + xitv : real_interval; + yitv : real_interval; + aitv : finite_real_interval; + xmin_exists : BOOLEAN; + xmax_exists : BOOLEAN; + ymin_exists : BOOLEAN; + ymax_exists : BOOLEAN; + xmin_in : BOOLEAN := FALSE; + xmax_in : BOOLEAN := FALSE; + ymin_in : BOOLEAN := FALSE; + ymax_in : BOOLEAN := FALSE; + a : REAL := 0; + r : REAL := 0; + a_in : BOOLEAN := FALSE; + min_clo : open_closed := open; + max_clo : open_closed := open; END_LOCAL; IF NOT EXISTS( prgn ) THEN RETURN( ? ); @@ -25874,7 +27147,7 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; END_FUNCTION; PROCEDURE angle_range( - amin, amax : REAL ); + VAR amin, amax : REAL ); amin := angle( amin ); IF amin = PI THEN amin := -PI; @@ -25889,8 +27162,8 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; PROCEDURE find_aminmax( ab, a0, a1, a2, a3 : REAL; in0, in1, in2, in3 : BOOLEAN; - amin, amax : REAL; - amin_in, amax_in : BOOLEAN ); + VAR amin, amax : REAL; + VAR amin_in, amax_in : BOOLEAN ); LOCAL a : REAL; @@ -25951,47 +27224,47 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; END_PROCEDURE; LOCAL - ritv : real_interval; ritp : real_interval; - ab : REAL := 0; - rmax : REAL := 0; - acp : REAL := 0; - rmxp : REAL := 0; - in3 : BOOLEAN := FALSE; - in2 : BOOLEAN := FALSE; - in1 : BOOLEAN := FALSE; - in0 : BOOLEAN := FALSE; - a : REAL := 0; - r : REAL := 0; - x : REAL := 0; - y : REAL := 0; - inn : BOOLEAN := FALSE; + ritv : real_interval; aitp : finite_real_interval; aitv : finite_real_interval; - rmin_in : BOOLEAN := FALSE; - a1 : REAL := 0; - a0 : REAL := 0; - a3 : REAL := 0; - a2 : REAL := 0; - maxclo : open_closed := open; - amax : REAL := 0; + xp : REAL := 0; yp : REAL := 0; - rc : REAL := 0; + xc : REAL := 0; yc : REAL := 0; - rmax_in : BOOLEAN := FALSE; - r2 : REAL := 0; - r3 : REAL := 0; - r0 : REAL := 0; - r1 : REAL := 0; - rmnp : REAL := 0; - minclo : open_closed := open; + rmax : REAL := 0; + rmin : REAL := 0; amin : REAL := 0; + amax : REAL := 0; + rc : REAL := 0; + acp : REAL := 0; + apc : REAL := 0; + rmax_in : BOOLEAN := FALSE; + rmin_in : BOOLEAN := FALSE; amin_in : BOOLEAN := FALSE; amax_in : BOOLEAN := FALSE; - xp : REAL := 0; - apc : REAL := 0; - rmin : REAL := 0; - xc : REAL := 0; + rmxp : REAL := 0; + rmnp : REAL := 0; + x : REAL := 0; + y : REAL := 0; + r : REAL := 0; + a : REAL := 0; + ab : REAL := 0; + r0 : REAL := 0; + a0 : REAL := 0; + r1 : REAL := 0; + a1 : REAL := 0; + r2 : REAL := 0; + a2 : REAL := 0; + r3 : REAL := 0; + a3 : REAL := 0; + in0 : BOOLEAN := FALSE; + in1 : BOOLEAN := FALSE; + in2 : BOOLEAN := FALSE; + in3 : BOOLEAN := FALSE; + inn : BOOLEAN := FALSE; + minclo : open_closed := open; + maxclo : open_closed := open; END_LOCAL; IF ( NOT EXISTS( prgn ) ) OR ( NOT EXISTS( centre ) ) THEN RETURN( ? ); @@ -26020,7 +27293,7 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; rmax_in := FALSE; END_IF; IF rc > rmxp THEN - a0 := ASIN( rmxp DIV rc ); + a0 := ASIN( rmxp / rc ); amin := angle( acp - a0 ); amin_in := max_included( ritp ); IF amin = PI THEN @@ -26248,13 +27521,13 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; IF rc >= rmxp THEN ab := acp; find_aminmax( ab, a0, a1, a2, a3, in0, in1, in2, in3, amin, amax, amin_in, amax_in ); - a := ACOS( rmxp DIV rc ); + a := ACOS( rmxp / rc ); IF strictly_in( apc - a, aitp ) THEN - amin := ab - ASIN( rmxp DIV rc ); + amin := ab - ASIN( rmxp / rc ); amin_in := max_included( ritp ); END_IF; IF strictly_in( apc + a, aitp ) THEN - amax := ab + ASIN( rmxp DIV rc ); + amax := ab + ASIN( rmxp / rc ); amax_in := max_included( ritp ); END_IF; angle_range( amin, amax ); @@ -26487,13 +27760,13 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; LOCAL arng : REAL; - c_in : BOOLEAN; - aitv : real_interval; - yitv : real_interval; - yc : REAL; amin : REAL; - xitv : real_interval; xc : REAL; + yc : REAL; + aitv : real_interval; + xitv : real_interval; + yitv : real_interval; + c_in : BOOLEAN; END_LOCAL; IF ( NOT EXISTS( crgn ) ) OR ( NOT EXISTS( prgn ) ) THEN RETURN( FALSE ); @@ -26514,61 +27787,61 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; yitv := crgn.imag_constraint; IF arng = ( 0.5 * PI ) THEN IF amin = 0 THEN - RETURN( ( NOT max_exists( xitv ) ) AND ( NOT max_exists( yitv ) ) AND min_exists( xitv ) AND min_exists( yitv ) AND ( - real_min( xitv ) = xc ) AND ( real_min( yitv ) = yc ) AND ( ( c_in AND min_included( aitv ) AND max_included( aitv ) - AND min_included( xitv ) AND min_included( yitv ) ) OR ( ( NOT c_in ) AND ( NOT min_included( aitv ) ) AND - max_included( aitv ) AND min_included( xitv ) AND ( NOT min_included( yitv ) ) ) OR ( ( NOT c_in ) AND min_included( - aitv ) AND ( NOT max_included( aitv ) ) AND ( NOT min_included( xitv ) ) AND min_included( yitv ) ) OR ( ( NOT c_in ) - AND ( NOT min_included( aitv ) ) AND ( NOT max_included( aitv ) ) AND ( NOT min_included( xitv ) ) AND ( NOT + RETURN( ( NOT max_exists( xitv ) ) AND ( NOT max_exists( yitv ) ) AND min_exists( xitv ) AND min_exists( yitv ) AND ( + real_min( xitv ) = xc ) AND ( real_min( yitv ) = yc ) AND ( ( c_in AND min_included( aitv ) AND max_included( aitv ) + AND min_included( xitv ) AND min_included( yitv ) ) OR ( ( NOT c_in ) AND ( NOT min_included( aitv ) ) AND + max_included( aitv ) AND min_included( xitv ) AND ( NOT min_included( yitv ) ) ) OR ( ( NOT c_in ) AND min_included( + aitv ) AND ( NOT max_included( aitv ) ) AND ( NOT min_included( xitv ) ) AND min_included( yitv ) ) OR ( ( NOT c_in ) + AND ( NOT min_included( aitv ) ) AND ( NOT max_included( aitv ) ) AND ( NOT min_included( xitv ) ) AND ( NOT min_included( yitv ) ) ) ) ); END_IF; IF amin = ( 0.5 * PI ) THEN - RETURN( max_exists( xitv ) AND ( NOT max_exists( yitv ) ) AND ( NOT min_exists( xitv ) ) AND min_exists( yitv ) AND ( - real_max( xitv ) = xc ) AND ( real_min( yitv ) = yc ) AND ( ( c_in AND min_included( aitv ) AND max_included( aitv ) - AND max_included( xitv ) AND min_included( yitv ) ) OR ( ( NOT c_in ) AND ( NOT min_included( aitv ) ) AND - max_included( aitv ) AND max_included( xitv ) AND ( NOT min_included( yitv ) ) ) OR ( ( NOT c_in ) AND min_included( - aitv ) AND ( NOT max_included( aitv ) ) AND ( NOT max_included( xitv ) ) AND min_included( yitv ) ) OR ( ( NOT c_in ) - AND ( NOT min_included( aitv ) ) AND ( NOT max_included( aitv ) ) AND ( NOT max_included( xitv ) ) AND ( NOT + RETURN( max_exists( xitv ) AND ( NOT max_exists( yitv ) ) AND ( NOT min_exists( xitv ) ) AND min_exists( yitv ) AND ( + real_max( xitv ) = xc ) AND ( real_min( yitv ) = yc ) AND ( ( c_in AND min_included( aitv ) AND max_included( aitv ) + AND max_included( xitv ) AND min_included( yitv ) ) OR ( ( NOT c_in ) AND ( NOT min_included( aitv ) ) AND + max_included( aitv ) AND max_included( xitv ) AND ( NOT min_included( yitv ) ) ) OR ( ( NOT c_in ) AND min_included( + aitv ) AND ( NOT max_included( aitv ) ) AND ( NOT max_included( xitv ) ) AND min_included( yitv ) ) OR ( ( NOT c_in ) + AND ( NOT min_included( aitv ) ) AND ( NOT max_included( aitv ) ) AND ( NOT max_included( xitv ) ) AND ( NOT min_included( yitv ) ) ) ) ); END_IF; IF amin = ( -PI ) THEN - RETURN( max_exists( xitv ) AND max_exists( yitv ) AND ( NOT min_exists( xitv ) ) AND ( NOT min_exists( yitv ) ) AND ( - real_max( xitv ) = xc ) AND ( real_max( yitv ) = yc ) AND ( ( c_in AND min_included( aitv ) AND max_included( aitv ) - AND max_included( xitv ) AND max_included( yitv ) ) OR ( ( NOT c_in ) AND ( NOT min_included( aitv ) ) AND - max_included( aitv ) AND max_included( xitv ) AND ( NOT max_included( yitv ) ) ) OR ( ( NOT c_in ) AND min_included( - aitv ) AND ( NOT max_included( aitv ) ) AND ( NOT max_included( xitv ) ) AND max_included( yitv ) ) OR ( ( NOT c_in ) - AND ( NOT min_included( aitv ) ) AND ( NOT max_included( aitv ) ) AND ( NOT max_included( xitv ) ) AND ( NOT + RETURN( max_exists( xitv ) AND max_exists( yitv ) AND ( NOT min_exists( xitv ) ) AND ( NOT min_exists( yitv ) ) AND ( + real_max( xitv ) = xc ) AND ( real_max( yitv ) = yc ) AND ( ( c_in AND min_included( aitv ) AND max_included( aitv ) + AND max_included( xitv ) AND max_included( yitv ) ) OR ( ( NOT c_in ) AND ( NOT min_included( aitv ) ) AND + max_included( aitv ) AND max_included( xitv ) AND ( NOT max_included( yitv ) ) ) OR ( ( NOT c_in ) AND min_included( + aitv ) AND ( NOT max_included( aitv ) ) AND ( NOT max_included( xitv ) ) AND max_included( yitv ) ) OR ( ( NOT c_in ) + AND ( NOT min_included( aitv ) ) AND ( NOT max_included( aitv ) ) AND ( NOT max_included( xitv ) ) AND ( NOT max_included( yitv ) ) ) ) ); END_IF; IF amin = ( ( -0.5 ) * PI ) THEN - RETURN( ( NOT max_exists( xitv ) ) AND max_exists( yitv ) AND min_exists( xitv ) AND ( NOT min_exists( yitv ) ) AND ( - real_min( xitv ) = xc ) AND ( real_max( yitv ) = yc ) AND ( ( c_in AND min_included( aitv ) AND max_included( aitv ) - AND min_included( xitv ) AND max_included( yitv ) ) OR ( ( NOT c_in ) AND ( NOT min_included( aitv ) ) AND - max_included( aitv ) AND min_included( xitv ) AND ( NOT max_included( yitv ) ) ) OR ( ( NOT c_in ) AND min_included( - aitv ) AND ( NOT max_included( aitv ) ) AND ( NOT min_included( xitv ) ) AND max_included( yitv ) ) OR ( ( NOT c_in ) - AND ( NOT min_included( aitv ) ) AND ( NOT max_included( aitv ) ) AND ( NOT min_included( xitv ) ) AND ( NOT + RETURN( ( NOT max_exists( xitv ) ) AND max_exists( yitv ) AND min_exists( xitv ) AND ( NOT min_exists( yitv ) ) AND ( + real_min( xitv ) = xc ) AND ( real_max( yitv ) = yc ) AND ( ( c_in AND min_included( aitv ) AND max_included( aitv ) + AND min_included( xitv ) AND max_included( yitv ) ) OR ( ( NOT c_in ) AND ( NOT min_included( aitv ) ) AND + max_included( aitv ) AND min_included( xitv ) AND ( NOT max_included( yitv ) ) ) OR ( ( NOT c_in ) AND min_included( + aitv ) AND ( NOT max_included( aitv ) ) AND ( NOT min_included( xitv ) ) AND max_included( yitv ) ) OR ( ( NOT c_in ) + AND ( NOT min_included( aitv ) ) AND ( NOT max_included( aitv ) ) AND ( NOT min_included( xitv ) ) AND ( NOT max_included( yitv ) ) ) ) ); END_IF; END_IF; IF arng = PI THEN IF amin = 0 THEN - RETURN( ( NOT max_exists( xitv ) ) AND ( NOT max_exists( yitv ) ) AND ( NOT min_exists( xitv ) ) AND min_exists( yitv ) - AND ( real_min( yitv ) = yc ) AND ( ( c_in AND min_included( aitv ) AND max_included( aitv ) AND min_included( yitv ) ) + RETURN( ( NOT max_exists( xitv ) ) AND ( NOT max_exists( yitv ) ) AND ( NOT min_exists( xitv ) ) AND min_exists( yitv ) + AND ( real_min( yitv ) = yc ) AND ( ( c_in AND min_included( aitv ) AND max_included( aitv ) AND min_included( yitv ) ) OR ( ( NOT c_in ) AND ( NOT min_included( aitv ) ) AND ( NOT max_included( aitv ) ) AND ( NOT min_included( yitv ) ) ) ) ); END_IF; IF amin = ( 0.5 * PI ) THEN - RETURN( max_exists( xitv ) AND ( NOT max_exists( yitv ) ) AND ( NOT min_exists( xitv ) ) AND ( NOT min_exists( yitv ) ) - AND ( real_max( xitv ) = xc ) AND ( ( c_in AND min_included( aitv ) AND max_included( aitv ) AND max_included( xitv ) ) + RETURN( max_exists( xitv ) AND ( NOT max_exists( yitv ) ) AND ( NOT min_exists( xitv ) ) AND ( NOT min_exists( yitv ) ) + AND ( real_max( xitv ) = xc ) AND ( ( c_in AND min_included( aitv ) AND max_included( aitv ) AND max_included( xitv ) ) OR ( ( NOT c_in ) AND ( NOT min_included( aitv ) ) AND ( NOT max_included( aitv ) ) AND ( NOT max_included( xitv ) ) ) ) ); END_IF; IF amin = ( -PI ) THEN - RETURN( ( NOT max_exists( xitv ) ) AND max_exists( yitv ) AND ( NOT min_exists( xitv ) ) AND ( NOT min_exists( yitv ) ) - AND ( real_max( yitv ) = yc ) AND ( ( c_in AND min_included( aitv ) AND max_included( aitv ) AND max_included( yitv ) ) + RETURN( ( NOT max_exists( xitv ) ) AND max_exists( yitv ) AND ( NOT min_exists( xitv ) ) AND ( NOT min_exists( yitv ) ) + AND ( real_max( yitv ) = yc ) AND ( ( c_in AND min_included( aitv ) AND max_included( aitv ) AND max_included( yitv ) ) OR ( ( NOT c_in ) AND ( NOT min_included( aitv ) ) AND ( NOT max_included( aitv ) ) AND ( NOT max_included( yitv ) ) ) ) ); END_IF; IF amin = ( ( -0.5 ) * PI ) THEN - RETURN( ( NOT max_exists( xitv ) ) AND ( NOT max_exists( yitv ) ) AND min_exists( xitv ) AND ( NOT min_exists( yitv ) ) - AND ( real_min( xitv ) = xc ) AND ( ( c_in AND min_included( aitv ) AND max_included( aitv ) AND min_included( xitv ) ) + RETURN( ( NOT max_exists( xitv ) ) AND ( NOT max_exists( yitv ) ) AND min_exists( xitv ) AND ( NOT min_exists( yitv ) ) + AND ( real_min( xitv ) = xc ) AND ( ( c_in AND min_included( aitv ) AND max_included( aitv ) AND min_included( xitv ) ) OR ( ( NOT c_in ) AND ( NOT min_included( aitv ) ) AND ( NOT max_included( aitv ) ) AND ( NOT min_included( xitv ) ) ) ) ); END_IF; END_IF; @@ -26603,18 +27876,18 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; ) : LOGICAL; LOCAL - cum2 : LOGICAL; + spc1types : SET OF STRING := stripped_typeof( spc1 ); + spc2types : SET OF STRING := stripped_typeof( spc2 ); + set1 : SET OF maths_value; + set2 : SET OF maths_value; + cum : LOGICAL := TRUE; + base : maths_space; + expnt : INTEGER; factors : LIST OF maths_space; + factors2 : LIST OF maths_space; fs1 : function_space; fs2 : function_space; - set2 : SET OF maths_value; - set1 : SET OF maths_value; - cum : LOGICAL := TRUE; - factors2 : LIST OF maths_space; - spc2types : SET OF STRING := stripped_typeof( spc2 ); - base : maths_space; - spc1types : SET OF STRING := stripped_typeof( spc1 ); - expnt : INTEGER; + cum2 : LOGICAL; END_LOCAL; IF spc1 = spc2 THEN RETURN( TRUE ); @@ -26713,7 +27986,7 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; END_IF; END_IF; IF ( 'EXTENDED_TUPLE_SPACE' IN spc1types ) AND ( 'EXTENDED_TUPLE_SPACE' IN spc2types ) THEN - RETURN( equal_maths_spaces( spc1\extended_tuple_space.extender, spc2\extended_tuple_space.extender ) AND + RETURN( equal_maths_spaces( spc1\extended_tuple_space.extender, spc2\extended_tuple_space.extender ) AND equal_maths_spaces( spc1\extended_tuple_space.base, spc2\extended_tuple_space.base ) ); END_IF; IF ( 'FUNCTION_SPACE' IN spc1types ) AND ( 'FUNCTION_SPACE' IN spc2types ) THEN @@ -26794,11 +28067,11 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; END_FUNCTION; LOCAL - list2 : LIST OF maths_value; - list1 : LIST OF maths_value; - cum : LOGICAL := TRUE; - types2 : SET OF STRING; types1 : SET OF STRING; + types2 : SET OF STRING; + list1 : LIST OF maths_value; + list2 : LIST OF maths_value; + cum : LOGICAL := TRUE; END_LOCAL; IF ( NOT EXISTS( val1 ) ) OR ( NOT EXISTS( val2 ) ) THEN RETURN( FALSE ); @@ -26942,7 +28215,7 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; REPEAT i := LOINDEX( aia\applied_external_identification_assignment.items ) TO HIINDEX( aia\ applied_external_identification_assignment.items ) BY 1; item := aia\applied_external_identification_assignment.items[i]; - IF SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EXTERNALLY_DEFINED_GENERAL_PROPERTY'] * TYPEOF( item ) ) = + IF SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EXTERNALLY_DEFINED_GENERAL_PROPERTY'] * TYPEOF( item ) ) = 0 THEN RETURN( FALSE ); END_IF; @@ -26977,7 +28250,7 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; the_reverse : face_bound; END_LOCAL; IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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 ) || + 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 ); @@ -27058,12 +28331,12 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; ) : SET OF product_definition; LOCAL - i : INTEGER := 0; - j : INTEGER := 0; - local_parent : SET OF product_definition := []; - root : SET OF product_definition; local_relation : SET OF assembly_component_usage := []; local_relation2 : BAG OF assembly_component_usage := []; + local_parent : SET OF product_definition := []; + root : SET OF product_definition; + i : INTEGER := 0; + j : INTEGER := 0; END_LOCAL; IF ( SIZEOF( constituent ) = 1 ) AND assembly_root( constituent[1] ) THEN RETURN( [constituent[1]] ); @@ -27072,7 +28345,7 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; RETURN( [] ); ELSE REPEAT j := 1 TO HIINDEX( constituent ) BY 1; - local_relation2 := local_relation2 + QUERY ( pdr <* USEDIN( constituent[j], + local_relation2 := local_relation2 + QUERY ( pdr <* USEDIN( constituent[j], 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_RELATIONSHIP.' + 'RELATED_PRODUCT_DEFINITION' ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ASSEMBLY_COMPONENT_USAGE' IN TYPEOF( pdr ) ) ); END_REPEAT; @@ -27121,7 +28394,7 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; LOCAL local_s_r : SET OF shape_representation := []; END_LOCAL; - local_s_r := QUERY ( z <* find_shape_representation_of_product_definition( item ) | ( + local_s_r := QUERY ( z <* find_shape_representation_of_product_definition( item ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.REPRESENTATIVE_SHAPE_REPRESENTATION' IN TYPEOF( z ) ) ); IF SIZEOF( local_s_r ) = 1 THEN RETURN( local_s_r[1] ); @@ -27138,7 +28411,7 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; LOCAL local_s_r : SET OF shape_representation := []; END_LOCAL; - local_s_r := QUERY ( z <* find_shape_representation_of_shape_aspect( item ) | ( + local_s_r := QUERY ( z <* find_shape_representation_of_shape_aspect( item ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.REPRESENTATIVE_SHAPE_REPRESENTATION' IN TYPEOF( z ) ) ); IF SIZEOF( local_s_r ) = 1 THEN RETURN( local_s_r[1] ); @@ -27153,15 +28426,15 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; ) : SET OF shape_representation; LOCAL - local_s_d_r2 : BAG OF shape_definition_representation := []; - i : INTEGER; - local_s_d_r : SET OF shape_definition_representation := []; local_p_d_s : SET OF product_definition_shape := []; local_p_d_s2 : BAG OF product_definition_shape := []; + local_s_d_r : SET OF shape_definition_representation := []; + local_s_d_r2 : BAG OF shape_definition_representation := []; local_s_r : SET OF shape_representation := []; + i : INTEGER; END_LOCAL; local_p_d_s2 := local_p_d_s2 + QUERY ( pd <* USEDIN( item, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'PROPERTY_DEFINITION.DEFINITION' ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN + + 'PROPERTY_DEFINITION.DEFINITION' ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ); local_p_d_s := bag_to_set( local_p_d_s2 ); REPEAT i := 1 TO HIINDEX( local_p_d_s ) BY 1; @@ -27186,10 +28459,10 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; LOCAL local_p_d : SET OF property_definition := []; - local_s_d_r2 : BAG OF shape_definition_representation := []; - i : INTEGER; local_s_d_r : SET OF shape_definition_representation := []; + local_s_d_r2 : BAG OF shape_definition_representation := []; local_s_r : SET OF shape_representation := []; + i : INTEGER; END_LOCAL; local_p_d := bag_to_set( USEDIN( item, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) ); REPEAT i := 1 TO HIINDEX( local_p_d ) BY 1; @@ -27213,10 +28486,10 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; ) : direction; LOCAL - x_vec : vector; + x_axis : direction; v : direction; z : direction; - x_axis : direction; + x_vec : vector; END_LOCAL; IF NOT EXISTS( z_axis ) THEN RETURN( ? ); @@ -27251,9 +28524,9 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; ) : SET OF generic_variable; LOCAL - exprs : LIST OF generic_expression := []; typenames : SET OF STRING := stripped_typeof( expr ); result : SET OF generic_variable := []; + exprs : LIST OF generic_expression := []; END_LOCAL; IF 'GENERIC_LITERAL' IN typenames THEN RETURN( result ); @@ -27295,10 +28568,10 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; ) : BOOLEAN; LOCAL - arg : generic_expression; + domain : tuple_space := convert_to_maths_function( func ).domain; domain_types : SET OF STRING := TYPEOF( domain ); narg : positive_integer := SIZEOF( arguments ); - domain : tuple_space := convert_to_maths_function( func ).domain; + arg : generic_expression; END_LOCAL; IF ( schema_prefix + 'PRODUCT_SPACE' ) IN domain_types THEN IF space_dimension( domain ) <> narg THEN @@ -27387,10 +28660,10 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; ) : BOOLEAN; LOCAL - itvl2 : finite_integer_interval; - itvl1 : finite_integer_interval; temp : maths_space; pspace : product_space; + itvl1 : finite_integer_interval; + itvl2 : finite_integer_interval; END_LOCAL; IF NOT EXISTS( func ) THEN RETURN( FALSE ); @@ -27425,8 +28698,8 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; ) : BOOLEAN; LOCAL - temp : maths_space; tspace : tuple_space; + temp : maths_space; END_LOCAL; IF NOT EXISTS( func ) THEN RETURN( FALSE ); @@ -27453,9 +28726,9 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; ) : BOOLEAN; LOCAL + tspace : tuple_space; temp : maths_space; base : INTEGER; - tspace : tuple_space; END_LOCAL; IF NOT EXISTS( func ) THEN RETURN( FALSE ); @@ -27491,9 +28764,9 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; FUNCTION gbsf_check_curve( cv : representation_item ) : BOOLEAN; - IF SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.BOUNDED_CURVE', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CONIC' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CURVE_REPLICA', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LINE' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.OFFSET_CURVE_3D'] + IF SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.BOUNDED_CURVE', + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CONIC' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CURVE_REPLICA', + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LINE' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.OFFSET_CURVE_3D'] * TYPEOF( cv ) ) > 1 THEN RETURN( FALSE ); END_IF; @@ -27513,7 +28786,7 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; RETURN( gbsf_check_curve( cv\curve_replica.parent_curve ) ); ELSE IF ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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 ( + self_intersect = FALSE ) OR ( cv\offset_curve_3d.self_intersect = UNKNOWN ) ) AND ( NOT ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POLYLINE' IN TYPEOF( cv\offset_curve_3d.basis_curve ) ) ) THEN RETURN( gbsf_check_curve( cv\offset_curve_3d.basis_curve ) ); ELSE @@ -27570,7 +28843,7 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; RETURN( gbsf_check_surface( pnt\point_on_surface.basis_surface ) ); ELSE IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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( + 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; @@ -27587,9 +28860,9 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; self_intersect = FALSE ) ) OR ( sf\b_spline_surface.self_intersect = UNKNOWN ) THEN RETURN( TRUE ); ELSE - IF SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SPHERICAL_SURFACE', + IF SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SPHERICAL_SURFACE', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.TOROIDAL_SURFACE' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'CURVE_BOUNDED_SURFACE' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.RECTANGULAR_TRIMMED_SURFACE'] * TYPEOF( sf ) ) + + 'CURVE_BOUNDED_SURFACE' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.RECTANGULAR_TRIMMED_SURFACE'] * TYPEOF( sf ) ) = 1 THEN RETURN( TRUE ); ELSE @@ -27627,12 +28900,12 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; ) : SET OF STRING; LOCAL - dpas : SET OF document_product_association; + result : SET OF STRING := []; + adrs_raw : SET OF applied_document_reference := bag_to_set( USEDIN( pdc, + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.APPLIED_DOCUMENT_REFERENCE.ITEMS' ) ); adrs_filtered : SET OF applied_document_reference := []; ras : SET OF role_association; - adrs_raw : SET OF applied_document_reference := bag_to_set( USEDIN( pdc, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.APPLIED_DOCUMENT_REFERENCE.ITEMS' ) ); - result : SET OF STRING := []; + dpas : SET OF document_product_association; END_LOCAL; REPEAT i := 1 TO HIINDEX( adrs_raw ) BY 1; IF adrs_raw[i]\document_reference.role\object_role.name = 'mandatory' THEN @@ -27640,7 +28913,7 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; END_IF; END_REPEAT; REPEAT i := 1 TO HIINDEX( adrs_filtered ) BY 1; - dpas := bag_to_set( USEDIN( adrs_filtered[i]\document_reference.assigned_document, + dpas := bag_to_set( USEDIN( adrs_filtered[i]\document_reference.assigned_document, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DOCUMENT_PRODUCT_ASSOCIATION.RELATING_DOCUMENT' ) ); REPEAT j := 1 TO HIINDEX( dpas ) BY 1; IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DOCUMENT_PRODUCT_EQUIVALENCE' IN TYPEOF( dpas[j] ) THEN @@ -27696,7 +28969,7 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; ) : text; LOCAL - description_bag : BAG OF description_attribute := USEDIN( obj, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + + description_bag : BAG OF description_attribute := USEDIN( obj, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'DESCRIPTION_ATTRIBUTE.' + 'DESCRIBED_ITEM' ); END_LOCAL; IF SIZEOF( description_bag ) = 1 THEN @@ -27720,7 +28993,7 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; END_IF; REPEAT i := 1 TO SIZEOF( undirected_link ) BY 1; CASE TRUE OF - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.REPRESENTATION_CONTEXT' IN TYPEOF( undirected_link[i] ) : + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.REPRESENTATION_CONTEXT' IN TYPEOF( undirected_link[i] ) : BEGIN IF ( nodes[i]\representation.context_of_items :=: undirected_link[i] ) AND ( nodes[i + 1]\representation. context_of_items :=: undirected_link[i] ) THEN @@ -27729,17 +29002,17 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; RETURN( ? ); END_IF; END; - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.REPRESENTATION_RELATIONSHIP' IN TYPEOF( undirected_link[i] ) : + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.REPRESENTATION_RELATIONSHIP' IN TYPEOF( undirected_link[i] ) : BEGIN IF ( ( nodes[i] :=: undirected_link[i]\representation_relationship.rep_1 ) AND ( nodes[i + 1] :=: undirected_link[i]\ - representation_relationship.rep_2 ) ) OR ( ( nodes[i] :=: undirected_link[i]\representation_relationship.rep_2 ) + representation_relationship.rep_2 ) ) OR ( ( nodes[i] :=: undirected_link[i]\representation_relationship.rep_2 ) AND ( nodes[i + 1] :=: undirected_link[i]\representation_relationship.rep_1 ) ) THEN INSERT( directed_link, representation_relationship( '', '', nodes[i + 1], nodes[i] ), i - 1 ); ELSE RETURN( ? ); END_IF; END; - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MAPPED_ITEM' IN TYPEOF( undirected_link[i] ) : + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MAPPED_ITEM' IN TYPEOF( undirected_link[i] ) : BEGIN IF ( nodes[i] IN using_representations( undirected_link[i] ) ) AND ( nodes[i + 1] :=: undirected_link[i]\mapped_item. mapping_source\representation_map.mapped_representation ) THEN @@ -27763,7 +29036,7 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; ) : identifier; LOCAL - id_bag : BAG OF id_attribute := USEDIN( obj, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'ID_ATTRIBUTE.' + + id_bag : BAG OF id_attribute := USEDIN( obj, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'ID_ATTRIBUTE.' + 'IDENTIFIED_ITEM' ); END_LOCAL; IF SIZEOF( id_bag ) = 1 THEN @@ -27811,7 +29084,7 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; ) : label; LOCAL - name_bag : BAG OF name_attribute := USEDIN( obj, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'NAME_ATTRIBUTE.' + + name_bag : BAG OF name_attribute := USEDIN( obj, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'NAME_ATTRIBUTE.' + 'NAMED_ITEM' ); END_LOCAL; IF SIZEOF( name_bag ) = 1 THEN @@ -27854,11 +29127,11 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SURFACE_CURVE' IN TYPEOF( sb ) THEN BEGIN - IF ( SIZEOF( sb\surface_curve.basis_surface ) = 1 ) AND ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANE' + IF ( SIZEOF( sb\surface_curve.basis_surface ) = 1 ) AND ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANE' IN TYPEOF( sb\surface_curve.basis_surface[1] ) ) THEN result := sb\surface_curve.basis_surface[1]; ELSE - IF ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANE' IN TYPEOF( sb\surface_curve.basis_surface[1] ) ) + IF ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANE' IN TYPEOF( sb\surface_curve.basis_surface[1] ) ) AND ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANE' IN TYPEOF( sb\surface_curve.basis_surface[2] ) ) THEN result := ?; @@ -27886,8 +29159,8 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; ) : SET OF property_definition_representation; LOCAL - pdr_set : SET OF property_definition_representation := []; pd_set : SET OF property_definition := []; + pdr_set : SET OF property_definition_representation := []; END_LOCAL; pd_set := bag_to_set( USEDIN( c_def_instance, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) ); IF SIZEOF( pd_set ) < 1 THEN @@ -27906,10 +29179,10 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; ) : direction; LOCAL - magnitude : REAL; d1 : REAL; d2 : REAL; d3 : REAL; + magnitude : REAL; result : direction := ?; END_LOCAL; IF ( cp1.dim <> 3 ) OR ( cp2.dim <> 3 ) THEN @@ -27936,7 +29209,7 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; ) : object_role; LOCAL - role_bag : BAG OF role_association := USEDIN( obj, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'ROLE_ASSOCIATION.' + role_bag : BAG OF role_association := USEDIN( obj, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'ROLE_ASSOCIATION.' + 'ITEM_WITH_ROLE' ); END_LOCAL; IF SIZEOF( role_bag ) = 1 THEN @@ -27952,15 +29225,15 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; ) : SET OF property_definition_representation; LOCAL - pdr_set : SET OF property_definition_representation := []; pd_set : SET OF property_definition := []; + pdr_set : SET OF property_definition_representation := []; END_LOCAL; pd_set := bag_to_set( USEDIN( s_a_instance, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) ); IF SIZEOF( pd_set ) < 1 THEN RETURN( pdr_set ); END_IF; REPEAT i := 1 TO HIINDEX( pd_set ) BY 1; - pdr_set := pdr_set + QUERY ( pdr <* USEDIN( pd_set[i], 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + + pdr_set := pdr_set + QUERY ( pdr <* USEDIN( pd_set[i], 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.' + 'DEFINITION' ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'SHAPE_DEFINITION_REPRESENTATION' IN TYPEOF( pdr ) ) ); END_REPEAT; @@ -27973,11 +29246,11 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; ) : SET OF shape_aspect; LOCAL - pdr_set : SET OF shape_aspect := []; pd_set : SET OF product_definition_shape := []; + pdr_set : SET OF shape_aspect := []; END_LOCAL; pd_set := bag_to_set( QUERY ( pd <* USEDIN( c_def_instance, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'PROPERTY_DEFINITION.DEFINITION' ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN + + 'PROPERTY_DEFINITION.DEFINITION' ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) ); IF SIZEOF( pd_set ) < 1 THEN RETURN( pdr_set ); @@ -27997,7 +29270,7 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; typenames : SET OF STRING := stripped_typeof( expr ); END_LOCAL; IF 'EXPRESSION' IN typenames THEN - RETURN( bool( ( 'NUMERIC_EXPRESSION' IN typenames ) OR ( 'STRING_EXPRESSION' IN typenames ) OR ( 'BOOLEAN_EXPRESSION' IN + RETURN( bool( ( 'NUMERIC_EXPRESSION' IN typenames ) OR ( 'STRING_EXPRESSION' IN typenames ) OR ( 'BOOLEAN_EXPRESSION' IN typenames ) ) ); END_IF; IF 'MATHS_FUNCTION' IN typenames THEN @@ -28055,13 +29328,13 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; LOCAL dqdr : BAG OF data_quality_definition_representation_relationship := []; - pd : BAG OF product_definition := []; pdqdr : BAG OF product_data_and_data_quality_relationship := []; + pd : BAG OF product_definition := []; END_LOCAL; - dqdr := USEDIN( dqir, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + + dqdr := USEDIN( dqir, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'DATA_QUALITY_DEFINITION_REPRESENTATION_RELATIONSHIP.' + 'USED_REPRESENTATION' ); REPEAT i := 1 TO SIZEOF( dqdr ) BY 1; - pdqdr := USEDIN( dqdr[i].definition, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + + pdqdr := USEDIN( dqdr[i].definition, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PRODUCT_DATA_AND_DATA_QUALITY_RELATIONSHIP.' + 'DATA_QUALITY' ); REPEAT j := 1 TO SIZEOF( pdqdr ) BY 1; pd := pd + pdqdr[j].product_data; @@ -28076,11 +29349,11 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; ) : BOOLEAN; LOCAL - iar : instance_attribute_reference; + reps : SET [1 : ?] OF representation := using_representations( item ); svri : SET [1 : ?] OF variational_representation_item; + iar : instance_attribute_reference; i : INTEGER; n : INTEGER := HIINDEX( reps ); - reps : SET [1 : ?] OF representation := using_representations( item ); END_LOCAL; IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.BOUND_VARIATIONAL_PARAMETER' IN TYPEOF( item ) THEN IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.INSTANCE_ATTRIBUTE_REFERENCE' IN TYPEOF( item\generic_variable. @@ -28118,7 +29391,7 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; END_REPEAT; END_IF; IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EXPLICIT_CONSTRAINT' IN TYPEOF( item ) THEN - IF SIZEOF( QUERY ( q <* ( item\explicit_constraint.reference_elements + item\explicit_constraint.constrained_elements ) | + IF SIZEOF( QUERY ( q <* ( item\explicit_constraint.reference_elements + item\explicit_constraint.constrained_elements ) | ( reps <> using_representations( q ) ) ) ) > 0 THEN RETURN( TRUE ); END_IF; @@ -28167,22 +29440,22 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MINUS_FUNCTION' IN TYPEOF( arg ) THEN RETURN( is_int_expr( arg\unary_numeric_expression.operand ) ); END_IF; - IF ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SIN_FUNCTION' IN TYPEOF( arg ) ) OR ( - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COS_FUNCTION' IN TYPEOF( arg ) ) OR ( - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.TAN_FUNCTION' IN TYPEOF( arg ) ) OR ( - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ASIN_FUNCTION' IN TYPEOF( arg ) ) OR ( - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ACOS_FUNCTION' IN TYPEOF( arg ) ) OR ( - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ATAN_FUNCTION' IN TYPEOF( arg ) ) OR ( - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EXP_FUNCTION' IN TYPEOF( arg ) ) OR ( - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LOG_FUNCTION' IN TYPEOF( arg ) ) OR ( - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LOG2_FUNCTION' IN TYPEOF( arg ) ) OR ( - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LOG10_FUNCTION' IN TYPEOF( arg ) ) OR ( + IF ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SIN_FUNCTION' IN TYPEOF( arg ) ) OR ( + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COS_FUNCTION' IN TYPEOF( arg ) ) OR ( + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.TAN_FUNCTION' IN TYPEOF( arg ) ) OR ( + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ASIN_FUNCTION' IN TYPEOF( arg ) ) OR ( + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ACOS_FUNCTION' IN TYPEOF( arg ) ) OR ( + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ATAN_FUNCTION' IN TYPEOF( arg ) ) OR ( + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EXP_FUNCTION' IN TYPEOF( arg ) ) OR ( + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LOG_FUNCTION' IN TYPEOF( arg ) ) OR ( + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LOG2_FUNCTION' IN TYPEOF( arg ) ) OR ( + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LOG10_FUNCTION' IN TYPEOF( arg ) ) OR ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SQUARE_ROOT_FUNCTION' IN TYPEOF( arg ) ) THEN RETURN( FALSE ); END_IF; - IF ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLUS_EXPRESSION' IN TYPEOF( arg ) ) OR ( - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MULT_EXPRESSION' IN TYPEOF( arg ) ) OR ( - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MAXIMUM_FUNCTION' IN TYPEOF( arg ) ) OR ( + IF ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLUS_EXPRESSION' IN TYPEOF( arg ) ) OR ( + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MULT_EXPRESSION' IN TYPEOF( arg ) ) OR ( + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MAXIMUM_FUNCTION' IN TYPEOF( arg ) ) OR ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MINIMUM_FUNCTION' IN TYPEOF( arg ) ) THEN REPEAT i := 1 TO SIZEOF( arg\multiple_arity_numeric_expression.operands ) BY 1; IF NOT is_int_expr( arg\multiple_arity_numeric_expression.operands[i] ) THEN @@ -28191,11 +29464,11 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; END_REPEAT; RETURN( TRUE ); END_IF; - IF ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MINUS_EXPRESSION' IN TYPEOF( arg ) ) OR ( + IF ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MINUS_EXPRESSION' IN TYPEOF( arg ) ) OR ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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 ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DIV_EXPRESSION' IN TYPEOF( arg ) ) OR ( + IF ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DIV_EXPRESSION' IN TYPEOF( arg ) ) OR ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MOD_EXPRESSION' IN TYPEOF( arg ) ) THEN RETURN( TRUE ); END_IF; @@ -28240,25 +29513,25 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MINUS_FUNCTION' IN TYPEOF( arg ) THEN RETURN( is_sql_mappable( arg\unary_numeric_expression.operand ) ); END_IF; - IF ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ABS_FUNCTION' IN TYPEOF( arg ) ) OR ( - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SIN_FUNCTION' IN TYPEOF( arg ) ) OR ( - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COS_FUNCTION' IN TYPEOF( arg ) ) OR ( - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.TAN_FUNCTION' IN TYPEOF( arg ) ) OR ( - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ASIN_FUNCTION' IN TYPEOF( arg ) ) OR ( - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ACOS_FUNCTION' IN TYPEOF( arg ) ) OR ( - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ATAN_FUNCTION' IN TYPEOF( arg ) ) OR ( - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EXP_FUNCTION' IN TYPEOF( arg ) ) OR ( - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LOG_FUNCTION' IN TYPEOF( arg ) ) OR ( - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LOG2_FUNCTION' IN TYPEOF( arg ) ) OR ( - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LOG10_FUNCTION' IN TYPEOF( arg ) ) OR ( - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SQUARE_ROOT_FUNCTION' IN TYPEOF( arg ) ) OR ( - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.VALUE_FUNCTION' IN TYPEOF( arg ) ) OR ( + IF ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ABS_FUNCTION' IN TYPEOF( arg ) ) OR ( + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SIN_FUNCTION' IN TYPEOF( arg ) ) OR ( + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COS_FUNCTION' IN TYPEOF( arg ) ) OR ( + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.TAN_FUNCTION' IN TYPEOF( arg ) ) OR ( + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ASIN_FUNCTION' IN TYPEOF( arg ) ) OR ( + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ACOS_FUNCTION' IN TYPEOF( arg ) ) OR ( + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ATAN_FUNCTION' IN TYPEOF( arg ) ) OR ( + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EXP_FUNCTION' IN TYPEOF( arg ) ) OR ( + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LOG_FUNCTION' IN TYPEOF( arg ) ) OR ( + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LOG2_FUNCTION' IN TYPEOF( arg ) ) OR ( + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LOG10_FUNCTION' IN TYPEOF( arg ) ) OR ( + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SQUARE_ROOT_FUNCTION' IN TYPEOF( arg ) ) OR ( + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.VALUE_FUNCTION' IN TYPEOF( arg ) ) OR ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_FUNCTION' IN TYPEOF( arg ) ) THEN RETURN( FALSE ); END_IF; - IF ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLUS_EXPRESSION' IN TYPEOF( arg ) ) OR ( - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MULT_EXPRESSION' IN TYPEOF( arg ) ) OR ( - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MAXIMUM_FUNCTION' IN TYPEOF( arg ) ) OR ( + IF ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLUS_EXPRESSION' IN TYPEOF( arg ) ) OR ( + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MULT_EXPRESSION' IN TYPEOF( arg ) ) OR ( + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MAXIMUM_FUNCTION' IN TYPEOF( arg ) ) OR ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MINIMUM_FUNCTION' IN TYPEOF( arg ) ) THEN REPEAT i := 1 TO SIZEOF( arg\multiple_arity_numeric_expression.operands ) BY 1; IF NOT is_sql_mappable( arg\multiple_arity_numeric_expression.operands[i] ) THEN @@ -28267,13 +29540,13 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; END_REPEAT; RETURN( TRUE ); END_IF; - IF ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MINUS_EXPRESSION' IN TYPEOF( arg ) ) OR ( + IF ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MINUS_EXPRESSION' IN TYPEOF( arg ) ) OR ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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 ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DIV_EXPRESSION' IN TYPEOF( arg ) ) OR ( - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MOD_EXPRESSION' IN TYPEOF( arg ) ) OR ( + IF ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DIV_EXPRESSION' IN TYPEOF( arg ) ) OR ( + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MOD_EXPRESSION' IN TYPEOF( arg ) ) OR ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POWER_EXPRESSION' IN TYPEOF( arg ) ) THEN RETURN( FALSE ); END_IF; @@ -28283,11 +29556,11 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.NOT_EXPRESSION' IN TYPEOF( arg ) THEN RETURN( is_sql_mappable( arg\unary_generic_expression.operand ) ); END_IF; - IF ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ODD_FUNCTION' IN TYPEOF( arg ) ) OR ( + IF ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ODD_FUNCTION' IN TYPEOF( arg ) ) OR ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.XOR_EXPRESSION' IN TYPEOF( arg ) ) THEN RETURN( FALSE ); END_IF; - IF ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.AND_EXPRESSION' IN TYPEOF( arg ) ) OR ( + IF ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.AND_EXPRESSION' IN TYPEOF( arg ) ) OR ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.OR_EXPRESSION' IN TYPEOF( arg ) ) THEN REPEAT i := 1 TO SIZEOF( arg\multiple_arity_boolean_expression.operands ) BY 1; IF NOT is_sql_mappable( arg\multiple_arity_boolean_expression.operands[i] ) THEN @@ -28300,30 +29573,30 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; RETURN( is_sql_mappable( arg\binary_generic_expression.operands[1] ) AND is_sql_mappable( arg\binary_generic_expression. operands[2] ) ); END_IF; - IF ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COMPARISON_EQUAL' IN TYPEOF( arg ) ) OR ( - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COMPARISON_GREATER' IN TYPEOF( arg ) ) OR ( - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COMPARISON_GREATER_EQUAL' IN TYPEOF( arg ) ) OR ( - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COMPARISON_LESS' IN TYPEOF( arg ) ) OR ( - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COMPARISON_LESS_EQUAL' IN TYPEOF( arg ) ) OR ( - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COMPARISON_NOT_EQUAL' IN TYPEOF( arg ) ) OR ( + IF ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COMPARISON_EQUAL' IN TYPEOF( arg ) ) OR ( + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COMPARISON_GREATER' IN TYPEOF( arg ) ) OR ( + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COMPARISON_GREATER_EQUAL' IN TYPEOF( arg ) ) OR ( + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COMPARISON_LESS' IN TYPEOF( arg ) ) OR ( + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COMPARISON_LESS_EQUAL' IN TYPEOF( arg ) ) OR ( + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COMPARISON_NOT_EQUAL' IN TYPEOF( arg ) ) OR ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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 ) + 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 ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.NUMERIC_DEFINED_FUNCTION' IN TYPEOF( arg ) ) OR ( - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.BOOLEAN_DEFINED_FUNCTION' IN TYPEOF( arg ) ) OR ( + IF ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.NUMERIC_DEFINED_FUNCTION' IN TYPEOF( arg ) ) OR ( + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.BOOLEAN_DEFINED_FUNCTION' IN TYPEOF( arg ) ) OR ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.STRING_DEFINED_FUNCTION' IN TYPEOF( arg ) ) THEN RETURN( FALSE ); END_IF; IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SIMPLE_STRING_EXPRESSION' IN TYPEOF( arg ) THEN RETURN( TRUE ); END_IF; - IF ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.INDEX_EXPRESSION' IN TYPEOF( arg ) ) OR ( - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SUBSTRING_EXPRESSION' IN TYPEOF( arg ) ) OR ( - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CONCAT_EXPRESSION' IN TYPEOF( arg ) ) OR ( + IF ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.INDEX_EXPRESSION' IN TYPEOF( arg ) ) OR ( + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SUBSTRING_EXPRESSION' IN TYPEOF( arg ) ) OR ( + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CONCAT_EXPRESSION' IN TYPEOF( arg ) ) OR ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FORMAT_FUNCTION' IN TYPEOF( arg ) ) THEN RETURN( FALSE ); END_IF; @@ -28402,8 +29675,8 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; ) : LIST OF maths_value; LOCAL - j : INTEGER := 0; result : LIST OF maths_value := []; + j : INTEGER := 0; END_LOCAL; REPEAT i := LOINDEX( aggr ) TO HIINDEX( aggr ) BY 1; IF k <= SIZEOF( aggr[i] ) THEN @@ -28497,7 +29770,7 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; FUNCTION make_boolean_literal( lit_value : BOOLEAN ) : boolean_literal; - RETURN( boolean_literal( lit_value ) || simple_boolean_expression( ) || boolean_expression( ) || expression( ) || + RETURN( boolean_literal( lit_value ) || simple_boolean_expression( ) || boolean_expression( ) || expression( ) || generic_expression( ) || simple_generic_expression( ) || generic_literal( ) ); END_FUNCTION; @@ -28505,7 +29778,7 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; FUNCTION make_cartesian_complex_number_region( real_constraint, imag_constraint : real_interval ) : cartesian_complex_number_region; - RETURN( cartesian_complex_number_region( real_constraint, imag_constraint ) || maths_space( ) || generic_expression( ) || + RETURN( cartesian_complex_number_region( real_constraint, imag_constraint ) || maths_space( ) || generic_expression( ) || generic_literal( ) || simple_generic_expression( ) ); END_FUNCTION; @@ -28513,7 +29786,7 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; FUNCTION make_complex_number_literal( rpart, ipart : REAL ) : complex_number_literal; - RETURN( complex_number_literal( rpart, ipart ) || generic_literal( ) || simple_generic_expression( ) || + RETURN( complex_number_literal( rpart, ipart ) || generic_literal( ) || simple_generic_expression( ) || generic_expression( ) ); END_FUNCTION; @@ -28521,7 +29794,7 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; FUNCTION make_elementary_function( func_id : elementary_function_enumerators ) : elementary_function; - RETURN( elementary_function( func_id ) || maths_function( ) || generic_expression( ) || generic_literal( ) || + RETURN( elementary_function( func_id ) || maths_function( ) || generic_expression( ) || generic_literal( ) || simple_generic_expression( ) ); END_FUNCTION; @@ -28529,13 +29802,15 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; FUNCTION make_elementary_space( space_id : elementary_space_enumerators ) : elementary_space; - RETURN( elementary_space( space_id ) || maths_space( ) || generic_expression( ) || generic_literal( ) || + RETURN( elementary_space( space_id ) || maths_space( ) || generic_expression( ) || generic_literal( ) || simple_generic_expression( ) ); END_FUNCTION; FUNCTION make_extended_tuple_space( - base : product_space; +(* next line replaced by the line thereafter as patch for BZ#5052 + base : product_space; *) + base : tuple_space; extender : maths_space ) : extended_tuple_space; RETURN( extended_tuple_space( base, extender ) || maths_space( ) || generic_expression( ) || generic_literal( ) || @@ -28547,7 +29822,7 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; min : INTEGER; max : INTEGER ) : finite_integer_interval; - RETURN( finite_integer_interval( min, max ) || maths_space( ) || generic_expression( ) || generic_literal( ) || + RETURN( finite_integer_interval( min, max ) || maths_space( ) || generic_expression( ) || generic_literal( ) || simple_generic_expression( ) ); END_FUNCTION; @@ -28558,7 +29833,7 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; max : REAL; maxclo : open_closed ) : finite_real_interval; - RETURN( finite_real_interval( min, minclo, max, maxclo ) || maths_space( ) || generic_expression( ) || generic_literal( ) + RETURN( finite_real_interval( min, minclo, max, maxclo ) || maths_space( ) || generic_expression( ) || generic_literal( ) || simple_generic_expression( ) ); END_FUNCTION; @@ -28566,7 +29841,7 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; FUNCTION make_finite_space( members : SET OF maths_value ) : finite_space; - RETURN( finite_space( members ) || maths_space( ) || generic_expression( ) || generic_literal( ) || + RETURN( finite_space( members ) || maths_space( ) || generic_expression( ) || generic_literal( ) || simple_generic_expression( ) ); END_FUNCTION; @@ -28575,7 +29850,7 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; afunction : maths_function_select; arguments : LIST [1 : ?] OF maths_value ) : function_application; - RETURN( function_application( afunction, arguments ) || multiple_arity_generic_expression( convert_to_maths_function( + RETURN( function_application( afunction, arguments ) || multiple_arity_generic_expression( convert_to_maths_function( afunction ) + convert_to_operands( arguments ) ) || generic_expression( ) ); END_FUNCTION; @@ -28586,7 +29861,7 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; range_constraint : space_constraint_type; range_argument : maths_space ) : function_space; - RETURN( function_space( domain_constraint, domain_argument, range_constraint, range_argument ) || maths_space( ) || + RETURN( function_space( domain_constraint, domain_argument, range_constraint, range_argument ) || maths_space( ) || generic_expression( ) || generic_literal( ) || simple_generic_expression( ) ); END_FUNCTION; @@ -28594,7 +29869,7 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; FUNCTION make_int_literal( lit_value : INTEGER ) : int_literal; - RETURN( int_literal( ) || literal_number( lit_value ) || simple_numeric_expression( ) || numeric_expression( ) || + RETURN( int_literal( ) || literal_number( lit_value ) || simple_numeric_expression( ) || numeric_expression( ) || expression( ) || generic_expression( ) || simple_generic_expression( ) || generic_literal( ) ); END_FUNCTION; @@ -28602,7 +29877,7 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; FUNCTION make_listed_product_space( factors : LIST OF maths_space ) : listed_product_space; - RETURN( listed_product_space( factors ) || maths_space( ) || generic_expression( ) || generic_literal( ) || + RETURN( listed_product_space( factors ) || maths_space( ) || generic_expression( ) || generic_literal( ) || simple_generic_expression( ) ); END_FUNCTION; @@ -28651,7 +29926,7 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; prepfuncs : LIST [2 : ?] OF maths_function; finfunc : maths_function_select ) : parallel_composed_function; - RETURN( parallel_composed_function( srcdom, prepfuncs, finfunc ) || maths_function( ) || generic_expression( ) || + RETURN( parallel_composed_function( srcdom, prepfuncs, finfunc ) || maths_function( ) || generic_expression( ) || multiple_arity_generic_expression( convert_to_operands_prcmfn( srcdom, prepfuncs, finfunc ) ) ); END_FUNCTION; @@ -28670,7 +29945,7 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; min : REAL; minclo : open_closed ) : real_interval_from_min; - RETURN( real_interval_from_min( min, minclo ) || maths_space( ) || generic_expression( ) || generic_literal( ) || + RETURN( real_interval_from_min( min, minclo ) || maths_space( ) || generic_expression( ) || generic_literal( ) || simple_generic_expression( ) ); END_FUNCTION; @@ -28679,7 +29954,7 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; max : REAL; maxclo : open_closed ) : real_interval_to_max; - RETURN( real_interval_to_max( max, maxclo ) || maths_space( ) || generic_expression( ) || generic_literal( ) || + RETURN( real_interval_to_max( max, maxclo ) || maths_space( ) || generic_expression( ) || generic_literal( ) || simple_generic_expression( ) ); END_FUNCTION; @@ -28687,7 +29962,7 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; FUNCTION make_real_literal( lit_value : REAL ) : real_literal; - RETURN( real_literal( ) || literal_number( lit_value ) || simple_numeric_expression( ) || numeric_expression( ) || + RETURN( real_literal( ) || literal_number( lit_value ) || simple_numeric_expression( ) || numeric_expression( ) || expression( ) || generic_expression( ) || simple_generic_expression( ) || generic_literal( ) ); END_FUNCTION; @@ -28695,7 +29970,7 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; FUNCTION make_string_literal( lit_value : STRING ) : string_literal; - RETURN( string_literal( lit_value ) || simple_string_expression( ) || string_expression( ) || expression( ) || + RETURN( string_literal( lit_value ) || simple_string_expression( ) || string_expression( ) || expression( ) || generic_expression( ) || simple_generic_expression( ) || generic_literal( ) ); END_FUNCTION; @@ -28704,7 +29979,7 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; base : maths_space; exponent : positive_integer ) : uniform_product_space; - RETURN( uniform_product_space( base, exponent ) || maths_space( ) || generic_expression( ) || generic_literal( ) || + RETURN( uniform_product_space( base, exponent ) || maths_space( ) || generic_expression( ) || generic_literal( ) || simple_generic_expression( ) ); END_FUNCTION; @@ -28716,8 +29991,8 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; LOCAL types : SET OF STRING := TYPEOF( spc ); END_LOCAL; - RETURN( bool( ( ( schema_prefix + 'FINITE_INTEGER_INTERVAL' ) IN types ) OR ( ( schema_prefix + 'INTEGER_INTERVAL_TO_MAX' ) - IN types ) OR ( ( schema_prefix + 'FINITE_REAL_INTERVAL' ) IN types ) OR ( ( schema_prefix + 'REAL_INTERVAL_TO_MAX' ) IN + RETURN( bool( ( ( schema_prefix + 'FINITE_INTEGER_INTERVAL' ) IN types ) OR ( ( schema_prefix + 'INTEGER_INTERVAL_TO_MAX' ) + IN types ) OR ( ( schema_prefix + 'FINITE_REAL_INTERVAL' ) IN types ) OR ( ( schema_prefix + 'REAL_INTERVAL_TO_MAX' ) IN types ) ) ); END_FUNCTION; @@ -28757,19 +30032,19 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; END_FUNCTION; LOCAL - factors : LIST OF maths_space; - stypes : SET OF STRING := stripped_typeof( s ); - s : maths_space := simplify_maths_space( spc ); - vtypes : SET OF STRING := stripped_typeof( v ); v : maths_value := simplify_maths_value( convert_to_maths_value( val ) ); + vtypes : SET OF STRING := stripped_typeof( v ); + s : maths_space := simplify_maths_space( spc ); + stypes : SET OF STRING := stripped_typeof( s ); tmp_int : INTEGER; - sspc : maths_space; tmp_real : REAL; - cum : LOGICAL; - smem : SET OF maths_value; - lgcl : LOGICAL; tmp_cmplx : complex_number_literal; + lgcl : LOGICAL; + cum : LOGICAL; vspc : maths_space; + sspc : maths_space; + smem : SET OF maths_value; + factors : LIST OF maths_space; END_LOCAL; IF NOT EXISTS( s ) THEN RETURN( FALSE ); @@ -28777,7 +30052,7 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; IF NOT EXISTS( v ) THEN RETURN( s = the_generics ); END_IF; - IF ( 'GENERIC_EXPRESSION' IN vtypes ) AND ( NOT ( 'MATHS_SPACE' IN vtypes ) ) AND ( NOT ( 'MATHS_FUNCTION' IN vtypes ) ) AND + IF ( 'GENERIC_EXPRESSION' IN vtypes ) AND ( NOT ( 'MATHS_SPACE' IN vtypes ) ) AND ( NOT ( 'MATHS_FUNCTION' IN vtypes ) ) AND ( NOT ( 'COMPLEX_NUMBER_LITERAL' IN vtypes ) ) THEN IF has_values_space( v ) THEN vspc := values_space_of( v ); @@ -28870,7 +30145,7 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; END_IF; IF 'CARTESIAN_COMPLEX_NUMBER_REGION' IN stypes THEN IF 'COMPLEX_NUMBER_LITERAL' IN vtypes THEN - RETURN( member_of( v\complex_number_literal.real_part, s\cartesian_complex_number_region.real_constraint ) AND + RETURN( member_of( v\complex_number_literal.real_part, s\cartesian_complex_number_region.real_constraint ) AND member_of( v\complex_number_literal.imag_part, s\cartesian_complex_number_region.imag_constraint ) ); END_IF; RETURN( FALSE ); @@ -28994,7 +30269,7 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; LOCAL types : SET OF STRING := TYPEOF( spc ); END_LOCAL; - RETURN( bool( ( ( schema_prefix + 'FINITE_INTEGER_INTERVAL' ) IN types ) OR ( ( schema_prefix + 'INTEGER_INTERVAL_FROM_MIN' ) + RETURN( bool( ( ( schema_prefix + 'FINITE_INTEGER_INTERVAL' ) IN types ) OR ( ( schema_prefix + 'INTEGER_INTERVAL_FROM_MIN' ) IN types ) OR ( ( schema_prefix + 'FINITE_REAL_INTERVAL' ) IN types ) OR ( ( schema_prefix + 'REAL_INTERVAL_FROM_MIN' ) IN types ) ) ); @@ -29058,9 +30333,9 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; FUNCTION msf_curve_check( cv : representation_item ) : BOOLEAN; - IF SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.BOUNDED_CURVE', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CONIC' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CURVE_REPLICA', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LINE' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.OFFSET_CURVE_3D'] + IF SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.BOUNDED_CURVE', + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CONIC' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CURVE_REPLICA', + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LINE' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.OFFSET_CURVE_3D'] * TYPEOF( cv ) ) > 1 THEN RETURN( FALSE ); END_IF; @@ -29068,7 +30343,7 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; self_intersect = FALSE ) ) OR ( cv\b_spline_curve.self_intersect = UNKNOWN ) THEN RETURN( TRUE ); ELSE - IF SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CONIC', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LINE'] + IF SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CONIC', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LINE'] * TYPEOF( cv ) ) = 1 THEN RETURN( TRUE ); ELSE @@ -29076,7 +30351,7 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; RETURN( msf_curve_check( cv\curve_replica.parent_curve ) ); ELSE IF ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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 ( + self_intersect = FALSE ) OR ( cv\offset_curve_3d.self_intersect = UNKNOWN ) ) AND ( NOT ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POLYLINE' IN TYPEOF( cv\offset_curve_3d.basis_curve ) ) ) THEN RETURN( msf_curve_check( cv\offset_curve_3d.basis_curve ) ); ELSE @@ -29150,9 +30425,9 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; FUNCTION nmsf_curve_check( cv : representation_item ) : BOOLEAN; - IF SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.BOUNDED_CURVE', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CONIC' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CURVE_REPLICA', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LINE' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.OFFSET_CURVE_3D'] + IF SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.BOUNDED_CURVE', + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CONIC' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CURVE_REPLICA', + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LINE' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.OFFSET_CURVE_3D'] * TYPEOF( cv ) ) > 1 THEN RETURN( FALSE ); ELSE @@ -29168,7 +30443,7 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; RETURN( nmsf_curve_check( cv\curve_replica.parent_curve ) ); ELSE IF ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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 ( + self_intersect = FALSE ) OR ( cv\offset_curve_3d.self_intersect = UNKNOWN ) ) AND ( NOT ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POLYLINE' IN TYPEOF( cv\offset_curve_3d.basis_curve ) ) ) THEN RETURN( nmsf_curve_check( cv\offset_curve_3d.basis_curve ) ); ELSE @@ -29278,8 +30553,8 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; ) : BOOLEAN; LOCAL - refs_plus : SET OF maths_space; types : SET OF STRING; + refs_plus : SET OF maths_space; END_LOCAL; IF spc IN refs THEN RETURN( FALSE ); @@ -29287,14 +30562,14 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; types := TYPEOF( spc ); refs_plus := refs + spc; IF ( schema_prefix + 'FINITE_SPACE' ) IN types THEN - RETURN( bool( SIZEOF( QUERY ( sp <* QUERY ( mem <* spc\finite_space.members | ( ( schema_prefix + 'MATHS_SPACE' ) IN + RETURN( bool( SIZEOF( QUERY ( sp <* QUERY ( mem <* spc\finite_space.members | ( ( schema_prefix + 'MATHS_SPACE' ) IN TYPEOF( mem ) ) ) | ( NOT no_cyclic_space_reference( sp, refs_plus ) ) ) ) = 0 ) ); END_IF; IF ( schema_prefix + 'UNIFORM_PRODUCT_SPACE' ) IN types THEN RETURN( no_cyclic_space_reference( spc\uniform_product_space.base, refs_plus ) ); END_IF; IF ( schema_prefix + 'LISTED_PRODUCT_SPACE' ) IN types THEN - RETURN( bool( SIZEOF( QUERY ( fac <* spc\listed_product_space.factors | ( NOT no_cyclic_space_reference( fac, refs_plus ) ) ) ) + RETURN( bool( SIZEOF( QUERY ( fac <* spc\listed_product_space.factors | ( NOT no_cyclic_space_reference( fac, refs_plus ) ) ) ) = 0 ) ); END_IF; IF ( schema_prefix + 'EXTENDED_TUPLE_SPACE' ) IN types THEN @@ -29327,9 +30602,9 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; LOCAL ndim : INTEGER; v : direction := dummy_gri || direction( [1, 0, 0] ); + result : vector_or_direction; vec : vector := dummy_gri || vector( v, 1 ); mag : REAL; - result : vector_or_direction; END_LOCAL; IF NOT EXISTS( arg ) THEN result := ?; @@ -29355,7 +30630,7 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; IF mag > 0 THEN mag := SQRT( mag ); REPEAT i := 1 TO ndim BY 1; - v.direction_ratios[i] := v.direction_ratios[i] DIV mag; + v.direction_ratios[i] := v.direction_ratios[i] / mag; END_REPEAT; IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.VECTOR' IN TYPEOF( arg ) THEN vec.orientation := v; @@ -29395,9 +30670,9 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; ) : LOGICAL; LOCAL + types : SET OF STRING := stripped_typeof( spc ); factors : LIST OF maths_space; cum : LOGICAL := TRUE; - types : SET OF STRING := stripped_typeof( spc ); END_LOCAL; IF 'UNIFORM_PRODUCT_SPACE' IN types THEN RETURN( subspace_of_es( spc\uniform_product_space.base, es_numbers ) ); @@ -29433,9 +30708,9 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; pass : BOOLEAN := TRUE; END_LOCAL; REPEAT i := 1 TO SIZEOF( input ) BY 1; - IF ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PATH_AREA_WITH_PARAMETERS' IN TYPEOF( input[i] ) ) AND ( ( + IF ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PATH_AREA_WITH_PARAMETERS' IN TYPEOF( input[i] ) ) AND ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CIRCLE' IN TYPEOF( input[i]\mapped_item.mapping_source\ - representation_map.mapping_origin ) ) OR ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COMPOSITE_CURVE' IN + representation_map.mapping_origin ) ) OR ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COMPOSITE_CURVE' IN TYPEOF( input[i]\mapped_item.mapping_source\representation_map.mapping_origin ) ) AND ( input[i]\mapped_item. mapping_source\representation_map.mapping_origin\composite_curve.closed_curve = TRUE ) ) ) THEN pass := FALSE; @@ -29453,10 +30728,10 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; the_reverse : oriented_open_shell; END_LOCAL; IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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( ) || + 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( ) || + 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 ); @@ -29485,8 +30760,8 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; ) : BOOLEAN; LOCAL - finfun : maths_function := convert_to_maths_function( final ); tplsp : tuple_space := the_zero_tuple_space; + finfun : maths_function := convert_to_maths_function( final ); END_LOCAL; REPEAT i := 1 TO SIZEOF( funcs ) BY 1; tplsp := assoc_product_space( tplsp, funcs[i].range ); @@ -29514,10 +30789,10 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; ) : BOOLEAN; LOCAL - fspc : maths_space; domn : tuple_space := domain; - k : INTEGER; + fspc : maths_space; dim : INTEGER; + k : INTEGER; END_LOCAL; IF ( space_dimension( domain ) = 1 ) AND ( ( schema_prefix + 'TUPLE_SPACE' ) IN TYPEOF( factor1( domain ) ) ) THEN domn := factor1( domain ); @@ -29577,30 +30852,30 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; LOCAL converted_angle : plane_angle_measure := angle; - pa_units : SET OF unit := []; link_rep : kinematic_link_representation := representation_of_link( pair.joint.edge_start ); - pau : unit; link_cntxt : representation_context; + pa_units : SET OF unit := []; + pau : unit; END_LOCAL; link_cntxt := link_rep\representation.context_of_items; IF NOT ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.GLOBAL_UNIT_ASSIGNED_CONTEXT' IN TYPEOF( link_cntxt ) ) THEN RETURN( ? ); END_IF; - pa_units := QUERY ( unit <* link_cntxt\global_unit_assigned_context.units | ( + pa_units := QUERY ( unit <* link_cntxt\global_unit_assigned_context.units | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANE_ANGLE_UNIT' IN TYPEOF( unit ) ) ); IF SIZEOF( pa_units ) <> 1 THEN RETURN( ? ); END_IF; pau := pa_units[1]; - IF ( NOT ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SI_UNIT' IN TYPEOF( pau ) ) ) AND ( NOT ( + IF ( NOT ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SI_UNIT' IN TYPEOF( pau ) ) ) AND ( NOT ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CONVERSION_BASED_UNIT' IN TYPEOF( pau ) ) ) THEN RETURN( ? ); END_IF; REPEAT WHILE 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CONVERSION_BASED_UNIT' IN TYPEOF( pau ); converted_angle := converted_angle * pau\conversion_based_unit.conversion_factor.value_component; pau := pau\conversion_based_unit.conversion_factor.unit_component; - IF ( ( NOT ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SI_UNIT' IN TYPEOF( pau ) ) ) AND ( NOT ( - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CONVERSION_BASED_UNIT' IN TYPEOF( pau ) ) ) ) OR ( NOT ( + IF ( ( NOT ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SI_UNIT' IN TYPEOF( pau ) ) ) AND ( NOT ( + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CONVERSION_BASED_UNIT' IN TYPEOF( pau ) ) ) ) OR ( NOT ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANE_ANGLE_UNIT' IN TYPEOF( pau ) ) ) THEN RETURN( ? ); END_IF; @@ -29611,7 +30886,7 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; CASE pau\si_unit.prefix OF si_prefix.exa : RETURN( 1.e+18 * converted_angle ); si_prefix.peta : RETURN( 1.e+15 * converted_angle ); - si_prefix.tera : RETURN( 1000000000000 * converted_angle ); + si_prefix.tera : RETURN( 1.e+12 * converted_angle ); si_prefix.giga : RETURN( 1000000000 * converted_angle ); si_prefix.mega : RETURN( 1000000 * converted_angle ); si_prefix.kilo : RETURN( 1000 * converted_angle ); @@ -29681,31 +30956,31 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; ) : SET OF shape_representation; LOCAL - exti : SET OF extreme_instance := []; - sdqr : SET OF shape_data_quality_inspection_result_representation := []; results : SET OF shape_representation := []; - sdisr : SET OF shape_data_quality_inspected_shape_and_result_relationship := []; - sdiir : SET OF shape_data_quality_inspection_instance_report := []; + exti : SET OF extreme_instance := []; ii_ei : SET OF instance_report_item_with_extreme_instances := []; + sdiir : SET OF shape_data_quality_inspection_instance_report := []; + sdqr : SET OF shape_data_quality_inspection_result_representation := []; + sdisr : SET OF shape_data_quality_inspected_shape_and_result_relationship := []; END_LOCAL; - exti := exti + bag_to_set( USEDIN( item, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'EXTREME_INSTANCE.' + + exti := exti + bag_to_set( USEDIN( item, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'EXTREME_INSTANCE.' + 'LOCATIONS_OF_EXTREME_VALUE' ) ); REPEAT i := 1 TO HIINDEX( exti ) BY 1; - ii_ei := ii_ei + bag_to_set( USEDIN( exti[i], 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + + ii_ei := ii_ei + bag_to_set( USEDIN( exti[i], 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'INSTANCE_REPORT_ITEM_WITH_EXTREME_INSTANCES.' + 'EXTREME_INSTANCES' ) ); END_REPEAT; REPEAT i := 1 TO HIINDEX( ii_ei ) BY 1; - sdiir := sdiir + bag_to_set( USEDIN( ii_ei[i], 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + + sdiir := sdiir + bag_to_set( USEDIN( ii_ei[i], 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'SHAPE_DATA_QUALITY_INSPECTION_INSTANCE_REPORT.' + 'INSPECTED_INSTANCES' ) ); END_REPEAT; REPEAT i := 1 TO HIINDEX( sdiir ) BY 1; - sdqr := sdqr + QUERY ( i1 <* bag_to_set( USEDIN( sdiir[i].inspection_result, - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.REPRESENTATION.ITEMS' ) ) | ( ( - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'SHAPE_DATA_QUALITY_INSPECTION_RESULT_REPRESENTATION' ) IN + sdqr := sdqr + QUERY ( i1 <* bag_to_set( USEDIN( sdiir[i].inspection_result, + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.REPRESENTATION.ITEMS' ) ) | ( ( + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'SHAPE_DATA_QUALITY_INSPECTION_RESULT_REPRESENTATION' ) IN TYPEOF( i1 ) ) ); END_REPEAT; REPEAT i := 1 TO HIINDEX( sdqr ) BY 1; - sdisr := sdisr + bag_to_set( USEDIN( sdqr[i], 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + + sdisr := sdisr + bag_to_set( USEDIN( sdqr[i], 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'SHAPE_DATA_QUALITY_INSPECTED_SHAPE_AND_RESULT_RELATIONSHIP.' + 'REP_2' ) ); END_REPEAT; REPEAT i := 1 TO HIINDEX( sdisr ) BY 1; @@ -29786,9 +31061,9 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; ) : direction; LOCAL - temp : vector; - v : direction; y_axis : vector; + v : direction; + temp : vector; END_LOCAL; IF NOT EXISTS( arg ) THEN v := dummy_gri || direction( [0, 1, 0] ); @@ -29824,8 +31099,8 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; ) : LIST OF positive_integer; LOCAL - temp : maths_space; tspace : tuple_space; + temp : maths_space; result : LIST OF positive_integer := []; END_LOCAL; IF ( schema_prefix + 'EXPLICIT_TABLE_FUNCTION' ) IN TYPEOF( func ) THEN @@ -29902,7 +31177,7 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; PROCEDURE parts( c : complex_number_literal; - x, y : REAL ); + VAR x, y : REAL ); x := c.real_part; y := c.imag_part; @@ -29910,15 +31185,25 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; CONSTANT cnlit : STRING := - schema_prefix + 'COMPLEX_NUMBER_LITERAL'; + schema_prefix + + + 'COMPLEX_NUMBER_LITERAL' ; END_CONSTANT; LOCAL + types : SET OF STRING := stripped_typeof( expr.func ); + ef_val : elementary_function_enumerators; + is_elementary : BOOLEAN := FALSE; + v : maths_value; + v1 : maths_value; + v2 : maths_value; + v3 : maths_value; + vlist : LIST OF maths_value := []; + gexpr : generic_expression; pairs : SET [1 : ?] OF LIST [2 : 2] OF maths_value; boo : BOOLEAN; - mem : SET OF maths_value := []; - bi2 : BINARY; lgc : LOGICAL; + cum : LOGICAL; j : INTEGER; k : INTEGER; n : INTEGER; @@ -29928,21 +31213,13 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; s : REAL; t : REAL; u : REAL; - v : maths_value; - bin : BINARY; - cum : LOGICAL; - v2 : maths_value; - v3 : maths_value; - v1 : maths_value; - vlist : LIST OF maths_value := []; - tpl : LIST OF maths_value; - is_elementary : BOOLEAN := FALSE; - st2 : STRING; - types : SET OF STRING := stripped_typeof( expr.func ); - ef_val : elementary_function_enumerators; - tp2 : LIST OF maths_value; str : STRING; - gexpr : generic_expression; + st2 : STRING; + bin : BINARY; + bi2 : BINARY; + tpl : LIST OF maths_value; + tp2 : LIST OF maths_value; + mem : SET OF maths_value := []; END_LOCAL; REPEAT i := 1 TO SIZEOF( expr.arguments ) BY 1; v := simplify_maths_value( expr.arguments[i] ); @@ -29967,7 +31244,7 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; END_IF; IF is_elementary THEN CASE ef_val OF - ef_and : + ef_and : BEGIN cum := TRUE; REPEAT i := SIZEOF( vlist ) TO 1 BY -1; @@ -29990,7 +31267,7 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; RETURN( vlist[1] ); END_IF; END; - ef_or : + ef_or : BEGIN cum := FALSE; REPEAT i := SIZEOF( vlist ) TO 1 BY -1; @@ -30017,7 +31294,7 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; lgc := v1; RETURN( ctmv( NOT lgc ) ); END_IF; - ef_xor : + ef_xor : BEGIN IF 'LOGICAL' IN TYPEOF( v1 ) THEN lgc := v1; @@ -30054,7 +31331,7 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; j := v1; RETURN( ctmv( -j ) ); END_IF; - ef_add_i : + ef_add_i : BEGIN j := 0; REPEAT i := SIZEOF( vlist ) TO 1 BY -1; @@ -30079,7 +31356,7 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; k := v2; RETURN( ctmv( j - k ) ); END_IF; - ef_multiply_i : + ef_multiply_i : BEGIN j := 1; REPEAT i := SIZEOF( vlist ) TO 1 BY -1; @@ -30155,7 +31432,7 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; j := v1; RETURN( ctmv( ABS( j ) ) ); END_IF; - ef_max_i : + ef_max_i : BEGIN boo := FALSE; REPEAT i := SIZEOF( vlist ) TO 1 BY -1; @@ -30182,7 +31459,7 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; RETURN( vlist[1] ); END_IF; END; - ef_min_i : + ef_min_i : BEGIN boo := FALSE; REPEAT i := SIZEOF( vlist ) TO 1 BY -1; @@ -30215,9 +31492,9 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; END_IF; ef_reciprocal_r : IF 'REAL' IN TYPEOF( v1 ) THEN r := v1; - RETURN( ctmv( 1 DIV r ) ); + RETURN( ctmv( 1 / r ) ); END_IF; - ef_add_r : + ef_add_r : BEGIN r := 0; REPEAT i := SIZEOF( vlist ) TO 1 BY -1; @@ -30242,7 +31519,7 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; s := v2; RETURN( ctmv( r - s ) ); END_IF; - ef_multiply_r : + ef_multiply_r : BEGIN r := 1; REPEAT i := SIZEOF( vlist ) TO 1 BY -1; @@ -30265,12 +31542,12 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; ef_divide_r : IF ( 'REAL' IN TYPEOF( v1 ) ) AND ( 'REAL' IN TYPEOF( v2 ) ) THEN r := v1; s := v2; - RETURN( ctmv( r DIV s ) ); + RETURN( ctmv( r / s ) ); END_IF; ef_mod_r : IF ( 'REAL' IN TYPEOF( v1 ) ) AND ( 'REAL' IN TYPEOF( v2 ) ) THEN r := v1; s := v2; - t := r DIV s; + t := r / s; j := t DIV 1; IF ( t < 0 ) AND ( j <> t ) THEN j := j - 1; @@ -30290,7 +31567,7 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; t := t * r; END_REPEAT; IF k < 0 THEN - t := 1 DIV t; + t := 1 / t; END_IF; RETURN( ctmv( t ) ); END_IF; @@ -30328,7 +31605,7 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; r := v1; RETURN( ctmv( ABS( r ) ) ); END_IF; - ef_max_r : + ef_max_r : BEGIN boo := FALSE; REPEAT i := SIZEOF( vlist ) TO 1 BY -1; @@ -30355,7 +31632,7 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; RETURN( vlist[1] ); END_IF; END; - ef_min_r : + ef_min_r : BEGIN boo := FALSE; REPEAT i := SIZEOF( vlist ) TO 1 BY -1; @@ -30445,9 +31722,9 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; ef_reciprocal_c : IF cnlit IN TYPEOF( v1 ) THEN parts( v1, p, q ); t := ( p * p ) + ( q * q ); - RETURN( makec( p DIV t, ( -q ) DIV t ) ); + RETURN( makec( p / t, ( -q ) / t ) ); END_IF; - ef_add_c : + ef_add_c : BEGIN p := 0; q := 0; @@ -30474,7 +31751,7 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; parts( v2, r, s ); RETURN( makec( p - r, q - s ) ); END_IF; - ef_multiply_c : + ef_multiply_c : BEGIN p := 1; q := 0; @@ -30500,7 +31777,7 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; parts( v1, p, q ); parts( v2, r, s ); t := ( r * r ) + ( s * s ); - RETURN( makec( ( ( p * r ) + ( q * s ) ) DIV t, ( ( q * r ) - ( p * s ) ) DIV t ) ); + RETURN( makec( ( ( p * r ) + ( q * s ) ) / t, ( ( q * r ) - ( p * s ) ) / t ) ); END_IF; ef_exponentiate_c : IF ( cnlit IN TYPEOF( v1 ) ) AND ( cnlit IN TYPEOF( v2 ) ) THEN parts( v1, p, q ); @@ -30523,8 +31800,8 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; END_REPEAT; IF k < 0 THEN t := ( r * r ) + ( s * s ); - r := r DIV t; - s := ( -s ) DIV t; + r := r / t; + s := ( -s ) / t; END_IF; RETURN( makec( r, s ) ); END_IF; @@ -30579,7 +31856,7 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; ef_tan_c : IF cnlit IN TYPEOF( v1 ) THEN parts( v1, p, q ); t := EXP( 2 * q ) + EXP( ( -2 ) * q ) + ( 2 * COS( 2 * p ) ); - RETURN( makec( ( 2 * SIN( 2 * p ) ) DIV t, ( EXP( ( -2 ) * q ) - EXP( 2 * q ) ) DIV t ) ); + RETURN( makec( ( 2 * SIN( 2 * p ) ) / t, ( EXP( ( -2 ) * q ) - EXP( 2 * q ) ) / t ) ); END_IF; ef_subscript_s : IF ( 'STRING' IN TYPEOF( v1 ) ) AND ( 'INTEGER' IN TYPEOF( v2 ) ) THEN str := v1; @@ -30616,14 +31893,14 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; st2 := v2; RETURN( ctmv( str <= st2 ) ); END_IF; - ef_subsequence_s : IF ( 'STRING' IN TYPEOF( v1 ) ) AND ( 'INTEGER' IN TYPEOF( v2 ) ) AND ( 'INTEGER' IN + ef_subsequence_s : IF ( 'STRING' IN TYPEOF( v1 ) ) AND ( 'INTEGER' IN TYPEOF( v2 ) ) AND ( 'INTEGER' IN TYPEOF( v3 ) ) THEN str := v1; j := v2; k := v3; RETURN( ctmv( str[j : k] ) ); END_IF; - ef_concat_s : + ef_concat_s : BEGIN str := ''; REPEAT i := SIZEOF( vlist ) TO 1 BY -1; @@ -30697,14 +31974,14 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; bi2 := v2; RETURN( ctmv( bin <= bi2 ) ); END_IF; - ef_subsequence_b : IF ( 'BINARY' IN TYPEOF( v1 ) ) AND ( 'INTEGER' IN TYPEOF( v2 ) ) AND ( 'INTEGER' IN + ef_subsequence_b : IF ( 'BINARY' IN TYPEOF( v1 ) ) AND ( 'INTEGER' IN TYPEOF( v2 ) ) AND ( 'INTEGER' IN TYPEOF( v3 ) ) THEN bin := v1; j := v2; k := v3; RETURN( ctmv( bin[j : k] ) ); END_IF; - ef_concat_b : + ef_concat_b : BEGIN boo := FALSE; REPEAT i := SIZEOF( vlist ) TO 1 BY -1; @@ -30755,7 +32032,7 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; RETURN( ctmv( NOT lgc ) ); END_IF; END_IF; - ef_concat_t : + ef_concat_t : BEGIN tpl := []; REPEAT i := SIZEOF( vlist ) TO 1 BY -1; @@ -30817,7 +32094,7 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; END_REPEAT; RETURN( ctmv( j ) ); END_IF; - ef_add_it : + ef_add_it : BEGIN boo := FALSE; REPEAT i := SIZEOF( vlist ) TO 1 BY -1; @@ -30894,7 +32171,7 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; END_REPEAT; RETURN( ctmv( r ) ); END_IF; - ef_add_rt : + ef_add_rt : BEGIN boo := FALSE; REPEAT i := SIZEOF( vlist ) TO 1 BY -1; @@ -30985,7 +32262,7 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; END_REPEAT; RETURN( makec( p, q ) ); END_IF; - ef_add_ct : + ef_add_ct : BEGIN boo := FALSE; REPEAT i := SIZEOF( vlist ) TO 1 BY -1; @@ -31190,20 +32467,20 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; END_FUNCTION; LOCAL - opnds : LIST [2 : ?] OF generic_expression; - boo : BOOLEAN; - m : INTEGER; - n : INTEGER; - oplist : LIST OF generic_expression := []; - v2 : maths_value; - v1 : maths_value; - vlist : LIST OF maths_value := []; - op2 : generic_expression; - op1 : generic_expression; types : SET OF STRING := stripped_typeof( expr ); + v1 : maths_value; + v2 : maths_value; + vlist : LIST OF maths_value := []; + op1 : generic_expression; + op2 : generic_expression; + oplist : LIST OF generic_expression := []; + opnds : LIST [2 : ?] OF generic_expression; + n : INTEGER; + m : INTEGER; finfun : maths_function_select; - nmb : NUMBER; + boo : BOOLEAN; str : STRING; + nmb : NUMBER; END_LOCAL; IF 'INT_LITERAL' IN types THEN RETURN( convert_to_maths_value( expr\int_literal.the_value ) ); @@ -31302,7 +32579,7 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; IF ( 'ATAN_EXPRESSION' IN types ) AND ( 'NUMBER' IN TYPEOF( v1 ) ) AND ( 'NUMBER' IN TYPEOF( v2 ) ) THEN RETURN( convert_to_maths_value( ATAN( v1, v2 ) ) ); END_IF; - IF ( 'COMPARISON_EXPRESSION' IN types ) AND ( ( ( 'NUMBER' IN TYPEOF( v1 ) ) AND ( 'NUMBER' IN TYPEOF( v2 ) ) ) OR ( ( 'STRING' + IF ( 'COMPARISON_EXPRESSION' IN types ) AND ( ( ( 'NUMBER' IN TYPEOF( v1 ) ) AND ( 'NUMBER' IN TYPEOF( v2 ) ) ) OR ( ( 'STRING' IN TYPEOF( v1 ) ) AND ( 'STRING' IN TYPEOF( v2 ) ) ) OR ( ( 'BOOLEAN' IN TYPEOF( v1 ) ) AND ( 'BOOLEAN' IN TYPEOF( v2 ) ) ) ) THEN IF 'COMPARISON_EQUAL' IN types THEN @@ -31527,12 +32804,12 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; RETURN( convert_to_maths_value( SIN( v1 ) ) ); END_IF; IF ( 'SLASH_EXPRESSION' IN types ) AND ( 'NUMBER' IN TYPEOF( v1 ) ) AND ( 'NUMBER' IN TYPEOF( v2 ) ) THEN - RETURN( convert_to_maths_value( v1 DIV v2 ) ); + RETURN( convert_to_maths_value( v1 / v2 ) ); END_IF; IF ( 'SQUARE_ROOT_EXPRESSION' IN types ) AND ( 'NUMBER' IN TYPEOF( v1 ) ) THEN RETURN( convert_to_maths_value( SQRT( v1 ) ) ); END_IF; - IF ( 'SUBSTRING_EXPRESSION' IN types ) AND ( 'STRING' IN TYPEOF( vlist[1] ) ) AND ( 'NUMBER' IN TYPEOF( vlist[2] ) ) AND ( + IF ( 'SUBSTRING_EXPRESSION' IN types ) AND ( 'STRING' IN TYPEOF( vlist[1] ) ) AND ( 'NUMBER' IN TYPEOF( vlist[2] ) ) AND ( 'NUMBER' IN TYPEOF( vlist[3] ) ) THEN str := vlist[1]; n := vlist[2]; @@ -31570,17 +32847,17 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; ) : maths_space; LOCAL - factors : LIST OF maths_space; - zint : INTEGER; - zmax : INTEGER; - sset : SET OF maths_value; stypes : SET OF STRING := stripped_typeof( spc ); - zspc : maths_space; - zfactors : LIST OF maths_space := []; - zmin : INTEGER; - zallint : BOOLEAN := TRUE; - zval : maths_value; + sset : SET OF maths_value; zset : SET OF maths_value := []; + zval : maths_value; + zspc : maths_space; + zallint : BOOLEAN := TRUE; + zint : INTEGER; + zmin : INTEGER; + zmax : INTEGER; + factors : LIST OF maths_space; + zfactors : LIST OF maths_space := []; rspc : maths_space; END_LOCAL; IF 'FINITE_SPACE' IN stypes THEN @@ -31640,9 +32917,9 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; ) : maths_value; LOCAL - nlist : LIST OF maths_value := []; vtypes : SET OF STRING := stripped_typeof( val ); vlist : LIST OF maths_value; + nlist : LIST OF maths_value := []; END_LOCAL; IF 'GENERIC_EXPRESSION' IN vtypes THEN RETURN( simplify_generic_expression( val ) ); @@ -31727,8 +33004,8 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; ) : BOOLEAN; LOCAL - factors : LIST OF maths_space; typenames : SET OF STRING := TYPEOF( space ); + factors : LIST OF maths_space; END_LOCAL; IF NOT EXISTS( space ) THEN RETURN( FALSE ); @@ -31777,9 +33054,9 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; ) : SET OF STRING; LOCAL + types : SET OF STRING := TYPEOF( arg ); stypes : SET OF STRING := []; n : INTEGER := LENGTH( schema_prefix ); - types : SET OF STRING := TYPEOF( arg ); END_LOCAL; REPEAT i := 1 TO SIZEOF( types ) BY 1; IF types[i][1 : n] = schema_prefix THEN @@ -31797,7 +33074,7 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; ) : general_datum_reference; LOCAL - general_datum_reference_bag : BAG OF general_datum_reference := USEDIN( input, + general_datum_reference_bag : BAG OF general_datum_reference := USEDIN( input, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'GENERAL_DATUM_REFERENCE.' + 'BASE' ); END_LOCAL; IF SIZEOF( general_datum_reference_bag ) = 1 THEN @@ -31829,21 +33106,21 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; ) : LOGICAL; LOCAL - prgn2 : polar_complex_number_region; - prgn1 : polar_complex_number_region; spc1 : maths_space := simplify_maths_space( space1 ); spc2 : maths_space := simplify_maths_space( space2 ); + types1 : SET OF STRING := stripped_typeof( spc1 ); + types2 : SET OF STRING := stripped_typeof( spc2 ); + lgcl : LOGICAL; + cum : LOGICAL; es_val : elementary_space_enumerators; bnd1 : REAL; bnd2 : REAL; n : INTEGER; - sp2 : maths_space; sp1 : maths_space; + sp2 : maths_space; + prgn1 : polar_complex_number_region; + prgn2 : polar_complex_number_region; aitv : finite_real_interval; - cum : LOGICAL; - lgcl : LOGICAL; - types2 : SET OF STRING := stripped_typeof( spc2 ); - types1 : SET OF STRING := stripped_typeof( spc1 ); END_LOCAL; IF ( NOT EXISTS( spc1 ) ) OR ( NOT EXISTS( spc2 ) ) THEN RETURN( FALSE ); @@ -32057,7 +33334,7 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; sp1 := spc1\function_space.domain_argument; sp2 := spc2\function_space.domain_argument; CASE spc1\function_space.domain_constraint OF - sc_equal : + sc_equal : BEGIN CASE spc2\function_space.domain_constraint OF sc_equal : cum := cum AND equal_maths_spaces( sp1, sp2 ); @@ -32065,12 +33342,12 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; sc_member : cum := cum AND member_of( sp1, sp2 ); END_CASE; END; - sc_subspace : + sc_subspace : BEGIN CASE spc2\function_space.domain_constraint OF sc_equal : RETURN( FALSE ); sc_subspace : cum := cum AND subspace_of( sp1, sp2 ); - sc_member : + sc_member : BEGIN IF NOT member_of( sp1, sp2 ) THEN RETURN( FALSE ); @@ -32079,12 +33356,12 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; END; END_CASE; END; - sc_member : + sc_member : BEGIN CASE spc2\function_space.domain_constraint OF - sc_equal : cum := cum AND space_is_singleton( sp1 ) AND equal_maths_spaces( + sc_equal : cum := cum AND space_is_singleton( sp1 ) AND equal_maths_spaces( singleton_member_of( sp1 ), sp2 ); - sc_subspace : + sc_subspace : BEGIN IF NOT member_of( sp2, sp1 ) THEN RETURN( FALSE ); @@ -32101,7 +33378,7 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; sp1 := spc1\function_space.range_argument; sp2 := spc2\function_space.range_argument; CASE spc1\function_space.range_constraint OF - sc_equal : + sc_equal : BEGIN CASE spc2\function_space.range_constraint OF sc_equal : cum := cum AND equal_maths_spaces( sp1, sp2 ); @@ -32109,12 +33386,12 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; sc_member : cum := cum AND member_of( sp1, sp2 ); END_CASE; END; - sc_subspace : + sc_subspace : BEGIN CASE spc2\function_space.domain_constraint OF sc_equal : RETURN( FALSE ); sc_subspace : cum := cum AND subspace_of( sp1, sp2 ); - sc_member : + sc_member : BEGIN IF NOT member_of( sp1, sp2 ) THEN RETURN( FALSE ); @@ -32123,12 +33400,12 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; END; END_CASE; END; - sc_member : + sc_member : BEGIN CASE spc2\function_space.domain_constraint OF - sc_equal : cum := cum AND space_is_singleton( sp1 ) AND equal_maths_spaces( + sc_equal : cum := cum AND space_is_singleton( sp1 ) AND equal_maths_spaces( singleton_member_of( sp1 ), sp2 ); - sc_subspace : + sc_subspace : BEGIN IF NOT member_of( sp2, sp1 ) THEN RETURN( FALSE ); @@ -32165,15 +33442,15 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; RETURN( all_members_of_es( spc\finite_space.members, es ) ); END_IF; CASE es OF - es_numbers : RETURN( ( 'FINITE_INTEGER_INTERVAL' IN types ) OR ( 'INTEGER_INTERVAL_FROM_MIN' IN types ) OR - ( 'INTEGER_INTERVAL_TO_MAX' IN types ) OR ( 'FINITE_REAL_INTERVAL' IN types ) OR ( 'REAL_INTERVAL_FROM_MIN' IN types ) - OR ( 'REAL_INTERVAL_TO_MAX' IN types ) OR ( 'CARTESIAN_COMPLEX_NUMBER_REGION' IN types ) OR ( + es_numbers : RETURN( ( 'FINITE_INTEGER_INTERVAL' IN types ) OR ( 'INTEGER_INTERVAL_FROM_MIN' IN types ) OR + ( 'INTEGER_INTERVAL_TO_MAX' IN types ) OR ( 'FINITE_REAL_INTERVAL' IN types ) OR ( 'REAL_INTERVAL_FROM_MIN' IN types ) + OR ( 'REAL_INTERVAL_TO_MAX' IN types ) OR ( 'CARTESIAN_COMPLEX_NUMBER_REGION' IN types ) OR ( 'POLAR_COMPLEX_NUMBER_REGION' IN types ) ); - es_complex_numbers : RETURN( ( 'CARTESIAN_COMPLEX_NUMBER_REGION' IN types ) OR ( 'POLAR_COMPLEX_NUMBER_REGION' IN + es_complex_numbers : RETURN( ( 'CARTESIAN_COMPLEX_NUMBER_REGION' IN types ) OR ( 'POLAR_COMPLEX_NUMBER_REGION' IN types ) ); - es_reals : RETURN( ( 'FINITE_REAL_INTERVAL' IN types ) OR ( 'REAL_INTERVAL_FROM_MIN' IN types ) OR ( + es_reals : RETURN( ( 'FINITE_REAL_INTERVAL' IN types ) OR ( 'REAL_INTERVAL_FROM_MIN' IN types ) OR ( 'REAL_INTERVAL_TO_MAX' IN types ) ); - es_integers : RETURN( ( 'FINITE_INTEGER_INTERVAL' IN types ) OR ( 'INTEGER_INTERVAL_FROM_MIN' IN types ) OR + es_integers : RETURN( ( 'FINITE_INTEGER_INTERVAL' IN types ) OR ( 'INTEGER_INTERVAL_FROM_MIN' IN types ) OR ( 'INTEGER_INTERVAL_TO_MAX' IN types ) ); es_logicals : RETURN( FALSE ); es_booleans : RETURN( FALSE ); @@ -32194,14 +33471,14 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; ) : generic_expression; LOCAL - opnds : LIST OF generic_expression; - srcdom : maths_space_or_function; - op2 : generic_expression; - op1 : generic_expression; - prpfun : LIST [1 : ?] OF maths_function; types : SET OF STRING := stripped_typeof( expr ); - finfun : maths_function_select; + opnds : LIST OF generic_expression; + op1 : generic_expression; + op2 : generic_expression; qvars : LIST OF generic_variable; + srcdom : maths_space_or_function; + prpfun : LIST [1 : ?] OF maths_function; + finfun : maths_function_select; END_LOCAL; IF SIZEOF( vars ) <> SIZEOF( vals ) THEN RETURN( ? ); @@ -32355,15 +33632,15 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; CASE TRUE OF ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION' IN TYPEOF( links[i]\ product_definition_relationship.relating_product_definition ) ) AND ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'PRODUCT_DEFINITION' IN TYPEOF( links[i]\product_definition_relationship.related_product_definition ) ) AND ( + + 'PRODUCT_DEFINITION' IN TYPEOF( links[i]\product_definition_relationship.related_product_definition ) ) AND ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION' IN TYPEOF( links[i + 1]\ - product_definition_relationship.relating_product_definition ) ) : + product_definition_relationship.relating_product_definition ) ) : BEGIN IF NOT ( ( links[i]\product_definition_relationship.related_product_definition :=: links[i + 1]\ product_definition_relationship.relating_product_definition ) OR ( ( SIZEOF( QUERY ( pdr <* USEDIN( links[i]\ product_definition_relationship.related_product_definition, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PRODUCT_DEFINITION_RELATIONSHIP.' + 'RELATED_PRODUCT_DEFINITION' ) | ( pdr\product_definition_relationship. - relating_product_definition :=: links[i + 1]\product_definition_relationship.relating_product_definition ) ) ) = 1 ) + relating_product_definition :=: links[i + 1]\product_definition_relationship.relating_product_definition ) ) ) = 1 ) AND ( links[i]\product_definition_relationship.related_product_definition\product_definition.formation\ product_definition_formation.of_product :=: links[i + 1]\product_definition_relationship. relating_product_definition\product_definition.formation\product_definition_formation.of_product ) ) ) THEN @@ -32372,15 +33649,15 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; END; ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_REFERENCE' IN TYPEOF( links[i]\ product_definition_relationship.related_product_definition ) ) AND ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'PRODUCT_DEFINITION_REFERENCE' IN TYPEOF( links[i + 1]\product_definition_relationship.relating_product_definition ) ) : + + 'PRODUCT_DEFINITION_REFERENCE' IN TYPEOF( links[i + 1]\product_definition_relationship.relating_product_definition ) ) : BEGIN IF NOT ( ( links[i]\product_definition_relationship.related_product_definition :=: links[i + 1]\ product_definition_relationship.relating_product_definition ) OR ( ( SIZEOF( QUERY ( pdr <* USEDIN( links[i]\ product_definition_relationship.related_product_definition, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PRODUCT_DEFINITION_RELATIONSHIP.' + 'RELATED_PRODUCT_DEFINITION' ) | ( pdr\product_definition_relationship. - relating_product_definition :=: links[i + 1]\product_definition_relationship.relating_product_definition ) ) ) = 1 ) - AND ( links[i]\product_definition_relationship.related_product_definition\product_definition_reference.product_id - = links[i + 1]\product_definition_relationship.relating_product_definition\product_definition_reference.product_id ) + relating_product_definition :=: links[i + 1]\product_definition_relationship.relating_product_definition ) ) ) = 1 ) + AND ( links[i]\product_definition_relationship.related_product_definition\product_definition_reference.product_id + = links[i + 1]\product_definition_relationship.relating_product_definition\product_definition_reference.product_id ) AND ( links[i]\product_definition_relationship.related_product_definition\product_definition_reference. id_owning_organization_name = links[i + 1]\product_definition_relationship.relating_product_definition\ product_definition_reference.id_owning_organization_name ) AND ( links[i]\product_definition_relationship. @@ -32407,9 +33684,9 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; LOCAL local_p_d : SET OF product_definition := []; + local_s_r : SET OF shape_representation := []; i : INTEGER; j : INTEGER; - local_s_r : SET OF shape_representation := []; END_LOCAL; local_p_d := using_product_definition_of_shape_representation( item ); IF SIZEOF( local_p_d ) <> 1 THEN @@ -32418,7 +33695,7 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; REPEAT i := 1 TO HIINDEX( local_p_d ) BY 1; local_s_r := find_shape_representation_of_product_definition( local_p_d[i] ); REPEAT j := 1 TO HIINDEX( local_s_r ) BY 1; - IF ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.REPRESENTATIVE_SHAPE_REPRESENTATION' IN TYPEOF( local_s_r[j] ) ) + IF ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.REPRESENTATIVE_SHAPE_REPRESENTATION' IN TYPEOF( local_s_r[j] ) ) AND ( local_s_r[j] :<>: item ) THEN RETURN( FALSE ); END_IF; @@ -32434,10 +33711,10 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; ) : BOOLEAN; LOCAL + local_s_a : SET OF shape_aspect := []; + local_s_r : SET OF shape_representation := []; i : INTEGER; j : INTEGER; - local_s_r : SET OF shape_representation := []; - local_s_a : SET OF shape_aspect := []; END_LOCAL; local_s_a := using_shape_aspect_of_shape_representation( item ); IF SIZEOF( local_s_a ) <> 1 THEN @@ -32446,7 +33723,7 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; REPEAT i := 1 TO HIINDEX( local_s_a ) BY 1; local_s_r := find_shape_representation_of_shape_aspect( local_s_a[i] ); REPEAT j := 1 TO HIINDEX( local_s_r ) BY 1; - IF ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.REPRESENTATIVE_SHAPE_REPRESENTATION' IN TYPEOF( local_s_r[j] ) ) + IF ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.REPRESENTATIVE_SHAPE_REPRESENTATION' IN TYPEOF( local_s_r[j] ) ) AND ( local_s_r[j] :<>: item ) THEN RETURN( FALSE ); END_IF; @@ -32490,14 +33767,14 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; ) : SET OF founded_item_select; LOCAL - next_items : SET OF founded_item_select; - result_items : SET OF founded_item_select; 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; next_items := QUERY ( z <* bag_to_set( USEDIN( item, '' ) ) | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'REPRESENTATION_ITEM' IN TYPEOF( z ) ) OR ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FOUNDED_ITEM' IN TYPEOF( + + 'REPRESENTATION_ITEM' IN TYPEOF( z ) ) OR ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FOUNDED_ITEM' IN TYPEOF( z ) ) ) ); IF SIZEOF( next_items ) > 0 THEN REPEAT i := 1 TO HIINDEX( next_items ) BY 1; @@ -32526,12 +33803,12 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; ) : SET OF product_definition; LOCAL + local_s_d_r : SET OF shape_definition_representation := []; local_p_d : SET OF product_definition := []; i : INTEGER; - local_s_d_r : SET OF shape_definition_representation := []; END_LOCAL; - local_s_d_r := QUERY ( i1 <* bag_to_set( USEDIN( item, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + - 'PROPERTY_DEFINITION_REPRESENTATION.USED_REPRESENTATION' ) ) | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + + local_s_d_r := QUERY ( i1 <* bag_to_set( USEDIN( item, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + + 'PROPERTY_DEFINITION_REPRESENTATION.USED_REPRESENTATION' ) ) | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'SHAPE_DEFINITION_REPRESENTATION' ) IN TYPEOF( i1 ) ) ); REPEAT i := 1 TO HIINDEX( local_s_d_r ) BY 1; IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION' IN TYPEOF( local_s_d_r[i]\ @@ -32552,23 +33829,23 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; LOCAL results : SET OF representation := []; + local_results : SET OF representation := []; + local_representation_map : SET OF representation_map := []; intermediate_items : SET OF representation_item := []; i : INTEGER; j : INTEGER; - local_results : SET OF representation := []; - local_representation_map : SET OF representation_map := []; END_LOCAL; - local_results := QUERY ( z <* using_representations( item ) | ( SIZEOF( USEDIN( z, + local_results := QUERY ( z <* using_representations( item ) | ( SIZEOF( USEDIN( z, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.REPRESENTATION_MAP.' + 'MAPPED_REPRESENTATION' ) ) > 0 ) ); IF SIZEOF( local_results ) = 0 THEN RETURN( [] ); ELSE REPEAT i := 1 TO HIINDEX( local_results ) BY 1; - local_representation_map := local_representation_map + bag_to_set( USEDIN( local_results[i], + local_representation_map := local_representation_map + bag_to_set( USEDIN( local_results[i], 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.REPRESENTATION_MAP.MAPPED_REPRESENTATION' ) ); END_REPEAT; REPEAT i := 1 TO HIINDEX( local_representation_map ) BY 1; - intermediate_items := intermediate_items + bag_to_set( USEDIN( local_representation_map[i], + intermediate_items := intermediate_items + bag_to_set( USEDIN( local_representation_map[i], 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MAPPED_ITEM.MAPPING_SOURCE' ) ); END_REPEAT; REPEAT j := 1 TO HIINDEX( intermediate_items ) BY 1; @@ -32585,8 +33862,8 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; LOCAL results : SET OF representation; - intermediate_items : SET OF founded_item_select; result_bag : BAG OF representation; + intermediate_items : SET OF founded_item_select; END_LOCAL; results := []; result_bag := USEDIN( item, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.REPRESENTATION.ITEMS' ); @@ -32615,10 +33892,10 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; ) : SET OF shape_aspect; LOCAL - local_s_d_r2 : BAG OF shape_definition_representation := []; - i : INTEGER; local_s_d_r : SET OF shape_definition_representation := []; + local_s_d_r2 : BAG OF shape_definition_representation := []; local_s_a : SET OF shape_aspect := []; + i : INTEGER; END_LOCAL; local_s_d_r2 := local_s_d_r2 + QUERY ( pdr <* USEDIN( item, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.USED_REPRESENTATION' ) | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' @@ -32638,13 +33915,13 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; crv : curve ) : BOOLEAN; IF SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POLYLINE', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'B_SPLINE_CURVE' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ELLIPSE', + + 'B_SPLINE_CURVE' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ELLIPSE', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CIRCLE' ] * TYPEOF( crv ) ) = 1 THEN RETURN( TRUE ); ELSE IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.TRIMMED_CURVE' IN TYPEOF( crv ) THEN IF SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LINE', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'PARABOLA' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.HYPERBOLA'] * TYPEOF( crv\trimmed_curve.basis_curve ) ) + + 'PARABOLA' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.HYPERBOLA'] * TYPEOF( crv\trimmed_curve.basis_curve ) ) = 1 THEN RETURN( TRUE ); ELSE @@ -32674,7 +33951,7 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; ) : LOGICAL; CASE date.month_component OF 1 : RETURN( ( 1 <= date.day_component ) AND ( date.day_component <= 31 ) ); - 2 : + 2 : BEGIN IF leap_year( date.year_component ) THEN RETURN( ( 1 <= date.day_component ) AND ( date.day_component <= 29 ) ); @@ -32701,12 +33978,12 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; input : csg_solid_2d ) : BOOLEAN; CASE TRUE OF - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRIMITIVE_2D' IN TYPEOF( input\csg_solid_2d.tree_root_expression ) : + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRIMITIVE_2D' IN TYPEOF( input\csg_solid_2d.tree_root_expression ) : BEGIN - IF SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CIRCULAR_AREA', + IF SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CIRCULAR_AREA', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COMPLEX_AREA' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'ELLIPTIC_AREA' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POLYGONAL_AREA', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRIMITIVE_2D_WITH_INNER_BOUNDARY' , + + 'ELLIPTIC_AREA' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POLYGONAL_AREA', + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRIMITIVE_2D_WITH_INNER_BOUNDARY' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.RECTANGULAR_AREA' ] * TYPEOF( input\csg_solid_2d. tree_root_expression ) ) > 0 THEN RETURN( TRUE ); @@ -32715,7 +33992,7 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; END_IF; END; 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.BOOLEAN_RESULT_2D' IN TYPEOF( input\csg_solid_2d.tree_root_expression ) : RETURN - ( valid_csg_2d_primitives( input\csg_solid_2d.tree_root_expression\boolean_result_2d.first_operand ) AND + ( valid_csg_2d_primitives( input\csg_solid_2d.tree_root_expression\boolean_result_2d.first_operand ) AND valid_csg_2d_primitives( input\csg_solid_2d.tree_root_expression\boolean_result_2d.second_operand ) ); 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.HALF_SPACE_2D' IN TYPEOF( input\csg_solid_2d.tree_root_expression ) : RETURN ( TRUE ); @@ -32729,41 +34006,41 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; ) : BOOLEAN; LOCAL - parameter_representations : SET OF representation; rep_set : SET OF representation := []; + parameter_representations : SET OF representation; END_LOCAL; REPEAT i := 1 TO HIINDEX( pdf.representation_associations ) BY 1; rep_set := rep_set + pdf.representation_associations[i].used_representation; END_REPEAT; parameter_representations := QUERY ( rep <* rep_set | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( rep ) ) ); - IF SIZEOF( QUERY ( srwp <* parameter_representations | ( SIZEOF( QUERY ( i <* srwp.items | ( ( i.name = 'orientation' ) AND + IF SIZEOF( QUERY ( srwp <* parameter_representations | ( SIZEOF( QUERY ( i <* srwp.items | ( ( i.name = 'orientation' ) AND ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( i ) ) = 2 ) ) ) ) = 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( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( i ) ) = 2 ) ) ) ) = 1 ) ) ) = 1 ) ); 'circular curve' : 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( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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 diameter' ) AND ( SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( i ) ) = 2 ) ) ) ) = 1 ) ) ) = 1 ) ); - 'line' : RETURN( SIZEOF( QUERY ( srwp <* parameter_representations | ( SIZEOF( QUERY ( i <* srwp.items | ( + 'line' : RETURN( SIZEOF( QUERY ( srwp <* parameter_representations | ( SIZEOF( QUERY ( i <* srwp.items | ( ( i.name = 'target length' ) AND ( SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'MEASURE_REPRESENTATION_ITEM' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * + + 'MEASURE_REPRESENTATION_ITEM' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( i ) ) = 2 ) ) ) ) = 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( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( i ) ) = 2 ) ) ) ) = 1 ) ) ) = 1 ) ); OTHERWISE : RETURN( FALSE ); END_CASE; @@ -32774,13 +34051,13 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; crv : curve ) : BOOLEAN; IF SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POLYLINE', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'B_SPLINE_CURVE' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ELLIPSE', + + 'B_SPLINE_CURVE' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ELLIPSE', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CIRCLE' ] * TYPEOF( crv ) ) = 1 THEN RETURN( TRUE ); ELSE IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.TRIMMED_CURVE' IN TYPEOF( crv ) THEN IF SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LINE', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'PARABOLA' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.HYPERBOLA'] * TYPEOF( crv\trimmed_curve.basis_curve ) ) + + 'PARABOLA' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.HYPERBOLA'] * TYPEOF( crv\trimmed_curve.basis_curve ) ) = 1 THEN RETURN( TRUE ); ELSE @@ -32843,14 +34120,14 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; ) : LOGICAL; LOCAL - properties : SET OF property_definition := bag_to_set( QUERY ( prd <* USEDIN( pd, + properties : SET OF property_definition := bag_to_set( QUERY ( prd <* USEDIN( pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( prd.name = 'occurrence selection' ) ) ); - selected_representation : representation; - property_definition_representations : SET OF property_definition_representation := bag_to_set( QUERY ( pdr <* USEDIN( + property_definition_representations : SET OF property_definition_representation := bag_to_set( QUERY ( pdr <* USEDIN( properties[1], 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( pdr.used_representation. name = 'selection criteria' ) ) ); + selected_representation : representation; END_LOCAL; IF SIZEOF( properties ) <> 1 THEN RETURN( FALSE ); @@ -32859,13 +34136,13 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; 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 ) + 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( [ - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM' , - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.VALUE_RANGE' ] * TYPEOF( i ) ) = 1 ) AND ( i.name = 'selection quantity' ) ) ) ) + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM' , + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.VALUE_RANGE' ] * TYPEOF( i ) ) = 1 ) AND ( i.name = 'selection quantity' ) ) ) ) <> 1 THEN RETURN( FALSE ); END_IF; @@ -32874,9 +34151,9 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; RETURN( FALSE ); END_IF; IF ( SIZEOF( QUERY ( i <* selected_representation\representation.items | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF( i ) ) AND ( i.name = 'selection control' ) ) ) ) = 0 ) AND ( SIZEOF( + + '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( [ - 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.QUALIFIED_REPRESENTATION_ITEM' , + 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.QUALIFIED_REPRESENTATION_ITEM' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.VALUE_RANGE' ] * TYPEOF( i ) ) = 0 ) ) ) ) > 0 ) THEN RETURN( FALSE ); END_IF; @@ -33080,7 +34357,7 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; FUNCTION valid_wireframe_edge_curve( crv : curve ) : BOOLEAN; - IF SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LINE', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CONIC', + IF SIZEOF( [ 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LINE', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CONIC', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.B_SPLINE_CURVE' , 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'POLYLINE' ] * TYPEOF( crv ) ) = 1 THEN RETURN( TRUE ); @@ -33117,13 +34394,13 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; ) : LOGICAL; LOCAL - scraa : BAG OF shape_inspection_result_accuracy_association := []; sdqca : BAG OF shape_data_quality_criterion_and_accuracy_association := []; - sdqir : SET OF shape_data_quality_inspection_result := []; sma : BAG OF shape_measurement_accuracy := []; + sdqir : SET OF shape_data_quality_inspection_result := []; + scraa : BAG OF shape_inspection_result_accuracy_association := []; t_logic : BOOLEAN; END_LOCAL; - sdqca := USEDIN( ei, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + + sdqca := USEDIN( ei, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'SHAPE_DATA_QUALITY_CRITERION_AND_ACCURACY_ASSOCIATION.' + 'SHAPE_DATA_QUALITY_CRITERION' ); IF SIZEOF( sdqca ) <> 0 THEN REPEAT i := 1 TO SIZEOF( sdqca ) BY 1; @@ -33145,14 +34422,14 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; END_IF; END_REPEAT; END_IF; - sdqir := QUERY ( q <* bag_to_set( USEDIN( ei, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + + sdqir := QUERY ( q <* bag_to_set( USEDIN( ei, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'DATA_QUALITY_INSPECTION_RESULT.' + 'CRITERION_INSPECTED' ) ) | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'SHAPE_DATA_QUALITY_INSPECTION_RESULT' ) IN TYPEOF( q ) ) ); IF SIZEOF( sdqir ) = 0 THEN RETURN( TRUE ); END_IF; REPEAT i := 1 TO SIZEOF( sdqir ) BY 1; - scraa := USEDIN( sdqir[i], 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + + scraa := USEDIN( sdqir[i], 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'SHAPE_INSPECTION_RESULT_ACCURACY_ASSOCIATION.' + 'SHAPE_DATA_QUALITY_RESULT' ); IF SIZEOF( scraa ) <> 0 THEN sma := []; @@ -33186,19 +34463,84 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; CONSTANT letters : SET [52 : 52] OF STRING := - [ 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v' , - 'w' , 'x', 'y', 'z', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', - 'R' , 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z']; + [ 'a' , + 'b' , + 'c' , + 'd' , + 'e' , + 'f' , + 'g' , + 'h' , + 'i' , + 'j' , + 'k' , + 'l' , + 'm' , + 'n' , + 'o' , + 'p' , + 'q' , + 'r' , + 's' , + 't' , + 'u' , + 'v' , + 'w' , + 'x' , + 'y' , + 'z' , + 'A' , + 'B' , + 'C' , + 'D' , + 'E' , + 'F' , + 'G' , + 'H' , + 'I' , + 'J' , + 'K' , + 'L' , + 'M' , + 'N' , + 'O' , + 'P' , + 'Q' , + 'R' , + 'S' , + 'T' , + 'U' , + 'V' , + 'W' , + 'X' , + 'Y' , + 'Z' ]; numbers_etc : SET [15 : 15] OF STRING := - [ '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '_', '[', ']', '.', '\']; + [ '0' , + '1' , + '2' , + '3' , + '4' , + '5' , + '6' , + '7' , + '8' , + '9' , + '_' , + '[' , + ']' , + '.' , + '\' ]; valid_chars : SET [67 : 67] OF STRING := - letters + numbers_etc; + letters + + + numbers_etc; END_CONSTANT; LOCAL + id_length : INTEGER := LENGTH( attid ); id_valid : BOOLEAN := TRUE; i : INTEGER; - id_length : INTEGER := LENGTH( attid ); END_LOCAL; IF NOT ( attid[1] IN letters ) THEN id_valid := FALSE; @@ -33224,7 +34566,7 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; larger : positive_length_measure; END_LOCAL; REPEAT i := 1 TO SIZEOF( cskhole.conical_transitions ) BY 1; - IF ( ( cskhole.conical_transitions[i].transition_number = 1 ) AND ( cskhole.conical_transitions[i].cone_apex_angle < 0 ) ) + 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 ); @@ -33254,7 +34596,7 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; 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 + IF ( cskhole.conical_transitions[i].cone_base_radius > larger ) OR ( cskhole.conical_transitions[i].cone_base_radius < smaller ) THEN RETURN( FALSE ); END_IF; @@ -33272,19 +34614,19 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; ) : LOGICAL; LOCAL - t_type_list : BAG OF STRING := []; - sdiri : SET OF externally_conditioned_data_quality_inspection_instance_report_item := []; - dir : SET OF data_quality_inspection_instance_report := []; sdqir : SET OF externally_conditioned_data_quality_inspection_result := []; + dir : SET OF data_quality_inspection_instance_report := []; + sdiri : SET OF externally_conditioned_data_quality_inspection_instance_report_item := []; + t_type_list : BAG OF STRING := []; END_LOCAL; - sdqir := QUERY ( q <* bag_to_set( USEDIN( ei, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + + sdqir := QUERY ( q <* bag_to_set( USEDIN( ei, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'DATA_QUALITY_INSPECTION_RESULT.' + 'CRITERION_INSPECTED' ) ) | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'EXTERNALLY_CONDITIONED_DATA_QUALITY_INSPECTION_RESULT' ) IN TYPEOF( q ) ) ); IF SIZEOF( sdqir ) = 0 THEN RETURN( TRUE ); END_IF; REPEAT i := 1 TO SIZEOF( sdqir ) BY 1; - dir := dir + QUERY ( q <* bag_to_set( USEDIN( sdqir[i], 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + + dir := dir + QUERY ( q <* bag_to_set( USEDIN( sdqir[i], 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'DATA_QUALITY_INSPECTION_REPORT.' + 'INSPECTION_RESULT' ) ) | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'DATA_QUALITY_INSPECTION_INSTANCE_REPORT' ) IN TYPEOF( q ) ) ); END_REPEAT; @@ -33292,7 +34634,7 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; RETURN( TRUE ); END_IF; REPEAT i := 1 TO SIZEOF( dir ) BY 1; - sdiri := sdiri + QUERY ( q <* dir[i].inspected_instances | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + + sdiri := sdiri + QUERY ( q <* dir[i].inspected_instances | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'EXTERNALLY_CONDITIONED_DATA_QUALITY_INSPECTION_INSTANCE_REPORT_ITEM' ) IN TYPEOF( q ) ) ); END_REPEAT; IF SIZEOF( sdiri ) = 0 THEN @@ -33325,19 +34667,19 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; ) : LOGICAL; LOCAL - t_type_list : BAG OF STRING := []; - sdiri : SET OF shape_data_quality_inspection_instance_report_item := []; sdqir : SET OF shape_data_quality_inspection_result := []; sdir : SET OF shape_data_quality_inspection_instance_report := []; + sdiri : SET OF shape_data_quality_inspection_instance_report_item := []; + t_type_list : BAG OF STRING := []; END_LOCAL; - sdqir := QUERY ( q <* bag_to_set( USEDIN( ei, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + + sdqir := QUERY ( q <* bag_to_set( USEDIN( ei, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'DATA_QUALITY_INSPECTION_RESULT.' + 'CRITERION_INSPECTED' ) ) | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'SHAPE_DATA_QUALITY_INSPECTION_RESULT' ) IN TYPEOF( q ) ) ); IF SIZEOF( sdqir ) = 0 THEN RETURN( TRUE ); END_IF; REPEAT i := 1 TO SIZEOF( sdqir ) BY 1; - sdir := sdir + QUERY ( q <* bag_to_set( USEDIN( sdqir[i], 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + + sdir := sdir + QUERY ( q <* bag_to_set( USEDIN( sdqir[i], 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'DATA_QUALITY_INSPECTION_REPORT.' + 'INSPECTION_RESULT' ) ) | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'SHAPE_DATA_QUALITY_INSPECTION_INSTANCE_REPORT' ) IN TYPEOF( q ) ) ); END_REPEAT; @@ -33345,7 +34687,7 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; RETURN( TRUE ); END_IF; REPEAT i := 1 TO SIZEOF( sdir ) BY 1; - sdiri := sdiri + QUERY ( q <* sdir[i].inspected_instances | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + + sdiri := sdiri + QUERY ( q <* sdir[i].inspected_instances | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'SHAPE_DATA_QUALITY_INSPECTION_INSTANCE_REPORT_ITEM' ) IN TYPEOF( q ) ) ); END_REPEAT; IF SIZEOF( sdiri ) = 0 THEN @@ -33378,24 +34720,24 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; ) : LOGICAL; LOCAL - t_type_list : BAG OF STRING := []; - sdei : SET OF instance_report_item_with_extreme_instances := []; sdqir : SET OF shape_data_quality_inspection_result := []; sdir : SET OF shape_data_quality_inspection_instance_report := []; + sdei : SET OF instance_report_item_with_extreme_instances := []; + t_type_list : BAG OF STRING := []; END_LOCAL; - sdqir := QUERY ( q <* bag_to_set( USEDIN( ei, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + + sdqir := QUERY ( q <* bag_to_set( USEDIN( ei, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'DATA_QUALITY_INSPECTION_RESULT.' + 'CRITERION_INSPECTED' ) ) | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'SHAPE_DATA_QUALITY_INSPECTION_RESULT' ) IN TYPEOF( q ) ) ); IF SIZEOF( sdqir ) = 0 THEN RETURN( TRUE ); END_IF; REPEAT i := 1 TO SIZEOF( sdqir ) BY 1; - sdir := sdir + QUERY ( q <* bag_to_set( USEDIN( sdqir[i], 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + + sdir := sdir + QUERY ( q <* bag_to_set( USEDIN( sdqir[i], 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'DATA_QUALITY_INSPECTION_REPORT.' + 'INSPECTION_RESULT' ) ) | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'SHAPE_DATA_QUALITY_INSPECTION_INSTANCE_REPORT' ) IN TYPEOF( q ) ) ); END_REPEAT; REPEAT i := 1 TO SIZEOF( sdir ) BY 1; - sdei := sdei + QUERY ( q <* sdir[i].inspected_instances | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + + sdei := sdei + QUERY ( q <* sdir[i].inspected_instances | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'INSTANCE_REPORT_ITEM_WITH_EXTREME_INSTANCES' ) IN TYPEOF( q ) ) ); END_REPEAT; IF SIZEOF( sdei ) = 0 THEN @@ -33433,25 +34775,25 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; ) : LOGICAL; LOCAL - sdcr : SET OF shape_data_quality_inspection_criterion_report := []; - sdei : BAG OF instance_report_item_with_extreme_instances := []; sdqir : SET OF shape_data_quality_inspection_result := []; - sdii : SET OF shape_data_quality_inspection_instance_report_item := []; + sdcr : SET OF shape_data_quality_inspection_criterion_report := []; sdir : SET OF shape_data_quality_inspection_instance_report := []; + sdii : SET OF shape_data_quality_inspection_instance_report_item := []; + sdei : BAG OF instance_report_item_with_extreme_instances := []; END_LOCAL; - sdqir := QUERY ( q <* bag_to_set( USEDIN( ei, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + + sdqir := QUERY ( q <* bag_to_set( USEDIN( ei, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'DATA_QUALITY_INSPECTION_RESULT.' + 'CRITERION_INSPECTED' ) ) | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'SHAPE_DATA_QUALITY_INSPECTION_RESULT' ) IN TYPEOF( q ) ) ); IF SIZEOF( sdqir ) = 0 THEN RETURN( TRUE ); END_IF; REPEAT i := 1 TO SIZEOF( sdqir ) BY 1; - sdcr := sdcr + QUERY ( q <* bag_to_set( USEDIN( sdqir[i], 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + + sdcr := sdcr + QUERY ( q <* bag_to_set( USEDIN( sdqir[i], 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'DATA_QUALITY_INSPECTION_REPORT.' + 'INSPECTION_RESULT' ) ) | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'SHAPE_DATA_QUALITY_INSPECTION_CRITERION_REPORT' ) IN TYPEOF( q ) ) ); END_REPEAT; REPEAT i := 1 TO SIZEOF( sdqir ) BY 1; - sdir := sdir + QUERY ( q <* bag_to_set( USEDIN( sdqir[i], 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + + sdir := sdir + QUERY ( q <* bag_to_set( USEDIN( sdqir[i], 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'DATA_QUALITY_INSPECTION_REPORT.' + 'INSPECTION_RESULT' ) ) | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'SHAPE_DATA_QUALITY_INSPECTION_INSTANCE_REPORT' ) IN TYPEOF( q ) ) ); END_REPEAT; @@ -33459,11 +34801,11 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; RETURN( TRUE ); END_IF; REPEAT i := 1 TO SIZEOF( sdir ) BY 1; - sdii := sdii + QUERY ( q <* sdir[i].inspected_instances | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + + sdii := sdii + QUERY ( q <* sdir[i].inspected_instances | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'SHAPE_DATA_QUALITY_INSPECTION_INSTANCE_REPORT_ITEM' ) IN TYPEOF( q ) ) ); END_REPEAT; REPEAT i := 1 TO SIZEOF( sdir ) BY 1; - sdei := sdei + QUERY ( q <* sdir[i].inspected_instances | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + + sdei := sdei + QUERY ( q <* sdir[i].inspected_instances | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'INSTANCE_REPORT_ITEM_WITH_EXTREME_INSTANCES' ) IN TYPEOF( q ) ) ); END_REPEAT; REPEAT i := 1 TO SIZEOF( sdcr ) BY 1; @@ -33511,7 +34853,7 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; ) : BOOLEAN; BEGIN - IF SIZEOF( QUERY ( i1 <* agg | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'MEASURE_REPRESENTATION_ITEM' ) IN + IF SIZEOF( QUERY ( i1 <* agg | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' + 'MEASURE_REPRESENTATION_ITEM' ) IN TYPEOF( i1 ) ) ) ) = 6 THEN RETURN( TRUE ); ELSE @@ -33527,7 +34869,7 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; BEGIN IF ( SIZEOF( agg ) = 2 ) AND ( ( SIZEOF( QUERY ( i1 <* agg | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' - + 'MEASURE_REPRESENTATION_ITEM' IN TYPEOF( i1 ) ) ) ) = 2 ) OR ( SIZEOF( QUERY ( i2 <* agg | ( + + 'MEASURE_REPRESENTATION_ITEM' IN TYPEOF( i1 ) ) ) ) = 2 ) OR ( SIZEOF( QUERY ( i2 <* agg | ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.VALUE_REPRESENTATION_ITEM' IN TYPEOF( i2 ) ) ) ) = 2 ) ) THEN RETURN( TRUE ); ELSE @@ -33542,7 +34884,7 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; ) : BOOLEAN; BEGIN - IF ( SIZEOF( QUERY ( i <* agg | ( i\representation_item.name = 'upper limit' ) ) ) = 1 ) AND ( SIZEOF( QUERY ( i <* agg | + 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 @@ -33557,7 +34899,7 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; ) : BOOLEAN; BEGIN - IF SIZEOF( QUERY ( i1 <* agg | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM' IN + IF SIZEOF( QUERY ( i1 <* agg | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM' IN TYPEOF( i1 ) ) AND ( SIZEOF( QUERY ( i2 <* agg | ( ( 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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 @@ -33574,8 +34916,8 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; ) : maths_space; LOCAL - typenames : SET OF STRING := TYPEOF( expr ); e_prefix : STRING := 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.'; + typenames : SET OF STRING := TYPEOF( expr ); END_LOCAL; IF ( schema_prefix + 'MATHS_VARIABLE' ) IN typenames THEN RETURN( expr\maths_variable.values_space ); @@ -33671,14 +35013,14 @@ SCHEMA Ap242_managed_model_based_3d_engineering_mim_LF; ) : vector; LOCAL - ndim : INTEGER; - mag2 : REAL; - mag1 : REAL; - mag : REAL; + result : vector; res : direction; vec1 : direction; vec2 : direction; - result : vector; + mag : REAL; + mag1 : REAL; + mag2 : REAL; + ndim : INTEGER; END_LOCAL; IF ( NOT EXISTS( arg1 ) ) OR ( NOT EXISTS( arg2 ) ) OR ( arg1.dim <> arg2.dim ) THEN RETURN( ? ); diff --git a/data/cd209/part409cdts_wg3n2617mim_lf.exp b/data/cd209/part409cdts_wg3n2617mim_lf.exp deleted file mode 100644 index 39f76084..00000000 --- a/data/cd209/part409cdts_wg3n2617mim_lf.exp +++ /dev/null @@ -1,45948 +0,0 @@ -(* -$Id: mim_lf.exp,v 1.20 2013/02/20 01:23:04 thomasrthurman Exp $ -*) - -(* ===================================================================================== *) -(* Long form schema generated by The EXPRESS Data Manager compiler version 9.8.3B 20121030*) -(* Tue Feb 19 15:18:16 2013 *) -(* The schema is converted from ISO10303 P11-2003 to ISO10303 P11-1994 *) -(* ===================================================================================== *) - -SCHEMA Ap209_multidisciplinary_analysis_and_design_mim_LF; - - - -(* -USE FROM Ap242_managed_model_based_3d_engineering_mim; - - -USE FROM Analysis_assignment_mim; -USE FROM Analysis_characterized_mim; -USE FROM Analysis_identification_mim; -USE FROM Analysis_product_relationships_mim; - - -USE FROM Analysis_mim; -USE FROM Analysis_representation_mim; -USE FROM Cfd_model_mim; -USE FROM Finite_elements_mim; -USE FROM Mesh_connectivity_mim; -USE FROM Mesh_topology_mim; -USE FROM Product_analysis_mim; - - -USE FROM Analysis_shape_mim; -USE FROM Finite_element_shape_mim; - - -USE FROM Cfd_specified_general_property_mim; -USE FROM Fea_definition_relationships_mim; -USE FROM Fea_material_aspects_mim; - - -USE FROM Cfd_equations_mim; -USE FROM Cfd_results_mim; -USE FROM Finite_element_analysis_mim; -USE FROM Mesh_function_mim; - - -USE FROM mathematical_functions_schema; -USE FROM ISO13584_generic_expressions_schema; -USE FROM ISO13584_expressions_schema; - -USE FROM Part_view_definition_mim; -USE FROM Collection_identification_and_version_mim; -*) - -CONSTANT -schema_date_stamp : STRING := 'Tue Feb 19 15:18:16 2013'; -(* Implicit interfaced from: mathematical_functions_schema *) - the_integer_tuples : extended_tuple_space := make_extended_tuple_space( - the_zero_tuple_space, the_integers); - -(* Implicit interfaced from: mathematical_functions_schema *) - the_empty_maths_tuple : maths_tuple := []; - -(* Implicit interfaced from: mathematical_functions_schema *) - the_generics : elementary_space := make_elementary_space(es_generics); - -(* Implicit interfaced from: mathematical_functions_schema *) - the_integers : elementary_space := make_elementary_space(es_integers); - -(* Implicit interfaced from: mathematical_functions_schema *) - the_reals : elementary_space := make_elementary_space(es_reals); - -(* Implicit interfaced from: mathematical_functions_schema *) - the_booleans : elementary_space := make_elementary_space(es_booleans); - -(* Implicit interfaced from: mathematical_functions_schema *) - the_strings : elementary_space := make_elementary_space(es_strings); - -(* Implicit interfaced from: mathematical_functions_schema *) - the_complex_numbers : elementary_space := make_elementary_space(es_complex_numbers); - -(* Implicit interfaced from: mathematical_functions_schema *) - the_numbers : elementary_space := make_elementary_space(es_numbers); - -(* Implicit interfaced from: mathematical_functions_schema *) - the_zero_tuple_space : listed_product_space := make_listed_product_space([]); - -(* Implicit interfaced from: mathematical_functions_schema *) - the_tuples : extended_tuple_space := make_extended_tuple_space( - the_zero_tuple_space, the_generics); - -(* Implicit interfaced from: mathematical_functions_schema *) - the_empty_space : finite_space := make_finite_space([]); - -(* Implicit interfaced from: mathematical_functions_schema *) - the_logicals : elementary_space := make_elementary_space(es_logicals); - -(* Implicit interfaced from: mathematical_functions_schema *) schema_prefix : STRING := 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.'; - -(* Implicit interfaced from: mathematical_functions_schema *) - the_real_tuples : extended_tuple_space := make_extended_tuple_space( - the_zero_tuple_space, the_reals); - -(* Implicit interfaced from: mathematical_functions_schema *) - the_nonnegative_reals : real_interval_from_min := - make_real_interval_from_min(0.0, closed); - -(* Implicit interfaced from: mathematical_functions_schema *) - the_neg1_one_interval : finite_real_interval := make_finite_real_interval( - -1.0, closed, 1.0, closed); - -(* Implicit interfaced from: mathematical_functions_schema *) - the_complex_tuples : extended_tuple_space := make_extended_tuple_space( - the_zero_tuple_space, the_complex_numbers); - -(* Implicit interfaced from: mathematical_functions_schema *) - the_binarys : elementary_space := make_elementary_space(es_binarys); - -(* Implicit interfaced from: mathematical_functions_schema *) - the_maths_spaces : elementary_space := make_elementary_space(es_maths_spaces); - -(* Implicit interfaced from: mathematical_functions_schema *) - the_zero_pi_interval : finite_real_interval := make_finite_real_interval( - 0.0, closed, pi, closed); - -(* Implicit interfaced from: mathematical_functions_schema *) - the_neghalfpi_halfpi_interval : finite_real_interval := make_finite_real_interval( - -0.5*pi, closed, 0.5*pi, closed); - -(* Implicit interfaced from: mathematical_functions_schema *) - the_negpi_pi_interval : finite_real_interval := make_finite_real_interval( - -pi, open, pi, closed); - -(* Implicit interfaced from: Picture_representation_mim *) - pre_defined_picture_representation_types : SET [0:?] OF STRING := [ 'JPEG', 'PNG', 'TIFF', 'BMP', 'GIF']; - -(* Implicit interfaced from: geometry_schema *) - dummy_gri : geometric_representation_item := representation_item('')|| geometric_representation_item(); - -(* Implicit interfaced from: topology_schema *) - dummy_tri : topological_representation_item := representation_item('')|| - topological_representation_item(); - -END_CONSTANT; - -(* Pruned unused type: pdq_person_and_organization_item *) - - -(* Pruned unused type: ap209e2_analysed_item *) - - -(* Pruned unused type: ap209e2_groupable_item *) - - -(* Pruned unused type: ap209e2_analysis_identification_item *) - - -(* Pruned unused type: property_variable_rep_select_242 *) - - -(* Pruned unused type: item_identified_representation_usage_definition_242 *) - - -(* Pruned unused type: draughting_model_item_definition_242 *) - - -(* Pruned unused type: ap242_change_management_object *) - - -(* Pruned unused type: ap242_change_relationship_select *) - - -(* Pruned unused type: action_request_item_242 *) - - -(* Pruned unused type: aliasable_item_242 *) - - -(* Pruned unused type: approval_item_242 *) - -(* USED FROM (Ap242_managed_model_based_3d_engineering_mim); *) - TYPE approved_item = SELECT - (certification, - change, - change_request, - configuration_effectivity, - configuration_item, - contract, - product, - security_classification, - start_request, - start_work); - END_TYPE; - -(* Pruned unused type: attribute_language_item_242 *) - - -(* Pruned unused type: certification_item_242 *) - -(* USED FROM (Ap242_managed_model_based_3d_engineering_mim); *) - TYPE certified_item = SELECT - (supplied_part_relationship); - END_TYPE; -(* USED FROM (Ap242_managed_model_based_3d_engineering_mim); *) - TYPE change_request_item = SELECT - (product_definition_formation); - END_TYPE; -(* USED FROM (Ap242_managed_model_based_3d_engineering_mim); *) - TYPE cc_classified_item = SELECT - (assembly_component_usage, - product_definition_formation); - END_TYPE; - -(* Pruned unused type: contract_item_242 *) - -(* USED FROM (Ap242_managed_model_based_3d_engineering_mim); *) - TYPE contracted_item = SELECT - (product_definition_formation); - END_TYPE; - -(* Pruned unused type: date_and_time_item_242 *) - - -(* Pruned unused type: date_item_242 *) - -(* USED FROM (Ap242_managed_model_based_3d_engineering_mim); *) - TYPE date_time_item = SELECT - (approval_person_organization, - certification, - change, - change_request, - contract, - product_definition, - security_classification, - start_request, - start_work); - END_TYPE; - -(* Pruned unused type: document_reference_item_242 *) - - -(* Pruned unused type: effectivity_item_242 *) - - -(* Pruned unused type: event_occurrence_item_242 *) - - -(* Pruned unused type: external_identification_item_242 *) - - -(* Pruned unused type: groupable_item_242 *) - - -(* Pruned unused type: identification_item_242 *) - - -(* Pruned unused type: multi_language_attribute_item_242 *) - - -(* Pruned unused type: organization_item_242 *) - - -(* Pruned unused type: organizational_project_item_242 *) - - -(* Pruned unused type: person_and_organization_item_242 *) - -(* USED FROM (Ap242_managed_model_based_3d_engineering_mim); *) - 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; - -(* Pruned unused type: presented_item_select_242 *) - - -(* Pruned unused type: security_classification_item_242 *) - -(* USED FROM (Ap242_managed_model_based_3d_engineering_mim); *) - TYPE cc_specified_item = SELECT - (product_definition, - shape_aspect); - END_TYPE; -(* USED FROM (Ap242_managed_model_based_3d_engineering_mim); *) - TYPE start_request_item = SELECT - (product_definition_formation); - END_TYPE; - -(* Pruned unused type: time_interval_item_242 *) - - -(* Pruned unused type: action_items_242 *) - - -(* Pruned unused type: classification_item_242 *) - - -(* Pruned unused type: configured_effectivity_item_242 *) - -(* USED FROM (Ap242_managed_model_based_3d_engineering_mim); *) - TYPE work_item = SELECT - (product_definition_formation); - END_TYPE; -(* USED FROM (Analysis_assignment_mim); *) -(* This SELECT set has been been expanded or truncated for EXPRESS E1 layout. *) -TYPE analysed_item = SELECT ( - fea_model, - product_definition, - temporal_spatial_domain); -END_TYPE; - - -(* Pruned unused type: analysis_identification_item *) - - -(* Pruned unused type: analysis_approval_item *) - - -(* Pruned unused type: analysis_classification_item *) - - -(* Pruned unused type: analysis_contract_item *) - - -(* Pruned unused type: analysis_date_and_time_item *) - - -(* Pruned unused type: analysis_date_item *) - - -(* Pruned unused type: analysis_organization_item *) - - -(* Pruned unused type: analysis_person_and_organization_item *) - - -(* Pruned unused type: analysis_security_classification_item *) - -(* USED FROM (Approval_mim); *) -(* This SELECT set has been been expanded or truncated for EXPRESS E1 layout. *) -TYPE approval_item = SELECT ( - action, - action_directive, - action_property, - action_request_solution, - alternate_product_relationship, - applied_action_assignment, - applied_classification_assignment, - applied_usage_right, - assembly_component_usage_substitute, - certification, - class, - class_system, - configuration_design, - configuration_effectivity, - configuration_item, - configured_effectivity_assignment, - contract, - control, - date, - directed_action, - document, - document_file, - draughting_model, - drawing_revision, - effectivity, - executed_action, - fea_model, - frozen_assignment, - general_property, - general_property_relationship, - group, - group_relationship, - information_usage_right, - material_designation, - mechanical_design_geometric_presentation_representation, - organizational_project, - presentation_area, - product, - product_concept, - product_concept_feature, - product_concept_feature_association, - product_concept_feature_category, - product_concept_feature_category_usage, - product_definition, - product_definition_formation, - product_definition_formation_relationship, - product_definition_relationship, - product_definition_substitute, - property_definition, - representation, - requirement_assignment, - resource_property, - result, - security_classification, - shape_aspect_relationship, - shape_representation, - temporal_spatial_domain, - versioned_action_request); -END_TYPE; - - -(* Pruned unused type: date_and_time_item_approval *) - - -(* Pruned unused type: date_item_approval *) - -(* USED FROM (Classification_assignment_mim); *) -(* This SELECT set has been been expanded or truncated for EXPRESS E1 layout. *) -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, - document_type, - effectivity, - event_occurrence, - executed_action, - feature_definition, - general_feature, - general_property, - general_property_relationship, - group, - identification_assignment, - information_right, - information_usage_right, - language, - material_designation, - 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, - plus_minus_tolerance, - process_operation, - product, - product_concept, - product_concept_feature, - product_concept_feature_category, - 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, - resource_property, - security_classification, - security_classification_level, - shape_aspect, - state_type, - state_type_assignment, - state_type_relationship, - uncertainty_measure_with_unit, - usage_association, - versioned_action_request); -END_TYPE; - -(* USED FROM (Contract_mim); *) -(* This SELECT set has been been expanded or truncated for EXPRESS E1 layout. *) -TYPE contract_item = SELECT ( - action_directive, - alternate_product_relationship, - directed_action, - drawing_revision, - executed_action, - information_usage_right, - organization, - person_and_organization, - product, - product_definition_formation); -END_TYPE; - -(* USED FROM (Date_time_assignment_mim); *) -(* This SELECT set has been been expanded or truncated for EXPRESS E1 layout. *) -TYPE date_item = SELECT ( - action, - action_directive, - action_method, - action_property, - action_relationship, - action_request_solution, - alternate_product_relationship, - applied_action_assignment, - applied_classification_assignment, - applied_organization_assignment, - applied_person_and_organization_assignment, - applied_security_classification_assignment, - approval_person_organization, - approval_status, - assembly_component_usage_substitute, - certification, - class, - class_system, - configuration_design, - configuration_item, - configured_effectivity_assignment, - contract, - data_quality_definition, - directed_action, - document, - document_file, - draughting_model, - drawing_revision, - effectivity, - event_occurrence, - executed_action, - general_property, - information_usage_right, - material_designation, - mechanical_design_geometric_presentation_representation, - organization_relationship, - organizational_project, - person_and_organization, - presentation_area, - product, - product_concept, - product_concept_feature, - product_concept_feature_association, - product_concept_feature_category, - product_concept_feature_category_usage, - product_definition, - product_definition_formation, - product_definition_formation_relationship, - product_definition_relationship, - product_definition_substitute, - property_definition, - requirement_for_action_resource, - resource_property, - security_classification, - security_classification_level, - shape_representation, - versioned_action_request); -END_TYPE; - -(* USED FROM (Date_time_assignment_mim); *) -(* This SELECT set has been been expanded or truncated for EXPRESS E1 layout. *) -TYPE date_and_time_item = SELECT ( - action, - action_directive, - action_method, - action_property, - action_relationship, - action_request_solution, - alternate_product_relationship, - applied_action_assignment, - applied_classification_assignment, - applied_organization_assignment, - applied_person_and_organization_assignment, - applied_security_classification_assignment, - approval_person_organization, - approval_status, - assembly_component_usage_substitute, - certification, - class, - class_system, - configuration_design, - configuration_item, - configured_effectivity_assignment, - contract, - data_quality_definition, - directed_action, - document, - document_file, - draughting_model, - drawing_revision, - effectivity, - event_occurrence, - executed_action, - general_property, - information_usage_right, - material_designation, - mechanical_design_geometric_presentation_representation, - organization_relationship, - organizational_project, - person_and_organization, - presentation_area, - product, - product_concept, - product_concept_feature, - product_concept_feature_association, - product_concept_feature_category, - product_concept_feature_category_usage, - product_definition, - product_definition_formation, - product_definition_formation_relationship, - product_definition_relationship, - product_definition_substitute, - property_definition, - requirement_for_action_resource, - resource_property, - rule_action, - security_classification, - security_classification_level, - shape_representation, - versioned_action_request); -END_TYPE; - -(* USED FROM (Person_organization_assignment_mim); *) -(* This SELECT set has been been expanded or truncated for EXPRESS E1 layout. *) -TYPE organization_item = SELECT ( - action, - action_directive, - action_method, - action_property, - action_relationship, - action_request_solution, - alternate_product_relationship, - applied_action_assignment, - applied_classification_assignment, - applied_identification_assignment, - applied_organization_assignment, - applied_person_and_organization_assignment, - applied_security_classification_assignment, - approval, - approval_status, - assembly_component_usage_substitute, - certification, - class, - class_system, - configuration_design, - configuration_effectivity, - configuration_item, - configured_effectivity_assignment, - contract, - data_quality_definition, - document_file, - document_type, - draughting_model, - drawing_revision, - effectivity, - event_occurrence, - executed_action, - general_property, - information_usage_right, - material_designation, - mechanical_design_geometric_presentation_representation, - organization, - organization_relationship, - organizational_project, - person_and_organization, - presentation_area, - product, - product_concept, - product_concept_feature, - product_concept_feature_association, - product_concept_feature_category, - product_concept_feature_category_usage, - product_definition, - product_definition_formation, - product_definition_formation_relationship, - product_definition_relationship, - product_definition_substitute, - property_definition, - requirement_for_action_resource, - resource_property, - rule_action, - security_classification, - security_classification_level, - shape_representation, - versioned_action_request); -END_TYPE; - -(* USED FROM (Person_organization_assignment_mim); *) -(* This SELECT set has been been expanded or truncated for EXPRESS E1 layout. *) -TYPE person_and_organization_item = SELECT ( - action, - action_directive, - action_method, - action_property, - action_relationship, - action_request_solution, - alternate_product_relationship, - applied_action_assignment, - applied_classification_assignment, - applied_identification_assignment, - applied_organization_assignment, - applied_person_and_organization_assignment, - applied_security_classification_assignment, - approval, - approval_status, - assembly_component_usage_substitute, - certification, - class, - class_system, - configuration_design, - configuration_effectivity, - configuration_item, - configured_effectivity_assignment, - contract, - data_quality_definition, - document_file, - document_type, - draughting_model, - drawing_revision, - event_occurrence, - executed_action, - general_property, - information_usage_right, - material_designation, - mechanical_design_geometric_presentation_representation, - organization, - organization_relationship, - organizational_project, - person_and_organization, - presentation_area, - product, - product_concept, - product_concept_feature, - product_concept_feature_association, - product_concept_feature_category, - product_concept_feature_category_usage, - product_definition, - product_definition_formation, - product_definition_formation_relationship, - product_definition_relationship, - product_definition_substitute, - property_definition, - requirement_for_action_resource, - resource_property, - rule_action, - security_classification, - security_classification_level, - shape_representation, - versioned_action_request); -END_TYPE; - -(* USED FROM (Security_classification_mim); *) -(* This SELECT set has been been expanded or truncated for EXPRESS E1 layout. *) -TYPE security_classification_item = SELECT ( - action, - action_directive, - action_property, - applied_action_assignment, - assembly_component_usage, - assembly_component_usage_substitute, - class_system, - configuration_design, - configuration_effectivity, - configured_effectivity_assignment, - document, - document_file, - draughting_model, - drawing_revision, - executed_action, - general_property, - make_from_usage_option, - material_designation, - mechanical_design_geometric_presentation_representation, - organizational_project, - presentation_area, - product, - product_concept, - product_concept_feature, - product_concept_feature_category, - product_definition, - product_definition_formation, - product_definition_relationship, - product_definition_usage, - property_definition, - resource_property, - shape_representation, - versioned_action_request); -END_TYPE; - -(* USED FROM (Identification_assignment_mim); *) -(* This SELECT set has been been expanded or truncated for EXPRESS E1 layout. *) -TYPE identification_item = SELECT ( - action, - action_directive, - action_method, - action_property, - applied_identification_assignment, - approval_status, - characterized_class, - class, - class_system, - configuration_item, - contract, - dimensional_size, - document_file, - document_type, - draughting_model, - effectivity, - general_property, - group, - group_relationship, - information_right, - information_usage_right, - material_designation, - measure_representation_item, - mechanical_design_geometric_presentation_representation, - organization, - organizational_project, - person_and_organization, - presentation_area, - product, - product_category, - product_class, - product_concept, - product_concept_feature, - product_concept_feature_category, - product_definition, - product_definition_formation, - product_definition_relationship, - product_identification, - property_definition, - property_definition_relationship, - representation, - rule_set, - security_classification, - security_classification_level, - shape_aspect_relationship, - shape_representation, - state_type, - state_type_relationship, - usage_association, - versioned_action_request); -END_TYPE; - -(* USED FROM (Shape_property_assignment_mim); *) -(* This SELECT set has been been expanded or truncated for EXPRESS E1 layout. *) -TYPE geometric_model_item = SELECT ( - connected_face_set, - edge_loop, - geometric_representation_item); -END_TYPE; - -(* USED FROM (Shape_property_assignment_mim); *) -TYPE geometric_item_specific_usage_select = SELECT - (shape_aspect, - shape_aspect_relationship); -END_TYPE; -(* USED FROM (Shape_property_assignment_mim); *) -(* This SELECT set has been been expanded or truncated for EXPRESS E1 layout. *) -TYPE shape_model = SELECT ( - constructive_geometry_representation, - shape_representation); -END_TYPE; - -(* USED FROM (mathematical_functions_schema); *) -TYPE nonnegative_integer = INTEGER; -WHERE -nonnegativity: SELF >= 0; -END_TYPE; -(* USED FROM (mathematical_functions_schema); *) -TYPE positive_integer = nonnegative_integer; -WHERE positivity: SELF > 0; -END_TYPE; -(* USED FROM (mathematical_functions_schema); *) -TYPE zero_or_one = nonnegative_integer; -WHERE in_range: (SELF = 0) OR (SELF = 1); -END_TYPE; -(* USED FROM (mathematical_functions_schema); *) -TYPE one_or_two = positive_integer; -WHERE in_range: (SELF = 1) OR (SELF = 2); -END_TYPE; -(* USED FROM (mathematical_functions_schema); *) -TYPE maths_number = NUMBER; -END_TYPE; -(* USED FROM (mathematical_functions_schema); *) -TYPE maths_real = REAL; -END_TYPE; -(* USED FROM (mathematical_functions_schema); *) -TYPE maths_integer = INTEGER; -END_TYPE; -(* USED FROM (mathematical_functions_schema); *) -TYPE maths_logical = LOGICAL; -END_TYPE; -(* USED FROM (mathematical_functions_schema); *) -TYPE maths_boolean = BOOLEAN; -END_TYPE; -(* USED FROM (mathematical_functions_schema); *) -TYPE maths_string = STRING; -END_TYPE; -(* USED FROM (mathematical_functions_schema); *) -TYPE maths_binary = BINARY; -END_TYPE; -(* USED FROM (mathematical_functions_schema); *) -TYPE maths_simple_atom = SELECT - (maths_number, - maths_real, - maths_integer, - maths_logical, - maths_boolean, - maths_string, - maths_binary); -END_TYPE; -(* USED FROM (mathematical_functions_schema); *) -TYPE maths_atom = SELECT - (maths_simple_atom, - maths_enum_atom); -END_TYPE; -(* USED FROM (mathematical_functions_schema); *) -TYPE atom_based_tuple = LIST OF atom_based_value; -END_TYPE; -(* USED FROM (mathematical_functions_schema); *) -TYPE atom_based_value = SELECT - (maths_atom, - atom_based_tuple); -END_TYPE; -(* USED FROM (mathematical_functions_schema); *) -TYPE maths_tuple = LIST [0:?] OF maths_value; -END_TYPE; -(* USED FROM (mathematical_functions_schema); *) -TYPE maths_value = SELECT - (atom_based_value, - maths_tuple, - generic_expression); -WHERE - constancy: NOT ('GENERIC_EXPRESSION' IN stripped_typeof(SELF)) OR - expression_is_constant(SELF); -END_TYPE; -(* USED FROM (mathematical_functions_schema); *) -TYPE maths_expression = SELECT - (atom_based_value, - maths_tuple, - generic_expression); -END_TYPE; -(* USED FROM (mathematical_functions_schema); *) -TYPE maths_function_select = SELECT - (maths_function, - elementary_function_enumerators); -END_TYPE; -(* USED FROM (mathematical_functions_schema); *) -TYPE input_selector = positive_integer; -END_TYPE; -(* USED FROM (mathematical_functions_schema); *) -TYPE elementary_space_enumerators = ENUMERATION OF - (es_numbers, - es_complex_numbers, - es_reals, - es_integers, - es_logicals, - es_booleans, - es_strings, - es_binarys, - es_maths_spaces, - es_maths_functions, - es_generics); -END_TYPE; -(* USED FROM (mathematical_functions_schema); *) -TYPE ordering_type = ENUMERATION OF - (by_rows, - by_columns); -END_TYPE; -(* USED FROM (mathematical_functions_schema); *) -TYPE lower_upper = ENUMERATION OF - (lower, - upper); -END_TYPE; -(* USED FROM (mathematical_functions_schema); *) -TYPE symmetry_type = ENUMERATION OF - (identity, - skew, - hermitian, - skew_hermitian); -END_TYPE; -(* USED FROM (mathematical_functions_schema); *) -TYPE elementary_function_enumerators = ENUMERATION OF - (ef_and, ef_or, ef_not, ef_xor, - ef_negate_i, ef_add_i, ef_subtract_i, ef_multiply_i, ef_divide_i, ef_mod_i, - ef_exponentiate_i, ef_eq_i, ef_ne_i, ef_gt_i, ef_lt_i, ef_ge_i, ef_le_i, - ef_abs_i, ef_max_i, ef_min_i, ef_if_i, - ef_negate_r, ef_reciprocal_r, ef_add_r, ef_subtract_r, ef_multiply_r, - ef_divide_r, ef_mod_r, ef_exponentiate_r, ef_exponentiate_ri, - ef_eq_r, ef_ne_r, ef_gt_r, ef_lt_r, ef_ge_r, ef_le_r, ef_abs_r, - ef_max_r, ef_min_r, ef_acos_r, ef_asin_r, ef_atan2_r, ef_cos_r, ef_exp_r, - ef_ln_r, ef_log2_r, ef_log10_r, ef_sin_r, ef_sqrt_r, ef_tan_r, ef_if_r, - ef_form_c, ef_rpart_c, ef_ipart_c, - ef_negate_c, ef_reciprocal_c, ef_add_c, ef_subtract_c, ef_multiply_c, - ef_divide_c, ef_exponentiate_c, ef_exponentiate_ci, ef_eq_c, ef_ne_c, - ef_conjugate_c, ef_abs_c, ef_arg_c, ef_cos_c, ef_exp_c, ef_ln_c, ef_sin_c, - ef_sqrt_c, ef_tan_c, ef_if_c, - ef_subscript_s, ef_eq_s, ef_ne_s, ef_gt_s, ef_lt_s, ef_ge_s, ef_le_s, - ef_subsequence_s, ef_concat_s, ef_size_s, ef_format, ef_value, ef_like, ef_if_s, - ef_subscript_b, ef_eq_b, ef_ne_b, ef_gt_b, ef_lt_b, ef_ge_b, ef_le_b, - ef_subsequence_b, ef_concat_b, ef_size_b, ef_if_b, - ef_subscript_t, ef_eq_t, ef_ne_t, ef_concat_t, ef_size_t, - ef_entuple, ef_detuple, ef_insert, ef_remove, ef_if_t, - ef_sum_it, ef_product_it, - ef_add_it, ef_subtract_it, ef_scalar_mult_it, ef_dot_prod_it, - ef_sum_rt, ef_product_rt, - ef_add_rt, ef_subtract_rt, ef_scalar_mult_rt, ef_dot_prod_rt, ef_norm_rt, - ef_sum_ct, ef_product_ct, - ef_add_ct, ef_subtract_ct, ef_scalar_mult_ct, ef_dot_prod_ct, ef_norm_ct, - ef_if, ef_ensemble, ef_member_of); -END_TYPE; -(* USED FROM (mathematical_functions_schema); *) -TYPE open_closed = ENUMERATION OF - (open, - closed); -END_TYPE; -(* USED FROM (mathematical_functions_schema); *) -TYPE space_constraint_type = ENUMERATION OF - (sc_equal, - sc_subspace, - sc_member); -END_TYPE; -(* USED FROM (mathematical_functions_schema); *) -TYPE repackage_options = ENUMERATION OF - (ro_nochange, - ro_wrap_as_tuple, - ro_unwrap_tuple); -END_TYPE; -(* USED FROM (mathematical_functions_schema); *) -TYPE extension_options = ENUMERATION OF - (eo_none, - eo_cont, - eo_cont_right, - eo_cont_left); -END_TYPE; -(* USED FROM (mathematical_functions_schema); *) -TYPE maths_enum_atom = SELECT - (elementary_space_enumerators, - ordering_type, - lower_upper, - symmetry_type, - elementary_function_enumerators, - open_closed, - space_constraint_type, - repackage_options, - extension_options); -END_TYPE; - -(* Pruned unused type: classification_identification_item *) - - -(* Pruned unused type: classification_item_extended *) - -(* USED FROM (mathematical_functions_schema); *) -TYPE product_space = SELECT - (uniform_product_space, - listed_product_space); -END_TYPE; -(* USED FROM (mathematical_functions_schema); *) -TYPE tuple_space = SELECT - (product_space, - extended_tuple_space); -END_TYPE; -(* USED FROM (mathematical_functions_schema); *) -TYPE maths_space_or_function = SELECT - (maths_space, - maths_function); -END_TYPE; -(* USED FROM (mathematical_functions_schema); *) -TYPE real_interval = SELECT - (real_interval_from_min, - real_interval_to_max, - finite_real_interval, - elementary_space); -WHERE - WR1: NOT ('ELEMENTARY_SPACE' IN stripped_typeof(SELF)) OR - (SELF\elementary_space.space_id = es_reals); -END_TYPE; - -(* Pruned unused type: collection_assignment_groupable_item *) - - -(* Pruned unused type: collection_membership_groupable_item *) - -(* USED FROM (Externally_conditioned_data_quality_inspection_result_mim); *) -(* This SELECT set has been been expanded or truncated for EXPRESS E1 layout. *) -TYPE inspected_ecdq_element_select = inspected_element_select; -END_TYPE; - - -(* Pruned unused type: csg2d_bounded_primitive_2d *) - -(* USED FROM (Constructive_solid_geometry_2d_mim); *) - TYPE boolean_operand_2d = SELECT ( - bounded_primitive_2d, - boolean_result_2d); - END_TYPE; -(* USED FROM (Constructive_solid_geometry_2d_mim); *) - TYPE compound_inner_area_boundary = SELECT ( - set_inner_area_boundary); - END_TYPE; -(* USED FROM (Constructive_solid_geometry_2d_mim); *) - TYPE csg_2d_area_select = SELECT ( - axis2_placement_2d, - csg_primitive_solid_2d); - END_TYPE; -(* USED FROM (Constructive_solid_geometry_2d_mim); *) - TYPE csg_2d_shape_select = SELECT ( - mapped_item, - axis2_placement_2d, - csg_solid_2d); - END_TYPE; -(* USED FROM (Constructive_solid_geometry_2d_mim); *) - TYPE csg_select_2d = SELECT ( - bounded_primitive_2d, - boolean_result_2d); - END_TYPE; -(* USED FROM (Constructive_solid_geometry_2d_mim); *) - TYPE set_inner_area_boundary = SET [1:?] OF bounded_primitive_2d; - END_TYPE; - -(* Pruned unused type: dt_document_reference_item *) - - -(* Pruned unused type: design_pdm_action_item *) - - -(* Pruned unused type: design_pdm_action_method_items *) - - -(* Pruned unused type: design_pdm_action_request_item *) - - -(* Pruned unused type: design_pdm_approval_item *) - - -(* Pruned unused type: design_pdm_attribute_classification_item *) - - -(* Pruned unused type: design_pdm_attribute_language_item *) - - -(* Pruned unused type: design_pdm_certification_item *) - - -(* Pruned unused type: design_pdm_classification_item *) - - -(* Pruned unused type: design_pdm_configured_effectivity_item *) - - -(* Pruned unused type: design_pdm_contract_item *) - - -(* Pruned unused type: design_pdm_date_and_time_item *) - - -(* Pruned unused type: design_pdm_date_item *) - - -(* Pruned unused type: design_pdm_document_reference_item *) - - -(* Pruned unused type: design_pdm_effectivity_item *) - - -(* Pruned unused type: design_pdm_event_occurrence_item *) - - -(* Pruned unused type: design_pdm_groupable_item *) - - -(* Pruned unused type: design_pdm_identification_item *) - - -(* Pruned unused type: design_pdm_ir_usage_item *) - - -(* Pruned unused type: design_pdm_multi_language_attribute_item *) - - -(* Pruned unused type: design_pdm_name_item *) - - -(* Pruned unused type: design_pdm_organization_item *) - - -(* Pruned unused type: design_pdm_project_item *) - - -(* Pruned unused type: design_pdm_person_and_organization_item *) - - -(* Pruned unused type: design_pdm_requirement_assigned_item *) - - -(* Pruned unused type: design_pdm_requirement_source_item *) - - -(* Pruned unused type: design_pdm_security_classification_item *) - - -(* Pruned unused type: promissory_usage_in_product_model_assigned_item *) - - -(* Pruned unused type: design_pdm_time_interval_item *) - - -(* Pruned unused type: datc_draughting_model_item_definition *) - - -(* Pruned unused type: dimensioning_standard_document_reference_item *) - - -(* Pruned unused type: dimension_identification_item *) - - -(* Pruned unused type: dimension_tolerance_document_reference_item *) - - -(* Pruned unused type: eri_external_identification *) - -(* USED FROM (Mechanical_design_presentation_representation_with_draughting_mim); *) -(* This EXTENSIBLE SELECT have been replaced with plain SELECT for EXPRESS E1 layout. *) -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; - -(* USED FROM (Picture_representation_mim); *) - TYPE picture_representation_item_select = SELECT ( - styled_item, - planar_box, - axis2_placement_2d); - END_TYPE; - -(* Pruned unused type: pr_external_identification_item *) - - -(* Pruned unused type: pc_action_items *) - -(* USED FROM (Ply_orientation_specification_mim); *) - TYPE angle_direction_reference_select = SELECT ( - direction, - curve, - point_path); - END_TYPE; -(* USED FROM (Ply_orientation_specification_mim); *) - TYPE angle_direction_reference_with_a2p3d_select = SELECT ( - angle_direction_reference_select, - axis2_placement_3d); - END_TYPE; -(* USED FROM (Ply_orientation_specification_mim); *) - TYPE orientation_basis_select = SELECT ( - axis2_placement_3d, - min_and_major_ply_orientation_basis); - END_TYPE; -(* USED FROM (Ply_orientation_specification_mim); *) - TYPE point_and_vector_member = SELECT (point, direction); - END_TYPE; -(* USED FROM (Ply_orientation_specification_mim); *) - TYPE point_and_vector_members = LIST [2:3] OF point_and_vector_member; - END_TYPE; -(* USED FROM (Ply_orientation_specification_mim); *) - TYPE point_path_members = LIST [1:?] OF point_and_vector; - END_TYPE; - -(* Pruned unused type: mb3dgdtr_geometric_model_item *) - - -(* Pruned unused type: cm_approval_item *) - -(* USED FROM (Change_management_mim); *) -TYPE previous_element_assignment_select = SELECT (modify_element, delete_element); -END_TYPE; -(* USED FROM (Change_management_mim); *) -TYPE current_element_assignment_select = SELECT (modify_element, add_element); -END_TYPE; -(* USED FROM (Change_management_mim); *) -(* This SELECT set has been been expanded or truncated for EXPRESS E1 layout. *) -TYPE change_relationship_select = SELECT ( - action_relationship, - product_definition_formation_relationship, - product_definition_relationship, - shape_aspect_relationship); -END_TYPE; - -(* USED FROM (Change_management_mim); *) -(* This SELECT set has been been expanded or truncated for EXPRESS E1 layout. *) -TYPE change_management_object = SELECT ( - action, - action_items, - action_relationship, - class, - event_occurrence, - project_item); -END_TYPE; - -(* USED FROM (Change_management_mim); *) -TYPE location_in_aggregate_item = LIST [1:?] OF integer_representation_item; -END_TYPE; -(* USED FROM (Point_direction_model_mim); *) -TYPE point_placement_shape_representation_item = SELECT ( - compound_representation_item, - mapped_item, - axis2_placement_3d); -END_TYPE; -(* USED FROM (Numerical_interface_mim); *) -(* This SELECT set has been been expanded or truncated for EXPRESS E1 layout. *) -TYPE property_variable_rep_select = SELECT ( - dimensional_size, - representation); -END_TYPE; - -(* USED FROM (Numerical_interface_mim); *) -TYPE expression_extension_select = SELECT ( - expression_extension_string, - expression_extension_numeric); -END_TYPE; -(* USED FROM (product_property_representation_schema); *) -(* This SELECT set has been been expanded or truncated for EXPRESS E1 layout. *) -TYPE item_identified_representation_usage_definition = SELECT ( - applied_action_assignment, - applied_action_method_assignment, - applied_action_request_assignment, - applied_approval_assignment, - applied_certification_assignment, - applied_classification_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_group_assignment, - applied_identification_assignment, - applied_ineffectivity_assignment, - applied_name_assignment, - applied_organization_assignment, - applied_organizational_project_assignment, - applied_person_and_organization_assignment, - applied_security_classification_assignment, - applied_time_interval_assignment, - applied_usage_right, - dimensional_size, - geometric_tolerance, - product_definition_relationship, - property_definition, - represented_definition); -END_TYPE; - -(* USED FROM (basic_attribute_schema); *) -(* This SELECT set has been been expanded or truncated for EXPRESS E1 layout. *) -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; - -(* USED FROM (basic_attribute_schema); *) -(* This SELECT set has been been expanded or truncated for EXPRESS E1 layout. *) -TYPE id_attribute_select = SELECT ( - action, - address, - application_context, - dimensional_size, - geometric_tolerance, - group, - organizational_project, - product_category, - property_definition, - representation, - shape_aspect, - shape_aspect_relationship); -END_TYPE; - -(* USED FROM (basic_attribute_schema); *) -(* This SELECT set has been been expanded or truncated for EXPRESS E1 layout. *) -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; - - -(* Pruned unused type: representation_identification_item *) - -(* USED FROM (fea_scalar_vector_tensor_schema); *) -TYPE angular_value = - context_dependent_measure; -END_TYPE; -(* USED FROM (fea_scalar_vector_tensor_schema); *) -TYPE scalar = - context_dependent_measure; -END_TYPE; - -(* Pruned unused type: tensor1 *) - -(* USED FROM (fea_scalar_vector_tensor_schema); *) -TYPE tensor1_2d = - ARRAY [1:2] OF context_dependent_measure; -END_TYPE; -(* USED FROM (fea_scalar_vector_tensor_schema); *) -TYPE tensor1_3d = - ARRAY [1:3] OF context_dependent_measure; -END_TYPE; -(* USED FROM (fea_scalar_vector_tensor_schema); *) -TYPE symmetric_tensor2_2d = SELECT - (anisotropic_symmetric_tensor2_2d); -END_TYPE; -(* USED FROM (fea_scalar_vector_tensor_schema); *) -TYPE anisotropic_symmetric_tensor2_2d = - ARRAY [1:3] OF context_dependent_measure; -END_TYPE; -(* USED FROM (fea_scalar_vector_tensor_schema); *) -TYPE symmetric_tensor2_3d = SELECT - (isotropic_symmetric_tensor2_3d, - orthotropic_symmetric_tensor2_3d, - anisotropic_symmetric_tensor2_3d); -END_TYPE; -(* USED FROM (fea_scalar_vector_tensor_schema); *) -TYPE isotropic_symmetric_tensor2_3d = - context_dependent_measure; -END_TYPE; -(* USED FROM (fea_scalar_vector_tensor_schema); *) -TYPE orthotropic_symmetric_tensor2_3d = - ARRAY [1:3] OF context_dependent_measure; -END_TYPE; -(* USED FROM (fea_scalar_vector_tensor_schema); *) -TYPE anisotropic_symmetric_tensor2_3d = - ARRAY [1:6] OF context_dependent_measure; -END_TYPE; -(* USED FROM (fea_scalar_vector_tensor_schema); *) -TYPE symmetric_tensor4_2d = SELECT - (anisotropic_symmetric_tensor4_2d); -END_TYPE; -(* USED FROM (fea_scalar_vector_tensor_schema); *) -TYPE anisotropic_symmetric_tensor4_2d = - ARRAY [1:6] OF context_dependent_measure; -END_TYPE; -(* USED FROM (fea_scalar_vector_tensor_schema); *) -TYPE tensor_type = SELECT - (scalar, - angular_value, - tensor1_2d, - tensor1_3d, - anisotropic_symmetric_tensor2_2d, - isotropic_symmetric_tensor2_3d, - orthotropic_symmetric_tensor2_3d, - anisotropic_symmetric_tensor2_3d, - anisotropic_symmetric_tensor4_2d, - anisotropic_symmetric_tensor4_3d, - fea_isotropic_symmetric_tensor4_3d, - fea_iso_orthotropic_symmetric_tensor4_3d, - fea_transverse_isotropic_symmetric_tensor4_3d, - fea_column_normalised_orthotropic_symmetric_tensor4_3d, - fea_column_normalised_monoclinic_symmetric_tensor4_3d); -END_TYPE; -(* USED FROM (fea_scalar_vector_tensor_schema); *) -TYPE symmetric_tensor4_3d = SELECT - (anisotropic_symmetric_tensor4_3d, - fea_isotropic_symmetric_tensor4_3d, - fea_iso_orthotropic_symmetric_tensor4_3d, - fea_transverse_isotropic_symmetric_tensor4_3d, - fea_column_normalised_orthotropic_symmetric_tensor4_3d, - fea_column_normalised_monoclinic_symmetric_tensor4_3d); -END_TYPE; -(* USED FROM (fea_scalar_vector_tensor_schema); *) -TYPE anisotropic_symmetric_tensor4_3d = - ARRAY [1:21] OF context_dependent_measure; -END_TYPE; -(* USED FROM (fea_scalar_vector_tensor_schema); *) -TYPE fea_isotropic_symmetric_tensor4_3d = - ARRAY [1:2] OF context_dependent_measure; -END_TYPE; -(* USED FROM (fea_scalar_vector_tensor_schema); *) -TYPE fea_iso_orthotropic_symmetric_tensor4_3d = - ARRAY [1:3] OF context_dependent_measure; -END_TYPE; -(* USED FROM (fea_scalar_vector_tensor_schema); *) -TYPE fea_transverse_isotropic_symmetric_tensor4_3d = - ARRAY [1:5] OF context_dependent_measure; -END_TYPE; -(* USED FROM (fea_scalar_vector_tensor_schema); *) -TYPE fea_column_normalised_orthotropic_symmetric_tensor4_3d = - ARRAY [1:9] OF context_dependent_measure; -END_TYPE; -(* USED FROM (fea_scalar_vector_tensor_schema); *) -TYPE fea_column_normalised_monoclinic_symmetric_tensor4_3d = - ARRAY [1:13] OF context_dependent_measure; -END_TYPE; -(* USED FROM (structural_response_representation_schema); *) -TYPE axi_or_plane = ENUMERATION OF - (axisymmetric, - planar); -END_TYPE; -(* USED FROM (structural_response_representation_schema); *) -TYPE coordinate_system_type = ENUMERATION OF - (cartesian, - cylindrical, - spherical); -END_TYPE; -(* USED FROM (structural_response_representation_schema); *) -TYPE element_order = ENUMERATION OF - (linear, - quadratic, - cubic); -END_TYPE; -(* USED FROM (structural_response_representation_schema); *) -TYPE plane_2d_element_purpose = SELECT - (enumerated_plane_2d_element_purpose, - application_defined_element_purpose); -END_TYPE; -(* USED FROM (structural_response_representation_schema); *) -TYPE enumerated_plane_2d_element_purpose = ENUMERATION OF - (plane_stress, - plane_strain); -END_TYPE; -(* USED FROM (structural_response_representation_schema); *) -TYPE application_defined_element_purpose = STRING; -END_TYPE; -(* USED FROM (structural_response_representation_schema); *) -TYPE volume_element_purpose = SELECT - (enumerated_volume_element_purpose, - application_defined_element_purpose); -END_TYPE; -(* USED FROM (structural_response_representation_schema); *) -TYPE enumerated_volume_element_purpose = ENUMERATION OF - (stress_displacement); -END_TYPE; -(* USED FROM (structural_response_representation_schema); *) -TYPE surface_element_purpose = SELECT - (enumerated_surface_element_purpose, - application_defined_element_purpose); -END_TYPE; -(* USED FROM (structural_response_representation_schema); *) -TYPE enumerated_surface_element_purpose = ENUMERATION OF - (membrane_direct, - membrane_shear, - bending_direct, - bending_torsion, - normal_to_plane_shear); -END_TYPE; -(* USED FROM (structural_response_representation_schema); *) -TYPE curve_element_purpose = SELECT - (enumerated_curve_element_purpose, - application_defined_element_purpose); -END_TYPE; -(* USED FROM (structural_response_representation_schema); *) -TYPE enumerated_curve_element_purpose = ENUMERATION OF - (axial, - y_y_bending, - z_z_bending, - torsion, - x_y_shear, - x_z_shear, - warping); -END_TYPE; -(* USED FROM (structural_response_representation_schema); *) -TYPE volume_3d_element_shape = ENUMERATION OF - (hexahedron, - wedge, - tetrahedron, - pyramid); -END_TYPE; -(* USED FROM (structural_response_representation_schema); *) -TYPE element_2d_shape = ENUMERATION OF - (quadrilateral, - triangle); -END_TYPE; -(* USED FROM (structural_response_representation_schema); *) -TYPE matrix_property_type = SELECT - (enumerated_matrix_property_type, - application_defined_matrix_property_type); -END_TYPE; -(* USED FROM (structural_response_representation_schema); *) -TYPE enumerated_matrix_property_type = ENUMERATION OF - (stiffness, - mass, - damping); -END_TYPE; -(* USED FROM (structural_response_representation_schema); *) -TYPE application_defined_matrix_property_type = STRING; -END_TYPE; -(* USED FROM (structural_response_representation_schema); *) -TYPE surface_matrix_property_type = SELECT - (enumerated_surface_matrix_property_type, - application_defined_matrix_property_type); -END_TYPE; -(* USED FROM (structural_response_representation_schema); *) -TYPE enumerated_surface_matrix_property_type = ENUMERATION OF - (membrane_direct, - membrane_shear, - bending_direct, - bending_torsion, - normal_to_plane_shear, - membrane_direct_mass, - membrane_shear_mass, - bending_direct_mass, - bending_torsion_mass, - normal_to_plane_shear_mass, - mass); -END_TYPE; -(* USED FROM (structural_response_representation_schema); *) -TYPE curve_matrix_property_type = SELECT - (enumerated_curve_matrix_property_type, - application_defined_matrix_property_type); -END_TYPE; -(* USED FROM (structural_response_representation_schema); *) -TYPE enumerated_curve_matrix_property_type = ENUMERATION OF - (axial, - y_y_bending, - z_z_bending, - torsion, - x_y_shear, - x_z_shear, - warping, - axial_mass, - y_y_bending_mass, - z_z_bending_mass, - torsion_mass, - x_y_shear_mass, - x_z_shear_mass, - warping_mass, - mass); -END_TYPE; -(* USED FROM (structural_response_representation_schema); *) -TYPE matrix_symmetry = ENUMERATION OF - (symmetric, - diagonal); -END_TYPE; -(* USED FROM (structural_response_representation_schema); *) -TYPE degree_of_freedom = SELECT - (enumerated_degree_of_freedom, - application_defined_degree_of_freedom); -END_TYPE; -(* USED FROM (structural_response_representation_schema); *) -TYPE enumerated_degree_of_freedom = ENUMERATION OF - (x_translation, y_translation, z_translation, - x_rotation, y_rotation, z_rotation, - warp); -END_TYPE; -(* USED FROM (structural_response_representation_schema); *) -TYPE application_defined_degree_of_freedom = STRING; -END_TYPE; -(* USED FROM (structural_response_representation_schema); *) -TYPE curve_element_freedom = SELECT - (enumerated_curve_element_freedom, - application_defined_degree_of_freedom); -END_TYPE; -(* USED FROM (structural_response_representation_schema); *) -TYPE enumerated_curve_element_freedom = ENUMERATION OF - (x_translation, y_translation, z_translation, - x_rotation, y_rotation, z_rotation, - warp, - none); -END_TYPE; -(* USED FROM (structural_response_representation_schema); *) -TYPE integration_rule = ENUMERATION OF - (gaussian, - simpson); -END_TYPE; -(* USED FROM (structural_response_representation_schema); *) -TYPE shape_function = ENUMERATION OF - (lagrangian, - serendipity, - hermitian, - unspecified); -END_TYPE; -(* USED FROM (structural_response_representation_schema); *) -TYPE volume_2d_element_representation = SELECT - (axisymmetric_volume_2d_element_representation, - plane_volume_2d_element_representation); -END_TYPE; -(* USED FROM (structural_response_representation_schema); *) -TYPE surface_2d_element_representation = SELECT - (axisymmetric_surface_2d_element_representation, - plane_surface_2d_element_representation); -END_TYPE; -(* USED FROM (structural_response_representation_schema); *) -TYPE curve_2d_element_representation = SELECT - (axisymmetric_curve_2d_element_representation, - plane_curve_2d_element_representation); -END_TYPE; -(* USED FROM (structural_response_representation_schema); *) -TYPE volume_2d_element_descriptor = SELECT - (axisymmetric_volume_2d_element_descriptor, - plane_volume_2d_element_descriptor); -END_TYPE; -(* USED FROM (structural_response_representation_schema); *) -TYPE surface_2d_element_descriptor = SELECT - (axisymmetric_surface_2d_element_descriptor, - plane_surface_2d_element_descriptor); -END_TYPE; -(* USED FROM (structural_response_representation_schema); *) -TYPE curve_2d_element_descriptor = SELECT - (axisymmetric_curve_2d_element_descriptor, - plane_curve_2d_element_descriptor); -END_TYPE; -(* USED FROM (structural_response_representation_schema); *) -TYPE volume_3d_element_coordinate_system = SELECT - (arbitrary_volume_3d_element_coordinate_system, - parametric_volume_3d_element_coordinate_system); -END_TYPE; -(* USED FROM (structural_response_representation_schema); *) -TYPE volume_2d_element_coordinate_system = SELECT - (arbitrary_volume_2d_element_coordinate_system, - parametric_volume_2d_element_coordinate_system); -END_TYPE; -(* USED FROM (structural_response_representation_schema); *) -TYPE surface_3d_element_coordinate_system = SELECT - (aligned_surface_3d_element_coordinate_system, - parametric_surface_3d_element_coordinate_system, - constant_surface_3d_element_coordinate_system); -END_TYPE; -(* USED FROM (structural_response_representation_schema); *) -TYPE surface_2d_element_coordinate_system = SELECT - (aligned_surface_2d_element_coordinate_system, - parametric_surface_2d_element_coordinate_system); -END_TYPE; -(* USED FROM (structural_response_representation_schema); *) -TYPE curve_3d_element_coordinate_system = SELECT - (aligned_curve_3d_element_coordinate_system, - parametric_curve_3d_element_coordinate_system); -END_TYPE; -(* USED FROM (structural_response_representation_schema); *) -TYPE curve_element_end_coordinate_system = SELECT - (fea_axis2_placement_3d, - curve_3d_element_coordinate_system); -END_TYPE; -(* USED FROM (structural_response_representation_schema); *) -TYPE directionally_explicit_element_coordinate_system = SELECT - (directionally_explicit_element_coordinate_system_arbitrary, - directionally_explicit_element_coordinate_system_aligned); -END_TYPE; -(* USED FROM (structural_response_representation_schema); *) -TYPE element_aspect = SELECT - (element_volume, - volume_3d_face, - volume_2d_face, - volume_3d_edge, - volume_2d_edge, - surface_3d_face, - surface_2d_face, - surface_3d_edge, - surface_2d_edge, - curve_edge); -END_TYPE; -(* USED FROM (structural_response_representation_schema); *) -TYPE element_volume = ENUMERATION OF - (volume); -END_TYPE; -(* USED FROM (structural_response_representation_schema); *) -TYPE curve_edge = ENUMERATION OF - (element_edge); -END_TYPE; -(* USED FROM (structural_response_representation_schema); *) -TYPE node_or_node_group = SELECT - (node_representation, - node_group); -END_TYPE; -(* USED FROM (structural_response_representation_schema); *) -TYPE element_or_element_group = SELECT - (element_representation, - element_group); -END_TYPE; -(* USED FROM (structural_response_representation_schema); *) -TYPE volume_3d_element_field_integration = SELECT - (element_integration_algebraic, - volume_3d_element_field_integration_rule, - volume_3d_element_field_integration_explicit); -END_TYPE; -(* USED FROM (structural_response_representation_schema); *) -TYPE element_integration_algebraic = ENUMERATION OF (algebraic); -END_TYPE; -(* USED FROM (structural_response_representation_schema); *) -TYPE volume_2d_element_field_integration = SELECT - (element_integration_algebraic, - volume_2d_element_field_integration_rule, - volume_2d_element_field_integration_explicit); -END_TYPE; -(* USED FROM (structural_response_representation_schema); *) -TYPE surface_3d_element_field_integration = SELECT - (element_integration_algebraic, - surface_3d_element_field_integration_rule, - surface_3d_element_field_integration_explicit); -END_TYPE; -(* USED FROM (structural_response_representation_schema); *) -TYPE surface_section_integration = SELECT - (element_integration_algebraic, - surface_section_integration_rule, - surface_section_integration_explicit); -END_TYPE; -(* USED FROM (structural_response_representation_schema); *) -TYPE surface_2d_element_length_integration = SELECT - (element_integration_algebraic, - surface_2d_element_length_integration_rule, - surface_2d_element_length_integration_explicit); -END_TYPE; -(* USED FROM (structural_response_representation_schema); *) -TYPE curve_3d_element_length_integration = SELECT - (element_integration_algebraic, - curve_3d_element_length_integration_rule, - curve_3d_element_length_integration_explicit); -END_TYPE; -(* USED FROM (mesh_topology_schema); *) -(* This EXTENSIBLE SELECT have been replaced with plain SELECT for EXPRESS E1 layout. *) -TYPE cell_shape = SELECT ( - cell_shape_0D, - cell_shape_1D, - cell_shape_2D, - cell_shape_3D); -END_TYPE; - -(* USED FROM (mesh_topology_schema); *) -(* This EXTENSIBLE ENUMERATION set has been replaced with plain ENUMERATION for EXPRESS E1 layout. *) -TYPE cell_shape_0D = ENUMERATION OF ( - single); -END_TYPE; - -(* USED FROM (mesh_topology_schema); *) -(* This EXTENSIBLE ENUMERATION set has been replaced with plain ENUMERATION for EXPRESS E1 layout. *) -TYPE cell_shape_1D = ENUMERATION OF ( - line); -END_TYPE; - -(* USED FROM (mesh_topology_schema); *) -(* This EXTENSIBLE ENUMERATION set has been replaced with plain ENUMERATION for EXPRESS E1 layout. *) -TYPE cell_shape_2D = ENUMERATION OF ( - quadrilateral, - triangle); -END_TYPE; - -(* USED FROM (mesh_topology_schema); *) -(* This EXTENSIBLE ENUMERATION set has been replaced with plain ENUMERATION for EXPRESS E1 layout. *) -TYPE cell_shape_3D = ENUMERATION OF ( - hexahedron, - pyramid, - tetrahedron, - wedge); -END_TYPE; - -(* USED FROM (mesh_topology_schema); *) -TYPE indices_group = SELECT - (indices_list, - indices_range); -END_TYPE; -(* USED FROM (mesh_topology_schema); *) -(* This EXTENSIBLE ENUMERATION set has been replaced with plain ENUMERATION for EXPRESS E1 layout. *) -TYPE mesh_location = ENUMERATION OF ( - application_defined, - cell_centre, - edge_centre, - face_centre, - iface_centre, - jface_centre, - kface_centre, - unspecified, - vertices); -END_TYPE; - -(* USED FROM (mesh_topology_schema); *) -(* This EXTENSIBLE ENUMERATION set has been replaced with plain ENUMERATION for EXPRESS E1 layout. *) -TYPE mesh_maths_space_type = ENUMERATION OF ( - cells, - vertices); -END_TYPE; - -(* USED FROM (mesh_topology_schema); *) -(* This EXTENSIBLE ENUMERATION set has been replaced with plain ENUMERATION for EXPRESS E1 layout. *) -TYPE structured_mesh_type = ENUMERATION OF ( - pentahedral, - pyramidal, - rectangular, - tetrahedral); -END_TYPE; - -(* USED FROM (basic_attribute_schema); *) -(* This SELECT set has been been expanded or truncated for EXPRESS E1 layout. *) -TYPE description_attribute_select = SELECT ( - action_request_solution, - application_context, - approval_role, - configuration_design, - context_dependent_shape_representation, - date_role, - date_time_role, - effectivity, - external_source, - organization_role, - organizational_project, - person_and_organization, - person_and_organization_role, - property_definition_representation, - representation); -END_TYPE; - - -(* Pruned unused type: fd_bc_type_compound *) - -(* USED FROM (conditions_schema); *) -(* This ENUMERATION set has been expanded for EXPRESS E1 layout. *) -TYPE fd_bc_type_simple = mbna_bc_type_simple; -END_TYPE; - -(* USED FROM (conditions_schema); *) -TYPE ijk_minmax = ENUMERATION OF - (i_min, - j_min, - k_min, - i_max, - j_max, - k_max); -END_TYPE; -(* USED FROM (conditions_schema); *) -(* This EXTENSIBLE SELECT have been replaced with plain SELECT for EXPRESS E1 layout. *) -TYPE mbna_bc_type = SELECT ( - mbna_bc_type_compound, - mbna_bc_type_simple); -END_TYPE; - -(* USED FROM (conditions_schema); *) -(* This ENUMERATION set has been expanded for EXPRESS E1 layout. *) -TYPE mbna_bc_type_compound = ENUMERATION OF ( - application_defined, - bc_farfield, - bc_inflow, - bc_outflow, - unspecified); -END_TYPE; - -(* USED FROM (conditions_schema); *) -(* This ENUMERATION set has been expanded for EXPRESS E1 layout. *) -TYPE mbna_bc_type_simple = ENUMERATION OF ( - application_defined, - bc_axissymmetric_wedge, - bc_degenerate_line, - bc_degenerate_point, - bc_Dirichlet, - bc_extrapolate, - bc_general, - bc_inflow_subsonic, - bc_inflow_supersonic, - bc_Neumann, - bc_outflow_subsonic, - bc_outflow_supersonic, - bc_symmetry_plane, - bc_symmetry_polar, - bc_tunnel_inflow, - bc_tunnel_outflow, - bc_wall, - bc_wall_inviscid, - bc_wall_viscous, - bc_wall_viscous_heat_flux, - bc_wall_viscous_isothermal, - unspecified); -END_TYPE; - -(* USED FROM (conditions_schema); *) -(* This EXTENSIBLE ENUMERATION set has been replaced with plain ENUMERATION for EXPRESS E1 layout. *) -TYPE Riemann_1D_data_name = ENUMERATION OF ( - characteristic_acoustic_minus, - characteristic_acoustic_plus, - characteristic_entropy, - characteristic_vorticity1, - characteristic_vorticity2, - Riemann_invariant_minus, - Riemann_invariant_plus); -END_TYPE; - -(* USED FROM (equations_schema); *) -(* This EXTENSIBLE SELECT have been replaced with plain SELECT for EXPRESS E1 layout. *) -TYPE fd_behaviour_models = SELECT ( - gas_model, - turbulence_closure, - turbulence_model, - viscosity_model); -END_TYPE; - -(* USED FROM (equations_schema); *) -(* This ENUMERATION set has been expanded for EXPRESS E1 layout. *) -TYPE fd_governing_equation_type = mbna_governing_equation_type; -END_TYPE; - -(* USED FROM (equations_schema); *) -(* This EXTENSIBLE ENUMERATION set has been replaced with plain ENUMERATION for EXPRESS E1 layout. *) -TYPE force_moment_data_name = ENUMERATION OF ( - coef_drag, - coef_length, - coef_lift, - coef_moment_area, - coef_moment_eta, - coef_moment_phi, - coef_moment_pressure_dynamic, - coef_moment_r, - coef_moment_theta, - coef_moment_x, - coef_moment_xi, - coef_moment_y, - coef_moment_z, - coef_moment_zeta, - drag, - force_phi, - force_r, - force_theta, - force_x, - force_y, - force_z, - lift, - moment_center_x, - moment_center_y, - moment_center_z, - moment_eta, - moment_phi, - moment_r, - moment_theta, - moment_x, - moment_xi, - moment_y, - moment_z, - moment_zeta); -END_TYPE; - -(* USED FROM (equations_schema); *) -(* This EXTENSIBLE ENUMERATION set has been replaced with plain ENUMERATION for EXPRESS E1 layout. *) -TYPE gas_model_data_name = ENUMERATION OF ( - ideal_gas_constant, - specific_heat_pressure, - specific_heat_ratio, - specific_heat_volume); -END_TYPE; - -(* USED FROM (equations_schema); *) -(* This EXTENSIBLE ENUMERATION set has been replaced with plain ENUMERATION for EXPRESS E1 layout. *) -TYPE gas_model_type = ENUMERATION OF ( - application_defined, - ideal, - unspecified, - Van_der_Waals); -END_TYPE; - -(* USED FROM (equations_schema); *) -(* This EXTENSIBLE SELECT have been replaced with plain SELECT for EXPRESS E1 layout. *) -TYPE mbna_behaviour_models = SELECT ( - thermal_conductivity_model); -END_TYPE; - -(* USED FROM (equations_schema); *) -(* This ENUMERATION set has been expanded for EXPRESS E1 layout. *) -TYPE mbna_governing_equation_type = ENUMERATION OF ( - application_defined, - Euler, - full_potential, - NS_laminar, - NS_laminar_incompressible, - NS_turbulent, - NS_turbulent_incompressible, - unspecified); -END_TYPE; - -(* USED FROM (equations_schema); *) -(* This EXTENSIBLE ENUMERATION set has been replaced with plain ENUMERATION for EXPRESS E1 layout. *) -TYPE thermal_conductivity_model_data_name = ENUMERATION OF ( - constant_Prandtl, - power_law_exponent, - Sutherland_constant_conductivity, - temperature_reference, - thermal_conductivity_reference); -END_TYPE; - -(* USED FROM (equations_schema); *) -(* This EXTENSIBLE ENUMERATION set has been replaced with plain ENUMERATION for EXPRESS E1 layout. *) -TYPE thermal_conductivity_model_type = ENUMERATION OF ( - application_defined, - constant_Prandtl, - independent, - power_law, - Sutherland_law, - unspecified); -END_TYPE; - -(* USED FROM (equations_schema); *) -(* This EXTENSIBLE ENUMERATION set has been replaced with plain ENUMERATION for EXPRESS E1 layout. *) -TYPE turbulence_closure_data_name = ENUMERATION OF ( - eddy_viscosity, - Prandtl_turbulent); -END_TYPE; - -(* USED FROM (equations_schema); *) -(* This EXTENSIBLE ENUMERATION set has been replaced with plain ENUMERATION for EXPRESS E1 layout. *) -TYPE turbulence_closure_type = ENUMERATION OF ( - application_defined, - eddy_viscosity, - Reynolds_stress, - Reynolds_stress_algebraic, - unspecified); -END_TYPE; - -(* USED FROM (equations_schema); *) -(* This EXTENSIBLE ENUMERATION set has been replaced with plain ENUMERATION for EXPRESS E1 layout. *) -TYPE turbulence_model_data_name = ENUMERATION OF ( - turbulent_BB_Reynolds, - turbulent_dissipation, - turbulent_dissipation_rate, - turbulent_distance, - turbulent_energy_kinetic, - turbulent_SA_cb1, - turbulent_SA_cb2, - turbulent_SA_chi, - turbulent_SA_ct1, - turbulent_SA_ct2, - turbulent_SA_ct3, - turbulent_SA_ct4, - turbulent_SA_cv1, - turbulent_SA_cw1, - turbulent_SA_cw2, - turbulent_SA_cw3, - turbulent_SA_kappa, - turbulent_SA_nu_tilde, - turbulent_SA_sigma); -END_TYPE; - -(* USED FROM (equations_schema); *) -(* This EXTENSIBLE ENUMERATION set has been replaced with plain ENUMERATION for EXPRESS E1 layout. *) -TYPE turbulence_model_type = ENUMERATION OF ( - algebraic_Baldwin_Lomax, - algebraic_Cebeci_Smith, - application_defined, - half_equation_Johnson_King, - one_equation_Baldwin_Barth, - one_equation_Spalart_Allmaras, - two_equation_Jones_Launder, - two_equation_Menter_SST, - two_equation_Wilcox, - unspecified); -END_TYPE; - -(* USED FROM (equations_schema); *) -(* This EXTENSIBLE ENUMERATION set has been replaced with plain ENUMERATION for EXPRESS E1 layout. *) -TYPE viscosity_model_data_name = ENUMERATION OF ( - Sutherland_constant_viscosity, - viscosity_molecular_reference); -END_TYPE; - -(* USED FROM (equations_schema); *) -(* This EXTENSIBLE ENUMERATION set has been replaced with plain ENUMERATION for EXPRESS E1 layout. *) -TYPE viscosity_model_type = ENUMERATION OF ( - application_defined, - constant_viscosity, - power_law, - Sutherland_law, - unspecified); -END_TYPE; - -(* USED FROM (domain_schema); *) -(* This EXTENSIBLE ENUMERATION set has been replaced with plain ENUMERATION for EXPRESS E1 layout. *) -TYPE coordinate_data_name = ENUMERATION OF ( - coordinate_eta, - coordinate_normal, - coordinate_phi, - coordinate_r, - coordinate_tangential, - coordinate_theta, - coordinate_transform, - coordinate_x, - coordinate_xi, - coordinate_y, - coordinate_z, - coordinate_zeta); -END_TYPE; - -(* USED FROM (mesh_connectivity_schema); *) -(* This EXTENSIBLE ENUMERATION set has been replaced with plain ENUMERATION for EXPRESS E1 layout. *) -TYPE mismatched_region_type = ENUMERATION OF ( - abutting, - overset); -END_TYPE; - - -(* Pruned unused type: pie_external_identification_item *) - - -(* Pruned unused type: file_identification_item *) - - -(* Pruned unused type: file_location_select *) - -(* USED FROM (External_item_identification_assignment_mim); *) -(* This SELECT set has been been expanded or truncated for EXPRESS E1 layout. *) -TYPE external_identification_item = SELECT ( - action_relationship, - action_request_status, - applied_organization_assignment, - applied_person_and_organization_assignment, - approval, - approval_status, - assembly_bond_definition, - 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, - generic_product_definition_reference, - organizational_address, - product_definition, - security_classification, - trimmed_curve, - versioned_action_request); -END_TYPE; - -(* USED FROM (support_resource_schema); *) - TYPE identifier = STRING; - END_TYPE; -(* USED FROM (product_property_definition_schema); *) - TYPE characterized_product_definition = SELECT ( - product_definition, - product_definition_relationship); - END_TYPE; - -(* Pruned unused type: pprs_description_attribute_select *) - - -(* Pruned unused type: pprs_name_attribute_select *) - -(* USED FROM (product_property_representation_schema); *) - TYPE chained_representation_link = SELECT (mapped_item, representation_context, representation_relationship); - END_TYPE; -(* USED FROM (product_property_representation_schema); *) - TYPE represented_definition = SELECT ( - general_property, - property_definition, - property_definition_relationship, - shape_aspect, - shape_aspect_relationship); - END_TYPE; -(* USED FROM (product_property_representation_schema); *) - TYPE item_identified_representation_usage_select = SELECT ( - representation_item, - list_representation_item, - set_representation_item); - END_TYPE; - -(* Pruned unused type: rs_description_attribute_select *) - - -(* Pruned unused type: rs_id_attribute_select *) - -(* USED FROM (representation_schema); *) - TYPE compound_item_definition = SELECT - (list_representation_item, - set_representation_item); - END_TYPE; -(* USED FROM (representation_schema); *) - TYPE founded_item_select = SELECT - (founded_item, - representation_item); - END_TYPE; -(* USED FROM (representation_schema); *) - TYPE list_representation_item = LIST [1:?] OF representation_item; - END_TYPE; -(* USED FROM (representation_schema); *) - TYPE set_representation_item = SET [1:?] OF representation_item; - END_TYPE; -(* USED FROM (representation_schema); *) - TYPE transformation = SELECT - (item_defined_transformation, - functionally_defined_transformation); - END_TYPE; -(* USED FROM (Activity_mim); *) -(* This SELECT set has been been expanded or truncated for EXPRESS E1 layout. *) -TYPE action_items = SELECT ( - action, - action_directive, - action_method, - action_property, - action_relationship, - action_request_solution, - alternate_product_relationship, - applied_action_assignment, - applied_classification_assignment, - applied_person_and_organization_assignment, - applied_state_type_assignment, - approval_status, - assembly_component_usage_substitute, - certification, - certification_item, - characterized_object, - class, - class_system, - classification_item, - configuration_design, - configuration_effectivity, - configuration_item, - configured_effectivity_assignment, - contract, - document_file, - document_reference_item, - draughting_model, - drawing_revision, - evaluated_characteristic, - executed_action, - general_property, - identification_item, - material_designation, - mechanical_design_geometric_presentation_representation, - organization, - organization_relationship, - organizational_project, - person_and_organization, - presentation_area, - product, - product_concept, - product_concept_feature, - product_concept_feature_association, - product_concept_feature_category, - product_concept_feature_category_usage, - product_definition, - product_definition_formation, - product_definition_formation_relationship, - product_definition_relationship, - product_definition_substitute, - property_definition, - requirement_assigned_item, - requirement_for_action_resource, - resource_property, - security_classification, - security_classification_level, - shape_aspect, - shape_representation, - versioned_action_request); -END_TYPE; - -(* USED FROM (results_schema); *) -(* This EXTENSIBLE ENUMERATION set has been replaced with plain ENUMERATION for EXPRESS E1 layout. *) -TYPE flow_solution_data_name = ENUMERATION OF ( - density, - density_stagnation, - energy_internal, - energy_kinetic, - energy_stagnation, - energy_stagnation_density, - enthalpy, - enthalpy_stagnation, - entropy, - entropy_approx, - ideal_gas_constant, - mass_flow, - momentum_magnitude, - momentum_x, - momentum_y, - momentum_z, - potential, - pressure, - pressure_dynamic, - pressure_stagnation, - Reynolds_stress_xx, - Reynolds_stress_xy, - Reynolds_stress_xz, - Reynolds_stress_yy, - Reynolds_stress_yz, - Reynolds_stress_zz, - skin_friction_magnitude, - skin_friction_x, - skin_friction_y, - skin_friction_z, - specific_heat_pressure, - specific_heat_volume, - stream_function, - temperature, - temperature_stagnation, - thermal_conductivity, - velocity_angle_x, - velocity_angle_y, - velocity_angle_z, - velocity_magnitude, - velocity_normal, - velocity_phi, - velocity_r, - velocity_sound, - velocity_sound_stagnation, - velocity_tangential, - velocity_theta, - velocity_unit_vector_x, - velocity_unit_vector_y, - velocity_unit_vector_z, - velocity_x, - velocity_y, - velocity_z, - viscosity_eddy, - viscosity_kinematic, - viscosity_molecular, - vorticity_magnitude, - vorticity_x, - vorticity_y, - vorticity_z); -END_TYPE; - -(* USED FROM (basis_schema); *) -(* This EXTENSIBLE SELECT have been replaced with plain SELECT for EXPRESS E1 layout. *) -TYPE choose_general_property_identifier = SELECT ( - defined_data_name, - externally_defined_item); -END_TYPE; - -(* USED FROM (basis_schema); *) -(* This EXTENSIBLE SELECT have been replaced with plain SELECT for EXPRESS E1 layout. *) -TYPE choose_geometry_location = SELECT ( - externally_defined_item, - shape_representation); -END_TYPE; - -(* USED FROM (basis_schema); *) -(* This EXTENSIBLE SELECT have been replaced with plain SELECT for EXPRESS E1 layout. *) -TYPE choose_representation_context_identifier = SELECT ( - defined_data_class, - externally_defined_item); -END_TYPE; - -(* USED FROM (basis_schema); *) -(* This EXTENSIBLE ENUMERATION set has been replaced with plain ENUMERATION for EXPRESS E1 layout. *) -TYPE defined_data_class = ENUMERATION OF ( - application_defined, - dimensional, - dimensionless_constant, - dimensionless_parameter, - normalise_by_unknown_dimensional, - normalised_by_dimensional, - unspecified); -END_TYPE; - -(* USED FROM (basis_schema); *) -(* This EXTENSIBLE SELECT have been replaced with plain SELECT for EXPRESS E1 layout. *) -TYPE defined_data_name = SELECT ( - coordinate_data_name, - fd_defined_data_name); -END_TYPE; - -(* USED FROM (basis_schema); *) -(* This EXTENSIBLE SELECT have been replaced with plain SELECT for EXPRESS E1 layout. *) -TYPE fd_defined_data_name = SELECT ( - fd_nondimensional_parameter_name, - flow_solution_data_name, - force_moment_data_name, - gas_model_data_name, - Riemann_1D_data_name, - thermal_conductivity_model_data_name, - turbulence_closure_data_name, - turbulence_model_data_name, - viscosity_model_data_name); -END_TYPE; - -(* USED FROM (basis_schema); *) -(* This EXTENSIBLE ENUMERATION set has been replaced with plain ENUMERATION for EXPRESS E1 layout. *) -TYPE fd_nondimensional_parameter_name = ENUMERATION OF ( - coef_pressure, - coef_pressure_dynamic, - coef_pressure_reference, - coef_skin_friction_x, - coef_skin_friction_y, - coef_skin_friction_z, - length_reference, - Mach, - Mach_velocity, - Mach_velocity_sound, - Prandtl, - Prandtl_specific_heat_pressure, - Prandtl_thermal_conductivity, - Prandtl_viscosity_molecular, - Reynolds, - Reynolds_length, - Reynolds_velocity, - Reynolds_viscosity_kinematic, - specific_heat_ratio, - specific_heat_ratio_pressure, - specific_heat_ratio_volume); -END_TYPE; - - -(* Pruned unused type: mbna_property_distribution_select *) - - -(* Pruned unused type: mbna_value_context_select *) - - -(* Pruned unused type: state_definition_action_items *) - - -(* Pruned unused type: state_definition_classification_item *) - - -(* Pruned unused type: state_definition_identification_item *) - -(* USED FROM (action_and_model_relationships_schema); *) -(* This EXTENSIBLE SELECT have been replaced with plain SELECT for EXPRESS E1 layout. *) -TYPE discretised_action_model_select = SELECT ( - analysis_step, - model_action_domain); -END_TYPE; - -(* USED FROM (action_and_model_relationships_schema); *) -(* This EXTENSIBLE SELECT have been replaced with plain SELECT for EXPRESS E1 layout. *) -TYPE idealised_action_select = SELECT ( - action, - physical_action_domain); -END_TYPE; - -(* USED FROM (product_and_model_relationships_schema); *) -(* This EXTENSIBLE SELECT have been replaced with plain SELECT for EXPRESS E1 layout. *) -TYPE discretised_product_model_select = SELECT ( - fea_model, - model_product_domain); -END_TYPE; - -(* USED FROM (product_and_model_relationships_schema); *) -(* This EXTENSIBLE SELECT have been replaced with plain SELECT for EXPRESS E1 layout. *) -TYPE idealised_product_select = SELECT ( - physical_product_domain, - product_definition); -END_TYPE; - -(* USED FROM (property_distribution_and_model_relationships_schema); *) -(* This EXTENSIBLE SELECT have been replaced with plain SELECT for EXPRESS E1 layout. *) -TYPE discretised_distribution_model_select = SELECT ( - model_property_distribution, - state_definition); -END_TYPE; - -(* USED FROM (property_distribution_and_model_relationships_schema); *) -(* This EXTENSIBLE SELECT have been replaced with plain SELECT for EXPRESS E1 layout. *) -TYPE idealised_distribution_select = SELECT ( - domain_property, - property_definition); -END_TYPE; - -(* USED FROM (state_and_model_relationships_schema); *) -(* This EXTENSIBLE SELECT have been replaced with plain SELECT for EXPRESS E1 layout. *) -TYPE discretised_state_model_select = SELECT ( - model_state_domain, - state); -END_TYPE; - -(* USED FROM (state_and_model_relationships_schema); *) -(* This EXTENSIBLE SELECT have been replaced with plain SELECT for EXPRESS E1 layout. *) -TYPE idealised_state_select = SELECT ( - physical_state_domain, - state_type); -END_TYPE; - - -(* Pruned unused type: document_location_select *) - - -(* Pruned unused type: sm_approval_item *) - -(* USED FROM (finite_element_analysis_control_and_result_schema); *) -TYPE model_or_control_element = SELECT - (element_representation, - constraint_element); -END_TYPE; -(* USED FROM (finite_element_analysis_control_and_result_schema); *) -TYPE cylindrical_harmonic_number = INTEGER; -WHERE - WR1: SELF >= 0; -END_TYPE; -(* USED FROM (finite_element_analysis_control_and_result_schema); *) -TYPE volume_3d_face = INTEGER; -WHERE - WR1: (SELF >= 1) AND (SELF <= 6); -END_TYPE; -(* USED FROM (finite_element_analysis_control_and_result_schema); *) -TYPE volume_2d_face = INTEGER; -WHERE - WR1: (SELF >= 1) AND (SELF <= 4); -END_TYPE; -(* USED FROM (finite_element_analysis_control_and_result_schema); *) -TYPE volume_3d_edge = INTEGER; -WHERE - WR1: (SELF >= 1) AND (SELF <= 12); -END_TYPE; -(* USED FROM (finite_element_analysis_control_and_result_schema); *) -TYPE volume_2d_edge = INTEGER; -WHERE - WR1: (SELF >= 1) AND (SELF <= 4); -END_TYPE; -(* USED FROM (finite_element_analysis_control_and_result_schema); *) -TYPE surface_3d_face = INTEGER; -WHERE - WR1: (SELF >= 1) AND (SELF <= 2); -END_TYPE; -(* USED FROM (finite_element_analysis_control_and_result_schema); *) -TYPE surface_3d_edge = INTEGER; -WHERE - WR1: (SELF >= 1) AND (SELF <= 4); -END_TYPE; -(* USED FROM (finite_element_analysis_control_and_result_schema); *) -TYPE surface_2d_face = INTEGER; -WHERE - WR1: (SELF >= 1) AND (SELF <= 2); -END_TYPE; -(* USED FROM (finite_element_analysis_control_and_result_schema); *) -TYPE surface_2d_edge = INTEGER; -WHERE - WR1: (SELF >= 1) AND (SELF <= 2); -END_TYPE; -(* USED FROM (finite_element_analysis_control_and_result_schema); *) -TYPE field_value = SELECT - (unspecified_value, - scalar, - tensor1_2d, - tensor1_3d, - anisotropic_symmetric_tensor2_2d, - isotropic_symmetric_tensor2_3d, - orthotropic_symmetric_tensor2_3d, - anisotropic_symmetric_tensor2_3d); -END_TYPE; -(* USED FROM (finite_element_analysis_control_and_result_schema); *) -TYPE unspecified_value = ENUMERATION OF - (unspecified); -END_TYPE; -(* USED FROM (finite_element_analysis_control_and_result_schema); *) -TYPE measure_or_unspecified_value = SELECT - (context_dependent_measure, - unspecified_value); -END_TYPE; -(* USED FROM (finite_element_analysis_control_and_result_schema); *) -TYPE boundary_variable = SELECT - (boundary_surface_scalar_variable, - boundary_surface_vector_3d_variable, - application_defined_scalar_variable, - application_defined_vector_3d_variable); -END_TYPE; -(* USED FROM (finite_element_analysis_control_and_result_schema); *) -TYPE boundary_aggregated_variable = SELECT - (aggregated_vector_3d_variable, - application_defined_vector_3d_variable); -END_TYPE; -(* USED FROM (finite_element_analysis_control_and_result_schema); *) -TYPE volume_variable = SELECT - (volume_scalar_variable, - volume_angular_variable, - volume_vector_3d_variable, - volume_tensor2_3d_variable, - application_defined_scalar_variable, - application_defined_vector_3d_variable, - application_defined_tensor2_3d_variable); -END_TYPE; -(* USED FROM (finite_element_analysis_control_and_result_schema); *) -TYPE volume_aggregated_variable = SELECT - (aggregated_scalar_variable, - aggregated_angular_variable, - aggregated_vector_3d_variable, - aggregated_tensor2_3d_variable, - application_defined_scalar_variable, - application_defined_vector_3d_variable, - application_defined_tensor2_3d_variable); -END_TYPE; -(* USED FROM (finite_element_analysis_control_and_result_schema); *) -TYPE surface_element_variable = SELECT - (volume_variable, - surface_scalar_variable, - surface_vector_2d_variable, - surface_vector_3d_variable, - surface_tensor2_2d_variable, - application_defined_tensor2_2d_variable); -END_TYPE; -(* USED FROM (finite_element_analysis_control_and_result_schema); *) -TYPE boundary_edge_variable = SELECT - (boundary_curve_scalar_variable, - boundary_curve_vector_3d_variable, - application_defined_scalar_variable, - application_defined_vector_3d_variable); -END_TYPE; -(* USED FROM (finite_element_analysis_control_and_result_schema); *) -TYPE curve_element_variable = SELECT - (volume_variable, - curve_scalar_variable, - curve_vector_2d_variable, - application_defined_vector_2d_variable, - curve_vector_3d_variable); -END_TYPE; -(* USED FROM (finite_element_analysis_control_and_result_schema); *) -TYPE curve_scalar_variable = ENUMERATION OF - (curve_axial_force, - curve_axial_strain, - torque, - curve_warping, - bi_moment, - twist); -END_TYPE; -(* USED FROM (finite_element_analysis_control_and_result_schema); *) -TYPE surface_scalar_variable = ENUMERATION OF - (thickness, - surface_thermal_gradient, - reference_surface_thermal_gradient); -END_TYPE; -(* USED FROM (finite_element_analysis_control_and_result_schema); *) -TYPE volume_scalar_variable = ENUMERATION OF - (temperature, - moisture, - reference_temperature, - strain_energy_per_unit_volume); -END_TYPE; -(* USED FROM (finite_element_analysis_control_and_result_schema); *) -TYPE boundary_curve_scalar_variable = ENUMERATION OF - (normal_force_per_unit_length); -END_TYPE; -(* USED FROM (finite_element_analysis_control_and_result_schema); *) -TYPE boundary_surface_scalar_variable = ENUMERATION OF - (pressure); -END_TYPE; -(* USED FROM (finite_element_analysis_control_and_result_schema); *) -TYPE aggregated_scalar_variable = ENUMERATION OF - (total_strain_energy, - mass, - volume); -END_TYPE; -(* USED FROM (finite_element_analysis_control_and_result_schema); *) -TYPE volume_angular_variable = ENUMERATION OF - (constant_angular_acceleration, - application_defined_angular_scalar_variable); -END_TYPE; -(* USED FROM (finite_element_analysis_control_and_result_schema); *) -TYPE aggregated_angular_variable = ENUMERATION OF - (total_applied_moment, - application_defined_aggregated_angular_scalar_variable); -END_TYPE; -(* USED FROM (finite_element_analysis_control_and_result_schema); *) -TYPE application_defined_scalar_variable = STRING; -END_TYPE; -(* USED FROM (finite_element_analysis_control_and_result_schema); *) -TYPE curve_vector_2d_variable = ENUMERATION OF - (curve_shear_force, - curve_bending_moment, - curve_element_curvature, - curve_thermal_gradient, - reference_curve_thermal_gradient); -END_TYPE; -(* USED FROM (finite_element_analysis_control_and_result_schema); *) -TYPE surface_vector_2d_variable = ENUMERATION OF - (surface_out_of_plane_shear_force, - surface_out_of_plane_shear_strain); -END_TYPE; -(* USED FROM (finite_element_analysis_control_and_result_schema); *) -TYPE application_defined_vector_2d_variable = STRING; -END_TYPE; -(* USED FROM (finite_element_analysis_control_and_result_schema); *) -TYPE curve_vector_3d_variable = ENUMERATION OF - (applied_force_per_unit_length, - applied_moment_per_unit_length); -END_TYPE; -(* USED FROM (finite_element_analysis_control_and_result_schema); *) -TYPE surface_vector_3d_variable = ENUMERATION OF - (applied_force_per_unit_area, - applied_moment_per_unit_area); -END_TYPE; -(* USED FROM (finite_element_analysis_control_and_result_schema); *) -TYPE volume_vector_3d_variable = ENUMERATION OF - (position, - applied_force_per_unit_volume, - applied_moment_per_unit_volume, - displacement, - infinitesimal_rotation, - acceleration); -END_TYPE; -(* USED FROM (finite_element_analysis_control_and_result_schema); *) -TYPE boundary_curve_vector_3d_variable = ENUMERATION OF - (applied_force_per_unit_length, - applied_moment_per_unit_length); -END_TYPE; -(* USED FROM (finite_element_analysis_control_and_result_schema); *) -TYPE boundary_surface_vector_3d_variable = ENUMERATION OF - (applied_force_per_unit_area, - applied_moment_per_unit_area); -END_TYPE; -(* USED FROM (finite_element_analysis_control_and_result_schema); *) -TYPE aggregated_vector_3d_variable = ENUMERATION OF - (total_applied_force, - centre_of_mass_offset); -END_TYPE; -(* USED FROM (finite_element_analysis_control_and_result_schema); *) -TYPE application_defined_vector_3d_variable = STRING; -END_TYPE; -(* USED FROM (finite_element_analysis_control_and_result_schema); *) -TYPE surface_tensor2_2d_variable = ENUMERATION OF - (surface_membrane_force, - surface_membrane_strain, - surface_bending_moment, - surface_curvature); -END_TYPE; -(* USED FROM (finite_element_analysis_control_and_result_schema); *) -TYPE application_defined_tensor2_2d_variable = STRING; -END_TYPE; -(* USED FROM (finite_element_analysis_control_and_result_schema); *) -TYPE volume_tensor2_3d_variable = ENUMERATION OF - (total_strain, - stress); -END_TYPE; -(* USED FROM (finite_element_analysis_control_and_result_schema); *) -TYPE aggregated_tensor2_3d_variable = ENUMERATION OF - (rotational_inertia); -END_TYPE; -(* USED FROM (finite_element_analysis_control_and_result_schema); *) -TYPE application_defined_tensor2_3d_variable = STRING; -END_TYPE; -(* USED FROM (finite_element_analysis_control_and_result_schema); *) -TYPE message_level = ENUMERATION OF - (error, - warning, - note); -END_TYPE; -(* USED FROM (finite_element_analysis_control_and_result_schema); *) -TYPE surface_3d_state_coordinate_system = SELECT - (fea_axis2_placement_3d, - surface_3d_element_coordinate_system); -END_TYPE; -(* USED FROM (finite_element_analysis_control_and_result_schema); *) -TYPE surface_2d_state_coordinate_system = SELECT - (fea_axis2_placement_3d, - surface_2d_element_coordinate_system); -END_TYPE; -(* USED FROM (finite_element_analysis_control_and_result_schema); *) -TYPE curve_3d_state_coordinate_system = SELECT - (fea_axis2_placement_3d, - curve_3d_element_coordinate_system); -END_TYPE; -(* USED FROM (finite_element_analysis_control_and_result_schema); *) -TYPE curve_2d_state_coordinate_system = SELECT - (fea_axis2_placement_3d, - curve_2d_element_coordinate_system); -END_TYPE; -(* USED FROM (finite_element_analysis_control_and_result_schema); *) -TYPE action_type = ENUMERATION OF - (applied_loads, - residual_loads); -END_TYPE; -(* USED FROM (finite_element_analysis_control_and_result_schema); *) -TYPE volume_3d_element_output_reference = SELECT - (volume_3d_element_representation, - volume_3d_element_descriptor, - volume_3d_element_group, - volume_3d_substructure_element_reference, - analysis_item_within_representation); -END_TYPE; -(* USED FROM (finite_element_analysis_control_and_result_schema); *) -TYPE volume_2d_element_output_reference = SELECT - (volume_2d_element_representation, - volume_2d_element_descriptor, - volume_2d_element_group, - volume_2d_substructure_element_reference, - analysis_item_within_representation); -END_TYPE; -(* USED FROM (finite_element_analysis_control_and_result_schema); *) -TYPE surface_3d_element_output_reference = SELECT - (surface_3d_element_representation, - surface_3d_element_descriptor, - surface_3d_element_group, - surface_3d_substructure_element_reference, - analysis_item_within_representation); -END_TYPE; -(* USED FROM (finite_element_analysis_control_and_result_schema); *) -TYPE surface_2d_element_output_reference = SELECT - (surface_2d_element_representation, - surface_2d_element_descriptor, - surface_2d_element_group, - surface_2d_substructure_element_reference, - analysis_item_within_representation); -END_TYPE; -(* USED FROM (finite_element_analysis_control_and_result_schema); *) -TYPE curve_3d_element_output_reference = SELECT - (curve_3d_element_representation, - curve_3d_element_descriptor, - curve_3d_element_group, - curve_3d_substructure_element_reference, - analysis_item_within_representation); -END_TYPE; -(* USED FROM (finite_element_analysis_control_and_result_schema); *) -TYPE curve_2d_element_output_reference = SELECT - (curve_2d_element_representation, - curve_2d_element_descriptor, - curve_2d_element_group, - curve_2d_substructure_element_reference, - analysis_item_within_representation); -END_TYPE; -(* USED FROM (finite_element_analysis_control_and_result_schema); *) -TYPE node_output_reference = SELECT - (node_representation, - node_group, - substructure_node_reference, - analysis_item_within_representation); -END_TYPE; -(* USED FROM (Group_mim); *) -(* This SELECT set has been been expanded or truncated for EXPRESS E1 layout. *) -TYPE groupable_item = SELECT ( - address, - applied_approval_assignment, - applied_classification_assignment, - applied_document_reference, - applied_external_identification_assignment, - applied_group_assignment, - applied_identification_assignment, - applied_name_assignment, - applied_organization_assignment, - applied_person_and_organization_assignment, - applied_security_classification_assignment, - approval, - approval_person_organization, - approval_relationship, - approval_status, - assembly_component_usage, - calendar_date, - class, - collection_assignment, - collection_membership, - component_feature, - control, - coordinated_universal_time_offset, - date_and_time, - date_and_time_assignment, - date_assignment, - derived_unit, - derived_unit_element, - document_file, - document_relationship, - external_source, - fea_model, - general_property, - general_property_relationship, - geometric_representation_item, - group, - group_relationship, - local_time, - mapped_item, - measure_qualification, - measure_with_unit, - multi_language_attribute_assignment, - named_unit, - numerical_model, - organization, - organization_relationship, - package_product_concept_feature, - person, - person_and_organization, - precision_qualifier, - product, - product_concept_feature, - product_definition, - product_definition_context, - product_definition_formation, - product_definition_formation_relationship, - product_definition_group_assignment, - product_definition_relationship, - product_relationship, - property_definition, - property_definition_representation, - representation, - representation_context, - representation_item, - representation_relationship, - representation_relationship_with_transformation, - result, - security_classification, - shape_aspect, - shape_aspect_relationship, - shape_representation_relationship, - state, - state_definition, - state_relationship, - styled_item, - topological_representation_item, - type_qualifier, - uncertainty_qualifier); - WHERE - WR1: NOT ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.GROUP' IN TYPEOF(SELF)); -END_TYPE; - -(* Pruned unused type: effectivity_item_for_replacement *) - -(* USED FROM (Effectivity_application_mim); *) -(* This SELECT set has been been expanded or truncated for EXPRESS E1 layout. *) -TYPE effectivity_item = SELECT ( - action, - action_method, - action_method_relationship, - action_property, - action_relationship, - assembly_component_usage_substitute, - class, - class_system, - configuration_design, - configuration_item, - configured_effectivity_assignment, - document_file, - draughting_model, - drawing_revision, - general_property, - material_designation, - mechanical_design_geometric_presentation_representation, - presentation_area, - product, - product_concept, - product_concept_feature, - product_concept_feature_association, - product_concept_feature_category, - product_concept_feature_category_usage, - product_definition, - product_definition_formation, - product_definition_formation_relationship, - product_definition_relationship, - product_definition_substitute, - property_definition, - requirement_for_action_resource, - resource_property, - security_classification, - shape_aspect, - shape_representation); -END_TYPE; - -(* USED FROM (Product_occurrence_mim); *) - TYPE product_definition_or_assembly_relationship = SELECT (assembly_component_usage, product_definition); - END_TYPE; - -(* Pruned unused type: at_requirement_assigned_item *) - - -(* Pruned unused type: at_external_identification_item *) - - -(* Pruned unused type: cf_groupable_item *) - -(* USED FROM (Requirement_assignment_mim); *) -(* This SELECT set has been been expanded or truncated for EXPRESS E1 layout. *) -TYPE requirement_assigned_item = SELECT ( - assembly_joint, - configuration_item, - descriptive_representation_item, - product, - product_class, - product_definition, - product_definition_formation, - product_definition_relationship, - representation, - shape_aspect); -END_TYPE; - -(* USED FROM (Requirement_assignment_mim); *) -(* This EXTENSIBLE SELECT have been replaced with plain SELECT for EXPRESS E1 layout. *) -TYPE requirement_satisfaction_item = SELECT ( - requirement_assigned_item); -END_TYPE; - -(* USED FROM (Requirement_assignment_mim); *) -(* This SELECT set has been been expanded or truncated for EXPRESS E1 layout. *) -TYPE requirement_source_item = SELECT ( - characterized_object, - group, - group_relationship, - product, - product_definition, - product_definition_formation, - product_definition_relationship, - shape_aspect); -END_TYPE; - - -(* Pruned unused type: bc_external_identification_item *) - -(* USED FROM (product_data_quality_criteria_schema); *) - TYPE detailed_report_type = ENUMERATION OF - (measured_element, - inferior_quality_element); - END_TYPE; -(* USED FROM (product_data_quality_criteria_schema); *) - TYPE summary_report_type = ENUMERATION OF - (unspecified, - conclusion_only, - number_of_quality_defects, - number_of_inspections_and_conclusion, - full_statistics); - END_TYPE; -(* USED FROM (product_data_quality_criteria_schema); *) - TYPE preferred_ordering = ENUMERATION OF - (extremity_order, - detected_order); - END_TYPE; - -(* Pruned unused type: pdq_date_and_time_item *) - - -(* Pruned unused type: ap209e2_analysis_approval_item *) - - -(* Pruned unused type: pdq_date_item *) - - -(* Pruned unused type: pqd_organization_item *) - -(* USED FROM (product_data_quality_definition_schema); *) - TYPE used_quality_representation_select = SELECT - (data_quality_criteria_representation, - data_quality_inspection_result_representation); - END_TYPE; -(* USED FROM (product_data_quality_inspection_result_schema); *) - TYPE statistical_value_type = ENUMERATION OF - (number_of_inspected_instances, - number_of_quality_defects_detected); - END_TYPE; -(* USED FROM (product_data_quality_inspection_result_schema); *) -(* This SELECT set has been been expanded or truncated for EXPRESS E1 layout. *) -TYPE inspected_element_select = SELECT ( - assembly_component_usage, - axis2_placement_3d, - b_spline_or_composite_curve_select, - b_spline_or_rectangular_composite_surface_select, - cartesian_transformation_operator_3d, - closed_or_open_shell_select, - connected_face_set, - curve, - direction, - edge_curve, - edge_loop, - face_surface, - global_uncertainty_assigned_context, - global_unit_assigned_context, - group, - manifold_solid_brep, - placement, - point, - presentation_layer_assignment, - representation_item, - styled_item, - surface, - vertex_point); -END_TYPE; - -(* USED FROM (shape_data_quality_criteria_schema); *) - TYPE shape_data_quality_assessment_specification_select = SELECT - (shape_data_quality_assessment_by_logical_test, - shape_data_quality_assessment_by_numerical_test); - END_TYPE; -(* USED FROM (shape_data_quality_criteria_schema); *) - TYPE shape_data_quality_value_limit_type_select = SELECT - (shape_data_quality_value_range, - shape_data_quality_value_limit); - END_TYPE; -(* USED FROM (shape_data_quality_inspection_result_schema); *) - TYPE measured_value_select = SELECT - (boolean_value, - measure_value, - plane_angle_and_ratio_pair, - plane_angle_and_length_pair); - END_TYPE; -(* USED FROM (shape_data_quality_inspection_result_schema); *) - TYPE boolean_value = BOOLEAN; - END_TYPE; -(* USED FROM (shape_data_quality_inspection_result_schema); *) - TYPE location_of_extreme_value_select = SELECT - (inspected_shape_element_select, - b_spline_surface_knot_locator, - b_spline_curve_knot_locator, - b_spline_curve_segment, - b_spline_surface_strip, - b_spline_surface_patch, - composite_curve_transition_locator, - rectangular_composite_surface_transition_locator, - boundary_curve_of_b_spline_or_rectangular_composite_surface, - oriented_edge, - face_bound, - point_on_edge_curve, - point_on_face_surface, - subedge, - subface); - END_TYPE; -(* USED FROM (shape_data_quality_inspection_result_schema); *) -(* This SELECT set has been been expanded or truncated for EXPRESS E1 layout. *) -TYPE inspected_shape_element_select = inspected_element_select; -END_TYPE; - -(* USED FROM (shape_data_quality_inspection_result_schema); *) - TYPE closed_or_open_shell_select = SELECT - (closed_shell, - open_shell); - END_TYPE; -(* USED FROM (shape_data_quality_inspection_result_schema); *) - TYPE b_spline_or_composite_curve_select = SELECT - (b_spline_curve, - composite_curve); - END_TYPE; -(* USED FROM (shape_data_quality_inspection_result_schema); *) - TYPE b_spline_or_rectangular_composite_surface_select = SELECT - (b_spline_surface, - rectangular_composite_surface); - END_TYPE; -(* USED FROM (shape_data_quality_inspection_result_schema); *) - TYPE u_or_v_parameter = ENUMERATION OF - (u_parameter, - v_parameter); - END_TYPE; -(* USED FROM (shape_data_quality_inspection_result_schema); *) -TYPE surface_boundary_type = ENUMERATION OF - (u_parameter_min, - v_parameter_min, - u_parameter_max, - v_parameter_max); - END_TYPE; - -(* Pruned unused type: appearance_representation_identification_item *) - -(* USED FROM (presentation_appearance_schema); *) - TYPE style_context_select = SELECT - (group, - presentation_layer_assignment, - presentation_set, - representation, - representation_item, - representation_relationship); - END_TYPE; - -(* Pruned unused type: ecdq_document_reference_item *) - -(* USED FROM (Document_assignment_mim); *) -(* This SELECT set has been been expanded or truncated for EXPRESS E1 layout. *) -TYPE document_reference_item = SELECT ( - action_directive, - action_method, - action_relationship, - applied_action_assignment, - applied_external_identification_assignment, - approval, - assembly_component_usage, - certification, - characterized_class, - characterized_object, - class, - class_system, - configuration_design, - configuration_item, - contract, - descriptive_representation_item, - dimensional_size, - executed_action, - externally_conditioned_data_quality_criterion, - externally_defined_dimension_definition, - externally_defined_item, - feature_definition, - general_property, - group, - group_relationship, - information_right, - information_usage_right, - material_designation, - measure_representation_item, - organization, - organizational_project, - person, - presentation_area, - process_plan, - product, - product_category, - product_concept, - product_concept_feature, - product_concept_feature_category, - product_definition, - product_definition_context, - product_definition_formation, - product_definition_formation_relationship, - product_definition_process, - product_definition_relationship, - product_definition_substitute, - product_related_product_category, - property_definition, - representation, - representation_item, - resource_requirement_type, - retention, - rule_set, - security_classification, - shape_aspect, - shape_aspect_relationship, - usage_association, - versioned_action_request); -END_TYPE; - -(* USED FROM (explicit_constraint_schema); *) -TYPE constraint_group_member = SELECT - (explicit_constraint, - simultaneous_constraint_group); -END_TYPE; -(* USED FROM (explicit_geometric_constraint_schema); *) -TYPE geometric_constraint_element = SELECT - (point, - curve, - surface, - vector, - direction); -END_TYPE; -(* USED FROM (explicit_geometric_constraint_schema); *) -TYPE point_curve_or_surface_constraint_element = SELECT - (point, - curve, - surface); -END_TYPE; -(* USED FROM (explicit_geometric_constraint_schema); *) -TYPE curve_or_surface_constraint_element = SELECT - (curve, - surface); -END_TYPE; -(* USED FROM (explicit_geometric_constraint_schema); *) -TYPE linear_geometry_constraint_element = SELECT - (line, - plane, - direction, - vector); -END_TYPE; -(* USED FROM (explicit_geometric_constraint_schema); *) -TYPE radial_geometry_constraint_element = SELECT - (circle, - cylindrical_surface, - conical_surface, - spherical_surface, - right_circular_cylinder, - right_circular_cone, - sphere); -END_TYPE; -(* USED FROM (explicit_geometric_constraint_schema); *) -TYPE axial_geometry_constraint_element = SELECT - (point, - line, - circle, - plane, - cylindrical_surface, - conical_surface, - spherical_surface, - toroidal_surface, - surface_of_revolution, - sphere, - right_circular_cone, - right_circular_cylinder, - torus, - revolved_face_solid, - revolved_area_solid); -END_TYPE; -(* USED FROM (explicit_geometric_constraint_schema); *) -TYPE swept_surface_or_solid = SELECT - (swept_surface, - swept_face_solid, - swept_area_solid); -END_TYPE; -(* USED FROM (explicit_geometric_constraint_schema); *) -TYPE tangent_contact_type = ENUMERATION OF - (point_contact, - curve_contact, - surface_contact); -END_TYPE; -(* USED FROM (explicit_geometric_constraint_schema); *) -TYPE parallel_offset_type = ENUMERATION OF - (curve_2d_offset, - curve_3d_offset, - surface_offset); -END_TYPE; -(* USED FROM (Specification_document_mim); *) - TYPE document_identifier_assigned_item = SELECT - (document); - END_TYPE; - -(* Pruned unused type: sd_document_reference_item *) - - -(* Pruned unused type: machining_feature_definition *) - -(* USED FROM (kinematic_analysis_control_and_result_schema); *) -TYPE kinematic_analysis_definition = SELECT - (interpolated_configuration_sequence, - prescribed_path); -END_TYPE; -(* USED FROM (kinematic_analysis_control_and_result_schema); *) -TYPE kinematic_result = SELECT - (interpolated_configuration_sequence, - resulting_path); -END_TYPE; -(* USED FROM (Specification_control_mim); *) - TYPE class_usage_effectivity_context_item = SELECT - (product_definition); - END_TYPE; - -(* Pruned unused type: effectivity_specification_for_replacement *) - -(* USED FROM (Specification_control_mim); *) -(* This EXTENSIBLE SELECT have been replaced with plain SELECT for EXPRESS E1 layout. *) -TYPE instance_usage_context_select = SELECT ( - product_definition_relationship, - product_definition_usage); -END_TYPE; - -(* USED FROM (geometric_model_schema); *) -(* This SELECT set has been been expanded or truncated for EXPRESS E1 layout. *) -TYPE bounded_primitive_2d = SELECT ( - area_with_outer_boundary, - circular_area, - elliptic_area, - path_area_with_parameters, - polygonal_area, - rectangular_area); -END_TYPE; - - -(* Pruned unused type: pr_action_items *) - - -(* Pruned unused type: pr_date_and_time_item *) - - -(* Pruned unused type: pr_document_reference_item *) - - -(* Pruned unused type: pr_identification_item *) - - -(* Pruned unused type: pr_organization_item *) - - -(* Pruned unused type: pr_person_and_organization_item *) - -(* USED FROM (Production_rule_mim); *) -TYPE rule_superseded_item = SELECT - (product_definition_formation); -END_TYPE; - -(* Pruned unused type: product_as_individual_identification_item *) - - -(* Pruned unused type: as_description_attribute_select *) - - -(* Pruned unused type: as_name_attribute_select *) - - -(* Pruned unused type: classification_classification_item *) - -(* USED FROM (Classification_with_attributes_mim); *) -(* This EXTENSIBLE SELECT have been replaced with plain SELECT for EXPRESS E1 layout. *) -TYPE classified_item = SELECT ( - product, - product_definition, - product_definition_formation); -END_TYPE; - - -(* Pruned unused type: cwa_identification_item *) - - -(* Pruned unused type: plib_class_identification_item *) - - -(* Pruned unused type: plib_class_organization_item *) - - -(* Pruned unused type: ir_approval_item *) - - -(* Pruned unused type: ir_contract_item *) - - -(* Pruned unused type: ir_date_and_time_item *) - - -(* Pruned unused type: ir_date_item *) - - -(* Pruned unused type: ir_identification_item *) - - -(* Pruned unused type: ir_organization_item *) - - -(* Pruned unused type: ir_person_and_organization_item *) - -(* USED FROM (Information_rights_mim); *) -(* This SELECT set has been been expanded or truncated for EXPRESS E1 layout. *) -TYPE ir_usage_item = action_items; -END_TYPE; - - -(* Pruned unused type: pdpdms_person_and_organization_item *) - - -(* Pruned unused type: pdpdms_external_identification_item *) - - -(* Pruned unused type: pdm_action_items *) - - -(* Pruned unused type: pdm_action_request_item *) - - -(* Pruned unused type: pdm_approval_item *) - - -(* Pruned unused type: pdm_attribute_language_item *) - - -(* Pruned unused type: pdm_certification_item *) - - -(* Pruned unused type: pdm_classification_item *) - - -(* Pruned unused type: pdm_date_and_time_item *) - - -(* Pruned unused type: pdm_date_item *) - - -(* Pruned unused type: pdm_document_reference_item *) - - -(* Pruned unused type: pdm_effectivity_item *) - - -(* Pruned unused type: pdm_event_occurrence_item *) - - -(* Pruned unused type: pdm_external_class_name_item *) - - -(* Pruned unused type: pdm_identification_item *) - - -(* Pruned unused type: pdm_multi_language_attribute_item *) - - -(* Pruned unused type: pdm_organization_item *) - - -(* Pruned unused type: pdm_person_and_organization_item *) - - -(* Pruned unused type: pdm_project_item *) - - -(* Pruned unused type: pdm_security_classification_item *) - - -(* Pruned unused type: pdm_time_interval_item *) - -(* USED FROM (Activity_method_assignment_mim); *) -(* This SELECT set has been been expanded or truncated for EXPRESS E1 layout. *) -TYPE action_method_items = SELECT ( - action, - action_method, - action_property, - applied_action_assignment, - configuration_design, - contract, - document_file, - event_occurrence, - organization, - organizational_project, - person, - person_and_organization, - product, - product_concept, - product_definition, - product_definition_formation, - product_definition_formation_relationship, - product_definition_relationship, - property_definition); -END_TYPE; - -(* USED FROM (Attribute_classification_mim); *) -(* This SELECT set has been been expanded or truncated for EXPRESS E1 layout. *) -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; - -(* USED FROM (Associative_draughting_elements_mim); *) -TYPE draughting_model_item_association_select = SELECT ( - annotation_occurrence, - draughting_callout); -END_TYPE; -(* USED FROM (Associative_draughting_elements_mim); *) -(* This SELECT set has been been expanded or truncated for EXPRESS E1 layout. *) -TYPE draughting_model_item_definition = SELECT ( - applied_action_assignment, - applied_action_method_assignment, - applied_action_request_assignment, - applied_approval_assignment, - applied_certification_assignment, - applied_classification_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_group_assignment, - applied_identification_assignment, - applied_ineffectivity_assignment, - applied_name_assignment, - applied_organization_assignment, - applied_organizational_project_assignment, - applied_person_and_organization_assignment, - applied_security_classification_assignment, - applied_time_interval_assignment, - applied_usage_right, - dimensional_size, - geometric_tolerance, - product_definition_relationship, - product_definition_shape, - property_definition, - shape_aspect, - shape_aspect_relationship); -END_TYPE; - - -(* Pruned unused type: aade_annotation_representation_select *) - - -(* Pruned unused type: aade_invisibility_context *) - -(* USED FROM (aic_associative_draughting_elements); *) - TYPE draughting_model_item_select = SELECT - (mapped_item, - styled_item, - axis2_placement, - camera_model, - draughting_callout); - END_TYPE; -(* USED FROM (product_property_definition_schema); *) - TYPE shape_definition = SELECT (product_definition_shape, shape_aspect, shape_aspect_relationship); - END_TYPE; - -(* Pruned unused type: dse_shape_model *) - -(* USED FROM (Construction_geometry_mim); *) - TYPE constructive_geometry_representation_or_shape_represenation = SELECT - (constructive_geometry_representation, - shape_representation); - END_TYPE; - -(* Pruned unused type: sd_id_attribute_select *) - -(* USED FROM (shape_dimension_schema); *) -TYPE angle_relator = ENUMERATION OF - (equal, - large, - small); -END_TYPE; -(* USED FROM (shape_dimension_schema); *) -TYPE dimensional_characteristic = SELECT - (dimensional_location, - dimensional_size); -END_TYPE; - -(* Pruned unused type: sds_item_identified_representation_usage_definition *) - -(* USED FROM (shape_dimension_schema); *) -TYPE shape_dimension_representation_item = SELECT - (compound_representation_item, - descriptive_representation_item, - measure_representation_item, - placement); -END_TYPE; -(* USED FROM (shape_tolerance_schema); *) -TYPE tolerance_method_definition = SELECT - (limits_and_fits, - tolerance_value); -END_TYPE; -(* USED FROM (aic_draughting_annotation); *) -TYPE draughting_subfigure_representation_item = SELECT ( - annotation_occurrence, - draughting_callout, - axis2_placement); -END_TYPE; -(* USED FROM (aic_draughting_annotation); *) -TYPE draughting_symbol_representation_item = SELECT ( - annotation_curve_occurrence, - annotation_symbol_occurrence, - annotation_fill_area_occurrence, - annotation_text_occurrence, - axis2_placement); -END_TYPE; -(* USED FROM (Presentation_hierarchy_mim); *) -(* This SELECT set has been been expanded or truncated for EXPRESS E1 layout. *) -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; - -(* USED FROM (drawing_definition_schema); *) -TYPE draughting_titled_item = SELECT - (drawing_revision, - drawing_sheet_revision); -END_TYPE; - -(* Pruned unused type: s_name_attribute_select *) - -(* USED FROM (measure_schema); *) - TYPE absorbed_dose_measure = REAL; - END_TYPE; -(* USED FROM (measure_schema); *) -TYPE acceleration_measure = REAL; - END_TYPE; -(* USED FROM (measure_schema); *) - TYPE radioactivity_measure = REAL; - END_TYPE; -(* USED FROM (measure_schema); *) -TYPE amount_of_substance_measure = REAL; - END_TYPE; -(* USED FROM (measure_schema); *) - TYPE area_measure = REAL; - END_TYPE; -(* USED FROM (measure_schema); *) - TYPE celsius_temperature_measure = REAL; - END_TYPE; -(* USED FROM (measure_schema); *) - TYPE context_dependent_measure = REAL; - END_TYPE; -(* USED FROM (measure_schema); *) - TYPE count_measure = NUMBER; - END_TYPE; -(* USED FROM (measure_schema); *) - TYPE descriptive_measure = STRING; - END_TYPE; -(* USED FROM (measure_schema); *) - TYPE capacitance_measure = REAL; - END_TYPE; -(* USED FROM (measure_schema); *) - TYPE dose_equivalent_measure = REAL; - END_TYPE; -(* USED FROM (measure_schema); *) - TYPE electric_charge_measure = REAL; - END_TYPE; -(* USED FROM (measure_schema); *) - TYPE electric_current_measure = REAL; - END_TYPE; -(* USED FROM (measure_schema); *) - TYPE conductance_measure = REAL; - END_TYPE; -(* USED FROM (measure_schema); *) - TYPE electric_potential_measure = REAL; - END_TYPE; -(* USED FROM (measure_schema); *) - TYPE energy_measure = REAL; - END_TYPE; -(* USED FROM (measure_schema); *) - TYPE force_measure = REAL; - END_TYPE; -(* USED FROM (measure_schema); *) - TYPE frequency_measure = REAL; - END_TYPE; -(* USED FROM (measure_schema); *) - TYPE magnetic_flux_density_measure = REAL; - END_TYPE; -(* USED FROM (measure_schema); *) - TYPE illuminance_measure = REAL; - END_TYPE; -(* USED FROM (measure_schema); *) - TYPE inductance_measure = REAL; - END_TYPE; -(* USED FROM (measure_schema); *) - TYPE length_measure = REAL; - END_TYPE; -(* USED FROM (measure_schema); *) - TYPE luminous_intensity_measure = REAL; - END_TYPE; -(* USED FROM (measure_schema); *) - TYPE luminous_flux_measure = REAL; - END_TYPE; -(* USED FROM (measure_schema); *) - TYPE mass_measure = REAL; - END_TYPE; -(* USED FROM (measure_schema); *) - 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; -(* USED FROM (measure_schema); *) - TYPE magnetic_flux_measure = REAL; - END_TYPE; -(* USED FROM (measure_schema); *) - TYPE non_negative_length_measure = length_measure; - WHERE - WR1: SELF >= 0.0; - END_TYPE; -(* USED FROM (measure_schema); *) - TYPE numeric_measure = NUMBER; - END_TYPE; -(* USED FROM (measure_schema); *) - TYPE parameter_value = REAL; - END_TYPE; -(* USED FROM (measure_schema); *) - TYPE plane_angle_measure = REAL; - END_TYPE; -(* USED FROM (measure_schema); *) - TYPE positive_length_measure = non_negative_length_measure; - WHERE - WR1: SELF > 0.0; - END_TYPE; -(* USED FROM (measure_schema); *) - TYPE positive_plane_angle_measure = plane_angle_measure; - WHERE - WR1: SELF > 0.0; - END_TYPE; -(* USED FROM (measure_schema); *) - TYPE positive_ratio_measure = ratio_measure; - WHERE - WR1: SELF > 0.0; - END_TYPE; -(* USED FROM (measure_schema); *) - TYPE power_measure = REAL; - END_TYPE; -(* USED FROM (measure_schema); *) - TYPE pressure_measure = REAL; - END_TYPE; -(* USED FROM (measure_schema); *) - TYPE ratio_measure = REAL; - END_TYPE; -(* USED FROM (measure_schema); *) - TYPE resistance_measure = REAL; - END_TYPE; -(* USED FROM (measure_schema); *) - TYPE si_prefix = ENUMERATION OF (exa, peta, tera, giga, mega, kilo, hecto, deca, deci, centi, milli, micro, nano, pico, femto, atto); - END_TYPE; -(* USED FROM (measure_schema); *) - 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; -(* USED FROM (measure_schema); *) - TYPE solid_angle_measure = REAL; - END_TYPE; -(* USED FROM (measure_schema); *) - TYPE thermodynamic_temperature_measure = REAL; - END_TYPE; -(* USED FROM (measure_schema); *) - TYPE time_measure = REAL; - END_TYPE; -(* USED FROM (measure_schema); *) - TYPE unit = SELECT (derived_unit, named_unit); - END_TYPE; -(* USED FROM (measure_schema); *) - TYPE velocity_measure = REAL; - END_TYPE; -(* USED FROM (measure_schema); *) - TYPE volume_measure = REAL; - END_TYPE; - -(* Pruned unused type: eu_external_identification_item *) - - -(* Pruned unused type: el_external_identification_item *) - - -(* Chained implicit interfaced from: date_time_schema *) -TYPE date_time_select = SELECT - (date, - date_and_time, - local_time); -END_TYPE; -(* USED FROM (shape_aspect_definition_schema); *) -(* This EXTENSIBLE ENUMERATION set has been replaced with plain ENUMERATION for EXPRESS E1 layout. *) -TYPE simple_datum_reference_modifier = ENUMERATION OF ( - any_cross_section, - any_longitudinal_section, - basic, - contacting_feature, - degree_of_freedom_constraint_u, - degree_of_freedom_constraint_v, - degree_of_freedom_constraint_w, - degree_of_freedom_constraint_x, - degree_of_freedom_constraint_y, - degree_of_freedom_constraint_z, - distance_variable, - free_state, - least_material_requirement, - line, - major_diameter, - maximum_material_requirement, - minor_diameter, - orientation, - pitch_diameter, - plane, - point, - translation); -END_TYPE; - -(* USED FROM (aic_mechanical_design_geometric_presentation); *) - TYPE mechanical_design_geometric_presentation_area_items = SELECT( - axis2_placement, - mapped_item); - END_TYPE; -(* USED FROM (aic_mechanical_design_geometric_presentation); *) - TYPE mechanical_design_geometric_presentation_representation_items = SELECT( - axis2_placement, - camera_model_d3, - mapped_item, - styled_item); - END_TYPE; -(* USED FROM (solid_shape_element_schema); *) -TYPE trim_condition_select = SELECT - (length_measure, - plane_angle_measure, - generalized_surface_select, - solid_model); -END_TYPE; -(* USED FROM (solid_shape_element_schema); *) -TYPE trim_intent = ENUMERATION OF - (blind, - offset, - through_all, - unspecified, - up_to_next); -END_TYPE; -(* USED FROM (procedural_shape_model_schema); *) -TYPE shape_representation_item = SELECT - (geometric_representation_item, - topological_representation_item); -END_TYPE; -(* USED FROM (geometric_model_schema); *) -(* This SELECT set has been pruned. *) -TYPE csg_primitive = SELECT ( - block, - bounded_primitive_2d, - right_angular_wedge, - right_circular_cone, - right_circular_cylinder, - sphere, - torus); -END_TYPE; - -(* USED FROM (solid_shape_element_schema); *) -TYPE base_solid_select = SELECT - (solid_model, - csg_primitive, - boolean_result); -WHERE - WR1: NOT('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRIMITIVE_2D' IN TYPEOF(SELF)); -END_TYPE; -(* USED FROM (solid_shape_element_schema); *) -TYPE blend_radius_variation_type = ENUMERATION OF - (linear_blend, - cubic_blend, - unspecified_blend); -END_TYPE; -(* USED FROM (solid_shape_element_schema); *) -TYPE blend_end_condition_select = SELECT - (point_on_curve, - edge_curve, - vertex); -END_TYPE; -(* USED FROM (presentation_appearance_schema); *) - TYPE box_height = positive_ratio_measure; - END_TYPE; -(* USED FROM (presentation_appearance_schema); *) - TYPE box_width = positive_ratio_measure; - END_TYPE; -(* USED FROM (presentation_appearance_schema); *) - TYPE box_slant_angle = plane_angle_measure; - END_TYPE; -(* USED FROM (presentation_appearance_schema); *) - TYPE box_rotate_angle = plane_angle_measure; - END_TYPE; -(* USED FROM (presentation_resource_schema); *) -TYPE font_select = SELECT - (pre_defined_text_font, - externally_defined_text_font, - text_font); -END_TYPE; -(* USED FROM (presentation_organization_schema); *) -(* This SELECT set has been been expanded or truncated for EXPRESS E1 layout. *) -TYPE annotation_representation_select = SELECT ( - draughting_model, - presentation_area, - presentation_view, - symbol_representation); -END_TYPE; - -(* USED FROM (sketch_schema); *) -TYPE surface_or_solid_model = SELECT - (surface_model, - solid_model); -END_TYPE; - -(* Implicit interfaced from: mathematical_description_of_distribution_schema *) -(* This SELECT set has been been expanded or truncated for EXPRESS E1 layout. *) -TYPE property_distribution_select = SELECT ( - action_property, - general_property_relationship, - model_property_distribution, - property_definition, - resource_property); -END_TYPE; - -(* USED FROM (sketch_schema); *) -(* This EXTENSIBLE SELECT have been replaced with plain SELECT for EXPRESS E1 layout. *) -TYPE sketch_element_select = SELECT ( - curve, - point); - WHERE - WR1: 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.GEOMETRIC_REPRESENTATION_ITEM' IN TYPEOF(SELF); -END_TYPE; -(* USED FROM (sketch_schema); *) -TYPE sketch_basis_select = SELECT - (planar_curve_select, - curve_bounded_surface, - face_surface); -END_TYPE; -(* USED FROM (sketch_schema); *) -TYPE sketch_type_select = SELECT - (neutral_sketch_representation, - positioned_sketch, - subsketch); -END_TYPE; -(* USED FROM (sketch_schema); *) -TYPE curves_or_area = ENUMERATION OF - (curves, area); -END_TYPE; - -(* Pruned unused type: terminator *) - -(* USED FROM (presentation_appearance_schema); *) - TYPE marker_select = SELECT - (marker_type, - pre_defined_marker); - END_TYPE; -(* USED FROM (presentation_appearance_schema); *) - TYPE marker_type = ENUMERATION OF - (dot, - x, - plus, - asterisk, - ring, - square, - triangle); - END_TYPE; -(* USED FROM (geometric_model_schema); *) -TYPE edge_or_curve = SELECT - (curve, - edge); -END_TYPE; -(* USED FROM (geometric_model_schema); *) -TYPE face_or_surface = SELECT - (face, - surface); -END_TYPE; -(* USED FROM (geometric_model_schema); *) -TYPE path_or_composite_curve = SELECT - (composite_curve, - path); -END_TYPE; -(* USED FROM (geometric_model_schema); *) -TYPE tessellated_edge_or_vertex = SELECT - (tessellated_edge, - tessellated_vertex); -END_TYPE; - -(* Pruned unused type: c_document_reference_item *) - - -(* Pruned unused type: external_identification_for_plib_property *) - -(* USED FROM (support_resource_schema); *) - TYPE label = STRING; - END_TYPE; -(* USED FROM (support_resource_schema); *) - TYPE text = STRING; - END_TYPE; -(* USED FROM (process_property_schema); *) -TYPE characterized_action_definition = SELECT - (action, - action_method, - action_method_relationship, - action_relationship); -END_TYPE; -(* USED FROM (product_property_definition_schema); *) - TYPE derived_property_select = SELECT (property_definition, action_property, resource_property); - END_TYPE; -(* USED FROM (process_property_schema); *) -(* This SELECT set has been pruned. *) -TYPE characterized_resource_definition = SELECT ( - action_resource, - action_resource_requirement); -END_TYPE; - - -(* Pruned unused type: state_type_of_item *) - -(* USED FROM (Tagged_text_representation_mim); *) -TYPE string_representation_item_select = SELECT( - descriptive_representation_item, - included_text_block, - structured_text_composition); -END_TYPE; - -(* Pruned unused type: event_occurrence_date_and_time_item *) - - -(* Pruned unused type: event_occurrence_date_item *) - - -(* Pruned unused type: id_for_product_identification *) - - -(* Pruned unused type: spr_document_reference_item *) - - -(* Pruned unused type: spr_organization_item *) - - -(* Pruned unused type: spr_person_and_organization_item *) - - -(* Implicit interfaced from: presentation_appearance_schema *) -(* This SELECT set has been pruned. *) -TYPE presentation_style_select = SELECT ( - point_style, - curve_style, - surface_style_usage, - symbol_style, - fill_area_style, - text_style, - externally_defined_style, - null_style); -END_TYPE; - - -(* Pruned unused type: representing_relationship *) - -(* USED FROM (kinematic_motion_representation_schema); *) -TYPE link_or_shape_representation = SELECT( - kinematic_link_representation, - shape_representation); -END_TYPE; -(* USED FROM (kinematic_motion_representation_schema); *) -TYPE interpolation_type = ENUMERATION OF - (undefined_interpolation_type, - discontinuous_interpolation_type, - synchronous_interpolation_type, - linear_interpolation_type); -END_TYPE; - -(* Pruned unused type: organization_item_solution *) - -(* USED FROM (Product_breakdown_mim); *) -(* This EXTENSIBLE SELECT have been replaced with plain SELECT for EXPRESS E1 layout. *) -TYPE product_definition_or_breakdown_element_usage = SELECT ( - product_definition, - product_definition_usage); -END_TYPE; - -(* USED FROM (Product_breakdown_mim); *) -(* This EXTENSIBLE SELECT have been replaced with plain SELECT for EXPRESS E1 layout. *) -TYPE product_definition_or_product_definition_relationship = SELECT ( - product_definition, - product_definition_usage); -END_TYPE; - - -(* Pruned unused type: requirement_identification_and_version_identification_item *) - -(* USED FROM (Specification_based_configuration_mim); *) -TYPE configured_effectivity_context_item = SELECT (product_concept_feature_association); -END_TYPE; -(* USED FROM (Specification_based_configuration_mim); *) -(* This SELECT set has been been expanded or truncated for EXPRESS E1 layout. *) -TYPE configured_effectivity_item = SELECT ( - action_relationship, - process_plan, - product_definition, - product_process_plan); -END_TYPE; - -(* USED FROM (Product_class_mim); *) -TYPE category_usage_item = SELECT (product_class); -END_TYPE; - -(* Pruned unused type: id_for_class *) - - -(* Pruned unused type: specification_for_category *) - -(* USED FROM (geometric_model_schema); *) -TYPE boolean_operand = SELECT - (boolean_result, - csg_primitive, - half_space_2d, - half_space_solid, - solid_model); -END_TYPE; -(* USED FROM (geometric_model_schema); *) -TYPE boolean_operator = ENUMERATION OF - (union, - intersection, - difference); -END_TYPE; -(* USED FROM (geometric_model_schema); *) -TYPE csg_select = SELECT - (boolean_result, - csg_primitive); -END_TYPE; - -(* Pruned unused type: external_class_name_item *) - -(* USED FROM (Name_assignment_mim); *) -(* This SELECT set has been been expanded or truncated for EXPRESS E1 layout. *) -TYPE name_item = SELECT ( - assembly_component_usage, - external_class_library, - group, - group_relationship, - product, - product_definition); -END_TYPE; - - -(* Pruned unused type: mri_aliasable_item *) - - -(* Pruned unused type: mri_approval_item *) - - -(* Pruned unused type: mri_attribute_language_item *) - - -(* Pruned unused type: mri_date_and_time_item *) - - -(* Pruned unused type: mri_date_item *) - - -(* Pruned unused type: mri_identification_item *) - - -(* Pruned unused type: mri_multi_language_attribute_item *) - - -(* Pruned unused type: mri_organization_item *) - - -(* Pruned unused type: mri_person_and_organization_item *) - -(* USED FROM (Work_request_mim); *) -(* This SELECT set has been been expanded or truncated for EXPRESS E1 layout. *) -TYPE action_request_item = SELECT ( - action, - action_method, - action_property, - action_relationship, - alternate_product_relationship, - assembly_component_usage_substitute, - configuration_design, - configuration_effectivity, - configuration_item, - configured_effectivity_assignment, - document_file, - draughting_model, - drawing_revision, - general_property, - material_designation, - mechanical_design_geometric_presentation_representation, - organizational_project, - presentation_area, - product, - product_concept, - product_concept_feature, - product_concept_feature_association, - product_concept_feature_category, - product_concept_feature_category_usage, - product_definition, - product_definition_formation, - product_definition_formation_relationship, - product_definition_relationship, - product_definition_substitute, - property_definition, - resource_property, - shape_aspect, - shape_representation, - versioned_action_request); -END_TYPE; - - -(* Pruned unused type: dm_aliasable_item *) - - -(* Pruned unused type: dm_approval_item *) - - -(* Pruned unused type: dm_attribute_language_item *) - - -(* Pruned unused type: dm_contract_item *) - - -(* Pruned unused type: dm_date_and_time_item *) - - -(* Pruned unused type: dm_date_item *) - - -(* Pruned unused type: dm_identification_item *) - - -(* Pruned unused type: dm_multi_language_attribute_item *) - - -(* Pruned unused type: dm_organization_item *) - - -(* Pruned unused type: dm_person_and_organization_item *) - - -(* Pruned unused type: dm_security_classification_item *) - - -(* Pruned unused type: idrm_marked_item *) - -(* USED FROM (Time_interval_assignment_mim); *) -(* This SELECT set has been been expanded or truncated for EXPRESS E1 layout. *) -TYPE time_interval_item = SELECT ( - action, - action_directive, - action_method, - action_property, - action_relationship, - action_request_solution, - alternate_product_relationship, - applied_action_assignment, - applied_classification_assignment, - applied_person_and_organization_assignment, - approval_status, - assembly_component_usage_substitute, - certification, - class, - class_system, - configuration_design, - configuration_effectivity, - configuration_item, - configured_effectivity_assignment, - contract, - document_file, - draughting_model, - drawing_revision, - executed_action, - general_property, - material_designation, - mechanical_design_geometric_presentation_representation, - organization_relationship, - organizational_project, - person_and_organization, - presentation_area, - product, - product_concept, - product_concept_feature, - product_concept_feature_association, - product_concept_feature_category, - product_concept_feature_category_usage, - product_definition, - product_definition_formation, - product_definition_formation_relationship, - product_definition_relationship, - product_definition_substitute, - property_definition, - requirement_for_action_resource, - resource_property, - security_classification, - security_classification_level, - shape_representation, - time_interval_based_effectivity, - versioned_action_request); -END_TYPE; - -(* USED FROM (geometry_schema); *) -TYPE axis2_placement = SELECT - (axis2_placement_2d, - axis2_placement_3d); -END_TYPE; -(* USED FROM (presentation_appearance_schema); *) -(* This SELECT set has been been expanded or truncated for EXPRESS E1 layout. *) -TYPE invisibility_context = SELECT ( - draughting_model, - presentation_representation, - presentation_set); -END_TYPE; - -(* USED FROM (presentation_appearance_schema); *) - TYPE null_style = ENUMERATION OF - (null); - END_TYPE; -(* USED FROM (presentation_definition_schema); *) - TYPE text_alignment = label; - END_TYPE; - -(* Pruned unused type: ers_description_attribute_select *) - -(* USED FROM (external_reference_schema); *) - TYPE message = STRING; - END_TYPE; -(* USED FROM (external_reference_schema); *) - TYPE source_item = SELECT (identifier, message); - END_TYPE; -(* USED FROM (presentation_appearance_schema); *) - TYPE surface_side = ENUMERATION OF - (positive, - negative, - both); - END_TYPE; -(* USED FROM (presentation_appearance_schema); *) - TYPE u_direction_count = INTEGER; - WHERE - WR1: SELF > 1; - END_TYPE; -(* USED FROM (presentation_appearance_schema); *) - TYPE v_direction_count = INTEGER; - WHERE - WR1: SELF > 1; - END_TYPE; -(* USED FROM (aic_mechanical_design_shaded_presentation); *) - TYPE mechanical_design_shaded_presentation_area_items = SELECT( - axis2_placement, - mapped_item); - END_TYPE; -(* USED FROM (aic_mechanical_design_shaded_presentation); *) - TYPE mechanical_design_shaded_presentation_representation_items = SELECT( - axis2_placement, - camera_model_d3, - mapped_item, - styled_item); - END_TYPE; - -(* Pruned unused type: pamivc_document_reference_item *) - -(* USED FROM (date_time_schema); *) -TYPE day_in_month_number = INTEGER; -WHERE - WR1: {1 <= SELF <= 31}; -END_TYPE; -(* USED FROM (kinematic_structure_schema); *) -TYPE rigid_placement = SELECT - (axis2_placement_3d, - su_parameters); -END_TYPE; -(* USED FROM (kinematic_structure_schema); *) -TYPE kinematic_link_representation_items = SELECT ( - curve, - point, - rigid_placement, - surface); -END_TYPE; -(* USED FROM (kinematic_structure_schema); *) -TYPE actuated_direction = ENUMERATION OF ( - bidirectional, - positive_only, - negative_only, - not_actuated); -END_TYPE; -(* USED FROM (kinematic_state_schema); *) -TYPE spatial_rotation = SELECT - (ypr_rotation, - rotation_about_direction); -END_TYPE; - -(* Implicit interfaced from: presentation_definition_schema *) - TYPE defined_glyph_select = SELECT - (pre_defined_character_glyph, - externally_defined_character_glyph); - END_TYPE; -(* USED FROM (kinematic_state_schema); *) -TYPE ypr_enumeration = ENUMERATION OF - (yaw, - pitch, - roll); -END_TYPE; -(* USED FROM (kinematic_state_schema); *) -TYPE spherical_pair_select = SELECT ( - spherical_pair, - spherical_pair_with_pin); -END_TYPE; - -(* Pruned unused type: aliasable_item *) - -(* USED FROM (Certification_mim); *) -(* This SELECT set has been been expanded or truncated for EXPRESS E1 layout. *) -TYPE certification_item = SELECT ( - alternate_product_relationship, - make_from_usage_option, - product_definition, - product_definition_formation, - product_definition_formation_relationship, - product_definition_relationship); -END_TYPE; - -(* USED FROM (Multi_linguism_mim); *) -(* This SELECT set has been been expanded or truncated for EXPRESS E1 layout. *) -TYPE attribute_language_item = SELECT ( - action, - actuated_kinematic_pair, - 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, - data_environment, - date_role, - date_time_role, - descriptive_representation_item, - document_relationship, - document_usage_role, - draughting_title, - effectivity, - effectivity_relationship, - event_occurrence, - external_source, - general_property, - general_property_relationship, - geometric_representation_item, - geometric_tolerance, - group, - group_relationship, - identification_role, - information_right, - information_usage_right, - kinematic_pair, - make_from_usage_option, - mapped_item, - multi_language_attribute_assignment, - name_assignment, - object_role, - organization_relationship, - organization_role, - organizational_project, - organizational_project_relationship, - organizational_project_role, - person_and_organization, - person_and_organization_role, - presentation_layer_assignment, - process_product_association, - product, - product_concept, - product_concept_feature, - product_concept_feature_association, - product_concept_relationship, - product_definition, - product_definition_context, - product_definition_formation, - product_definition_formation_relationship, - product_definition_relationship, - product_definition_shape, - product_definition_substitute, - product_related_product_category, - property_definition, - property_definition_relationship, - representation, - representation_relationship, - requirement_for_action_resource, - resource_property, - resource_requirement_type, - security_classification, - security_classification_assignment, - shape_aspect, - shape_aspect_relationship, - shape_representation, - styled_item, - time_interval_role, - topological_representation_item, - uncertainty_measure_with_unit, - uncertainty_qualifier, - usage_association, - versioned_action_request, - versioned_action_request_relationship); -END_TYPE; - -(* USED FROM (Multi_linguism_mim); *) -(* This SELECT set has been been expanded or truncated for EXPRESS E1 layout. *) -TYPE multi_language_attribute_item = SELECT ( - action, - action_directive, - action_method, - action_property, - action_relationship, - actuated_kinematic_pair, - 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, - data_environment, - date_role, - date_time_role, - descriptive_representation_item, - document_relationship, - document_usage_role, - draughting_title, - effectivity, - effectivity_relationship, - event_occurrence, - external_source, - general_property, - general_property_relationship, - geometric_representation_item, - geometric_tolerance, - group, - group_relationship, - identification_role, - information_right, - information_usage_right, - kinematic_pair, - make_from_usage_option, - mapped_item, - name_assignment, - object_role, - organization_relationship, - organization_role, - organizational_project, - organizational_project_relationship, - organizational_project_role, - person_and_organization, - person_and_organization_role, - presentation_layer_assignment, - process_product_association, - product, - product_concept, - product_concept_feature, - product_concept_feature_association, - product_concept_relationship, - product_definition, - product_definition_context, - product_definition_formation, - product_definition_formation_relationship, - product_definition_relationship, - product_definition_shape, - product_definition_substitute, - product_related_product_category, - property_definition, - property_definition_relationship, - representation, - representation_relationship, - requirement_for_action_resource, - resource_property, - resource_requirement_type, - security_classification, - security_classification_assignment, - shape_aspect, - shape_aspect_relationship, - shape_representation, - styled_item, - time_interval_role, - topological_representation_item, - uncertainty_measure_with_unit, - uncertainty_qualifier, - usage_association, - versioned_action_request, - versioned_action_request_relationship); -END_TYPE; - - -(* Pruned unused type: project_as_date_and_time_item *) - - -(* Pruned unused type: project_as_date_item *) - - -(* Pruned unused type: project_event_occurrence_item *) - -(* USED FROM (Project_mim); *) -(* This SELECT set has been been expanded or truncated for EXPRESS E1 layout. *) -TYPE project_item = SELECT ( - assembly_component_usage, - configuration_item, - executed_action, - product, - product_concept, - product_definition, - product_definition_formation); -END_TYPE; - -(* USED FROM (kinematic_topology_schema); *) -TYPE kinematic_topology_representation_select = SELECT ( - kinematic_topology_structure, - kinematic_topology_directed_structure, - kinematic_topology_network_structure -); -END_TYPE; -(* USED FROM (Event_assignment_mim); *) -(* This SELECT set has been been expanded or truncated for EXPRESS E1 layout. *) -TYPE event_occurrence_item = SELECT ( - action, - action_directive, - action_method, - action_property, - action_request_solution, - alternate_product_relationship, - applied_action_assignment, - applied_classification_assignment, - assembly_component_usage_substitute, - certification, - class, - class_system, - configuration_design, - configuration_effectivity, - configuration_item, - configured_effectivity_assignment, - contract, - draughting_model, - drawing_revision, - executed_action, - general_property, - material_designation, - mechanical_design_geometric_presentation_representation, - organization_relationship, - organizational_project, - person_and_organization, - presentation_area, - product, - product_concept, - product_concept_feature, - product_concept_feature_association, - product_concept_feature_category, - product_concept_feature_category_usage, - product_definition_formation, - product_definition_formation_relationship, - product_definition_relationship, - product_definition_substitute, - property_definition, - requirement_for_action_resource, - resource_property, - security_classification_level, - shape_representation); -END_TYPE; - - -(* Implicit interfaced from: geometry_schema *) -TYPE dimension_count = INTEGER; -WHERE - WR1: SELF > 0; -END_TYPE; - -(* Implicit interfaced from: product_property_definition_schema *) - TYPE characterized_definition = SELECT ( - characterized_object, - characterized_product_definition, - shape_definition); - END_TYPE; - -(* Chained implicit interfaced from: date_time_schema *) -TYPE year_number = INTEGER; -END_TYPE; - -(* Implicit interfaced from: presentation_appearance_schema *) - TYPE box_characteristic_select = SELECT - (box_height, - box_width, - box_slant_angle, - box_rotate_angle); - END_TYPE; - -(* Chained implicit interfaced from: person_organization_schema *) - TYPE person_organization_select = SELECT ( - person, - organization, - person_and_organization); - END_TYPE; - -(* Implicit interfaced from: date_time_schema *) -TYPE month_in_year_number = INTEGER; -WHERE - WR1: { 1 <= SELF <= 12 }; -END_TYPE; - -(* Implicit interfaced from: date_time_schema *) -TYPE ahead_or_behind = ENUMERATION OF - (ahead, - exact, - behind); -END_TYPE; - -(* Implicit interfaced from: date_time_schema *) -TYPE hour_in_day = INTEGER; -WHERE - WR1: { 0 <= SELF < 24 }; -END_TYPE; - -(* Implicit interfaced from: date_time_schema *) -TYPE minute_in_hour = INTEGER; -WHERE - WR1: { 0 <= SELF <= 59 }; -END_TYPE; - -(* Implicit interfaced from: date_time_schema *) -TYPE second_in_minute = REAL; -WHERE - WR1: { 0 <= SELF <= 60.0 }; -END_TYPE; - -(* Implicit interfaced from: geometry_schema *) -TYPE vector_or_direction = SELECT - (direction, - vector); -END_TYPE; - -(* Implicit interfaced from: mathematical_context_schema *) -(* This EXTENSIBLE SELECT have been replaced with plain SELECT for EXPRESS E1 layout. *) -TYPE space_context_select = SELECT ( - action, - action_method, - general_property, - product_definition, - representation_item, - shape_aspect); -END_TYPE; - - -(* Implicit interfaced from: product_property_definition_schema *) - TYPE internal_or_reflected_shape_aspect = SELECT ( - shape_aspect, - identifier); - END_TYPE; - -(* Chained implicit interfaced from: product_definition_schema *) - TYPE product_definition_or_reference = SELECT ( - product_definition, - generic_product_definition_reference); - END_TYPE; - -(* Chained implicit interfaced from: date_time_schema *) -TYPE date_time_or_event_occurrence = SELECT - (date_time_select, - event_occurrence); -END_TYPE; - -(* Implicit interfaced from: geometry_schema *) -TYPE trimming_select = SELECT - (cartesian_point, - parameter_value); -END_TYPE; - -(* Implicit interfaced from: geometry_schema *) -TYPE trimming_preference = ENUMERATION OF - (cartesian, - parameter, - unspecified); -END_TYPE; - -(* Implicit interfaced from: geometry_schema *) -TYPE transition_code = ENUMERATION OF - (discontinuous, - continuous, - cont_same_gradient, - cont_same_gradient_same_curvature); -END_TYPE; - -(* Implicit interfaced from: geometry_schema *) -TYPE pcurve_or_surface = SELECT - (pcurve, - surface); -END_TYPE; - -(* Implicit interfaced from: geometry_schema *) -TYPE preferred_surface_curve_representation = ENUMERATION OF - (curve_3d, - pcurve_s1, - pcurve_s2); -END_TYPE; - -(* Implicit interfaced from: geometry_schema *) -TYPE curve_on_surface = SELECT - (composite_curve_on_surface, - pcurve, - surface_curve); -END_TYPE; - -(* Implicit interfaced from: geometry_schema *) -TYPE b_spline_curve_form = ENUMERATION OF - (polyline_form, - circular_arc, - elliptic_arc, - parabolic_arc, - hyperbolic_arc, - unspecified); -END_TYPE; - -(* Implicit interfaced from: geometry_schema *) -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; - -(* Implicit interfaced from: qualified_measure_schema *) -TYPE value_qualifier = SELECT - (precision_qualifier, - type_qualifier, - uncertainty_qualifier, - value_format_type_qualifier); -END_TYPE; - -(* Implicit interfaced from: qualified_measure_schema *) -TYPE value_format_type = identifier; -WHERE - WR1: LENGTH(SELF) <= 80; -END_TYPE; -- value_format_type - -(* Implicit interfaced from: presentation_appearance_schema *) -(* This SELECT set has been been expanded or truncated for EXPRESS E1 layout. *) -TYPE invisible_item = SELECT ( - draughting_callout, - presentation_layer_assignment, - representation, - styled_item); -END_TYPE; - - -(* Implicit interfaced from: shape_aspect_definition_schema *) -(* This EXTENSIBLE SELECT have been replaced with plain SELECT for EXPRESS E1 layout. *) -TYPE shape_representation_with_parameters_items = SELECT ( - descriptive_representation_item, - direction, - measure_representation_item, - placement); -END_TYPE; - - -(* Implicit interfaced from: presentation_appearance_schema *) - TYPE styled_item_target = SELECT - (geometric_representation_item, - mapped_item, - representation); - END_TYPE; - -(* Implicit interfaced from: document_schema *) - TYPE product_or_formation_or_definition = SELECT (product, product_definition_formation, product_definition); - END_TYPE; - -(* Implicit interfaced from: action_schema *) - TYPE supported_item = SELECT (action_directive, action, action_method); - END_TYPE; - -(* Implicit interfaced from: process_property_schema *) -TYPE property_or_shape_select = SELECT - (property_definition, - shape_definition); -END_TYPE; - -(* Implicit interfaced from: configuration_management_schema *) -TYPE configuration_design_item = SELECT - (product_definition, - product_definition_formation); -END_TYPE; - -(* Implicit interfaced from: material_property_definition_schema *) -(* This SELECT set has been pruned. *) -TYPE characterized_product_composition_value = SELECT ( - measure_with_unit); -END_TYPE; - - -(* Implicit interfaced from: product_definition_schema *) - TYPE source = ENUMERATION OF (made, bought, not_known); - END_TYPE; - -(* Implicit interfaced from: draughting_element_schema *) - TYPE dimension_extent_usage = ENUMERATION OF - (origin, - target); - END_TYPE; - -(* Implicit interfaced from: presentation_definition_schema *) - TYPE annotation_symbol_occurrence_item = SELECT ( - annotation_symbol, - defined_symbol); - END_TYPE; - -(* Implicit interfaced from: shape_aspect_definition_schema *) -(* This EXTENSIBLE ENUMERATION set has been replaced with plain ENUMERATION for EXPRESS E1 layout. *) -TYPE datum_reference_modifier_type = ENUMERATION OF ( - circular_or_cylindrical, - distance, - projected, - spherical); -END_TYPE; - - -(* Implicit interfaced from: shape_aspect_definition_schema *) -TYPE datum_or_common_datum = SELECT - (common_datum_list, - datum); -END_TYPE; - -(* Implicit interfaced from: shape_aspect_definition_schema *) -(* This EXTENSIBLE SELECT have been replaced with plain SELECT for EXPRESS E1 layout. *) -TYPE datum_reference_modifier = SELECT ( - datum_reference_modifier_with_value, - simple_datum_reference_modifier); -END_TYPE; - - -(* Implicit interfaced from: shape_aspect_definition_schema *) -TYPE limit_condition = ENUMERATION OF - (maximum_material_condition, - least_material_condition, - regardless_of_feature_size); -END_TYPE; - -(* Implicit interfaced from: shape_tolerance_schema *) -TYPE geometric_tolerance_target = SELECT - (dimensional_location, - dimensional_size, - product_definition_shape, - shape_aspect); -END_TYPE; - -(* Implicit interfaced from: shape_tolerance_schema *) -TYPE datum_system_or_reference = SELECT - (datum_reference, - datum_system); -END_TYPE; - -(* Implicit interfaced from: shape_tolerance_schema *) -(* This EXTENSIBLE ENUMERATION set has been replaced with plain ENUMERATION for EXPRESS E1 layout. *) -TYPE area_unit_type = ENUMERATION OF ( - circular, - rectangular, - square); -END_TYPE; - - -(* Implicit interfaced from: shape_tolerance_schema *) -(* This EXTENSIBLE ENUMERATION set has been replaced with plain ENUMERATION for EXPRESS E1 layout. *) -TYPE geometric_tolerance_modifier = ENUMERATION OF ( - any_cross_section, - common_zone, - each_radial_element, - free_state, - least_material_requirement, - line_element, - major_diameter, - maximum_material_requirement, - minor_diameter, - not_convex, - pitch_diameter, - reciprocity_requirement, - separate_requirement, - statistical_tolerance, - tangent_plane); -END_TYPE; - - -(* Implicit interfaced from: shape_tolerance_schema *) -TYPE tolerance_zone_target = SELECT ( - dimensional_location, - dimensional_size, - geometric_tolerance, - general_datum_reference); -END_TYPE; - -(* Implicit interfaced from: presentation_organization_schema *) - TYPE camera_model_d3_multi_clipping_interection_select = SELECT ( - camera_model_d3_multi_clipping_union, - plane); - END_TYPE; - -(* Implicit interfaced from: presentation_organization_schema *) - TYPE camera_model_d3_multi_clipping_union_select = SELECT ( - camera_model_d3_multi_clipping_intersection, - plane); - END_TYPE; - -(* Implicit interfaced from: presentation_organization_schema *) - TYPE central_or_parallel = ENUMERATION OF - (central, - parallel); - END_TYPE; - -(* Implicit interfaced from: presentation_organization_schema *) - TYPE presentation_size_assignment_select = SELECT - (presentation_view, - presentation_area, - area_in_set); - END_TYPE; - -(* Implicit interfaced from: solid_shape_element_schema *) -TYPE generalized_surface_select = SELECT - (surface, - face_surface, - surfaced_open_shell); -END_TYPE; - -(* Implicit interfaced from: material_property_definition_schema *) -TYPE characterized_material_property = SELECT - (material_property_representation, - product_material_composition_relationship); -END_TYPE; - -(* Implicit interfaced from: presentation_appearance_schema *) - TYPE character_style_select = SELECT - (character_glyph_style_stroke, - character_glyph_style_outline, - text_style_for_defined_font); - END_TYPE; - -(* Implicit interfaced from: presentation_appearance_schema *) -(* This SELECT set has been pruned. *) -TYPE character_spacing_select = SELECT ( - length_measure, - ratio_measure, - measure_with_unit, - descriptive_measure); -END_TYPE; - - -(* Implicit interfaced from: presentation_definition_schema *) - TYPE text_delineation = label; - END_TYPE; - -(* Implicit interfaced from: geometric_model_schema *) -TYPE surface_model = SELECT - (face_based_surface_model, - shell_based_surface_model); -END_TYPE; - -(* Pruned unused type: wireframe_model *) - - -(* Implicit interfaced from: presentation_definition_schema *) - TYPE text_path = ENUMERATION OF - (left, - right, - up, - down); - END_TYPE; - -(* Implicit interfaced from: presentation_definition_schema *) - TYPE annotation_text_occurrence_item = SELECT( - text_literal, - annotation_text, - annotation_text_character, - defined_character_glyph, - composite_text); - END_TYPE; - -(* Implicit interfaced from: presentation_definition_schema *) - TYPE curve_or_curve_set = SELECT ( - curve, - geometric_curve_set); - END_TYPE; - -(* Implicit interfaced from: presentation_definition_schema *) - TYPE text_string_representation_item = SELECT( - text_literal, - annotation_text, - annotation_text_character, - defined_character_glyph, - composite_text, - axis2_placement); - END_TYPE; - -(* Implicit interfaced from: presentation_appearance_schema *) - TYPE curve_font_or_scaled_curve_font_select = SELECT - (curve_style_font_select, - curve_style_font_and_scaling); - END_TYPE; - -(* Implicit interfaced from: presentation_appearance_schema *) -(* This SELECT set has been pruned. *) -TYPE size_select = SELECT ( - positive_length_measure, - measure_with_unit, - descriptive_measure); -END_TYPE; - - -(* Implicit interfaced from: date_time_schema *) -TYPE day_in_week_number = INTEGER; -WHERE - WR1: { 1 <= SELF <= 7 }; -END_TYPE; - -(* Implicit interfaced from: draughting_element_schema *) - TYPE annotation_plane_element = SELECT - (draughting_callout, - styled_item); - END_TYPE; - -(* Implicit interfaced from: draughting_element_schema *) - TYPE plane_or_planar_box = SELECT - (plane, - planar_box) ; - END_TYPE; - -(* Implicit interfaced from: draughting_element_schema *) - TYPE draughting_callout_element = SELECT - (annotation_curve_occurrence, - annotation_fill_area_occurrence, - annotation_symbol_occurrence, - annotation_text_occurrence, - tessellated_annotation_occurrence); - END_TYPE; - -(* Implicit interfaced from: product_property_definition_schema *) - TYPE multi_or_next_assembly_usage_occurrence = SELECT ( - multi_level_reference_designator, - next_assembly_usage_occurrence); - END_TYPE; - -(* Implicit interfaced from: presentation_appearance_schema *) - TYPE shading_curve_method = ENUMERATION OF - (constant_colour, - linear_colour); - END_TYPE; - -(* Implicit interfaced from: topology_schema *) - TYPE reversible_topology = SELECT - (reversible_topology_item, - list_of_reversible_topology_item, - set_of_reversible_topology_item); - END_TYPE; - -(* Implicit interfaced from: topology_schema *) - TYPE list_of_reversible_topology_item = - LIST [0:?] of reversible_topology_item; - END_TYPE; - -(* Implicit interfaced from: topology_schema *) - TYPE reversible_topology_item = SELECT - (edge, - path, - face, - face_bound, - closed_shell, - open_shell); - END_TYPE; - -(* Implicit interfaced from: topology_schema *) - TYPE set_of_reversible_topology_item = - SET [0:?] of reversible_topology_item; - END_TYPE; - -(* Implicit interfaced from: topology_schema *) - TYPE shell = SELECT - (vertex_shell, - wire_shell, - open_shell, - closed_shell); - END_TYPE; - -(* Implicit interfaced from: presentation_organization_schema *) - TYPE layered_item = SELECT - (presentation_representation, - representation_item); - END_TYPE; - -(* Pruned unused type: gs_id_attribute_select *) - - -(* Implicit interfaced from: geometry_schema *) -TYPE knot_type = ENUMERATION OF - (uniform_knots, - quasi_uniform_knots, - piecewise_bezier_knots, - unspecified); -END_TYPE; - -(* Implicit interfaced from: presentation_appearance_schema *) -(* This SELECT set has been pruned. *) -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; - - -(* Implicit interfaced from: presentation_appearance_schema *) - 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; - -(* Implicit interfaced from: presentation_appearance_schema *) -(* This SELECT set has been pruned. *) -TYPE symbol_style_select = SELECT ( - symbol_colour); -END_TYPE; - - -(* Implicit interfaced from: presentation_definition_schema *) - TYPE text_or_character = SELECT - (annotation_text, - annotation_text_character, - defined_character_glyph, - composite_text, - text_literal); - END_TYPE; - -(* Implicit interfaced from: presentation_definition_schema *) - TYPE defined_symbol_select = SELECT - (pre_defined_symbol, - externally_defined_symbol); - END_TYPE; - -(* Implicit interfaced from: presentation_organization_schema *) - TYPE presentation_representation_select = SELECT - (presentation_representation, - presentation_set); - END_TYPE; - -(* Implicit interfaced from: presentation_appearance_schema *) - TYPE curve_or_annotation_curve_occurrence = SELECT - (curve, - annotation_curve_occurrence); - END_TYPE; - -(* Implicit interfaced from: presentation_appearance_schema *) - 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; - -(* Implicit interfaced from: presentation_appearance_schema *) - TYPE curve_or_render = SELECT - (curve_style, - curve_style_rendering); - END_TYPE; - -(* Implicit interfaced from: presentation_appearance_schema *) - TYPE shading_surface_method = ENUMERATION OF - (constant_shading, - colour_shading, - dot_shading, - normal_shading); - END_TYPE; - -(* Implicit interfaced from: presentation_appearance_schema *) - TYPE direction_count_select = SELECT - (u_direction_count, - v_direction_count); - END_TYPE; - -(* Implicit interfaced from: presentation_appearance_schema *) - TYPE surface_side_style_select = SELECT - (surface_side_style, - pre_defined_surface_side_style); - END_TYPE; - -(* Implicit interfaced from: presentation_organization_schema *) - TYPE area_or_view = SELECT - (presentation_area, - presentation_view); - END_TYPE; - -(* Implicit interfaced from: geometric_model_schema *) -TYPE geometric_set_select = SELECT - (curve, - point, - surface); -END_TYPE; - -(* Implicit interfaced from: date_time_schema *) -TYPE day_in_year_number = INTEGER; -WHERE - WR1: {1 <= SELF <= 366}; -END_TYPE; - -(* Implicit interfaced from: date_time_schema *) -TYPE week_in_year_number = INTEGER; -WHERE - WR1: { 1 <= SELF <= 53 }; -END_TYPE; - -(* Pruned unused type: pos_id_attribute_select *) - - -(* Implicit interfaced from: presentation_appearance_schema *) - TYPE curve_style_font_select = SELECT - (curve_style_font, - pre_defined_curve_font, - externally_defined_curve_font); - END_TYPE; - -(* Pruned unused type: pos_name_attribute_select *) - - -(* Implicit interfaced from: presentation_appearance_schema *) - TYPE rendering_properties_select = SELECT - (surface_style_reflectance_ambient, - surface_style_transparent); - END_TYPE; - -(* Implicit interfaced from: management_resources_schema *) - TYPE attribute_type = SELECT (label, text); - END_TYPE; - -(* Pruned unused type: value_context_select *) - - -(* Pruned unused type: ppds_id_attribute_select *) - - -(* Pruned unused type: mrs_role_select *) - - -(* Pruned unused type: pds_id_attribute_select *) - - -(* Pruned unused type: pds_name_attribute_select *) - - -(* Pruned unused type: acs_description_attribute_select *) - - -(* Pruned unused type: acs_id_attribute_select *) - - -(* Pruned unused type: apps_role_select *) - - -(* Pruned unused type: apps_description_attribute_select *) - - -(* Pruned unused type: dts_description_attribute_select *) - - -(* Pruned unused type: cms_description_attribute_select *) - - -(* Pruned unused type: cms_name_attribute_select *) - - -(* Pruned unused type: pos_description_attribute_select *) - - -(* Pruned unused type: surface_boundary *) - - -(* Pruned unused type: as_id_attribute_select *) - - -(* Pruned unused type: effs_description_attribute_select *) - - -(* Pruned unused type: effs_name_attribute_select *) - - -(* Pruned unused type: product_data_representation_view_item *) - - -(* Pruned unused type: sts_item_identified_representation_usage_definition *) - - -(* Pruned unused type: shape_tolerance_select *) - - -(* Pruned unused type: st_id_attribute_select *) - - -(* Pruned unused type: des_invisible_item *) - -(* USED FROM (parameterization_schema); *) -TYPE attribute_identifier = identifier; -WHERE - WR1: validate_attribute_id(SELF); -END_TYPE; -(* USED FROM (sketch_schema); *) -TYPE planar_curve_select = SELECT - (line, - conic, - trimmed_curve, - pcurve, - surface_curve); -WHERE - WR1: SELF\geometric_representation_item.dim = 3; - WR2: check_curve_planarity(SELF); -END_TYPE; -(* USED FROM (shape_aspect_definition_schema); *) -TYPE common_datum_list = LIST[2:?] OF datum_reference_element; -WHERE - WR1: SIZEOF( QUERY(dre <* SELF | dre\shape_aspect.of_shape <> SELF[1]\shape_aspect.of_shape)) = 0; -END_TYPE; -(* USED FROM (kinematic_state_schema); *) -TYPE ypr_rotation = ARRAY [ypr_index(yaw) : ypr_index(roll)] - OF plane_angle_measure; -END_TYPE; - -(* Implicit interfaced from: presentation_definition_schema *) - TYPE presentable_text = STRING; - WHERE - WR1: control_characters_free(SELF); - END_TYPE; - -(* Pruned unused type: express_identifier *) - - -(* Pruned unused type: dotted_express_identifier *) - -(* USED FROM (shape_data_quality_criteria_schema); *) - ENTITY entirely_narrow_face - SUBTYPE OF(topology_related_to_nearly_degenerate_geometry); - SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_logical_test; - width_tolerance : length_measure; - WHERE - WR1 : validate_measured_data_type(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.BOOLEAN_VALUE'); - WR2 : validate_inspected_elements_type(SELF, - ['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FACE_SURFACE']); - WR3 : validate_locations_of_extreme_value_type(SELF, - []); - WR4 : validate_accuracy_types(SELF, - ['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE']); - END_ENTITY; -(* USED FROM (Ap242_managed_model_based_3d_engineering_mim); *) - ENTITY cc_design_certification - SUBTYPE OF (certification_assignment); - items : SET[1:?] OF certified_item; - END_ENTITY; -(* USED FROM (Ap242_managed_model_based_3d_engineering_mim); *) - ENTITY cc_design_contract - SUBTYPE OF (contract_assignment); - items : SET[1:?] OF contracted_item; - END_ENTITY; -(* USED FROM (Ap242_managed_model_based_3d_engineering_mim); *) - ENTITY cc_design_date_and_time_assignment - SUBTYPE OF (date_and_time_assignment); - items : SET[1:?] OF date_time_item; - END_ENTITY; -(* USED FROM (shape_data_quality_criteria_schema); *) - ENTITY gap_between_adjacent_edges_in_loop - SUBTYPE OF(geometric_gap_in_topology); - SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; - WHERE - WR1 : ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + - 'SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' - IN TYPEOF(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)) - AND ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE' - IN value_limit_type(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)); - WR2 : validate_measured_data_type(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE'); - WR3 : validate_inspected_elements_type(SELF, - ['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.EDGE_LOOP']); - WR4 : validate_locations_of_extreme_value_type(SELF, - ['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ORIENTED_EDGE']); - WR5 : validate_accuracy_types(SELF, - ['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE']); - END_ENTITY; -(* USED FROM (Ap242_managed_model_based_3d_engineering_mim); *) - ENTITY cc_design_security_classification - SUBTYPE OF (security_classification_assignment); - items : SET[1:?] OF cc_classified_item; - END_ENTITY; -(* USED FROM (Ap242_managed_model_based_3d_engineering_mim); *) - ENTITY cc_design_specification_reference - SUBTYPE OF (document_reference); - items : SET[1:?] OF cc_specified_item; - END_ENTITY; -(* USED FROM (Ap242_managed_model_based_3d_engineering_mim); *) - ENTITY change - SUBTYPE OF (action_assignment); - items : SET[1:?] OF work_item; - END_ENTITY; -(* USED FROM (Ap242_managed_model_based_3d_engineering_mim); *) - ENTITY change_request - SUBTYPE OF (action_request_assignment); - items : SET[1:?] OF change_request_item; - END_ENTITY; -(* USED FROM (Ap242_managed_model_based_3d_engineering_mim); *) - ENTITY design_context - SUBTYPE OF (product_definition_context); - WHERE - WR1: SELF.life_cycle_stage = 'design'; - END_ENTITY; -(* USED FROM (Ap242_managed_model_based_3d_engineering_mim); *) - ENTITY design_make_from_relationship - SUBTYPE OF (product_definition_relationship); - END_ENTITY; -(* USED FROM (Ap242_managed_model_based_3d_engineering_mim); *) - ENTITY mechanical_context - SUBTYPE OF (product_context); - WHERE - WR1: SELF.discipline_type = 'mechanical'; - END_ENTITY; -(* USED FROM (Ap242_managed_model_based_3d_engineering_mim); *) - ENTITY start_request - SUBTYPE OF (action_request_assignment); - items : SET[1:?] OF start_request_item; - END_ENTITY; -(* USED FROM (Ap242_managed_model_based_3d_engineering_mim); *) - ENTITY start_work - SUBTYPE OF (action_assignment); - items : SET[1:?] OF work_item; - END_ENTITY; -(* USED FROM (Ap242_managed_model_based_3d_engineering_mim); *) - ENTITY supplied_part_relationship - SUBTYPE OF (product_definition_relationship); - END_ENTITY; -(* USED FROM (Analysis_assignment_mim); *) -ENTITY analysis_assignment - SUBTYPE OF (group); -END_ENTITY; -(* USED FROM (Analysis_assignment_mim); *) -ENTITY analysis_item - SUBTYPE OF (group_assignment); - items : SET[1:1] OF analysed_item; - SELF\group_assignment.assigned_group : analysis_assignment; -END_ENTITY; -(* USED FROM (Analysis_assignment_mim); *) -ENTITY assigned_analysis - SUBTYPE OF (group_assignment); - items : SET[1:1] OF product_definition_formation; - SELF\group_assignment.assigned_group : analysis_assignment; -END_ENTITY; -(* USED FROM (group_schema); *) - ENTITY group SUPERTYPE OF (ONEOF ( - CHANGE_GROUP, - CHANGE_ELEMENT) ) ; - name : label; - description : OPTIONAL text; - DERIVE - id : identifier := get_id_value(SELF); - WHERE - WR1: SIZEOF(USEDIN(SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'ID_ATTRIBUTE.IDENTIFIED_ITEM')) <= 1; - END_ENTITY; -(* USED FROM (management_resources_schema); *) - ENTITY group_assignment - ABSTRACT SUPERTYPE OF (ONEOF ( - CURRENT_CHANGE_ELEMENT_ASSIGNMENT, - PREVIOUS_CHANGE_ELEMENT_ASSIGNMENT, - CHANGE_GROUP_ASSIGNMENT) ) ; - assigned_group : group; - DERIVE - role : object_role := get_role(SELF); - WHERE - WR1: SIZEOF(USEDIN(SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'ROLE_ASSOCIATION.ITEM_WITH_ROLE')) <= 1; - END_ENTITY; -(* USED FROM (Approval_mim); *) -ENTITY applied_approval_assignment - SUBTYPE OF (approval_assignment); - items : SET[1:?] OF approval_item; -END_ENTITY; -(* USED FROM (Classification_assignment_mim); *) -ENTITY applied_classification_assignment - SUBTYPE OF (classification_assignment); - items : SET[1:?] OF classification_item; -END_ENTITY; -(* USED FROM (Contract_mim); *) -ENTITY applied_contract_assignment - SUBTYPE OF (contract_assignment); - items : SET[1:?] OF contract_item; -END_ENTITY; -(* USED FROM (Date_time_assignment_mim); *) -ENTITY applied_date_and_time_assignment - SUBTYPE OF (date_and_time_assignment); - items : SET [1:?] OF date_and_time_item; -END_ENTITY; -(* USED FROM (Date_time_assignment_mim); *) -ENTITY applied_date_assignment - SUBTYPE OF (date_assignment); - items : SET [1:?] OF date_item; -END_ENTITY; -(* USED FROM (Person_organization_assignment_mim); *) -ENTITY applied_organization_assignment - SUBTYPE OF (organization_assignment); - items : SET[1:?] OF organization_item; -END_ENTITY; -(* USED FROM (Person_organization_assignment_mim); *) -ENTITY applied_person_and_organization_assignment - SUBTYPE OF (person_and_organization_assignment); - items : SET[1:?] OF person_and_organization_item; -END_ENTITY; -(* USED FROM (Security_classification_mim); *) -ENTITY applied_security_classification_assignment - SUBTYPE OF (security_classification_assignment); - items : SET [1:?] OF security_classification_item; -END_ENTITY; -(* USED FROM (Identification_assignment_mim); *) -ENTITY applied_identification_assignment - SUBTYPE OF (identification_assignment); - items : SET[1:?] OF identification_item; -END_ENTITY; -(* USED FROM (product_definition_schema); *) - ENTITY product; - id : identifier; - name : label; - description : OPTIONAL text; - frame_of_reference : SET [1:?] OF product_context; - END_ENTITY; -(* USED FROM (product_definition_schema); *) - ENTITY product_category; - name : label; - description : OPTIONAL text; - DERIVE - id : identifier := get_id_value(SELF); - WHERE - WR1: SIZEOF(USEDIN(SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'ID_ATTRIBUTE.IDENTIFIED_ITEM')) <= 1; - END_ENTITY; -(* USED FROM (product_definition_schema); *) - ENTITY product_definition SUPERTYPE OF (ONEOF ( - COMPOSITE_ASSEMBLY_SEQUENCE_DEFINITION, - LAMINATE_TABLE, - PLY_LAMINATE_SEQUENCE_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'NAME_ATTRIBUTE.NAMED_ITEM')) <= 1; - END_ENTITY; -(* USED FROM (product_definition_schema); *) - ENTITY product_definition_formation; - id : identifier; - description : OPTIONAL text; - of_product : product; - UNIQUE - UR1: id, of_product; - END_ENTITY; -(* USED FROM (product_definition_schema); *) - 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; -(* USED FROM (product_definition_schema); *) - ENTITY product_related_product_category - SUBTYPE OF (product_category); - products : SET [1:?] OF product; - END_ENTITY; -(* USED FROM (analysis_schema); *) -ENTITY behavioural_decomposition_of_numerical_model; - parts : SET [2 : ?] OF numerical_model; - whole : numerical_model; -END_ENTITY; -(* USED FROM (analysis_schema); *) -ENTITY model_action_domain -SUBTYPE OF (numerical_model); - initial : model_state_domain; - final : model_state_domain; -END_ENTITY; -(* USED FROM (analysis_schema); *) -ENTITY model_product_domain -SUBTYPE OF (numerical_model); - temporal_parts : LIST [0 : ?] OF model_action_domain; -END_ENTITY; -(* USED FROM (analysis_schema); *) -ENTITY model_product_domain_with_mesh -SUBTYPE OF (model_product_domain); - model_mesh : mesh; -END_ENTITY; -(* USED FROM (analysis_schema); *) -ENTITY model_property_distribution; - creating_software : text; - domain : numerical_model; - range : general_property; -END_ENTITY; -(* USED FROM (analysis_schema); *) -ENTITY model_state_domain -SUBTYPE OF (numerical_model); -END_ENTITY; -(* USED FROM (shape_data_quality_criteria_schema); *) - ENTITY partly_overlapping_edges - SUBTYPE OF(topology_related_to_overlapping_geometry); - SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; - interference_tolerance : length_measure; - WHERE - WR1 : ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + - 'SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' - IN TYPEOF(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)) - AND ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE' - IN value_limit_type(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)); - WR2 : validate_measured_data_type(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE'); - WR3 : validate_inspected_elements_type(SELF, - ['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.EDGE_CURVE', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.EDGE_CURVE']); - WR4 : validate_locations_of_extreme_value_type(SELF, - ['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SUBEDGE','AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SUBEDGE']); - WR5 : validate_accuracy_types(SELF, - ['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE']); - END_ENTITY; -(* USED FROM (analysis_schema); *) -ENTITY simulation_run; - id : identifier; - name : label; - description : text; - simulated : numerical_model; - results : SET [0 : ?] OF model_property_distribution; -END_ENTITY; -(* USED FROM (analysis_schema); *) -ENTITY spatial_decomposition_of_numerical_model; - parts : SET [2 : ?] OF numerical_model; - whole : numerical_model; -END_ENTITY; -(* USED FROM (analysis_schema); *) -ENTITY temporal_decomposition_of_model_action; - parts : LIST [2 : ?] OF model_action_domain; - whole : model_action_domain; -END_ENTITY; -(* USED FROM (analysis_product_relationships_schema); *) -ENTITY idealisation_relationship; - id : identifier; - name : label; - description : text; - idealised : product_definition; - idealisation : temporal_spatial_domain; -END_ENTITY; -(* USED FROM (analysis_product_relationships_schema); *) -ENTITY view_relationship; - id : identifier; - name :label; - description : text; - viewed : temporal_spatial_domain; - view : numerical_model; -END_ENTITY; -(* USED FROM (systems_engineering_representation_schema); *) -ENTITY analysis_model -SUBTYPE OF (representation); - SELF\representation.context_of_items : analysis_representation_context; -END_ENTITY; -(* USED FROM (systems_engineering_representation_schema); *) -ENTITY analysis_representation_context -SUBTYPE OF (representation_context); -END_ENTITY; -(* USED FROM (Shape_property_assignment_mim); *) -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.used_representation : shape_model; - SELF\item_identified_representation_usage.identified_item : geometric_model_item; - UNIQUE - UR1 : definition; -END_ENTITY; -(* USED FROM (Shape_property_assignment_mim); *) -ENTITY chain_based_geometric_item_specific_usage - SUBTYPE OF (geometric_item_specific_usage, - chain_based_item_identified_representation_usage); -END_ENTITY; -(* USED FROM (shape_data_quality_criteria_schema); *) - ENTITY overcomplex_topology_and_geometry_relationship - ABSTRACT SUPERTYPE OF (ONEOF ( - UNUSED_PATCHES, - EDGE_WITH_EXCESSIVE_SEGMENTS, - FACE_SURFACE_WITH_EXCESSIVE_PATCHES_IN_ONE_DIRECTION)) - SUBTYPE OF(inapt_topology_and_geometry_relationship); - END_ENTITY; -(* USED FROM (shape_data_quality_criteria_schema); *) - ENTITY unused_patches - SUBTYPE OF(overcomplex_topology_and_geometry_relationship); - SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; - WHERE - WR1 : ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + - 'SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' - IN TYPEOF(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)) - AND ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.COUNT_MEASURE' - IN value_limit_type(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)); - WR2 : validate_measured_data_type(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.COUNT_MEASURE'); - WR3 : validate_inspected_elements_type(SELF, - ['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FACE_SURFACE']); - WR4 : validate_locations_of_extreme_value_type(SELF, - ['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.'+ - 'B_SPLINE_SURFACE_STRIP']); - WR5 : validate_accuracy_types(SELF, - []); - END_ENTITY; -(* USED FROM (mathematical_functions_schema); *) -ENTITY dependent_variable_definition - SUBTYPE OF (unary_generic_expression); - name : label; - description : text; -END_ENTITY; -(* USED FROM (mathematical_functions_schema); *) -ENTITY bound_variable_semantics - SUBTYPE OF (variable_semantics); -END_ENTITY; -(* USED FROM (mathematical_functions_schema); *) -ENTITY free_variable_semantics - SUBTYPE OF (variable_semantics); -END_ENTITY; -(* USED FROM (mathematical_functions_schema); *) -ENTITY complex_number_literal - SUBTYPE OF (generic_literal); - real_part : REAL; - imag_part : REAL; -END_ENTITY; -(* USED FROM (mathematical_functions_schema); *) -ENTITY complex_number_literal_polar - SUBTYPE OF (complex_number_literal); - modulus : REAL; -- was radius - argument : REAL; -- was angle -DERIVE - SELF\complex_number_literal.real_part : REAL := modulus * cos(argument); - SELF\complex_number_literal.imag_part : REAL := modulus * sin(argument); -WHERE - WR1: modulus >= 0; - WR2: {0 <= argument <= 2*PI}; -END_ENTITY; -(* USED FROM (mathematical_functions_schema); *) -ENTITY logical_literal - SUBTYPE OF (generic_literal); - lit_value : LOGICAL; -END_ENTITY; -(* USED FROM (mathematical_functions_schema); *) -ENTITY binary_literal - SUBTYPE OF (generic_literal); - lit_value : BINARY; -END_ENTITY; -(* USED FROM (mathematical_functions_schema); *) -ENTITY maths_enum_literal - SUBTYPE OF (generic_literal); - lit_value : maths_enum_atom; -END_ENTITY; -(* USED FROM (mathematical_functions_schema); *) -ENTITY real_tuple_literal - SUBTYPE OF (generic_literal); - lit_value : LIST [1:?] OF REAL; -END_ENTITY; -(* USED FROM (mathematical_functions_schema); *) -ENTITY integer_tuple_literal - SUBTYPE OF (generic_literal); - lit_value : LIST [1:?] OF INTEGER; -END_ENTITY; -(* USED FROM (mathematical_functions_schema); *) -ENTITY atom_based_literal - SUBTYPE OF (generic_literal); - lit_value : atom_based_value; -END_ENTITY; -(* USED FROM (mathematical_functions_schema); *) -ENTITY maths_tuple_literal - SUBTYPE OF (generic_literal); - lit_value : LIST OF maths_value; -END_ENTITY; -(* USED FROM (shape_data_quality_criteria_schema); *) - ENTITY multiply_defined_solids - SUBTYPE OF(inapt_manifold_solid_brep); - SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; - WHERE - WR1 : ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + - 'SHAPE_DATA_QUALITY_UPPER_VALUE_LIMIT' - IN TYPEOF(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)) - AND ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE' - IN value_limit_type(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)); - WR2 : validate_measured_data_type(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE'); - WR3 : validate_inspected_elements_type(SELF, - ['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MANIFOLD_SOLID_BREP', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MANIFOLD_SOLID_BREP']); - WR4 : validate_locations_of_extreme_value_type(SELF, - []); - WR5 : validate_accuracy_types(SELF, - ['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE']); - END_ENTITY; -(* USED FROM (shape_data_quality_criteria_schema); *) - ENTITY entirely_narrow_solid - SUBTYPE OF(inapt_manifold_solid_brep); - SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_logical_test; - width_tolerance : length_measure; - WHERE - WR1 : validate_measured_data_type(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.BOOLEAN_VALUE'); - WR2 : validate_inspected_elements_type(SELF, - ['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MANIFOLD_SOLID_BREP']); - WR3 : validate_locations_of_extreme_value_type(SELF, - []); - WR4 : validate_accuracy_types(SELF, - ['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE']); - END_ENTITY; -(* USED FROM (mathematical_functions_schema); *) -ENTITY maths_integer_variable - SUBTYPE OF (maths_variable, int_numeric_variable); -WHERE - WR1: subspace_of_es(SELF\maths_variable.values_space,es_integers); -END_ENTITY; -(* USED FROM (mathematical_functions_schema); *) -ENTITY maths_boolean_variable - SUBTYPE OF (maths_variable, boolean_variable); -WHERE - WR1: subspace_of_es(SELF\maths_variable.values_space,es_booleans); -END_ENTITY; -(* USED FROM (mathematical_functions_schema); *) -ENTITY maths_string_variable - SUBTYPE OF (maths_variable, string_variable); -WHERE - WR1: subspace_of_es(SELF\maths_variable.values_space,es_strings); -END_ENTITY; -(* USED FROM (shape_data_quality_criteria_schema); *) - ENTITY shape_criteria_representation_with_accuracy - SUBTYPE OF(shape_data_quality_criteria_representation); - required_general_accuracy : SET [1:?] OF shape_measurement_accuracy; - END_ENTITY; -(* USED FROM (mathematical_functions_schema); *) -ENTITY maths_space - ABSTRACT SUPERTYPE OF (ONEOF ( - ELEMENTARY_SPACE, - FINITE_INTEGER_INTERVAL, - INTEGER_INTERVAL_FROM_MIN, - INTEGER_INTERVAL_TO_MAX, - FINITE_REAL_INTERVAL, - REAL_INTERVAL_FROM_MIN, - REAL_INTERVAL_TO_MAX, - CARTESIAN_COMPLEX_NUMBER_REGION, - POLAR_COMPLEX_NUMBER_REGION, - FINITE_SPACE, - UNIFORM_PRODUCT_SPACE, - LISTED_PRODUCT_SPACE, - EXTENDED_TUPLE_SPACE, - FUNCTION_SPACE)) - SUBTYPE OF (generic_expression); -END_ENTITY; -(* USED FROM (mathematical_functions_schema); *) -ENTITY elementary_space - SUBTYPE OF (maths_space, generic_literal); - space_id : elementary_space_enumerators; -END_ENTITY; -(* USED FROM (mathematical_functions_schema); *) -ENTITY finite_integer_interval - SUBTYPE OF (maths_space, generic_literal); - min : INTEGER; - max : INTEGER; -DERIVE - size : positive_integer := max - min + 1; -WHERE - WR1: min <= max; -END_ENTITY; -(* USED FROM (mathematical_functions_schema); *) -ENTITY integer_interval_from_min - SUBTYPE OF (maths_space, generic_literal); - min : INTEGER; -END_ENTITY; -(* USED FROM (mathematical_functions_schema); *) -ENTITY integer_interval_to_max - SUBTYPE OF (maths_space, generic_literal); - max : INTEGER; -END_ENTITY; -(* USED FROM (mathematical_functions_schema); *) -ENTITY finite_real_interval - SUBTYPE OF (maths_space, generic_literal); - min : REAL; - min_closure : open_closed; - max : REAL; - max_closure : open_closed; -WHERE - WR1: min < max; -END_ENTITY; -(* USED FROM (mathematical_functions_schema); *) -ENTITY real_interval_from_min - SUBTYPE OF (maths_space, generic_literal); - min : REAL; - min_closure : open_closed; -END_ENTITY; -(* USED FROM (mathematical_functions_schema); *) -ENTITY real_interval_to_max - SUBTYPE OF (maths_space, generic_literal); - max : REAL; - max_closure : open_closed; -END_ENTITY; -(* USED FROM (mathematical_functions_schema); *) -ENTITY cartesian_complex_number_region - SUBTYPE OF (maths_space, generic_literal); - real_constraint : real_interval; - imag_constraint : real_interval; -WHERE - WR1: min_exists(real_constraint) OR max_exists(real_constraint) OR - min_exists(imag_constraint) OR max_exists(imag_constraint); -END_ENTITY; -(* USED FROM (mathematical_functions_schema); *) -ENTITY polar_complex_number_region - SUBTYPE OF (maths_space, generic_literal); - centre : complex_number_literal; - distance_constraint : real_interval; - direction_constraint : finite_real_interval; -WHERE - WR1: min_exists(distance_constraint) AND (real_min(distance_constraint) >= 0.0); - WR2: {-PI <= direction_constraint.min < PI}; - WR3: direction_constraint.max - direction_constraint.min <= 2.0*PI; - WR4: (direction_constraint.max - direction_constraint.min < 2.0*PI) OR - (direction_constraint.min_closure = open); - WR5: (direction_constraint.max - direction_constraint.min < 2.0*PI) OR - (direction_constraint.max_closure = open) OR - (direction_constraint.min = -PI); - WR6: (real_min(distance_constraint) > 0.0) OR max_exists(distance_constraint) OR - (direction_constraint.max - direction_constraint.min < 2.0*PI) OR - (direction_constraint.max_closure = open); -END_ENTITY; -(* USED FROM (shape_data_quality_inspection_result_schema); *) - ENTITY shape_inspection_result_representation_with_accuracy - SUBTYPE OF(shape_data_quality_inspection_result_representation); - applied_general_accuracy : SET [1:?] OF shape_measurement_accuracy; - END_ENTITY; -(* USED FROM (mathematical_functions_schema); *) -ENTITY uniform_product_space - SUBTYPE OF (maths_space, generic_literal); - base : maths_space; - exponent : positive_integer; -WHERE - WR1: expression_is_constant(base); - WR2: no_cyclic_space_reference(SELF, []); - WR3: base <> the_empty_space; -END_ENTITY; -(* REFERENCE FROM (date_time_schema); *) -ENTITY event_occurrence_role; - name : label; - description : OPTIONAL text; -END_ENTITY; -(* USED FROM (mathematical_functions_schema); *) -ENTITY extended_tuple_space - SUBTYPE OF (maths_space, generic_literal); - base : product_space; - extender : maths_space; -WHERE - WR1: expression_is_constant(base) AND - expression_is_constant(extender); - WR2: no_cyclic_space_reference(SELF, []); - WR3: extender <> the_empty_space; -END_ENTITY; -(* USED FROM (mathematical_functions_schema); *) -ENTITY function_space - SUBTYPE OF (maths_space, generic_literal); - domain_constraint : space_constraint_type; - domain_argument : maths_space; - range_constraint : space_constraint_type; - range_argument : maths_space; -WHERE - WR1: expression_is_constant(domain_argument) AND - expression_is_constant(range_argument); - WR2: (domain_argument <> the_empty_space) AND - (range_argument <> the_empty_space); - WR3: (domain_constraint <> sc_member) OR NOT - member_of(the_empty_space,domain_argument); - WR4: (range_constraint <> sc_member) OR NOT - member_of(the_empty_space,range_argument); - WR5: NOT (any_space_satisfies(domain_constraint,domain_argument) AND - any_space_satisfies(range_constraint,range_argument)); -END_ENTITY; -(* USED FROM (mathematical_functions_schema); *) -ENTITY maths_function - ABSTRACT SUPERTYPE OF (ONEOF ( - FINITE_FUNCTION, - CONSTANT_FUNCTION, - SELECTOR_FUNCTION, - ELEMENTARY_FUNCTION, - RESTRICTION_FUNCTION, - REPACKAGING_FUNCTION, - REINDEXED_ARRAY_FUNCTION, - SERIES_COMPOSED_FUNCTION, - PARALLEL_COMPOSED_FUNCTION, - EXPLICIT_TABLE_FUNCTION, - HOMOGENEOUS_LINEAR_FUNCTION, - GENERAL_LINEAR_FUNCTION, - B_SPLINE_BASIS, - B_SPLINE_FUNCTION, - RATIONALIZE_FUNCTION, - PARTIAL_DERIVATIVE_FUNCTION, - DEFINITE_INTEGRAL_FUNCTION, - ABSTRACTED_EXPRESSION_FUNCTION, - EXPRESSION_DENOTED_FUNCTION, - IMPORTED_POINT_FUNCTION, - IMPORTED_CURVE_FUNCTION, - IMPORTED_SURFACE_FUNCTION, - IMPORTED_VOLUME_FUNCTION, - APPLICATION_DEFINED_FUNCTION)) - SUBTYPE OF (generic_expression); -DERIVE - domain : tuple_space := derive_function_domain(SELF); - range : tuple_space := derive_function_range(SELF); -END_ENTITY; -(* USED FROM (mathematical_functions_schema); *) -ENTITY finite_function - SUBTYPE OF (maths_function, generic_literal); - pairs : SET [1:?] OF LIST [2:2] OF maths_value; -WHERE - WR1: VALUE_UNIQUE(list_selected_components(pairs, 1)); -END_ENTITY; -(* USED FROM (shape_data_quality_inspection_result_schema); *) - ENTITY shape_inspection_result_accuracy_association; - applied_specific_accuracy : shape_measurement_accuracy; - shape_data_quality_result : shape_data_quality_inspection_result; - END_ENTITY; -(* USED FROM (mathematical_functions_schema); *) -ENTITY selector_function - SUBTYPE OF (maths_function, generic_literal); - selector : input_selector; - source_of_domain : maths_space_or_function; -WHERE - WR1: no_cyclic_domain_reference(source_of_domain, [SELF]); - WR2: expression_is_constant(domain_from(source_of_domain)); -END_ENTITY; -(* USED FROM (mathematical_functions_schema); *) -ENTITY elementary_function - SUBTYPE OF (maths_function, generic_literal); - func_id : elementary_function_enumerators; -END_ENTITY; -(* USED FROM (mathematical_functions_schema); *) -ENTITY restriction_function - SUBTYPE OF (maths_function, unary_generic_expression); - SELF\unary_generic_expression.operand : maths_space; -END_ENTITY; -(* USED FROM (shape_data_quality_inspection_result_schema); *) - ENTITY shape_data_quality_inspection_instance_report_item - SUBTYPE OF(data_quality_inspection_instance_report_item); - SELF\data_quality_inspection_instance_report_item.inspected_elements : SET [1:?] OF inspected_shape_element_select; - measured_value : measured_value_select; - END_ENTITY; -(* USED FROM (shape_data_quality_inspection_result_schema); *) - ENTITY shape_data_quality_inspection_instance_report - SUBTYPE OF(data_quality_inspection_instance_report); - SELF\data_quality_inspection_instance_report.inspected_instances : LIST [1:?] OF shape_data_quality_inspection_instance_report_item; - END_ENTITY; - -(* Implicit interfaced from: presentation_definition_schema *) - ENTITY symbol_target - SUBTYPE OF (geometric_representation_item); - placement : axis2_placement; - x_scale : positive_ratio_measure; - y_scale : positive_ratio_measure; - END_ENTITY; - -(* Implicit interfaced from: presentation_appearance_schema *) - ENTITY two_direction_repeat_factor - SUBTYPE OF (one_direction_repeat_factor); - second_repeat_factor : vector; - END_ENTITY; -(* USED FROM (mathematical_functions_schema); *) -ENTITY explicit_table_function - ABSTRACT SUPERTYPE OF (ONEOF ( - LISTED_REAL_DATA, - LISTED_INTEGER_DATA, - LISTED_LOGICAL_DATA, - LISTED_STRING_DATA, - LISTED_COMPLEX_NUMBER_DATA, - LISTED_DATA, - EXTERNALLY_LISTED_DATA, - LINEARIZED_TABLE_FUNCTION, - BASIC_SPARSE_MATRIX)) - SUBTYPE OF (maths_function); - index_base : zero_or_one; - shape : LIST [1:?] OF positive_integer; -END_ENTITY; -(* USED FROM (mathematical_functions_schema); *) -ENTITY listed_real_data - SUBTYPE OF (explicit_table_function, generic_literal); - values : LIST [1:?] OF REAL; -DERIVE - self\explicit_table_function.shape : LIST [1:?] OF positive_integer := - [SIZEOF (values)]; -END_ENTITY; -(* USED FROM (mathematical_functions_schema); *) -ENTITY listed_integer_data - SUBTYPE OF (explicit_table_function, generic_literal); - values : LIST [1:?] OF INTEGER; -DERIVE - self\explicit_table_function.shape : LIST [1:?] OF positive_integer := - [SIZEOF (values)]; -END_ENTITY; -(* USED FROM (mathematical_functions_schema); *) -ENTITY listed_logical_data - SUBTYPE OF(explicit_table_function, generic_literal); - values : LIST [1:?] OF LOGICAL; -DERIVE - self\explicit_table_function.shape : LIST [1:?] OF positive_integer := - [SIZEOF (values)]; -END_ENTITY; -(* USED FROM (mathematical_functions_schema); *) -ENTITY listed_string_data - SUBTYPE OF (explicit_table_function, generic_literal); - values : LIST [1:?] OF STRING; -DERIVE - self\explicit_table_function.shape : LIST [1:?] OF positive_integer := - [SIZEOF (values)]; -END_ENTITY; -(* USED FROM (mathematical_functions_schema); *) -ENTITY listed_complex_number_data - SUBTYPE OF (explicit_table_function, generic_literal); - values : LIST [2:?] OF REAL; -DERIVE - SELF\explicit_table_function.shape : LIST [1:?] OF positive_integer := [ SIZEOF(values) DIV 2 ]; -WHERE - WR1: - NOT ODD(SIZEOF(values)); -END_ENTITY; -(* USED FROM (shape_data_quality_inspection_result_schema); *) - ENTITY extreme_instance; - locations_of_extreme_value : SET [1:?] OF location_of_extreme_value_select; - measured_value : measured_value_select; - END_ENTITY; -(* USED FROM (mathematical_functions_schema); *) -ENTITY externally_listed_data - SUBTYPE OF (explicit_table_function, generic_literal, externally_defined_item); - value_range : maths_space; -WHERE - WR1: expression_is_constant(value_range); -END_ENTITY; - -(* Implicit interfaced from: geometric_model_schema *) -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: 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PLANE' IN TYPEOF(swept_area.basis_surface); -END_ENTITY; - -(* Implicit interfaced from: management_resources_schema *) - ENTITY effectivity_context_role; - name : label; - description : OPTIONAL text; - END_ENTITY; -(* USED FROM (mathematical_functions_schema); *) -ENTITY regular_table_function - SUBTYPE OF (linearized_table_function); - increments : LIST [1:?] OF INTEGER; -WHERE - WR1: SIZEOF (increments) = SIZEOF (self\explicit_table_function.shape); - WR2: extremal_position_check(self); -END_ENTITY; -(* USED FROM (mathematical_functions_schema); *) -ENTITY triangular_matrix - SUBTYPE OF (linearized_table_function); - default_entry : maths_value; - lo_up : lower_upper; - order : ordering_type; -WHERE - WR1: SIZEOF (SELF\explicit_table_function.shape) = 2; - WR2: member_of(default_entry, SELF\maths_function.range); -END_ENTITY; -(* USED FROM (mathematical_functions_schema); *) -ENTITY strict_triangular_matrix - SUBTYPE OF (triangular_matrix); - main_diagonal_value : maths_value; -END_ENTITY; -(* USED FROM (mathematical_functions_schema); *) -ENTITY symmetric_matrix - SUBTYPE OF (linearized_table_function); - symmetry : symmetry_type; - triangle : lower_upper; - order : ordering_type; -WHERE - WR1: SIZEOF (SELF\explicit_table_function.shape) = 2; - WR2: SELF\explicit_table_function.shape[1] = - SELF\explicit_table_function.shape[2]; - WR3: NOT (symmetry = symmetry_type.skew) OR ( - (space_dimension(SELF\linearized_table_function.source.range) = 1) AND - subspace_of_es(factor1(SELF\linearized_table_function.source.range), - es_numbers)); - WR4: NOT ((symmetry = symmetry_type.hermitian) OR (symmetry = symmetry_type.skew_hermitian)) OR ( - (space_dimension(SELF\linearized_table_function.source.range) = 1) AND - subspace_of_es(factor1(SELF\linearized_table_function.source.range), - es_complex_numbers)); -END_ENTITY; -(* USED FROM (mathematical_functions_schema); *) -ENTITY symmetric_banded_matrix - SUBTYPE OF (symmetric_matrix); - default_entry : maths_value; - above : nonnegative_integer; -WHERE - WR1: member_of(default_entry, - factor1(SELF\linearized_table_function.source.range)); -END_ENTITY; -(* USED FROM (mathematical_functions_schema); *) -ENTITY banded_matrix - SUBTYPE OF (linearized_table_function); - default_entry : maths_value; - below : integer; - above : integer; - order : ordering_type; -WHERE - WR1: SIZEOF (self\explicit_table_function.shape) = 2; - WR2: -below <= above; - WR3: member_of(default_entry, - factor1(SELF\linearized_table_function.source.range)); -END_ENTITY; -(* USED FROM (shape_data_quality_inspection_result_schema); *) - ENTITY plane_angle_and_length_pair - SUBTYPE OF(founded_item); - plane_angle_value : plane_angle_measure; - length_value : length_measure; - END_ENTITY; -(* USED FROM (shape_data_quality_inspection_result_schema); *) - ENTITY b_spline_surface_knot_locator - SUBTYPE OF(founded_item); - basis_surface : b_spline_surface; - knot_index : INTEGER; - surface_parameter : u_or_v_parameter; - WHERE - WR1 : SIZEOF( - using_representations(SELF.basis_surface) * - relating_shape_representations_of_extreme_values(SELF))>0; - END_ENTITY; -(* USED FROM (mathematical_functions_schema); *) -ENTITY general_linear_function - SUBTYPE OF (maths_function, unary_generic_expression); - SELF\unary_generic_expression.operand : maths_function; - sum_index : one_or_two; -DERIVE - mat : maths_function := SELF\unary_generic_expression.operand; -WHERE - WR1: function_is_2d_table(mat); - WR2: (space_dimension(mat.range) = 1) AND - subspace_of_es(factor1(mat.range),es_numbers); -END_ENTITY; -(* USED FROM (shape_data_quality_inspection_result_schema); *) - ENTITY b_spline_surface_patch - SUBTYPE OF(founded_item); - basis_surface : b_spline_surface; - u_start_knot_index : INTEGER; - v_start_knot_index : INTEGER; - WHERE - WR1 : SIZEOF( - using_representations(SELF.basis_surface) * - relating_shape_representations_of_extreme_values(SELF))>0; - END_ENTITY; - -(* Implicit interfaced from: topology_schema *) - 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 ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ORIENTED_OPEN_SHELL' - IN TYPEOF (SELF.open_shell_element)); - END_ENTITY; - -(* Implicit interfaced from: topology_schema *) - 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 ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ORIENTED_PATH' IN TYPEOF (SELF.path_element)); - END_ENTITY; - -(* Implicit interfaced from: product_concept_schema *) -ENTITY concept_feature_relationship_with_condition - SUBTYPE OF (concept_feature_relationship); - conditional_operator : concept_feature_operator; -END_ENTITY; - -(* Implicit interfaced from: solid_shape_element_schema *) -ENTITY solid_with_hole - ABSTRACT SUPERTYPE OF ( - SOLID_WITH_STEPPED_ROUND_HOLE) - SUBTYPE OF (solid_with_depression); -END_ENTITY; - -(* Implicit interfaced from: solid_shape_element_schema *) -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(('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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; - -(* Implicit interfaced from: state_type_schema *) -ENTITY state_type_role; - name : label; - description : OPTIONAL text; -END_ENTITY; - -(* Implicit interfaced from: solid_shape_element_schema *) -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; -(* USED FROM (mathematical_functions_schema); *) -ENTITY expression_denoted_function - SUBTYPE OF (maths_function, unary_generic_expression); -DERIVE - expr : generic_expression := SELF\unary_generic_expression.operand; -WHERE - WR1: (schema_prefix + 'FUNCTION_SPACE') IN TYPEOF (values_space_of(expr)); -END_ENTITY; -(* USED FROM (mathematical_functions_schema); *) -ENTITY imported_point_function - SUBTYPE OF (maths_function, generic_literal); - geometry : point; -END_ENTITY; -(* USED FROM (mathematical_functions_schema); *) -ENTITY imported_curve_function - SUBTYPE OF (maths_function, generic_literal); - geometry : curve; - parametric_domain : tuple_space; -WHERE - WR1: expression_is_constant(parametric_domain); -END_ENTITY; -(* USED FROM (mathematical_functions_schema); *) -ENTITY imported_surface_function - SUBTYPE OF (maths_function, generic_literal); - geometry : surface; - parametric_domain : tuple_space; -WHERE - WR1: expression_is_constant(parametric_domain); -END_ENTITY; -(* USED FROM (mathematical_functions_schema); *) -ENTITY imported_volume_function - SUBTYPE OF (maths_function, generic_literal); - geometry : volume; - parametric_domain : tuple_space; -WHERE - WR1: expression_is_constant(parametric_domain); -END_ENTITY; -(* USED FROM (mathematical_functions_schema); *) -ENTITY application_defined_function - SUPERTYPE OF (ONEOF ( - MESH_FUNCTION, - MESH_FUNCTION_BASIS) ) - SUBTYPE OF (maths_function); - explicit_domain : tuple_space; - explicit_range : tuple_space; - parameters : LIST OF maths_value; -WHERE - WR1: expression_is_constant(explicit_domain); - WR2: expression_is_constant(explicit_range); -END_ENTITY; -(* USED FROM (mathematical_functions_schema); *) -ENTITY mathematical_description; - described : maths_expression; - describing : STRING; - encoding : label; -END_ENTITY; -(* USED FROM (shape_data_quality_inspection_result_schema); *) - ENTITY b_spline_surface_strip - SUBTYPE OF(founded_item); - basis_surface : b_spline_surface; - start_knot_index : INTEGER; - surface_parameter : u_or_v_parameter; - WHERE - WR1 : SIZEOF( - using_representations(SELF.basis_surface) * - relating_shape_representations_of_extreme_values(SELF))>0; - END_ENTITY; -(* USED FROM (iso13584_generic_expressions_schema); *) -ENTITY simple_generic_expression - ABSTRACT SUPERTYPE OF (ONEOF ( - GENERIC_LITERAL, - GENERIC_VARIABLE)) - -SUBTYPE OF (generic_expression); -END_ENTITY; -(* USED FROM (iso13584_generic_expressions_schema); *) -ENTITY generic_literal - ABSTRACT SUPERTYPE - -SUBTYPE OF (simple_generic_expression); -END_ENTITY; -(* USED FROM (iso13584_generic_expressions_schema); *) -ENTITY generic_variable - ABSTRACT SUPERTYPE - -SUBTYPE OF (simple_generic_expression); -INVERSE - interpretation : - environment FOR syntactic_representation; -END_ENTITY; -(* USED FROM (iso13584_generic_expressions_schema); *) -ENTITY variable_semantics - ABSTRACT SUPERTYPE; -END_ENTITY; -(* USED FROM (iso13584_generic_expressions_schema); *) -ENTITY environment; - syntactic_representation: generic_variable; - semantics: variable_semantics; -END_ENTITY; -(* USED FROM (iso13584_generic_expressions_schema); *) -ENTITY unary_generic_expression - ABSTRACT SUPERTYPE OF (ONEOF ( - MESH_FUNCTION, - MESH_FUNCTION_BASIS) ) - -SUBTYPE OF(generic_expression); - operand: generic_expression; -END_ENTITY; -(* USED FROM (iso13584_generic_expressions_schema); *) -ENTITY binary_generic_expression - ABSTRACT SUPERTYPE - -SUBTYPE OF(generic_expression); - operands: LIST [2:2] OF generic_expression; -END_ENTITY; -(* USED FROM (iso13584_generic_expressions_schema); *) -ENTITY multiple_arity_generic_expression - ABSTRACT SUPERTYPE - -SUBTYPE OF(generic_expression); - operands: LIST [2:?] OF generic_expression; -END_ENTITY; -(* USED FROM (iso13584_expressions_schema); *) -ENTITY expression - ABSTRACT SUPERTYPE OF (ONEOF ( - NUMERIC_EXPRESSION, - BOOLEAN_EXPRESSION, - STRING_EXPRESSION)) - -SUBTYPE OF (generic_expression); -END_ENTITY; -(* USED FROM (iso13584_expressions_schema); *) -ENTITY variable - ABSTRACT SUPERTYPE OF (ONEOF ( - NUMERIC_VARIABLE, - BOOLEAN_VARIABLE, - STRING_VARIABLE)) - -SUBTYPE OF(generic_variable); -END_ENTITY; -(* USED FROM (iso13584_expressions_schema); *) -ENTITY defined_function - ABSTRACT SUPERTYPE OF ((ONEOF ( - NUMERIC_DEFINED_FUNCTION, - STRING_DEFINED_FUNCTION, - BOOLEAN_DEFINED_FUNCTION)) - ANDOR - SQL_MAPPABLE_DEFINED_FUNCTION); -END_ENTITY; -(* USED FROM (iso13584_expressions_schema); *) -ENTITY SQL_mappable_defined_function - ABSTRACT SUPERTYPE - -SUBTYPE OF (defined_function); -END_ENTITY; -(* USED FROM (iso13584_expressions_schema); *) -ENTITY numeric_expression - ABSTRACT SUPERTYPE OF (ONEOF ( - SIMPLE_NUMERIC_EXPRESSION, - UNARY_NUMERIC_EXPRESSION, - BINARY_NUMERIC_EXPRESSION, - MULTIPLE_ARITY_NUMERIC_EXPRESSION, - LENGTH_FUNCTION, - VALUE_FUNCTION, - NUMERIC_DEFINED_FUNCTION)) - -SUBTYPE OF (expression); -DERIVE - is_int: BOOLEAN := is_int_expr (SELF); - sql_mappable: BOOLEAN := is_SQL_mappable (SELF); -END_ENTITY; -(* USED FROM (iso13584_expressions_schema); *) -ENTITY simple_numeric_expression - ABSTRACT SUPERTYPE OF (ONEOF ( - LITERAL_NUMBER, - NUMERIC_VARIABLE)) - -SUBTYPE OF (numeric_expression, simple_generic_expression); -END_ENTITY; -(* USED FROM (iso13584_expressions_schema); *) -ENTITY literal_number - ABSTRACT SUPERTYPE OF (ONEOF ( - INT_LITERAL, - REAL_LITERAL)) - -SUBTYPE OF (simple_numeric_expression, generic_literal); - the_value: NUMBER; -END_ENTITY; -(* USED FROM (iso13584_expressions_schema); *) -ENTITY int_literal -SUBTYPE OF (literal_number); - SELF\literal_number.the_value: INTEGER; -END_ENTITY; -(* USED FROM (iso13584_expressions_schema); *) -ENTITY real_literal -SUBTYPE OF (literal_number); - SELF\literal_number.the_value: REAL; -END_ENTITY; -(* USED FROM (iso13584_expressions_schema); *) -ENTITY numeric_variable -SUPERTYPE OF (ONEOF ( - INT_NUMERIC_VARIABLE, - REAL_NUMERIC_VARIABLE)) - -SUBTYPE OF (simple_numeric_expression, variable); -WHERE - WR1: ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.INT_NUMERIC_VARIABLE' - IN TYPEOF(SELF) ) OR - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.REAL_NUMERIC_VARIABLE' - IN TYPEOF(SELF) ); -END_ENTITY; -(* USED FROM (iso13584_expressions_schema); *) -ENTITY int_numeric_variable -SUBTYPE OF (numeric_variable); -END_ENTITY; -(* USED FROM (iso13584_expressions_schema); *) -ENTITY real_numeric_variable -SUBTYPE OF (numeric_variable); -END_ENTITY; -(* USED FROM (iso13584_expressions_schema); *) -(* Pruned SUPERTYPE *) -ENTITY unary_numeric_expression - ABSTRACT SUPERTYPE - -SUBTYPE OF (numeric_expression, unary_generic_expression); - SELF\unary_generic_expression.operand : numeric_expression; -END_ENTITY; -(* USED FROM (iso13584_expressions_schema); *) -ENTITY binary_numeric_expression - ABSTRACT SUPERTYPE OF (ONEOF ( - MINUS_EXPRESSION, - DIV_EXPRESSION, - MOD_EXPRESSION, - SLASH_EXPRESSION, - POWER_EXPRESSION, - BINARY_FUNCTION_CALL)) - -SUBTYPE OF (numeric_expression, binary_generic_expression); - SELF\binary_generic_expression.operands : LIST [2:2] OF - numeric_expression; -END_ENTITY; -(* USED FROM (iso13584_expressions_schema); *) -ENTITY multiple_arity_numeric_expression - ABSTRACT SUPERTYPE OF (ONEOF ( - PLUS_EXPRESSION, - MULT_EXPRESSION, - MULTIPLE_ARITY_FUNCTION_CALL)) - -SUBTYPE OF (numeric_expression, multiple_arity_generic_expression); - SELF\multiple_arity_generic_expression.operands : LIST [2:?] OF numeric_expression; -END_ENTITY; -(* USED FROM (iso13584_expressions_schema); *) -ENTITY length_function -SUBTYPE OF (numeric_expression, unary_generic_expression); - SELF\unary_generic_expression.operand: string_expression; -END_ENTITY; -(* USED FROM (iso13584_expressions_schema); *) -ENTITY value_function -SUPERTYPE OF ( - INT_VALUE_FUNCTION) - -SUBTYPE OF (numeric_expression, unary_generic_expression); - SELF\unary_generic_expression.operand: string_expression; -END_ENTITY; -(* USED FROM (iso13584_expressions_schema); *) -ENTITY int_value_function -SUBTYPE OF (value_function); -END_ENTITY; -(* USED FROM (iso13584_expressions_schema); *) -ENTITY numeric_defined_function - ABSTRACT SUPERTYPE OF (ONEOF ( - INTEGER_DEFINED_FUNCTION, - REAL_DEFINED_FUNCTION)) - -SUBTYPE OF (numeric_expression, defined_function); -END_ENTITY; -(* USED FROM (iso13584_expressions_schema); *) -ENTITY plus_expression -SUBTYPE OF (multiple_arity_numeric_expression); -END_ENTITY; -(* USED FROM (iso13584_expressions_schema); *) -ENTITY minus_expression -SUBTYPE OF (binary_numeric_expression); -END_ENTITY; -(* USED FROM (iso13584_expressions_schema); *) -ENTITY mult_expression -SUBTYPE OF (multiple_arity_numeric_expression); -END_ENTITY; -(* USED FROM (iso13584_expressions_schema); *) -ENTITY div_expression -SUBTYPE OF (binary_numeric_expression); -END_ENTITY; -(* USED FROM (iso13584_expressions_schema); *) -ENTITY mod_expression -SUBTYPE OF (binary_numeric_expression); -END_ENTITY; -(* USED FROM (iso13584_expressions_schema); *) -ENTITY slash_expression -SUBTYPE OF (binary_numeric_expression); -END_ENTITY; -(* USED FROM (iso13584_expressions_schema); *) -ENTITY power_expression -SUBTYPE OF (binary_numeric_expression); -END_ENTITY; -(* USED FROM (iso13584_expressions_schema); *) -ENTITY unary_function_call - ABSTRACT SUPERTYPE OF (ONEOF ( - ABS_FUNCTION, - MINUS_FUNCTION, - SIN_FUNCTION, - COS_FUNCTION, - TAN_FUNCTION, - ASIN_FUNCTION, - ACOS_FUNCTION, - EXP_FUNCTION, - LOG_FUNCTION, - LOG2_FUNCTION, - LOG10_FUNCTION, - SQUARE_ROOT_FUNCTION)) - -SUBTYPE OF (unary_numeric_expression); -END_ENTITY; -(* USED FROM (iso13584_expressions_schema); *) -(* Pruned SUPERTYPE *) -ENTITY binary_function_call - ABSTRACT SUPERTYPE - -SUBTYPE OF (binary_numeric_expression); -END_ENTITY; -(* USED FROM (iso13584_expressions_schema); *) -ENTITY multiple_arity_function_call - ABSTRACT SUPERTYPE OF (ONEOF ( - MAXIMUM_FUNCTION, - MINIMUM_FUNCTION)) - -SUBTYPE OF (multiple_arity_numeric_expression); -END_ENTITY; -(* USED FROM (iso13584_expressions_schema); *) -ENTITY abs_function -SUBTYPE OF (unary_function_call); -END_ENTITY; -(* USED FROM (iso13584_expressions_schema); *) -ENTITY minus_function -SUBTYPE OF (unary_function_call); -END_ENTITY; -(* USED FROM (iso13584_expressions_schema); *) -ENTITY sin_function -SUBTYPE OF (unary_function_call); -END_ENTITY; -(* USED FROM (iso13584_expressions_schema); *) -ENTITY cos_function -SUBTYPE OF (unary_function_call); -END_ENTITY; -(* USED FROM (iso13584_expressions_schema); *) -ENTITY tan_function -SUBTYPE OF (unary_function_call); -END_ENTITY; -(* USED FROM (iso13584_expressions_schema); *) -ENTITY asin_function - SUBTYPE OF (unary_function_call); -END_ENTITY; -(* USED FROM (iso13584_expressions_schema); *) -ENTITY acos_function -SUBTYPE OF (unary_function_call); -END_ENTITY; -(* USED FROM (iso13584_expressions_schema); *) -ENTITY exp_function -SUBTYPE OF (unary_function_call); -END_ENTITY; -(* USED FROM (iso13584_expressions_schema); *) -ENTITY log_function -SUBTYPE OF (unary_function_call); -END_ENTITY; -(* USED FROM (iso13584_expressions_schema); *) -ENTITY log2_function -SUBTYPE OF (unary_function_call); -END_ENTITY; -(* USED FROM (iso13584_expressions_schema); *) -ENTITY log10_function -SUBTYPE OF (unary_function_call); -END_ENTITY; -(* USED FROM (iso13584_expressions_schema); *) -ENTITY square_root_function -SUBTYPE OF (unary_function_call); -END_ENTITY; -(* USED FROM (iso13584_expressions_schema); *) -ENTITY atan_function -SUBTYPE OF (binary_function_call); -END_ENTITY; -(* USED FROM (iso13584_expressions_schema); *) -ENTITY maximum_function -SUBTYPE OF (multiple_arity_function_call); -END_ENTITY; -(* USED FROM (iso13584_expressions_schema); *) -ENTITY minimum_function -SUBTYPE OF (multiple_arity_function_call); -END_ENTITY; -(* USED FROM (iso13584_expressions_schema); *) -ENTITY integer_defined_function - ABSTRACT SUPERTYPE - -SUBTYPE OF (numeric_defined_function); -END_ENTITY ; -(* USED FROM (iso13584_expressions_schema); *) -ENTITY real_defined_function - ABSTRACT SUPERTYPE - -SUBTYPE OF (numeric_defined_function); -END_ENTITY ; -(* USED FROM (iso13584_expressions_schema); *) -ENTITY boolean_expression - ABSTRACT SUPERTYPE OF (ONEOF ( - SIMPLE_BOOLEAN_EXPRESSION, - UNARY_BOOLEAN_EXPRESSION, - BINARY_BOOLEAN_EXPRESSION, - MULTIPLE_ARITY_BOOLEAN_EXPRESSION, - COMPARISON_EXPRESSION, - INTERVAL_EXPRESSION, - BOOLEAN_DEFINED_FUNCTION)) - -SUBTYPE OF (expression); -END_ENTITY; -(* USED FROM (iso13584_expressions_schema); *) -ENTITY simple_boolean_expression - ABSTRACT SUPERTYPE OF (ONEOF ( - BOOLEAN_LITERAL, - BOOLEAN_VARIABLE)) - -SUBTYPE OF (boolean_expression, simple_generic_expression); -END_ENTITY; -(* USED FROM (iso13584_expressions_schema); *) -ENTITY boolean_literal -SUBTYPE OF (simple_Boolean_expression, generic_literal); - the_value: BOOLEAN; -END_ENTITY; -(* USED FROM (iso13584_expressions_schema); *) -ENTITY boolean_variable -SUBTYPE OF (simple_Boolean_expression, variable); -END_ENTITY; -(* USED FROM (iso13584_expressions_schema); *) -ENTITY unary_boolean_expression - ABSTRACT SUPERTYPE OF (ONEOF ( - NOT_EXPRESSION, - ODD_FUNCTION)) - -SUBTYPE OF (boolean_expression, unary_generic_expression); -END_ENTITY; -(* USED FROM (iso13584_expressions_schema); *) -ENTITY not_expression -SUBTYPE OF (unary_Boolean_expression); -SELF\unary_generic_expression.operand: boolean_expression; -END_ENTITY; -(* USED FROM (iso13584_expressions_schema); *) -ENTITY odd_function -SUBTYPE OF (unary_Boolean_expression); - SELF\unary_generic_expression.operand: numeric_expression; -WHERE - WR1: is_int_expr(operand); -END_ENTITY; -(* USED FROM (iso13584_expressions_schema); *) -ENTITY binary_boolean_expression - ABSTRACT SUPERTYPE OF (ONEOF ( - XOR_EXPRESSION, - EQUALS_EXPRESSION)) - -SUBTYPE OF (boolean_expression, binary_generic_expression); -END_ENTITY; -(* USED FROM (iso13584_expressions_schema); *) -ENTITY multiple_arity_boolean_expression - ABSTRACT SUPERTYPE OF (ONEOF ( - AND_EXPRESSION, - OR_EXPRESSION)) - -SUBTYPE OF (boolean_expression, multiple_arity_generic_expression); - SELF\multiple_arity_generic_expression.operands : -LIST [2:?] OF boolean_expression; -END_ENTITY; -(* USED FROM (iso13584_expressions_schema); *) -ENTITY xor_expression -SUBTYPE OF (binary_boolean_expression); - SELF\binary_generic_expression.operands: - LIST [2:2] OF boolean_expression; -END_ENTITY; -(* USED FROM (iso13584_expressions_schema); *) -ENTITY equals_expression -SUBTYPE OF (binary_boolean_expression); -END_ENTITY; -(* USED FROM (iso13584_expressions_schema); *) -ENTITY and_expression -SUBTYPE OF (multiple_arity_boolean_expression); -END_ENTITY; -(* USED FROM (iso13584_expressions_schema); *) -ENTITY or_expression -SUBTYPE OF (multiple_arity_boolean_expression); -END_ENTITY; -(* USED FROM (iso13584_expressions_schema); *) -ENTITY comparison_expression - ABSTRACT SUPERTYPE OF (ONEOF ( - COMPARISON_EQUAL, - COMPARISON_GREATER, - COMPARISON_GREATER_EQUAL, - COMPARISON_LESS, - COMPARISON_LESS_EQUAL, - COMPARISON_NOT_EQUAL, - LIKE_EXPRESSION)) - -SUBTYPE OF (boolean_expression, binary_generic_expression); - SELF\binary_generic_expression.operands : LIST [2:2] OF expression; -WHERE - WR1: (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.NUMERIC_EXPRESSION' -IN TYPEOF(SELF\binary_generic_expression.operands[1])) - AND - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.NUMERIC_EXPRESSION' -IN TYPEOF(SELF\binary_generic_expression.operands[2]))) -OR - (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.BOOLEAN_EXPRESSION' -IN TYPEOF(SELF\binary_generic_expression.operands[1])) - AND - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.BOOLEAN_EXPRESSION' - IN TYPEOF(SELF\binary_generic_expression.operands[2]))) -OR -(('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.STRING_EXPRESSION' -IN TYPEOF(SELF\binary_generic_expression.operands[1])) - AND - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.STRING_EXPRESSION' -IN TYPEOF(SELF\binary_generic_expression.operands[2]))) ; -END_ENTITY; -(* USED FROM (iso13584_expressions_schema); *) -ENTITY comparison_equal -SUBTYPE OF (comparison_expression); -END_ENTITY; -(* USED FROM (iso13584_expressions_schema); *) -ENTITY comparison_greater -SUBTYPE OF (comparison_expression); -END_ENTITY; -(* USED FROM (iso13584_expressions_schema); *) -ENTITY comparison_greater_equal -SUBTYPE OF (comparison_expression); -END_ENTITY; -(* USED FROM (iso13584_expressions_schema); *) -ENTITY comparison_less -SUBTYPE OF (comparison_expression); -END_ENTITY; -(* USED FROM (iso13584_expressions_schema); *) -ENTITY comparison_less_equal -SUBTYPE OF (comparison_expression); -END_ENTITY; -(* USED FROM (iso13584_expressions_schema); *) -ENTITY comparison_not_equal - SUBTYPE OF (comparison_expression); -END_ENTITY; -(* USED FROM (iso13584_expressions_schema); *) -ENTITY like_expression -SUBTYPE OF (comparison_expression); -WHERE - WR1: ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.STRING_EXPRESSION' - IN TYPEOF(SELF\binary_generic_expression.operands[1])) AND - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.STRING_EXPRESSION' - IN TYPEOF(SELF\binary_generic_expression.operands[2])); -END_ENTITY; -(* USED FROM (iso13584_expressions_schema); *) -ENTITY interval_expression -SUBTYPE OF (boolean_expression, multiple_arity_generic_expression) ; -DERIVE - interval_low: generic_expression - := SELF\multiple_arity_generic_expression.operands[1]; - interval_item:generic_expression - := SELF\multiple_arity_generic_expression.operands[2]; - interval_high:generic_expression - := SELF\multiple_arity_generic_expression.operands[3]; -WHERE - WR1:('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.EXPRESSION' - IN TYPEOF(interval_low)) - AND ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.EXPRESSION' - IN TYPEOF(interval_item) ) - AND ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.EXPRESSION' - IN TYPEOF(interval_high)); - WR2:(('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.STRING_EXPRESSION' - IN TYPEOF (SELF.interval_low)) - AND ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.STRING_EXPRESSION' - IN TYPEOF (SELF.interval_high)) - AND ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.STRING_EXPRESSION' - IN TYPEOF (SELF.interval_item))) - OR - (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.NUMERIC_EXPRESSION' - IN TYPEOF(SELF.interval_low)) - AND ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.NUMERIC_EXPRESSION' - IN TYPEOF(SELF.interval_item)) - AND ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.NUMERIC_EXPRESSION' - IN TYPEOF(SELF.interval_high))); -END_ENTITY; -(* USED FROM (iso13584_expressions_schema); *) -ENTITY boolean_defined_function - ABSTRACT SUPERTYPE - -SUBTYPE OF (defined_function, boolean_expression); -END_ENTITY ; -(* USED FROM (iso13584_expressions_schema); *) -ENTITY string_expression - ABSTRACT SUPERTYPE OF (ONEOF ( - SIMPLE_STRING_EXPRESSION, - INDEX_EXPRESSION, - SUBSTRING_EXPRESSION, - CONCAT_EXPRESSION, - FORMAT_FUNCTION, - STRING_DEFINED_FUNCTION)) - -SUBTYPE OF (expression); -END_ENTITY; -(* USED FROM (iso13584_expressions_schema); *) -ENTITY simple_string_expression - ABSTRACT SUPERTYPE OF (ONEOF ( - STRING_LITERAL, - STRING_VARIABLE)) - -SUBTYPE OF (string_expression, simple_generic_expression); -END_ENTITY; -(* USED FROM (iso13584_expressions_schema); *) -ENTITY string_literal -SUBTYPE OF (simple_string_expression, generic_literal); - the_value: STRING; -END_ENTITY; -(* USED FROM (iso13584_expressions_schema); *) -ENTITY string_variable -SUBTYPE OF (simple_string_expression, variable); -END_ENTITY; -(* USED FROM (iso13584_expressions_schema); *) -ENTITY index_expression -SUBTYPE OF (string_expression, binary_generic_expression); -DERIVE - operand:generic_expression:= -SELF\binary_generic_expression.operands[1]; - index:generic_expression:= -SELF\binary_generic_expression.operands[2]; -WHERE - WR1: ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.STRING_EXPRESSION' - IN TYPEOF(operand)) - AND ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.NUMERIC_EXPRESSION' - IN TYPEOF(index)); - WR2: is_int_expr (index); -END_ENTITY; -(* USED FROM (iso13584_expressions_schema); *) -ENTITY substring_expression -SUBTYPE OF (string_expression, multiple_arity_generic_expression); -DERIVE - operand:generic_expression:= - SELF\multiple_arity_generic_expression.operands[1]; - index1:generic_expression:= - SELF\multiple_arity_generic_expression.operands[2]; - index2:generic_expression:= - SELF\multiple_arity_generic_expression.operands[3]; -WHERE - WR1: ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.STRING_EXPRESSION' - IN TYPEOF(operand)) - AND ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.NUMERIC_EXPRESSION' - IN TYPEOF(index1)) - AND ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.NUMERIC_EXPRESSION' - IN TYPEOF(index2)); - WR2: SIZEOF(SELF\multiple_arity_generic_expression.operands)=3; - WR3: is_int_expr (index1); - WR4: is_int_expr (index2); -END_ENTITY; -(* USED FROM (iso13584_expressions_schema); *) -ENTITY concat_expression -SUBTYPE OF (string_expression, multiple_arity_generic_expression); - SELF\multiple_arity_generic_expression.operands: - LIST [2 : ?] OF string_expression; -END_ENTITY; -(* USED FROM (iso13584_expressions_schema); *) -ENTITY format_function -SUBTYPE OF (string_expression, binary_generic_expression); -DERIVE - value_to_format: generic_expression:= - SELF\binary_generic_expression.operands[1]; - format_string:generic_expression:= - SELF\binary_generic_expression.operands[2]; -WHERE - WR1: (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.NUMERIC_EXPRESSION') - IN TYPEOF(value_to_format)) - AND (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.STRING_EXPRESSION') - IN TYPEOF(format_string)); -END_ENTITY; -(* USED FROM (iso13584_expressions_schema); *) -ENTITY string_defined_function - ABSTRACT SUPERTYPE - -SUBTYPE OF (defined_function, string_expression); -END_ENTITY ; -(* USED FROM (Collection_identification_and_version_mim); *) -ENTITY collection - SUBTYPE OF (product); -END_ENTITY; -(* USED FROM (Collection_identification_and_version_mim); *) -ENTITY collection_assignment - SUBTYPE OF (applied_group_assignment); -END_ENTITY; -(* USED FROM (Collection_identification_and_version_mim); *) -ENTITY collection_membership - SUBTYPE OF (applied_group_assignment); -END_ENTITY; -(* USED FROM (Collection_identification_and_version_mim); *) -ENTITY collection_relationship - SUBTYPE OF (product_relationship); - SELF\product_relationship.relating_product : collection; -- relating_collection : This ATTRIBUTE was RENAMED in the EXPRESS E2 source, an attribute with the new name is in the DERIVE clause - SELF\product_relationship.related_product : collection; -- related_collection : This ATTRIBUTE was RENAMED in the EXPRESS E2 source, an attribute with the new name is in the DERIVE clause - DERIVE - related_collection : COLLECTION := SELF\product_relationship.related_product; -- RELATED_PRODUCT : This ATTRIBUTE was RENAMED in the EXPRESS E2 source, this is the new name implemented as DERIVE - relating_collection : COLLECTION := SELF\product_relationship.relating_product; -- RELATING_PRODUCT : This ATTRIBUTE was RENAMED in the EXPRESS E2 source, this is the new name implemented as DERIVE - -END_ENTITY; -(* USED FROM (Collection_identification_and_version_mim); *) -ENTITY collection_version - SUBTYPE OF (product_definition_formation); - SELF\product_definition_formation.of_product : collection; -- of_collection : This ATTRIBUTE was RENAMED in the EXPRESS E2 source, an attribute with the new name is in the DERIVE clause - DERIVE - of_collection : COLLECTION := SELF\product_definition_formation.of_product; -- OF_PRODUCT : This ATTRIBUTE was RENAMED in the EXPRESS E2 source, this is the new name implemented as DERIVE - -END_ENTITY; -(* USED FROM (Collection_identification_and_version_mim); *) -ENTITY collection_version_relationship - SUBTYPE OF (product_definition_formation_relationship); - SELF\product_definition_formation_relationship.relating_product_definition_formation : collection_version; -- relating_version : This ATTRIBUTE was RENAMED in the EXPRESS E2 source, an attribute with the new name is in the DERIVE clause - SELF\product_definition_formation_relationship.related_product_definition_formation : collection_version; -- related_version : This ATTRIBUTE was RENAMED in the EXPRESS E2 source, an attribute with the new name is in the DERIVE clause - DERIVE - related_version : COLLECTION_VERSION := SELF\product_definition_formation_relationship.related_product_definition_formation; -- RELATED_PRODUCT_DEFINITION_FORMATION : This ATTRIBUTE was RENAMED in the EXPRESS E2 source, this is the new name implemented as DERIVE - relating_version : COLLECTION_VERSION := SELF\product_definition_formation_relationship.relating_product_definition_formation; -- RELATING_PRODUCT_DEFINITION_FORMATION : This ATTRIBUTE was RENAMED in the EXPRESS E2 source, this is the new name implemented as DERIVE - -END_ENTITY; -(* USED FROM (Collection_identification_and_version_mim); *) -ENTITY collection_version_sequence_relationship - SUBTYPE OF (product_definition_formation_relationship); - SELF\product_definition_formation_relationship.relating_product_definition_formation : collection_version; -- predecessor : This ATTRIBUTE was RENAMED in the EXPRESS E2 source, an attribute with the new name is in the DERIVE clause - SELF\product_definition_formation_relationship.related_product_definition_formation : collection_version; -- successor : This ATTRIBUTE was RENAMED in the EXPRESS E2 source, an attribute with the new name is in the DERIVE clause - DERIVE - predecessor : COLLECTION_VERSION := SELF\product_definition_formation_relationship.relating_product_definition_formation; -- RELATING_PRODUCT_DEFINITION_FORMATION : This ATTRIBUTE was RENAMED in the EXPRESS E2 source, this is the new name implemented as DERIVE - successor : COLLECTION_VERSION := SELF\product_definition_formation_relationship.related_product_definition_formation; -- RELATED_PRODUCT_DEFINITION_FORMATION : This ATTRIBUTE was RENAMED in the EXPRESS E2 source, this is the new name implemented as DERIVE - -END_ENTITY; -(* USED FROM (Collection_identification_and_version_mim); *) -ENTITY collection_view_definition - SUBTYPE OF (product_definition); - SELF\product_definition.formation : collection_version; -- defined_version : This ATTRIBUTE was RENAMED in the EXPRESS E2 source, an attribute with the new name is in the DERIVE clause - DERIVE - defined_version : COLLECTION_VERSION := SELF\product_definition.formation; -- FORMATION : This ATTRIBUTE was RENAMED in the EXPRESS E2 source, this is the new name implemented as DERIVE - -END_ENTITY; -(* USED FROM (Mating_structure_mim); *) -ENTITY mated_part_relationship - SUBTYPE OF (group, group_assignment, product_definition_shape, product_definition_relationship, shape_aspect); - items : SET [0:?] OF product_definition; -DERIVE - SELF\group_assignment.assigned_group : mated_part_relationship := SELF; - SELF\property_definition.definition : mated_part_relationship := SELF; - SELF\shape_aspect.of_shape : mated_part_relationship := SELF; -END_ENTITY; -(* USED FROM (explicit_geometric_constraint_schema); *) -ENTITY near_point_relationship - SUBTYPE OF (representation_item_relationship); - SELF\representation_item_relationship.relating_representation_item : - curve_or_surface_constraint_element; - SELF\representation_item_relationship.related_representation_item : - point; -END_ENTITY; -(* USED FROM (Externally_conditioned_data_quality_inspection_result_mim); *) - ENTITY externally_conditioned_data_quality_inspection_result - SUBTYPE OF(data_quality_inspection_result); - WHERE - WR1 : 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.'+ - 'EXTERNALLY_CONDITIONED_DATA_QUALITY_CRITERION' IN TYPEOF - (SELF\data_quality_inspection_result.criterion_inspected); - END_ENTITY; - -(* Implicit interfaced from: solid_shape_element_schema *) -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; -(* USED FROM (Machining_features_mim); *) -ENTITY face_shape_representation_relationship - SUBTYPE OF (representation_relationship); - WHERE - WR1: ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FACE_SHAPE_REPRESENTATION' - IN TYPEOF(SELF.rep_1)); - WR2: ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FACE_SHAPE_REPRESENTATION' - IN TYPEOF(SELF.rep_2)); -END_ENTITY; - -(* Implicit interfaced from: solid_shape_element_schema *) -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; - -(* Implicit interfaced from: solid_shape_element_schema *) -ENTITY edge_blended_solid - ABSTRACT SUPERTYPE OF ( - TRACK_BLENDED_SOLID - ANDOR (ONEOF ( - SOLID_WITH_CONSTANT_RADIUS_EDGE_BLEND, - SOLID_WITH_CHAMFERED_EDGES))) - SUBTYPE OF (modified_solid); - blended_edges : LIST [1:?] OF UNIQUE edge_curve; -END_ENTITY; - -(* Implicit interfaced from: procedural_model_schema *) -ENTITY user_selected_elements - SUBTYPE OF (representation_item); - picked_items : SET[1:?] OF representation_item; -END_ENTITY; -(* USED FROM (explicit_geometric_constraint_schema); *) -ENTITY skew_line_distance_geometric_constraint - SUBTYPE OF (explicit_geometric_constraint); - SELF\explicit_constraint.constrained_elements : SET[1:2] OF line; - SELF\explicit_constraint.reference_elements : SET[0:1] OF line; - distance_value : non_negative_length_measure; -WHERE - WR1: SIZEOF(SELF\explicit_constraint.constrained_elements + - SELF\explicit_constraint.reference_elements) = 2; -END_ENTITY; - -(* Implicit interfaced from: shape_tolerance_schema *) -ENTITY runout_zone_orientation; - angle : plane_angle_measure_with_unit; -END_ENTITY; -(* REFERENCE FROM (procedural_model_schema); *) -ENTITY indirectly_selected_elements - SUBTYPE OF (user_selected_elements); - indirectly_picked_items : SET[1:?] OF representation_item; -END_ENTITY; - -(* Implicit interfaced from: management_resources_schema *) - ENTITY action_method_role; - name : label; - description : OPTIONAL text; - END_ENTITY; - -(* Implicit interfaced from: action_schema *) - ENTITY action_resource_type; - name : label; - END_ENTITY; - -(* Implicit interfaced from: presentation_organization_schema *) - ENTITY camera_model_d2 - SUBTYPE OF (camera_model); - view_window : planar_box; - view_window_clipping : BOOLEAN; - WHERE - WR1: SELF\geometric_representation_item.dim = 2; - END_ENTITY; -(* REFERENCE FROM (mathematical_context_schema); *) -(* Pruned SUPERTYPE *) -ENTITY maths_space_context - ; - id : identifier; - name : label; - description : OPTIONAL text; - abstract_space : maths_space; - physical_space : space_context_select; -END_ENTITY; -(* REFERENCE FROM (mathematical_description_of_distribution_schema); *) -ENTITY property_distribution_description; - id : identifier; - name : label; - description : OPTIONAL text; - abstract_function : maths_function; - domain_context : maths_space_context; - physical_function : property_distribution_select; - range_context : maths_space_context; -END_ENTITY; -(* USED FROM (Process_plan_mim); *) -ENTITY product_definition_resource - SUBTYPE OF (action_resource,product_definition); -WHERE - WR1: SIZEOF( USEDIN(SELF,'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + - 'REQUIREMENT_FOR_ACTION_RESOURCE.RESOURCES') - ) > 0; - - WR2: SELF.frame_of_reference.name IN - ['part_definition','part occurrence','physical occurrence']; - -END_ENTITY; -(* REFERENCE FROM (document_schema); *) - ENTITY document_usage_constraint; - source : document; - subject_element : label; - subject_element_value : text; - END_ENTITY; -(* USED FROM (Constructive_solid_geometry_2d_mim); *) - ENTITY boolean_result_2d - SUBTYPE OF (boolean_result); - SELF\boolean_result.first_operand : boolean_operand_2d; - SELF\boolean_result.second_operand : boolean_operand_2d; - END_ENTITY; -(* USED FROM (Constructive_solid_geometry_2d_mim); *) - ENTITY closed_curve_style_parameters - SUBTYPE OF(curve_style_parameters_representation); - END_ENTITY; -(* USED FROM (Constructive_solid_geometry_2d_mim); *) - ENTITY complex_area - ABSTRACT SUPERTYPE OF ( - PATH_AREA_WITH_PARAMETERS - ANDOR - PRIMITIVE_2D_WITH_INNER_BOUNDARY) - SUBTYPE OF (primitive_2d); - END_ENTITY; -(* USED FROM (Constructive_solid_geometry_2d_mim); *) - ENTITY csg_primitive_solid_2d - SUBTYPE OF (csg_solid_2d); - SELF\csg_solid.tree_root_expression : bounded_primitive_2d; - END_ENTITY; -(* USED FROM (explicit_geometric_constraint_schema); *) -ENTITY cdgc_with_dimension - SUBTYPE OF (curve_distance_geometric_constraint); - distance_value : non_negative_length_measure; -END_ENTITY; - -(* Implicit interfaced from: geometry_schema *) -ENTITY cartesian_transformation_operator - SUPERTYPE OF (ONEOF ( - CARTESIAN_TRANSFORMATION_OPERATOR_2D, - CARTESIAN_TRANSFORMATION_OPERATOR_3D)) - SUBTYPE OF (functionally_defined_transformation, geometric_representation_item); - 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; -(* USED FROM (Constructive_solid_geometry_2d_mim); *) -ENTITY curve_style_parameters_representation - SUBTYPE OF(representation); -END_ENTITY; -(* USED FROM (Constructive_solid_geometry_2d_mim); *) -ENTITY curve_style_parameters_with_ends - SUBTYPE OF(curve_style_parameters_representation); -END_ENTITY; -(* USED FROM (Constructive_solid_geometry_2d_mim); *) -ENTITY path_area_with_parameters - SUBTYPE OF (complex_area, mapped_item); - WHERE - WR1: 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CURVE' IN TYPEOF(SELF\mapped_item.mapping_target); - -- the mapping source must be a curve (open or closed) - -- no the mapping target must be a curve (open or closed) - --wr2: -- the mapping_source.mapped_representation must be curve_style_parameters_representation; - WR2: 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CURVE_STYLE_PARAMETERS_REPRESENTATION' IN TYPEOF(SELF\mapped_item.mapping_source\representation_map.mapped_representation); - WR3: SELF\mapped_item.mapping_source\representation_map.mapping_origin\representation_item.name = 'curve width'; - --don't reall care on mapping_source.mapping_origin. Best to make it the line-width -END_ENTITY; -(* USED FROM (explicit_geometric_constraint_schema); *) -ENTITY sdgc_with_dimension - SUBTYPE OF (surface_distance_geometric_constraint); - distance_value : non_negative_length_measure; -END_ENTITY; -(* USED FROM (explicit_geometric_constraint_schema); *) -ENTITY radius_geometric_constraint - SUBTYPE OF (explicit_geometric_constraint); - SELF\explicit_constraint.constrained_elements : - SET[1:?] OF radial_geometry_constraint_element; -WHERE - WR1: SIZEOF(SELF\explicit_constraint.reference_elements) = 0; -END_ENTITY; -(* USED FROM (person_organization_schema); *) - 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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'ID_ATTRIBUTE.IDENTIFIED_ITEM')) <= 1; - END_ENTITY; -(* USED FROM (Product_as_individual_assembly_and_test_mim); *) -ENTITY evaluated_characteristic_of_product_as_individual_test_result - SUBTYPE OF (evaluated_characteristic); -END_ENTITY; -(* USED FROM (Characterized_representation_mim); *) -ENTITY characterized_representation - SUBTYPE OF (representation, characterized_object); -DERIVE - SELF\characterized_object.name : label := SELF\representation.name; - SELF\characterized_object.description : text := SELF\representation.description; -END_ENTITY; -(* USED FROM (Composite_material_aspects_mim); *) - ENTITY composite_material_designation - SUBTYPE OF (material_designation); - END_ENTITY; -(* USED FROM (explicit_geometric_constraint_schema); *) -ENTITY rgc_with_dimension - SUBTYPE OF (radius_geometric_constraint); - radius_value : positive_length_measure; -END_ENTITY; -(* USED FROM (person_organization_schema); *) - ENTITY organizational_project_relationship; - name : label; - description : OPTIONAL text; - relating_organizational_project : organizational_project; - related_organizational_project : organizational_project; - END_ENTITY; -(* USED FROM (management_resources_schema); *) - ENTITY organizational_project_assignment - ABSTRACT SUPERTYPE; - assigned_organizational_project : organizational_project; - role : organizational_project_role; - END_ENTITY; -(* USED FROM (management_resources_schema); *) - ENTITY event_occurrence_assignment - ABSTRACT SUPERTYPE; - assigned_event_occurrence : event_occurrence; - role : event_occurrence_role; - END_ENTITY; -(* USED FROM (Dimension_and_tolerance_callouts_mim); *) -ENTITY dimension_curve_terminator_to_projection_curve_associativity - SUBTYPE OF(annotation_occurrence_associativity); - SELF\annotation_occurrence_relationship.relating_annotation_occurrence : dimension_curve_terminator; - SELF\annotation_occurrence_relationship.related_annotation_occurrence : projection_curve; -END_ENTITY; -(* USED FROM (Event_assignment_mim); *) -ENTITY applied_event_occurrence_assignment - SUBTYPE OF (event_occurrence_assignment); - items : SET[1:?] OF event_occurrence_item; -END_ENTITY; -(* USED FROM (Drawing_definition_mim); *) -ENTITY drawing_sheet_layout - SUBTYPE OF (draughting_symbol_representation); -END_ENTITY; -(* USED FROM (External_currency_mim); *) - ENTITY externally_defined_currency - SUBTYPE OF (currency, externally_defined_context_dependent_unit); - END_ENTITY; -(* USED FROM (External_representation_item_mim); *) - ENTITY externally_defined_representation_item - SUBTYPE OF (representation_item, externally_defined_item); - END_ENTITY; -(* USED FROM (External_representation_item_mim); *) - ENTITY externally_defined_string - SUBTYPE OF (externally_defined_representation_item); - END_ENTITY; -(* USED FROM (External_representation_item_mim); *) - ENTITY externally_defined_representation - SUBTYPE OF (representation, externally_defined_item); - SELF\representation.items : SET [1:?] OF externally_defined_representation_item; - END_ENTITY; -(* USED FROM (Geometric_tolerance_mim); *) -ENTITY feature_for_datum_target_relationship - SUBTYPE OF (shape_aspect_relationship); - SELF\shape_aspect_relationship.related_shape_aspect : datum_target; -UNIQUE - UR1: related_shape_aspect; -WHERE - WR1: relating_shape_aspect.of_shape :=: related_shape_aspect.of_shape; - WR2: relating_shape_aspect\shape_aspect.product_definitional = TRUE; -END_ENTITY; -(* USED FROM (explicit_geometric_constraint_schema); *) -ENTITY pogc_with_dimension - SUBTYPE OF (parallel_offset_geometric_constraint); - offset_value : positive_length_measure; - offset_direction_constrained : BOOLEAN; -WHERE - WR1: (SIZEOF(SELF\explicit_constraint.reference_elements) = 1) - OR (SIZEOF(SELF\explicit_constraint.constrained_elements) = 2); - WR2: (NOT (offset_direction_constrained = TRUE) - AND ((offset_type = curve_2d_offset) - OR (offset_type = surface_offset))); -END_ENTITY; -(* USED FROM (kinematic_property_schema); *) -ENTITY kinematic_property_definition_representation - ABSTRACT SUPERTYPE OF (ONEOF ( - KINEMATIC_PROPERTY_TOPOLOGY_REPRESENTATION, - KINEMATIC_PROPERTY_MECHANISM_REPRESENTATION)) - SUBTYPE OF (property_definition_representation); - SELF\property_definition_representation.definition : product_definition_kinematics; -END_ENTITY; -(* USED FROM (Mechanical_design_presentation_representation_with_draughting_mim); *) - ENTITY mechanical_design_presentation_representation_with_draughting - SUBTYPE of (representation); - SELF\representation.items : SET[1:?] OF camera_model_d3; - END_ENTITY; -(* USED FROM (Mechanical_design_presentation_representation_with_draughting_mim); *) - 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('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.'+'DRAUGHTING_MODEL' IN TYPEOF(rep_2)) OR - (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.'+'DRAUGHTING_MODEL' IN TYPEOF(rep_1)) OR - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.'+'SHAPE_REPRESENTATION' IN TYPEOF(rep_1))); - WR2: NOT('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.'+'MECHANICAL_DESIGN_GEOMETRIC_PRESENTATION_REPRESENTATION' IN TYPEOF(rep_2)) OR - (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.'+'MECHANICAL_DESIGN_GEOMETRIC_PRESENTATION_REPRESENTATION' IN TYPEOF(rep_1)) OR - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.'+'SHAPE_REPRESENTATION' IN TYPEOF(rep_1))); - WR3: NOT('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.'+'MECHANICAL_DESIGN_SHADED_PRESENTATION_REPRESENTATION' IN TYPEOF(rep_2)) OR - (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.'+'MECHANICAL_DESIGN_SHADED_PRESENTATION_REPRESENTATION' IN TYPEOF(rep_1)) OR - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.'+'SHAPE_REPRESENTATION' IN TYPEOF(rep_1))); - END_ENTITY; -(* USED FROM (kinematic_property_schema); *) -ENTITY kinematic_property_topology_representation - SUBTYPE OF (kinematic_property_definition_representation); - SELF\property_definition_representation.used_representation : kinematic_topology_representation_select; - base : kinematic_link; -WHERE - WR1: used_representation IN using_representations(base); -END_ENTITY; -(* USED FROM (Part_and_zone_laminate_tables_mim); *) - ENTITY composite_assembly_table - SUBTYPE OF (part_laminate_table); - END_ENTITY; -(* USED FROM (Part_and_zone_laminate_tables_mim); *) - ENTITY laminate_table - SUPERTYPE OF (ONEOF ( - PART_LAMINATE_TABLE, - ZONE_STRUCTURAL_MAKEUP)) - SUBTYPE OF (product_definition); - END_ENTITY; -(* USED FROM (Part_and_zone_laminate_tables_mim); *) - ENTITY part_laminate_table - SUPERTYPE OF (ONEOF ( - COMPOSITE_ASSEMBLY_TABLE, - PLY_LAMINATE_TABLE)) - SUBTYPE OF (laminate_table); - END_ENTITY; -(* USED FROM (Part_and_zone_laminate_tables_mim); *) - ENTITY percentage_laminate_table - SUBTYPE OF (zone_structural_makeup); - END_ENTITY; -(* USED FROM (explicit_geometric_constraint_schema); *) -ENTITY agc_with_dimension - SUBTYPE OF (angle_geometric_constraint); - angle_value : plane_angle_measure; -END_ENTITY; -(* USED FROM (Part_and_zone_laminate_tables_mim); *) - ENTITY ply_laminate_table - SUBTYPE OF (part_laminate_table); - END_ENTITY; -(* USED FROM (Part_and_zone_laminate_tables_mim); *) - ENTITY smeared_material_definition - SUBTYPE OF (zone_structural_makeup); - END_ENTITY; -(* USED FROM (Part_and_zone_laminate_tables_mim); *) - ENTITY thickness_laminate_table - SUBTYPE OF (zone_structural_makeup); - END_ENTITY; -(* USED FROM (Part_and_zone_laminate_tables_mim); *) - 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; -(* USED FROM (Picture_representation_mim); *) - 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; -(* USED FROM (kinematic_topology_schema); *) -ENTITY kinematic_link - SUBTYPE OF (vertex); -END_ENTITY; -(* USED FROM (Picture_representation_mim); *) - ENTITY picture_representation_item - ABSTRACT SUPERTYPE OF (ONEOF ( - EXTERNALLY_DEFINED_PICTURE_REPRESENTATION_ITEM, - PREDEFINED_PICTURE_REPRESENTATION_ITEM)) - SUBTYPE OF (bytes_representation_item); - END_ENTITY; -(* USED FROM (Picture_representation_mim); *) - ENTITY predefined_picture_representation_item - SUBTYPE OF (picture_representation_item); - WHERE - WR1: SELF\representation_item.name IN pre_defined_picture_representation_types; - END_ENTITY; -(* USED FROM (Planned_characteristic_mim); *) -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; -(* USED FROM (Planned_characteristic_mim); *) -ENTITY evaluation_product_definition - SUBTYPE OF (product_definition); -END_ENTITY; -(* USED FROM (Ply_orientation_specification_mim); *) - ENTITY angle_direction_reference - SUBTYPE OF (representation_item_relationship, geometric_representation_item); - SELF\representation_item_relationship.relating_representation_item : orientation_basis_select; - SELF\representation_item_relationship.related_representation_item : angle_direction_reference_select; - WHERE - WR1: ((('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.POINT_PATH' IN TYPEOF(related_representation_item)) AND - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MIN_AND_MAJOR_PLY_ORIENTATION_BASIS' IN TYPEOF(relating_representation_item))) - OR - (NOT('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.POINT_PATH' IN TYPEOF(related_representation_item)) AND - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.AXIS2_PLACEMENT_3D' IN TYPEOF(relating_representation_item)))); - END_ENTITY; -(* USED FROM (Ply_orientation_specification_mim); *) - ENTITY draped_defined_transformation - SUBTYPE OF (transformation_with_derived_angle); - END_ENTITY; -(* USED FROM (Ply_orientation_specification_mim); *) - ENTITY laid_defined_transformation - SUBTYPE OF (transformation_with_derived_angle); - END_ENTITY; -(* USED FROM (Ply_orientation_specification_mim); *) - ENTITY min_and_major_ply_orientation_basis - SUBTYPE OF (representation_item_relationship, geometric_representation_item); - SELF\representation_item_relationship.relating_representation_item : axis2_placement_3d; -- minor_orientation_basis : This ATTRIBUTE was RENAMED in the EXPRESS E2 source, an attribute with the new name is in the DERIVE clause - SELF\representation_item_relationship.related_representation_item : axis2_placement_3d; -- major_orientation_basis : This ATTRIBUTE was RENAMED in the EXPRESS E2 source, an attribute with the new name is in the DERIVE clause - DERIVE - major_orientation_basis : AXIS2_PLACEMENT_3D := SELF\representation_item_relationship.related_representation_item; -- RELATED_REPRESENTATION_ITEM : This ATTRIBUTE was RENAMED in the EXPRESS E2 source, this is the new name implemented as DERIVE - minor_orientation_basis : AXIS2_PLACEMENT_3D := SELF\representation_item_relationship.relating_representation_item; -- RELATING_REPRESENTATION_ITEM : This ATTRIBUTE was RENAMED in the EXPRESS E2 source, this is the new name implemented as DERIVE - - END_ENTITY; -(* USED FROM (Ply_orientation_specification_mim); *) - ENTITY point_and_vector - SUBTYPE OF (compound_representation_item, geometric_representation_item); - SELF\compound_representation_item.item_element : point_and_vector_members; - END_ENTITY; -(* USED FROM (Ply_orientation_specification_mim); *) - ENTITY point_path - SUBTYPE OF (compound_representation_item, geometric_representation_item); - SELF\compound_representation_item.item_element : point_path_members; - END_ENTITY; -(* USED FROM (Ply_orientation_specification_mim); *) - 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; -(* USED FROM (Shape_feature_mim); *) -ENTITY shape_feature_definition - SUBTYPE OF (feature_definition); -END_ENTITY; -(* USED FROM (Shape_feature_mim); *) -ENTITY placed_feature - SUBTYPE OF (shape_aspect); -END_ENTITY; -(* USED FROM (explicit_geometric_constraint_schema); *) -ENTITY curve_smoothness_geometric_constraint - SUBTYPE OF (explicit_geometric_constraint); - SELF\explicit_constraint.constrained_elements : - SET[1:1] OF curve_segment_set; - smoothness : transition_code; -WHERE - WR1: SIZEOF(SELF\explicit_constraint.reference_elements) = 0; -END_ENTITY; -(* USED FROM (explicit_geometric_constraint_schema); *) -ENTITY curve_segment_set - SUBTYPE OF (geometric_representation_item); - segments : SET[1:?] OF composite_curve_segment; -END_ENTITY; -(* USED FROM (kinematic_topology_schema); *) -ENTITY kinematic_topology_network_structure - SUBTYPE OF (representation); - SELF\representation.items : SET[1:?] OF kinematic_loop; - parent : kinematic_topology_structure; -WHERE - WR1: context_of_items :=: parent.context_of_items; - WR2: get_kinematic_joints_from_kinematic_loops(items) <= parent.items; -END_ENTITY; -(* USED FROM (kinematic_topology_schema); *) -ENTITY kinematic_topology_tree_structure - SUBTYPE OF (kinematic_topology_directed_structure); -END_ENTITY; -(* USED FROM (kinematic_topology_schema); *) -ENTITY kinematic_topology_directed_structure - SUBTYPE OF (representation); - SELF\representation.items : SET[1:?] OF oriented_joint; - parent : kinematic_topology_structure; -WHERE - WR1: context_of_items :=: parent.context_of_items; - WR2: get_kinematic_joints_from_oriented_joints(items) <= parent.items; -END_ENTITY; -(* USED FROM (kinematic_topology_schema); *) -ENTITY kinematic_topology_substructure - SUBTYPE OF (kinematic_topology_structure); - parent : kinematic_topology_structure; -WHERE - WR1: context_of_items :=: parent.context_of_items; - WR2: SELF\kinematic_topology_structure.items <= parent\kinematic_topology_structure.items; -END_ENTITY; -(* USED FROM (Change_management_mim); *) -ENTITY change_group - SUBTYPE OF (group); -END_ENTITY; -(* USED FROM (Change_management_mim); *) -ENTITY change_element - ABSTRACT SUPERTYPE OF (ONEOF ( - MODIFY_ELEMENT, - DELETE_ELEMENT, - ADD_ELEMENT)) - SUBTYPE OF (group, characterized_object); -END_ENTITY; -(* USED FROM (Change_management_mim); *) -ENTITY modify_element - SUBTYPE OF (change_element); -END_ENTITY; -(* USED FROM (Change_management_mim); *) -ENTITY delete_element - SUBTYPE OF (change_element); -END_ENTITY; -(* USED FROM (Change_management_mim); *) -ENTITY add_element - SUBTYPE OF (change_element); -END_ENTITY; -(* USED FROM (Change_management_mim); *) -ENTITY change_element_sequence - SUBTYPE OF (group_relationship); - SELF\group_relationship.relating_group : change_element; -- previous : This ATTRIBUTE was RENAMED in the EXPRESS E2 source, an attribute with the new name is in the DERIVE clause - SELF\group_relationship.related_group : change_element; -- next : This ATTRIBUTE was RENAMED in the EXPRESS E2 source, an attribute with the new name is in the DERIVE clause - DERIVE - next : CHANGE_ELEMENT := SELF\group_relationship.related_group; -- RELATED_GROUP : This ATTRIBUTE was RENAMED in the EXPRESS E2 source, this is the new name implemented as DERIVE - previous : CHANGE_ELEMENT := SELF\group_relationship.relating_group; -- RELATING_GROUP : This ATTRIBUTE was RENAMED in the EXPRESS E2 source, this is the new name implemented as DERIVE - -END_ENTITY; -(* USED FROM (Change_management_mim); *) -ENTITY change_composition_relationship - SUBTYPE OF (group_relationship); - SELF\group_relationship.relating_group : change_group; -- composition : This ATTRIBUTE was RENAMED in the EXPRESS E2 source, an attribute with the new name is in the DERIVE clause - SELF\group_relationship.related_group : change_element; -- element : This ATTRIBUTE was RENAMED in the EXPRESS E2 source, an attribute with the new name is in the DERIVE clause - DERIVE - composition : CHANGE_GROUP := SELF\group_relationship.relating_group; -- RELATING_GROUP : This ATTRIBUTE was RENAMED in the EXPRESS E2 source, this is the new name implemented as DERIVE - element : CHANGE_ELEMENT := SELF\group_relationship.related_group; -- RELATED_GROUP : This ATTRIBUTE was RENAMED in the EXPRESS E2 source, this is the new name implemented as DERIVE - -END_ENTITY; -(* USED FROM (Change_management_mim); *) -ENTITY change_group_assignment - SUBTYPE OF (group_assignment); - SELF\group_assignment.assigned_group : change_group; - item : change_relationship_select; -END_ENTITY; -(* USED FROM (Change_management_mim); *) -ENTITY current_change_element_assignment - SUBTYPE OF (group_assignment); - SELF\group_assignment.assigned_group : current_element_assignment_select; - items : SET [1:?] OF change_management_object; -END_ENTITY; -(* USED FROM (Change_management_mim); *) -ENTITY previous_change_element_assignment - SUBTYPE OF (group_assignment); - SELF\group_assignment.assigned_group : previous_element_assignment_select; - items : SET [1:?] OF change_management_object; -END_ENTITY; -(* USED FROM (Change_management_mim); *) -ENTITY frozen_assignment - SUBTYPE OF (approval_assignment); - items : SET [1:?] OF change_management_object; -END_ENTITY; -(* USED FROM (Change_management_mim); *) -ENTITY location_in_aggregate_representation_item - SUBTYPE OF (compound_representation_item); - SELF\compound_representation_item.item_element : location_in_aggregate_item; -END_ENTITY; -(* USED FROM (Specification_document_mim); *) - ENTITY document_identifier_assignment - SUBTYPE OF (group_assignment); - SELF\group_assignment.assigned_group : document_identifier; - items : SET [1:?] OF document_identifier_assigned_item; - END_ENTITY; -(* USED FROM (Numerical_interface_mim); *) -ENTITY expression_extension_numeric - SUBTYPE OF (measure_with_unit, numeric_expression); -END_ENTITY; -(* USED FROM (Numerical_interface_mim); *) -ENTITY expression_extension_string - SUBTYPE OF (measure_with_unit, string_expression); -END_ENTITY; -(* USED FROM (Numerical_interface_mim); *) -ENTITY expression_extension_to_select; - type_expression_associated: expression_extension_select; -END_ENTITY; -(* USED FROM (Numerical_interface_mim); *) -ENTITY variable_expression - SUBTYPE OF (variable_semantics); - property_associated: property_variable_rep_select; -END_ENTITY; -(* USED FROM (application_context_schema); *) - 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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'DESCRIPTION_ATTRIBUTE.DESCRIBED_ITEM')) <= 1; - WR2: SIZEOF(USEDIN(SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'ID_ATTRIBUTE.IDENTIFIED_ITEM')) <= 1; - END_ENTITY; -(* USED FROM (application_context_schema); *) - ENTITY application_protocol_definition; - status : label; - application_interpreted_model_schema_name : label; - application_protocol_year : year_number; - application : application_context; - END_ENTITY; -(* USED FROM (application_context_schema); *) - ENTITY product_context - SUBTYPE OF (application_context_element); - discipline_type : label; - END_ENTITY; -(* USED FROM (application_context_schema); *) - ENTITY product_definition_context - SUBTYPE OF (application_context_element); - life_cycle_stage : label; - END_ENTITY; -(* USED FROM (product_concept_schema); *) -ENTITY product_concept_relationship; - name : label; - description : OPTIONAL text; - relating_product_concept : product_concept; - related_product_concept : product_concept; -END_ENTITY; -(* USED FROM (product_definition_schema); *) - ENTITY product_definition_context_role; - name : label; - description : OPTIONAL text; - END_ENTITY; -(* USED FROM (geometry_schema); *) -ENTITY outer_boundary_curve - SUBTYPE OF (boundary_curve); -END_ENTITY; -(* USED FROM (approval_schema); *) - ENTITY approval; - status : approval_status; - level : label; - END_ENTITY; -(* USED FROM (approval_schema); *) - ENTITY approval_date_time; - date_time : date_time_select; - dated_approval : approval; - DERIVE - role : object_role := get_role(SELF); - WHERE - WR1: SIZEOF(USEDIN(SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'ROLE_ASSOCIATION.ITEM_WITH_ROLE')) <= 1; - END_ENTITY; -(* USED FROM (approval_schema); *) - ENTITY approval_person_organization; - person_organization : person_organization_select; - authorized_approval : approval; - role : approval_role; - END_ENTITY; -(* USED FROM (approval_schema); *) - ENTITY approval_relationship; - name : label; - description : OPTIONAL text; - relating_approval : approval; - related_approval : approval; - END_ENTITY; -(* USED FROM (approval_schema); *) - ENTITY approval_role; - role : label; - DERIVE - description : text := get_description_value(SELF); - WHERE - WR1: SIZEOF(USEDIN(SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'DESCRIPTION_ATTRIBUTE.DESCRIBED_ITEM')) <= 1; - END_ENTITY; -(* USED FROM (approval_schema); *) - ENTITY approval_status; - name : label; - END_ENTITY; -(* USED FROM (basic_attribute_schema); *) - ENTITY object_role; - name : label; - description : OPTIONAL text; - END_ENTITY; -(* USED FROM (basic_attribute_schema); *) - ENTITY role_association; - role : object_role; - item_with_role : role_select; - END_ENTITY; -(* USED FROM (management_resources_schema); *) - ENTITY approval_assignment - ABSTRACT SUPERTYPE; - assigned_approval : approval; - DERIVE - role : object_role := get_role(SELF); - WHERE - WR1: SIZEOF(USEDIN(SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'ROLE_ASSOCIATION.ITEM_WITH_ROLE')) <= 1; - END_ENTITY; -(* USED FROM (presentation_appearance_schema); *) - 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; -(* USED FROM (classification_schema); *) -ENTITY class - SUBTYPE OF (group); -END_ENTITY; -(* USED FROM (classification_schema); *) -ENTITY class_by_extension - SUBTYPE OF (class); -END_ENTITY; -(* USED FROM (classification_schema); *) -ENTITY class_by_intension - SUBTYPE OF (class); -END_ENTITY; -(* USED FROM (management_resources_schema); *) - ENTITY classification_assignment - ABSTRACT SUPERTYPE; - assigned_class : group; - role : classification_role; - END_ENTITY; -(* USED FROM (contract_schema); *) - ENTITY contract; - name : label; - purpose : text; - kind : contract_type; - END_ENTITY; -(* USED FROM (contract_schema); *) - ENTITY contract_relationship; - id : identifier; - name : label; - description : OPTIONAL text; - relating_contract : contract; - related_contract : contract; - END_ENTITY; -(* USED FROM (management_resources_schema); *) - ENTITY contract_assignment - ABSTRACT SUPERTYPE; - assigned_contract : contract; - DERIVE - role : object_role := get_role(SELF); - WHERE - WR1: SIZEOF(USEDIN(SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'ROLE_ASSOCIATION.ITEM_WITH_ROLE')) <= 1; - END_ENTITY; -(* USED FROM (presentation_appearance_schema); *) - ENTITY surface_style_reflectance_ambient_diffuse - SUBTYPE OF (surface_style_reflectance_ambient); - diffuse_reflectance : REAL; - END_ENTITY; -(* USED FROM (date_time_schema); *) -ENTITY date_and_time; - date_component : date; - time_component : local_time; -END_ENTITY; -(* USED FROM (date_time_schema); *) -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; -(* USED FROM (presentation_appearance_schema); *) - ENTITY surface_style_reflectance_ambient; - ambient_reflectance : REAL; - END_ENTITY; -(* USED FROM (date_time_schema); *) -ENTITY date - SUPERTYPE OF (ONEOF ( - CALENDAR_DATE, - ORDINAL_DATE, - WEEK_OF_YEAR_AND_DAY_DATE, - YEAR_MONTH)); - year_component : year_number; -END_ENTITY; -(* USED FROM (date_time_schema); *) -ENTITY date_role; - name : label; -DERIVE - description : text := get_description_value (SELF); -WHERE - WR1: SIZEOF (USEDIN (SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'DESCRIPTION_ATTRIBUTE.DESCRIBED_ITEM')) <= 1; -END_ENTITY; -(* USED FROM (date_time_schema); *) -ENTITY date_time_role; - name : label; -DERIVE - description : text := get_description_value (SELF); -WHERE - WR1: SIZEOF (USEDIN (SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'DESCRIPTION_ATTRIBUTE.DESCRIBED_ITEM')) <= 1; -END_ENTITY; -(* USED FROM (management_resources_schema); *) - ENTITY date_and_time_assignment - ABSTRACT SUPERTYPE; - assigned_date_and_time : date_and_time; - role : date_time_role; - END_ENTITY; -(* USED FROM (management_resources_schema); *) - ENTITY date_assignment - ABSTRACT SUPERTYPE; - assigned_date : date; - role : date_role; - END_ENTITY; -(* USED FROM (management_resources_schema); *) - ENTITY organization_assignment - ABSTRACT SUPERTYPE; - assigned_organization : organization; - role : organization_role; - END_ENTITY; -(* USED FROM (management_resources_schema); *) - ENTITY person_and_organization_assignment - ABSTRACT SUPERTYPE; - assigned_person_and_organization : person_and_organization; - role : person_and_organization_role; - END_ENTITY; -(* USED FROM (basic_attribute_schema); *) - ENTITY id_attribute; - attribute_value : identifier; - identified_item : id_attribute_select; - END_ENTITY; -(* USED FROM (basic_attribute_schema); *) - ENTITY name_attribute; - attribute_value : label; - named_item : name_attribute_select; - END_ENTITY; -(* USED FROM (person_organization_schema); *) - 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; -(* USED FROM (person_organization_schema); *) - ENTITY organization; - id : OPTIONAL identifier; - name : label; - description : OPTIONAL text; - END_ENTITY; -(* USED FROM (person_organization_schema); *) - ENTITY organization_relationship; - name : label; - description : OPTIONAL text; - relating_organization : organization; - related_organization : organization; - END_ENTITY; -(* USED FROM (person_organization_schema); *) - ENTITY organizational_address - SUBTYPE OF (address); - organizations : SET [1:?] OF organization; - description : OPTIONAL text; - END_ENTITY; -(* USED FROM (person_organization_schema); *) - 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; -(* USED FROM (person_organization_schema); *) - ENTITY person_and_organization; - the_person : person; - the_organization : organization; - DERIVE - name : label := get_name_value(SELF); - description : text := get_description_value(SELF); - WHERE - WR1: SIZEOF(USEDIN(SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'NAME_ATTRIBUTE.NAMED_ITEM')) <= 1; - WR2: SIZEOF(USEDIN(SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'DESCRIPTION_ATTRIBUTE.DESCRIBED_ITEM')) <= 1; - END_ENTITY; -(* USED FROM (person_organization_schema); *) - ENTITY personal_address - SUBTYPE OF (address); - people : SET [1:?] OF person; - description : OPTIONAL text; - END_ENTITY; -(* USED FROM (person_organization_schema); *) - ENTITY organization_role; - name : label; - DERIVE - description : text := get_description_value(SELF); - WHERE - WR1: SIZEOF(USEDIN(SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'DESCRIPTION_ATTRIBUTE.DESCRIBED_ITEM')) <= 1; - END_ENTITY; -(* USED FROM (person_organization_schema); *) - ENTITY person_and_organization_role; - name : label; - DERIVE - description : text := get_description_value(SELF); - WHERE - WR1: SIZEOF(USEDIN(SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'DESCRIPTION_ATTRIBUTE.DESCRIBED_ITEM')) <= 1; - END_ENTITY; -(* USED FROM (security_classification_schema); *) - ENTITY security_classification; - name : label; - purpose : text; - security_level : security_classification_level; - END_ENTITY; -(* USED FROM (security_classification_schema); *) - ENTITY security_classification_level; - name : label; - END_ENTITY; -(* USED FROM (management_resources_schema); *) - ENTITY security_classification_assignment - ABSTRACT SUPERTYPE; - assigned_security_classification : security_classification; - DERIVE - role : object_role := get_role(SELF); - WHERE - WR1: SIZEOF(USEDIN(SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'ROLE_ASSOCIATION.ITEM_WITH_ROLE')) <= 1; - END_ENTITY; -(* USED FROM (management_resources_schema); *) - ENTITY identification_assignment - ABSTRACT SUPERTYPE; - assigned_id : identifier; - role : identification_role; - END_ENTITY; -(* USED FROM (product_definition_schema); *) - ENTITY product_definition_context_association; - definition : product_definition; - frame_of_reference : product_definition_context; - role : product_definition_context_role; - END_ENTITY; -(* USED FROM (product_property_definition_schema); *) - ENTITY general_property; - id : identifier; - name : label; - description : OPTIONAL text; - END_ENTITY; -(* USED FROM (product_property_definition_schema); *) - ENTITY general_property_relationship; - name : label; - description : OPTIONAL text; - relating_property : general_property; - related_property : general_property; - END_ENTITY; -(* USED FROM (topology_schema); *) - ENTITY edge_curve - SUBTYPE OF(edge,geometric_representation_item); - edge_geometry : curve; - same_sense : BOOLEAN; - END_ENTITY; -(* USED FROM (topology_schema); *) - ENTITY face_surface - SUBTYPE OF(face,geometric_representation_item); - face_geometry : surface; - same_sense : BOOLEAN; - WHERE - WR1: NOT ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ORIENTED_SURFACE' IN TYPEOF(face_geometry)); - END_ENTITY; -(* USED FROM (topology_schema); *) - ENTITY poly_loop - SUBTYPE OF (loop,geometric_representation_item); - polygon : LIST [3:?] OF UNIQUE cartesian_point; - END_ENTITY; -(* USED FROM (topology_schema); *) - ENTITY vertex_point - SUBTYPE OF(vertex,geometric_representation_item); - vertex_geometry : point; - END_ENTITY; -(* USED FROM (topology_schema); *) - ENTITY connected_edge_set - SUBTYPE OF (topological_representation_item); - ces_edges : SET [1:?] OF edge; - END_ENTITY; -(* USED FROM (topology_schema); *) - ENTITY connected_face_set - SUPERTYPE OF (ONEOF ( - CLOSED_SHELL, - OPEN_SHELL)) - SUBTYPE OF (topological_representation_item); - cfs_faces : SET [1:?] OF face; - END_ENTITY; -(* USED FROM (topology_schema); *) - ENTITY edge - SUPERTYPE OF (ONEOF ( - EDGE_CURVE, - ORIENTED_EDGE, - SUBEDGE)) - SUBTYPE OF (topological_representation_item); - edge_start : vertex; - edge_end : vertex; - END_ENTITY; -(* USED FROM (topology_schema); *) - 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; -(* USED FROM (action_schema); *) - ENTITY directed_action - SUBTYPE OF (executed_action); - directive : action_directive; - END_ENTITY; -(* USED FROM (topology_schema); *) - ENTITY face_bound - SUBTYPE OF(topological_representation_item); - bound : loop; - orientation : BOOLEAN; - END_ENTITY; -(* USED FROM (topology_schema); *) - ENTITY face_outer_bound - SUBTYPE OF (face_bound); - END_ENTITY; -(* USED FROM (topology_schema); *) - ENTITY loop - SUPERTYPE OF (ONEOF ( - VERTEX_LOOP, - EDGE_LOOP, - POLY_LOOP)) - SUBTYPE OF (topological_representation_item); - END_ENTITY; -(* USED FROM (topology_schema); *) - ENTITY oriented_edge - SUBTYPE OF (edge); - edge_element : edge; - orientation : BOOLEAN; - DERIVE - SELF\edge.edge_start : vertex := boolean_choose (SELF.orientation, - SELF.edge_element.edge_start, - SELF.edge_element.edge_end); - SELF\edge.edge_end : vertex := boolean_choose (SELF.orientation, - SELF.edge_element.edge_end, - SELF.edge_element.edge_start); - WHERE - WR1: NOT ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ORIENTED_EDGE' IN TYPEOF (SELF.edge_element)); - END_ENTITY; -(* USED FROM (draughting_element_schema); *) - ENTITY leader_terminator - SUBTYPE OF (terminator_symbol); - WHERE - WR1: 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LEADER_CURVE' IN TYPEOF - (SELF\terminator_symbol.annotated_curve); - END_ENTITY; -(* USED FROM (topology_schema); *) - 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; -(* USED FROM (topology_schema); *) - ENTITY vertex - SUBTYPE OF (topological_representation_item); - END_ENTITY; -(* USED FROM (topology_schema); *) - ENTITY vertex_loop - SUBTYPE OF (loop); - loop_vertex : vertex; - END_ENTITY; -(* USED FROM (geometry_schema); *) -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; -(* USED FROM (geometry_schema); *) -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; -(* USED FROM (geometry_schema); *) -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; -(* USED FROM (geometry_schema); *) -(* Pruned SUPERTYPE *) -ENTITY cartesian_point - - SUBTYPE OF (point); - coordinates : LIST[1:3] OF length_measure; -END_ENTITY; -(* USED FROM (geometry_schema); *) -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; -(* USED FROM (geometry_schema); *) -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; -(* USED FROM (date_time_schema); *) -ENTITY time_interval_role; - name : label; - description : OPTIONAL text; -END_ENTITY; -(* USED FROM (geometry_schema); *) -ENTITY geometric_representation_context - SUPERTYPE OF (ONEOF ( - GEOMETRIC_REPRESENTATION_CONTEXT_WITH_PARAMETER, - PATH_PARAMETER_REPRESENTATION_CONTEXT) ) - SUBTYPE OF (representation_context); - coordinate_space_dimension : dimension_count; -END_ENTITY; -(* USED FROM (management_resources_schema); *) - ENTITY time_interval_assignment - ABSTRACT SUPERTYPE; - assigned_time_interval : time_interval; - role : time_interval_role; - END_ENTITY; -(* USED FROM (product_property_representation_schema); *) - ENTITY shape_representation - SUBTYPE OF (representation); - END_ENTITY; -(* USED FROM (qualified_measure_schema); *) -ENTITY measure_representation_item - SUBTYPE OF (representation_item, measure_with_unit); -END_ENTITY; -(* USED FROM (representation_schema); *) - ENTITY item_defined_transformation; - name : label; - description : OPTIONAL text; - transform_item_1 : representation_item; - transform_item_2 : representation_item; - END_ENTITY; -(* USED FROM (management_resources_schema); *) - ENTITY action_request_assignment - ABSTRACT SUPERTYPE; - assigned_action_request : versioned_action_request; - DERIVE - role : object_role := get_role(SELF); - WHERE - WR1: SIZEOF(USEDIN(SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'ROLE_ASSOCIATION.ITEM_WITH_ROLE')) <= 1; - END_ENTITY; -(* USED FROM (action_schema); *) - ENTITY versioned_action_request_relationship; - id : identifier; - name : label; - description : OPTIONAL text; - relating_versioned_action_request : versioned_action_request; - related_versioned_action_request : versioned_action_request; - END_ENTITY; -(* USED FROM (action_schema); *) - ENTITY versioned_action_request; - id : identifier; - version : OPTIONAL label; - purpose : text; - description : OPTIONAL text; - END_ENTITY; -(* USED FROM (fea_scalar_vector_tensor_schema); *) -ENTITY tensor_representation_item - SUBTYPE OF (representation_item); - tensor_value : tensor_type; -END_ENTITY; -(* USED FROM (structural_response_definition_schema); *) -ENTITY structural_response_property - SUBTYPE OF (property_definition); -END_ENTITY; -(* USED FROM (structural_response_definition_schema); *) -ENTITY fea_model_definition - SUBTYPE OF (shape_aspect); -END_ENTITY; -(* USED FROM (structural_response_definition_schema); *) -ENTITY node_definition - SUBTYPE OF (shape_aspect); -END_ENTITY; -(* USED FROM (structural_response_definition_schema); *) -ENTITY element_definition - SUBTYPE OF (shape_aspect); -END_ENTITY; -(* USED FROM (structural_response_representation_schema); *) -ENTITY fea_model - SUPERTYPE OF (ONEOF ( - FEA_MODEL_2D, - FEA_MODEL_3D)) - SUBTYPE OF (representation); - creating_software : text; - intended_analysis_code : SET [1:?] OF text; - (* description : text;*) - analysis_type : text; -UNIQUE - UR1: SELF\representation.name; -END_ENTITY; -(* USED FROM (structural_response_representation_schema); *) -ENTITY fea_model_3d - SUBTYPE OF (fea_model); -WHERE - WR1: SELF\representation.context_of_items\ - geometric_representation_context.coordinate_space_dimension = 3; -END_ENTITY; -(* USED FROM (structural_response_representation_schema); *) -ENTITY fea_model_2d - SUBTYPE OF (fea_model); - type_of_2d_analysis : axi_or_plane; -WHERE - WR1: SELF\representation.context_of_items\ - geometric_representation_context.coordinate_space_dimension = 2; -END_ENTITY; -(* USED FROM (structural_response_representation_schema); *) -ENTITY structural_response_property_definition_representation - SUBTYPE OF (property_definition_representation); -WHERE - WR1: (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + - 'STRUCTURAL_RESPONSE_PROPERTY') IN TYPEOF - (SELF\property_definition_representation.definition)); - WR2: ((('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FEA_MODEL' - IN TYPEOF - (SELF\property_definition_representation.used_representation)) - AND - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FEA_MODEL_DEFINITION' - IN TYPEOF - (SELF\property_definition_representation.definition.definition))) - OR - (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ELEMENT_REPRESENTATION' - IN TYPEOF - (SELF\property_definition_representation.used_representation)) - AND - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ELEMENT_DEFINITION' - IN TYPEOF - (SELF\property_definition_representation.definition.definition))) - OR - (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.NODE_REPRESENTATION' - IN TYPEOF - (SELF\property_definition_representation.used_representation)) - AND - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.NODE_DEFINITION' - IN TYPEOF - (SELF\property_definition_representation.definition.definition)))); -END_ENTITY; -(* USED FROM (structural_response_representation_schema); *) -ENTITY fea_representation_item - SUPERTYPE OF (ONEOF ( - ARBITRARY_VOLUME_3D_ELEMENT_COORDINATE_SYSTEM, - PARAMETRIC_VOLUME_3D_ELEMENT_COORDINATE_SYSTEM, - ARBITRARY_VOLUME_2D_ELEMENT_COORDINATE_SYSTEM, - PARAMETRIC_VOLUME_2D_ELEMENT_COORDINATE_SYSTEM, - ALIGNED_SURFACE_3D_ELEMENT_COORDINATE_SYSTEM, - PARAMETRIC_SURFACE_3D_ELEMENT_COORDINATE_SYSTEM, - CONSTANT_SURFACE_3D_ELEMENT_COORDINATE_SYSTEM, - ALIGNED_SURFACE_2D_ELEMENT_COORDINATE_SYSTEM, - PARAMETRIC_SURFACE_2D_ELEMENT_COORDINATE_SYSTEM, - ALIGNED_CURVE_3D_ELEMENT_COORDINATE_SYSTEM, - PARAMETRIC_CURVE_3D_ELEMENT_COORDINATE_SYSTEM, - PARAMETRIC_CURVE_3D_ELEMENT_COORDINATE_DIRECTION, - CURVE_2D_ELEMENT_COORDINATE_SYSTEM, - DIRECTIONALLY_EXPLICIT_ELEMENT_COORDINATE_SYSTEM_ARBITRARY, - DIRECTIONALLY_EXPLICIT_ELEMENT_COORDINATE_SYSTEM_ALIGNED)) - SUBTYPE OF (representation_item); -END_ENTITY; -(* USED FROM (Multi_linguism_mim); *) -ENTITY attribute_language_assignment -SUBTYPE OF (attribute_classification_assignment); - SELF\attribute_classification_assignment.assigned_class: language; - items : SET [1:?] OF attribute_language_item; -WHERE -WR1: SELF\attribute_classification_assignment.role.name IN ['primary', 'translated']; -WR2: SELF\attribute_classification_assignment.attribute_name<> ''; -END_ENTITY; -(* USED FROM (structural_response_representation_schema); *) -ENTITY fea_axis2_placement_2d - SUBTYPE OF (axis2_placement_2d); - system_type : coordinate_system_type; - description : text; -END_ENTITY; -(* USED FROM (structural_response_representation_schema); *) -ENTITY fea_axis2_placement_3d - SUBTYPE OF (axis2_placement_3d); - system_type : coordinate_system_type; - description : text; -END_ENTITY; -(* USED FROM (Project_mim); *) -ENTITY applied_organizational_project_assignment - SUBTYPE OF (organizational_project_assignment); - items : SET[1:?] OF project_item; -END_ENTITY; -(* USED FROM (action_schema); *) - 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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'DESCRIPTION_ATTRIBUTE.DESCRIBED_ITEM')) <= 1; - WR2: SIZEOF(USEDIN(SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'NAME_ATTRIBUTE.NAMED_ITEM')) <= 1; - END_ENTITY; -(* USED FROM (structural_response_representation_schema); *) -ENTITY node_geometric_relationship; - node_ref : node_or_node_group; - item : analysis_item_within_representation; -WHERE - WR1: 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.GEOMETRIC_REPRESENTATION_ITEM' IN TYPEOF(item.item); -END_ENTITY; -(* USED FROM (management_resources_schema); *) - ENTITY identification_role; - name : label; - description : OPTIONAL text; - END_ENTITY; -(* USED FROM (structural_response_representation_schema); *) -ENTITY node_representation - SUPERTYPE OF (ONEOF ( - NODE, - DUMMY_NODE, - GEOMETRIC_NODE)) - SUBTYPE OF (representation); - model_ref : fea_model; -UNIQUE - UR1: model_ref, SELF\representation.name; -END_ENTITY; -(* USED FROM (management_resources_schema); *) - ENTITY certification_assignment - ABSTRACT SUPERTYPE; - assigned_certification : certification; - DERIVE - role : object_role := get_role(SELF); - WHERE - WR1: SIZEOF(USEDIN(SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'ROLE_ASSOCIATION.ITEM_WITH_ROLE')) <= 1; - END_ENTITY; -(* USED FROM (certification_schema); *) - ENTITY certification_type; - description : label; - END_ENTITY; -(* USED FROM (certification_schema); *) - ENTITY certification; - name : label; - purpose : text; - kind : certification_type; - END_ENTITY; -(* USED FROM (structural_response_representation_schema); *) -ENTITY dummy_node - SUBTYPE OF (node_representation); -END_ENTITY; -(* USED FROM (Certification_mim); *) -ENTITY applied_certification_assignment - SUBTYPE OF (certification_assignment); - items : SET[1:?] OF certification_item; -END_ENTITY; -(* USED FROM (structural_response_representation_schema); *) -ENTITY substructure_node_relationship - SUBTYPE OF (representation_relationship); -WHERE - WR1: 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.NODE_REPRESENTATION' - IN TYPEOF (SELF\representation_relationship.rep_1); - WR2: 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.NODE_REPRESENTATION' - IN TYPEOF (SELF\representation_relationship.rep_2); -END_ENTITY; -(* USED FROM (management_resources_schema); *) - ENTITY name_assignment - ABSTRACT SUPERTYPE; - assigned_name : label; - DERIVE - role : object_role := get_role(SELF); - WHERE - WR1: SIZEOF(USEDIN(SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'ROLE_ASSOCIATION.ITEM_WITH_ROLE')) <= 1; - END_ENTITY; -(* USED FROM (geometry_schema); *) -ENTITY elementary_surface - SUPERTYPE OF (ONEOF ( - PLANE, - CYLINDRICAL_SURFACE, - CONICAL_SURFACE, - SPHERICAL_SURFACE, - TOROIDAL_SURFACE)) - SUBTYPE OF (surface); - position : axis2_placement_3d; -END_ENTITY; -(* USED FROM (geometric_model_schema); *) -ENTITY face_based_surface_model - SUBTYPE OF (geometric_representation_item); - fbsm_faces : SET[1:?] OF connected_face_set; -END_ENTITY; -(* USED FROM (geometric_model_schema); *) -ENTITY edge_based_wireframe_model - SUBTYPE OF (geometric_representation_item); - ebwm_boundary : SET[1:?] OF connected_edge_set; -END_ENTITY; -(* USED FROM (kinematic_state_schema); *) -ENTITY rotation_about_direction - SUBTYPE OF (geometric_representation_item); -- LK - direction_of_axis : direction; - rotation_angle : plane_angle_measure; -WHERE - WR1: SIZEOF (direction_of_axis.direction_ratios) = 3; -END_ENTITY; -(* USED FROM (kinematic_state_schema); *) -ENTITY point_on_planar_curve_pair_value - SUBTYPE OF (pair_value); - SELF\pair_value.applies_to_pair : point_on_planar_curve_pair; - actual_point_on_curve : point_on_curve; - input_orientation : spatial_rotation; -DERIVE - actual_orientation : ypr_rotation - := convert_spatial_to_ypr_rotation - (SELF\pair_value.applies_to_pair, - input_orientation); -WHERE - WR1: SELF\pair_value.applies_to_pair\point_on_planar_curve_pair.pair_curve - :=: actual_point_on_curve.basis_curve; -END_ENTITY; -(* USED FROM (kinematic_state_schema); *) -ENTITY point_on_surface_pair_value - SUBTYPE OF (pair_value); - SELF\pair_value.applies_to_pair : point_on_surface_pair; - actual_point_on_surface : point_on_surface; - input_orientation : spatial_rotation; -DERIVE - actual_orientation : ypr_rotation - := convert_spatial_to_ypr_rotation - (SELF\pair_value.applies_to_pair, - input_orientation); -WHERE - WR1: SELF\pair_value.applies_to_pair\point_on_surface_pair.pair_surface :=: - actual_point_on_surface.basis_surface; -END_ENTITY; -(* USED FROM (kinematic_state_schema); *) -ENTITY unconstrained_pair_value - SUBTYPE OF (pair_value); - SELF\pair_value.applies_to_pair : unconstrained_pair; - actual_placement : axis2_placement_3d; -END_ENTITY; -(* USED FROM (kinematic_state_schema); *) -ENTITY planar_pair_value - SUBTYPE OF (pair_value); - SELF\pair_value.applies_to_pair : planar_pair; - actual_rotation : plane_angle_measure; - actual_translation_x : length_measure; - actual_translation_y : length_measure; -END_ENTITY; -(* USED FROM (kinematic_state_schema); *) -ENTITY universal_pair_value - SUBTYPE OF (pair_value); - SELF\pair_value.applies_to_pair : universal_pair; - first_rotation_angle : plane_angle_measure; - second_rotation_angle : plane_angle_measure; -END_ENTITY; -(* USED FROM (structural_response_representation_schema); *) -ENTITY element_descriptor - SUPERTYPE OF (ONEOF ( - VOLUME_3D_ELEMENT_DESCRIPTOR, - AXISYMMETRIC_VOLUME_2D_ELEMENT_DESCRIPTOR, - PLANE_VOLUME_2D_ELEMENT_DESCRIPTOR, - SURFACE_3D_ELEMENT_DESCRIPTOR, - AXISYMMETRIC_SURFACE_2D_ELEMENT_DESCRIPTOR, - PLANE_SURFACE_2D_ELEMENT_DESCRIPTOR, - CURVE_3D_ELEMENT_DESCRIPTOR, - AXISYMMETRIC_CURVE_2D_ELEMENT_DESCRIPTOR, - PLANE_CURVE_2D_ELEMENT_DESCRIPTOR)); - topology_order : element_order; - description : text; -END_ENTITY; -(* USED FROM (structural_response_representation_schema); *) -ENTITY volume_3d_element_descriptor - SUBTYPE OF (element_descriptor); - purpose : SET [1:?] OF volume_element_purpose; - shape : volume_3d_element_shape; -END_ENTITY; -(* USED FROM (structural_response_representation_schema); *) -ENTITY axisymmetric_volume_2d_element_descriptor - SUBTYPE OF (element_descriptor); - purpose : SET [1:?] OF SET [1:?] OF - volume_element_purpose; - shape : element_2d_shape; -END_ENTITY; -(* USED FROM (structural_response_representation_schema); *) -ENTITY plane_volume_2d_element_descriptor - SUBTYPE OF (element_descriptor); - purpose : SET [1:?] OF SET [1:?] OF - volume_element_purpose; - shape : element_2d_shape; - assumption : plane_2d_element_purpose; -END_ENTITY; -(* USED FROM (structural_response_representation_schema); *) -ENTITY volume_3d_element_basis; - descriptor : volume_3d_element_descriptor; - variable : volume_variable; - variable_order : element_order; - variable_shape_function : shape_function; - evaluation_points : LIST [1:?] OF volume_element_location; -END_ENTITY; -(* USED FROM (structural_response_representation_schema); *) -ENTITY volume_2d_element_basis; - descriptor : volume_2d_element_descriptor; - variable : volume_variable; - variable_order : element_order; - variable_shape_function : shape_function; - evaluation_points : LIST [1:?] OF volume_element_location; -END_ENTITY; -(* USED FROM (structural_response_representation_schema); *) -ENTITY surface_3d_element_descriptor - SUBTYPE OF (element_descriptor); - purpose : SET [1:?] OF SET [1:?] OF - surface_element_purpose; - shape : element_2d_shape; -END_ENTITY; -(* USED FROM (structural_response_representation_schema); *) -ENTITY axisymmetric_surface_2d_element_descriptor - SUBTYPE OF (element_descriptor); - purpose : SET [1:?] OF SET [1:?] OF - surface_element_purpose; -END_ENTITY; -(* USED FROM (structural_response_representation_schema); *) -ENTITY plane_surface_2d_element_descriptor - SUBTYPE OF (element_descriptor); - purpose : SET [1:?] OF SET [1:?] OF - surface_element_purpose; - assumption : plane_2d_element_purpose; -END_ENTITY; -(* USED FROM (structural_response_representation_schema); *) -ENTITY surface_3d_element_basis; - descriptor : surface_3d_element_descriptor; - variable : surface_element_variable; - variable_order : element_order; - variable_shape_function : shape_function; - evaluation_points : LIST [1:?] OF surface_element_location; -END_ENTITY; -(* USED FROM (structural_response_representation_schema); *) -ENTITY surface_2d_element_basis; - descriptor : surface_2d_element_descriptor; - variable : surface_element_variable; - variable_order : element_order; - variable_shape_function : shape_function; - evaluation_points : LIST [1:?] OF surface_element_location; -END_ENTITY; -(* USED FROM (structural_response_representation_schema); *) -ENTITY curve_3d_element_descriptor - SUBTYPE OF (element_descriptor); - purpose : SET [1:?] OF SET [1:?] OF - curve_element_purpose; -END_ENTITY; -(* USED FROM (structural_response_representation_schema); *) -ENTITY axisymmetric_curve_2d_element_descriptor - SUBTYPE OF (element_descriptor); - purpose : SET [1:?] OF SET [1:?] OF - curve_element_purpose; -END_ENTITY; -(* USED FROM (structural_response_representation_schema); *) -ENTITY plane_curve_2d_element_descriptor - SUBTYPE OF (element_descriptor); - purpose : SET [1:?] OF SET [1:?] OF - curve_element_purpose; - assumption : plane_2d_element_purpose; -END_ENTITY; -(* USED FROM (structural_response_representation_schema); *) -ENTITY curve_3d_element_basis; - descriptor : curve_3d_element_descriptor; - variable : curve_element_variable; - variable_order : element_order; - variable_shape_function : shape_function; - evaluation_points : LIST [1:?] OF curve_element_location; -END_ENTITY; -(* USED FROM (structural_response_representation_schema); *) -ENTITY curve_2d_element_basis; - descriptor : curve_2d_element_descriptor; - variable : curve_element_variable; -END_ENTITY; -(* USED FROM (kinematic_state_schema); *) -ENTITY rolling_curve_pair_value - SUBTYPE OF (pair_value); - SELF\pair_value.applies_to_pair : rolling_curve_pair; - actual_point_on_curve_1 : point_on_curve; -WHERE - WR1: SELF\pair_value.applies_to_pair\planar_curve_pair.curve_1 :=: - actual_point_on_curve_1.basis_curve; -END_ENTITY; -(* USED FROM (structural_response_representation_schema); *) -ENTITY point_element_matrix - SUPERTYPE OF (ONEOF ( - STATIONARY_MASS, - GROUNDED_SPRING, - GROUNDED_DAMPER)); -END_ENTITY; -(* USED FROM (structural_response_representation_schema); *) -ENTITY stationary_mass - SUBTYPE OF (point_element_matrix); - mass : ARRAY [1:3] OF context_dependent_measure; - moments_of_inertia : symmetric_tensor2_3d; - coordinate_system : fea_axis2_placement_3d; - offset_vector : ARRAY [1:3] OF context_dependent_measure; -END_ENTITY; -(* USED FROM (structural_response_representation_schema); *) -ENTITY grounded_spring - SUBTYPE OF (point_element_matrix); - stiffness_coefficients : ARRAY [1:6] OF context_dependent_measure; -END_ENTITY; -(* USED FROM (structural_response_representation_schema); *) -ENTITY grounded_damper - SUBTYPE OF (point_element_matrix); - damping_coefficients : ARRAY [1:6] OF context_dependent_measure; -END_ENTITY; -(* USED FROM (structural_response_representation_schema); *) -ENTITY directionally_explicit_element_representation - SUBTYPE OF (element_representation); - model_ref : fea_model; - systems_and_freedoms : LIST [2:2] OF system_and_freedom; - (* description : text;*) - coefficient : directionally_explicit_element_coefficient; -UNIQUE - UR1: model_ref, SELF\representation.name; -WHERE - FU1: required_1d_nodes ( - SELF\element_representation.node_list, - linear); -END_ENTITY; -(* USED FROM (structural_response_representation_schema); *) -ENTITY system_and_freedom; - matrix_coordinate_system : - directionally_explicit_element_coordinate_system; - freedom : degree_of_freedom; -END_ENTITY; -(* USED FROM (structural_response_representation_schema); *) -ENTITY directionally_explicit_element_coefficient; - property_type : matrix_property_type; - coefficient : context_dependent_measure; -END_ENTITY; -(* USED FROM (kinematic_state_schema); *) -ENTITY spherical_pair_value - SUBTYPE OF (pair_value); - SELF\pair_value.applies_to_pair : spherical_pair_select; - input_orientation : spatial_rotation; -DERIVE - actual_orientation : ypr_rotation - := convert_spatial_to_ypr_rotation - (SELF\pair_value.applies_to_pair, - input_orientation); -END_ENTITY; -(* USED FROM (kinematic_state_schema); *) -ENTITY low_order_kinematic_pair_value - SUBTYPE OF (pair_value); - SELF\pair_value.applies_to_pair : low_order_kinematic_pair; - actual_translation_x : length_measure; - actual_translation_y : length_measure; - actual_translation_z : length_measure; - actual_rotation_x : plane_angle_measure; - actual_rotation_y : plane_angle_measure; - actual_rotation_z : plane_angle_measure; -END_ENTITY; -(* USED FROM (structural_response_representation_schema); *) -ENTITY substructure_element_representation - SUBTYPE OF (element_representation); - model_ref : fea_model; - substructure_model_ref : fea_model; -UNIQUE - UR1: model_ref, SELF\representation.name; -END_ENTITY; -(* USED FROM (structural_response_representation_schema); *) -ENTITY aligned_axis_tolerance; - model_ref : fea_model; - tolerance : context_dependent_measure; -END_ENTITY; -(* USED FROM (structural_response_representation_schema); *) -ENTITY arbitrary_volume_3d_element_coordinate_system - SUBTYPE OF (fea_representation_item); - coordinate_system : fea_axis2_placement_3d; -END_ENTITY; -(* USED FROM (structural_response_representation_schema); *) -ENTITY parametric_volume_3d_element_coordinate_system - SUBTYPE OF (fea_representation_item); - axis_1 : INTEGER; - axis_2 : INTEGER; - eu_angles : euler_angles; -WHERE - WR1: (axis_1 >= 1) AND (axis_1 <= 3) AND - (axis_2 >= 1) AND (axis_2 <= 3) AND - NOT (axis_1 = axis_2); -END_ENTITY; -(* USED FROM (structural_response_representation_schema); *) -ENTITY arbitrary_volume_2d_element_coordinate_system - SUBTYPE OF (fea_representation_item); - orientation : direction; -WHERE - WR1: SELF\geometric_representation_item.dim=2; -END_ENTITY; -(* USED FROM (structural_response_representation_schema); *) -ENTITY parametric_volume_2d_element_coordinate_system - SUBTYPE OF (fea_representation_item); - axis : INTEGER; - angle : plane_angle_measure; -WHERE - WR1: (axis >= 1) AND (axis <= 2); -END_ENTITY; -(* USED FROM (structural_response_representation_schema); *) -ENTITY aligned_surface_3d_element_coordinate_system - SUBTYPE OF (fea_representation_item); - coordinate_system : fea_axis2_placement_3d; -END_ENTITY; -(* USED FROM (structural_response_representation_schema); *) -ENTITY parametric_surface_3d_element_coordinate_system - SUBTYPE OF (fea_representation_item); - axis : INTEGER; - angle : plane_angle_measure; -WHERE - WR1: (axis >= 1) AND (axis <= 2); -END_ENTITY; -(* USED FROM (structural_response_representation_schema); *) -ENTITY constant_surface_3d_element_coordinate_system - SUBTYPE OF (fea_representation_item); - axis : INTEGER; - angle : plane_angle_measure; -WHERE - WR1: (axis >= 1) AND (axis <= 2); -END_ENTITY; -(* USED FROM (structural_response_representation_schema); *) -ENTITY aligned_surface_2d_element_coordinate_system - SUBTYPE OF (fea_representation_item); - orientation : direction; -WHERE - WR1: SELF\geometric_representation_item.dim=2; -END_ENTITY; -(* USED FROM (structural_response_representation_schema); *) -ENTITY parametric_surface_2d_element_coordinate_system - SUBTYPE OF (fea_representation_item); -END_ENTITY; -(* USED FROM (structural_response_representation_schema); *) -ENTITY aligned_curve_3d_element_coordinate_system - SUBTYPE OF (fea_representation_item); - coordinate_system : fea_axis2_placement_3d; -END_ENTITY; -(* USED FROM (structural_response_representation_schema); *) -ENTITY parametric_curve_3d_element_coordinate_system - SUBTYPE OF (fea_representation_item); - direction : parametric_curve_3d_element_coordinate_direction; -END_ENTITY; -(* USED FROM (structural_response_representation_schema); *) -ENTITY parametric_curve_3d_element_coordinate_direction - SUBTYPE OF (fea_representation_item); - orientation : direction; -WHERE - WR1: SELF\geometric_representation_item.dim=3; -END_ENTITY; -(* USED FROM (structural_response_representation_schema); *) -ENTITY curve_2d_element_coordinate_system - SUBTYPE OF (fea_representation_item); - orientation : direction; -WHERE - WR1: SELF\geometric_representation_item.dim=2; -END_ENTITY; -(* USED FROM (structural_response_representation_schema); *) -ENTITY directionally_explicit_element_coordinate_system_arbitrary - SUBTYPE OF (fea_representation_item); - arbitrary_system : fea_axis2_placement_3d; -END_ENTITY; -(* USED FROM (structural_response_representation_schema); *) -ENTITY directionally_explicit_element_coordinate_system_aligned - SUBTYPE OF (fea_representation_item); - aligned_system : curve_3d_element_coordinate_system; -END_ENTITY; -(* USED FROM (structural_response_representation_schema); *) -ENTITY euler_angles; - angles : ARRAY [1:3] OF plane_angle_measure; -END_ENTITY; -(* USED FROM (structural_response_representation_schema); *) -ENTITY volume_3d_element_integrated_matrix; - descriptor : volume_3d_element_descriptor; - property_type : matrix_property_type; - integration_description : text; -END_ENTITY; -(* USED FROM (structural_response_representation_schema); *) -ENTITY volume_3d_element_integrated_matrix_with_definition - SUBTYPE OF (volume_3d_element_integrated_matrix); - integration_definition : volume_3d_element_field_integration; -END_ENTITY; -(* USED FROM (structural_response_representation_schema); *) -ENTITY volume_3d_element_field_integration_rule; - integration_method : integration_rule; - integration_order : ARRAY [1:3] OF INTEGER; -END_ENTITY; -(* USED FROM (structural_response_representation_schema); *) -ENTITY volume_3d_element_field_integration_explicit; - integration_positions_and_weights: SET [1:?] OF volume_position_weight; -END_ENTITY; -(* USED FROM (structural_response_representation_schema); *) -ENTITY volume_position_weight; - integration_position : volume_element_location; - integration_weight : context_dependent_measure; -END_ENTITY; -(* USED FROM (structural_response_representation_schema); *) -ENTITY volume_2d_element_integrated_matrix; - descriptor : volume_2d_element_descriptor; - property_type : matrix_property_type; - integration_description : text; -END_ENTITY; -(* USED FROM (structural_response_representation_schema); *) -ENTITY volume_2d_element_integrated_matrix_with_definition - SUBTYPE OF (volume_2d_element_integrated_matrix); - integration_definition : volume_2d_element_field_integration; -END_ENTITY; -(* USED FROM (structural_response_representation_schema); *) -ENTITY volume_2d_element_field_integration_rule; - integration_method : integration_rule; - integration_order : ARRAY [1:2] OF INTEGER; -END_ENTITY; -(* USED FROM (structural_response_representation_schema); *) -ENTITY volume_2d_element_field_integration_explicit; - integration_positions_and_weights: SET [1:?] OF volume_position_weight; -END_ENTITY; -(* USED FROM (structural_response_representation_schema); *) -ENTITY surface_3d_element_integrated_matrix; - descriptor : surface_3d_element_descriptor; - property_type : surface_matrix_property_type; - integration_description : text; -END_ENTITY; -(* USED FROM (structural_response_representation_schema); *) -ENTITY surface_3d_element_integrated_matrix_with_definition - SUBTYPE OF (surface_3d_element_integrated_matrix); - integration_definition : surface_3d_element_integration; -END_ENTITY; -(* USED FROM (structural_response_representation_schema); *) -ENTITY surface_3d_element_integration; - field : surface_3d_element_field_integration; - section : surface_section_integration; -END_ENTITY; -(* USED FROM (structural_response_representation_schema); *) -ENTITY surface_3d_element_field_integration_rule; - integration_method : integration_rule; - integration_order : ARRAY [1:2] OF INTEGER; -END_ENTITY; -(* USED FROM (structural_response_representation_schema); *) -ENTITY surface_3d_element_field_integration_explicit; - integration_positions_and_weights: SET [1:?] OF surface_position_weight; -END_ENTITY; -(* USED FROM (structural_response_representation_schema); *) -ENTITY surface_position_weight; - integration_position : surface_element_location; - integration_weight : context_dependent_measure; -END_ENTITY; -(* USED FROM (structural_response_representation_schema); *) -ENTITY surface_section_integration_rule; - integration_method : integration_rule; - integration_order : INTEGER; -END_ENTITY; -(* USED FROM (structural_response_representation_schema); *) -ENTITY surface_section_integration_explicit; - integration_positions_and_weights : SET [1:?] OF - surface_section_position_weight; -END_ENTITY; -(* USED FROM (structural_response_representation_schema); *) -ENTITY surface_section_position_weight; - integration_position : surface_section_element_location; - integration_weight : context_dependent_measure; -END_ENTITY; -(* USED FROM (structural_response_representation_schema); *) -ENTITY surface_2d_element_integrated_matrix; - descriptor : surface_2d_element_descriptor; - property_type : surface_matrix_property_type; - integration_description : text; -END_ENTITY; -(* USED FROM (structural_response_representation_schema); *) -ENTITY surface_2d_element_integrated_matrix_with_definition - SUBTYPE OF (surface_2d_element_integrated_matrix); - integration_definition : surface_2d_element_integration; -END_ENTITY; -(* USED FROM (structural_response_representation_schema); *) -ENTITY surface_2d_element_integration; - element_length : surface_2d_element_length_integration; - section : surface_section_integration; -END_ENTITY; -(* USED FROM (structural_response_representation_schema); *) -ENTITY surface_2d_element_length_integration_rule; - integration_method : integration_rule; - integration_order : INTEGER; -END_ENTITY; -(* USED FROM (structural_response_representation_schema); *) -ENTITY surface_2d_element_length_integration_explicit; - integration_positions_and_weights: SET [1:?] OF surface_position_weight; -END_ENTITY; -(* USED FROM (structural_response_representation_schema); *) -ENTITY curve_3d_element_integrated_matrix; - descriptor : curve_3d_element_descriptor; - property_type : curve_matrix_property_type; - integration_description : text; -END_ENTITY; -(* USED FROM (structural_response_representation_schema); *) -ENTITY curve_3d_element_integrated_matrix_with_definition - SUBTYPE OF (curve_3d_element_integrated_matrix); - integration_definition : curve_3d_element_integration; -END_ENTITY; -(* USED FROM (structural_response_representation_schema); *) -ENTITY curve_3d_element_integration; - element_length : curve_3d_element_length_integration; - section : curve_section_integration_explicit; -END_ENTITY; -(* USED FROM (structural_response_representation_schema); *) -ENTITY curve_3d_element_length_integration_rule; - integration_method : integration_rule; - integration_order : INTEGER; -END_ENTITY; -(* USED FROM (structural_response_representation_schema); *) -ENTITY curve_3d_element_length_integration_explicit; - integration_positions_and_weights: SET [1:?] OF - curve_3d_element_position_weight; -END_ENTITY; -(* USED FROM (structural_response_representation_schema); *) -ENTITY curve_3d_element_position_weight; - integration_position : curve_volume_element_location; - integration_weight : context_dependent_measure; -END_ENTITY; -(* USED FROM (structural_response_representation_schema); *) -ENTITY curve_section_integration_explicit; - integration_positions : SET [1:?] OF curve_section_element_location; -END_ENTITY; -(* USED FROM (structural_response_representation_schema); *) -ENTITY curve_2d_element_integrated_matrix; - descriptor : curve_2d_element_descriptor; - property_type : curve_matrix_property_type; - integration_description : text; -END_ENTITY; -(* USED FROM (structural_response_representation_schema); *) -ENTITY curve_2d_element_integrated_matrix_with_definition - SUBTYPE OF (curve_2d_element_integrated_matrix); - integration_definition : curve_2d_element_integration; -END_ENTITY; -(* USED FROM (structural_response_representation_schema); *) -ENTITY curve_2d_element_integration; - section : LIST [1:?] OF curve_section_element_location; -END_ENTITY; -(* USED FROM (assembly_constraint_schema); *) -ENTITY parallel_assembly_constraint - SUBTYPE OF (binary_assembly_constraint, - parallel_geometric_constraint); -END_ENTITY;-- parallel_assembly_constraint -(* USED FROM (structural_response_representation_schema); *) -ENTITY volume_element_location; - coordinates : fea_parametric_point; -END_ENTITY; -(* USED FROM (structural_response_representation_schema); *) -ENTITY surface_volume_element_location; - field_location : surface_element_location; - section_location : surface_section_element_location; -END_ENTITY; -(* USED FROM (structural_response_representation_schema); *) -ENTITY surface_element_location; - coordinates : fea_parametric_point; -END_ENTITY; -(* USED FROM (structural_response_representation_schema); *) -ENTITY surface_section_element_location - SUPERTYPE OF (ONEOF ( - SURFACE_SECTION_ELEMENT_LOCATION_ABSOLUTE, - SURFACE_SECTION_ELEMENT_LOCATION_DIMENSIONLESS)); - above_material_discontinuity : LOGICAL; -END_ENTITY; -(* USED FROM (structural_response_representation_schema); *) -ENTITY surface_section_element_location_absolute - SUBTYPE OF (surface_section_element_location); - offset : context_dependent_measure; -END_ENTITY; -(* USED FROM (structural_response_representation_schema); *) -ENTITY surface_section_element_location_dimensionless - SUBTYPE OF (surface_section_element_location); - coordinate : LIST [1:1] OF parameter_value; -WHERE - WR1: valid_parametric_coordinate (coordinate); -END_ENTITY; -(* USED FROM (structural_response_representation_schema); *) -ENTITY curve_volume_element_location; - field_location : curve_element_location; - section_location : curve_section_element_location; -END_ENTITY; -(* USED FROM (structural_response_representation_schema); *) -ENTITY curve_element_location; - coordinate : fea_parametric_point; -END_ENTITY; -(* USED FROM (structural_response_representation_schema); *) -ENTITY curve_section_element_location; - offsets : ARRAY [1:2] of context_dependent_measure; -END_ENTITY; -(* USED FROM (structural_response_representation_schema); *) -ENTITY element_material; - material_id : identifier; - description : text; - properties : SET [1:?] OF material_property_representation; -END_ENTITY; -(* USED FROM (structural_response_representation_schema); *) -ENTITY fea_material_property_geometric_relationship; - material_ref : fea_material_property_representation; - item : analysis_item_within_representation; -WHERE - WR1: 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.GEOMETRIC_REPRESENTATION_ITEM' IN TYPEOF(item.item); -END_ENTITY; -(* USED FROM (assembly_constraint_schema); *) -ENTITY coaxial_assembly_constraint - SUBTYPE OF (binary_assembly_constraint, - coaxial_geometric_constraint); -END_ENTITY;-- coaxial_assembly_constraint -(* USED FROM (structural_response_representation_schema); *) -ENTITY fea_material_property_representation_item - SUPERTYPE OF (ONEOF ( - FEA_LINEAR_ELASTICITY, - FEA_MASS_DENSITY, - FEA_AREA_DENSITY, - FEA_TANGENTIAL_COEFFICIENT_OF_LINEAR_THERMAL_EXPANSION, - FEA_SECANT_COEFFICIENT_OF_LINEAR_THERMAL_EXPANSION, - FEA_MOISTURE_ABSORPTION, - FEA_SHELL_MEMBRANE_STIFFNESS, - FEA_SHELL_BENDING_STIFFNESS, - FEA_SHELL_MEMBRANE_BENDING_COUPLING_STIFFNESS, - FEA_SHELL_SHEAR_STIFFNESS)) - SUBTYPE OF (representation_item); -END_ENTITY; -(* USED FROM (structural_response_representation_schema); *) -ENTITY fea_linear_elasticity - SUBTYPE OF (fea_material_property_representation_item); - fea_constants : symmetric_tensor4_3d; -END_ENTITY; -(* USED FROM (structural_response_representation_schema); *) -ENTITY fea_mass_density - SUBTYPE OF (fea_material_property_representation_item); - fea_constant : scalar; -END_ENTITY; -(* USED FROM (structural_response_representation_schema); *) -ENTITY fea_area_density - SUBTYPE OF (fea_material_property_representation_item); - fea_constant : scalar; -END_ENTITY; -(* USED FROM (structural_response_representation_schema); *) -ENTITY fea_tangential_coefficient_of_linear_thermal_expansion - SUBTYPE OF (fea_material_property_representation_item); - fea_constants : symmetric_tensor2_3d; -END_ENTITY; -(* USED FROM (structural_response_representation_schema); *) -ENTITY fea_secant_coefficient_of_linear_thermal_expansion - SUBTYPE OF (fea_material_property_representation_item); - fea_constants : symmetric_tensor2_3d; - reference_temperature : thermodynamic_temperature_measure; -END_ENTITY; -(* USED FROM (structural_response_representation_schema); *) -ENTITY fea_moisture_absorption - SUBTYPE OF (fea_material_property_representation_item); - fea_constants : symmetric_tensor2_3d; -END_ENTITY; -(* USED FROM (structural_response_representation_schema); *) -ENTITY fea_shell_membrane_stiffness - SUBTYPE OF (fea_material_property_representation_item); - fea_constants : symmetric_tensor4_2d; -END_ENTITY; -(* USED FROM (structural_response_representation_schema); *) -ENTITY fea_shell_bending_stiffness - SUBTYPE OF (fea_material_property_representation_item); - fea_constants : symmetric_tensor4_2d; -END_ENTITY; -(* USED FROM (structural_response_representation_schema); *) -ENTITY fea_shell_membrane_bending_coupling_stiffness - SUBTYPE OF (fea_material_property_representation_item); - fea_constants : symmetric_tensor4_2d; -END_ENTITY; -(* USED FROM (structural_response_representation_schema); *) -ENTITY fea_shell_shear_stiffness - SUBTYPE OF (fea_material_property_representation_item); - fea_constants : symmetric_tensor2_2d; -END_ENTITY; -(* USED FROM (structural_response_representation_schema); *) -ENTITY surface_element_property; - property_id : identifier; - description : text; - section : surface_section_field; -END_ENTITY; -(* USED FROM (structural_response_representation_schema); *) -ENTITY surface_section_field - SUPERTYPE OF (ONEOF ( - SURFACE_SECTION_FIELD_CONSTANT, - SURFACE_SECTION_FIELD_VARYING)); -END_ENTITY; -(* USED FROM (structural_response_representation_schema); *) -ENTITY surface_section_field_constant - SUBTYPE OF (surface_section_field); - definition : surface_section; -END_ENTITY; -(* USED FROM (structural_response_representation_schema); *) -ENTITY surface_section_field_varying - SUBTYPE OF (surface_section_field); - definitions : LIST [1:?] OF surface_section; - additional_node_values : BOOLEAN; -END_ENTITY; -(* USED FROM (structural_response_representation_schema); *) -ENTITY surface_section - SUPERTYPE OF (ONEOF ( - UNIFORM_SURFACE_SECTION, - UNIFORM_SURFACE_SECTION_LAYERED)); - offset : measure_or_unspecified_value; - non_structural_mass : measure_or_unspecified_value; - non_structural_mass_offset : measure_or_unspecified_value; -END_ENTITY; -(* USED FROM (structural_response_representation_schema); *) -ENTITY uniform_surface_section - SUBTYPE OF (surface_section); - thickness : context_dependent_measure; - bending_thickness : measure_or_unspecified_value; - shear_thickness : measure_or_unspecified_value; -END_ENTITY; -(* USED FROM (structural_response_representation_schema); *) -ENTITY uniform_surface_section_layered - SUBTYPE OF (surface_section); -END_ENTITY; -(* USED FROM (structural_response_representation_schema); *) -ENTITY fea_surface_section_geometric_relationship; - section_ref : surface_section; - item : analysis_item_within_representation; -WHERE - WR1: 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.GEOMETRIC_REPRESENTATION_ITEM' IN TYPEOF(item.item); -END_ENTITY; -(* USED FROM (structural_response_representation_schema); *) -ENTITY curve_3d_element_property; - property_id : identifier; - description : text; - interval_definitions : LIST [1:?] OF curve_element_interval; - end_offsets : ARRAY [1:2] OF curve_element_end_offset; - end_releases : ARRAY [1:2] OF curve_element_end_release; -END_ENTITY; -(* USED FROM (structural_response_representation_schema); *) -ENTITY curve_element_interval - SUPERTYPE OF (ONEOF ( - CURVE_ELEMENT_INTERVAL_CONSTANT, - CURVE_ELEMENT_INTERVAL_LINEARLY_VARYING)); - finish_position : curve_element_location; - eu_angles : euler_angles; -END_ENTITY; -(* USED FROM (structural_response_representation_schema); *) -ENTITY curve_element_interval_constant - SUBTYPE OF (curve_element_interval); - section : curve_element_section_definition; -END_ENTITY; -(* USED FROM (structural_response_representation_schema); *) -ENTITY curve_element_interval_linearly_varying - SUBTYPE OF (curve_element_interval); - sections : ARRAY [1:2] OF curve_element_section_definition; -END_ENTITY; -(* USED FROM (structural_response_representation_schema); *) -ENTITY curve_2d_element_property; - property_id : identifier; - description : text; - section : curve_element_section_definition; -END_ENTITY; -(* USED FROM (structural_response_representation_schema); *) -ENTITY curve_element_section_definition - SUPERTYPE OF ( - CURVE_ELEMENT_SECTION_DERIVED_DEFINITIONS); - description : text; - section_angle : plane_angle_measure; -END_ENTITY; -(* USED FROM (structural_response_representation_schema); *) -ENTITY curve_element_section_derived_definitions - SUBTYPE OF (curve_element_section_definition); - cross_sectional_area : context_dependent_measure; - shear_area : ARRAY [1:2] OF measure_or_unspecified_value; - second_moment_of_area : ARRAY [1:3] OF context_dependent_measure; - torsional_constant : context_dependent_measure; - warping_constant : measure_or_unspecified_value; - location_of_centroid : ARRAY [1:2] OF measure_or_unspecified_value; - location_of_shear_centre : ARRAY [1:2] OF measure_or_unspecified_value; - location_of_non_structural_mass - : ARRAY [1:2] OF measure_or_unspecified_value; - non_structural_mass : measure_or_unspecified_value; - polar_moment : measure_or_unspecified_value; -END_ENTITY; -(* USED FROM (structural_response_representation_schema); *) -ENTITY fea_curve_section_geometric_relationship; - section_ref : curve_element_section_definition; - item : analysis_item_within_representation; -WHERE - WR1: 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.GEOMETRIC_REPRESENTATION_ITEM' IN TYPEOF(item.item); -END_ENTITY; -(* USED FROM (structural_response_representation_schema); *) -ENTITY curve_element_end_offset; - coordinate_system : curve_element_end_coordinate_system; - offset_vector : ARRAY [1:3] OF context_dependent_measure; -END_ENTITY; -(* USED FROM (structural_response_representation_schema); *) -ENTITY curve_element_end_release; - coordinate_system : curve_element_end_coordinate_system; - releases : LIST [1:?] OF curve_element_end_release_packet; -END_ENTITY; -(* USED FROM (structural_response_representation_schema); *) -ENTITY curve_element_end_release_packet; - release_freedom : curve_element_freedom; - release_stiffness : context_dependent_measure; -END_ENTITY; -(* USED FROM (structural_response_representation_schema); *) -ENTITY axisymmetric_2d_element_property; - angle : plane_angle_measure; -END_ENTITY; -(* USED FROM (structural_response_representation_schema); *) -ENTITY plane_2d_element_property - SUPERTYPE OF ( - SIMPLE_PLANE_2D_ELEMENT_PROPERTY); - depth : context_dependent_measure; -END_ENTITY; -(* USED FROM (structural_response_representation_schema); *) -ENTITY simple_plane_2d_element_property - SUBTYPE OF (plane_2d_element_property); -END_ENTITY; -(* USED FROM (structural_response_representation_schema); *) -ENTITY fea_group - SUPERTYPE OF (ONEOF ( - ELEMENT_GROUP, - NODE_GROUP)) - SUBTYPE OF (group); - model_ref : fea_model; -END_ENTITY; -(* USED FROM (structural_response_representation_schema); *) -ENTITY element_group - SUBTYPE OF (fea_group); - elements : SET [1:?] OF element_representation; -END_ENTITY; -(* USED FROM (structural_response_representation_schema); *) -ENTITY node_group - SUBTYPE OF (fea_group); - nodes : SET [1:?] OF node_representation; -END_ENTITY; -(* USED FROM (structural_response_representation_schema); *) -ENTITY fea_group_relation - SUBTYPE OF (group_relationship); -WHERE - WR1: 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FEA_GROUP' - IN TYPEOF (SELF\group_relationship.relating_group); - WR2: 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FEA_GROUP' - IN TYPEOF (SELF\group_relationship.related_group); -END_ENTITY; -(* USED FROM (process_property_schema); *) -ENTITY requirement_for_action_resource - SUBTYPE OF (action_resource_requirement); - resources : SET [1:?] OF action_resource; -END_ENTITY; -(* USED FROM (process_property_schema); *) -ENTITY resource_property; - name : label; - description : text; - resource : characterized_resource_definition; -END_ENTITY; -(* USED FROM (kinematic_state_schema); *) -ENTITY screw_pair_value - SUBTYPE OF (pair_value); - SELF\pair_value.applies_to_pair : screw_pair; - actual_rotation : plane_angle_measure; -DERIVE - actual_translation : length_measure - := SELF\pair_value.applies_to_pair\ - screw_pair.pitch * - plane_angle_for_pair_in_radian - (SELF\pair_value.applies_to_pair, - actual_rotation) / (2 * PI); -END_ENTITY; -(* USED FROM (kinematic_state_schema); *) -ENTITY prismatic_pair_value - SUBTYPE OF (pair_value); - SELF\pair_value.applies_to_pair : prismatic_pair; - actual_translation : length_measure; -END_ENTITY; -(* USED FROM (kinematic_state_schema); *) -ENTITY cylindrical_pair_value - SUBTYPE OF (pair_value); - SELF\pair_value.applies_to_pair : cylindrical_pair; - actual_translation : length_measure; - actual_rotation : plane_angle_measure; -END_ENTITY; -(* USED FROM (kinematic_state_schema); *) -ENTITY rolling_surface_pair_value - SUBTYPE OF (pair_value); - SELF\pair_value.applies_to_pair : rolling_surface_pair; - actual_point_on_surface : point_on_surface; - actual_rotation : plane_angle_measure; -WHERE - WR1: SELF\pair_value.applies_to_pair\surface_pair.surface_1 :=: - actual_point_on_surface.basis_surface; -END_ENTITY; -(* USED FROM (mesh_topology_schema); *) -ENTITY array_based_unstructured_mesh - SUBTYPE OF (unstructured_mesh); - cells : ARRAY [1:cell_count] OF vertex_defined_cell; -WHERE - wr1 : SELF\mesh.index_count = 1; -END_ENTITY; -(* USED FROM (kinematic_state_schema); *) -ENTITY revolute_pair_value - SUBTYPE OF (pair_value); - SELF\pair_value.applies_to_pair : revolute_pair; - actual_rotation : plane_angle_measure ; -END_ENTITY; -(* USED FROM (mesh_topology_schema); *) -ENTITY cell - SUPERTYPE OF (ONEOF ( - CELL_OF_STRUCTURED_MESH, - VERTEX_DEFINED_CELL)) - SUBTYPE OF (topological_representation_item); - description : text; - dimension : INTEGER; -END_ENTITY; -(* USED FROM (mesh_topology_schema); *) -ENTITY cell_of_structured_mesh - SUBTYPE OF (cell); - the_mesh : structured_mesh; - cell_identifier : ARRAY [1:index_count] OF INTEGER; -DERIVE - index_count : INTEGER := the_mesh\mesh.index_count; -END_ENTITY; -(* USED FROM (mesh_topology_schema); *) -ENTITY cell_with_explicit_boundary - SUBTYPE OF (cell); - boundary : SET [1:?] OF topological_representation_item; -END_ENTITY; -(* USED FROM (mesh_topology_schema); *) -ENTITY explicit_unstructured_mesh - SUBTYPE OF (unstructured_mesh); - explicit_model : fea_model; - cells : ARRAY [1:cell_count] OF UNIQUE element_representation; -END_ENTITY; -(* USED FROM (mesh_topology_schema); *) -ENTITY extraction_of_structured_submesh -SUBTYPE OF(extraction_of_submesh); - lower_vertex : ARRAY [1:whole_indices] OF INTEGER; - used_indices : ARRAY [1:part_indices] OF INTEGER; - used_senses : ARRAY [1:part_indices] OF BOOLEAN; -DERIVE - whole_indices : INTEGER := whole\mesh.index_count; - part_indices : INTEGER := part\mesh.index_count; -WHERE - WR1: ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.STRUCTURED_MESH' IN TYPEOF( - SELF\extraction_of_submesh.whole)); - WR2: ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.STRUCTURED_MESH' IN TYPEOF( - SELF\extraction_of_submesh.part)); - -END_ENTITY; -(* USED FROM (mesh_topology_schema); *) -ENTITY extraction_of_submesh; - whole: mesh; - part: submesh; -END_ENTITY; -(* USED FROM (mesh_topology_schema); *) -ENTITY extraction_of_submesh_by_cells - SUBTYPE OF (extraction_of_submesh); - cell_count: INTEGER; - cells : ARRAY [1:cell_count] OF cell; -END_ENTITY; -(* USED FROM (mesh_topology_schema); *) -ENTITY extraction_of_submesh_by_vertices - SUBTYPE OF (extraction_of_submesh); - vertex_count: INTEGER; - vertices : ARRAY [1:vertex_count] OF vertex; -END_ENTITY; -(* USED FROM (mesh_topology_schema); *) -ENTITY indices_list; - nindices : INTEGER; - indices : LIST [1:?] OF ARRAY [1:nindices] OF INTEGER; -END_ENTITY; -(* USED FROM (mesh_topology_schema); *) -ENTITY indices_range; - nindices : INTEGER; - start : ARRAY [1:nindices] OF INTEGER; - finish : ARRAY [1:nindices] OF INTEGER; -END_ENTITY; -(* USED FROM (mesh_topology_schema); *) -ENTITY mesh - ABSTRACT SUPERTYPE OF (ONEOF ( - STRUCTURED_MESH, - UNSTRUCTURED_MESH) - ANDOR - SUBMESH) - SUBTYPE OF (topological_representation_item); - description : text; - index_count : INTEGER; -END_ENTITY; -(* USED FROM (mesh_topology_schema); *) -ENTITY mesh_derived_maths_space - SUBTYPE OF (maths_space); - description : text; - name : label; - id : identifier; - the_mesh : mesh; - kind : mesh_maths_space_type; -END_ENTITY; -(* USED FROM (mesh_topology_schema); *) -ENTITY product_of_mesh; - operands : LIST [2:2] OF mesh; - product : mesh; -WHERE - wr1 : (this_schema+'.STRUCTURED_MESH' IN TYPEOF(operands[1])) AND - (this_schema+'.STRUCTURED_MESH' IN TYPEOF(operands[2])) AND - (this_schema+'.STRUCTURED_MESH' IN TYPEOF(product)); - wr2 : operands[1].index_count = 1; - wr3 : operands[1].index_count + operands[2].index_count - = product.index_count; -END_ENTITY; -(* USED FROM (mesh_topology_schema); *) -ENTITY rind; - index_count : INTEGER; - planes : ARRAY [1:2*index_count] OF INTEGER; -END_ENTITY; -(* USED FROM (mesh_topology_schema); *) -ENTITY structured_mesh - SUBTYPE OF (mesh); - vertex_counts : ARRAY [1:SELF\mesh.index_count] OF INTEGER; - cell_counts : ARRAY [1:SELF\mesh.index_count] OF INTEGER; - kind : structured_mesh_type; -END_ENTITY; -(* USED FROM (mesh_topology_schema); *) -ENTITY structured_mesh_with_rind - SUBTYPE OF (structured_mesh); - rind_planes : rind; -END_ENTITY; -(* USED FROM (mesh_topology_schema); *) -ENTITY submesh - SUBTYPE OF (mesh); -END_ENTITY; -(* USED FROM (mesh_topology_schema); *) -ENTITY unstructured_mesh - ABSTRACT SUPERTYPE OF (ONEOF ( - ARRAY_BASED_UNSTRUCTURED_MESH, - EXPLICIT_UNSTRUCTURED_MESH)) - SUBTYPE OF (mesh); - cell_count : INTEGER; -END_ENTITY; -(* USED FROM (mesh_topology_schema); *) -ENTITY vertex_defined_cell - SUBTYPE OF (cell); - shape : cell_shape; - order : element_order; - vertices : ARRAY [1:vn_count] OF OPTIONAL vertex; -DERIVE - bound_count : INTEGER := cell_counts(SELF)[1]; - edge_node_count : INTEGER := cell_counts(SELF)[2]; - opt_node_count : INTEGER := cell_counts(SELF)[3]; - required_count : INTEGER := bound_count + edge_node_count; - vn_count : INTEGER := required_count + opt_node_count; - required_vertices : ARRAY [1:required_count] OF vertex - := shorten_array(vertices, vn_count, required_count); -END_ENTITY; -(* USED FROM (product_analysis_schema); *) -ENTITY behavioural_decomposition_of_temporal_spatial_domain; - parts : SET [2 : ?] OF temporal_spatial_domain; - whole : temporal_spatial_domain; -END_ENTITY; -(* USED FROM (product_analysis_schema); *) -ENTITY domain_property; - domain : temporal_spatial_domain; - property_type : general_property; -END_ENTITY; -(* USED FROM (product_analysis_schema); *) -ENTITY physical_action_domain -SUBTYPE OF (temporal_spatial_domain); - initial : physical_state_domain; - final : physical_state_domain; -END_ENTITY; -(* USED FROM (product_analysis_schema); *) -ENTITY physical_product_domain -SUBTYPE OF (temporal_spatial_domain); - temporal_parts : SET [0 : ?] OF physical_action_domain; -END_ENTITY; -(* USED FROM (product_analysis_schema); *) -ENTITY physical_state_domain -SUBTYPE OF (temporal_spatial_domain); -END_ENTITY; -(* USED FROM (product_analysis_schema); *) -ENTITY spatial_decomposition_of_temporal_spatial_domain; - parts : SET [2 : ?] OF temporal_spatial_domain; - whole : temporal_spatial_domain; -END_ENTITY; -(* USED FROM (product_analysis_schema); *) -ENTITY temporal_decomposition_of_action_domain; - whole : physical_action_domain; - parts : LIST [2 : ?] OF physical_action_domain; -END_ENTITY; -(* USED FROM (Production_rule_mim); *) -ENTITY abstract_variable - SUBTYPE OF (property_definition, property_definition_representation, representation, representation_item); -END_ENTITY; -(* USED FROM (basic_attribute_schema); *) - ENTITY description_attribute; - attribute_value : text; - described_item : description_attribute_select; - END_ENTITY; -(* USED FROM (measure_schema); *) - ENTITY global_unit_assigned_context - SUBTYPE OF (representation_context); - units : SET [1:?] OF unit; - END_ENTITY; -(* USED FROM (qualified_measure_schema); *) -ENTITY descriptive_representation_item - SUPERTYPE OF (ONEOF ( - TAGGED_TEXT_ITEM, - UNIFORM_RESOURCE_IDENTIFIER) ) - SUBTYPE OF (representation_item); - description : text; -END_ENTITY; -(* USED FROM (representation_schema); *) - ENTITY global_uncertainty_assigned_context - SUBTYPE OF (representation_context); - uncertainty : SET [1:?] OF uncertainty_measure_with_unit; - END_ENTITY; -(* USED FROM (representation_schema); *) - ENTITY representation SUPERTYPE OF ( ( ONEOF ( - INTERPOLATED_CONFIGURATION_REPRESENTATION, - LINK_MOTION_REPRESENTATION_ALONG_PATH) )ANDOR( ONEOF ( - KINEMATIC_LINK_REPRESENTATION, - KINEMATIC_TOPOLOGY_STRUCTURE, - KINEMATIC_TOPOLOGY_DIRECTED_STRUCTURE, - KINEMATIC_TOPOLOGY_NETWORK_STRUCTURE, - MECHANISM_REPRESENTATION, - SHAPE_REPRESENTATION) )ANDOR( ONEOF ( - KINEMATIC_TOPOLOGY_STRUCTURE, - KINEMATIC_TOPOLOGY_DIRECTED_STRUCTURE, - KINEMATIC_TOPOLOGY_NETWORK_STRUCTURE) ) ) ; - name : label; - items : SET[1:?] OF representation_item; - context_of_items : representation_context; - DERIVE - id : identifier := get_id_value (SELF); - description : text := get_description_value (SELF); - WHERE - WR1: SIZEOF (USEDIN (SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + - 'ID_ATTRIBUTE.IDENTIFIED_ITEM')) - <= 1; - WR2: SIZEOF (USEDIN (SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + - 'DESCRIPTION_ATTRIBUTE.DESCRIBED_ITEM')) - <= 1; - END_ENTITY; -(* USED FROM (representation_schema); *) - ENTITY representation_context; - context_identifier : identifier; - context_type : text; - INVERSE - representations_in_context : SET [1:?] OF representation FOR context_of_items; - END_ENTITY; -(* USED FROM (representation_schema); *) - ENTITY representation_item - SUPERTYPE OF ( ( ONEOF ( - BINARY_REPRESENTATION_ITEM, - COMPOUND_REPRESENTATION_ITEM, - MAPPED_ITEM, - VALUE_REPRESENTATION_ITEM) )ANDOR( ONEOF ( - MAPPED_ITEM, - STYLED_ITEM) )ANDOR( (ONEOF ( - 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; -(* USED FROM (representation_schema); *) - ENTITY representation_relationship; - name : label; - description : OPTIONAL text; - rep_1 : representation; - rep_2 : representation; - END_ENTITY; -(* USED FROM (Production_rule_mim); *) -ENTITY complex_clause - SUBTYPE OF (compound_representation_item); -END_ENTITY; -(* USED FROM (conditions_schema); *) -ENTITY elements_bc - SUBTYPE OF (mbna_bc); - elements : LIST OF vertex_defined_cell; -END_ENTITY; -(* USED FROM (conditions_schema); *) -ENTITY fd_bc - SUBTYPE OF (mbna_bc); - SELF\mbna_bc.datasets : SET OF fd_bc_dataset; -END_ENTITY; -(* USED FROM (conditions_schema); *) -ENTITY fd_bc_dataset - SUBTYPE OF (mbna_bc_dataset); - SELF\mbna_bc_dataset.the_type : fd_bc_type_simple; -END_ENTITY; -(* USED FROM (conditions_schema); *) -ENTITY fd_zone_bc - SUBTYPE OF (mbna_zone_bc); - SELF\mbna_zone_bc.conditions : SET OF fd_bc; -END_ENTITY; -(* USED FROM (conditions_schema); *) -ENTITY indexed_elements_bc - SUBTYPE OF (mbna_bc); - element_indices : indices_group; -END_ENTITY; -(* USED FROM (conditions_schema); *) -ENTITY indexed_points_bc - SUBTYPE OF (mbna_bc); - point_indices : indices_group; -END_ENTITY; -(* USED FROM (conditions_schema); *) -ENTITY mbna_bc - SUPERTYPE OF (ONEOF ( - ELEMENTS_BC, - INDEXED_ELEMENTS_BC, - INDEXED_POINTS_BC)) - SUBTYPE OF (mbna_condition); - datasets : SET OF mbna_bc_dataset; - gridloc : mesh_location; - inward_normal_index : OPTIONAL ijk_minmax; - inward_normal_list : OPTIONAL indices_list; - rstate : SET OF mbna_reference_state; - the_type : mbna_bc_type; -END_ENTITY; -(* USED FROM (conditions_schema); *) -ENTITY mbna_bc_data - - SUBTYPE OF (mbna_condition); -END_ENTITY; -(* USED FROM (conditions_schema); *) -ENTITY mbna_bc_data_global - SUBTYPE OF (mbna_bc_data); -INVERSE - data_global : SET OF model_property_distribution FOR domain; -END_ENTITY; -(* USED FROM (conditions_schema); *) -ENTITY mbna_bc_data_local - SUBTYPE OF (mbna_bc_data); -INVERSE - data_local : SET OF model_property_distribution FOR domain; -END_ENTITY; -(* USED FROM (conditions_schema); *) -ENTITY mbna_bc_dataset - SUPERTYPE OF (ONEOF ( - MBNA_DIRICHLET_BC_DATASET, - MBNA_NEUMANN_BC_DATASET)) - SUBTYPE OF (mbna_condition); - gridloc : mesh_location; - rstate : SET OF mbna_reference_state; - the_type : mbna_bc_type_simple; -END_ENTITY; -(* USED FROM (conditions_schema); *) -ENTITY mbna_condition - ABSTRACT SUPERTYPE OF (ONEOF ( - MBNA_ZONE_BC, - MBNA_BC, - MBNA_BC_DATASET, - MBNA_BC_DATA, - MBNA_REFERENCE_STATE)) - SUBTYPE OF (model_state_domain); -END_ENTITY; -(* USED FROM (conditions_schema); *) -ENTITY mbna_Dirichlet_bc_dataset - SUBTYPE OF (mbna_bc_dataset); - data : mbna_bc_data; -END_ENTITY; -(* USED FROM (conditions_schema); *) -ENTITY mbna_Neumann_bc_dataset - SUBTYPE OF (mbna_bc_dataset); - data : mbna_bc_data; -END_ENTITY; -(* USED FROM (conditions_schema); *) -ENTITY mbna_reference_state - SUBTYPE OF (mbna_condition); -INVERSE - data : SET OF model_property_distribution FOR domain; -END_ENTITY; -(* USED FROM (conditions_schema); *) -ENTITY mbna_zone_bc - SUBTYPE OF (mbna_condition); - conditions : SET OF mbna_bc; - rstate : SET OF mbna_reference_state; -END_ENTITY; -(* USED FROM (equations_schema); *) -ENTITY fd_diffusion_equation - SUBTYPE OF (fd_governing_equation); - diffusion_model : fd_diffusion_model; -END_ENTITY; -(* USED FROM (equations_schema); *) -ENTITY fd_diffusion_model; - terms : ARRAY [1:diff] OF BOOLEAN; - diff : INTEGER; -END_ENTITY; -(* USED FROM (equations_schema); *) -ENTITY fd_governing_equation - SUBTYPE OF (mbna_governing_equation); - SELF\mbna_governing_equation.equation_type - : fd_governing_equation_type; -END_ENTITY; -(* USED FROM (equations_schema); *) -ENTITY flow_equation_set - SUBTYPE OF (mbna_equation_set); - SELF\mbna_equation_set.equations : fd_governing_equation; - fd_models : SET OF fd_behaviour_models; -END_ENTITY; -(* USED FROM (equations_schema); *) -ENTITY gas_model - SUBTYPE OF (mbna_behaviour_model); - model_type : gas_model_type; -END_ENTITY; -(* USED FROM (equations_schema); *) -ENTITY mbna_behaviour_model - SUPERTYPE OF (ONEOF ( - THERMAL_CONDUCTIVITY_MODEL, - GAS_MODEL, - TURBULENCE_CLOSURE, - TURBULENCE_MODEL, - VISCOSITY_MODEL) ) - SUBTYPE OF (mbna_equation); -INVERSE - data : SET OF model_property_distribution FOR domain; -END_ENTITY; -(* USED FROM (equations_schema); *) -ENTITY mbna_equation - SUPERTYPE OF (ONEOF ( - MBNA_EQUATION_SET, - MBNA_GOVERNING_EQUATION, - MBNA_BEHAVIOUR_MODEL) ) - SUBTYPE OF (model_product_domain); -END_ENTITY; -(* USED FROM (equations_schema); *) -ENTITY mbna_equation_set - SUBTYPE OF (mbna_equation); - dimension : INTEGER; - equations : mbna_governing_equation; - mbna_models : SET OF mbna_behaviour_models; -END_ENTITY; -(* USED FROM (equations_schema); *) -ENTITY mbna_governing_equation - SUBTYPE OF (mbna_equation); - equation_type : mbna_governing_equation_type; -END_ENTITY; -(* USED FROM (equations_schema); *) -ENTITY thermal_conductivity_model - SUBTYPE OF (mbna_behaviour_model); - model_type : thermal_conductivity_model_type; -END_ENTITY; -(* USED FROM (equations_schema); *) -ENTITY turbulence_closure - SUBTYPE OF (mbna_behaviour_model); - closure_type : turbulence_closure_type; -END_ENTITY; -(* USED FROM (equations_schema); *) -ENTITY turbulence_model - SUBTYPE OF (mbna_behaviour_model); - model_type : turbulence_model_type; - diffusion_model : OPTIONAL fd_diffusion_model; -END_ENTITY; -(* USED FROM (equations_schema); *) -ENTITY viscosity_model - SUBTYPE OF (mbna_behaviour_model); - model_type : viscosity_model_type; -END_ENTITY; -(* USED FROM (hierarchy_schema); *) -ENTITY fd_step - SUBTYPE OF (mbna_step); - SELF\mbna_step.equations : SET OF flow_equation_set; - SELF\mbna_step.zones : LIST OF fd_zone; -END_ENTITY; -(* USED FROM (hierarchy_schema); *) -ENTITY fd_zone - SUBTYPE OF (mbna_zone); - SELF\mbna_zone.conditions : SET OF fd_zone_bc; - SELF\mbna_zone.equations : SET OF flow_equation_set; -END_ENTITY; -(* USED FROM (hierarchy_schema); *) -ENTITY mbna_model - SUBTYPE OF (model_product_domain); - SELF\model_product_domain.temporal_parts : LIST OF mbna_step; - equations : SET OF mbna_equation_set; - INVERSE - history : SET OF mbna_history for domain; -END_ENTITY; -(* USED FROM (hierarchy_schema); *) -ENTITY mbna_state - SUBTYPE OF (model_state_domain); -END_ENTITY; -(* USED FROM (hierarchy_schema); *) -ENTITY mbna_step - SUBTYPE OF (model_action_domain); - - SELF\model_action_domain.final : mbna_state; - equations : SET OF mbna_equation_set; - refstate : SET OF mbna_reference_state; - zones : LIST OF mbna_zone; -INVERSE - history : SET OF mbna_history for domain; -END_ENTITY; -(* USED FROM (hierarchy_schema); *) -ENTITY mbna_zone - SUBTYPE OF (model_product_domain_with_mesh); - conditions : SET OF mbna_zone_bc; - equations : SET OF mbna_equation_set; - grid_connectivity : OPTIONAL multiple_mesh_block; - rstate : SET OF mbna_reference_state; -INVERSE - coordinates : SET OF grid_coordinates FOR domain; - field_data : SET OF mbna_discrete_data FOR domain; - history : SET OF mbna_history FOR domain; - solution : SET OF mbna_solution FOR domain; -END_ENTITY; -(* USED FROM (Production_rule_mim); *) -ENTITY rule_definition - SUBTYPE OF (rule_software_definition); -END_ENTITY; -(* USED FROM (domain_schema); *) -ENTITY grid_coordinates_with_rind - SUBTYPE OF (grid_coordinates); - rind_planes : rind; -END_ENTITY; -(* USED FROM (mesh_connectivity_schema); *) -ENTITY matched_mesh_connection - SUBTYPE OF (mesh_connectivity); - SELF\mesh_connectivity.current : structured_mesh; - range : indices_range; - donor : structured_mesh; - donor_range : indices_range; - transform : ARRAY [1:index_count] OF INTEGER; -WHERE - wr1 : current :<>: donor; - wr2 : donor.index_count = index_count; - wr3 : range.nindices = index_count; - wr4 : donor_range.nindices = index_count; -END_ENTITY; -(* USED FROM (mesh_connectivity_schema); *) -ENTITY mesh_connectivity - ABSTRACT SUPERTYPE OF (ONEOF ( - MATCHED_MESH_CONNECTION, - MISMATCHED_MESH_CONNECTION)); - name : label; - description : text; - id : identifier; - current : mesh; -DERIVE - index_count : INTEGER := current.index_count; -END_ENTITY; -(* USED FROM (mesh_connectivity_schema); *) -ENTITY mesh_overset_hole - SUBTYPE OF (mismatched_mesh_connection); -END_ENTITY; -(* USED FROM (mesh_connectivity_schema); *) -ENTITY mismatched_donor_mesh - ABSTRACT SUPERTYPE OF (ONEOF ( - STRUCTURED_DONOR_MESH, - UNSTRUCTURED_DONOR_MESH)); - donor: mesh; -INVERSE - connect : mismatched_mesh_region FOR donor; -END_ENTITY; -(* USED FROM (mesh_connectivity_schema); *) -ENTITY mismatched_mesh_connection - ABSTRACT SUPERTYPE OF (ONEOF ( - MISMATCHED_MESH_REGION, - MESH_OVERSET_HOLE)) - - SUBTYPE OF (mesh_connectivity); - points : indices_group; - gridloc : mesh_location; -END_ENTITY; -(* USED FROM (mesh_connectivity_schema); *) -ENTITY mismatched_mesh_region - SUBTYPE OF (mismatched_mesh_connection); - donor : mismatched_donor_mesh; - kind : mismatched_region_type; -WHERE - wr1 : donor.donor :<>: SELF\mesh_connectivity.current; -END_ENTITY; -(* USED FROM (mesh_connectivity_schema); *) -ENTITY multiple_mesh_block; - name : label; - description : text; - id : identifier; - connectivities : LIST OF mesh_connectivity; -END_ENTITY; -(* USED FROM (mesh_connectivity_schema); *) -ENTITY structured_donor_mesh - SUBTYPE OF (mismatched_donor_mesh); - SELF\mismatched_donor_mesh.donor : structured_mesh; - points : listed_real_data; - vsize : INTEGER; -DERIVE - index_count : INTEGER := donor.index_count; -END_ENTITY; -(* USED FROM (mesh_connectivity_schema); *) -ENTITY unstructured_donor_mesh - SUBTYPE OF (mismatched_donor_mesh); - SELF\mismatched_donor_mesh.donor : unstructured_mesh; - cells : indices_group; - interpolant : property_distribution_description; - vsize : INTEGER; -DERIVE - index_count : INTEGER := donor.index_count; -END_ENTITY; -(* USED FROM (product_property_definition_schema); *) - ENTITY general_property_association; - name : label; - description : OPTIONAL text; - base_definition : general_property; - derived_definition : derived_property_select; - WHERE - WR1: SIZEOF(USEDIN(derived_definition, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'GENERAL_PROPERTY_ASSOCIATION.' + 'DERIVED_DEFINITION')) = 1; - WR2: derived_definition.name = base_definition.name; - END_ENTITY; -(* USED FROM (product_property_definition_schema); *) - ENTITY property_definition SUPERTYPE OF (ONEOF ( - PRODUCT_DEFINITION_KINEMATICS, - PRODUCT_DEFINITION_RELATIONSHIP_KINEMATICS, - PRODUCT_DEFINITION_SHAPE) ) ; - name : label; - description : OPTIONAL text; - definition : characterized_definition; - DERIVE - id : identifier := get_id_value(SELF); - WHERE - WR1: SIZEOF(USEDIN(SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'ID_ATTRIBUTE.IDENTIFIED_ITEM')) <= 1; - END_ENTITY; -(* USED FROM (product_property_representation_schema); *) - 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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'DESCRIPTION_ATTRIBUTE.DESCRIBED_ITEM')) <= 1; - WR2: SIZEOF(USEDIN(SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'NAME_ATTRIBUTE.NAMED_ITEM')) <= 1; - END_ENTITY; -(* USED FROM (product_structure_schema); *) -ENTITY assembly_component_usage - SUPERTYPE OF ( - QUANTIFIED_ASSEMBLY_COMPONENT_USAGE - ANDOR ONEOF ( - MULTI_LEVEL_REFERENCE_DESIGNATOR, - NEXT_ASSEMBLY_USAGE_OCCURRENCE, - PROMISSORY_USAGE_OCCURRENCE, - SPECIFIED_HIGHER_USAGE_OCCURRENCE)) - SUBTYPE OF (product_definition_usage); - reference_designator : OPTIONAL identifier; -END_ENTITY; -(* USED FROM (product_structure_schema); *) -ENTITY next_assembly_usage_occurrence - SUBTYPE OF (assembly_component_usage); -UNIQUE - UR1 : SELF\assembly_component_usage.reference_designator, SELF\product_definition_relationship.relating_product_definition; -END_ENTITY; -(* USED FROM (product_structure_schema); *) -ENTITY promissory_usage_occurrence - SUBTYPE OF (assembly_component_usage); -END_ENTITY; -(* USED FROM (product_structure_schema); *) -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; -(* USED FROM (Product_as_individual_mim); *) -ENTITY product_design_version_to_individual - SUBTYPE OF (product_definition_formation_relationship); - - (* removed : SELF\product_definition_formation_relationship.individual_product : PRODUCT_DEFINITION_FORMATION *) - - (* removed : SELF\product_definition_formation_relationship.product_design_version : PRODUCT_DEFINITION_FORMATION *) - DERIVE - individual_product : PRODUCT_DEFINITION_FORMATION := SELF\product_definition_formation_relationship.related_product_definition_formation; -- RELATED_PRODUCT_DEFINITION_FORMATION : This ATTRIBUTE was RENAMED in the EXPRESS E2 source, this is the new name implemented as DERIVE - product_design_version : PRODUCT_DEFINITION_FORMATION := SELF\product_definition_formation_relationship.relating_product_definition_formation; -- RELATING_PRODUCT_DEFINITION_FORMATION : This ATTRIBUTE was RENAMED in the EXPRESS E2 source, this is the new name implemented as DERIVE - -END_ENTITY; -(* USED FROM (Production_rule_mim); *) -ENTITY symbol - SUBTYPE OF (representation_item); -END_ENTITY; -(* USED FROM (kinematic_state_schema); *) -ENTITY pair_value - ABSTRACT SUPERTYPE OF (ONEOF ( - SLIDING_SURFACE_PAIR_VALUE, - ROLLING_SURFACE_PAIR_VALUE, - REVOLUTE_PAIR_VALUE, - PRISMATIC_PAIR_VALUE, - SCREW_PAIR_VALUE, - CYLINDRICAL_PAIR_VALUE, - SPHERICAL_PAIR_VALUE, - SLIDING_CURVE_PAIR_VALUE, - ROLLING_CURVE_PAIR_VALUE, - GEAR_PAIR_VALUE, - RACK_AND_PINION_PAIR_VALUE, - UNIVERSAL_PAIR_VALUE, - PLANAR_PAIR_VALUE, - UNCONSTRAINED_PAIR_VALUE, - POINT_ON_SURFACE_PAIR_VALUE, - POINT_ON_PLANAR_CURVE_PAIR_VALUE, - LOW_ORDER_KINEMATIC_PAIR_VALUE)) - SUBTYPE OF (geometric_representation_item); - applies_to_pair : kinematic_pair; -END_ENTITY; -(* USED FROM (kinematic_state_schema); *) -ENTITY mechanism_state_representation - SUBTYPE OF (representation); - SELF\representation.items : SET[1:?] OF pair_value; - represented_mechanism : mechanism_representation; -DERIVE - SELF\representation.context_of_items : geometric_representation_context := represented_mechanism.context_of_items; -END_ENTITY; -(* USED FROM (product_property_representation_schema); *) - ENTITY shape_representation_relationship - SUBTYPE OF (representation_relationship); - WHERE - WR1: 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION' IN (TYPEOF(SELF\representation_relationship.rep_1) + TYPEOF(SELF\representation_relationship.rep_2)); - END_ENTITY; -(* USED FROM (External_item_identification_assignment_mim); *) -ENTITY applied_external_identification_assignment -SUBTYPE OF (external_identification_assignment); - items : SET [1 : ?] OF external_identification_item; -END_ENTITY; -(* USED FROM (management_resources_schema); *) - ENTITY external_identification_assignment - ABSTRACT SUPERTYPE - SUBTYPE OF (identification_assignment); - source : external_source; - END_ENTITY; -(* USED FROM (external_reference_schema); *) - ENTITY externally_defined_item; - item_id : source_item; - source : external_source; - END_ENTITY; -(* USED FROM (external_reference_schema); *) - ENTITY external_source; - source_id : source_item; - DERIVE - description : text := get_description_value(SELF); - WHERE - WR1: SIZEOF(USEDIN(SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'DESCRIPTION_ATTRIBUTE.DESCRIBED_ITEM')) <= 1; - END_ENTITY; -(* USED FROM (product_definition_schema); *) - ENTITY generic_product_definition_reference - ABSTRACT SUPERTYPE OF (ONEOF ( - PRODUCT_DEFINITION_REFERENCE, - PRODUCT_DEFINITION_REFERENCE_WITH_LOCAL_REPRESENTATION)); - source : external_source; - END_ENTITY; -(* USED FROM (product_definition_schema); *) - ENTITY product_definition_reference - SUBTYPE OF (generic_product_definition_reference); - product_id : identifier; - product_definition_formation_id : identifier; - product_definition_id : identifier; - id_owning_organization_name : OPTIONAL label; - END_ENTITY; -(* USED FROM (product_definition_schema); *) - ENTITY product_definition_reference_with_local_representation - SUBTYPE OF (generic_product_definition_reference, product_definition); - END_ENTITY; -(* USED FROM (product_definition_schema); *) - ENTITY product_definition_relationship; - id : identifier; - name : label; - description : OPTIONAL text; - relating_product_definition : product_definition_or_reference; - related_product_definition : product_definition_or_reference; - END_ENTITY; -(* USED FROM (Configuration_item_mim); *) -ENTITY configuration_item_hierarchical_relationship - SUBTYPE OF (configuration_item_relationship); -END_ENTITY; -(* USED FROM (product_property_definition_schema); *) - ENTITY product_definition_shape - SUBTYPE OF (property_definition); - UNIQUE - UR1: SELF\property_definition.definition; - WHERE - WR1: SIZEOF(['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CHARACTERIZED_PRODUCT_DEFINITION', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CHARACTERIZED_OBJECT'] * TYPEOF(SELF\property_definition.definition)) > 0; - END_ENTITY; -(* USED FROM (product_property_definition_schema); *) - ENTITY shape_aspect SUPERTYPE OF (ONEOF ( - CONTACTING_FEATURE, - DATUM, - DATUM_FEATURE, - DATUM_TARGET, - DATUM_SYSTEM, - GENERAL_DATUM_REFERENCE) ) ; - name : label; - description : OPTIONAL text; - of_shape : product_definition_shape; - product_definitional : LOGICAL; - DERIVE - id : identifier := get_id_value(SELF); - UNIQUE - UR1: id, of_shape; - WHERE - WR1: SIZEOF(USEDIN(SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'ID_ATTRIBUTE.IDENTIFIED_ITEM')) <= 1; - END_ENTITY; -(* USED FROM (product_property_definition_schema); *) - 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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'ID_ATTRIBUTE.IDENTIFIED_ITEM')) <= 1; - END_ENTITY; -(* USED FROM (product_property_representation_schema); *) - ENTITY item_identified_representation_usage; - name : label; - description : OPTIONAL text; - definition : item_identified_representation_usage_definition; - used_representation : representation; - identified_item : item_identified_representation_usage_select; - WHERE - WR1: SELF.used_representation IN using_representations(SELF.identified_item); - END_ENTITY; -(* USED FROM (product_property_representation_schema); *) - ENTITY chain_based_item_identified_representation_usage - SUBTYPE OF (item_identified_representation_usage); - nodes : LIST [2:?] OF UNIQUE representation; - - undirected_link : LIST [1:?] OF chained_representation_link; - DERIVE - root : representation := nodes[1]; - - SELF\item_identified_representation_usage.used_representation : representation := nodes[HIINDEX(nodes)]; -- leaf : This ATTRIBUTE was RENAMED in the EXPRESS E2 source, an attribute with the new name is in the DERIVE clause - directed_link : LIST [1:?] OF representation_relationship := get_directed_link(nodes, undirected_link); - leaf : REPRESENTATION := SELF\item_identified_representation_usage.used_representation; -- USED_REPRESENTATION : This ATTRIBUTE was RENAMED in the EXPRESS E2 source, this is the new name implemented as DERIVE - WHERE - WR1 : EXISTS(directed_link); - END_ENTITY; -(* USED FROM (product_property_representation_schema); *) - ENTITY shape_definition_representation - SUBTYPE OF (property_definition_representation); - SELF\property_definition_representation.definition : property_definition; - SELF\property_definition_representation.used_representation : shape_representation; - WHERE - WR1: ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(definition)) OR - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_DEFINITION' IN TYPEOF(definition\property_definition.definition)); - END_ENTITY; -(* USED FROM (product_property_representation_schema); *) - ENTITY characterized_chain_based_item_within_representation - SUBTYPE OF (characterized_item_within_representation); - nodes : LIST[2:?] OF UNIQUE representation; - - undirected_link : LIST[1:?] OF chained_representation_link; - DERIVE - root : representation := nodes[1]; - - SELF\characterized_item_within_representation.rep : representation := nodes[HIINDEX(nodes)]; -- leaf : This ATTRIBUTE was RENAMED in the EXPRESS E2 source, an attribute with the new name is in the DERIVE clause - directed_link : LIST[1:?] OF representation_relationship := get_directed_link(nodes, undirected_link); - leaf : REPRESENTATION := SELF\characterized_item_within_representation.rep; -- REP : This ATTRIBUTE was RENAMED in the EXPRESS E2 source, this is the new name implemented as DERIVE - WHERE - WR1 : EXISTS(directed_link); - END_ENTITY; -(* USED FROM (product_property_representation_schema); *) - ENTITY characterized_item_within_representation - SUBTYPE OF (characterized_object); - item : representation_item; - rep : representation; - UNIQUE - WR1: item, rep; - WHERE - WR2: rep IN using_representations(item); - END_ENTITY; -(* USED FROM (product_property_representation_schema); *) - 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: 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRODUCT_DEFINITION_RELATIONSHIP' IN TYPEOF(SELF.represented_product_relation.definition); - WR2: SIZEOF(USEDIN(SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'DESCRIPTION_ATTRIBUTE.DESCRIBED_ITEM')) <= 1; - WR3: SIZEOF(USEDIN(SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'NAME_ATTRIBUTE.NAMED_ITEM')) <= 1; - END_ENTITY; -(* USED FROM (representation_schema); *) - ENTITY binary_representation_item - SUBTYPE OF (representation_item); - binary_value : BINARY; - END_ENTITY; -(* USED FROM (representation_schema); *) - 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; -(* USED FROM (representation_schema); *) - ENTITY compound_representation_item - SUPERTYPE OF ( ( ONEOF ( - POINT_AND_VECTOR, - POINT_PATH) )ANDOR( (ONEOF ( - ROW_REPRESENTATION_ITEM, - TABLE_REPRESENTATION_ITEM)) ) ) - SUBTYPE OF (representation_item); - item_element : compound_item_definition; - END_ENTITY; -(* USED FROM (representation_schema); *) - ENTITY definitional_representation - SUBTYPE OF (representation); - WHERE - WR1: 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PARAMETRIC_REPRESENTATION_CONTEXT' IN - TYPEOF (SELF\representation.context_of_items ); - END_ENTITY; -(* USED FROM (representation_schema); *) - 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; -(* USED FROM (representation_schema); *) - ENTITY founded_item SUPERTYPE OF ( ( ONEOF ( - B_SPLINE_CURVE_KNOT_LOCATOR, - B_SPLINE_CURVE_SEGMENT, - B_SPLINE_SURFACE_KNOT_LOCATOR, - B_SPLINE_SURFACE_PATCH, - B_SPLINE_SURFACE_STRIP, - BOUNDARY_CURVE_OF_B_SPLINE_OR_RECTANGULAR_COMPOSITE_SURFACE, - BOX_DOMAIN, - CHARACTER_GLYPH_STYLE_OUTLINE, - CHARACTER_GLYPH_STYLE_STROKE, - COMPOSITE_CURVE_SEGMENT, - COMPOSITE_CURVE_TRANSITION_LOCATOR, - CURVE_STYLE, - CURVE_STYLE_FONT, - CURVE_STYLE_FONT_AND_SCALING, - CURVE_STYLE_FONT_PATTERN, - EXTERNALLY_DEFINED_STYLE, - FILL_AREA_STYLE, - INTERPOLATED_CONFIGURATION_SEGMENT, - KINEMATIC_PATH_SEGMENT, - PLANE_ANGLE_AND_LENGTH_PAIR, - PLANE_ANGLE_AND_RATIO_PAIR, - POINT_STYLE, - PRESENTATION_STYLE_ASSIGNMENT, - RECTANGULAR_COMPOSITE_SURFACE_TRANSITION_LOCATOR, - SURFACE_PATCH, - 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, - VIEW_VOLUME) )ANDOR( ONEOF ( - CHARACTER_GLYPH_STYLE_OUTLINE, - CHARACTER_GLYPH_STYLE_STROKE, - CURVE_STYLE, - CURVE_STYLE_FONT, - CURVE_STYLE_FONT_AND_SCALING, - CURVE_STYLE_FONT_PATTERN, - EXTERNALLY_DEFINED_STYLE, - 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; -(* USED FROM (representation_schema); *) - ENTITY functionally_defined_transformation; - name : label; - description : OPTIONAL text; - END_ENTITY; -(* USED FROM (representation_schema); *) - ENTITY parametric_representation_context - SUBTYPE OF (representation_context); - END_ENTITY; -(* USED FROM (representation_schema); *) - ENTITY representation_item_relationship; - name : label; - description : OPTIONAL text; - relating_representation_item : representation_item; - related_representation_item : representation_item; - END_ENTITY; -(* USED FROM (representation_schema); *) - 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; -(* USED FROM (representation_schema); *) - ENTITY uncertainty_assigned_representation - SUBTYPE OF (representation); - uncertainty : SET [1:?] OF uncertainty_measure_with_unit; - END_ENTITY; -(* USED FROM (Activity_mim); *) -ENTITY applied_action_assignment - SUBTYPE OF (action_assignment); - items : SET[1:?] OF action_items; -END_ENTITY; -(* USED FROM (action_schema); *) - ENTITY action; - name : label; - description : OPTIONAL text; - chosen_method : action_method; - DERIVE - id : identifier := get_id_value(SELF); - WHERE - WR1: SIZEOF(USEDIN(SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'ID_ATTRIBUTE.IDENTIFIED_ITEM')) <= 1; - END_ENTITY; -(* USED FROM (action_schema); *) - ENTITY action_relationship; - name : label; - description : OPTIONAL text; - relating_action : action; - related_action : action; - END_ENTITY; -(* USED FROM (action_schema); *) - ENTITY action_status; - status : label; - assigned_action : executed_action; - END_ENTITY; -(* USED FROM (action_schema); *) - ENTITY executed_action - SUBTYPE OF (action); - END_ENTITY; -(* USED FROM (management_resources_schema); *) - ENTITY action_assignment - ABSTRACT SUPERTYPE; - assigned_action : action; - DERIVE - role : object_role := get_role(SELF); - WHERE - WR1: SIZEOF(USEDIN(SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'ROLE_ASSOCIATION.ITEM_WITH_ROLE')) <= 1; - END_ENTITY; -(* USED FROM (action_schema); *) - ENTITY action_method; - name : label; - description : OPTIONAL text; - consequence : text; - purpose : text; - END_ENTITY; -(* USED FROM (results_schema); *) -ENTITY mbna_discrete_data - SUBTYPE OF (mbna_result); - gridloc : mesh_location; -INVERSE - data : SET OF property_distribution_description FOR physical_function; -END_ENTITY; -(* USED FROM (results_schema); *) -ENTITY mbna_discrete_data_with_rind - SUBTYPE OF (mbna_discrete_data); - rind_planes : rind; -END_ENTITY; -(* USED FROM (results_schema); *) -ENTITY mbna_history - SUBTYPE OF (mbna_result); - notes : LIST OF text; -INVERSE - data : SET OF property_distribution_description FOR physical_function; -END_ENTITY; -(* USED FROM (results_schema); *) -ENTITY mbna_result - SUPERTYPE OF (ONEOF ( - MBNA_SOLUTION, - MBNA_HISTORY, - MBNA_DISCRETE_DATA) ) - SUBTYPE OF (model_property_distribution); -END_ENTITY; -(* USED FROM (results_schema); *) -ENTITY mbna_solution - SUBTYPE OF (mbna_result); - gridloc : mesh_location; -INVERSE - solution : SET OF property_distribution_description FOR physical_function; -END_ENTITY; -(* USED FROM (results_schema); *) -ENTITY mbna_solution_with_rind - SUBTYPE OF (mbna_solution); - rind_planes : rind; -END_ENTITY; -(* USED FROM (basis_schema); *) -ENTITY geometry_reference; - description : text; - data : choose_geometry_location; -END_ENTITY; -(* USED FROM (basis_schema); *) -ENTITY specified_general_property - SUBTYPE OF (general_property); - name_specifier : choose_general_property_identifier; -END_ENTITY; -(* USED FROM (basis_schema); *) -ENTITY specified_representation_context - SUBTYPE OF (representation_context); - class_specifier : choose_representation_context_identifier; -END_ENTITY; -(* USED FROM (action_and_model_relationships_schema); *) -ENTITY action_view_relationship; - id : identifier; - name : label; - description : OPTIONAL text; - discretised_model : discretised_action_model_select; - idealised_action : idealised_action_select; -END_ENTITY; -(* USED FROM (action_and_model_relationships_schema); *) -ENTITY same_discretised_action_model; - id : identifier; - name : label; - description : OPTIONAL text; - equivalent_records : SET [2 : ?] OF discretised_action_model_select; - -END_ENTITY; -(* USED FROM (action_and_model_relationships_schema); *) -ENTITY same_idealised_action; - id : identifier; - name : label; - description : OPTIONAL text; - equivalent_records : SET [2 : ?] OF idealised_action_select; -END_ENTITY; -(* USED FROM (Information_rights_mim); *) -ENTITY usage_association - SUBTYPE OF (action_method_relationship); - SELF\action_method_relationship.relating_method : information_usage_right; -- relating : This ATTRIBUTE was RENAMED in the EXPRESS E2 source, an attribute with the new name is in the DERIVE clause - SELF\action_method_relationship.related_method : information_usage_right; -- related : This ATTRIBUTE was RENAMED in the EXPRESS E2 source, an attribute with the new name is in the DERIVE clause - DERIVE - related : INFORMATION_USAGE_RIGHT := SELF\action_method_relationship.related_method; -- RELATED_METHOD : This ATTRIBUTE was RENAMED in the EXPRESS E2 source, this is the new name implemented as DERIVE - relating : INFORMATION_USAGE_RIGHT := SELF\action_method_relationship.relating_method; -- RELATING_METHOD : This ATTRIBUTE was RENAMED in the EXPRESS E2 source, this is the new name implemented as DERIVE - -END_ENTITY; -(* USED FROM (fea_definition_relationships_schema); *) -ENTITY fea_beam_section_idealisation_relationship; - id : identifier; - name : label; - description : OPTIONAL text; - idealised : general_property; - idealising : curve_element_section_definition; -END_ENTITY; -(* USED FROM (fea_definition_relationships_schema); *) -ENTITY fea_model_topological_relationship; - item : analysis_item_within_representation; - model_ref : fea_model; -WHERE - WR1: 'TOPOLOGICAL_DEFINITION_AND_MESH_SCHEMA.MESH' IN TYPEOF (item.item); -END_ENTITY; -(* USED FROM (fea_definition_relationships_schema); *) -ENTITY fea_shell_section_distribution_idealisation_relationship; - id : identifier; - name : label; - description : OPTIONAL text; - idealised : property_definition; - idealising : surface_section_field; -END_ENTITY; -(* USED FROM (fea_definition_relationships_schema); *) -ENTITY fea_shell_section_idealisation_relationship; - id : identifier; - name : label; - description : OPTIONAL text; - idealised : general_property; - idealising : surface_section; -END_ENTITY; -(* USED FROM (fea_definition_relationships_schema); *) -ENTITY node_topological_relationship; - item : analysis_item_within_representation; - node_ref : node_representation; -WHERE - WR1: 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.VERTEX' IN TYPEOF (item.item); -END_ENTITY; -(* USED FROM (product_and_model_relationships_schema); *) -ENTITY product_view_relationship; - id : identifier; - name : label; - description : OPTIONAL text; - discretised_model : discretised_product_model_select; - idealised_product : idealised_product_select; - -END_ENTITY; -(* USED FROM (property_distribution_and_model_relationships_schema); *) -ENTITY distribution_view_relationship; - id : identifier; - name : label; - description : OPTIONAL text; - discretised_model : discretised_distribution_model_select; - idealised_distribution : idealised_distribution_select; -END_ENTITY; -(* USED FROM (property_distribution_and_model_relationships_schema); *) -ENTITY same_discretised_distribution_model; - id : identifier; - name : label; - description : OPTIONAL text; - equivalent_records : SET [1 : ?] OF discretised_distribution_model_select; -END_ENTITY; -(* USED FROM (property_distribution_and_model_relationships_schema); *) -ENTITY same_idealised_distribution; - id : identifier; - name : label; - description : OPTIONAL text; - equivalent_records : LIST [2 : ?] OF idealised_distribution_select; -END_ENTITY; -(* USED FROM (state_and_model_relationships_schema); *) -ENTITY same_discretised_state_model; - id : identifier; - name : label; - description : OPTIONAL text; - equivalent_records : SET [2 : ?] OF discretised_state_model_select; -END_ENTITY; -(* USED FROM (state_and_model_relationships_schema); *) -ENTITY same_idealised_state; - id : identifier; - name : label; - description : OPTIONAL text; - equivalent_records : SET [2 : ?] OF idealised_state_select; -END_ENTITY; -(* USED FROM (state_and_model_relationships_schema); *) -ENTITY state_view_relationship; - id : identifier; - name : label; - description : OPTIONAL text; - discretised_model : discretised_state_model_select; - idealised_state : idealised_state_select; -END_ENTITY; -(* USED FROM (product_definition_schema); *) - ENTITY product_definition_with_associated_documents - SUBTYPE OF (product_definition); - documentation_ids : SET [1:?] OF document; - END_ENTITY; -(* USED FROM (material_property_definition_schema); *) -ENTITY property_definition_relationship; - name : label; - description : text; - relating_property_definition : property_definition; - related_property_definition : property_definition; -END_ENTITY; -(* USED FROM (finite_element_analysis_control_and_result_schema); *) -ENTITY control; - model_ref : fea_model; - control_id : identifier; - creating_software : text; - description : text; - user_defined_control : SET [1:?] OF text; - intended_analysis_code : SET [1:?] of text; -UNIQUE - UR1: model_ref, control_id; -END_ENTITY; -(* USED FROM (finite_element_analysis_control_and_result_schema); *) -ENTITY analysis_step - SUPERTYPE OF (ONEOF ( - CONTROL_ANALYSIS_STEP, - RESULT_ANALYSIS_STEP)); - analysis_control : control; -END_ENTITY; -(* USED FROM (finite_element_analysis_control_and_result_schema); *) -ENTITY control_analysis_step - SUPERTYPE OF (ONEOF ( - CONTROL_LINEAR_STATIC_ANALYSIS_STEP, - CONTROL_LINEAR_MODES_AND_FREQUENCIES_ANALYSIS_STEP)) - SUBTYPE OF (analysis_step); - step_id : identifier; - sequence : integer; - initial_state : state; - description : text; -UNIQUE - UR1: SELF\analysis_step.analysis_control, sequence; - UR2: SELF\analysis_step.analysis_control, step_id; -END_ENTITY; -(* USED FROM (finite_element_analysis_control_and_result_schema); *) -ENTITY symmetry_control - SUPERTYPE OF (ONEOF ( - NO_SYMMETRY_CONTROL, - CYLINDRICAL_SYMMETRY_CONTROL)); -END_ENTITY; -(* USED FROM (finite_element_analysis_control_and_result_schema); *) -ENTITY no_symmetry_control - SUBTYPE OF (symmetry_control); -END_ENTITY; -(* USED FROM (finite_element_analysis_control_and_result_schema); *) -ENTITY cylindrical_symmetry_control - SUBTYPE OF (symmetry_control); - harmonic : cylindrical_harmonic_number; - phase : measure_or_unspecified_value; -END_ENTITY; -(* USED FROM (finite_element_analysis_control_and_result_schema); *) -ENTITY control_linear_static_analysis_step - SUBTYPE OF (control_analysis_step); - process : control_linear_static_load_increment_process; -END_ENTITY; -(* USED FROM (finite_element_analysis_control_and_result_schema); *) -ENTITY control_linear_static_analysis_step_with_harmonic - SUBTYPE OF (control_linear_static_analysis_step); - symmetry : cylindrical_symmetry_control; -END_ENTITY; -(* USED FROM (finite_element_analysis_control_and_result_schema); *) -ENTITY control_linear_modes_and_frequencies_analysis_step - SUBTYPE OF (control_analysis_step); - process : control_linear_modes_and_frequencies_process; - number_of_modes : count_measure; - frequency_range : ARRAY [1:2] OF context_dependent_measure; -END_ENTITY; -(* USED FROM (finite_element_analysis_control_and_result_schema); *) -ENTITY constraint_element - SUPERTYPE OF (ONEOF ( - SINGLE_POINT_CONSTRAINT_ELEMENT, - LINEAR_CONSTRAINT_EQUATION_ELEMENT, - NODAL_DOF_REDUCTION, - POINT_CONSTRAINT, - CURVE_CONSTRAINT, - SURFACE_CONSTRAINT, - SOLID_CONSTRAINT)); - element_id : identifier; - steps : SET [1:?] OF control_analysis_step; -END_ENTITY; -(* USED FROM (finite_element_analysis_control_and_result_schema); *) -ENTITY single_point_constraint_element - SUBTYPE OF (constraint_element); - required_node : node_output_reference; - coordinate_system : fea_axis2_placement_3d; - freedoms_and_values : SET [1:?] OF freedom_and_coefficient; - description : text; -END_ENTITY; -(* USED FROM (finite_element_analysis_control_and_result_schema); *) -ENTITY linear_constraint_equation_element - SUBTYPE OF (constraint_element); - freedoms_and_coefficients : SET [1:?] OF - linear_constraint_equation_nodal_term; - description : text; -END_ENTITY; -(* USED FROM (finite_element_analysis_control_and_result_schema); *) -ENTITY linear_constraint_equation_nodal_term; - node : node_representation; - coordinate_system : fea_axis2_placement_3d; - freedom_and_coefficient_term : freedom_and_coefficient; - dependent : LOGICAL; -END_ENTITY; -(* USED FROM (finite_element_analysis_control_and_result_schema); *) -ENTITY freedom_and_coefficient; - freedom : degree_of_freedom; - a : measure_or_unspecified_value; -END_ENTITY; -(* USED FROM (finite_element_analysis_control_and_result_schema); *) -ENTITY nodal_dof_reduction - SUBTYPE OF (constraint_element); - required_node : node_output_reference; - coordinate_system : fea_axis2_placement_3d; - freedoms : SET [1:?] OF degree_of_freedom; - description : text; -END_ENTITY; -(* USED FROM (finite_element_analysis_control_and_result_schema); *) -ENTITY point_constraint - SUBTYPE OF (constraint_element); - required_point : analysis_item_within_representation; - coordinate_system : fea_axis2_placement_3d; - freedoms_and_coefficients : SET [1:?] OF freedom_and_coefficient; - description : text; -WHERE - WR1: ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.POINT' IN TYPEOF (required_point.item)) OR - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.VERTEX_POINT' IN TYPEOF (required_point.item)); -END_ENTITY; -(* USED FROM (finite_element_analysis_control_and_result_schema); *) -ENTITY curve_constraint - SUBTYPE OF (constraint_element); - required_curve : analysis_item_within_representation; - coordinate_system : fea_axis2_placement_3d; - freedoms_and_coefficients : SET [1:?] OF freedom_and_coefficient; - description : text; -WHERE - WR1: ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CURVE' IN TYPEOF (required_curve.item)) OR - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.EDGE_CURVE' IN TYPEOF (required_curve.item)); -END_ENTITY; -(* USED FROM (finite_element_analysis_control_and_result_schema); *) -ENTITY surface_constraint - SUBTYPE OF (constraint_element); - required_surface : analysis_item_within_representation; - coordinate_system : fea_axis2_placement_3d; - freedoms_and_coefficients : SET [1:?] OF freedom_and_coefficient; - description : text; -WHERE - WR1: ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SURFACE' IN TYPEOF (required_surface.item)) OR - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FACE_SURFACE' IN TYPEOF (required_surface.item)); -END_ENTITY; -(* USED FROM (finite_element_analysis_control_and_result_schema); *) -ENTITY solid_constraint - SUBTYPE OF (constraint_element); - required_solid : analysis_item_within_representation; - coordinate_system : fea_axis2_placement_3d; - freedoms_and_coefficients : SET [1:?] OF freedom_and_coefficient; - description : text; -WHERE - WR1: 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SOLID_MODEL' IN TYPEOF (required_solid.item); -END_ENTITY; -(* USED FROM (finite_element_analysis_control_and_result_schema); *) -ENTITY control_process - SUPERTYPE OF (ONEOF ( - CONTROL_LINEAR_STATIC_LOAD_INCREMENT_PROCESS, - CONTROL_LINEAR_MODES_AND_FREQUENCIES_PROCESS)); - process_id : identifier; - description : text; -END_ENTITY; -(* USED FROM (finite_element_analysis_control_and_result_schema); *) -ENTITY control_linear_static_load_increment_process - SUBTYPE OF (control_process); - final_input_state : state; -END_ENTITY; -(* USED FROM (finite_element_analysis_control_and_result_schema); *) -ENTITY control_linear_modes_and_frequencies_process - SUBTYPE OF (control_process); - final_input_state : state; -END_ENTITY; -(* USED FROM (finite_element_analysis_control_and_result_schema); *) -ENTITY element_sequence; - order_id : identifier; - control_ref : control; - purpose : text; - elements : LIST [1:?] OF model_or_control_element; -UNIQUE - UR1: order_id, control_ref; -END_ENTITY; -(* USED FROM (finite_element_analysis_control_and_result_schema); *) -ENTITY node_sequence; - order_id : identifier; - control_ref : control; - purpose : text; - nodes : LIST [1:?] OF node_representation; -UNIQUE - UR1: order_id, control_ref; -END_ENTITY; -(* USED FROM (finite_element_analysis_control_and_result_schema); *) -ENTITY result; - result_id : identifier; - creating_software : text; - description : text; -END_ENTITY; -(* USED FROM (finite_element_analysis_control_and_result_schema); *) -ENTITY result_analysis_step - SUPERTYPE OF (ONEOF ( - RESULT_LINEAR_STATIC_ANALYSIS_SUB_STEP, - RESULT_LINEAR_MODES_AND_FREQUENCIES_ANALYSIS_SUB_STEP)) - SUBTYPE OF (analysis_step); - analysis_result : result; -UNIQUE - UR1: SELF\analysis_step.analysis_control, analysis_result; -END_ENTITY; -(* USED FROM (finite_element_analysis_control_and_result_schema); *) -ENTITY result_linear_static_analysis_sub_step - SUBTYPE OF (result_analysis_step); - state : calculated_state; -END_ENTITY; -(* USED FROM (finite_element_analysis_control_and_result_schema); *) -ENTITY result_linear_modes_and_frequencies_analysis_sub_step - SUBTYPE OF (result_analysis_step); - states : SET [1:?] OF calculated_state; -END_ENTITY; -(* USED FROM (finite_element_analysis_control_and_result_schema); *) -ENTITY control_result_relationship; - control : control_analysis_step; - result : result_analysis_step; -END_ENTITY; -(* USED FROM (finite_element_analysis_control_and_result_schema); *) -ENTITY state - SUPERTYPE OF (ONEOF ( - SPECIFIED_STATE, - CALCULATED_STATE, - LINEARLY_SUPERIMPOSED_STATE, - OUTPUT_REQUEST_STATE)); - state_id : identifier; - description : text; -END_ENTITY; -(* USED FROM (finite_element_analysis_control_and_result_schema); *) -ENTITY state_with_harmonic - SUBTYPE OF (state); - symmetry : cylindrical_symmetry_control; -END_ENTITY; -(* USED FROM (finite_element_analysis_control_and_result_schema); *) -ENTITY specified_state - SUBTYPE OF (state); -END_ENTITY; -(* USED FROM (finite_element_analysis_control_and_result_schema); *) -ENTITY calculated_state - SUBTYPE OF (state); -END_ENTITY; -(* USED FROM (finite_element_analysis_control_and_result_schema); *) -ENTITY linearly_superimposed_state - SUBTYPE OF (state); -INVERSE - components : SET [1:?] OF state_component FOR state; -END_ENTITY; -(* USED FROM (finite_element_analysis_control_and_result_schema); *) -ENTITY state_component - SUBTYPE OF (state); - state : linearly_superimposed_state; - factor : context_dependent_measure; -END_ENTITY; -(* USED FROM (finite_element_analysis_control_and_result_schema); *) -ENTITY output_request_state - SUBTYPE OF (state); - steps : SET [1:?] OF control_analysis_step; -END_ENTITY; -(* USED FROM (finite_element_analysis_control_and_result_schema); *) -ENTITY state_relationship; - name : label; - description : text; - relating_state : state; - related_state : state; -END_ENTITY; -(* USED FROM (finite_element_analysis_control_and_result_schema); *) -ENTITY state_definition - SUPERTYPE OF (ONEOF ( - FIELD_VARIABLE_DEFINITION, - NODAL_FREEDOM_AND_VALUE_DEFINITION, - ELEMENT_NODAL_FREEDOM_ACTIONS, - POINT_FREEDOM_AND_VALUE_DEFINITION, - CURVE_FREEDOM_AND_VALUE_DEFINITION, - SURFACE_FREEDOM_AND_VALUE_DEFINITION, - SOLID_FREEDOM_AND_VALUE_DEFINITION, - LINEAR_CONSTRAINT_EQUATION_ELEMENT_VALUE, - SINGLE_POINT_CONSTRAINT_ELEMENT_VALUES, - ANALYSIS_MESSAGE)); - defined_state : state; -END_ENTITY; -(* USED FROM (finite_element_analysis_control_and_result_schema); *) -ENTITY field_variable_definition - SUPERTYPE OF (ONEOF ( - FIELD_VARIABLE_ELEMENT_DEFINITION, - FIELD_VARIABLE_ELEMENT_GROUP_VALUE, - FIELD_VARIABLE_WHOLE_MODEL_VALUE, - FIELD_VARIABLE_NODE_DEFINITION)) - SUBTYPE OF (state_definition); -END_ENTITY; -(* USED FROM (finite_element_analysis_control_and_result_schema); *) -ENTITY field_variable_element_definition - SUPERTYPE OF (ONEOF ( - VOLUME_3D_ELEMENT_FIELD_VARIABLE_DEFINITION, - VOLUME_2D_ELEMENT_FIELD_VARIABLE_DEFINITION, - SURFACE_3D_ELEMENT_FIELD_VARIABLE_DEFINITION, - SURFACE_2D_ELEMENT_FIELD_VARIABLE_DEFINITION, - CURVE_3D_ELEMENT_FIELD_VARIABLE_DEFINITION, - CURVE_2D_ELEMENT_FIELD_VARIABLE_DEFINITION)) - SUBTYPE OF (field_variable_definition); -END_ENTITY; -(* USED FROM (finite_element_analysis_control_and_result_schema); *) -ENTITY volume_3d_element_field_variable_definition - SUPERTYPE OF (ONEOF ( - VOLUME_3D_ELEMENT_LOCATION_POINT_VARIABLE_VALUES, - VOLUME_3D_WHOLE_ELEMENT_VARIABLE_VALUE, - VOLUME_3D_ELEMENT_CONSTANT_SPECIFIED_VARIABLE_VALUE, - VOLUME_3D_ELEMENT_NODAL_SPECIFIED_VARIABLE_VALUES, - VOLUME_3D_ELEMENT_BOUNDARY_LOCATION_POINT_VARIABLE_VALUES, - VOLUME_3D_ELEMENT_BOUNDARY_WHOLE_FACE_VARIABLE_VALUE, - VOLUME_3D_ELEMENT_BOUNDARY_CONSTANT_SPECIFIED_VARIABLE_VALUE, - VOLUME_3D_ELEMENT_BOUNDARY_NODAL_SPECIFIED_VARIABLE_VALUES, - VOLUME_3D_ELEMENT_BOUNDARY_EDGE_LOCATION_POINT_VOLUME_VARIABLE_VALUES, - VOLUME_3D_ELEMENT_BOUNDARY_EDGE_WHOLE_EDGE_VARIABLE_VALUE, - VOLUME_3D_ELEMENT_BOUNDARY_EDGE_CONSTANT_SPECIFIED_VOLUME_VARIABLE_VALUE, - VOLUME_3D_ELEMENT_BOUNDARY_EDGE_NODAL_SPECIFIED_VARIABLE_VALUES)) - SUBTYPE OF (field_variable_element_definition); - element : volume_3d_element_output_reference; -END_ENTITY; -(* USED FROM (geometry_schema); *) -ENTITY placement - SUPERTYPE OF (ONEOF ( - AXIS1_PLACEMENT, - AXIS2_PLACEMENT_2D, - AXIS2_PLACEMENT_3D)) - SUBTYPE OF (geometric_representation_item); - location : cartesian_point; -END_ENTITY; -(* USED FROM (geometry_schema); *) -ENTITY offset_surface - SUBTYPE OF (surface); - basis_surface : surface; - distance : length_measure; - self_intersect : LOGICAL; -END_ENTITY; -(* USED FROM (kinematic_structure_schema); *) -ENTITY rack_and_pinion_pair_with_range - SUBTYPE OF (rack_and_pinion_pair); - lower_limit_rack_displacement : OPTIONAL length_measure; - upper_limit_rack_displacement : OPTIONAL length_measure; -WHERE - WR1: (NOT EXISTS(lower_limit_rack_displacement) - OR - NOT EXISTS(upper_limit_rack_displacement)) - XOR - (lower_limit_rack_displacement < upper_limit_rack_displacement); -END_ENTITY; -(* USED FROM (finite_element_analysis_control_and_result_schema); *) -ENTITY volume_3d_element_constant_specified_variable_value - SUBTYPE OF (volume_3d_element_field_variable_definition); - simple_value : field_value; - variable : volume_variable; - coordinate_system : OPTIONAL volume_3d_element_coordinate_system; -WHERE - WR1: necessary_value_coordinate_system (simple_value, coordinate_system); - WR2: consistent_value (simple_value, variable); - WR3: appropriate_value_existence (simple_value, - TYPEOF (SELF\state_definition.defined_state)); -END_ENTITY; -(* USED FROM (kinematic_structure_schema); *) -ENTITY gear_pair_with_range - SUBTYPE OF (gear_pair); - lower_limit_actual_rotation_1 : OPTIONAL plane_angle_measure; - upper_limit_actual_rotation_1 : OPTIONAL plane_angle_measure; -WHERE - WR1: (NOT EXISTS(lower_limit_actual_rotation_1) - OR - NOT EXISTS(upper_limit_actual_rotation_1)) - XOR - (lower_limit_actual_rotation_1 < upper_limit_actual_rotation_1); -END_ENTITY; -(* USED FROM (finite_element_analysis_control_and_result_schema); *) -ENTITY volume_3d_element_boundary_location_point_variable_values - SUBTYPE OF (volume_3d_element_field_variable_definition); - basis : BOOLEAN; - values_and_locations : SET [1:?] OF - volume_3d_element_value_and_location; - variable : boundary_variable; - element_face : volume_3d_face; -WHERE - WR1: consistent_set_values (values_and_locations, variable); - WR2: appropriate_set_value_existence (values_and_locations, - TYPEOF (SELF\state_definition.defined_state)); -END_ENTITY; -(* USED FROM (finite_element_analysis_control_and_result_schema); *) -ENTITY volume_3d_element_boundary_whole_face_variable_value - SUBTYPE OF (volume_3d_element_field_variable_definition); - simple_value : field_value; - variable : boundary_aggregated_variable; - element_face : volume_3d_face; - coordinate_system : OPTIONAL volume_3d_element_coordinate_system; -WHERE - WR1: necessary_value_coordinate_system (simple_value, coordinate_system); - WR2: consistent_value (simple_value, variable); - WR3: appropriate_value_existence (simple_value, - TYPEOF (SELF\state_definition.defined_state)); -END_ENTITY; -(* USED FROM (finite_element_analysis_control_and_result_schema); *) -ENTITY volume_3d_element_boundary_constant_specified_variable_value - SUBTYPE OF (volume_3d_element_field_variable_definition); - simple_value : field_value; - variable : boundary_variable; - element_face : volume_3d_face; - coordinate_system : OPTIONAL volume_3d_element_coordinate_system; -WHERE - WR1: necessary_value_coordinate_system (simple_value, coordinate_system); - WR2: consistent_value (simple_value, variable); - WR3: appropriate_value_existence (simple_value, - TYPEOF (SELF\state_definition.defined_state)); -END_ENTITY; -(* USED FROM (finite_element_analysis_control_and_result_schema); *) -ENTITY volume_3d_element_boundary_nodal_specified_variable_values - SUBTYPE OF (volume_3d_element_field_variable_definition); - values : LIST [1:?] OF field_value; - additional_node_values : BOOLEAN; - variable : boundary_variable; - element_face : volume_3d_face; -WHERE - WR1: consistent_list_values (values, variable); - WR2: appropriate_list_value_existence (values, - TYPEOF (SELF\state_definition.defined_state)); -END_ENTITY; -(* USED FROM (finite_element_analysis_control_and_result_schema); *) -ENTITY - volume_3d_element_boundary_edge_location_point_volume_variable_values - SUBTYPE OF (volume_3d_element_field_variable_definition); - basis : BOOLEAN; - values_and_locations : SET [1:?] OF - volume_3d_element_value_and_location; - variable : boundary_edge_variable; - element_edge : volume_3d_edge; -WHERE - WR1: consistent_set_values (values_and_locations, variable); - WR2: appropriate_set_value_existence (values_and_locations, - TYPEOF (SELF\state_definition.defined_state)); -END_ENTITY; -(* USED FROM (finite_element_analysis_control_and_result_schema); *) -ENTITY volume_3d_element_boundary_edge_whole_edge_variable_value - SUBTYPE OF (volume_3d_element_field_variable_definition); - simple_value : field_value; - variable : boundary_aggregated_variable; - element_edge : volume_3d_edge; - coordinate_system : OPTIONAL volume_3d_element_coordinate_system; -WHERE - WR1: necessary_value_coordinate_system (simple_value, coordinate_system); - WR2: consistent_value (simple_value, variable); - WR3: appropriate_value_existence (simple_value, - TYPEOF (SELF\state_definition.defined_state)); -END_ENTITY; -(* USED FROM (finite_element_analysis_control_and_result_schema); *) -ENTITY - volume_3d_element_boundary_edge_constant_specified_volume_variable_value - SUBTYPE OF (volume_3d_element_field_variable_definition); - simple_value : field_value; - variable : boundary_edge_variable; - element_edge : volume_3d_edge; - coordinate_system : OPTIONAL volume_3d_element_coordinate_system; -WHERE - WR1: necessary_value_coordinate_system (simple_value, coordinate_system); - WR2: consistent_value (simple_value, variable); - WR3: appropriate_value_existence (simple_value, - TYPEOF (SELF\state_definition.defined_state)); -END_ENTITY; -(* USED FROM (finite_element_analysis_control_and_result_schema); *) -ENTITY volume_3d_element_boundary_edge_nodal_specified_variable_values - SUBTYPE OF (volume_3d_element_field_variable_definition); - values : LIST [1:?] OF field_value; - additional_node_values : BOOLEAN; - variable : boundary_edge_variable; - element_edge : volume_3d_edge; -WHERE - WR1: consistent_list_values (values, variable); - WR2: appropriate_list_value_existence (values, - TYPEOF (SELF\state_definition.defined_state)); -END_ENTITY; -(* USED FROM (finite_element_analysis_control_and_result_schema); *) -ENTITY volume_2d_element_field_variable_definition - SUPERTYPE OF (ONEOF ( - VOLUME_2D_ELEMENT_LOCATION_POINT_VARIABLE_VALUES, - VOLUME_2D_WHOLE_ELEMENT_VARIABLE_VALUE, - VOLUME_2D_ELEMENT_CONSTANT_SPECIFIED_VARIABLE_VALUE, - VOLUME_2D_ELEMENT_NODAL_SPECIFIED_VARIABLE_VALUES, - VOLUME_2D_ELEMENT_BOUNDARY_LOCATION_POINT_VARIABLE_VALUES, - VOLUME_2D_ELEMENT_BOUNDARY_WHOLE_FACE_VARIABLE_VALUE, - VOLUME_2D_ELEMENT_BOUNDARY_CONSTANT_SPECIFIED_VARIABLE_VALUE, - VOLUME_2D_ELEMENT_BOUNDARY_NODAL_SPECIFIED_VARIABLE_VALUES, - VOLUME_2D_ELEMENT_BOUNDARY_EDGE_LOCATION_POINT_VOLUME_VARIABLE_VALUES, - VOLUME_2D_ELEMENT_BOUNDARY_EDGE_WHOLE_EDGE_VARIABLE_VALUE, - VOLUME_2D_ELEMENT_BOUNDARY_EDGE_CONSTANT_SPECIFIED_VOLUME_VARIABLE_VALUE, - VOLUME_2D_ELEMENT_BOUNDARY_EDGE_NODAL_SPECIFIED_VARIABLE_VALUES)) - SUBTYPE OF (field_variable_element_definition); - element : volume_2d_element_output_reference; -END_ENTITY; -(* USED FROM (finite_element_analysis_control_and_result_schema); *) -ENTITY volume_2d_element_location_point_variable_values - SUBTYPE OF (volume_2d_element_field_variable_definition); - basis : BOOLEAN; - values_and_locations : SET [1:?] OF - volume_2d_element_value_and_location; - variable : volume_variable; -WHERE - WR1: consistent_set_values (values_and_locations, variable); - WR2: appropriate_set_value_existence (values_and_locations, - TYPEOF (SELF\state_definition.defined_state)); -END_ENTITY; -(* USED FROM (finite_element_analysis_control_and_result_schema); *) -ENTITY volume_2d_element_value_and_location; - simple_value : field_value; - location : volume_element_location; - coordinate_system : OPTIONAL volume_2d_element_coordinate_system; -WHERE - WR1: necessary_value_coordinate_system (simple_value, coordinate_system); -END_ENTITY; -(* USED FROM (finite_element_analysis_control_and_result_schema); *) -ENTITY volume_2d_whole_element_variable_value - SUBTYPE OF (volume_2d_element_field_variable_definition); - simple_value : field_value; - variable : volume_aggregated_variable; - coordinate_system : OPTIONAL volume_2d_element_coordinate_system; -WHERE - WR1: necessary_value_coordinate_system (simple_value, coordinate_system); - WR2: consistent_value (simple_value, variable); - WR3: appropriate_value_existence (simple_value, - TYPEOF (SELF\state_definition.defined_state)); -END_ENTITY; -(* USED FROM (finite_element_analysis_control_and_result_schema); *) -ENTITY volume_2d_element_constant_specified_variable_value - SUBTYPE OF (volume_2d_element_field_variable_definition); - simple_value : field_value; - variable : volume_variable; - coordinate_system : OPTIONAL volume_2d_element_coordinate_system; -WHERE - WR1: necessary_value_coordinate_system (simple_value, coordinate_system); - WR2: consistent_value (simple_value, variable); - WR3: appropriate_value_existence (simple_value, - TYPEOF (SELF\state_definition.defined_state)); -END_ENTITY; -(* USED FROM (finite_element_analysis_control_and_result_schema); *) -ENTITY volume_2d_element_nodal_specified_variable_values - SUBTYPE OF (volume_2d_element_field_variable_definition); - values : LIST [1:?] OF field_value; - additional_node_values : BOOLEAN; - variable : volume_variable; -WHERE - WR1: consistent_list_values (values, variable); - WR2: appropriate_list_value_existence (values, - TYPEOF (SELF\state_definition.defined_state)); -END_ENTITY; -(* USED FROM (finite_element_analysis_control_and_result_schema); *) -ENTITY volume_2d_element_boundary_location_point_variable_values - SUBTYPE OF (volume_2d_element_field_variable_definition); - basis : BOOLEAN; - values_and_locations : SET [1:?] OF - volume_2d_element_value_and_location; - variable : boundary_variable; - element_face : volume_2d_face; -WHERE - WR1: consistent_set_values (values_and_locations, variable); - WR2: appropriate_set_value_existence (values_and_locations, - TYPEOF (SELF\state_definition.defined_state)); -END_ENTITY; -(* USED FROM (finite_element_analysis_control_and_result_schema); *) -ENTITY volume_2d_element_boundary_whole_face_variable_value - SUBTYPE OF (volume_2d_element_field_variable_definition); - simple_value : field_value; - variable : boundary_aggregated_variable; - element_face : volume_2d_face; - coordinate_system : OPTIONAL volume_2d_element_coordinate_system; -WHERE - WR1: necessary_value_coordinate_system (simple_value, coordinate_system); - WR2: consistent_value (simple_value, variable); - WR3: appropriate_value_existence (simple_value, - TYPEOF (SELF\state_definition.defined_state)); -END_ENTITY; -(* USED FROM (finite_element_analysis_control_and_result_schema); *) -ENTITY volume_2d_element_boundary_constant_specified_variable_value - SUBTYPE OF (volume_2d_element_field_variable_definition); - simple_value : field_value; - variable : boundary_variable; - element_face : volume_2d_face; - coordinate_system : OPTIONAL volume_2d_element_coordinate_system; -WHERE - WR1: necessary_value_coordinate_system (simple_value, coordinate_system); - WR2: consistent_value (simple_value, variable); - WR3: appropriate_value_existence (simple_value, - TYPEOF (SELF\state_definition.defined_state)); -END_ENTITY; -(* USED FROM (finite_element_analysis_control_and_result_schema); *) -ENTITY volume_2d_element_boundary_nodal_specified_variable_values - SUBTYPE OF (volume_2d_element_field_variable_definition); - values : LIST [1:?] OF field_value; - variable : boundary_variable; - additional_node_values : BOOLEAN; - element_face : volume_2d_face; -WHERE - WR1: consistent_list_values (values, variable); - WR2: appropriate_list_value_existence (values, - TYPEOF (SELF\state_definition.defined_state)); -END_ENTITY; -(* USED FROM (finite_element_analysis_control_and_result_schema); *) -ENTITY - volume_2d_element_boundary_edge_location_point_volume_variable_values - SUBTYPE OF (volume_2d_element_field_variable_definition); - basis : BOOLEAN; - values_and_locations : SET [1:?] OF - volume_2d_element_value_and_location; - variable : boundary_edge_variable; - element_edge : volume_2d_edge; -WHERE - WR1: consistent_set_values (values_and_locations, variable); - WR2: appropriate_set_value_existence (values_and_locations, - TYPEOF (SELF\state_definition.defined_state)); -END_ENTITY; -(* USED FROM (finite_element_analysis_control_and_result_schema); *) -ENTITY volume_2d_element_boundary_edge_whole_edge_variable_value - SUBTYPE OF (volume_2d_element_field_variable_definition); - simple_value : field_value; - variable : boundary_aggregated_variable; - element_edge : volume_2d_edge; - coordinate_system : OPTIONAL volume_2d_element_coordinate_system; -WHERE - WR1: necessary_value_coordinate_system (simple_value, coordinate_system); - WR2: consistent_value (simple_value, variable); - WR3: appropriate_value_existence (simple_value, - TYPEOF (SELF\state_definition.defined_state)); -END_ENTITY; -(* USED FROM (finite_element_analysis_control_and_result_schema); *) -ENTITY - volume_2d_element_boundary_edge_constant_specified_volume_variable_value - SUBTYPE OF (volume_2d_element_field_variable_definition); - simple_value : field_value; - variable : boundary_edge_variable; - element_edge : volume_2d_edge; - coordinate_system : OPTIONAL volume_2d_element_coordinate_system; -WHERE - WR1: necessary_value_coordinate_system (simple_value, coordinate_system); - WR2: consistent_value (simple_value, variable); - WR3: appropriate_value_existence (simple_value, - TYPEOF (SELF\state_definition.defined_state)); -END_ENTITY; -(* USED FROM (finite_element_analysis_control_and_result_schema); *) -ENTITY volume_2d_element_boundary_edge_nodal_specified_variable_values - SUBTYPE OF (volume_2d_element_field_variable_definition); - values : LIST [1:?] OF field_value; - additional_node_values : BOOLEAN; - variable : boundary_edge_variable; - element_edge : volume_2d_edge; -WHERE - WR1: consistent_list_values (values, variable); - WR2: appropriate_list_value_existence (values, - TYPEOF (SELF\state_definition.defined_state)); -END_ENTITY; -(* USED FROM (finite_element_analysis_control_and_result_schema); *) -ENTITY surface_3d_element_field_variable_definition - SUPERTYPE OF (ONEOF ( - SURFACE_3D_ELEMENT_LOCATION_POINT_VOLUME_VARIABLE_VALUES, - SURFACE_3D_ELEMENT_LOCATION_POINT_VARIABLE_VALUES, - SURFACE_3D_WHOLE_ELEMENT_VARIABLE_VALUE, - SURFACE_3D_ELEMENT_CONSTANT_SPECIFIED_VARIABLE_VALUE, - SURFACE_3D_ELEMENT_CONSTANT_SPECIFIED_VOLUME_VARIABLE_VALUE, - SURFACE_3D_ELEMENT_NODAL_SPECIFIED_VARIABLE_VALUES, - SURFACE_3D_ELEMENT_BOUNDARY_LOCATION_POINT_SURFACE_VARIABLE_VALUES, - SURFACE_3D_ELEMENT_BOUNDARY_WHOLE_FACE_VARIABLE_VALUE, - SURFACE_3D_ELEMENT_BOUNDARY_CONSTANT_SPECIFIED_VARIABLE_VALUE, - SURFACE_3D_ELEMENT_BOUNDARY_CONSTANT_SPECIFIED_SURFACE_VARIABLE_VALUE, - SURFACE_3D_ELEMENT_BOUNDARY_NODAL_SPECIFIED_VARIABLE_VALUES, - SURFACE_3D_ELEMENT_BOUNDARY_EDGE_LOCATION_POINT_SURFACE_VARIABLE_VALUES, - SURFACE_3D_ELEMENT_BOUNDARY_EDGE_LOCATION_POINT_VARIABLE_VALUES, - SURFACE_3D_ELEMENT_BOUNDARY_EDGE_WHOLE_EDGE_VARIABLE_VALUE, - SURFACE_3D_ELEMENT_BOUNDARY_EDGE_CONSTANT_SPECIFIED_VARIABLE_VALUE, - SURFACE_3D_ELEMENT_BOUNDARY_EDGE_CONSTANT_SPECIFIED_SURFACE_VARIABLE_VALUE, - SURFACE_3D_ELEMENT_BOUNDARY_EDGE_NODAL_SPECIFIED_VARIABLE_VALUES)) - SUBTYPE OF (field_variable_element_definition); - element : surface_3d_element_output_reference; -END_ENTITY; -(* USED FROM (finite_element_analysis_control_and_result_schema); *) -ENTITY surface_3d_element_location_point_volume_variable_values - SUBTYPE OF (surface_3d_element_field_variable_definition); - basis : BOOLEAN; - values_and_locations : SET [1:?] OF - surface_3d_element_value_and_volume_location; - variable : volume_variable; -WHERE - WR1: consistent_set_values (values_and_locations, variable); - WR2: appropriate_set_value_existence (values_and_locations, - TYPEOF (SELF\state_definition.defined_state)); - -END_ENTITY; -(* USED FROM (finite_element_analysis_control_and_result_schema); *) -ENTITY surface_3d_element_value_and_location; - simple_value : field_value; - location : surface_element_location; - coordinate_system : OPTIONAL surface_3d_state_coordinate_system; -WHERE - WR1: necessary_value_coordinate_system (simple_value, coordinate_system); -END_ENTITY; -(* USED FROM (finite_element_analysis_control_and_result_schema); *) -ENTITY surface_3d_element_value_and_volume_location; - simple_value : field_value; - location : surface_volume_element_location; - coordinate_system : OPTIONAL surface_3d_state_coordinate_system; -WHERE - WR1: necessary_value_coordinate_system (simple_value, coordinate_system); -END_ENTITY; -(* USED FROM (finite_element_analysis_control_and_result_schema); *) -ENTITY surface_3d_element_location_point_variable_values - SUBTYPE OF (surface_3d_element_field_variable_definition); - basis : BOOLEAN; - values_and_locations : SET [1:?] OF - surface_3d_element_value_and_location; - variable : surface_element_variable; -WHERE - WR1: consistent_set_values (values_and_locations, variable); - WR2: appropriate_set_value_existence (values_and_locations, - TYPEOF (SELF\state_definition.defined_state)); -END_ENTITY; -(* USED FROM (finite_element_analysis_control_and_result_schema); *) -ENTITY surface_3d_whole_element_variable_value - SUBTYPE OF (surface_3d_element_field_variable_definition); - simple_value : field_value; - variable : volume_aggregated_variable; - coordinate_system : OPTIONAL surface_3d_element_coordinate_system; -WHERE - WR1: necessary_value_coordinate_system (simple_value, coordinate_system); - WR2: consistent_value (simple_value, variable); - WR3: appropriate_value_existence (simple_value, - TYPEOF (SELF\state_definition.defined_state)); -END_ENTITY; -(* USED FROM (finite_element_analysis_control_and_result_schema); *) -ENTITY surface_3d_element_constant_specified_variable_value - SUBTYPE OF (surface_3d_element_field_variable_definition); - simple_value : field_value; - variable : surface_element_variable; - coordinate_system : OPTIONAL surface_3d_element_coordinate_system; -WHERE - WR1: necessary_value_coordinate_system (simple_value, coordinate_system); - WR2: consistent_value (simple_value, variable); - WR3: appropriate_value_existence (simple_value, - TYPEOF (SELF\state_definition.defined_state)); -END_ENTITY; -(* USED FROM (finite_element_analysis_control_and_result_schema); *) -ENTITY surface_3d_element_constant_specified_volume_variable_value - SUBTYPE OF (surface_3d_element_field_variable_definition); - simple_value : field_value; - variable : volume_variable; - coordinate_system : OPTIONAL surface_3d_element_coordinate_system; -WHERE - WR1: necessary_value_coordinate_system (simple_value, coordinate_system); - WR2: consistent_value (simple_value, variable); - WR3: appropriate_value_existence (simple_value, - TYPEOF (SELF\state_definition.defined_state)); -END_ENTITY; -(* USED FROM (finite_element_analysis_control_and_result_schema); *) -ENTITY surface_3d_element_nodal_specified_variable_values - SUBTYPE OF (surface_3d_element_field_variable_definition); - values : LIST [1:?] OF field_value; - additional_node_values : BOOLEAN; - variable : surface_element_variable; -WHERE - WR1: consistent_list_values (values, variable); - WR2: appropriate_list_value_existence (values, - TYPEOF (SELF\state_definition.defined_state)); -END_ENTITY; -(* USED FROM (finite_element_analysis_control_and_result_schema); *) -ENTITY - surface_3d_element_boundary_location_point_surface_variable_values - SUBTYPE OF (surface_3d_element_field_variable_definition); - basis : BOOLEAN; - values_and_locations : SET [1:?] OF - surface_3d_element_value_and_location; - variable : boundary_variable; - element_face : surface_3d_face; -WHERE - WR1: consistent_set_values (values_and_locations, variable); - WR2: appropriate_set_value_existence (values_and_locations, - TYPEOF (SELF\state_definition.defined_state)); -END_ENTITY; -(* USED FROM (finite_element_analysis_control_and_result_schema); *) -ENTITY surface_3d_element_boundary_whole_face_variable_value - SUBTYPE OF (surface_3d_element_field_variable_definition); - simple_value : field_value; - variable : boundary_aggregated_variable; - element_face : surface_3d_face; - coordinate_system : OPTIONAL surface_3d_element_coordinate_system; -WHERE - WR1: necessary_value_coordinate_system (simple_value, coordinate_system); - WR2: consistent_value (simple_value, variable); - WR3: appropriate_value_existence (simple_value, - TYPEOF (SELF\state_definition.defined_state)); -END_ENTITY; -(* USED FROM (finite_element_analysis_control_and_result_schema); *) -ENTITY - surface_3d_element_boundary_constant_specified_surface_variable_value - SUBTYPE OF (surface_3d_element_field_variable_definition); - simple_value : field_value; - variable : boundary_variable; - element_face : surface_3d_face; - coordinate_system : OPTIONAL surface_3d_element_coordinate_system; -WHERE - WR1: necessary_value_coordinate_system (simple_value, coordinate_system); - WR2: consistent_value (simple_value, variable); - WR3: appropriate_value_existence (simple_value, - TYPEOF (SELF\state_definition.defined_state)); -END_ENTITY; -(* USED FROM (finite_element_analysis_control_and_result_schema); *) -ENTITY surface_3d_element_boundary_constant_specified_variable_value - SUBTYPE OF (surface_3d_element_field_variable_definition); - simple_value : field_value; - variable : boundary_aggregated_variable; - element_face : surface_3d_face; - coordinate_system : OPTIONAL surface_3d_element_coordinate_system; -WHERE - WR1: necessary_value_coordinate_system (simple_value, coordinate_system); - WR2: consistent_value (simple_value, variable); - WR3: appropriate_value_existence (simple_value, - TYPEOF (SELF\state_definition.defined_state)); -END_ENTITY; -(* USED FROM (finite_element_analysis_control_and_result_schema); *) -ENTITY surface_3d_element_boundary_nodal_specified_variable_values - SUBTYPE OF (surface_3d_element_field_variable_definition); - values : LIST [1:?] OF field_value; - additional_node_values : BOOLEAN; - variable : boundary_variable; - element_face : surface_3d_face; -WHERE - WR1: consistent_list_values (values, variable); - WR2: appropriate_list_value_existence (values, - TYPEOF (SELF\state_definition.defined_state)); -END_ENTITY; -(* USED FROM (finite_element_analysis_control_and_result_schema); *) -ENTITY - surface_3d_element_boundary_edge_location_point_surface_variable_values - SUBTYPE OF (surface_3d_element_field_variable_definition); - basis : BOOLEAN; - values_and_locations : SET [1:?] OF - surface_3d_element_value_and_volume_location; - variable : boundary_edge_variable; - element_edge : surface_3d_edge; -WHERE - WR1: consistent_set_values (values_and_locations, variable); - WR2: appropriate_set_value_existence (values_and_locations, - TYPEOF (SELF\state_definition.defined_state)); -END_ENTITY; -(* USED FROM (finite_element_analysis_control_and_result_schema); *) -ENTITY - surface_3d_element_boundary_edge_location_point_variable_values - SUBTYPE OF (surface_3d_element_field_variable_definition); - basis : BOOLEAN; - values_and_locations : SET [1:?] OF - surface_3d_element_value_and_location; - variable : boundary_edge_variable; - element_edge : surface_3d_edge; -WHERE - WR1: consistent_set_values (values_and_locations, variable); - WR2: appropriate_set_value_existence (values_and_locations, - TYPEOF (SELF\state_definition.defined_state)); -END_ENTITY; -(* USED FROM (finite_element_analysis_control_and_result_schema); *) -ENTITY surface_3d_element_boundary_edge_whole_edge_variable_value - SUBTYPE OF (surface_3d_element_field_variable_definition); - simple_value : field_value; - variable : boundary_aggregated_variable; - element_edge : surface_3d_edge; - coordinate_system : OPTIONAL surface_3d_element_coordinate_system; -WHERE - WR1: necessary_value_coordinate_system (simple_value, coordinate_system); - WR2: consistent_value (simple_value, variable); - WR3: appropriate_value_existence (simple_value, - TYPEOF (SELF\state_definition.defined_state)); -END_ENTITY; -(* USED FROM (finite_element_analysis_control_and_result_schema); *) -ENTITY - surface_3d_element_boundary_edge_constant_specified_surface_variable_value - SUBTYPE OF (surface_3d_element_field_variable_definition); - simple_value : field_value; - variable : boundary_edge_variable; - element_edge : surface_3d_edge; - coordinate_system : OPTIONAL surface_3d_element_coordinate_system; -WHERE - WR1: necessary_value_coordinate_system (simple_value, coordinate_system); - WR2: consistent_value (simple_value, variable); - WR3: appropriate_value_existence (simple_value, - TYPEOF (SELF\state_definition.defined_state)); -END_ENTITY; -(* USED FROM (finite_element_analysis_control_and_result_schema); *) -ENTITY surface_3d_element_boundary_edge_constant_specified_variable_value - SUBTYPE OF (surface_3d_element_field_variable_definition); - simple_value : field_value; - variable : boundary_edge_variable; - element_edge : surface_3d_edge; - coordinate_system : OPTIONAL surface_3d_element_coordinate_system; -WHERE - WR1: necessary_value_coordinate_system (simple_value, coordinate_system); - WR2: consistent_value (simple_value, variable); - WR3: appropriate_value_existence (simple_value, - TYPEOF (SELF\state_definition.defined_state)); -END_ENTITY; -(* USED FROM (finite_element_analysis_control_and_result_schema); *) -ENTITY surface_3d_element_boundary_edge_nodal_specified_variable_values - SUBTYPE OF (surface_3d_element_field_variable_definition); - values : LIST [1:?] OF field_value; - additional_node_values : BOOLEAN; - variable : boundary_edge_variable; - element_edge : surface_3d_edge; -WHERE - WR1: consistent_list_values (values, variable); - WR2: appropriate_list_value_existence (values, - TYPEOF (SELF\state_definition.defined_state)); -END_ENTITY; -(* USED FROM (finite_element_analysis_control_and_result_schema); *) -ENTITY surface_2d_element_field_variable_definition - SUPERTYPE OF (ONEOF ( - SURFACE_2D_ELEMENT_LOCATION_POINT_VOLUME_VARIABLE_VALUES, - SURFACE_2D_ELEMENT_LOCATION_POINT_VARIABLE_VALUES, - SURFACE_2D_WHOLE_ELEMENT_VARIABLE_VALUE, - SURFACE_2D_ELEMENT_CONSTANT_SPECIFIED_VARIABLE_VALUE, - SURFACE_2D_ELEMENT_CONSTANT_SPECIFIED_VOLUME_VARIABLE_VALUE, - SURFACE_2D_ELEMENT_NODAL_SPECIFIED_VARIABLE_VALUES, - SURFACE_2D_ELEMENT_BOUNDARY_LOCATION_POINT_SURFACE_VARIABLE_VALUES, - SURFACE_2D_ELEMENT_BOUNDARY_WHOLE_FACE_VARIABLE_VALUE, - SURFACE_2D_ELEMENT_BOUNDARY_CONSTANT_SPECIFIED_VARIABLE_VALUE, - SURFACE_2D_ELEMENT_BOUNDARY_CONSTANT_SPECIFIED_SURFACE_VARIABLE_VALUE, - SURFACE_2D_ELEMENT_BOUNDARY_NODAL_SPECIFIED_VARIABLE_VALUES, - SURFACE_2D_ELEMENT_BOUNDARY_EDGE_LOCATION_POINT_SURFACE_VARIABLE_VALUES, - SURFACE_2D_ELEMENT_BOUNDARY_EDGE_LOCATION_POINT_VARIABLE_VALUES, - SURFACE_2D_ELEMENT_BOUNDARY_EDGE_WHOLE_EDGE_VARIABLE_VALUE, - SURFACE_2D_ELEMENT_BOUNDARY_EDGE_CONSTANT_SPECIFIED_VARIABLE_VALUE, - SURFACE_2D_ELEMENT_BOUNDARY_EDGE_CONSTANT_SPECIFIED_SURFACE_VARIABLE_VALUE, - SURFACE_2D_ELEMENT_BOUNDARY_EDGE_NODAL_SPECIFIED_VARIABLE_VALUES)) - SUBTYPE OF (field_variable_element_definition); - element : surface_2d_element_output_reference; -END_ENTITY; -(* USED FROM (finite_element_analysis_control_and_result_schema); *) -ENTITY surface_2d_element_location_point_volume_variable_values - SUBTYPE OF (surface_2d_element_field_variable_definition); - basis : BOOLEAN; - values_and_locations : SET [1:?] OF - surface_2d_element_value_and_volume_location; - variable : volume_variable; -WHERE - WR1: consistent_set_values (values_and_locations, variable); - WR2: appropriate_set_value_existence (values_and_locations, - TYPEOF (SELF\state_definition.defined_state)); -END_ENTITY; -(* USED FROM (finite_element_analysis_control_and_result_schema); *) -ENTITY surface_2d_element_value_and_location; - simple_value : field_value; - location : surface_element_location; - coordinate_system : OPTIONAL surface_2d_state_coordinate_system; -WHERE - WR1: necessary_value_coordinate_system (simple_value, coordinate_system); -END_ENTITY; -(* USED FROM (finite_element_analysis_control_and_result_schema); *) -ENTITY surface_2d_element_value_and_volume_location; - simple_value : field_value; - location : surface_volume_element_location; - coordinate_system : OPTIONAL surface_2d_state_coordinate_system; -WHERE - WR1: necessary_value_coordinate_system (simple_value, coordinate_system); -END_ENTITY; -(* USED FROM (finite_element_analysis_control_and_result_schema); *) -ENTITY surface_2d_element_location_point_variable_values - SUBTYPE OF (surface_2d_element_field_variable_definition); - basis : BOOLEAN; - values_and_locations : SET [1:?] OF - surface_2d_element_value_and_location; - variable : surface_element_variable; -WHERE - WR1: consistent_set_values (values_and_locations, variable); - WR2: appropriate_set_value_existence (values_and_locations, - TYPEOF (SELF\state_definition.defined_state)); -END_ENTITY; -(* USED FROM (finite_element_analysis_control_and_result_schema); *) -ENTITY surface_2d_whole_element_variable_value - SUBTYPE OF (surface_2d_element_field_variable_definition); - simple_value : field_value; - variable : volume_aggregated_variable; - coordinate_system : OPTIONAL surface_2d_element_coordinate_system; -WHERE - WR1: necessary_value_coordinate_system (simple_value, coordinate_system); - WR2: consistent_value (simple_value, variable); - WR3: appropriate_value_existence (simple_value, - TYPEOF (SELF\state_definition.defined_state)); -END_ENTITY; -(* USED FROM (finite_element_analysis_control_and_result_schema); *) -ENTITY surface_2d_element_constant_specified_variable_value - SUBTYPE OF (surface_2d_element_field_variable_definition); - simple_value : field_value; - variable : surface_element_variable; - coordinate_system : OPTIONAL surface_2d_element_coordinate_system; -WHERE - WR1: necessary_value_coordinate_system (simple_value, coordinate_system); - WR2: consistent_value (simple_value, variable); - WR3: appropriate_value_existence (simple_value, - TYPEOF (SELF\state_definition.defined_state)); -END_ENTITY; -(* USED FROM (finite_element_analysis_control_and_result_schema); *) -ENTITY surface_2d_element_constant_specified_volume_variable_value - SUBTYPE OF (surface_2d_element_field_variable_definition); - simple_value : field_value; - variable : volume_variable; - coordinate_system : OPTIONAL surface_2d_element_coordinate_system; -WHERE - WR1: necessary_value_coordinate_system (simple_value, coordinate_system); - WR2: consistent_value (simple_value, variable); - WR3: appropriate_value_existence (simple_value, - TYPEOF (SELF\state_definition.defined_state)); -END_ENTITY; -(* USED FROM (finite_element_analysis_control_and_result_schema); *) -ENTITY surface_2d_element_nodal_specified_variable_values - SUBTYPE OF (surface_2d_element_field_variable_definition); - values : LIST [1:?] OF field_value; - additional_node_values : BOOLEAN; - variable : surface_element_variable; -WHERE - WR1: consistent_list_values (values, variable); - WR2: appropriate_list_value_existence (values, - TYPEOF (SELF\state_definition.defined_state)); -END_ENTITY; -(* USED FROM (finite_element_analysis_control_and_result_schema); *) -ENTITY - surface_2d_element_boundary_location_point_surface_variable_values - SUBTYPE OF (surface_2d_element_field_variable_definition); - basis : BOOLEAN; - values_and_locations : SET [1:?] OF - surface_2d_element_value_and_location; - variable : boundary_variable; - element_face : surface_2d_face; -WHERE - WR1: consistent_set_values (values_and_locations, variable); - WR2: appropriate_set_value_existence (values_and_locations, - TYPEOF (SELF\state_definition.defined_state)); -END_ENTITY; -(* USED FROM (finite_element_analysis_control_and_result_schema); *) -ENTITY surface_2d_element_boundary_whole_face_variable_value - SUBTYPE OF (surface_2d_element_field_variable_definition); - simple_value : field_value; - variable : boundary_aggregated_variable; - element_face : surface_2d_face; - coordinate_system : OPTIONAL surface_2d_element_coordinate_system; -WHERE - WR1: necessary_value_coordinate_system (simple_value, coordinate_system); - WR2: consistent_value (simple_value, variable); - WR3: appropriate_value_existence (simple_value, - TYPEOF (SELF\state_definition.defined_state)); -END_ENTITY; -(* USED FROM (finite_element_analysis_control_and_result_schema); *) -ENTITY - surface_2d_element_boundary_constant_specified_surface_variable_value - SUBTYPE OF (surface_2d_element_field_variable_definition); - simple_value : field_value; - variable : boundary_variable; - element_face : surface_2d_face; - coordinate_system : OPTIONAL surface_2d_element_coordinate_system; -WHERE - WR1: necessary_value_coordinate_system (simple_value, coordinate_system); - WR2: consistent_value (simple_value, variable); - WR3: appropriate_value_existence (simple_value, - TYPEOF (SELF\state_definition.defined_state)); -END_ENTITY; -(* USED FROM (finite_element_analysis_control_and_result_schema); *) -ENTITY surface_2d_element_boundary_constant_specified_variable_value - SUBTYPE OF (surface_2d_element_field_variable_definition); - simple_value : field_value; - variable : boundary_aggregated_variable; - element_face : surface_2d_face; - coordinate_system : OPTIONAL surface_2d_element_coordinate_system; -WHERE - WR1: necessary_value_coordinate_system (simple_value, coordinate_system); - WR2: consistent_value (simple_value, variable); - WR3: appropriate_value_existence (simple_value, - TYPEOF (SELF\state_definition.defined_state)); -END_ENTITY; -(* USED FROM (finite_element_analysis_control_and_result_schema); *) -ENTITY surface_2d_element_boundary_nodal_specified_variable_values - SUBTYPE OF (surface_2d_element_field_variable_definition); - values : LIST [1:?] OF field_value; - additional_node_values : BOOLEAN; - variable : boundary_variable; - element_face : surface_2d_face; -WHERE - WR1: consistent_list_values (values, variable); - WR2: appropriate_list_value_existence (values, - TYPEOF (SELF\state_definition.defined_state)); -END_ENTITY; -(* USED FROM (finite_element_analysis_control_and_result_schema); *) -ENTITY - surface_2d_element_boundary_edge_location_point_surface_variable_values - SUBTYPE OF (surface_2d_element_field_variable_definition); - basis : BOOLEAN; - values_and_locations : SET [1:?] OF - surface_2d_element_value_and_volume_location; - variable : boundary_edge_variable; - element_edge : surface_2d_edge; -WHERE - WR1: consistent_set_values (values_and_locations, variable); - WR2: appropriate_set_value_existence (values_and_locations, - TYPEOF (SELF\state_definition.defined_state)); -END_ENTITY; -(* USED FROM (finite_element_analysis_control_and_result_schema); *) -ENTITY - surface_2d_element_boundary_edge_location_point_variable_values - SUBTYPE OF (surface_2d_element_field_variable_definition); - basis : BOOLEAN; - values_and_locations : SET [1:?] OF - surface_2d_element_value_and_location; - variable : boundary_edge_variable; - element_edge : surface_2d_edge; -WHERE - WR1: consistent_set_values (values_and_locations, variable); - WR2: appropriate_set_value_existence (values_and_locations, - TYPEOF (SELF\state_definition.defined_state)); -END_ENTITY; -(* USED FROM (finite_element_analysis_control_and_result_schema); *) -ENTITY surface_2d_element_boundary_edge_whole_edge_variable_value - SUBTYPE OF (surface_2d_element_field_variable_definition); - simple_value : field_value; - variable : boundary_aggregated_variable; - element_edge : surface_2d_edge; - coordinate_system : OPTIONAL surface_2d_element_coordinate_system; -WHERE - WR1: necessary_value_coordinate_system (simple_value, coordinate_system); - WR2: consistent_value (simple_value, variable); - WR3: appropriate_value_existence (simple_value, - TYPEOF (SELF\state_definition.defined_state)); -END_ENTITY; -(* USED FROM (finite_element_analysis_control_and_result_schema); *) -ENTITY - surface_2d_element_boundary_edge_constant_specified_surface_variable_value - SUBTYPE OF (surface_2d_element_field_variable_definition); - simple_value : field_value; - variable : boundary_edge_variable; - element_edge : surface_2d_edge; - coordinate_system : OPTIONAL surface_2d_element_coordinate_system; -WHERE - WR1: necessary_value_coordinate_system (simple_value, coordinate_system); - WR2: consistent_value (simple_value, variable); - WR3: appropriate_value_existence (simple_value, - TYPEOF (SELF\state_definition.defined_state)); -END_ENTITY; -(* USED FROM (finite_element_analysis_control_and_result_schema); *) -ENTITY surface_2d_element_boundary_edge_constant_specified_variable_value - SUBTYPE OF (surface_2d_element_field_variable_definition); - simple_value : field_value; - variable : boundary_edge_variable; - element_edge : surface_2d_edge; - coordinate_system : OPTIONAL surface_2d_element_coordinate_system; -WHERE - WR1: necessary_value_coordinate_system (simple_value, coordinate_system); - WR2: consistent_value (simple_value, variable); - WR3: appropriate_value_existence (simple_value, - TYPEOF (SELF\state_definition.defined_state)); -END_ENTITY; -(* USED FROM (finite_element_analysis_control_and_result_schema); *) -ENTITY surface_2d_element_boundary_edge_nodal_specified_variable_values - SUBTYPE OF (surface_2d_element_field_variable_definition); - values : LIST [1:?] OF field_value; - additional_node_values : BOOLEAN; - variable : boundary_edge_variable; - element_edge : surface_2d_edge; -WHERE - WR1: consistent_list_values (values, variable); - WR2: appropriate_list_value_existence (values, - TYPEOF (SELF\state_definition.defined_state)); -END_ENTITY; -(* USED FROM (finite_element_analysis_control_and_result_schema); *) -ENTITY curve_3d_element_field_variable_definition - SUPERTYPE OF (ONEOF ( - CURVE_3D_ELEMENT_LOCATION_POINT_VOLUME_VARIABLE_VALUES, - CURVE_3D_ELEMENT_LOCATION_POINT_VARIABLE_VALUES, - CURVE_3D_WHOLE_ELEMENT_VARIABLE_VALUE, - CURVE_3D_ELEMENT_CONSTANT_SPECIFIED_VARIABLE_VALUE, - CURVE_3D_ELEMENT_CONSTANT_SPECIFIED_VOLUME_VARIABLE_VALUE, - CURVE_3D_ELEMENT_NODAL_SPECIFIED_VARIABLE_VALUES)) - SUBTYPE OF (field_variable_element_definition); - element : curve_3d_element_output_reference; -END_ENTITY; -(* USED FROM (finite_element_analysis_control_and_result_schema); *) -ENTITY curve_3d_element_location_point_volume_variable_values - SUBTYPE OF (curve_3d_element_field_variable_definition); - basis : BOOLEAN; - values_and_locations : SET [1:?] OF - curve_3d_element_value_and_volume_location; - variable : volume_variable; -WHERE - WR1: consistent_set_values (values_and_locations, variable); - WR2: appropriate_set_value_existence (values_and_locations, - TYPEOF (SELF\state_definition.defined_state)); -END_ENTITY; -(* USED FROM (finite_element_analysis_control_and_result_schema); *) -ENTITY curve_3d_element_value_and_location; - simple_value : field_value; - location : curve_element_location; - coordinate_system : OPTIONAL curve_3d_state_coordinate_system; -WHERE - WR1: necessary_value_coordinate_system (simple_value, coordinate_system); -END_ENTITY; -(* USED FROM (finite_element_analysis_control_and_result_schema); *) -ENTITY curve_3d_element_value_and_volume_location; - simple_value : field_value; - location : curve_volume_element_location; - coordinate_system : OPTIONAL curve_3d_state_coordinate_system; -WHERE - WR1: necessary_value_coordinate_system (simple_value, coordinate_system); -END_ENTITY; -(* USED FROM (finite_element_analysis_control_and_result_schema); *) -ENTITY curve_3d_element_location_point_variable_values - SUBTYPE OF (curve_3d_element_field_variable_definition); - basis : BOOLEAN; - values_and_locations : SET [1:?] OF - curve_3d_element_value_and_location; - variable : curve_element_variable; -WHERE - WR1: consistent_set_values (values_and_locations, variable); - WR2: appropriate_set_value_existence (values_and_locations, - TYPEOF (SELF\state_definition.defined_state)); -END_ENTITY; -(* USED FROM (finite_element_analysis_control_and_result_schema); *) -ENTITY curve_3d_whole_element_variable_value - SUBTYPE OF (curve_3d_element_field_variable_definition); - simple_value : field_value; - variable : volume_aggregated_variable; - coordinate_system : OPTIONAL curve_3d_element_coordinate_system; -WHERE - WR1: necessary_value_coordinate_system (simple_value, coordinate_system); - WR2: consistent_value (simple_value, variable); - WR3: appropriate_value_existence (simple_value, - TYPEOF (SELF\state_definition.defined_state)); -END_ENTITY; -(* USED FROM (finite_element_analysis_control_and_result_schema); *) -ENTITY curve_3d_element_constant_specified_variable_value - SUBTYPE OF (curve_3d_element_field_variable_definition); - simple_value : field_value; - variable : curve_element_variable; - coordinate_system : OPTIONAL curve_3d_element_coordinate_system; -WHERE - WR1: necessary_value_coordinate_system (simple_value, coordinate_system); - WR2: consistent_value (simple_value, variable); - WR3: appropriate_value_existence (simple_value, - TYPEOF (SELF\state_definition.defined_state)); -END_ENTITY; -(* USED FROM (finite_element_analysis_control_and_result_schema); *) -ENTITY curve_3d_element_constant_specified_volume_variable_value - SUBTYPE OF (curve_3d_element_field_variable_definition); - simple_value : field_value; - variable : volume_variable; - coordinate_system : OPTIONAL curve_3d_element_coordinate_system; -WHERE - WR1: necessary_value_coordinate_system (simple_value, coordinate_system); - WR2: consistent_value (simple_value, variable); - WR3: appropriate_value_existence (simple_value, - TYPEOF (SELF\state_definition.defined_state)); -END_ENTITY; -(* USED FROM (finite_element_analysis_control_and_result_schema); *) -ENTITY curve_3d_element_nodal_specified_variable_values - SUBTYPE OF (curve_3d_element_field_variable_definition); - values : LIST [1:?] OF field_value; - additional_node_values : BOOLEAN; - variable : curve_element_variable; -WHERE - WR1: consistent_list_values (values, variable); - WR2: appropriate_list_value_existence (values, - TYPEOF (SELF\state_definition.defined_state)); -END_ENTITY; -(* USED FROM (finite_element_analysis_control_and_result_schema); *) -ENTITY curve_2d_element_field_variable_definition - SUPERTYPE OF (ONEOF ( - CURVE_2D_ELEMENT_LOCATION_POINT_VOLUME_VARIABLE_VALUES, - CURVE_2D_ELEMENT_LOCATION_POINT_VARIABLE_VALUES, - CURVE_2D_WHOLE_ELEMENT_VARIABLE_VALUE, - CURVE_2D_ELEMENT_CONSTANT_SPECIFIED_VARIABLE_VALUE, - CURVE_2D_ELEMENT_CONSTANT_SPECIFIED_VOLUME_VARIABLE_VALUE)) - SUBTYPE OF (field_variable_element_definition); - element : curve_2d_element_output_reference; -END_ENTITY; -(* USED FROM (finite_element_analysis_control_and_result_schema); *) -ENTITY curve_2d_element_location_point_volume_variable_values - SUBTYPE OF (curve_2d_element_field_variable_definition); - basis : BOOLEAN; - values_and_locations : SET [1:?] OF - curve_2d_element_value_and_volume_location; - variable : curve_element_variable; -WHERE - WR1: consistent_set_values (values_and_locations, variable); - WR2: appropriate_set_value_existence (values_and_locations, - TYPEOF (SELF\state_definition.defined_state)); -END_ENTITY; -(* USED FROM (finite_element_analysis_control_and_result_schema); *) -ENTITY curve_2d_element_value_and_location; - simple_value : field_value; - location : curve_section_element_location; - coordinate_system : OPTIONAL curve_2d_state_coordinate_system; -WHERE - WR1: necessary_value_coordinate_system (simple_value, coordinate_system); -END_ENTITY; -(* USED FROM (finite_element_analysis_control_and_result_schema); *) -ENTITY curve_2d_element_value_and_volume_location; - simple_value : field_value; - location : curve_volume_element_location; - coordinate_system : OPTIONAL curve_2d_state_coordinate_system; -WHERE - WR1: necessary_value_coordinate_system (simple_value, coordinate_system); -END_ENTITY; -(* USED FROM (finite_element_analysis_control_and_result_schema); *) -ENTITY curve_2d_element_location_point_variable_values - SUBTYPE OF (curve_2d_element_field_variable_definition); - basis : BOOLEAN; - values_and_locations : SET [1:?] OF - curve_2d_element_value_and_location; - variable : curve_element_variable; -WHERE - WR1: consistent_set_values (values_and_locations, variable); - WR2: appropriate_set_value_existence (values_and_locations, - TYPEOF (SELF\state_definition.defined_state)); -END_ENTITY; -(* USED FROM (finite_element_analysis_control_and_result_schema); *) -ENTITY curve_2d_whole_element_variable_value - SUBTYPE OF (curve_2d_element_field_variable_definition); - simple_value : field_value; - variable : volume_aggregated_variable; - coordinate_system : OPTIONAL curve_2d_element_coordinate_system; -WHERE - WR1: necessary_value_coordinate_system (simple_value, coordinate_system); - WR2: consistent_value (simple_value, variable); - WR3: appropriate_value_existence (simple_value, - TYPEOF (SELF\state_definition.defined_state)); -END_ENTITY; -(* USED FROM (finite_element_analysis_control_and_result_schema); *) -ENTITY curve_2d_element_constant_specified_variable_value - SUBTYPE OF (curve_2d_element_field_variable_definition); - simple_value : field_value; - variable : surface_element_variable; - coordinate_system : OPTIONAL curve_2d_element_coordinate_system; -WHERE - WR1: necessary_value_coordinate_system (simple_value, coordinate_system); - WR2: consistent_value (simple_value, variable); - WR3: appropriate_value_existence (simple_value, - TYPEOF (SELF\state_definition.defined_state)); -END_ENTITY; -(* USED FROM (finite_element_analysis_control_and_result_schema); *) -ENTITY curve_2d_element_constant_specified_volume_variable_value - SUBTYPE OF (curve_2d_element_field_variable_definition); - simple_value : field_value; - variable : volume_variable; - coordinate_system : OPTIONAL curve_2d_element_coordinate_system; -WHERE - WR1: necessary_value_coordinate_system (simple_value, coordinate_system); - WR2: consistent_value (simple_value, variable); - WR3: appropriate_value_existence (simple_value, - TYPEOF (SELF\state_definition.defined_state)); -END_ENTITY; -(* USED FROM (finite_element_analysis_control_and_result_schema); *) -ENTITY field_variable_element_group_value - SUBTYPE OF (field_variable_definition); - group : element_group; - simple_value : field_value; - variable : volume_aggregated_variable; - coordinate_system : OPTIONAL fea_axis2_placement_3d; -WHERE - WR1: necessary_value_coordinate_system (simple_value, coordinate_system); - WR2: consistent_value (simple_value, variable); - WR3: appropriate_value_existence (simple_value, - TYPEOF (SELF\state_definition.defined_state)); -END_ENTITY; -(* USED FROM (finite_element_analysis_control_and_result_schema); *) -ENTITY field_variable_whole_model_value - SUBTYPE OF (field_variable_definition); - simple_value : field_value; - variable : volume_aggregated_variable; - coordinate_system : OPTIONAL fea_axis2_placement_3d; -WHERE - WR1: necessary_value_coordinate_system (simple_value, coordinate_system); - WR2: consistent_value (simple_value, variable); - WR3: appropriate_value_existence (simple_value, - TYPEOF (SELF\state_definition.defined_state)); -END_ENTITY; -(* USED FROM (finite_element_analysis_control_and_result_schema); *) -ENTITY field_variable_node_definition - SUPERTYPE OF (ONEOF ( - VOLUME_3D_NODE_FIELD_VARIABLE_DEFINITION, - VOLUME_2D_NODE_FIELD_VARIABLE_DEFINITION, - SURFACE_3D_NODE_FIELD_VARIABLE_DEFINITION, - SURFACE_2D_NODE_FIELD_VARIABLE_DEFINITION, - CURVE_3D_NODE_FIELD_VARIABLE_DEFINITION, - CURVE_2D_NODE_FIELD_VARIABLE_DEFINITION)) - SUBTYPE OF (field_variable_definition); - node : node_output_reference; - group : OPTIONAL element_group; -END_ENTITY; -(* USED FROM (finite_element_analysis_control_and_result_schema); *) -ENTITY volume_3d_node_field_variable_definition - SUBTYPE OF (field_variable_node_definition); - simple_value : field_value; - variable : volume_variable; - coordinate_system : OPTIONAL volume_3d_element_coordinate_system; -WHERE - WR1: necessary_value_coordinate_system (simple_value, coordinate_system); - WR2: consistent_value (simple_value, variable); - WR3: appropriate_value_existence (simple_value, - TYPEOF (SELF\state_definition.defined_state)); -END_ENTITY; -(* USED FROM (finite_element_analysis_control_and_result_schema); *) -ENTITY volume_2d_node_field_variable_definition - SUBTYPE OF (field_variable_node_definition); - simple_value : field_value; - variable : volume_variable; - coordinate_system : OPTIONAL volume_2d_element_coordinate_system; -WHERE - WR1: necessary_value_coordinate_system (simple_value, coordinate_system); - WR2: consistent_value (simple_value, variable); - WR3: appropriate_value_existence (simple_value, - TYPEOF (SELF\state_definition.defined_state)); -END_ENTITY; -(* USED FROM (finite_element_analysis_control_and_result_schema); *) -ENTITY surface_3d_node_field_variable_definition - SUPERTYPE OF (ONEOF ( - SURFACE_3D_NODE_FIELD_SECTION_VARIABLE_VALUES, - SURFACE_3D_NODE_FIELD_AGGREGATED_VARIABLE_VALUES)) - SUBTYPE OF (field_variable_node_definition); -END_ENTITY; -(* USED FROM (finite_element_analysis_control_and_result_schema); *) -ENTITY surface_3d_node_field_section_variable_values - SUBTYPE OF (surface_3d_node_field_variable_definition); - simple_value : field_value; - variable : surface_element_variable; - location : surface_section_element_location; - coordinate_system : OPTIONAL surface_3d_state_coordinate_system; -WHERE - WR1: necessary_value_coordinate_system (simple_value, coordinate_system); - WR2: consistent_value (simple_value, variable); - WR3: appropriate_value_existence (simple_value, - TYPEOF (SELF\state_definition.defined_state)); -END_ENTITY; -(* USED FROM (finite_element_analysis_control_and_result_schema); *) -ENTITY surface_3d_node_field_aggregated_variable_values - SUBTYPE OF (surface_3d_node_field_variable_definition); - simple_value : field_value; - variable : volume_aggregated_variable; - coordinate_system : OPTIONAL surface_3d_state_coordinate_system; -WHERE - WR1: necessary_value_coordinate_system (simple_value, coordinate_system); - WR2: consistent_value (simple_value, variable); - WR3: appropriate_value_existence (simple_value, - TYPEOF (SELF\state_definition.defined_state)); -END_ENTITY; -(* USED FROM (finite_element_analysis_control_and_result_schema); *) -ENTITY surface_2d_node_field_variable_definition - SUPERTYPE OF (ONEOF ( - SURFACE_2D_NODE_FIELD_SECTION_VARIABLE_VALUES, - SURFACE_2D_NODE_FIELD_AGGREGATED_VARIABLE_VALUES)) - SUBTYPE OF (field_variable_node_definition); -END_ENTITY; -(* USED FROM (finite_element_analysis_control_and_result_schema); *) -ENTITY surface_2d_node_field_section_variable_values - SUBTYPE OF (surface_2d_node_field_variable_definition); - simple_value : field_value; - variable : surface_element_variable; - location : surface_section_element_location; - coordinate_system : OPTIONAL surface_2d_state_coordinate_system; -WHERE - WR1: necessary_value_coordinate_system (simple_value, coordinate_system); - WR2: consistent_value (simple_value, variable); - WR3: appropriate_value_existence (simple_value, - TYPEOF (SELF\state_definition.defined_state)); -END_ENTITY; -(* USED FROM (finite_element_analysis_control_and_result_schema); *) -ENTITY surface_2d_node_field_aggregated_variable_values - SUBTYPE OF (surface_2d_node_field_variable_definition); - simple_value : field_value; - variable : volume_aggregated_variable; - coordinate_system : OPTIONAL surface_2d_state_coordinate_system; -WHERE - WR1: necessary_value_coordinate_system (simple_value, coordinate_system); - WR2: consistent_value (simple_value, variable); - WR3: appropriate_value_existence (simple_value, - TYPEOF (SELF\state_definition.defined_state)); -END_ENTITY; -(* USED FROM (finite_element_analysis_control_and_result_schema); *) -ENTITY curve_3d_node_field_variable_definition - SUPERTYPE OF (ONEOF ( - CURVE_3D_NODE_FIELD_SECTION_VARIABLE_VALUES, - CURVE_3D_NODE_FIELD_AGGREGATED_VARIABLE_VALUES)) - SUBTYPE OF (field_variable_node_definition); -END_ENTITY; -(* USED FROM (finite_element_analysis_control_and_result_schema); *) -ENTITY curve_3d_node_field_section_variable_values - SUBTYPE OF (curve_3d_node_field_variable_definition); - simple_value : field_value; - variable : curve_element_variable; - location : curve_section_element_location; - coordinate_system : OPTIONAL curve_3d_state_coordinate_system; -WHERE - WR1: necessary_value_coordinate_system (simple_value, coordinate_system); - WR2: consistent_value (simple_value, variable); - WR3: appropriate_value_existence (simple_value, - TYPEOF (SELF\state_definition.defined_state)); -END_ENTITY; -(* USED FROM (finite_element_analysis_control_and_result_schema); *) -ENTITY curve_3d_node_field_aggregated_variable_values - SUBTYPE OF (curve_3d_node_field_variable_definition); - simple_value : field_value; - variable : volume_aggregated_variable; - coordinate_system : OPTIONAL curve_3d_state_coordinate_system; -WHERE - WR1: necessary_value_coordinate_system (simple_value, coordinate_system); - WR2: consistent_value (simple_value, variable); - WR3: appropriate_value_existence (simple_value, - TYPEOF (SELF\state_definition.defined_state)); -END_ENTITY; -(* USED FROM (finite_element_analysis_control_and_result_schema); *) -ENTITY curve_2d_node_field_variable_definition - SUPERTYPE OF (ONEOF ( - CURVE_2D_NODE_FIELD_SECTION_VARIABLE_VALUES, - CURVE_2D_NODE_FIELD_AGGREGATED_VARIABLE_VALUES)) - SUBTYPE OF (field_variable_node_definition); -END_ENTITY; -(* USED FROM (finite_element_analysis_control_and_result_schema); *) -ENTITY curve_2d_node_field_section_variable_values - SUBTYPE OF (curve_2d_node_field_variable_definition); - simple_value : field_value; - variable : curve_element_variable; - location : curve_section_element_location; - coordinate_system : OPTIONAL curve_2d_state_coordinate_system; -WHERE - WR1: necessary_value_coordinate_system (simple_value, coordinate_system); - WR2: consistent_value (simple_value, variable); - WR3: appropriate_value_existence (simple_value, - TYPEOF (SELF\state_definition.defined_state)); -END_ENTITY; -(* USED FROM (finite_element_analysis_control_and_result_schema); *) -ENTITY curve_2d_node_field_aggregated_variable_values - SUBTYPE OF (curve_2d_node_field_variable_definition); - simple_value : field_value; - variable : volume_aggregated_variable; - coordinate_system : OPTIONAL curve_2d_state_coordinate_system; -WHERE - WR1: necessary_value_coordinate_system (simple_value, coordinate_system); - WR2: consistent_value (simple_value, variable); - WR3: appropriate_value_existence (simple_value, - TYPEOF (SELF\state_definition.defined_state)); -END_ENTITY; -(* USED FROM (finite_element_analysis_control_and_result_schema); *) -ENTITY nodal_freedom_and_value_definition - SUPERTYPE OF (ONEOF ( - NODAL_FREEDOM_VALUES, - NODAL_FREEDOM_ACTION_DEFINITION)) - SUBTYPE OF (state_definition); - node : node_output_reference; - coordinate_system : fea_axis2_placement_3d; - degrees_of_freedom : freedoms_list; - values : LIST [1:?] OF measure_or_unspecified_value; -WHERE - WR1: SIZEOF(degrees_of_freedom.freedoms) = SIZEOF (values); -END_ENTITY; -(* USED FROM (finite_element_analysis_control_and_result_schema); *) -ENTITY nodal_freedom_values - SUBTYPE OF (nodal_freedom_and_value_definition); -END_ENTITY; -(* USED FROM (finite_element_analysis_control_and_result_schema); *) -ENTITY nodal_freedom_action_definition - SUBTYPE OF (nodal_freedom_and_value_definition); - action : action_type; -END_ENTITY; -(* USED FROM (finite_element_analysis_control_and_result_schema); *) -ENTITY element_nodal_freedom_actions - SUBTYPE OF (state_definition); - element : model_or_control_element; - nodal_action : LIST [1:?] OF - element_nodal_freedom_terms; -END_ENTITY; -(* USED FROM (finite_element_analysis_control_and_result_schema); *) -ENTITY element_nodal_freedom_terms; - coordinate_system : fea_axis2_placement_3d; - degrees_of_freedom : freedoms_list; - values : LIST [1:?] OF measure_or_unspecified_value; -WHERE - WR1: SIZEOF(degrees_of_freedom.freedoms) = SIZEOF (values); -END_ENTITY; -(* USED FROM (finite_element_analysis_control_and_result_schema); *) -ENTITY point_freedom_and_value_definition - SUPERTYPE OF (ONEOF ( - POINT_FREEDOM_VALUES, - POINT_FREEDOM_ACTION_DEFINITION)) - SUBTYPE OF (state_definition); - required_point : analysis_item_within_representation; - coordinate_system : fea_axis2_placement_3d; - degrees_of_freedom : freedoms_list; - values : LIST [1:?] OF measure_or_unspecified_value; -WHERE - WR1: SIZEOF(degrees_of_freedom.freedoms) = SIZEOF (values); - WR2: ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.POINT' IN TYPEOF (required_point.item)) OR - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.VERTEX_POINT' IN TYPEOF (required_point.item)); -END_ENTITY; -(* USED FROM (finite_element_analysis_control_and_result_schema); *) -ENTITY point_freedom_values - SUBTYPE OF (point_freedom_and_value_definition); -END_ENTITY; -(* USED FROM (finite_element_analysis_control_and_result_schema); *) -ENTITY point_freedom_action_definition - SUBTYPE OF (point_freedom_and_value_definition); - action : action_type; -END_ENTITY; -(* USED FROM (finite_element_analysis_control_and_result_schema); *) -ENTITY curve_freedom_and_value_definition - SUPERTYPE OF (ONEOF ( - CURVE_FREEDOM_VALUES, - CURVE_FREEDOM_ACTION_DEFINITION)) - SUBTYPE OF (state_definition); - required_curve : analysis_item_within_representation; - coordinate_system : fea_axis2_placement_3d; - degrees_of_freedom : freedoms_list; - values : LIST [1:?] OF measure_or_unspecified_value; -WHERE - WR1: SIZEOF(degrees_of_freedom.freedoms) = SIZEOF (values); - WR2: ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CURVE' IN TYPEOF (required_curve.item)) OR - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.EDGE_CURVE' IN TYPEOF (required_curve.item)); -END_ENTITY; -(* USED FROM (finite_element_analysis_control_and_result_schema); *) -ENTITY curve_freedom_values - SUBTYPE OF (curve_freedom_and_value_definition); -END_ENTITY; -(* USED FROM (finite_element_analysis_control_and_result_schema); *) -ENTITY curve_freedom_action_definition - SUBTYPE OF (curve_freedom_and_value_definition); - action : action_type; -END_ENTITY; -(* USED FROM (finite_element_analysis_control_and_result_schema); *) -ENTITY surface_freedom_and_value_definition - SUPERTYPE OF (ONEOF ( - SURFACE_FREEDOM_VALUES, - SURFACE_FREEDOM_ACTION_DEFINITION)) - SUBTYPE OF (state_definition); - required_surface : analysis_item_within_representation; - coordinate_system : fea_axis2_placement_3d; - degrees_of_freedom : freedoms_list; - values : LIST [1:?] OF measure_or_unspecified_value; -WHERE - WR1: SIZEOF(degrees_of_freedom.freedoms) = SIZEOF (values); - WR2: ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SURFACE' IN TYPEOF (required_surface.item)) OR - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FACE_SURFACE' IN TYPEOF (required_surface.item)); -END_ENTITY; -(* USED FROM (finite_element_analysis_control_and_result_schema); *) -ENTITY surface_freedom_values - SUBTYPE OF (surface_freedom_and_value_definition); -END_ENTITY; -(* USED FROM (finite_element_analysis_control_and_result_schema); *) -ENTITY surface_freedom_action_definition - SUBTYPE OF (surface_freedom_and_value_definition); - action : action_type; -END_ENTITY; -(* USED FROM (finite_element_analysis_control_and_result_schema); *) -ENTITY solid_freedom_and_value_definition - SUPERTYPE OF (ONEOF ( - SOLID_FREEDOM_VALUES, - SOLID_FREEDOM_ACTION_DEFINITION)) - SUBTYPE OF (state_definition); - required_solid : analysis_item_within_representation; - coordinate_system : fea_axis2_placement_3d; - degrees_of_freedom : freedoms_list; - values : LIST [1:?] OF measure_or_unspecified_value; -WHERE - WR1: SIZEOF(degrees_of_freedom.freedoms) = SIZEOF (values); - WR2: 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SOLID_MODEL' IN TYPEOF (required_solid.item); -END_ENTITY; -(* USED FROM (finite_element_analysis_control_and_result_schema); *) -ENTITY solid_freedom_values - SUBTYPE OF (solid_freedom_and_value_definition); -END_ENTITY; -(* USED FROM (finite_element_analysis_control_and_result_schema); *) -ENTITY solid_freedom_action_definition - SUBTYPE OF (solid_freedom_and_value_definition); - action : action_type; -END_ENTITY; -(* USED FROM (finite_element_analysis_control_and_result_schema); *) -ENTITY freedoms_list; - freedoms : LIST [1:?] OF degree_of_freedom; -END_ENTITY; -(* USED FROM (finite_element_analysis_control_and_result_schema); *) -ENTITY linear_constraint_equation_element_value - SUBTYPE OF (state_definition); - element : linear_constraint_equation_element; - b : measure_or_unspecified_value; -END_ENTITY; -(* USED FROM (finite_element_analysis_control_and_result_schema); *) -ENTITY single_point_constraint_element_values - SUBTYPE OF (state_definition); - element : single_point_constraint_element; - degrees_of_freedom : freedoms_list; - b : LIST [1:?] OF measure_or_unspecified_value; -WHERE - WR1: SIZEOF(degrees_of_freedom.freedoms) = SIZEOF (b); -END_ENTITY; -(* USED FROM (finite_element_analysis_control_and_result_schema); *) -ENTITY analysis_message - SUPERTYPE OF (ONEOF ( - WHOLE_MODEL_ANALYSIS_MESSAGE, - ELEMENT_ANALYSIS_MESSAGE, - NODE_ANALYSIS_MESSAGE, - ELEMENT_GROUP_ANALYSIS_MESSAGE)) - SUBTYPE OF (state_definition); - level : message_level; - message_text : text; -END_ENTITY; -(* USED FROM (finite_element_analysis_control_and_result_schema); *) -ENTITY whole_model_analysis_message - SUPERTYPE OF ( - WHOLE_MODEL_MODES_AND_FREQUENCIES_ANALYSIS_MESSAGE) - SUBTYPE OF (analysis_message); -END_ENTITY; -(* USED FROM (finite_element_analysis_control_and_result_schema); *) -ENTITY whole_model_modes_and_frequencies_analysis_message - SUBTYPE OF (whole_model_analysis_message); - mode : count_measure; - frequency : context_dependent_measure; -END_ENTITY; -(* USED FROM (finite_element_analysis_control_and_result_schema); *) -ENTITY element_analysis_message - SUBTYPE OF (analysis_message); - element : element_representation; -END_ENTITY; -(* USED FROM (finite_element_analysis_control_and_result_schema); *) -ENTITY node_analysis_message - SUBTYPE OF (analysis_message); - node : node_output_reference; -END_ENTITY; -(* USED FROM (finite_element_analysis_control_and_result_schema); *) -ENTITY element_group_analysis_message - SUBTYPE OF (analysis_message); - group : element_group; -END_ENTITY; -(* USED FROM (finite_element_analysis_control_and_result_schema); *) -ENTITY volume_3d_substructure_element_reference; - substructure_element_ref : substructure_element_representation; - element_ref : volume_3d_element_representation; -END_ENTITY; -(* USED FROM (finite_element_analysis_control_and_result_schema); *) -ENTITY volume_2d_substructure_element_reference; - substructure_element_ref : substructure_element_representation; - element_ref : volume_2d_element_representation; -END_ENTITY; -(* USED FROM (finite_element_analysis_control_and_result_schema); *) -ENTITY surface_3d_substructure_element_reference; - substructure_element_ref : substructure_element_representation; - element_ref : surface_3d_element_representation; -END_ENTITY; -(* USED FROM (finite_element_analysis_control_and_result_schema); *) -ENTITY surface_2d_substructure_element_reference; - substructure_element_ref : substructure_element_representation; - element_ref : surface_2d_element_representation; -END_ENTITY; -(* USED FROM (finite_element_analysis_control_and_result_schema); *) -ENTITY curve_3d_substructure_element_reference; - substructure_element_ref : substructure_element_representation; - element_ref : curve_3d_element_representation; -END_ENTITY; -(* USED FROM (finite_element_analysis_control_and_result_schema); *) -ENTITY curve_2d_substructure_element_reference; - substructure_element_ref : substructure_element_representation; - element_ref : curve_2d_element_representation; -END_ENTITY; -(* USED FROM (finite_element_analysis_control_and_result_schema); *) -ENTITY substructure_node_reference; - substructure_element_ref : substructure_element_representation; - node_ref : node_representation; -END_ENTITY; -(* USED FROM (mesh_function_schema); *) -ENTITY mesh_function - SUBTYPE OF (application_defined_function, - unary_generic_expression); - mesh : mesh; - basis : LIST OF mesh_function_basis; - uniform : BOOLEAN; - vertex_values : BOOLEAN; -DERIVE - control_values : maths_function := SELF\unary_generic_expression.operand; -WHERE - wr1 : function_is_table(control_values); - wr2 : (uniform AND (SIZEOF(basis) = 1)) XOR - (NOT uniform); -END_ENTITY; -(* USED FROM (mesh_function_schema); *) -ENTITY mesh_function_basis - SUBTYPE OF (application_defined_function, - unary_generic_expression); - cell_topological_dimension : INTEGER; - value_array_dimension : INTEGER; - value_array_order : ARRAY [1:value_array_dimension] OF INTEGER; -DERIVE - value_positions : maths_function := SELF\unary_generic_expression.operand; -WHERE - value_positions_as_table : function_is_table(value_positions); -END_ENTITY; -(* USED FROM (Group_mim); *) -ENTITY applied_group_assignment - SUBTYPE OF (group_assignment); - items : SET[1:?] OF groupable_item; -END_ENTITY; -(* USED FROM (product_definition_schema); *) - ENTITY product_relationship; - id : identifier; - name : label; - description : OPTIONAL text; - relating_product : product; - related_product : product; - END_ENTITY; -(* USED FROM (Effectivity_application_mim); *) -ENTITY applied_effectivity_assignment - SUBTYPE OF (effectivity_assignment); - items : SET[1:?] OF effectivity_item; -END_ENTITY; -(* USED FROM (Effectivity_application_mim); *) -ENTITY applied_ineffectivity_assignment - SUBTYPE OF (effectivity_assignment); - items : SET [1:?] OF effectivity_item; -WHERE - WR1: SIZEOF(['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LOT_EFFECTIVITY', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SERIAL_NUMBERED_EFFECTIVITY', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRODUCT_DEFINITION_EFFECTIVITY'] * - TYPEOF(SELF.assigned_effectivity) - ) = 0; -END_ENTITY; -(* USED FROM (effectivity_schema); *) - ENTITY dated_effectivity - SUBTYPE OF (effectivity); - effectivity_end_date : OPTIONAL date_time_or_event_occurrence; - effectivity_start_date : OPTIONAL date_time_or_event_occurrence; - WHERE - WR1: EXISTS(effectivity_end_date) OR EXISTS(effectivity_start_date); - END_ENTITY; -(* USED FROM (effectivity_schema); *) - ENTITY effectivity - SUPERTYPE OF (ONEOF ( - SERIAL_NUMBERED_EFFECTIVITY, - DATED_EFFECTIVITY, - LOT_EFFECTIVITY, - TIME_INTERVAL_BASED_EFFECTIVITY)); - id : identifier; - DERIVE - name : label := get_name_value(SELF); - description : text := get_description_value(SELF); - WHERE - WR1: SIZEOF(USEDIN(SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'NAME_ATTRIBUTE.NAMED_ITEM')) <= 1; - WR2: SIZEOF(USEDIN(SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'DESCRIPTION_ATTRIBUTE.DESCRIBED_ITEM')) <= 1; - END_ENTITY; -(* USED FROM (effectivity_schema); *) - ENTITY effectivity_relationship; - name : label; - description : OPTIONAL text; - related_effectivity : effectivity; - relating_effectivity : effectivity; - END_ENTITY; -(* USED FROM (effectivity_schema); *) - ENTITY lot_effectivity - SUBTYPE OF (effectivity); - effectivity_lot_id : identifier; - effectivity_lot_size : measure_with_unit; - END_ENTITY; -(* USED FROM (effectivity_schema); *) - ENTITY serial_numbered_effectivity - SUBTYPE OF (effectivity); - effectivity_start_id : identifier; - effectivity_end_id : OPTIONAL identifier; - END_ENTITY; -(* USED FROM (effectivity_schema); *) - ENTITY time_interval_based_effectivity - SUBTYPE OF (effectivity); - effectivity_period : time_interval; - END_ENTITY; -(* USED FROM (management_resources_schema); *) - ENTITY effectivity_assignment - ABSTRACT SUPERTYPE; - assigned_effectivity : effectivity; - DERIVE - role : object_role := get_role(SELF); - WHERE - WR1: SIZEOF(USEDIN(SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'ROLE_ASSOCIATION.ITEM_WITH_ROLE')) <= 1; - END_ENTITY; -(* USED FROM (Assembly_technology_mim); *) -ENTITY assembly_bond_definition - SUBTYPE OF (shape_aspect); -UNIQUE - UR1: SELF\shape_aspect.name; -END_ENTITY; -(* USED FROM (measure_schema); *) - 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; -(* USED FROM (Assembly_technology_mim); *) -ENTITY component_mating_constraint_condition - SUBTYPE OF (shape_aspect); -UNIQUE - UR1: SELF\shape_aspect.name, SELF\shape_aspect.of_shape; -END_ENTITY; -(* USED FROM (Assembly_technology_mim); *) -ENTITY connection_zone_based_assembly_joint - SUBTYPE OF (assembly_joint); -END_ENTITY; -(* USED FROM (Component_feature_mim); *) -ENTITY component_feature - SUBTYPE OF (shape_aspect); - SELF\shape_aspect.of_shape : assembly_component; -END_ENTITY; -(* USED FROM (Component_feature_mim); *) -ENTITY component_feature_joint - SUBTYPE OF (shape_aspect_relationship, shape_aspect); - SELF\shape_aspect_relationship.relating_shape_aspect : component_feature; - SELF\shape_aspect_relationship.related_shape_aspect : component_feature; -END_ENTITY; -(* USED FROM (Component_feature_mim); *) -ENTITY component_feature_relationship - SUBTYPE OF (shape_aspect_relationship); - SELF\shape_aspect_relationship.relating_shape_aspect : component_feature; - SELF\shape_aspect_relationship.related_shape_aspect : component_feature; -WHERE - WR1: SELF\shape_aspect_relationship.related_shape_aspect :<>: - SELF\shape_aspect_relationship.relating_shape_aspect; -END_ENTITY; -(* USED FROM (Component_feature_mim); *) -ENTITY component_terminal - SUBTYPE OF (component_feature); -END_ENTITY; -(* USED FROM (Component_feature_mim); *) -ENTITY make_from_feature_relationship - SUBTYPE OF (component_feature_relationship); -END_ENTITY; -(* USED FROM (Requirement_assignment_mim); *) -ENTITY assigned_requirement - SUBTYPE OF (group_assignment); - SELF\group_assignment.assigned_group : requirement_assignment; - items : SET[1:1] OF product_definition; -END_ENTITY; -(* USED FROM (Requirement_assignment_mim); *) -ENTITY requirement_assigned_object - SUBTYPE OF (group_assignment); - SELF\group_assignment.assigned_group : requirement_assignment; - items : SET[1:1] OF requirement_assigned_item; -END_ENTITY; -(* USED FROM (Requirement_assignment_mim); *) -ENTITY requirement_assignment - SUBTYPE OF (characterized_object, group); -END_ENTITY; -(* USED FROM (Requirement_assignment_mim); *) -ENTITY requirement_source - SUBTYPE OF (group); -END_ENTITY; -(* USED FROM (Requirement_assignment_mim); *) -ENTITY satisfied_requirement - SUBTYPE OF (group_assignment); - SELF\group_assignment.assigned_group : satisfies_requirement; - items : SET[1:1] OF product_definition; -END_ENTITY; -(* USED FROM (Requirement_assignment_mim); *) -ENTITY satisfies_requirement - SUBTYPE OF (group); -END_ENTITY; -(* USED FROM (Requirement_assignment_mim); *) -ENTITY satisfying_item - SUBTYPE OF (group_assignment); - SELF\group_assignment.assigned_group : satisfies_requirement; - items : SET[1:1] OF requirement_satisfaction_item; -END_ENTITY; -(* USED FROM (Requirement_assignment_mim); *) -ENTITY source_for_requirement - SUBTYPE OF (group_assignment); - SELF\group_assignment.assigned_group : requirement_source; - items : SET[1:1] OF requirement_source_item; -END_ENTITY; -(* USED FROM (Requirement_assignment_mim); *) -ENTITY sourced_requirement - SUBTYPE OF (group_assignment); - SELF\group_assignment.assigned_group : requirement_source; - items : SET[1:1] OF product_definition; -END_ENTITY; -(* USED FROM (Physical_component_feature_mim); *) - ENTITY physical_component_feature - SUBTYPE OF (component_feature); - END_ENTITY; -(* USED FROM (Physical_component_feature_mim); *) - ENTITY physical_component_terminal - SUBTYPE OF (component_terminal, - physical_component_feature); - END_ENTITY; -(* USED FROM (Component_grouping_mim); *) -ENTITY array_placement_group - SUPERTYPE OF (ONEOF ( - LINEAR_ARRAY_PLACEMENT_GROUP_COMPONENT, - RECTANGULAR_ARRAY_PLACEMENT_GROUP_COMPONENT)) - SUBTYPE OF (assembly_group_component); -END_ENTITY; -(* USED FROM (Component_grouping_mim); *) -ENTITY assembly_group_component - SUBTYPE OF (assembly_component); -END_ENTITY; -(* USED FROM (Component_grouping_mim); *) -ENTITY assembly_group_component_definition_placement_link - SUBTYPE OF (product_definition,product_definition_relationship); - SELF\product_definition_relationship.relating_product_definition : assembly_component; - SELF\product_definition_relationship.related_product_definition : assembly_component; -WHERE - WR1: SELF\product_definition_relationship.related_product_definition :<>: - SELF\product_definition_relationship.relating_product_definition; - WR2: acyclic_product_definition_relationship (SELF, - [SELF\product_definition_relationship.related_product_definition], - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ASSEMBLY_GROUP_COMPONENT_DEFINITION_PLACEMENT_LINK'); -END_ENTITY; -(* USED FROM (Component_grouping_mim); *) -ENTITY interfaced_group_component - SUBTYPE OF (assembly_group_component); -END_ENTITY; -(* USED FROM (Component_grouping_mim); *) -ENTITY linear_array_component_definition_link - SUBTYPE OF (product_definition,product_definition_relationship); - SELF\product_definition_relationship.relating_product_definition : linear_array_placement_group_component; - SELF\product_definition_relationship.related_product_definition : linear_array_placement_group_component; -WHERE - WR1: SELF\product_definition_relationship.related_product_definition :<>: - SELF\product_definition_relationship.relating_product_definition; - WR2: acyclic_product_definition_relationship (SELF, - [SELF\product_definition_relationship.related_product_definition], - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LINEAR_ARRAY_COMPONENT_DEFINITION_LINK'); -END_ENTITY; -(* USED FROM (Component_grouping_mim); *) -ENTITY linear_array_placement_group_component - SUBTYPE OF (array_placement_group); -END_ENTITY; -(* USED FROM (Component_grouping_mim); *) -ENTITY rectangular_array_placement_group_component - SUBTYPE OF (array_placement_group); -END_ENTITY; -(* USED FROM (measure_schema); *) - ENTITY electric_potential_measure_with_unit - SUBTYPE OF (measure_with_unit); - WHERE - WR1: 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ELECTRIC_POTENTIAL_UNIT' IN TYPEOF(SELF\measure_with_unit.unit_component); - END_ENTITY; -(* USED FROM (geometry_schema); *) -ENTITY circle - SUBTYPE OF (conic); - radius : positive_length_measure; -END_ENTITY; -(* USED FROM (geometry_schema); *) -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; -(* USED FROM (geometry_schema); *) -ENTITY line - SUBTYPE OF (curve); - pnt : cartesian_point; - dir : vector; -WHERE - WR1: dir.dim = pnt.dim; -END_ENTITY; -(* USED FROM (measure_schema); *) - ENTITY energy_unit - SUBTYPE OF(derived_unit); - WHERE - WR1: derive_dimensional_exponents(SELF) = dimensions_for_si_unit (si_unit_name.joule); - END_ENTITY; -(* USED FROM (geometry_schema); *) -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: ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.BOUNDED_CURVE' IN TYPEOF(parent_curve)); -END_ENTITY; -(* USED FROM (geometry_schema); *) -ENTITY pcurve - SUBTYPE OF (curve); - basis_surface : surface; - reference_to_curve : definitional_representation; -WHERE - WR1: SIZEOF(reference_to_curve\representation.items) = 1; - WR2: 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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; -(* USED FROM (geometry_schema); *) -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: ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PCURVE' IN TYPEOF(associated_geometry[1])) OR (master_representation <> pcurve_s1); - WR3: ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PCURVE' IN TYPEOF(associated_geometry[2])) OR (master_representation <> pcurve_s2); - WR4: NOT ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PCURVE' IN TYPEOF(curve_3d)); -END_ENTITY; -(* USED FROM (geometry_schema); *) -ENTITY b_spline_curve - SUPERTYPE OF (ONEOF ( - UNIFORM_CURVE, - B_SPLINE_CURVE_WITH_KNOTS, - QUASI_UNIFORM_CURVE, - BEZIER_CURVE) - ANDOR - RATIONAL_B_SPLINE_CURVE) - SUBTYPE OF (bounded_curve); - degree : INTEGER; - control_points_list : LIST[2:?] OF cartesian_point; - curve_form : b_spline_curve_form; - closed_curve : LOGICAL; - self_intersect : LOGICAL; -DERIVE - upper_index_on_control_points : INTEGER := (SIZEOF(control_points_list) - 1); - control_points : ARRAY[0:upper_index_on_control_points] OF cartesian_point := list_to_array(control_points_list,0, upper_index_on_control_points); -WHERE - WR1: ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.UNIFORM_CURVE' IN TYPEOF(self)) OR ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.QUASI_UNIFORM_CURVE' IN TYPEOF(self)) OR ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.BEZIER_CURVE' IN TYPEOF(self)) OR ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.B_SPLINE_CURVE_WITH_KNOTS' IN TYPEOF(self)); -END_ENTITY; -(* USED FROM (geometry_schema); *) -ENTITY b_spline_surface - SUPERTYPE OF (ONEOF ( - B_SPLINE_SURFACE_WITH_KNOTS, - UNIFORM_SURFACE, - QUASI_UNIFORM_SURFACE, - BEZIER_SURFACE) - ANDOR - RATIONAL_B_SPLINE_SURFACE) - SUBTYPE OF (bounded_surface); - u_degree : INTEGER; - v_degree : INTEGER; - control_points_list : LIST[2:?] OF LIST[2:?] OF cartesian_point; - surface_form : b_spline_surface_form; - u_closed : LOGICAL; - v_closed : LOGICAL; - self_intersect : LOGICAL; -DERIVE - u_upper : INTEGER := SIZEOF(control_points_list) - 1; - v_upper : INTEGER := SIZEOF(control_points_list[1]) - 1; - control_points : ARRAY[0:u_upper] OF ARRAY[0:v_upper] OF cartesian_point := make_array_of_array(control_points_list, 0,u_upper,0,v_upper); -WHERE - WR1: ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.UNIFORM_SURFACE' IN TYPEOF(SELF)) OR ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.QUASI_UNIFORM_SURFACE' IN TYPEOF(SELF)) OR ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.BEZIER_SURFACE' IN TYPEOF(SELF)) OR ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.B_SPLINE_SURFACE_WITH_KNOTS' IN TYPEOF(SELF)); -END_ENTITY; -(* USED FROM (geometry_schema); *) -ENTITY bezier_curve - SUBTYPE OF (b_spline_curve); -END_ENTITY; -(* USED FROM (geometry_schema); *) -ENTITY bezier_surface - SUBTYPE OF (b_spline_surface); -END_ENTITY; -(* USED FROM (geometry_schema); *) -ENTITY quasi_uniform_curve - SUBTYPE OF (b_spline_curve); -END_ENTITY; -(* USED FROM (geometry_schema); *) -ENTITY quasi_uniform_surface - SUBTYPE OF (b_spline_surface); -END_ENTITY; -(* USED FROM (measure_schema); *) - 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; -(* USED FROM (measure_schema); *) - 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; -(* USED FROM (geometry_schema); *) -ENTITY uniform_curve - SUBTYPE OF (b_spline_curve); -END_ENTITY; -(* USED FROM (geometry_schema); *) -ENTITY uniform_surface - SUBTYPE OF (b_spline_surface); -END_ENTITY; -(* USED FROM (geometry_schema); *) -ENTITY bounded_curve - SUPERTYPE OF (ONEOF ( - POLYLINE, - B_SPLINE_CURVE, - TRIMMED_CURVE, - BOUNDED_PCURVE, - BOUNDED_SURFACE_CURVE, - COMPOSITE_CURVE)) - SUBTYPE OF (curve); -END_ENTITY; -(* USED FROM (geometry_schema); *) -ENTITY bounded_surface - SUPERTYPE OF (ONEOF ( - B_SPLINE_SURFACE, - RECTANGULAR_TRIMMED_SURFACE, - CURVE_BOUNDED_SURFACE, - RECTANGULAR_COMPOSITE_SURFACE)) - SUBTYPE OF (surface); -END_ENTITY; -(* USED FROM (geometry_schema); *) -ENTITY conic - SUPERTYPE OF (ONEOF ( - CIRCLE, - ELLIPSE, - HYPERBOLA, - PARABOLA)) - SUBTYPE OF (curve); - position : axis2_placement; -END_ENTITY; -(* USED FROM (geometry_schema); *) -ENTITY conical_surface - SUBTYPE OF (elementary_surface); - radius : length_measure; - semi_angle : plane_angle_measure; -WHERE - WR1: radius >= 0.0; -END_ENTITY; -(* USED FROM (geometry_schema); *) -(* Pruned SUPERTYPE *) -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; -(* USED FROM (geometry_schema); *) -ENTITY cylindrical_surface - SUBTYPE OF (elementary_surface); - radius : positive_length_measure; -END_ENTITY; -(* USED FROM (geometry_schema); *) -ENTITY ellipse - SUBTYPE OF (conic); - semi_axis_1 : positive_length_measure; - semi_axis_2 : positive_length_measure; -END_ENTITY; -(* USED FROM (geometry_schema); *) -ENTITY hyperbola - SUBTYPE OF (conic); - semi_axis : positive_length_measure; - semi_imag_axis : positive_length_measure; -END_ENTITY; -(* USED FROM (geometry_schema); *) -ENTITY oriented_surface - SUBTYPE OF (surface); - orientation : BOOLEAN; -END_ENTITY; -(* USED FROM (geometry_schema); *) -ENTITY parabola - SUBTYPE OF (conic); - focal_dist : length_measure; -WHERE - WR1: focal_dist <> 0.0; -END_ENTITY; -(* USED FROM (geometry_schema); *) -ENTITY plane - SUBTYPE OF (elementary_surface); -END_ENTITY; -(* USED FROM (geometry_schema); *) -ENTITY point_on_curve - SUBTYPE OF (point); - basis_curve : curve; - point_parameter : parameter_value; -END_ENTITY; -(* USED FROM (geometry_schema); *) -ENTITY point_on_surface - SUBTYPE OF (point); - basis_surface : surface; - point_parameter_u : parameter_value; - point_parameter_v : parameter_value; -END_ENTITY; -(* USED FROM (geometry_schema); *) -ENTITY surface - SUPERTYPE OF (ONEOF ( - ELEMENTARY_SURFACE, - SWEPT_SURFACE, - BOUNDED_SURFACE, - OFFSET_SURFACE, - SURFACE_REPLICA)) - SUBTYPE OF (geometric_representation_item); -END_ENTITY; -(* USED FROM (geometry_schema); *) -ENTITY surface_of_linear_extrusion - SUBTYPE OF (swept_surface); - extrusion_axis : vector; -END_ENTITY; -(* USED FROM (geometry_schema); *) -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; -(* USED FROM (geometry_schema); *) -(* Pruned SUPERTYPE *) -ENTITY swept_surface - SUPERTYPE OF (ONEOF ( - SURFACE_OF_LINEAR_EXTRUSION, - SURFACE_OF_REVOLUTION)) - SUBTYPE OF (surface); - swept_curve : curve; -END_ENTITY; -(* USED FROM (geometry_schema); *) -ENTITY toroidal_surface - SUBTYPE OF (elementary_surface); - major_radius : positive_length_measure; - minor_radius : positive_length_measure; -END_ENTITY; -(* USED FROM (measure_schema); *) - ENTITY illuminance_unit - SUBTYPE OF(derived_unit); - WHERE - WR1: derive_dimensional_exponents(SELF) = dimensions_for_si_unit (si_unit_name.lux); - END_ENTITY; -(* USED FROM (geometry_schema); *) -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: (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ELEMENTARY_SURFACE' IN TYPEOF(basis_surface)) AND (NOT ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PLANE' IN TYPEOF(basis_surface)))) OR ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SURFACE_OF_REVOLUTION' IN TYPEOF(basis_surface)) OR (usense = (u2 > u1)); - WR4: (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SPHERICAL_SURFACE' IN TYPEOF(basis_surface)) OR ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.TOROIDAL_SURFACE' IN TYPEOF(basis_surface))) OR (vsense = (v2 > v1)); -END_ENTITY; -(* USED FROM (geometry_schema); *) -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 ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CURVE_BOUNDED_SURFACE' IN TYPEOF(parent_surface))); -END_ENTITY; -(* USED FROM (measure_schema); *) - 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; -(* USED FROM (measure_schema); *) - 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; -(* USED FROM (kinematic_structure_schema); *) -ENTITY fully_constrained_pair - SUBTYPE OF (low_order_kinematic_pair); -DERIVE - SELF\low_order_kinematic_pair.t_x : BOOLEAN := FALSE; - SELF\low_order_kinematic_pair.t_y : BOOLEAN := FALSE; - SELF\low_order_kinematic_pair.t_z : BOOLEAN := FALSE; - SELF\low_order_kinematic_pair.r_x : BOOLEAN := FALSE; - SELF\low_order_kinematic_pair.r_y : BOOLEAN := FALSE; - SELF\low_order_kinematic_pair.r_z : BOOLEAN := FALSE; -END_ENTITY; -(* USED FROM (kinematic_structure_schema); *) -ENTITY unconstrained_pair - SUBTYPE OF (low_order_kinematic_pair); -DERIVE - SELF\low_order_kinematic_pair.t_x : BOOLEAN := TRUE; - SELF\low_order_kinematic_pair.t_y : BOOLEAN := TRUE; - SELF\low_order_kinematic_pair.t_z : BOOLEAN := TRUE; - SELF\low_order_kinematic_pair.r_x : BOOLEAN := TRUE; - SELF\low_order_kinematic_pair.r_y : BOOLEAN := TRUE; - SELF\low_order_kinematic_pair.r_z : BOOLEAN := TRUE; -END_ENTITY; -(* USED FROM (product_data_quality_criteria_schema); *) - ENTITY data_quality_criterion_measurement_association - SUBTYPE OF(representation_item_relationship); - SELF\representation_item_relationship.relating_representation_item : data_quality_criterion; - SELF\representation_item_relationship.related_representation_item : data_quality_measurement_requirement; - END_ENTITY; -(* USED FROM (product_data_quality_criteria_schema); *) - ENTITY data_quality_assessment_specification; - description : text; - END_ENTITY; -(* USED FROM (product_data_quality_criteria_schema); *) - ENTITY data_quality_criterion_assessment_association; - criterion : data_quality_criterion; - assessment_specification : data_quality_assessment_specification; - END_ENTITY; -(* USED FROM (product_data_quality_criteria_schema); *) - ENTITY data_quality_assessment_measurement_association; - assessment_specification : data_quality_criterion_assessment_association; - measurement_requirement : data_quality_criterion_measurement_association; - WHERE - WR1 : SELF.measurement_requirement\representation_item_relationship. - relating_representation_item :=: - SELF.assessment_specification.criterion; - END_ENTITY; -(* USED FROM (product_data_quality_criteria_schema); *) - ENTITY data_quality_report_request - ABSTRACT SUPERTYPE OF (ONEOF ( - SUMMARY_REPORT_REQUEST, - DETAILED_REPORT_REQUEST)); - description : text; - criterion_of_report_request : data_quality_criterion; - END_ENTITY; -(* USED FROM (product_data_quality_criteria_schema); *) - ENTITY summary_report_request - SUBTYPE OF(data_quality_report_request); - summary_report_request_type : summary_report_type; - END_ENTITY; -(* USED FROM (product_data_quality_criteria_schema); *) - ENTITY detailed_report_request - SUBTYPE OF(data_quality_report_request); - detailed_report_request_type : detailed_report_type; - report_sequence : preferred_ordering; - END_ENTITY; -(* USED FROM (product_data_quality_criteria_schema); *) - ENTITY detailed_report_request_with_number_of_data - SUBTYPE OF(detailed_report_request); - number_of_data : INTEGER; - DERIVE - SELF\detailed_report_request.detailed_report_request_type:detailed_report_type:= measured_element; - END_ENTITY; -(* USED FROM (product_data_quality_definition_schema); *) - ENTITY data_quality_definition; - description : text; - END_ENTITY; -(* USED FROM (product_data_quality_definition_schema); *) - ENTITY data_quality_definition_representation_relationship; - description : text; - definition : data_quality_definition; - used_representation : used_quality_representation_select; - END_ENTITY; -(* USED FROM (product_data_quality_definition_schema); *) - ENTITY product_data_and_data_quality_relationship; - description : text; - product_data : product_definition; - data_quality : data_quality_definition; - END_ENTITY; -(* USED FROM (product_data_quality_definition_schema); *) - ENTITY data_quality_definition_relationship; - description : text; - relating_data_quality_definition : data_quality_definition; - related_data_quality_definition : data_quality_definition; - END_ENTITY; -(* USED FROM (product_data_quality_definition_schema); *) - ENTITY software_for_data_quality_check; - description : text; - software_name : text; - software_version : text; - data_quality : data_quality_definition_representation_relationship; - END_ENTITY; -(* USED FROM (measure_schema); *) - ENTITY length_measure_with_unit - SUBTYPE OF (measure_with_unit); - WHERE - WR1: 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_UNIT' IN TYPEOF(SELF\measure_with_unit.unit_component); - END_ENTITY; -(* USED FROM (measure_schema); *) - 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; -(* USED FROM (product_data_quality_inspection_result_schema); *) - ENTITY data_quality_inspection_result_with_judgement - SUBTYPE OF(data_quality_inspection_result); - judgement : BOOLEAN; - END_ENTITY; -(* USED FROM (measure_schema); *) - ENTITY luminous_flux_unit - SUBTYPE OF(named_unit); - WHERE - WR1: derive_dimensional_exponents(SELF) = dimensions_for_si_unit (si_unit_name.lumen); - END_ENTITY; -(* USED FROM (kinematic_structure_schema); *) -ENTITY homokinetic_pair - SUBTYPE OF (universal_pair); -WHERE - WR1: NOT EXISTS(SELF.input_skew_angle); -END_ENTITY; -(* USED FROM (kinematic_structure_schema); *) -ENTITY universal_pair_with_range - SUBTYPE OF (universal_pair); - lower_limit_first_rotation : OPTIONAL plane_angle_measure; - upper_limit_first_rotation : OPTIONAL plane_angle_measure; - lower_limit_second_rotation : OPTIONAL plane_angle_measure; - upper_limit_second_rotation : OPTIONAL plane_angle_measure; -WHERE - WR1: (NOT EXISTS(lower_limit_first_rotation) - OR - NOT EXISTS(upper_limit_first_rotation)) - XOR - (lower_limit_first_rotation < upper_limit_first_rotation); - WR2: (NOT EXISTS(lower_limit_second_rotation) - OR - NOT EXISTS(upper_limit_second_rotation)) - XOR - (lower_limit_second_rotation < upper_limit_second_rotation); -END_ENTITY; -(* USED FROM (kinematic_structure_schema); *) -ENTITY planar_pair - SUBTYPE OF (low_order_kinematic_pair); -DERIVE - SELF\low_order_kinematic_pair.t_x : BOOLEAN := TRUE; - SELF\low_order_kinematic_pair.t_y : BOOLEAN := TRUE; - SELF\low_order_kinematic_pair.t_z : BOOLEAN := FALSE; - SELF\low_order_kinematic_pair.r_x : BOOLEAN := FALSE; - SELF\low_order_kinematic_pair.r_y : BOOLEAN := FALSE; - SELF\low_order_kinematic_pair.r_z : BOOLEAN := TRUE; -END_ENTITY; -(* USED FROM (kinematic_structure_schema); *) -ENTITY spherical_pair_with_pin_and_range - SUBTYPE OF (spherical_pair_with_pin); - lower_limit_yaw : OPTIONAL plane_angle_measure; - upper_limit_yaw : OPTIONAL plane_angle_measure; - lower_limit_roll : OPTIONAL plane_angle_measure; - upper_limit_roll : OPTIONAL plane_angle_measure; -WHERE - WR1: (NOT EXISTS(lower_limit_yaw) - OR - NOT EXISTS(upper_limit_yaw)) - XOR - (lower_limit_yaw < upper_limit_yaw); - WR2: (NOT EXISTS(lower_limit_roll) - OR - NOT EXISTS(upper_limit_roll)) - XOR - (lower_limit_roll < upper_limit_roll); -END_ENTITY; -(* USED FROM (product_data_quality_inspection_result_schema); *) - ENTITY data_quality_report_measurement_association - SUBTYPE OF(representation_item_relationship); - SELF\representation_item_relationship.relating_representation_item : data_quality_measurement_requirement; - SELF\representation_item_relationship.related_representation_item : data_quality_inspection_report; - END_ENTITY; -(* USED FROM (qualified_measure_schema); *) -ENTITY expanded_uncertainty - SUBTYPE OF (standard_uncertainty); - coverage_factor : REAL; -END_ENTITY; -(* USED FROM (kinematic_structure_schema); *) -ENTITY spherical_pair_with_pin - SUBTYPE OF (low_order_kinematic_pair); -DERIVE - SELF\low_order_kinematic_pair.t_x : BOOLEAN := FALSE; - SELF\low_order_kinematic_pair.t_y : BOOLEAN := FALSE; - SELF\low_order_kinematic_pair.t_z : BOOLEAN := FALSE; - SELF\low_order_kinematic_pair.r_x : BOOLEAN := FALSE; - SELF\low_order_kinematic_pair.r_y : BOOLEAN := TRUE; - SELF\low_order_kinematic_pair.r_z : BOOLEAN := TRUE; -END_ENTITY; -(* USED FROM (kinematic_structure_schema); *) -ENTITY spherical_pair_with_range - SUBTYPE OF (spherical_pair); - lower_limit_yaw : OPTIONAL plane_angle_measure; - upper_limit_yaw : OPTIONAL plane_angle_measure; - lower_limit_pitch : OPTIONAL plane_angle_measure; - upper_limit_pitch : OPTIONAL plane_angle_measure; - lower_limit_roll : OPTIONAL plane_angle_measure; - upper_limit_roll : OPTIONAL plane_angle_measure; -WHERE - WR1: (NOT EXISTS(lower_limit_yaw) - OR - NOT EXISTS(upper_limit_yaw)) - XOR - (lower_limit_yaw < upper_limit_yaw); - WR2: (NOT EXISTS(lower_limit_pitch) - OR - NOT EXISTS(upper_limit_pitch)) - XOR - (lower_limit_pitch < upper_limit_pitch); - WR3: (NOT EXISTS(lower_limit_roll) - OR - NOT EXISTS(upper_limit_roll)) - XOR - (lower_limit_roll < upper_limit_roll); -END_ENTITY; -(* USED FROM (qualified_measure_schema); *) -ENTITY qualitative_uncertainty - SUBTYPE OF (uncertainty_qualifier); - uncertainty_value : text; -END_ENTITY; -(* USED FROM (qualified_measure_schema); *) -ENTITY precision_qualifier; - precision_value : INTEGER; -END_ENTITY; -(* USED FROM (qualified_measure_schema); *) -ENTITY standard_uncertainty - SUPERTYPE OF ( - EXPANDED_UNCERTAINTY) - SUBTYPE OF (uncertainty_qualifier); - uncertainty_value : REAL; -END_ENTITY; -(* USED FROM (qualified_measure_schema); *) -ENTITY type_qualifier; - name : label; -END_ENTITY; -(* USED FROM (qualified_measure_schema); *) -ENTITY uncertainty_qualifier - SUPERTYPE OF (ONEOF ( - STANDARD_UNCERTAINTY, - QUALITATIVE_UNCERTAINTY)); - measure_name : label; - description : text; -END_ENTITY; -(* USED FROM (qualified_measure_schema); *) -ENTITY value_format_type_qualifier; - format_type : value_format_type; -END_ENTITY; -(* USED FROM (measure_schema); *) - 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; -(* USED FROM (measure_schema); *) - ENTITY magnetic_flux_unit - SUBTYPE OF(derived_unit); - WHERE - WR1: derive_dimensional_exponents(SELF) = dimensions_for_si_unit (si_unit_name.weber); - END_ENTITY; -(* USED FROM (shape_data_quality_criteria_schema); *) - ENTITY shape_data_quality_assessment_by_numerical_test - SUBTYPE OF(data_quality_assessment_specification); - threshold : shape_data_quality_value_limit_type_select; - END_ENTITY; -(* USED FROM (measure_schema); *) - ENTITY magnetic_flux_measure_with_unit - SUBTYPE OF (measure_with_unit); - WHERE - WR1: 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MAGNETIC_FLUX_UNIT' IN TYPEOF(SELF\measure_with_unit.unit_component); - END_ENTITY; -(* USED FROM (shape_data_quality_criteria_schema); *) - ENTITY shape_data_quality_value_limit - ABSTRACT SUPERTYPE OF (ONEOF ( - SHAPE_DATA_QUALITY_UPPER_VALUE_LIMIT, - SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT)) - SUBTYPE OF(measure_representation_item, qualified_representation_item); - END_ENTITY; -(* USED FROM (shape_data_quality_criteria_schema); *) - ENTITY shape_data_quality_upper_value_limit - SUBTYPE OF(shape_data_quality_value_limit); - WHERE - WR1 : SELF\qualified_representation_item.qualifiers[1].name = 'maximum'; - END_ENTITY; -(* USED FROM (shape_data_quality_criteria_schema); *) - ENTITY shape_data_quality_lower_value_limit - SUBTYPE OF(shape_data_quality_value_limit); - WHERE - WR1 : SELF\qualified_representation_item.qualifiers[1].name = 'minimum'; - END_ENTITY; -(* USED FROM (shape_data_quality_criteria_schema); *) - ENTITY shape_summary_request_with_representative_value - SUBTYPE OF(summary_report_request); - END_ENTITY; -(* USED FROM (shape_data_quality_criteria_schema); *) - ENTITY shape_data_quality_assessment_by_logical_test - SUBTYPE OF(data_quality_assessment_specification); - END_ENTITY; -(* USED FROM (shape_data_quality_criteria_schema); *) - ENTITY erroneous_data - ABSTRACT SUPERTYPE OF (ONEOF ( - ERRONEOUS_TOPOLOGY, - ERRONEOUS_GEOMETRY, - ERRONEOUS_TOPOLOGY_AND_GEOMETRY_RELATIONSHIP, - ERRONEOUS_MANIFOLD_SOLID_BREP)) - SUBTYPE OF(shape_data_quality_criterion); - END_ENTITY; -(* USED FROM (shape_data_quality_criteria_schema); *) - ENTITY erroneous_topology - ABSTRACT SUPERTYPE OF (ONEOF ( - OPEN_EDGE_LOOP, - OPEN_CLOSED_SHELL, - INCONSISTENT_ADJACENT_FACE_NORMALS, - DISCONNECTED_FACE_SET)) - SUBTYPE OF(erroneous_data); - END_ENTITY; -(* USED FROM (measure_schema); *) - 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; -(* USED FROM (shape_data_quality_criteria_schema); *) - ENTITY open_closed_shell - SUBTYPE OF(erroneous_topology); - SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_logical_test; - WHERE - WR1 : validate_measured_data_type(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.BOOLEAN_VALUE'); - WR2 : validate_inspected_elements_type(SELF, - ['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CLOSED_SHELL']); - WR3 : validate_locations_of_extreme_value_type(SELF, - ['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.EDGE_CURVE']); - WR4 : validate_accuracy_types(SELF, - []); - END_ENTITY; -(* USED FROM (shape_data_quality_criteria_schema); *) - ENTITY inconsistent_adjacent_face_normals - SUBTYPE OF(erroneous_topology); - SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_logical_test; - WHERE - WR1 : validate_measured_data_type(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.BOOLEAN_VALUE'); - WR2 : validate_inspected_elements_type(SELF, - ['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.'+ - 'CLOSED_OR_OPEN_SHELL_SELECT']); - WR3 : validate_locations_of_extreme_value_type(SELF, - ['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.EDGE_CURVE']); - WR4 : validate_accuracy_types(SELF, - []); - END_ENTITY; -(* USED FROM (shape_data_quality_criteria_schema); *) - ENTITY disconnected_face_set - SUBTYPE OF(erroneous_topology); - SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_logical_test; - WHERE - WR1 : validate_measured_data_type(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.BOOLEAN_VALUE'); - WR2 : validate_inspected_elements_type(SELF, - ['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CONNECTED_FACE_SET']); - WR3 : validate_locations_of_extreme_value_type(SELF, - []); - WR4 : validate_accuracy_types(SELF, - []); - END_ENTITY; -(* USED FROM (shape_data_quality_criteria_schema); *) - ENTITY erroneous_geometry - ABSTRACT SUPERTYPE OF (ONEOF ( - INCONSISTENT_CURVE_TRANSITION_CODE, - ERRONEOUS_B_SPLINE_CURVE_DEFINITION, - INCONSISTENT_SURFACE_TRANSITION_CODE, - ERRONEOUS_B_SPLINE_SURFACE_DEFINITION)) - SUBTYPE OF(erroneous_data); - END_ENTITY; -(* USED FROM (shape_data_quality_criteria_schema); *) - ENTITY inconsistent_curve_transition_code - SUBTYPE OF(erroneous_geometry); - SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_logical_test; - angle_tolerance : plane_angle_measure; - curvature_ratio_tolerance : ratio_measure; - distance_tolerance : length_measure; - flat_curvature_radius_tolerance : length_measure; - WHERE - WR1 : validate_measured_data_type(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.BOOLEAN_VALUE'); - WR2 : validate_inspected_elements_type(SELF, - ['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.COMPOSITE_CURVE']); - WR3 : validate_locations_of_extreme_value_type(SELF, - ['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.'+ - 'COMPOSITE_CURVE_TRANSITION_LOCATOR']); - WR4 : validate_accuracy_types(SELF, - []); - END_ENTITY; -(* USED FROM (shape_data_quality_criteria_schema); *) - ENTITY erroneous_b_spline_curve_definition - SUBTYPE OF(erroneous_geometry); - SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_logical_test; - WHERE - WR1 : validate_measured_data_type(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.BOOLEAN_VALUE'); - WR2 : validate_inspected_elements_type(SELF, - ['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.B_SPLINE_CURVE_WITH_KNOTS']); - WR3 : validate_locations_of_extreme_value_type(SELF, - []); - WR4 : validate_accuracy_types(SELF, - []); - END_ENTITY; -(* USED FROM (shape_data_quality_criteria_schema); *) - ENTITY inconsistent_surface_transition_code - SUBTYPE OF(erroneous_geometry); - SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_logical_test; - angle_tolerance : plane_angle_measure; - curvature_ratio_tolerance : ratio_measure; - distance_tolerance : length_measure; - flat_curvature_radius_tolerance : length_measure; - WHERE - WR1 : validate_measured_data_type(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.BOOLEAN_VALUE'); - WR2 : validate_inspected_elements_type(SELF, - ['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.RECTANGULAR_COMPOSITE_SURFACE']); - WR3 : validate_locations_of_extreme_value_type(SELF, - ['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.'+ - 'RECTANGULAR_COMPOSITE_SURFACE_TRANSITION_LOCATOR']); - WR4 : validate_accuracy_types(SELF, - []); - END_ENTITY; -(* USED FROM (shape_data_quality_criteria_schema); *) - ENTITY erroneous_b_spline_surface_definition - SUBTYPE OF(erroneous_geometry); - SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_logical_test; - WHERE - WR1 : validate_measured_data_type(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.BOOLEAN_VALUE'); - WR2 : validate_inspected_elements_type(SELF, - ['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.B_SPLINE_SURFACE_WITH_KNOTS']); - WR3 : validate_locations_of_extreme_value_type(SELF, - []); - WR4 : validate_accuracy_types(SELF, - []); - END_ENTITY; -(* USED FROM (shape_data_quality_criteria_schema); *) - ENTITY erroneous_topology_and_geometry_relationship - ABSTRACT SUPERTYPE OF (ONEOF ( - INCONSISTENT_EDGE_AND_CURVE_DIRECTIONS, - INCONSISTENT_FACE_AND_SURFACE_NORMALS, - INCONSISTENT_FACE_AND_CLOSED_SHELL_NORMALS, - INTERSECTING_LOOPS_IN_FACE, - WRONGLY_PLACED_LOOP)) - SUBTYPE OF(erroneous_data); - END_ENTITY; -(* USED FROM (shape_data_quality_criteria_schema); *) - ENTITY inconsistent_edge_and_curve_directions - SUBTYPE OF(erroneous_topology_and_geometry_relationship); - SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_logical_test; - distance_tolerance : length_measure; -- ISO 10303-59 error! - WHERE - WR1 : validate_measured_data_type(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.BOOLEAN_VALUE') - ; - WR2 : validate_inspected_elements_type(SELF, - ['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.EDGE_CURVE']) - ; - WR3 : validate_locations_of_extreme_value_type(SELF, - []); - WR4 : validate_accuracy_types(SELF, - []); - END_ENTITY; -(* USED FROM (shape_data_quality_criteria_schema); *) - ENTITY inconsistent_face_and_surface_normals - SUBTYPE OF(erroneous_topology_and_geometry_relationship); - SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_logical_test; - WHERE - WR1 : validate_measured_data_type(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.BOOLEAN_VALUE'); - WR2 : validate_inspected_elements_type(SELF, - ['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FACE_SURFACE']); - WR3 : validate_locations_of_extreme_value_type(SELF, - []); - WR4 : validate_accuracy_types(SELF, - []); - END_ENTITY; -(* USED FROM (shape_data_quality_criteria_schema); *) - ENTITY inconsistent_face_and_closed_shell_normals - SUBTYPE OF(erroneous_topology_and_geometry_relationship); - SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_logical_test; - WHERE - WR1 : validate_measured_data_type(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.BOOLEAN_VALUE'); - WR2 : validate_inspected_elements_type(SELF, - ['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FACE_SURFACE']); - WR3 : validate_locations_of_extreme_value_type(SELF, - []); - WR4 : validate_accuracy_types(SELF, - []); - END_ENTITY; -(* USED FROM (shape_data_quality_criteria_schema); *) - ENTITY intersecting_loops_in_face - SUBTYPE OF(erroneous_topology_and_geometry_relationship); - SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_logical_test; - interference_tolerance : length_measure; - WHERE - WR1 : validate_measured_data_type(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.BOOLEAN_VALUE'); - WR2 : validate_inspected_elements_type(SELF, - ['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FACE']); - WR3 : validate_locations_of_extreme_value_type(SELF, - ['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.'+ - 'POINT_ON_EDGE_CURVE', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.'+ - 'POINT_ON_EDGE_CURVE']); - WR4 : validate_accuracy_types(SELF, - ['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE']); - END_ENTITY; -(* USED FROM (shape_data_quality_criteria_schema); *) - ENTITY wrongly_placed_loop - SUBTYPE OF(erroneous_topology_and_geometry_relationship); - SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_logical_test; - WHERE - WR1 : validate_measured_data_type(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.BOOLEAN_VALUE'); - WR2 : validate_inspected_elements_type(SELF, - ['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FACE']); - WR3 : validate_locations_of_extreme_value_type(SELF, - ['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FACE_BOUND']); - WR4 : validate_accuracy_types(SELF, - ['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE']); - END_ENTITY; -(* USED FROM (shape_data_quality_criteria_schema); *) - ENTITY erroneous_manifold_solid_brep - ABSTRACT SUPERTYPE OF (ONEOF ( - WRONGLY_ORIENTED_VOID, - WRONGLY_PLACED_VOID, - INTERSECTING_SHELLS_IN_SOLID, - SOLID_WITH_WRONG_NUMBER_OF_VOIDS)) - SUBTYPE OF(erroneous_data); - END_ENTITY; -(* USED FROM (shape_data_quality_criteria_schema); *) - ENTITY wrongly_oriented_void - SUBTYPE OF(erroneous_manifold_solid_brep); - SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_logical_test; - WHERE - WR1 : validate_measured_data_type(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.BOOLEAN_VALUE') ; - WR2 : validate_inspected_elements_type(SELF, - ['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.BREP_WITH_VOIDS']); - WR3 : validate_locations_of_extreme_value_type(SELF, - ['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ORIENTED_CLOSED_SHELL']); - WR4 : validate_accuracy_types(SELF, - []); - END_ENTITY; -(* USED FROM (shape_data_quality_criteria_schema); *) - ENTITY wrongly_placed_void - SUBTYPE OF(erroneous_manifold_solid_brep); - SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_logical_test; - WHERE - WR1 : validate_measured_data_type(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.BOOLEAN_VALUE') ; - WR2 : validate_inspected_elements_type(SELF, - ['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.BREP_WITH_VOIDS']); - WR3 : validate_locations_of_extreme_value_type(SELF, - ['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ORIENTED_CLOSED_SHELL']); - WR4 : validate_accuracy_types(SELF, - []); - END_ENTITY; -(* USED FROM (shape_data_quality_criteria_schema); *) - ENTITY intersecting_shells_in_solid - SUBTYPE OF(erroneous_manifold_solid_brep); - SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_logical_test; - interference_tolerance : length_measure; - WHERE - WR1 : validate_measured_data_type(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.BOOLEAN_VALUE') ; - WR2 : validate_inspected_elements_type(SELF, - ['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.BREP_WITH_VOIDS']); - WR3 : validate_locations_of_extreme_value_type(SELF, - ['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SURFACE_CURVE']); - WR4 : validate_accuracy_types(SELF, - []); - END_ENTITY; -(* USED FROM (shape_data_quality_criteria_schema); *) - ENTITY solid_with_wrong_number_of_voids - SUBTYPE OF(erroneous_manifold_solid_brep); - SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_logical_test; - WHERE - WR1 : validate_measured_data_type(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.BOOLEAN_VALUE') ; - WR2 : validate_inspected_elements_type(SELF, - ['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.BREP_WITH_VOIDS']); - WR3 : validate_locations_of_extreme_value_type(SELF, - []); - WR4 : validate_accuracy_types(SELF, - []); - END_ENTITY; -(* USED FROM (shape_data_quality_criteria_schema); *) - ENTITY inapt_data - ABSTRACT SUPERTYPE OF (ONEOF ( - INAPT_TOPOLOGY, - INAPT_GEOMETRY, - INAPT_TOPOLOGY_AND_GEOMETRY_RELATIONSHIP, - INAPT_MANIFOLD_SOLID_BREP)) - SUBTYPE OF(shape_data_quality_criterion); - END_ENTITY; -(* USED FROM (shape_data_quality_criteria_schema); *) - ENTITY inapt_topology - ABSTRACT SUPERTYPE OF (ONEOF ( - FREE_EDGE, - NON_MANIFOLD_AT_EDGE, - NON_MANIFOLD_AT_VERTEX, - OVER_USED_VERTEX)) - SUBTYPE OF(inapt_data); - END_ENTITY; -(* USED FROM (measure_schema); *) - ENTITY ratio_measure_with_unit - SUBTYPE OF (measure_with_unit); - WHERE - WR1: 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.RATIO_UNIT' IN TYPEOF(SELF\measure_with_unit.unit_component); - END_ENTITY; -(* USED FROM (shape_data_quality_criteria_schema); *) - ENTITY non_manifold_at_edge - SUBTYPE OF(inapt_topology); - SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_logical_test; - WHERE - WR1 : validate_measured_data_type(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.BOOLEAN_VALUE'); - WR2 : validate_inspected_elements_type(SELF, - ['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CONNECTED_FACE_SET']); - WR3 : validate_locations_of_extreme_value_type(SELF, - ['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.EDGE_CURVE']); - WR4 : validate_accuracy_types(SELF, - []); - END_ENTITY; -(* USED FROM (shape_data_quality_criteria_schema); *) - ENTITY non_manifold_at_vertex - SUBTYPE OF(inapt_topology); - SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_logical_test; - WHERE - WR1 : validate_measured_data_type(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.BOOLEAN_VALUE'); - WR2 : validate_inspected_elements_type(SELF, - ['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CONNECTED_FACE_SET']); - WR3 : validate_locations_of_extreme_value_type(SELF, - ['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.VERTEX_POINT']); - WR4 : validate_accuracy_types(SELF, - []); - END_ENTITY; -(* USED FROM (shape_data_quality_criteria_schema); *) - ENTITY over_used_vertex - SUBTYPE OF(inapt_topology); - SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; - WHERE - WR1 : ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + - 'SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' - IN TYPEOF(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)) - AND ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.COUNT_MEASURE' - IN value_limit_type(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)); - WR2 : validate_measured_data_type(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.COUNT_MEASURE'); - WR3 : validate_inspected_elements_type(SELF, - ['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.VERTEX_POINT']); - WR4 : validate_locations_of_extreme_value_type(SELF, - []); - WR5 : validate_accuracy_types(SELF, - []); - END_ENTITY; -(* USED FROM (shape_data_quality_criteria_schema); *) - ENTITY inapt_geometry - ABSTRACT SUPERTYPE OF (ONEOF ( - NEARLY_DEGENERATE_GEOMETRY, - DISCONTINUOUS_GEOMETRY, - SELF_INTERSECTING_GEOMETRY, - GEOMETRY_WITH_LOCAL_NEAR_DEGENERACY, - OVERLAPPING_GEOMETRY, - MULTIPLY_DEFINED_GEOMETRY, - GEOMETRY_WITH_LOCAL_IRREGULARITY, - OVERCOMPLEX_GEOMETRY)) - SUBTYPE OF(inapt_data); - END_ENTITY; -(* USED FROM (shape_data_quality_criteria_schema); *) - ENTITY nearly_degenerate_geometry - ABSTRACT SUPERTYPE OF (ONEOF ( - SMALL_AREA_SURFACE, - SHORT_LENGTH_CURVE, - ENTIRELY_NARROW_SURFACE)) - SUBTYPE OF(inapt_geometry); - END_ENTITY; -(* USED FROM (shape_data_quality_criteria_schema); *) - ENTITY small_area_surface - SUBTYPE OF(nearly_degenerate_geometry); - SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; - WHERE - WR1 : ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + - 'SHAPE_DATA_QUALITY_UPPER_VALUE_LIMIT' - IN TYPEOF(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)) - AND ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.AREA_MEASURE' - IN value_limit_type(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)); - WR2 : validate_measured_data_type(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.AREA_MEASURE'); - WR3 : validate_inspected_elements_type(SELF, - ['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SURFACE']); - WR4 : validate_locations_of_extreme_value_type(SELF, - []); - WR5 : validate_accuracy_types(SELF, - ['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.AREA_MEASURE']); - END_ENTITY; -(* USED FROM (shape_data_quality_criteria_schema); *) - ENTITY short_length_curve - SUBTYPE OF(nearly_degenerate_geometry); - SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; - WHERE - WR1 : ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + - 'SHAPE_DATA_QUALITY_UPPER_VALUE_LIMIT' - IN TYPEOF(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)) - AND ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE' - IN value_limit_type(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)); - WR2 : validate_measured_data_type(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE'); - WR3 : validate_inspected_elements_type(SELF, - ['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CURVE']); - WR4 : validate_locations_of_extreme_value_type(SELF, - []); - WR5 : validate_accuracy_types(SELF, - ['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE']); - END_ENTITY; -(* USED FROM (shape_data_quality_criteria_schema); *) - ENTITY entirely_narrow_surface - SUBTYPE OF(nearly_degenerate_geometry); - SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_logical_test; - width_tolerance : length_measure; - WHERE - WR1 : validate_measured_data_type(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.BOOLEAN_VALUE'); - WR2 : validate_inspected_elements_type(SELF, - ['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.BOUNDED_SURFACE']); - WR3 : validate_locations_of_extreme_value_type(SELF, - []); - WR4 : validate_accuracy_types(SELF, - ['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE']); - END_ENTITY; -(* USED FROM (shape_data_quality_criteria_schema); *) - ENTITY discontinuous_geometry - ABSTRACT SUPERTYPE OF (ONEOF ( - G1_DISCONTINUOUS_CURVE, - G2_DISCONTINUOUS_CURVE, - G1_DISCONTINUOUS_SURFACE, - G2_DISCONTINUOUS_SURFACE)) - SUBTYPE OF(inapt_geometry); - END_ENTITY; -(* USED FROM (shape_data_quality_criteria_schema); *) - ENTITY g1_discontinuous_curve - SUBTYPE OF(discontinuous_geometry); - SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; - WHERE - WR1 : ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + - 'SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' - IN TYPEOF(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)) - AND ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PLANE_ANGLE_MEASURE' - IN value_limit_type(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)); - WR2 : validate_measured_data_type(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PLANE_ANGLE_MEASURE'); - WR3 : validate_inspected_elements_type(SELF, - ['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.B_SPLINE_CURVE']); - WR4 : validate_locations_of_extreme_value_type(SELF, - ['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.'+ - 'B_SPLINE_CURVE_KNOT_LOCATOR']); - WR5 : validate_accuracy_types(SELF, - []); - END_ENTITY; -(* USED FROM (shape_data_quality_criteria_schema); *) - ENTITY g2_discontinuous_curve - SUBTYPE OF(discontinuous_geometry); - SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; - assessment_specification_2 : shape_data_quality_assessment_by_numerical_test; - flat_curvature_radius_tolerance : length_measure; - WHERE - WR1 : ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + - 'SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' - IN TYPEOF(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)) - AND ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PLANE_ANGLE_MEASURE' - IN value_limit_type(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)); - WR2 : ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + - 'SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' - IN TYPEOF(assessment_specification_2\shape_data_quality_assessment_by_numerical_test.threshold)) - AND ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.RATIO_MEASURE' - IN value_limit_type(assessment_specification_2\shape_data_quality_assessment_by_numerical_test.threshold)) ; - WR3 : validate_measured_data_type(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.'+ - 'PLANE_ANGLE_AND_RATIO_PAIR'); - WR4 : validate_inspected_elements_type(SELF, - ['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.B_SPLINE_CURVE']); - WR5 : validate_locations_of_extreme_value_type(SELF, - ['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.'+ - 'B_SPLINE_CURVE_KNOT_LOCATOR']); - WR6 : validate_accuracy_types(SELF, - []); - END_ENTITY; -(* USED FROM (shape_data_quality_criteria_schema); *) - ENTITY g1_discontinuous_surface - SUBTYPE OF(discontinuous_geometry); - SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; - WHERE - WR1 : ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + - 'SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' - IN TYPEOF(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)) - AND ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PLANE_ANGLE_MEASURE' - IN value_limit_type(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)) ; - WR2 : validate_measured_data_type(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PLANE_ANGLE_MEASURE'); - WR3 : validate_inspected_elements_type(SELF, - ['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.B_SPLINE_SURFACE']); - WR4 : validate_locations_of_extreme_value_type(SELF, - ['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.'+ - 'B_SPLINE_SURFACE_KNOT_LOCATOR']); - WR5 : validate_accuracy_types(SELF, - ['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PLANE_ANGLE_MEASURE']); - END_ENTITY; -(* USED FROM (shape_data_quality_criteria_schema); *) - ENTITY g2_discontinuous_surface - SUBTYPE OF(discontinuous_geometry); - SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; - assessment_specification_2 : shape_data_quality_assessment_by_numerical_test; - flat_curvature_radius_tolerance : length_measure; - WHERE - WR1 : ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + - 'SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' - IN TYPEOF(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)) - AND ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PLANE_ANGLE_MEASURE' - IN value_limit_type(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)); - WR2 : ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + - 'SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' - IN TYPEOF(assessment_specification_2\shape_data_quality_assessment_by_numerical_test.threshold)) - AND ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.RATIO_MEASURE' - IN value_limit_type(assessment_specification_2\shape_data_quality_assessment_by_numerical_test.threshold)); - WR3 : validate_measured_data_type(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.'+ - 'PLANE_ANGLE_AND_RATIO_PAIR'); - WR4 : validate_inspected_elements_type(SELF, - ['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.B_SPLINE_SURFACE']); - WR5 : validate_locations_of_extreme_value_type(SELF, - ['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.'+ - 'B_SPLINE_SURFACE_KNOT_LOCATOR']); - WR6 : validate_accuracy_types(SELF, - ['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.RATIO_MEASURE']) - ; - END_ENTITY; -(* USED FROM (shape_data_quality_criteria_schema); *) - ENTITY self_intersecting_geometry - ABSTRACT SUPERTYPE OF (ONEOF ( - SELF_INTERSECTING_CURVE, - SELF_INTERSECTING_SURFACE)) - SUBTYPE OF(inapt_geometry); - END_ENTITY; -(* USED FROM (shape_data_quality_criteria_schema); *) - ENTITY self_intersecting_curve - SUBTYPE OF(self_intersecting_geometry); - SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_logical_test; - arc_length_separation_factor : REAL; - interference_tolerance : length_measure; - WHERE - WR1 : validate_measured_data_type(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.BOOLEAN_VALUE'); - WR2 : validate_inspected_elements_type(SELF, - ['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CURVE']); - WR3 : validate_locations_of_extreme_value_type(SELF, - ['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.POINT_ON_CURVE','AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.POINT_ON_CURVE']); - WR4 : validate_accuracy_types(SELF, - ['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE']); - END_ENTITY; -(* USED FROM (shape_data_quality_criteria_schema); *) - ENTITY self_intersecting_surface - SUBTYPE OF(self_intersecting_geometry); - SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_logical_test; - geodesic_separation_factor : REAL; - interference_tolerance : length_measure; - WHERE - WR1 : validate_measured_data_type(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.BOOLEAN_VALUE'); - WR2 : validate_inspected_elements_type(SELF, - ['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SURFACE']); - WR3 : validate_locations_of_extreme_value_type(SELF, - ['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.POINT_ON_SURFACE', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.POINT_ON_SURFACE']); - WR4 : validate_accuracy_types(SELF, - ['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE']); - END_ENTITY; -(* USED FROM (shape_data_quality_criteria_schema); *) - ENTITY geometry_with_local_near_degeneracy - ABSTRACT SUPERTYPE OF (ONEOF ( - CURVE_WITH_SMALL_CURVATURE_RADIUS, - SHORT_LENGTH_CURVE_SEGMENT, - SURFACE_WITH_SMALL_CURVATURE_RADIUS, - SMALL_AREA_SURFACE_PATCH, - NARROW_SURFACE_PATCH, - INDISTINCT_SURFACE_KNOTS, - INDISTINCT_CURVE_KNOTS, - NEARLY_DEGENERATE_SURFACE_BOUNDARY, - NEARLY_DEGENERATE_SURFACE_PATCH)) - SUBTYPE OF(inapt_geometry); - END_ENTITY; -(* USED FROM (shape_data_quality_criteria_schema); *) - ENTITY curve_with_small_curvature_radius - SUBTYPE OF(geometry_with_local_near_degeneracy); - SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; - WHERE - WR1 : ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + - 'SHAPE_DATA_QUALITY_UPPER_VALUE_LIMIT' - IN TYPEOF(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)) - AND ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE' - IN value_limit_type(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)); - WR2 : validate_measured_data_type(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE'); - WR3 : validate_inspected_elements_type(SELF, - ['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CURVE']); - WR4 : validate_locations_of_extreme_value_type(SELF, - ['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.POINT_ON_CURVE']); - WR5 : validate_accuracy_types(SELF, - ['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE']); - END_ENTITY; -(* USED FROM (shape_data_quality_criteria_schema); *) - ENTITY short_length_curve_segment - SUBTYPE OF(geometry_with_local_near_degeneracy); - SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; - WHERE - WR1 : ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + - 'SHAPE_DATA_QUALITY_UPPER_VALUE_LIMIT' - IN TYPEOF(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)) - AND ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE' - IN value_limit_type(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)); - WR2 : validate_measured_data_type(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE'); - WR3 : validate_inspected_elements_type(SELF, - ['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.B_SPLINE_CURVE']); - WR4 : validate_locations_of_extreme_value_type(SELF, - ['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.'+ - 'B_SPLINE_CURVE_SEGMENT']); - WR5 : validate_accuracy_types(SELF, - ['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE']); - END_ENTITY; -(* USED FROM (shape_data_quality_criteria_schema); *) - ENTITY surface_with_small_curvature_radius - SUBTYPE OF(geometry_with_local_near_degeneracy); - SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; - WHERE - WR1 : ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + - 'SHAPE_DATA_QUALITY_UPPER_VALUE_LIMIT' - IN TYPEOF(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)) - AND ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE' - IN value_limit_type(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)); - WR2 : validate_measured_data_type(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE'); - WR3 : validate_inspected_elements_type(SELF, - ['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SURFACE']); - WR4 : validate_locations_of_extreme_value_type(SELF, - ['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.POINT_ON_SURFACE']); - WR5 : validate_accuracy_types(SELF, - ['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE']); - END_ENTITY; -(* USED FROM (shape_data_quality_criteria_schema); *) - ENTITY small_area_surface_patch - SUBTYPE OF(geometry_with_local_near_degeneracy); - SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; - WHERE - WR1 : ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + - 'SHAPE_DATA_QUALITY_UPPER_VALUE_LIMIT' - IN TYPEOF(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)) - AND ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.AREA_MEASURE' - IN value_limit_type(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)); - WR2 : validate_measured_data_type(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.AREA_MEASURE'); - WR3 : validate_inspected_elements_type(SELF, - ['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.B_SPLINE_SURFACE']); - WR4 : validate_locations_of_extreme_value_type(SELF, - ['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.'+ - 'B_SPLINE_SURFACE_PATCH']); - WR5 : validate_accuracy_types(SELF, - ['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.AREA_MEASURE']); - END_ENTITY; -(* USED FROM (shape_data_quality_criteria_schema); *) - ENTITY narrow_surface_patch - SUBTYPE OF(geometry_with_local_near_degeneracy); - SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_logical_test; - width_tolerance : length_measure; - WHERE - WR1 : validate_measured_data_type(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.BOOLEAN_VALUE'); - WR2 : validate_inspected_elements_type(SELF, - ['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.B_SPLINE_SURFACE']); - WR3 : validate_locations_of_extreme_value_type(SELF, - ['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.'+ - 'B_SPLINE_SURFACE_PATCH']); - WR4 : validate_accuracy_types(SELF, - ['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE']); - END_ENTITY; -(* USED FROM (shape_data_quality_criteria_schema); *) - ENTITY indistinct_surface_knots - SUBTYPE OF(geometry_with_local_near_degeneracy); - SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; - WHERE - WR1 : ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + - 'SHAPE_DATA_QUALITY_UPPER_VALUE_LIMIT' - IN TYPEOF(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)) - AND ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PARAMETER_VALUE' - IN value_limit_type(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)); - WR2 : validate_measured_data_type(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PARAMETER_VALUE'); - WR3 : validate_inspected_elements_type(SELF, - ['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.B_SPLINE_SURFACE_WITH_KNOTS']); - WR4 : validate_locations_of_extreme_value_type(SELF, - ['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.'+ - 'B_SPLINE_SURFACE_KNOT_LOCATOR']); - WR5 : validate_accuracy_types(SELF, - []); - END_ENTITY; -(* USED FROM (shape_data_quality_criteria_schema); *) - ENTITY indistinct_curve_knots - SUBTYPE OF(geometry_with_local_near_degeneracy); - SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; - WHERE - WR1 : ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + - 'SHAPE_DATA_QUALITY_UPPER_VALUE_LIMIT' - IN TYPEOF(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)) - AND ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PARAMETER_VALUE' - IN value_limit_type(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)); - WR2 : validate_measured_data_type(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PARAMETER_VALUE'); - WR3 : validate_inspected_elements_type(SELF, - ['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.B_SPLINE_CURVE_WITH_KNOTS']); - WR4 : validate_locations_of_extreme_value_type(SELF, - ['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.'+ - 'B_SPLINE_CURVE_KNOT_LOCATOR']); - WR5 : validate_accuracy_types(SELF, - []); - END_ENTITY; -(* USED FROM (shape_data_quality_criteria_schema); *) - ENTITY nearly_degenerate_surface_boundary - SUBTYPE OF(geometry_with_local_near_degeneracy); - SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; - WHERE - WR1 : ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + - 'SHAPE_DATA_QUALITY_VALUE_RANGE' - IN TYPEOF(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)) - AND ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE' - IN value_limit_type(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)); - WR2 : validate_measured_data_type(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE'); - WR3 : validate_inspected_elements_type(SELF, - ['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.'+ - 'B_SPLINE_OR_RECTANGULAR_COMPOSITE_SURFACE_SELECT']); - WR4 : validate_locations_of_extreme_value_type(SELF, - ['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.'+ - 'BOUNDARY_CURVE_OF_B_SPLINE_OR_RECTANGULAR_COMPOSITE_SURFACE']); - WR5 : validate_accuracy_types(SELF, - ['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE']); - END_ENTITY; -(* USED FROM (shape_data_quality_criteria_schema); *) - ENTITY nearly_degenerate_surface_patch - SUBTYPE OF(geometry_with_local_near_degeneracy); - SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; - WHERE - WR1 : ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + - 'SHAPE_DATA_QUALITY_VALUE_RANGE' - IN TYPEOF(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)) - AND ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE' - IN value_limit_type(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)); - WR2 : validate_measured_data_type(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE'); - WR3 : validate_inspected_elements_type(SELF, - ['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.B_SPLINE_SURFACE']); - WR4 : validate_locations_of_extreme_value_type(SELF, - ['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.'+ - 'B_SPLINE_SURFACE_PATCH']); - WR5 : validate_accuracy_types(SELF, - ['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE']); - END_ENTITY; -(* USED FROM (shape_data_quality_criteria_schema); *) - ENTITY overlapping_geometry - ABSTRACT SUPERTYPE OF (ONEOF ( - PARTLY_OVERLAPPING_CURVES, - PARTLY_OVERLAPPING_SURFACES)) - SUBTYPE OF(inapt_geometry); - END_ENTITY; -(* USED FROM (shape_data_quality_criteria_schema); *) - ENTITY partly_overlapping_curves - SUBTYPE OF(overlapping_geometry); - SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; - interference_tolerance : length_measure; - WHERE - WR1 : ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + - 'SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' - IN TYPEOF(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)) - AND ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE' - IN value_limit_type(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)); - WR2 : validate_measured_data_type(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE'); - WR3 : validate_inspected_elements_type(SELF, - ['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CURVE','AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CURVE']); - WR4 : validate_locations_of_extreme_value_type(SELF, - ['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.TRIMMED_CURVE','AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.TRIMMED_CURVE']); - WR5 : validate_accuracy_types(SELF, - ['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE']); - END_ENTITY; -(* USED FROM (shape_data_quality_criteria_schema); *) - ENTITY partly_overlapping_surfaces - SUBTYPE OF(overlapping_geometry); - SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; - interference_tolerance : length_measure; - WHERE - WR1 : ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + - 'SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' - IN TYPEOF(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)) - AND ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.AREA_MEASURE' - IN value_limit_type(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)); - WR2 : validate_measured_data_type(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.AREA_MEASURE'); - WR3 : validate_inspected_elements_type(SELF, - ['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SURFACE','AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SURFACE']); - WR4 : validate_locations_of_extreme_value_type(SELF, - ['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CURVE_BOUNDED_SURFACE', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CURVE_BOUNDED_SURFACE']); - WR5 : validate_accuracy_types(SELF, - ['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.AREA_MEASURE']); - END_ENTITY; -(* USED FROM (shape_data_quality_criteria_schema); *) - ENTITY multiply_defined_geometry - ABSTRACT SUPERTYPE OF (ONEOF ( - MULTIPLY_DEFINED_CURVES, - MULTIPLY_DEFINED_SURFACES, - MULTIPLY_DEFINED_CARTESIAN_POINTS, - MULTIPLY_DEFINED_DIRECTIONS, - MULTIPLY_DEFINED_PLACEMENTS)) - SUBTYPE OF(inapt_geometry); - END_ENTITY; -(* USED FROM (shape_data_quality_criteria_schema); *) - ENTITY multiply_defined_curves - SUBTYPE OF(multiply_defined_geometry); - SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; - WHERE - WR1 : ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + - 'SHAPE_DATA_QUALITY_UPPER_VALUE_LIMIT' - IN TYPEOF(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)) - AND ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE' - IN value_limit_type(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)); - WR2 : validate_measured_data_type(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE'); - WR3 : validate_inspected_elements_type(SELF, - ['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CURVE','AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CURVE']); - WR4 : validate_locations_of_extreme_value_type(SELF, - []); - WR5 : validate_accuracy_types(SELF, - ['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE']); - END_ENTITY; -(* USED FROM (shape_data_quality_criteria_schema); *) - ENTITY multiply_defined_surfaces - SUBTYPE OF(multiply_defined_geometry); - SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; - WHERE - WR1 : ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + - 'SHAPE_DATA_QUALITY_UPPER_VALUE_LIMIT' - IN TYPEOF(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)) AND - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE' - IN value_limit_type(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)); - WR2 : validate_measured_data_type(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE'); - WR3 : validate_inspected_elements_type(SELF, - ['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SURFACE','AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SURFACE']); - WR4 : validate_locations_of_extreme_value_type(SELF, - []); - WR5 : validate_accuracy_types(SELF, - ['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE']); - END_ENTITY; -(* USED FROM (shape_data_quality_criteria_schema); *) - ENTITY multiply_defined_cartesian_points - SUBTYPE OF(multiply_defined_geometry); - SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; - WHERE - WR1 : ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + - 'SHAPE_DATA_QUALITY_UPPER_VALUE_LIMIT' - IN TYPEOF(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)) - AND ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE' - IN value_limit_type(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)); - WR2 : validate_measured_data_type(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE'); - WR3 : validate_inspected_elements_type(SELF, - ['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CARTESIAN_POINT','AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CARTESIAN_POINT']); - WR4 : validate_locations_of_extreme_value_type(SELF, - []); - WR5 : validate_accuracy_types(SELF, - ['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE']); - END_ENTITY; -(* USED FROM (shape_data_quality_criteria_schema); *) - ENTITY multiply_defined_directions - SUBTYPE OF(multiply_defined_geometry); - SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; - WHERE - WR1 : ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + - 'SHAPE_DATA_QUALITY_UPPER_VALUE_LIMIT' - IN TYPEOF(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)) - AND ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PLANE_ANGLE_MEASURE' - IN value_limit_type(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)); - WR2 : validate_measured_data_type(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PLANE_ANGLE_MEASURE'); - WR3 : validate_inspected_elements_type(SELF, - ['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.DIRECTION','AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.DIRECTION']); - WR4 : validate_locations_of_extreme_value_type(SELF, - []); - WR5 : validate_accuracy_types(SELF, - []); - END_ENTITY; -(* USED FROM (Shape_composition_mim); *) -ENTITY composite_unit_shape_aspect - SUBTYPE OF (composite_shape_aspect); -END_ENTITY; -(* USED FROM (shape_data_quality_criteria_schema); *) - ENTITY geometry_with_local_irregularity - ABSTRACT SUPERTYPE OF (ONEOF ( - EXTREME_PATCH_WIDTH_VARIATION, - ZERO_SURFACE_NORMAL, - ABRUPT_CHANGE_OF_SURFACE_NORMAL)) - SUBTYPE OF(inapt_geometry); - END_ENTITY; -(* USED FROM (shape_data_quality_criteria_schema); *) - ENTITY extreme_patch_width_variation - SUBTYPE OF(geometry_with_local_irregularity); - SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; - WHERE - WR1 : ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + - 'SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' - IN TYPEOF(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)) - AND ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.RATIO_MEASURE' - IN value_limit_type(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)); - WR2 : validate_measured_data_type(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.RATIO_MEASURE'); - WR3 : validate_inspected_elements_type(SELF, - ['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.B_SPLINE_SURFACE']); - WR4 : validate_locations_of_extreme_value_type(SELF, - ['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.'+ - 'B_SPLINE_SURFACE_KNOT_LOCATOR']); - WR5 : validate_accuracy_types(SELF, - ['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE']); - END_ENTITY; -(* USED FROM (shape_data_quality_criteria_schema); *) - ENTITY zero_surface_normal - SUBTYPE OF(geometry_with_local_irregularity); - SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; - WHERE - WR1 : ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + - 'SHAPE_DATA_QUALITY_UPPER_VALUE_LIMIT' - IN TYPEOF(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)) - AND ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PLANE_ANGLE_MEASURE' - IN value_limit_type(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)); - WR2 : validate_measured_data_type(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PLANE_ANGLE_MEASURE'); - WR3 : validate_inspected_elements_type(SELF, - ['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SURFACE']); - WR4 : validate_locations_of_extreme_value_type(SELF, - ['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.POINT_ON_SURFACE']); - WR5 : validate_accuracy_types(SELF, - ['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PLANE_ANGLE_MEASURE']); - END_ENTITY; -(* USED FROM (shape_data_quality_criteria_schema); *) - ENTITY abrupt_change_of_surface_normal - SUBTYPE OF(geometry_with_local_irregularity); - SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_logical_test; - small_vector_tolerance : length_measure; - test_point_distance_tolerance : length_measure; - WHERE - WR1 : validate_measured_data_type(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.BOOLEAN_VALUE'); - WR2 : validate_inspected_elements_type(SELF, - ['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SURFACE']); - WR3 : validate_locations_of_extreme_value_type(SELF, - ['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.POINT_ON_SURFACE', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.POINT_ON_SURFACE']); - WR4 : validate_accuracy_types(SELF, - []); - END_ENTITY; -(* USED FROM (shape_data_quality_criteria_schema); *) - ENTITY overcomplex_geometry - ABSTRACT SUPERTYPE OF (ONEOF ( - EXCESSIVELY_HIGH_DEGREE_CURVE, - EXCESSIVELY_HIGH_DEGREE_SURFACE, - SURFACE_WITH_EXCESSIVE_PATCHES_IN_ONE_DIRECTION, - CURVE_WITH_EXCESSIVE_SEGMENTS, - HIGH_DEGREE_LINEAR_CURVE, - HIGH_DEGREE_PLANAR_SURFACE, - HIGH_DEGREE_CONIC, - HIGH_DEGREE_AXI_SYMMETRIC_SURFACE)) - SUBTYPE OF(inapt_geometry); - END_ENTITY; -(* USED FROM (shape_data_quality_criteria_schema); *) - ENTITY excessively_high_degree_curve - SUBTYPE OF(overcomplex_geometry); - SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; - WHERE - WR1 : ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + - 'SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' - IN TYPEOF(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)) - AND ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.COUNT_MEASURE' - IN value_limit_type(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)); - WR2 : validate_measured_data_type(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.COUNT_MEASURE'); - WR3 : validate_inspected_elements_type(SELF, - ['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.B_SPLINE_CURVE']); - WR4 : validate_locations_of_extreme_value_type(SELF, - []); - WR5 : validate_accuracy_types(SELF, - []); - END_ENTITY; -(* USED FROM (shape_data_quality_criteria_schema); *) - ENTITY excessively_high_degree_surface - SUBTYPE OF(overcomplex_geometry); - SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; - WHERE - WR1 : ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + - 'SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' - IN TYPEOF(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)) - AND ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.COUNT_MEASURE' - IN value_limit_type(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)); - WR2 : validate_measured_data_type(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.COUNT_MEASURE'); - WR3 : validate_inspected_elements_type(SELF, - ['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.B_SPLINE_SURFACE']); - WR4 : validate_locations_of_extreme_value_type(SELF, - []); - WR5 : validate_accuracy_types(SELF, - []); - END_ENTITY; -(* USED FROM (shape_data_quality_criteria_schema); *) - ENTITY surface_with_excessive_patches_in_one_direction - SUBTYPE OF(overcomplex_geometry); - SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; - WHERE - WR1 : ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + - 'SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' - IN TYPEOF(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)) - AND ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.COUNT_MEASURE' - IN value_limit_type(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)); - WR2 : validate_measured_data_type(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.COUNT_MEASURE'); - WR3 : validate_inspected_elements_type(SELF, - ['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.'+ - 'B_SPLINE_OR_RECTANGULAR_COMPOSITE_SURFACE_SELECT']); - WR4 : validate_locations_of_extreme_value_type(SELF, - []); - WR5 : validate_accuracy_types(SELF, - []); - END_ENTITY; -(* USED FROM (shape_data_quality_criteria_schema); *) - ENTITY curve_with_excessive_segments - SUBTYPE OF(overcomplex_geometry); - SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; - WHERE - WR1 : ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + - 'SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' - IN TYPEOF(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)) - AND ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.COUNT_MEASURE' - IN value_limit_type(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)); - WR2 : validate_measured_data_type(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.COUNT_MEASURE'); - WR3 : validate_inspected_elements_type(SELF, - ['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.'+ - 'B_SPLINE_OR_COMPOSITE_CURVE_SELECT']); - WR4 : validate_locations_of_extreme_value_type(SELF, - []); - WR5 : validate_accuracy_types(SELF, - []); - END_ENTITY; -(* USED FROM (shape_data_quality_criteria_schema); *) - ENTITY high_degree_linear_curve - SUBTYPE OF(overcomplex_geometry); - SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; - approximation_tolerance : length_measure; - WHERE - WR1 : ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + - 'SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' - IN TYPEOF(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)) - AND ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.COUNT_MEASURE' - IN value_limit_type(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)); - WR2 : validate_measured_data_type(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.COUNT_MEASURE'); - WR3 : validate_inspected_elements_type(SELF, - ['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.B_SPLINE_CURVE']); - WR4 : validate_locations_of_extreme_value_type(SELF, - []); - WR5 : validate_accuracy_types(SELF, - ['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE']); - END_ENTITY; -(* USED FROM (shape_data_quality_criteria_schema); *) - ENTITY high_degree_planar_surface - SUBTYPE OF(overcomplex_geometry); - SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; - approximation_tolerance : length_measure; - WHERE - WR1 : ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + - 'SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' - IN TYPEOF(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)) - AND ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.COUNT_MEASURE' - IN value_limit_type(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)); - WR2 : validate_measured_data_type(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.COUNT_MEASURE'); - WR3 : validate_inspected_elements_type(SELF, - ['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.B_SPLINE_SURFACE']); - WR4 : validate_locations_of_extreme_value_type(SELF, - []); - WR5 : validate_accuracy_types(SELF, - ['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE']); - END_ENTITY; -(* USED FROM (shape_data_quality_criteria_schema); *) - ENTITY high_degree_conic - SUBTYPE OF(overcomplex_geometry); - SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; - approximation_tolerance : length_measure; - WHERE - WR1 : ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + - 'SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' - IN TYPEOF(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)) - AND ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.COUNT_MEASURE' - IN value_limit_type(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)); - WR2 : validate_measured_data_type(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.COUNT_MEASURE'); - WR3 : validate_inspected_elements_type(SELF, - ['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.B_SPLINE_CURVE']); - WR4 : validate_locations_of_extreme_value_type(SELF, - []); - WR5 : validate_accuracy_types(SELF, - ['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE']); - END_ENTITY; -(* USED FROM (shape_data_quality_criteria_schema); *) - ENTITY high_degree_axi_symmetric_surface - SUBTYPE OF(overcomplex_geometry); - SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; - approximation_tolerance : length_measure; - WHERE - WR1 : ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + - 'SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' - IN TYPEOF(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)) - AND ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.COUNT_MEASURE' - IN value_limit_type(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)); - WR2 : validate_measured_data_type(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.COUNT_MEASURE'); - WR3 : validate_inspected_elements_type(SELF, - ['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.B_SPLINE_SURFACE']); - WR4 : validate_locations_of_extreme_value_type(SELF, - []); - WR5 : validate_accuracy_types(SELF, - ['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE']); - END_ENTITY; -(* USED FROM (shape_data_quality_criteria_schema); *) - ENTITY inapt_topology_and_geometry_relationship - ABSTRACT SUPERTYPE OF (ONEOF ( - TOPOLOGY_RELATED_TO_NEARLY_DEGENERATE_GEOMETRY, - GEOMETRIC_GAP_IN_TOPOLOGY, - NON_SMOOTH_GEOMETRY_TRANSITION_ACROSS_EDGE, - TOPOLOGY_RELATED_TO_SELF_INTERSECTING_GEOMETRY, - STEEP_GEOMETRY_TRANSITION_ACROSS_EDGE, - TOPOLOGY_RELATED_TO_OVERLAPPING_GEOMETRY, - TOPOLOGY_RELATED_TO_MULTIPLY_DEFINED_GEOMETRY, - OVERCOMPLEX_TOPOLOGY_AND_GEOMETRY_RELATIONSHIP)) - SUBTYPE OF(inapt_data); - END_ENTITY; -(* USED FROM (shape_data_quality_criteria_schema); *) - ENTITY topology_related_to_nearly_degenerate_geometry - ABSTRACT SUPERTYPE OF (ONEOF ( - SHORT_LENGTH_EDGE, - SMALL_AREA_FACE, - ENTIRELY_NARROW_FACE)) - SUBTYPE OF(inapt_topology_and_geometry_relationship); - END_ENTITY; -(* USED FROM (shape_data_quality_criteria_schema); *) - ENTITY short_length_edge - SUBTYPE OF(topology_related_to_nearly_degenerate_geometry); - SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; - WHERE - WR1 : ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + - 'SHAPE_DATA_QUALITY_UPPER_VALUE_LIMIT' - IN TYPEOF(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)) - AND ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE' - IN value_limit_type(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)); - WR2 : validate_measured_data_type(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE'); - WR3 : validate_inspected_elements_type(SELF, - ['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.EDGE_CURVE']); - WR4 : validate_locations_of_extreme_value_type(SELF, - []); - WR5 : validate_accuracy_types(SELF, - ['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE']); - END_ENTITY; -(* USED FROM (shape_data_quality_criteria_schema); *) - ENTITY small_area_face - SUBTYPE OF(topology_related_to_nearly_degenerate_geometry); - SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; - WHERE - WR1 : ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + - 'SHAPE_DATA_QUALITY_UPPER_VALUE_LIMIT' - IN TYPEOF(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)) - AND ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.AREA_MEASURE' - IN value_limit_type(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)); - WR2 : validate_measured_data_type(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.AREA_MEASURE'); - WR3 : validate_inspected_elements_type(SELF, - ['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FACE_SURFACE']); - WR4 : validate_locations_of_extreme_value_type(SELF, - []); - WR5 : validate_accuracy_types(SELF, - ['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.AREA_MEASURE']); - END_ENTITY; -(* USED FROM (Ap242_managed_model_based_3d_engineering_mim); *) - ENTITY cc_design_approval - SUBTYPE OF (approval_assignment); - items : SET[1:?] OF approved_item; - END_ENTITY; -(* USED FROM (shape_data_quality_criteria_schema); *) - ENTITY geometric_gap_in_topology - ABSTRACT SUPERTYPE OF (ONEOF ( - GAP_BETWEEN_ADJACENT_EDGES_IN_LOOP, - GAP_BETWEEN_VERTEX_AND_BASE_SURFACE, - GAP_BETWEEN_VERTEX_AND_EDGE, - GAP_BETWEEN_EDGE_AND_BASE_SURFACE, - GAP_BETWEEN_PCURVES_RELATED_TO_AN_EDGE, - GAP_BETWEEN_FACES_RELATED_TO_AN_EDGE)) - SUBTYPE OF(inapt_topology_and_geometry_relationship); - END_ENTITY; -(* USED FROM (shape_aspect_definition_schema); *) -ENTITY datum_reference_modifier_with_value; - modifier_type : datum_reference_modifier_type; - modifier_value : length_measure_with_unit; -WHERE - WR1: (modifier_value\measure_with_unit.value_component > 0.0); -END_ENTITY; -(* USED FROM (shape_data_quality_criteria_schema); *) - ENTITY gap_between_vertex_and_base_surface - SUBTYPE OF(geometric_gap_in_topology); - SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; - WHERE - WR1 : ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + - 'SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' - IN TYPEOF(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)) - AND ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE' - IN value_limit_type(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)); - WR2 : validate_measured_data_type(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE'); - WR3 : validate_inspected_elements_type(SELF, - ['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FACE_SURFACE']); - WR4 : validate_locations_of_extreme_value_type(SELF, - ['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.VERTEX_POINT', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.'+ - 'POINT_ON_FACE_SURFACE']); - WR5 : validate_accuracy_types(SELF, - ['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE']); - END_ENTITY; -(* USED FROM (shape_data_quality_criteria_schema); *) - ENTITY gap_between_vertex_and_edge - SUBTYPE OF(geometric_gap_in_topology); - SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; - WHERE - WR1 : ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + - 'SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' - IN TYPEOF(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)) - AND ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE' - IN value_limit_type(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)); - WR2 : validate_measured_data_type(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE'); - WR3 : validate_inspected_elements_type(SELF, - ['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.EDGE_CURVE']); - WR4 : validate_locations_of_extreme_value_type(SELF, - ['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.VERTEX_POINT', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.'+ - 'POINT_ON_EDGE_CURVE']); - WR5 : validate_accuracy_types(SELF, - ['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE']); - END_ENTITY; -(* USED FROM (shape_data_quality_criteria_schema); *) - ENTITY gap_between_edge_and_base_surface - SUBTYPE OF(geometric_gap_in_topology); - SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; - WHERE - WR1 : ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + - 'SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' - IN TYPEOF(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)) - AND ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE' - IN value_limit_type(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)); - WR2 : validate_measured_data_type(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE'); - WR3 : validate_inspected_elements_type(SELF, - ['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FACE_SURFACE']); - WR4 : validate_locations_of_extreme_value_type(SELF, - ['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.'+ - 'POINT_ON_EDGE_CURVE', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.'+ - 'POINT_ON_FACE_SURFACE']); - WR5 : validate_accuracy_types(SELF, - ['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE']); - END_ENTITY; -(* USED FROM (shape_data_quality_criteria_schema); *) - ENTITY gap_between_pcurves_related_to_an_edge - SUBTYPE OF(geometric_gap_in_topology); - SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; - WHERE - WR1 : ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + - 'SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' - IN TYPEOF(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)) - AND ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE' - IN value_limit_type(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)); - WR2 : validate_measured_data_type(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE'); - WR3 : validate_inspected_elements_type(SELF, - ['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CONNECTED_FACE_SET']); - WR4 : validate_locations_of_extreme_value_type(SELF, - ['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.POINT_ON_SURFACE', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.POINT_ON_SURFACE']); - WR5 : validate_accuracy_types(SELF, - ['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE']); - END_ENTITY; -(* USED FROM (shape_data_quality_criteria_schema); *) - ENTITY gap_between_faces_related_to_an_edge - SUBTYPE OF(geometric_gap_in_topology); - SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; - WHERE - WR1 : ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + - 'SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' - IN TYPEOF(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)) - AND ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE' - IN value_limit_type(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)); - WR2 : validate_measured_data_type(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE'); - WR3 : validate_inspected_elements_type(SELF, - ['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CONNECTED_FACE_SET']); - WR4 : validate_locations_of_extreme_value_type(SELF, - ['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.'+ - 'POINT_ON_EDGE_CURVE']); - WR5 : validate_accuracy_types(SELF, - ['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE']); - END_ENTITY; -(* USED FROM (shape_data_quality_criteria_schema); *) - ENTITY non_smooth_geometry_transition_across_edge - ABSTRACT SUPERTYPE OF (ONEOF ( - G1_DISCONTINUITY_BETWEEN_ADJACENT_FACES, - G2_DISCONTINUITY_BETWEEN_ADJACENT_FACES)) - SUBTYPE OF(inapt_topology_and_geometry_relationship); - END_ENTITY; -(* USED FROM (shape_data_quality_criteria_schema); *) - ENTITY g1_discontinuity_between_adjacent_faces - SUBTYPE OF(non_smooth_geometry_transition_across_edge); - SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; - WHERE - WR1 : ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + - 'SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' - IN TYPEOF(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)) - AND ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PLANE_ANGLE_MEASURE' - IN value_limit_type(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)); - WR2 : validate_measured_data_type(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PLANE_ANGLE_MEASURE'); - WR3 : validate_inspected_elements_type(SELF, - ['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CONNECTED_FACE_SET']); - WR4 : validate_locations_of_extreme_value_type(SELF, - ['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.'+ - 'POINT_ON_EDGE_CURVE']); - WR5 : validate_accuracy_types(SELF, - ['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PLANE_ANGLE_MEASURE']); - END_ENTITY; -(* USED FROM (shape_data_quality_criteria_schema); *) - ENTITY g2_discontinuity_between_adjacent_faces - SUBTYPE OF(non_smooth_geometry_transition_across_edge); - SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; - assessment_specification_2 : shape_data_quality_assessment_by_numerical_test; - flat_curvature_radius_tolerance : length_measure; - WHERE - WR1 : ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + - 'SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' - IN TYPEOF(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)) - AND ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PLANE_ANGLE_MEASURE' - IN value_limit_type(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)); - WR2 : ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + - 'SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' - IN TYPEOF(assessment_specification_2\shape_data_quality_assessment_by_numerical_test.threshold)) - AND ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.RATIO_MEASURE' - IN value_limit_type(assessment_specification_2\shape_data_quality_assessment_by_numerical_test.threshold)); - WR3 : validate_measured_data_type(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.'+ - 'PLANE_ANGLE_AND_RATIO_PAIR'); - WR4 : validate_inspected_elements_type(SELF, - ['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CONNECTED_FACE_SET']); - WR5 : validate_locations_of_extreme_value_type(SELF, - ['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.'+ - 'POINT_ON_EDGE_CURVE']); - WR6 : validate_accuracy_types(SELF, - ['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.RATIO_MEASURE']); - END_ENTITY; -(* USED FROM (shape_data_quality_criteria_schema); *) - ENTITY topology_related_to_self_intersecting_geometry - ABSTRACT SUPERTYPE OF (ONEOF ( - SELF_INTERSECTING_LOOP, - SELF_INTERSECTING_SHELL, - INTERSECTING_CONNECTED_FACE_SETS)) - SUBTYPE OF(inapt_topology_and_geometry_relationship); - END_ENTITY; -(* USED FROM (shape_data_quality_criteria_schema); *) - ENTITY self_intersecting_loop - SUBTYPE OF(topology_related_to_self_intersecting_geometry); - SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_logical_test; - arc_length_distance_factor : REAL; - interference_tolerance : length_measure; - WHERE - WR1 : validate_measured_data_type(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.BOOLEAN_VALUE'); - WR2 : validate_inspected_elements_type(SELF, - ['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.EDGE_LOOP']); - WR3 : validate_locations_of_extreme_value_type(SELF, - ['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.'+ - 'POINT_ON_EDGE_CURVE', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.'+ - 'POINT_ON_EDGE_CURVE']); - WR4 : validate_accuracy_types(SELF, - ['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE']); - END_ENTITY; -(* USED FROM (shape_data_quality_criteria_schema); *) - ENTITY self_intersecting_shell - SUBTYPE OF(topology_related_to_self_intersecting_geometry); - SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_logical_test; - geodesic_separation_factor : REAL; - interference_tolerance : length_measure; - WHERE - WR1 : validate_measured_data_type(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.BOOLEAN_VALUE'); - WR2 : validate_inspected_elements_type(SELF, - ['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CONNECTED_FACE_SET']); - WR3 : validate_locations_of_extreme_value_type(SELF, - ['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.'+ - 'POINT_ON_FACE_SURFACE', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.'+ - 'POINT_ON_FACE_SURFACE']); - WR4 : validate_accuracy_types(SELF, - ['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE']); - END_ENTITY; -(* USED FROM (shape_data_quality_criteria_schema); *) - ENTITY intersecting_connected_face_sets - SUBTYPE OF(topology_related_to_self_intersecting_geometry); - SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_logical_test; - interference_tolerance : length_measure; - WHERE - WR1 : validate_measured_data_type(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.BOOLEAN_VALUE'); - WR2 : validate_inspected_elements_type(SELF, - ['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CONNECTED_FACE_SET', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CONNECTED_FACE_SET']); - WR3 : validate_locations_of_extreme_value_type(SELF, - ['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.'+ - 'POINT_ON_FACE_SURFACE', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.'+ - 'POINT_ON_FACE_SURFACE']); - WR4 : validate_accuracy_types(SELF, - ['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE']); - END_ENTITY; -(* USED FROM (shape_data_quality_criteria_schema); *) - ENTITY steep_geometry_transition_across_edge - ABSTRACT SUPERTYPE OF (ONEOF ( - STEEP_ANGLE_BETWEEN_ADJACENT_EDGES, - STEEP_ANGLE_BETWEEN_ADJACENT_FACES)) - SUBTYPE OF(inapt_topology_and_geometry_relationship); - END_ENTITY; -(* USED FROM (shape_data_quality_criteria_schema); *) - ENTITY steep_angle_between_adjacent_edges - SUBTYPE OF(steep_geometry_transition_across_edge); - SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; - WHERE - WR1 : ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + - 'SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' - IN TYPEOF(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)) - AND ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PLANE_ANGLE_MEASURE' - IN value_limit_type(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)); - WR2 : validate_measured_data_type(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PLANE_ANGLE_MEASURE'); - WR3 : validate_inspected_elements_type(SELF, - ['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.EDGE_LOOP']); - WR4 : validate_locations_of_extreme_value_type(SELF, - ['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ORIENTED_EDGE']); - WR5 : validate_accuracy_types(SELF, - ['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PLANE_ANGLE_MEASURE']); - END_ENTITY; -(* USED FROM (shape_data_quality_criteria_schema); *) - ENTITY steep_angle_between_adjacent_faces - SUBTYPE OF(steep_geometry_transition_across_edge); - SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; - WHERE - WR1 : ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + - 'SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' - IN TYPEOF(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)) - AND ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PLANE_ANGLE_MEASURE' - IN value_limit_type(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)); - WR2 : validate_measured_data_type(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PLANE_ANGLE_MEASURE'); - WR3 : validate_inspected_elements_type(SELF, - ['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CONNECTED_FACE_SET']); - WR4 : validate_locations_of_extreme_value_type(SELF, - ['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.'+ - 'POINT_ON_EDGE_CURVE']); - WR5 : validate_accuracy_types(SELF, - ['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PLANE_ANGLE_MEASURE']); - END_ENTITY; -(* USED FROM (shape_data_quality_criteria_schema); *) - ENTITY topology_related_to_overlapping_geometry - ABSTRACT SUPERTYPE OF (ONEOF ( - PARTLY_OVERLAPPING_FACES, - PARTLY_OVERLAPPING_EDGES)) - SUBTYPE OF(inapt_topology_and_geometry_relationship); - END_ENTITY; -(* USED FROM (shape_data_quality_criteria_schema); *) - ENTITY partly_overlapping_faces - SUBTYPE OF(topology_related_to_overlapping_geometry); - SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; - interference_tolerance : length_measure; - WHERE - WR1 : ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + - 'SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' - IN TYPEOF(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)) - AND ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.AREA_MEASURE' - IN value_limit_type(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)); - WR2 : validate_measured_data_type(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.AREA_MEASURE'); - WR3 : validate_inspected_elements_type(SELF, - ['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FACE_SURFACE', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FACE_SURFACE']); - WR4 : validate_locations_of_extreme_value_type(SELF, - ['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SUBFACE','AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SUBFACE']); - WR5 : validate_accuracy_types(SELF, - ['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.AREA_MEASURE']); - END_ENTITY; -(* USED FROM (shape_aspect_definition_schema); *) -ENTITY symmetric_shape_aspect - SUBTYPE OF (shape_aspect); -INVERSE - basis_relationships : SET[1:?] OF shape_aspect_deriving_relationship FOR related_shape_aspect; -END_ENTITY; -(* USED FROM (shape_data_quality_criteria_schema); *) - ENTITY topology_related_to_multiply_defined_geometry - ABSTRACT SUPERTYPE OF (ONEOF ( - MULTIPLY_DEFINED_FACES, - MULTIPLY_DEFINED_VERTICES, - MULTIPLY_DEFINED_EDGES)) - SUBTYPE OF(inapt_topology_and_geometry_relationship); - END_ENTITY; -(* USED FROM (shape_data_quality_criteria_schema); *) - ENTITY multiply_defined_faces - SUBTYPE OF(topology_related_to_multiply_defined_geometry); - SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; - WHERE - WR1 : ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + - 'SHAPE_DATA_QUALITY_UPPER_VALUE_LIMIT' - IN TYPEOF(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)) - AND ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE' - IN value_limit_type(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)); - WR2 : validate_measured_data_type(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE'); - WR3 : validate_inspected_elements_type(SELF, - ['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FACE_SURFACE', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FACE_SURFACE']); - WR4 : validate_locations_of_extreme_value_type(SELF, - []); - WR5 : validate_accuracy_types(SELF, - ['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE']); - END_ENTITY; -(* USED FROM (shape_data_quality_criteria_schema); *) - ENTITY multiply_defined_vertices - SUBTYPE OF(topology_related_to_multiply_defined_geometry); - SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; - WHERE - WR1 : ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + - 'SHAPE_DATA_QUALITY_UPPER_VALUE_LIMIT' - IN TYPEOF(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)) AND - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE' - IN value_limit_type(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)); - WR2 : validate_measured_data_type(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE'); - WR3 : validate_inspected_elements_type(SELF, - ['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.VERTEX_POINT', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.VERTEX_POINT']); - WR4 : validate_locations_of_extreme_value_type(SELF, - []); - WR5 : validate_accuracy_types(SELF, - []); - END_ENTITY; -(* USED FROM (shape_data_quality_criteria_schema); *) - ENTITY multiply_defined_edges - SUBTYPE OF(topology_related_to_multiply_defined_geometry); - SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; - WHERE - WR1 : ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + - 'SHAPE_DATA_QUALITY_UPPER_VALUE_LIMIT' - IN TYPEOF(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)) - AND ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE' - IN value_limit_type(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)); - WR2 : validate_measured_data_type(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE'); - WR3 : validate_inspected_elements_type(SELF, - ['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.EDGE_CURVE', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.EDGE_CURVE']); - WR4 : validate_locations_of_extreme_value_type(SELF, - []); - WR5 : validate_accuracy_types(SELF, - ['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE']); - END_ENTITY; -(* USED FROM (shape_tolerance_schema); *) -ENTITY geometric_tolerance - ABSTRACT SUPERTYPE OF ( - GEOMETRIC_TOLERANCE_WITH_DATUM_REFERENCE - ANDOR - GEOMETRIC_TOLERANCE_WITH_DEFINED_UNIT - ANDOR ONEOF ( - GEOMETRIC_TOLERANCE_WITH_MODIFIERS, - MODIFIED_GEOMETRIC_TOLERANCE) - ANDOR - UNEQUALLY_DISPOSED_GEOMETRIC_TOLERANCE - ANDOR ONEOF ( - CYLINDRICITY_TOLERANCE, - FLATNESS_TOLERANCE, - LINE_PROFILE_TOLERANCE, - POSITION_TOLERANCE, - ROUNDNESS_TOLERANCE, - STRAIGHTNESS_TOLERANCE, - SURFACE_PROFILE_TOLERANCE)); - name : label; - description : OPTIONAL text; - magnitude : OPTIONAL length_measure_with_unit; - toleranced_shape_aspect : geometric_tolerance_target; -DERIVE - controlling_shape : product_definition_shape := sts_get_product_definition_shape(toleranced_shape_aspect); - id : identifier := get_id_value(SELF); -UNIQUE - UR1: id, controlling_shape; -WHERE - WR1: magnitude\measure_with_unit.value_component >= 0.0; - WR2: EXISTS(controlling_shape); - WR3: NOT ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP' IN TYPEOF(toleranced_shape_aspect)) - OR (toleranced_shape_aspect\shape_aspect_relationship.relating_shape_aspect.of_shape :=: - toleranced_shape_aspect\shape_aspect_relationship.related_shape_aspect.of_shape); - WR4: SIZEOF(USEDIN(SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'ID_ATTRIBUTE.IDENTIFIED_ITEM')) <= 1; -END_ENTITY; -(* USED FROM (shape_tolerance_schema); *) -ENTITY geometric_tolerance_relationship; - name : label; - description : text; - relating_geometric_tolerance : geometric_tolerance; - related_geometric_tolerance : geometric_tolerance; -END_ENTITY; -(* USED FROM (shape_data_quality_criteria_schema); *) - ENTITY edge_with_excessive_segments - SUBTYPE OF(overcomplex_topology_and_geometry_relationship); - SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; - WHERE - WR1 : ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + - 'SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' - IN TYPEOF(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)) - AND ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.COUNT_MEASURE' - IN value_limit_type(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)); - WR2 : validate_measured_data_type(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.COUNT_MEASURE'); - WR3 : validate_inspected_elements_type(SELF, - ['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.EDGE_CURVE']); - WR4 : validate_locations_of_extreme_value_type(SELF, - []); - WR5 : validate_accuracy_types(SELF, - []); - END_ENTITY; -(* USED FROM (shape_data_quality_criteria_schema); *) - ENTITY face_surface_with_excessive_patches_in_one_direction - SUBTYPE OF(overcomplex_topology_and_geometry_relationship); - SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; - WHERE - WR1 : ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + - 'SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' - IN TYPEOF(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)) - AND ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.COUNT_MEASURE' - IN value_limit_type(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)); - WR2 : validate_measured_data_type(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.COUNT_MEASURE'); - WR3 : validate_inspected_elements_type(SELF, - ['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FACE_SURFACE']); - WR4 : validate_locations_of_extreme_value_type(SELF, - []); - WR5 : validate_accuracy_types(SELF, - []); - END_ENTITY; -(* USED FROM (shape_data_quality_criteria_schema); *) - ENTITY inapt_manifold_solid_brep - ABSTRACT SUPERTYPE OF (ONEOF ( - PARTLY_OVERLAPPING_SOLIDS, - SMALL_VOLUME_SOLID, - MULTIPLY_DEFINED_SOLIDS, - ENTIRELY_NARROW_SOLID, - SOLID_WITH_EXCESSIVE_NUMBER_OF_VOIDS)) - SUBTYPE OF(inapt_data); - END_ENTITY; -(* USED FROM (shape_data_quality_criteria_schema); *) - ENTITY partly_overlapping_solids - SUBTYPE OF(inapt_manifold_solid_brep); - SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; - interference_tolerance : length_measure; - WHERE - WR1 : ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + - 'SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' - IN TYPEOF(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)) - AND ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.AREA_MEASURE' - IN value_limit_type(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)); - WR2 : validate_measured_data_type(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.AREA_MEASURE'); - WR3 : validate_inspected_elements_type(SELF, - ['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MANIFOLD_SOLID_BREP', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MANIFOLD_SOLID_BREP']); - WR4 : validate_locations_of_extreme_value_type(SELF, - ['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SUBFACE','AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SUBFACE']); - WR5 : validate_accuracy_types(SELF, - ['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.AREA_MEASURE']); - END_ENTITY; -(* USED FROM (shape_data_quality_criteria_schema); *) - ENTITY small_volume_solid - SUBTYPE OF(inapt_manifold_solid_brep); - SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; - WHERE - WR1 : ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + - 'SHAPE_DATA_QUALITY_UPPER_VALUE_LIMIT' - IN TYPEOF(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)) - AND ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.VOLUME_MEASURE' - IN value_limit_type(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)); - WR2 : validate_measured_data_type(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.VOLUME_MEASURE'); - WR3 : validate_inspected_elements_type(SELF, - ['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MANIFOLD_SOLID_BREP']); - WR4 : validate_locations_of_extreme_value_type(SELF, - []); - WR5 : validate_accuracy_types(SELF, - ['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.VOLUME_MEASURE']); - END_ENTITY; -(* USED FROM (shape_tolerance_schema); *) -ENTITY geometric_tolerance_with_defined_area_unit - SUBTYPE OF (geometric_tolerance_with_defined_unit); - area_type : area_unit_type; - second_unit_size : OPTIONAL length_measure_with_unit; -WHERE - WR1: NOT (EXISTS(second_unit_size) XOR (area_type = area_unit_type.rectangular)); -END_ENTITY; -(* USED FROM (shape_tolerance_schema); *) -ENTITY geometric_tolerance_with_defined_unit - SUBTYPE OF (geometric_tolerance); - unit_size : length_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; -(* USED FROM (shape_data_quality_criteria_schema); *) - ENTITY solid_with_excessive_number_of_voids - SUBTYPE OF(inapt_manifold_solid_brep); - SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; - WHERE - WR1 : ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + - 'SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' - IN TYPEOF(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)) - AND ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.COUNT_MEASURE' - IN value_limit_type(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)); - WR2 : validate_measured_data_type(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.COUNT_MEASURE'); - WR3 : validate_inspected_elements_type(SELF, - ['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MANIFOLD_SOLID_BREP']); - WR4 : validate_locations_of_extreme_value_type(SELF, - []); - WR5 : validate_accuracy_types(SELF, - []); - END_ENTITY; -(* USED FROM (kinematic_structure_schema); *) -ENTITY cylindrical_pair - SUBTYPE OF (low_order_kinematic_pair); -DERIVE - SELF\low_order_kinematic_pair.t_x : BOOLEAN := FALSE; - SELF\low_order_kinematic_pair.t_y : BOOLEAN := FALSE; - SELF\low_order_kinematic_pair.t_z : BOOLEAN := TRUE; - SELF\low_order_kinematic_pair.r_x : BOOLEAN := FALSE; - SELF\low_order_kinematic_pair.r_y : BOOLEAN := FALSE; - SELF\low_order_kinematic_pair.r_z : BOOLEAN := TRUE; -END_ENTITY; -(* USED FROM (shape_data_quality_criteria_schema); *) - ENTITY shape_measurement_accuracy; - description : text; - range : shape_data_quality_value_limit_type_select; - END_ENTITY; -(* USED FROM (shape_data_quality_criteria_schema); *) - ENTITY shape_data_quality_criterion_and_accuracy_association; - required_specific_accuracy : shape_measurement_accuracy; - shape_data_quality_criterion : shape_data_quality_criterion; - END_ENTITY; -(* USED FROM (shape_tolerance_schema); *) -ENTITY geometric_tolerance_with_modifiers - SUBTYPE OF (geometric_tolerance); - modifiers : SET[1:?] OF geometric_tolerance_modifier; -END_ENTITY; - -(* Implicit interfaced from: management_resources_schema *) - ENTITY attribute_value_role; - name : label; - description : OPTIONAL text; - END_ENTITY; -(* USED FROM (shape_tolerance_schema); *) -ENTITY modified_geometric_tolerance - SUBTYPE OF (geometric_tolerance); - modifier : limit_condition; -END_ENTITY; -(* USED FROM (shape_data_quality_inspection_result_schema); *) - ENTITY shape_data_quality_inspection_result - SUBTYPE OF(data_quality_inspection_result); - SELF\data_quality_inspection_result.criterion_inspected:shape_data_quality_criterion; - END_ENTITY; -(* USED FROM (shape_data_quality_inspection_result_schema); *) - ENTITY shape_data_quality_inspection_criterion_report - SUBTYPE OF(data_quality_inspection_criterion_report); - representative_measured_value : measured_value_select; - END_ENTITY; -(* USED FROM (shape_tolerance_schema); *) -ENTITY non_uniform_zone_definition - SUBTYPE OF (tolerance_zone_definition); -END_ENTITY; -(* REFERENCE FROM (product_definition_schema); *) - ENTITY product_definition_effectivity - SUBTYPE OF (effectivity); - usage : product_definition_relationship; - WHERE - WR1: SIZEOF(USEDIN(SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'EFFECTIVITY_ASSIGNMENT.ASSIGNED_EFFECTIVITY')) = 0; - END_ENTITY; - -(* Implicit interfaced from: presentation_appearance_schema *) - ENTITY one_direction_repeat_factor - SUBTYPE OF (geometric_representation_item); - repeat_factor : vector; - END_ENTITY; -(* USED FROM (shape_data_quality_inspection_result_schema); *) - ENTITY instance_report_item_with_extreme_instances - SUBTYPE OF(shape_data_quality_inspection_instance_report_item); - extreme_instances : LIST [1:?] OF extreme_instance; - END_ENTITY; - -(* Implicit interfaced from: product_concept_schema *) -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; -(* USED FROM (shape_tolerance_schema); *) -ENTITY runout_zone_definition - SUBTYPE OF (tolerance_zone_definition); - orientation : runout_zone_orientation; -END_ENTITY; -(* USED FROM (shape_data_quality_inspection_result_schema); *) - ENTITY point_on_face_surface - SUBTYPE OF(point_on_surface); - basis_face_surface : face_surface; - DERIVE - SELF\point_on_surface.basis_surface : surface := SELF.basis_face_surface.face_geometry; - WHERE - WR1 : SIZEOF( - using_representations(SELF.basis_face_surface) * - relating_shape_representations_of_extreme_values(SELF))>0; - END_ENTITY; -(* USED FROM (shape_data_quality_inspection_result_schema); *) - ENTITY plane_angle_and_ratio_pair - SUBTYPE OF(founded_item); - plane_angle_value : plane_angle_measure; - ratio_value : ratio_measure; - END_ENTITY; -(* USED FROM (shape_tolerance_schema); *) -ENTITY runout_zone_orientation_reference_direction - SUBTYPE OF (runout_zone_orientation); - orientation_defining_relationship : shape_aspect_relationship; -END_ENTITY; - -(* Implicit interfaced from: solid_shape_element_schema *) -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; - -(* Implicit interfaced from: solid_shape_element_schema *) -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; -(* USED FROM (shape_data_quality_inspection_result_schema); *) - ENTITY b_spline_curve_knot_locator - SUBTYPE OF(founded_item); - basis_curve : b_spline_curve; - knot_index : INTEGER; - WHERE - WR1 : SIZEOF( - using_representations(SELF.basis_curve) * - relating_shape_representations_of_extreme_values(SELF))>0; - END_ENTITY; -(* USED FROM (shape_data_quality_inspection_result_schema); *) - ENTITY b_spline_curve_segment - SUBTYPE OF(founded_item); - basis_curve : b_spline_curve; - start_knot_index : INTEGER; - WHERE - WR1 : SIZEOF( - using_representations(SELF.basis_curve) * - relating_shape_representations_of_extreme_values(SELF))>0; - END_ENTITY; -(* USED FROM (shape_tolerance_schema); *) -ENTITY tolerance_zone_form; - name : label; -END_ENTITY; -(* USED FROM (shape_data_quality_inspection_result_schema); *) - ENTITY composite_curve_transition_locator - SUBTYPE OF(founded_item); - basis_curve : composite_curve; - transition_index : INTEGER; - WHERE - WR1 : SIZEOF( - using_representations(SELF.basis_curve) * - relating_shape_representations_of_extreme_values(SELF))>0; - END_ENTITY; -(* USED FROM (shape_data_quality_inspection_result_schema); *) - ENTITY rectangular_composite_surface_transition_locator - SUBTYPE OF(founded_item); - basis_surface : rectangular_composite_surface; - surface_parameter : u_or_v_parameter; - u_transition_index : INTEGER; - v_transition_index : INTEGER; - WHERE - WR1 : SIZEOF( - using_representations(SELF.basis_surface) * - relating_shape_representations_of_extreme_values(SELF))>0; - END_ENTITY; -(* USED FROM (shape_data_quality_inspection_result_schema); *) - ENTITY boundary_curve_of_b_spline_or_rectangular_composite_surface - SUBTYPE OF(founded_item); - basis_surface : b_spline_or_rectangular_composite_surface_select; - boundary_type : surface_boundary_type; - WHERE - WR1 : SIZEOF( - using_representations(SELF.basis_surface) * - relating_shape_representations_of_extreme_values(SELF))>0; - END_ENTITY; -(* USED FROM (shape_tolerance_schema); *) -ENTITY flatness_tolerance - SUBTYPE OF (geometric_tolerance); -WHERE - WR1: NOT ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'GEOMETRIC_TOLERANCE_WITH_DATUM_REFERENCE' IN TYPEOF (SELF)); -END_ENTITY; -(* USED FROM (presentation_appearance_schema); *) - ENTITY fill_area_style_colour; - name : label; - fill_colour : colour; - END_ENTITY; -(* USED FROM (presentation_appearance_schema); *) - ENTITY invisibility; - invisible_items : SET [1:?] OF invisible_item; - END_ENTITY; -(* USED FROM (presentation_appearance_schema); *) - ENTITY over_riding_styled_item - SUBTYPE OF (styled_item); - over_ridden_style : styled_item; - END_ENTITY; -(* USED FROM (shape_tolerance_schema); *) -ENTITY position_tolerance - SUBTYPE OF (geometric_tolerance); -END_ENTITY; -(* USED FROM (presentation_appearance_schema); *) - ENTITY presentation_style_by_context - SUBTYPE OF (presentation_style_assignment); - style_context : style_context_select; - END_ENTITY; -(* USED FROM (presentation_appearance_schema); *) - ENTITY externally_defined_style - SUBTYPE OF (externally_defined_item, founded_item); - END_ENTITY; -(* USED FROM (shape_tolerance_schema); *) -ENTITY roundness_tolerance - SUBTYPE OF (geometric_tolerance); -WHERE - WR1: NOT ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'GEOMETRIC_TOLERANCE_WITH_DATUM_REFERENCE' IN TYPEOF (SELF)); -END_ENTITY; -(* USED FROM (presentation_resource_schema); *) -ENTITY planar_box - SUBTYPE OF (planar_extent); - placement: axis2_placement; -END_ENTITY; -(* USED FROM (shape_tolerance_schema); *) -ENTITY straightness_tolerance - SUBTYPE OF (geometric_tolerance); -WHERE - WR1: NOT ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'GEOMETRIC_TOLERANCE_WITH_DATUM_REFERENCE' IN TYPEOF (SELF)); -END_ENTITY; -(* USED FROM (Externally_conditioned_data_quality_criteria_mim); *) - ENTITY excessive_use_of_groups - SUBTYPE OF(externally_conditioned_data_quality_criterion); - WHERE - WR1: validate_ecdq_inspected_elements_type(SELF, ['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.GROUP']); - END_ENTITY; -(* USED FROM (Externally_conditioned_data_quality_criteria_mim); *) - ENTITY excessive_use_of_layers - SUBTYPE OF(Externally_conditioned_data_quality_criterion); - WHERE - WR1: validate_ecdq_inspected_elements_type(SELF, - ['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRESENTATION_LAYER_ASSIGNMENT']); - END_ENTITY; -(* USED FROM (shape_tolerance_schema); *) -ENTITY angularity_tolerance - SUBTYPE OF (geometric_tolerance_with_datum_reference); -END_ENTITY; -(* USED FROM (shape_tolerance_schema); *) -ENTITY surface_profile_tolerance - SUBTYPE OF (geometric_tolerance); -END_ENTITY; -(* USED FROM (Externally_conditioned_data_quality_criteria_mim); *) - ENTITY inappropriate_element_visibility - SUBTYPE OF(Externally_conditioned_data_quality_criterion); - WHERE - WR1: validate_ecdq_inspected_elements_type(SELF, - ['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.STYLED_ITEM']); - END_ENTITY; -(* USED FROM (Externally_conditioned_data_quality_criteria_mim); *) - ENTITY inappropriate_use_of_layer - SUBTYPE OF(Externally_conditioned_data_quality_criterion); - WHERE - WR1: validate_ecdq_inspected_elements_type(SELF, - ['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRESENTATION_LAYER_ASSIGNMENT']); - END_ENTITY; -(* USED FROM (Externally_conditioned_data_quality_criteria_mim); *) - ENTITY inconsistent_element_reference - SUBTYPE OF(Externally_conditioned_data_quality_criterion); - WHERE - WR1: validate_ecdq_inspected_elements_type(SELF, - ['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.REPRESENTATION_ITEM']); - END_ENTITY; -(* USED FROM (Externally_conditioned_data_quality_criteria_mim); *) - ENTITY non_agreed_accuracy_parameter_usage - SUBTYPE OF(externally_conditioned_data_quality_criterion); - WHERE - WR1: validate_ecdq_inspected_elements_type(SELF, - ['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.GLOBAL_UNCERTAINTY_ASSIGNED_CONTEXT']); - END_ENTITY; -(* USED FROM (Externally_conditioned_data_quality_criteria_mim); *) - ENTITY non_agreed_scale_usage - SUBTYPE OF(externally_conditioned_data_quality_criterion); - WHERE - WR1: validate_ecdq_inspected_elements_type(SELF, - ['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CARTESIAN_TRANSFORMATION_OPERATOR_3D']); - END_ENTITY; -(* USED FROM (Externally_conditioned_data_quality_criteria_mim); *) - ENTITY non_agreed_unit_usage - SUBTYPE OF(externally_conditioned_data_quality_criterion); - WHERE - WR1: validate_ecdq_inspected_elements_type(SELF, - ['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.GLOBAL_UNIT_ASSIGNED_CONTEXT']); - END_ENTITY; -(* USED FROM (Externally_conditioned_data_quality_criteria_mim); *) - ENTITY non_referenced_coordinate_system - SUBTYPE OF(Externally_conditioned_data_quality_criterion); - WHERE - WR1: validate_ecdq_inspected_elements_type(SELF, - ['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.AXIS2_PLACEMENT_3D']); - END_ENTITY; -(* USED FROM (Externally_conditioned_data_quality_criteria_mim); *) - ENTITY unused_shape_element - SUBTYPE OF(Externally_conditioned_data_quality_criterion); - WHERE - WR1: validate_ecdq_inspected_elements_type(SELF, - ['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.REPRESENTATION_ITEM']); - END_ENTITY; -(* USED FROM (Externally_conditioned_data_quality_criteria_mim); *) - ENTITY wrong_element_name - SUBTYPE OF(Externally_conditioned_data_quality_criterion); - WHERE - WR1: validate_ecdq_inspected_elements_type(SELF, - ['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.REPRESENTATION_ITEM']); - END_ENTITY; -(* USED FROM (Document_assignment_mim); *) -ENTITY applied_document_reference - SUBTYPE OF (document_reference); - items : SET[1:?] OF document_reference_item; -END_ENTITY; -(* USED FROM (Document_assignment_mim); *) -ENTITY applied_document_usage_constraint_assignment - SUBTYPE OF (document_usage_constraint_assignment); - items : SET[1:?] OF document_reference_item; -END_ENTITY; -(* USED FROM (shape_tolerance_schema); *) -ENTITY perpendicularity_tolerance - SUBTYPE OF (geometric_tolerance_with_datum_reference); -END_ENTITY; -(* USED FROM (document_schema); *) - ENTITY document_product_association - ABSTRACT SUPERTYPE; - name : label; - description : OPTIONAL text; - relating_document : document; - related_product : product_or_formation_or_definition; - END_ENTITY; -(* USED FROM (management_resources_schema); *) - ENTITY document_reference - ABSTRACT SUPERTYPE; - assigned_document : document; - source : label; - DERIVE - role : object_role := get_role(SELF); - WHERE - WR1: SIZEOF(USEDIN(SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'ROLE_ASSOCIATION.ITEM_WITH_ROLE')) <= 1; - END_ENTITY; -(* USED FROM (management_resources_schema); *) - ENTITY document_usage_constraint_assignment - ABSTRACT SUPERTYPE; - assigned_document_usage : document_usage_constraint; - role : document_usage_role; - END_ENTITY; -(* USED FROM (shape_tolerance_schema); *) -ENTITY total_runout_tolerance - SUBTYPE OF (geometric_tolerance_with_datum_reference); -END_ENTITY; -(* USED FROM (explicit_constraint_schema); *) -ENTITY explicit_constraint - ABSTRACT SUPERTYPE OF (ONEOF ( - DEFINED_CONSTRAINT, - FREE_FORM_CONSTRAINT)) - SUBTYPE OF (variational_representation_item); - description : OPTIONAL text; - constrained_elements : SET[1:?] OF representation_item; - reference_elements : SET[0:?] OF representation_item; -WHERE - WR1: SIZEOF(constrained_elements * reference_elements) = 0; -END_ENTITY; -(* USED FROM (explicit_constraint_schema); *) -ENTITY defined_constraint - ABSTRACT SUPERTYPE OF ( - EQUAL_PARAMETER_CONSTRAINT) - SUBTYPE OF (explicit_constraint); -END_ENTITY; -(* USED FROM (explicit_constraint_schema); *) -ENTITY equal_parameter_constraint - SUBTYPE OF (defined_constraint); - SELF\explicit_constraint.constrained_elements : - SET[1:?] OF variational_parameter; - SELF\explicit_constraint.reference_elements : - SET[0:1] OF variational_parameter; -WHERE - WR1: SIZEOF(SELF\explicit_constraint.constrained_elements + - SELF\explicit_constraint.reference_elements) >= 2; -END_ENTITY; -(* USED FROM (explicit_constraint_schema); *) -ENTITY free_form_constraint - ABSTRACT SUPERTYPE OF (ONEOF ( - FREE_FORM_ASSIGNMENT, - FREE_FORM_RELATION)) - SUBTYPE OF (explicit_constraint); - SELF\explicit_constraint.constrained_elements : - SET[1:?] OF variational_parameter; - SELF\explicit_constraint.reference_elements : - SET[0:?] OF variational_parameter; - constraining_expression : expression; -END_ENTITY; -(* USED FROM (Camera_view_3d_mim); *) - ENTITY hidden_element_over_riding_styled_item - SUBTYPE OF (context_dependent_over_riding_styled_item); - SELF\context_dependent_over_riding_styled_item.style_context : LIST [1:1] OF presentation_view; - SELF\styled_item.item : camera_image; - INVERSE - container : SET[1:?] OF presentation_view FOR items; - WHERE - WR1: 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CAMERA_MODEL_D3_WITH_HLHSR' IN TYPEOF - (SELF.item\mapped_item.mapping_source.mapping_origin); - END_ENTITY; -(* USED FROM (kinematic_structure_schema); *) -ENTITY prismatic_pair_with_range - SUBTYPE OF (prismatic_pair); - lower_limit_actual_translation : OPTIONAL length_measure; - upper_limit_actual_translation : OPTIONAL length_measure; -WHERE - WR1: (NOT EXISTS(lower_limit_actual_translation) - OR - NOT EXISTS(upper_limit_actual_translation)) - XOR - (lower_limit_actual_translation < upper_limit_actual_translation); -END_ENTITY; -(* USED FROM (kinematic_structure_schema); *) -ENTITY revolute_pair_with_range - SUBTYPE OF (revolute_pair); - lower_limit_actual_rotation : OPTIONAL plane_angle_measure; - upper_limit_actual_rotation : OPTIONAL plane_angle_measure; -WHERE - WR1: (NOT EXISTS(lower_limit_actual_rotation) - OR - NOT EXISTS(upper_limit_actual_rotation)) - XOR - (lower_limit_actual_rotation < upper_limit_actual_rotation); -END_ENTITY; -(* USED FROM (explicit_geometric_constraint_schema); *) -ENTITY explicit_geometric_constraint - ABSTRACT SUPERTYPE OF (ONEOF ( - FIXED_ELEMENT_GEOMETRIC_CONSTRAINT, - PARALLEL_GEOMETRIC_CONSTRAINT, - POINT_DISTANCE_GEOMETRIC_CONSTRAINT, - SKEW_LINE_DISTANCE_GEOMETRIC_CONSTRAINT, - CURVE_DISTANCE_GEOMETRIC_CONSTRAINT, - SURFACE_DISTANCE_GEOMETRIC_CONSTRAINT, - RADIUS_GEOMETRIC_CONSTRAINT, - CURVE_LENGTH_GEOMETRIC_CONSTRAINT, - PARALLEL_OFFSET_GEOMETRIC_CONSTRAINT, - ANGLE_GEOMETRIC_CONSTRAINT, - PERPENDICULAR_GEOMETRIC_CONSTRAINT, - INCIDENCE_GEOMETRIC_CONSTRAINT, - COAXIAL_GEOMETRIC_CONSTRAINT, - TANGENT_GEOMETRIC_CONSTRAINT, - SYMMETRY_GEOMETRIC_CONSTRAINT, - SWEPT_POINT_CURVE_GEOMETRIC_CONSTRAINT, - SWEPT_CURVE_SURFACE_GEOMETRIC_CONSTRAINT, - CURVE_SMOOTHNESS_GEOMETRIC_CONSTRAINT, - SURFACE_SMOOTHNESS_GEOMETRIC_CONSTRAINT)) - SUBTYPE OF (defined_constraint, geometric_representation_item); - SELF\explicit_constraint.constrained_elements : - SET[1:?] OF geometric_representation_item; - SELF\explicit_constraint.reference_elements : - SET[0:?] OF geometric_representation_item; -END_ENTITY; -(* USED FROM (explicit_geometric_constraint_schema); *) -ENTITY fixed_element_geometric_constraint - SUBTYPE OF (explicit_geometric_constraint); - SELF\explicit_constraint.constrained_elements : - SET[1:?] OF geometric_constraint_element; -WHERE - WR1: SIZEOF(SELF\explicit_constraint.reference_elements) = 0; -END_ENTITY; -(* USED FROM (explicit_geometric_constraint_schema); *) -ENTITY parallel_geometric_constraint - SUBTYPE OF (explicit_geometric_constraint); - SELF\explicit_constraint.constrained_elements : - SET[1:?] OF linear_geometry_constraint_element; - SELF\explicit_constraint.reference_elements : - SET[0:1] OF linear_geometry_constraint_element; -END_ENTITY; -(* USED FROM (Colour_mim); *) - ENTITY externally_defined_colour - SUBTYPE OF (colour_specification,externally_defined_item); -END_ENTITY; -- externally_defined_colour -(* USED FROM (explicit_geometric_constraint_schema); *) -ENTITY point_distance_geometric_constraint - SUBTYPE OF (explicit_geometric_constraint); - SELF\explicit_constraint.constrained_elements : SET[1:?] OF point; - SELF\explicit_constraint.reference_elements : - SET[0:4] OF point_curve_or_surface_constraint_element; -WHERE - WR1: (SIZEOF(SELF\explicit_constraint.reference_elements) > 0) OR - (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PDGC_WITH_DIMENSION' - IN TYPEOF(SELF)) AND - (SIZEOF(SELF\explicit_constraint.constrained_elements) = 2)); -END_ENTITY; -(* USED FROM (explicit_geometric_constraint_schema); *) -ENTITY pdgc_with_dimension - SUBTYPE OF (point_distance_geometric_constraint); - distance_value : non_negative_length_measure; -END_ENTITY; -(* USED FROM (presentation_organization_schema); *) - ENTITY camera_model_d3 - SUBTYPE OF (camera_model); - view_reference_system : axis2_placement_3d; - perspective_of_volume : view_volume; - WHERE - WR1: SELF\geometric_representation_item.dim = 3; - END_ENTITY; -(* USED FROM (presentation_organization_schema); *) - ENTITY camera_image - SUPERTYPE OF (ONEOF ( - CAMERA_IMAGE_2D_WITH_SCALE, - CAMERA_IMAGE_3D_WITH_SCALE)) - SUBTYPE OF (mapped_item); - SELF\mapped_item.mapping_source : camera_usage; - SELF\mapped_item.mapping_target : planar_box; - WHERE - WR1: 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.GEOMETRIC_REPRESENTATION_ITEM' - IN TYPEOF (SELF); - END_ENTITY; -(* USED FROM (kinematic_structure_schema); *) -ENTITY actuated_kinematic_pair - SUBTYPE OF (kinematic_pair); - t_x : OPTIONAL actuated_direction; - t_y : OPTIONAL actuated_direction; - t_z : OPTIONAL actuated_direction; - r_x : OPTIONAL actuated_direction; - r_y : OPTIONAL actuated_direction; - r_z : OPTIONAL actuated_direction; -END_ENTITY; -(* REFERENCE FROM (geometry_schema); *) -(* Pruned SUPERTYPE *) -ENTITY volume - - SUBTYPE OF (geometric_representation_item); -WHERE - WR1: SELF\geometric_representation_item.dim = 3; -END_ENTITY; -(* USED FROM (presentation_organization_schema); *) - 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; -(* USED FROM (management_resources_schema); *) - ENTITY organizational_project_role; - name : label; - description : OPTIONAL text; - END_ENTITY; -(* USED FROM (management_resources_schema); *) - ENTITY attribute_value_assignment - ABSTRACT SUPERTYPE; - attribute_name : label; - attribute_value : attribute_type; - role : attribute_value_role; - END_ENTITY; -(* USED FROM (presentation_organization_schema); *) - 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; -(* USED FROM (explicit_geometric_constraint_schema); *) -ENTITY curve_length_geometric_constraint - SUBTYPE OF (explicit_geometric_constraint); - SELF\explicit_constraint.constrained_elements : - SET[1:?] OF bounded_curve; -WHERE - WR1: SIZEOF(SELF\explicit_constraint.reference_elements) = 0; -END_ENTITY; -(* USED FROM (explicit_geometric_constraint_schema); *) -ENTITY clgc_with_dimension - SUBTYPE OF (curve_length_geometric_constraint); - length_value : positive_length_measure; -END_ENTITY; -(* USED FROM (kinematic_property_schema); *) -ENTITY product_definition_kinematics - SUBTYPE OF (property_definition); - SELF\property_definition.definition : product_definition; -INVERSE - representation_relation : kinematic_property_definition_representation FOR definition; -UNIQUE - UR1 : definition; -END_ENTITY; -(* USED FROM (presentation_organization_schema); *) - ENTITY camera_model_d3_with_hlhsr - SUBTYPE OF (camera_model_d3); - hidden_line_surface_removal : BOOLEAN; - END_ENTITY; -(* USED FROM (explicit_geometric_constraint_schema); *) -ENTITY angle_geometric_constraint - SUBTYPE OF (explicit_geometric_constraint); - SELF\explicit_constraint.constrained_elements : - SET[1:?] OF linear_geometry_constraint_element; - SELF\explicit_constraint.reference_elements : - SET[0:1] OF linear_geometry_constraint_element; -WHERE - WR1: (SIZEOF(SELF\explicit_constraint.reference_elements) = 1) OR - (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.AGC_WITH_DIMENSION' - IN TYPEOF(SELF)) AND - (SIZEOF(SELF\explicit_constraint.constrained_elements) = 2)); -END_ENTITY; -(* USED FROM (kinematic_topology_schema); *) -ENTITY oriented_joint - SUBTYPE OF (oriented_edge); - SELF\oriented_edge.edge_element : kinematic_joint; -END_ENTITY; -(* USED FROM (presentation_organization_schema); *) - 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: ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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: ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + - 'AXIS2_PLACEMENT_2D' IN TYPEOF (SELF\mapped_item. - mapping_target\planar_box.placement)) - AND NOT ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + - 'AXIS2_PLACEMENT_3D' IN TYPEOF (SELF\mapped_item. - mapping_target\planar_box.placement)); - END_ENTITY; -(* USED FROM (kinematic_topology_schema); *) -ENTITY kinematic_joint - SUBTYPE OF (edge); - SELF\edge.edge_start : kinematic_link; - SELF\edge.edge_end : kinematic_link; -UNIQUE - UR1: edge_start, edge_end; -WHERE - WR1: edge_start :<>: edge_end; -END_ENTITY; -(* USED FROM (kinematic_topology_schema); *) -ENTITY kinematic_loop - SUBTYPE OF (edge_loop); - SELF\path.edge_list : LIST [1:?] OF UNIQUE oriented_joint; -END_ENTITY; -(* USED FROM (presentation_organization_schema); *) - 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; - INVERSE - camera_usages : SET[1:?] OF camera_model_d3 FOR perspective_of_volume; - WHERE - WR1:('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.AXIS2_PLACEMENT_2D' IN TYPEOF(SELF\view_volume.view_window.placement)) OR - (dot_product ((representation_item(' ') || geometric_representation_item() || direction([0.0,0.0,1.0])), - SELF.view_window\planar_box.placement\axis2_placement_3d.p[3] ) = 1.0); - WR2: view_plane_distance = view_window.placement\placement.location.coordinates[3]; - END_ENTITY; -(* USED FROM (explicit_geometric_constraint_schema); *) -ENTITY symmetry_geometric_constraint - SUBTYPE OF (explicit_geometric_constraint); - SELF\explicit_constraint.constrained_elements : - SET[2:2] OF geometric_representation_item; - mirror_element : linear_geometry_constraint_element; -WHERE - WR1: SIZEOF(SELF\explicit_constraint.reference_elements) = 0; - WR2: SIZEOF(TYPEOF(mirror_element) * - ['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.DIRECTION','AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.VECTOR']) = 0; - WR3: NOT ((SELF\geometric_representation_item.dim = 2) AND - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PLANE' IN TYPEOF(mirror_element))); -END_ENTITY; -(* USED FROM (explicit_geometric_constraint_schema); *) -ENTITY swept_point_curve_geometric_constraint - SUBTYPE OF (explicit_geometric_constraint); - SELF\explicit_constraint.constrained_elements : SET[1:?] OF curve; - SELF\explicit_constraint.reference_elements : - SET[1:1] OF swept_face_solid; -END_ENTITY; -(* USED FROM (explicit_geometric_constraint_schema); *) -ENTITY swept_curve_surface_geometric_constraint - SUBTYPE OF (explicit_geometric_constraint); - SELF\explicit_constraint.constrained_elements : SET[1:?] OF surface; - SELF\explicit_constraint.reference_elements : - SET[1:1] OF swept_surface_or_solid; -END_ENTITY; -(* USED FROM (topology_schema); *) - 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; -(* USED FROM (presentation_organization_schema); *) - 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,'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.'+ - 'STYLED_ITEM.ITEM')) = 0; - END_ENTITY; -(* USED FROM (explicit_geometric_constraint_schema); *) -ENTITY surface_patch_set - SUBTYPE OF (geometric_representation_item); - patches : SET[1:?] OF surface_patch; -END_ENTITY; -(* USED FROM (explicit_geometric_constraint_schema); *) -ENTITY surface_smoothness_geometric_constraint - SUBTYPE OF (explicit_geometric_constraint); - SELF\explicit_constraint.constrained_elements : - SET [1:1] OF surface_patch_set; - u_smoothness : transition_code; - v_smoothness : transition_code; -WHERE - WR1: SIZEOF(SELF\explicit_constraint.reference_elements) = 0; -END_ENTITY; -(* USED FROM (Feature_and_connection_zone_mim); *) -ENTITY connection_zone_interface_plane_relationship - SUBTYPE OF (shape_aspect, shape_aspect_relationship); -UNIQUE - UR1: SELF\shape_aspect_relationship.name; -END_ENTITY; -(* USED FROM (Feature_and_connection_zone_mim); *) -ENTITY feature_definition_with_connection_area - SUBTYPE OF (shape_feature_definition); -END_ENTITY; -(* USED FROM (Specification_document_mim); *) - ENTITY document_identifier - SUBTYPE OF (group); - UNIQUE - UR1: SELF\group.name, SELF\group.description; - END_ENTITY; -(* USED FROM (presentation_organization_schema); *) - ENTITY light_source_positional - SUBTYPE OF (light_source); - position : cartesian_point; - constant_attenuation : REAL; - distance_attenuation : REAL; - END_ENTITY; -(* USED FROM (Specification_document_mim); *) - ENTITY partial_document_with_structured_text_representation_assignment - SUBTYPE OF (applied_document_usage_constraint_assignment, characterized_object); - END_ENTITY; -(* USED FROM (Specification_document_mim); *) - ENTITY specification_definition - SUBTYPE OF (product_definition); - END_ENTITY; -(* USED FROM (presentation_appearance_schema); *) - ENTITY surface_style_transparent; - transparency : REAL; - WHERE - WR1: {0.0 <= transparency <= 1.0}; - END_ENTITY; -(* USED FROM (geometry_schema); *) -ENTITY reparametrised_composite_curve_segment - SUBTYPE OF (composite_curve_segment); - param_length : parameter_value; -WHERE - WR1: param_length > 0.0; -END_ENTITY; -(* USED FROM (topology_schema); *) - ENTITY vertex_shell - SUBTYPE OF (topological_representation_item); - vertex_shell_extent : vertex_loop; - END_ENTITY; -(* USED FROM (solid_shape_element_schema); *) -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 (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE' - IN TYPEOF(first_trim_condition)) - OR ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE' - IN TYPEOF(second_trim_condition))); - WR2: NOT((('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PLANE_ANGLE_MEASURE' - IN TYPEOF(first_trim_condition)) AND - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PLANE_ANGLE_MEASURE' - IN TYPEOF(second_trim_condition))) AND - (first_trim_condition = second_trim_condition)); -END_ENTITY; -(* USED FROM (presentation_appearance_schema); *) - 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; -(* USED FROM (solid_shape_element_schema); *) -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(('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PLANE_ANGLE_MEASURE' - IN TYPEOF(first_trim_condition)) OR - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PLANE_ANGLE_MEASURE' - IN TYPEOF(second_trim_condition))); - WR2: NOT ((('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 - (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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((('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE' - IN TYPEOF(first_trim_condition)) AND - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE' - IN TYPEOF(second_trim_condition))) AND - (first_trim_condition = second_trim_condition)); -END_ENTITY; -(* USED FROM (geometric_model_schema); *) -(* Pruned SUPERTYPE *) -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; -(* USED FROM (presentation_appearance_schema); *) - ENTITY curve_style_rendering; - rendering_method : shading_curve_method; - rendering_properties : surface_rendering_properties; - END_ENTITY; -(* USED FROM (presentation_appearance_schema); *) - ENTITY surface_rendering_properties; - rendered_colour : colour; - END_ENTITY; -(* USED FROM (kinematic_structure_schema); *) -ENTITY su_parameters - SUBTYPE OF (geometric_representation_item); - a : length_measure; - alpha : plane_angle_measure; - b : length_measure; - beta : plane_angle_measure; - c : length_measure; - gamma : plane_angle_measure; -WHERE - WR1: SELF\geometric_representation_item.dim=3; -END_ENTITY; -(* USED FROM (kinematic_structure_schema); *) -ENTITY kinematic_link_representation_association - SUBTYPE OF (representation_relationship); - SELF\representation_relationship.rep_1 : kinematic_link_representation; - SELF\representation_relationship.rep_2 : shape_representation; -WHERE - WR1: (SELF\representation_relationship.rep_2.context_of_items :=: - SELF\representation_relationship.rep_1.context_of_items) OR - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.REPRESENTATION_RELATIONSHIP_WITH_TRANSFORMATION' IN TYPEOF(SELF)); -END_ENTITY; -(* USED FROM (kinematic_structure_schema); *) -ENTITY rigid_link_representation - SUBTYPE OF (kinematic_link_representation); -END_ENTITY; -(* USED FROM (kinematic_structure_schema); *) -ENTITY linear_flexible_link_representation - SUBTYPE OF (kinematic_link_representation); -END_ENTITY; -(* USED FROM (kinematic_structure_schema); *) -ENTITY kinematic_link_representation - ABSTRACT SUPERTYPE OF (ONEOF ( - LINEAR_FLEXIBLE_LINK_REPRESENTATION, - RIGID_LINK_REPRESENTATION)) - SUBTYPE OF (representation); - SELF\representation.context_of_items : geometric_representation_context; - SELF\representation.items : SET[1:?] OF kinematic_link_representation_items; - represented_link : kinematic_link; -INVERSE - associated_shape_representation : SET[0:1] OF -- LK - kinematic_link_representation_association FOR rep_1; -END_ENTITY; -(* USED FROM (kinematic_structure_schema); *) -ENTITY pair_representation_relationship - SUBTYPE OF (geometric_representation_item, representation_relationship_with_transformation); - SELF\representation_relationship.rep_1 : kinematic_link_representation; - SELF\representation_relationship.rep_2 : kinematic_link_representation; - SELF\representation_relationship_with_transformation.transformation_operator : kinematic_pair; -WHERE - WR1: transformation_operator\item_defined_transformation.transform_item_1 IN rep_1.items; - WR2: transformation_operator\item_defined_transformation.transform_item_2 IN rep_2.items; - WR3: rep_1\kinematic_link_representation.represented_link = transformation_operator\kinematic_pair.joint.edge_start; - WR4: rep_2\kinematic_link_representation.represented_link = transformation_operator\kinematic_pair.joint.edge_end; -END_ENTITY; -(* USED FROM (aic_machining_feature); *) -ENTITY feature_component_relationship - SUPERTYPE OF (ONEOF ( - PATTERN_OMIT_MEMBERSHIP, - PATTERN_OFFSET_MEMBERSHIP)) - SUBTYPE OF (shape_aspect_relationship); - WHERE - WR1: ((SIZEOF([ - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.COMPOSITE_SHAPE_ASPECT', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.REPLICATE_FEATURE', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.TRANSITION_FEATURE', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MODIFIED_PATTERN'] * TYPEOF - (SELF.relating_shape_aspect)) = 1) OR - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MACHINING_FEATURE_DEFINITION' - IN TYPEOF(SELF.relating_shape_aspect.of_shape.definition)) OR - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FEATURE_COMPONENT_DEFINITION' - IN TYPEOF(SELF.relating_shape_aspect.of_shape.definition))); -END_ENTITY; -- feature_component_relationship -(* USED FROM (configuration_management_schema); *) -ENTITY configurable_item - SUBTYPE OF (configuration_item); - item_concept_feature : SET[1:?] OF product_concept_feature_association; -END_ENTITY; -(* USED FROM (presentation_appearance_schema); *) - ENTITY curve_style_font_and_scaling - SUBTYPE OF (founded_item); - name : label; - curve_font : curve_style_font_select; - curve_font_scaling : REAL; - END_ENTITY; -(* USED FROM (date_time_schema); *) -ENTITY year_month - SUBTYPE OF (date); - month_component : month_in_year_number; -END_ENTITY; -(* USED FROM (date_time_schema); *) -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; -(* USED FROM (presentation_organization_schema); *) - 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; -(* USED FROM (action_schema); *) - ENTITY action_directive; - name : label; - description : OPTIONAL text; - analysis : text; - comment : text; - requests : SET [1:?] OF versioned_action_request; - END_ENTITY; -(* USED FROM (draughting_element_schema); *) - ENTITY draughting_callout_relationship; - name : label; - description : text; - relating_draughting_callout : draughting_callout; - related_draughting_callout : draughting_callout; - END_ENTITY; -(* USED FROM (date_time_schema); *) -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; -(* USED FROM (geometric_model_schema); *) -(* Pruned SUPERTYPE *) -ENTITY geometric_set - - SUBTYPE OF (geometric_representation_item); - elements : SET[1:?] OF geometric_set_select; -END_ENTITY; -(* USED FROM (presentation_resource_schema); *) -ENTITY planar_extent - SUBTYPE OF (geometric_representation_item); - size_in_x : length_measure; - size_in_y : length_measure; -END_ENTITY; -(* USED FROM (kinematic_structure_schema); *) -ENTITY kinematic_pair - ABSTRACT SUPERTYPE OF (ONEOF ( - HIGH_ORDER_KINEMATIC_PAIR, - LOW_ORDER_KINEMATIC_PAIR_WITH_MOTION_COUPLING, - LOW_ORDER_KINEMATIC_PAIR) - ANDOR - ACTUATED_KINEMATIC_PAIR) - SUBTYPE OF (geometric_representation_item, item_defined_transformation); - joint : kinematic_joint; - SELF\item_defined_transformation.transform_item_1 : rigid_placement; - SELF\item_defined_transformation.transform_item_2 : rigid_placement; -DERIVE - associated_link_representations_1 : SET[1:?] OF kinematic_link_representation := - sort_link_associations(link_representation_associations, TRUE); - associated_link_representations_2 : SET[1:?] OF kinematic_link_representation := - sort_link_associations(link_representation_associations, FALSE); - SELF\item_defined_transformation.name : label := SELF\representation_item.name; -INVERSE - link_representation_associations : SET[1:?] OF pair_representation_relationship FOR transformation_operator; -END_ENTITY; -(* USED FROM (document_schema); *) - ENTITY document_relationship; - name : label; - description : OPTIONAL text; - relating_document : document; - related_document : document; - END_ENTITY; -(* USED FROM (geometry_schema); *) -ENTITY boundary_curve - SUBTYPE OF (composite_curve_on_surface); -WHERE - WR1: SELF\composite_curve.closed_curve; -END_ENTITY; -(* USED FROM (action_schema); *) - ENTITY action_request_status; - status : label; - assigned_request : versioned_action_request; - END_ENTITY; -(* USED FROM (presentation_organization_schema); *) - ENTITY background_colour - SUBTYPE OF (colour); - presentation : area_or_view; - UNIQUE - UR1: presentation; - END_ENTITY; -(* USED FROM (presentation_appearance_schema); *) - ENTITY curve_style_font_pattern - SUBTYPE OF (founded_item); - visible_segment_length : positive_length_measure; - invisible_segment_length : positive_length_measure; - END_ENTITY; -(* USED FROM (Multi_linguism_mim); *) -ENTITY language -SUBTYPE OF (group); -WHERE -WR1: SELF\group.name <> ''; -END_ENTITY; -(* USED FROM (presentation_organization_schema); *) - ENTITY camera_usage - SUBTYPE OF (representation_map); - SELF\representation_map.mapping_origin : camera_model; - WHERE - WR1: NOT ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRESENTATION_REPRESENTATION' - IN TYPEOF(SELF\representation_map.mapped_representation)); - END_ENTITY; -(* USED FROM (geometric_model_schema); *) -ENTITY faceted_brep - SUBTYPE OF (manifold_solid_brep); -END_ENTITY; -(* USED FROM (kinematic_state_schema); *) -ENTITY rack_and_pinion_pair_value - SUBTYPE OF (pair_value); - SELF\pair_value.applies_to_pair : rack_and_pinion_pair; - actual_displacement : length_measure; -DERIVE - actual_rotation : plane_angle_measure - := 0.0; (* - := convert_plane_angle_for_pair_from_radian - (SELF\pair_value.applies_to_pair, - (- actual_displacement / - SELF\pair_value.applies_to_pair\ - rack_and_pinion_pair.pinion_radius)); *) -END_ENTITY; -(* USED FROM (solid_shape_element_schema); *) -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; -(* USED FROM (presentation_appearance_schema); *) - ENTITY surface_style_silhouette - SUBTYPE OF (founded_item); - style_of_silhouette : curve_or_render; - END_ENTITY; -(* USED FROM (presentation_appearance_schema); *) - ENTITY surface_style_segmentation_curve - SUBTYPE OF (founded_item); - style_of_segmentation_curve : curve_or_render; - END_ENTITY; -(* USED FROM (presentation_appearance_schema); *) - ENTITY surface_style_usage - SUBTYPE OF (founded_item); - side : surface_side; - style : surface_side_style_select; - END_ENTITY; -(* USED FROM (presentation_appearance_schema); *) - ENTITY surface_style_fill_area - SUBTYPE OF (founded_item); - fill_area : fill_area_style; - END_ENTITY; -(* USED FROM (presentation_appearance_schema); *) - ENTITY surface_style_rendering; - rendering_method : shading_surface_method; - surface_colour : colour; - END_ENTITY; -(* USED FROM (kinematic_state_schema); *) -ENTITY sliding_curve_pair_value - SUBTYPE OF (pair_value); - SELF\pair_value.applies_to_pair : sliding_curve_pair; - actual_point_on_curve_1 : point_on_curve; - actual_point_on_curve_2 : point_on_curve; -WHERE - WR1: SELF\pair_value.applies_to_pair\planar_curve_pair.curve_1 :=: - actual_point_on_curve_1.basis_curve; - WR2: SELF\pair_value.applies_to_pair\planar_curve_pair.curve_2 :=: - actual_point_on_curve_2.basis_curve; -END_ENTITY; -(* USED FROM (kinematic_state_schema); *) -ENTITY gear_pair_value - SUBTYPE OF (pair_value); - SELF\pair_value.applies_to_pair : gear_pair; - actual_rotation_1 : plane_angle_measure; -DERIVE - actual_rotation_2 : plane_angle_measure - := - actual_rotation_1 * - SELF\pair_value.applies_to_pair\ - gear_pair.gear_ratio; -END_ENTITY; -(* USED FROM (presentation_appearance_schema); *) - 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; -(* USED FROM (presentation_appearance_schema); *) - ENTITY surface_style_control_grid - SUBTYPE OF (founded_item); - style_of_control_grid : curve_or_render; - END_ENTITY; -(* USED FROM (presentation_appearance_schema); *) - ENTITY surface_style_boundary - SUBTYPE OF (founded_item); - style_of_boundary : curve_or_render; - END_ENTITY; -(* USED FROM (presentation_appearance_schema); *) - ENTITY externally_defined_tile - SUBTYPE OF (externally_defined_item); - END_ENTITY; -(* USED FROM (presentation_appearance_schema); *) - ENTITY pre_defined_tile - SUBTYPE OF (pre_defined_item); - END_ENTITY; -(* USED FROM (aic_machining_feature); *) -ENTITY shape_defining_relationship - SUBTYPE OF (shape_aspect_relationship); -END_ENTITY; -(* USED FROM (presentation_appearance_schema); *) - ENTITY pre_defined_surface_side_style - SUBTYPE OF (pre_defined_item); - END_ENTITY; -(* USED FROM (presentation_appearance_schema); *) - 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('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CURVE' IN TYPEOF (closed_curve))) OR - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CIRCLE' IN TYPEOF (closed_curve)) OR - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ELLIPSE' IN TYPEOF (closed_curve)) OR - ( ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.B_SPLINE_CURVE' IN TYPEOF (closed_curve)) - AND (closed_curve\b_spline_curve.closed_curve = TRUE) ) OR - ( ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.COMPOSITE_CURVE' IN TYPEOF (closed_curve)) - AND (closed_curve\composite_curve.closed_curve = TRUE) ) OR - ( ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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; -(* USED FROM (presentation_appearance_schema); *) - ENTITY fill_area_style_tile_curve_with_style - SUBTYPE OF (geometric_representation_item); - styled_curve : annotation_curve_occurrence; - END_ENTITY; -(* USED FROM (presentation_resource_schema); *) -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; -(* USED FROM (presentation_resource_schema); *) -ENTITY colour_specification - SUBTYPE OF (colour); - name : label; -END_ENTITY; -(* USED FROM (presentation_resource_schema); *) -ENTITY colour; -END_ENTITY; -(* USED FROM (topology_schema); *) - 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; -(* USED FROM (topology_schema); *) - ENTITY subedge - SUBTYPE OF (edge); - parent_edge : edge; - END_ENTITY; -(* USED FROM (topology_schema); *) - ENTITY connected_face_sub_set - SUBTYPE OF (connected_face_set); - parent_face_set : connected_face_set; - END_ENTITY; -(* USED FROM (aic_machining_feature); *) -ENTITY transition_feature - SUPERTYPE OF (ONEOF ( - CHAMFER, - EDGE_ROUND, - FILLET)) - SUBTYPE OF (shape_aspect); - WHERE - WR1: SIZEOF(['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRODUCT_DEFINITION', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.COMPOUND_FEATURE'] - * TYPEOF(SELF.of_shape.definition)) = 1; - WR2: SIZEOF(['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CHAMFER', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.EDGE_ROUND', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FILLET'] * - TYPEOF(SELF)) = 1; -END_ENTITY; -- transition_feature -(* USED FROM (external_reference_schema); *) - ENTITY externally_defined_item_with_multiple_references - SUBTYPE OF (externally_defined_item); - references : LIST[1:?] OF UNIQUE source_item; - UNIQUE - UR1: references; - WHERE - WR1: NOT(SELF\externally_defined_item.item_id IN references); - END_ENTITY; -(* USED FROM (external_reference_schema); *) - ENTITY externally_defined_item_relationship; - name : label; - description : OPTIONAL text; - relating_item : externally_defined_item; - related_item : externally_defined_item; - END_ENTITY; -(* USED FROM (Value_with_unit_extension_mim); *) -ENTITY expression_conversion_based_unit - SUBTYPE OF (context_dependent_unit, variable_semantics); -INVERSE - associated_variable_environment: environment FOR semantics; -END_ENTITY; -(* USED FROM (Value_with_unit_extension_mim); *) -ENTITY dielectric_constant_measure_with_unit - SUBTYPE OF (ratio_measure_with_unit); -END_ENTITY; -(* USED FROM (Value_with_unit_extension_mim); *) -ENTITY loss_tangent_measure_with_unit - SUBTYPE OF (ratio_measure_with_unit); -END_ENTITY; -(* USED FROM (Value_with_unit_extension_mim); *) -ENTITY thermal_resistance_measure_with_unit - SUBTYPE OF (measure_with_unit); -WHERE - WR1: 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.THERMAL_RESISTANCE_UNIT' IN TYPEOF(SELF\measure_with_unit.unit_component); -END_ENTITY; -(* USED FROM (Composite_constituent_shape_mim); *) - ENTITY composite_sheet_representation - SUBTYPE OF (shape_representation); - WHERE - WR1: SIZEOF (['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + - 'GEOMETRICALLY_BOUNDED_SURFACE_SHAPE_REPRESENTATION', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + - 'MANIFOLD_SURFACE_SHAPE_REPRESENTATION'] * TYPEOF (SELF)) = 1; - END_ENTITY; -(* USED FROM (Value_with_unit_extension_mim); *) -ENTITY polar_complex_number_literal - SUBTYPE OF (generic_literal); - radius : REAL; - angle : REAL; -WHERE - WR1: radius >= 0; - WR2: { 0 <= angle < 2*PI }; -END_ENTITY; -(* USED FROM (assembly_constraint_schema); *) -ENTITY assembly_geometric_constraint - ABSTRACT SUPERTYPE OF (ONEOF ( - BINARY_ASSEMBLY_CONSTRAINT, - FIXED_CONSTITUENT_ASSEMBLY_CONSTRAINT)) - SUBTYPE OF (explicit_constraint); - -END_ENTITY;-- assembly_geometric_constraint -(* USED FROM (Composite_constituent_shape_mim); *) - ENTITY flat_pattern_ply_representation_relationship - SUBTYPE OF (shape_representation_relationship); - WHERE - WR1: 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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; -(* USED FROM (presentation_organization_schema); *) - ENTITY presented_item_representation; - presentation : presentation_representation_select; - item : presented_item; - END_ENTITY; -(* USED FROM (presentation_organization_schema); *) - ENTITY presentation_set; - INVERSE - areas : SET [1:?] OF area_in_set FOR in_set; - END_ENTITY; -(* USED FROM (assembly_constraint_schema); *) -ENTITY parallel_assembly_constraint_with_dimension - SUBTYPE OF (parallel_assembly_constraint, - pgc_with_dimension); -END_ENTITY;-- parallel_assembly_constraint_with_dimension -(* USED FROM (assembly_constraint_schema); *) -ENTITY surface_distance_assembly_constraint_with_dimension - SUBTYPE OF (binary_assembly_constraint, - sdgc_with_dimension); -END_ENTITY;-- surface_distance_assembly_constraint_with_dimension -(* USED FROM (assembly_constraint_schema); *) -ENTITY angle_assembly_constraint_with_dimension - SUBTYPE OF (binary_assembly_constraint, - agc_with_dimension); -END_ENTITY;-- angle_assembly_constraint_with_dimension -(* USED FROM (assembly_constraint_schema); *) -ENTITY perpendicular_assembly_constraint - SUBTYPE OF (binary_assembly_constraint, - perpendicular_geometric_constraint); -END_ENTITY;-- perpendicular_assembly_constraint -(* USED FROM (assembly_constraint_schema); *) -ENTITY incidence_assembly_constraint - SUBTYPE OF (binary_assembly_constraint, - incidence_geometric_constraint); -END_ENTITY;-- incidence_assembly_constraint -(* USED FROM (presentation_organization_schema); *) - ENTITY area_in_set; - area : presentation_area; - in_set : presentation_set; - END_ENTITY; -(* USED FROM (assembly_constraint_schema); *) -ENTITY tangent_assembly_constraint - SUBTYPE OF (binary_assembly_constraint, - tangent_geometric_constraint); -END_ENTITY;-- tangent_assembly_constraint -(* USED FROM (kinematic_analysis_control_and_result_schema); *) -ENTITY kinematic_control; - controlled_mechanism : mechanism_representation; - contained_kinematic_programs : kinematic_analysis_definition; -END_ENTITY; -(* USED FROM (kinematic_analysis_control_and_result_schema); *) -ENTITY prescribed_path - SUBTYPE OF (link_motion_representation_along_path); - controlling_joints : OPTIONAL SET [1 : 6] OF kinematic_joint; -END_ENTITY; -(* USED FROM (kinematic_analysis_control_and_result_schema); *) -ENTITY kinematic_analysis_result; - analysed_mechanism : mechanism_representation; -- LK - result : kinematic_result; -(* -WHERE -WR1: ('KINEMATIC_ANALYSIS_CONTROL_AND_RESULT_SCHEMA.RESULTING_PATH' IN TYPEOF (result)) - XOR - (SIZEOF (QUERY (result <* contained_kinematic_results | - (('KINEMATIC_ANALYSIS_CONTROL_AND_RESULT_SCHEMA.'+ - 'INTERPOLATED_CONFIGURATION_SEQUENCE' IN TYPEOF (result)) - AND - (SIZEOF (QUERY (sequence <* result\ - interpolated_configuration_sequence.interpolation | - (sequence.interpolation <> undefined ))) > 0)))) = 0); -*) -END_ENTITY; -(* USED FROM (kinematic_analysis_control_and_result_schema); *) -ENTITY kinematic_analysis_consistency; - control : kinematic_control; - result : kinematic_analysis_result; -WHERE - WR1: control.controlled_mechanism :=: result.analysed_mechanism; -END_ENTITY; -(* USED FROM (kinematic_analysis_control_and_result_schema); *) -ENTITY resulting_path - SUBTYPE OF (link_motion_representation_along_path); - controlling_joints : SET [1 : ?] OF kinematic_joint; -END_ENTITY; -(* USED FROM (shape_aspect_definition_schema); *) -ENTITY instanced_feature - SUBTYPE OF (feature_definition, shape_aspect); -WHERE - WR1: 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRODUCT_DEFINITION' IN TYPEOF (SELF.of_shape.definition); - WR2: SELF.product_definitional; -END_ENTITY; -(* USED FROM (Specification_control_mim); *) - ENTITY instance_usage_context_assignment - SUBTYPE OF (product_definition_context); - items : SET [1:?] OF instance_usage_context_select; - END_ENTITY; -(* USED FROM (action_schema); *) - ENTITY action_method_relationship; - name : label; - description : OPTIONAL text; - relating_method : action_method; - related_method : action_method; - END_ENTITY; -(* USED FROM (action_schema); *) - ENTITY action_resource; - name : label; - description : OPTIONAL text; - usage : SET [1:?] OF supported_item; - kind : action_resource_type; - END_ENTITY; -(* USED FROM (process_property_representation_schema); *) -ENTITY action_property_representation; - name : label; - description : text; - property : action_property; - representation : representation; -END_ENTITY; -(* USED FROM (process_property_representation_schema); *) -ENTITY resource_property_representation; - name : label; - description : text; - property : resource_property; - representation : representation; -END_ENTITY; -(* USED FROM (process_property_schema); *) -ENTITY action_property; - name : label; - description : text; - definition : characterized_action_definition; -END_ENTITY; -(* USED FROM (process_property_schema); *) -ENTITY action_resource_requirement; - name : label; - description : text; - kind : resource_requirement_type; - operations : SET [1:?] OF characterized_action_definition; -END_ENTITY; -(* USED FROM (process_property_schema); *) -ENTITY process_product_association; - name : label; - description : text; - defined_product : characterized_product_definition; - process : product_definition_process; -END_ENTITY; -(* USED FROM (process_property_schema); *) -ENTITY process_property_association; - name : label; - description : text; - process : property_process; - property_or_shape : property_or_shape_select; -END_ENTITY; -(* USED FROM (process_property_schema); *) -ENTITY product_definition_process - SUBTYPE OF (action); - identification : identifier; -INVERSE - product_definitions : SET [1:?] OF process_product_association FOR process; -END_ENTITY; -(* USED FROM (process_property_schema); *) -ENTITY property_process - SUBTYPE OF (action); - identification : identifier; -INVERSE - properties : SET [1:?] OF process_property_association FOR process; -END_ENTITY; -(* USED FROM (kinematic_state_schema); *) -ENTITY sliding_surface_pair_value - SUBTYPE OF (pair_value); - SELF\pair_value.applies_to_pair : sliding_surface_pair; - actual_point_on_surface_1 : point_on_surface; - actual_point_on_surface_2 : point_on_surface; - actual_rotation : plane_angle_measure; -WHERE - WR1: SELF\pair_value.applies_to_pair\surface_pair.surface_1 :=: - actual_point_on_surface_1.basis_surface; - WR2: SELF\pair_value.applies_to_pair\surface_pair.surface_2 :=: - actual_point_on_surface_2.basis_surface; -END_ENTITY; -(* USED FROM (procedural_shape_model_schema); *) -ENTITY user_selected_shape_elements - SUBTYPE OF (user_selected_elements); - SELF\user_selected_elements.picked_items : SET [1:?] OF shape_representation_item; -END_ENTITY; -(* USED FROM (process_property_schema); *) -ENTITY resource_requirement_type; - name : label; - description : text; -END_ENTITY; -(* USED FROM (Extended_basic_geometry_mim); *) - ENTITY geometric_model_element_relationship - SUBTYPE OF (geometric_representation_item, representation_item_relationship); - SELF\representation_item_relationship.relating_representation_item : geometric_representation_item; - SELF\representation_item_relationship.related_representation_item: geometric_representation_item; - UNIQUE - UR1: SELF\representation_item_relationship.relating_representation_item, - SELF\representation_item_relationship.related_representation_item; - WHERE - WR1: SELF\representation_item_relationship.relating_representation_item :<>: - SELF\representation_item_relationship.related_representation_item; - END_ENTITY; -(* USED FROM (geometric_model_schema); *) -ENTITY circular_area - SUBTYPE OF (primitive_2d); - centre : cartesian_point; - radius : positive_length_measure; -END_ENTITY; -(* USED FROM (geometric_model_schema); *) -ENTITY elliptic_area - SUBTYPE OF (primitive_2d); - position : axis2_placement_2d; - semi_axis_1 : positive_length_measure; - semi_axis_2 : positive_length_measure; -END_ENTITY; -(* USED FROM (geometric_model_schema); *) -ENTITY polygonal_area - SUBTYPE OF (primitive_2d); - bounds : LIST[3:?] OF UNIQUE cartesian_point; -END_ENTITY; -(* USED FROM (geometric_model_schema); *) -ENTITY primitive_2d - SUPERTYPE OF (ONEOF ( - CIRCULAR_AREA, - ELLIPTIC_AREA, - RECTANGULAR_AREA, - POLYGONAL_AREA, - HALF_SPACE_2D)) - SUBTYPE OF (geometric_representation_item); -WHERE - WR1: SELF\geometric_representation_item.dim = 2; -END_ENTITY; -(* USED FROM (geometric_model_schema); *) -ENTITY rectangular_area - SUBTYPE OF (primitive_2d); - position : axis2_placement_2d; - x : positive_length_measure; - y : positive_length_measure; -END_ENTITY; -(* USED FROM (geometric_model_schema); *) -ENTITY boolean_result - SUBTYPE OF (geometric_representation_item); - operator : boolean_operator; - first_operand : boolean_operand; - second_operand : boolean_operand; -END_ENTITY; -(* USED FROM (geometric_model_schema); *) -ENTITY csg_solid - SUBTYPE OF (solid_model); - tree_root_expression : csg_select; -END_ENTITY; -(* USED FROM (geometric_model_schema); *) -ENTITY half_space_2d - SUBTYPE OF (primitive_2d); - base_curve : curve; - agreement_flag : BOOLEAN; -END_ENTITY; -(* USED FROM (geometric_model_schema); *) -ENTITY area_with_outer_boundary - SUBTYPE OF (half_space_2d); - SELF\half_space_2d.base_curve : composite_curve; -WHERE - WR1: base_curve\composite_curve.closed_curve = TRUE; -END_ENTITY; -(* USED FROM (group_schema); *) - ENTITY group_relationship; - name : label; - description : OPTIONAL text; - relating_group : group; - related_group : group; - END_ENTITY; -(* USED FROM (solid_shape_element_schema); *) -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; -(* USED FROM (Production_rule_mim); *) -ENTITY atomic_formula - SUBTYPE OF (compound_representation_item); -END_ENTITY; -(* USED FROM (Production_rule_mim); *) -ENTITY attribute_assertion - SUBTYPE OF (fact_type, property_definition_representation, representation); -END_ENTITY; -(* USED FROM (Production_rule_mim); *) -ENTITY back_chaining_rule - SUBTYPE OF (rule_definition); -END_ENTITY; -(* USED FROM (Production_rule_mim); *) -ENTITY back_chaining_rule_body - SUBTYPE OF (property_definition, property_definition_representation, representation); -END_ENTITY; -(* USED FROM (solid_shape_element_schema); *) -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; -(* USED FROM (Production_rule_mim); *) -ENTITY complex_conjunctive_clause - SUBTYPE OF (complex_clause); -END_ENTITY; -(* USED FROM (Production_rule_mim); *) -ENTITY complex_disjunctive_clause - SUBTYPE OF (complex_clause); -END_ENTITY; -(* USED FROM (Production_rule_mim); *) -ENTITY entity_assertion - SUBTYPE OF (fact_type); -END_ENTITY; -(* USED FROM (Production_rule_mim); *) -ENTITY enum_reference_prefix - SUBTYPE OF (descriptive_representation_item); -END_ENTITY; -(* USED FROM (Production_rule_mim); *) -ENTITY extent - SUBTYPE OF (characterized_object); -END_ENTITY; -(* USED FROM (Production_rule_mim); *) -ENTITY fact_type - SUBTYPE OF (property_definition); -END_ENTITY; -(* USED FROM (Production_rule_mim); *) -ENTITY forward_chaining_rule - SUBTYPE OF (rule_definition); -END_ENTITY; -(* USED FROM (Production_rule_mim); *) -ENTITY forward_chaining_rule_premise - SUBTYPE OF (property_definition, property_definition_representation, representation); -END_ENTITY; -(* USED FROM (Production_rule_mim); *) -ENTITY func - SUBTYPE OF (compound_representation_item); -END_ENTITY; -(* USED FROM (Production_rule_mim); *) -ENTITY global_assignment - SUBTYPE OF (representation_item_relationship); -END_ENTITY; -(* USED FROM (Production_rule_mim); *) -ENTITY ground_fact - SUBTYPE OF (atomic_formula); -END_ENTITY; -(* USED FROM (Production_rule_mim); *) -ENTITY literal_conjunction - SUBTYPE OF (simple_clause); -END_ENTITY; -(* USED FROM (Production_rule_mim); *) -ENTITY literal_disjunction - SUBTYPE OF (simple_clause); -END_ENTITY; -(* USED FROM (Production_rule_mim); *) -ENTITY row_value - SUBTYPE OF (compound_representation_item); -END_ENTITY; -(* USED FROM (Production_rule_mim); *) -ENTITY row_variable - SUBTYPE OF (abstract_variable); -END_ENTITY; -(* USED FROM (Production_rule_mim); *) -ENTITY rule_action - SUBTYPE OF (action); -END_ENTITY; -(* USED FROM (Production_rule_mim); *) -ENTITY rule_condition - SUBTYPE OF (atomic_formula); -END_ENTITY; -(* USED FROM (solid_shape_element_schema); *) -ENTITY solid_with_general_protrusion - SUBTYPE OF (solid_with_protrusion); - profile : positioned_sketch; - reference_point : point; -WHERE - WR1: SIZEOF(['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CURVE_BOUNDED_SURFACE', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FACE_SURFACE'] * TYPEOF(profile.sketch_basis)) = 1; - WR2: profile IN using_items(reference_point,[]); -END_ENTITY; -(* USED FROM (Production_rule_mim); *) -ENTITY rule_superseded_assignment - SUBTYPE OF (action_assignment); - items : SET [1:?] OF rule_superseded_item; -END_ENTITY; -(* USED FROM (Production_rule_mim); *) -ENTITY rule_set - SUBTYPE OF (rule_software_definition); -END_ENTITY; -(* USED FROM (Production_rule_mim); *) -ENTITY rule_software_definition - SUBTYPE OF (product_definition); -END_ENTITY; -(* USED FROM (Production_rule_mim); *) -ENTITY rule_set_group -SUBTYPE OF (rule_software_definition); -END_ENTITY; -(* USED FROM (Production_rule_mim); *) -ENTITY rule_supersedence - SUBTYPE OF (rule_action); -END_ENTITY; -(* USED FROM (Production_rule_mim); *) -ENTITY scalar_variable - SUBTYPE OF (abstract_variable); -END_ENTITY; -(* USED FROM (Production_rule_mim); *) -ENTITY simple_clause - SUBTYPE OF (compound_representation_item); -END_ENTITY; -(* USED FROM (kinematic_property_schema); *) -ENTITY product_definition_relationship_kinematics - SUBTYPE OF (property_definition); - SELF\property_definition.definition : product_definition_relationship; -UNIQUE - UR1 : definition; -END_ENTITY; -(* USED FROM (kinematic_property_schema); *) -ENTITY context_dependent_kinematic_link_representation; - representation_relation : kinematic_link_representation_association; - represented_product_relation : product_definition_relationship_kinematics; -END_ENTITY; -(* USED FROM (Product_as_individual_mim); *) -ENTITY product_design_to_individual - SUBTYPE OF (product_relationship); - - (* removed : SELF\product_relationship.individual_product : PRODUCT *) - - (* removed : SELF\product_relationship.product_design : PRODUCT *) - DERIVE - individual_product : PRODUCT := SELF\product_relationship.related_product; -- RELATED_PRODUCT : This ATTRIBUTE was RENAMED in the EXPRESS E2 source, this is the new name implemented as DERIVE - product_design : PRODUCT := SELF\product_relationship.relating_product; -- RELATING_PRODUCT : This ATTRIBUTE was RENAMED in the EXPRESS E2 source, this is the new name implemented as DERIVE - -END_ENTITY; -(* USED FROM (Product_as_individual_mim); *) -ENTITY product_planned_to_realized - SUBTYPE OF (product_definition_formation_relationship); - - (* removed : SELF\product_definition_formation_relationship.planned_product : PRODUCT_DEFINITION_FORMATION *) - - (* removed : SELF\product_definition_formation_relationship.realized_product : PRODUCT_DEFINITION_FORMATION *) - DERIVE - planned_product : PRODUCT_DEFINITION_FORMATION := SELF\product_definition_formation_relationship.relating_product_definition_formation; -- RELATING_PRODUCT_DEFINITION_FORMATION : This ATTRIBUTE was RENAMED in the EXPRESS E2 source, this is the new name implemented as DERIVE - realized_product : PRODUCT_DEFINITION_FORMATION := SELF\product_definition_formation_relationship.related_product_definition_formation; -- RELATED_PRODUCT_DEFINITION_FORMATION : This ATTRIBUTE was RENAMED in the EXPRESS E2 source, this is the new name implemented as DERIVE - -END_ENTITY; -(* USED FROM (Product_as_individual_mim); *) -ENTITY product_as_planned - SUBTYPE OF (product_definition_formation); -END_ENTITY; -(* USED FROM (solid_shape_element_schema); *) -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; -(* USED FROM (Configuration_item_mim); *) -ENTITY configuration_item_revision_sequence - SUBTYPE OF (configuration_item_relationship); -END_ENTITY; -(* USED FROM (configuration_management_schema); *) -ENTITY configuration_design; - configuration : configuration_item; - design : configuration_design_item; -DERIVE - name : label := get_name_value (SELF); - description : text := get_description_value (SELF); -UNIQUE - UR1: configuration, design; -WHERE - WR1: SIZEOF (USEDIN (SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + - 'NAME_ATTRIBUTE.NAMED_ITEM')) <= 1; - WR2: SIZEOF (USEDIN (SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + - 'DESCRIPTION_ATTRIBUTE.DESCRIBED_ITEM')) <= 1; -END_ENTITY; -(* USED FROM (configuration_management_schema); *) -ENTITY configuration_item; - id : identifier; - name : label; - description : OPTIONAL text; - item_concept : product_concept; - purpose : OPTIONAL label; -END_ENTITY; -(* USED FROM (configuration_management_schema); *) -ENTITY configuration_item_relationship; - name : label; - description : OPTIONAL text; - relating_configuration_item : configuration_item; - related_configuration_item : configuration_item; -END_ENTITY; -(* USED FROM (product_property_definition_schema); *) - ENTITY characterized_object; - name : label; - description : OPTIONAL text; - END_ENTITY; -(* USED FROM (material_property_definition_schema); *) -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; -(* USED FROM (product_structure_schema); *) -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; -(* USED FROM (solid_shape_element_schema); *) -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 (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SOLID_WITH_THROUGH_DEPRESSION' - IN TYPEOF(SELF)) AND (SIZEOF(TYPEOF(SELF) * - ['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SOLID_WITH_FLAT_BOTTOM_ROUND_HOLE', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SOLID_WITH_SPHERICAL_BOTTOM_ROUND_HOLE', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SOLID_WITH_FLAT_BOTTOM_ROUND_HOLE']) - <> 0)); -END_ENTITY; -(* USED FROM (presentation_definition_schema); *) - ENTITY symbol_representation - SUBTYPE OF (representation); - END_ENTITY; -(* USED FROM (aic_curve_swept_solid); *) - ENTITY ruled_surface_swept_area_solid - SUBTYPE OF(surface_curve_swept_area_solid); - WHERE - WR1: ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.B_SPLINE_SURFACE' IN TYPEOF(SELF.reference_surface)) AND - (SELF.reference_surface\b_spline_surface.u_degree = 1); - WR2: ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PCURVE' IN TYPEOF(SELF.directrix)) OR - (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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; -(* USED FROM (Classification_with_attributes_mim); *) -ENTITY characterized_class -SUBTYPE OF (characterized_object, class); -END_ENTITY; -(* USED FROM (Classification_with_attributes_mim); *) -ENTITY class_system -SUBTYPE OF (group); -END_ENTITY; -(* USED FROM (solid_shape_element_schema); *) -ENTITY solid_with_straight_slot - SUBTYPE OF (solid_with_slot); - slot_length : positive_length_measure; -END_ENTITY; -(* USED FROM (Plib_class_reference_mim); *) - ENTITY known_source - SUBTYPE OF (external_source, pre_defined_item); - END_ENTITY; -(* USED FROM (management_resources_schema); *) - ENTITY classification_role; - name : label; - description : OPTIONAL text; - END_ENTITY; -(* USED FROM (Information_rights_mim); *) -ENTITY applied_usage_right - SUBTYPE OF (applied_action_assignment); - SELF\applied_action_assignment.items : SET[1:?] OF ir_usage_item; -END_ENTITY; -(* USED FROM (Information_rights_mim); *) -ENTITY information_right - SUBTYPE OF (action_method); -END_ENTITY; -(* USED FROM (Information_rights_mim); *) -ENTITY information_usage_right - SUBTYPE OF (action_method); -END_ENTITY; -(* USED FROM (Information_rights_mim); *) -ENTITY right_to_usage_association - SUBTYPE OF (action_method_relationship); - SELF\action_method_relationship.relating_method : information_usage_right; -- right_usage : This ATTRIBUTE was RENAMED in the EXPRESS E2 source, an attribute with the new name is in the DERIVE clause - SELF\action_method_relationship.related_method : information_right; -- right_applied : This ATTRIBUTE was RENAMED in the EXPRESS E2 source, an attribute with the new name is in the DERIVE clause - DERIVE - right_applied : INFORMATION_RIGHT := SELF\action_method_relationship.related_method; -- RELATED_METHOD : This ATTRIBUTE was RENAMED in the EXPRESS E2 source, this is the new name implemented as DERIVE - right_usage : INFORMATION_USAGE_RIGHT := SELF\action_method_relationship.relating_method; -- RELATING_METHOD : This ATTRIBUTE was RENAMED in the EXPRESS E2 source, this is the new name implemented as DERIVE - -END_ENTITY; -(* USED FROM (solid_shape_element_schema); *) -ENTITY solid_with_variable_radius_edge_blend - SUBTYPE OF (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; -(* USED FROM (Activity_method_assignment_mim); *) -ENTITY applied_action_method_assignment - SUBTYPE OF (action_method_assignment); - items : SET[1:?] OF action_method_items; -END_ENTITY; -(* USED FROM (management_resources_schema); *) - ENTITY action_method_assignment - ABSTRACT SUPERTYPE; - assigned_action_method : action_method; - role : action_method_role; - END_ENTITY; -(* USED FROM (Attribute_classification_mim); *) -ENTITY applied_attribute_classification_assignment - SUBTYPE OF (attribute_classification_assignment); - SELF\attribute_classification_assignment.assigned_class : class; - items : SET[1:?] OF attribute_classification_item; -END_ENTITY; -(* USED FROM (management_resources_schema); *) - ENTITY attribute_classification_assignment - ABSTRACT SUPERTYPE; - assigned_class : group; - attribute_name : label; - role : classification_role; - END_ENTITY; -(* USED FROM (contract_schema); *) - ENTITY contract_type; - description : label; - END_ENTITY; -(* USED FROM (document_schema); *) - ENTITY document_type; - product_data_type : label; - END_ENTITY; -(* USED FROM (solid_shape_element_schema); *) -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) * - ['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SOLID_WITH_CONSTANT_RADIUS_EDGE_BLEND', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SOLID_WITH_VARIABLE_RADIUS_EDGE_BLEND', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SOLID_WITH_CHAMFERED_EDGES']) = 1; - WR2: NOT (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.VERTEX' IN TYPEOF(end_conditions[1])) - AND ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.VERTEX' IN TYPEOF(end_conditions[2]))); - WR3: NOT (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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; -(* USED FROM (product_definition_schema); *) - ENTITY product_definition_formation_with_specified_source - SUBTYPE OF (product_definition_formation); - make_or_buy : source; - END_ENTITY; -(* USED FROM (Associative_draughting_elements_mim); *) -ENTITY draughting_model_item_association - SUBTYPE OF(item_identified_representation_usage); - SELF\item_identified_representation_usage.definition : draughting_model_item_definition; - SELF\item_identified_representation_usage.used_representation : annotation_representation_select; - SELF\item_identified_representation_usage.identified_item : draughting_model_item_association_select; -END_ENTITY; -(* USED FROM (aic_associative_draughting_elements); *) - ENTITY annotation_occurrence_associativity - SUBTYPE OF (annotation_occurrence_relationship); - WHERE - WR1: SIZEOF (TYPEOF (SELF.related_annotation_occurrence) * - ['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ANNOTATION_FILL_AREA_OCCURRENCE', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROJECTION_CURVE', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LEADER_CURVE']) = 1; - END_ENTITY; -(* USED FROM (material_property_definition_schema); *) -ENTITY material_designation_characterization; - name : label; - description : text; - designation : material_designation; - property : characterized_material_property; -END_ENTITY; -(* USED FROM (presentation_definition_schema); *) - ENTITY defined_symbol - SUBTYPE OF(geometric_representation_item); - definition : defined_symbol_select; - target : symbol_target; - END_ENTITY; -(* USED FROM (aic_associative_draughting_elements); *) - 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; -(* USED FROM (presentation_definition_schema); *) - ENTITY composite_text_with_associated_curves - SUBTYPE OF (composite_text); - associated_curves : SET[1:?] of curve; - END_ENTITY; -(* USED FROM (Draughting_annotation_mim); *) - 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; -(* USED FROM (Draughting_annotation_mim); *) - 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; -(* USED FROM (Draughting_annotation_mim); *) - 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; -(* USED FROM (material_property_representation_schema); *) -ENTITY data_environment; - name : label; - description : text; - elements : SET [1:?] OF property_definition_representation; -END_ENTITY; -(* USED FROM (presentation_appearance_schema); *) - ENTITY symbol_style - SUBTYPE OF (founded_item); - name : label; - style_of_symbol : symbol_style_select; - END_ENTITY; -(* USED FROM (Construction_geometry_mim); *) - 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 ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.GEOMETRIC_REPRESENTATION_CONTEXT' IN TYPEOF(SELF.rep_1.context_of_items)); - WR2: NOT('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'REPRESENTATION_RELATIONSHIP_WITH_TRANSFORMATION' IN TYPEOF(SELF)); - END_ENTITY; -(* USED FROM (presentation_appearance_schema); *) - ENTITY symbol_colour; - colour_of_symbol : colour; - END_ENTITY; -(* USED FROM (presentation_appearance_schema); *) - 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; -(* USED FROM (presentation_appearance_schema); *) - ENTITY fill_area_style_tile_symbol_with_style - SUBTYPE OF (geometric_representation_item); - symbol : annotation_symbol_occurrence; - END_ENTITY; -(* USED FROM (geometry_schema); *) -ENTITY degenerate_pcurve - SUBTYPE OF (point); - basis_surface : surface; - reference_to_curve : definitional_representation; -WHERE - WR1: SIZEOF(reference_to_curve\representation.items) = 1; - WR2: 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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; -(* USED FROM (geometry_schema); *) -ENTITY offset_curve_2d - SUBTYPE OF (curve); - basis_curve : curve; - distance : length_measure; - self_intersect : LOGICAL; -WHERE - WR1: basis_curve.dim = 2; -END_ENTITY; -(* USED FROM (geometry_schema); *) -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; -(* USED FROM (kinematic_structure_schema); *) -ENTITY rolling_curve_pair - SUBTYPE OF (planar_curve_pair); -END_ENTITY; -(* USED FROM (application_context_schema); *) -(* Pruned SUPERTYPE *) - ENTITY application_context_element - SUPERTYPE OF (ONEOF ( - PRODUCT_CONCEPT_CONTEXT, - PRODUCT_CONTEXT, - PRODUCT_DEFINITION_CONTEXT)); - name : label; - frame_of_reference : application_context; - END_ENTITY; -(* USED FROM (material_property_representation_schema); *) -ENTITY material_property_representation - SUBTYPE OF (property_definition_representation); - dependent_environment : data_environment; -END_ENTITY; -(* USED FROM (geometry_schema); *) -ENTITY polyline - SUBTYPE OF (bounded_curve); - points : LIST[2:?] OF cartesian_point; -END_ENTITY; -(* USED FROM (geometry_schema); *) -ENTITY spherical_surface - SUBTYPE OF (elementary_surface); - radius : positive_length_measure; -END_ENTITY; -(* USED FROM (presentation_appearance_schema); *) - ENTITY character_glyph_style_stroke - SUBTYPE OF (founded_item); - stroke_style : curve_style; - END_ENTITY; -(* USED FROM (shape_aspect_definition_schema); *) -ENTITY apex - SUBTYPE OF (derived_shape_aspect); -END_ENTITY; -(* USED FROM (shape_aspect_definition_schema); *) -ENTITY centre_of_symmetry - SUBTYPE OF (derived_shape_aspect); -END_ENTITY; -(* USED FROM (shape_aspect_definition_schema); *) -ENTITY derived_shape_aspect - SUPERTYPE OF (ONEOF ( - APEX, - CENTRE_OF_SYMMETRY, - GEOMETRIC_ALIGNMENT, - GEOMETRIC_CONTACT, - GEOMETRIC_INTERSECTION, - PARALLEL_OFFSET, - PERPENDICULAR_TO, - EXTENSION, - TANGENT)) - SUBTYPE OF (shape_aspect); -INVERSE - deriving_relationships : SET[1:?] OF shape_aspect_deriving_relationship FOR relating_shape_aspect; -END_ENTITY; -(* USED FROM (shape_aspect_definition_schema); *) -ENTITY extension - SUBTYPE OF (derived_shape_aspect); -WHERE - WR1: SIZEOF (SELF\derived_shape_aspect.deriving_relationships)= 1; -END_ENTITY; -(* USED FROM (shape_aspect_definition_schema); *) -ENTITY geometric_alignment - SUBTYPE OF (derived_shape_aspect); -WHERE - WR1: SIZEOF (SELF\derived_shape_aspect.deriving_relationships)> 1; -END_ENTITY; -(* USED FROM (shape_aspect_definition_schema); *) -ENTITY geometric_intersection - SUBTYPE OF (derived_shape_aspect); -WHERE - WR1: SIZEOF (SELF\derived_shape_aspect.deriving_relationships)> 1; -END_ENTITY; -(* USED FROM (shape_aspect_definition_schema); *) -ENTITY parallel_offset - SUBTYPE OF (derived_shape_aspect); - offset : measure_with_unit; -WHERE - WR1: SIZEOF (SELF\derived_shape_aspect.deriving_relationships)= 1; -END_ENTITY; -(* USED FROM (shape_aspect_definition_schema); *) -ENTITY perpendicular_to - SUBTYPE OF (derived_shape_aspect); -WHERE - WR1: SIZEOF (SELF\derived_shape_aspect.deriving_relationships)= 1; -END_ENTITY; -(* USED FROM (shape_aspect_definition_schema); *) -ENTITY shape_aspect_deriving_relationship - SUBTYPE OF (shape_aspect_relationship); - SELF\shape_aspect_relationship.relating_shape_aspect : derived_shape_aspect; -END_ENTITY; -(* USED FROM (shape_aspect_definition_schema); *) -ENTITY tangent - SUBTYPE OF (derived_shape_aspect); -WHERE - WR1: SIZEOF (SELF\derived_shape_aspect.deriving_relationships)= 1; -END_ENTITY; -(* USED FROM (shape_aspect_definition_schema); *) -ENTITY dimensional_location_with_datum_feature - SUBTYPE OF (datum_feature, dimensional_location); -END_ENTITY; -(* USED FROM (shape_aspect_definition_schema); *) -ENTITY dimensional_size_with_datum_feature - SUBTYPE OF (datum_feature, dimensional_size); -END_ENTITY; -(* USED FROM (shape_dimension_schema); *) -ENTITY angular_location - SUBTYPE OF (dimensional_location); - angle_selection : angle_relator; -END_ENTITY; -(* USED FROM (shape_dimension_schema); *) -ENTITY angular_size - SUBTYPE OF (dimensional_size); - angle_selection : angle_relator; -END_ENTITY; -(* USED FROM (shape_dimension_schema); *) -ENTITY dimensional_characteristic_representation; - dimension : dimensional_characteristic; - representation : shape_dimension_representation; -END_ENTITY; -(* USED FROM (shape_dimension_schema); *) -ENTITY dimensional_location - SUPERTYPE OF (ONEOF ( - ANGULAR_LOCATION, - DIMENSIONAL_LOCATION_WITH_PATH)) - SUBTYPE OF (shape_aspect_relationship); -WHERE - WR1: SELF\shape_aspect_relationship.relating_shape_aspect :<>: SELF\shape_aspect_relationship.related_shape_aspect; - WR2: SELF\shape_aspect_relationship.relating_shape_aspect.of_shape :=: SELF\shape_aspect_relationship.related_shape_aspect.of_shape; -END_ENTITY; -(* USED FROM (shape_dimension_schema); *) -ENTITY dimensional_location_with_path - SUBTYPE OF (dimensional_location); - path : shape_aspect; -END_ENTITY; -(* USED FROM (shape_dimension_schema); *) -ENTITY dimensional_size - SUPERTYPE OF (ONEOF ( - ANGULAR_SIZE, - DIMENSIONAL_SIZE_WITH_PATH)); - applies_to : shape_aspect; - name : label; -DERIVE - id : identifier := get_id_value(SELF); -UNIQUE - UR1: id, applies_to; -WHERE - WR1: applies_to.product_definitional = TRUE; - WR2: SIZEOF(USEDIN(SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'ID_ATTRIBUTE.IDENTIFIED_ITEM')) <= 1; -END_ENTITY; -(* USED FROM (shape_dimension_schema); *) -ENTITY dimensional_size_with_path - SUBTYPE OF (dimensional_size); - path : shape_aspect; -END_ENTITY; -(* USED FROM (shape_dimension_schema); *) -ENTITY directed_dimensional_location - SUBTYPE OF (dimensional_location); -END_ENTITY; -(* USED FROM (shape_dimension_schema); *) -ENTITY shape_dimension_representation - SUBTYPE OF (shape_representation); - SELF\representation.items : SET[1:?] OF shape_dimension_representation_item; -END_ENTITY; -(* USED FROM (shape_tolerance_schema); *) -ENTITY limits_and_fits; - form_variance : label; - zone_variance : label; - grade : label; - source : text; -END_ENTITY; -(* USED FROM (shape_tolerance_schema); *) -ENTITY plus_minus_tolerance; - range : tolerance_method_definition; - toleranced_dimension : dimensional_characteristic; -UNIQUE - UR1: toleranced_dimension; -END_ENTITY; -(* USED FROM (shape_tolerance_schema); *) -ENTITY tolerance_value; - lower_bound : measure_with_unit; - upper_bound : measure_with_unit; -DERIVE - ubvc : REAL := upper_bound\measure_with_unit.value_component; - lbvc : REAL := lower_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; -(* USED FROM (draughting_element_schema); *) - ENTITY dimension_curve_terminator - SUBTYPE OF (terminator_symbol); - role : dimension_extent_usage; - WHERE - WR1: 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.DIMENSION_CURVE' IN TYPEOF - (SELF\terminator_symbol.annotated_curve); - END_ENTITY; -(* USED FROM (draughting_element_schema); *) - ENTITY terminator_symbol - SUBTYPE OF (annotation_symbol_occurrence); - annotated_curve : annotation_curve_occurrence; - END_ENTITY; -(* USED FROM (presentation_definition_schema); *) - ENTITY text_literal_with_blanking_box - SUBTYPE OF (text_literal); - blanking : planar_box; - END_ENTITY; -(* USED FROM (presentation_resource_schema); *) -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; -(* USED FROM (presentation_appearance_schema); *) - ENTITY externally_defined_curve_font - SUBTYPE OF (externally_defined_item); - END_ENTITY; -(* USED FROM (presentation_appearance_schema); *) - ENTITY context_dependent_invisibility - SUBTYPE OF (invisibility); - presentation_context : invisibility_context; - END_ENTITY; -(* USED FROM (aic_draughting_annotation); *) -ENTITY draughting_text_literal_with_delineation - SUBTYPE OF (text_literal_with_delineation); -WHERE - WR1: SELF.delineation IN ['underline', 'overline']; -END_ENTITY; -(* USED FROM (presentation_definition_schema); *) - ENTITY annotation_symbol_occurrence - SUBTYPE OF (annotation_occurrence); - SELF\styled_item.item : annotation_symbol_occurrence_item; - END_ENTITY; -(* USED FROM (presentation_definition_schema); *) - ENTITY pre_defined_symbol - SUBTYPE OF (pre_defined_item); - END_ENTITY; -(* USED FROM (Presentation_hierarchy_mim); *) - ENTITY applied_presented_item - SUBTYPE OF (presented_item); - items : SET[1:?] OF presented_item_select; - END_ENTITY; -(* USED FROM (drawing_definition_schema); *) -ENTITY drawing_definition; - drawing_number : identifier; - drawing_type : OPTIONAL label; -END_ENTITY; -(* USED FROM (drawing_definition_schema); *) -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; -(* USED FROM (drawing_definition_schema); *) -ENTITY drawing_revision_sequence; - predecessor : drawing_revision; - successor : drawing_revision; -WHERE - WR1: predecessor :<>: successor; -END_ENTITY; -(* USED FROM (presentation_resource_schema); *) -ENTITY pre_defined_colour - SUBTYPE OF (pre_defined_item, colour); -END_ENTITY; -(* USED FROM (drawing_definition_schema); *) -ENTITY drawing_sheet_revision_sequence - SUBTYPE OF (representation_relationship); -WHERE - WR1: SELF\representation_relationship.rep_1 :<>: - SELF\representation_relationship.rep_2; - WR2: 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.DRAWING_SHEET_REVISION' - IN TYPEOF (SELF\representation_relationship.rep_1); - WR3: 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.DRAWING_SHEET_REVISION' - IN TYPEOF (SELF\representation_relationship.rep_2); -END_ENTITY; -(* USED FROM (drawing_definition_schema); *) -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: ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.DRAWING_SHEET_REVISION' IN - TYPEOF(SELF\area_in_set.area)) - AND - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.DRAWING_REVISION' - IN TYPEOF (SELF\area_in_set.in_set)); -END_ENTITY; -(* USED FROM (drawing_definition_schema); *) -ENTITY draughting_title; - items : SET [1:?] OF draughting_titled_item; - language : label; - contents : text; -END_ENTITY; -(* USED FROM (presentation_resource_schema); *) -ENTITY pre_defined_text_font - SUBTYPE OF (pre_defined_item); -END_ENTITY; -(* USED FROM (aic_draughting_elements); *) -ENTITY ordinate_dimension - SUBTYPE OF (projection_directed_callout); -END_ENTITY; -(* USED FROM (Currency_mim); *) - 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; -(* USED FROM (Currency_mim); *) - ENTITY currency_measure_with_unit - SUBTYPE OF (measure_with_unit); - SELF\measure_with_unit.unit_component : currency; - END_ENTITY; -(* USED FROM (Currency_mim); *) - ENTITY iso4217_currency - SUBTYPE OF (currency); - END_ENTITY; -(* USED FROM (measure_schema); *) -ENTITY absorbed_dose_measure_with_unit - SUBTYPE OF (measure_with_unit); -WHERE - WR1: 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ABSORBED_DOSE_UNIT' IN TYPEOF(SELF\measure_with_unit.unit_component); -END_ENTITY; -(* USED FROM (presentation_definition_schema); *) - ENTITY annotation_text_occurrence - SUBTYPE OF (annotation_occurrence); - SELF\styled_item.item : annotation_text_occurrence_item; - END_ENTITY; -(* USED FROM (measure_schema); *) - 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; -(* USED FROM (measure_schema); *) - ENTITY acceleration_measure_with_unit - SUBTYPE OF (measure_with_unit); - WHERE - WR1: 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ACCELERATION_UNIT' IN TYPEOF (SELF\measure_with_unit.unit_component); - END_ENTITY; -(* USED FROM (measure_schema); *) - 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; -(* USED FROM (measure_schema); *) -ENTITY radioactivity_measure_with_unit - SUBTYPE OF (measure_with_unit); -WHERE - WR1: 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.RADIOACTIVITY_UNIT' IN TYPEOF(SELF\measure_with_unit.unit_component); -END_ENTITY; -(* USED FROM (measure_schema); *) -ENTITY radioactivity_unit - SUBTYPE OF (derived_unit); -WHERE - WR1: derive_dimensional_exponents(SELF) = dimensions_for_si_unit (si_unit_name.becquerel); -END_ENTITY; -(* USED FROM (measure_schema); *) - 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; -(* USED FROM (measure_schema); *) - ENTITY amount_of_substance_measure_with_unit - SUBTYPE OF (measure_with_unit); - WHERE - WR1: 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.AMOUNT_OF_SUBSTANCE_UNIT' IN TYPEOF(SELF\measure_with_unit.unit_component); - END_ENTITY; -(* USED FROM (measure_schema); *) - 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; -(* USED FROM (measure_schema); *) - ENTITY area_measure_with_unit - SUBTYPE OF (measure_with_unit); - WHERE - WR1: 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.AREA_UNIT' IN TYPEOF(SELF\measure_with_unit.unit_component); - END_ENTITY; -(* USED FROM (measure_schema); *) - 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; -(* USED FROM (measure_schema); *) - ENTITY celsius_temperature_measure_with_unit - SUBTYPE OF (measure_with_unit); - WHERE - WR1: 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.THERMODYNAMIC_TEMPERATURE_UNIT' IN TYPEOF(SELF\measure_with_unit.unit_component); - END_ENTITY; -(* USED FROM (measure_schema); *) - ENTITY context_dependent_unit - SUBTYPE OF (named_unit); - name : label; - END_ENTITY; -(* USED FROM (measure_schema); *) - 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; -(* USED FROM (measure_schema); *) - 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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'NAME_ATTRIBUTE.NAMED_ITEM')) <= 1; - END_ENTITY; -(* USED FROM (measure_schema); *) - ENTITY derived_unit_element; - unit : named_unit; - exponent : REAL; - END_ENTITY; -(* USED FROM (measure_schema); *) - 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; -(* USED FROM (measure_schema); *) - ENTITY capacitance_unit - SUBTYPE OF(derived_unit); - WHERE - WR1: derive_dimensional_exponents(SELF) = dimensions_for_si_unit (si_unit_name.farad); - END_ENTITY; -(* USED FROM (measure_schema); *) - ENTITY capacitance_measure_with_unit - SUBTYPE OF (measure_with_unit); - WHERE - WR1: 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CAPACITANCE_UNIT' IN TYPEOF(SELF\measure_with_unit.unit_component); - END_ENTITY; -(* USED FROM (presentation_resource_schema); *) -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: 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.POSITIVE_LENGTH_MEASURE' - IN TYPEOF (SELF.box_height); -END_ENTITY; -(* USED FROM (measure_schema); *) -ENTITY dose_equivalent_measure_with_unit - SUBTYPE OF (measure_with_unit); -WHERE - WR1: 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.DOSE_EQUIVALENT_UNIT' IN TYPEOF(SELF\measure_with_unit.unit_component); -END_ENTITY; -(* USED FROM (measure_schema); *) -ENTITY dose_equivalent_unit - SUBTYPE OF (derived_unit); -WHERE - WR1: derive_dimensional_exponents(SELF) = dimensions_for_si_unit (si_unit_name.sievert); -END_ENTITY; -(* USED FROM (measure_schema); *) - 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; -(* USED FROM (measure_schema); *) - ENTITY electric_charge_unit - SUBTYPE OF(derived_unit); - WHERE - WR1: derive_dimensional_exponents(SELF) = dimensions_for_si_unit (si_unit_name.coulomb); - END_ENTITY; -(* USED FROM (measure_schema); *) - ENTITY electric_charge_measure_with_unit - SUBTYPE OF (measure_with_unit); - WHERE - WR1: 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ELECTRIC_CHARGE_UNIT' IN TYPEOF(SELF\measure_with_unit.unit_component); - END_ENTITY; -(* USED FROM (measure_schema); *) - 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; -(* USED FROM (measure_schema); *) - ENTITY electric_current_measure_with_unit - SUBTYPE OF (measure_with_unit); - WHERE - WR1: 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ELECTRIC_CURRENT_UNIT' IN TYPEOF(SELF\measure_with_unit.unit_component); - END_ENTITY; -(* USED FROM (measure_schema); *) - 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; -(* USED FROM (measure_schema); *) - ENTITY conductance_unit - SUBTYPE OF(derived_unit); - WHERE - WR1: derive_dimensional_exponents(SELF) = dimensions_for_si_unit (si_unit_name.siemens); - END_ENTITY; -(* USED FROM (measure_schema); *) - ENTITY conductance_measure_with_unit - SUBTYPE OF (measure_with_unit); - WHERE - WR1: 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CONDUCTANCE_UNIT' IN TYPEOF(SELF\measure_with_unit.unit_component); - END_ENTITY; -(* USED FROM (measure_schema); *) - 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; -(* USED FROM (measure_schema); *) - ENTITY electric_potential_unit - SUBTYPE OF(derived_unit); - WHERE - WR1: derive_dimensional_exponents(SELF) = dimensions_for_si_unit (si_unit_name.volt); - END_ENTITY; -(* USED FROM (solid_shape_element_schema); *) -ENTITY thickened_face_solid - SUBTYPE OF (solid_model); - base_element : generalized_surface_select; - offset1 : length_measure; - offset2 : length_measure; -WHERE - WR1: NOT (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SURFACE' IN TYPEOF(base_element)) AND - (NOT ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.BOUNDED_SURFACE' IN TYPEOF(base_element)))); - WR2: offset1 <> offset2; -END_ENTITY; -(* USED FROM (measure_schema); *) - 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; -(* USED FROM (presentation_resource_schema); *) -ENTITY text_font_in_family; - font : text_font; - family : text_font_family; -END_ENTITY; -(* USED FROM (measure_schema); *) - ENTITY energy_measure_with_unit - SUBTYPE OF (measure_with_unit); - WHERE - WR1: 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ENERGY_UNIT' IN TYPEOF(SELF\measure_with_unit.unit_component); - END_ENTITY; -(* USED FROM (kinematic_structure_schema); *) -ENTITY rolling_surface_pair - SUBTYPE OF (surface_pair); -END_ENTITY; -(* USED FROM (measure_schema); *) - 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; -(* USED FROM (measure_schema); *) - ENTITY magnetic_flux_density_measure_with_unit - SUBTYPE OF (measure_with_unit); - WHERE - WR1: 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MAGNETIC_FLUX_DENSITY_UNIT' IN TYPEOF(SELF\measure_with_unit.unit_component); - END_ENTITY; -(* USED FROM (kinematic_structure_schema); *) -ENTITY sliding_curve_pair - SUBTYPE OF (planar_curve_pair); -END_ENTITY; -(* USED FROM (measure_schema); *) - ENTITY force_unit - SUBTYPE OF(derived_unit); - WHERE - WR1: derive_dimensional_exponents(SELF) = dimensions_for_si_unit (si_unit_name.newton); - END_ENTITY; -(* USED FROM (measure_schema); *) - ENTITY force_measure_with_unit - SUBTYPE OF (measure_with_unit); - WHERE - WR1: 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FORCE_UNIT' IN TYPEOF(SELF\measure_with_unit.unit_component); - END_ENTITY; -(* USED FROM (measure_schema); *) - 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; -(* USED FROM (measure_schema); *) - ENTITY frequency_unit - SUBTYPE OF(derived_unit); - WHERE - WR1: derive_dimensional_exponents(SELF) = dimensions_for_si_unit (si_unit_name.hertz); - END_ENTITY; -(* USED FROM (measure_schema); *) - ENTITY frequency_measure_with_unit - SUBTYPE OF (measure_with_unit); - WHERE - WR1: 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FREQUENCY_UNIT' IN TYPEOF(SELF\measure_with_unit.unit_component); - END_ENTITY; -(* USED FROM (kinematic_structure_schema); *) -ENTITY planar_pair_with_range - SUBTYPE OF (planar_pair); - lower_limit_actual_rotation : OPTIONAL plane_angle_measure; - upper_limit_actual_rotation : OPTIONAL plane_angle_measure; - lower_limit_actual_translation_x : OPTIONAL length_measure; - upper_limit_actual_translation_x : OPTIONAL length_measure; - lower_limit_actual_translation_y : OPTIONAL length_measure; - upper_limit_actual_translation_y : OPTIONAL length_measure; -WHERE - WR1: (NOT EXISTS(lower_limit_actual_rotation) - OR - NOT EXISTS(upper_limit_actual_rotation)) - XOR - (lower_limit_actual_rotation < upper_limit_actual_rotation); - WR2: (NOT EXISTS(lower_limit_actual_translation_x) - OR - NOT EXISTS(upper_limit_actual_translation_x)) - XOR - (lower_limit_actual_translation_x < upper_limit_actual_translation_x); - WR3: (NOT EXISTS(lower_limit_actual_translation_y) - OR - NOT EXISTS(upper_limit_actual_translation_y)) - XOR - (lower_limit_actual_translation_y < upper_limit_actual_translation_y); -END_ENTITY; -(* USED FROM (Basic_data_representation_mim); *) - ENTITY integer_representation_item - SUBTYPE OF (representation_item, int_literal); - END_ENTITY; -(* USED FROM (measure_schema); *) - ENTITY illuminance_measure_with_unit - SUBTYPE OF (measure_with_unit); - WHERE - WR1: 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ILLUMINANCE_UNIT' IN TYPEOF(SELF\measure_with_unit.unit_component); - END_ENTITY; -(* USED FROM (kinematic_structure_schema); *) -ENTITY sliding_surface_pair - SUBTYPE OF (surface_pair); -END_ENTITY; -(* USED FROM (measure_schema); *) - ENTITY inductance_unit - SUBTYPE OF(derived_unit); - WHERE - WR1: derive_dimensional_exponents(SELF) = dimensions_for_si_unit (si_unit_name.henry); - END_ENTITY; -(* USED FROM (measure_schema); *) - ENTITY inductance_measure_with_unit - SUBTYPE OF (measure_with_unit); - WHERE - WR1: 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.INDUCTANCE_UNIT' IN TYPEOF(SELF\measure_with_unit.unit_component); - END_ENTITY; -(* USED FROM (measure_schema); *) - 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; -(* USED FROM (Basic_data_representation_mim); *) - ENTITY real_representation_item - SUBTYPE OF (representation_item, real_literal); - END_ENTITY; -(* USED FROM (kinematic_structure_schema); *) -ENTITY spherical_pair - SUBTYPE OF (low_order_kinematic_pair); -DERIVE - SELF\low_order_kinematic_pair.t_x : BOOLEAN := FALSE; - SELF\low_order_kinematic_pair.t_y : BOOLEAN := FALSE; - SELF\low_order_kinematic_pair.t_z : BOOLEAN := FALSE; - SELF\low_order_kinematic_pair.r_x : BOOLEAN := TRUE; - SELF\low_order_kinematic_pair.r_y : BOOLEAN := TRUE; - SELF\low_order_kinematic_pair.r_z : BOOLEAN := TRUE; -END_ENTITY; -(* USED FROM (aic_draughting_elements); *) -ENTITY dimension_pair - SUBTYPE OF (draughting_callout_relationship); -WHERE - WR1: SELF.name IN ['chained', 'parallel']; - WR2: SIZEOF (TYPEOF (SELF.relating_draughting_callout) * - ['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ANGULAR_DIMENSION', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CURVE_DIMENSION', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.DIAMETER_DIMENSION', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LINEAR_DIMENSION', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ORDINATE_DIMENSION', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.RADIUS_DIMENSION'])=1; - WR3: SIZEOF (TYPEOF (SELF.related_draughting_callout) * - ['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ANGULAR_DIMENSION', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CURVE_DIMENSION', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.DIAMETER_DIMENSION', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LINEAR_DIMENSION', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ORDINATE_DIMENSION', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.RADIUS_DIMENSION'])=1; -END_ENTITY; -(* USED FROM (measure_schema); *) - ENTITY luminous_flux_measure_with_unit - SUBTYPE OF (measure_with_unit); - WHERE - WR1: 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LUMINOUS_FLUX_UNIT' IN TYPEOF(SELF\measure_with_unit.unit_component); - END_ENTITY; -(* USED FROM (measure_schema); *) - ENTITY luminous_intensity_measure_with_unit - SUBTYPE OF (measure_with_unit); - WHERE - WR1: 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LUMINOUS_INTENSITY_UNIT' IN TYPEOF(SELF\measure_with_unit.unit_component); - END_ENTITY; -(* USED FROM (aic_draughting_elements); *) -ENTITY dimension_callout_relationship - SUBTYPE OF (draughting_callout_relationship); -WHERE - WR1: SELF.name IN ['primary', 'secondary']; - WR2: SIZEOF (TYPEOF (SELF.relating_draughting_callout) * - ['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ANGULAR_DIMENSION', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CURVE_DIMENSION', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.DIAMETER_DIMENSION', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LEADER_DIRECTED_DIMENSION', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LINEAR_DIMENSION', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ORDINATE_DIMENSION', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.RADIUS_DIMENSION'])>=1; - WR3: SIZEOF (TYPEOF (SELF.related_draughting_callout) * - ['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.DIMENSION_CURVE_DIRECTED_CALLOUT', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROJECTION_DIRECTED_CALLOUT', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LEADER_DIRECTED_CALLOUT']) = 0; - WR4: SELF.related_draughting_callout.contents * - SELF.relating_draughting_callout.contents = - SELF.related_draughting_callout.contents; -END_ENTITY; -(* USED FROM (aic_draughting_elements); *) -ENTITY diameter_dimension - SUBTYPE OF (dimension_curve_directed_callout); -END_ENTITY; -(* USED FROM (aic_draughting_elements); *) -ENTITY datum_target_callout - SUBTYPE OF (draughting_callout); -END_ENTITY; -(* USED FROM (measure_schema); *) - 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; -(* USED FROM (measure_schema); *) - ENTITY mass_measure_with_unit - SUBTYPE OF (measure_with_unit); - WHERE - WR1: 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MASS_UNIT' IN TYPEOF(SELF\measure_with_unit.unit_component); - END_ENTITY; -(* USED FROM (kinematic_structure_schema); *) -ENTITY cylindrical_pair_with_range - SUBTYPE OF (cylindrical_pair); - lower_limit_actual_translation : OPTIONAL length_measure; - upper_limit_actual_translation : OPTIONAL length_measure; - lower_limit_actual_rotation : OPTIONAL plane_angle_measure; - upper_limit_actual_rotation : OPTIONAL plane_angle_measure; -WHERE - WR1: (NOT EXISTS(lower_limit_actual_translation) - OR - NOT EXISTS(upper_limit_actual_translation)) - XOR - (lower_limit_actual_translation < upper_limit_actual_translation); - WR2: (NOT EXISTS(lower_limit_actual_rotation) - OR - NOT EXISTS(upper_limit_actual_rotation)) - XOR - (lower_limit_actual_rotation < upper_limit_actual_rotation); -END_ENTITY; -(* USED FROM (sketch_schema); *) -ENTITY implicit_planar_intersection_point - SUBTYPE OF (implicit_point_on_plane); - external_curve : curve; -END_ENTITY; -(* USED FROM (measure_schema); *) - 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; -(* USED FROM (measure_schema); *) - ENTITY plane_angle_measure_with_unit - SUBTYPE OF (measure_with_unit); - WHERE - WR1: 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PLANE_ANGLE_UNIT' IN TYPEOF(SELF\measure_with_unit.unit_component); - END_ENTITY; -(* USED FROM (measure_schema); *) - 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; -(* USED FROM (measure_schema); *) - ENTITY power_unit - SUBTYPE OF(derived_unit); - WHERE - WR1: derive_dimensional_exponents(SELF) = dimensions_for_si_unit (si_unit_name.watt); - END_ENTITY; -(* USED FROM (measure_schema); *) - ENTITY power_measure_with_unit - SUBTYPE OF (measure_with_unit); - WHERE - WR1: 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.POWER_UNIT' IN TYPEOF(SELF\measure_with_unit.unit_component); - END_ENTITY; -(* USED FROM (measure_schema); *) - 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; -(* USED FROM (measure_schema); *) - ENTITY pressure_unit - SUBTYPE OF(derived_unit); - WHERE - WR1: derive_dimensional_exponents(SELF) = dimensions_for_si_unit (si_unit_name.pascal); - END_ENTITY; -(* USED FROM (measure_schema); *) - ENTITY pressure_measure_with_unit - SUBTYPE OF (measure_with_unit); - WHERE - WR1: 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRESSURE_UNIT' IN TYPEOF(SELF\measure_with_unit.unit_component); - END_ENTITY; -(* USED FROM (measure_schema); *) - 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; -(* USED FROM (sketch_schema); *) -ENTITY implicit_model_intersection_curve - SUBTYPE of (implicit_planar_curve); - intersected_model : surface_or_solid_model; -END_ENTITY; -(* USED FROM (measure_schema); *) - 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; -(* USED FROM (measure_schema); *) - ENTITY resistance_unit - SUBTYPE OF(derived_unit); - WHERE - WR1: derive_dimensional_exponents(SELF) = dimensions_for_si_unit (si_unit_name.ohm); - END_ENTITY; -(* USED FROM (measure_schema); *) - ENTITY resistance_measure_with_unit - SUBTYPE OF (measure_with_unit); - WHERE - WR1: 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.RESISTANCE_UNIT' IN TYPEOF(SELF\measure_with_unit.unit_component); - END_ENTITY; -(* USED FROM (measure_schema); *) - 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; -(* USED FROM (measure_schema); *) - 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(('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MASS_UNIT' IN TYPEOF(SELF)) AND - (SIZEOF(USEDIN(SELF,'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.DERIVED_UNIT_ELEMENT.UNIT')) > 0)) OR - (prefix = si_prefix.kilo); - END_ENTITY; -(* USED FROM (measure_schema); *) - ENTITY solid_angle_measure_with_unit - SUBTYPE OF (measure_with_unit); - WHERE - WR1: 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SOLID_ANGLE_UNIT' IN TYPEOF(SELF\measure_with_unit.unit_component); - END_ENTITY; -(* USED FROM (measure_schema); *) - 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; -(* USED FROM (measure_schema); *) - ENTITY thermodynamic_temperature_measure_with_unit - SUBTYPE OF (measure_with_unit); - WHERE - WR1: 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.THERMODYNAMIC_TEMPERATURE_UNIT' IN TYPEOF(SELF\measure_with_unit.unit_component); - END_ENTITY; -(* USED FROM (measure_schema); *) - 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; -(* USED FROM (measure_schema); *) - ENTITY time_measure_with_unit - SUBTYPE OF (measure_with_unit); - WHERE - WR1: 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.TIME_UNIT' IN TYPEOF(SELF\measure_with_unit.unit_component); - END_ENTITY; -(* USED FROM (measure_schema); *) - 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; -(* USED FROM (measure_schema); *) - ENTITY velocity_measure_with_unit - SUBTYPE OF (measure_with_unit); - WHERE - WR1: 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.VELOCITY_UNIT' IN TYPEOF (SELF\measure_with_unit.unit_component); - END_ENTITY; -(* USED FROM (measure_schema); *) - 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; -(* USED FROM (measure_schema); *) - ENTITY volume_measure_with_unit - SUBTYPE OF (measure_with_unit); - WHERE - WR1: 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.VOLUME_UNIT' IN TYPEOF(SELF\measure_with_unit.unit_component); - END_ENTITY; -(* USED FROM (measure_schema); *) - 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; -(* USED FROM (External_unit_mim); *) - ENTITY externally_defined_context_dependent_unit - SUBTYPE OF (context_dependent_unit,externally_defined_item); - END_ENTITY; -(* USED FROM (External_unit_mim); *) - ENTITY externally_defined_conversion_based_unit - SUBTYPE OF (conversion_based_unit,externally_defined_item); - END_ENTITY; -(* USED FROM (Curve_appearance_mim); *) - ENTITY externally_defined_terminator_symbol - SUBTYPE OF (externally_defined_symbol); - END_ENTITY; -(* USED FROM (shape_aspect_definition_schema); *) -ENTITY all_around_shape_aspect - SUBTYPE OF (continuous_shape_aspect); -END_ENTITY; -(* USED FROM (shape_aspect_definition_schema); *) -ENTITY between_shape_aspect - SUBTYPE OF (continuous_shape_aspect); -END_ENTITY; -(* USED FROM (shape_aspect_definition_schema); *) -ENTITY continuous_shape_aspect - SUPERTYPE OF (ONEOF ( - BETWEEN_SHAPE_ASPECT, - ALL_AROUND_SHAPE_ASPECT)) - SUBTYPE OF (composite_shape_aspect); -END_ENTITY; -(* USED FROM (shape_aspect_definition_schema); *) -ENTITY composite_shape_aspect - SUPERTYPE OF (ONEOF ( - CONTINUOUS_SHAPE_ASPECT, - COMMON_DATUM, - COMPOSITE_GROUP_SHAPE_ASPECT)) - SUBTYPE OF (shape_aspect); -INVERSE - component_relationships : SET[2:?] OF shape_aspect_relationship FOR relating_shape_aspect; -END_ENTITY; -(* USED FROM (shape_aspect_definition_schema); *) -ENTITY composite_group_shape_aspect - SUBTYPE OF (composite_shape_aspect); -END_ENTITY; -(* USED FROM (Curve_appearance_mim); *) - ENTITY user_defined_marker - SUBTYPE OF (mapped_item, pre_defined_marker); - END_ENTITY; -(* USED FROM (shape_aspect_definition_schema); *) -ENTITY contacting_feature - SUBTYPE OF (shape_aspect); -WHERE - WR1: SELF\shape_aspect.product_definitional = FALSE; -END_ENTITY; -(* USED FROM (Curve_appearance_mim); *) - ENTITY user_defined_terminator_symbol - SUBTYPE OF (mapped_item, pre_defined_symbol); - END_ENTITY; -(* USED FROM (Curve_appearance_mim); *) - ENTITY vector_style - SUBTYPE OF (curve_style, pre_defined_terminator_symbol); - END_ENTITY; -(* USED FROM (aic_draughting_elements); *) -ENTITY angular_dimension - SUBTYPE OF (dimension_curve_directed_callout); -END_ENTITY; -(* USED FROM (shape_aspect_definition_schema); *) -ENTITY datum_reference; - precedence : INTEGER; - referenced_datum : datum; -WHERE - WR1: precedence > 0; -END_ENTITY; -(* USED FROM (shape_aspect_definition_schema); *) -ENTITY datum_reference_compartment - SUBTYPE OF (general_datum_reference); -INVERSE - owner : datum_system FOR constituents; -END_ENTITY; -(* USED FROM (shape_aspect_definition_schema); *) -ENTITY datum_reference_element - SUBTYPE OF (general_datum_reference); -DERIVE - owner : general_datum_reference := sts_get_general_datum_reference(SELF); -WHERE - WR1: SELF <> owner; - WR2: EXISTS(owner); - WR3: SELF\shape_aspect.of_shape = owner\shape_aspect.of_shape; -END_ENTITY; -(* USED FROM (shape_aspect_definition_schema); *) -ENTITY datum_system - SUBTYPE OF (shape_aspect); - constituents : LIST[1:3] OF UNIQUE datum_reference_compartment; -UNIQUE - UR1: SELF\shape_aspect.of_shape,SELF\shape_aspect.name; -WHERE - WR1: SELF\shape_aspect.product_definitional = FALSE; -END_ENTITY; -(* USED FROM (Styled_curve_mim); *) - ENTITY solid_curve_font - SUBTYPE OF (pre_defined_curve_font); - END_ENTITY; -(* USED FROM (shape_aspect_definition_schema); *) -ENTITY general_datum_reference - ABSTRACT SUPERTYPE OF (ONEOF ( - DATUM_REFERENCE_COMPARTMENT, - DATUM_REFERENCE_ELEMENT)) - SUBTYPE OF (shape_aspect); - base : datum_or_common_datum; - modifiers : OPTIONAL SET[1:?] OF datum_reference_modifier; -WHERE - WR1: SELF\shape_aspect.name = ''; - WR2: NOT EXISTS(SELF\shape_aspect.description); - WR3: NOT EXISTS(SELF\shape_aspect.id); - WR4: SELF\shape_aspect.product_definitional = FALSE; - WR5: NOT('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.DATUM' IN TYPEOF(base)) OR (SELF\shape_aspect.of_shape = base\shape_aspect.of_shape); - WR6: NOT('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.COMMON_DATUM_LIST' IN TYPEOF(base)) OR (SELF\shape_aspect.of_shape = base[1]\shape_aspect.of_shape); -END_ENTITY; -(* USED FROM (shape_aspect_definition_schema); *) -ENTITY geometric_contact - SUBTYPE OF (derived_shape_aspect); -WHERE - WR1: SIZEOF (SELF\derived_shape_aspect.deriving_relationships)= 2; -END_ENTITY; -(* USED FROM (shape_aspect_definition_schema); *) -ENTITY referenced_modified_datum - SUBTYPE OF (datum_reference); - modifier : limit_condition; -END_ENTITY; -(* USED FROM (presentation_appearance_schema); *) - ENTITY curve_style_font - SUBTYPE OF (founded_item); - name : label; - pattern_list : LIST [1:?] OF curve_style_font_pattern; - END_ENTITY; -(* USED FROM (shape_tolerance_schema); *) -ENTITY dimension_related_tolerance_zone_element; - related_dimension : dimensional_location; - related_element : tolerance_zone_definition; -END_ENTITY; -(* USED FROM (presentation_appearance_schema); *) - 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; -(* USED FROM (presentation_appearance_schema); *) - ENTITY point_style - SUBTYPE OF (founded_item); - name : label; - marker : marker_select; - marker_size : size_select; - marker_colour : colour; - END_ENTITY; -(* USED FROM (Time_interval_assignment_mim); *) -ENTITY applied_time_interval_assignment - SUBTYPE OF (time_interval_assignment); - items : SET[0:?] OF time_interval_item; -END_ENTITY; -(* USED FROM (kinematic_structure_schema); *) -ENTITY screw_pair_with_range - SUBTYPE OF (screw_pair); - lower_limit_actual_rotation : OPTIONAL plane_angle_measure; - upper_limit_actual_rotation : OPTIONAL plane_angle_measure; -WHERE - WR1: (NOT EXISTS(lower_limit_actual_rotation) - OR - NOT EXISTS(upper_limit_actual_rotation)) - XOR - (lower_limit_actual_rotation < upper_limit_actual_rotation); -END_ENTITY; -(* USED FROM (presentation_definition_schema); *) - ENTITY annotation_occurrence_relationship; - name : label; - description : text; - relating_annotation_occurrence : annotation_occurrence; - related_annotation_occurrence : annotation_occurrence; - END_ENTITY; -(* USED FROM (shape_tolerance_schema); *) -ENTITY geometric_tolerance_with_maximum_tolerance - SUBTYPE OF (geometric_tolerance_with_modifiers); - maximum_upper_tolerance : length_measure_with_unit; -WHERE - WR1: (geometric_tolerance_modifier.maximum_material_requirement IN SELF\geometric_tolerance_with_modifiers.modifiers) OR (geometric_tolerance_modifier.least_material_requirement IN SELF\geometric_tolerance_with_modifiers.modifiers); - WR2: (maximum_upper_tolerance\measure_with_unit.unit_component = SELF\geometric_tolerance.magnitude\measure_with_unit.unit_component) AND (maximum_upper_tolerance\measure_with_unit.value_component > SELF\geometric_tolerance.magnitude\measure_with_unit.value_component); -END_ENTITY; -(* USED FROM (presentation_appearance_schema); *) - ENTITY pre_defined_curve_font - SUBTYPE OF (pre_defined_item); - END_ENTITY; -(* USED FROM (Work_request_mim); *) -ENTITY applied_action_request_assignment -SUBTYPE OF (action_request_assignment); - items : SET [1 : ?] OF action_request_item; -END_ENTITY; -(* USED FROM (external_reference_schema); *) - ENTITY pre_defined_item; - name : label; - END_ENTITY; -(* USED FROM (shape_tolerance_schema); *) -ENTITY projected_zone_definition - SUBTYPE OF (tolerance_zone_definition); - projection_end : shape_aspect; - projected_length : 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; -(* USED FROM (shape_tolerance_schema); *) -ENTITY projected_zone_definition_with_offset - SUBTYPE OF (projected_zone_definition); - offset : length_measure_with_unit; -END_ENTITY; -(* USED FROM (presentation_appearance_schema); *) - ENTITY pre_defined_marker - SUBTYPE OF (pre_defined_item); - END_ENTITY; -(* USED FROM (configuration_management_schema); *) -ENTITY configuration_effectivity - SUBTYPE OF (product_definition_effectivity); - configuration : configuration_design; -UNIQUE - UR1: configuration, - SELF\product_definition_effectivity.usage, - SELF\effectivity.id; -WHERE - WR1: 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRODUCT_DEFINITION_USAGE' IN - TYPEOF (SELF\product_definition_effectivity.usage); -END_ENTITY; -(* USED FROM (shape_tolerance_schema); *) -ENTITY tolerance_zone - SUBTYPE OF (shape_aspect); - defining_tolerance : SET[1:?] OF tolerance_zone_target; - form : tolerance_zone_form; -END_ENTITY; -(* USED FROM (shape_tolerance_schema); *) -ENTITY tolerance_zone_definition - SUPERTYPE OF (ONEOF ( - PROJECTED_ZONE_DEFINITION, - NON_UNIFORM_ZONE_DEFINITION, - RUNOUT_ZONE_DEFINITION)); - zone : tolerance_zone; - boundaries : SET[0:?] OF shape_aspect; -END_ENTITY; -(* USED FROM (presentation_definition_schema); *) - ENTITY externally_defined_symbol - SUBTYPE OF (externally_defined_item); - END_ENTITY; -(* USED FROM (shape_tolerance_schema); *) -ENTITY cylindricity_tolerance - SUBTYPE OF (geometric_tolerance); -WHERE - WR1: NOT ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'GEOMETRIC_TOLERANCE_WITH_DATUM_REFERENCE' IN TYPEOF (SELF)); -END_ENTITY; -(* USED FROM (draughting_element_schema); *) - 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('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.'+'PLANAR_BOX' IN TYPEOF(SELF\styled_item.item)) OR - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.'+'AXIS2_PLACEMENT_3D' IN TYPEOF(SELF\styled_item.item\planar_box.placement)); - WR3: (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.'+'PLANAR_BOX' IN TYPEOF(SELF\styled_item.item)) AND - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.'+'CURVE_STYLE' IN TYPEOF(SELF\styled_item.styles[1]\presentation_style_assignment.styles[1]))) OR - (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.'+'PLANE' IN TYPEOF(SELF\styled_item.item)) AND - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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; -(* USED FROM (shape_tolerance_schema); *) -ENTITY line_profile_tolerance - SUBTYPE OF (geometric_tolerance); -END_ENTITY; -(* USED FROM (External_class_mim); *) - ENTITY external_class_library - SUBTYPE OF (external_source); - END_ENTITY; -(* USED FROM (geometric_model_schema); *) -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; -(* USED FROM (geometric_model_schema); *) -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 ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SURFACE_CURVE' IN TYPEOF(directrix))) OR (reference_surface IN (directrix\surface_curve.basis_surface)); -END_ENTITY; -(* USED FROM (kinematic_structure_schema); *) -ENTITY prismatic_pair - SUBTYPE OF (low_order_kinematic_pair); -DERIVE - SELF\low_order_kinematic_pair.t_x : BOOLEAN := TRUE; - SELF\low_order_kinematic_pair.t_y : BOOLEAN := FALSE; - SELF\low_order_kinematic_pair.t_z : BOOLEAN := FALSE; - SELF\low_order_kinematic_pair.r_x : BOOLEAN := FALSE; - SELF\low_order_kinematic_pair.r_y : BOOLEAN := FALSE; - SELF\low_order_kinematic_pair.r_z : BOOLEAN := FALSE; -END_ENTITY; -(* USED FROM (geometric_model_schema); *) -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; -(* USED FROM (shape_tolerance_schema); *) -ENTITY circular_runout_tolerance - SUBTYPE OF (geometric_tolerance_with_datum_reference); -END_ENTITY; -(* USED FROM (shape_tolerance_schema); *) -ENTITY coaxiality_tolerance - SUBTYPE OF (geometric_tolerance_with_datum_reference); -END_ENTITY; -(* USED FROM (shape_tolerance_schema); *) -ENTITY concentricity_tolerance - SUBTYPE OF (geometric_tolerance_with_datum_reference); -END_ENTITY; -(* USED FROM (shape_tolerance_schema); *) -ENTITY parallelism_tolerance - SUBTYPE OF (geometric_tolerance_with_datum_reference); -END_ENTITY; -(* USED FROM (geometric_model_schema); *) -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; -(* USED FROM (shape_tolerance_schema); *) -ENTITY symmetry_tolerance - SUBTYPE OF (geometric_tolerance_with_datum_reference); -END_ENTITY; -(* USED FROM (geometry_schema); *) -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; -(* USED FROM (shape_tolerance_schema); *) -ENTITY unequally_disposed_geometric_tolerance - SUBTYPE OF (geometric_tolerance); - displacement : length_measure_with_unit; -WHERE - WR1: ('NUMBER' IN TYPEOF (SELF\geometric_tolerance_with_defined_unit.unit_size\measure_with_unit.value_component)) AND (SELF\geometric_tolerance_with_defined_unit.unit_size\measure_with_unit.value_component > 0.0); -END_ENTITY; -(* USED FROM (geometry_schema); *) -ENTITY degenerate_toroidal_surface - SUBTYPE OF (toroidal_surface); - select_outer : BOOLEAN; -WHERE - WR1: major_radius < minor_radius; -END_ENTITY; -(* USED FROM (kinematic_structure_schema); *) -ENTITY revolute_pair - SUBTYPE OF (low_order_kinematic_pair); -DERIVE - SELF\low_order_kinematic_pair.t_x : BOOLEAN := FALSE; - SELF\low_order_kinematic_pair.t_y : BOOLEAN := FALSE; - SELF\low_order_kinematic_pair.t_z : BOOLEAN := FALSE; - SELF\low_order_kinematic_pair.r_x : BOOLEAN := FALSE; - SELF\low_order_kinematic_pair.r_y : BOOLEAN := FALSE; - SELF\low_order_kinematic_pair.r_z : BOOLEAN := TRUE; -END_ENTITY; -(* USED FROM (geometric_model_schema); *) -ENTITY half_space_solid - SUBTYPE OF (geometric_representation_item); - base_surface : surface; - agreement_flag : BOOLEAN; -END_ENTITY; -(* USED FROM (kinematic_structure_schema); *) -ENTITY low_order_kinematic_pair_with_range - SUBTYPE OF (low_order_kinematic_pair); - lower_limit_actual_rotation_x : OPTIONAL plane_angle_measure; - upper_limit_actual_rotation_x : OPTIONAL plane_angle_measure; - lower_limit_actual_rotation_y : OPTIONAL plane_angle_measure; - upper_limit_actual_rotation_y : OPTIONAL plane_angle_measure; - lower_limit_actual_rotation_z : OPTIONAL plane_angle_measure; - upper_limit_actual_rotation_z : OPTIONAL plane_angle_measure; - lower_limit_actual_translation_x : OPTIONAL length_measure; - upper_limit_actual_translation_x : OPTIONAL length_measure; - lower_limit_actual_translation_y : OPTIONAL length_measure; - upper_limit_actual_translation_y : OPTIONAL length_measure; - lower_limit_actual_translation_z : OPTIONAL length_measure; - upper_limit_actual_translation_z : OPTIONAL length_measure; -END_ENTITY; -(* USED FROM (geometric_model_schema); *) -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; -(* USED FROM (application_context_schema); *) - ENTITY product_concept_context - SUBTYPE OF (application_context_element); - market_segment_type : label; - END_ENTITY; -(* USED FROM (product_concept_schema); *) -ENTITY product_concept; - id : identifier; - name : label; - description : OPTIONAL text; - market_context : product_concept_context; -UNIQUE - UR1: id; -END_ENTITY; -(* USED FROM (presentation_organization_schema); *) - 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; -(* USED FROM (geometry_schema); *) -ENTITY vector - SUBTYPE OF (geometric_representation_item); - orientation : direction; - magnitude : length_measure; -WHERE - WR1: magnitude >= 0.0; -END_ENTITY; -(* USED FROM (presentation_organization_schema); *) - ENTITY camera_model_with_light_sources - SUBTYPE OF (camera_model_d3); - sources : SET [1:?] OF light_source; - END_ENTITY; -(* USED FROM (product_definition_schema); *) - 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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'NAME_ATTRIBUTE.NAMED_ITEM')) <= 1; - END_ENTITY; -(* USED FROM (geometric_model_schema); *) -ENTITY boxed_half_space - SUBTYPE OF (half_space_solid); - enclosure : box_domain; -END_ENTITY; -(* USED FROM (product_concept_schema); *) -ENTITY product_concept_feature_association; - name : label; - description : OPTIONAL text; - concept : product_concept; - feature : product_concept_feature; -END_ENTITY; -(* USED FROM (product_concept_schema); *) -ENTITY product_concept_feature; - id : identifier; - name : label; - description : OPTIONAL text; -END_ENTITY; -(* USED FROM (product_concept_schema); *) -ENTITY concept_feature_operator; - name : label; - description : OPTIONAL text; -END_ENTITY; -(* USED FROM (presentation_organization_schema); *) - ENTITY light_source_ambient - SUBTYPE OF (light_source); - END_ENTITY; -(* USED FROM (presentation_organization_schema); *) - ENTITY light_source_directional - SUBTYPE OF (light_source); - orientation : direction; - END_ENTITY; -(* USED FROM (management_resources_schema); *) - ENTITY effectivity_context_assignment - ABSTRACT SUPERTYPE; - assigned_effectivity_assignment : effectivity_assignment; - role : effectivity_context_role; - END_ENTITY; -(* USED FROM (Product_class_mim); *) -ENTITY exclusive_product_concept_feature_category - SUBTYPE OF (product_concept_feature_category); -END_ENTITY; -(* USED FROM (Product_class_mim); *) -ENTITY product_class - SUBTYPE OF (product_concept,characterized_object); -END_ENTITY; -(* USED FROM (Specification_based_configuration_mim); *) -ENTITY configured_effectivity_context_assignment -SUBTYPE OF (effectivity_context_assignment); - SELF\effectivity_context_assignment.assigned_effectivity_assignment: configured_effectivity_assignment; - items : SET [1:?] OF configured_effectivity_context_item; -WHERE -WR1: SIZEOF(SELF.items) = 1; -END_ENTITY; -(* USED FROM (Property_as_definition_mim); *) -ENTITY representation_proxy_item -SUBTYPE OF (representation_item); --- item : representation_proxy_select; -END_ENTITY; -(* USED FROM (external_reference_schema); *) - ENTITY external_source_relationship; - name : label; - description : OPTIONAL text; - relating_source : external_source; - related_source : external_source; - END_ENTITY; -(* USED FROM (Product_breakdown_mim); *) - ENTITY product_definition_group_assignment - SUBTYPE OF (group_assignment); - SELF\group_assignment.assigned_group : product_definition_element_relationship; - items : SET[1:1] OF product_definition_or_product_definition_relationship; - END_ENTITY; -(* USED FROM (Composite_constituent_shape_mim); *) - ENTITY beveled_sheet_representation - SUBTYPE OF (shape_representation); - END_ENTITY; -(* USED FROM (Property_as_definition_mim); *) -ENTITY single_property_is_definition - SUBTYPE OF (property_definition); - SELF\property_definition.definition : product_definition; -UNIQUE - UR1: SELF\property_definition.definition; -END_ENTITY; -(* USED FROM (presentation_organization_schema); *) - ENTITY presented_item - ABSTRACT SUPERTYPE; - END_ENTITY; -(* USED FROM (Product_class_mim); *) -ENTITY product_concept_feature_category_usage - SUBTYPE OF (group_assignment); - SELF\group_assignment.assigned_group : product_concept_feature_category; - items : SET [1:?] OF category_usage_item; -WHERE -WR1 : SELF.role.name IN [ 'mandatory category usage', 'optional category usage' ]; -END_ENTITY; -(* USED FROM (Product_breakdown_mim); *) - ENTITY breakdown_element_usage - SUBTYPE OF (product_definition_relationship); - END_ENTITY; -(* USED FROM (Product_breakdown_mim); *) - ENTITY breakdown_element_realization - SUBTYPE OF (characterized_object, product_definition_element_relationship); - END_ENTITY; -(* USED FROM (geometry_schema); *) -(* Pruned SUPERTYPE *) -ENTITY point - SUPERTYPE OF (ONEOF ( - CARTESIAN_POINT, - POINT_ON_CURVE, - POINT_ON_SURFACE, - POINT_REPLICA, - DEGENERATE_PCURVE)) - SUBTYPE OF (geometric_representation_item); -END_ENTITY; -(* USED FROM (shape_aspect_definition_schema); *) -ENTITY feature_definition - SUPERTYPE OF (ONEOF ( - BOSS, - COMPOUND_FEATURE, - EXTERNALLY_DEFINED_FEATURE_DEFINITION, - FLAT_FACE, - GEAR, - MARKING, - OUTER_ROUND, - OUTSIDE_PROFILE, - POCKET, - PROTRUSION, - REMOVAL_VOLUME, - REPLICATE_FEATURE, - REVOLVED_PROFILE, - RIB_TOP, - ROUND_HOLE, - ROUNDED_END, - SPHERICAL_CAP, - STEP, - SLOT, - THREAD, - TURNED_KNURL) ) - SUBTYPE OF (characterized_object); -END_ENTITY; -(* USED FROM (presentation_organization_schema); *) - ENTITY presentation_view - SUBTYPE OF (presentation_representation); - END_ENTITY; -(* USED FROM (product_concept_schema); *) -ENTITY conditional_concept_feature - SUBTYPE OF (product_concept_feature); - condition : concept_feature_relationship_with_condition; -END_ENTITY; -(* USED FROM (draughting_element_schema); *) - ENTITY projection_curve - SUBTYPE OF (annotation_curve_occurrence); - END_ENTITY; -(* USED FROM (procedural_shape_model_schema); *) -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; -(* USED FROM (procedural_shape_model_schema); *) -ENTITY indirectly_selected_shape_elements - SUBTYPE OF (indirectly_selected_elements, - user_selected_shape_elements); - SELF\indirectly_selected_elements.indirectly_picked_items : SET [1:?] OF shape_representation_item; -END_ENTITY; -(* USED FROM (procedural_shape_model_schema); *) -ENTITY procedural_shape_representation - SUBTYPE OF (procedural_representation, shape_representation); - SELF\representation.items : - SET[1:?] OF procedural_shape_representation_sequence; -END_ENTITY; -(* USED FROM (procedural_shape_model_schema); *) -ENTITY procedural_shape_representation_sequence - SUBTYPE OF (geometric_representation_item, - procedural_representation_sequence); - SELF\procedural_representation_sequence.elements : LIST [1:?] OF shape_representation_item; -END_ENTITY; -(* USED FROM (geometric_model_schema); *) -ENTITY tessellated_shape_representation - SUBTYPE OF (shape_representation); - SELF\representation.items : SET[1:?] OF tessellated_item; -WHERE - WR1: 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.GLOBAL_UNIT_ASSIGNED_CONTEXT' IN TYPEOF(SELF\representation.context_of_items); -END_ENTITY; -(* USED FROM (solid_shape_element_schema); *) -(* Pruned SUPERTYPE *) -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; -(* USED FROM (Product_breakdown_mim); *) - ENTITY breakdown_context - SUBTYPE OF (product_definition_relationship); - END_ENTITY; -(* USED FROM (solid_shape_element_schema); *) -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; -(* USED FROM (solid_shape_element_schema); *) -ENTITY double_offset_shelled_solid - SUBTYPE OF (shelled_solid); - thickness2 : length_measure; -WHERE - WR1: thickness2 <> 0; - WR2: SELF\shelled_solid.thickness <> thickness2; -END_ENTITY; -(* USED FROM (solid_shape_element_schema); *) -ENTITY sculptured_solid - SUBTYPE OF (modified_solid); - sculpturing_element : generalized_surface_select; - positive_side : BOOLEAN; -END_ENTITY; -(* USED FROM (geometric_model_schema); *) -ENTITY repositioned_tessellated_item - SUBTYPE OF (tessellated_item); - location : axis2_placement_3d; -WHERE - WR1: NOT (SIZEOF (['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.TESSELLATED_CURVE_SET', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.TESSELLATED_GEOMETRIC_SET', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.TESSELLATED_POINT_SET', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.TESSELLATED_SURFACE_SET', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.TESSELLATED_SHELL', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.TESSELLATED_SOLID', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.TESSELLATED_WIRE'] * TYPEOF(SELF)) = 0); -END_ENTITY; -(* USED FROM (solid_shape_element_schema); *) -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; -(* USED FROM (solid_shape_element_schema); *) -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; -(* USED FROM (geometric_model_schema); *) -ENTITY tessellated_geometric_set - SUBTYPE OF (tessellated_item); - children : SET[1:?] OF tessellated_item; -END_ENTITY; -(* USED FROM (solid_shape_element_schema); *) -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; -(* USED FROM (solid_shape_element_schema); *) -ENTITY solid_with_circular_protrusion - SUBTYPE OF (solid_with_protrusion); - protrusion_radius : positive_length_measure; -END_ENTITY; -(* USED FROM (solid_shape_element_schema); *) -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; -(* USED FROM (solid_shape_element_schema); *) -ENTITY solid_with_constant_radius_edge_blend - SUBTYPE OF (edge_blended_solid); - radius : positive_length_measure; -END_ENTITY; -(* USED FROM (solid_shape_element_schema); *) -ENTITY solid_with_curved_slot - SUBTYPE OF (solid_with_slot); - slot_centreline : bounded_curve; -END_ENTITY; -(* USED FROM (solid_shape_element_schema); *) -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; -(* USED FROM (solid_shape_element_schema); *) -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; -(* USED FROM (solid_shape_element_schema); *) -ENTITY solid_with_general_pocket - SUBTYPE OF (solid_with_pocket); - profile : positioned_sketch; - reference_point : point; -WHERE - WR1: SIZEOF(['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CURVE_BOUNDED_SURFACE', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FACE_SURFACE'] * TYPEOF(profile.sketch_basis)) = 1; - WR2: profile IN using_items(reference_point,[]); -END_ENTITY; -(* USED FROM (geometric_model_schema); *) -ENTITY tessellated_structured_item - SUPERTYPE OF (ONEOF ( - TESSELLATED_FACE, - TESSELLATED_EDGE, - TESSELLATED_VERTEX)) - SUBTYPE OF (tessellated_item); -END_ENTITY; -(* USED FROM (solid_shape_element_schema); *) -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 ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SOLID_WITH_THROUGH_DEPRESSION' - IN TYPEOF(SELF)); -END_ENTITY; -(* USED FROM (geometric_model_schema); *) -ENTITY tessellated_edge - SUBTYPE OF (tessellated_structured_item); - coordinates : coordinates_list; - geometric_link : OPTIONAL edge_or_curve; - line_strip : LIST[2:?] OF INTEGER; -END_ENTITY; -(* USED FROM (Functional_breakdown_mim); *) - ENTITY functional_element_usage - SUBTYPE OF (breakdown_element_usage); - END_ENTITY; -(* USED FROM (solid_shape_element_schema); *) -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; -(* USED FROM (solid_shape_element_schema); *) -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; -(* USED FROM (Physical_breakdown_mim); *) - ENTITY physical_breakdown_context - SUBTYPE OF (breakdown_context); - END_ENTITY; -(* USED FROM (solid_shape_element_schema); *) -ENTITY solid_with_single_offset_chamfer - SUBTYPE OF (solid_with_chamfered_edges); - offset_distance : positive_length_measure; -END_ENTITY; -(* USED FROM (solid_shape_element_schema); *) -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; -(* USED FROM (geometric_model_schema); *) -ENTITY tessellated_point_set - SUBTYPE OF (tessellated_item); - coordinates : coordinates_list; - point_list : LIST[1:?] OF INTEGER; -END_ENTITY; -(* USED FROM (presentation_definition_schema); *) - ENTITY text_literal_with_associated_curves - SUBTYPE OF (text_literal); - associated_curves : SET[1:?] of curve; - END_ENTITY; -(* USED FROM (geometric_model_schema); *) -ENTITY tessellated_vertex - SUBTYPE OF (tessellated_structured_item); - coordinates : coordinates_list; - topological_link : OPTIONAL vertex_point; - point_index : INTEGER; -END_ENTITY; -(* USED FROM (solid_shape_element_schema); *) -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; -(* USED FROM (solid_shape_element_schema); *) -ENTITY solid_with_through_depression - SUBTYPE OF (solid_with_depression); - exit_faces : SET[1:?] OF face_surface; -WHERE - WR1: SIZEOF(TYPEOF(SELF) * - ['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SOLID_WITH_HOLE', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SOLID_WITH_POCKET', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SOLID_WITH_SLOT']) = 1; -END_ENTITY; -(* USED FROM (solid_shape_element_schema); *) -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; -(* USED FROM (geometric_model_schema); *) -ENTITY triangulated_surface_set - SUBTYPE OF (tessellated_surface_set); - pnindex : LIST[0:?] OF INTEGER; - triangles : LIST[1:?] OF LIST[3:3] OF INTEGER; -WHERE - WR1: ((SIZEOF(pnindex) = 0) OR (SIZEOF(pnindex) = SELF\tessellated_surface_set.pnmax)); - WR2: NOT((SIZEOF(pnindex) = 0) AND (SELF\tessellated_surface_set.pnmax <> coordinates.npoints)); -END_ENTITY; -(* USED FROM (geometric_model_schema); *) -ENTITY tessellated_surface_set - ABSTRACT SUPERTYPE OF (ONEOF ( - TRIANGULATED_SURFACE_SET, - COMPLEX_TRIANGULATED_SURFACE_SET)) - SUBTYPE OF (tessellated_item); - coordinates : coordinates_list; - pnmax : INTEGER; - normals : LIST[0:?] OF LIST[3:3] OF REAL; -WHERE - WR1: ((SIZEOF(normals) = 0) OR (SIZEOF(normals) = 1) OR (SIZEOF(normals) = pnmax)); -END_ENTITY; -(* USED FROM (kinematic_motion_representation_schema); *) -ENTITY curve_based_path_with_orientation_and_parameters - SUBTYPE OF (curve_based_path_with_orientation); - parameters : path_parameter_representation; -END_ENTITY; -(* USED FROM (kinematic_motion_representation_schema); *) -ENTITY curve_based_path_with_orientation - SUBTYPE OF (kinematic_path_segment); - position_curve : bounded_curve; - orientation_curve : bounded_curve; -WHERE - WR1: TYPEOF(position_curve) = TYPEOF(orientation_curve); -END_ENTITY; -(* USED FROM (material_property_definition_schema); *) -ENTITY material_designation; - name : label; - definitions : SET [1:?] OF characterized_definition; -END_ENTITY; -(* USED FROM (presentation_definition_schema); *) - ENTITY annotation_symbol - SUBTYPE OF(mapped_item); - SELF\mapped_item.mapping_source : symbol_representation_map; - SELF\mapped_item.mapping_target : symbol_target; - WHERE - WR1: 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.GEOMETRIC_REPRESENTATION_ITEM' IN - TYPEOF (SELF); - END_ENTITY; -(* USED FROM (presentation_appearance_schema); *) - 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; -(* USED FROM (geometric_model_schema); *) -ENTITY complex_triangulated_surface_set - SUBTYPE OF (tessellated_surface_set); - pnindex : LIST[0:?] OF INTEGER; - triangle_strips : LIST[0:?] OF LIST[3:?] OF INTEGER; - triangle_fans : LIST[0:?] OF LIST[3:?] OF INTEGER; -WHERE - WR1: ((SIZEOF(pnindex) = 0) OR (SIZEOF(pnindex) = SELF\tessellated_surface_set.pnmax)); - WR2: NOT((SIZEOF(pnindex) = 0) AND (SELF\tessellated_surface_set.pnmax <> coordinates.npoints)); - WR3: NOT ((SIZEOF(triangle_strips) = 0) AND (SIZEOF(triangle_fans) = 0)); -END_ENTITY; -(* USED FROM (presentation_appearance_schema); *) - ENTITY externally_defined_tile_style - SUBTYPE OF (externally_defined_item, geometric_representation_item); - END_ENTITY; -(* USED FROM (geometric_model_schema); *) -ENTITY tessellated_face - ABSTRACT SUPERTYPE OF (ONEOF ( - TRIANGULATED_FACE, - COMPLEX_TRIANGULATED_FACE)) - SUBTYPE OF (tessellated_structured_item); - coordinates : coordinates_list; - pnmax : INTEGER; - normals : LIST[0:?] OF LIST[3:3] OF REAL; - geometric_link : OPTIONAL face_or_surface; -WHERE - WR1: ((SIZEOF(normals) = 0) OR (SIZEOF(normals) = 1) OR (SIZEOF(normals) = pnmax)); -END_ENTITY; -(* USED FROM (geometric_model_schema); *) -ENTITY triangulated_face - SUBTYPE OF (tessellated_face); - pnindex : LIST[0:?] OF INTEGER; - triangles : LIST[1:?] OF LIST[3:3] OF INTEGER; -WHERE - WR1: ((SIZEOF(pnindex) = 0) OR (SIZEOF(pnindex) = SELF\tessellated_face.pnmax)); - WR2: NOT((SIZEOF(pnindex) = 0) AND (SELF\tessellated_face.pnmax <> coordinates.npoints)); -END_ENTITY; -(* USED FROM (presentation_appearance_schema); *) - ENTITY character_glyph_style_outline - SUBTYPE OF (founded_item); - outline_style : curve_style; - END_ENTITY; -(* USED FROM (presentation_appearance_schema); *) - ENTITY text_style - SUBTYPE OF (founded_item); - name : label; - character_appearance : character_style_select; - END_ENTITY; -(* USED FROM (presentation_appearance_schema); *) - ENTITY text_style_with_spacing - SUBTYPE OF (text_style); - character_spacing : character_spacing_select; - END_ENTITY; -(* USED FROM (presentation_definition_schema); *) - ENTITY composite_text_with_extent - SUBTYPE OF (composite_text); - extent : planar_extent; - END_ENTITY; -(* USED FROM (presentation_definition_schema); *) - ENTITY composite_text_with_delineation - SUBTYPE OF (composite_text); - delineation : text_delineation; - END_ENTITY; -(* USED FROM (presentation_definition_schema); *) - ENTITY composite_text_with_blanking_box - SUBTYPE OF (composite_text); - blanking : planar_box; - END_ENTITY; -(* USED FROM (presentation_definition_schema); *) - ENTITY defined_character_glyph - SUBTYPE OF(geometric_representation_item); - definition : defined_glyph_select; - placement : axis2_placement; - END_ENTITY; -(* USED FROM (presentation_definition_schema); *) - ENTITY pre_defined_character_glyph - SUBTYPE OF (pre_defined_item); - END_ENTITY; -(* USED FROM (presentation_definition_schema); *) - ENTITY externally_defined_character_glyph - SUBTYPE OF (externally_defined_item); - END_ENTITY; -(* USED FROM (presentation_definition_schema); *) - 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; -(* USED FROM (presentation_definition_schema); *) - ENTITY text_literal_with_extent - SUBTYPE OF (text_literal); - extent : planar_extent; - END_ENTITY; -(* USED FROM (presentation_definition_schema); *) - ENTITY text_literal_with_delineation - SUBTYPE OF (text_literal); - delineation : text_delineation; - END_ENTITY; -(* USED FROM (Characteristic_mim); *) - ENTITY characteristic_data_column_header_link - SUBTYPE OF (general_property_relationship); - END_ENTITY; -(* USED FROM (presentation_appearance_schema); *) - ENTITY externally_defined_hatch_style - SUBTYPE OF (externally_defined_item, geometric_representation_item); - END_ENTITY; -(* USED FROM (presentation_resource_schema); *) -ENTITY draughting_pre_defined_text_font - SUBTYPE of (pre_defined_text_font); -WHERE - WR1: SELF.name[1:8] = 'ISO 3098'; -END_ENTITY; -(* USED FROM (presentation_resource_schema); *) -ENTITY externally_defined_text_font - SUBTYPE OF (externally_defined_item); -END_ENTITY; -(* USED FROM (Characteristic_mim); *) - ENTITY characteristic_type - SUBTYPE OF (group); - END_ENTITY; -(* USED FROM (Characteristic_mim); *) - ENTITY null_representation_item - SUBTYPE OF (representation_item); - END_ENTITY; -(* USED FROM (kinematic_motion_representation_schema); *) -ENTITY point_to_point_path - SUBTYPE OF (path_node); -DERIVE - SELF\kinematic_path_segment.transition : transition_code := discontinuous; -END_ENTITY; -(* USED FROM (presentation_definition_schema); *) - ENTITY annotation_text - SUBTYPE OF (mapped_item); - SELF\mapped_item.mapping_target : axis2_placement; - WHERE - WR1: 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.TEXT_STRING_REPRESENTATION' IN - TYPEOF( SELF\mapped_item.mapping_source.mapped_representation); - WR2: 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.GEOMETRIC_REPRESENTATION_ITEM' IN - TYPEOF( SELF); - END_ENTITY; -(* USED FROM (kinematic_motion_representation_schema); *) -ENTITY circular_path - SUBTYPE OF (path_node); - via_point : cartesian_point; -END_ENTITY; -(* USED FROM (presentation_definition_schema); *) - ENTITY annotation_curve_occurrence - SUPERTYPE OF ((ONEOF ( - DIMENSION_CURVE, - LEADER_CURVE, - PROJECTION_CURVE)) ) - SUBTYPE OF (annotation_occurrence); - SELF\styled_item.item : curve_or_curve_set; - END_ENTITY; -(* USED FROM (Characteristic_mim); *) - 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; -(* USED FROM (presentation_appearance_schema); *) - 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; -(* USED FROM (presentation_appearance_schema); *) - ENTITY text_style_for_defined_font; - text_colour : colour; - END_ENTITY; -(* USED FROM (Characteristic_mim); *) - ENTITY row_representation_item - SUBTYPE OF(compound_representation_item); - SELF\compound_representation_item.item_element : list_representation_item; - END_ENTITY; -(* USED FROM (presentation_appearance_schema); *) - ENTITY text_style_with_mirror - SUBTYPE OF (text_style); - mirror_placement : axis2_placement; - END_ENTITY; -(* USED FROM (presentation_definition_schema); *) - ENTITY annotation_text_character - SUBTYPE OF (mapped_item); - alignment : text_alignment; - SELF\mapped_item.mapping_target : axis2_placement; - WHERE - WR1: 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CHARACTER_GLYPH_SYMBOL' IN - TYPEOF (SELF\mapped_item.mapping_source.mapped_representation); - WR2: 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.GEOMETRIC_REPRESENTATION_ITEM' IN - TYPEOF (SELF); - END_ENTITY; -(* USED FROM (presentation_resource_schema); *) -ENTITY character_glyph_font_usage; - character : generic_character_glyph_symbol; - font : text_font; -END_ENTITY; -(* USED FROM (External_properties_mim); *) - ENTITY externally_defined_general_property - SUBTYPE OF (general_property, externally_defined_item); - END_ENTITY; -(* USED FROM (presentation_resource_schema); *) -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; -(* USED FROM (presentation_resource_schema); *) -ENTITY character_glyph_symbol_stroke - SUBTYPE OF (character_glyph_symbol); - strokes : SET [1:?] OF curve; -WHERE - WR1: SELF.strokes <= SELF\representation.items; -END_ENTITY; -(* USED FROM (presentation_resource_schema); *) -ENTITY generic_character_glyph_symbol - ABSTRACT SUPERTYPE - SUBTYPE OF (symbol_representation); -END_ENTITY; -(* USED FROM (presentation_resource_schema); *) -ENTITY text_font; - id : identifier; - name : label; - description : text; -INVERSE - glyphs : SET [1:?] OF character_glyph_font_usage FOR font; -END_ENTITY; -(* USED FROM (presentation_resource_schema); *) -ENTITY text_font_family; - id : identifier; - name : label; - description : text; -INVERSE - fonts : SET [1:?] OF text_font_in_family FOR family; -END_ENTITY; -(* USED FROM (aic_draughting_elements); *) -ENTITY geometrical_tolerance_callout - SUBTYPE OF (draughting_callout); -END_ENTITY; -(* USED FROM (aic_draughting_elements); *) -ENTITY linear_dimension - SUBTYPE OF (dimension_curve_directed_callout); -END_ENTITY; -(* USED FROM (state_type_schema); *) -ENTITY state_type; - name : label; - description : OPTIONAL text; -END_ENTITY; -(* USED FROM (Basic_data_representation_mim); *) - ENTITY boolean_representation_item - SUBTYPE OF (representation_item, boolean_literal); - END_ENTITY; -(* USED FROM (Basic_data_representation_mim); *) - ENTITY date_representation_item - SUBTYPE OF (representation_item, date); - END_ENTITY; -(* USED FROM (Basic_data_representation_mim); *) - ENTITY date_time_representation_item - SUBTYPE OF (representation_item, date_and_time); - END_ENTITY; -(* USED FROM (state_type_schema); *) -ENTITY state_type_relationship; - name : label; - description : OPTIONAL text; - relating_state_type : SET[1:?] OF state_type; - related_state_type : SET[1:?] OF state_type; -END_ENTITY; -(* USED FROM (Basic_data_representation_mim); *) - ENTITY logical_representation_item - SUBTYPE OF (representation_item, logical_literal); - END_ENTITY; -(* USED FROM (Tagged_text_representation_mim); *) -ENTITY included_text_block - SUBTYPE of (mapped_item); - WHERE - WR1 : 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.STRUCTURED_TEXT_REPRESENTATION' IN TYPEOF(SELF\mapped_item.mapping_source.mapped_representation); -END_ENTITY; -(* USED FROM (aic_draughting_elements); *) -ENTITY datum_feature_callout - SUBTYPE OF (draughting_callout); -END_ENTITY; -(* USED FROM (Tagged_text_representation_mim); *) -ENTITY structured_text_composition - SUBTYPE OF (compound_representation_item); -END_ENTITY; -(* USED FROM (Tagged_text_representation_mim); *) -ENTITY structured_text_representation - SUBTYPE OF (representation); - SELF\Representation.items : SET [1:?] OF string_representation_item_select; -END_ENTITY; -(* USED FROM (sketch_schema); *) -ENTITY implicit_planar_projection_point - SUBTYPE OF (implicit_point_on_plane); - external_point : point; - projection_direction : direction; -END_ENTITY; -(* USED FROM (sketch_schema); *) -ENTITY implicit_planar_curve - ABSTRACT SUPERTYPE OF (ONEOF ( - IMPLICIT_INTERSECTION_CURVE, - IMPLICIT_PROJECTED_CURVE, - IMPLICIT_MODEL_INTERSECTION_CURVE, - IMPLICIT_SILHOUETTE_CURVE)) - SUBTYPE OF (curve, auxiliary_geometric_representation_item); - using_sketch : positioned_sketch; - computed_representation : curve; -DERIVE - curve_plane : plane - := get_plane_of_implicit_geometry(using_sketch); -WHERE - WR1: SIZEOF(TYPEOF(computed_representation) * - ['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.IMPLICIT_PLANAR_CURVE', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CURVE_REPLICA']) = 0; -END_ENTITY; -(* USED FROM (sketch_schema); *) -ENTITY implicit_intersection_curve - SUBTYPE of (implicit_planar_curve); - external_surface : surface; -END_ENTITY; -(* USED FROM (sketch_schema); *) -ENTITY implicit_projected_curve - SUBTYPE of (implicit_planar_curve); - external_curve : curve; - projection_direction : direction; -END_ENTITY; -(* USED FROM (Tagged_text_representation_mim); *) -ENTITY tagged_text_format - SUBTYPE OF (representation_context); -END_ENTITY; -(* USED FROM (sketch_schema); *) -ENTITY implicit_silhouette_curve - SUBTYPE of (implicit_planar_curve); - silhouetted_model : surface_or_solid_model; - view_direction : direction; -END_ENTITY; -(* USED FROM (Tagged_text_representation_mim); *) -ENTITY uniform_resource_identifier - SUBTYPE OF (descriptive_representation_item); -END_ENTITY; -(* USED FROM (date_time_schema); *) -ENTITY time_interval; - id : identifier; - name : label; - description : OPTIONAL text; -END_ENTITY; -(* USED FROM (sketch_schema); *) -ENTITY repositioned_neutral_sketch - SUBTYPE OF (mapped_item, geometric_representation_item); -DERIVE - map : representation_map := SELF\mapped_item.mapping_source; -WHERE - WR1 : 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.NEUTRAL_SKETCH_REPRESENTATION' - IN TYPEOF(map.mapped_representation); - WR2 : 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.AXIS2_PLACEMENT_2D' IN - TYPEOF(map.mapping_origin); - WR3 : 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.AXIS2_PLACEMENT_3D' IN - TYPEOF(SELF\mapped_item.mapping_target); -END_ENTITY; -(* USED FROM (date_time_schema); *) -ENTITY time_interval_relationship; - name : label; - description : OPTIONAL text; - relating_time_interval : time_interval; - related_time_interval : time_interval; -END_ENTITY; -(* USED FROM (kinematic_motion_representation_schema); *) -ENTITY path_parameter_representation - SUBTYPE OF (definitional_representation); - SELF\representation.context_of_items : path_parameter_representation_context; - SELF\representation.items : SET[1:?] OF bounded_curve; -WHERE - WR1: SELF\representation.context_of_items\geometric_representation_context.coordinate_space_dimension = 2; -END_ENTITY; -(* USED FROM (sketch_schema); *) -ENTITY rigid_subsketch - SUBTYPE OF (subsketch); -END_ENTITY; -(* USED FROM (Curve_appearance_mim); *) - ENTITY externally_defined_marker - SUBTYPE OF (externally_defined_symbol, pre_defined_marker); - END_ENTITY; -(* USED FROM (kinematic_motion_representation_schema); *) -ENTITY path_parameter_representation_context - SUBTYPE OF (geometric_representation_context, parametric_representation_context); -END_ENTITY; -(* USED FROM (Curve_appearance_mim); *) - 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; -(* USED FROM (Curve_appearance_mim); *) - 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; -(* USED FROM (date_time_schema); *) -ENTITY event_occurrence; - id : identifier; - name : label; - description : OPTIONAL text; -END_ENTITY; -(* USED FROM (presentation_organization_schema); *) - ENTITY camera_model - ABSTRACT SUPERTYPE OF (ONEOF ( - CAMERA_MODEL_D2, - CAMERA_MODEL_D3)) - SUBTYPE OF (geometric_representation_item); - WHERE - WR1: (SIZEOF (USEDIN (SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + - 'ITEM_DEFINED_TRANSFORMATION.' + - 'TRANSFORM_ITEM_1')) + - SIZEOF (USEDIN (SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + - 'REPRESENTATION_MAP.MAPPING_ORIGIN')) - ) > 0; - WR2: SIZEOF(USEDIN(SELF,'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.'+ - 'STYLED_ITEM.ITEM')) = 0; - END_ENTITY; -(* USED FROM (aic_draughting_elements); *) -ENTITY curve_dimension - SUBTYPE OF (dimension_curve_directed_callout); -END_ENTITY; -(* USED FROM (date_time_schema); *) -ENTITY event_occurrence_relationship; - name : label; - description : OPTIONAL text; - relating_event : event_occurrence; - related_event : event_occurrence; -END_ENTITY; -(* USED FROM (Styled_curve_mim); *) - ENTITY user_defined_curve_font - SUBTYPE OF (curve_style_font, mapped_item); - END_ENTITY; -(* USED FROM (date_time_schema); *) -ENTITY relative_event_occurrence - SUBTYPE OF (event_occurrence); - base_event : event_occurrence; - offset : time_measure_with_unit; -END_ENTITY; -(* USED FROM (management_resources_schema); *) - ENTITY document_usage_role; - name : label; - description : OPTIONAL text; - END_ENTITY; -(* USED FROM (kinematic_motion_representation_schema); *) -ENTITY geometric_representation_context_with_parameter - SUBTYPE OF (geometric_representation_context); - parameter_unit : OPTIONAL unit; -END_ENTITY; -(* USED FROM (External_class_mim); *) - ENTITY externally_defined_class - SUBTYPE OF (class, externally_defined_item); - END_ENTITY; -(* USED FROM (Name_assignment_mim); *) -ENTITY applied_name_assignment - SUBTYPE OF (name_assignment); - item : name_item; -END_ENTITY; -(* USED FROM (kinematic_motion_representation_schema); *) -ENTITY kinematic_path_defined_by_nodes - SUBTYPE OF (kinematic_path); - SELF\kinematic_path.segments : LIST [1:?] OF path_node; - placement_start : placement; -END_ENTITY; -(* USED FROM (Product_breakdown_mim); *) - ENTITY product_definition_element_relationship - SUBTYPE OF (group); - END_ENTITY; -(* USED FROM (kinematic_motion_representation_schema); *) -ENTITY kinematic_path_defined_by_curves - SUBTYPE OF (kinematic_path); - SELF\kinematic_path.segments : LIST [1:?] OF curve_based_path_with_orientation; -END_ENTITY; -(* USED FROM (Product_breakdown_mim); *) - ENTITY breakdown_of - SUBTYPE OF (product_definition_relationship); - END_ENTITY; -(* USED FROM (Specified_product_mim); *) - ENTITY product_specification - SUBTYPE OF (product_identification, configurable_item); - END_ENTITY; -(* USED FROM (product_structure_schema); *) -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; -(* USED FROM (presentation_definition_schema); *) - ENTITY annotation_fill_area_occurrence - SUBTYPE OF (annotation_occurrence); - fill_style_target : point; - SELF\styled_item.item : annotation_fill_area; - END_ENTITY; -(* USED FROM (Physical_breakdown_mim); *) - ENTITY physical_element_usage - SUBTYPE OF (breakdown_element_usage); - END_ENTITY; -(* USED FROM (Product_breakdown_mim); *) - ENTITY breakdown_element_group_assignment - SUBTYPE OF (group_assignment); - SELF\group_assignment.assigned_group : product_definition_element_relationship; - items : SET[1:1] OF product_definition_or_breakdown_element_usage; - END_ENTITY; -(* USED FROM (product_structure_schema); *) -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; -(* USED FROM (product_structure_schema); *) -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; -(* USED FROM (geometric_model_schema); *) -ENTITY tessellated_solid - SUBTYPE OF (tessellated_item); - items : SET[1:?] OF tessellated_structured_item; - geometric_link : OPTIONAL manifold_solid_brep; -END_ENTITY; -(* USED FROM (geometric_model_schema); *) -ENTITY tessellated_shell - SUBTYPE OF (tessellated_item); - items : SET[1:?] OF tessellated_structured_item; - topological_link : OPTIONAL connected_face_set; -END_ENTITY; -(* USED FROM (geometric_model_schema); *) -ENTITY tessellated_wire - SUBTYPE OF (tessellated_item); - items : SET[1:?] OF tessellated_edge_or_vertex; - geometric_model_link : OPTIONAL path_or_composite_curve; -END_ENTITY; -(* USED FROM (geometric_model_schema); *) -ENTITY tessellated_curve_set - SUBTYPE OF (tessellated_item); - coordinates : coordinates_list; - line_strips : LIST[1:?] OF LIST[2:?] OF INTEGER; -END_ENTITY; -(* USED FROM (Functional_breakdown_mim); *) - ENTITY functional_breakdown_context - SUBTYPE OF (breakdown_context); - END_ENTITY; -(* USED FROM (Assembly_component_mim); *) -ENTITY component_definition - SUBTYPE OF (product_definition, product_definition_relationship); - DERIVE - SELF\product_definition_relationship.related_product_definition : component_definition := SELF; - WHERE - WR1: NOT EXISTS(SELF\product_definition_relationship.description); - WR2: NOT EXISTS(SELF\property_definition.description); - WR3: SELF\product_definition_relationship.id = SELF\product_definition.id; - WR4: SELF\product_definition_relationship.name = 'definition usage'; - WR5: NOT ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PRODUCT_DEFINITION_USAGE' IN TYPEOF(SELF)); -END_ENTITY; -(* USED FROM (geometric_model_schema); *) -ENTITY tessellated_connecting_edge - SUBTYPE OF (tessellated_edge); - smooth : LOGICAL; - face1 : tessellated_face; - face2 : tessellated_face; - line_strip_face1 : LIST[2:?] OF INTEGER; - line_strip_face2 : LIST[2:?] OF INTEGER; -WHERE - WR1: SIZEOF(line_strip_face1) = SIZEOF(line_strip_face2); - WR2: SIZEOF(line_strip_face1) = SIZEOF(SELF\tessellated_edge.line_strip); -END_ENTITY; -(* USED FROM (Assembly_component_mim); *) -ENTITY physical_component - SUBTYPE OF (assembly_component); -END_ENTITY; -(* USED FROM (Assembly_component_mim); *) -ENTITY thermal_component - SUBTYPE OF (assembly_component); -END_ENTITY; -(* USED FROM (kinematic_motion_representation_schema); *) -ENTITY linear_path - SUBTYPE OF (path_node); -DERIVE - SELF\kinematic_path_segment.transition : transition_code := continuous; -END_ENTITY; -(* USED FROM (kinematic_motion_representation_schema); *) -ENTITY curve_based_path - SUBTYPE OF (path_node); - path_curve : curve; -END_ENTITY; -(* USED FROM (product_property_definition_schema); *) - ENTITY component_path_shape_aspect - SUBTYPE OF (shape_aspect); - location : multi_or_next_assembly_usage_occurrence; - component_shape_aspect : internal_or_reflected_shape_aspect; - UNIQUE - UR1 : location, component_shape_aspect; - END_ENTITY; -(* USED FROM (geometric_model_schema); *) -ENTITY manifold_solid_brep - SUBTYPE OF (solid_model); - outer : closed_shell; -END_ENTITY; -(* USED FROM (kinematic_motion_representation_schema); *) -ENTITY interpolated_configuration_representation - SUBTYPE OF (representation); - SELF\representation.context_of_items : geometric_representation_context_with_parameter; - SELF\representation.items : SET[1:?] OF interpolated_configuration_sequence; -END_ENTITY; -(* USED FROM (geometric_model_schema); *) -ENTITY complex_triangulated_face - SUBTYPE OF (tessellated_face); - pnindex : LIST[0:?] OF INTEGER; - triangle_strips : LIST[0:?] OF LIST[3:?] OF INTEGER; - triangle_fans : LIST[0:?] OF LIST[3:?] OF INTEGER; -WHERE - WR1: ((SIZEOF(pnindex) = 0) OR (SIZEOF(pnindex) = SELF\tessellated_face.pnmax)); - WR2: NOT((SIZEOF(pnindex) = 0) AND (SELF\tessellated_face.pnmax <> coordinates.npoints)); - WR3: NOT ((SIZEOF(triangle_strips) = 0) AND (SIZEOF(triangle_fans) = 0)); -END_ENTITY; -(* USED FROM (geometric_model_schema); *) -ENTITY coordinates_list - SUBTYPE OF (tessellated_item); - npoints : INTEGER; - position_coords : LIST[1:?] OF LIST[3:3] OF REAL; -WHERE - WR1: npoints = SIZEOF(position_coords); - WR2: SIZEOF (['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.REPOSITIONED_TESSELLATED_ITEM'] * TYPEOF(SELF)) = 0; -END_ENTITY; -(* USED FROM (draughting_element_schema); *) - ENTITY tessellated_annotation_occurrence - SUBTYPE OF (annotation_occurrence); - SELF\styled_item.item : tessellated_geometric_set; - END_ENTITY; -(* USED FROM (Characteristic_mim); *) - ENTITY characteristic_data_table_header - SUBTYPE OF (general_property); - END_ENTITY; -(* USED FROM (Characteristic_mim); *) - ENTITY characteristic_data_column_header - SUBTYPE OF (general_property); - END_ENTITY; -(* USED FROM (geometric_model_schema); *) -ENTITY brep_with_voids - SUBTYPE OF (manifold_solid_brep); - voids : SET[1:?] OF oriented_closed_shell; -END_ENTITY; -(* USED FROM (Characteristic_mim); *) - ENTITY characteristic_data_table_header_decomposition - SUBTYPE OF (general_property_relationship); - END_ENTITY; -(* USED FROM (kinematic_motion_representation_schema); *) -ENTITY path_node - ABSTRACT SUPERTYPE OF (ONEOF ( - POINT_TO_POINT_PATH, - CIRCULAR_PATH, - LINEAR_PATH, - CURVE_BASED_PATH)) - SUBTYPE OF (kinematic_path_segment); - placement_end : placement; -END_ENTITY; -(* USED FROM (topology_schema); *) - ENTITY closed_shell - SUBTYPE OF (connected_face_set); - END_ENTITY; -(* USED FROM (topology_schema); *) - 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 ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ORIENTED_CLOSED_SHELL' - IN TYPEOF (SELF.closed_shell_element)); - END_ENTITY; -(* USED FROM (topology_schema); *) - 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 ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ORIENTED_FACE' IN TYPEOF (SELF.face_element)); - END_ENTITY; -(* USED FROM (shape_aspect_definition_schema); *) -ENTITY shape_representation_with_parameters - SUBTYPE OF (shape_representation); - SELF\representation.items : SET[1:?] OF shape_representation_with_parameters_items; -END_ENTITY; -(* USED FROM (geometric_model_schema); *) -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; -(* USED FROM (document_schema); *) - 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; -(* USED FROM (document_schema); *) - ENTITY document_representation_type; - name : label; - represented_document : document; - END_ENTITY; -(* USED FROM (Foundation_state_definition_mim); *) -ENTITY applied_state_type_assignment - SUBTYPE OF (state_type_assignment); ---for bug in 409 items are not extended --- items : SET[1:?] OF state_type_of_item; -END_ENTITY; -(* USED FROM (assembly_feature_relationship_schema); *) -ENTITY free_kinematic_motion_representation - SUBTYPE OF (representation_relationship_with_transformation); -SELF\representation_relationship.rep_1: - representative_shape_representation; -SELF\representation_relationship.rep_2: - representative_shape_representation; - motion : kinematic_path; -WHERE -WR1: 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ITEM_DEFINED_TRANSFORMATION' IN TYPEOF - (SELF\representation_relationship_with_transformation. - transformation_operator); -WR2: ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.GEOMETRIC_REPRESENTATION_ITEM' IN TYPEOF - (SELF\representation_relationship_with_transformation. - transformation_operator\item_defined_transformation.transform_item_1)) AND - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.GEOMETRIC_REPRESENTATION_ITEM' IN TYPEOF - (SELF\representation_relationship_with_transformation. - transformation_operator\item_defined_transformation.transform_item_2)); -WR3: ((dimension_of - (SELF\representation_relationship_with_transformation. - transformation_operator\item_defined_transformation. - transform_item_1) = 3 ) AND - (dimension_of - (SELF\representation_relationship_with_transformation. - transformation_operator\item_defined_transformation. - transform_item_2) = 3 )); -WR4:(SELF\representation_relationship.rep_1 IN - (using_representations - (SELF\representation_relationship_with_transformation. - transformation_operator\item_defined_transformation.transform_item_1) + - using_representation_with_mapping - (SELF\representation_relationship_with_transformation. - transformation_operator\item_defined_transformation.transform_item_1))) AND - (SELF\representation_relationship.rep_2 IN - (using_representations - (SELF\representation_relationship_with_transformation. - transformation_operator\item_defined_transformation.transform_item_2) + - using_representation_with_mapping - (SELF\representation_relationship_with_transformation. - transformation_operator\item_defined_transformation.transform_item_2))); -END_ENTITY; -- free_kinematic_motion_representation -(* USED FROM (state_type_schema); *) -ENTITY state_type_assignment - ABSTRACT SUPERTYPE; - assigned_state_type : state_type; - role : state_type_role; -END_ENTITY; -(* USED FROM (geometric_model_schema); *) -(* Pruned SUPERTYPE *) -ENTITY swept_face_solid - SUPERTYPE OF (ONEOF ( - EXTRUDED_FACE_SOLID, - REVOLVED_FACE_SOLID)) - SUBTYPE OF (solid_model); - swept_face : face_surface; -WHERE - WR1: 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PLANE' IN TYPEOF(swept_face.face_geometry); -END_ENTITY; -(* USED FROM (geometric_model_schema); *) -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; -(* USED FROM (geometric_model_schema); *) -ENTITY sphere - SUBTYPE OF (geometric_representation_item); - radius : positive_length_measure; - centre : point; -END_ENTITY; -(* USED FROM (geometric_model_schema); *) -ENTITY right_circular_cylinder - SUBTYPE OF (geometric_representation_item); - position : axis1_placement; - height : positive_length_measure; - radius : positive_length_measure; -END_ENTITY; -(* USED FROM (Tagged_text_representation_mim); *) -ENTITY tagged_text_item - SUBTYPE OF (descriptive_representation_item); -END_ENTITY; -(* USED FROM (geometric_model_schema); *) -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; -(* USED FROM (parameterization_schema); *) -ENTITY generated_finite_numeric_space - SUBTYPE OF (finite_space); - start_value : maths_number; - increment_value : maths_number; - increment_number : positive_integer; -DERIVE - SELF\finite_space.members : SET [2:?] OF maths_number - := make_numeric_set(start_value, increment_value, increment_number); -WHERE - WR1: increment_value <> 0.0; -END_ENTITY; -(* USED FROM (kinematic_motion_representation_schema); *) -ENTITY kinematic_path_segment - ABSTRACT SUPERTYPE OF (ONEOF ( - PATH_NODE, - CURVE_BASED_PATH_WITH_ORIENTATION)) - SUBTYPE OF (founded_item); - t_end : parameter_value; - transition : transition_code; -END_ENTITY; -(* USED FROM (variational_representation_schema); *) -ENTITY auxiliary_geometric_representation_item - SUBTYPE OF (geometric_representation_item, - variational_representation_item); -END_ENTITY; -(* USED FROM (date_time_schema); *) -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; -(* USED FROM (geometric_model_schema); *) -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; -(* USED FROM (kinematic_motion_representation_schema); *) -ENTITY link_motion_representation_along_path - SUPERTYPE OF (ONEOF ( - PRESCRIBED_PATH, - RESULTING_PATH) ) - SUBTYPE OF (representation); - SELF\representation.items : SET [1:?] OF kinematic_path; - SELF\representation.context_of_items : geometric_representation_context_with_parameter; -END_ENTITY; -(* USED FROM (geometric_model_schema); *) -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; -(* USED FROM (geometry_schema); *) -ENTITY bounded_pcurve - SUBTYPE OF (bounded_curve, pcurve); -WHERE - WR1: ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.BOUNDED_CURVE' IN TYPEOF(SELF\pcurve.reference_to_curve.items[1])); -END_ENTITY; -(* USED FROM (parameterization_schema); *) -ENTITY unbound_variational_parameter_semantics - SUBTYPE OF (variable_semantics); -END_ENTITY; -(* USED FROM (parameterization_schema); *) -ENTITY instance_attribute_reference - SUBTYPE OF (variable_semantics); - attribute_name : attribute_identifier; - owning_instance : representation_item; -END_ENTITY; -(* USED FROM (kinematic_motion_representation_schema); *) -ENTITY item_link_motion_relationship - SUBTYPE OF (link_motion_relationship); - SELF\representation_relationship.rep_1 : shape_representation; - item : geometric_representation_item; -END_ENTITY; -(* USED FROM (kinematic_motion_representation_schema); *) -ENTITY link_motion_transformation - SUBTYPE OF (item_defined_transformation); - SELF\item_defined_transformation.transform_item_1 : rigid_placement; - SELF\item_defined_transformation.transform_item_2 : kinematic_path; -END_ENTITY; -(* USED FROM (Assembly_component_mim); *) -ENTITY assembly_component - SUBTYPE OF (component_definition, product_definition_shape); - DERIVE - SELF\property_definition.definition : assembly_component := SELF; - WHERE - WR1: NOT EXISTS(SELF\property_definition.description); -END_ENTITY; -(* USED FROM (geometry_schema); *) -ENTITY bounded_surface_curve - SUBTYPE OF (bounded_curve, surface_curve); -WHERE - WR1: ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.BOUNDED_CURVE' IN TYPEOF(SELF\surface_curve.curve_3d)); -END_ENTITY; -(* USED FROM (geometry_schema); *) -ENTITY evaluated_degenerate_pcurve - SUBTYPE OF (degenerate_pcurve); - equivalent_point : cartesian_point; -END_ENTITY; -(* USED FROM (assembly_feature_relationship_schema); *) -ENTITY constrained_kinematic_motion_representation - SUBTYPE OF (representation_relationship_with_transformation); -SELF\representation_relationship.rep_1: - representative_shape_representation; -SELF\representation_relationship.rep_2: - representative_shape_representation; -WHERE -WR1: ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.AXIS2_PLACEMENT_3D' IN TYPEOF - (SELF\representation_relationship_with_transformation. - transformation_operator\item_defined_transformation.transform_item_1)) AND - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.AXIS2_PLACEMENT_3D' IN TYPEOF - (SELF\representation_relationship_with_transformation. - transformation_operator\item_defined_transformation.transform_item_2)); -WR2: ((dimension_of - (SELF\representation_relationship_with_transformation. - transformation_operator\item_defined_transformation. - transform_item_1) = 3 ) AND - (dimension_of - (SELF\representation_relationship_with_transformation. - transformation_operator\item_defined_transformation. - transform_item_2) = 3 )); -WR3:(SELF\representation_relationship.rep_1 IN - (using_representations - (SELF\representation_relationship_with_transformation. - transformation_operator\item_defined_transformation.transform_item_1) + - using_representation_with_mapping - (SELF\representation_relationship_with_transformation. - transformation_operator\item_defined_transformation.transform_item_1))) AND - (SELF\representation_relationship.rep_2 IN - (using_representations - (SELF\representation_relationship_with_transformation. - transformation_operator\item_defined_transformation.transform_item_2) + - using_representation_with_mapping - (SELF\representation_relationship_with_transformation. - transformation_operator\item_defined_transformation.transform_item_2))); -WR4: 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.KINEMATIC_PAIR' IN TYPEOF - (SELF\representation_relationship_with_transformation. - transformation_operator); -END_ENTITY; -- constrained_kinematic_motion_representation -(* USED FROM (kinematic_motion_representation_schema); *) -ENTITY interpolated_configuration_segment - SUBTYPE OF (founded_item); - state : mechanism_state_representation; - t_parameter : parameter_value; - interpolation : interpolation_type; -END_ENTITY; -(* USED FROM (kinematic_motion_representation_schema); *) -ENTITY link_motion_relationship - SUBTYPE OF (definitional_representation_relationship, representation_relationship_with_transformation); - SELF\representation_relationship.rep_1 : link_or_shape_representation; - SELF\representation_relationship.rep_2 : link_motion_representation_along_path; - SELF\representation_relationship_with_transformation.transformation_operator : link_motion_transformation; -WHERE - WR1: transformation_operator\item_defined_transformation.transform_item_1 IN rep_1.items; - WR2: transformation_operator\item_defined_transformation.transform_item_2 IN rep_2.items; -END_ENTITY; -(* USED FROM (geometry_schema); *) -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: 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PCURVE' IN TYPEOF(SELF\surface_curve.associated_geometry[1]); - WR4: 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PCURVE' IN TYPEOF(SELF\surface_curve.associated_geometry[2]); -END_ENTITY; -(* USED FROM (geometry_schema); *) -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; -(* USED FROM (parameterization_schema); *) -ENTITY unbound_parameter_environment - SUBTYPE OF (environment); -WHERE - WR1: ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.UNBOUND_VARIATIONAL_PARAMETER' IN - TYPEOF(SELF\environment.syntactic_representation)) AND - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.UNBOUND_VARIATIONAL_PARAMETER_SEMANTICS' IN - TYPEOF(SELF\environment.semantics)); -END_ENTITY; -(* USED FROM (parameterization_schema); *) -ENTITY bound_parameter_environment - SUBTYPE OF (environment); -WHERE - WR1: ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.BOUND_VARIATIONAL_PARAMETER' IN - TYPEOF(SELF\environment.syntactic_representation)) AND - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.INSTANCE_ATTRIBUTE_REFERENCE' IN - TYPEOF(SELF\environment.semantics)); -END_ENTITY; -(* USED FROM (presentation_organization_schema); *) - ENTITY presentation_layer_assignment; - name : label; - description : text; - assigned_items : SET [1:?] OF layered_item; - END_ENTITY; -(* USED FROM (topology_schema); *) - ENTITY open_shell - SUBTYPE OF (connected_face_set); - END_ENTITY; -(* USED FROM (parameterization_schema); *) -ENTITY bound_variational_parameter - SUBTYPE OF (variational_parameter); -DERIVE - SELF\variational_parameter.parameter_current_value : maths_value := ?; -WHERE -WR1 : 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.BOUND_PARAMETER_ENVIRONMENT' - IN TYPEOF(SELF\generic_variable.interpretation); -END_ENTITY; -(* USED FROM (parameterization_schema); *) -ENTITY unbound_variational_parameter - SUBTYPE OF (variational_parameter); -WHERE - WR1: 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.UNBOUND_PARAMETER_ENVIRONMENT' - IN TYPEOF(SELF\generic_variable.interpretation); -END_ENTITY; -(* USED FROM (parameterization_schema); *) -ENTITY variational_parameter - ABSTRACT SUPERTYPE OF (ONEOF ( - BOUND_VARIATIONAL_PARAMETER, - UNBOUND_VARIATIONAL_PARAMETER)) - SUBTYPE OF (variational_representation_item, maths_variable); - parameter_description : OPTIONAL text; - parameter_current_value : maths_value; -WHERE - WR1 : member_of(parameter_current_value, - SELF\maths_variable.values_space); - WR2 : SELF\maths_variable.name = SELF\representation_item.name; -END_ENTITY; -(* USED FROM (aic_curve_swept_solid); *) - ENTITY curve_swept_solid_shape_representation - SUBTYPE OF (shape_representation); - WHERE - WR1: SIZEOF (QUERY (it <* SELF.items | - NOT (SIZEOF (['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SWEPT_AREA_SOLID', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SWEPT_DISK_SOLID', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MAPPED_ITEM', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.AXIS2_PLACEMENT_3D'] * - TYPEOF(it)) = 1))) = 0; - WR2: SIZEOF (QUERY (it <* SELF.items | - SIZEOF(['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SWEPT_AREA_SOLID', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SWEPT_DISK_SOLID', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MAPPED_ITEM'] * TYPEOF(it)) =1 )) > 0; - WR3: SIZEOF (QUERY (mi <* QUERY (it <* items | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MAPPED_ITEM' IN TYPEOF(it)) | - NOT ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SURFACE_CURVE_SWEPT_AREA_SOLID' IN - TYPEOF(it)) | - NOT(('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SURFACE_CURVE' IN - TYPEOF(scsas\surface_curve_swept_area_solid.directrix)) OR - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PCURVE' IN - TYPEOF(scsas\surface_curve_swept_area_solid.directrix))))) = 0; - END_ENTITY; -(* USED FROM (product_structure_schema); *) -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], - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRODUCT_DEFINITION_USAGE'); -END_ENTITY; -(* USED FROM (Specification_control_mim); *) - 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 ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRODUCT_DEFINITION' IN TYPEOF(i)) )) = 0; - WR3: ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRODUCT_CONCEPT_FEATURE_CATEGORY_USAGE' IN TYPEOF(i)) )) = 0); - END_ENTITY; -(* USED FROM (procedural_shape_model_schema); *) -ENTITY explicit_procedural_geometric_representation_item_relationship - SUBTYPE OF (explicit_procedural_representation_item_relationship); - SELF\representation_item_relationship.relating_representation_item : - procedural_shape_representation_sequence; - SELF\representation_item_relationship.related_representation_item : - geometric_representation_item; -WHERE - WR1 : NOT ( - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROCEDURAL_SHAPE_REPRESENTATION_SEQUENCE' - IN TYPEOF( - SELF\representation_item_relationship.related_representation_item)); -END_ENTITY; -(* USED FROM (shape_aspect_definition_schema); *) -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 (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.DATUM' IN TYPEOF (sar.related_shape_aspect)) AND NOT ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.COMMON_DATUM' IN TYPEOF (sar.related_shape_aspect))) )) = 0; -END_ENTITY; -(* USED FROM (shape_data_quality_criteria_schema); *) - ENTITY multiply_defined_placements - SUBTYPE OF(multiply_defined_geometry); - SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; - assessment_specification_2 : shape_data_quality_assessment_by_numerical_test; - WHERE - WR1 : ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + - 'SHAPE_DATA_QUALITY_UPPER_VALUE_LIMIT' - IN TYPEOF(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)) - AND ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE' - IN value_limit_type(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)); - WR2 : ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + - 'SHAPE_DATA_QUALITY_UPPER_VALUE_LIMIT' - IN TYPEOF(assessment_specification_2\shape_data_quality_assessment_by_numerical_test.threshold)) - AND ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PLANE_ANGLE_MEASURE' - IN value_limit_type(assessment_specification_2\shape_data_quality_assessment_by_numerical_test.threshold)); - WR3 : validate_measured_data_type(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.'+ - 'PLANE_ANGLE_AND_LENGTH_PAIR'); - WR4 : validate_inspected_elements_type(SELF, - ['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PLACEMENT','AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PLACEMENT']); - WR5 : validate_locations_of_extreme_value_type(SELF, - []); - WR6 : validate_accuracy_types(SELF, - []); - WR7 : SIZEOF(QUERY(sdqr <* bag_to_set(USEDIN(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.'+ - 'DATA_QUALITY_INSPECTION_RESULT.'+ - 'CRITERION_INSPECTED'))| - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.'+ - 'SHAPE_DATA_QUALITY_INSPECTION_RESULT' - IN TYPEOF(sdqr)) AND - (SIZEOF(QUERY(sdqiir <* bag_to_set(USEDIN(sdqr, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.'+ - 'DATA_QUALITY_INSPECTION_REPORT.'+ - 'INSPECTION_RESULT'))| - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.'+ - 'SHAPE_DATA_QUALITY_INSPECTION_INSTANCE_REPORT' - IN TYPEOF(sdqiir)) AND - (SIZEOF(QUERY(sdqiri <* sdqiir.inspected_instances| - (TYPEOF(sdqiri.inspected_elements[1]) - <>TYPEOF(sdqiri.inspected_elements[2])))) = 0) - )) = 0) - )) = 0; - END_ENTITY; -(* USED FROM (sketch_schema); *) -ENTITY neutral_sketch_representation - SUBTYPE OF (shape_representation); - neutral_sketch_semantics : curves_or_area; - SELF\representation.items : SET[1:?] OF sketch_element_select; -WHERE - WR1: SIZEOF(QUERY(q <* items | NOT( - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.GEOMETRIC_REPRESENTATION_ITEM' IN TYPEOF(q)) AND - (q\geometric_representation_item.dim = 3)))) = 0; -END_ENTITY; -(* USED FROM (iso13584_generic_expressions_schema); *) -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; -(* USED FROM (structural_response_representation_schema); *) -ENTITY fea_material_property_representation - SUBTYPE OF (material_property_representation); -WHERE - WR1: SIZEOF (QUERY (item <* - SELF\property_definition_representation.used_representation.items | - SIZEOF (['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + - 'FEA_LINEAR_ELASTICITY', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + - 'FEA_MASS_DENSITY', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + - 'FEA_AREA_DENSITY', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + - 'FEA_TANGENTIAL_COEFFICIENT_OF_LINEAR_THERMAL_EXPANSION', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + - 'FEA_SECANT_COEFFICIENT_OF_LINEAR_THERMAL_EXPANSION', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + - 'FEA_MOISTURE_ABSORPTION', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + - 'FEA_SHELL_MEMBRANE_STIFFNESS', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + - 'FEA_SHELL_BENDING_STIFFNESS', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + - 'FEA_SHELL_MEMBRANE_BENDING_COUPLING_STIFFNESS', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + - 'FEA_SHELL_SHEAR_STIFFNESS'] * TYPEOF (item) - ) = 1 - )) = 1; - WR2: 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MATERIAL_PROPERTY' IN - TYPEOF (SELF\property_definition_representation.definition); -END_ENTITY; -(* USED FROM (parameterization_schema); *) -ENTITY fixed_instance_attribute_set - SUBTYPE OF (variational_representation_item); - fixed_attributes : SET[1:?] OF instance_attribute_reference; -WHERE - WR1: SIZEOF(QUERY(q <* using_representations(SELF) | - SIZEOF(QUERY(r <* q.items | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FIXED_INSTANCE_ATTRIBUTE_SET' - IN TYPEOF(r))) > 1)) = 0; -END_ENTITY; -(* USED FROM (Assembly_technology_mim); *) -ENTITY assembly_joint - SUBTYPE OF (component_feature_joint); -WHERE - WR1: acyclic_shape_aspect_relationship(SELF, - [SELF\shape_aspect_relationship.related_shape_aspect], - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.'+ - 'ASSEMBLY_JOINT'); -END_ENTITY; -(* USED FROM (variational_representation_schema); *) -ENTITY variational_representation_item - ABSTRACT SUPERTYPE OF ( - AUXILIARY_GEOMETRIC_REPRESENTATION_ITEM) - SUBTYPE OF (representation_item); -WHERE - WR1: SIZEOF(QUERY(q <* using_representations(SELF) | - NOT ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.VARIATIONAL_REPRESENTATION' - IN TYPEOF(q)))) = 0; - WR2: SIZEOF(QUERY(q <* using_representations(SELF) | - NOT (SELF IN q.items))) = 0; -END_ENTITY; -(* USED FROM (shape_data_quality_criteria_schema); *) - ENTITY open_edge_loop - SUBTYPE OF(erroneous_topology); - SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_logical_test; - WHERE - WR1 : validate_measured_data_type(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.BOOLEAN_VALUE'); - WR2 : validate_inspected_elements_type(SELF, - ['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.EDGE_LOOP']); - WR3 : validate_locations_of_extreme_value_type(SELF, - ['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ORIENTED_EDGE']); - WR4 : validate_accuracy_types(SELF, - []); - END_ENTITY; -(* USED FROM (variational_representation_schema); *) -ENTITY variational_representation - SUBTYPE OF (representation); -INVERSE - cm_link : variational_current_representation_relationship FOR rep_1; -WHERE - WR1: SIZEOF(QUERY(q <* SELF\representation.items | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.VARIATIONAL_REPRESENTATION_ITEM' - IN TYPEOF(q))) > 0; - WR2: SIZEOF(QUERY(q <* (SELF\representation.items - - cm_link.rep_2.items) | invalidate_vrep_item(q))) = 0; -END_ENTITY; -(* USED FROM (variational_representation_schema); *) -ENTITY variational_current_representation_relationship - SUBTYPE OF (representation_relationship); - SELF\representation_relationship.rep_1 - : variational_representation; - current_result : representation; -UNIQUE - UR1: current_result; -WHERE - WR1: QUERY(q <* SELF\representation_relationship.rep_1.items | NOT - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.VARIATIONAL_REPRESENTATION_ITEM' - IN TYPEOF(q))) = SELF\representation_relationship.rep_2.items; - WR2: SELF\representation_relationship.rep_1.context_of_items :=: - SELF\representation_relationship.rep_2.context_of_items; - WR3: SIZEOF(QUERY(q <* SELF\representation_relationship.rep_2.items | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.VARIATIONAL_REPRESENTATION_ITEM' - IN TYPEOF(q))) = 0; - WR4: TYPEOF(SELF\representation_relationship.rep_1) - - TYPEOF(SELF\representation_relationship.rep_2) = - ['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.VARIATIONAL_REPRESENTATION']; - WR5: current_result :=: SELF\representation_relationship.rep_2; -END_ENTITY; -(* USED FROM (shape_data_quality_criteria_schema); *) - ENTITY free_edge - SUBTYPE OF(inapt_topology); - SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_logical_test; - WHERE - WR1 : validate_measured_data_type(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.BOOLEAN_VALUE'); - WR2 : validate_inspected_elements_type(SELF, - ['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CONNECTED_FACE_SET']); - WR3 : validate_locations_of_extreme_value_type(SELF, - ['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.EDGE_CURVE']); - WR4 : validate_accuracy_types(SELF, - []); - WR5 : SIZEOF(QUERY(sdqr <* bag_to_set(USEDIN(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.'+ - 'DATA_QUALITY_INSPECTION_RESULT.'+ - 'CRITERION_INSPECTED'))| - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.'+ - 'SHAPE_DATA_QUALITY_INSPECTION_RESULT' - IN TYPEOF(sdqr)) AND - (SIZEOF(QUERY(sdqiir <* bag_to_set(USEDIN(sdqr, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.'+ - 'DATA_QUALITY_INSPECTION_REPORT.'+ - 'INSPECTION_RESULT'))| - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.'+ - 'SHAPE_DATA_QUALITY_INSPECTION_INSTANCE_REPORT' - IN TYPEOF(sdqiir)) AND - (SIZEOF(QUERY(sdqiri <* sdqiir.inspected_instances| - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CLOSED_SHELL' - IN TYPEOF(sdqiri.inspected_elements[1])))) = 0) - )) = 0) - )) = 0; - END_ENTITY; -(* USED FROM (shape_data_quality_criteria_schema); *) - ENTITY shape_data_quality_value_range - SUBTYPE OF(compound_representation_item); - WHERE - WR1 : ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SET_REPRESENTATION_ITEM' - IN TYPEOF (SELF\compound_representation_item.item_element)) AND - ((SIZEOF(SELF\compound_representation_item.item_element) = 2) AND - ((SIZEOF(QUERY (i1 <* SELF\compound_representation_item.item_element | - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM' IN TYPEOF(i1)))) = 2) - OR (SIZEOF(QUERY (i2 <* SELF\compound_representation_item.item_element | - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.VALUE_REPRESENTATION_ITEM' IN TYPEOF(i2)))) = 2))) ; - WR2 : (SIZEOF(QUERY (i <* SELF\compound_representation_item.item_element - | (i.name = 'upper limit'))) = 1) - AND (SIZEOF(QUERY (i <* SELF\compound_representation_item.item_element - | (i.name = 'lower limit'))) = 1); - WR3 : (SIZEOF(QUERY(i1 <* SELF\compound_representation_item.item_element | - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM' IN TYPEOF (i1)) AND - (SIZEOF (QUERY (i2 <* SELF\compound_representation_item.item_element | - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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) - OR - (SIZEOF(QUERY(i1 <* SELF\compound_representation_item.item_element | - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.VALUE_REPRESENTATION_ITEM' IN TYPEOF (i1)) AND - (SIZEOF (QUERY (i2 <* SELF\compound_representation_item.item_element | - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.VALUE_REPRESENTATION_ITEM' IN TYPEOF (i2)) AND - (i1 :<>: i2) AND - (TYPEOF(i1\value_representation_item.value_component) = - TYPEOF(i2\value_representation_item.value_component))) - ) = 1))) = 2); - END_ENTITY; -(* USED FROM (Basic_data_representation_mim); *) - ENTITY rational_representation_item - SUBTYPE OF (representation_item, slash_expression); - WHERE - WR1: SIZEOF( QUERY( operand <* SELF\binary_generic_expression.operands | - NOT('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.INT_LITERAL' IN TYPEOF(operand)))) = 0; - END_ENTITY; -(* USED FROM (product_data_quality_criteria_schema); *) - ENTITY data_quality_measurement_requirement - SUBTYPE OF(representation_item); - WHERE - WR1 : SIZEOF(QUERY(q <* - bag_to_set( USEDIN(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.REPRESENTATION.ITEMS')) - |'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.'+ - 'DATA_QUALITY_INSPECTION_RESULT_REPRESENTATION' - IN TYPEOF(q)))=0; - END_ENTITY; -(* USED FROM (geometry_schema); *) -ENTITY composite_curve - SUBTYPE OF (bounded_curve); - segments : LIST[1:?] OF composite_curve_segment; - self_intersect : LOGICAL; -DERIVE - n_segments : INTEGER := SIZEOF(segments); - closed_curve : LOGICAL := segments[n_segments].transition <> discontinuous; -WHERE - WR1: ((NOT closed_curve) AND (SIZEOF(QUERY(temp <* segments | temp.transition = discontinuous)) = 1)) OR ((closed_curve) AND (SIZEOF(QUERY(temp <* segments | temp.transition = discontinuous)) = 0)); -END_ENTITY; -(* USED FROM (geometric_model_schema); *) -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; -(* USED FROM (Characteristic_mim); *) - ENTITY table_representation_item - SUBTYPE OF (compound_representation_item); - WHERE - WR1: SIZEOF(QUERY(itet <* SELF\compound_representation_item.item_element | - NOT('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ROW_REPRESENTATION_ITEM' IN TYPEOF(itet)) - )) = 0; - END_ENTITY; -(* USED FROM (measure_schema); *) -ENTITY absorbed_dose_unit - SUBTYPE OF (derived_unit); -WHERE - WR1: derive_dimensional_exponents(SELF) = dimensions_for_si_unit (si_unit_name.gray); -END_ENTITY; -(* USED FROM (aic_draughting_annotation); *) -ENTITY draughting_symbol_representation - SUBTYPE of (symbol_representation); - SELF\representation.items : SET[1:?] OF draughting_symbol_representation_item; -UNIQUE - UR1: SELF\representation.name; -WHERE - WR1: - SIZEOF (QUERY (item <* SELF\representation.items | - (SIZEOF (TYPEOF (item) * - ['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ANNOTATION_CURVE_OCCURRENCE', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ANNOTATION_SYMBOL_OCCURRENCE', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ANNOTATION_FILL_AREA_OCCURRENCE', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ANNOTATION_TEXT_OCCURRENCE']) = 1) - )) >= 1; - WR2: - SIZEOF (QUERY (item <* SELF\representation.items | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ANNOTATION_SUBFIGURE_OCCURRENCE' - IN TYPEOF (item))) = 0; - WR3: - SIZEOF ( QUERY (rm <* - USEDIN (SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + - 'REPRESENTATION_MAP.MAPPED_REPRESENTATION') | - NOT ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SYMBOL_REPRESENTATION_MAP' - IN TYPEOF(rm)))) = 0; - WR4: - SIZEOF (SELF.context_of_items.representations_in_context) = 1; -END_ENTITY; -(* USED FROM (presentation_appearance_schema); *) - 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; -(* USED FROM (assembly_feature_relationship_schema); *) -ENTITY shape_aspect_relationship_representation_association; - represented_shape_aspect_relationship: shape_aspect_relationship; - representing_representation_relationship : representation_relationship; -WHERE -WR1: ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.REPRESENTATIVE_SHAPE_REPRESENTATION' IN - TYPEOF(representing_representation_relationship\ - representation_relationship.rep_1)) AND - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.REPRESENTATIVE_SHAPE_REPRESENTATION' IN - TYPEOF(representing_representation_relationship\ - representation_relationship.rep_2)); -WR2: (represented_shape_aspect_relationship.relating_shape_aspect IN - using_shape_aspect_of_shape_representation - (representing_representation_relationship.rep_1)) AND - (represented_shape_aspect_relationship.related_shape_aspect IN - using_shape_aspect_of_shape_representation - (representing_representation_relationship.rep_2)); -WR3: ((find_representative_shape_representation_of_product_definition - (using_product_definition_of_shape_aspect - (represented_shape_aspect_relationship.relating_shape_aspect)). - context_of_items) :=: - (find_representative_shape_representation_of_shape_aspect - (represented_shape_aspect_relationship.relating_shape_aspect). - context_of_items)) AND - ((find_representative_shape_representation_of_product_definition - (using_product_definition_of_shape_aspect - (represented_shape_aspect_relationship.related_shape_aspect)). - context_of_items) :=: - (find_representative_shape_representation_of_shape_aspect - (represented_shape_aspect_relationship.related_shape_aspect). - context_of_items)); -WR4: using_product_definition_of_shape_aspect - (represented_shape_aspect_relationship.relating_shape_aspect) :<>: - using_product_definition_of_shape_aspect - (represented_shape_aspect_relationship.related_shape_aspect); -WR5: find_assembly_root ([using_product_definition_of_shape_aspect - (represented_shape_aspect_relationship.relating_shape_aspect)]) :=: - find_assembly_root ([using_product_definition_of_shape_aspect - (represented_shape_aspect_relationship.related_shape_aspect)]); -END_ENTITY; -- shape_aspect_relationship_representation_association -(* USED FROM (assembly_feature_relationship_schema); *) -ENTITY representative_shape_representation - SUBTYPE OF (shape_representation); -WHERE -WR1: unique_in_product_definition (SELF) OR unique_in_shape_aspect (SELF); -END_ENTITY; -- representative_shape_representation -(* USED FROM (presentation_definition_schema); *) - 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 (['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.TEXT_LITERAL', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ANNOTATION_TEXT', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ANNOTATION_TEXT_CHARACTER', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.DEFINED_CHARACTER_GLYPH', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.COMPOSITE_TEXT'] * - TYPEOF (item)) = 0) - )) >= 1; - WR2: SIZEOF ( - QUERY (a2p <* - QUERY (item <* SELF\representation.items | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.AXIS2_PLACEMENT' IN TYPEOF (item)) | - NOT ((SIZEOF ( - QUERY (at <* - QUERY (item <* SELF\representation.items | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + - 'ANNOTATION_TEXT' IN TYPEOF (item)) | - (at\mapped_item.mapping_target :=: a2p))) >= 1) OR - (SIZEOF ( - QUERY (atc <* - QUERY (item <* SELF\representation.items | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + - 'ANNOTATION_TEXT_CHARACTER' IN TYPEOF (item)) | - (atc\mapped_item.mapping_target :=: a2p))) >= 1) - ))) = 0; - END_ENTITY; -(* USED FROM (Extended_measure_representation_mim); *) - ENTITY value_range - SUBTYPE OF (compound_representation_item); - WHERE - WR1: ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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; -(* USED FROM (geometry_schema); *) -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; -(* USED FROM (kinematic_motion_representation_schema); *) -ENTITY interpolated_configuration_sequence - SUBTYPE OF (representation_item); - segments : LIST[2:?] OF interpolated_configuration_segment; -DERIVE - n_segments : INTEGER := SIZEOF(segments); - closed_interpolation : LOGICAL := segments[n_segments].interpolation <> discontinuous_interpolation_type; - configured_mechanism : mechanism_representation := segments[1].state.represented_mechanism; -WHERE - WR1: SIZEOF( QUERY(ics <* segments | ics.state.represented_mechanism :<>: configured_mechanism)) = 0; -END_ENTITY; -(* USED FROM (geometry_schema); *) -ENTITY surface_replica - SUBTYPE OF (surface); - parent_surface : surface; - transformation : cartesian_transformation_operator_3d; -WHERE - WR1: acyclic_surface_replica(SELF, parent_surface); -END_ENTITY; -(* USED FROM (geometry_schema); *) -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; -(* USED FROM (representation_schema); *) - 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; -(* USED FROM (product_analysis_schema); *) -ENTITY temporal_spatial_domain; - id : identifier; - name : label; - description : text; -WHERE - wr1: definition_for_temporal_spatial_domain(SELF); -END_ENTITY; -(* USED FROM (shape_aspect_definition_schema); *) -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 | ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.DATUM' IN TYPEOF (sar\shape_aspect_relationship.related_shape_aspect)))) = 1; - WR2: SELF\shape_aspect.product_definitional = TRUE; -END_ENTITY; -(* USED FROM (analysis_schema); *) -ENTITY numerical_model; - id : identifier; - name : label; - description : text; - creating_software : text; - intended_analysis_code : SET [1 : ?] OF text; - analysis_type : text; -WHERE - wr1: temporal_spatial_domain_for_model(SELF); -END_ENTITY; -(* USED FROM (kinematic_motion_representation_schema); *) -ENTITY kinematic_path - ABSTRACT SUPERTYPE OF (ONEOF ( - KINEMATIC_PATH_DEFINED_BY_NODES, - KINEMATIC_PATH_DEFINED_BY_CURVES)) - SUBTYPE OF (geometric_representation_item); - segments : LIST [1:?] OF kinematic_path_segment; - t_start : parameter_value; -DERIVE - n_segments : INTEGER := SIZEOF(segments); - closed_path : LOGICAL := segments[n_segments].transition <> discontinuous; -WHERE - WR1: SIZEOF(QUERY(using_rep <* using_representations(SELF)| - NOT('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.GEOMETRIC_REPRESENTATION_CONTEXT_WITH_PARAMETER' IN TYPEOF(using_rep.context_of_items))))= 0; - -- WR2 - parameters are increasing - -- WR3 - different end positions -END_ENTITY; -(* USED FROM (mathematical_functions_schema); *) -ENTITY constant_function - SUBTYPE OF (maths_function, generic_literal); - sole_output : maths_value; - source_of_domain : maths_space_or_function; -WHERE - WR1: no_cyclic_domain_reference(source_of_domain, [SELF]); - WR2: expression_is_constant(domain_from(source_of_domain)); -END_ENTITY; -(* USED FROM (Specified_product_mim); *) - ENTITY product_identification - SUBTYPE OF (configuration_item, characterized_object); - SELF\configuration_item.item_concept : product_class; - WHERE - WR1 : SIZEOF(QUERY - ( cd <* USEDIN ( SELF ,'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CONFIGURATION_DESIGN.CONFIGURATION' ) - | - ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.'+ 'PRODUCT_DEFINITION_FORMATION' IN TYPEOF ( cd. design ) ) - AND - ( SIZEOF ( QUERY - ( - prpc <* USEDIN ( cd. design\product_definition_formation.of_product , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRODUCT_RELATED_PRODUCT_CATEGORY.PRODUCTS') - | - prpc. name IN ['part' , 'raw material' , 'tool'] ) ) >0 - ) - ) - ) <=1; - WR2 : NOT ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.'+ 'CONFIGURABLE_ITEM' IN TYPEOF( SELF ) ) - XOR ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.'+ 'PRODUCT_SPECIFICATION' IN TYPEOF ( SELF ) ) ; - END_ENTITY; -(* USED FROM (sketch_schema); *) -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 (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CURVE_BOUNDED_SURFACE' IN - TYPEOF(sketch_basis)) AND NOT ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PLANE' IN - TYPEOF(sketch_basis\curve_bounded_surface.basis_surface))); - WR2: NOT (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FACE_SURFACE' IN TYPEOF(sketch_basis)) AND - NOT ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PLANE' IN TYPEOF(sketch_basis\face_surface.face_geometry))); - WR3: SIZEOF(QUERY(q <* auxiliary_elements | (SIZEOF(TYPEOF(q) * - ['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.POINT','AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CURVE']) = 0))) = 0; - WR4: SIZEOF(QUERY(q <* auxiliary_elements | - q\geometric_representation_item.dim <> 3)) = 0; -END_ENTITY; -(* USED FROM (sketch_schema); *) -ENTITY subsketch - SUBTYPE OF (geometric_representation_item); - subsketch_elements : SET[1:?] OF sketch_element_select; - owning_sketch : sketch_type_select; -WHERE - WR1: (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.NEUTRAL_SKETCH_REPRESENTATION' - IN TYPEOF(owning_sketch)) AND (SIZEOF(QUERY(q <* - subsketch_elements | NOT (owning_sketch IN - using_representations(q)))) = 0)) - XOR - ((SIZEOF(TYPEOF(owning_sketch) * - ['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.POSITIONED_SKETCH','AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SUBSKETCH']) = 1) - AND - (SIZEOF(QUERY(q <* subsketch_elements | - NOT (owning_sketch IN using_items(q,[])))) = 0)); -END_ENTITY; -(* USED FROM (sketch_schema); *) -ENTITY implicit_explicit_positioned_sketch_relationship - SUBTYPE OF (representation_item_relationship); - SELF\representation_item_relationship.relating_representation_item - : repositioned_neutral_sketch; - SELF\representation_item_relationship.related_representation_item - : positioned_sketch; -WHERE - WR1: 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; -(* USED FROM (drawing_definition_schema); *) -ENTITY drawing_sheet_revision - SUBTYPE OF (presentation_area); - revision_identifier : identifier; -WHERE - WR1: SIZEOF( QUERY(item <* SELF\representation.items | - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MAPPED_ITEM' IN (TYPEOF(item))) - AND - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.DRAWING_SHEET_REVISION' IN - (TYPEOF(item\mapped_item.mapping_source.mapped_representation)))))=0; -END_ENTITY; -(* USED FROM (presentation_organization_schema); *) - ENTITY camera_image_2d_with_scale - SUBTYPE OF (camera_image); - DERIVE - scale : positive_ratio_measure := (SELF\mapped_item.mapping_target\planar_extent.size_in_x)/ - (SELF\mapped_item.mapping_source.mapping_origin\camera_model_d2.view_window\planar_extent.size_in_x); - WHERE - WR1: ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CAMERA_MODEL_D2' IN TYPEOF(SELF\mapped_item.mapping_source.mapping_origin)); - WR2: aspect_ratio (SELF\mapped_item.mapping_target) = aspect_ratio (SELF\mapped_item.mapping_source.mapping_origin\camera_model_d2.view_window); - WR3: SELF\mapped_item.mapping_source.mapping_origin\camera_model_d2.view_window_clipping; - END_ENTITY; -(* USED FROM (aic_elementary_brep); *) - ENTITY elementary_brep_shape_representation - SUBTYPE OF (shape_representation); - WHERE - WR1 : SIZEOF (QUERY (it <* SELF.items | - NOT (SIZEOF (['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MANIFOLD_SOLID_BREP', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FACETED_BREP', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MAPPED_ITEM', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.AXIS2_PLACEMENT_3D'] * - TYPEOF(it)) = 1))) = 0; - WR2 : SIZEOF (QUERY (it <* SELF.items | - SIZEOF(['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MANIFOLD_SOLID_BREP', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MAPPED_ITEM'] * TYPEOF(it)) =1 )) > 0; - WR3 : SIZEOF (QUERY (msb <* QUERY (it <* SELF.items | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MANIFOLD_SOLID_BREP' IN TYPEOF(it)) | - NOT (SIZEOF (QUERY (csh <* msb_shells(msb) | - NOT (SIZEOF (QUERY(fcs <* csh.cfs_faces | - NOT('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FACE_SURFACE' IN TYPEOF(fcs)))) = 0 - ))) = 0 - ))) = 0; - WR4 : SIZEOF (QUERY (msb <* QUERY (it <* SELF.items | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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(('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ELEMENTARY_SURFACE' IN - TYPEOF(fcs\face_surface.face_geometry)) - ))) = 0 - ))) = 0 - ))) = 0; - WR5 : SIZEOF (QUERY (msb <* QUERY (it <* SELF.items | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.EDGE_LOOP' IN TYPEOF(bnds.bound)) | - NOT (SIZEOF (QUERY (oe <* elp_fbnds.bound\path.edge_list | - NOT('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.EDGE_CURVE' IN - TYPEOF(oe.edge_element)))) = 0 - ))) = 0 - ))) = 0 - ))) = 0 - ))) = 0; - WR6 : SIZEOF (QUERY (msb <* QUERY (it <* SELF.items | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.EDGE_LOOP' IN TYPEOF(bnds.bound)) | - NOT (SIZEOF (QUERY (oe <* elp_fbnds.bound\path.edge_list | - NOT (SIZEOF (['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LINE', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CONIC', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.EDGE_LOOP' IN TYPEOF(bnds.bound)) | - NOT (SIZEOF (QUERY (oe <* elp_fbnds.bound\path.edge_list | - NOT(('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.VERTEX_POINT' IN TYPEOF(oe.edge_start)) - AND ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.VERTEX_POINT' IN - TYPEOF(oe.edge_end)) - ))) = 0 - ))) = 0 - ))) = 0 - ))) = 0 - ))) = 0; - WR8 : SIZEOF (QUERY (msb <* QUERY (it <* SELF.items | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.EDGE_LOOP' IN TYPEOF(bnds.bound)) | - NOT (SIZEOF (QUERY (oe <* elp_fbnds.bound\path.edge_list | - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MANIFOLD_SOLID_BREP' IN TYPEOF(it)) | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ORIENTED_CLOSED_SHELL' IN TYPEOF - (msb\manifold_solid_brep.outer))) - = 0; - WR10 : SIZEOF (QUERY (brv <* QUERY (it <* items | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MAPPED_ITEM' IN TYPEOF(it)) | - NOT ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ELEMENTARY_BREP_SHAPE_REPRESENTATION' IN - TYPEOF(mi\mapped_item.mapping_source. - mapped_representation)))) = 0; - WR12 : SIZEOF (QUERY (msb <* QUERY (it <* SELF.items | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.VERTEX_LOOP' IN TYPEOF(bnds.bound)) | - NOT(('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.VERTEX_POINT' IN - TYPEOF(vlp_fbnds\face_bound.bound\vertex_loop.loop_vertex)) AND - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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; -(* USED FROM (Generic_material_aspects_mim); *) - ENTITY general_material_property - SUBTYPE OF (general_property); - WHERE - WR1: SIZEOF( QUERY( gpa <* USEDIN(SELF,'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.GENERAL_PROPERTY_ASSOCIATION.BASE_DEFINITION') | - NOT ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MATERIAL_PROPERTY' IN TYPEOF(gpa\general_property_association.derived_definition)) )) = 0; - END_ENTITY; -(* USED FROM (solid_shape_element_schema); *) -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; -(* USED FROM (solid_shape_element_schema); *) -ENTITY surfaced_open_shell - SUBTYPE OF (open_shell); -WHERE - WR1: SIZEOF(QUERY(q <* SELF\connected_face_set.cfs_faces | - NOT ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FACE_SURFACE' IN TYPEOF(q)))) = 0; -END_ENTITY; -(* USED FROM (fea_definition_relationships_schema); *) -ENTITY element_topological_relationship; - aspect : element_aspect; - element_ref : element_representation; - item : analysis_item_within_representation; -WHERE - WR1: 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.TOPOLOGICAL_REPRESENTATION_ITEM' IN TYPEOF (item.item); - WR2: consistent_topological_reference (aspect, item.item); - WR3: consistent_element_reference (aspect, element_ref); -END_ENTITY; -(* USED FROM (domain_schema); *) -ENTITY grid_coordinates - SUBTYPE OF (model_property_distribution); - SELF\model_property_distribution.domain : model_product_domain_with_mesh; - SELF\model_property_distribution.range : specified_general_property; -INVERSE - data : SET OF property_distribution_description FOR physical_function; -WHERE - wr1 : is_coordinate_property(range); -END_ENTITY; -(* USED FROM (solid_shape_element_schema); *) -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; -(* USED FROM (solid_shape_element_schema); *) -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; -(* USED FROM (mesh_topology_schema); *) -ENTITY array_based_unstructured_mesh_and_vertices - SUBTYPE OF (array_based_unstructured_mesh); - vertex_count : INTEGER; - vertices : ARRAY [1:vertex_count] OF UNIQUE vertex; -WHERE - wr1 : all_mesh_vertices(SELF); -END_ENTITY; -(* USED FROM (solid_shape_element_schema); *) -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; -(* USED FROM (geometric_model_schema); *) -ENTITY tessellated_item - ABSTRACT SUPERTYPE OF (ONEOF ( - COORDINATES_LIST, - TESSELLATED_SOLID, - TESSELLATED_SHELL, - TESSELLATED_WIRE, - TESSELLATED_GEOMETRIC_SET, - TESSELLATED_CURVE_SET, - TESSELLATED_POINT_SET, - TESSELLATED_SURFACE_SET, - TESSELLATED_STRUCTURED_ITEM)) - SUBTYPE OF (geometric_representation_item); -WHERE - WR1: SIZEOF (QUERY (using_rep <* using_representations (SELF) | NOT ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.TESSELLATED_SHAPE_REPRESENTATION' IN TYPEOF(using_rep)))) = 0; -END_ENTITY; -(* USED FROM (Value_with_unit_extension_mim); *) -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; -(* USED FROM (presentation_organization_schema); *) - ENTITY presentation_size; - unit : presentation_size_assignment_select; - size : planar_box; - UNIQUE - UR1: unit; - WHERE - WR1: (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRESENTATION_REPRESENTATION' - IN TYPEOF (SELF.unit)) AND - item_in_context (SELF.size, - SELF.unit\representation.context_of_items) - ) - OR - (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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; -(* USED FROM (structural_response_representation_schema); *) -ENTITY fea_parametric_point - SUBTYPE OF (point); - coordinates : LIST [1:3] OF parameter_value; -WHERE - WR1: valid_parametric_coordinate (coordinates); - WR2: SIZEOF (TYPEOF (SELF) * - ['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CARTESIAN_POINT', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.POINT_ON_CURVE', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.POINT_ON_SURFACE', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.DEGENERATE_PCURVE', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.POINT_REPLICA', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SPHERICAL_POINT', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CYLINDRICAL_POINT']) - = 0; -END_ENTITY; -(* USED FROM (aic_machining_feature); *) -ENTITY removal_volume - SUBTYPE OF (feature_definition); - WHERE - - WR1: (SIZEOF(QUERY ( pd <* USEDIN(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') - IN TYPEOF(pdr.used_representation)) ) | - (NOT (SIZEOF(impl_rep.used_representation.items) = 1)) )) - = 0)) )) = 0); - WR2: (SIZEOF(QUERY ( pds <* QUERY ( pd <* USEDIN(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' - IN TYPEOF(pd)) ) | (NOT (SIZEOF(QUERY ( sa_occ <* USEDIN(pds, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE') | - ((sa_occ.description = 'shape volume occurrence') AND - (SIZEOF(QUERY ( sdr <* QUERY ( sar <* USEDIN(sa_occ, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.' - + 'RELATED_SHAPE_ASPECT') | - ((sar.description = 'volume shape usage') AND - (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_DEFINING_RELATIONSHIP') - IN TYPEOF(sar))) ) | - (sdr.relating_shape_aspect.description = 'volume shape') )) = 1)) )) - = 1)) )) = 0); -END_ENTITY; -- removal_volume -(* USED FROM (aic_machining_feature); *) -ENTITY vee_profile - SUBTYPE OF (shape_aspect); - WHERE - WR1: 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FEATURE_COMPONENT_DEFINITION' - IN TYPEOF (SELF.of_shape.definition); - WR2: SIZEOF (QUERY (pd <* USEDIN (SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - NOT (SIZEOF (QUERY (pdr <* USEDIN (pd, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' - IN TYPEOF (pdr.used_representation))) = 1))) = 0; - WR3: SIZEOF (QUERY (pd <* USEDIN (SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - NOT (SIZEOF (QUERY (impl_rep <* QUERY (pdr <* USEDIN (pd, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' - IN TYPEOF (pdr.used_representation)) | - (NOT (SIZEOF (impl_rep.used_representation.items) >= 3) - AND (SIZEOF (impl_rep.used_representation.items) <= 6)))) - = 0))) = 0; - WR4: SIZEOF( QUERY( pd <* USEDIN( SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - SIZEOF( QUERY( pdr <* USEDIN( pd, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' - IN TYPEOF(pdr.used_representation)) AND - (SIZEOF( QUERY( srwp_i <* pdr.used_representation.items | - (srwp_i.name = 'orientation') OR - (srwp_i.name = 'profile angle') OR - (srwp_i.name = 'tilt angle') OR - (srwp_i.name = 'profile radius') OR - (srwp_i.name = 'first length') OR - (srwp_i.name = 'second length') )) - = SIZEOF(pdr.used_representation.items)) )) = 1 )) = 1; - WR5: SIZEOF (QUERY (pd <* USEDIN (SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - NOT (SIZEOF (QUERY (impl_rep <* QUERY (pdr <* USEDIN (pd, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' - IN TYPEOF (pdr.used_representation)) | - NOT (SIZEOF (QUERY (it <* impl_rep.used_representation.items | - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PLACEMENT' IN TYPEOF (it)) AND - (it.name = 'orientation'))) = 1))) = 0))) = 0; - WR6: SIZEOF (QUERY (pd <* USEDIN (SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - NOT (SIZEOF (QUERY (impl_rep <* QUERY (pdr <* USEDIN (pd, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' - IN TYPEOF (pdr.used_representation)) | - NOT (SIZEOF (QUERY (it <* impl_rep.used_representation.items | - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM' - IN TYPEOF (it)) AND - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT' - IN TYPEOF (it\measure_with_unit.value_component)) AND - (it.name = 'profile radius'))) <= 1))) = 0))) = 0; - WR7: SIZEOF (QUERY (pd <* USEDIN (SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - NOT (SIZEOF (QUERY (impl_rep <* QUERY (pdr <* USEDIN (pd, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' - IN TYPEOF (pdr.used_representation)) | - NOT (SIZEOF (QUERY (it <* impl_rep.used_representation.items | - (SIZEOF - (['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PLANE_ANGLE_MEASURE_WITH_UNIT'] * - TYPEOF (it)) = 2) AND - (it.name = 'profile angle'))) = 1))) = 0))) = 0; - WR8: SIZEOF (QUERY (pd <* USEDIN (SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - NOT (SIZEOF (QUERY (impl_rep <* QUERY (pdr <* USEDIN (pd, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' - IN TYPEOF (pdr.used_representation)) | - NOT (SIZEOF (QUERY (it <* impl_rep.used_representation.items | - (SIZEOF - (['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PLANE_ANGLE_MEASURE_WITH_UNIT'] * - TYPEOF (it)) = 2) AND - (it.name = 'tilt angle'))) = 1))) = 0))) = 0; - WR9: SIZEOF (QUERY (pd <* USEDIN (SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - NOT (SIZEOF (QUERY (pdr <* USEDIN (pd, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PLANAR_SHAPE_REPRESENTATION' - IN TYPEOF (pdr.used_representation))AND - (pdr.used_representation.name = 'profile limit'))) <= 1))) = 0; - WR10: SIZEOF (QUERY (pd <* USEDIN (SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - NOT (SIZEOF (QUERY (impl_rep <* QUERY (pdr <* USEDIN (pd, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' - IN TYPEOF (pdr.used_representation)) | - NOT (SIZEOF (QUERY (it <* impl_rep.used_representation.items | - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM' - IN TYPEOF (it)) AND - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT' - IN TYPEOF (it\measure_with_unit.value_component)) AND - (it.name = 'first length'))) <= 1))) = 0))) = 0; - WR11: SIZEOF (QUERY (pd <* USEDIN (SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - NOT (SIZEOF (QUERY (impl_rep <* QUERY (pdr <* USEDIN (pd, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' - IN TYPEOF (pdr.used_representation)) | - NOT (SIZEOF (QUERY (it <* impl_rep.used_representation.items | - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM' - IN TYPEOF (it)) AND - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT' - IN TYPEOF (it\measure_with_unit.value_component)) AND - (it.name = 'second length'))) <= 1))) = 0))) = 0; -END_ENTITY; -- vee_profile -(* USED FROM (structural_response_representation_schema); *) -ENTITY node_set - SUBTYPE OF (geometric_representation_item); - nodes : SET [1:?] OF node_representation; -WHERE - WR1: SIZEOF (QUERY (tmp <* nodes | - tmp\representation.context_of_items :<>: - nodes[1]\representation.context_of_items)) = 0; -END_ENTITY; -(* USED FROM (aic_machining_feature); *) -ENTITY ngon_closed_profile - SUBTYPE OF (shape_aspect); -WHERE - WR1: 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FEATURE_COMPONENT_DEFINITION' - IN TYPEOF (SELF.of_shape.definition); - WR2: SIZEOF (QUERY (pd <* USEDIN (SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - NOT (SIZEOF (QUERY (pdr <* USEDIN (pd, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' - IN TYPEOF (pdr.used_representation))) = 1))) = 0; - WR3: SIZEOF (QUERY (pd <* USEDIN (SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - NOT (SIZEOF (QUERY (impl_rep <* QUERY (pdr <* USEDIN (pd, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' - IN TYPEOF (pdr.used_representation)) | - NOT ((SIZEOF (impl_rep.used_representation.items) >= 3) - AND (SIZEOF(impl_rep.used_representation.items) <= 4)))) = 0))) = 0; - WR4: SIZEOF( QUERY( pd <* USEDIN( SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - SIZEOF( QUERY( pdr <* USEDIN( pd, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' - IN TYPEOF(pdr.used_representation)) AND - (SIZEOF( QUERY( srwp_i <* pdr.used_representation.items | - (srwp_i.name = 'orientation') OR - (srwp_i.name = 'number of sides') OR - (srwp_i.name = 'circumscribed diameter') OR - (srwp_i.name = 'corner radius') OR - (srwp_i.name = 'diameter across flats'))) - = SIZEOF(pdr.used_representation.items)) )) = 1 )) = 1; - WR5: SIZEOF (QUERY (pd <* USEDIN (SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - NOT (SIZEOF (QUERY (impl_rep <* QUERY (pdr <* USEDIN (pd, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' - IN TYPEOF (pdr.used_representation)) | - NOT (SIZEOF (QUERY (it <* impl_rep.used_representation.items | - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PLACEMENT' IN TYPEOF (it)) AND - (it.name = 'orientation'))) = 1))) = 0))) = 0; - WR6: SIZEOF (QUERY (pd <* USEDIN (SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - NOT (SIZEOF (QUERY (impl_rep <* QUERY (pdr <* USEDIN (pd, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' - IN TYPEOF (pdr.used_representation)) | - NOT (SIZEOF (QUERY (it <* impl_rep.used_representation.items | - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM' - IN TYPEOF (it)) AND - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.COUNT_MEASURE' - IN TYPEOF (it\measure_with_unit.value_component)) AND - (it.name = 'number of sides'))) = 1))) = 0))) = 0; - WR7: SIZEOF (QUERY (pd <* USEDIN (SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - NOT (SIZEOF (QUERY (impl_rep <* QUERY (pdr <* USEDIN (pd, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' - IN TYPEOF (pdr.used_representation)) | - NOT (SIZEOF (QUERY (it <* impl_rep.used_representation.items | - (SIZEOF - (['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * - TYPEOF (it)) = 2) AND - (it.name IN ['circumscribed diameter','diameter across flats']) )) - = 1) )) = 0))) = 0; - WR8: SIZEOF (QUERY (pd <* USEDIN (SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - NOT (SIZEOF (QUERY (impl_rep <* QUERY (pdr <* USEDIN (pd, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' - IN TYPEOF (pdr.used_representation)) | - NOT (SIZEOF (QUERY (it <* impl_rep.used_representation.items | - (SIZEOF - (['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * - TYPEOF (it)) = 2) AND - (it.name = 'corner radius'))) <= 1))) = 0))) = 0; - END_ENTITY; -(* USED FROM (aic_machining_feature); *) -ENTITY path_shape_representation - SUBTYPE OF (shape_representation); - WHERE - WR1: (SIZEOF(SELF.items) >= 1); - WR2: (SIZEOF(QUERY ( i <* SELF.items | (SIZEOF([ - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.BOUNDED_CURVE', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.EDGE_CURVE', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PATH'] * TYPEOF(i)) = - 1) )) >= 1); -END_ENTITY; -- path_shape_representation -(* USED FROM (Specification_based_configuration_mim); *) -ENTITY configured_effectivity_assignment - SUBTYPE OF (effectivity_assignment); - items : SET [1:?] OF configured_effectivity_item; - WHERE - WR1: (SIZEOF(['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 | ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 | ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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,'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'EFFECTIVITY_CONTEXT_ASSIGNMENT.ASSIGNED_EFFECTIVITY_ASSIGNMENT') | 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CONFIGURED_EFFECTIVITY_CONTEXT_ASSIGNMENT' IN TYPEOF(x) )) = 1; -END_ENTITY; -(* USED FROM (aic_mechanical_design_geometric_presentation); *) - 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 | - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MAPPED_ITEM' - IN TYPEOF(it))) | NOT (SIZEOF( - ['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + - 'SHAPE_REPRESENTATION', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 | - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.STYLED_ITEM' - IN TYPEOF(it))) | - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MAPPED_ITEM' - IN TYPEOF(si\styled_item.item))) | NOT ( - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.STYLED_ITEM' - IN TYPEOF(it)) | NOT (SIZEOF(QUERY(psa <* si\styled_item.styles | - NOT (SIZEOF(QUERY(pss <* psa.styles | NOT (SIZEOF( - ['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.POINT_STYLE', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CURVE_STYLE', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SURFACE_STYLE_USAGE'] - * TYPEOF(pss)) = 1))) = 0))) = 0))) = 0; - WR4: SIZEOF(QUERY(si <* QUERY(it <* SELF.items | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.STYLED_ITEM' - IN TYPEOF(it)) | - NOT (SIZEOF(QUERY(psbc <* QUERY(psa <* si\styled_item.styles | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + - 'PRESENTATION_STYLE_BY_CONTEXT' IN TYPEOF(psa)) | NOT (SIZEOF( - ['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + - 'REPRESENTATION_ITEM', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.REPRESENTATION'] - * TYPEOF(psbc\presentation_style_by_context.style_context)) - = 1))) = 0))) = 0; - WR5: SIZEOF(QUERY(si <* QUERY(it <* SELF.items | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.STYLED_ITEM' - IN TYPEOF(it)) | NOT (SIZEOF(QUERY(psa <* si\styled_item.styles | - NOT (SIZEOF(QUERY(ps <* QUERY(pss <* psa.styles | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.POINT_STYLE' - IN TYPEOF(pss)) | NOT - (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + - 'POSITIVE_LENGTH_MEASURE' IN TYPEOF (ps\point_style.marker_size)) - AND (SIZEOF( - ['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.COLOUR_RGB', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + - 'DRAUGHTING_PRE_DEFINED_COLOUR'] - * TYPEOF(ps\point_style.marker_colour)) - = 1)))) = 0))) = 0))) = 0; - WR6: SIZEOF(QUERY(si <* QUERY(it <* SELF.items | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.STYLED_ITEM' - IN TYPEOF(it)) | NOT (SIZEOF(QUERY(psa <* si\styled_item.styles | - NOT (SIZEOF(QUERY(cs <* QUERY(pss <* psa.styles | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CURVE_STYLE' - IN TYPEOF(pss)) | NOT((SIZEOF( - ['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.COLOUR_RGB', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + - 'DRAUGHTING_PRE_DEFINED_COLOUR'] - * TYPEOF(cs\curve_style.curve_colour)) = 1) - AND - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + - 'POSITIVE_LENGTH_MEASURE' IN TYPEOF (cs\curve_style.curve_width)) - AND (SIZEOF( - ['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CURVE_STYLE_FONT', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.STYLED_ITEM' - IN TYPEOF(it)) | NOT (SIZEOF(QUERY(psa <* si\styled_item.styles | - NOT (SIZEOF(QUERY(ssu <* QUERY(pss <* psa.styles | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SURFACE_STYLE_USAGE' - IN TYPEOF(pss)) | - NOT ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + - 'SURFACE_SIDE_STYLE' IN TYPEOF - (ssu\surface_style_usage.style)))) = 0))) = 0))) = 0; - WR8: SIZEOF(QUERY(si <* QUERY(it <* SELF.items | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.STYLED_ITEM' - IN TYPEOF(it)) | NOT (SIZEOF(QUERY(psa <* si\styled_item.styles | - NOT (SIZEOF(QUERY(ssu <* QUERY(pss <* psa.styles | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SURFACE_STYLE_USAGE' - IN TYPEOF(pss)) | NOT (SIZEOF(QUERY(sses <* - ssu\surface_style_usage.style\surface_side_style.styles | - NOT (SIZEOF( - ['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + - 'SURFACE_STYLE_PARAMETER_LINE', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + - 'SURFACE_STYLE_CONTROL_GRID', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + - 'SURFACE_STYLE_SILHOUETTE', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + - 'SURFACE_STYLE_SEGMENTATION_CURVE', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + - 'SURFACE_STYLE_FILL_AREA', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + - 'SURFACE_STYLE_BOUNDARY'] - * TYPEOF(sses)) = 1))) = 0))) = 0))) = 0))) = 0; - WR9: SIZEOF(QUERY(si <* QUERY(it <* SELF.items | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.STYLED_ITEM' - IN TYPEOF(it)) | NOT (SIZEOF(QUERY(psa <* si\styled_item.styles | - NOT (SIZEOF(QUERY(ssu <* QUERY(pss <* psa.styles | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SURFACE_STYLE_USAGE' - IN TYPEOF(pss)) | NOT (SIZEOF(QUERY(sspl <* QUERY(sses <* - ssu\surface_style_usage.style\surface_side_style.styles | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + - 'SURFACE_STYLE_PARAMETER_LINE' IN TYPEOF(sses)) | - NOT (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CURVE_STYLE' - IN TYPEOF - (sspl\surface_style_parameter_line.style_of_parameter_lines)) - AND (SIZEOF( - ['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.COLOUR_RGB', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + - 'DRAUGHTING_PRE_DEFINED_COLOUR'] - * TYPEOF(sspl\surface_style_parameter_line. - style_of_parameter_lines\curve_style.curve_colour)) = 1) - AND ( - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + - 'POSITIVE_LENGTH_MEASURE' IN TYPEOF - (sspl\surface_style_parameter_line. - style_of_parameter_lines\curve_style.curve_width)) - AND (SIZEOF( - ['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CURVE_STYLE_FONT', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.STYLED_ITEM' - IN TYPEOF(it)) | NOT (SIZEOF(QUERY(psa <* si\styled_item.styles | - NOT (SIZEOF(QUERY(ssu <* QUERY(pss <* psa.styles | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SURFACE_STYLE_USAGE' - IN TYPEOF(pss)) | NOT (SIZEOF(QUERY(sscg <* QUERY(sses <* - ssu\surface_style_usage.style\surface_side_style.styles | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + - 'SURFACE_STYLE_CONTROL_GRID' IN TYPEOF(sses)) | - NOT (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CURVE_STYLE' - IN TYPEOF (sscg\surface_style_control_grid.style_of_control_grid)) - AND (SIZEOF( - ['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.COLOUR_RGB', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + - 'DRAUGHTING_PRE_DEFINED_COLOUR'] - * TYPEOF(sscg\surface_style_control_grid. - style_of_control_grid\curve_style.curve_colour)) = 1) - AND - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + - 'POSITIVE_LENGTH_MEASURE' IN TYPEOF - (sscg\surface_style_control_grid. - style_of_control_grid\curve_style.curve_width)) - AND (SIZEOF( - ['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CURVE_STYLE_FONT', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.STYLED_ITEM' - IN TYPEOF(it)) | - NOT (SIZEOF(QUERY(psa <* si\styled_item.styles | - NOT (SIZEOF(QUERY(ssu <* QUERY(pss <* psa.styles | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SURFACE_STYLE_USAGE' - IN TYPEOF(pss)) | NOT (SIZEOF(QUERY(sssh <* QUERY(sses <* - ssu\surface_style_usage.style\surface_side_style.styles | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + - 'SURFACE_STYLE_SILHOUETTE' IN TYPEOF(sses)) | - NOT (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CURVE_STYLE' - IN TYPEOF (sssh\surface_style_silhouette.style_of_silhouette)) - AND (SIZEOF( - ['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.COLOUR_RGB', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + - 'DRAUGHTING_PRE_DEFINED_COLOUR'] - * TYPEOF(sssh\surface_style_silhouette. - style_of_silhouette\curve_style.curve_colour)) = 1) - AND - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + - 'POSITIVE_LENGTH_MEASURE' IN TYPEOF - (sssh\surface_style_silhouette.style_of_silhouette\curve_style. - curve_width)) - AND (SIZEOF( - ['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CURVE_STYLE_FONT', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.STYLED_ITEM' - IN TYPEOF(it)) | NOT (SIZEOF(QUERY(psa <* si\styled_item.styles | - NOT (SIZEOF(QUERY(ssu <* QUERY(pss <* psa.styles | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SURFACE_STYLE_USAGE' - IN TYPEOF(pss)) | NOT (SIZEOF(QUERY(sssc <* QUERY(sses <* - ssu\surface_style_usage.style\surface_side_style.styles | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + - 'SURFACE_STYLE_SEGMENTATION_CURVE' IN TYPEOF(sses)) | - NOT (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CURVE_STYLE' - IN TYPEOF - (sssc\surface_style_segmentation_curve.style_of_segmentation_curve)) - AND (SIZEOF( - ['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.COLOUR_RGB', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + - 'DRAUGHTING_PRE_DEFINED_COLOUR'] - * TYPEOF(sssc\surface_style_segmentation_curve. - style_of_segmentation_curve\curve_style.curve_colour)) = 1) - AND - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + - 'POSITIVE_LENGTH_MEASURE' IN TYPEOF - (sssc\surface_style_segmentation_curve. - style_of_segmentation_curve\curve_style.curve_width)) - AND (SIZEOF( - ['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CURVE_STYLE_FONT', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.STYLED_ITEM' - IN TYPEOF(it)) | NOT (SIZEOF(QUERY(psa <* si\styled_item.styles | - NOT (SIZEOF(QUERY(ssu <* QUERY(pss <* psa.styles | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SURFACE_STYLE_USAGE' - IN TYPEOF(pss)) | NOT (SIZEOF(QUERY(ssbd <* QUERY(sses <* - ssu\surface_style_usage.style\surface_side_style.styles | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + - 'SURFACE_STYLE_BOUNDARY' IN TYPEOF(sses)) | - NOT (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CURVE_STYLE' - IN TYPEOF (ssbd\surface_style_boundary.style_of_boundary)) - AND (SIZEOF( - ['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.COLOUR_RGB', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + - 'DRAUGHTING_PRE_DEFINED_COLOUR'] - * TYPEOF(ssbd\surface_style_boundary. - style_of_boundary\curve_style.curve_colour)) = 1) - AND - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + - 'POSITIVE_LENGTH_MEASURE' IN TYPEOF (ssbd\surface_style_boundary. - style_of_boundary\curve_style.curve_width)) - AND (SIZEOF( - ['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CURVE_STYLE_FONT', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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; -(* USED FROM (Product_class_mim); *) -ENTITY inclusion_product_concept_feature - SUBTYPE OF (conditional_concept_feature); - WHERE - WR1: NOT ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PACKAGE_PRODUCT_CONCEPT_FEATURE' IN TYPEOF ( SELF ) ) ; - WR2: SIZEOF (QUERY( cfr <* USEDIN( SELF ,'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'CONCEPT_FEATURE_RELATIONSHIP.RELATING_PRODUCT_CONCEPT_FEATURE' ) | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.'+ 'CONCEPT_FEATURE_RELATIONSHIP_WITH_CONDITION' IN TYPEOF( cfr ) - )) + - SIZEOF(QUERY( cfr <* USEDIN(SELF , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'CONCEPT_FEATURE_RELATIONSHIP.RELATED_PRODUCT_CONCEPT_FEATURE' ) | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'CONCEPT_FEATURE_RELATIONSHIP_WITH_CONDITION' IN TYPEOF(cfr) - )) = 0; - WR3: SELF.condition.conditional_operator.name = 'implication'; -END_ENTITY; -(* USED FROM (Product_class_mim); *) -ENTITY package_product_concept_feature - SUBTYPE OF (product_concept_feature); -WHERE - WR1: NOT ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'CONDITIONAL_CONCEPT_FEATURE' IN TYPEOF ( SELF ) ) ; - WR2: SIZEOF ( QUERY ( cfr <* USEDIN ( SELF , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'CONCEPT_FEATURE_RELATIONSHIP.' +'RELATING_PRODUCT_CONCEPT_FEATURE' ) | - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'CONCEPT_FEATURE_RELATIONSHIP_WITH_CONDITION' IN TYPEOF (cfr ) ) AND - (SIZEOF ( QUERY (ipcf <* USEDIN ( cfr , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'CONDITIONAL_CONCEPT_FEATURE.' + 'CONDITION' ) | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'INCLUSION_PRODUCT_CONCEPT_FEATURE' IN TYPEOF ( ipcf ) - )) = 1) - )) > 0; -END_ENTITY; -(* USED FROM (Surface_conditions_mim); *) - ENTITY visual_appearance_representation - SUBTYPE OF (representation); - WHERE - WR1: ( {3<= SIZEOF ( SELF.items ) <=9} ) AND ( SIZEOF ( QUERY ( - i <* items | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ( - ['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.'+ 'MEASURE_REPRESENTATION_ITEM' , - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.'+ 'VALUE_RANGE']* TYPEOF ( i ) ) =1 ) - AND ( i.name IN ['refraction index' , 'opacity'] ) ) - ) + SIZEOF ( QUERY ( i <* items | ( - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 , - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.'+'PROPERTY_DEFINITION_REPRESENTATION.'+ - 'USED_REPRESENTATION' ) ) =1 ) AND ( SIZEOF ( QUERY ( pdr - <* USEDIN ( SELF , - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.'+'PROPERTY_DEFINITION_REPRESENTATION.'+ - 'USED_REPRESENTATION' ) | SIZEOF ( QUERY ( gpa <* USEDIN ( - pdr.definition , - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.'+'GENERAL_PROPERTY_ASSOCIATION.'+ - 'DERIVED_DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.'+ 'GENERAL_PROPERTY' IN TYPEOF ( gpa.base_definition ) ) AND - ( gpa\general_property_association.base_definition\general_property.name ='surface_condition' ) ) ) =1 )) =1 ) ; - END_ENTITY; -(* USED FROM (Product_class_mim); *) -ENTITY product_concept_feature_category - SUBTYPE OF (group); -WHERE - WR1 : SIZEOF(QUERY(aga <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'GROUP_ASSIGNMENT.ASSIGNED_GROUP' ) | - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.'+ 'APPLIED_GROUP_ASSIGNMENT' IN TYPEOF(aga)) AND - (( aga\group_assignment.role\object_role.name <> 'specification category member' ) OR - ( SIZEOF(QUERY (i <* aga\applied_group_assignment.items | ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.'+ 'PRODUCT_CONCEPT_FEATURE' IN TYPEOF ( i ) ) AND - NOT ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.'+ 'CONDITIONAL_CONCEPT_FEATURE' IN TYPEOF (i)))) <> SIZEOF (aga\applied_group_assignment.items) - )) - )) =0; -END_ENTITY; -(* USED FROM (Point_direction_model_mim); *) -ENTITY point_placement_shape_representation - SUBTYPE OF (shape_representation); - SELF\representation.items : SET[1:?] OF point_placement_shape_representation_item; -WHERE - WR1: SIZEOF( QUERY( i <* SELF.items | - SIZEOF(['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.COMPOUND_REPRESENTATION_ITEM', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MAPPED_ITEM'] - * TYPEOF(i)) = 1 - )) > 0; -END_ENTITY; -(* USED FROM (Form_feature_in_panel_mim); *) -ENTITY directed_angle - SUBTYPE OF (shape_aspect); -WHERE - WR1: 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FEATURE_COMPONENT_DEFINITION' IN - TYPEOF(SELF.of_shape.definition); - WR2: SIZEOF( QUERY( pdr <* get_shape_aspect_property_definition_representations(SELF) | - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN - TYPEOF(pdr.used_representation)) - )) = 1; - WR3: SIZEOF( QUERY( pdr <* get_shape_aspect_property_definition_representations(SELF) | - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN - TYPEOF(pdr.used_representation)) AND - (SIZEOF(pdr.used_representation.items) = 1) - )) = 1; - WR4: SELF.description IN ['punch direction','profile normal','surface normal']; - WR5: SIZEOF( QUERY( pdr <* get_shape_aspect_property_definition_representations(SELF) | - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN - TYPEOF(pdr.used_representation)) AND - (SIZEOF( QUERY( i <* pdr.used_representation.items | - (i.name='angle') AND - (SIZEOF(['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', -'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PLANE_ANGLE_MEASURE_WITH_UNIT']*TYPEOF(i) - ) = 2) - )) = 1) - )) = 1; -END_ENTITY; -(* USED FROM (Part_and_zone_laminate_tables_mim); *) - ENTITY ply_laminate_sequence_definition - SUBTYPE OF (product_definition); - WHERE - WR1: SIZEOF (QUERY (pdr <* USEDIN (SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + - 'PRODUCT_DEFINITION_RELATIONSHIP.' + - 'RELATING_PRODUCT_DEFINITION') | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + - 'NEXT_ASSEMBLY_USAGE_OCCURRENCE' IN - TYPEOF (pdr))) > 0; - END_ENTITY; -(* USED FROM (aic_mechanical_design_geometric_presentation); *) - ENTITY mechanical_design_geometric_presentation_area - SUBTYPE OF (presentation_area); - SELF\representation.items : SET[1:?] OF mechanical_design_geometric_presentation_area_items; - WHERE - WR1: -- only presentation_views or axis2_placements in - -- mechanical_design_geometric_presentation_area - SIZEOF(QUERY(it1 <* SELF.items | - NOT ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MAPPED_ITEM' - IN TYPEOF(it1)) - OR - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRESENTATION_VIEW' - IN TYPEOF - (it1\mapped_item.mapping_source.mapped_representation)))) = 0; - WR2: -- only mechanical_design_geometric_presentation_representation - -- via camera_image_3d_with_scale or axis2_placements in - -- presentation_views - SIZEOF(QUERY(pv <* QUERY(mi1 <* QUERY(it1 <* SELF.items | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MAPPED_ITEM' - IN TYPEOF(it1)) | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.AXIS2_PLACEMENT' - IN TYPEOF(it2)) - OR - (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MAPPED_ITEM' - IN TYPEOF(it2)) AND NOT - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + - 'CAMERA_IMAGE_3D_WITH_SCALE' IN TYPEOF(it2))) AND NOT ( - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRESENTATION_VIEW' - IN TYPEOF - (it2\mapped_item.mapping_source.mapped_representation))) - OR - (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + - 'CAMERA_IMAGE_3D_WITH_SCALE' IN TYPEOF(it2)) - AND NOT ( - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + - 'MECHANICAL_DESIGN_GEOMETRIC_PRESENTATION_REPRESENTATION' - IN TYPEOF (it2\mapped_item.mapping_source.mapped_representation) )) - ))) = 0))) = 0; - WR3: (SIZEOF(QUERY(ps <* USEDIN (SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + - 'PRESENTATION_SIZE.UNIT') | - ((ps\presentation_size.size.size_in_x <= 0) - OR - (ps\presentation_size.size.size_in_y <= 0)))) = 0) - AND - (SIZEOF(QUERY(ais <* USEDIN (SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + - 'AREA_IN_SET.AREA') | - (SIZEOF(QUERY(ps <* USEDIN (ais, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + - 'PRESENTATION_SIZE.UNIT') | - ((ps\presentation_size.size.size_in_x <= 0) - OR - (ps\presentation_size.size.size_in_y <= 0)))) > 0))) = 0); - WR4: (SIZEOF(QUERY(ps <* USEDIN (SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + - 'PRESENTATION_SIZE.UNIT') | - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + - 'AXIS2_PLACEMENT_2D' IN TYPEOF (ps.size.placement)))) = 1) - AND - (SIZEOF(QUERY(ps <* USEDIN (SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + - 'PRESENTATION_SIZE.UNIT') | - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + - 'AXIS2_PLACEMENT_3D' IN TYPEOF (ps.size.placement)))) = 0) - OR - ((SIZEOF(QUERY(ais <* USEDIN (SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + - 'AREA_IN_SET.AREA') | - (SIZEOF(QUERY(ps <* USEDIN (ais, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + - 'PRESENTATION_SIZE.UNIT') | - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + - 'AXIS2_PLACEMENT_2D' IN TYPEOF (ps.size.placement)))) = 1))) = 1) - AND - (SIZEOF(QUERY(ais <* USEDIN (SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + - 'AREA_IN_SET.AREA') | - (SIZEOF(QUERY(ps <* USEDIN (ais, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + - 'PRESENTATION_SIZE.UNIT') | - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + - 'AXIS2_PLACEMENT_3D' IN TYPEOF (ps.size.placement)))) = 0))) = 1)); - END_ENTITY; -(* USED FROM (explicit_geometric_constraint_schema); *) -ENTITY tangent_geometric_constraint - SUBTYPE OF (explicit_geometric_constraint); - SELF\explicit_constraint.constrained_elements : - SET[1:?] OF curve_or_surface_constraint_element; - SELF\explicit_constraint.reference_elements : - SET[0:?] OF curve_or_surface_constraint_element; - near_points : SET[0:?] OF near_point_relationship; - tangent_contact : tangent_contact_type; -WHERE - WR1: (SIZEOF(SELF\explicit_constraint.reference_elements) > 0) OR - (SIZEOF(SELF\explicit_constraint.constrained_elements) = 2); - WR2: NOT ((SELF\geometric_representation_item.dim = 2) - AND (tangent_contact = surface_contact)); - WR3: SIZEOF(QUERY(q <* near_points | NOT - (q\representation_item_relationship.relating_representation_item - IN SELF\explicit_constraint.reference_elements))) = 0; -END_ENTITY; -(* USED FROM (Part_and_zone_laminate_tables_mim); *) - ENTITY composite_assembly_sequence_definition - SUBTYPE OF (product_definition); - WHERE - WR1: SIZEOF (QUERY (pdr <* USEDIN (SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + - 'PRODUCT_DEFINITION_RELATIONSHIP.' + - 'RELATING_PRODUCT_DEFINITION') | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + - 'NEXT_ASSEMBLY_USAGE_OCCURRENCE' IN - TYPEOF (pdr))) > 0; - END_ENTITY; -(* USED FROM (Dimension_tolerance_mim); *) -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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.APPLIED_DOCUMENT_REFERENCE.ITEMS')| (adr.assigned_document.description = 'external size dimension specification') )); -END_ENTITY; -(* USED FROM (Constructive_solid_geometry_2d_mim); *) - ENTITY csg_2d_shape_representation - SUBTYPE OF (shape_representation); - SELF\representation.items : SET[1:?] OF csg_2d_shape_select; - WHERE - WR1: SELF.context_of_items\geometric_representation_context.coordinate_space_dimension = 2; - WR2: SIZEOF(QUERY ( it <* SELF.items | - (SIZEOF(['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CSG_SOLID'] - * TYPEOF(it)) = 1) - OR - (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MAPPED_ITEM' - IN TYPEOF(it)) AND - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + - 'CSG_2D_SHAPE_REPRESENTATION' - IN TYPEOF(it\mapped_item.mapping_source.mapped_representation))) - )) >= 1; - WR3: SIZEOF(QUERY ( it <* SELF.items | - (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MAPPED_ITEM' - IN TYPEOF(it)) AND (NOT (( - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + - 'CSG_2D_SHAPE_REPRESENTATION') - IN TYPEOF(it\mapped_item.mapping_source.mapped_representation)))) )) = 0; - -- TODO does not work with the new introduced subtypes - -- WR4: SIZEOF(TYPEOF(SELF) - TYPEOF(SELF\shape_representation || - -- SELF\csg_2d_shape_representation || SELF\representation)) = 0; - END_ENTITY; -(* USED FROM (Layer_assignment_mim); *) - ENTITY rep_item_group - SUBTYPE OF (group, representation_item); - WHERE - WR1: SIZEOF(USEDIN(SELF,'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PRESENTATION_LAYER_ASSIGNMENT.' + 'ASSIGNED_ITEMS')) > 0; - WR2: SIZEOF(QUERY(r <* USEDIN(SELF,'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'REPRESENTATION.' + 'ITEMS') | r.name = 'group representation')) > 0; - WR3: SIZEOF(QUERY(ga <* USEDIN(SELF,'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'GROUP_ASSIGNMENT.' + 'ASSIGNED_GROUP') | ga.role.name <> 'group membership')) = 0; - WR4: SIZEOF(['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'GEOMETRIC_REPRESENTATION_ITEM', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'TOPOLOGICAL_REPRESENTATION_ITEM', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'MAPPED_ITEM', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'STYLED_ITEM'] * TYPEOF(SELF)) = 1; - END_ENTITY; -(* USED FROM (explicit_geometric_constraint_schema); *) -ENTITY pgc_with_dimension - SUBTYPE OF (parallel_geometric_constraint); - distance_value : non_negative_length_measure; - negative_direction : BOOLEAN; -WHERE - WR1: (SIZEOF(SELF\explicit_constraint.reference_elements) = 1) - OR (SIZEOF(SELF\explicit_constraint.constrained_elements) = 2); - WR2: SIZEOF(QUERY(q <* (SELF\explicit_constraint.reference_elements + - SELF\explicit_constraint.constrained_elements) | SIZEOF(TYPEOF(q) * - ['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.DIRECTION', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.VECTOR']) > 0)) = 0; -END_ENTITY; -(* USED FROM (aic_edge_based_wireframe); *) -ENTITY edge_based_wireframe_shape_representation - SUBTYPE OF ( shape_representation ); - WHERE -WR1 : -SIZEOF ( -QUERY ( it <* SELF.items| NOT ( SIZEOF ([ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.EDGE_BASED_WIREFRAME_MODEL', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MAPPED_ITEM', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.AXIS2_PLACEMENT_3D' ] * TYPEOF (it)) = 1) )) = 0; -WR2 : -SIZEOF ( -QUERY ( it <* SELF.items| ( SIZEOF ([ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.EDGE_BASED_WIREFRAME_MODEL', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MAPPED_ITEM' ] * TYPEOF (it)) = 1) )) >= 1; -WR3 : -SIZEOF ( -QUERY ( ebwm <* -QUERY ( it <* SELF.items| ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.EDGE_CURVE' IN TYPEOF (edges)) )) = 0) )) = 0) )) = 0; -WR4 : -SIZEOF ( -QUERY ( ebwm <* -QUERY ( it <* SELF.items| ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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| ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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| ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.VERTEX_POINT' IN TYPEOF (edges.edge_start)) AND ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.VERTEX_POINT' IN TYPEOF (edges.edge_end))) )) = 0) )) = 0) )) = 0; -WR6 : -SIZEOF ( -QUERY ( ebwm <* -QUERY ( it <* SELF.items| ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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| ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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| ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MAPPED_ITEM' IN TYPEOF (it)) )| NOT ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ; -(* USED FROM (aic_non_manifold_surface); *) -ENTITY non_manifold_surface_shape_representation - SUBTYPE OF (shape_representation); -WHERE - WR1: SIZEOF (QUERY (it <* SELF.items | - NOT (SIZEOF (['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FACE_BASED_SURFACE_MODEL', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MAPPED_ITEM', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.AXIS2_PLACEMENT_3D'] * TYPEOF (it)) = 1))) - = 0; - WR2: SIZEOF (QUERY (it <* SELF.items | - SIZEOF (['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FACE_BASED_SURFACE_MODEL', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MAPPED_ITEM'] * TYPEOF (it)) = 1)) > 0; - WR3: SIZEOF (QUERY (mi <* QUERY (it <* SELF.items | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MAPPED_ITEM' IN TYPEOF (it)) | - NOT (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 | - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FACE_BASED_SURFACE_MODEL' - IN TYPEOF (mr_it)))) > 0 )))) = 0; - WR4: SIZEOF (QUERY (fbsm <* QUERY (it <* SELF.items | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 (['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FACE_SURFACE', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ORIENTED_FACE'] * TYPEOF (fa)) = 1))) - = 0))) = 0))) = 0; - WR5: SIZEOF (QUERY (fbsm <* QUERY (it <* SELF.items | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 | - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FACE_SURFACE' IN TYPEOF (fa))) | - NOT (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 | - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ORIENTED_FACE' IN TYPEOF (fa))) | - NOT (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ADVANCED_FACE' IN TYPEOF (fa)) - OR - (SIZEOF (QUERY (bnds <* fa.bounds | - NOT (SIZEOF (['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.EDGE_LOOP', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.VERTEX_LOOP'] - * TYPEOF (bnds.bound)) = 1))) = 0)))) = 0))) = 0))) = 0; - WR8: SIZEOF (QUERY (fbsm <* QUERY (it <* SELF.items| - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ADVANCED_FACE' IN TYPEOF (fa)) - OR - (SIZEOF (QUERY (elp_fbnds <* QUERY (bnds <* fa.bounds | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.EDGE_LOOP' IN TYPEOF (bnds.bound)) | - NOT (SIZEOF (QUERY (oe <* elp_fbnds\path.edge_list | - NOT ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.EDGE_CURVE' IN TYPEOF - (oe.edge_element)))) = 0))) = 0)))) = 0))) = 0))) = 0; - WR9: SIZEOF (QUERY (fbsm <* QUERY (it <* SELF.items | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ADVANCED_FACE' IN TYPEOF (fa)) - OR - (SIZEOF (QUERY (elp_fbnds <* QUERY (bnds <* fa.bounds | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.EDGE_LOOP' IN TYPEOF (bnds.bound)) | - NOT (SIZEOF (QUERY (oe_cv <* QUERY (oe <* - elp_fbnds\path.edge_list | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.EDGE_CURVE' IN TYPEOF (oe.edge_element)) | - NOT (SIZEOF (['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.B_SPLINE_CURVE', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CONIC', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CURVE_REPLICA', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LINE', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.OFFSET_CURVE_3D', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PCURVE', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.POLYLINE', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ADVANCED_FACE' IN TYPEOF (fa)) - OR - (SIZEOF (QUERY (elp_fbnds <* QUERY (bnds <* fa.bounds | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ADVANCED_FACE' IN TYPEOF (fa)) - OR - (SIZEOF (QUERY (elp_fbnds <* QUERY (bnds <* fa.bounds | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.EDGE_LOOP' IN TYPEOF (bnds.bound)) | - NOT (SIZEOF (QUERY (oe <* elp_fbnds\path.edge_list| - NOT (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.VERTEX_POINT' IN TYPEOF - (oe.edge_element.edge_start)) - AND - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.VERTEX_POINT' IN - TYPEOF (oe.edge_element.edge_end))))) - = 0))) = 0)))) = 0))) = 0))) = 0; - WR12: SIZEOF (QUERY (fbsm <* QUERY (it <* SELF.items | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ADVANCED_FACE' IN TYPEOF (fa)) - OR - (SIZEOF (QUERY (elp_fbnds <* QUERY (bnds <* fa.bounds | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.EDGE_LOOP' IN TYPEOF (bnds.bound)) | - NOT (SIZEOF (QUERY (oe <* elp_fbnds\path.edge_list | - NOT ((SIZEOF (['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CARTESIAN_POINT', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.DEGENERATE_PCURVE', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.POINT_ON_CURVE', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.POINT_ON_SURFACE'] * TYPEOF - (oe.edge_element.edge_start\vertex_point.vertex_geometry)) = 1) - AND - (SIZEOF (['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CARTESIAN_POINT', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.DEGENERATE_PCURVE', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.POINT_ON_CURVE', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ADVANCED_FACE' IN TYPEOF (fa)) - OR - (SIZEOF (QUERY (vlp_fbnds <* QUERY (bnds <* fa.bounds | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.VERTEX_LOOP' IN TYPEOF (bnds.bound)) | - NOT ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.VERTEX_POINT' IN TYPEOF - (vlp_fbnds\vertex_loop.loop_vertex)))) = 0)))) = 0))) - = 0))) = 0; - WR14: SIZEOF (QUERY (fbsm <* QUERY (it <* SELF.items | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ADVANCED_FACE' IN TYPEOF (fa)) - OR - (SIZEOF (QUERY (vlp_fbnds <* QUERY (bnds <* fa.bounds | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.VERTEX_LOOP' IN TYPEOF (bnds.bound)) | - NOT (SIZEOF (['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CARTESIAN_POINT', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.DEGENERATE_PCURVE', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.POINT_ON_CURVE', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.POINT_ON_SURFACE'] * TYPEOF - (vlp_fbnds\vertex_loop.loop_vertex\vertex_point.vertex_geometry)) - = 1))) = 0)))) = 0))) = 0))) = 0; -END_ENTITY; -(* USED FROM (aic_faceted_brep); *) -ENTITY faceted_brep_shape_representation - SUBTYPE OF ( shape_representation ); - WHERE -WR1 : -SIZEOF ( -QUERY ( it <* items| NOT ( SIZEOF ([ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FACETED_BREP', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MAPPED_ITEM', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.AXIS2_PLACEMENT_3D' ] * TYPEOF (it)) = 1) )) = 0; -WR2 : -SIZEOF ( -QUERY ( it <* items| ( SIZEOF ([ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FACETED_BREP', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MAPPED_ITEM' ] * TYPEOF (it)) = 1) )) > 0; -WR3 : -SIZEOF ( -QUERY ( fbrep <* -QUERY ( it <* items| ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FACE_SURFACE' IN TYPEOF (fcs)) AND (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PLANE' IN TYPEOF (fcs\face_surface.face_geometry)) AND ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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| ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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| ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FACE_OUTER_BOUND' IN TYPEOF (bnds)) )) = 1) )) = 0) )) = 0) )) = 0; -WR5 : -SIZEOF ( -QUERY ( msb <* -QUERY ( it <* items| ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MANIFOLD_SOLID_BREP' IN TYPEOF (it)) )| ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ORIENTED_CLOSED_SHELL' IN TYPEOF (msb\manifold_solid_brep.outer)) )) = 0; -WR6 : -SIZEOF ( -QUERY ( brv <* -QUERY ( it <* items| ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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| ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MAPPED_ITEM' IN TYPEOF (it)) )| NOT ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FACETED_BREP_SHAPE_REPRESENTATION' IN TYPEOF (mi\mapped_item.mapping_source.mapped_representation)) )) = 0; - END_ENTITY ; -(* USED FROM (geometric_model_schema); *) -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 ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.BOXED_HALF_SPACE' IN TYPEOF(item)))) = 0; -END_ENTITY; -(* USED FROM (explicit_constraint_schema); *) -ENTITY simultaneous_constraint_group - SUBTYPE OF (variational_representation_item); - constraint_group : SET[2:?] OF constraint_group_member; -WHERE - WR1: SIZEOF(QUERY(q <* using_representations(SELF) | - SIZEOF(QUERY(r <* q.items | - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SIMULTANEOUS_CONSTRAINT_GROUP' - IN TYPEOF(r)) AND (SIZEOF(QUERY(s <* constraint_group | - (s IN r\simultaneous_constraint_group.constraint_group) AND NOT (r :=: SELF))) > 0))) > 0)) = 0; - WR2: SIZEOF(QUERY(q <* using_representations(constraint_group[1]) | - (SIZEOF(QUERY(r <* constraint_group | - item_in_context(r,q.context_of_items))) - = SIZEOF(constraint_group)))) > 0; - WR3: SIZEOF(QUERY(q <* constraint_group | - (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.EXPLICIT_CONSTRAINT' IN TYPEOF(q)) - AND (SIZEOF(QUERY(r <* q.constrained_elements | - SIZEOF(QUERY(s <* constraint_group | - r IN s.reference_elements)) > 0)) > 0)))) = 0; -END_ENTITY; -(* USED FROM (Document_assignment_mim); *) -ENTITY document_product_equivalence - SUBTYPE OF (document_product_association); -WHERE - WR1: SELF\document_product_association.name = 'equivalence'; - WR2: NOT ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PRODUCT_RELATED_PRODUCT_CATEGORY.PRODUCTS') | prpc.name = 'document')) = 1)); - WR3: NOT ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRODUCT_RELATED_PRODUCT_CATEGORY.PRODUCTS') | prpc.name = 'document')) = 1)); - WR4: NOT ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRODUCT_RELATED_PRODUCT_CATEGORY.PRODUCTS') | prpc.name = 'document')) = 1)); -END_ENTITY; -(* USED FROM (Externally_conditioned_data_quality_criteria_mim); *) - ENTITY externally_conditioned_data_quality_criterion - SUBTYPE OF(Data_quality_criterion,Data_quality_measurement_requirement); - WHERE - WR1 : SIZEOF(USEDIN(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.'+ - 'DATA_QUALITY_CRITERION_ASSESSMENT_ASSOCIATION.'+ - 'CRITERION')) = 0; - WR2 : SIZEOF(QUERY(i1<*bag_to_set( USEDIN(SELF,'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.'+ - 'REPRESENTATION_ITEM_RELATIONSHIP.'+ 'RELATED_REPRESENTATION_ITEM'))| - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.'+ 'DATA_QUALITY_CRITERION_MEASUREMENT_ASSOCIATION' - IN TYPEOF(i1))) = 0; - WR3 : SIZEOF(QUERY(i1<*bag_to_set( USEDIN(SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.'+ - 'REPRESENTATION_ITEM_RELATIONSHIP.'+ 'RELATING_REPRESENTATION_ITEM'))| - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.'+ 'DATA_QUALITY_CRITERION_MEASUREMENT_ASSOCIATION' - IN TYPEOF(i1))) = 0; - END_ENTITY; -(* USED FROM (geometric_model_schema); *) -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; -(* USED FROM (geometry_schema); *) -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; -(* USED FROM (draughting_element_schema); *) - ENTITY draughting_callout - SUBTYPE OF (geometric_representation_item); - contents : SET [1:?] OF draughting_callout_element; - WHERE - WR1: (SIZEOF (QUERY (l_1 <* SELF\draughting_callout.contents | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LEADER_CURVE' IN (TYPEOF(l_1)))) = 0) OR - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LEADER_DIRECTED_CALLOUT' IN (TYPEOF(SELF))) AND - (SIZEOF (QUERY (l_1 <* SELF\draughting_callout.contents | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROJECTION_CURVE' IN (TYPEOF(l_1)))) = 0) OR - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROJECTION_DIRECTED_CALLOUT' IN (TYPEOF(SELF))) AND - (SIZEOF (QUERY (l_1 <* SELF\draughting_callout.contents | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.DIMENSION_CURVE' IN (TYPEOF(l_1)))) = 0) OR - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.DIMENSION_CURVE_DIRECTED_CALLOUT' IN (TYPEOF(SELF))); - END_ENTITY; -(* USED FROM (geometry_schema); *) -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; -(* USED FROM (draughting_element_schema); *) - ENTITY dimension_curve - SUBTYPE OF (annotation_curve_occurrence); - WHERE - WR1: (SIZEOF( - QUERY(dct <* USEDIN(SELF,'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + - 'TERMINATOR_SYMBOL.ANNOTATED_CURVE') - | (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.'+ - 'DIMENSION_CURVE_TERMINATOR' IN TYPEOF(dct)) - )) - ) <= 2); - WR2: SIZEOF( - QUERY( dcdc <* USEDIN(SELF,'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + - 'DRAUGHTING_CALLOUT.CONTENTS') | - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.'+ - 'DIMENSION_CURVE_DIRECTED_CALLOUT' IN TYPEOF(dcdc))) - )>= 1; - WR3: (SIZEOF( - QUERY(dct1 <* USEDIN(SELF,'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + - 'TERMINATOR_SYMBOL.ANNOTATED_CURVE') - | (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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,'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.'+ - 'TERMINATOR_SYMBOL.ANNOTATED_CURVE') - | (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.'+ - 'DIMENSION_CURVE_TERMINATOR' IN TYPEOF(dct2)) - AND (dct2\dimension_curve_terminator.role = dimension_extent_usage.target))) - ) <= 1); - END_ENTITY; -(* USED FROM (Externally_conditioned_data_quality_criteria_mim); *) - ENTITY disallowed_assembly_relationship_usage - SUBTYPE OF(externally_conditioned_data_quality_criterion); - WHERE - WR1: validate_ecdq_inspected_elements_type(SELF, - ['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ASSEMBLY_COMPONENT_USAGE']); - END_ENTITY; -(* USED FROM (presentation_appearance_schema); *) - ENTITY styled_item - SUBTYPE OF (representation_item); - styles : SET [1:?] OF presentation_style_assignment; - item : styled_item_target; - WHERE - WR1: (SIZEOF(SELF.styles) = 1) - XOR - (SIZEOF(QUERY(pres_style <* SELF.styles | - NOT ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + - 'PRESENTATION_STYLE_BY_CONTEXT' IN - TYPEOF(pres_style)) - )) = 0); - WR2: NOT ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.STYLED_ITEM' IN TYPEOF(item)); - WR3: ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MAPPED_ITEM' IN TYPEOF(item)) OR - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.GEOMETRIC_REPRESENTATION_ITEM' IN TYPEOF(item)) OR - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CONTEXT_DEPENDENT_OVER_RIDING_STYLED_ITEM' IN TYPEOF(SELF)); - END_ENTITY; -(* USED FROM (presentation_appearance_schema); *) - 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 (['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + - 'SURFACE_STYLE_USAGE', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.'+ - 'EXTERNALLY_DEFINED_STYLE'] * - TYPEOF (style1)) = 1) - ))) = 0 - ))) = 0; - WR2: SIZEOF (QUERY (style1 <* SELF.styles | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SURFACE_STYLE_USAGE' IN - TYPEOF(style1) - )) <= 2; - WR3: SIZEOF (QUERY (style1 <* SELF.styles | - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SURFACE_STYLE_USAGE' IN TYPEOF (style1)) AND - (SIZEOF (QUERY (style2 <* (SELF.styles - style1) | - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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; -(* USED FROM (presentation_appearance_schema); *) - 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 | 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.REPRESENTATION_ITEM' IN TYPEOF(sc)))= 1) OR -(SIZEOF(QUERY(sc <* SELF.style_context | - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MAPPED_ITEM' IN TYPEOF(sc)) - OR ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.REPRESENTATION_RELATIONSHIP' IN TYPEOF(sc)) )) - = SIZEOF(style_context)); - END_ENTITY; -(* USED FROM (draughting_element_schema); *) - ENTITY leader_curve - SUBTYPE OF (annotation_curve_occurrence); - WHERE - WR1: SIZEOF( - QUERY(ldc <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + - 'DRAUGHTING_CALLOUT.CONTENTS') - | 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + - 'LEADER_DIRECTED_CALLOUT' IN TYPEOF(ldc))) >= 1; - END_ENTITY; -(* USED FROM (mathematical_functions_schema); *) -ENTITY basic_sparse_matrix - SUBTYPE OF (explicit_table_function, multiple_arity_generic_expression); - SELF\multiple_arity_generic_expression.operands : LIST [3:3] OF maths_function; - default_entry : maths_value; - order : ordering_type; -DERIVE - index : maths_function := SELF\multiple_arity_generic_expression.operands[1]; - loc : maths_function := SELF\multiple_arity_generic_expression.operands[2]; - val : maths_function := SELF\multiple_arity_generic_expression.operands[3]; -WHERE - WR1: function_is_1d_table(index); - WR2: function_is_1d_table(loc); - WR3: function_is_1d_table(val); - WR4: check_sparse_index_domain(index.domain, index_base, shape, order); - WR5: check_sparse_index_to_loc(index.range, loc.domain); - WR6: loc.domain = val.domain; - WR7: check_sparse_loc_range(loc.range, index_base, shape, order); - WR8: member_of(default_entry, val.range); -END_ENTITY; -(* USED FROM (mathematical_functions_schema); *) -ENTITY standard_table_function - SUBTYPE OF (linearized_table_function); - order : ordering_type; -WHERE - WR1: extremal_position_check(SELF); -END_ENTITY; -(* USED FROM (mathematical_functions_schema); *) -ENTITY function_application - SUBTYPE OF (multiple_arity_generic_expression); - func : maths_function_select; - arguments : LIST [1:?] OF maths_expression; -DERIVE - SELF\multiple_arity_generic_expression.operands : LIST [2:?] OF generic_expression - := [convert_to_maths_function(func)] + convert_to_operands(arguments); -WHERE - WR1: function_applicability(func, arguments); -END_ENTITY; -(* USED FROM (mathematical_functions_schema); *) -ENTITY listed_product_space - SUBTYPE OF (maths_space, generic_literal); - factors : LIST OF maths_space; -WHERE - WR1: SIZEOF (QUERY (space <* factors | - NOT (expression_is_constant(space)))) = 0; - WR2: no_cyclic_space_reference(SELF, []); - WR3: NOT (the_empty_space IN factors); -END_ENTITY; -(* USED FROM (shape_data_quality_inspection_result_schema); *) - ENTITY shape_data_quality_inspection_result_representation - SUBTYPE OF(data_quality_inspection_result_representation); - WHERE - WR1 : SIZEOF( QUERY( q <* SELF\representation.items| - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + - 'SHAPE_DATA_QUALITY_INSPECTION_RESULT' IN TYPEOF(q))) > 0; - WR2 : 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.GEOMETRIC_REPRESENTATION_CONTEXT' IN - TYPEOF(SELF\representation.context_of_items); - WR3 : SIZEOF(USEDIN(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.'+ - 'SHAPE_DATA_QUALITY_INSPECTED_SHAPE_AND_RESULT_RELATIONSHIP.'+ - 'REP_2'))>0; - END_ENTITY; -(* USED FROM (Finite_element_shape_mim); *) -ENTITY point_representation -SUBTYPE OF (shape_representation); -WHERE - WR1: SIZEOF(QUERY(it <* SELF\representation.items | ( NOT (SIZEOF(['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.NODE_SET', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MAPPED_ITEM', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'FEA_AXIS2_PLACEMENT_3D'] * TYPEOF(it)) = 1)))) = 0; - WR2: SIZEOF(QUERY(it <* SELF\representation.items | (SIZEOF(['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.NODE_SET', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MAPPED_ITEM'] * TYPEOF(it)) = 1))) >= 1; -END_ENTITY; -(* USED FROM (shape_tolerance_schema); *) -ENTITY geometric_tolerance_with_datum_reference - SUPERTYPE OF (ONEOF ( - ANGULARITY_TOLERANCE, - CIRCULAR_RUNOUT_TOLERANCE, - COAXIALITY_TOLERANCE, - CONCENTRICITY_TOLERANCE, - PARALLELISM_TOLERANCE, - PERPENDICULARITY_TOLERANCE, - SYMMETRY_TOLERANCE, - TOTAL_RUNOUT_TOLERANCE)) - SUBTYPE OF (geometric_tolerance); - datum_system : SET[1:?] OF datum_system_or_reference; -WHERE - WR1: (SIZEOF(QUERY(ds <* datum_system | 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'DATUM_SYSTEM' in TYPEOF(ds)))=0) OR (SIZEOF(datum_system)=1); -END_ENTITY; -(* USED FROM (mathematical_functions_schema); *) -ENTITY quantifier_expression - ABSTRACT SUPERTYPE - SUBTYPE OF (multiple_arity_generic_expression); - variables : LIST [1:?] OF UNIQUE generic_variable; -WHERE - WR1: SIZEOF (QUERY (vrbl <* variables | NOT (vrbl IN - SELF\multiple_arity_generic_expression.operands))) = 0; - WR2: SIZEOF (QUERY (vrbl <* variables | NOT ((schema_prefix + - 'BOUND_VARIABLE_SEMANTICS') IN TYPEOF (vrbl.interpretation.semantics)))) = 0; -END_ENTITY; -(* USED FROM (shape_aspect_definition_schema); *) -ENTITY datum - SUBTYPE OF (shape_aspect); - identification : identifier; -INVERSE - established_by_relationships : SET[1:?] OF shape_aspect_relationship FOR related_shape_aspect; -UNIQUE - UR1: identification,SELF\shape_aspect.of_shape; -WHERE - WR1: ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.COMMON_DATUM' IN TYPEOF(SELF)) - XOR ((SIZEOF(QUERY(x <* SELF\datum.established_by_relationships | - SIZEOF(['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.DATUM_FEATURE', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.DATUM_TARGET'] * - TYPEOF(x\shape_aspect_relationship.relating_shape_aspect)) = 1)) >= 1)); - WR2: SIZEOF(QUERY(x <* SELF\datum.established_by_relationships | - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.DATUM_FEATURE' IN TYPEOF(x\shape_aspect_relationship.relating_shape_aspect)))) <= 1; - WR3: SELF\shape_aspect.product_definitional = FALSE; - WR4: SELF\shape_aspect.name = ''; -END_ENTITY; -(* USED FROM (Ap242_managed_model_based_3d_engineering_mim); *) - 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; -(* USED FROM (shape_aspect_definition_schema); *) -ENTITY datum_feature - SUPERTYPE OF (ONEOF ( - DIMENSIONAL_LOCATION_WITH_DATUM_FEATURE, - DIMENSIONAL_SIZE_WITH_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 | ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.DATUM' IN TYPEOF (sar\shape_aspect_relationship.related_shape_aspect)))) = 1; - WR2: SELF\shape_aspect.product_definitional = TRUE; -END_ENTITY; -(* USED FROM (shape_data_quality_criteria_schema); *) - ENTITY shape_data_quality_criterion - SUPERTYPE OF (ONEOF ( - ERRONEOUS_DATA, - INAPT_DATA)) - SUBTYPE OF(data_quality_criterion, data_quality_measurement_requirement); - assessment_specification : shape_data_quality_assessment_specification_select; - WHERE - WR1 : SIZEOF(USEDIN(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.'+ - 'DATA_QUALITY_CRITERION_ASSESSMENT_ASSOCIATION.'+ - 'CRITERION' - )) = 0; - WR2 : SIZEOF(QUERY(i1<*bag_to_set( - USEDIN(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.'+ - 'REPRESENTATION_ITEM_RELATIONSHIP.'+ - 'RELATED_REPRESENTATION_ITEM'))| - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.'+ - 'DATA_QUALITY_CRITERION_MEASUREMENT_ASSOCIATION' - IN TYPEOF(i1))) = 0; - WR3 : SIZEOF(QUERY(i1<*bag_to_set( - USEDIN(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.'+ - 'REPRESENTATION_ITEM_RELATIONSHIP.'+ - 'RELATING_REPRESENTATION_ITEM'))| - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.'+ - 'DATA_QUALITY_CRITERION_MEASUREMENT_ASSOCIATION' - IN TYPEOF(i1))) = 0; - END_ENTITY; -(* USED FROM (shape_data_quality_criteria_schema); *) - ENTITY shape_data_quality_criteria_representation - SUBTYPE OF(data_quality_criteria_representation); - WHERE - WR1 : SIZEOF( QUERY( q <* SELF\representation.items| - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + - 'SHAPE_DATA_QUALITY_CRITERION' IN TYPEOF(q))) > 0; - END_ENTITY; -(* USED FROM (qualified_measure_schema); *) -ENTITY qualified_representation_item - SUBTYPE OF (representation_item); - qualifiers : SET [1:?] OF value_qualifier; -WHERE - WR1: SIZEOF(QUERY(temp <* qualifiers | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRECISION_QUALIFIER' - IN TYPEOF(temp))) < 2; -END_ENTITY; -(* USED FROM (aic_draughting_elements); *) -ENTITY dimension_callout_component_relationship - SUBTYPE OF (draughting_callout_relationship); -WHERE - WR1: SELF.name IN ['prefix', 'suffix']; - WR2: 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.STRUCTURED_DIMENSION_CALLOUT' - IN TYPEOF (SELF.relating_draughting_callout); - WR3: SIZEOF (TYPEOF (SELF.related_draughting_callout) * - ['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LEADER_DIRECTED_CALLOUT', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROJECTION_DIRECTED_CALLOUT', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.DIMENSION_CURVE_DIRECTED_CALLOUT', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 | - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 | - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ANNOTATION_TEXT_OCCURRENCE' - IN TYPEOF(con))) | - NOT (ato.name = 'suffix text') - )) = 0)); -END_ENTITY; -(* USED FROM (product_data_quality_inspection_result_schema); *) - ENTITY data_quality_inspection_result_representation - SUBTYPE OF(representation); - criteria_inspected : data_quality_criteria_representation; - WHERE - WR1 : SIZEOF( QUERY( q <* SELF\representation.items| - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + - 'DATA_QUALITY_INSPECTION_RESULT' IN TYPEOF(q))) > 0; - WR2 : SIZEOF(inspected_product_definition(SELF)) > 0; - END_ENTITY; -(* USED FROM (sketch_schema); *) -ENTITY implicit_point_on_plane - ABSTRACT SUPERTYPE OF (ONEOF ( - IMPLICIT_PLANAR_INTERSECTION_POINT, - IMPLICIT_PLANAR_PROJECTION_POINT)) - SUBTYPE OF (point, auxiliary_geometric_representation_item); - using_sketch : positioned_sketch; - computed_representation - : cartesian_point; -DERIVE - plane_of_point : - plane := get_plane_of_implicit_geometry(using_sketch); -WHERE - WR1: (plane_of_point\elementary_surface.position.location = - computed_representation) XOR - (dot_product(plane_of_point\elementary_surface.position.p[3], - get_relative_direction_2points - (plane_of_point\elementary_surface.position.location, - computed_representation)) = 0); - WR2: SIZEOF(TYPEOF(computed_representation) * - ['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.IMPLICIT_POINT_ON_PLANE', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.POINT_REPLICA']) = 0; -END_ENTITY; -(* USED FROM (aic_draughting_elements); *) -ENTITY draughting_elements - SUBTYPE OF (draughting_callout); -WHERE - WR1: SIZEOF (QUERY (l_c <* QUERY (con <* SELF.contents | - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LEADER_CURVE' IN TYPEOF(con))) | - NOT (SIZEOF (QUERY (ldc <* USEDIN (l_c, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'DRAUGHTING_CALLOUT.CONTENTS') | - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LEADER_DIRECTED_CALLOUT' - IN TYPEOF (ldc)))) <= 1)))=0; - WR2: NOT ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.DIMENSION_CURVE_DIRECTED_CALLOUT' - IN TYPEOF(SELF)) OR - (SIZEOF (QUERY (con <* SELF.contents | - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROJECTION_CURVE' IN - TYPEOF (con)))) <= 2); - WR3: SIZEOF (QUERY (rc <* USEDIN (SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.DRAUGHTING_CALLOUT_' + - 'RELATIONSHIP.RELATING_DRAUGHTING_CALLOUT') | - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + - 'DIMENSION_CALLOUT_RELATIONSHIP' IN TYPEOF (rc)) AND - (rc.name = 'primary') )) <= 1; - WR4: SIZEOF (QUERY (rc <* USEDIN (SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.DRAUGHTING_CALLOUT_' + - 'RELATIONSHIP.RELATING_DRAUGHTING_CALLOUT') | - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + - 'DIMENSION_CALLOUT_RELATIONSHIP' IN TYPEOF (rc)) AND - (rc.name = 'secondary') )) <= 1; - WR5: SIZEOF (QUERY (sec <* QUERY (rc <* USEDIN (SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.DRAUGHTING_CALLOUT_' + - 'RELATIONSHIP.RELATING_DRAUGHTING_CALLOUT') | - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + - 'DIMENSION_CALLOUT_RELATIONSHIP' IN TYPEOF (rc)) AND - (rc.name = 'secondary') ) | - NOT (SIZEOF (QUERY (prim <* USEDIN (SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.DRAUGHTING_CALLOUT_' + - 'RELATIONSHIP.RELATING_DRAUGHTING_CALLOUT') | - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + - 'DIMENSION_CALLOUT_RELATIONSHIP' IN TYPEOF (prim)) AND - (prim.name = 'primary') )) = 1))) = 0; -END_ENTITY; -(* USED FROM (aic_advanced_brep); *) -ENTITY advanced_brep_shape_representation - SUBTYPE OF ( shape_representation ); - WHERE -WR1 : -SIZEOF ( -QUERY ( it <* SELF.items| NOT ( SIZEOF ([ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MANIFOLD_SOLID_BREP', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FACETED_BREP', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MAPPED_ITEM', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.AXIS2_PLACEMENT_3D' ] * TYPEOF (it)) = 1) )) = 0; -WR2 : -SIZEOF ( -QUERY ( it <* SELF.items| ( SIZEOF ([ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MANIFOLD_SOLID_BREP', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MAPPED_ITEM' ] * TYPEOF (it)) = 1) )) > 0; -WR3 : -SIZEOF ( -QUERY ( msb <* -QUERY ( it <* SELF.items| ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ADVANCED_FACE' IN TYPEOF (fcs)) )) = 0) )) = 0) )) = 0; -WR4 : -SIZEOF ( -QUERY ( msb <* -QUERY ( it <* items| ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MANIFOLD_SOLID_BREP' IN TYPEOF (it)) )| ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ORIENTED_CLOSED_SHELL' IN TYPEOF (msb\manifold_solid_brep.outer)) )) = 0; -WR5 : -SIZEOF ( -QUERY ( brv <* -QUERY ( it <* items| ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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| ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MAPPED_ITEM' IN TYPEOF (it)) )| NOT ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ADVANCED_BREP_SHAPE_REPRESENTATION' IN TYPEOF (mi\mapped_item.mapping_source.mapped_representation)) )) = 0; - END_ENTITY ; -(* USED FROM (aic_draughting_elements); *) -ENTITY leader_directed_dimension - SUBTYPE OF (leader_directed_callout); -WHERE - WR1: SIZEOF (QUERY (con <* SELF.contents | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LEADER_CURVE' IN TYPEOF (con)))=1; -END_ENTITY; -(* USED FROM (aic_geometrically_bounded_2d_wireframe); *) -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) * -['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.GEOMETRIC_CURVE_SET', -'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.AXIS2_PLACEMENT_2D', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MAPPED_ITEM']) = 1) - )) = 0; - WR3: SIZEOF (QUERY (item <* SELF.items | - SIZEOF (TYPEOF (item) * -['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.GEOMETRIC_CURVE_SET', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MAPPED_ITEM']) = 1 - )) >= 1; - WR4: SIZEOF (QUERY (mi <* QUERY (item <* SELF.items | - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MAPPED_ITEM' - IN TYPEOF (item))) | - NOT ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 | - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.GEOMETRIC_CURVE_SET' - IN TYPEOF (item))) | - NOT (SIZEOF (QUERY (elem <* gcs\geometric_set.elements | - NOT (SIZEOF (TYPEOF (elem) * - ['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.B_SPLINE_CURVE', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CIRCLE', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.COMPOSITE_CURVE', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ELLIPSE', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.OFFSET_CURVE_2D', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.POINT', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.POLYLINE', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.TRIMMED_CURVE']) = - 1) - )) = 0) - )) = 0; - WR6: SIZEOF (QUERY (gcs <* QUERY (item <* SELF.items | - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.GEOMETRIC_CURVE_SET' - IN TYPEOF (item))) | - NOT (SIZEOF (QUERY (crv <* - QUERY (elem <* gcs\geometric_set.elements | - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CURVE' - IN TYPEOF (elem))) | - NOT (valid_basis_curve_in_2d_wireframe - (crv)) - )) = 0) - )) = 0; - WR7: SIZEOF (QUERY (gcs <* QUERY (item <* SELF.items | - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.GEOMETRIC_CURVE_SET' - IN TYPEOF (item))) | - NOT (SIZEOF (QUERY (pnt <* - QUERY (elem <* gcs\geometric_set.elements | - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.POINT' - IN TYPEOF(elem))) | - NOT (SIZEOF (TYPEOF (pnt) * - ['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CARTESIAN_POINT', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.POINT_ON_CURVE']) - = 1) - )) = 0) - )) = 0; -END_ENTITY; -(* USED FROM (presentation_definition_schema); *) -(* Pruned SUPERTYPE *) - ENTITY annotation_occurrence - SUPERTYPE OF ( ( ONEOF ( - ANNOTATION_CURVE_OCCURRENCE, - ANNOTATION_FILL_AREA_OCCURRENCE, - ANNOTATION_TEXT_OCCURRENCE, - ANNOTATION_SYMBOL_OCCURRENCE) )ANDOR( ONEOF ( - ANNOTATION_CURVE_OCCURRENCE, - ANNOTATION_FILL_AREA_OCCURRENCE, - ANNOTATION_PLANE, - ANNOTATION_SYMBOL_OCCURRENCE, - ANNOTATION_TEXT_OCCURRENCE, - TESSELLATED_ANNOTATION_OCCURRENCE) ) ) - SUBTYPE OF (styled_item); - WHERE - WR1: 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.GEOMETRIC_REPRESENTATION_ITEM' IN - TYPEOF (SELF); - WR2: SIZEOF (QUERY (reps <* using_representations(SELF) | - NOT('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ANNOTATION_REPRESENTATION_SELECT' IN TYPEOF(reps)))) = 0; - END_ENTITY; -(* USED FROM (aic_draughting_elements); *) -ENTITY radius_dimension - SUBTYPE OF (dimension_curve_directed_callout); -WHERE - WR1: SIZEOF (QUERY (con <* SELF.contents | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROJECTION_CURVE' IN TYPEOF (con)))<=1; -END_ENTITY; -(* USED FROM (aic_draughting_elements); *) -ENTITY structured_dimension_callout - SUBTYPE OF (draughting_callout); -WHERE - WR1: SIZEOF (TYPEOF (SELF) * - ['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.DATUM_FEATURE_CALLOUT', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.DATUM_TARGET_CALLOUT', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.GEOMETRICAL_TOLERANCE_CALLOUT', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LEADER_DIRECTED_CALLOUT', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROJECTION_DIRECTED_CALLOUT', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.DIMENSION_CURVE_DIRECTED_CALLOUT']) = 0; - WR2: SIZEOF (QUERY (ato <* QUERY (con <* SELF.contents | - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 | - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ANNOTATION_TEXT_OCCURRENCE' - IN TYPEOF (con))) | - (ato.name = 'dimension value') - )) >= 1; - WR4: SIZEOF (QUERY (dcr <* USEDIN (SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + - 'DRAUGHTING_CALLOUT_RELATIONSHIP.' + - 'RELATING_DRAUGHTING_CALLOUT') | - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + - 'DIMENSION_CALLOUT_COMPONENT_RELATIONSHIP' IN TYPEOF (dcr)) AND - (dcr.name = 'prefix') )) <= 1; - WR5: SIZEOF (QUERY (dcr <* USEDIN (SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + - 'DRAUGHTING_CALLOUT_RELATIONSHIP.' + - 'RELATING_DRAUGHTING_CALLOUT') | - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + - 'DIMENSION_CALLOUT_COMPONENT_RELATIONSHIP' IN TYPEOF (dcr)) AND - (dcr.name = 'suffix') )) <= 1; - WR6: NOT((SIZEOF (QUERY (ato <* QUERY (con <* SELF.contents | - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ANNOTATION_TEXT_OCCURRENCE' - IN TYPEOF(con)) ) | - (ato.name = 'prefix text') - )) > 0)) OR - (SIZEOF (QUERY (dcr <* USEDIN (SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + - 'DRAUGHTING_CALLOUT_RELATIONSHIP.' + - 'RELATING_DRAUGHTING_CALLOUT') | - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + - 'DIMENSION_CALLOUT_COMPONENT_RELATIONSHIP' IN TYPEOF (dcr)) AND - (dcr.name = 'prefix') )) = 1); - WR7: NOT(SIZEOF (QUERY (ato <* QUERY (con <* SELF.contents | - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ANNOTATION_TEXT_OCCURRENCE' - IN TYPEOF(con))) | - (ato.name = 'suffix text') - )) > 0) OR - (SIZEOF (QUERY (dcr <* USEDIN (SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + - 'DRAUGHTING_CALLOUT_RELATIONSHIP.' + - 'RELATING_DRAUGHTING_CALLOUT') | - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + - 'DIMENSION_CALLOUT_COMPONENT_RELATIONSHIP' IN TYPEOF (dcr)) AND - (dcr.name = 'suffix') )) = 1); -END_ENTITY; -(* USED FROM (aic_draughting_annotation); *) -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 ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.NULL_STYLE' - IN TYPEOF (sty.styles[1])) ))=0; - WR3: ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ANNOTATION_SYMBOL' - IN TYPEOF (SELF.item)); - WR4: ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.DRAUGHTING_SUBFIGURE_REPRESENTATION' - IN TYPEOF - (SELF.item\mapped_item.mapping_source.mapped_representation)); -END_ENTITY; -(* USED FROM (aic_draughting_annotation); *) -ENTITY draughting_subfigure_representation - SUBTYPE OF (symbol_representation); - SELF\representation.items : SET[1:?] OF draughting_subfigure_representation_item; -WHERE - WR1: SIZEOF (QUERY (item <* SELF\representation.items | - SIZEOF (['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ANNOTATION_OCCURRENCE', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.DRAUGHTING_CALLOUT'] * - TYPEOF (item)) = 1)) >= 1; - WR2: SIZEOF (QUERY (srm <* QUERY (rm <* - USEDIN (SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + - 'REPRESENTATION_MAP.MAPPED_REPRESENTATION') | - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SYMBOL_REPRESENTATION_MAP' - IN TYPEOF(rm))) | - NOT (SIZEOF (QUERY (a_s <* QUERY (mi <* srm.map_usage | - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ANNOTATION_SYMBOL' IN TYPEOF(mi))) - | NOT (SIZEOF (QUERY (aso <* - USEDIN (a_s, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + - 'STYLED_ITEM.ITEM') | - NOT ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ANNOTATION_SUBFIGURE_OCCURRENCE' - IN TYPEOF(aso)))) = 0))) = 0))) > 0; - WR3: SIZEOF (SELF.context_of_items.representations_in_context) = 1; -END_ENTITY; -(* USED FROM (aic_draughting_annotation); *) -ENTITY draughting_annotation_occurrence - SUBTYPE OF (annotation_occurrence); -WHERE - WR1: -- curve_has_curve_style: - (NOT ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ANNOTATION_CURVE_OCCURRENCE' - IN TYPEOF (SELF))) OR - (SIZEOF (QUERY (sty <* SELF.styles | - NOT ((SIZEOF (sty.styles) = 1) - AND ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CURVE_STYLE' - IN TYPEOF (sty.styles[1]))) )) = 0); - WR2: -- fill_area_has_fill_style: - (NOT ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ANNOTATION_FILL_AREA_OCCURRENCE' - IN TYPEOF (SELF))) OR (SIZEOF (QUERY (sty <* SELF.styles | - NOT ((SIZEOF (sty.styles) = 1) - AND ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FILL_AREA_STYLE' - IN TYPEOF (sty.styles[1]))) )) = 0); - WR3: -- styled_fill_boundaries: - (NOT ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + - 'STYLED_ITEM.ITEM') | - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + - 'ANNOTATION_CURVE_OCCURRENCE' IN TYPEOF (si)))) > 0))) = 0); - WR4: -- symbol_has_symbol_style: - (NOT ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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]) * - ['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SYMBOL_STYLE', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.NULL_STYLE']) = 1)) )) = 0); - WR5: -- allowable_symbol_representations: - (NOT (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ANNOTATION_SYMBOL_OCCURRENCE' - IN TYPEOF (SELF)) AND - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ANNOTATION_SYMBOL' - IN TYPEOF(SELF.item)))) OR - (SIZEOF (['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + - 'DRAUGHTING_SYMBOL_REPRESENTATION', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + - 'DRAUGHTING_SUBFIGURE_REPRESENTATION'] * - TYPEOF (SELF.item\mapped_item.mapping_source. - mapped_representation)) = 1); - WR6: -- text_has_text_style: - (NOT ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ANNOTATION_TEXT_OCCURRENCE' - IN TYPEOF (SELF))) OR - (SIZEOF (QUERY (sty <* SELF.styles | - NOT ((SIZEOF (sty.styles) = 1) - AND ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.TEXT_STYLE' - IN TYPEOF (sty.styles[1]))) )) = 0); - WR7: -- allowable_text: - (NOT('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ANNOTATION_TEXT_OCCURRENCE' - IN TYPEOF (SELF))) OR - (SIZEOF (TYPEOF(SELF.item) * - ['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.COMPOSITE_TEXT', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.TEXT_LITERAL']) = 1); - WR8: -- text_not_nested: - (NOT (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ANNOTATION_TEXT_OCCURRENCE' - IN TYPEOF (SELF)) AND - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.COMPOSITE_TEXT' - IN TYPEOF (SELF.item)))) OR (SIZEOF (QUERY (tl <* - SELF.item\composite_text.collected_text | - NOT ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.TEXT_LITERAL' - IN TYPEOF (tl)) )) = 0); - WR9: -- text_alignment_literals: - (NOT (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ANNOTATION_TEXT_OCCURRENCE' - IN TYPEOF (SELF)) AND - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.TEXT_LITERAL' - IN TYPEOF (SELF.item)))) OR (SELF.item\text_literal.alignment - IN ['baseline left', 'baseline centre', 'baseline right']); - WR10: -- text_alignment_composites: - (NOT (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ANNOTATION_TEXT_OCCURRENCE' - IN TYPEOF (SELF)) AND - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.COMPOSITE_TEXT' - IN TYPEOF (SELF.item)))) OR - (SIZEOF (QUERY (tl <* QUERY (text <* SELF. - item\composite_text.collected_text - |('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.TEXT_LITERAL' IN TYPEOF(text))) | - NOT (tl\text_literal.alignment IN - ['baseline left', 'baseline centre', 'baseline right']) )) = 0); - WR11: -- single_text_alignment: - NOT (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ANNOTATION_TEXT_OCCURRENCE' - IN TYPEOF(SELF)) AND - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.COMPOSITE_TEXT' - IN TYPEOF (SELF.item))) OR check_text_alignment(SELF.item); - WR12: -- single_text_font: - NOT (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ANNOTATION_TEXT_OCCURRENCE' - IN TYPEOF(SELF)) AND - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.COMPOSITE_TEXT' - IN TYPEOF (SELF.item))) OR check_text_font(SELF.item); - WR13: -- allowable_text_literals: - (NOT (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ANNOTATION_TEXT_OCCURRENCE' - IN TYPEOF(SELF)) AND - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.COMPOSITE_TEXT' - IN TYPEOF (SELF.item)))) OR - (SIZEOF (QUERY (tl <* QUERY (text <* - SELF.item\composite_text.collected_text | - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.TEXT_LITERAL' IN TYPEOF (text))) | - NOT (SIZEOF (TYPEOF(tl) * - ['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + - 'TEXT_LITERAL_WITH_BLANKING_BOX', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + - 'TEXT_LITERAL_WITH_ASSOCIATED_CURVES']) = 0) )) = 0); - WR14: -- styled_text_literal_curves: - (NOT (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ANNOTATION_TEXT_OCCURRENCE' - IN TYPEOF (SELF)) AND - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.STYLED_ITEM.ITEM') | - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ANNOTATION_CURVE_OCCURRENCE' - IN TYPEOF (si)) )) > 0) )) = 0); - WR15: -- styled_composite_text_curves: - (NOT (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ANNOTATION_TEXT_OCCURRENCE' - IN TYPEOF (SELF)) AND - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.STYLED_ITEM.ITEM') | - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ANNOTATION_CURVE_OCCURRENCE' - IN TYPEOF (si)) )) > 0) )) = 0); -WR16: -- curve_style_has_width: - SIZEOF (QUERY (cs <* QUERY (sty <* SELF.styles | - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CURVE_STYLE' IN TYPEOF (sty.styles[1]))) - | NOT (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT' - IN TYPEOF (cs.styles[1]\curve_style.curve_width)) AND - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.POSITIVE_LENGTH_MEASURE' - IN TYPEOF (cs.styles[1]\curve_style. - curve_width\measure_with_unit.value_component))))) = 0; -WR17: -- tiling_constraints: - SIZEOF (QUERY (fas <* QUERY (sty <* SELF.styles | - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FILL_AREA_STYLE' - IN TYPEOF (sty.styles[1]))) | - NOT ((SIZEOF (QUERY (fs <* fas.styles[1]\fill_area_style.fill_styles - | ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FILL_AREA_STYLE_TILES' - IN TYPEOF (fs)))) <= 1) - AND (SIZEOF (QUERY (fst <* QUERY (fs <* - fas.styles[1]\fill_area_style.fill_styles | - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FILL_AREA_STYLE_TILES' - IN TYPEOF (fs))) | - NOT (SIZEOF (fst\fill_area_style_tiles.tiles) = 1) - )) = 0)) - )) = 0; - WR18: -- hatching_constraints: - SIZEOF (QUERY (fas <* QUERY (sty <* SELF.styles | - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FILL_AREA_STYLE' - IN TYPEOF (sty.styles[1]))) | - NOT (SIZEOF (QUERY (fsh <* QUERY (fs <* - fas.styles[1]\fill_area_style.fill_styles | - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FILL_AREA_STYLE_HATCHING' - IN TYPEOF (fs))) | - NOT (fsh\fill_area_style_hatching.point_of_reference_hatch_line :=: - fsh\fill_area_style_hatching.pattern_start) )) = 0) )) = 0; - WR19: -- text_style_constraint: - SIZEOF (QUERY (ts <* QUERY (sty <* SELF.styles | - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.TEXT_STYLE' - IN TYPEOF(sty.styles[1]))) | - NOT ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + - 'TEXT_STYLE_WITH_BOX_CHARACTERISTICS' - IN TYPEOF (ts.styles[1])))) = 0; - WR20: -- text_style_characteristics: - SIZEOF (QUERY (ts <* QUERY (sty <* SELF.styles | - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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; -(* USED FROM (finite_element_analysis_control_and_result_schema); *) -ENTITY volume_3d_element_nodal_specified_variable_values - SUBTYPE OF (volume_3d_element_field_variable_definition); - values : LIST [1:?] OF field_value; - additional_node_values : BOOLEAN; - variable : volume_variable; -WHERE - WR1: consistent_list_values (values, variable); - WR2: appropriate_list_value_existence (values, - TYPEOF (SELF\state_definition.defined_state)); -END_ENTITY; -(* USED FROM (presentation_appearance_schema); *) - 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 | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.'+ - 'FILL_AREA_STYLE_COLOUR' IN - TYPEOF(fill_style) - )) <= 1; - END_ENTITY; -(* USED FROM (geometry_schema); *) -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 | 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.OUTER_BOUNDARY_CURVE' IN TYPEOF(temp))) = 0); - WR2: (NOT(implicit_outer)) OR ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.BOUNDED_SURFACE' IN TYPEOF(basis_surface)); - WR3: SIZEOF(QUERY(temp <* boundaries | 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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; -(* USED FROM (aic_topologically_bounded_surface); *) -ENTITY advanced_face - SUBTYPE OF ( face_surface ); - WHERE -WR1 : -SIZEOF ([ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ELEMENTARY_SURFACE', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.B_SPLINE_SURFACE', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SWEPT_SURFACE' ] * TYPEOF (face_geometry)) = 1; -WR2 : -SIZEOF ( -QUERY ( elp_fbnds <* -QUERY ( bnds <* bounds| ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.EDGE_LOOP' IN TYPEOF (bnds.bound)) )| NOT ( SIZEOF ( -QUERY ( oe <* elp_fbnds.bound\path.edge_list| NOT ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.EDGE_CURVE' IN TYPEOF (oe\oriented_edge.edge_element)) )) = 0) )) = 0; -WR3 : -SIZEOF ( -QUERY ( elp_fbnds <* -QUERY ( bnds <* bounds| ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.EDGE_LOOP' IN TYPEOF (bnds.bound)) )| NOT ( SIZEOF ( -QUERY ( oe <* elp_fbnds.bound\path.edge_list| NOT ( SIZEOF ([ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LINE', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CONIC', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.POLYLINE', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SURFACE_CURVE', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.B_SPLINE_CURVE' ] * TYPEOF (oe.edge_element\edge_curve.edge_geometry)) = 1) )) = 0) )) = 0; -WR4 : -SIZEOF ( -QUERY ( elp_fbnds <* -QUERY ( bnds <* bounds| ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.EDGE_LOOP' IN TYPEOF (bnds.bound)) )| NOT ( SIZEOF ( -QUERY ( oe <* elp_fbnds.bound\path.edge_list| NOT ((('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.VERTEX_POINT' IN TYPEOF (oe\edge.edge_start)) AND ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CARTESIAN_POINT' IN TYPEOF (oe\edge.edge_start\vertex_point.vertex_geometry))) AND (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.VERTEX_POINT' IN TYPEOF (oe\edge.edge_end)) AND ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CARTESIAN_POINT' IN TYPEOF (oe\edge.edge_end\vertex_point.vertex_geometry)))) )) = 0) )) = 0; -WR5 : -SIZEOF ( -QUERY ( elp_fbnds <* -QUERY ( bnds <* bounds| ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.EDGE_LOOP' IN TYPEOF (bnds.bound)) )| ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ORIENTED_PATH' IN TYPEOF (elp_fbnds.bound)) )) = 0; -WR6 : NOT ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SWEPT_SURFACE' IN TYPEOF (face_geometry)) OR ( SIZEOF ([ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LINE', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CONIC', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.POLYLINE', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.B_SPLINE_CURVE' ] * TYPEOF (face_geometry\swept_surface.swept_curve)) = 1); -WR7 : -SIZEOF ( -QUERY ( vlp_fbnds <* -QUERY ( bnds <* bounds| ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.VERTEX_LOOP' IN TYPEOF (bnds.bound)) )| NOT (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.VERTEX_POINT' IN TYPEOF (vlp_fbnds\face_bound.bound\vertex_loop.loop_vertex)) AND ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ([ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.EDGE_LOOP', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.VERTEX_LOOP' ] * TYPEOF (bnd.bound)) = 1) )) = 0; -WR9 : -SIZEOF ( -QUERY ( elp_fbnds <* -QUERY ( bnds <* bounds| ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.EDGE_LOOP' IN TYPEOF (bnds.bound)) )| NOT ( SIZEOF ( -QUERY ( oe <* elp_fbnds.bound\path.edge_list| ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PCURVE' IN TYPEOF (sc_ag)) )) = 0) )) = 0) )) = 0; -WR10 : (NOT ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SWEPT_SURFACE' IN TYPEOF (face_geometry)) OR (NOT ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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| ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.EDGE_LOOP' IN TYPEOF (bnds.bound)) )| NOT ( SIZEOF ( -QUERY ( oe <* elp_fbnds.bound\path.edge_list| ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ; -(* USED FROM (Construction_geometry_mim); *) - ENTITY constructive_geometry_representation - SUBTYPE OF (representation); - WHERE - WR1: ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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(['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PLACEMENT', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CURVE', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.EDGE', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FACE', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.POINT', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SURFACE', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FACE_SURFACE', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.VERTEX_POINT'] * TYPEOF(cgr_i)) <> 1 )) = 0; - WR3: SIZEOF( USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'REPRESENTATION_RELATIONSHIP.REP_2') ) > 0; - WR4: SIZEOF( USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'REPRESENTATION_MAP.MAPPED_REPRESENTATION') ) = 0; - END_ENTITY; -(* USED FROM (draughting_dimension_schema); *) -ENTITY dimension_callout - SUBTYPE OF (draughting_callout); -WHERE - WR1: ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LEADER_DIRECTED_CALLOUT' - IN (TYPEOF (SELF))) XOR - (SIZEOF (QUERY(dce_1 <* SELF\draughting_callout.contents | - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LEADER_CURVE' - IN (TYPEOF(dce_1))))) = 0); - WR2: ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROJECTION_DIRECTED_CALLOUT' - IN (TYPEOF (SELF))) XOR - (SIZEOF (QUERY(dce_1 <* SELF\draughting_callout.contents | - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROJECTION_CURVE' - IN (TYPEOF(dce_1))))) = 0); - WR3: -('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.DIMENSION_CURVE_DIRECTED_CALLOUT' - IN (TYPEOF (SELF))) XOR - (SIZEOF (QUERY(dce_1 <* SELF\draughting_callout.contents | - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.DIMENSION_CURVE' - IN (TYPEOF(dce_1))))) = 0); -END_ENTITY; -(* USED FROM (Draughting_element_specialisations_mim); *) - ENTITY surface_condition_callout - SUBTYPE OF (draughting_callout); - WHERE - WR1: SIZEOF ( QUERY ( c <* SELF.contents | SIZEOF ( - ['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.'+ 'ANNOTATION_CURVE_OCCURRENCE' , - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.'+ 'ANNOTATION_SYMBOL_OCCURRENCE' , - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.'+ 'ANNOTATION_TEXT_OCCURRENCE']* TYPEOF - ( c ) ) <>1 ) ) =0; - END_ENTITY; -(* USED FROM (presentation_definition_schema); *) - 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 ( - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CIRCLE' IN TYPEOF (curve)) OR - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ELLIPSE' IN TYPEOF (curve)) OR - ( ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.B_SPLINE_CURVE' IN TYPEOF (curve)) - AND (curve\b_spline_curve.closed_curve = TRUE) ) OR - ( ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.COMPOSITE_CURVE' IN TYPEOF (curve)) - AND (curve\composite_curve.closed_curve = TRUE) ) OR - ( ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.POLYLINE' IN TYPEOF (curve)) - AND (curve\polyline.points[LOINDEX(curve\polyline.points)] = - curve\polyline.points[HIINDEX(curve\polyline.points)]) ) - ) )) = 0); - END_ENTITY; -(* USED FROM (aic_associative_draughting_elements); *) - 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 | - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MAPPED_ITEM' IN TYPEOF(it))) | - NOT ( - SIZEOF (['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.DRAUGHTING_MODEL'] * - TYPEOF (mi\mapped_item.mapping_source. - mapped_representation)) = 1 - ))) = 0; - WR2: SIZEOF (QUERY (smi <* QUERY (si <* QUERY (it <* SELF.items | - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.STYLED_ITEM' IN TYPEOF(it))) | - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MAPPED_ITEM' IN - TYPEOF(si\styled_item.item))) | - (NOT (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CURVE_STYLE' IN TYPEOF(psa))))) = 1 - )))) = 1))) - )) = 0; - END_ENTITY; -(* USED FROM (presentation_definition_schema); *) - 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; -(* USED FROM (aic_associative_draughting_elements); *) - ENTITY dimension_text_associativity - SUBTYPE OF (text_literal, mapped_item); - WHERE - WR1: ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_DIMENSION_REPRESENTATION' - IN TYPEOF (SELF\mapped_item. - mapping_source.mapped_representation)); - WR2: ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.DRAUGHTING_CALLOUT' - IN TYPEOF (SELF\mapped_item.mapping_target)); - WR3: SIZEOF (QUERY (ato <* QUERY (si <* - USEDIN (SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.STYLED_ITEM.ITEM') | - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ANNOTATION_TEXT_OCCURRENCE' - IN TYPEOF(si))) | - NOT (SIZEOF( QUERY (dc <* - USEDIN (ato, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + - 'DRAUGHTING_CALLOUT.CONTENTS') | - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.DRAUGHTING_CALLOUT' - IN TYPEOF (dc))) - * [SELF\mapped_item.mapping_target]) = 1) - )) = 0; - END_ENTITY; -(* USED FROM (material_property_definition_schema); *) -ENTITY material_property -SUBTYPE OF (property_definition); -UNIQUE - UR1 : SELF\property_definition.name, SELF\property_definition.definition; -WHERE - WR1 : ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CHARACTERIZED_OBJECT' IN - TYPEOF(SELF\property_definition.definition)) OR - (SIZEOF(bag_to_set(USEDIN(SELF , - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + - 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')) - - QUERY(temp <* bag_to_set(USEDIN(SELF , - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + - 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')) | - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + - 'MATERIAL_PROPERTY_REPRESENTATION' IN - TYPEOF(temp)))) = 0); -END_ENTITY; -(* USED FROM (aic_csg); *) -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 ([ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CSG_SOLID', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MAPPED_ITEM', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.AXIS2_PLACEMENT_3D', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SOLID_REPLICA', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.REVOLVED_FACE_SOLID', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.EXTRUDED_FACE_SOLID' ] * TYPEOF (it)) <> 1) )) = 0; -WR3 : -SIZEOF ( -QUERY ( mi <* -QUERY ( it <* SELF.items| ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MAPPED_ITEM' IN TYPEOF (it)) )| NOT ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CSG_SHAPE_REPRESENTATION' IN TYPEOF (mi\mapped_item.mapping_source.mapped_representation)) )) = 0; -WR4 : -SIZEOF ( -QUERY ( sr <* -QUERY ( it <* SELF.items| ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SOLID_REPLICA' IN TYPEOF (it)) )| ( SIZEOF ([ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CSG_SOLID', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.REVOLVED_FACE_SOLID', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.EXTRUDED_FACE_SOLID' ] * TYPEOF (sr\solid_replica.parent_solid)) = 0) )) = 0; -WR5 : -SIZEOF ( -QUERY ( it <* SELF.items| NOT ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.AXIS2_PLACEMENT_3D' IN TYPEOF (it)) )) > 0; - END_ENTITY ; -(* USED FROM (presentation_definition_schema); *) - ENTITY symbol_representation_map - SUBTYPE OF (representation_map); - SELF\representation_map.mapped_representation : symbol_representation; - SELF\representation_map.mapping_origin : axis2_placement; - WHERE - WR1: SIZEOF( - QUERY(mi <* SELF\representation_map.map_usage | NOT('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ANNOTATION_SYMBOL' IN TYPEOF(mi))) - ) = 0; - END_ENTITY; -(* USED FROM (solid_shape_element_schema); *) -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: ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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; -(* USED FROM (procedural_model_schema); *) -ENTITY explicit_procedural_representation_relationship - SUBTYPE OF (representation_relationship); - SELF\representation_relationship.rep_1 : procedural_representation; -WHERE - WR1 : (NOT ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROCEDURAL_REPRESENTATION' - IN TYPEOF(SELF\representation_relationship.rep_2))) AND - (NOT ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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; -(* USED FROM (assembly_constraint_schema); *) -ENTITY fixed_constituent_assembly_constraint -SUBTYPE OF (assembly_geometric_constraint, - fixed_element_geometric_constraint); - fixed_constituent: representative_shape_representation; -WHERE -WR1: SELF\explicit_constraint.constrained_elements[1] - \geometric_representation_item.dim = 3; -WR2: (assembly_leaf (using_product_definition_of_shape_representation - (fixed_constituent)[1])); -WR3: (SIZEOF(SELF\explicit_constraint.constrained_elements) = 1) AND - (SIZEOF(SELF\explicit_constraint.reference_elements) = 0); -WR4: fixed_constituent IN (using_representations(SELF\explicit_constraint.constrained_elements[1]) + - using_representation_with_mapping(SELF\explicit_constraint.constrained_elements[1])); -END_ENTITY;-- fixed_constituent_assembly_constraint -(* USED FROM (assembly_constraint_schema); *) -ENTITY binary_assembly_constraint - ABSTRACT SUPERTYPE OF (ONEOF ( - PARALLEL_ASSEMBLY_CONSTRAINT, - SURFACE_DISTANCE_ASSEMBLY_CONSTRAINT_WITH_DIMENSION, - ANGLE_ASSEMBLY_CONSTRAINT_WITH_DIMENSION, - PERPENDICULAR_ASSEMBLY_CONSTRAINT, - INCIDENCE_ASSEMBLY_CONSTRAINT, - COAXIAL_ASSEMBLY_CONSTRAINT, - TANGENT_ASSEMBLY_CONSTRAINT)) - SUBTYPE OF (assembly_geometric_constraint, - representation_relationship_with_transformation); -SELF\representation_relationship.rep_1: representative_shape_representation; -SELF\representation_relationship.rep_2: representative_shape_representation; -WHERE -WR1: (SELF\explicit_constraint.constrained_elements[1] - \geometric_representation_item.dim = 3) AND - (SELF\explicit_constraint.reference_elements[1] - \geometric_representation_item.dim = 3); -WR2: (SELF\representation_relationship.rep_1 IN (using_representations - (SELF\representation_relationship_with_transformation. - transformation_operator\item_defined_transformation.transform_item_1) + - using_representation_with_mapping - (SELF\representation_relationship_with_transformation. - transformation_operator\item_defined_transformation.transform_item_1))) AND - (SELF\representation_relationship.rep_2 IN (using_representations - (SELF\representation_relationship_with_transformation. - transformation_operator\item_defined_transformation.transform_item_2) + - using_representation_with_mapping - (SELF\representation_relationship_with_transformation. - transformation_operator\item_defined_transformation.transform_item_2))); -WR3: (SIZEOF(SELF\explicit_constraint.constrained_elements)=1) AND - (SIZEOF(SELF\explicit_constraint.reference_elements)=1); -WR4: (SELF\representation_relationship_with_transformation. - transformation_operator\item_defined_transformation.transform_item_1 = - SELF\explicit_constraint.reference_elements[1]) AND - (SELF\representation_relationship_with_transformation. - transformation_operator\item_defined_transformation.transform_item_2 = - SELF\explicit_constraint.constrained_elements[1]); - -END_ENTITY;-- binary_assembly_constraint -(* USED FROM (presentation_organization_schema); *) - ENTITY presentation_area - SUBTYPE OF (presentation_representation); - WHERE - WR1: ((SIZEOF (QUERY (ais <* USEDIN (SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + - 'AREA_IN_SET.AREA') | - SIZEOF (USEDIN (ais, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + - 'PRESENTATION_SIZE.UNIT')) =1)) > 0) OR - (SIZEOF (USEDIN (SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + - 'PRESENTATION_SIZE.UNIT')) =1)); - END_ENTITY; -(* USED FROM (aic_machining_feature); *) -ENTITY turned_knurl - SUBTYPE OF (feature_definition); - WHERE - WR1: (SELF\characterized_object.description IN - ['diamond','diagonal','straight']); - WR2: SIZEOF( QUERY( pd <* USEDIN( SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - SIZEOF( QUERY( pdr <* USEDIN( pd, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN - TYPEOF(pdr.used_representation)) AND - ({6 <= SIZEOF(pdr.used_representation.items) <= 9}) )) = 1 )) = 1; - WR3: (SIZEOF(QUERY ( pd <* USEDIN(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') - IN TYPEOF(pdr.used_representation)) ) | - (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | - (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM' - IN TYPEOF(it)) AND - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.COUNT_MEASURE' - IN TYPEOF(it\measure_with_unit.value_component)) AND - (it.name = 'number of teeth')) )) <= 1)) )) = 0)) )) = 0); - WR4: (SIZEOF(QUERY ( pd <* USEDIN(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') - IN TYPEOF(pdr.used_representation)) ) | - (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | - ((SIZEOF([ - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] - * TYPEOF(it)) = 2) AND (it.name = 'major diameter'))))= 1)) )) - = 0)) )) = 0); - WR5: (SIZEOF(QUERY ( pd <* USEDIN(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') - IN TYPEOF(pdr.used_representation)) ) | - (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | - ((SIZEOF([ - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] - * TYPEOF(it)) = 2) AND (it.name = 'nominal diameter')) )) = 1)) )) - = 0)) )) = 0); - WR6: (SIZEOF(QUERY ( pd <* USEDIN(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY ( impl_rep <* - QUERY ( pdr <* USEDIN(pd,'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (( - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr. - used_representation)) ) | (NOT (SIZEOF(QUERY ( it <* - impl_rep.used_representation.items | ((SIZEOF([ - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] - * TYPEOF(it)) = 2) AND (it.name = 'tooth depth')) )) <= 1)) )) - = 0)) )) = 0); - WR7: (SIZEOF(QUERY ( pd <* USEDIN(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') - IN TYPEOF(pdr.used_representation)) ) | - (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | - ((SIZEOF([ - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * - TYPEOF(it)) = 2) AND (it.name = 'root fillet')) )) <= 1)) )) - = 0)) )) = 0); - WR8: (SIZEOF(QUERY ( pd <* USEDIN(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') - IN TYPEOF(pdr.used_representation)) ) | - (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | - ((SIZEOF([ - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * - TYPEOF(it)) = 2) AND (it.name = 'diametral pitch')) )) = 1)) )) - = 0)) )) = 0); - WR9: ((NOT (SELF\characterized_object.description IN - ['diamond','diagonal'])) OR ( - SIZEOF(QUERY ( pd <* USEDIN(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( - pd,'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (( - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr. - used_representation)) ) | (NOT (SIZEOF(QUERY ( it <* - impl_rep.used_representation.items | ((SIZEOF([ - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PLANE_ANGLE_MEASURE_WITH_UNIT'] - * TYPEOF(it)) = 2) AND (it.name = 'helix angle')) )) = 1)) )) - = 0)) )) = 0)); - WR10: ((NOT (SELF\characterized_object.description = 'diagonal')) OR - (SIZEOF(QUERY ( pd <* USEDIN(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') - IN TYPEOF(pdr.used_representation)) ) | - (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | - (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.DESCRIPTIVE_REPRESENTATION_ITEM' - IN TYPEOF(it)) AND (it.name = 'helix hand')) )) = 1)) )) - = 0)) )) = 0)); - WR11: (SIZEOF(QUERY ( pds <* QUERY ( pd <* USEDIN(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' - IN TYPEOF(pd)) ) | (NOT (SIZEOF(QUERY ( sa_occ <* USEDIN(pds, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE') | - ((sa_occ.description = 'partial area occurrence') AND - (SIZEOF(QUERY ( sdr <* QUERY ( sar <* USEDIN(sa_occ, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | - ((sar.description = 'applied area usage') AND - (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_DEFINING_RELATIONSHIP') IN TYPEOF(sar))) ) | - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.APPLIED_AREA' - IN TYPEOF(sdr.relating_shape_aspect)) )) = 1)) )) = 1)) )) = 0); - WR12: (SIZEOF(QUERY ( pds <* QUERY ( pd <* USEDIN(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' - IN TYPEOF(pd)) ) | - (NOT (SIZEOF(QUERY ( sa_occ <* USEDIN(pds, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE') | - ((SIZEOF(QUERY ( sdr <* QUERY ( sar <* USEDIN(sa_occ, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | - ((sar.description = 'applied shape') AND - (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_DEFINING_RELATIONSHIP') - IN TYPEOF(sar))) ) | - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT' - IN TYPEOF(sdr.relating_shape_aspect)) )) = 1)) )) = 1)) )) = 0); -END_ENTITY; -- turned_knurl -(* USED FROM (aic_machining_feature); *) -ENTITY thread_runout - SUBTYPE OF (shape_aspect); - WHERE - WR1: ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' - IN TYPEOF(SELF.of_shape)); - WR2: (SIZEOF(QUERY ( pd <* USEDIN(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(QUERY ( pdr <* USEDIN(pd, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') - IN TYPEOF(pdr.used_representation)) )) = 1)) )) = 0); - WR3: (SIZEOF(QUERY ( pd <* USEDIN(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') - IN TYPEOF(pdr.used_representation)) ) | - (NOT (SIZEOF (impl_rep.used_representation.items) = 3)) )) - = 0)) )) = 0); - WR4: SIZEOF( QUERY( pd <* USEDIN( SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (SIZEOF( QUERY( pdr <* USEDIN( pd, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' - IN TYPEOF(pdr.used_representation)) AND - (SIZEOF( QUERY( srwp_i <* pdr.used_representation.items | - NOT (srwp_i.name IN ['length of runout','pitch or dimension', - 'included or extra']) )) > 0 ) )) = 0 ) )) = 0; - WR5: (SIZEOF(QUERY ( pd <* USEDIN(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') - IN TYPEOF(pdr.used_representation)) ) | - (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | - ((SIZEOF([ - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * - TYPEOF(it)) = 2) AND (it.name = 'length of runout')) )) = 1)) )) - = 0)) )) <= 1); - WR6: (SIZEOF(QUERY ( pd <* USEDIN(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (( - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr. - used_representation)) ) | (NOT (SIZEOF(QUERY ( it <* - impl_rep.used_representation.items | - (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.DESCRIPTIVE_REPRESENTATION_ITEM' - IN TYPEOF(it)) AND (it.name = 'pitch or dimension') - AND (it.description IN ['pitch','pitch or dimension'])) - )) = 1)) )) = 0)) )) = 0); - WR7: (SIZEOF(QUERY ( pd <* USEDIN(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (( - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr. - used_representation)) ) | (NOT (SIZEOF(QUERY ( it <* - impl_rep.used_representation.items | - (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.DESCRIPTIVE_REPRESENTATION_ITEM' - IN TYPEOF(it)) AND (it.name = 'included or extra') - AND (it.description IN ['included','extra'])) - )) = 1)) )) = 0)) )) = 0); -END_ENTITY; -- thread_runout -(* USED FROM (aic_machining_feature); *) -ENTITY thread - SUBTYPE OF (feature_definition); - WHERE - WR1 : (SIZEOF(QUERY ( pd <* USEDIN(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (SIZEOF(QUERY ( pdr <* USEDIN(pd, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - ((('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') - IN TYPEOF(pdr.used_representation)) AND - (8 <= SIZEOF(pdr.used_representation.items)) AND - (SIZEOF(pdr.used_representation.items) <= 11)) )) = 1) )) = 1); - WR2 : (SIZEOF(QUERY ( pd <* USEDIN(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') - IN TYPEOF(pdr.used_representation)) ) | - (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | - ((SIZEOF([ - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] - * TYPEOF(it)) = 2) AND (it.name = 'major diameter')) )) = 1)) )) - = 0)) )) = 0); - WR3 : (SIZEOF(QUERY ( pd <* USEDIN(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') - IN TYPEOF(pdr.used_representation)) ) | - (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | - ((SIZEOF([ - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] - * TYPEOF(it)) = 2) AND (it.name = 'minor diameter')) )) - <= 1)) )) = 0)) )) = 0); - WR4 : (SIZEOF(QUERY ( pd <* USEDIN(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') - IN TYPEOF(pdr.used_representation)) ) | - (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | - ((SIZEOF([ - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] - * TYPEOF(it)) = 2) AND (it.name = 'pitch diameter')) )) <= 1)) )) - = 0)) )) = 0); - WR5 : (SIZEOF(QUERY ( pd <* USEDIN(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') - IN TYPEOF(pdr.used_representation)) ) | - (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | - ((SIZEOF([ - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.RATIO_MEASURE_WITH_UNIT'] * - TYPEOF(it)) = 2) AND (it.name = 'number of threads')) )) - = 1)) )) = 0)) )) = 0); - WR6 : (SIZEOF(QUERY ( pd <* USEDIN(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') - IN TYPEOF(pdr.used_representation)) ) | - (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | - (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.DESCRIPTIVE_REPRESENTATION_ITEM' - IN TYPEOF(it)) AND (it.name = 'fit class')) )) = 1)) )) = 0)) )) - = 0); - WR7 : (SIZEOF(QUERY ( pd <* USEDIN(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') - IN TYPEOF(pdr.used_representation)) ) | - (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | - (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.DESCRIPTIVE_REPRESENTATION_ITEM' - IN TYPEOF(it)) AND (it.name = 'form')) )) = 1)) )) = 0)) )) - = 0); - WR8 : (SIZEOF(QUERY ( pd <* USEDIN(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') - IN TYPEOF(pdr.used_representation)) ) | - (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | - (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.DESCRIPTIVE_REPRESENTATION_ITEM' - IN TYPEOF(it)) AND (it.name = 'hand')AND - (it.description IN ['left', 'right']) ) )) = 1)) )) = 0)) )) - = 0); - WR9 : (SIZEOF(QUERY ( pd <* USEDIN(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') - IN TYPEOF(pdr.used_representation)) ) | - (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | - (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.DESCRIPTIVE_REPRESENTATION_ITEM' - IN TYPEOF(it)) AND (it.name = 'qualifier')) )) <= 1)) )) - = 0)) )) = 0); - WR10: (SIZEOF(QUERY ( pd <* USEDIN(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') - IN TYPEOF(pdr.used_representation)) ) | - (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | - (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.DESCRIPTIVE_REPRESENTATION_ITEM' - IN TYPEOF(it)) AND (it.name = 'thread side') AND - ((it.description = 'internal') OR (it.description = 'external'))) )) - = 1)) )) = 0)) )) = 0); - WR11: (SIZEOF(QUERY ( pd <* USEDIN(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') - IN TYPEOF(pdr.used_representation)) ) | - (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | - ((SIZEOF([ - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] - * TYPEOF(it)) = 2) AND (it.name = 'crest')) )) <= 1)) )) - = 0)) )) = 0); - WR12: (SIZEOF(QUERY ( pds <* QUERY ( pd <* USEDIN(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' - IN TYPEOF(pd)) ) | - (NOT (SIZEOF(QUERY ( sa_occ <* USEDIN(pds, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE') | - ((sa_occ.description = 'partial area occurrence') AND - (SIZEOF(QUERY ( sdr <* QUERY ( sar <* USEDIN(sa_occ, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | - ((sar.description = 'applied area usage') AND - (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_DEFINING_RELATIONSHIP') - IN TYPEOF(sar))) ) | - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.APPLIED_AREA' - IN TYPEOF(sdr.relating_shape_aspect)) )) = 1)) )) = 1)) )) = 0); - WR13: (SIZEOF(QUERY ( pds <* QUERY ( pd <* USEDIN(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' - IN TYPEOF(pd)) ) | - (NOT (SIZEOF(QUERY ( sa_occ <* USEDIN(pds, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE') | - ((SIZEOF(QUERY ( sdr <* QUERY ( sar <* USEDIN(sa_occ, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | - ((sar.description = 'applied shape') AND - (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_DEFINING_RELATIONSHIP') - IN TYPEOF(sar))) ) | - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT' - IN TYPEOF(sdr.relating_shape_aspect)) )) = 1)) )) = 1)) )) = 0); - WR14 : (SIZEOF(QUERY ( pd <* USEDIN(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') - IN TYPEOF(pdr.used_representation)) ) | - (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | - (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.DESCRIPTIVE_REPRESENTATION_ITEM' - IN TYPEOF(it)) AND (it.name = 'fit class 2')) )) <= 1)) )) = 0)) )) - = 0); - WR15 : (SIZEOF(QUERY ( pd <* USEDIN(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') - IN TYPEOF(pdr.used_representation)) ) | - (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | - ((SIZEOF([ - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] - * TYPEOF(it)) = 2) AND (it.name = 'nominal size')) )) - <= 1)) )) = 0)) )) = 0); - - WR16: (SIZEOF(QUERY ( pds <* QUERY ( pd <* USEDIN(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' - IN TYPEOF(pd)) ) | - (NOT (SIZEOF(QUERY ( sa_occ <* USEDIN(pds, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE') | - ((sa_occ.description = 'thread runout') AND - (SIZEOF(QUERY ( sdr <* QUERY ( sar <* USEDIN(sa_occ, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | - ((sar.description = 'thread runout usage') AND - (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_DEFINING_RELATIONSHIP') - IN TYPEOF(sar))) ) | - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.THREAD_RUNOUT' - IN TYPEOF(sdr.relating_shape_aspect)) )) <= 1)) )) = 1)) )) = 0); - END_ENTITY; -- thread -(* USED FROM (aic_machining_feature); *) -ENTITY tee_profile - SUBTYPE OF (shape_aspect); - WHERE - WR1: 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FEATURE_COMPONENT_DEFINITION' - IN TYPEOF (SELF.of_shape.definition); - WR2: SIZEOF (QUERY (pd <* USEDIN (SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - NOT (SIZEOF (QUERY (pdr <* USEDIN (pd, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' - IN TYPEOF (pdr.used_representation))) = 1))) = 0; - WR3: SIZEOF (QUERY (pd <* USEDIN (SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - NOT (SIZEOF (QUERY (impl_rep <* QUERY (pdr <* USEDIN (pd, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' - IN TYPEOF (pdr.used_representation)) | - (NOT (SIZEOF (impl_rep.used_representation.items) >= 9) - AND (SIZEOF (impl_rep.used_representation.items) <= 10)))) - = 0))) = 0; - WR4: SIZEOF( QUERY( pd <* USEDIN( SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - SIZEOF( QUERY( pdr <* USEDIN( pd, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' - IN TYPEOF(pdr.used_representation)) AND - (SIZEOF( QUERY( srwp_i <* pdr.used_representation.items | - (srwp_i.name = 'orientation') OR - (srwp_i.name = 'width') OR - (srwp_i.name = 'depth') OR - (srwp_i.name = 'cross bar width') OR - (srwp_i.name = 'cross bar depth') OR - (srwp_i.name = 'first offset') OR - (srwp_i.name = 'second offset') OR - (srwp_i.name = 'first angle') OR - (srwp_i.name = 'second angle') OR - (srwp_i.name = 'radius') )) - = SIZEOF(pdr.used_representation.items)) )) = 1 )) = 1; - WR5: SIZEOF (QUERY (pd <* USEDIN (SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - NOT (SIZEOF (QUERY (impl_rep <* QUERY (pdr <* USEDIN (pd, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' - IN TYPEOF (pdr.used_representation)) | - NOT (SIZEOF (QUERY (it <* impl_rep.used_representation.items | - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PLACEMENT' IN TYPEOF (it)) AND - (it.name = 'orientation'))) = 1))) = 0))) = 0; - WR6: SIZEOF (QUERY (pd <* USEDIN (SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - NOT (SIZEOF (QUERY (impl_rep <* QUERY (pdr <* USEDIN (pd, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' - IN TYPEOF (pdr.used_representation)) | - NOT (SIZEOF (QUERY (it <* impl_rep.used_representation.items | - (SIZEOF - (['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * - TYPEOF (it)) = 2) AND (it.name = 'width'))) = 1))) = 0))) = 0; - WR7: SIZEOF (QUERY (pd <* USEDIN (SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - NOT (SIZEOF (QUERY (impl_rep <* QUERY (pdr <* USEDIN (pd, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' - IN TYPEOF (pdr.used_representation)) | - NOT (SIZEOF (QUERY (it <* impl_rep.used_representation.items | - (SIZEOF - (['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * - TYPEOF (it)) = 2) AND (it.name = 'depth'))) = 1))) = 0))) = 0; - WR8: SIZEOF (QUERY (pd <* USEDIN (SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - NOT (SIZEOF (QUERY (impl_rep <* QUERY (pdr <* USEDIN (pd, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' - IN TYPEOF (pdr.used_representation)) | - NOT (SIZEOF (QUERY (it <* impl_rep.used_representation.items | - (SIZEOF - (['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * - TYPEOF (it)) = 2) AND (it.name = 'cross bar width'))) = 1))) - = 0))) = 0; - WR9: SIZEOF (QUERY (pd <* USEDIN (SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - NOT (SIZEOF (QUERY (impl_rep <* QUERY (pdr <* USEDIN (pd, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' - IN TYPEOF (pdr.used_representation)) | - NOT (SIZEOF (QUERY (it <* impl_rep.used_representation.items | - (SIZEOF - (['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * - TYPEOF (it)) = 2) AND (it.name = 'cross bar depth'))) = 1))) - = 0))) = 0; - WR10: SIZEOF (QUERY (pd <* USEDIN (SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - NOT (SIZEOF (QUERY (impl_rep <* QUERY (pdr <* USEDIN (pd, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' - IN TYPEOF (pdr.used_representation)) | - NOT (SIZEOF (QUERY (it <* impl_rep.used_representation.items | - (SIZEOF - (['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * - TYPEOF (it)) = 2) AND (it.name = 'first offset'))) = 1))) - = 0))) = 0; - WR11: SIZEOF (QUERY (pd <* USEDIN (SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - NOT (SIZEOF (QUERY (impl_rep <* QUERY (pdr <* USEDIN (pd, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' - IN TYPEOF (pdr.used_representation)) | - NOT (SIZEOF (QUERY (it <* impl_rep.used_representation.items | - (SIZEOF - (['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * - TYPEOF (it)) = 2) AND (it.name = 'second offset'))) = 1))) - = 0))) = 0; - WR12: SIZEOF (QUERY (pd <* USEDIN (SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - NOT (SIZEOF (QUERY (impl_rep <* QUERY (pdr <* USEDIN (pd, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' - IN TYPEOF (pdr.used_representation)) | - NOT (SIZEOF (QUERY (it <* impl_rep.used_representation.items | - (SIZEOF - (['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PLANE_ANGLE_MEASURE_WITH_UNIT'] * - TYPEOF (it)) = 2) AND (it.name = 'first angle'))) = 1))) - = 0))) = 0; - WR13: SIZEOF (QUERY (pd <* USEDIN (SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - NOT (SIZEOF (QUERY (impl_rep <* QUERY (pdr <* USEDIN (pd, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' - IN TYPEOF (pdr.used_representation)) | - NOT (SIZEOF (QUERY (it <* impl_rep.used_representation.items | - (SIZEOF - (['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PLANE_ANGLE_MEASURE_WITH_UNIT'] * - TYPEOF (it)) = 2) AND (it.name = 'second angle'))) = 1))) - = 0))) = 0; - WR14: SIZEOF (QUERY (pd <* USEDIN (SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - NOT (SIZEOF (QUERY (impl_rep <* QUERY (pdr <* USEDIN (pd, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' - IN TYPEOF (pdr.used_representation)) | - NOT (SIZEOF (QUERY (it <* impl_rep.used_representation.items | - (SIZEOF - (['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * - TYPEOF (it)) = 2) AND (it.name = 'radius'))) <= 1))) = 0))) = 0; - WR15: SIZEOF (QUERY (pd <* USEDIN (SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - NOT (SIZEOF (QUERY (pdr <* USEDIN (pd, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PLANAR_SHAPE_REPRESENTATION' - IN TYPEOF (pdr.used_representation))AND - (pdr.used_representation.name = 'profile limit'))) <= 1))) = 0; -END_ENTITY; -- tee_profile -(* USED FROM (aic_machining_feature); *) -ENTITY taper - SUBTYPE OF (shape_aspect); - WHERE - WR1: ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FEATURE_COMPONENT_DEFINITION' - IN TYPEOF(SELF.of_shape.definition)); - WR2: (SELF.description IN ['angle taper','diameter taper', - 'directed taper']); - WR3: (SIZEOF(QUERY ( pd <* USEDIN(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(QUERY ( pdr <* USEDIN(pd, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') - IN TYPEOF(pdr.used_representation)) )) = 1)) )) = 0); - WR4: (SIZEOF(QUERY ( pd <* USEDIN(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') - IN TYPEOF(pdr.used_representation)) ) | - (NOT (SIZEOF(impl_rep.used_representation.items) = 1)) )) - = 0)) )) = 0); - WR5: ((NOT (SELF.description = 'angle taper')) OR - (SIZEOF(QUERY ( pd <* USEDIN(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') - IN TYPEOF(pdr.used_representation)) ) | - (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | - ((SIZEOF([ - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PLANE_ANGLE_MEASURE_WITH_UNIT'] * - TYPEOF(it)) = 2) AND (it.name = 'taper angle')) )) = 1)) )) - = 0)) )) = 0)); - WR6: ((NOT (SELF.description = 'diameter taper')) OR - (SIZEOF(QUERY ( pd <* USEDIN(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') - IN TYPEOF(pdr.used_representation)) ) | - (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | - ((SIZEOF([ - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * - TYPEOF(it)) = 2) AND (it.name = 'final diameter')) )) = 1)) )) - = 0)) )) = 0)); - WR7: ((NOT (SELF.description = 'directed taper')) OR - (SIZEOF(QUERY ( pd <* USEDIN(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') - IN TYPEOF(pdr.used_representation)) ) | - (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | - ((SIZEOF([ - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PLANE_ANGLE_MEASURE_WITH_UNIT'] * - TYPEOF(it)) = 2) AND (it.name = 'angle')) )) = 1)) )) - = 0)) )) = 0)); - WR8: ((NOT (SELF.description = 'directed taper')) OR - (SIZEOF(QUERY ( pd <* USEDIN(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(QUERY ( pdr <* USEDIN(pd, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.DIRECTION_SHAPE_REPRESENTATION' - IN TYPEOF(pdr.used_representation)) AND - (pdr.used_representation.name = 'direction') )) - = 1)) )) = 0)); -END_ENTITY; -- taper -(* USED FROM (aic_machining_feature); *) -ENTITY slot_end - SUBTYPE OF (shape_aspect); - WHERE -WR1 : 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FEATURE_COMPONENT_DEFINITION' - IN TYPEOF(SELF.of_shape.definition); - -WR2 : SELF.description IN ['open','radiused','flat','woodruff', - 'loop']; - -WR3: (NOT (SELF.description IN ['open','radiused','loop'])) OR - (SIZEOF(QUERY ( pd <* USEDIN(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION')| - (NOT (SIZEOF(QUERY ( pdr <* USEDIN(pd, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') - IN TYPEOF(pdr.used_representation)) )) = 0)) )) = 0); - -WR4: (NOT (SELF.description IN ['flat','woodruff'])) OR - (SIZEOF(QUERY ( pd <* USEDIN(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(QUERY ( pdr <* USEDIN(pd, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') - IN TYPEOF(pdr.used_representation)) )) = 1)) )) = 0); - -WR5: (NOT (SELF.description IN ['flat'])) OR - (SIZEOF(QUERY ( pd <* USEDIN(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') - IN TYPEOF(pdr.used_representation)) ) | - (NOT (SIZEOF(impl_rep.used_representation.items) = 2)) )) = 0)) )) = 0); - -WR6: (NOT (SELF.description = 'flat')) OR - (SIZEOF(QUERY ( pd <* USEDIN(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') - IN TYPEOF(pdr.used_representation)) ) | - (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | - ((SIZEOF([ - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(it)) - = 2) AND - (it.name = 'first radius')) )) = 1)) )) = 0)) )) = 0); - -WR7: (NOT (SELF.description = 'flat')) OR (SIZEOF(QUERY ( pd <* USEDIN(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') - IN TYPEOF(pdr.used_representation)) ) | - (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | - ((SIZEOF([ - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(it)) - = 2) AND (it.name = 'second radius')) )) = 1)) )) = 0)) )) = 0); - -WR8: (NOT (SELF.description = 'woodruff')) OR - (SIZEOF(QUERY ( pd <* USEDIN(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') - IN TYPEOF(pdr.used_representation)) ) | - (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | - (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT' - IN TYPEOF(it)) AND - (it.name = 'radius')) )) = 1)) )) = 0)) )) = 0); - -WR9: (NOT (SELF.description IN ['woodruff'])) OR - (SIZEOF(QUERY ( pd <* USEDIN(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') - IN TYPEOF(pdr.used_representation)) ) | - (NOT (SIZEOF(impl_rep.used_representation.items) = 1)) )) = 0)) )) = 0); - -WR10: SIZEOF(QUERY ( fcr <* QUERY ( sar <* USEDIN(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.' - + 'RELATING_SHAPE_ASPECT') | - (((sar.description = 'slot end usage') AND - (sar.name IN ['course of travel start','course of travel end'])) AND - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP' - IN TYPEOF(sar))) ) | - (((fcr.related_shape_aspect.description = 'end condition occurrence') AND - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SLOT' - IN TYPEOF(fcr.related_shape_aspect.of_shape.definition))) AND - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SLOT_END' - IN TYPEOF(fcr.relating_shape_aspect))) )) >= 1; - -END_ENTITY; -- slot_end -(* USED FROM (aic_machining_feature); *) - ENTITY slot - SUBTYPE OF (feature_definition); - WHERE - WR1: SIZEOF(QUERY ( pd <* USEDIN(SELF,'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (( - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr. - used_representation)) ) | (NOT (SIZEOF(impl_rep. - used_representation.items) = 1)) )) = 0)) )) = 0; - WR2: SIZEOF(QUERY ( pds <* QUERY ( pd <* USEDIN(SELF,'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | ( - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN - TYPEOF(pd)) ) | (NOT (SIZEOF(QUERY ( sa_occ <* USEDIN(pds, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE') | (( - sa_occ.description = 'swept shape occurrence') AND (SIZEOF( - QUERY ( sdr <* QUERY ( sar <* USEDIN(sa_occ, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.' - + 'RELATED_SHAPE_ASPECT') | ((sar.description = - 'profile usage') AND ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_DEFINING_RELATIONSHIP' - IN TYPEOF(sar))) ) | (SIZEOF([ - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SQUARE_U_PROFILE', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PARTIAL_CIRCULAR_PROFILE', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ROUNDED_U_PROFILE', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.VEE_PROFILE', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.TEE_PROFILE', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.OPEN_PATH_PROFILE'] * - TYPEOF(sdr.relating_shape_aspect)) = 1) )) = 1)) )) = 1)) )) - = 0; - WR3: SIZEOF(QUERY ( pds <* QUERY ( pd <* USEDIN(SELF,'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | ( - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN - TYPEOF(pd)) ) | (NOT (SIZEOF(QUERY ( sa_occ <* USEDIN(pds, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE') | (( - sa_occ.description = 'course of travel occurrence') AND ( - SIZEOF(QUERY ( sdr <* QUERY ( sar <* USEDIN(sa_occ, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.' - + 'RELATED_SHAPE_ASPECT') | ((sar.description = - 'path feature component usage') AND ((sar.name = - 'course of travel') AND ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_DEFINING_RELATIONSHIP' - IN TYPEOF(sar)))) ) | ( - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PATH_FEATURE_COMPONENT' IN - TYPEOF(sdr.relating_shape_aspect)) )) = 1)) )) = 1)) )) = 0; - - WR4: SIZEOF(QUERY ( pds <* QUERY ( pd <* USEDIN(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' - IN TYPEOF(pd)) ) | - (NOT((SIZEOF(QUERY ( sa_occ <* USEDIN(pds, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE') | - ((sa_occ.description = 'end condition occurrence') AND - (SIZEOF(QUERY ( fcr <* QUERY ( sar <* USEDIN(sa_occ, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | - (((sar.description = 'slot end usage') AND - (sar.name IN ['course of travel start','course of travel end'])) AND - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP' - IN TYPEOF(sar))) ) | - ((('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SLOT_END' - IN TYPEOF(fcr.relating_shape_aspect)) AND - (fcr.relating_shape_aspect.description - IN ['open','radiused','flat','woodruff'])) AND - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SLOT' - IN TYPEOF(fcr.related_shape_aspect.of_shape.definition))) - )) = 1) ) )) = 2) - OR - (SIZEOF(QUERY ( sa_occ <* USEDIN(pds, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE') | - ((sa_occ.description = 'end condition occurrence') AND - (SIZEOF(QUERY ( fcr <* QUERY ( sar <* USEDIN(sa_occ, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | - (((sar.description = 'slot end usage') AND - (sar.name IN ['course of travel start','course of travel end'])) AND - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP' - IN TYPEOF(sar))) ) | - ((('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SLOT_END' - IN TYPEOF(fcr.relating_shape_aspect)) AND - (fcr.relating_shape_aspect.description IN ['loop'])) AND - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SLOT' - IN TYPEOF(fcr.related_shape_aspect.of_shape.definition))) - )) = 1) ) )) = 1))) )) =0; - - WR5: (NOT (SIZEOF(QUERY ( pds <* QUERY ( pd <* USEDIN(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pd)) ) | - (NOT (SIZEOF(QUERY ( sa_occ <* USEDIN(pds, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE') | - ((sa_occ.description = 'end condition occurrence') AND - (SIZEOF(QUERY ( fcr <* QUERY ( sar <* USEDIN(sa_occ, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | - (((sar.description = 'slot end usage') AND - (sar.name IN ['course of travel start','course of travel end'])) AND - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP' - IN TYPEOF(sar))) ) | - ((('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SLOT_END' - IN TYPEOF(fcr.relating_shape_aspect)) AND - (fcr.relating_shape_aspect.description IN ['loop'])) AND - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SLOT' - IN TYPEOF(fcr.related_shape_aspect.of_shape.definition))) - )) = 1)) )) = 1)) )) =0) - OR - (SIZEOF(QUERY ( pds <* QUERY ( pd <* USEDIN(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION')| - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pd)) ) | - (NOT (SIZEOF(QUERY ( sa_occ <* USEDIN(pds, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE') | - ((sa_occ.description = 'course of travel occurrence') AND - (SIZEOF(QUERY ( sdr <* QUERY ( sar <* USEDIN(sa_occ, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | - ((sar.description = 'path feature component usage') AND - ((sar.name = 'course of travel') AND - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_DEFINING_RELATIONSHIP' - IN TYPEOF(sar)))) ) | - (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PATH_FEATURE_COMPONENT' - IN TYPEOF(sdr.relating_shape_aspect)) AND - (sdr.relating_shape_aspect.description - IN ['complex','complete circular'])) - )) = 1)) )) = 1)) )) = 0)); - - WR6: SIZEOF(QUERY ( pdr <* get_property_definition_representations( - SELF) | (( - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PLANAR_SHAPE_REPRESENTATION' - IN TYPEOF(pdr.used_representation)) AND (pdr. - used_representation.name = 'maximum feature limit')) )) >= 0; - END_ENTITY; -- slot -(* USED FROM (aic_machining_feature); *) -ENTITY step - SUBTYPE OF (feature_definition); - WHERE - WR1: (SIZEOF(QUERY ( pd <* USEDIN(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') - IN TYPEOF(pdr.used_representation)) ) | - (NOT (SIZEOF(impl_rep.used_representation.items) = 1)) )) - = 0)) )) = 0); - WR2: (SIZEOF(QUERY ( pds <* QUERY ( pd <* USEDIN(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' - IN TYPEOF(pd)) ) | (NOT (SIZEOF(QUERY ( sa_occ <* USEDIN(pds, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE') | - ((sa_occ.description = 'course of travel occurrence') AND - (SIZEOF(QUERY ( sdr <* QUERY ( sar <* USEDIN(sa_occ, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | - ((sar.description = 'path feature component usage') AND - (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_DEFINING_RELATIONSHIP') - IN TYPEOF(sar))) ) | - (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PATH_FEATURE_COMPONENT' - IN TYPEOF(sdr.relating_shape_aspect)) AND - (sdr.relating_shape_aspect.description = 'linear')) )) = 1)) )) - = 1)) )) = 0); - WR3: (SIZEOF(QUERY ( pds <* QUERY ( pd <* USEDIN(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' - IN TYPEOF(pd)) ) | (NOT (SIZEOF(QUERY ( sa_occ <* USEDIN(pds, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE') | - ((sa_occ.description = 'removal boundary occurrence') AND - (SIZEOF(QUERY ( sdr <* QUERY ( sar <* USEDIN(sa_occ, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | - ((sar.description = 'profile usage') AND - (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_DEFINING_RELATIONSHIP') - IN TYPEOF(sar))) ) | - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.VEE_PROFILE' - IN TYPEOF(sdr.relating_shape_aspect)) )) = 1)) )) = 1)) )) = 0); - WR4: SIZEOF(QUERY(pdr <* get_property_definition_representations (SELF) | - ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PLANAR_SHAPE_REPRESENTATION' - IN TYPEOF ( pdr.used_representation ) ) AND - ( pdr.used_representation.name ='maximum feature limit'))) >=0; - WR5: SIZEOF(QUERY ( pds <* USEDIN(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' - IN TYPEOF(pds)) AND (SIZEOF(QUERY ( csa <* USEDIN(pds, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE') | - (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.COMPOSITE_SHAPE_ASPECT' IN - TYPEOF(csa)) AND - (csa.name='uncut volume') AND - (SIZEOF(QUERY ( sar <* csa.component_relationships | - (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP' - IN TYPEOF(sar)) AND (SIZEOF([ - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.BOSS', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROTRUSION'] * TYPEOF(sar. - related_shape_aspect)) = 1)) )) = 1)) )) <= 1)) )) = 1; -END_ENTITY; -- step -(* USED FROM (aic_machining_feature); *) -ENTITY square_u_profile - SUBTYPE OF (shape_aspect); - WHERE - WR1: 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FEATURE_COMPONENT_DEFINITION' - IN TYPEOF (SELF.of_shape.definition); - WR2: SIZEOF (QUERY (pd <* USEDIN (SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - NOT (SIZEOF (QUERY (pdr <* USEDIN (pd, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' - IN TYPEOF (pdr.used_representation))) = 1))) = 0; - WR3: SIZEOF (QUERY (pd <* USEDIN (SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - NOT (SIZEOF (QUERY (impl_rep <* QUERY (pdr <* USEDIN (pd, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' - IN TYPEOF (pdr.used_representation)) | - (NOT (SIZEOF (impl_rep.used_representation.items) >= 4) - AND (SIZEOF (impl_rep.used_representation.items) <= 7)))) - = 0))) = 0; - WR4: SIZEOF( QUERY( pd <* USEDIN( SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - SIZEOF( QUERY( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' - IN TYPEOF(pdr.used_representation)) AND - (SIZEOF( QUERY( srwp_i <* pdr.used_representation.items | - (srwp_i.name = 'orientation') OR - (srwp_i.name = 'width') OR - (srwp_i.name = 'first angle') OR - (srwp_i.name = 'second angle') OR - (srwp_i.name = 'first radius') OR - (srwp_i.name = 'second radius') OR - (srwp_i.name = 'profile limit') OR - (srwp_i.name = 'depth') )) - = SIZEOF(pdr.used_representation.items)) )) = 1 )) = 1; - WR5: SIZEOF (QUERY (pd <* USEDIN (SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - NOT (SIZEOF (QUERY (impl_rep <* QUERY (pdr <* USEDIN (pd, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' - IN TYPEOF (pdr.used_representation)) | - NOT (SIZEOF (QUERY (it <* impl_rep.used_representation.items | - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PLACEMENT' IN TYPEOF (it)) AND - (it.name = 'orientation'))) = 1))) = 0))) = 0; - WR6: SIZEOF (QUERY (pd <* USEDIN (SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - NOT (SIZEOF (QUERY (impl_rep <* QUERY (pdr <* USEDIN (pd, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' - IN TYPEOF (pdr.used_representation)) | - NOT (SIZEOF (QUERY (it <* impl_rep.used_representation.items | - (SIZEOF - (['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * - TYPEOF (it)) = 2) AND - (it.name = 'width'))) = 1))) = 0))) = 0; - WR7: SIZEOF (QUERY (pd <* USEDIN (SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - NOT (SIZEOF (QUERY (impl_rep <* QUERY (pdr <* USEDIN (pd, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' - IN TYPEOF (pdr.used_representation)) | - NOT (SIZEOF (QUERY (it <* impl_rep.used_representation.items | - (SIZEOF - (['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * - TYPEOF (it)) = 2) AND - (it.name = 'first radius'))) <= 1))) = 0))) = 0; - WR8: SIZEOF (QUERY (pd <* USEDIN (SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - NOT (SIZEOF (QUERY (impl_rep <* QUERY (pdr <* USEDIN (pd, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' - IN TYPEOF (pdr.used_representation)) | - NOT (SIZEOF (QUERY (it <* impl_rep.used_representation.items | - (SIZEOF - (['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * - TYPEOF (it)) = 2) AND - (it.name = 'second radius'))) <= 1))) = 0))) = 0; - WR9: SIZEOF (QUERY (pd <* USEDIN (SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - NOT (SIZEOF (QUERY (impl_rep <* QUERY (pdr <* USEDIN (pd, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' - IN TYPEOF (pdr.used_representation)) | - NOT (SIZEOF (QUERY (it <* impl_rep.used_representation.items | - (SIZEOF - (['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PLANE_ANGLE_MEASURE_WITH_UNIT'] * - TYPEOF (it)) = 2) AND - (it.name = 'first angle'))) = 1))) = 0))) = 0; - WR10: SIZEOF (QUERY (pd <* USEDIN (SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - NOT (SIZEOF (QUERY (impl_rep <* QUERY (pdr <* USEDIN (pd, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' - IN TYPEOF (pdr.used_representation)) | - NOT (SIZEOF (QUERY (it <* impl_rep.used_representation.items | - (SIZEOF - (['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PLANE_ANGLE_MEASURE_WITH_UNIT'] * - TYPEOF (it)) = 2) AND - (it.name = 'second angle'))) = 1))) = 0))) = 0; - WR11: SIZEOF (QUERY (pd <* USEDIN (SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - NOT (SIZEOF (QUERY (pdr <* USEDIN (pd, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PLANAR_SHAPE_REPRESENTATION' - IN TYPEOF (pdr.used_representation))AND - (pdr.used_representation.name = 'profile limit'))) <= 1))) = 0; - - WR12: SIZEOF (QUERY (pd <* USEDIN (SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - NOT (SIZEOF (QUERY (impl_rep <* QUERY (pdr <* USEDIN (pd, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' - IN TYPEOF (pdr.used_representation)) | - NOT (SIZEOF (QUERY (it <* impl_rep.used_representation.items | - (SIZEOF - (['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * - TYPEOF (it)) = 2) AND - (it.name = 'depth'))) <= 1))) = 0))) = 0; -END_ENTITY; -- Square_U_profile -(* USED FROM (aic_machining_feature); *) -ENTITY spherical_cap - SUBTYPE OF (feature_definition); - WHERE - - WR1: (SIZEOF(QUERY ( pd <* USEDIN(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') - IN TYPEOF(pdr.used_representation)) ) | - (NOT (SIZEOF(impl_rep.used_representation.items) = 3)) )) - = 0)) )) = 0); - WR2: (SIZEOF(QUERY ( pd <* USEDIN(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') - IN TYPEOF(pdr.used_representation)) ) | - (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | - ((SIZEOF([ - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * - TYPEOF(it)) = 2) AND (it.name = 'radius')) )) = 1)))) - = 0)) )) = 0); - WR3: (SIZEOF(QUERY ( pd <* USEDIN(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') - IN TYPEOF(pdr.used_representation)) ) | - (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | - ((SIZEOF([ - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PLANE_ANGLE_MEASURE_WITH_UNIT'] * - TYPEOF(it)) = 2) AND (it.name = 'internal angle')))) = 1)) )) - = 0)) )) = 0); -END_ENTITY; -- spherical_cap -(* USED FROM (aic_machining_feature); *) -ENTITY rounded_u_profile - SUBTYPE OF (shape_aspect); - WHERE - WR1: ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FEATURE_COMPONENT_DEFINITION' - IN TYPEOF(SELF.of_shape.definition)); - WR2: (SIZEOF(QUERY ( pd <* USEDIN(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(QUERY ( pdr <* USEDIN(pd, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') - IN TYPEOF(pdr.used_representation)) )) = 1)) )) = 0); - WR3: SIZEOF (QUERY (pd <* USEDIN (SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - NOT (SIZEOF (QUERY (impl_rep <* QUERY (pdr <* USEDIN (pd, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' - IN TYPEOF (pdr.used_representation)) | - (NOT (SIZEOF (impl_rep.used_representation.items) >= 1) - AND (SIZEOF (impl_rep.used_representation.items) <= 2)))) - = 0))) = 0; - WR4: SIZEOF( QUERY( pd <* USEDIN( SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - SIZEOF( QUERY( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' - IN TYPEOF(pdr.used_representation)) AND - (SIZEOF( QUERY( srwp_i <* pdr.used_representation.items | - (srwp_i.name = 'orientation') OR - (srwp_i.name = 'depth') )) - = SIZEOF(pdr.used_representation.items)) )) = 1 )) = 1; - WR5: (SIZEOF(QUERY ( pd <* USEDIN(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') - IN TYPEOF(pdr.used_representation)) ) | - (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | - ((SIZEOF([ - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * - TYPEOF(it)) = 2) AND (it.name = 'width'))))= 1))))= 0))))= 0); - WR6: SIZEOF (QUERY (pd <* USEDIN (SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - NOT (SIZEOF (QUERY (pdr <* USEDIN (pd, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PLANAR_SHAPE_REPRESENTATION' - IN TYPEOF (pdr.used_representation))AND - (pdr.used_representation.name = 'profile limit'))) <= 1))) = 0; - WR7: SIZEOF (QUERY (pd <* USEDIN (SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - NOT (SIZEOF (QUERY (impl_rep <* QUERY (pdr <* USEDIN (pd, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' - IN TYPEOF (pdr.used_representation)) | - NOT (SIZEOF (QUERY (it <* impl_rep.used_representation.items | - (SIZEOF - (['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * - TYPEOF (it)) = 2) AND - (it.name = 'depth'))) <= 1))) = 0))) = 0; -END_ENTITY; -- rounded_u_profile -(* USED FROM (aic_machining_feature); *) -ENTITY rounded_end - SUBTYPE OF (feature_definition); - WHERE - WR1: (SIZEOF(QUERY ( pd <* USEDIN(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') - IN TYPEOF(pdr.used_representation)) ) | - (NOT (SIZEOF(impl_rep.used_representation.items) = 1)) )) - = 0)) )) = 0); - WR2: (SIZEOF(QUERY ( pds <* QUERY ( pd <* USEDIN(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' - IN TYPEOF(pd)) ) | (NOT (SIZEOF(QUERY ( sa_occ <* USEDIN(pds, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE') | - ((sa_occ.description = 'partial circular boundary occurrence') AND - (SIZEOF(QUERY ( sdr <* QUERY ( sar <* USEDIN(sa_occ, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | - ((sar.description = 'profile usage') AND - (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_DEFINING_RELATIONSHIP') - IN TYPEOF(sar))) ) | - (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PARTIAL_CIRCULAR_PROFILE' - IN TYPEOF(sdr.relating_shape_aspect)) ) )) = 1)) )) = 1)) )) = 0); - WR3: (SIZEOF(QUERY ( pds <* QUERY ( pd <* USEDIN(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' - IN TYPEOF(pd)) ) | (NOT (SIZEOF(QUERY ( sa_occ <* USEDIN(pds, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE') | - ((sa_occ.description = 'course of travel occurrence') AND - (SIZEOF(QUERY ( sdr <* QUERY ( sar <* USEDIN(sa_occ, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | - ((sar.description = 'path feature component usage') AND - (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_DEFINING_RELATIONSHIP') - IN TYPEOF(sar))) ) | - (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PATH_FEATURE_COMPONENT' - IN TYPEOF(sdr.relating_shape_aspect)) AND - (sdr.relating_shape_aspect.description = 'linear')) )) = 1)) )) - = 1)) )) = 0); - WR4: SIZEOF(QUERY(pdr <* get_property_definition_representations (SELF) | - ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PLANAR_SHAPE_REPRESENTATION' - IN TYPEOF ( pdr.used_representation ) ) AND - ( pdr.used_representation.name ='maximum feature limit'))) >=0; -END_ENTITY; -- rounded_end -(* USED FROM (structural_response_representation_schema); *) -ENTITY explicit_element_representation - SUBTYPE OF (element_representation); - model_ref : fea_model; - (* description : text; *) - matrix : explicit_element_matrix; -UNIQUE - UR1: model_ref, SELF\representation.name; -WHERE - WR1: SIZEOF (QUERY(item <* SELF\representation.items | - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + - 'FEA_AXIS2_PLACEMENT_3D') - IN TYPEOF (item))) = 1; - WR2: SIZEOF (matrix.node_dof_list) = - SIZEOF (SELF\element_representation.node_list); -END_ENTITY; -(* USED FROM (structural_response_representation_schema); *) -ENTITY explicit_element_matrix; - property_type : matrix_property_type; - symmetry : matrix_symmetry; - node_dof_list : LIST [1:?] OF LIST [1:?] OF degree_of_freedom; - matrix_values : LIST [1:?] OF context_dependent_measure; -WHERE - WR1: SIZEOF (matrix_values) = number_of_terms (node_dof_list, symmetry); -END_ENTITY; -(* USED FROM (presentation_appearance_schema); *) - 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; -(* USED FROM (aic_machining_feature); *) -ENTITY rib_top - SUBTYPE OF (feature_definition); - WHERE - WR1: SIZEOF (QUERY (pds <* QUERY (pd <* USEDIN (SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' - IN TYPEOF (pd)) | - NOT (SIZEOF (QUERY (sa_occ <* USEDIN (pds, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE') | - (sa_occ.description = 'rib top condition occurrence') AND - (SIZEOF (QUERY (sdr <* QUERY (sar <* USEDIN (sa_occ, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | - (sar.description = 'rib top usage') AND - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP' - IN TYPEOF (sar))) | - (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.RIB_TOP_FLOOR' - IN TYPEOF (sdr.relating_shape_aspect)) AND - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.RIB_TOP' - IN TYPEOF (sdr.related_shape_aspect.of_shape.definition)) ) - )) = 1))) = 1))) = 0; - WR2: SIZEOF (QUERY (pd <* USEDIN (SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - NOT (SIZEOF (QUERY (pdr <* USEDIN (pd, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.DIRECTION_SHAPE_REPRESENTATION' - IN TYPEOF (pdr.used_representation))AND - (pdr.used_representation.name = 'removal direction'))) = 1))) = 1; - WR3: SIZEOF(QUERY(pdr <* get_property_definition_representations (SELF) | - ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PLANAR_SHAPE_REPRESENTATION' - IN TYPEOF ( pdr.used_representation ) ) AND - ( pdr.used_representation.name ='maximum feature limit'))) >=0; -END_ENTITY; -- rib_top -(* USED FROM (solid_shape_element_schema); *) -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; -(* USED FROM (aic_machining_feature); *) -ENTITY protrusion - SUBTYPE OF (feature_definition); - WHERE - WR1: (SIZEOF(QUERY ( pd <* USEDIN(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') - IN TYPEOF(pdr.used_representation)) ) | - (NOT (SIZEOF(impl_rep.used_representation.items) = 1)) )) - = 0)) )) = 0); - WR2: (SIZEOF(QUERY ( pds <* QUERY ( pd <* USEDIN(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' - IN TYPEOF(pd)) ) | (NOT (SIZEOF(QUERY ( sa_occ <* USEDIN(pds, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE') | - ((sa_occ.description = 'shape volume occurrence') AND - (SIZEOF(QUERY ( sdr <* QUERY ( sar <* USEDIN(sa_occ, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | - ((sar.description = 'volume shape usage') AND - (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_DEFINING_RELATIONSHIP') - IN TYPEOF(sar))) ) | - (sdr.relating_shape_aspect.description = 'volume shape') )) = 1)) )) - = 1)) )) = 0); - WR3: SIZEOF(QUERY(pdr <* get_property_definition_representations (SELF) | - ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PLANAR_SHAPE_REPRESENTATION' - IN TYPEOF ( pdr.used_representation ) ) AND - ( pdr.used_representation.name ='maximum feature limit'))) >=0; -END_ENTITY; -- protrusion -(* USED FROM (aic_machining_feature); *) -ENTITY rectangular_pattern - SUBTYPE OF (replicate_feature); - WHERE - WR1: (SIZEOF(QUERY ( pds <* QUERY ( pd <* USEDIN(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' - IN TYPEOF(pd)) ) | (NOT (SIZEOF(QUERY ( sa_occ <* USEDIN - (pds,'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE') | - ((SIZEOF(QUERY ( sdr <* QUERY ( sar <* USEDIN(sa_occ, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.' - + 'RELATING_SHAPE_ASPECT') | - ((('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP') - IN TYPEOF(sar))) ) | - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT' - IN TYPEOF(sdr.related_shape_aspect)) )) = 1)) )) <= 5)) )) = 0); - WR2: (SIZEOF(QUERY ( pd <* USEDIN(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(QUERY ( pdr <* USEDIN(pd, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.DIRECTION_SHAPE_REPRESENTATION' - IN TYPEOF(pdr.used_representation)) AND - (pdr.used_representation.name = 'row layout direction') ) )) - = 1)) )) = 0); - WR3 : (SIZEOF(QUERY ( pd <* USEDIN(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(QUERY ( pdr <* USEDIN(pd, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.DIRECTION_SHAPE_REPRESENTATION' - IN TYPEOF(pdr.used_representation)) AND - (pdr.used_representation.name = 'column layout direction')) )) - = 1)) )) = 0); - WR4 : (SIZEOF(QUERY ( pd <* USEDIN(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY ( pdr <* USEDIN(pd, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' - IN TYPEOF(pdr.used_representation)) )) = 1)) )) = 0); - WR5 : (SIZEOF(QUERY ( pd <* USEDIN(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' - IN TYPEOF(pdr.used_representation)) ) | - (NOT (SIZEOF(impl_rep.used_representation.items) = 5)) )) - = 0)) )) = 0); - WR6 : (SIZEOF(QUERY ( pd <* USEDIN(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' - IN TYPEOF(pdr.used_representation)) ) | - (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | - (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM' - IN TYPEOF(it)) AND - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.COUNT_MEASURE' - IN TYPEOF(it\measure_with_unit.value_component)) AND - (it.name = 'number of rows')) )) = 1)) )) = 0)) )) = 0); - WR7 : (SIZEOF(QUERY ( pd <* USEDIN(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' - IN TYPEOF(pdr.used_representation)) ) | - (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | - (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM' - IN TYPEOF(it)) AND - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.COUNT_MEASURE' - IN TYPEOF(it\measure_with_unit.value_component)) AND - (it.name = 'number of columns')) )) = 1)) )) = 0)) )) = 0); - WR8 : (SIZEOF(QUERY ( pd <* USEDIN(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' - IN TYPEOF(pdr.used_representation)) ) | - (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | - ((SIZEOF([ - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * - TYPEOF(it)) = 2) AND (it.name = 'row spacing')) )) = 1)) )) - = 0)) )) = 0); - WR9: (SIZEOF(QUERY ( pd <* USEDIN(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' - IN TYPEOF(pdr.used_representation)) ) | - (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | - ((SIZEOF([ - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * - TYPEOF(it)) = 2) AND (it.name = 'column spacing'))))= 1)) )) - = 0)) )) = 0); - WR10: (SIZEOF(QUERY ( pd <* USEDIN(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' - IN TYPEOF(pdr.used_representation)) ) | - (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | - (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PLACEMENT' IN TYPEOF(it)) AND - (it.name = 'orientation')) )) = 1)) )) = 0)) )) = 0); -END_ENTITY; -- rectangular_pattern -(* USED FROM (aic_machining_feature); *) -ENTITY rectangular_closed_profile - SUBTYPE OF (shape_aspect); - WHERE - WR1: 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FEATURE_COMPONENT_DEFINITION' - IN TYPEOF (SELF.of_shape.definition); - WR2: SIZEOF (QUERY (pd <* USEDIN (SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - NOT (SIZEOF (QUERY (pdr <* USEDIN (pd, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' - IN TYPEOF (pdr.used_representation))) = 1))) = 0; - WR3: SIZEOF (QUERY (pd <* USEDIN (SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - NOT (SIZEOF (QUERY (impl_rep <* QUERY (pdr <* USEDIN (pd, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' - IN TYPEOF (pdr.used_representation)) | - NOT ((SIZEOF (impl_rep.used_representation.items) >= 3) - AND (SIZEOF(impl_rep.used_representation.items) <= 4)))) = 0))) = 0; - WR4: SIZEOF( QUERY( pd <* - USEDIN( SELF,'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - SIZEOF( QUERY( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' - IN TYPEOF(pdr.used_representation)) AND - (SIZEOF( QUERY( srwp_i <* pdr.used_representation.items | - (srwp_i.name = 'orientation') OR - (srwp_i.name = 'length') OR - (srwp_i.name = 'width') OR - (srwp_i.name = 'corner radius') )) = - SIZEOF(pdr.used_representation.items)) - )) = 1 )) = 1; - WR5: SIZEOF (QUERY (pd <* USEDIN (SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - NOT (SIZEOF (QUERY (impl_rep <* QUERY (pdr <* USEDIN (pd, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' - IN TYPEOF (pdr.used_representation)) | - NOT (SIZEOF (QUERY (it <* impl_rep.used_representation.items | - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PLACEMENT' IN TYPEOF (it)) AND - (it.name = 'orientation'))) = 1))) = 0))) = 0; - WR6: SIZEOF (QUERY (pd <* USEDIN (SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - NOT (SIZEOF (QUERY (impl_rep <* QUERY (pdr <* USEDIN (pd, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' - IN TYPEOF (pdr.used_representation)) | - NOT (SIZEOF (QUERY (it <* impl_rep.used_representation.items | - (SIZEOF - (['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * - TYPEOF (it)) = 2) AND - (it.name = 'width'))) = 1))) = 0))) = 0; - WR7: SIZEOF (QUERY (pd <* USEDIN (SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - NOT (SIZEOF (QUERY (impl_rep <* QUERY (pdr <* USEDIN (pd, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' - IN TYPEOF (pdr.used_representation)) | - NOT (SIZEOF (QUERY (it <* impl_rep.used_representation.items | - (SIZEOF - (['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * - TYPEOF (it)) = 2) AND - (it.name = 'length'))) = 1))) = 0))) = 0; - WR8: SIZEOF (QUERY (pd <* USEDIN (SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - NOT (SIZEOF (QUERY (impl_rep <* QUERY (pdr <* USEDIN (pd, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' - IN TYPEOF (pdr.used_representation)) | - NOT (SIZEOF (QUERY (it <* impl_rep.used_representation.items | - (SIZEOF - (['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * - TYPEOF (it)) = 2) AND - (it.name = 'corner radius'))) <= 1))) = 0))) = 0; -END_ENTITY; -- rectangular_closed_profile -(* USED FROM (representation_schema); *) - ENTITY value_representation_item - SUBTYPE OF (representation_item); - value_component : measure_value; - WHERE - WR1: SIZEOF (QUERY (rep <* using_representations (SELF) | - NOT ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.GLOBAL_UNIT_ASSIGNED_CONTEXT' - IN TYPEOF (rep.context_of_items) - ))) = 0; - END_ENTITY; -(* USED FROM (aic_machining_feature); *) -ENTITY profile_floor - SUBTYPE OF (shape_aspect); - WHERE - WR1: 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FEATURE_COMPONENT_DEFINITION' - IN TYPEOF (SELF.of_shape.definition); - WR2: SELF.description IN ['planar', 'complex', 'through']; - WR3: (NOT (SELF.description IN ['planar', 'complex']) OR - (SIZEOF (QUERY (pd <* USEDIN (SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - NOT (SIZEOF (QUERY (pdr <* USEDIN (pd, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' - IN TYPEOF (pdr.used_representation))) = 1))) = 0)); - WR4: (NOT (SELF.description IN ['planar', 'complex'])) OR - (SIZEOF (QUERY (pd <* USEDIN (SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - NOT (SIZEOF (QUERY (impl_rep <* QUERY (pdr <* USEDIN (pd, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' - IN TYPEOF (pdr.used_representation)) | - NOT (SIZEOF (impl_rep.used_representation.items) >= 1)AND - (SIZEOF (impl_rep.used_representation.items) <= 2))) = 0))) = 0); - WR5: (NOT (SELF.description = 'through') OR - (SIZEOF (QUERY (pd <* USEDIN (SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - NOT (SIZEOF (QUERY (pdr <* USEDIN (pd, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' - IN TYPEOF (pdr.used_representation))) = 0))) = 0)); - WR6: (NOT (SELF.description IN ['planar', 'complex'])) OR - (SIZEOF (QUERY (pd <* USEDIN (SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - NOT (SIZEOF (QUERY (impl_rep <* QUERY (pdr <* USEDIN (pd, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' - IN TYPEOF (pdr.used_representation)) | - NOT (SIZEOF (QUERY (it <* impl_rep.used_representation.items | - (SIZEOF (['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * - TYPEOF (it)) = 2) AND (it.name = 'radius'))) = 1))) = 0))) = 0); - WR7: SIZEOF (QUERY (fcr <* QUERY (sar <* USEDIN (SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATING_SHAPE_ASPECT') | - (sar.description = 'profile floor usage') AND - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP' IN - TYPEOF (sar))) | - (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.OUTSIDE_PROFILE' IN TYPEOF - (fcr.related_shape_aspect.of_shape.definition))AND - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROFILE_FLOOR' IN TYPEOF - (fcr.relating_shape_aspect))) - )) >= 1; - WR8: ((NOT (SELF.description IN ['planar','complex'])) OR - (SIZEOF(QUERY ( pd <* USEDIN(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (( - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr. - used_representation)) ) | (NOT (SIZEOF(QUERY ( it <* - impl_rep.used_representation.items | - (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.DESCRIPTIVE_REPRESENTATION_ITEM' - IN TYPEOF(it)) AND (it.name = 'shape profile floor orientation') - AND (it.description IN ['shape profile start','shape profile end'])) - )) = 1)) )) = 0)) )) = 0)); - WR9: (NOT (SELF.description = 'complex')) OR - (SIZEOF (QUERY (pd <* USEDIN (SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - NOT (SIZEOF (QUERY (pdr <* USEDIN (pd, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FACE_SHAPE_REPRESENTATION' - IN TYPEOF (pdr.used_representation)) AND - (pdr.used_representation.name='floor'))) = 1))) = 1); - WR10: (NOT (SELF.description = 'planar')) OR - (SIZEOF (QUERY (pd <* USEDIN (SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - NOT (SIZEOF (QUERY (pdr <* USEDIN (pd, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PLANAR_SHAPE_REPRESENTATION' - IN TYPEOF (pdr.used_representation)) AND - (pdr.used_representation.name='floor'))) = 1))) = 1); -END_ENTITY; -- profile_floor -(* USED FROM (structural_response_representation_schema); *) -ENTITY plane_curve_2d_element_representation - SUBTYPE OF (element_representation); - model_ref : fea_model_2d; - element_descriptor : plane_curve_2d_element_descriptor; - property : curve_2d_element_property; - depth_property : plane_2d_element_property; - material : element_material; -UNIQUE - UR1: model_ref, SELF\representation.name; -WHERE - WR1: model_ref.type_of_2d_analysis = planar; - WR2: SIZEOF (QUERY(item <* SELF\representation.items | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + - 'CURVE_2D_ELEMENT_COORDINATE_SYSTEM' - IN TYPEOF (item))) = 1; - WR3: SIZEOF (QUERY(item1 <* material.properties | - (SIZEOF (QUERY (item2 <* - item1\property_definition_representation.used_representation.items | - SIZEOF (['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + - 'FEA_LINEAR_ELASTICITY', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + - 'FEA_MASS_DENSITY', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + - 'FEA_AREA_DENSITY', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + - 'FEA_TANGENTIAL_COEFFICIENT_OF_LINEAR_THERMAL_EXPANSION', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + - 'FEA_SECANT_COEFFICIENT_OF_LINEAR_THERMAL_EXPANSION', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + - 'FEA_MOISTURE_ABSORPTION'] * TYPEOF (item2) - ) = 1 - )) = 1 - ))) >= 1; - WR4: 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PARAMETRIC_REPRESENTATION_CONTEXT' - IN TYPEOF (SELF\representation.context_of_items); - FU1: required_0d_nodes ( - SELF\element_representation.node_list); -END_ENTITY; -(* USED FROM (aic_machining_feature); *) -ENTITY open_path_profile - SUBTYPE OF (shape_aspect); - WHERE - WR1: ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FEATURE_COMPONENT_DEFINITION' - IN TYPEOF(SELF.of_shape.definition)); - WR2: (SIZEOF(QUERY ( pd <* USEDIN(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(QUERY ( pdr <* USEDIN(pd, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') - IN TYPEOF(pdr.used_representation)) )) = 1)) )) = 0); - WR3: (SIZEOF(QUERY ( pd <* USEDIN(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') - IN TYPEOF(pdr.used_representation)) ) | - (NOT (SIZEOF (impl_rep.used_representation.items) = 1)) )) - = 0)) )) = 0); - WR4: (SIZEOF(QUERY ( pd <* USEDIN(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') - IN TYPEOF(pdr.used_representation)) ) | - (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | - (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PLACEMENT' - IN TYPEOF(it)) AND - (it.name = 'orientation')) )) = 1)) )) = 0)) )) = 0); - WR5: (SIZEOF(QUERY ( pd <* USEDIN(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(QUERY ( pdr <* USEDIN(pd, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PATH_SHAPE_REPRESENTATION' - IN TYPEOF(pdr.used_representation)) )) = 1)) )) = 0); - WR6: SIZEOF (QUERY (pd <* USEDIN (SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - NOT (SIZEOF (QUERY (pdr <* USEDIN (pd, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PLANAR_SHAPE_REPRESENTATION' - IN TYPEOF (pdr.used_representation))AND - (pdr.used_representation.name = 'profile limit') )) <= 1))) = 0; -END_ENTITY; -(* USED FROM (geometry_schema); *) -(* Pruned SUPERTYPE *) -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, - PRIMITIVE_2D, - RIGHT_ANGULAR_WEDGE, - VOLUME, - HALF_SPACE_SOLID, - SHELL_BASED_SURFACE_MODEL, - FACE_BASED_SURFACE_MODEL, - SHELL_BASED_WIREFRAME_MODEL, - EDGE_BASED_WIREFRAME_MODEL, - GEOMETRIC_SET, - TESSELLATED_ITEM) )ANDOR( (ONEOF ( - CAMERA_MODEL, - CAMERA_MODEL_D3_MULTI_CLIPPING_INTERSECTION, - CAMERA_MODEL_D3_MULTI_CLIPPING_UNION, - CURVE, - DIRECTION, - LIGHT_SOURCE)) )ANDOR( (ONEOF ( - ANNOTATION_FILL_AREA, - COMPOSITE_TEXT, - CURVE, - DEFINED_CHARACTER_GLYPH, - DEFINED_SYMBOL, - POINT, - SYMBOL_TARGET, - TEXT_LITERAL)) )ANDOR( ONEOF ( - KINEMATIC_PATH, - PLACEMENT) )ANDOR( (ONEOF ( - CURVE, - EXTERNALLY_DEFINED_HATCH_STYLE, - EXTERNALLY_DEFINED_TILE_STYLE, - FILL_AREA_STYLE_HATCHING, - FILL_AREA_STYLE_TILE_COLOURED_REGION, - FILL_AREA_STYLE_TILE_CURVE_WITH_STYLE, - FILL_AREA_STYLE_TILE_SYMBOL_WITH_STYLE, - FILL_AREA_STYLE_TILES, - ONE_DIRECTION_REPEAT_FACTOR, - POINT, - VECTOR)) )ANDOR( (ONEOF ( - CURVE, - PLANAR_EXTENT)) )ANDOR( ONEOF ( - ROTATION_ABOUT_DIRECTION, - SU_PARAMETERS) ) ) - SUBTYPE OF (representation_item); -DERIVE - dim : dimension_count := dimension_of(SELF); -WHERE - WR1: SIZEOF (QUERY (using_rep <* using_representations (SELF) | NOT ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.GEOMETRIC_REPRESENTATION_CONTEXT' IN TYPEOF (using_rep.context_of_items)))) = 0; -END_ENTITY; -(* USED FROM (aic_machining_feature); *) -ENTITY hole_bottom - SUBTYPE OF (shape_aspect); - WHERE - WR1: ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FEATURE_COMPONENT_DEFINITION' - IN TYPEOF(SELF.of_shape.definition)); - WR2: (SELF.description IN ['through', 'flat', 'flat with radius', - 'flat with taper','spherical', 'conical']); - WR3: ((NOT (SELF.description = 'through')) OR - (SIZEOF(QUERY ( pd <* USEDIN(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(USEDIN(pd, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')) = 0)) )) - = 0)); - WR4: ((NOT (SELF.description IN ['flat with radius', - 'flat with taper', 'spherical','conical'])) OR - (SIZEOF(QUERY ( pd <* USEDIN(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(QUERY ( pdr <* USEDIN(pd, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') - IN TYPEOF(pdr.used_representation)) )) = 1)) )) = 0)); - WR5: ((NOT (SELF.description = 'flat')) OR - (SIZEOF(QUERY ( pd <* USEDIN(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') - IN TYPEOF(pdr.used_representation)) ) | - (NOT (SIZEOF(impl_rep.used_representation.items) = 0)) )) - = 0)) )) = 0)); - WR6: ((NOT (SELF.description IN ['flat with radius','spherical'])) - OR (SIZEOF(QUERY ( pd <* USEDIN(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') - IN TYPEOF(pdr.used_representation)) ) | - (NOT (SIZEOF(impl_rep.used_representation.items) = 1)) )) - = 0)) )) = 0)); - WR7: ((NOT (SELF.description = 'flat with taper')) OR - (SIZEOF(QUERY ( pd <* USEDIN(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') - IN TYPEOF(pdr.used_representation)) ) | - (NOT (SIZEOF(impl_rep.used_representation.items) = 2)) )) - = 0)) )) = 0)); - WR8: ((NOT (SELF.description = 'conical')) OR (SIZEOF( - QUERY ( pd <* USEDIN(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') - IN TYPEOF(pdr.used_representation)) ) | - (NOT (SIZEOF (impl_rep.used_representation.items) >= 1) - AND (SIZEOF (impl_rep.used_representation.items) <= 2)) )) - = 0)) )) = 0)); - WR9: ((SELF.description = 'through') OR - (SIZEOF(QUERY ( fcr <* QUERY ( sar <* USEDIN(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATING_SHAPE_ASPECT') | - ((sar.description = 'hole bottom usage') AND - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP' - IN TYPEOF(sar))) ) | - ((fcr.name IN ['hole depth start','hole depth end'])) )) >= 1)); - WR10: ((NOT (SELF.description = 'flat with radius')) OR - (SIZEOF(QUERY ( pd <* USEDIN(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') - IN TYPEOF(pdr.used_representation)) ) | - (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | - ((SIZEOF([ - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * - TYPEOF(it)) = 2) AND (it.name = 'corner radius')))) = 1)) )) - = 0)) )) = 0)); - WR11: ((NOT (SELF.description = 'spherical')) OR - (SIZEOF(QUERY ( pd <* USEDIN(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') - IN TYPEOF(pdr.used_representation)) ) | - (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | - ((SIZEOF([ - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * - TYPEOF(it)) = 2) AND (it.name = 'radius')) )) = 1)) )) = - 0)) )) = 0)); - WR12: ((NOT (SELF.description = 'conical')) OR - (SIZEOF(QUERY ( pd <* USEDIN(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') - IN TYPEOF(pdr.used_representation)) ) | - (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | - ((SIZEOF([ - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * - TYPEOF(it)) = 2) AND (it.name = 'tip radius')) )) <= 1)) )) - = 0)) )) = 0)); - WR13: ((NOT (SELF.description = 'conical')) OR - (SIZEOF(QUERY ( pd <* USEDIN(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') - IN TYPEOF(pdr.used_representation)) ) | - (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | - ((SIZEOF([ - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PLANE_ANGLE_MEASURE_WITH_UNIT'] * - TYPEOF(it)) = 2) AND (it.name = 'tip angle')) )) = 1)) )) - = 0)) )) = 0)); - WR14: (SIZEOF(QUERY ( fcr <* QUERY ( sar <* USEDIN(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATING_SHAPE_ASPECT') | - ((sar.description = 'hole bottom usage') AND - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP' - IN TYPEOF(sar))) ) | - ((fcr.related_shape_aspect.description ='bottom condition occurrence') - AND ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ROUND_HOLE' - IN TYPEOF(fcr.related_shape_aspect.of_shape.definition)) AND - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.HOLE_BOTTOM' - IN TYPEOF(fcr.relating_shape_aspect))) - )) >= 1); - WR15: ((NOT (SELF.description = 'flat with taper')) OR (SIZEOF( - QUERY ( pd <* USEDIN(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') - IN TYPEOF(pdr.used_representation)) ) | - (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | - ((SIZEOF([ - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * - TYPEOF(it)) = 2) AND (it.name = 'final diameter')))) = 1)) )) - = 0)) )) = 0)); - WR16: ((NOT (SELF.description = 'flat with taper')) OR - (SIZEOF(QUERY ( pd <* USEDIN(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') - IN TYPEOF(pdr.used_representation)) ) | - (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | - ((SIZEOF([ - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PLANE_ANGLE_MEASURE_WITH_UNIT'] * - TYPEOF(it)) = 2) AND (it.name = 'taper diameter')) )) = 1)) )) - = 0)) )) = 0)); - END_ENTITY; -- hole_bottom -(* USED FROM (presentation_organization_schema); *) -(* Pruned SUPERTYPE *) - 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: ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRESENTATION_AREA' IN TYPEOF (SELF)) - OR - (SIZEOF (QUERY (prr <* USEDIN (SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + - 'REPRESENTATION_RELATIONSHIP.REP_2') | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRESENTATION_REPRESENTATION' IN - TYPEOF (prr\representation_relationship.rep_1))) > 0) - OR - (SIZEOF(QUERY( rm <* USEDIN(SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.'+ - 'REPRESENTATION_MAP.'+ - 'MAPPED_REPRESENTATION') | - SIZEOF(QUERY( mi <* USEDIN(rm, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.'+ - 'MAPPED_ITEM.'+ - 'MAPPING_SOURCE') | - SIZEOF(QUERY( rep <* using_representations (mi) | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.'+ - 'PRESENTATION_REPRESENTATION' IN - TYPEOF (rep))) > 0 - )) > 0)) - > 0); - END_ENTITY; -(* USED FROM (topology_schema); *) - 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 | 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FACE_OUTER_BOUND' IN - TYPEOF(temp))) <= 1; - END_ENTITY; -(* USED FROM (aic_mechanical_design_shaded_presentation); *) - ENTITY mechanical_design_shaded_presentation_area - SUBTYPE OF (presentation_area); - SELF\representation.items : SET[1:?] OF mechanical_design_shaded_presentation_area_items; - WHERE - WR1 : (* only presentation_views or axis2_placements in - mechanical_design_shaded_presentation_area *) - SIZEOF (QUERY (it1 <* SELF.items | - NOT (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.AXIS2_PLACEMENT' - IN TYPEOF (it1)) - OR - (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MAPPED_ITEM' - IN TYPEOF (it1)) AND - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRESENTATION_VIEW' - IN TYPEOF - (it1\mapped_item.mapping_source.mapped_representation)))))) = 0; - WR2 : (* only mechanical_design_shaded_presentation_representation - via camera_image_3d_with_scale or axis2_placements in - presentation_views *) - SIZEOF (QUERY (pv <* QUERY (mi1 <* QUERY (it1 <* SELF.items | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MAPPED_ITEM' - IN TYPEOF (it1)) | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.AXIS2_PLACEMENT' - IN TYPEOF(it2)) - OR - (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MAPPED_ITEM' - IN TYPEOF(it2)) AND NOT - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + - 'CAMERA_IMAGE_3D_WITH_SCALE' IN TYPEOF(it2))) AND NOT ( - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRESENTATION_VIEW' - IN TYPEOF - (it2\mapped_item.mapping_source.mapped_representation))) - OR - (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + - 'CAMERA_IMAGE_3D_WITH_SCALE' IN TYPEOF(it2)) - AND NOT ( - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + - 'MECHANICAL_DESIGN_SHADED_PRESENTATION_REPRESENTATION' - IN TYPEOF (it2\mapped_item.mapping_source.mapped_representation) )) - ))) = 0))) = 0; - WR3: (* Presentation_size shall be a positive rectangle for area and set. - Check for this presentation_area subtype first. *) - (SIZEOF (QUERY(ps <* USEDIN (SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + - 'PRESENTATION_SIZE.UNIT') | - NOT ((ps\presentation_size.size.size_in_x > 0) - AND (ps\presentation_size.size.size_in_y > 0)) )) = 0) - AND - (* check secondly for presentation_set, via area_in_set *) - (SIZEOF (QUERY(pset <* QUERY(ais <* - USEDIN (SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + - 'AREA_IN_SET.AREA') - | 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + - 'PRESENTATION_SET' IN TYPEOF (ais.in_set)) | - (* after having collected all presentation_set, check their sizes *) - SIZEOF (QUERY(ps <* USEDIN(pset, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + - 'PRESENTATION_SIZE.UNIT') - | NOT ((ps\presentation_size.size.size_in_x > 0) - AND (ps\presentation_size.size.size_in_y > 0)) )) = 0)) = 0); - WR4: (* Drawing space shall be defined in 2D. - Check for this presentation_area subtype first. *) - (SIZEOF(QUERY( psize <* USEDIN (SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + - 'PRESENTATION_SIZE.UNIT') - | 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + - 'AREA_IN_SET.AREA') - | 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + - 'PRESENTATION_SET' IN TYPEOF (ais.in_set)) | - (* after having collected all presentation_set, check their - dimension *) - SIZEOF (QUERY(psize <* USEDIN(pset, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + - 'PRESENTATION_SIZE.UNIT') - | NOT ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + - 'AXIS2_PLACEMENT_2D' - IN TYPEOF (psize.size.placement)) )) = 0)) = 0); - WR5 : (* valid types of camera_models - get for all presentation_areas their presentation_views *) - SIZEOF (QUERY (pv <* QUERY (mi1 <* QUERY (it1 <* SELF.items | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MAPPED_ITEM' - IN TYPEOF (it1)) | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 | - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.'+ - 'CAMERA_IMAGE_3D_WITH_SCALE' IN TYPEOF(ci)) - AND - (SIZEOF(['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.'+ - 'CAMERA_MODEL_D3', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.'+ - 'CAMERA_MODEL_D3_WITH_HLHSR', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.'+ - 'CAMERA_MODEL_WITH_LIGHT_SOURCES'] * TYPEOF - (ci\mapped_item.mapping_source.mapping_origin)) - = 1))) = 0))) = 0; - END_ENTITY; (* mechanical_design_shaded_presentation_area *) -(* USED FROM (aic_mechanical_design_shaded_presentation); *) -ENTITY mechanical_design_shaded_presentation_representation - SUBTYPE OF (representation); - SELF\representation.items : SET[1:?] OF mechanical_design_shaded_presentation_representation_items; -WHERE - WR1: (* for all mapped_items check that only - shape_representations and - mechanical_design_shaded_presentation_representations - are referenced *) - SIZEOF(QUERY(mi <* QUERY(it <* SELF.items | - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MAPPED_ITEM' - IN TYPEOF(it))) | NOT (SIZEOF( - ['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + - 'SHAPE_REPRESENTATION', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + - 'MECHANICAL_DESIGN_SHADED_PRESENTATION_REPRESENTATION'] - * TYPEOF(mi\mapped_item.mapping_source.mapped_representation)) - = 1))) = 0; - WR2: (* for all styled_item.item check that in case they are - mapped_items that they are shape_representations *) - SIZEOF(QUERY(smi <* QUERY(si <* QUERY(it <* SELF.items | - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.STYLED_ITEM' - IN TYPEOF(it))) | - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MAPPED_ITEM' - IN TYPEOF(si\styled_item.item))) | NOT ( - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + - 'SHAPE_REPRESENTATION' IN TYPEOF (smi\styled_item. - item\mapped_item.mapping_source.mapped_representation))) )) = 0; - WR3: (* for all styled_items get their styles via - presentation_style_assignment.styles and check for valid - style types *) - SIZEOF (QUERY (si <* QUERY (it <* SELF.items | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.STYLED_ITEM' - IN TYPEOF (it)) | - NOT (SIZEOF (QUERY (psa <* si\styled_item.styles | - NOT (SIZEOF (QUERY (pss <* psa.styles | - NOT (SIZEOF ( - ['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.POINT_STYLE', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CURVE_STYLE', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SURFACE_STYLE_USAGE'] - * TYPEOF (pss)) = 1))) = 0))) = 0))) = 0; - WR4: (* for all styled_items get those assigned styles that - are presentation_style_by_contexts and ensure that - these reference only representation_items and - representations as valid contexts *) - SIZEOF (QUERY (si <* QUERY (it <* SELF.items | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.STYLED_ITEM' - IN TYPEOF (it)) | - NOT (SIZEOF (QUERY (psbc <* QUERY (psa <* si\styled_item.styles | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.'+ - 'PRESENTATION_STYLE_BY_CONTEXT' IN TYPEOF (psa)) | - NOT (SIZEOF ( - ['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.REPRESENTATION_ITEM', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.REPRESENTATION'] - * TYPEOF (psbc\presentation_style_by_context.style_context)) = 1))) - = 0))) = 0; - WR5: (* for all styled_items get all assigned point_styles - and ensure that marker_select, marker_size and - marker_colour are valid *) - SIZEOF (QUERY (si <* QUERY (it <* SELF.items | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.STYLED_ITEM' - IN TYPEOF (it)) | - NOT (SIZEOF (QUERY (psa <* si\styled_item.styles | - NOT (SIZEOF (QUERY (ps <* QUERY (pss <* psa.styles | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.POINT_STYLE' - IN TYPEOF (pss)) | - NOT ( - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MARKER_TYPE' - IN TYPEOF (ps\point_style.marker)) - AND - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.POSITIVE_LENGTH_MEASURE' IN TYPEOF - (ps\point_style.marker_size)) - AND - (SIZEOF (['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.COLOUR_RGB', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.'+ - 'DRAUGHTING_PRE_DEFINED_COLOUR'] * TYPEOF - (ps\point_style.marker_colour)) = 1)))) = 0))) = 0))) = 0; - WR6: (* for all styled_items get all assigned curve_styles - and ensure that curve_width, curve_font and - curve_colour are valid *) - SIZEOF (QUERY (si <* QUERY (it <* SELF.items | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.STYLED_ITEM' - IN TYPEOF (it)) | - NOT (SIZEOF (QUERY (psa <* si\styled_item.styles | - NOT (SIZEOF (QUERY (cs <* QUERY (pss <* psa.styles | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CURVE_STYLE' - IN TYPEOF (pss)) | - NOT ( - (SIZEOF (['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.COLOUR_RGB', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.'+ - 'DRAUGHTING_PRE_DEFINED_COLOUR'] * TYPEOF - (cs\curve_style.curve_colour)) = 1) - AND - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.POSITIVE_LENGTH_MEASURE' IN TYPEOF - (cs\curve_style.curve_width)) - AND - (SIZEOF (['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.'+ - 'CURVE_STYLE_FONT', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.'+ - 'DRAUGHTING_PRE_DEFINED_CURVE_FONT'] * TYPEOF - (cs\curve_style.curve_font)) = 1)))) = 0))) = 0))) = 0; - WR7: (* for all styled_items get all assigned surface_style_usages - and ensure that its style is a surface_side_style *) - SIZEOF (QUERY (si <* QUERY (it <* SELF.items | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.STYLED_ITEM' - IN TYPEOF (it)) | - NOT (SIZEOF (QUERY (psa <* si\styled_item.styles | - NOT (SIZEOF (QUERY (ssu <* QUERY (pss <* psa.styles | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SURFACE_STYLE_USAGE' - IN TYPEOF (pss)) | - NOT ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SURFACE_SIDE_STYLE' - IN TYPEOF (ssu\surface_style_usage.style)) )) = 0))) = 0 ))) = 0; - WR8: (* for all styled_items get all assigned surface_style_usages - and the surface_side_styles that they reference, and ensure - that the styles referenced by those surface_side_styles - are among the valid subset *) - SIZEOF (QUERY (si <* QUERY (it <* SELF.items | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.STYLED_ITEM' - IN TYPEOF (it)) | - NOT (SIZEOF (QUERY (psa <* si\styled_item.styles | - NOT (SIZEOF (QUERY (ssu <* QUERY (pss <* psa.styles | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SURFACE_STYLE_USAGE' - IN TYPEOF (pss)) | - NOT (SIZEOF (QUERY (sses <* - ssu\surface_style_usage.style\surface_side_style.styles | - NOT (SIZEOF ( - ['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.'+ - 'SURFACE_STYLE_PARAMETER_LINE', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.'+ - 'SURFACE_STYLE_CONTROL_GRID', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.'+ - 'SURFACE_STYLE_SILHOUETTE', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.'+ - 'SURFACE_STYLE_SEGMENTATION_CURVE', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.'+ - 'SURFACE_STYLE_BOUNDARY', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.'+ - 'SURFACE_STYLE_FILL_AREA', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.'+ - 'SURFACE_STYLE_RENDERING'] * TYPEOF (sses)) = 1))) = 0))) = 0))) - = 0))) = 0; - WR9: (* for all surface_style_fill_areas that are referenced by - any surface_side_styles ensure that they are valid - with respect to their colour representation *) - SIZEOF (QUERY (si <* QUERY (it <* SELF.items | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.STYLED_ITEM' - IN TYPEOF (it)) | - NOT (SIZEOF (QUERY (psa <* si\styled_item.styles | - NOT (SIZEOF (QUERY (ssu <* QUERY (pss <* psa.styles | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SURFACE_STYLE_USAGE' - IN TYPEOF (pss)) | - NOT (SIZEOF (QUERY (ssfa <* QUERY (sses <* - ssu\surface_style_usage.style\surface_side_style.styles | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SURFACE_STYLE_FILL_AREA' - IN TYPEOF (sses)) | - NOT (SIZEOF (QUERY (fss <* - ssfa\surface_style_fill_area.fill_area.fill_styles | - NOT (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.'+ - 'FILL_AREA_STYLE_COLOUR' IN TYPEOF (fss)) - AND - (SIZEOF (['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.COLOUR_RGB', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.'+ - 'DRAUGHTING_PRE_DEFINED_COLOUR'] * TYPEOF - (fss\fill_area_style_colour.fill_colour)) = 1)))) = 0))) = 0))) - = 0))) = 0))) = 0; - WR10: (* for all surface_style_parameter_lines that are referenced by - any surface_side_styles ensure that they are valid - with respect to the applied curve_style, which may include - rendering *) - SIZEOF (QUERY (si <* QUERY (it <* SELF.items | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.STYLED_ITEM' - IN TYPEOF (it)) | - NOT (SIZEOF (QUERY (psa <* si\styled_item.styles | - NOT (SIZEOF (QUERY (ssu <* QUERY (pss <* psa.styles | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SURFACE_STYLE_USAGE' - IN TYPEOF (pss)) | - NOT (SIZEOF (QUERY (sspl <* QUERY (sses <* - ssu\surface_style_usage.style\surface_side_style.styles | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.'+ - 'SURFACE_STYLE_PARAMETER_LINE' IN TYPEOF (sses)) | - NOT (( - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CURVE_STYLE' IN TYPEOF - (sspl\surface_style_parameter_line.style_of_parameter_lines)) - AND - (SIZEOF (['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.COLOUR_RGB', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.'+ - 'DRAUGHTING_PRE_DEFINED_COLOUR'] * TYPEOF - (sspl\surface_style_parameter_line. - style_of_parameter_lines\curve_style.curve_colour)) = 1) - AND - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.POSITIVE_LENGTH_MEASURE' IN TYPEOF - (sspl\surface_style_parameter_line. - style_of_parameter_lines\curve_style.curve_width)) - AND - (SIZEOF (['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.'+ - 'CURVE_STYLE_FONT', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.'+ - 'DRAUGHTING_PRE_DEFINED_CURVE_FONT'] * TYPEOF - (sspl\surface_style_parameter_line. - style_of_parameter_lines\curve_style.curve_font)) = 1)) - OR - (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CURVE_STYLE_RENDERING' - IN TYPEOF - (sspl\surface_style_parameter_line.style_of_parameter_lines)) - AND - (SIZEOF (['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.COLOUR_RGB', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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; - WR11: (* for all surface_style_control_grids that are referenced by - any surface_side_styles ensure that they are valid - with respect to the applied curve_style, which may include - rendering *) - SIZEOF (QUERY (si <* QUERY (it <* SELF.items | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.STYLED_ITEM' - IN TYPEOF (it)) | - NOT (SIZEOF (QUERY (psa <* si\styled_item.styles | - NOT (SIZEOF (QUERY (ssu <* QUERY (pss <* psa.styles | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SURFACE_STYLE_USAGE' - IN TYPEOF (pss)) | - NOT (SIZEOF (QUERY (sscg <* QUERY (sses <* - ssu\surface_style_usage.style\surface_side_style.styles | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.'+ - 'SURFACE_STYLE_CONTROL_GRID' IN TYPEOF (sses)) | - NOT (( - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CURVE_STYLE' - IN TYPEOF (sscg\surface_style_control_grid.style_of_control_grid)) - AND - (SIZEOF (['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.COLOUR_RGB', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.'+ - 'DRAUGHTING_PRE_DEFINED_COLOUR'] * TYPEOF - (sscg\surface_style_control_grid. - style_of_control_grid\curve_style.curve_colour)) = 1) - AND - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.POSITIVE_LENGTH_MEASURE' IN TYPEOF - (sscg\surface_style_control_grid. - style_of_control_grid\curve_style.curve_width)) - AND - (SIZEOF (['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.'+ - 'CURVE_STYLE_FONT', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.'+ - 'DRAUGHTING_PRE_DEFINED_CURVE_FONT'] * TYPEOF - (sscg\surface_style_control_grid. - style_of_control_grid\curve_style.curve_font)) = 1)) - OR - (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CURVE_STYLE_RENDERING' - IN TYPEOF (sscg\surface_style_control_grid.style_of_control_grid)) - AND - (SIZEOF (['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.COLOUR_RGB', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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; - WR12: (* for all surface_style_silhouettes that are referenced by - any surface_side_styles ensure that they are valid - with respect to the applied curve_style, which may include - rendering *) - SIZEOF (QUERY (si <* QUERY (it <* SELF.items | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.STYLED_ITEM' - IN TYPEOF (it)) | - NOT (SIZEOF (QUERY (psa <* si\styled_item.styles | - NOT (SIZEOF (QUERY (ssu <* QUERY (pss <* psa.styles | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SURFACE_STYLE_USAGE' - IN TYPEOF (pss)) | - NOT (SIZEOF (QUERY (sssh <* QUERY (sses <* - ssu\surface_style_usage.style\surface_side_style.styles | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.'+ - 'SURFACE_STYLE_SILHOUETTE' IN TYPEOF (sses)) | - NOT (( - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CURVE_STYLE' - IN TYPEOF (sssh\surface_style_silhouette.style_of_silhouette)) - AND - (SIZEOF (['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.COLOUR_RGB', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.'+ - 'DRAUGHTING_PRE_DEFINED_COLOUR'] * TYPEOF - (sssh\surface_style_silhouette. - style_of_silhouette\curve_style.curve_colour)) = 1) - AND - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.POSITIVE_LENGTH_MEASURE' IN TYPEOF - (sssh\surface_style_silhouette. - style_of_silhouette\curve_style.curve_width)) - AND - (SIZEOF (['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.'+ - 'CURVE_STYLE_FONT', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.'+ - 'DRAUGHTING_PRE_DEFINED_CURVE_FONT'] * TYPEOF - (sssh\surface_style_silhouette. - style_of_silhouette\curve_style.curve_font)) = 1)) - OR - (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CURVE_STYLE_RENDERING' - IN TYPEOF (sssh\surface_style_silhouette.style_of_silhouette)) - AND - (SIZEOF (['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.COLOUR_RGB', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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; - WR13: (* for all surface_style_segmentation_curves that are referenced by - any surface_side_styles ensure that they are valid - with respect to the applied curve_style, which may include - rendering *) - SIZEOF (QUERY (si <* QUERY (it <* SELF.items | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.STYLED_ITEM' - IN TYPEOF (it)) | - NOT (SIZEOF (QUERY (psa <* si\styled_item.styles | - NOT (SIZEOF (QUERY (ssu <* QUERY (pss <* psa.styles | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SURFACE_STYLE_USAGE' - IN TYPEOF (pss)) | - NOT (SIZEOF (QUERY (sssc <* QUERY (sses <* - ssu\surface_style_usage.style\surface_side_style.styles | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.'+ - 'SURFACE_STYLE_SEGMENTATION_CURVE' IN TYPEOF (sses)) | - NOT (( - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CURVE_STYLE' - IN TYPEOF - (sssc\surface_style_segmentation_curve.style_of_segmentation_curve)) - AND - (SIZEOF (['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.COLOUR_RGB', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.'+ - 'DRAUGHTING_PRE_DEFINED_COLOUR'] * TYPEOF - (sssc\surface_style_segmentation_curve. - style_of_segmentation_curve\curve_style.curve_colour)) = 1) - AND - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.POSITIVE_LENGTH_MEASURE' IN TYPEOF - (sssc\surface_style_segmentation_curve. - style_of_segmentation_curve\curve_style.curve_width)) - AND - (SIZEOF (['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.'+ - 'CURVE_STYLE_FONT', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.'+ - 'DRAUGHTING_PRE_DEFINED_CURVE_FONT'] * TYPEOF - (sssc\surface_style_segmentation_curve. - style_of_segmentation_curve\curve_style.curve_font)) = 1)) - OR - (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CURVE_STYLE_RENDERING' - IN TYPEOF (sssc\surface_style_segmentation_curve. - style_of_segmentation_curve)) - AND - (SIZEOF (['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.COLOUR_RGB', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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; - WR14: (* for all surface_style_boundaries that are referenced by - any surface_side_styles ensure that they are valid - with respect to the applied curve_style, which may include - rendering *) - SIZEOF (QUERY (si <* QUERY (it <* SELF.items | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.STYLED_ITEM' - IN TYPEOF (it)) | - NOT (SIZEOF (QUERY (psa <* si\styled_item.styles | - NOT (SIZEOF (QUERY (ssu <* QUERY (pss <* psa.styles | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SURFACE_STYLE_USAGE' - IN TYPEOF (pss)) | - NOT (SIZEOF (QUERY (ssbd <* QUERY (sses <* - ssu\surface_style_usage.style\surface_side_style.styles | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.'+ - 'SURFACE_STYLE_BOUNDARY' IN TYPEOF (sses)) | - NOT (( - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CURVE_STYLE' - IN TYPEOF (ssbd\surface_style_boundary.style_of_boundary)) - AND - (SIZEOF (['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.COLOUR_RGB', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.'+ - 'DRAUGHTING_PRE_DEFINED_COLOUR'] * TYPEOF - (ssbd\surface_style_boundary. - style_of_boundary\curve_style.curve_colour)) = 1) - AND - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.POSITIVE_LENGTH_MEASURE' IN TYPEOF - (ssbd\surface_style_boundary. - style_of_boundary\curve_style.curve_width)) - AND - (SIZEOF (['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.'+ - 'CURVE_STYLE_FONT', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.'+ - 'DRAUGHTING_PRE_DEFINED_CURVE_FONT'] * TYPEOF - (ssbd\surface_style_boundary. - style_of_boundary\curve_style.curve_font)) = 1)) - OR - (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CURVE_STYLE_RENDERING' - IN TYPEOF (ssbd\surface_style_boundary.style_of_boundary)) - AND - (SIZEOF (['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.COLOUR_RGB', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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; - WR15: (* for all surface_style_renderings that are referenced by - any surface_side_styles ensure that the colour - representation is valid *) - SIZEOF (QUERY (si <* QUERY (it <* SELF.items | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.STYLED_ITEM' - IN TYPEOF (it)) | - NOT (SIZEOF (QUERY (psa <* si\styled_item.styles | - NOT (SIZEOF (QUERY (ssu <* QUERY (pss <* psa.styles | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SURFACE_STYLE_USAGE' - IN TYPEOF (pss)) | - NOT (SIZEOF (QUERY (ssre <* QUERY (sses <* - ssu\surface_style_usage.style\surface_side_style.styles | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.'+ - 'SURFACE_STYLE_RENDERING' IN TYPEOF (sses)) | - NOT - (SIZEOF (['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.COLOUR_RGB', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.'+ - 'DRAUGHTING_PRE_DEFINED_COLOUR'] * TYPEOF - (ssre\surface_style_rendering.surface_colour)) = 1))) - = 0))) = 0))) = 0))) = 0; - -END_ENTITY; -(* USED FROM (aic_geometrically_bounded_surface); *) -ENTITY geometrically_bounded_surface_shape_representation - SUBTYPE OF (shape_representation); -WHERE - WR1: SIZEOF(QUERY(it <* SELF.items | NOT (SIZEOF(['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.GEOMETRIC_SET', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MAPPED_ITEM', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.AXIS2_PLACEMENT_3D'] * TYPEOF(it)) = 1))) = 0; - WR2: SIZEOF(QUERY(it <* SELF.items | SIZEOF(['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.GEOMETRIC_SET', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MAPPED_ITEM'] * TYPEOF(it)) = 1)) > 0; - WR3: SIZEOF(QUERY(mi <* QUERY(it <* SELF.items | 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MAPPED_ITEM' IN TYPEOF(it)) | NOT (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 | ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.GEOMETRIC_SET' IN TYPEOF(mr_it)))) > 0)))) = 0; - WR4: SIZEOF(QUERY(gs <* QUERY(it <* SELF.items | 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.GEOMETRIC_SET' IN TYPEOF(it)) | NOT (SIZEOF(QUERY(pnt <* QUERY(gsel <* gs\geometric_set.elements | 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.POINT' IN TYPEOF(gsel)) | NOT (gbsf_check_point(pnt)))) = 0))) = 0; - WR5: SIZEOF(QUERY(gs <* QUERY(it <* SELF.items | 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.GEOMETRIC_SET' IN TYPEOF(it)) | NOT (SIZEOF(QUERY(cv <* QUERY(gsel <* gs\geometric_set.elements | 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CURVE' IN TYPEOF(gsel)) | NOT (gbsf_check_curve(cv)))) = 0))) = 0; - WR6: SIZEOF(QUERY(gs <* QUERY(it <* SELF.items | 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.GEOMETRIC_SET' IN TYPEOF(it)) | NOT (SIZEOF(QUERY(sf <* QUERY(gsel <* gs\geometric_set.elements | 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SURFACE' IN TYPEOF(gsel)) | NOT (gbsf_check_surface(sf)))) = 0))) = 0; - WR7: SIZEOF(QUERY(gs <* QUERY(it <* SELF.items | 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.GEOMETRIC_SET' IN TYPEOF(it)) | SIZEOF(QUERY(gsel <* gs\geometric_set.elements | 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SURFACE' IN TYPEOF(gsel))) > 0)) > 0; -END_ENTITY; -(* USED FROM (topology_schema); *) -(* Pruned SUPERTYPE *) - 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; -(* USED FROM (aic_machining_feature); *) -ENTITY gear - SUBTYPE OF (feature_definition); -WHERE - WR1 : SIZEOF(QUERY(pd <* USEDIN(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - SIZEOF(QUERY(pdr <* USEDIN(pd, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' - IN TYPEOF(pdr.used_representation)) - AND (10 <= SIZEOF(pdr.used_representation.items)) AND - (SIZEOF(pdr.used_representation.items) <= 13))) = 1)) = 1; - - WR2 : NOT (SELF\characterized_object.description - IN ['straight bevel gear', 'helical bevel gear', - 'spur gear', 'helical gear']) OR - (SIZEOF(QUERY(pd <* USEDIN(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | NOT - (SIZEOF(QUERY(impl_rep <* QUERY(pdr <* USEDIN(pd, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' - IN TYPEOF(pdr.used_representation)) | NOT - (SIZEOF(QUERY(it <* impl_rep.used_representation.items | - (SIZEOF([ - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.RATIO_MEASURE_WITH_UNIT'] * TYPEOF(it)) = 2) AND - (it.name = 'number of teeth'))) = 1))) = 0))) = 0); - - WR3 : NOT (SELF\characterized_object.description - IN ['straight bevel gear', 'helical bevel gear', - 'spur gear', 'helical gear']) OR - (SIZEOF(QUERY(pd <* USEDIN(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | NOT - (SIZEOF(QUERY(impl_rep <* QUERY(pdr <* USEDIN(pd, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' - IN TYPEOF(pdr.used_representation)) | NOT - (SIZEOF(QUERY(it <* impl_rep.used_representation.items | (SIZEOF([ - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PLANE_ANGLE_MEASURE_WITH_UNIT']* TYPEOF(it))= 2) AND - (it.name = 'reference pressure angle'))) = 1))) = 0))) = 0); - - WR4 : NOT (SELF\characterized_object.description - IN ['straight bevel gear', 'helical bevel gear', - 'spur gear', 'helical gear']) OR - (SIZEOF(QUERY(pd <* USEDIN(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | NOT - (SIZEOF(QUERY(impl_rep <* QUERY(pdr <* USEDIN(pd, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' - IN TYPEOF(pdr.used_representation)) | NOT - (SIZEOF(QUERY(it <* impl_rep.used_representation.items | (SIZEOF([ - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(it)) = 2) AND - (it.name = 'rake shift factor'))) = 1))) = 0))) = 0); - - WR5 : NOT (SELF\characterized_object.description - IN ['straight bevel gear', 'helical bevel gear', - 'spur gear', 'helical gear']) OR - (SIZEOF(QUERY(pd <* USEDIN(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | NOT - (SIZEOF(QUERY(impl_rep <* QUERY(pdr <* USEDIN(pd, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' - IN TYPEOF(pdr.used_representation))| NOT - (SIZEOF(QUERY(it <* impl_rep.used_representation.items | (SIZEOF([ - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT']* TYPEOF(it)) = 2) AND - (it.name = 'nominal tooth depth'))) = 1))) = 0))) = 0); - - WR6 : NOT (SELF\characterized_object.description - IN ['straight bevel gear', 'helical bevel gear', - 'spur gear', 'helical gear']) OR - (SIZEOF(QUERY(pd <* USEDIN(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | NOT - (SIZEOF(QUERY(impl_rep <* QUERY(pdr <* USEDIN(pd, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' - IN TYPEOF(pdr.used_representation))| NOT - (SIZEOF(QUERY(it <* impl_rep.used_representation.items | (SIZEOF([ - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT']* TYPEOF(it)) = 2) AND - (it.name = 'face width'))) = 1))) = 0))) = 0); - - WR7 : NOT (SELF\characterized_object.description - IN ['straight bevel gear', 'helical bevel gear', - 'spur gear', 'helical gear']) OR - (SIZEOF(QUERY(pd <* USEDIN(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | NOT - (SIZEOF(QUERY(impl_rep <* QUERY(pdr <* USEDIN(pd, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' - IN TYPEOF(pdr.used_representation))| NOT - (SIZEOF(QUERY(it <* impl_rep.used_representation.items | (SIZEOF([ - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT']* TYPEOF(it)) = 2) AND - (it.name = 'tip diameter'))) = 1))) = 0))) = 0); - - WR8 : NOT (SELF\characterized_object.description - IN ['straight bevel gear', 'helical bevel gear', - 'spur gear', 'helical gear']) OR - (SIZEOF(QUERY(pd <* USEDIN(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | NOT - (SIZEOF(QUERY(impl_rep <* QUERY(pdr <* USEDIN(pd, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' - IN TYPEOF(pdr.used_representation))| NOT - (SIZEOF(QUERY(it <* impl_rep.used_representation.items | -('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF(it)) AND - (it.name = 'module or diametral pitch') AND - ((it.description ='module') OR (it.description = 'diametral pitch')))) - = 1))) = 0))) = 0); - - WR9 : NOT (SELF\characterized_object.description - IN ['straight bevel gear', 'helical bevel gear', - 'spur gear', 'helical gear']) OR - (SIZEOF(QUERY(pd <* USEDIN(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | NOT - (SIZEOF(QUERY(impl_rep <* QUERY(pdr <* USEDIN(pd, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' - IN TYPEOF(pdr.used_representation))| NOT - (SIZEOF(QUERY(it <* impl_rep.used_representation.items | -('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF(it)) AND - (it.name = 'internal or external gear') AND - ((it.description ='internal') OR (it.description = 'external')))) - = 1))) = 0))) = 0); - - WR10: NOT (SELF\characterized_object.description - IN ['straight bevel gear', 'helical bevel gear', - 'spur gear', 'helical gear']) OR - (SIZEOF(QUERY(pd <* USEDIN(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | NOT - (SIZEOF(QUERY(impl_rep <* QUERY(pdr <* USEDIN(pd, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' - IN TYPEOF(pdr.used_representation))| NOT - (SIZEOF(QUERY(it <* impl_rep.used_representation.items | (SIZEOF([ - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT']* TYPEOF(it)) = 2) AND - (it.name = 'normal attribute'))) = 1))) = 0))) = 0); - - WR11 : NOT (SELF\characterized_object.description - IN ['straight bevel gear', 'helical bevel gear', - 'spur gear', 'helical gear']) OR - (SIZEOF(QUERY(pd <* USEDIN(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | NOT - (SIZEOF(QUERY(impl_rep <* QUERY(pdr <* USEDIN(pd, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' - IN TYPEOF(pdr.used_representation))| NOT - (SIZEOF(QUERY(it <* impl_rep.used_representation.items | (SIZEOF([ - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT']* TYPEOF(it)) = 2) AND - (it.name = 'root fillet radius'))) <= 1))) = 0))) = 0); - - WR12 : NOT (SELF\characterized_object.description - IN ['helix gear','helical bevel gear']) OR - (SIZEOF(QUERY(pd <* USEDIN(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - NOT (SIZEOF(QUERY(impl_rep <* QUERY(pdr <* USEDIN(pd, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' - IN TYPEOF(pdr.used_representation)) | NOT - (SIZEOF(QUERY(it <* impl_rep.used_representation.items | (SIZEOF([ - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', -'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PLANE_ANGLE_MEASURE_WITH_UNIT']* TYPEOF(it))= 2) AND - (it.name = 'reference helix angle'))) = 1))) = 0))) = 0); - - WR13 : NOT (SELF\characterized_object.description - IN ['helix gear','helical bevel gear']) OR - (SIZEOF(QUERY(pd <* USEDIN(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | NOT - (SIZEOF(QUERY(impl_rep <* QUERY(pdr <* USEDIN(pd, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' - IN TYPEOF(pdr.used_representation))| NOT - (SIZEOF(QUERY(it <* impl_rep.used_representation.items | - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.DESCRIPTIVE_REPRESENTATION_ITEM' - IN TYPEOF(it)) AND (it.name = 'gear tooth') AND - ((it.description = 'left hand tooth') OR - (it.description = 'right hand tooth')))) = 1))) = 0))) = 0); - - WR14 : NOT (SELF\characterized_object.description - IN ['straight bevel gear','helical bevel gear']) OR - (SIZEOF(QUERY(pd <* USEDIN(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - NOT (SIZEOF(QUERY(impl_rep <* QUERY(pdr <* USEDIN(pd, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' - IN TYPEOF(pdr.used_representation)) | NOT - (SIZEOF(QUERY(it <* impl_rep.used_representation.items | (SIZEOF([ - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', -'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PLANE_ANGLE_MEASURE_WITH_UNIT']* TYPEOF(it))= 2) AND - (it.name = 'tip angle'))) = 1))) = 0))) = 0); - - WR15 : NOT (SELF\characterized_object.description - IN ['straight bevel gear','helical bevel gear']) OR - (SIZEOF(QUERY(pd <* USEDIN(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - NOT (SIZEOF(QUERY(impl_rep <* QUERY(pdr <* USEDIN(pd, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' - IN TYPEOF(pdr.used_representation)) | NOT - (SIZEOF(QUERY(it <* impl_rep.used_representation.items | (SIZEOF([ - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', -'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PLANE_ANGLE_MEASURE_WITH_UNIT']* TYPEOF(it))= 2) AND - (it.name = 'root angle'))) = 1))) = 0))) = 0); - - WR16 : SIZEOF(QUERY(pds <* QUERY(pd <* USEDIN(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pd)) | NOT - (SIZEOF(QUERY(sa_occ <* USEDIN(pds, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE') | - SIZEOF( QUERY(sdr <* QUERY(sar <* USEDIN(sa_occ, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | - (sar.description = 'applied shape') AND - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_DEFINING_RELATIONSHIP' - IN TYPEOF(sar))) | 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT' - IN TYPEOF(sdr.relating_shape_aspect))) = 1)) = 1))) = 0; - -END_ENTITY; -(* USED FROM (aic_geometrically_bounded_wireframe); *) -ENTITY geometrically_bounded_wireframe_shape_representation - SUBTYPE OF ( shape_representation ); - WHERE -WR1 : -SIZEOF ( -QUERY ( it <* SELF.items| NOT ( SIZEOF ( TYPEOF (it) * [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.GEOMETRIC_CURVE_SET', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.AXIS2_PLACEMENT_3D', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MAPPED_ITEM' ]) = 1) )) = 0; -WR2 : -SIZEOF ( -QUERY ( it <* SELF.items| ( SIZEOF ( TYPEOF (it) * [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.GEOMETRIC_CURVE_SET', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MAPPED_ITEM' ]) = 1) )) >= 1; -WR3 : -SIZEOF ( -QUERY ( gcs <* -QUERY ( it <* SELF.items| ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.GEOMETRIC_CURVE_SET' IN TYPEOF (it)) )| NOT ( SIZEOF ( -QUERY ( crv <* -QUERY ( elem <* gcs\geometric_set.elements| ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CURVE' IN TYPEOF (elem)) )| NOT valid_geometrically_bounded_wf_curve(crv) )) = 0) )) = 0; -WR4 : -SIZEOF ( -QUERY ( gcs <* -QUERY ( it <* SELF.items| ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.GEOMETRIC_CURVE_SET' IN TYPEOF (it)) )| NOT ( SIZEOF ( -QUERY ( pnts <* -QUERY ( elem <* gcs\geometric_set.elements| ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.POINT' IN TYPEOF (elem)) )| NOT valid_geometrically_bounded_wf_point(pnts) )) = 0) )) = 0; -WR5 : -SIZEOF ( -QUERY ( gcs <* -QUERY ( it <* SELF.items| ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.GEOMETRIC_CURVE_SET' IN TYPEOF (it)) )| NOT ( SIZEOF ( -QUERY ( cnc <* -QUERY ( elem <* gcs\geometric_set.elements| ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CONIC' IN TYPEOF (elem)) )| NOT ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.AXIS2_PLACEMENT_3D' IN TYPEOF (cnc\conic.position)) )) = 0) )) = 0; -WR6 : -SIZEOF ( -QUERY ( gcs <* -QUERY ( it <* SELF.items| ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.GEOMETRIC_CURVE_SET' IN TYPEOF (it)) )| NOT ( SIZEOF ( -QUERY ( pline <* -QUERY ( elem <* gcs\geometric_set.elements| ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.POLYLINE' IN TYPEOF (elem)) )| NOT ( SIZEOF (pline\polyline.points) > 2) )) = 0) )) = 0; -WR7 : -SIZEOF ( -QUERY ( mi <* -QUERY ( it <* SELF.items| ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MAPPED_ITEM' IN TYPEOF (it)) )| NOT ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'GEOMETRICALLY_BOUNDED_WIREFRAME_SHAPE_REPRESENTATION' IN TYPEOF (mi\mapped_item.mapping_source.mapped_representation)) )) = 0; - END_ENTITY ; -(* USED FROM (aic_shell_based_wireframe); *) -ENTITY shell_based_wireframe_shape_representation - SUBTYPE OF ( shape_representation ); - WHERE -WR1 : -SIZEOF ( -QUERY ( it <* SELF.items| NOT ( SIZEOF ([ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHELL_BASED_WIREFRAME_MODEL', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MAPPED_ITEM', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.AXIS2_PLACEMENT_3D' ] * TYPEOF (it)) = 1) )) = 0; -WR2 : -SIZEOF ( -QUERY ( it <* SELF.items| ( SIZEOF ([ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHELL_BASED_WIREFRAME_MODEL', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MAPPED_ITEM' ] * TYPEOF (it)) = 1) )) >= 1; -WR3 : -SIZEOF ( -QUERY ( sbwm <* -QUERY ( it <* SELF.items| ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHELL_BASED_WIREFRAME_MODEL' IN TYPEOF (it)) )| NOT ( SIZEOF ( -QUERY ( ws <* -QUERY ( sb <* sbwm\shell_based_wireframe_model.sbwm_boundary| ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.WIRE_SHELL' IN TYPEOF (sb)) )| NOT ( SIZEOF ( -QUERY ( eloop <* -QUERY ( wsb <* ws\wire_shell.wire_shell_extent| ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.EDGE_LOOP' IN TYPEOF (wsb)) )| NOT ( SIZEOF ( -QUERY ( el <* eloop\path.edge_list| NOT ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.EDGE_CURVE' IN TYPEOF (el.edge_element)) )) = 0) )) = 0) )) = 0) )) = 0; -WR4 : -SIZEOF ( -QUERY ( sbwm <* -QUERY ( it <* SELF.items| ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHELL_BASED_WIREFRAME_MODEL' IN TYPEOF (it)) )| NOT ( SIZEOF ( -QUERY ( ws <* -QUERY ( sb <* sbwm\shell_based_wireframe_model.sbwm_boundary| ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.WIRE_SHELL' IN TYPEOF (sb)) )| NOT ( SIZEOF ( -QUERY ( eloop <* -QUERY ( wsb <* ws\wire_shell.wire_shell_extent| ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.EDGE_LOOP' IN TYPEOF (wsb)) )| NOT ( SIZEOF ( -QUERY ( pline_el <* -QUERY ( el <* eloop\path.edge_list| ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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| ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHELL_BASED_WIREFRAME_MODEL' IN TYPEOF (it)) )| NOT ( SIZEOF ( -QUERY ( ws <* -QUERY ( sb <* sbwm\shell_based_wireframe_model.sbwm_boundary| ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.WIRE_SHELL' IN TYPEOF (sb)) )| NOT ( SIZEOF ( -QUERY ( eloop <* -QUERY ( wsb <* ws\wire_shell.wire_shell_extent| ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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| ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHELL_BASED_WIREFRAME_MODEL' IN TYPEOF (it)) )| NOT ( SIZEOF ( -QUERY ( ws <* -QUERY ( sb <* sbwm\shell_based_wireframe_model.sbwm_boundary| ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.WIRE_SHELL' IN TYPEOF (sb)) )| NOT ( SIZEOF ( -QUERY ( eloop <* -QUERY ( wsb <* ws\wire_shell.wire_shell_extent| ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.EDGE_LOOP' IN TYPEOF (wsb)) )| NOT ( SIZEOF ( -QUERY ( el <* eloop\path.edge_list| NOT (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.VERTEX_POINT' IN TYPEOF (el.edge_element.edge_start)) AND ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.VERTEX_POINT' IN TYPEOF (el.edge_element.edge_end))) )) = 0) )) = 0) )) = 0) )) = 0; -WR7 : -SIZEOF ( -QUERY ( sbwm <* -QUERY ( it <* SELF.items| ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHELL_BASED_WIREFRAME_MODEL' IN TYPEOF (it)) )| NOT ( SIZEOF ( -QUERY ( ws <* -QUERY ( sb <* sbwm\shell_based_wireframe_model.sbwm_boundary| ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.WIRE_SHELL' IN TYPEOF (sb)) )| NOT ( SIZEOF ( -QUERY ( eloop <* -QUERY ( wsb <* ws\wire_shell.wire_shell_extent| ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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| ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHELL_BASED_WIREFRAME_MODEL' IN TYPEOF (it)) )| NOT ( SIZEOF ( -QUERY ( ws <* -QUERY ( sb <* sbwm\shell_based_wireframe_model.sbwm_boundary| ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.WIRE_SHELL' IN TYPEOF (sb)) )| NOT ( SIZEOF ( -QUERY ( vloop <* -QUERY ( wsb <* ws\wire_shell.wire_shell_extent| ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.VERTEX_LOOP' IN TYPEOF (wsb)) )| NOT ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.VERTEX_POINT' IN TYPEOF (vloop\vertex_loop.loop_vertex)) )) = 0) )) = 0) )) = 0; -WR9 : -SIZEOF ( -QUERY ( sbwm <* -QUERY ( it <* SELF.items| ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHELL_BASED_WIREFRAME_MODEL' IN TYPEOF (it)) )| NOT ( SIZEOF ( -QUERY ( ws <* -QUERY ( sb <* sbwm\shell_based_wireframe_model.sbwm_boundary| ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.WIRE_SHELL' IN TYPEOF (sb)) )| NOT ( SIZEOF ( -QUERY ( vloop <* -QUERY ( wsb <* ws\wire_shell.wire_shell_extent| ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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| ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHELL_BASED_WIREFRAME_MODEL' IN TYPEOF (it)) )| NOT ( SIZEOF ( -QUERY ( vs <* -QUERY ( sb <* sbwm\shell_based_wireframe_model.sbwm_boundary| ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.VERTEX_SHELL' IN TYPEOF (sb)) )| NOT ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.VERTEX_POINT' IN TYPEOF (vs\vertex_shell.vertex_shell_extent.loop_vertex)) )) = 0) )) = 0; -WR11 : -SIZEOF ( -QUERY ( sbwm <* -QUERY ( it <* SELF.items| ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHELL_BASED_WIREFRAME_MODEL' IN TYPEOF (it)) )| NOT ( SIZEOF ( -QUERY ( vs <* -QUERY ( sb <* sbwm\shell_based_wireframe_model.sbwm_boundary| ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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| ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MAPPED_ITEM' IN TYPEOF (it)) )| NOT ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ; -(* USED FROM (geometric_model_schema); *) -ENTITY geometric_curve_set - SUBTYPE OF (geometric_set); -WHERE - WR1: SIZEOF(QUERY(temp <* SELF\geometric_set.elements | 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SURFACE' IN TYPEOF(temp))) = 0; -END_ENTITY; -(* USED FROM (aic_machining_feature); *) -ENTITY flat_face - SUBTYPE OF (feature_definition); - WHERE - WR1: (SIZEOF(QUERY ( pd <* USEDIN(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(QUERY ( pdr <* USEDIN(pd, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.DIRECTION_SHAPE_REPRESENTATION' - IN TYPEOF(pdr.used_representation)) AND - (pdr.used_representation.name = 'removal direction')) )) = 1)) )) - = 0); - WR2: (SIZEOF(QUERY ( pds <* QUERY ( pd <* USEDIN(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' - IN TYPEOF(pd)) ) | (NOT (SIZEOF(QUERY ( sa_occ <* USEDIN(pds, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE') | - ((sa_occ.description = 'course of travel occurrence') AND - (SIZEOF(QUERY ( sdr <* QUERY ( sar <* USEDIN(sa_occ, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | - ((sar.description = 'path feature component usage') AND - (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_DEFINING_RELATIONSHIP') - IN TYPEOF(sar))) ) | - (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PATH_FEATURE_COMPONENT' - IN TYPEOF(sdr.relating_shape_aspect)) AND - (sdr.relating_shape_aspect.description = 'linear') AND - (sdr.name = 'course of travel')) )) = 1)) )) = 1)) )) = 0); - WR3: (SIZEOF(QUERY ( pds <* QUERY ( pd <* USEDIN(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' - IN TYPEOF(pd)) ) | (NOT (SIZEOF(QUERY ( sa_occ <* USEDIN(pds, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE') | - ((sa_occ.description = 'removal boundary occurrence') AND - (SIZEOF(QUERY ( sdr <* QUERY ( sar <* USEDIN(sa_occ, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | - ((sar.description = 'profile usage') AND - (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_DEFINING_RELATIONSHIP') - IN TYPEOF(sar))) ) | - (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LINEAR_PROFILE' - IN TYPEOF(sdr.relating_shape_aspect)) AND - (sdr.name = 'removal boundary')) )) = 1)) )) = 1)) )) = 0); - WR4: SIZEOF (QUERY (pds <* QUERY (pd <* USEDIN (SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' - IN TYPEOF (pd)) | - NOT (SIZEOF (QUERY (sa_occ <* USEDIN (pds, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE') | - (sa_occ.description = 'enclosed boundary occurrence') AND - (SIZEOF (QUERY (sdr <* QUERY (sar <* USEDIN (sa_occ, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | - (sar.description = 'profile usage') AND - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_DEFINING_RELATIONSHIP' - IN TYPEOF (sar))) | - (SIZEOF - (['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CIRCULAR_CLOSED_PROFILE', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.NGON_CLOSED_PROFILE', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.RECTANGULAR_CLOSED_PROFILE', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CLOSED_PATH_PROFILE'] * - TYPEOF (sdr.relating_shape_aspect)) = 1) AND - (sdr.relating_shape_aspect.description = 'boundary'))) - = 1))) <= 1))) = 0; - WR5: SIZEOF(QUERY( pdr <* get_property_definition_representations (SELF) | - ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PLANAR_SHAPE_REPRESENTATION' - IN TYPEOF ( pdr.used_representation ) ) AND - ( pdr.used_representation.name ='maximum feature limit'))) >=0; - WR6: SIZEOF(QUERY ( pds <* USEDIN(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' - IN TYPEOF(pds)) AND (SIZEOF(QUERY ( csa <* USEDIN(pds, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE') | - (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.COMPOSITE_SHAPE_ASPECT' IN - TYPEOF(csa)) AND - (csa.name='uncut volume') AND - (SIZEOF(QUERY ( sar <* csa.component_relationships | - (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP' - IN TYPEOF(sar)) AND (SIZEOF([ - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.BOSS', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROTRUSION'] * TYPEOF(sar. - related_shape_aspect)) = 1)) )) = 1)) )) <= 1)) )) = 1; - WR7: SIZEOF (QUERY (pd <* USEDIN (SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - NOT (SIZEOF (QUERY (impl_rep <* QUERY (pdr <* USEDIN (pd, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' - IN TYPEOF (pdr.used_representation)) | - NOT (SIZEOF (QUERY (it <* impl_rep.used_representation.items | - (SIZEOF ( - ['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * - TYPEOF (it)) = 2) AND (it.name = 'removal depth'))) <= 1))) - = 0))) = 0; - -END_ENTITY; -- flat_face -(* USED FROM (aic_machining_feature); *) -ENTITY fillet - SUBTYPE OF (transition_feature); - WHERE - WR1: (NOT (SELF\shape_aspect.description = 'constant radius')) OR - (SIZEOF (QUERY (pd <* USEDIN (SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - NOT (SIZEOF (QUERY (pdr <* USEDIN (pd, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' - IN TYPEOF (pdr.used_representation))) = 1))) = 0); - WR2: (NOT (SELF\shape_aspect.description = 'constant radius')) OR - (SIZEOF (QUERY (pd <* USEDIN (SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - NOT (SIZEOF (QUERY (impl_rep <* QUERY (pdr <* USEDIN (pd, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' - IN TYPEOF (pdr.used_representation)) | - (NOT (SIZEOF (impl_rep.used_representation.items) >= 1) - AND(SIZEOF (impl_rep.used_representation.items) <= 3)))) - = 0))) = 0); - WR3: (NOT (SELF.description = 'constant radius')) OR - (SIZEOF (QUERY (pd <* USEDIN (SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - NOT (SIZEOF (QUERY (impl_rep <* QUERY (pdr <* USEDIN (pd, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' - IN TYPEOF (pdr.used_representation)) | - NOT (SIZEOF (QUERY (it <* impl_rep.used_representation.items | - (SIZEOF - (['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * - TYPEOF (it)) = 2) AND (it.name = 'radius'))) = 1))) = 0))) = 0); - WR4: (NOT (SELF.description = 'constant radius')) OR - (SIZEOF (QUERY (pd <* USEDIN (SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - NOT (SIZEOF (QUERY (impl_rep <* QUERY (pdr <* USEDIN (pd, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' - IN TYPEOF (pdr.used_representation)) | - NOT (SIZEOF (QUERY (it <* impl_rep.used_representation.items | - (SIZEOF - (['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * - TYPEOF (it)) = 2) AND (it.name = 'first offset'))) <= 1))) - = 0))) = 0); - WR5: (NOT (SELF.description = 'constant radius')) OR - (SIZEOF (QUERY (pd <* USEDIN (SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - NOT (SIZEOF (QUERY (impl_rep <* QUERY (pdr <* USEDIN (pd, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' - IN TYPEOF (pdr.used_representation)) | - NOT (SIZEOF (QUERY (it <* impl_rep.used_representation.items | - (SIZEOF - (['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * - TYPEOF (it)) = 2) AND (it.name = 'second offset'))) <= 1))) - = 0))) = 0); - WR6: SIZEOF (QUERY (pd <* USEDIN (SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - NOT (SIZEOF (QUERY (pdr <* USEDIN (pd, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FACE_SHAPE_REPRESENTATION' - IN TYPEOF (pdr.used_representation)) AND - (pdr.used_representation.name = 'fillet face'))) = 1))) = 0; - WR7: SIZEOF (QUERY (pd <* USEDIN (SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - NOT (SIZEOF (QUERY (pdr <* USEDIN (pd, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FACE_SHAPE_REPRESENTATION' - IN TYPEOF (pdr.used_representation)) AND - (pdr.used_representation.name = 'first face shape'))) = 1))) = 0; - WR8: SIZEOF (QUERY (pd <* USEDIN (SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - NOT (SIZEOF (QUERY (pdr <* USEDIN (pd, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FACE_SHAPE_REPRESENTATION' - IN TYPEOF (pdr.used_representation)) AND - (pdr.used_representation.name = 'second face shape'))) = 1))) = 0; -END_ENTITY; -(* USED FROM (aic_machining_feature); *) -ENTITY feature_pattern - SUBTYPE OF (replicate_feature); - WHERE - WR1: SIZEOF( QUERY( pd <* USEDIN( SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - SIZEOF( QUERY( pdr <* USEDIN( pd, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' - IN TYPEOF(pdr.used_representation)) AND - (SIZEOF( QUERY( srwp_i <* pdr.used_representation.items | - NOT ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PLACEMENT' - IN TYPEOF(srwp_i)) )) > 0 ) )) > 0 )) = 0; - WR2: SIZEOF (QUERY (pd <* USEDIN (SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - NOT (SIZEOF (QUERY (impl_rep <* QUERY (pdr <* USEDIN (pd, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' - IN TYPEOF (pdr.used_representation)) | - NOT (SIZEOF (QUERY (it <* impl_rep.used_representation.items | - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PLACEMENT' - IN TYPEOF (it)) AND (it.name = 'base feature placement'))) > 1))) - = 0))) = 0; -END_ENTITY; -- feature_pattern -(* USED FROM (aic_machining_feature); *) -ENTITY feature_component_definition - SUBTYPE OF (characterized_object); - WHERE - WR1: (SIZEOF(QUERY ( pd <* USEDIN(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(USEDIN(pd, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE')) = 1)) )) - = 0); -END_ENTITY; -- feature_component_definition -(* USED FROM (aic_machining_feature); *) -ENTITY face_shape_representation - SUBTYPE OF (shape_representation); - WHERE - WR1: (SIZEOF(SELF.items) >= 1); - WR2: (SIZEOF(QUERY ( it <* SELF.items | (NOT ( - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FACE_SURFACE' IN TYPEOF(it)) OR - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ORIENTED_FACE' IN TYPEOF(it)) )) - )) = 0); -END_ENTITY; -- face_shape_representation -(* USED FROM (kinematic_structure_schema); *) -ENTITY mechanism_representation - SUBTYPE OF (representation); - SELF\representation.context_of_items : geometric_representation_context; - SELF\representation.items : SET[1:?] OF pair_representation_relationship; - represented_topology : kinematic_topology_representation_select; -DERIVE - represented_joints : SET[1:?] OF kinematic_joint := collect_joints(items); -WHERE - WR1: (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.KINEMATIC_TOPOLOGY_STRUCTURE' IN TYPEOF(represented_topology)) - AND (represented_joints :=: represented_topology.items)) OR - (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.KINEMATIC_TOPOLOGY_DIRECTED_STRUCTURE' IN TYPEOF(represented_topology)) - AND (represented_joints :=: get_kinematic_joints_from_oriented_joints(represented_topology.items))) OR - (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.KINEMATIC_TOPOLOGY_NETWORK_STRUCTURE' IN TYPEOF(represented_topology)) - AND (represented_joints :=: get_kinematic_joints_from_kinematic_loops(represented_topology.items))); -END_ENTITY; -(* USED FROM (aic_machining_feature); *) -ENTITY externally_defined_feature_definition - SUBTYPE OF (feature_definition, externally_defined_item); - WHERE - WR1: (((SELF\characterized_object.description = 'thread') AND - (SELF\externally_defined_item.item_id='external thread') AND - (SELF\externally_defined_item.source.source_id= - 'external feature specification') ) OR - ((SELF\characterized_object.description = 'gear') AND - (SELF\externally_defined_item.item_id='external gear') AND - (SELF\externally_defined_item.source.source_id= - 'external feature specification')) OR - ((SELF\characterized_object.description = 'marking') AND - (SELF\externally_defined_item.item_id='external marking') AND - (SELF\externally_defined_item.source.source_id= - 'external feature specification')) OR - ((SELF\characterized_object.description = 'knurl') AND - (SELF\externally_defined_item.item_id='external knurl') AND - (SELF\externally_defined_item.source.source_id= - 'external feature specification'))); - WR2: ((NOT (SELF\characterized_object.description = 'thread')) OR - (SIZEOF( QUERY( pd <* USEDIN( SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - SIZEOF( QUERY( pdr <* USEDIN( pd, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' - IN TYPEOF(pdr.used_representation)) AND - ({5 <= SIZEOF(pdr.used_representation.items) <= 10} ) )) - = 1 )) = 1)); - WR3: ((NOT (SELF\characterized_object.description = 'marking')) OR - (SIZEOF( QUERY( pd <* USEDIN( SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - SIZEOF( QUERY( pdr <* USEDIN( pd, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' - IN TYPEOF(pdr.used_representation)) AND - (SIZEOF(pdr.used_representation.items) = 2) )) = 1 )) = 1)); - WR4: ((NOT (SELF\characterized_object.description = 'knurl')) OR - (SIZEOF( QUERY( pd <* USEDIN( SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - SIZEOF( QUERY( pdr <* USEDIN( pd, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' - IN TYPEOF(pdr.used_representation)) AND - (SIZEOF(pdr.used_representation.items) = 1) )) = 1 )) = 1)); - WR5: (NOT (SELF\characterized_object.description IN [ 'knurl', - 'thread'])) OR - (SIZEOF(QUERY ( pds <* QUERY ( pd <* USEDIN(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' - IN TYPEOF(pd)) ) | (NOT (SIZEOF(QUERY ( sa_occ <* USEDIN - (pds,'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE') | - ((sa_occ.description = 'partial area occurrence') AND - (SIZEOF(QUERY ( sdr <* QUERY ( sar <* USEDIN(sa_occ, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.' - + 'RELATED_SHAPE_ASPECT') | - ((sar.description = 'applied area usage') AND - (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_DEFINING_RELATIONSHIP') - IN TYPEOF(sar))) ) | - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.APPLIED_AREA' - IN TYPEOF(sdr.relating_shape_aspect)) )) = 1)) )) <= 1)) )) = 0); - - WR6: ((NOT (SELF\characterized_object.description = 'marking')) OR - (SIZEOF(QUERY ( pd <* USEDIN(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN - (pd,'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') - IN TYPEOF(pdr.used_representation)) ) | - (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | - (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.DESCRIPTIVE_REPRESENTATION_ITEM' - IN TYPEOF(it)) AND (it.name = 'marking text')) )) = 1)) )) - = 0)) )) = 0)); - WR7: ((NOT (SELF\characterized_object.description = 'thread')) OR - (SIZEOF(QUERY ( pd <* USEDIN(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN - (pd,'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') - IN TYPEOF(pdr.used_representation)) ) | - (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | - (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.DESCRIPTIVE_REPRESENTATION_ITEM' - IN TYPEOF(it)) AND (it.name = 'removal direction') AND - ((it.description = 'internal') OR - (it.description = 'external'))) )) = 1)) )) = 0)) )) = 0)); - WR8: ((NOT (SELF\characterized_object.description = 'thread')) OR - (SIZEOF(QUERY ( pd <* USEDIN(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN - (pd,'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') - IN TYPEOF(pdr.used_representation)) ) | - (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | - (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.DESCRIPTIVE_REPRESENTATION_ITEM' - IN TYPEOF(it)) AND (it.name = 'qualifier')) ))<= 1)) ))= 0)) )) - = 0)); - WR9: ((NOT (SELF\characterized_object.description = 'thread')) OR - (SIZEOF(QUERY ( pd <* USEDIN(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN - (pd,'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') - IN TYPEOF(pdr.used_representation)) ) | - (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | - (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.DESCRIPTIVE_REPRESENTATION_ITEM' - IN TYPEOF(it)) AND (it.name = 'hand')) )) = 1)) )) = 0)) )) - = 0)); - WR10: ((NOT (SELF\characterized_object.description = 'thread')) OR - (SIZEOF(QUERY ( pd <* USEDIN(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN - (pd,'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') - IN TYPEOF(pdr.used_representation)) ) | - (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | - (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.DESCRIPTIVE_REPRESENTATION_ITEM' - IN TYPEOF(it)) AND (it.name = 'fit class')) )) = 1)) )) = - 0)) )) = 0)); - WR11: ((NOT (SELF\characterized_object.description = 'thread')) OR - (SIZEOF(QUERY ( pd <* USEDIN(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN - (pd,'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') - IN TYPEOF(pdr.used_representation)) ) | - (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | - (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.DESCRIPTIVE_REPRESENTATION_ITEM' - IN TYPEOF(it)) AND (it.name = 'form')) )) = 1)) )) = 0)) )) - = 0)); - WR12: ((NOT (SELF\characterized_object.description = 'thread')) OR - (SIZEOF(QUERY ( pd <* USEDIN(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN - (pd,'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') - IN TYPEOF(pdr.used_representation)) ) | - (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | - ((SIZEOF([ - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * - TYPEOF(it)) = 2) AND (it.name = 'major diameter')) )) <= 1)) )) - = 0)) )) = 0)); - WR13: ((NOT (SELF\characterized_object.description = 'thread')) OR - (SIZEOF(QUERY ( pd <* USEDIN(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN - (pd,'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') - IN TYPEOF(pdr.used_representation)) ) | - (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | - ((SIZEOF([ - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.RATIO_MEASURE_WITH_UNIT'] * - TYPEOF(it)) = 2) AND (it.name = 'number of threads')) )) = 1)) )) - = 0)) )) = 0)); - WR14 : (SIZEOF(QUERY ( pd <* USEDIN(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') - IN TYPEOF(pdr.used_representation)) ) | - (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | - (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.DESCRIPTIVE_REPRESENTATION_ITEM' - IN TYPEOF(it)) AND (it.name = 'fit class 2')) )) <= 1)) )) = 0)) )) - = 0); - - WR15 : (SIZEOF(QUERY ( pd <* USEDIN(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') - IN TYPEOF(pdr.used_representation)) ) | - (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | - ((SIZEOF([ - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] - * TYPEOF(it)) = 2) AND (it.name = 'nominal size')) )) - <= 1)) )) = 0)) )) = 0); - - WR16: (NOT (SELF\characterized_object.description IN [ 'knurl', - 'gear', 'thread'])) OR - (SIZEOF(QUERY ( pds <* QUERY ( pd <* USEDIN(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' - IN TYPEOF(pd)) ) | (NOT (SIZEOF(QUERY ( sa_occ <* USEDIN - (pds,'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE') | - ((SIZEOF(QUERY ( sdr <* QUERY ( sar <* USEDIN(sa_occ, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.' - + 'RELATED_SHAPE_ASPECT') | - ((sar.description = 'applied shape') AND - (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_DEFINING_RELATIONSHIP') - IN TYPEOF(sar))) ) | - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT' - IN TYPEOF(sdr.relating_shape_aspect)) )) = 1)) )) <= 1)) )) = 0); - WR17: ((NOT (SELF\characterized_object.description - IN ['gear'])) OR - (SIZEOF( QUERY( pd <* USEDIN( SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - SIZEOF( QUERY( pdr <* USEDIN( pd, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' - IN TYPEOF(pdr.used_representation)) AND - (10 <= SIZEOF(pdr.used_representation.items)) AND - (SIZEOF(pdr.used_representation.items) >= 11) - )) = 1 )) = 1)); - - WR18: ((NOT (SELF\characterized_object.description - IN ['gear'])) OR - (SIZEOF(QUERY ( pd <* USEDIN(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN - (pd,'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') - IN TYPEOF(pdr.used_representation)) ) | - (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | - ((SIZEOF([ - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.RATIO_MEASURE_WITH_UNIT'] * - TYPEOF(it)) = 2) AND (it.name = 'number of teeth')) )) = 1)) )) - = 0)) )) = 0)); - - WR19: ((NOT (SELF\characterized_object.description - IN ['gear'])) OR - (SIZEOF(QUERY ( pd <* USEDIN(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN - (pd,'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') - IN TYPEOF(pdr.used_representation)) ) | - (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | - ((SIZEOF([ - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PLANE_ANGLE_MEASURE_WITH_UNIT'] * - TYPEOF(it)) = 2) AND (it.name = 'reference pressure angle')) )) = 1)) )) - = 0)) )) = 0)); - - WR20: ((NOT (SELF\characterized_object.description - IN ['gear'])) OR - (SIZEOF(QUERY ( pd <* USEDIN(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN - (pd,'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') - IN TYPEOF(pdr.used_representation)) ) | - (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | - ((SIZEOF([ - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * - TYPEOF(it)) = 2) AND (it.name = 'rake shift factor')) )) = 1)) )) - = 0)) )) = 0)); - - WR21: ((NOT (SELF\characterized_object.description - IN ['gear'])) OR - (SIZEOF(QUERY ( pd <* USEDIN(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN - (pd,'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') - IN TYPEOF(pdr.used_representation)) ) | - (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | - ((SIZEOF([ - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * - TYPEOF(it)) = 2) AND (it.name = 'nominal tooth depth')) )) = 1)) )) - = 0)) )) = 0)); - - WR22: ((NOT (SELF\characterized_object.description - IN ['gear'])) OR - (SIZEOF(QUERY ( pd <* USEDIN(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN - (pd,'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') - IN TYPEOF(pdr.used_representation)) ) | - (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | - ((SIZEOF([ - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * - TYPEOF(it)) = 2) AND (it.name = 'face width')) )) = 1)) )) - = 0)) )) = 0)); - - WR23: ((NOT (SELF\characterized_object.description - IN ['gear'])) OR - (SIZEOF(QUERY ( pd <* USEDIN(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN - (pd,'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') - IN TYPEOF(pdr.used_representation)) ) | - (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | - ((SIZEOF([ - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * - TYPEOF(it)) = 2) AND (it.name = 'tip diameter')) )) = 1)) )) - = 0)) )) = 0)); - - WR24: ((NOT (SELF\characterized_object.description - IN ['gear'])) OR - (SIZEOF(QUERY ( pd <* USEDIN(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN - (pd,'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') - IN TYPEOF(pdr.used_representation)) ) | - (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | - (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.DESCRIPTIVE_REPRESENTATION_ITEM' - IN TYPEOF(it)) AND (it.name = 'module or diametral pitch') AND - ((it.description = 'module') OR - (it.description = 'diametral pitch'))) )) = 1)) )) = 0)) )) = 0)); - - WR25: ((NOT (SELF\characterized_object.description - IN ['gear'])) OR - (SIZEOF(QUERY ( pd <* USEDIN(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN - (pd,'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') - IN TYPEOF(pdr.used_representation)) ) | - (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | - ((SIZEOF([ - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * - TYPEOF(it)) = 2) AND (it.name = 'normal attribute')) )) = 1)) )) - = 0)) )) = 0)); - - WR26: ((NOT (SELF\characterized_object.description - IN ['gear'])) OR - (SIZEOF(QUERY ( pd <* USEDIN(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN - (pd,'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') - IN TYPEOF(pdr.used_representation)) ) | - (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | - (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.DESCRIPTIVE_REPRESENTATION_ITEM' - IN TYPEOF(it)) AND (it.name = 'internal or external gear') AND - ((it.description = 'internal') OR - (it.description = 'external'))) )) = 1)) )) = 0)) )) = 0)); - - WR27: ((NOT (SELF\characterized_object.description - IN ['gear'])) OR - (SIZEOF(QUERY ( pd <* USEDIN(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN - (pd,'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') - IN TYPEOF(pdr.used_representation)) ) | - (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | - ((SIZEOF([ - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PLANE_ANGLE_MEASURE_WITH_UNIT'] * - TYPEOF(it)) = 2) AND (it.name = 'root fillet radius')) )) <= 1)) )) - = 0)) )) = 0)); - -END_ENTITY; -- externally_defined_feature_definition -(* USED FROM (aic_machining_feature); *) -ENTITY edge_round - SUBTYPE OF (transition_feature); -WHERE - WR1: (NOT (SELF\shape_aspect.description = 'constant radius')) OR - (SIZEOF (QUERY (pd <* USEDIN (SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - NOT (SIZEOF (QUERY (pdr <* USEDIN (pd, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' - IN TYPEOF (pdr.used_representation))) = 1))) = 0); - WR2: (NOT (SELF\shape_aspect.description = 'constant radius')) OR - (SIZEOF (QUERY (pd <* USEDIN (SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - NOT (SIZEOF (QUERY (impl_rep <* QUERY (pdr <* USEDIN (pd, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' - IN TYPEOF (pdr.used_representation)) | - (NOT (SIZEOF (impl_rep.used_representation.items) >= 1) - AND (SIZEOF (impl_rep.used_representation.items) <= 3)))) - = 0))) = 0); - WR3: (NOT (SELF.description = 'constant radius')) OR - (SIZEOF (QUERY (pd <* USEDIN (SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - NOT (SIZEOF (QUERY (impl_rep <* QUERY (pdr <* USEDIN (pd, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' - IN TYPEOF (pdr.used_representation)) | - NOT (SIZEOF (QUERY (it <* impl_rep.used_representation.items | - (SIZEOF - (['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * - TYPEOF (it)) = 2) AND (it.name = 'radius'))) = 1))) = 0))) = 0); - WR4: (NOT (SELF.description = 'constant radius')) OR - (SIZEOF (QUERY (pd <* USEDIN (SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - NOT (SIZEOF (QUERY (impl_rep <* QUERY (pdr <* USEDIN (pd, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' - IN TYPEOF (pdr.used_representation)) | - NOT (SIZEOF (QUERY (it <* impl_rep.used_representation.items | - (SIZEOF - (['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * - TYPEOF (it)) = 2) AND (it.name = 'first offset'))) <= 1))) - = 0))) = 0); - WR5: (NOT (SELF.description = 'constant radius')) OR - (SIZEOF (QUERY (pd <* USEDIN (SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - NOT (SIZEOF (QUERY (impl_rep <* QUERY (pdr <* USEDIN (pd, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' - IN TYPEOF (pdr.used_representation)) | - NOT (SIZEOF (QUERY (it <* impl_rep.used_representation.items | - (SIZEOF - (['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * - TYPEOF (it)) = 2) AND (it.name = 'second offset'))) <= 1))) - = 0))) = 0); - WR6: SIZEOF (QUERY (pd <* USEDIN (SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - NOT (SIZEOF (QUERY (pdr <* USEDIN (pd, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FACE_SHAPE_REPRESENTATION' - IN TYPEOF (pdr.used_representation)) AND - (pdr.used_representation.name = 'edge round face'))) <= 1))) = 0; - WR7: SIZEOF (QUERY (pd <* USEDIN (SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - NOT (SIZEOF (QUERY (pdr <* USEDIN (pd, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FACE_SHAPE_REPRESENTATION' - IN TYPEOF (pdr.used_representation)) AND - (pdr.used_representation.name = 'first face shape'))) <= 1))) = 0; - WR8: SIZEOF (QUERY (pd <* USEDIN (SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - NOT (SIZEOF (QUERY (pdr <* USEDIN (pd, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FACE_SHAPE_REPRESENTATION' - IN TYPEOF (pdr.used_representation)) AND - (pdr.used_representation.name = 'second face shape'))) <= 1))) = 0; -END_ENTITY; -- edge_round -(* USED FROM (aic_machining_feature); *) -ENTITY direction_shape_representation - SUBTYPE OF (shape_representation); - WHERE - WR1: (SIZEOF(SELF.items) = 1); - WR2: (SIZEOF(QUERY ( it <* SELF.items | - (NOT ( - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.DIRECTION' IN TYPEOF(it))) )) - = 0); -END_ENTITY; -- direction_shape_representation -(* USED FROM (aic_machining_feature); *) -ENTITY compound_feature - SUBTYPE OF (feature_definition); - WHERE - WR1: SIZEOF( QUERY( pds <* USEDIN( SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' - IN TYPEOF(pds)) AND - (SIZEOF( QUERY( csa <* USEDIN( pds, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE') | - ((csa.name='compound feature in solid') AND - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.COMPOSITE_SHAPE_ASPECT' - IN TYPEOF(csa))) )) = 1) )) = 1; - WR2: SIZEOF( QUERY( pds <* USEDIN( SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' - IN TYPEOF(pds)) AND - (SIZEOF( QUERY( csa <* USEDIN( pds, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE') | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.COMPOSITE_SHAPE_ASPECT' - IN TYPEOF(csa) )) = 1) )) = 1; - WR3: (SIZEOF(QUERY ( pds <* USEDIN(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' - IN TYPEOF(pds)) AND (SIZEOF(QUERY ( csa <* USEDIN(pds, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE') | - (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.COMPOSITE_SHAPE_ASPECT' - IN TYPEOF(csa)) AND - (SIZEOF(QUERY ( fcr <* csa.component_relationships | - (NOT ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP' - IN TYPEOF(fcr))) )) = 0)) )) = 1)) )) = 1); - WR4: SIZEOF (QUERY (pds <* USEDIN (SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION')| - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' - IN TYPEOF (pds)) AND - (SIZEOF (QUERY (csa <* USEDIN (pds, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE')| - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.COMPOSITE_SHAPE_ASPECT' - IN TYPEOF (csa)) )) = 1) )) = 1; - WR5: (SIZEOF(QUERY ( pds <* USEDIN(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' - IN TYPEOF(pds)) AND - (SIZEOF(QUERY ( csa <* USEDIN(pds, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE') | - (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.COMPOSITE_SHAPE_ASPECT' - IN TYPEOF(csa)) AND - (SIZEOF(QUERY ( sar <* csa.component_relationships | - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.THREAD' - IN TYPEOF(sar.related_shape_aspect)) )) = 0) - ) )) = 1)) )) = 1); - WR6: (SIZEOF (QUERY (pds <* USEDIN (SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION')| - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' - IN TYPEOF (pds)) AND (SIZEOF (QUERY (csa <* USEDIN (pds, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE')| - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.COMPOSITE_SHAPE_ASPECT' - IN TYPEOF (csa)) AND - (SIZEOF (QUERY (sar <* csa.component_relationships | - (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.COMPOUND_FEATURE' - IN TYPEOF (sar.related_shape_aspect)) AND - (sar.related_shape_aspect\characterized_object.name <> - SELF\characterized_object.name)) )) = 0) )) = 1) )) = 1); -END_ENTITY; -- compound_feature -(* USED FROM (aic_machining_feature); *) -ENTITY chamfer - SUBTYPE OF (transition_feature); - WHERE - WR1: (SIZEOF(QUERY ( pd <* USEDIN(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(QUERY ( pdr <* USEDIN(pd, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FACE_SHAPE_REPRESENTATION' - IN TYPEOF(pdr.used_representation)) AND - (pdr.used_representation.name = 'chamfer face')) )) <= 1)) )) = 0); - WR2: (SIZEOF(QUERY ( fcr <* QUERY ( sar <* USEDIN(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATING_SHAPE_ASPECT') | - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP' - IN TYPEOF(sar)) ) | - (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CHAMFER_OFFSET' - IN TYPEOF(fcr.related_shape_aspect))AND - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CHAMFER' - IN TYPEOF(fcr.relating_shape_aspect)) AND - (fcr.related_shape_aspect.description = 'first offset') ) - )) = 1); - WR3: (SIZEOF(QUERY ( fcr <* QUERY ( sar <* USEDIN(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATING_SHAPE_ASPECT') | - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP' - IN TYPEOF(sar)) ) | - (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CHAMFER_OFFSET' - IN TYPEOF(fcr.related_shape_aspect)) AND - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CHAMFER' - IN TYPEOF(fcr.relating_shape_aspect))AND - (fcr.related_shape_aspect.description = 'second offset')) - )) = 1); -END_ENTITY; -- chamfer -(* USED FROM (aic_machining_feature); *) -ENTITY circular_closed_profile - SUBTYPE OF (shape_aspect); - WHERE - WR1: ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FEATURE_COMPONENT_DEFINITION' - IN TYPEOF(SELF.of_shape.definition)); - WR2: (SIZEOF(QUERY ( pd <* USEDIN(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(QUERY ( pdr <* USEDIN(pd, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') - IN TYPEOF(pdr.used_representation)) )) = 1)) )) = 0); - WR3: (SIZEOF(QUERY ( pd <* USEDIN(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (( - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') - IN TYPEOF(pdr.used_representation)) ) | - (NOT (SIZEOF(impl_rep.used_representation.items) = 2)) )) - = 0)) )) = 0); - WR4: (SIZEOF(QUERY ( pd <* USEDIN(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') - IN TYPEOF(pdr.used_representation)) ) | - NOT(SIZEOF(QUERY ( it <* impl_rep.used_representation.items | - (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PLACEMENT' - IN TYPEOF(it)) - AND (it.name = 'orientation')) )) = 1) )) = 0)) )) = 0); - WR5: (SIZEOF(QUERY ( pd <* USEDIN(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') - IN TYPEOF(pdr.used_representation)) ) | - (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | - ((SIZEOF([ - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * - TYPEOF(it)) = 2) AND (it.name = 'diameter')) )) = 1)) )) - = 0)) )) = 0); -END_ENTITY; -- circular_closed_profile -(* USED FROM (Person_organization_mim); *) -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], 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PERSON_AND_ORGANIZATION.THE_PERSON') | pao.the_organization :=: SELF\organizational_address.organizations[1])) = 1; -END_ENTITY; -(* USED FROM (kinematic_structure_schema); *) -ENTITY high_order_kinematic_pair - ABSTRACT SUPERTYPE OF (ONEOF ( - LINEAR_FLEXIBLE_AND_PLANAR_CURVE_PAIR, - POINT_ON_SURFACE_PAIR, - POINT_ON_PLANAR_CURVE_PAIR, - PLANAR_CURVE_PAIR, - SURFACE_PAIR)) - SUBTYPE OF (kinematic_pair); -WHERE - WR1: SIZEOF( QUERY(lr <* SELF\kinematic_pair.associated_link_representations_2 | - NOT('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.RIGID_LINK_REPRESENTATION' IN TYPEOF(lr)))) = 0; -END_ENTITY; -(* USED FROM (kinematic_structure_schema); *) -ENTITY low_order_kinematic_pair_with_motion_coupling - ABSTRACT SUPERTYPE OF (ONEOF ( - GEAR_PAIR, - LINEAR_FLEXIBLE_AND_PINION_PAIR, - RACK_AND_PINION_PAIR, - SCREW_PAIR)) - SUBTYPE OF (kinematic_pair); -WHERE - WR1: SIZEOF( QUERY(lr <* SELF\kinematic_pair.associated_link_representations_2 | - NOT('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.RIGID_LINK_REPRESENTATION' IN TYPEOF(lr)))) = 0; -END_ENTITY; -(* USED FROM (kinematic_structure_schema); *) -ENTITY low_order_kinematic_pair - SUPERTYPE OF (ONEOF ( - REVOLUTE_PAIR, - CYLINDRICAL_PAIR, - SPHERICAL_PAIR, - SPHERICAL_PAIR_WITH_PIN, - PLANAR_PAIR, - UNCONSTRAINED_PAIR, - FULLY_CONSTRAINED_PAIR, - PRISMATIC_PAIR, - UNIVERSAL_PAIR, - LOW_ORDER_KINEMATIC_PAIR_WITH_RANGE)) - SUBTYPE OF (kinematic_pair); - t_x : BOOLEAN; - t_y : BOOLEAN; - t_z : BOOLEAN; - r_x : BOOLEAN; - r_y : BOOLEAN; - r_z : BOOLEAN; -WHERE - WR1: SIZEOF( QUERY(lr <* SELF\kinematic_pair.associated_link_representations_1 | - NOT('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.RIGID_LINK_REPRESENTATION' IN TYPEOF(lr)))) = 0; - WR2: SIZEOF( QUERY(lr <* SELF\kinematic_pair.associated_link_representations_2 | - NOT('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.RIGID_LINK_REPRESENTATION' IN TYPEOF(lr)))) = 0; -END_ENTITY; -(* USED FROM (Process_plan_mim); *) -ENTITY product_process_plan - SUBTYPE OF (product_definition_process); -WHERE - WR1: SIZEOF( QUERY( ar <* USEDIN(SELF,'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + - 'ACTION_RELATIONSHIP.RELATED_ACTION') | - SIZEOF(['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROCESS_PLAN', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRODUCT_PROCESS_PLAN'] * - TYPEOF(ar.relating_action) - ) <> 1 - )) = 0; - - WR2: SIZEOF( QUERY( ar <* USEDIN(SELF,'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + - 'ACTION_RELATIONSHIP.RELATING_ACTION') | - (SIZEOF(['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROCESS_PLAN', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRODUCT_PROCESS_PLAN'] * - TYPEOF(ar.related_action)) = 1) OR - ((ar.name = 'process operation occurrence') AND - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROCESS_OPERATION' IN - TYPEOF(ar.related_action.chosen_method))) - )) = - SIZEOF(USEDIN(SELF,'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + - 'ACTION_RELATIONSHIP.RELATING_ACTION')); - WR3: SIZEOF( QUERY( ppa <* USEDIN(SELF,'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + - 'PROCESS_PRODUCT_ASSOCIATION.PROCESS') | - (ppa.name <> 'produced output') OR - NOT('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRODUCT_DEFINITION' IN - TYPEOF(ppa.defined_product)) - )) = 0; - -END_ENTITY; -(* USED FROM (Process_plan_mim); *) -ENTITY process_plan - SUBTYPE OF (action); -WHERE - WR1: SIZEOF( QUERY( ar <* USEDIN(SELF,'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + - 'ACTION_RELATIONSHIP.RELATED_ACTION') | - SIZEOF(['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROCESS_PLAN', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRODUCT_PROCESS_PLAN'] * - TYPEOF(ar.relating_action)) <> 1 - )) = 0; - - WR2: SIZEOF( QUERY( ar <* USEDIN(SELF,'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + - 'ACTION_RELATIONSHIP.RELATING_ACTION') | - (SIZEOF(['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROCESS_PLAN', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRODUCT_PROCESS_PLAN'] * - TYPEOF(ar.related_action)) = 1) OR - ((ar.name = 'process operation occurrence') AND - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROCESS_OPERATION' IN - TYPEOF(ar.related_action.chosen_method))) - )) = - SIZEOF(USEDIN(SELF,'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + - 'ACTION_RELATIONSHIP.RELATING_ACTION')); -END_ENTITY; -(* USED FROM (aic_manifold_subsurface); *) - ENTITY manifold_subsurface_shape_representation - SUBTYPE OF (shape_representation); - WHERE - WR1: SIZEOF (QUERY (it <* SELF.items | - NOT (SIZEOF (['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CONNECTED_FACE_SUB_SET', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MAPPED_ITEM', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.AXIS2_PLACEMENT_3D'] * - TYPEOF(it)) = 1))) = 0; - WR2: SIZEOF (QUERY (it <* SELF.items | - SIZEOF(['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CONNECTED_FACE_SUB_SET', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MAPPED_ITEM'] * TYPEOF(it)) =1 )) > 0; - WR3: SIZEOF (QUERY (mi <* QUERY (it <* items | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MAPPED_ITEM' IN TYPEOF(it)) | - NOT ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MANIFOLD_SUBSURFACE_SHAPE_REPRESENTATION' IN - TYPEOF(mi\mapped_item.mapping_source. - mapped_representation)))) = 0; - WR4: SIZEOF (QUERY (cfss <* QUERY (it <* SELF.items | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CONNECTED_FACE_SUB_SET' IN TYPEOF(it)) | - NOT('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.OPEN_SHELL' IN TYPEOF(cfss)))) = 0; - WR5: SIZEOF (QUERY (cfss <* QUERY (it <* SELF.items | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CONNECTED_FACE_SUB_SET' IN TYPEOF(it)) | - NOT( (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ADVANCED_FACE' IN TYPEOF(fac)))) = 0) - ))) = 0; - WR6: SIZEOF (QUERY (cfss <* QUERY (it <* SELF.items | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CONNECTED_FACE_SUB_SET' IN TYPEOF(it)) | - NOT (SIZEOF (QUERY(fcs <* cfss\connected_face_set.cfs_faces | - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SUBFACE' IN TYPEOF(fcs)) AND - NOT (SIZEOF(QUERY (elp_fbnds <* QUERY (bnds <* fcs.bounds | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.EDGE_LOOP' IN TYPEOF(bnds.bound)) | - NOT (SIZEOF (QUERY (oe <* elp_fbnds.bound\path.edge_list | - NOT(('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.EDGE_CURVE' IN - TYPEOF(oe.edge_element)) OR - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SUBEDGE' IN - TYPEOF(oe.edge_element)) ))) = 0 - ))) = 0 - ))) = 0 - ))) = 0; - WR8: SIZEOF (QUERY (cfss <* QUERY (it <* SELF.items | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CONNECTED_FACE_SUB_SET' IN TYPEOF(it)) | - NOT (SIZEOF (QUERY(fcs <* cfss\connected_face_set.cfs_faces | - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SUBFACE' IN TYPEOF(fcs)) AND - NOT (SIZEOF(QUERY (elp_fbnds <* QUERY (bnds <* fcs.bounds | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.EDGE_LOOP' IN TYPEOF(bnds.bound)) | - NOT (SIZEOF (QUERY (oe <* elp_fbnds.bound\path.edge_list | - NOT(('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.VERTEX_POINT' IN TYPEOF(oe.edge_start)) - AND ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.VERTEX_POINT' IN - TYPEOF(oe.edge_end)) - ))) = 0 - ))) = 0 - ))) = 0 - ))) = 0; - WR9: SIZEOF (QUERY (cfss <* QUERY (it <* SELF.items | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CONNECTED_FACE_SUB_SET' IN TYPEOF(it)) | - NOT (SIZEOF (QUERY(fcs <* cfss\connected_face_set.cfs_faces | - ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SUBFACE' IN TYPEOF(fcs)) AND - ( NOT (SIZEOF(QUERY (bnds <* fcs.bounds | - NOT (SIZEOF (['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.EDGE_LOOP', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.VERTEX_LOOP'] * - TYPEOF(bnds.bound)) = 1 ) - )) = 0) - ))) = 0 - ))) = 0; - WR10: SIZEOF (QUERY (cfss <* QUERY (it <* SELF.items | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CONNECTED_FACE_SUB_SET' IN TYPEOF(it)) | - NOT (SIZEOF (QUERY(fcs <* cfss\connected_face_set.cfs_faces | - ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SUBFACE' IN TYPEOF(fcs)) AND - ( NOT (SIZEOF(QUERY (elp_fbnds <* QUERY (bnds <* fcs.bounds | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.EDGE_LOOP' IN TYPEOF(bnds.bound)) | - NOT (SIZEOF (QUERY (oe <* elp_fbnds.bound\path.edge_list | - NOT (SIZEOF (['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LINE', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CONIC', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.POLYLINE', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SURFACE_CURVE', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CONNECTED_FACE_SUB_SET' IN TYPEOF(it)) | - NOT (SIZEOF (QUERY(fcs <* cfss\connected_face_set.cfs_faces | - ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SUBFACE' IN TYPEOF(fcs)) AND - (NOT (SIZEOF(QUERY (elp_fbnds <* QUERY (bnds <* fcs.bounds | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.EDGE_LOOP' IN TYPEOF(bnds.bound)) | - NOT (SIZEOF (QUERY (oe <* elp_fbnds.bound\path.edge_list | - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PCURVE' IN - TYPEOF(sc_ag)))) = 0))) - )) = 0 - ))) = 0 - )))) = 0 - ))) = 0; - WR12: SIZEOF (QUERY (cfss <* QUERY (it <* SELF.items | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CONNECTED_FACE_SUB_SET' IN TYPEOF(it)) | - NOT (SIZEOF (QUERY(fcs <* cfss\connected_face_set.cfs_faces | - ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SUBFACE' IN TYPEOF(fcs)) AND - (NOT (SIZEOF(QUERY (elp_fbnds <* QUERY (bnds <* fcs.bounds | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.EDGE_LOOP' IN TYPEOF(bnds.bound)) | - NOT (SIZEOF (QUERY (oe <* elp_fbnds.bound\path.edge_list | - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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; -(* USED FROM (explicit_constraint_schema); *) -ENTITY free_form_relation - SUBTYPE OF (free_form_constraint); -WHERE - WR1: 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.BOOLEAN_EXPRESSION' IN TYPEOF - (SELF\free_form_constraint.constraining_expression); - WR2: SIZEOF(QUERY(q <* (SELF\free_form_constraint.constrained_elements + - SELF\free_form_constraint.reference_elements) | - NOT (q IN used_variables - (SELF\free_form_constraint.constraining_expression)))) = 0; -END_ENTITY; -(* USED FROM (explicit_constraint_schema); *) -ENTITY free_form_assignment - SUBTYPE OF (free_form_constraint); -WHERE - WR1: SIZEOF(QUERY(q <* SELF\free_form_constraint.constrained_elements | - q IN used_variables - (SELF\free_form_constraint.constraining_expression))) = 0; - WR2: SIZEOF(QUERY(q <* SELF\free_form_constraint.reference_elements | - NOT (q IN used_variables( - SELF\free_form_constraint.constraining_expression)))) = 0; - WR3: SIZEOF(SELF\free_form_constraint.reference_elements) >= 1; - WR4: SIZEOF(QUERY(q <* SELF\free_form_constraint.constrained_elements | - NOT (compatible_spaces(values_space_of( - SELF\free_form_constraint.constraining_expression), - q\maths_variable.values_space)))) = 0; -END_ENTITY; -(* USED FROM (Externally_conditioned_data_quality_criteria_mim); *) - ENTITY externally_conditioned_data_quality_criteria_representation - SUBTYPE OF(Data_quality_criteria_representation); - WHERE - WR1 : SIZEOF( QUERY( q <* SELF\representation.items| - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + - 'EXTERNALLY_CONDITIONED_DATA_QUALITY_CRITERION' IN TYPEOF(q))) > 0; - END_ENTITY; -(* USED FROM (kinematic_structure_schema); *) -ENTITY screw_pair - SUBTYPE OF (low_order_kinematic_pair_with_motion_coupling); - pitch : length_measure; -WHERE - WR1: SIZEOF( QUERY(lr <* SELF\kinematic_pair.associated_link_representations_1 | - NOT('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.RIGID_LINK_REPRESENTATION' IN TYPEOF(lr)))) = 0; -END_ENTITY; -(* USED FROM (mathematical_functions_schema); *) -ENTITY maths_real_variable - SUBTYPE OF (maths_variable, real_numeric_variable); -WHERE - WR1: subspace_of_es(SELF\maths_variable.values_space,es_reals); -END_ENTITY; -(* USED FROM (mathematical_functions_schema); *) -ENTITY maths_variable - SUBTYPE OF (generic_variable); - values_space : maths_space; - name : label; -WHERE - WR1: expression_is_constant(values_space); -END_ENTITY; -(* USED FROM (measure_schema); *) - 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; -(* USED FROM (qualified_measure_schema); *) -ENTITY measure_qualification; - name : label; - description : text; - qualified_measure : measure_with_unit; - qualifiers : SET [1:?] OF value_qualifier; -WHERE - WR1: SIZEOF(QUERY(temp <* qualifiers | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRECISION_QUALIFIER' - IN TYPEOF(temp))) < 2; - WR2: NOT ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.REPRESENTATION_ITEM' - IN TYPEOF(SELF\measure_qualification.qualified_measure)); -END_ENTITY; -(* USED FROM (product_data_quality_inspection_result_schema); *) - ENTITY data_quality_inspection_instance_report_item - SUBTYPE OF(representation_item); - inspected_elements : SET [1:?] OF inspected_element_select; - WHERE - WR1 : SIZEOF(QUERY(q <* bag_to_set( USEDIN(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.REPRESENTATION.ITEMS')) - |'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.'+ - 'DATA_QUALITY_CRITERIA_REPRESENTATION' - IN TYPEOF(q)))=0; - END_ENTITY; -(* USED FROM (product_data_quality_inspection_result_schema); *) - ENTITY data_quality_inspection_criterion_report_item - SUBTYPE OF(representation_item); - statistical_value : INTEGER; - value_type : statistical_value_type; - WHERE - WR1 : SIZEOF(QUERY(q <* bag_to_set( USEDIN(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.REPRESENTATION.ITEMS')) - |'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.'+ - 'DATA_QUALITY_CRITERIA_REPRESENTATION' - IN TYPEOF(q)))=0; - END_ENTITY; -(* USED FROM (product_data_quality_inspection_result_schema); *) - ENTITY data_quality_inspection_instance_report - SUBTYPE OF(data_quality_inspection_report); - inspected_instances : LIST [1:?] OF data_quality_inspection_instance_report_item; - WHERE - WR1 : SIZEOF(QUERY(i1<*bag_to_set(USEDIN( - SELF\data_quality_inspection_report. - inspection_result.criterion_inspected, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.'+ - 'DATA_QUALITY_REPORT_REQUEST.CRITERION_OF_REPORT_REQUEST'))| - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.'+ - 'DETAILED_REPORT_REQUEST' - IN TYPEOF(i1)))>0; - END_ENTITY; -(* USED FROM (kinematic_structure_schema); *) -ENTITY universal_pair - SUBTYPE OF (low_order_kinematic_pair); - input_skew_angle : OPTIONAL plane_angle_measure; -DERIVE - SELF\low_order_kinematic_pair.t_x : BOOLEAN := FALSE; - SELF\low_order_kinematic_pair.t_y : BOOLEAN := FALSE; - SELF\low_order_kinematic_pair.t_z : BOOLEAN := FALSE; - SELF\low_order_kinematic_pair.r_x : BOOLEAN := TRUE; - SELF\low_order_kinematic_pair.r_y : BOOLEAN := FALSE; - SELF\low_order_kinematic_pair.r_z : BOOLEAN := TRUE; - skew_angle : plane_angle_measure := NVL (input_skew_angle, 0.0); -WHERE - WR1: COS (plane_angle_for_pair_in_radian (SELF, skew_angle)) - > 0.0; -END_ENTITY; -(* USED FROM (product_data_quality_inspection_result_schema); *) - ENTITY data_quality_inspection_result - SUBTYPE OF(representation_item); - criterion_inspected : data_quality_criterion; - WHERE - WR1 : SIZEOF(QUERY(q <* bag_to_set( USEDIN(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.REPRESENTATION.ITEMS')) - |'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.'+ - 'DATA_QUALITY_CRITERIA_REPRESENTATION' - IN TYPEOF(q)))=0; - END_ENTITY; -(* USED FROM (product_data_quality_inspection_result_schema); *) - ENTITY data_quality_inspection_criterion_report - SUBTYPE OF(data_quality_inspection_report); - statistical_values : SET [1:2] OF data_quality_inspection_criterion_report_item; - WHERE - WR1 : SIZEOF(QUERY(i1<*bag_to_set(USEDIN( - SELF\data_quality_inspection_report. - inspection_result.criterion_inspected, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.'+ - 'DATA_QUALITY_REPORT_REQUEST.CRITERION_OF_REPORT_REQUEST'))| - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.'+ - 'SUMMARY_REPORT_REQUEST' - IN TYPEOF(i1)))>0; - WR2 : (SIZEOF(SELF.statistical_values) = 1 ) OR - (SELF.statistical_values[1].value_type <> - SELF.statistical_values[2].value_type); - END_ENTITY; -(* USED FROM (product_data_quality_inspection_result_schema); *) - ENTITY data_quality_inspection_report - SUPERTYPE OF (ONEOF ( - DATA_QUALITY_INSPECTION_CRITERION_REPORT, - DATA_QUALITY_INSPECTION_INSTANCE_REPORT)) - SUBTYPE OF(representation_item); - inspection_result : data_quality_inspection_result; - WHERE - WR1 : SIZEOF(QUERY(q <* bag_to_set( USEDIN(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.REPRESENTATION.ITEMS')) - |'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.'+ - 'DATA_QUALITY_CRITERIA_REPRESENTATION' - IN TYPEOF(q)))=0; - END_ENTITY; -(* USED FROM (product_data_quality_criteria_schema); *) - ENTITY data_quality_criterion - SUBTYPE OF(representation_item); - WHERE - WR1 : SIZEOF(QUERY(q <* - bag_to_set( USEDIN(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.REPRESENTATION.ITEMS')) - |'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.'+ - 'DATA_QUALITY_INSPECTION_RESULT_REPRESENTATION' - IN TYPEOF(q)))=0; - END_ENTITY; -(* USED FROM (geometry_schema); *) -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; -(* USED FROM (product_data_quality_criteria_schema); *) - ENTITY data_quality_criteria_representation - SUBTYPE OF(representation); - WHERE - WR1 : SIZEOF( QUERY( q <* SELF\representation.items| - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + - 'DATA_QUALITY_CRITERION' IN TYPEOF(q))) > 0; - END_ENTITY; -(* USED FROM (kinematic_structure_schema); *) -ENTITY point_on_surface_pair - SUBTYPE OF (high_order_kinematic_pair); - pair_surface : surface; -WHERE - WR1: SIZEOF( QUERY(r <* SELF\kinematic_pair.associated_link_representations_1 | NOT(pair_surface IN r.items))) = 0; - WR2: SIZEOF( QUERY(lr <* SELF\kinematic_pair.associated_link_representations_1 | - NOT('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.RIGID_LINK_REPRESENTATION' IN TYPEOF(lr)))) = 0; -END_ENTITY; -(* USED FROM (kinematic_structure_schema); *) -ENTITY point_on_surface_pair_with_range - SUBTYPE OF (point_on_surface_pair); - range_on_pair_surface : rectangular_trimmed_surface; - lower_limit_yaw : OPTIONAL plane_angle_measure; - upper_limit_yaw : OPTIONAL plane_angle_measure; - lower_limit_pitch : OPTIONAL plane_angle_measure; - upper_limit_pitch : OPTIONAL plane_angle_measure; - lower_limit_roll : OPTIONAL plane_angle_measure; - upper_limit_roll : OPTIONAL plane_angle_measure; -WHERE - WR1: (NOT EXISTS(lower_limit_pitch) - OR - NOT EXISTS(upper_limit_pitch)) - XOR - (lower_limit_pitch < upper_limit_pitch); - WR2: (NOT EXISTS(lower_limit_yaw) - OR - NOT EXISTS(upper_limit_yaw)) - XOR - (lower_limit_yaw < upper_limit_yaw); - WR3: (NOT EXISTS(lower_limit_roll) - OR - NOT EXISTS(upper_limit_roll)) - XOR - (lower_limit_roll < upper_limit_roll); - WR4: SIZEOF( QUERY(r <* SELF\kinematic_pair.associated_link_representations_1 | NOT(range_on_pair_surface IN r.items))) = 0; -END_ENTITY; -(* USED FROM (kinematic_structure_schema); *) -ENTITY surface_pair - ABSTRACT SUPERTYPE OF (ONEOF ( - SLIDING_SURFACE_PAIR, - ROLLING_SURFACE_PAIR) - ANDOR - SURFACE_PAIR_WITH_RANGE) - SUBTYPE OF (high_order_kinematic_pair); - surface_1 : surface; - surface_2 : surface; - orientation : BOOLEAN; -WHERE - WR1: SIZEOF( QUERY(r <* SELF\kinematic_pair.associated_link_representations_1 | NOT(surface_1 IN r.items))) = 0; - WR2: SIZEOF( QUERY(r <* SELF\kinematic_pair.associated_link_representations_2 | NOT(surface_2 IN r.items))) = 0; - WR3: SIZEOF( QUERY(lr <* SELF\kinematic_pair.associated_link_representations_1 | - NOT('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.RIGID_LINK_REPRESENTATION' IN TYPEOF(lr)))) = 0; -END_ENTITY; -(* USED FROM (kinematic_structure_schema); *) -ENTITY surface_pair_with_range - SUBTYPE OF (surface_pair); - range_on_surface_1 : rectangular_trimmed_surface; - range_on_surface_2 : rectangular_trimmed_surface; - lower_limit_actual_rotation : OPTIONAL plane_angle_measure; - upper_limit_actual_rotation : OPTIONAL plane_angle_measure; -WHERE - WR1: SELF\surface_pair.surface_1 :=: range_on_surface_1.basis_surface; - WR2: SELF\surface_pair.surface_2 :=: range_on_surface_2.basis_surface; - WR3: (NOT EXISTS(lower_limit_actual_rotation) - OR - NOT EXISTS(upper_limit_actual_rotation)) - XOR - (lower_limit_actual_rotation < upper_limit_actual_rotation); - WR4: SIZEOF( QUERY(r <* SELF\kinematic_pair.associated_link_representations_1 | NOT(range_on_surface_1 IN r.items))) = 0; - WR5: SIZEOF( QUERY(r <* SELF\kinematic_pair.associated_link_representations_2 | NOT(range_on_surface_2 IN r.items))) = 0; -END_ENTITY; -(* USED FROM (aic_manifold_surface); *) -ENTITY manifold_surface_shape_representation - SUBTYPE OF (shape_representation); -WHERE - WR1: SIZEOF (QUERY (it <* SELF.items | - NOT (SIZEOF (['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHELL_BASED_SURFACE_MODEL', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MAPPED_ITEM', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.AXIS2_PLACEMENT_3D'] * TYPEOF (it)) = 1))) = 0; - WR2: SIZEOF (QUERY (it <* SELF.items | - SIZEOF (['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHELL_BASED_SURFACE_MODEL', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MAPPED_ITEM'] * TYPEOF (it)) = 1)) > 0; - WR3: SIZEOF (QUERY (mi <* QUERY (it <* SELF.items | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MAPPED_ITEM' IN TYPEOF (it)) | - NOT (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 | - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHELL_BASED_SURFACE_MODEL' - IN TYPEOF (mr_it)))) > 0 )))) = 0; - WR4: SIZEOF (QUERY (sbsm <* QUERY (it <* SELF.items | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHELL_BASED_SURFACE_MODEL' IN TYPEOF (it)) | - NOT (SIZEOF (QUERY (sh <* - sbsm\shell_based_surface_model.sbsm_boundary | - NOT (SIZEOF (['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.OPEN_SHELL', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ORIENTED_CLOSED_SHELL', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CLOSED_SHELL'] - * TYPEOF (sh)) = 1))) = 0))) = 0; - WR5: SIZEOF (QUERY (sbsm <* QUERY (it <* SELF.items | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FACE_SURFACE' IN TYPEOF (fa)) )) = 0))) - = 0))) = 0; - WR6: SIZEOF (QUERY (sbsm <* QUERY (it <* SELF.items | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ADVANCED_FACE' IN TYPEOF (fa)) - OR - (SIZEOF (QUERY (bnds <* fa.bounds | - NOT (SIZEOF (['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.EDGE_LOOP', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.VERTEX_LOOP'] - * TYPEOF (bnds.bound)) = 1))) = 0)))) = 0))) = 0))) = 0; - WR8: SIZEOF (QUERY (sbsm <* QUERY (it <* SELF.items| - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ADVANCED_FACE' IN TYPEOF (fa)) - OR - (SIZEOF (QUERY (elp_fbnds <* QUERY (bnds <* fa.bounds | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.EDGE_LOOP' IN TYPEOF (bnds.bound)) | - NOT (SIZEOF (QUERY (oe <* elp_fbnds\path.edge_list | - NOT ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.EDGE_CURVE' IN TYPEOF - (oe.edge_element)))) = 0))) = 0)))) = 0))) = 0))) = 0; - WR9: SIZEOF (QUERY (sbsm <* QUERY (it <* SELF.items | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ADVANCED_FACE' IN TYPEOF (fa)) - OR - (SIZEOF (QUERY (elp_fbnds <* QUERY (bnds <* fa.bounds | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.EDGE_LOOP' IN TYPEOF (bnds.bound)) | - NOT (SIZEOF (QUERY (oe_cv <* QUERY (oe <* - elp_fbnds\path.edge_list | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.EDGE_CURVE' IN TYPEOF (oe.edge_element)) | - NOT (SIZEOF (['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.B_SPLINE_CURVE', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CONIC', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CURVE_REPLICA', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LINE', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.OFFSET_CURVE_3D', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PCURVE', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.POLYLINE', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ADVANCED_FACE' IN TYPEOF (fa)) - OR - (SIZEOF (QUERY (elp_fbnds <* QUERY (bnds <* fa.bounds | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ADVANCED_FACE' IN TYPEOF (fa)) - OR - (SIZEOF (QUERY (elp_fbnds <* QUERY (bnds <* fa.bounds | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.EDGE_LOOP' IN TYPEOF (bnds.bound)) | - NOT (SIZEOF (QUERY (oe <* elp_fbnds\path.edge_list| - NOT (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.VERTEX_POINT' IN TYPEOF - (oe.edge_element.edge_start)) - AND - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.VERTEX_POINT' IN - TYPEOF (oe.edge_element.edge_end))))) - = 0))) = 0)))) = 0))) = 0))) = 0; - WR12: SIZEOF (QUERY (sbsm <* QUERY (it <* SELF.items | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ADVANCED_FACE' IN TYPEOF (fa)) - OR - (SIZEOF (QUERY (elp_fbnds <* QUERY (bnds <* fa.bounds | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.EDGE_LOOP' IN TYPEOF (bnds.bound)) | - NOT (SIZEOF (QUERY (oe <* elp_fbnds\path.edge_list | - NOT ((SIZEOF (['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CARTESIAN_POINT', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.DEGENERATE_PCURVE', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.POINT_ON_CURVE', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.POINT_ON_SURFACE'] * TYPEOF - (oe.edge_element.edge_start\vertex_point.vertex_geometry)) = 1) - AND - (SIZEOF (['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CARTESIAN_POINT', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.DEGENERATE_PCURVE', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.POINT_ON_CURVE', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ADVANCED_FACE' IN TYPEOF (fa)) - OR - (SIZEOF (QUERY (vlp_fbnds <* QUERY (bnds <* fa.bounds | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.VERTEX_LOOP' IN TYPEOF (bnds.bound)) | - NOT ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.VERTEX_POINT' IN TYPEOF - (vlp_fbnds\vertex_loop.loop_vertex)))) = 0)))) = 0))) - = 0))) = 0; - WR14: SIZEOF (QUERY (sbsm <* QUERY (it <* SELF.items | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ADVANCED_FACE' IN TYPEOF (fa)) - OR - (SIZEOF (QUERY (vlp_fbnds <* QUERY (bnds <* fa.bounds | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.VERTEX_LOOP' IN TYPEOF (bnds.bound)) | - NOT (SIZEOF (['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CARTESIAN_POINT', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.DEGENERATE_PCURVE', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.POINT_ON_CURVE', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.POINT_ON_SURFACE'] * TYPEOF - (vlp_fbnds\vertex_loop.loop_vertex\vertex_point.vertex_geometry)) - = 1))) = 0)))) = 0))) = 0))) = 0; -END_ENTITY; -(* USED FROM (geometry_schema); *) -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; -(* USED FROM (kinematic_structure_schema); *) -ENTITY linear_flexible_and_planar_curve_pair - SUBTYPE OF (high_order_kinematic_pair); - pair_curve : curve; - orientation : BOOLEAN; -WHERE - WR1: SIZEOF( QUERY(r <* SELF\kinematic_pair.associated_link_representations_1 | NOT(pair_curve IN r.items))) = 0; - WR2: SIZEOF( QUERY(lr <* SELF\kinematic_pair.associated_link_representations_1 | - NOT('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LINEAR_FLEXIBLE_LINK_REPRESENTATION' IN TYPEOF(lr)))) = 0; -END_ENTITY; -(* USED FROM (kinematic_structure_schema); *) -ENTITY point_on_planar_curve_pair - SUBTYPE OF (high_order_kinematic_pair); - pair_curve : curve; - orientation : BOOLEAN; -WHERE - WR1: SIZEOF( QUERY(r <* SELF\kinematic_pair.associated_link_representations_1 | NOT(pair_curve IN r.items))) = 0; - WR2: SIZEOF( QUERY(lr <* SELF\kinematic_pair.associated_link_representations_1 | - NOT('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.RIGID_LINK_REPRESENTATION' IN TYPEOF(lr)))) = 0; -END_ENTITY; -(* USED FROM (kinematic_structure_schema); *) -ENTITY point_on_planar_curve_pair_with_range - SUBTYPE OF (point_on_planar_curve_pair); - range_on_pair_curve : trimmed_curve; - lower_limit_yaw : OPTIONAL plane_angle_measure; - upper_limit_yaw : OPTIONAL plane_angle_measure; - lower_limit_pitch : OPTIONAL plane_angle_measure; - upper_limit_pitch : OPTIONAL plane_angle_measure; - lower_limit_roll : OPTIONAL plane_angle_measure; - upper_limit_roll : OPTIONAL plane_angle_measure; -WHERE - WR1: (NOT EXISTS(lower_limit_pitch) - OR - NOT EXISTS(upper_limit_pitch)) - XOR - (lower_limit_pitch < upper_limit_pitch); - WR2: (NOT EXISTS(lower_limit_yaw) - OR - NOT EXISTS(upper_limit_yaw)) - XOR - (lower_limit_yaw < upper_limit_yaw); - WR3: (NOT EXISTS(lower_limit_roll) - OR - NOT EXISTS(upper_limit_roll)) - XOR - (lower_limit_roll < upper_limit_roll); - WR4: SIZEOF( QUERY(r <* SELF\kinematic_pair.associated_link_representations_1 | NOT(range_on_pair_curve IN r.items))) = 0; -END_ENTITY; -(* USED FROM (kinematic_structure_schema); *) -ENTITY planar_curve_pair - SUPERTYPE OF (ONEOF ( - SLIDING_CURVE_PAIR, - ROLLING_CURVE_PAIR) - ANDOR - PLANAR_CURVE_PAIR_RANGE) - SUBTYPE OF (high_order_kinematic_pair); - curve_1 : curve; - curve_2 : curve; - orientation : BOOLEAN; -WHERE - WR1: SIZEOF( QUERY(r <* SELF\kinematic_pair.associated_link_representations_1 | NOT(curve_1 IN r.items))) = 0; - WR2: SIZEOF( QUERY(r <* SELF\kinematic_pair.associated_link_representations_2 | NOT(curve_2 IN r.items))) = 0; - WR3: SIZEOF( QUERY(lr <* SELF\kinematic_pair.associated_link_representations_1 | - NOT('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.RIGID_LINK_REPRESENTATION' IN TYPEOF(lr)))) = 0; -END_ENTITY; -(* USED FROM (kinematic_structure_schema); *) -ENTITY planar_curve_pair_range - SUBTYPE OF (planar_curve_pair); - range_on_curve_1 : trimmed_curve; - range_on_curve_2 : trimmed_curve; -WHERE - WR1: SELF\planar_curve_pair.curve_1 :=: range_on_curve_1.basis_curve; - WR2: SELF\planar_curve_pair.curve_2 :=: range_on_curve_2.basis_curve; - WR3: SIZEOF( QUERY(r <* SELF\kinematic_pair.associated_link_representations_1 | NOT(range_on_curve_1 IN r.items))) = 0; - WR4: SIZEOF( QUERY(r <* SELF\kinematic_pair.associated_link_representations_2 | NOT(range_on_curve_2 IN r.items))) = 0; -END_ENTITY; -(* USED FROM (geometry_schema); *) -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; -(* USED FROM (finite_element_analysis_control_and_result_schema); *) -ENTITY volume_3d_whole_element_variable_value - SUBTYPE OF (volume_3d_element_field_variable_definition); - simple_value : field_value; - variable : volume_aggregated_variable; - coordinate_system : OPTIONAL volume_3d_element_coordinate_system; -WHERE - WR1: necessary_value_coordinate_system (simple_value, coordinate_system); - WR2: consistent_value (simple_value, variable); - WR3: appropriate_value_existence (simple_value, - TYPEOF (SELF\state_definition.defined_state)); -END_ENTITY; -(* USED FROM (kinematic_structure_schema); *) -ENTITY gear_pair - SUBTYPE OF (low_order_kinematic_pair_with_motion_coupling); - radius_first_link : length_measure; - radius_second_link : length_measure; - bevel : plane_angle_measure; - helical_angle : plane_angle_measure; - gear_ratio : REAL; -WHERE - WR1: SIZEOF( QUERY(lr <* SELF\kinematic_pair.associated_link_representations_1 | - NOT('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.RIGID_LINK_REPRESENTATION' IN TYPEOF(lr)))) = 0; -END_ENTITY; -(* USED FROM (finite_element_analysis_control_and_result_schema); *) -ENTITY volume_3d_element_value_and_location; - simple_value : field_value; - location : volume_element_location; - coordinate_system : OPTIONAL volume_3d_element_coordinate_system; -WHERE - WR1: necessary_value_coordinate_system (simple_value, coordinate_system); -END_ENTITY; -(* USED FROM (kinematic_structure_schema); *) -ENTITY rack_and_pinion_pair - SUBTYPE OF (low_order_kinematic_pair_with_motion_coupling); - pinion_radius : length_measure; -WHERE - WR1: SIZEOF( QUERY(lr <* SELF\kinematic_pair.associated_link_representations_1 | - NOT('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.RIGID_LINK_REPRESENTATION' IN TYPEOF(lr)))) = 0; -END_ENTITY; -(* USED FROM (finite_element_analysis_control_and_result_schema); *) -ENTITY volume_3d_element_location_point_variable_values - SUBTYPE OF (volume_3d_element_field_variable_definition); - basis : BOOLEAN; - values_and_locations : SET [1:?] OF - volume_3d_element_value_and_location; - variable : volume_variable; -WHERE - WR1: consistent_set_values (values_and_locations, variable); - WR2: appropriate_set_value_existence (values_and_locations, - TYPEOF (SELF\state_definition.defined_state)); -END_ENTITY; -(* USED FROM (kinematic_structure_schema); *) -ENTITY linear_flexible_and_pinion_pair - SUBTYPE OF (low_order_kinematic_pair_with_motion_coupling); - pinion_radius : length_measure; -WHERE - WR1: SIZEOF( QUERY(lr <* SELF\kinematic_pair.associated_link_representations_1 | - NOT('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LINEAR_FLEXIBLE_LINK_REPRESENTATION' IN TYPEOF(lr)))) = 0; -END_ENTITY; -(* USED FROM (representation_schema); *) - ENTITY definitional_representation_relationship - SUBTYPE OF (representation_relationship); - WHERE - WR1: acyclic_representation_relationship(SELF, - [SELF\representation_relationship.rep_2], - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.'+'REPRESENTATION'); - END_ENTITY; -(* USED FROM (kinematic_property_schema); *) -ENTITY kinematic_property_mechanism_representation - SUBTYPE OF (kinematic_property_definition_representation); - SELF\property_definition_representation.used_representation : mechanism_representation; - base : kinematic_link_representation; -WHERE - WR1: SIZEOF( QUERY( i <* used_representation.items | - (base :=: i\representation_relationship.rep_1) OR - (base :=: i\representation_relationship.rep_2))) > 0; -END_ENTITY; -(* USED FROM (File_identification_mim); *) -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; -(* USED FROM (product_structure_schema); *) -ENTITY multi_level_reference_designator - SUBTYPE OF (assembly_component_usage); - location : LIST[1:?] OF UNIQUE next_assembly_usage_occurrence; - DERIVE - SELF\product_definition_relationship.relating_product_definition : product_definition := location[1]\product_definition_relationship.relating_product_definition; -- root : This ATTRIBUTE was RENAMED in the EXPRESS E2 source, an attribute with the new name is in the DERIVE clause - SELF\product_definition_relationship.related_product_definition : product_definition_or_reference := location[HIINDEX(location)]\product_definition_relationship.related_product_definition; -- leaf : This ATTRIBUTE was RENAMED in the EXPRESS E2 source, an attribute with the new name is in the DERIVE clause - leaf : PRODUCT_DEFINITION_OR_REFERENCE := SELF\product_definition_relationship.related_product_definition; -- RELATED_PRODUCT_DEFINITION : This ATTRIBUTE was RENAMED in the EXPRESS E2 source, this is the new name implemented as DERIVE - root : PRODUCT_DEFINITION := SELF\product_definition_relationship.relating_product_definition; -- RELATING_PRODUCT_DEFINITION : This ATTRIBUTE was RENAMED in the EXPRESS E2 source, this is the new name implemented as DERIVE - -WHERE - WR1: unambiguously_specified_multi_level_reference_designator(location); - WR2: SIZEOF(QUERY(cp <* location | NOT ( - EXISTS(cp\assembly_component_usage.reference_designator)))) = 0; -END_ENTITY; -(* USED FROM (product_structure_schema); *) -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, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRODUCT_DEFINITION_RELATIONSHIP.' + - 'RELATED_PRODUCT_DEFINITION') | - pdr.relating_product_definition :=: - next_usage.relating_product_definition)) = 1); - WR5: SIZEOF (['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.NEXT_ASSEMBLY_USAGE_OCCURRENCE', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SPECIFIED_HIGHER_USAGE_OCCURRENCE'] - * TYPEOF(upper_usage)) = 1; -END_ENTITY; -(* USED FROM (structural_response_representation_schema); *) -ENTITY surface_2d_element_group - SUBTYPE OF (element_group); -WHERE - WR1: SIZEOF(QUERY(item <* elements | - (NOT ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.'+ - 'AXISYMMETRIC_SURFACE_2D_ELEMENT_REPRESENTATION' - IN TYPEOF(item)) AND - NOT ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.'+ - 'PLANE_SURFACE_2D_ELEMENT_REPRESENTATION' - IN TYPEOF(item)))))=0; -END_ENTITY; -(* USED FROM (structural_response_representation_schema); *) -ENTITY curve_2d_element_group - SUBTYPE OF (element_group); -WHERE - WR1: SIZEOF(QUERY(item <* elements | - (NOT ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.'+ - 'AXISYMMETRIC_CURVE_2D_ELEMENT_REPRESENTATION' - IN TYPEOF(item)) AND - NOT ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.'+ - 'PLANE_CURVE_2D_ELEMENT_REPRESENTATION' - IN TYPEOF(item)))))=0; -END_ENTITY; -(* USED FROM (structural_response_representation_schema); *) -ENTITY curve_3d_element_group - SUBTYPE OF (element_group); -WHERE - WR1: SIZEOF(query(item <* elements | - NOT ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.'+ - 'CURVE_3D_ELEMENT_REPRESENTATION' IN TYPEOF (item))))=0; -END_ENTITY; -(* USED FROM (structural_response_representation_schema); *) -ENTITY volume_3d_element_group - SUBTYPE OF (element_group); -WHERE - WR1: SIZEOF(query(item <* elements | - NOT ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.'+ - 'VOLUME_3D_ELEMENT_REPRESENTATION' IN TYPEOF (item))))=0; -END_ENTITY; -(* USED FROM (structural_response_representation_schema); *) -ENTITY surface_3d_element_group - SUBTYPE OF (element_group); -WHERE - WR1: SIZEOF(query(item <* elements | - NOT ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.'+ - 'SURFACE_3D_ELEMENT_REPRESENTATION' IN TYPEOF (item))))=0; -END_ENTITY; -(* USED FROM (structural_response_representation_schema); *) -ENTITY volume_2d_element_group - SUBTYPE OF (element_group); -WHERE - WR1: SIZEOF(QUERY(item <* elements | - (NOT ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.'+ - 'AXISYMMETRIC_VOLUME_2D_ELEMENT_REPRESENTATION' - IN TYPEOF(item)) AND - NOT ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.'+ - 'PLANE_VOLUME_2D_ELEMENT_REPRESENTATION' - IN TYPEOF(item)))))=0; -END_ENTITY; -(* USED FROM (aic_machining_feature); *) -ENTITY rib_top_floor - SUBTYPE OF (shape_aspect); - WHERE - WR1: 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FEATURE_COMPONENT_DEFINITION' IN - TYPEOF (SELF.of_shape.definition); - WR2: SELF.description IN ['planar', 'complex']; - WR3: SIZEOF (QUERY (fcr <* QUERY (sar <* USEDIN (SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATING_SHAPE_ASPECT') | - (sar.description = 'rib top usage') AND - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP' - IN TYPEOF (sar))) | - ((fcr.related_shape_aspect.description = 'rib top condition occurrence') - AND - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.RIB_TOP' IN TYPEOF - (fcr.related_shape_aspect.of_shape.definition)) AND - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.RIB_TOP_FLOOR' IN TYPEOF - (fcr.relating_shape_aspect)) ) - )) >= 1; - WR4: (NOT (SELF.description = 'complex')) OR - (SIZEOF (QUERY (pd <* USEDIN (SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - NOT (SIZEOF (QUERY (pdr <* USEDIN (pd, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FACE_SHAPE_REPRESENTATION' - IN TYPEOF (pdr.used_representation))AND - (pdr.used_representation.name = 'rib top face'))) = 1))) = 0); - WR5: (NOT (SELF.description = 'planar')) OR - (SIZEOF (QUERY (pd <* USEDIN (SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - NOT (SIZEOF (QUERY (pdr <* USEDIN (pd, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PLANAR_SHAPE_REPRESENTATION' - IN TYPEOF (pdr.used_representation))AND - (pdr.used_representation.name = 'rib top face'))) = 1))) = 0); - WR6: (NOT (SELF.description = 'planar')) OR - (SIZEOF (QUERY (pds <* QUERY (pd <* USEDIN (SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' - IN TYPEOF (pd)) | - NOT (SIZEOF (QUERY (sa_occ <* USEDIN (pds, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE') | - (sa_occ.description = 'boundary occurrence') AND - (SIZEOF (QUERY (sdr <* QUERY (sar <* USEDIN (sa_occ, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | - (sar.description = 'profile usage') AND - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_DEFINING_RELATIONSHIP' - IN TYPEOF (sar))) | - (SIZEOF (['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CIRCULAR_CLOSED_PROFILE', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.NGON_CLOSED_PROFILE', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.RECTANGULAR_CLOSED_PROFILE', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CLOSED_PATH_PROFILE'] * - TYPEOF (sdr.relating_shape_aspect)) = 1) AND - (sdr.relating_shape_aspect.description = 'rib top floor boundary'))) - = 1))) = 1))) = 0); -END_ENTITY; -- rib_top_floor -(* USED FROM (aic_machining_feature); *) -ENTITY round_hole - SUBTYPE OF (feature_definition); - WHERE - WR1: (SIZEOF(QUERY ( pds <* QUERY ( pd <* USEDIN(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION')| - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' - IN TYPEOF(pd)) ) | (NOT (SIZEOF(QUERY ( sa_occ <* USEDIN(pds, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE') | - ((sa_occ.description = 'diameter occurrence') AND - (SIZEOF(QUERY ( sdr <* QUERY ( sar <* USEDIN(sa_occ, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | - ((sar.description = 'profile usage') AND - (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_DEFINING_RELATIONSHIP') - IN TYPEOF(sar))) ) | - (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CIRCULAR_CLOSED_PROFILE' - IN TYPEOF(sdr.relating_shape_aspect)) AND - (sdr.name = 'diameter')) )) = 1)) )) = 1)) )) = 0); - WR2: (SIZEOF(QUERY ( pds <* QUERY ( pd <* USEDIN(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' - IN TYPEOF(pd)) ) | (NOT (SIZEOF(QUERY ( sa_occ <* USEDIN(pds, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE') | - ((sa_occ.description = 'hole depth occurrence') AND - (SIZEOF(QUERY ( sdr <* QUERY ( sar <* USEDIN(sa_occ, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | - ((sar.description = 'path feature component usage') AND - (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_DEFINING_RELATIONSHIP') - IN TYPEOF(sar))) ) | - (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PATH_FEATURE_COMPONENT' - IN TYPEOF(sdr.relating_shape_aspect)) AND - (sdr.name = 'hole depth') AND - (sdr.relating_shape_aspect.description = 'linear')) )) = 1)) )) - = 1)) )) = 0); - WR3: (SIZEOF(QUERY ( pds <* QUERY ( pd <* USEDIN(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' - IN TYPEOF(pd)) ) | (NOT (SIZEOF(QUERY ( sa_occ <* USEDIN(pds, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE') | - ((sa_occ.description = 'bottom condition occurrence') AND - (SIZEOF(QUERY ( fcr <* QUERY ( sar <* USEDIN(sa_occ, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | - ((sar.description = 'hole bottom usage') AND - (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP') - IN TYPEOF(sar))) ) | - (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.HOLE_BOTTOM' - IN TYPEOF(fcr.relating_shape_aspect)) AND - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ROUND_HOLE' - IN TYPEOF(fcr.related_shape_aspect.of_shape.definition))) - )) = 1)) )) = 1)) )) = 0); - WR4: (SIZEOF(QUERY ( pds <* QUERY ( pd <* USEDIN(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' - IN TYPEOF(pd)) ) | (NOT (SIZEOF(QUERY ( sa_occ <* USEDIN(pds, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE') | - ((sa_occ.description = 'change in diameter occurrence') AND - (SIZEOF(QUERY ( fcr <* QUERY ( sar <* USEDIN(sa_occ, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | - ((sar.description = 'taper usage') AND - (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP') - IN TYPEOF(sar))) ) | - (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.TAPER' - IN TYPEOF(fcr.relating_shape_aspect)) AND - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ROUND_HOLE' - IN TYPEOF(fcr.related_shape_aspect.of_shape.definition)) ) - )) = 1)) )) <= 1)) )) = 0); - WR5: SIZEOF(QUERY(pdr <* get_property_definition_representations (SELF) | - ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' - IN TYPEOF ( pdr.used_representation ) ) )) =1; -END_ENTITY; -- round_hole -(* USED FROM (aic_machining_feature); *) -ENTITY replicate_feature - SUPERTYPE OF (ONEOF ( - CIRCULAR_PATTERN, - RECTANGULAR_PATTERN, - FEATURE_PATTERN)) - SUBTYPE OF (feature_definition); - WHERE - WR1: (SIZEOF(QUERY ( pd <* USEDIN(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | (NOT (SIZEOF(QUERY ( pdr <* USEDIN(pd, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (( - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr. - used_representation)) )) = 1)) )) = 0); - WR2: (SIZEOF(QUERY ( fcr <* QUERY ( sar <* - USEDIN(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.' - + 'RELATING_SHAPE_ASPECT') | - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP' - IN TYPEOF(sar)) ) | - ((SIZEOF(['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.REPLICATE_FEATURE', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.INSTANCED_FEATURE'] * - TYPEOF(fcr.related_shape_aspect)) >= 1) AND - (fcr.name = 'pattern basis')) )) = 1); - WR3: ((SIZEOF(QUERY ( sar <* USEDIN(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.' - + 'RELATING_SHAPE_ASPECT') | - (NOT - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP' - IN TYPEOF(sar))) )) + - SIZEOF(QUERY ( sar <* USEDIN(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.' - + 'RELATED_SHAPE_ASPECT') | - (NOT - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP' - IN TYPEOF(sar))) ))) = 0); -END_ENTITY; -- replicate_feature -(* USED FROM (structural_response_representation_schema); *) -ENTITY point_element_representation - SUBTYPE OF (element_representation); - model_ref : fea_model; - (* description : text;*) - matrix_set : SET [1:?] OF point_element_matrix; -UNIQUE - UR1: model_ref, SELF\representation.name; -WHERE - WR1: SIZEOF (QUERY(item <* SELF\representation.items | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + - 'FEA_AXIS2_PLACEMENT_3D' - IN TYPEOF (item))) = 1; - FU1: required_0d_nodes ( - SELF\element_representation.node_list); -END_ENTITY; -(* USED FROM (aic_machining_feature); *) -ENTITY revolved_profile - SUBTYPE OF (feature_definition); - WHERE - WR1: (SELF\characterized_object.description IN - ['groove','flat','round','open profile']); - WR2: (SIZEOF(QUERY ( pd <* USEDIN(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') - IN TYPEOF(pdr.used_representation)) ) | - (NOT (SIZEOF(impl_rep.used_representation.items) = 2)) )) - = 0)) )) = 0); - WR3: (SIZEOF(QUERY ( pd <* USEDIN(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') - IN TYPEOF(pdr.used_representation)) ) | - (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | - ((SIZEOF([ - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * - TYPEOF(it)) = 2) AND (it.name = 'radius')))) = 1)) )) - = 0)) )) = 0); - WR4: SIZEOF(QUERY(pdr <* get_property_definition_representations (SELF) | - ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.DIRECTION_SHAPE_REPRESENTATION' - IN TYPEOF ( pdr.used_representation ) ) AND - ( pdr.used_representation.name ='removal direction'))) =1; - WR5: ((NOT (SELF\characterized_object.description = 'open profile')) OR - (SIZEOF(QUERY ( pds <* QUERY ( pd <* USEDIN(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' - IN TYPEOF(pd)) ) | (NOT (SIZEOF(QUERY ( sa_occ <* USEDIN(pds, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE') | - ((sa_occ.description = 'outer edge shape occurrence') AND - (SIZEOF(QUERY ( sdr <* QUERY ( sar <* USEDIN(sa_occ, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | - ((sar.description = 'profile usage') AND - (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_DEFINING_RELATIONSHIP') - IN TYPEOF(sar))) ) | - (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.OPEN_PATH_PROFILE' - IN TYPEOF(sdr.relating_shape_aspect)) AND - (sdr.relating_shape_aspect.description = 'outer edge shape')) )) - = 1)) )) = 1)) )) = 0)); - WR6: (NOT (SELF\characterized_object.description = 'flat')) OR - (SIZEOF(QUERY ( pds <* QUERY ( pd <* USEDIN(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION')| - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' - IN TYPEOF(pd)) ) | (NOT (SIZEOF(QUERY ( sa_occ <* USEDIN(pds, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE') | - (( sa_occ.description = 'flat edge shape occurrence') AND - (SIZEOF(QUERY ( sdr <* QUERY ( sar <* USEDIN(sa_occ, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | - ((sar.description = 'profile usage') AND - (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_DEFINING_RELATIONSHIP') - IN TYPEOF(sar))) ) | - (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LINEAR_PROFILE' - IN TYPEOF(sdr.relating_shape_aspect)) AND - (sdr.relating_shape_aspect.description = 'flat edge shape')) )) - = 1)) )) = 1)) )) = 0); - WR7: ((NOT (SELF\characterized_object.description = 'round')) OR - (SIZEOF(QUERY ( pds <* QUERY ( pd <* USEDIN(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' - IN TYPEOF(pd)) ) | (NOT (SIZEOF(QUERY ( sa_occ <* USEDIN(pds, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE') | - ((sa_occ.description = 'rounded edge shape occurrence') AND - (SIZEOF(QUERY ( sdr <* QUERY ( sar <* USEDIN(sa_occ, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | - ((sar.description = 'profile usage') AND - (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_DEFINING_RELATIONSHIP') - IN TYPEOF(sar))) ) | - (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PARTIAL_CIRCULAR_PROFILE' - IN TYPEOF(sdr.relating_shape_aspect)) AND - (sdr.relating_shape_aspect.description = 'rounded edge shape')) )) - = 1)) )) = 1)) )) = 0)); - WR8: ((NOT (SELF\characterized_object.description = 'groove')) OR - (SIZEOF(QUERY ( pds <* QUERY ( pd <* USEDIN(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' - IN TYPEOF(pd)) ) | (NOT (SIZEOF(QUERY ( sa_occ <* USEDIN(pds, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE') | - ((sa_occ.description = 'sweep occurrence') AND - (SIZEOF(QUERY ( sdr <* QUERY ( sar <* USEDIN(sa_occ, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | - ((sar.description = 'profile usage') AND - (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_DEFINING_RELATIONSHIP') - IN TYPEOF(sar))) ) | - ((SIZEOF(['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SQUARE_U_PROFILE', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PARTIAL_CIRCULAR_PROFILE', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ROUNDED_U_PROFILE', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.VEE_PROFILE', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.TEE_PROFILE', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.OPEN_PATH_PROFILE'] * - TYPEOF(sdr.relating_shape_aspect)) = 1) AND - (sdr.relating_shape_aspect.description = 'sweep')) )) = 1)) )) - = 1)) )) = 0)); - WR9: SIZEOF(QUERY(pdr <* get_property_definition_representations (SELF) | - ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PLANAR_SHAPE_REPRESENTATION' - IN TYPEOF ( pdr.used_representation ) ) AND - ( pdr.used_representation.name ='maximum feature limit'))) >=0; -END_ENTITY; -- revolved_profile -(* USED FROM (structural_response_representation_schema); *) -ENTITY axisymmetric_curve_2d_element_representation - SUBTYPE OF (element_representation); - model_ref : fea_model_2d; - element_descriptor : axisymmetric_curve_2d_element_descriptor; - property : curve_2d_element_property; - angle_property : axisymmetric_2d_element_property; - material : element_material; -UNIQUE - UR1: model_ref, SELF\representation.name; -WHERE - WR1: model_ref.type_of_2d_analysis = axisymmetric; - WR2: SIZEOF (QUERY(item <* SELF\representation.items | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + - 'CURVE_2D_ELEMENT_COORDINATE_SYSTEM' - IN TYPEOF (item))) = 1; - WR3: SIZEOF (QUERY(item1 <* material.properties | - (SIZEOF (QUERY (item2 <* - item1\property_definition_representation.used_representation.items | - SIZEOF (['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + - 'FEA_LINEAR_ELASTICITY', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + - 'FEA_MASS_DENSITY', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + - 'FEA_AREA_DENSITY', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + - 'FEA_TANGENTIAL_COEFFICIENT_OF_LINEAR_THERMAL_EXPANSION', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + - 'FEA_SECANT_COEFFICIENT_OF_LINEAR_THERMAL_EXPANSION', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + - 'FEA_MOISTURE_ABSORPTION'] * TYPEOF (item2) - ) = 1 - )) = 1 - ))) >= 1; - WR4: 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PARAMETRIC_REPRESENTATION_CONTEXT' - IN TYPEOF (SELF\representation.context_of_items); - FU1: required_0d_nodes ( - SELF\element_representation.node_list); -END_ENTITY; -(* USED FROM (structural_response_representation_schema); *) -ENTITY curve_3d_element_representation - SUBTYPE OF (element_representation); - model_ref : fea_model_3d; - element_descriptor : curve_3d_element_descriptor; - property : curve_3d_element_property; - material : element_material; -UNIQUE - UR1: model_ref, SELF\representation.name; -WHERE - WR1: SIZEOF (QUERY(item <* SELF\representation.items | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + - 'PARAMETRIC_CURVE_3D_ELEMENT_COORDINATE_SYSTEM' - IN TYPEOF (item))) + - SIZEOF (QUERY(item <* SELF\representation.items | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + - 'ALIGNED_CURVE_3D_ELEMENT_COORDINATE_SYSTEM' - IN TYPEOF (item))) = 1; - WR2: SIZEOF (QUERY(item1 <* material.properties | - (SIZEOF (QUERY (item2 <* - item1\property_definition_representation.used_representation.items | - SIZEOF (['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + - 'FEA_LINEAR_ELASTICITY', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + - 'FEA_MASS_DENSITY', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + - 'FEA_AREA_DENSITY', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + - 'FEA_TANGENTIAL_COEFFICIENT_OF_LINEAR_THERMAL_EXPANSION', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + - 'FEA_SECANT_COEFFICIENT_OF_LINEAR_THERMAL_EXPANSION', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + - 'FEA_MOISTURE_ABSORPTION'] * TYPEOF (item2) - ) = 1 - )) = 1 - ))) >= 1; - WR3: 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PARAMETRIC_REPRESENTATION_CONTEXT' - IN TYPEOF (SELF\representation.context_of_items); - FU1: required_1d_nodes ( - SELF\element_representation.node_list, - element_descriptor\element_descriptor.topology_order); -END_ENTITY; -(* USED FROM (structural_response_representation_schema); *) -ENTITY plane_surface_2d_element_representation - SUBTYPE OF (element_representation); - model_ref : fea_model_2d; - element_descriptor : plane_surface_2d_element_descriptor; - property : surface_element_property; - depth_property : plane_2d_element_property; - material : element_material; -UNIQUE - UR1: model_ref, SELF\representation.name; -WHERE - WR1: model_ref.type_of_2d_analysis = planar; - WR2: SIZEOF (QUERY(item <* SELF\representation.items | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + - 'PARAMETRIC_SURFACE_2D_ELEMENT_COORDINATE_SYSTEM' - IN TYPEOF (item))) + - SIZEOF (QUERY(item <* SELF\representation.items | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + - 'ALIGNED_SURFACE_2D_ELEMENT_COORDINATE_SYSTEM' - IN TYPEOF (item))) = 1; - WR3: SIZEOF (QUERY(item1 <* material.properties | - (SIZEOF (QUERY (item2 <* - item1\property_definition_representation.used_representation.items | - SIZEOF (['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + - 'FEA_LINEAR_ELASTICITY', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + - 'FEA_MASS_DENSITY', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + - 'FEA_AREA_DENSITY', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + - 'FEA_TANGENTIAL_COEFFICIENT_OF_LINEAR_THERMAL_EXPANSION', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + - 'FEA_SECANT_COEFFICIENT_OF_LINEAR_THERMAL_EXPANSION', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + - 'FEA_MOISTURE_ABSORPTION', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + - 'FEA_SHELL_MEMBRANE_STIFFNESS', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + - 'FEA_SHELL_BENDING_STIFFNESS', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + - 'FEA_SHELL_MEMBRANE_BENDING_COUPLING_STIFFNESS', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + - 'FEA_SHELL_SHEAR_STIFFNESS'] * TYPEOF (item2) - ) = 1 - )) = 1 - ))) >= 1; - WR4: 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PARAMETRIC_REPRESENTATION_CONTEXT' - IN TYPEOF (SELF\representation.context_of_items); - FU1: required_1d_nodes ( - SELF\element_representation.node_list, - element_descriptor\element_descriptor.topology_order); -END_ENTITY; -(* USED FROM (structural_response_representation_schema); *) -ENTITY axisymmetric_surface_2d_element_representation - SUBTYPE OF (element_representation); - model_ref : fea_model_2d; - element_descriptor : axisymmetric_surface_2d_element_descriptor; - property : surface_element_property; - angle_property : axisymmetric_2d_element_property; - material : element_material; -UNIQUE - UR1: model_ref, SELF\representation.name; -WHERE - WR1: model_ref.type_of_2d_analysis = axisymmetric; - WR2: SIZEOF (QUERY(item <* SELF\representation.items | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + - 'PARAMETRIC_SURFACE_2D_ELEMENT_COORDINATE_SYSTEM' - IN TYPEOF (item))) + - SIZEOF (QUERY(item <* SELF\representation.items | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + - 'ALIGNED_SURFACE_2D_ELEMENT_COORDINATE_SYSTEM' - IN TYPEOF (item))) = 1; - WR3: SIZEOF (QUERY(item1 <* material.properties | - (SIZEOF (QUERY (item2 <* - item1\property_definition_representation.used_representation.items | - SIZEOF (['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + - 'FEA_LINEAR_ELASTICITY', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + - 'FEA_MASS_DENSITY', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + - 'FEA_AREA_DENSITY', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + - 'FEA_TANGENTIAL_COEFFICIENT_OF_LINEAR_THERMAL_EXPANSION', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + - 'FEA_SECANT_COEFFICIENT_OF_LINEAR_THERMAL_EXPANSION', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + - 'FEA_MOISTURE_ABSORPTION', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + - 'FEA_SHELL_MEMBRANE_STIFFNESS', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + - 'FEA_SHELL_BENDING_STIFFNESS', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + - 'FEA_SHELL_MEMBRANE_BENDING_COUPLING_STIFFNESS', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + - 'FEA_SHELL_SHEAR_STIFFNESS'] * TYPEOF (item2) - ) = 1 - )) = 1 - ))) >= 1; - WR4: 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PARAMETRIC_REPRESENTATION_CONTEXT' - IN TYPEOF (SELF\representation.context_of_items); - FU1: required_1d_nodes ( - SELF\element_representation.node_list, - element_descriptor\element_descriptor.topology_order); -END_ENTITY; -(* USED FROM (structural_response_representation_schema); *) -ENTITY surface_3d_element_representation - SUBTYPE OF (element_representation); - model_ref : fea_model_3d; - element_descriptor : surface_3d_element_descriptor; - property : surface_element_property; - material : element_material; -UNIQUE - UR1: model_ref, SELF\representation.name; -WHERE - WR1: SIZEOF (QUERY(item <* SELF\representation.items | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + - 'PARAMETRIC_SURFACE_3D_ELEMENT_COORDINATE_SYSTEM' - IN TYPEOF (item))) + - SIZEOF (QUERY(item <* SELF\representation.items | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + - 'CONSTANT_SURFACE_3D_ELEMENT_COORDINATE_SYSTEM' - IN TYPEOF (item))) + - SIZEOF (QUERY(item <* SELF\representation.items | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + - 'ALIGNED_SURFACE_3D_ELEMENT_COORDINATE_SYSTEM' - IN TYPEOF (item))) = 1; - WR2: SIZEOF (QUERY(item1 <* material.properties | - (SIZEOF (QUERY (item2 <* - item1\property_definition_representation.used_representation.items | - SIZEOF (['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + - 'FEA_LINEAR_ELASTICITY', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + - 'FEA_MASS_DENSITY', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + - 'FEA_AREA_DENSITY', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + - 'FEA_TANGENTIAL_COEFFICIENT_OF_LINEAR_THERMAL_EXPANSION', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + - 'FEA_SECANT_COEFFICIENT_OF_LINEAR_THERMAL_EXPANSION', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + - 'FEA_MOISTURE_ABSORPTION', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + - 'FEA_SHELL_MEMBRANE_STIFFNESS', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + - 'FEA_SHELL_BENDING_STIFFNESS', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + - 'FEA_SHELL_MEMBRANE_BENDING_COUPLING_STIFFNESS', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + - 'FEA_SHELL_SHEAR_STIFFNESS'] * TYPEOF (item2) - ) = 1 - )) = 1 - ))) >= 1; - WR3: 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PARAMETRIC_REPRESENTATION_CONTEXT' - IN TYPEOF (SELF\representation.context_of_items); - FU1: required_2d_nodes ( - SELF\element_representation.node_list, - element_descriptor.shape, - element_descriptor\element_descriptor.topology_order); -END_ENTITY; -(* USED FROM (structural_response_representation_schema); *) -ENTITY plane_volume_2d_element_representation - SUBTYPE OF (element_representation); - model_ref : fea_model_2d; - element_descriptor : plane_volume_2d_element_descriptor; - depth_property : plane_2d_element_property; - material : element_material; -UNIQUE - UR1: model_ref, SELF\representation.name; -WHERE - WR1: model_ref.type_of_2d_analysis = planar; - WR2: SIZEOF (QUERY(item <* SELF\representation.items | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + - 'PARAMETRIC_VOLUME_2D_ELEMENT_COORDINATE_SYSTEM' - IN TYPEOF (item))) + - SIZEOF (QUERY(item <* SELF\representation.items | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + - 'ARBITRARY_VOLUME_2D_ELEMENT_COORDINATE_SYSTEM' - IN TYPEOF (item))) = 1; - WR3: SIZEOF (QUERY(item1 <* material.properties | - (SIZEOF (QUERY (item2 <* - item1\property_definition_representation.used_representation.items | - SIZEOF (['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + - 'FEA_LINEAR_ELASTICITY', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + - 'FEA_MASS_DENSITY', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + - 'FEA_AREA_DENSITY', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + - 'FEA_TANGENTIAL_COEFFICIENT_OF_LINEAR_THERMAL_EXPANSION', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + - 'FEA_SECANT_COEFFICIENT_OF_LINEAR_THERMAL_EXPANSION', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + - 'FEA_MOISTURE_ABSORPTION'] * TYPEOF (item2) - ) = 1 - )) = 1 - ))) >= 1; - WR4: 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PARAMETRIC_REPRESENTATION_CONTEXT' - IN TYPEOF (SELF\representation.context_of_items); - FU1: required_2d_nodes ( - SELF\element_representation.node_list, - element_descriptor.shape, - element_descriptor\element_descriptor.topology_order); -END_ENTITY; -(* USED FROM (structural_response_representation_schema); *) -ENTITY axisymmetric_volume_2d_element_representation - SUBTYPE OF (element_representation); - model_ref : fea_model_2d; - element_descriptor : axisymmetric_volume_2d_element_descriptor; - angle_property : axisymmetric_2d_element_property; - material : element_material; -UNIQUE - UR1: model_ref, SELF\representation.name; -WHERE - WR1: model_ref.type_of_2d_analysis = axisymmetric; - WR2: SIZEOF (QUERY(item <* SELF\representation.items | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + - 'PARAMETRIC_VOLUME_2D_ELEMENT_COORDINATE_SYSTEM' - IN TYPEOF (item))) + - SIZEOF (QUERY(item <* SELF\representation.items | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + - 'ARBITRARY_VOLUME_2D_ELEMENT_COORDINATE_SYSTEM' - IN TYPEOF (item))) = 1; - WR3: SIZEOF (QUERY(item1 <* material.properties | - (SIZEOF (QUERY (item2 <* - item1\property_definition_representation.used_representation.items | - SIZEOF (['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + - 'FEA_LINEAR_ELASTICITY', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + - 'FEA_MASS_DENSITY', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + - 'FEA_AREA_DENSITY', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + - 'FEA_TANGENTIAL_COEFFICIENT_OF_LINEAR_THERMAL_EXPANSION', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + - 'FEA_SECANT_COEFFICIENT_OF_LINEAR_THERMAL_EXPANSION', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + - 'FEA_MOISTURE_ABSORPTION'] * TYPEOF (item2) - ) = 1 - )) = 1 - ))) >= 1; - WR4: 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PARAMETRIC_REPRESENTATION_CONTEXT' - IN TYPEOF (SELF\representation.context_of_items); - FU1: required_2d_nodes ( - SELF\element_representation.node_list, - element_descriptor.shape, - element_descriptor\element_descriptor.topology_order); -END_ENTITY; -(* USED FROM (structural_response_representation_schema); *) -ENTITY volume_3d_element_representation - SUBTYPE OF (element_representation); - model_ref : fea_model_3d; - element_descriptor : volume_3d_element_descriptor; - material : element_material; -UNIQUE - UR1: model_ref, SELF\representation.name; -WHERE - WR1: SIZEOF (QUERY(item <* SELF\representation.items | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + - 'PARAMETRIC_VOLUME_3D_ELEMENT_COORDINATE_SYSTEM' - IN TYPEOF (item))) + - SIZEOF (QUERY(item <* SELF\representation.items | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + - 'ARBITRARY_VOLUME_3D_ELEMENT_COORDINATE_SYSTEM' - IN TYPEOF (item))) = 1; - WR2: SIZEOF (QUERY(item1 <* material.properties | - (SIZEOF (QUERY (item2 <* - item1\property_definition_representation.used_representation.items | - SIZEOF (['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + - 'FEA_LINEAR_ELASTICITY', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + - 'FEA_MASS_DENSITY', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + - 'FEA_TANGENTIAL_COEFFICIENT_OF_LINEAR_THERMAL_EXPANSION', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + - 'FEA_SECANT_COEFFICIENT_OF_LINEAR_THERMAL_EXPANSION', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + - 'FEA_MOISTURE_ABSORPTION'] * TYPEOF (item2) - ) = 1 - )) = 1 - ))) >= 1; - WR3: 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PARAMETRIC_REPRESENTATION_CONTEXT' - IN TYPEOF (SELF\representation.context_of_items); - FU1: required_3d_nodes ( - SELF\element_representation.node_list, - element_descriptor.shape, - element_descriptor\element_descriptor.topology_order); -END_ENTITY; -(* USED FROM (structural_response_representation_schema); *) -ENTITY element_representation - SUPERTYPE OF (ONEOF ( - VOLUME_3D_ELEMENT_REPRESENTATION, - AXISYMMETRIC_VOLUME_2D_ELEMENT_REPRESENTATION, - PLANE_VOLUME_2D_ELEMENT_REPRESENTATION, - SURFACE_3D_ELEMENT_REPRESENTATION, - AXISYMMETRIC_SURFACE_2D_ELEMENT_REPRESENTATION, - PLANE_SURFACE_2D_ELEMENT_REPRESENTATION, - CURVE_3D_ELEMENT_REPRESENTATION, - AXISYMMETRIC_CURVE_2D_ELEMENT_REPRESENTATION, - PLANE_CURVE_2D_ELEMENT_REPRESENTATION, - POINT_ELEMENT_REPRESENTATION, - DIRECTIONALLY_EXPLICIT_ELEMENT_REPRESENTATION, - EXPLICIT_ELEMENT_REPRESENTATION, - SUBSTRUCTURE_ELEMENT_REPRESENTATION)) - SUBTYPE OF (representation); - node_list : LIST [1:?] OF node_representation; -WHERE - WR1: SIZEOF (QUERY(item <* node_list | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + - 'GEOMETRIC_NODE' - IN TYPEOF (item))) = 0; - END_ENTITY; -(* USED FROM (aic_machining_feature); *) -ENTITY pocket_bottom - SUBTYPE OF (shape_aspect); - WHERE - WR1: 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FEATURE_COMPONENT_DEFINITION' - IN TYPEOF (SELF.of_shape.definition); - WR2: SELF.description IN ['planar', 'complex', 'through']; - WR3: ((NOT (SELF.description = 'planar')) OR - (SIZEOF(QUERY ( pd <* USEDIN(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(QUERY ( pdr <* USEDIN(pd, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.DIRECTION_SHAPE_REPRESENTATION') - IN TYPEOF(pdr.used_representation)) AND - (pdr.used_representation.name = 'floor normal') )) = 1)) )) = 0)); - WR4 : ((NOT (SELF.description = 'planar')) OR - (SIZEOF(QUERY ( pd <* USEDIN(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(QUERY ( pdr <* USEDIN(pd, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LOCATION_SHAPE_REPRESENTATION') - IN TYPEOF(pdr.used_representation)) AND - (pdr.used_representation.name = 'floor location'))) = 1)) )) = 0)); - WR5 : ((NOT (SELF.description = 'complex')) OR - (SIZEOF(QUERY ( pd <* USEDIN(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(QUERY ( pdr <* USEDIN(pd, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FACE_SHAPE_REPRESENTATION' - IN TYPEOF(pdr.used_representation)) AND - (pdr.used_representation.name = 'floor face') )) = 1)) )) = 0)); - WR6: (NOT (SELF.description IN ['planar', 'complex']) OR - (SIZEOF (QUERY (pd <* USEDIN (SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - NOT (SIZEOF (QUERY (pdr <* USEDIN (pd, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' - IN TYPEOF (pdr.used_representation))) = 1))) = 0)); - WR7: (NOT (SELF.description IN ['planar', 'complex']) OR - (SIZEOF (QUERY (pd <* USEDIN (SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - NOT (SIZEOF (QUERY (impl_rep <* QUERY (pdr <* USEDIN (pd, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' - IN TYPEOF (pdr.used_representation)) | - NOT (SIZEOF (impl_rep.used_representation.items) - <= 1) )) = 0))) = 0)); - WR8: (NOT (SELF.description = 'through') OR - (SIZEOF (QUERY (pd <* USEDIN (SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - NOT (SIZEOF (QUERY (pdr <* USEDIN (pd, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' - IN TYPEOF (pdr.used_representation))) = 0))) = 0)); - WR9: (NOT (SELF.description IN ['planar', 'complex'])) OR - (SIZEOF (QUERY (pd <* USEDIN (SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - NOT (SIZEOF (QUERY (impl_rep <* QUERY (pdr <* USEDIN (pd, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' - IN TYPEOF (pdr.used_representation)) | - NOT (SIZEOF (QUERY (it <* impl_rep.used_representation.items | - (SIZEOF - (['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * - TYPEOF (it)) = 2) AND (it.name = 'radius'))) <= 1))) = 0))) = 0); - WR10: SIZEOF (QUERY (fcr <* QUERY (sar <* USEDIN (SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATING_SHAPE_ASPECT') | - (sar.description = 'pocket bottom usage') AND - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP' - IN TYPEOF (sar))) | - ((fcr.related_shape_aspect.description = 'bottom condition occurrence') - AND - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.POCKET' - IN TYPEOF(fcr.related_shape_aspect.of_shape.definition)) AND - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.POCKET_BOTTOM' - IN TYPEOF(fcr.relating_shape_aspect)) ) - )) >= 1; - WR11: ((NOT (SELF.description IN ['planar','complex'])) OR - (SIZEOF (QUERY (fcr <* QUERY (sar <* USEDIN (SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATING_SHAPE_ASPECT') | - (sar.description = 'pocket bottom usage') AND - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP' - IN TYPEOF (sar))) | - (fcr.related_shape_aspect.description = 'bottom condition occurrence') - AND - (fcr.related_shape_aspect.name IN - ['pocket depth start', 'pocket depth end']) - )) = 0)); -END_ENTITY; -- Pocket_bottom -(* USED FROM (structural_response_representation_schema); *) -ENTITY geometric_node - SUBTYPE OF (node_representation); -WHERE - WR1: SIZEOF (QUERY(item <* SELF\representation.items | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.POINT' - IN TYPEOF (item))) = 1; -END_ENTITY; -(* USED FROM (structural_response_representation_schema); *) -ENTITY node_with_solution_coordinate_system - SUBTYPE OF (node); -WHERE - WR1: ( (SIZEOF (QUERY(item <* SELF\representation.items | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + - 'FEA_AXIS2_PLACEMENT_3D' - IN TYPEOF (item))) = 1) - AND - (SELF\representation.context_of_items\ - geometric_representation_context.coordinate_space_dimension = 3) ) - OR - ( (SIZEOF (QUERY(item <* SELF\representation.items | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + - 'FEA_AXIS2_PLACEMENT_2D' - IN TYPEOF (item))) = 1) - AND - (SELF\representation.context_of_items\ - geometric_representation_context.coordinate_space_dimension = 2) ); -END_ENTITY; -(* USED FROM (structural_response_representation_schema); *) -ENTITY node_with_vector - SUBTYPE OF (node); -WHERE - WR1: SIZEOF (QUERY(item <* SELF\representation.items | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.DIRECTION' - IN TYPEOF (item))) = 1; -END_ENTITY; -(* USED FROM (structural_response_representation_schema); *) -ENTITY node - SUPERTYPE OF ( - NODE_WITH_VECTOR - ANDOR - NODE_WITH_SOLUTION_COORDINATE_SYSTEM) - SUBTYPE OF (node_representation); -WHERE - WR1: SIZEOF (QUERY(item <* SELF\representation.items | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.POINT' - IN TYPEOF (item))) = 1; -END_ENTITY; -(* USED FROM (structural_response_representation_schema); *) -ENTITY element_geometric_relationship; - element_ref : element_or_element_group; - item : analysis_item_within_representation; - aspect : element_aspect; -WHERE - WR1: 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.GEOMETRIC_REPRESENTATION_ITEM' IN TYPEOF(item.item); - WR2: consistent_geometric_reference (aspect, item.item); - WR3: consistent_element_or_group_reference (aspect, element_ref); -END_ENTITY; -(* USED FROM (structural_response_representation_schema); *) -ENTITY analysis_item_within_representation; - name : label; - description : text; - item : representation_item; - rep : representation; -WHERE - WR1: SIZEOF (QUERY (tmp <* using_representations(item) | - tmp :=: rep)) = 1; -END_ENTITY; -(* USED FROM (aic_machining_feature); *) -ENTITY pocket - SUBTYPE OF (feature_definition); - WHERE - WR1: (SELF\characterized_object.description IN - ['closed rectangular','open rectangular', 'complex', - 'circular cutout', 'complex cutout', 'recess']); - WR2: (SIZEOF(QUERY ( pds <* QUERY ( pd <* USEDIN(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' - IN TYPEOF(pd)) ) | (NOT (SIZEOF(QUERY ( sa_occ <* USEDIN(pds, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE') | - ((sa_occ.description = 'pocket depth occurrence') AND - (SIZEOF(QUERY ( sdr <* QUERY ( sar <* USEDIN(sa_occ, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | - ((sar.description = 'path feature component usage') AND - (sar.name = 'pocket depth') AND - (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_DEFINING_RELATIONSHIP') - IN TYPEOF(sar))) ) | - (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PATH_FEATURE_COMPONENT' - IN TYPEOF(sdr.relating_shape_aspect)) AND - (sdr.relating_shape_aspect.description ='linear')) )) - = 1)) )) = 1)) )) = 0); - WR3: SIZEOF(QUERY(pdr <* get_property_definition_representations (SELF) | - ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' - IN TYPEOF ( pdr.used_representation ) ) )) =1; - WR4: SIZEOF( QUERY( pd <* USEDIN( SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - SIZEOF( QUERY( pdr <* USEDIN( pd, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' - IN TYPEOF(pdr.used_representation)) AND - ({1 <= SIZEOF(pdr.used_representation.items) <= 2} ) )) = 1 )) = 1; - WR5: SIZEOF( QUERY( pd <* USEDIN( SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - SIZEOF( QUERY( pdr <* USEDIN( pd, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN - TYPEOF(pdr.used_representation)) AND - (SIZEOF( QUERY( srwp_i <* pdr.used_representation.items | - (srwp_i.name = 'orientation') OR - (srwp_i.name = 'fillet radius'))) - = SIZEOF(pdr.used_representation.items)) )) = 1 )) = 1; - WR6: SIZEOF (QUERY (pd <* USEDIN (SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - NOT (SIZEOF (QUERY (impl_rep <* QUERY (pdr <* USEDIN (pd, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' - IN TYPEOF (pdr.used_representation)) | - NOT (SIZEOF (QUERY (it <* impl_rep.used_representation.items | - (SIZEOF ( - ['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * - TYPEOF (it)) = 2) AND (it.name = 'fillet radius'))) <= 1))) - = 0))) = 0; - WR7: ((NOT (SELF\characterized_object.description IN ['complex', - 'non-circular cutout','recess'])) OR - (SIZEOF(QUERY ( pds <* QUERY ( pd <* USEDIN(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' - IN TYPEOF(pd)) ) | (NOT (SIZEOF(QUERY ( sa_occ <* USEDIN(pds, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE') | - ((sa_occ.description = 'boundary occurrence') AND - (SIZEOF(QUERY ( sdr <* QUERY ( sar <* USEDIN(sa_occ, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | - ((sar.description = 'profile usage') AND - (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_DEFINING_RELATIONSHIP') - IN TYPEOF(sar))) ) | ((SIZEOF([ - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CIRCULAR_CLOSED_PROFILE', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.NGON_CLOSED_PROFILE', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.RECTANGULAR_CLOSED_PROFILE', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CLOSED_PATH_PROFILE', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SQUARE_U_PROFILE', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PARTIAL_CIRCULAR_PROFILE', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ROUNDED_U_PROFILE', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.VEE_PROFILE', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.TEE_PROFILE', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.OPEN_PATH_PROFILE'] * - TYPEOF(sdr.relating_shape_aspect)) = 1)) )) = 1)) )) - = 1)) )) = 0)); - WR8: ((NOT (SELF\characterized_object.description = - 'closed rectangular')) - OR (SIZEOF(QUERY ( pds <* QUERY ( pd <* USEDIN(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' - IN TYPEOF(pd)) ) | (NOT (SIZEOF(QUERY ( sa_occ <* USEDIN(pds, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE') | - ((sa_occ.description = 'closed boundary occurrence') AND - (SIZEOF(QUERY ( sdr <* QUERY ( sar <* USEDIN(sa_occ, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | - ((sar.description = 'profile usage') AND - (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_DEFINING_RELATIONSHIP') - IN TYPEOF(sar))) ) | - (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.RECTANGULAR_CLOSED_PROFILE' - IN TYPEOF(sdr.relating_shape_aspect))) )) = 1)) )) - = 1)) )) = 0)); - WR9: ((NOT (SELF\characterized_object.description = 'open rectangular')) - OR (SIZEOF(QUERY ( pds <* QUERY ( pd <* USEDIN(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' - IN TYPEOF(pd)) ) | (NOT (SIZEOF(QUERY ( sa_occ <* USEDIN(pds, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE') | - ((sa_occ.description = 'open boundary occurrence') AND - (SIZEOF(QUERY ( sdr <* QUERY ( sar <* USEDIN(sa_occ, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | - ((sar.description = 'profile usage') AND - (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_DEFINING_RELATIONSHIP') - IN TYPEOF(sar))) ) | - (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SQUARE_U_PROFILE' - IN TYPEOF(sdr.relating_shape_aspect))) )) = 1)) )) - = 1)) )) = 0)); - WR10: (SIZEOF(QUERY ( pds <* QUERY ( pd <* USEDIN(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' - IN TYPEOF(pd)) ) | (NOT (SIZEOF(QUERY ( sa_occ <* USEDIN(pds, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE') | - ((sa_occ.description = 'bottom condition occurrence') AND - (SIZEOF(QUERY ( sdr <* QUERY ( sar <* USEDIN(sa_occ, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | - ((sar.description = 'pocket bottom usage') AND - (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP') - IN TYPEOF(sar))) ) | - (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.POCKET_BOTTOM' - IN TYPEOF(sdr.relating_shape_aspect)) AND - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.POCKET' - IN TYPEOF(sdr.related_shape_aspect.of_shape.definition))) - )) = 1)) )) = 1)) )) = 0); - WR11: ((NOT (SELF\characterized_object.description IN ['complex', - 'non-circular cutout','recess'])) OR - (SIZEOF(QUERY ( pds <* QUERY ( pd <* USEDIN(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' - IN TYPEOF(pd)) ) | (NOT (SIZEOF(QUERY ( sa_occ <* USEDIN(pds, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE') | - ((sa_occ.description = 'change in boundary occurrence') AND - (SIZEOF(QUERY ( fcr <* QUERY ( sar <* USEDIN(sa_occ, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATING_SHAPE_ASPECT') | - ((sar.description = 'taper usage') AND - (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP') - IN TYPEOF(sar))) ) | - (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.TAPER' - IN TYPEOF(fcr.relating_shape_aspect)) AND - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.POCKET' - IN TYPEOF(fcr.related_shape_aspect.of_shape.definition)) AND - (fcr.related_shape_aspect.description - IN ['angle taper','directed taper'])) - )) = 1)) )) <= 1)) )) = 0)); - WR12: (NOT (SELF\characterized_object.description = 'circular cutout')) OR - (SIZEOF (QUERY (pds <* QUERY (pd <* USEDIN (SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN - TYPEOF (pd)) | NOT (SIZEOF (QUERY (sa_occ <* USEDIN (pds, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE') | - (sa_occ.description = 'enclosed boundary occurrence') AND - (SIZEOF (QUERY (sdr <* QUERY (sar <* USEDIN (sa_occ, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | - (sar.description = 'profile usage') AND - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_DEFINING_RELATIONSHIP' - IN TYPEOF (sar))) | - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CIRCULAR_CLOSED_PROFILE' - IN TYPEOF (sdr.relating_shape_aspect)))) - = 1))) = 1))) = 0); - WR13: (NOT (SELF\characterized_object.description IN - ['circular cutout','complex cutout'])) OR - (SIZEOF (QUERY (pds <* QUERY (pd <* USEDIN (SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN - TYPEOF (pd)) | NOT (SIZEOF (QUERY (sa_occ <* USEDIN (pds, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE') | - (sa_occ.description = 'bottom condition occurrence') AND - (SIZEOF (QUERY (sdr <* QUERY (sar <* USEDIN (sa_occ, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | - (sar.description = 'pocket bottom usage') AND - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP' - IN TYPEOF (sar))) | - (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.POCKET_BOTTOM' - IN TYPEOF (sdr.relating_shape_aspect)) AND - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.POCKET' - IN TYPEOF (sdr.related_shape_aspect.of_shape.definition))AND - (sdr.relating_shape_aspect.description = 'through') ) - )) = 1))) = 1))) = 0); - WR14: (NOT (SELF\characterized_object.description = 'recess')) OR - (SIZEOF (QUERY (pds <* QUERY (pd <* USEDIN (SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN - TYPEOF (pd)) | - NOT (SIZEOF (QUERY (sa_occ <* USEDIN (pds, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE') | - (sa_occ.description = 'bottom condition occurrence') AND - (SIZEOF (QUERY (sdr <* QUERY (sar <* USEDIN (sa_occ, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | - (sar.description = 'pocket bottom usage') AND - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP' - IN TYPEOF (sar))) | - (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.POCKET_BOTTOM' - IN TYPEOF (sdr.relating_shape_aspect)) AND - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.POCKET' - IN TYPEOF (sdr.related_shape_aspect.of_shape.definition)) AND - (sdr.relating_shape_aspect.description IN ['planar','complex']) ) - )) = 1))) = 1))) = 0); - WR15: SIZEOF(QUERY(pdr <* get_property_definition_representations (SELF) | - ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PLANAR_SHAPE_REPRESENTATION' - IN TYPEOF ( pdr.used_representation ) ) AND - ( pdr.used_representation.name ='maximum feature limit'))) >=0; - - WR16: ((NOT (SELF\characterized_object.description IN - ['closed rectangular','open rectangular', 'complex', - 'recess'])) OR - (SIZEOF(QUERY ( pds <* USEDIN(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' - IN TYPEOF(pds)) AND (SIZEOF(QUERY ( csa <* USEDIN(pds, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE') | - (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.COMPOSITE_SHAPE_ASPECT' - IN TYPEOF(csa)) AND - (csa.name='uncut volume') AND - (SIZEOF(QUERY ( sar <* csa.component_relationships | - ((('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP' - IN TYPEOF(sar)) AND - (SIZEOF(['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.BOSS','AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROTRUSION'] - * TYPEOF(sar.related_shape_aspect))=1) - ) ))) = 1)) )) <= 1)) )) = 1)); - - WR17: ((NOT (SELF\characterized_object.description IN - ['closed rectangular','open rectangular'])) OR - (SIZEOF(QUERY ( pds <* QUERY ( pd <* USEDIN(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' - IN TYPEOF(pd)) ) | (NOT (SIZEOF(QUERY ( sa_occ <* USEDIN(pds, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE') | - ((sa_occ.description = 'change in boundary occurrence') AND - (SIZEOF(QUERY ( fcr <* QUERY ( sar <* USEDIN(sa_occ, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATING_SHAPE_ASPECT') | - ((sar.description = 'taper usage') AND - (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP') - IN TYPEOF(sar))) ) | - (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.TAPER' - IN TYPEOF(fcr.relating_shape_aspect)) AND - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.POCKET' - IN TYPEOF(fcr.related_shape_aspect.of_shape.definition)) AND - (fcr.related_shape_aspect.description - IN ['angle taper','directed taper'])) - )) >= 1)) )) <=1)) )) = 0)); - -END_ENTITY; -- pocket -(* USED FROM (aic_machining_feature); *) -ENTITY pattern_offset_membership - SUBTYPE OF (feature_component_relationship); - WHERE - WR1 : (SIZEOF(QUERY ( fcr <* QUERY ( sar <* USEDIN( - SELF.relating_shape_aspect, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.' - + 'RELATING_SHAPE_ASPECT') | - (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP' - IN TYPEOF(sar)) AND (sar :<>: SELF)) ) | - ((SIZEOF (QUERY( pdr <*(QUERY(pd <* USEDIN - (fcr.related_shape_aspect.of_shape, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' - IN TYPEOF(pd))) | - SIZEOF (['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CIRCULAR_PATTERN', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.RECTANGULAR_PATTERN'] - * TYPEOF(pdr.definition)) =1 )) = 0 )) )) = 0); - WR2 : (SIZEOF(QUERY ( fcr <* QUERY ( sar <* USEDIN( - SELF.related_shape_aspect, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | - (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP' - IN TYPEOF(sar)) AND (sar :<>: SELF)) ) | - (fcr.description='modified pattern') AND - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MODIFIED_PATTERN' - IN TYPEOF(fcr.relating_shape_aspect)) )) >= 1); - WR3 : (SIZEOF(QUERY ( fcr <* QUERY ( sar <* USEDIN( - SELF.related_shape_aspect, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | - (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP' - IN TYPEOF(sar)) AND (sar :<>: SELF)) ) | - (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MODIFIED_PATTERN' - IN TYPEOF(fcr.relating_shape_aspect)) AND - (NOT (SIZEOF(QUERY ( modfcr <* QUERY ( modsar <* USEDIN( - fcr.relating_shape_aspect,'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATING_SHAPE_ASPECT') | - ((SIZEOF(['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CIRCULAR_PATTERN', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.RECTANGULAR_PATTERN'] * - TYPEOF(modsar.related_shape_aspect.of_shape.definition)) = 1) AND - (modsar :<>: fcr)) ) | - (NOT (modfcr.related_shape_aspect.of_shape.definition :=: - SELF.relating_shape_aspect.of_shape.definition)) )) - = 0))) )) = 0); - WR4 : ((NOT ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.RECTANGULAR_PATTERN' - IN TYPEOF(SELF.relating_shape_aspect.of_shape.definition))) OR - (SIZEOF(QUERY ( pd <* USEDIN(SELF.related_shape_aspect, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(USEDIN(pd,'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')) = 2)) )) = 0)); - WR5 : ((NOT ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CIRCULAR_PATTERN' - IN TYPEOF(SELF.relating_shape_aspect.of_shape.definition))) OR - (SIZEOF(QUERY ( pd <* USEDIN(SELF.related_shape_aspect, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(USEDIN(pd,'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')) = 1)) )) = 0)); - WR6 : ((NOT ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CIRCULAR_PATTERN' - IN TYPEOF(SELF.relating_shape_aspect.of_shape.definition))) OR - (SIZEOF(QUERY ( pd <* USEDIN(SELF.related_shape_aspect, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(QUERY ( pdr <* USEDIN(pd, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - (NOT (SIZEOF(pdr.used_representation.items) = 2)) )) = 0)) )) - = 0)); - WR7 : ((NOT ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CIRCULAR_PATTERN' - IN TYPEOF(SELF.relating_shape_aspect.of_shape.definition))) OR - (SIZEOF(QUERY ( pd <* USEDIN(SELF.related_shape_aspect, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') - IN TYPEOF(pdr.used_representation)) ) | - (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | - (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM' - IN TYPEOF(it)) AND - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.COUNT_MEASURE' - IN TYPEOF(it\measure_with_unit.value_component)) AND - (it.name = 'index number')) )) = 1)) )) = 0)) )) = 0)); - WR8 : ((NOT ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CIRCULAR_PATTERN' - IN TYPEOF(SELF.relating_shape_aspect.of_shape.definition))) OR - (SIZEOF(QUERY ( pd <* USEDIN(SELF.related_shape_aspect, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') - IN TYPEOF(pdr.used_representation)) ) | - (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | - (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PLANE_ANGLE_MEASURE_WITH_UNIT' - IN TYPEOF(it)) AND (it.name = 'offset')) )) = 1)) )) = 0)) )) - = 0)); - WR9: ((NOT ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.RECTANGULAR_PATTERN' - IN TYPEOF(SELF.relating_shape_aspect.of_shape.definition))) OR - (SIZEOF(QUERY ( pd <* USEDIN(SELF.related_shape_aspect, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION')| - (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') - IN TYPEOF(pdr.used_representation)) ) | - (NOT (SIZEOF(impl_rep.used_representation.items ) = 3)) )) - = 0)) )) = 0)); - WR10: ((NOT ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.RECTANGULAR_PATTERN' - IN TYPEOF(SELF.relating_shape_aspect.of_shape.definition))) OR - (SIZEOF(QUERY ( pd <* USEDIN(SELF.related_shape_aspect, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION')| - (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') - IN TYPEOF(pdr.used_representation)) ) | - (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | - (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM' - IN TYPEOF(it)) AND - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.COUNT_MEASURE' - IN TYPEOF(it\measure_with_unit.value_component)) AND - (it.name = 'row index')) )) = 1)) )) = 0)) )) = 0)); - WR11: ((NOT ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.RECTANGULAR_PATTERN' - IN TYPEOF(SELF.relating_shape_aspect.of_shape.definition))) OR - (SIZEOF(QUERY ( pd <* USEDIN(SELF.related_shape_aspect, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') - IN TYPEOF(pdr.used_representation)) ) | - (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | - (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM' - IN TYPEOF(it)) AND - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.COUNT_MEASURE' - IN TYPEOF(it\measure_with_unit.value_component)) AND - (it.name = 'column index')) )) = 1)) )) = 0)) )) = 0)); - WR12: ((NOT ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.RECTANGULAR_PATTERN' - IN TYPEOF(SELF.relating_shape_aspect.of_shape.definition))) OR - (SIZEOF(QUERY ( pd <* USEDIN(SELF.related_shape_aspect, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') - IN TYPEOF(pdr.used_representation)) ) | - (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | - (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT' - IN TYPEOF(it)) AND (it.name = 'offset distance')) )) = 1)) )) - = 0)) )) = 0)); - WR13: ((NOT ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.RECTANGULAR_PATTERN' - IN TYPEOF(SELF.relating_shape_aspect.of_shape.definition))) OR - (SIZEOF(QUERY ( pd <* USEDIN(SELF.related_shape_aspect, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(QUERY ( pdr <* USEDIN(pd, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.DIRECTION_SHAPE_REPRESENTATION' - IN TYPEOF(pdr.used_representation)) AND - (pdr.used_representation.name = 'offset direction')) )) = 1)) )) - = 0)); -END_ENTITY; -- pattern_offset_membership -(* USED FROM (aic_machining_feature); *) -ENTITY pattern_omit_membership - SUBTYPE OF (feature_component_relationship); - WHERE - WR1: (SIZEOF(QUERY ( fcr <* QUERY ( sar <* USEDIN( - SELF.relating_shape_aspect, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.' - + 'RELATING_SHAPE_ASPECT') | - (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP' - IN TYPEOF(sar)) AND (sar :<>: SELF)) ) | - ((SIZEOF (QUERY( pdr <*(QUERY(pd <* USEDIN - (fcr.related_shape_aspect.of_shape, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' - IN TYPEOF(pd))) | - SIZEOF (['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CIRCULAR_PATTERN', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.RECTANGULAR_PATTERN'] - * TYPEOF(pdr.definition)) =1 )) = 0 )) )) = 0); - WR2: (SIZEOF(QUERY ( fcr <* QUERY ( sar <* USEDIN( - SELF.related_shape_aspect, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | - (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP' - IN TYPEOF(sar)) AND (sar :<>: SELF)) ) | - (fcr.description='modified pattern') AND - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MODIFIED_PATTERN' - IN TYPEOF(fcr.relating_shape_aspect)) )) >= 1); - WR3: (SIZEOF(QUERY ( fcr <* QUERY ( sar <* USEDIN( - SELF.related_shape_aspect, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | - (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP' - IN TYPEOF(sar)) AND (sar :<>: SELF)) ) | - (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MODIFIED_PATTERN' - IN TYPEOF(fcr.relating_shape_aspect)) AND - (NOT (SIZEOF(QUERY ( modfcr <* QUERY ( modsar <* USEDIN( - fcr.relating_shape_aspect,'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATING_SHAPE_ASPECT') | - ((SIZEOF(['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CIRCULAR_PATTERN', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.RECTANGULAR_PATTERN'] * - TYPEOF(modsar.related_shape_aspect.of_shape.definition)) = 1) AND - (modsar :<>: fcr)) ) | - (NOT (modfcr.related_shape_aspect.of_shape.definition :=: - SELF.relating_shape_aspect.of_shape.definition)) )) - = 0))) )) = 0); - WR4: (SIZEOF(QUERY ( pd <* USEDIN(SELF.related_shape_aspect, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(USEDIN(pd,'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')) = 1)) )) = 0); - WR5: ((NOT ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CIRCULAR_PATTERN' - IN TYPEOF(SELF.relating_shape_aspect.of_shape.definition))) OR - (SIZEOF(QUERY ( pd <* USEDIN(SELF.related_shape_aspect, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(QUERY ( pdr <* USEDIN(pd, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - (NOT (SIZEOF(pdr.used_representation.items) = 1)) )) = 0)) )) = 0)); - WR6: ((NOT ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CIRCULAR_PATTERN' - IN TYPEOF(SELF.relating_shape_aspect.of_shape.definition))) OR - (SIZEOF(QUERY ( pd <* USEDIN(SELF.related_shape_aspect, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') - IN TYPEOF(pdr.used_representation)) ) | - (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | - (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM' - IN TYPEOF(it)) AND - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.COUNT_MEASURE' - IN TYPEOF(it\measure_with_unit.value_component)) AND - (it.name = 'index number')) )) = 1)) )) = 0)) )) = 0)); - WR7: ((NOT ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.RECTANGULAR_PATTERN' - IN TYPEOF(SELF.relating_shape_aspect.of_shape.definition))) OR - (SIZEOF(QUERY ( pd <* USEDIN(SELF.related_shape_aspect, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(QUERY ( pdr <* USEDIN(pd, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - (NOT (SIZEOF(pdr.used_representation.items) = 2)) )) = 0)) )) = 0)); - WR8: ((NOT ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.RECTANGULAR_PATTERN' - IN TYPEOF(SELF.relating_shape_aspect.of_shape.definition))) OR - (SIZEOF(QUERY ( pd <* USEDIN(SELF.related_shape_aspect, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') - IN TYPEOF(pdr.used_representation)) ) | - (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | - (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM' - IN TYPEOF(it)) AND ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.COUNT_MEASURE' - IN TYPEOF(it\measure_with_unit.value_component)) AND - (it.name = 'row index')) )) = 1)) )) = 0)) )) = 0)); - WR9: ((NOT ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.RECTANGULAR_PATTERN' - IN TYPEOF(SELF.relating_shape_aspect.of_shape.definition))) OR - (SIZEOF(QUERY ( pd <* USEDIN(SELF.related_shape_aspect, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') - IN TYPEOF(pdr.used_representation)) ) | - (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | - (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM' - IN TYPEOF(it)) AND ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.COUNT_MEASURE' - IN TYPEOF(it\measure_with_unit.value_component)) AND - (it.name = 'column index')) )) = 1)) )) = 0)) )) = 0)); -END_ENTITY; -- pattern_omit_membership -(* USED FROM (Multi_linguism_mim); *) -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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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; -(* USED FROM (structural_response_representation_schema); *) -ENTITY direction_node - SUBTYPE OF (direction); - node_1 : node_representation; - node_2 : node_representation; -DERIVE - SELF\direction.direction_ratios : LIST [2:3] OF REAL := - build_direction_node (node_1, node_2); -WHERE - WR1: SIZEOF (QUERY(item <* node_1\representation.items | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CARTESIAN_POINT' IN TYPEOF (item))) = 1; - WR2: SIZEOF (QUERY(item <* node_2\representation.items | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CARTESIAN_POINT' IN TYPEOF (item))) = 1; - WR3: NOT ((direction_ratios[1] = 0.0) AND - (direction_ratios[2] = 0.0) AND - (direction_ratios[3] = 0.0)); -END_ENTITY; -(* USED FROM (aic_machining_feature); *) -ENTITY planar_shape_representation - SUBTYPE OF (shape_representation); -WHERE - WR1: SIZEOF (SELF.items) = 1; - WR2: SIZEOF (QUERY (it <* SELF.items | - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PLANE' IN TYPEOF (it)))) = 1 ; -END_ENTITY; -(* USED FROM (representation_schema); *) - 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; -(* USED FROM (representation_schema); *) - ENTITY mapped_item - SUBTYPE OF (representation_item); - mapping_source : representation_map; - mapping_target : representation_item; - WHERE - WR1: acyclic_mapped_representation(SELF); - END_ENTITY; -(* USED FROM (aic_machining_feature); *) -ENTITY partial_circular_profile - SUBTYPE OF (shape_aspect); - WHERE - WR1: ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FEATURE_COMPONENT_DEFINITION' - IN TYPEOF(SELF.of_shape.definition)); - WR2: (SIZEOF(QUERY ( pd <* USEDIN(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(QUERY ( pdr <* USEDIN(pd, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') - IN TYPEOF(pdr.used_representation)) )) = 1)) )) = 0); - WR3: (SIZEOF(QUERY ( pd <* USEDIN(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') - IN TYPEOF(pdr.used_representation)) ) | - (NOT (SIZEOF (impl_rep.used_representation.items) >= 3)) )) - = 0)) )) = 0); - WR4: (SIZEOF(QUERY ( pd <* USEDIN(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') - IN TYPEOF(pdr.used_representation)) ) | - (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | - (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PLACEMENT' - IN TYPEOF(it)) AND (it.name = 'orientation')) )) = 1)) )) - = 0)) )) = 0); - WR5: (SIZEOF(QUERY ( pd <* USEDIN(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') - IN TYPEOF(pdr.used_representation)) ) | - (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | - ((SIZEOF([ - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * - TYPEOF(it)) = 2) AND (it.name = 'radius')))) = 1)) )) - = 0)) )) = 0); - WR6: (SIZEOF(QUERY ( pd <* USEDIN(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') - IN TYPEOF(pdr.used_representation)) ) | - (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | - ((SIZEOF([ - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PLANE_ANGLE_MEASURE_WITH_UNIT'] * - TYPEOF(it)) = 2) AND (it.name = 'sweep angle')) )) = 1)) )) - = 0)) )) = 0); - WR7: SIZEOF (QUERY (pd <* USEDIN (SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - NOT (SIZEOF (QUERY (pdr <* USEDIN (pd, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PLANAR_SHAPE_REPRESENTATION' - IN TYPEOF (pdr.used_representation))AND - (pdr.used_representation.name = 'profile limit'))) <= 1))) = 0; -END_ENTITY; -- partial_circular_profile -(* USED FROM (aic_machining_feature); *) -ENTITY path_feature_component - SUBTYPE OF (shape_aspect); - WHERE - WR1: ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FEATURE_COMPONENT_DEFINITION' - IN TYPEOF(SELF.of_shape.definition)); - WR2: (SELF.description IN ['partial circular','complete circular', - 'linear','complex']); - WR3: ((NOT (SELF.description = 'complex')) OR - (SIZEOF(QUERY ( pd <* USEDIN(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(QUERY ( pdr <* USEDIN(pd, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') - IN TYPEOF(pdr.used_representation)) )) = 1)) )) = 0)); - WR4: ((SIZEOF(QUERY ( pd <* USEDIN(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') - IN TYPEOF(pdr.used_representation)) ) | - (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | - (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PLACEMENT' - IN TYPEOF(it)) AND (it.name = 'orientation')) )) = 1)) )) - = 0)) )) = 0)); - WR5: ((NOT (SELF.description = 'partial circular')) OR - (SIZEOF(QUERY ( pd <* USEDIN(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') - IN TYPEOF(pdr.used_representation)) ) | - (NOT (SIZEOF(impl_rep.used_representation.items) = 3)) )) - = 0)) )) = 0)); - WR6: ((NOT (SELF.description = 'partial circular')) OR - (SIZEOF(QUERY ( pd <* USEDIN(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') - IN TYPEOF(pdr.used_representation)) ) | - (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | - ((SIZEOF([ - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * - TYPEOF(it)) = 2) AND (it.name = 'radius')) )) = 1)) )) - = 0)) )) = 0)); - WR7: ((NOT (SELF.description = 'partial circular')) OR - (SIZEOF(QUERY ( pd <* USEDIN(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') - IN TYPEOF(pdr.used_representation)) ) | - (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | - ((SIZEOF([ - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PLANE_ANGLE_MEASURE_WITH_UNIT'] * - TYPEOF(it)) = 2) AND (it.name = 'sweep angle')) )) = 1)) )) - = 0)) )) = 0)); - WR8: ((NOT (SELF.description = 'complete circular')) OR - (SIZEOF(QUERY ( pd <* USEDIN(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') - IN TYPEOF(pdr.used_representation)) ) | - (NOT (SIZEOF(impl_rep.used_representation.items) = 2)) )) - = 0)) )) = 0)); - WR9: ((NOT (SELF.description = 'complete circular')) OR - (SIZEOF(QUERY ( pd <* USEDIN(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') - IN TYPEOF(pdr.used_representation)) ) | - (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | - ((SIZEOF([ - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * - TYPEOF(it)) = 2) AND (it.name = 'radius')) )) = 1)) )) - = 0)) )) = 0)); - WR10: ((NOT (SELF.description = 'linear')) OR - (SIZEOF(QUERY ( pd <* USEDIN(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') - IN TYPEOF(pdr.used_representation)) ) | - (NOT (SIZEOF(impl_rep.used_representation.items) = 2)) )) - = 0)) )) = 0)); - WR11: ((NOT (SELF.description = 'linear')) OR - (SIZEOF(QUERY ( pd <* USEDIN(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') - IN TYPEOF(pdr.used_representation)) ) | - (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | - ((SIZEOF([ - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * - TYPEOF(it)) = 2) AND (it.name = 'distance')) )) = 1)) )) - = 0)) )) = 0)); - WR12: ((NOT (SELF.description = 'linear')) OR - (SIZEOF(QUERY ( pd <* USEDIN(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(QUERY ( pdr <* USEDIN(pd, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.DIRECTION_SHAPE_REPRESENTATION' - IN TYPEOF(pdr.used_representation)) )) = 1)) )) = 0)); - WR13: ((NOT (SELF.description = 'complex')) OR - (SIZEOF(QUERY ( pd <* USEDIN(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(QUERY ( pdr <* USEDIN(pd, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PATH_SHAPE_REPRESENTATION' - IN TYPEOF(pdr.used_representation)) AND - (pdr.used_representation.name = 'sweep path')AND - (SIZEOF( QUERY( srwp_i <* pdr.used_representation.items | - (srwp_i.name = 'profile shape') )) = 1) - ) )) = 1)) )) = 0)); -END_ENTITY; -- path_feature_component -(* USED FROM (aic_machining_feature); *) -ENTITY outer_round - SUBTYPE OF (feature_definition); - WHERE - WR1: ((NOT (SELF\characterized_object.description = 'outer diameter')) OR - (SIZEOF( QUERY( pd <* USEDIN( SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - SIZEOF( QUERY( pdr <* USEDIN( pd, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' - IN TYPEOF(pdr.used_representation)) AND - (SIZEOF (pdr.used_representation.items) = 3) )) = 1 )) = 1)); - WR2: ((NOT (SELF\characterized_object.description - = 'outer diameter to shoulder')) OR - (SIZEOF( QUERY( pd <* USEDIN( SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - SIZEOF( QUERY( pdr <* USEDIN( pd, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' - IN TYPEOF(pdr.used_representation)) AND - ( {2 <= SIZEOF(pdr.used_representation.items) <= 3}) )) = 1 )) = 1)); - WR3: (SELF\characterized_object.description IN - ['outer diameter', 'outer diameter to shoulder']); - WR4: ((NOT (SELF\characterized_object.description = 'outer diameter')) OR - (SIZEOF( QUERY ( pd <* USEDIN(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') - IN TYPEOF(pdr.used_representation)) ) | - (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | - ((SIZEOF([ - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * - TYPEOF(it)) = 2) AND (it.name = 'length')) )) = 1)) )) - = 0)) )) = 0)); - WR5: (SIZEOF(QUERY ( pd <* USEDIN(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') - IN TYPEOF(pdr.used_representation)) ) | - (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | - ((SIZEOF - (['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * - TYPEOF(it)) = 2) AND (it.name = 'diameter')) )) = 1)) )) - = 0)) )) = 0); - WR6: ((NOT (SELF\characterized_object.description - = 'outer diameter to shoulder')) OR ( - SIZEOF(QUERY ( pds <* QUERY ( pd <* USEDIN(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN - TYPEOF(pd)) ) | - (NOT (SIZEOF(QUERY ( sa_occ <* USEDIN(pds, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE') | - ((sa_occ.description = 'v-shape boundary occurrence') AND - (SIZEOF(QUERY ( sdr <* QUERY ( sar <* USEDIN(sa_occ, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | - ((sar.description = 'profile usage') AND - (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_DEFINING_RELATIONSHIP') - IN TYPEOF(sar))) ) | - (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.VEE_PROFILE' - IN TYPEOF(sdr.relating_shape_aspect)) AND - (sdr.relating_shape_aspect.description = 'v-shape')) )) = 1)) )) - = 1)) )) = 0)); - WR7: ((NOT (SELF\characterized_object.description = 'outer diameter')) OR - (SIZEOF(QUERY ( pds <* QUERY ( pd <* USEDIN(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' - IN TYPEOF(pd)) ) | (NOT (SIZEOF(QUERY ( sa_occ <* USEDIN(pds, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE') | - ((sa_occ.description = 'reduced size occurrence') AND - (SIZEOF(QUERY ( sdr <* QUERY ( sar <* USEDIN(sa_occ, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | - ((sar.description = 'taper usage') AND - (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP') - IN TYPEOF(sar))) ) | - (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.TAPER' - IN TYPEOF(sdr.relating_shape_aspect)) AND - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.OUTER_ROUND' - IN TYPEOF(sdr.related_shape_aspect.of_shape.definition)) AND - (sdr.name = 'reduced size')) - )) = 1)) )) - <= 1)) )) = 0)); - WR8: ((NOT (SELF\characterized_object.description = - 'outer diameter to shoulder')) OR - (SIZEOF( QUERY ( pd <* USEDIN(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') - IN TYPEOF(pdr.used_representation)) ) | - (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | - ((SIZEOF([ - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * - TYPEOF(it)) = 2) AND (it.name = 'length')) )) <= 1)) )) - = 0)) )) = 0)); - WR9: ((NOT (SELF\characterized_object.description = - 'outer diameter to shoulder')) OR - (SIZEOF( QUERY ( pd <* USEDIN(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') - IN TYPEOF(pdr.used_representation)) ) | - (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | - ((SIZEOF([ - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * - TYPEOF(it)) = 2) AND (it.name = 'feature length')) )) <= 1)) )) - = 0)) )) = 0)); -END_ENTITY; -- outer_round -(* USED FROM (geometry_schema); *) -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; -(* USED FROM (aic_machining_feature); *) -ENTITY outside_profile - SUBTYPE OF (feature_definition); - WHERE - WR1: SIZEOF( QUERY( pd <* USEDIN( SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - SIZEOF( QUERY( pdr <* USEDIN( pd, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' - IN TYPEOF(pdr.used_representation)) AND - (SIZEOF (pdr.used_representation.items) = 1) )) = 1 )) = 1; - WR2: SIZEOF (QUERY (pds <* QUERY (pd <* USEDIN (SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' - IN TYPEOF (pd)) | - NOT (SIZEOF (QUERY (sa_occ <* USEDIN (pds, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE') | - (sa_occ.description IN ['boundary occurrence', - 'non-planar boundary occurrence', - 'partial circular boundary occurrence', - 'closed circular boundary occurrence', - 'open rectangular boundary occurrence', - 'closed rectangular boundary occurrence']) )) =1) ))=0; - WR3: (NOT(SIZEOF (QUERY (pds <* QUERY (pd <* USEDIN (SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' - IN TYPEOF (pd)) | - NOT (SIZEOF (QUERY (sa_occ <* USEDIN (pds, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE') | - (sa_occ.description = 'boundary occurrence') )) =1) ))=0)) OR - (SIZEOF (QUERY (pds <* QUERY (pd <* USEDIN (SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' - IN TYPEOF (pd)) | - NOT (SIZEOF (QUERY (sa_occ <* USEDIN (pds, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE') | - (SIZEOF (QUERY (sdr <* QUERY (sar <* USEDIN (sa_occ, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | - (sar.description = 'profile usage') AND - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF (sar))) | - (SIZEOF (['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CIRCULAR_CLOSED_PROFILE', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.NGON_CLOSED_PROFILE', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.RECTANGULAR_CLOSED_PROFILE', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CLOSED_PATH_PROFILE', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SQUARE_U_PROFILE', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PARTIAL_CIRCULAR_PROFILE', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ROUNDED_U_PROFILE', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LINEAR_PROFILE', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.VEE_PROFILE', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.TEE_PROFILE', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.OPEN_PATH_PROFILE'] * - TYPEOF (sdr.relating_shape_aspect)) = 1) AND - (sdr.relating_shape_aspect.description = 'outside boundary'))) - = 1))) = 1))) = 0); - WR4: (NOT(SIZEOF (QUERY (pds <* QUERY (pd <* USEDIN (SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' - IN TYPEOF (pd)) | - NOT (SIZEOF (QUERY (sa_occ <* USEDIN (pds, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE') | - (sa_occ.description IN ['complex boundary occurrence', - 'partial circular boundary occurrence', - 'closed circular boundary occurrence', - 'open rectangular boundary occurrence', - 'closed rectangular boundary occurrence']) ))=1) ))=0)) OR - (SIZEOF (QUERY (pds <* QUERY (pd <* USEDIN (SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' - IN TYPEOF (pd)) | - NOT (SIZEOF (QUERY (sa_occ <* USEDIN (pds, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE') | - NOT(SIZEOF (QUERY (sdr <* QUERY (sar <* USEDIN (sa_occ, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | - (sar.description = 'profile floor usage') AND - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP' - IN TYPEOF (sar))) | - (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROFILE_FLOOR' - IN TYPEOF (sdr.relating_shape_aspect)) AND - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.OUTSIDE_PROFILE' - IN TYPEOF (sdr.related_shape_aspect.of_shape.definition))) - )) = 1))) = 0))) = 0); - WR5: (NOT(SIZEOF (QUERY (pds <* QUERY (pd <* USEDIN (SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' - IN TYPEOF (pd)) | - NOT (SIZEOF (QUERY (sa_occ <* USEDIN (pds, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE') | - (sa_occ.description IN ['outside boundary', - 'complex boundary occurrence', - 'partial circular boundary occurrence', - 'closed circular boundary occurrence', - 'open rectangular boundary occurrence', - 'closed rectangular boundary occurrence']) ))=1) ))=0)) OR - (SIZEOF (QUERY (pds <* QUERY (pd <* USEDIN (SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' - IN TYPEOF (pd)) | - NOT (SIZEOF (QUERY (sa_occ <* USEDIN (pds, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE') | - (SIZEOF (QUERY (sdr <* QUERY (sar <* USEDIN (sa_occ, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | - (sar.description = 'path feature component usage') AND - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF (sar))) | - (SIZEOF (['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PATH_FEATURE_COMPONENT'] * - TYPEOF (sdr.relating_shape_aspect)) = 1) AND - (sdr.name = 'profile swept shape') AND - (sdr.relating_shape_aspect.description='linear') )) = 1))) - = 1))) = 0); - WR6: (NOT(SIZEOF (QUERY (pds <* QUERY (pd <* USEDIN (SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' - IN TYPEOF (pd)) | - NOT (SIZEOF (QUERY (sa_occ <* USEDIN (pds, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE') | - (sa_occ.description = 'complex boundary occurrence') )) - =1) ))=0)) OR - (SIZEOF (QUERY (pds <* QUERY (pd <* USEDIN (SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' - IN TYPEOF (pd)) | - NOT (SIZEOF (QUERY (sa_occ <* USEDIN (pds, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE') | - (SIZEOF (QUERY (sdr <* QUERY (sar <* USEDIN (sa_occ, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | - (sar.description = 'profile usage') AND - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_DEFINING_RELATIONSHIP' - IN TYPEOF (sar))) | - (SIZEOF (['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CIRCULAR_CLOSED_PROFILE', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.NGON_CLOSED_PROFILE', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.RECTANGULAR_CLOSED_PROFILE', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CLOSED_PATH_PROFILE', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SQUARE_U_PROFILE', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PARTIAL_CIRCULAR_PROFILE', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ROUNDED_U_PROFILE', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.VEE_PROFILE', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.TEE_PROFILE', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LINEAR_PROFILE', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.OPEN_PATH_PROFILE'] * - TYPEOF (sdr.relating_shape_aspect)) =1)) ) - = 1)))= 1))) = 0); - WR7: (NOT(SIZEOF (QUERY (pds <* QUERY (pd <* USEDIN (SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' - IN TYPEOF (pd)) | - NOT (SIZEOF (QUERY (sa_occ <* USEDIN (pds, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE') | - (sa_occ.description = 'partial circular boundary occurrence') )) - =1) ))=0)) OR - (SIZEOF (QUERY (pds <* QUERY (pd <* USEDIN (SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' - IN TYPEOF (pd)) | - NOT (SIZEOF (QUERY (sa_occ <* USEDIN (pds, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE') | - (SIZEOF (QUERY (sdr <* QUERY (sar <* USEDIN (sa_occ, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | - (sar.description = 'profile usage') AND - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_DEFINING_RELATIONSHIP' - IN TYPEOF (sar))) | - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PARTIAL_CIRCULAR_PROFILE' IN - TYPEOF (sdr.relating_shape_aspect)))) - = 1)))= 1))) = 0); - WR8: (NOT(SIZEOF (QUERY (pds <* QUERY (pd <* USEDIN (SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' - IN TYPEOF (pd)) | - NOT (SIZEOF (QUERY (sa_occ <* USEDIN (pds, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE') | - (sa_occ.description = 'closed circular boundary occurrence') )) - =1) ))=0)) OR - (SIZEOF (QUERY (pds <* QUERY (pd <* USEDIN (SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' - IN TYPEOF (pd)) | - NOT (SIZEOF (QUERY (sa_occ <* USEDIN (pds, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE') | - (SIZEOF (QUERY (sdr <* QUERY (sar <* USEDIN (sa_occ, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | - (sar.description = 'profile usage') AND - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_DEFINING_RELATIONSHIP' - IN TYPEOF (sar))) | - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CIRCULAR_CLOSED_PROFILE' IN - TYPEOF (sdr.relating_shape_aspect)))) - = 1)))= 1))) = 0); - WR9: (NOT(SIZEOF (QUERY (pds <* QUERY (pd <* USEDIN (SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' - IN TYPEOF (pd)) | - NOT (SIZEOF (QUERY (sa_occ <* USEDIN (pds, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE') | - (sa_occ.description = 'open rectangular boundary occurrence') )) - =1) ))=0)) OR - (SIZEOF (QUERY (pds <* QUERY (pd <* USEDIN (SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' - IN TYPEOF (pd)) | - NOT (SIZEOF (QUERY (sa_occ <* USEDIN (pds, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE') | - (SIZEOF (QUERY (sdr <* QUERY (sar <* USEDIN (sa_occ, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | - (sar.description = 'profile usage') AND - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_DEFINING_RELATIONSHIP' - IN TYPEOF (sar))) | - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SQUARE_U_PROFILE' IN - TYPEOF (sdr.relating_shape_aspect)))) - = 1)))= 1))) = 0); - WR10: (NOT(SIZEOF (QUERY (pds <* QUERY (pd <* USEDIN (SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' - IN TYPEOF (pd)) | - NOT (SIZEOF (QUERY (sa_occ <* USEDIN (pds, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE') | - (sa_occ.description = 'closed rectangular boundary occurrence') )) - =1) ))=0)) OR - (SIZEOF (QUERY (pds <* QUERY (pd <* USEDIN (SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' - IN TYPEOF (pd)) | - NOT (SIZEOF (QUERY (sa_occ <* USEDIN (pds, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE') | - (SIZEOF (QUERY (sdr <* QUERY (sar <* USEDIN (sa_occ, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | - (sar.description = 'profile usage') AND - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_DEFINING_RELATIONSHIP' - IN TYPEOF (sar))) | - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.RECTANGULAR_CLOSED_PROFILE' IN - TYPEOF (sdr.relating_shape_aspect)) )) = 1))) - = 1))) = 0); - WR11: (SIZEOF (QUERY (pds <* QUERY (pd <* USEDIN (SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' - IN TYPEOF (pd)) | - NOT (SIZEOF (QUERY (sa_occ <* USEDIN (pds, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE') | - (sa_occ.description IN ['boundary occurrence', - 'complex boundary occurrence', - 'partial circular boundary occurrence', - 'closed circular boundary occurrence', - 'open rectangular boundary occurrence', - 'closed rectangular boundary occurrence']) )) =1) ))=0) OR - (SIZEOF(QUERY ( pd <* USEDIN(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(QUERY ( pdr <* USEDIN(pd, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.DIRECTION_SHAPE_REPRESENTATION' - IN TYPEOF(pdr.used_representation)) AND - (pdr.used_representation.name = 'removal direction')) )) = 1)) )) - = 0); - WR12: SIZEOF(QUERY(pdr <* get_property_definition_representations (SELF) | - ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PLANAR_SHAPE_REPRESENTATION' - IN TYPEOF ( pdr.used_representation ) ) AND - ( pdr.used_representation.name ='maximum feature limit'))) >=0; -END_ENTITY; -- outside_profile -(* USED FROM (aic_machining_feature); *) -ENTITY linear_profile - SUBTYPE OF (shape_aspect); - WHERE - WR1: ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FEATURE_COMPONENT_DEFINITION' - IN TYPEOF(SELF.of_shape.definition)); - WR2: (SIZEOF(QUERY ( pd <* USEDIN(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(QUERY ( pdr <* USEDIN(pd, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') - IN TYPEOF(pdr.used_representation)) )) = 1)) )) = 0); - WR3: (SIZEOF(QUERY ( pd <* USEDIN(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') - IN TYPEOF(pdr.used_representation)) ) | - (NOT (SIZEOF(impl_rep.used_representation.items) = 2)) )) - = 0)) )) = 0); - WR4: (SIZEOF(QUERY ( pd <* USEDIN(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') - IN TYPEOF(pdr.used_representation)) ) | - (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | - (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PLACEMENT' IN TYPEOF(it)) AND - (it.name = 'orientation')) )) = 1)) )) = 0)) )) = 0); - WR5: (SIZEOF(QUERY ( pd <* USEDIN(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') - IN TYPEOF(pdr.used_representation)) ) | - (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | - ((SIZEOF([ - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * - TYPEOF(it)) = 2) AND (it.name = 'profile length')) )) = 1)) )) - = 0)) )) = 0); -END_ENTITY; -- linear_profile -(* USED FROM (aic_machining_feature); *) -ENTITY location_shape_representation - SUBTYPE OF (shape_representation); -WHERE - WR1: (SIZEOF(SELF.items) = 1); - WR2: (SIZEOF(QUERY ( it <* SELF.items | - (NOT ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.POINT' - IN TYPEOF(it))) )) = 0); -END_ENTITY; -- location_shape_representation -(* USED FROM (draughting_element_schema); *) - ENTITY dimension_curve_directed_callout - SUBTYPE OF (draughting_callout); - WHERE - WR1: SIZEOF(QUERY(d_c<*SELF\draughting_callout.contents | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.DIMENSION_CURVE' IN (TYPEOF(d_c))))<=2; - WR2: SIZEOF(SELF\draughting_callout.contents) >= 2; - END_ENTITY; -(* USED FROM (aic_machining_feature); *) -ENTITY marking - SUBTYPE OF (feature_definition); -WHERE - WR1: SIZEOF( QUERY( pd <* USEDIN( SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - SIZEOF( QUERY( pdr <* USEDIN( pd, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN - TYPEOF(pdr.used_representation)) AND - ({2 <= SIZEOF(pdr.used_representation.items) <=6} ) )) - = 1 )) = 1; - WR2: (SIZEOF(QUERY ( pd <* USEDIN(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(QUERY ( impl_rep <* - QUERY ( pdr <* USEDIN(pd,'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') - IN TYPEOF(pdr.used_representation)) ) | - (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | - (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.DESCRIPTIVE_REPRESENTATION_ITEM' - IN TYPEOF(it)) AND (it.name = 'marking text')) )) = 1)) )) - = 0)) )) = 0); - WR3: (SIZEOF(QUERY ( pd <* USEDIN(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') - IN TYPEOF(pdr.used_representation)) ) | - (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | - (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.DESCRIPTIVE_REPRESENTATION_ITEM' - IN TYPEOF(it)) AND (it.name = 'special instructions')) )) <= 1)) )) - = 0)) )) = 0); - WR4: (SIZEOF(QUERY ( pd <* USEDIN(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') - IN TYPEOF(pdr.used_representation)) ) | - (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | - (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.DESCRIPTIVE_REPRESENTATION_ITEM' - IN TYPEOF(it)) AND (it.name = 'font name')))) <= 1)))) - = 0)) )) = 0); - WR5: (SIZEOF(QUERY ( pd <* USEDIN(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') - IN TYPEOF(pdr.used_representation)) ) | - (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | - ((SIZEOF([ - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * - TYPEOF(it)) = 2) AND (it.name = 'character height')) )) <= 1)) )) - = 0)) )) = 0); - WR6: (SIZEOF(QUERY ( pd <* USEDIN(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') - IN TYPEOF(pdr.used_representation)) ) | - (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | - ((SIZEOF([ - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * - TYPEOF(it)) = 2) AND (it.name = 'character spacing')) )) <= 1)) )) - = 0)) )) = 0); - WR7: (SIZEOF(QUERY ( pds <* QUERY ( pd <* USEDIN(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' - IN TYPEOF(pd)) ) | - (NOT (SIZEOF(QUERY ( sa_occ <* USEDIN(pds, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE') | - ((SIZEOF(QUERY ( sdr <* QUERY ( sar <* USEDIN(sa_occ, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.' - + 'RELATED_SHAPE_ASPECT') | - ((sar.description = 'applied shape') AND - (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_DEFINING_RELATIONSHIP') - IN TYPEOF(sar))) ) | - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT' - IN TYPEOF(sdr.relating_shape_aspect)) )) = 1)) )) = 1)) )) = 0); -END_ENTITY; -- marking -(* USED FROM (draughting_element_schema); *) - ENTITY leader_directed_callout - SUBTYPE OF (draughting_callout); - WHERE - WR1: SIZEOF (QUERY (l_1 <* SELF\draughting_callout.contents | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LEADER_CURVE' IN (TYPEOF(l_1)))) >= 1; - WR2: SIZEOF(SELF\draughting_callout.contents) >=2; - END_ENTITY; -(* USED FROM (aic_machining_feature); *) -ENTITY modified_pattern - SUBTYPE OF (shape_aspect); - WHERE - WR1: SIZEOF( QUERY (fcr <* QUERY(sar <* USEDIN( SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATING_SHAPE_ASPECT') | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP' - IN TYPEOF (sar)) | - (SIZEOF( - ['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.REPLICATE_FEATURE', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.INSTANCED_FEATURE'] * - TYPEOF (fcr.related_shape_aspect.of_shape.definition)) >= 1) AND - (fcr.description = 'base shape')) ) = 1; - WR2: SIZEOF( QUERY (fcr <* QUERY(sar <* USEDIN( SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATING_SHAPE_ASPECT') | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP' - IN TYPEOF (sar)) | - (SIZEOF( - ['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CIRCULAR_PATTERN', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.RECTANGULAR_PATTERN'] * - TYPEOF(fcr.related_shape_aspect.of_shape.definition)) = 1) AND - (fcr.description = 'base pattern')) ) = 1; - WR3: SIZEOF(QUERY ( sar <* USEDIN(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATING_SHAPE_ASPECT') | - (SIZEOF(QUERY ( msar <* USEDIN(sar.related_shape_aspect, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | - (SIZEOF([ - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PATTERN_OFFSET_MEMBERSHIP', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PATTERN_OMIT_MEMBERSHIP'] * - TYPEOF(sar)) = 1) AND (sar.description='modified pattern') - AND (sar :<>: msar) )) >= 1) )) = 0; -END_ENTITY; -- modified_pattern -(* USED FROM (draughting_element_schema); *) - ENTITY projection_directed_callout - SUBTYPE OF (draughting_callout); - WHERE - WR1: SIZEOF(QUERY(p_1<*SELF\draughting_callout.contents | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROJECTION_CURVE' IN (TYPEOF(p_1))))<=2; - WR2: SIZEOF(SELF\draughting_callout.contents) >=2; - END_ENTITY; -(* USED FROM (date_time_schema); *) -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; -(* USED FROM (date_time_schema); *) -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; -(* USED FROM (aic_machining_feature); *) -ENTITY closed_path_profile - SUBTYPE OF (shape_aspect); - WHERE - WR1: ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FEATURE_COMPONENT_DEFINITION' - IN TYPEOF(SELF.of_shape.definition)); - WR2: (SIZEOF(QUERY ( pd <* USEDIN(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(QUERY ( pdr <* USEDIN(pd, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') - IN TYPEOF(pdr.used_representation)) )) = 1)) )) = 0); - WR3: (SIZEOF(QUERY ( pd <* USEDIN(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') - IN TYPEOF(pdr.used_representation)) ) | - (NOT (SIZEOF(impl_rep.used_representation.items) = 1)) )) - = 0)) )) = 0); - WR4: (SIZEOF(QUERY ( pd <* USEDIN(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') - IN TYPEOF(pdr.used_representation)) ) | - (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | - (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PLACEMENT' - IN TYPEOF(it)) AND (it.name = 'orientation')) )) = 1)) )) - = 0)) )) = 0); - WR5: (SIZEOF(QUERY ( pd <* USEDIN(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(QUERY ( pdr <* USEDIN(pd, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PATH_SHAPE_REPRESENTATION') - IN TYPEOF(pdr.used_representation)) )) = 1)) )) = 0); -END_ENTITY; -- closed_path_profile -(* USED FROM (aic_machining_feature); *) -ENTITY composite_hole - SUBTYPE OF (compound_feature); - WHERE - WR1: (SELF\characterized_object.description IN ['counterbore', - 'countersunk']); - WR2: SIZEOF(QUERY ( pds <* USEDIN(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' - IN TYPEOF(pds)) AND (SIZEOF(QUERY ( csa <* USEDIN(pds, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE') | - (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.COMPOSITE_SHAPE_ASPECT' - IN TYPEOF(csa)) AND - (SIZEOF(QUERY ( sar <* csa.component_relationships | - ((('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP' - IN TYPEOF(sar)) AND ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ROUND_HOLE' - IN TYPEOF(sar.related_shape_aspect))) - ))) = 2)) )) = 1)) )) = 1; - WR3: (NOT (SELF\characterized_object.description = 'countersunk')) OR - (SIZEOF(QUERY ( pds <* USEDIN(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' - IN TYPEOF(pds)) AND - (SIZEOF(QUERY ( csa <* USEDIN(pds, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE') | - (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.COMPOSITE_SHAPE_ASPECT' - IN TYPEOF(csa)) AND - (SIZEOF(QUERY ( sar <* csa.component_relationships | - (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ROUND_HOLE' - IN TYPEOF(sar.related_shape_aspect)) AND - (NOT (SIZEOF(QUERY ( pds <* QUERY ( pd <* - USEDIN(sar.related_shape_aspect, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' - IN TYPEOF(pd)) ) | - (NOT (SIZEOF(QUERY ( sa_occ <* USEDIN(pds, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE') | - ((sa_occ.description = 'change in diameter occurrence') AND - (SIZEOF(QUERY ( fcr2 <* QUERY ( sar2 <* USEDIN(sa_occ, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATING_SHAPE_ASPECT') | - ((sar2.description = 'taper usage') AND - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP' - IN TYPEOF(sar2))) ) | - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.TAPER' IN TYPEOF(fcr2.related_shape_aspect)) - )) = 1)) )) = 0)) )) = 0))) )) = 1)) )) = 1)) )) = 1); -END_ENTITY; -- composite_hole -(* USED FROM (aic_machining_feature); *) -ENTITY chamfer_offset - SUBTYPE OF (shape_aspect); - WHERE - WR1: (SELF.description IN ['first offset','second offset']); - WR2: (SIZEOF(QUERY ( pd <* USEDIN(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(QUERY ( pdr <* USEDIN(pd, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') - IN TYPEOF(pdr.used_representation)) )) = 1)) )) = 0); - WR3: (SIZEOF(QUERY ( pd <* USEDIN(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') - IN TYPEOF(pdr.used_representation)) ) | - (NOT (SIZEOF(impl_rep.used_representation.items) = 1)) )) - = 0)) )) = 0); - WR4: ((NOT (SELF.description = 'first offset')) OR - (SIZEOF(QUERY ( pd <* USEDIN(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') - IN TYPEOF(pdr.used_representation)) ) | - (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | - ((SIZEOF([ - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * - TYPEOF(it)) = 2) AND (it.name = 'offset amount')) )) = 1)) )) - = 0)) )) = 0)); - WR5: ((NOT (SELF.description = 'first offset')) OR - (SIZEOF(QUERY ( pd <* USEDIN(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(QUERY ( pdr <* USEDIN(pd, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FACE_SHAPE_REPRESENTATION' - IN TYPEOF(pdr.used_representation)) AND - (pdr.used_representation.name = 'first face shape')) )) <= 1)) )) - = 0)); - WR6: ((NOT (SELF.description = 'second offset')) OR - (SIZEOF(QUERY ( pd <* USEDIN(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') - IN TYPEOF(pdr.used_representation)) ) | - (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | - (((SIZEOF([ - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * - TYPEOF(it)) = 2) AND (it.name = 'offset amount')) OR - ((SIZEOF([ - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PLANE_ANGLE_MEASURE_WITH_UNIT'] - * TYPEOF(it)) = 2) AND (it.name = 'offset angle'))) )) = 1)) )) - = 0)) )) = 0)); - WR7: ((NOT (SELF.description = 'second offset')) OR - (SIZEOF(QUERY ( pd <* USEDIN(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(QUERY ( pdr <* USEDIN(pd, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FACE_SHAPE_REPRESENTATION' - IN TYPEOF(pdr.used_representation)) AND - (pdr.used_representation.name = 'second face shape')) )) <= 1)) )) - = 0)); - WR8: (SIZEOF(QUERY ( sdr <* QUERY ( sar <* USEDIN(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | - (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP') - IN TYPEOF(sar)) ) | - (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CHAMFER' - IN TYPEOF(sdr.relating_shape_aspect))AND - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CHAMFER_OFFSET' - IN TYPEOF(sdr.related_shape_aspect))) - )) = 1); -END_ENTITY; -- chamfer_offset -(* USED FROM (aic_machining_feature); *) -ENTITY circular_pattern - SUBTYPE OF (replicate_feature); - WHERE - WR1: (SIZEOF(QUERY ( pds <* QUERY ( pd <* USEDIN(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' - IN TYPEOF(pd)) ) | (NOT (SIZEOF(QUERY ( sa_occ <* USEDIN - (pds,'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE') | - ((SIZEOF(QUERY ( sdr <* QUERY ( sar <* USEDIN(sa_occ, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.' - + 'RELATING_SHAPE_ASPECT') | - ((('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP') - IN TYPEOF(sar))) ) | - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT' - IN TYPEOF(sdr.related_shape_aspect)) )) = 1)) )) <= 3)) )) = 0); - WR2: (SIZEOF(QUERY ( pd <* USEDIN(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(QUERY ( pdr <* USEDIN(pd, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') - IN TYPEOF(pdr.used_representation)) )) = 1)) )) = 0); - WR3: (SIZEOF(QUERY ( pd <* USEDIN(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' - IN TYPEOF(pdr.used_representation)) ) | - (NOT ((SIZEOF (impl_rep.used_representation.items) >= 3) - AND (SIZEOF(impl_rep.used_representation.items) <= 5))) )) - = 0)) )) = 0); - WR4: (SIZEOF(QUERY ( pd <* USEDIN(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' - IN TYPEOF(pdr.used_representation)) ) | - (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | - ((SIZEOF( - ['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * - TYPEOF(it)) = 2) AND (it.name = 'diameter')) )) <= 1)) )) - = 0)) )) = 0); - WR5: (SIZEOF(QUERY ( pd <* USEDIN(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' - IN TYPEOF(pdr.used_representation)) ) | - (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | - ((SIZEOF( - ['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PLANE_ANGLE_MEASURE_WITH_UNIT'] * - TYPEOF(it)) = 2) AND (it.name = 'base feature rotation')) )) - <= 1)) )) = 0)) )) = 0); - WR6: (SIZEOF(QUERY ( pd <* USEDIN(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' - IN TYPEOF(pdr.used_representation)) ) | - (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | - (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM' - IN TYPEOF(it)) AND - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.COUNT_MEASURE' - IN TYPEOF(it\measure_with_unit.value_component)) AND - (it.name = 'number of features')) )) = 1)) )) = 0)) )) = 0); - WR7: (SIZEOF(QUERY ( pd <* USEDIN(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' - IN TYPEOF(pdr.used_representation)) ) | - (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | - ((SIZEOF( - ['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PLANE_ANGLE_MEASURE_WITH_UNIT'] * - TYPEOF(it)) = 2) AND (it.name = 'angular spacing'))))= 1)) )) - = 0)) )) = 0); - WR8: (SIZEOF(QUERY ( pd <* USEDIN(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' - IN TYPEOF(pdr.used_representation)) ) | - (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | - (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PLACEMENT' - IN TYPEOF(it)) AND (it.name = 'orientation')) )) = 1)) )) - = 0)) )) = 0); -END_ENTITY; -- circular_pattern -(* USED FROM (aic_machining_feature); *) -ENTITY applied_area - SUBTYPE OF (shape_aspect); - WHERE - WR1: ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' - IN TYPEOF(SELF.of_shape)); - WR2: (SIZEOF(QUERY ( pd <* USEDIN(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(QUERY ( pdr <* USEDIN(pd, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') - IN TYPEOF(pdr.used_representation)) )) = 1)) )) = 0); - WR3: (SIZEOF(QUERY ( pd <* USEDIN(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (( - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr. - used_representation)) ) | - (NOT({2 <= SIZEOF(impl_rep.used_representation.items) <= 3} ) - ) )) = 0)) )) = 0); - WR4: SIZEOF( QUERY( pd <* USEDIN( SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (SIZEOF( QUERY( pdr <* USEDIN( pd, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' - IN TYPEOF(pdr.used_representation)) AND - (SIZEOF( QUERY( srwp_i <* pdr.used_representation.items | - NOT (srwp_i.name IN ['orientation','effective length', - 'maximum length']) )) > 0 ) )) = 0 ) )) = 0; - WR5: (SIZEOF(QUERY ( pd <* USEDIN(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') - IN TYPEOF(pdr.used_representation)) ) | - (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | - ((SIZEOF([ - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * - TYPEOF(it)) = 2) AND (it.name = 'effective length')) )) = 1)) )) - = 0)) )) <= 1); - WR6: (SIZEOF(QUERY ( pd <* USEDIN(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') - IN TYPEOF(pdr.used_representation)) ) | - (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | - ((SIZEOF([ - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * - TYPEOF(it)) = 2) AND (it.name = 'maximum length')) )) <= 1)) )) - = 0)) )) = 0); - WR7: (SIZEOF(QUERY ( pd <* USEDIN(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') - IN TYPEOF(pdr.used_representation)) ) | - (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | - (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PLACEMENT' - IN TYPEOF(it)) AND (it.name = 'orientation')) )) = 1)) )) - = 0)) )) = 0); -END_ENTITY; -- applied_area -(* USED FROM (aic_machining_feature); *) -ENTITY boss - SUBTYPE OF (feature_definition); - WHERE - WR1: SELF\characterized_object.description IN - ['circular', 'complex', 'rectangular']; - WR2: SIZEOF (QUERY (pds <* QUERY (pd <* USEDIN (SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN - TYPEOF (pd)) | - NOT (SIZEOF (QUERY (sa_occ <* USEDIN (pds, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE') | - (sa_occ.description = 'boss height occurrence') AND - (SIZEOF (QUERY (sdr <* QUERY (sar <* USEDIN (sa_occ, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | - (sar.description = 'path feature component usage') AND - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF (sar))) | - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PATH_FEATURE_COMPONENT' IN - TYPEOF (sdr.relating_shape_aspect)) AND - (sdr.relating_shape_aspect.description = 'linear') AND - (sdr.name = 'boss height'))) = 1))) = 1))) = 0; - WR3: SIZEOF( QUERY( pd <* USEDIN( SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - SIZEOF( QUERY( pdr <* USEDIN( pd, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' - IN TYPEOF(pdr.used_representation)) AND - ({1 <= SIZEOF(pdr.used_representation.items) <= 2} ) )) = 1 )) = 1; - WR4: SIZEOF( QUERY( pd <* USEDIN( SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - SIZEOF( QUERY( pdr <* USEDIN( pd, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN - TYPEOF(pdr.used_representation)) AND - (SIZEOF( QUERY( srwp_i <* pdr.used_representation.items | - (srwp_i.name = 'orientation') OR - (srwp_i.name = 'fillet radius'))) - = SIZEOF(pdr.used_representation.items)) )) = 1 )) = 1; - WR5: SIZEOF (QUERY (pd <* USEDIN (SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - NOT (SIZEOF (QUERY (impl_rep <* QUERY (pdr <* USEDIN (pd, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' - IN TYPEOF (pdr.used_representation)) | - NOT (SIZEOF (QUERY (it <* impl_rep.used_representation.items | - (SIZEOF ( - ['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * - TYPEOF (it)) = 2) AND (it.name = 'fillet radius'))) <= 1))) - = 0))) = 0; - WR6: (NOT (SELF\characterized_object.description = 'circular')) OR - (SIZEOF (QUERY (pds <* QUERY (pd <* USEDIN (SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' - IN TYPEOF (pd)) | - NOT (SIZEOF (QUERY (sa_occ <* USEDIN (pds, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE') | - (sa_occ.description = 'circular profile occurrence') AND - (SIZEOF (QUERY (sdr <* QUERY (sar <* USEDIN (sa_occ, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | - (sar.description = 'profile usage') AND - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_DEFINING_RELATIONSHIP' - IN TYPEOF (sar))) | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CIRCULAR_CLOSED_PROFILE' - IN TYPEOF (sdr.relating_shape_aspect))) = 1))) = 1))) = 0); - WR7: SIZEOF(QUERY ( pds <* QUERY ( pd <* USEDIN(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' - IN TYPEOF(pd)) ) | - (NOT (SIZEOF(QUERY ( sa_occ <* USEDIN(pds, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE') | - ((sa_occ.description = 'top condition occurrence') AND - (SIZEOF(QUERY ( fcr <* QUERY ( sar <* USEDIN(sa_occ, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | - ((sar.description = 'boss top usage') AND - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP' - IN TYPEOF(sar))) ) | (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.BOSS_TOP' - IN TYPEOF(fcr.relating_shape_aspect)) ) )) = 1)) )) = 1)) )) = 0; - WR8: (NOT (SELF\characterized_object.description = 'circular')) OR - (SIZEOF (QUERY (pds <* QUERY (pd <* USEDIN (SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN - TYPEOF (pd)) | - NOT (SIZEOF (QUERY (sa_occ <* USEDIN (pds, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE') | - (sa_occ.description = 'change in diameter occurrence') AND - (SIZEOF (QUERY (fcr <* QUERY (sar <* USEDIN (sa_occ, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | - (sar.description = 'taper usage') AND - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP' - IN TYPEOF (sar))) | - (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.TAPER' IN TYPEOF (fcr.related_shape_aspect)) - AND - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.BOSS' IN TYPEOF (fcr.relating_shape_aspect))) - ) )= 1))) <= 1))) = 0); - WR9: (NOT (SELF\characterized_object.description = 'complex')) OR - (SIZEOF (QUERY (pds <* QUERY (pd <* USEDIN (SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN - TYPEOF (pd)) | - NOT (SIZEOF (QUERY (sa_occ <* USEDIN (pds, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE') | - (sa_occ.description = 'enclosed boundary occurrence') AND - (SIZEOF (QUERY (sdr <* QUERY (sar <* USEDIN (sa_occ, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | - (sar.description = 'profile usage') AND - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_DEFINING_RELATIONSHIP' - IN TYPEOF (sar))) | - SIZEOF (['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.NGON_CLOSED_PROFILE', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CLOSED_PATH_PROFILE'] * - TYPEOF (sdr.relating_shape_aspect)) = 1)) = 1)))= 1))) = 0); - WR10: (NOT (SELF\characterized_object.description - IN ['complex','rectangular'])) OR - (SIZEOF (QUERY (pds <* QUERY (pd <* USEDIN (SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' - IN TYPEOF (pd)) | - NOT (SIZEOF (QUERY (sa_occ <* USEDIN (pds, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE') | - (sa_occ.description = 'change in boundary occurrence') AND - (SIZEOF (QUERY (fcr <* QUERY (sar <* USEDIN (sa_occ, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATING_SHAPE_ASPECT') | - (sar.description = 'taper usage') AND - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP' - IN TYPEOF (sar))) | - (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.TAPER' IN TYPEOF (fcr.related_shape_aspect)) - AND - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.BOSS' IN TYPEOF (fcr.relating_shape_aspect)) - AND - (fcr.related_shape_aspect.description IN - ['angle taper','directed taper'])) - )) = 1))) <= 1))) = 0); - WR11: (NOT (SELF\characterized_object.description = 'rectangular')) OR - (SIZEOF (QUERY (pds <* QUERY (pd <* USEDIN (SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' - IN TYPEOF (pd)) | - NOT (SIZEOF (QUERY (sa_occ <* USEDIN (pds, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE') | - (sa_occ.description = 'rectangular profile occurrence') AND - (SIZEOF (QUERY (sdr <* QUERY (sar <* USEDIN (sa_occ, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | - (sar.description = 'profile usage') AND - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_DEFINING_RELATIONSHIP' - IN TYPEOF (sar))) | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.RECTANGULAR_CLOSED_PROFILE' - IN TYPEOF (sdr.relating_shape_aspect))) = 1))) = 1))) = 0); - - WR12: SIZEOF (QUERY(pdr <* get_property_definition_representations (SELF) | - ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PLANAR_SHAPE_REPRESENTATION' - IN TYPEOF ( pdr.used_representation ) ) AND - ( pdr.used_representation.name ='maximum feature limit'))) >=0; -END_ENTITY; -- Boss -(* USED FROM (product_definition_schema); *) - ENTITY product_category_relationship; - name : label; - description : OPTIONAL text; - category : product_category; - sub_category : product_category; - WHERE - WR1: acyclic_product_category_relationship(SELF, [SELF.sub_category]); - END_ENTITY; -(* USED FROM (geometric_model_schema); *) -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; -(* USED FROM (aic_machining_feature); *) -ENTITY boss_top - SUBTYPE OF (shape_aspect); - WHERE - WR1: ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FEATURE_COMPONENT_DEFINITION' - IN TYPEOF(SELF.of_shape.definition)); - WR2: (SELF.description IN ['planar','complex']); - WR3: ((NOT (SELF.description = 'planar')) OR - (SIZEOF(QUERY ( pd <* USEDIN(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(QUERY ( pdr <* USEDIN(pd, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.DIRECTION_SHAPE_REPRESENTATION') - IN TYPEOF(pdr.used_representation)) )) = 1)) )) = 0)); - WR4: ((NOT (SELF.description = 'planar')) OR - (SIZEOF(QUERY ( pd <* USEDIN(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(QUERY ( pdr <* USEDIN(pd, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LOCATION_SHAPE_REPRESENTATION') - IN TYPEOF(pdr.used_representation)) )) = 1)) )) = 0)); - WR5: (NOT (SELF.description = 'complex')) OR - (SIZEOF(QUERY ( pd <* USEDIN(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(QUERY ( pdr <* USEDIN(pd, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FACE_SHAPE_REPRESENTATION') - IN TYPEOF(pdr.used_representation) )) = 1)) )) = 0); - WR6: (SIZEOF(QUERY ( fcr <* QUERY ( sar <* USEDIN(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.' + - 'RELATING_SHAPE_ASPECT') | - ((sar.description = 'boss top usage') AND - (sar.name IN ['boss height start','boss height end']))AND - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP' - IN TYPEOF(sar))) | - ((fcr.related_shape_aspect.description = 'top condition occurrence') - AND - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.BOSS' - IN TYPEOF(fcr.related_shape_aspect.of_shape.definition)) AND - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.BOSS_TOP' - IN TYPEOF(fcr.relating_shape_aspect)) ) - )) >= 1); - WR7: (SIZEOF(QUERY ( pd <* USEDIN(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(QUERY ( pdr <* USEDIN(pd, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') - IN TYPEOF(pdr.used_representation)) )) <= 1)) )) = 0); - WR8: (SIZEOF(QUERY ( pd <* USEDIN(SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') - IN TYPEOF(pdr.used_representation)) ) | - (NOT (SIZEOF(impl_rep.used_representation.items) = 1)) )) - = 0)) )) = 0); - WR9: SIZEOF (QUERY (pd <* USEDIN (SELF, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - NOT (SIZEOF (QUERY (impl_rep <* QUERY (pdr <* USEDIN (pd, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' - IN TYPEOF (pdr.used_representation)) | - NOT (SIZEOF (QUERY (it <* impl_rep.used_representation.items | - (SIZEOF ( - ['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * - TYPEOF (it)) = 2) AND (it.name = 'top radius'))) <= 1))) - = 0))) = 0; -END_ENTITY; -- boss_top -(* USED FROM (Surface_conditions_mim); *) - ENTITY tactile_appearance_representation - SUBTYPE OF (representation); - WHERE - WR1: SIZEOF ( QUERY ( i <* SELF.items | SIZEOF ( - ['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.'+ 'MEASURE_REPRESENTATION_ITEM' , - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.'+ 'VALUE_RANGE']* TYPEOF ( i ) ) <>1 )) =0; - WR2: SIZEOF ( QUERY ( i <* SELF.items | name ='depth' ) ) <=1; - WR3: ( SIZEOF ( USEDIN ( SELF , - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.'+'PROPERTY_DEFINITION_REPRESENTATION.'+ - 'USED_REPRESENTATION' ) ) =1 ) AND ( SIZEOF ( QUERY ( pdr - <* USEDIN ( SELF , - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.'+'PROPERTY_DEFINITION_REPRESENTATION.'+ - 'USED_REPRESENTATION' ) | SIZEOF ( QUERY ( gpa <* USEDIN ( - pdr.definition , - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.'+'GENERAL_PROPERTY_ASSOCIATION.'+ - 'DERIVED_DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.'+ 'GENERAL_PROPERTY' IN TYPEOF ( gpa.base_definition ) ) AND - ( gpa\general_property_association.base_definition\general_property.name ='surface_condition' ) ) ) =1 )) =1 ) ; - END_ENTITY; -(* USED FROM (kinematic_topology_schema); *) -ENTITY kinematic_topology_structure - SUBTYPE OF (representation); - SELF\representation.items : SET[1:?] OF kinematic_joint; -WHERE - WR1: SIZEOF (QUERY (item <* items | 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ORIENTED_EDGE' in TYPEOF(item))) = 0; -END_ENTITY; -(* USED FROM (Surface_conditions_mim); *) - ENTITY surface_texture_representation - SUBTYPE OF (representation); - WHERE - WR1: SIZEOF ( QUERY ( i <* SELF.items | SIZEOF ( - ['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.'+ 'MEASURE_REPRESENTATION_ITEM' , - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.'+ 'VALUE_RANGE' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.'+ 'DESCRIPTIVE_REPRESENTATION_ITEM']* TYPEOF ( i ) ) <>1 ) ) - =0; - WR2: ( SIZEOF ( QUERY ( i <* SELF.items | 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.'+ 'DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF ( i ) ) ) =1 ) - AND ( SIZEOF ( QUERY ( i <* SELF.items | ( - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.'+ 'DESCRIPTIVE_REPRESENTATION_ITEM' IN - TYPEOF ( i ) ) AND ( i.name = 'measuring method' ) ) ) =1 ); - WR3: SIZEOF ( QUERY ( i <* SELF.items | SIZEOF ( - ['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.'+ 'MEASURE_REPRESENTATION_ITEM' , - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.'+ 'VALUE_RANGE']* TYPEOF ( i ) ) =1 ) ) - >0; - WR4: ( SIZEOF ( USEDIN ( SELF , - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.'+'REPRESENTATION_RELATIONSHIP.'+ - 'REP_1' ) ) <=1 ) AND ( SIZEOF ( USEDIN ( SELF , - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.'+'REPRESENTATION_RELATIONSHIP.'+ - 'REP_2' ) ) =0 ) AND ( SIZEOF ( QUERY ( rr <* USEDIN ( SELF - , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.'+'REPRESENTATION_RELATIONSHIP.'+ - 'REP_1' ) | rr.rep_2.name = 'measuring direction' ) ) = - SIZEOF ( USEDIN ( SELF , - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.'+'REPRESENTATION_RELATIONSHIP.'+ - 'REP_1' ) ) ) ; - WR5: ( SIZEOF ( USEDIN ( SELF , - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.'+'PROPERTY_DEFINITION_REPRESENTATION.'+ - 'USED_REPRESENTATION' ) ) =1 ) AND ( SIZEOF ( QUERY ( pdr - <* USEDIN ( SELF , - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.'+'PROPERTY_DEFINITION_REPRESENTATION.'+ - 'USED_REPRESENTATION' ) | SIZEOF ( QUERY ( gpa <* USEDIN ( - pdr.definition , - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.'+'GENERAL_PROPERTY_ASSOCIATION.'+ - 'DERIVED_DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.'+ 'GENERAL_PROPERTY' IN TYPEOF ( gpa.base_definition ) ) AND - ( gpa\general_property_association.base_definition\general_property.name ='surface_condition' ) ) ) =1 ) - ) =1 ) ; - END_ENTITY; -(* USED FROM (Surface_conditions_mim); *) - ENTITY hardness_representation - SUBTYPE OF (representation); - WHERE - WR1: ( {2<= SIZEOF ( SELF.items ) <=4} ) AND ( SIZEOF ( QUERY ( - i <* items | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.'+ 'DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF ( i ) ) AND ( - i.name IN [ 'measuring method' , 'measuring position' ] ) ) - ) + SIZEOF ( QUERY ( i <* items | ( SIZEOF ( - ['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.'+ 'MEASURE_REPRESENTATION_ITEM' , - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 , - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.'+'PROPERTY_DEFINITION_REPRESENTATION.'+ - 'USED_REPRESENTATION' ) ) =1 ) AND ( SIZEOF ( QUERY ( pdr - <* USEDIN ( SELF , - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.'+'PROPERTY_DEFINITION_REPRESENTATION.'+ - 'USED_REPRESENTATION' ) | SIZEOF ( QUERY ( gpa <* USEDIN ( - pdr.definition , - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.'+'GENERAL_PROPERTY_ASSOCIATION.'+ - 'DERIVED_DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.'+ 'GENERAL_PROPERTY' IN TYPEOF ( gpa.base_definition ) ) AND - ( gpa\general_property_association.base_definition\general_property.name ='surface_condition' ) ) ) =1 ) - ) =1 ) ; - END_ENTITY; -(* USED FROM (Surface_conditions_mim); *) - ENTITY contact_ratio_representation - SUBTYPE OF (representation); - WHERE - WR1: (SIZEOF ( SELF.items ) =1 ) AND - (SIZEOF ( QUERY ( i <* SELF.items | - (SIZEOF(['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.'+ 'MEASURE_REPRESENTATION_ITEM' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'VALUE_RANGE']* TYPEOF(i)) = 1) AND - (i.name = 'ratio value'))) = 1); - WR2: (SIZEOF ( QUERY ( pdr <* USEDIN ( SELF ,'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.'+'PROPERTY_DEFINITION_REPRESENTATION.'+ 'USED_REPRESENTATION' ) | - pdr\property_definition_representation.name = 'contact ratio reference' ) ) = 1 ) AND - (SIZEOF ( QUERY (pdr <* USEDIN ( SELF ,'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.'+'PROPERTY_DEFINITION_REPRESENTATION.'+ 'USED_REPRESENTATION' ) | - (pdr\property_definition_representation.name = 'contact ratio reference' ) AND - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.'+ 'PRODUCT_DEFINITION' IN TYPEOF ( pdr\property_definition_representation.definition\property_definition.definition)) - )) = 1); - WR3:(SIZEOF(USEDIN(SELF ,'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.'+'PROPERTY_DEFINITION_REPRESENTATION.'+ 'USED_REPRESENTATION')) = 1) AND - (SIZEOF ( QUERY ( pdr <* USEDIN ( SELF , - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.'+'PROPERTY_DEFINITION_REPRESENTATION.'+ - 'USED_REPRESENTATION' ) | SIZEOF ( QUERY ( gpa <* USEDIN (pdr.definition , - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.'+'GENERAL_PROPERTY_ASSOCIATION.'+ - 'DERIVED_DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.'+ 'GENERAL_PROPERTY' IN TYPEOF (gpa\general_property_association.base_definition ) ) AND - (gpa\general_property_association.base_definition\general_property.name ='surface_condition') - )) = 1 - )) = 1); - END_ENTITY; -(* USED FROM (Shape_feature_mim); *) -ENTITY general_feature - SUBTYPE OF (shape_feature_definition); -WHERE - WR1: (SIZEOF(get_property_definition_representations(SELF)) <= 1) AND - (SIZEOF( QUERY( pdr <* get_property_definition_representations(SELF) | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN - TYPEOF(pdr.used_representation) - )) <= 1); - WR2: SIZEOF( QUERY( sa <* get_shape_aspects(SELF) | - sa.description = 'course of travel occurrence')) = - SIZEOF( QUERY( sa <* get_shape_aspects(SELF) | - (sa.description = 'course of travel occurrence') AND - (SIZEOF( QUERY( sar <* USEDIN( sa, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_DEFINING_RELATIONSHIP' IN - TYPEOF(sar)) AND - (sar.name = 'course of travel') - )) = 1 ))); - WR3: SIZEOF( QUERY( sa <* get_shape_aspects(SELF) | - sa.description = 'course of travel occurrence')) = - SIZEOF( QUERY( sa <* get_shape_aspects(SELF) | - (sa.description = 'course of travel occurrence') AND - (SIZEOF( QUERY( sar <* USEDIN( sa, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_DEFINING_RELATIONSHIP' IN - TYPEOF(sar)) AND - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PATH_FEATURE_COMPONENT' IN - TYPEOF(sar.relating_shape_aspect)) - )) = 1 ))); - WR4: SIZEOF( QUERY( sa <* get_shape_aspects(SELF) | - sa.description = 'boundary occurrence')) = - SIZEOF( QUERY( sa <* get_shape_aspects(SELF) | - (sa.description = 'boundary occurrence') AND - (SIZEOF( QUERY( sar <* USEDIN( sa, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_DEFINING_RELATIONSHIP' IN - TYPEOF(sar)) AND - (sar.description = 'profile usage') - )) = 1 ))); - WR5: (SIZEOF( QUERY( sa <* get_shape_aspects(SELF) | - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.COMPOSITE_SHAPE_ASPECT' IN - TYPEOF(sa)) - )) <= 1 ) AND - (SIZEOF( QUERY( sa <* get_shape_aspects(SELF) | - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.COMPOSITE_SHAPE_ASPECT' IN - TYPEOF(sa)) AND - (sa.name = 'general compound feature') AND - (SIZEOF( QUERY( sar <* USEDIN( sa, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATING_SHAPE_ASPECT') | - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP' IN - TYPEOF(sar)) AND - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.INSTANCED_FEATURE' IN - TYPEOF(sar.related_shape_aspect)) - )) >= 2 ) - )) <= 1 ); -END_ENTITY; -(* USED FROM (explicit_geometric_constraint_schema); *) -ENTITY incidence_geometric_constraint - SUBTYPE OF (explicit_geometric_constraint); - SELF\explicit_constraint.constrained_elements : - SET[1:?] OF geometric_constraint_element; - SELF\explicit_constraint.reference_elements : - SET [0:?] OF geometric_constraint_element; - near_points : SET[0:?] OF near_point_relationship; -WHERE - WR1: (SIZEOF(SELF\explicit_constraint.reference_elements) > 0) - OR (SIZEOF(SELF\explicit_constraint.constrained_elements) = 2); - WR2: SIZEOF(near_points) <= - SIZEOF(SELF\explicit_constraint.reference_elements); - WR3: SIZEOF(QUERY(q <* near_points | NOT - (q\representation_item_relationship.relating_representation_item - IN SELF\explicit_constraint.reference_elements))) = 0; -END_ENTITY; -(* USED FROM (Picture_representation_mim); *) - 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 | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.STYLED_ITEM' IN TYPEOF(item))) = 1; - WR2: SIZEOF (QUERY (se <* QUERY (item <* SELF.items - | ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.STYLED_ITEM' IN TYPEOF (item))) - | NOT ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PICTURE_REPRESENTATION_ITEM' - IN TYPEOF (se\styled_item.item)) )) = 0; - END_ENTITY; -(* USED FROM (explicit_geometric_constraint_schema); *) -ENTITY coaxial_geometric_constraint - SUBTYPE OF (explicit_geometric_constraint); - SELF\explicit_constraint.constrained_elements : - SET[1:?] OF axial_geometry_constraint_element; - SELF\explicit_constraint.reference_elements : - SET[0:1] OF axial_geometry_constraint_element; -WHERE - WR1: SIZEOF(QUERY(q <* SELF\explicit_constraint.reference_elements | - SIZEOF(TYPEOF(q) * ['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.POINT','AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PLANE', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SPHERICAL_SURFACE','AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SPHERE']) - > 0)) = 0; -END_ENTITY; -(* USED FROM (explicit_geometric_constraint_schema); *) -ENTITY perpendicular_geometric_constraint - SUBTYPE OF (explicit_geometric_constraint); - SELF\explicit_constraint.constrained_elements : - SET[1:?] OF linear_geometry_constraint_element; - SELF\explicit_constraint.reference_elements : - SET[0:2] OF linear_geometry_constraint_element; -WHERE - WR1: NOT ((SIZEOF(SELF\explicit_constraint.reference_elements) = 2) AND - NOT ((SIZEOF(QUERY(q <* SELF\explicit_constraint.constrained_elements + - SELF\explicit_constraint.reference_elements | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LINE' IN TYPEOF(q))) = - SIZEOF(SELF\explicit_constraint.reference_elements + - SELF\explicit_constraint.constrained_elements)) XOR - (SIZEOF(QUERY(q <* SELF\explicit_constraint.constrained_elements + - SELF\explicit_constraint.reference_elements | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PLANE' IN TYPEOF(q))) = - SIZEOF(SELF\explicit_constraint.reference_elements + - SELF\explicit_constraint.constrained_elements)))); - WR2: (SIZEOF(SELF\explicit_constraint.reference_elements) > 0) OR - (SIZEOF(SELF\explicit_constraint.constrained_elements) IN [2,3]); - WR3: NOT ((SIZEOF(SELF\explicit_constraint.reference_elements) = 0) AND - (SIZEOF(SELF\explicit_constraint.constrained_elements) = 3)) AND NOT - ((SIZEOF(QUERY(q <* SELF\explicit_constraint.constrained_elements | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LINE' IN TYPEOF(q))) = 3) XOR - (SIZEOF(QUERY(q <* SELF\explicit_constraint.constrained_elements | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PLANE' IN TYPEOF(q))) = 3)); -END_ENTITY; -(* USED FROM (explicit_geometric_constraint_schema); *) -ENTITY parallel_offset_geometric_constraint - SUBTYPE OF (explicit_geometric_constraint); - SELF\explicit_constraint.constrained_elements : - SET[1:?] OF curve_or_surface_constraint_element; - SELF\explicit_constraint.reference_elements : - SET[0:1] OF curve_or_surface_constraint_element; - offset_type : parallel_offset_type; -WHERE - WR1: NOT(((offset_type = curve_2d_offset) - OR (offset_type = curve_3d_offset)) AND - (SIZEOF(QUERY( q <* (SELF\explicit_constraint.constrained_elements - + SELF\explicit_constraint.reference_elements) | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SURFACE' IN TYPEOF(q))) > 0)); - WR2: NOT((offset_type = surface_offset) AND (SIZEOF(QUERY( q <* - (SELF\explicit_constraint.constrained_elements + - SELF\explicit_constraint.reference_elements) | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CURVE' IN TYPEOF(q))) > 0)); -END_ENTITY; -(* USED FROM (Inertia_characteristics_mim); *) -ENTITY moments_of_inertia_representation -SUBTYPE OF (representation); -WHERE -WR1: (SIZEOF(SELF.items) = 1) AND - (SIZEOF( QUERY( i <* SELF.items | ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'COMPOUND_REPRESENTATION_ITEM' IN TYPEOF(i)) AND - (i.name = 'moments of inertia matrix') )) = 1); -WR2: SIZEOF( QUERY( i <* SELF.items | ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'COMPOUND_REPRESENTATION_ITEM' IN TYPEOF(i)) AND - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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; -(* USED FROM (Geometric_tolerance_mim); *) -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 curve']; - WR2: SIZEOF (QUERY (pdr <* representation_associations | 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF (pdr.used_representation) )) = 1; - WR3: valid_datum_target_parameters(SELF); -END_ENTITY; -(* USED FROM (Design_product_data_management_mim); *) -ENTITY retention - SUBTYPE OF (action); -WHERE - WR1: SIZEOF( QUERY( aa <* USEDIN(SELF,'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + - 'ACTION_ASSIGNMENT.ASSIGNED_ACTION') | - ('ACTIVITY.APPLIED_ACTION_ASSIGNMENT' IN - TYPEOF(aa)) AND - (aa.role.name = 'retention') - )) >= 1; - WR2: (SIZEOF( QUERY( atia <* USEDIN(SELF,'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + - 'APPLIED_TIME_INTERVAL_ASSIGNMENT.ITEMS') | - (atia.role.name = 'minimum retention period') - )) = 1) AND - (SIZEOF( QUERY( atia <* USEDIN(SELF,'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + - 'APPLIED_TIME_INTERVAL_ASSIGNMENT.ITEMS') | - (atia.role.name = 'maximum retention period') - )) = 1) AND - (SIZEOF( QUERY( atia1 <* USEDIN(SELF,'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + - 'APPLIED_TIME_INTERVAL_ASSIGNMENT.ITEMS') | - (atia1.role.name = 'minimum retention period') AND - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.TIME_INTERVAL_WITH_BOUNDS' IN - TYPEOF(atia1.assigned_time_interval)) AND - (EXISTS(atia1.assigned_time_interval\time_interval_with_bounds.secondary_bound) OR - EXISTS(atia1.assigned_time_interval\time_interval_with_bounds.duration)) AND - (SIZEOF( QUERY( atia2 <* USEDIN(SELF,'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + - 'APPLIED_TIME_INTERVAL_ASSIGNMENT.ITEMS') | - (atia2.role.name = 'maximum retention period') AND - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.TIME_INTERVAL_WITH_BOUNDS' IN - TYPEOF(atia2.assigned_time_interval)) AND - (EXISTS(atia2.assigned_time_interval\time_interval_with_bounds.secondary_bound) OR - EXISTS(atia2.assigned_time_interval\time_interval_with_bounds.duration)) AND - (atia1.assigned_time_interval\time_interval_with_bounds.primary_bound :=: - atia2.assigned_time_interval\time_interval_with_bounds.primary_bound) -)) = 1) - )) = 1); - - WR3: SIZEOF( USEDIN(SELF,'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + - 'ACTION_RELATIONSHIP.RELATING_ACTION')) + - SIZEOF( USEDIN(SELF,'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + - 'ACTION_RELATIONSHIP.RELATED_ACTION')) = 0; -END_ENTITY; -(* USED FROM (Default_tolerance_mim); *) -ENTITY default_tolerance_table_cell - SUBTYPE OF (compound_representation_item); -WHERE - WR1: SIZEOF(QUERY( x <* USEDIN(SELF,'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'REPRESENTATION.ITEMS') | 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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; -(* USED FROM (Default_tolerance_mim); *) -ENTITY default_tolerance_table - SUBTYPE OF (representation); -WHERE - WR1: SIZEOF( QUERY( i <* SELF.items | NOT('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.DEFAULT_TOLERANCE_TABLE_CELL' IN TYPEOF(i)) )) = 0; - WR2: (SIZEOF( QUERY( rr <* USEDIN(SELF,'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'REPRESENTATION_RELATIONSHIP.REP_1') | rr.name < 'general tolerance definition' )) = 0) AND (SIZEOF( QUERY( rr <* USEDIN(SELF,'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'REPRESENTATION_RELATIONSHIP.REP_1') | (rr.name = 'general tolerance definition') AND (rr.rep_2.name < 'default tolerance') )) = 0) AND (SIZEOF( USEDIN(SELF,'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'REPRESENTATION_RELATIONSHIP.REP_2') ) = 0); -END_ENTITY; -(* USED FROM (Compound_shape_representation_mim); *) - ENTITY compound_shape_representation - SUBTYPE OF (shape_representation); - WHERE - WR1: ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ( - ['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.'+ 'EDGE_BASED_WIREFRAME_MODEL' , - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.'+ 'FACE_BASED_SURFACE_MODEL' , - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.'+ 'MAPPED_ITEM' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.'+ - 'AXIS2_PLACEMENT_3D']* TYPEOF ( cbsr_i ) ) <>1 ) ) =0; - WR3: SIZEOF ( QUERY ( cbsr_i <* SELF.items | SIZEOF ( - ['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.'+ 'EDGE_BASED_WIREFRAME_MODEL' , - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.'+ 'FACE_BASED_SURFACE_MODEL' , - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.'+ 'MAPPED_ITEM']* TYPEOF ( cbsr_i ) ) =1 ) ) >0; - WR4: SIZEOF ( QUERY ( cbsr_i <* SELF.items | ( - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.'+ 'MAPPED_ITEM' IN TYPEOF ( cbsr_i ) ) - AND ( SIZEOF ( ['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.'+ - 'COMPOUND_SHAPE_REPRESENTATION' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.'+ - 'EDGE_BASED_WIREFRAME_SHAPE_REPRESENTATION' , - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.'+ - 'NON_MANIFOLD_SURFACE_SHAPE_REPRESENTATION']* TYPEOF ( - cbsr_i\ mapped_item.mapping_source ) ) <>1 ) ) ) =0; - END_ENTITY; -(* USED FROM (Constructive_solid_geometry_2d_mim); *) - ENTITY primitive_2d_with_inner_boundary - SUBTYPE OF (complex_area, compound_representation_item); - - (* removed : SELF\compound_representation_item.inner_boundary : COMPOUND_INNER_AREA_BOUNDARY *) - DERIVE - inner_boundary : COMPOUND_INNER_AREA_BOUNDARY := SELF\compound_representation_item.item_element; -- ITEM_ELEMENT : This ATTRIBUTE was RENAMED in the EXPRESS E2 source, this is the new name implemented as DERIVE - WHERE - WR1: SIZEOF(['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CIRCULAR_AREA', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ELLIPTIC_AREA', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.RECTANGULAR_AREA', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.POLYGONAL_AREA', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.AREA_WITH_OUTER_BOUNDARY', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PATH_AREA_WITH_PARAMETERS'] * TYPEOF(SELF)) > 0; - WR2: SIZEOF(QUERY(inner <* inner_boundary | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRIMITIVE_2D_WITH_INNER_BOUNDARY' IN TYPEOF(inner))) = 0; - WR3: open_path_based_inner_boundary(inner_boundary); - END_ENTITY; -(* USED FROM (Constructive_solid_geometry_2d_mim); *) - ENTITY single_boundary_csg_2d_shape_representation - SUBTYPE OF (single_area_csg_2d_shape_representation); - WHERE - WR1: SIZEOF(QUERY ( it <* SELF.items | - (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CSG_PRIMITIVE_SOLID_2D' IN TYPEOF(it)) - AND (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRIMITIVE_2D_WITH_INNER_BOUNDARY') IN - TYPEOF(it\csg_primitive_solid_2d.tree_root_expression))) )) = 0; - END_ENTITY; -(* USED FROM (Constructive_solid_geometry_2d_mim); *) - ENTITY single_area_csg_2d_shape_representation - SUBTYPE OF (csg_2d_shape_representation); - SELF\representation.items : SET[1:?] OF csg_2d_area_select; - WHERE - WR1: SIZEOF (QUERY (it <* SELF.items| - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MAPPED_ITEM' - IN TYPEOF(it)) )) = 0; - WR2: SIZEOF (QUERY (it <* SELF.items| - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CSG_SOLID_2D' - IN TYPEOF(it)) )) = 1; - END_ENTITY; -(* USED FROM (Constructive_solid_geometry_2d_mim); *) - ENTITY csg_solid_2d - SUBTYPE OF (csg_solid); - SELF\csg_solid.tree_root_expression : csg_select_2d; - WHERE - WR1: valid_csg_2d_primitives(SELF); - END_ENTITY; -(* USED FROM (explicit_geometric_constraint_schema); *) -ENTITY surface_distance_geometric_constraint - SUBTYPE OF (explicit_geometric_constraint); - SELF\explicit_constraint.constrained_elements : SET[1:2] OF surface; - SELF\explicit_constraint.reference_elements : - SET[0:4] OF point_curve_or_surface_constraint_element; - near_points : SET[0:4] OF near_point_relationship; -WHERE - WR1: (SIZEOF(SELF\explicit_constraint.reference_elements) > 0) OR - (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SDGC_WITH_DIMENSION' - IN TYPEOF(SELF)) - AND (SIZEOF(SELF\explicit_constraint.constrained_elements) = 2)); - WR2: SIZEOF(near_points) <= - SIZEOF(SELF\explicit_constraint.reference_elements); - WR3: SIZEOF(QUERY(q <* near_points | NOT - (q\representation_item_relationship.relating_representation_item - IN SELF\explicit_constraint.reference_elements))) = 0; -END_ENTITY; -(* USED FROM (Form_feature_in_panel_mim); *) -ENTITY joggle_termination - SUBTYPE OF (shape_aspect); -WHERE - WR1: 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FEATURE_COMPONENT_DEFINITION' IN - TYPEOF(SELF.of_shape.definition); - WR2: SELF.description IN ['value termination','face termination']; - WR3: (SELF.description = 'value termination') XOR - (SIZEOF( QUERY( pdr <* get_shape_aspect_property_definition_representations(SELF) | - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN - TYPEOF(pdr.used_representation)) - )) = 0); - WR4: (SELF.description <> 'value termination') OR - (SIZEOF( QUERY( pdr <* get_shape_aspect_property_definition_representations(SELF) | - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN - TYPEOF(pdr.used_representation)) AND - (SIZEOF(pdr.used_representation.items) = 2) - )) = 1); - WR5: (SELF.description <> 'value termination') OR - (SIZEOF( QUERY( pdr <* get_shape_aspect_property_definition_representations(SELF) | - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN - TYPEOF(pdr.used_representation)) AND - (SIZEOF( QUERY( i <* pdr.used_representation.items | - (i.name='depth') AND - (SIZEOF(['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', -'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT']*TYPEOF(i) - ) = 2) - )) = 1) - )) = 1); - WR6: (SELF.description <> 'value termination') OR - (SIZEOF( QUERY( pdr <* get_shape_aspect_property_definition_representations(SELF) | - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN - TYPEOF(pdr.used_representation)) AND - (SIZEOF( QUERY( i <* pdr.used_representation.items | - (i.name='angle') AND - (SIZEOF(['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', -'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PLANE_ANGLE_MEASURE_WITH_UNIT']*TYPEOF(i) - ) = 2) - )) = 1) - )) = 1); - WR7: SIZEOF( QUERY( sar <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + - 'SHAPE_ASPECT_RELATIONSHIP.RELATING_SHAPE_ASPECT') | - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP' IN - TYPEOF(sar)) AND - (sar.name = 'joggle termination usage') AND - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.JOGGLE' IN TYPEOF(sar.related_shape_aspect.of_shape.definition)) AND - (sar.related_shape_aspect.of_shape.definition\characterized_object.name = 'termination') AND - (sar.related_shape_aspect.of_shape.definition\characterized_object.description = 'joggle termination occurrence') - )) = 1; -END_ENTITY; -(* USED FROM (Process_plan_mim); *) -ENTITY process_operation - SUBTYPE OF (action_method); -WHERE - WR1: SIZEOF( QUERY( amr <* USEDIN(SELF,'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ACTION_METHOD_RELATIONSHIP.' + - 'RELATING_METHOD') | - NOT('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROCESS_OPERATION' IN - TYPEOF(amr\action_method_relationship.related_method)) OR - (SELF :=: amr\action_method_relationship.related_method) - )) = 0; - WR2: SIZEOF( QUERY( amr <* USEDIN(SELF,'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ACTION_METHOD_RELATIONSHIP.' + - 'RELATED_METHOD') | - NOT('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROCESS_OPERATION' IN - TYPEOF(amr\action_method_relationship.relating_method)) OR - (SELF :=: amr\action_method_relationship.relating_method) - )) = 0; -END_ENTITY; -(* USED FROM (Form_feature_in_panel_mim); *) -ENTITY locator - SUBTYPE OF (feature_definition); -WHERE - WR1: SIZEOF( QUERY( pdr <* get_property_definition_representations(SELF) | - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN - TYPEOF(pdr.used_representation)) AND - NOT ({2 <= SIZEOF(pdr.used_representation.items) <= 5}) - )) = 0; - WR2: SIZEOF( QUERY( pdr <* get_property_definition_representations(SELF) | - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN - TYPEOF(pdr.used_representation)) AND - (SIZEOF( QUERY( i <* pdr.used_representation.items | - (i.name='diameter') AND - (SIZEOF(['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', -'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT']*TYPEOF(i) - ) = 2) - )) = 1) - )) = 1; - WR3: SIZEOF( QUERY( pdr <* get_property_definition_representations(SELF) | - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN - TYPEOF(pdr.used_representation)) AND - (SIZEOF( QUERY( i <* pdr.used_representation.items | - (i.name='tip radius') AND - (SIZEOF(['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', -'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT']*TYPEOF(i) - ) = 2) - )) = 1) - )) <= 1; - WR4: SIZEOF( QUERY( pdr <* get_property_definition_representations(SELF) | - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN - TYPEOF(pdr.used_representation)) AND - (SIZEOF( QUERY( i <* pdr.used_representation.items | - (i.name='tip angle') AND - (SIZEOF(['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', -'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PLANE_ANGLE_MEASURE_WITH_UNIT']*TYPEOF(i) - ) = 2) - )) = 1) - )) = 1; - WR5: SIZEOF( QUERY( pdr <* get_property_definition_representations(SELF) | - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN - TYPEOF(pdr.used_representation)) AND - (SIZEOF( QUERY( i <* pdr.used_representation.items | - (i.name='base radius') AND - (SIZEOF(['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', -'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT']*TYPEOF(i) - ) = 2) - )) = 1) - )) <= 1; -END_ENTITY; -(* USED FROM (Form_feature_in_panel_mim); *) -ENTITY feature_in_panel - SUBTYPE OF (feature_definition); -WHERE - WR1: SELF.description IN ['pocket','boss','stairstep']; - WR2: SIZEOF( QUERY( pdr <* get_property_definition_representations(SELF) | - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN - TYPEOF(pdr.used_representation)) AND - NOT ({2 <= SIZEOF(pdr.used_representation.items) <= 3}) - )) = 0; - WR3: SIZEOF( QUERY( pdr <* get_property_definition_representations(SELF) | - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN - TYPEOF(pdr.used_representation)) AND - (SIZEOF( QUERY( i <* pdr.used_representation.items | - NOT( i.name IN ['orientation','base radius','target radius']) - )) > 0) - )) = 0; - WR4: SIZEOF( QUERY( pdr <* get_property_definition_representations(SELF) | - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN - TYPEOF(pdr.used_representation)) AND - (SIZEOF( QUERY( i <* pdr.used_representation.items | - (i.name='base radius') AND - (SIZEOF(['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', -'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT']*TYPEOF(i) - ) = 2) - )) = 1) - )) = 1; - WR5: SIZEOF( QUERY( pdr <* get_property_definition_representations(SELF) | - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN - TYPEOF(pdr.used_representation)) AND - (SIZEOF( QUERY( i <* pdr.used_representation.items | - (i.name='target radius') AND - (SIZEOF(['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', -'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT']*TYPEOF(i) - ) = 2) - )) = 1) - )) = 1; - WR6: SIZEOF( QUERY( sa <* get_shape_aspects(SELF) | - (sa.name = 'base boundary') AND - (sa.description IN ['directed angle occurrence','closed profile occurrence']) - )) = 1; - WR7: SIZEOF( QUERY( sa <* get_shape_aspects(SELF) | - (sa.name = 'target boundary') AND - (sa.description IN ['directed angle occurrence','closed profile occurrence']) - )) = 1; - WR8: SIZEOF( QUERY( sa <* get_shape_aspects(SELF) | - (sa.description = 'directed angle occurrence') - )) <= 1; - WR9: SIZEOF( QUERY( sa <* get_shape_aspects(SELF) | - (sa.description = 'directed angle occurrence') AND - (SIZEOF( QUERY( sar <* USEDIN( sa, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + - 'SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_DEFINING_RELATIONSHIP' IN - TYPEOF(sar)) AND - (sar.name = 'directed angle usage') AND - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.DIRECTED_ANGLE' IN - TYPEOF(sar.relating_shape_aspect)) - )) = 1 ) - )) = - SIZEOF( QUERY( sa <* get_shape_aspects(SELF) | - (sa.description = 'directed angle occurrence'))); - WR10: SIZEOF( QUERY( sa <* get_shape_aspects(SELF) | - (sa.description = 'closed profile occurrence') AND - (SIZEOF( QUERY( sar <* USEDIN( sa, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + - 'SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_DEFINING_RELATIONSHIP' IN - TYPEOF(sar)) AND - (sar.description = 'profile usage') AND - (SIZEOF(['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CIRCULAR_CLOSED_PROFILE', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.NGON_CLOSED_PROFILE', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.RECTANGULAR_CLOSED_PROFILE', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CLOSED_PATH_PROFILE'] - * TYPEOF(sar.relating_shape_aspect) - ) = 1 ) - )) = 1 ) - )) = - SIZEOF( QUERY( sa <* get_shape_aspects(SELF) | - (sa.description = 'closed profile occurrence'))); - WR11: (SIZEOF( QUERY( pdr <* get_property_definition_representations(SELF) | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FACE_SHAPE_REPRESENTATION' IN - TYPEOF(pdr.used_representation) - )) <= 1) AND - (SIZEOF( QUERY( pdr <* get_property_definition_representations(SELF) | - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FACE_SHAPE_REPRESENTATION' IN - TYPEOF(pdr.used_representation)) AND - NOT(pdr.used_representation.name = 'target face') - )) = 0); - WR12: (SIZEOF( QUERY( sa <* get_shape_aspects(SELF) | - (sa.name = 'target boundary') AND - (sa.description = 'directed angle occurrence') - )) = 0) OR - (SIZEOF( QUERY( pdr <* get_property_definition_representations(SELF) | - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FACE_SHAPE_REPRESENTATION' IN - TYPEOF(pdr.used_representation)) - )) = 1); -END_ENTITY; -(* USED FROM (Form_feature_in_panel_mim); *) -ENTITY joggle - SUBTYPE OF (feature_definition); -WHERE - WR1: SIZEOF( QUERY( pdr <* get_property_definition_representations(SELF) | - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN - TYPEOF(pdr.used_representation)) AND - NOT({5 <= SIZEOF(pdr.used_representation.items) <= 10}) - )) = 0; - WR2: SIZEOF( QUERY( pdr <* get_property_definition_representations(SELF) | - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN - TYPEOF(pdr.used_representation)) AND - (SIZEOF( QUERY( i <* pdr.used_representation.items | - NOT(i.name IN ['orientation','base radius 1','base radius 2','direction angle 1', - 'direction angle 2','height','slope angle 1','slope angle 2', - 'top radius 1','top radius 2']) - )) > 0) - )) = 0; - WR3: SIZEOF( QUERY( pdr <* get_property_definition_representations(SELF) | - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN - TYPEOF(pdr.used_representation)) AND - (SIZEOF( QUERY( i <* pdr.used_representation.items | - (i.name='direction angle 1') AND - (SIZEOF(['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', -'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PLANE_ANGLE_MEASURE_WITH_UNIT']*TYPEOF(i) - ) = 2) - )) = 1) - )) = 1; - WR4: SIZEOF( QUERY( pdr <* get_property_definition_representations(SELF) | - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN - TYPEOF(pdr.used_representation)) AND - (SIZEOF( QUERY( i <* pdr.used_representation.items | - (i.name='direction angle 2') AND - (SIZEOF(['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', -'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PLANE_ANGLE_MEASURE_WITH_UNIT']*TYPEOF(i) - ) = 2) - )) = 1) - )) = 1; - WR5: SIZEOF( QUERY( pdr <* get_property_definition_representations(SELF) | - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN - TYPEOF(pdr.used_representation)) AND - (SIZEOF( QUERY( i <* pdr.used_representation.items | - (i.name='height') AND - (SIZEOF(['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', -'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT']*TYPEOF(i) - ) = 2) - )) = 1) - )) <= 1; - WR6: SIZEOF( QUERY( pdr <* get_property_definition_representations(SELF) | - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN - TYPEOF(pdr.used_representation)) AND - (SIZEOF( QUERY( i <* pdr.used_representation.items | - (i.name='slope angle 1') AND - (SIZEOF(['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', -'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PLANE_ANGLE_MEASURE_WITH_UNIT']*TYPEOF(i) - ) = 2) - )) = 1) - )) = 1; - WR7: SIZEOF( QUERY( pdr <* get_property_definition_representations(SELF) | - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN - TYPEOF(pdr.used_representation)) AND - (SIZEOF( QUERY( i <* pdr.used_representation.items | - (i.name='slope angle 2') AND - (SIZEOF(['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', -'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PLANE_ANGLE_MEASURE_WITH_UNIT']*TYPEOF(i) - ) = 2) - )) = 1) - )) = 1; - WR8: SIZEOF( QUERY( sa <* get_shape_aspects(SELF) | - (sa.name = 'defining path') AND - (sa.description = 'path feature component occurrence') AND - (SIZEOF( QUERY( sar <* USEDIN( sa, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + - 'SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_DEFINING_RELATIONSHIP' IN - TYPEOF(sar)) AND - (sar.description = 'path feature component usage') AND - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PATH_FEATURE_COMPONENT' IN - TYPEOF(sar.relating_shape_aspect)) AND - (sar.relating_shape_aspect.description = 'linear') - )) = 1 ) - )) = 1; - WR9: SIZEOF( QUERY( sa <* get_shape_aspects(SELF) | - (sa.name = 'termination') AND - (sa.description = 'joggle termination occurrence') AND - (SIZEOF( QUERY( sar <* USEDIN( sa, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + - 'SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP' IN - TYPEOF(sar)) AND - (sar.name = 'joggle termination usage') AND - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.JOGGLE_TERMINATION' IN - TYPEOF(sar.relating_shape_aspect)) - )) = 1 ) - )) = 1; - WR10: SIZEOF( QUERY( pdr <* get_property_definition_representations(SELF) | - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN - TYPEOF(pdr.used_representation)) AND - (SIZEOF( QUERY( i <* pdr.used_representation.items | - (i.name='base radius 1') AND - (SIZEOF(['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', -'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT']*TYPEOF(i) - ) = 2) - )) = 1) - )) <= 1; - WR11: SIZEOF( QUERY( pdr <* get_property_definition_representations(SELF) | - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN - TYPEOF(pdr.used_representation)) AND - (SIZEOF( QUERY( i <* pdr.used_representation.items | - (i.name='base radius 2') AND - (SIZEOF(['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', -'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT']*TYPEOF(i) - ) = 2) - )) = 1) - )) <= 1; - WR12: SIZEOF( QUERY( pdr <* get_property_definition_representations(SELF) | - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN - TYPEOF(pdr.used_representation)) AND - (SIZEOF( QUERY( i <* pdr.used_representation.items | - (i.name='top radius 1') AND - (SIZEOF(['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', -'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT']*TYPEOF(i) - ) = 2) - )) = 1) - )) <= 1; - WR13: SIZEOF( QUERY( pdr <* get_property_definition_representations(SELF) | - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN - TYPEOF(pdr.used_representation)) AND - (SIZEOF( QUERY( i <* pdr.used_representation.items | - (i.name='top radius 2') AND - (SIZEOF(['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', -'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT']*TYPEOF(i) - ) = 2) - )) = 1) - )) <= 1; -END_ENTITY; -(* USED FROM (Form_feature_in_panel_mim); *) -ENTITY hole_in_panel - SUBTYPE OF (feature_definition); -WHERE - WR1: SIZEOF( QUERY( sa <* get_shape_aspects(SELF) | - (sa.name = 'hole profile') AND - (sa.description = 'closed profile occurrence') AND - (SIZEOF( QUERY( sar <* USEDIN( sa, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + - 'SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_DEFINING_RELATIONSHIP' IN - TYPEOF(sar)) AND - (sar.description = 'profile usage') AND - (SIZEOF(['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CIRCULAR_CLOSED_PROFILE', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.NGON_CLOSED_PROFILE', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.RECTANGULAR_CLOSED_PROFILE', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CLOSED_PATH_PROFILE'] - * TYPEOF(sar.relating_shape_aspect) - ) = 1 ) - )) = 1 ) - )) = 1; - WR2: SIZEOF( get_property_definition_representations(SELF)) = - SIZEOF( QUERY( pdr <* get_property_definition_representations(SELF) | - SIZEOF( pdr.used_representation.items) = 1)); -END_ENTITY; -(* USED FROM (Form_feature_in_panel_mim); *) -ENTITY bead_end - SUBTYPE OF (shape_aspect); -WHERE - WR1: 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FEATURE_COMPONENT_DEFINITION' IN - TYPEOF(SELF.of_shape.definition); - WR2: SELF.description IN ['linear','open','radiused']; - - WR3: (SELF.description <> 'linear') XOR - (SIZEOF( QUERY( pdr <* get_shape_aspect_property_definition_representations(SELF) | - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN - TYPEOF(pdr.used_representation)) - )) > 0); - WR4: (SELF.description <> 'linear') OR - (SIZEOF( QUERY( pdr <* get_shape_aspect_property_definition_representations(SELF) | - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN - TYPEOF(pdr.used_representation)) AND - (SIZEOF(pdr.used_representation.items) = 2) - )) = 1); - WR5: (SELF.description <> 'linear') OR - (SIZEOF( QUERY( pdr <* get_shape_aspect_property_definition_representations(SELF) | - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN - TYPEOF(pdr.used_representation)) AND - (SIZEOF( QUERY( i <* pdr.used_representation.items | - (i.name='end length') AND - (SIZEOF(['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', -'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT']*TYPEOF(i) - ) = 2) - )) = 1) - )) = 1); - WR6: (SELF.description <> 'linear') OR - (SIZEOF( QUERY( pdr <* get_shape_aspect_property_definition_representations(SELF) | - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN - TYPEOF(pdr.used_representation)) AND - (SIZEOF( QUERY( i <* pdr.used_representation.items | - (i.name = 'end shape') AND - (i\descriptive_representation_item.description IN ['straight','tapered']) AND - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.DESCRIPTIVE_REPRESENTATION_ITEM' - IN TYPEOF(i)) - )) = 1) - )) = 1); - WR7: SIZEOF( QUERY( sar <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + - 'SHAPE_ASPECT_RELATIONSHIP.RELATING_SHAPE_ASPECT') | - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP' IN - TYPEOF(sar)) AND - (sar.name = 'bead end usage') AND - (sar.description IN ['starting' -,'ending' -]) AND - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.BEAD' IN - TYPEOF(sar.related_shape_aspect.of_shape.definition)) AND - (sar.related_shape_aspect.of_shape.definition\characterized_object.name = 'end condition') AND - (sar.related_shape_aspect.of_shape.definition\characterized_object.description = 'bead end occurrence') - )) = 1; -END_ENTITY; - -(* Implicit interfaced from: procedural_model_schema *) -ENTITY procedural_representation - SUBTYPE OF (representation); - SELF\representation.items : - SET[1:?] OF procedural_representation_sequence; -END_ENTITY; - -(* Implicit interfaced from: procedural_model_schema *) -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; -(* REFERENCE FROM (procedural_model_schema); *) -ENTITY explicit_procedural_representation_item_relationship - SUBTYPE OF (representation_item_relationship); - SELF\representation_item_relationship.relating_representation_item : - procedural_representation_sequence; -WHERE - WR1 : NOT ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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; -(* USED FROM (Form_feature_in_panel_mim); *) -ENTITY bead - SUBTYPE OF (feature_definition); -WHERE - WR1: (SIZEOF( QUERY( pdr <* get_property_definition_representations(SELF) | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN - TYPEOF(pdr.used_representation) - )) <= 1) AND - (SIZEOF( QUERY( pdr <* get_property_definition_representations(SELF) | - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN - TYPEOF(pdr.used_representation)) AND - (SIZEOF(pdr.used_representation.items) > 2) - )) = 0); - WR2: SIZEOF( QUERY( pdr <* get_property_definition_representations(SELF) | - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN - TYPEOF(pdr.used_representation)) AND - (SIZEOF( QUERY( i <* pdr.used_representation.items | - NOT( i.name IN ['orientation','base radius']) - )) > 0) - )) = 0; - WR3: SIZEOF( QUERY( pdr <* get_property_definition_representations(SELF) | - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN - TYPEOF(pdr.used_representation)) AND - (SIZEOF( QUERY( i <* pdr.used_representation.items | - (i.name='base radius') AND - (SIZEOF(['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', -'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT']*TYPEOF(i) - ) = 2) - )) > 1) - )) = 0; - WR4: SIZEOF( QUERY( sa <* get_shape_aspects(SELF) | - (sa.name = 'sweep path') AND - (sa.description = 'path feature component occurrence') AND - (SIZEOF( QUERY( sar <* USEDIN( sa, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + - 'SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_DEFINING_RELATIONSHIP' IN - TYPEOF(sar)) AND - (sar.description = 'path feature component usage') AND - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PATH_FEATURE_COMPONENT' IN - TYPEOF(sar.relating_shape_aspect)) - )) = 1 ) - )) = 1; - WR5: SIZEOF( QUERY( sa <* get_shape_aspects(SELF) | - (sa.name = 'bead profile') AND - (sa.description = 'open profile occurrence') AND - (SIZEOF( QUERY( sar <* USEDIN( sa, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + - 'SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_DEFINING_RELATIONSHIP' IN - TYPEOF(sar)) AND - (sar.description = 'profile usage') AND - (SIZEOF(['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.OPEN_PATH_PROFILE', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PARTIAL_CIRCULAR_PROFILE', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ROUNDED_U_PROFILE', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SQUARE_U_PROFILE', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.TEE_PROFILE', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.VEE_PROFILE'] - * TYPEOF(sar.relating_shape_aspect) - ) = 1 ) - )) = 1 ) - )) = 1; - WR6: SIZEOF( QUERY( sa <* get_shape_aspects(SELF) | - (sa.name = 'end condition') AND - (sa.description = 'bead end occurrence') AND - (SIZEOF( QUERY( sar <* USEDIN( sa, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + - 'SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP' IN - TYPEOF(sar)) AND - (sar.name = 'bead end usage') AND - (sar.description = 'starting' -) AND - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.BEAD_END' IN - TYPEOF(sar.relating_shape_aspect)) - )) = 1 ) - )) = 1; - WR7: SIZEOF( QUERY( sa <* get_shape_aspects(SELF) | - (sa.name = 'end condition') AND - (sa.description = 'bead end occurrence') AND - (SIZEOF( QUERY( sar <* USEDIN( sa, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + - 'SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP' IN - TYPEOF(sar)) AND - (sar.name = 'bead end usage') AND - (sar.description = 'ending' -) AND - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.BEAD_END' IN - TYPEOF(sar.relating_shape_aspect)) - )) = 1 ) - )) = 1; -END_ENTITY; -(* USED FROM (Form_feature_in_panel_mim); *) -ENTITY barring_hole - SUBTYPE OF (feature_definition); -WHERE - WR1: SIZEOF( QUERY( sa <* get_shape_aspects(SELF) | - (sa.name = 'hole profile') AND - (sa.description = 'closed profile occurrence') AND - (SIZEOF( QUERY( sar <* USEDIN( sa, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + - 'SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_DEFINING_RELATIONSHIP' IN - TYPEOF(sar)) AND - (sar.description = 'profile usage') AND - (SIZEOF(['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CIRCULAR_CLOSED_PROFILE', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.NGON_CLOSED_PROFILE', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.RECTANGULAR_CLOSED_PROFILE', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CLOSED_PATH_PROFILE'] - * TYPEOF(sar.relating_shape_aspect) - ) = 1 ) - )) = 1 ) - )) = 1; - WR2: SIZEOF( QUERY( sa <* get_shape_aspects(SELF) | - (sa.name = 'barring profile') AND - (sa.description = 'closed profile occurrence') AND - (SIZEOF( QUERY( sar <* USEDIN( sa, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + - 'SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_DEFINING_RELATIONSHIP' IN - TYPEOF(sar)) AND - (sar.description = 'profile usage') - )) = 1 ) - )) = 1; - WR3: (SIZEOF( QUERY( pdr <* get_property_definition_representations(SELF) | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN - TYPEOF(pdr.used_representation) - )) = 1) AND - (SIZEOF( QUERY( pdr <* get_property_definition_representations(SELF) | - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN - TYPEOF(pdr.used_representation)) AND - {1 <= SIZEOF(pdr.used_representation.items) <= 2} - )) = 1); - WR4: SIZEOF( QUERY( pdr <* get_property_definition_representations(SELF) | - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN - TYPEOF(pdr.used_representation)) AND - (SIZEOF( QUERY( i <* pdr.used_representation.items | - NOT( i.name IN ['orientation','base radius']) - )) > 0) - )) = 0; - WR5: SIZEOF( QUERY( pdr <* get_property_definition_representations(SELF) | - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN - TYPEOF(pdr.used_representation)) AND - (SIZEOF( QUERY( i <* pdr.used_representation.items | - (i.name='base radius') AND - (SIZEOF(['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', -'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT']*TYPEOF(i) - ) = 2) - )) <> 1) - )) = 0; -END_ENTITY; -(* USED FROM (Externally_conditioned_data_quality_inspection_result_mim); *) - ENTITY externally_conditioned_data_quality_inspection_instance_report_item - SUBTYPE OF(data_quality_inspection_instance_report_item); - SELF\data_quality_inspection_instance_report_item.inspected_elements : SET [1:?] OF inspected_ecdq_element_select; - WHERE - WR1 : SIZEOF(QUERY(i1 <* - bag_to_set(USEDIN(SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.'+ - 'DATA_QUALITY_INSPECTION_INSTANCE_REPORT.'+ 'INSPECTED_INSTANCES'))| - NOT('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.'+ - 'EXTERNALLY_CONDITIONED_DATA_QUALITY_INSPECTION_RESULT' - IN TYPEOF(i1.inspection_result))))=0; - END_ENTITY; -(* USED FROM (Externally_conditioned_data_quality_inspection_result_mim); *) - ENTITY externally_conditioned_data_quality_inspection_result_representation - SUBTYPE OF(data_quality_inspection_result_representation); - WHERE - WR1 : SIZEOF( QUERY( q <* SELF\representation.items| - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + - 'EXTERNALLY_CONDITIONED_DATA_QUALITY_INSPECTION_RESULT' IN TYPEOF(q))) > 0; - END_ENTITY; -(* USED FROM (explicit_geometric_constraint_schema); *) -ENTITY curve_distance_geometric_constraint - SUBTYPE OF (explicit_geometric_constraint); - SELF\explicit_constraint.constrained_elements : SET[1:2] OF curve; - SELF\explicit_constraint.reference_elements : - SET[0:4] OF point_curve_or_surface_constraint_element; - near_points : SET[0:4] OF near_point_relationship; -WHERE - WR1: (SIZEOF(SELF\explicit_constraint.reference_elements) > 0) OR - (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CDGC_WITH_DIMENSION' - IN TYPEOF(SELF)) - AND (SIZEOF(SELF\explicit_constraint.constrained_elements) = 2)); - WR2: SIZEOF(near_points) <= - SIZEOF(SELF\explicit_constraint.reference_elements); - WR3: SIZEOF(QUERY(q <* near_points | NOT - (q\representation_item_relationship.relating_representation_item - IN SELF\explicit_constraint.reference_elements))) = 0; -END_ENTITY; -(* USED FROM (mathematical_functions_schema); *) -ENTITY definite_integral_function - SUBTYPE OF (maths_function, unary_generic_expression); - SELF\unary_generic_expression.operand : maths_function; - variable_of_integration : input_selector; - lower_limit_neg_infinity : BOOLEAN; - upper_limit_pos_infinity : BOOLEAN; -DERIVE - integrand : maths_function := SELF\unary_generic_expression.operand; -WHERE - WR1: space_is_continuum (integrand.range); - WR2: definite_integral_check (integrand.domain, variable_of_integration, - lower_limit_neg_infinity, upper_limit_pos_infinity); -END_ENTITY; -(* USED FROM (mathematical_functions_schema); *) -ENTITY abstracted_expression_function - SUBTYPE OF (maths_function, quantifier_expression); -DERIVE - SELF\quantifier_expression.variables : LIST [1:?] OF UNIQUE generic_variable := - remove_first(SELF\multiple_arity_generic_expression.operands); - expr : generic_expression := SELF\multiple_arity_generic_expression.operands[1]; -WHERE - WR1: SIZEOF (QUERY ( operand <* - SELF\multiple_arity_generic_expression.operands | NOT ( - has_values_space( operand)))) = 0; -END_ENTITY; -(* USED FROM (mathematical_functions_schema); *) -ENTITY definite_integral_expression - SUBTYPE OF (quantifier_expression); - lower_limit_neg_infinity : BOOLEAN; - upper_limit_pos_infinity : BOOLEAN; -DERIVE - integrand : generic_expression - := SELF\multiple_arity_generic_expression.operands[1]; - variable_of_integration : maths_variable - := SELF\multiple_arity_generic_expression.operands[2]; - SELF\quantifier_expression.variables : LIST [1:1] OF UNIQUE generic_variable - := [variable_of_integration]; -WHERE - WR1: has_values_space (integrand); - WR2: space_is_continuum (values_space_of (integrand)); - WR3: definite_integral_expr_check (SELF\multiple_arity_generic_expression.operands, - lower_limit_neg_infinity, upper_limit_pos_infinity); -END_ENTITY; -(* USED FROM (mathematical_functions_schema); *) -ENTITY rationalize_function - SUBTYPE OF (maths_function, unary_generic_expression); - SELF\unary_generic_expression.operand : maths_function; -DERIVE - fun : maths_function := SELF\unary_generic_expression.operand; -WHERE - WR1: (space_dimension(fun.domain) = 1) AND (space_dimension(fun.range) = 1); - WR2: number_tuple_subspace_check(factor1(fun.range)); - WR3: space_dimension(factor1(fun.range)) > 1; -END_ENTITY; -(* USED FROM (mathematical_functions_schema); *) -ENTITY partial_derivative_expression - SUBTYPE OF (unary_generic_expression); - d_variables : LIST [1:?] OF maths_variable; - extension : extension_options; -DERIVE - derivand : generic_expression := SELF\unary_generic_expression.operand; -WHERE - WR1: has_values_space (derivand); - WR2: space_is_continuum (values_space_of (derivand)); - WR3: SIZEOF (QUERY (vbl <* d_variables | (NOT subspace_of (values_space_of (vbl), - the_reals)) AND (NOT subspace_of (values_space_of (vbl), the_complex_numbers)) - )) = 0; -END_ENTITY; -(* USED FROM (mathematical_functions_schema); *) -ENTITY partial_derivative_function - SUBTYPE OF (maths_function, unary_generic_expression); - SELF\unary_generic_expression.operand : maths_function; - d_variables : LIST [1:?] OF input_selector; - extension : extension_options; -DERIVE - derivand : maths_function := SELF\unary_generic_expression.operand; -WHERE - WR1: space_is_continuum (derivand.range); - WR2: partial_derivative_check (derivand.domain, d_variables); -END_ENTITY; -(* USED FROM (mathematical_functions_schema); *) -ENTITY homogeneous_linear_function - SUBTYPE OF (maths_function, unary_generic_expression); - SELF\unary_generic_expression.operand : maths_function; - sum_index : one_or_two; -DERIVE - mat : maths_function := SELF\unary_generic_expression.operand; -WHERE - WR1: function_is_2d_table(mat); - WR2: (space_dimension(mat.range) = 1) AND - subspace_of_es(factor1(mat.range),es_numbers); -END_ENTITY; -(* USED FROM (mathematical_functions_schema); *) -ENTITY b_spline_function - SUBTYPE OF (maths_function, unary_generic_expression); - SELF\unary_generic_expression.operand : maths_function; - basis : LIST [1:?] OF b_spline_basis; -DERIVE - coef : maths_function := SELF\unary_generic_expression.operand; -WHERE - WR1: function_is_table(coef); - WR2: (space_dimension(coef.range) = 1) AND - (number_superspace_of(factor1(coef.range)) = the_reals); - WR3: SIZEOF (basis) <= - SIZEOF (shape_of_array(coef)); - WR4: compare_basis_and_coef(basis, coef); -END_ENTITY; -(* USED FROM (mathematical_functions_schema); *) -ENTITY b_spline_basis - SUBTYPE OF (maths_function, generic_literal); - degree : nonnegative_integer; - repeated_knots : LIST [2:?] OF REAL; -DERIVE - order : positive_integer := degree + 1; - num_basis : positive_integer := SIZEOF (repeated_knots) - order; -WHERE - WR1: num_basis >= order; - WR2: nondecreasing(repeated_knots); - WR3: repeated_knots[order] < repeated_knots[num_basis+1]; -END_ENTITY; -(* USED FROM (mathematical_functions_schema); *) -ENTITY linearized_table_function - SUPERTYPE OF (ONEOF ( - STANDARD_TABLE_FUNCTION, - REGULAR_TABLE_FUNCTION, - TRIANGULAR_MATRIX, - SYMMETRIC_MATRIX, - BANDED_MATRIX)) - SUBTYPE OF (explicit_table_function, unary_generic_expression); - SELF\unary_generic_expression.operand : maths_function; - first : integer; -DERIVE - source : maths_function := SELF\unary_generic_expression.operand; -WHERE - WR1: function_is_1d_array(source); - WR2: member_of(first, source\maths_function.domain); -END_ENTITY; -(* USED FROM (mathematical_functions_schema); *) -ENTITY listed_data - SUBTYPE OF (explicit_table_function, generic_literal); - values : LIST [1:?] OF maths_value; - value_range : maths_space; -DERIVE - SELF\explicit_table_function.shape : LIST [1:?] OF positive_integer := - [SIZEOF (values)]; -WHERE - WR1: expression_is_constant(value_range); - WR2: SIZEOF (QUERY (val <* values | NOT (member_of( val, value_range)))) = 0; -END_ENTITY; -(* USED FROM (shape_data_quality_inspection_result_schema); *) - ENTITY point_on_edge_curve - SUBTYPE OF(point_on_curve); - basis_edge_curve : edge_curve; - DERIVE - SELF\point_on_curve.basis_curve : curve := SELF.basis_edge_curve.edge_geometry; - WHERE - WR1 : SIZEOF( - using_representations(SELF.basis_edge_curve) * - relating_shape_representations_of_extreme_values(SELF))>0; - END_ENTITY; -(* USED FROM (mathematical_functions_schema); *) -ENTITY parallel_composed_function - SUBTYPE OF (maths_function, multiple_arity_generic_expression); - source_of_domain : maths_space_or_function; - prep_functions : LIST [1:?] OF maths_function; - final_function : maths_function_select; -DERIVE - SELF\multiple_arity_generic_expression.operands : LIST [2:?] of generic_expression - := convert_to_operands_prcmfn(source_of_domain, prep_functions, final_function); -WHERE - WR1: no_cyclic_domain_reference(source_of_domain, [SELF]); - WR2: expression_is_constant(domain_from(source_of_domain)); - WR3: parallel_composed_function_domain_check(domain_from(source_of_domain), - prep_functions); - WR4: parallel_composed_function_composability_check(prep_functions, final_function); -END_ENTITY; -(* USED FROM (mathematical_functions_schema); *) -ENTITY series_composed_function - SUBTYPE OF (maths_function, multiple_arity_generic_expression); - SELF\multiple_arity_generic_expression.operands : LIST [2:?] of maths_function; -WHERE - WR1: composable_sequence(SELF\multiple_arity_generic_expression.operands); -END_ENTITY; -(* USED FROM (mathematical_functions_schema); *) -ENTITY reindexed_array_function - SUBTYPE OF (maths_function, unary_generic_expression); - SELF\unary_generic_expression.operand : maths_function; - starting_indices : LIST [1:?] OF INTEGER; -WHERE - WR1: function_is_array(SELF\unary_generic_expression.operand); - WR2: SIZEOF(starting_indices) = SIZEOF(shape_of_array( - SELF\unary_generic_expression.operand)); -END_ENTITY; -(* USED FROM (mathematical_functions_schema); *) -ENTITY repackaging_function - SUBTYPE OF (maths_function, unary_generic_expression); - SELF\unary_generic_expression.operand : maths_function; - input_repack : repackage_options; - output_repack : repackage_options; - selected_output : nonnegative_integer; -WHERE - WR1: (input_repack <> ro_wrap_as_tuple) OR - ((space_dimension(operand.domain) = 1) AND - ((schema_prefix + 'TUPLE_SPACE') IN TYPEOF (factor1(operand.domain)))); - WR2: (output_repack <> ro_unwrap_tuple) OR - ((space_dimension(operand.range) = 1) AND - ((schema_prefix + 'TUPLE_SPACE') IN TYPEOF (factor1(operand.range)))); - WR3: selected_output <= space_dimension( repackage( - operand.range, output_repack)); -END_ENTITY; -(* USED FROM (mathematical_functions_schema); *) -ENTITY finite_space - SUBTYPE OF (maths_space, generic_literal); - members : SET OF maths_value; -WHERE - WR1: VALUE_UNIQUE(members); - WR2: SIZEOF (QUERY (expr <* QUERY (member <* members | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.GENERIC_EXPRESSION' IN TYPEOF (member)) - | NOT expression_is_constant(expr))) = 0; - WR3: no_cyclic_space_reference(SELF, []); -END_ENTITY; -(* USED FROM (shape_data_quality_inspection_result_schema); *) - ENTITY shape_data_quality_inspected_shape_and_result_relationship - SUBTYPE OF(shape_representation_relationship); - SELF\representation_relationship.rep_1 : shape_representation; - SELF\representation_relationship.rep_2 : shape_data_quality_inspection_result_representation; - WHERE - WR1 : SIZEOF( - using_product_definition_of_shape_representation(SELF.rep_1) - * - bag_to_set(inspected_product_definition(SELF.rep_2)) - ) > 0; - WR2 : SELF.rep_1\representation.context_of_items :=: - SELF.rep_2\representation.context_of_items; - END_ENTITY; - -(* Implicit interfaced from: mesh_topology_schema *) -FUNCTION this_schema : STRING; - RETURN('MESH_TOPOLOGY_SCHEMA'); -END_FUNCTION; -(* REFERENCE FROM (basic_attribute_schema); *) - FUNCTION get_role (obj : role_select):object_role; - LOCAL - role_bag : BAG OF role_association := (USEDIN(obj, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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; -(* REFERENCE FROM (basic_attribute_schema); *) - FUNCTION get_name_value (obj : name_attribute_select):label; - LOCAL - name_bag : BAG OF name_attribute := (USEDIN(obj, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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; - -(* Implicit interfaced from: analysis_schema *) - FUNCTION temporal_spatial_domain_for_model (domain : numerical_model): BOOLEAN; - LOCAL - spatial_set : SET OF spatial_decomposition_of_numerical_model; - behavioural_set : SET OF behavioural_decomposition_of_numerical_model; - domains : SET OF numerical_model := []; - viewing : BAG OF view_relationship; - spatial_bag : BAG OF spatial_decomposition_of_numerical_model; - behavioural_bag : BAG OF behavioural_decomposition_of_numerical_model; - END_LOCAL; - - viewing := USEDIN(domain, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.VIEW_RELATIONSHIP.VIEW'); - IF SIZEOF(viewing) > 0 THEN - RETURN (TRUE); - END_IF; - spatial_bag := USEDIN(domain, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SPATIAL_DECOMPOSITION_OF_NUMERICAL_MODEL.PARTS'); - IF SIZEOF(spatial_bag) > 0 THEN - spatial_set := bag_to_set(spatial_bag); - REPEAT i := 1 TO HIINDEX(spatial_set); - domains := domains + spatial_set[i].whole; - END_REPEAT; - END_IF; - behavioural_bag := USEDIN(domain, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.BEHAVIOURAL_DECOMPOSITION_OF_NUMERICAL_MODEL.PARTS'); - IF SIZEOF(behavioural_bag) > 0 THEN - behavioural_set := bag_to_set(behavioural_bag); - REPEAT i := 1 TO HIINDEX(behavioural_set); - domains := domains + behavioural_set[i].whole; - END_REPEAT; - END_IF; - IF SIZEOF(domains) > 0 THEN - REPEAT i := 1 TO HIINDEX(domains); - IF temporal_spatial_domain_for_model(domains[i]) THEN - RETURN (TRUE); - END_IF; - END_REPEAT; - END_IF; - RETURN (FALSE); - END_FUNCTION; -(* REFERENCE FROM (basic_attribute_schema); *) - FUNCTION get_id_value (obj : id_attribute_select):identifier; - LOCAL - id_bag : BAG OF id_attribute := (USEDIN(obj, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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; -(* REFERENCE FROM (support_resource_schema); *) - FUNCTION bag_to_set (the_bag : BAG OF GENERIC:intype):SET 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; - -(* Implicit interfaced from: mathematical_functions_schema *) -FUNCTION expression_is_constant(expr : generic_expression) : BOOLEAN; - RETURN (bool(SIZEOF (free_variables_of (expr)) = 0)); -END_FUNCTION; -- expression_is_constant - -(* Implicit interfaced from: mathematical_functions_schema *) -FUNCTION bool(lgcl: LOGICAL) : BOOLEAN; - IF NOT EXISTS (lgcl) THEN RETURN (FALSE); END_IF; - IF lgcl <> TRUE THEN RETURN (FALSE); END_IF; - RETURN (TRUE); -END_FUNCTION; -- bool - -(* Implicit interfaced from: mathematical_functions_schema *) -FUNCTION free_variables_of(expr : generic_expression) : SET OF generic_variable; - LOCAL - typenames : SET OF STRING := stripped_typeof(expr); - result : SET OF generic_variable := []; - exprs : LIST OF generic_expression := []; - END_LOCAL; - IF 'GENERIC_LITERAL' IN typenames THEN - RETURN (result); - END_IF; - IF 'GENERIC_VARIABLE' IN typenames THEN - result := result + expr; - RETURN (result); - END_IF; - IF 'QUANTIFIER_EXPRESSION' IN typenames THEN - exprs := QUERY (ge <* expr\multiple_arity_generic_expression.operands | - NOT (ge IN expr\quantifier_expression.variables)); - REPEAT i := 1 TO SIZEOF (exprs); - result := result + free_variables_of (exprs[i]); - END_REPEAT; - REPEAT i := 1 TO SIZEOF (expr\quantifier_expression.variables); - result := result - expr\quantifier_expression.variables[i]; - END_REPEAT; - RETURN (result); - END_IF; - IF 'UNARY_GENERIC_EXPRESSION' IN typenames THEN - RETURN (free_variables_of (expr\unary_generic_expression.operand)); - END_IF; - IF 'BINARY_GENERIC_EXPRESSION' IN typenames THEN - result := free_variables_of (expr\binary_generic_expression.operands[1]); - RETURN (result + free_variables_of (expr\binary_generic_expression.operands[2])); - END_IF; - IF 'MULTIPLE_ARITY_GENERIC_EXPRESSION' IN typenames THEN - REPEAT i := 1 TO SIZEOF (expr\multiple_arity_generic_expression.operands); - result := result + free_variables_of ( - expr\multiple_arity_generic_expression.operands[i]); - END_REPEAT; - RETURN (result); - END_IF; - -- In this case the subtype shall not contain any variable (see IP1 in - -- generic_expression). - RETURN (result); -END_FUNCTION; -- free_variables_of - -(* Implicit interfaced from: mathematical_functions_schema *) -FUNCTION stripped_typeof(arg : GENERIC:G) : SET OF STRING; - LOCAL - types : SET OF STRING := TYPEOF (arg); - stypes : SET OF STRING := []; - n : INTEGER := LENGTH (schema_prefix); - END_LOCAL; - REPEAT i := 1 TO SIZEOF (types); - IF types[i][1:n] = schema_prefix THEN - stypes := stypes + types[i][n+1:LENGTH(types[i])]; - ELSE - stypes := stypes + types[i]; - END_IF; - END_REPEAT; - RETURN (stypes); -END_FUNCTION; -- stripped_typeof - -(* Implicit interfaced from: mathematical_functions_schema *) -FUNCTION subspace_of_es(spc : maths_space; - es : elementary_space_enumerators) : LOGICAL; - LOCAL - types : SET OF STRING := stripped_typeof(spc); - END_LOCAL; - IF NOT EXISTS (spc) OR NOT EXISTS (es) THEN RETURN (FALSE); END_IF; - IF 'ELEMENTARY_SPACE' IN types THEN - RETURN (es_subspace_of_es(spc\elementary_space.space_id,es)); - END_IF; - IF 'FINITE_SPACE' IN types THEN - RETURN (all_members_of_es(spc\finite_space.members,es)); - END_IF; - CASE es OF - es_numbers : RETURN ( - ('FINITE_INTEGER_INTERVAL' IN types) OR - ('INTEGER_INTERVAL_FROM_MIN' IN types) OR - ('INTEGER_INTERVAL_TO_MAX' IN types) OR - ('FINITE_REAL_INTERVAL' IN types) OR - ('REAL_INTERVAL_FROM_MIN' IN types) OR - ('REAL_INTERVAL_TO_MAX' IN types) OR - ('CARTESIAN_COMPLEX_NUMBER_REGION' IN types) OR - ('POLAR_COMPLEX_NUMBER_REGION' IN types) ); - es_complex_numbers : RETURN ( - ('CARTESIAN_COMPLEX_NUMBER_REGION' IN types) OR - ('POLAR_COMPLEX_NUMBER_REGION' IN types) ); - es_reals : RETURN ( - ('FINITE_REAL_INTERVAL' IN types) OR - ('REAL_INTERVAL_FROM_MIN' IN types) OR - ('REAL_INTERVAL_TO_MAX' IN types) ); - es_integers : RETURN ( - ('FINITE_INTEGER_INTERVAL' IN types) OR - ('INTEGER_INTERVAL_FROM_MIN' IN types) OR - ('INTEGER_INTERVAL_TO_MAX' IN types) ); - es_logicals : RETURN (FALSE); - es_booleans : RETURN (FALSE); - es_strings : RETURN (FALSE); - es_binarys : RETURN (FALSE); - es_maths_spaces : RETURN (FALSE); - es_maths_functions : RETURN ('FUNCTION_SPACE' IN types); - es_generics : RETURN (TRUE); - END_CASE; - RETURN (UNKNOWN); -END_FUNCTION; -- subspace_of_es - -(* Implicit interfaced from: mathematical_functions_schema *) -FUNCTION es_subspace_of_es(es1, es2 : elementary_space_enumerators) : BOOLEAN; - IF NOT EXISTS (es1) OR NOT EXISTS (es2) THEN RETURN (FALSE); END_IF; - IF es1 = es2 THEN RETURN (TRUE); END_IF; - IF es2 = es_generics THEN RETURN (TRUE); END_IF; - IF (es1 = es_booleans) AND (es2 = es_logicals) THEN RETURN (TRUE); END_IF; - IF (es2 = es_numbers) AND ((es1 = es_complex_numbers) OR (es1 = es_reals) OR - (es1 = es_integers)) THEN RETURN (TRUE); END_IF; - RETURN (FALSE); -END_FUNCTION; -- es_subspace_of_es - -(* Implicit interfaced from: mathematical_functions_schema *) -FUNCTION all_members_of_es(sv : SET OF maths_value; - es : elementary_space_enumerators) : LOGICAL; - CONSTANT - base_types : SET OF STRING := ['NUMBER','COMPLEX_NUMBER_LITERAL','REAL', - 'INTEGER','LOGICAL','BOOLEAN','STRING','BINARY','MATHS_SPACE', - 'MATHS_FUNCTION','LIST','ELEMENTARY_SPACE_ENUMERATORS','ORDERING_TYPE', - 'LOWER_UPPER','SYMMETRY_TYPE','ELEMENTARY_FUNCTION_ENUMERATORS', - 'OPEN_CLOSED','SPACE_CONSTRAINT_TYPE','REPACKAGE_OPTIONS', - 'EXTENSION_OPTIONS']; - END_CONSTANT; - LOCAL - v : maths_value; - key_type : STRING := ''; - types : SET OF STRING; - ge : generic_expression; - cum : LOGICAL := TRUE; - vspc : maths_space; - END_LOCAL; - IF NOT EXISTS (sv) OR NOT EXISTS (es) THEN RETURN (FALSE); END_IF; - CASE es OF - es_numbers : key_type := 'NUMBER'; - es_complex_numbers : key_type := 'COMPLEX_NUMBER_LITERAL'; - es_reals : key_type := 'REAL'; - es_integers : key_type := 'INTEGER'; - es_logicals : key_type := 'LOGICAL'; - es_booleans : key_type := 'BOOLEAN'; - es_strings : key_type := 'STRING'; - es_binarys : key_type := 'BINARY'; - es_maths_spaces : key_type := 'MATHS_SPACE'; - es_maths_functions : key_type := 'MATHS_FUNCTION'; - es_generics : RETURN (TRUE); - END_CASE; - REPEAT i := 1 TO SIZEOF (sv); - IF NOT EXISTS (sv[i]) THEN RETURN (FALSE); END_IF; - v := simplify_maths_value(sv[i]); - types := stripped_typeof(v); - IF key_type IN types THEN SKIP; END_IF; - IF (es = es_numbers) AND ('COMPLEX_NUMBER_LITERAL' IN types) THEN SKIP; END_IF; - IF SIZEOF (base_types * types) > 0 THEN RETURN (FALSE); END_IF; - -- Must be a generic_expression which doesn't simplify and which is not a - ge := v; - IF has_values_space(ge) THEN - vspc := values_space_of(ge); - IF NOT subspace_of_es(vspc,es) THEN - IF NOT compatible_spaces(vspc,make_elementary_space(es)) THEN - RETURN (FALSE); - END_IF; - cum := UNKNOWN; - END_IF; - ELSE - cum := UNKNOWN; - END_IF; - IF cum = FALSE THEN RETURN (FALSE); END_IF; - END_REPEAT; - RETURN (cum); -END_FUNCTION; - -(* Implicit interfaced from: mathematical_functions_schema *) -FUNCTION simplify_maths_value(val : maths_value) : maths_value; - LOCAL - vtypes : SET OF STRING := stripped_typeof(val); - vlist : LIST OF maths_value; - nlist : LIST OF maths_value := []; - END_LOCAL; - IF 'GENERIC_EXPRESSION' IN vtypes THEN - RETURN (simplify_generic_expression(val)); - END_IF; - IF 'LIST' IN vtypes THEN - vlist := val; - REPEAT i := 1 TO SIZEOF (vlist); - INSERT (nlist, simplify_maths_value(vlist[i]), i-1); - END_REPEAT; - RETURN (convert_to_maths_value(nlist)); - END_IF; - RETURN (val); -END_FUNCTION; - -(* Implicit interfaced from: mathematical_functions_schema *) -FUNCTION simplify_generic_expression(expr : generic_expression) : maths_value; - FUNCTION restore_unary(expr : unary_generic_expression; - opnd : generic_expression) : generic_expression; - expr.operand := opnd; - RETURN (expr); - END_FUNCTION; - FUNCTION restore_binary(expr : binary_generic_expression; - opd1, opd2 : generic_expression) : generic_expression; - expr.operands[1] := opd1; - expr.operands[2] := opd2; - RETURN (expr); - END_FUNCTION; - FUNCTION restore_mulary(expr : multiple_arity_generic_expression; - ops : LIST OF generic_expression) : generic_expression; - expr.operands := ops; - RETURN (expr); - END_FUNCTION; - FUNCTION make_number_literal(nmb : NUMBER) : generic_literal; - IF 'INTEGER' IN TYPEOF (nmb) THEN RETURN (make_int_literal(nmb)); END_IF; - RETURN (make_real_literal(nmb)); - END_FUNCTION; - LOCAL - types : SET OF STRING := stripped_typeof (expr); - v1, v2 : maths_value; - vlist : LIST OF maths_value := []; - op1, op2 : generic_expression; - oplist : LIST OF generic_expression := []; - opnds : LIST [2:?] OF generic_expression; - n, m : INTEGER; - finfun : maths_function_select; - boo : BOOLEAN; - str : STRING; - nmb : NUMBER; - END_LOCAL; - IF 'INT_LITERAL' IN types THEN - RETURN (convert_to_maths_value (expr\int_literal.the_value)); - END_IF; - IF 'REAL_LITERAL' IN types THEN - RETURN (convert_to_maths_value (expr\real_literal.the_value)); - END_IF; - IF 'BOOLEAN_LITERAL' IN types THEN - RETURN (convert_to_maths_value (expr\boolean_literal.the_value)); - END_IF; - IF 'STRING_LITERAL' IN types THEN - RETURN (convert_to_maths_value (expr\string_literal.the_value)); - END_IF; - IF 'COMPLEX_NUMBER_LITERAL' IN types THEN - RETURN (expr); - END_IF; - IF 'LOGICAL_LITERAL' IN types THEN - RETURN (convert_to_maths_value (expr\logical_literal.lit_value)); - END_IF; - IF 'BINARY_LITERAL' IN types THEN - RETURN (convert_to_maths_value (expr\binary_literal.lit_value)); - END_IF; - IF 'MATHS_ENUM_LITERAL' IN types THEN - RETURN (expr\maths_enum_literal.lit_value); - END_IF; - IF 'REAL_TUPLE_LITERAL' IN types THEN - RETURN (convert_to_maths_value (expr\real_tuple_literal.lit_value)); - END_IF; - IF 'INTEGER_TUPLE_LITERAL' IN types THEN - RETURN (convert_to_maths_value (expr\integer_tuple_literal.lit_value)); - END_IF; - IF 'ATOM_BASED_LITERAL' IN types THEN - RETURN (expr\atom_based_literal.lit_value); - END_IF; - IF 'MATHS_TUPLE_LITERAL' IN types THEN - RETURN (convert_to_maths_value (expr\maths_tuple_literal.lit_value)); - END_IF; - IF 'MATHS_SPACE' IN types THEN - RETURN (simplify_maths_space(expr)); - END_IF; - IF 'FUNCTION_APPLICATION' IN types THEN - RETURN (simplify_function_application(expr)); - END_IF; - IF 'UNARY_GENERIC_EXPRESSION' IN types THEN - v1 := simplify_generic_expression(expr\unary_generic_expression.operand); - op1 := convert_to_operand(v1); - END_IF; - IF 'BINARY_GENERIC_EXPRESSION' IN types THEN - v1 := simplify_generic_expression(expr\binary_generic_expression.operands[1]); - op1 := convert_to_operand(v1); - v2 := simplify_generic_expression(expr\binary_generic_expression.operands[2]); - op2 := convert_to_operand(v2); - END_IF; - IF 'MULTIPLE_ARITY_GENERIC_EXPRESSION' IN types THEN - opnds := expr\multiple_arity_generic_expression.operands; - REPEAT i := 1 TO SIZEOF (opnds); - v1 := simplify_generic_expression(opnds[i]); - INSERT (vlist, v1, i-1); - INSERT (oplist, convert_to_operand(v1), i-1); - END_REPEAT; - END_IF; - IF 'PARALLEL_COMPOSED_FUNCTION' IN types THEN - v1 := vlist[1]; - n := SIZEOF (vlist); - finfun := vlist[n]; - REMOVE (vlist, n); - REMOVE (vlist, 1); - RETURN (make_parallel_composed_function(v1,vlist,finfun)); - END_IF; - IF ('ABS_EXPRESSION' IN types) AND ('NUMBER' IN TYPEOF (v1)) THEN - RETURN (convert_to_maths_value (ABS(v1))); - END_IF; - IF ('ACOS_EXPRESSION' IN types) AND ('NUMBER' IN TYPEOF (v1)) THEN - RETURN (convert_to_maths_value (ACOS(v1))); - END_IF; - IF 'AND_EXPRESSION' IN types THEN - REPEAT i := SIZEOF (vlist) TO 1 BY -1; - IF 'BOOLEAN' IN TYPEOF (vlist[i]) THEN - boo := vlist[i]; - IF NOT boo THEN RETURN (convert_to_maths_value(FALSE)); END_IF; - REMOVE (oplist, i); - END_IF; - END_REPEAT; - IF SIZEOF (oplist) = 0 THEN RETURN (convert_to_maths_value(TRUE)); END_IF; - IF SIZEOF (oplist) = 1 THEN RETURN (oplist[1]); END_IF; - END_IF; - IF ('ASIN_EXPRESSION' IN types) AND ('NUMBER' IN TYPEOF (v1)) THEN - RETURN (convert_to_maths_value (ASIN(v1))); - END_IF; - IF ('ATAN_EXPRESSION' IN types) AND - ('NUMBER' IN TYPEOF (v1)) AND ('NUMBER' IN TYPEOF (v2)) THEN - RETURN (convert_to_maths_value (ATAN(v1,v2))); - END_IF; - IF ('COMPARISON_EXPRESSION' IN types) AND ( - (('NUMBER' IN TYPEOF (v1)) AND ('NUMBER' IN TYPEOF (v2))) OR - (('STRING' IN TYPEOF (v1)) AND ('STRING' IN TYPEOF (v2))) OR - (('BOOLEAN' IN TYPEOF (v1)) AND ('BOOLEAN' IN TYPEOF (v2))) ) THEN - IF 'COMPARISON_EQUAL' IN types THEN boo := bool(v1 = v2); - ELSE IF 'COMPARISON_GREATER' IN types THEN boo := bool(v1 > v2); - ELSE IF 'COMPARISON_GREATER_EQUAL' IN types THEN boo := bool(v1 >= v2); - ELSE IF 'COMPARISON_LESS' IN types THEN boo := bool(v1 < v2); - ELSE IF 'COMPARISON_LESS_EQUAL' IN types THEN boo := bool(v1 <= v2); - ELSE IF 'COMPARISON_NOT_EQUAL' IN types THEN boo := bool(v1 <> v2); - ELSE IF 'LIKE_EXPRESSION' IN types THEN boo := bool(v1 LIKE v2); - ELSE RETURN (?); -- Unreachable - END_IF; END_IF; END_IF; END_IF; END_IF; END_IF; END_IF; - RETURN (convert_to_maths_value (boo)); - END_IF; - IF 'CONCAT_EXPRESSION' IN types THEN - str := ''; - REPEAT i := SIZEOF (vlist) TO 1 BY -1; - IF 'STRING' IN TYPEOF (vlist[i]) THEN - str := vlist[i] + str; - REMOVE (oplist, i); - ELSE IF LENGTH(str) > 0 THEN - INSERT (oplist, make_string_literal(str), i); - str := ''; - END_IF; END_IF; - END_REPEAT; - IF SIZEOF (oplist) = 0 THEN RETURN (convert_to_maths_value(str)); END_IF; - IF LENGTH(str) > 0 THEN INSERT (oplist, make_string_literal(str), 0); END_IF; - IF SIZEOF (oplist) = 1 THEN RETURN (oplist[1]); END_IF; - END_IF; - IF ('COS_EXPRESSION' IN types) AND ('NUMBER' IN TYPEOF (v1)) THEN - RETURN (convert_to_maths_value (COS(v1))); - END_IF; - IF ('DIV_EXPRESSION' IN types) AND - ('NUMBER' IN TYPEOF (v1)) AND ('NUMBER' IN TYPEOF (v2)) THEN - RETURN (convert_to_maths_value (v1 DIV v2)); - END_IF; - IF 'EQUALS_EXPRESSION' IN types THEN - opnds := expr\binary_generic_expression.operands; - RETURN (convert_to_maths_value (opnds[1] :=: opnds[2])); - END_IF; - IF ('EXP_EXPRESSION' IN types) AND ('NUMBER' IN TYPEOF (v1)) THEN - RETURN (convert_to_maths_value (EXP(v1))); - END_IF; - IF ('FORMAT_EXPRESSION' IN types) AND - ('NUMBER' IN TYPEOF (v1)) AND ('STRING' IN TYPEOF (v2)) THEN - RETURN (convert_to_maths_value (FORMAT(v1,v2))); - END_IF; - IF ('INDEX_EXPRESSION' IN types) AND - ('STRING' IN TYPEOF (v1)) AND ('NUMBER' IN TYPEOF (v2)) THEN - str := v1; n := v2; - RETURN (convert_to_maths_value (str[n])); - END_IF; - IF ('INT_VALUE_EXPRESSION' IN types) AND ('STRING' IN TYPEOF (v1)) THEN - RETURN (convert_to_maths_value (VALUE(v1))); - END_IF; - IF 'INTERVAL_EXPRESSION' IN types THEN - str := ''; - IF 'NUMBER' IN TYPEOF (vlist[1]) THEN str := 'NUMBER'; END_IF; - IF 'STRING' IN TYPEOF (vlist[1]) THEN str := 'STRING'; END_IF; - IF 'BOOLEAN' IN TYPEOF (vlist[1]) THEN str := 'BOOLEAN'; END_IF; - IF (LENGTH (str) > 0) AND (str IN TYPEOF (vlist[2])) AND - (str IN TYPEOF (vlist[3])) THEN - RETURN (convert_to_maths_value ({vlist[1] <= vlist[2] <= vlist[3]})); - END_IF; - END_IF; - IF ('LENGTH_EXPRESSION' IN types) AND ('STRING' IN TYPEOF (v1)) THEN - RETURN (convert_to_maths_value (LENGTH(v1))); - END_IF; - IF ('LOG_EXPRESSION' IN types) AND ('NUMBER' IN TYPEOF (v1)) THEN - RETURN (convert_to_maths_value (LOG(v1))); - END_IF; - IF ('LOG10_EXPRESSION' IN types) AND ('NUMBER' IN TYPEOF (v1)) THEN - RETURN (convert_to_maths_value (LOG10(v1))); - END_IF; - IF ('LOG2_EXPRESSION' IN types) AND ('NUMBER' IN TYPEOF (v1)) THEN - RETURN (convert_to_maths_value (LOG2(v1))); - END_IF; - IF 'MAXIMUM_EXPRESSION' IN types THEN - boo := FALSE; - REPEAT i := SIZEOF (vlist) TO 1 BY -1; - IF 'NUMBER' IN TYPEOF (vlist[i]) THEN - IF boo THEN - IF nmb < vlist[i] THEN nmb := vlist[i]; END_IF; - ELSE - nmb := vlist[i]; boo := TRUE; - END_IF; - REMOVE (oplist, i); - END_IF; - END_REPEAT; - IF SIZEOF (oplist) = 0 THEN RETURN (convert_to_maths_value(nmb)); END_IF; - IF boo THEN INSERT (oplist, make_number_literal(nmb), 0); END_IF; - END_IF; - IF 'MINIMUM_EXPRESSION' IN types THEN - boo := FALSE; - REPEAT i := SIZEOF (vlist) TO 1 BY -1; - IF 'NUMBER' IN TYPEOF (vlist[i]) THEN - IF boo THEN - IF nmb > vlist[i] THEN nmb := vlist[i]; END_IF; - ELSE - nmb := vlist[i]; boo := TRUE; - END_IF; - REMOVE (oplist, i); - END_IF; - END_REPEAT; - IF SIZEOF (oplist) = 0 THEN RETURN (convert_to_maths_value(nmb)); END_IF; - IF boo THEN INSERT (oplist, make_number_literal(nmb), 0); END_IF; - END_IF; - IF ('MINUS_EXPRESSION' IN types) AND - ('NUMBER' IN TYPEOF (v1)) AND ('NUMBER' IN TYPEOF (v2)) THEN - RETURN (convert_to_maths_value (v1 - v2)); - END_IF; - IF ('MOD_EXPRESSION' IN types) AND - ('NUMBER' IN TYPEOF (v1)) AND ('NUMBER' IN TYPEOF (v2)) THEN - RETURN (convert_to_maths_value (v1 MOD v2)); - END_IF; - IF 'MULT_EXPRESSION' IN types THEN - nmb := 1; - REPEAT i := SIZEOF (vlist) TO 1 BY -1; - IF 'NUMBER' IN TYPEOF (vlist[i]) THEN - nmb := nmb * vlist[i]; - REMOVE (oplist, i); - END_IF; - END_REPEAT; - IF SIZEOF (oplist) = 0 THEN RETURN (convert_to_maths_value(nmb)); END_IF; - IF nmb <> 1 THEN INSERT (oplist, make_number_literal(nmb), 0); END_IF; - IF SIZEOF (oplist) = 1 THEN RETURN (oplist[1]); END_IF; - END_IF; - IF ('NOT_EXPRESSION' IN types) AND ('BOOLEAN' IN TYPEOF (v1)) THEN - boo := v1; - RETURN (convert_to_maths_value (NOT(boo))); - END_IF; - IF ('ODD_EXPRESSION' IN types) AND ('INTEGER' IN TYPEOF (v1)) THEN - RETURN (convert_to_maths_value (ODD(v1))); - END_IF; - IF 'OR_EXPRESSION' IN types THEN - REPEAT i := SIZEOF (vlist) TO 1 BY -1; - IF 'BOOLEAN' IN TYPEOF (vlist[i]) THEN - boo := vlist[i]; - IF boo THEN RETURN (convert_to_maths_value(TRUE)); END_IF; - REMOVE (oplist, i); - END_IF; - END_REPEAT; - IF SIZEOF (oplist) = 0 THEN RETURN (convert_to_maths_value(FALSE)); END_IF; - IF SIZEOF (oplist) = 1 THEN RETURN (oplist[1]); END_IF; - END_IF; - IF 'PLUS_EXPRESSION' IN types THEN - nmb := 0; - REPEAT i := SIZEOF (vlist) TO 1 BY -1; - IF 'NUMBER' IN TYPEOF (vlist[i]) THEN - nmb := nmb + vlist[i]; - REMOVE (oplist, i); - END_IF; - END_REPEAT; - IF SIZEOF (oplist) = 0 THEN RETURN (convert_to_maths_value(nmb)); END_IF; - IF nmb <> 0 THEN INSERT (oplist, make_number_literal(nmb), 0); END_IF; - IF SIZEOF (oplist) = 1 THEN RETURN (oplist[1]); END_IF; - END_IF; - IF ('POWER_EXPRESSION' IN types) AND - ('NUMBER' IN TYPEOF (v1)) AND ('NUMBER' IN TYPEOF (v2)) THEN - RETURN (convert_to_maths_value (v1 ** v2)); - END_IF; - IF ('SIN_EXPRESSION' IN types) AND ('NUMBER' IN TYPEOF (v1)) THEN - RETURN (convert_to_maths_value (SIN(v1))); - END_IF; - IF ('SLASH_EXPRESSION' IN types) AND - ('NUMBER' IN TYPEOF (v1)) AND ('NUMBER' IN TYPEOF (v2)) THEN - RETURN (convert_to_maths_value (v1 / v2)); - END_IF; - IF ('SQUARE_ROOT_EXPRESSION' IN types) AND ('NUMBER' IN TYPEOF (v1)) THEN - RETURN (convert_to_maths_value (SQRT(v1))); - END_IF; - IF ('SUBSTRING_EXPRESSION' IN types) AND - ('STRING' IN TYPEOF (vlist[1])) AND ('NUMBER' IN TYPEOF (vlist[2])) AND - ('NUMBER' IN TYPEOF (vlist[3])) THEN - str := vlist[1]; n := vlist[2]; m := vlist[3]; - RETURN (convert_to_maths_value (str[n:m])); - END_IF; - IF ('TAN_EXPRESSION' IN types) AND ('NUMBER' IN TYPEOF (v1)) THEN - RETURN (convert_to_maths_value (TAN(v1))); - END_IF; - IF ('UNARY_MINUS_EXPRESSION' IN types) AND ('NUMBER' IN TYPEOF (v1)) THEN - nmb := v1; - RETURN (convert_to_maths_value (-nmb)); - END_IF; - IF ('VALUE_EXPRESSION' IN types) AND ('STRING' IN TYPEOF (v1)) THEN - RETURN (convert_to_maths_value (VALUE(v1))); - END_IF; - IF ('XOR_EXPRESSION' IN types) AND - ('BOOLEAN' IN TYPEOF (v1)) AND ('BOOLEAN' IN TYPEOF (v2)) THEN - RETURN (convert_to_maths_value (v1 XOR v2)); - END_IF; - -- No special simplification defined, return same with simplified operands. - IF 'UNARY_GENERIC_EXPRESSION' IN types THEN - RETURN (restore_unary(expr,op1)); - END_IF; - IF 'BINARY_GENERIC_EXPRESSION' IN types THEN - RETURN (restore_binary(expr,op1,op2)); - END_IF; - IF 'MULTIPLE_ARITY_GENERIC_EXPRESSION' IN types THEN - RETURN (restore_mulary(expr,oplist)); - END_IF; - -- Should be unreachable, but for safety, return unsimplified expression. - RETURN (expr); -END_FUNCTION; -- simplify_generic_expression - -(* Implicit interfaced from: mathematical_functions_schema *) -FUNCTION make_int_literal(lit_value : INTEGER) : int_literal; - RETURN (int_literal () - || literal_number(lit_value) - || simple_numeric_expression() - || numeric_expression() - || expression() - || generic_expression() - || simple_generic_expression() - || generic_literal() ); -END_FUNCTION; -- make_int_literal - -(* Implicit interfaced from: mathematical_functions_schema *) -FUNCTION make_real_literal(lit_value : REAL) : real_literal; - RETURN (real_literal () - || literal_number(lit_value) - || simple_numeric_expression() - || numeric_expression() - || expression() - || generic_expression() - || simple_generic_expression() - || generic_literal() ); -END_FUNCTION; -- make_real_literal - -(* Implicit interfaced from: mathematical_functions_schema *) -FUNCTION convert_to_maths_value(val : GENERIC:G) : maths_value; - LOCAL - types : SET OF STRING := TYPEOF (val); - ival : maths_integer; - rval : maths_real; - nval : maths_number; - tfval : maths_boolean; - lval : maths_logical; - sval : maths_string; - bval : maths_binary; - tval : maths_tuple := the_empty_maths_tuple; - mval : maths_value; - END_LOCAL; - IF (schema_prefix + 'MATHS_VALUE') IN types THEN RETURN (val); END_IF; - IF 'INTEGER' IN types THEN ival := val; RETURN (ival); END_IF; - IF 'REAL' IN types THEN rval := val; RETURN (rval); END_IF; - IF 'NUMBER' IN types THEN nval := val; RETURN (nval); END_IF; - IF 'BOOLEAN' IN types THEN tfval := val; RETURN (tfval); END_IF; - IF 'LOGICAL' IN types THEN lval := val; RETURN (lval); END_IF; - IF 'STRING' IN types THEN sval := val; RETURN (sval); END_IF; - IF 'BINARY' IN types THEN bval := val; RETURN (bval); END_IF; - IF 'LIST' IN types THEN - REPEAT i := 1 TO SIZEOF (val); - mval := convert_to_maths_value (val[i]); - IF NOT EXISTS (mval) THEN RETURN (?); END_IF; - INSERT (tval, mval, i-1); - END_REPEAT; - RETURN (tval); - END_IF; - RETURN (?); -END_FUNCTION; -- convert_to_maths_value - -(* Implicit interfaced from: mathematical_functions_schema *) -FUNCTION simplify_maths_space(spc : maths_space) : maths_space; - LOCAL - stypes : SET OF STRING := stripped_typeof (spc); - sset : SET OF maths_value; - zset : SET OF maths_value := []; - zval : maths_value; - zspc : maths_space; - zallint : BOOLEAN := TRUE; - zint, zmin, zmax : INTEGER; - factors : LIST OF maths_space; - zfactors : LIST OF maths_space := []; - rspc : maths_space; - END_LOCAL; - IF 'FINITE_SPACE' IN stypes THEN - sset := spc\finite_space.members; - REPEAT i := 1 TO SIZEOF (sset); - zval := simplify_maths_value(sset[i]); - zset := zset + [zval]; - IF zallint AND ('INTEGER' IN TYPEOF (zval)) THEN - zint := zval; - IF i = 1 THEN - zmin := zint; - zmax := zint; - ELSE - IF zint < zmin THEN - zmin := zint; - END_IF; - IF zint > zmax THEN - zmax := zint; - END_IF; - END_IF; - ELSE - zallint := FALSE; - END_IF; - END_REPEAT; - IF zallint AND (SIZEOF(zset) = zmax-zmin+1) THEN - RETURN (make_finite_integer_interval(zmin,zmax)); - END_IF; - RETURN (make_finite_space(zset)); - END_IF; - IF 'UNIFORM_PRODUCT_SPACE' IN stypes THEN - zspc := simplify_maths_space(spc\uniform_product_space.base); - RETURN (make_uniform_product_space(zspc,spc\uniform_product_space.exponent)); - END_IF; - IF 'LISTED_PRODUCT_SPACE' IN stypes THEN - factors := spc\listed_product_space.factors; - REPEAT i := 1 TO SIZEOF (factors); - INSERT (zfactors, simplify_maths_space(factors[i]), i-1); - END_REPEAT; - RETURN (make_listed_product_space(zfactors)); - END_IF; - IF 'EXTENDED_TUPLE_SPACE' IN stypes THEN - zspc := simplify_maths_space(spc\extended_tuple_space.base); - rspc := simplify_maths_space(spc\extended_tuple_space.extender); - RETURN (make_extended_tuple_space(zspc,rspc)); - END_IF; - IF 'FUNCTION_SPACE' IN stypes THEN - zspc := simplify_maths_space(spc\function_space.domain_argument); - rspc := simplify_maths_space(spc\function_space.range_argument); - RETURN (make_function_space(spc\function_space.domain_constraint,zspc, - spc\function_space.range_constraint,rspc)); - END_IF; - RETURN (spc); -END_FUNCTION; -- simplify_maths_space - -(* Implicit interfaced from: mathematical_functions_schema *) -FUNCTION make_finite_integer_interval(min : INTEGER; - max : INTEGER) : finite_integer_interval; - RETURN (finite_integer_interval (min, max) - || maths_space() - || generic_expression() - || generic_literal() - || simple_generic_expression() ); -END_FUNCTION; -- make_finite_integer_interval - -(* Implicit interfaced from: mathematical_functions_schema *) -FUNCTION make_finite_space(members : SET OF maths_value) : finite_space; - RETURN (finite_space (members) - || maths_space() - || generic_expression() - || generic_literal() - || simple_generic_expression() ); -END_FUNCTION; -- make_finite_space - -(* Implicit interfaced from: mathematical_functions_schema *) -FUNCTION make_uniform_product_space(base : maths_space; - exponent : positive_integer) - : uniform_product_space; - RETURN (uniform_product_space (base, exponent) - || maths_space() - || generic_expression() - || generic_literal() - || simple_generic_expression() ); -END_FUNCTION; -- make_uniform_product_space - -(* Implicit interfaced from: mathematical_functions_schema *) -FUNCTION make_listed_product_space(factors : LIST OF maths_space) - : listed_product_space; - RETURN (listed_product_space (factors) - || maths_space() - || generic_expression() - || generic_literal() - || simple_generic_expression() ); -END_FUNCTION; -- make_listed_product_space - -(* Implicit interfaced from: mathematical_functions_schema *) -FUNCTION make_extended_tuple_space(base : product_space; - extender : maths_space) : extended_tuple_space; - RETURN (extended_tuple_space (base, extender) - || maths_space () - || generic_expression() - || generic_literal () - || simple_generic_expression() ); -END_FUNCTION; -- make_extended_tuple_space - -(* Implicit interfaced from: mathematical_functions_schema *) -FUNCTION make_function_space(domain_constraint : space_constraint_type; - domain_argument : maths_space; - range_constraint : space_constraint_type; - range_argument : maths_space) : function_space; - RETURN (function_space (domain_constraint, domain_argument, range_constraint, - range_argument) - || maths_space() - || generic_expression() - || generic_literal() - || simple_generic_expression() ); -END_FUNCTION; -- make_function_space - -(* Implicit interfaced from: mathematical_functions_schema *) -FUNCTION simplify_function_application(expr : function_application) : maths_value; - FUNCTION ctmv(x : GENERIC:G) : maths_value; - RETURN (convert_to_maths_value(x)); - END_FUNCTION; -- local abbreviation for convert_to_maths_value function - PROCEDURE parts( c : complex_number_literal; - VAR x, y : REAL); - x := c.real_part; y := c.imag_part; - END_PROCEDURE; -- parts - FUNCTION makec(x, y : REAL) : complex_number_literal; - RETURN (make_complex_number_literal(x,y)); - END_FUNCTION; -- local abbreviation for make_complex_number_literal function - FUNCTION good_t(v : maths_value; - tn : STRING) : BOOLEAN; - LOCAL - tpl : LIST OF maths_value; - END_LOCAL; - IF 'LIST' IN TYPEOF (v) THEN - tpl := v; - REPEAT i := 1 TO SIZEOF (tpl); - IF NOT (tn IN TYPEOF (tpl[i])) THEN RETURN (FALSE); END_IF; - END_REPEAT; - RETURN (TRUE); - END_IF; - RETURN (FALSE); - END_FUNCTION; -- good_t - CONSTANT - cnlit : STRING := schema_prefix + 'COMPLEX_NUMBER_LITERAL'; - END_CONSTANT; - LOCAL - types : SET OF STRING := stripped_typeof(expr.func); - ef_val : elementary_function_enumerators; - is_elementary : BOOLEAN := FALSE; - v, v1, v2, v3 : maths_value; - vlist : LIST OF maths_value := []; - gexpr : generic_expression; - pairs : SET [1:?] OF LIST [2:2] OF maths_value; - boo : BOOLEAN; - lgc, cum : LOGICAL; - j, k, n : INTEGER; - p, q, r, s, t, u : REAL; - str, st2 : STRING; - bin, bi2 : BINARY; - tpl, tp2 : LIST OF maths_value; - mem :SET OF maths_value := []; - END_LOCAL; - REPEAT i := 1 TO SIZEOF (expr.arguments); - v := simplify_maths_value(expr.arguments[i]); - INSERT (vlist, v, i-1); - END_REPEAT; - IF SIZEOF (vlist) >= 1 THEN v1 := vlist[1]; END_IF; - IF SIZEOF (vlist) >= 2 THEN v2 := vlist[2]; END_IF; - IF SIZEOF (vlist) >= 3 THEN v3 := vlist[3]; END_IF; - IF 'ELEMENTARY_FUNCTION_ENUMERATORS' IN types THEN - ef_val := expr.func; - is_elementary := TRUE; - END_IF; - IF 'ELEMENTARY_FUNCTION' IN types THEN - ef_val := expr.func\elementary_function.func_id; - is_elementary := TRUE; - END_IF; - IF is_elementary THEN - CASE ef_val OF - ef_and : BEGIN - cum := TRUE; - REPEAT i := SIZEOF (vlist) TO 1 BY -1; - IF 'LOGICAL' IN TYPEOF (vlist[i]) THEN - lgc := vlist[i]; cum := cum AND lgc; - IF lgc = FALSE THEN RETURN (ctmv(FALSE)); END_IF; - REMOVE (vlist, i); - END_IF; - END_REPEAT; - IF SIZEOF (vlist) = 0 THEN RETURN (ctmv(cum)); END_IF; - IF cum <> TRUE THEN INSERT (vlist, ctmv(cum), 0); END_IF; - IF SIZEOF (vlist) = 1 THEN RETURN (vlist[1]); END_IF; - END; - ef_or : BEGIN - cum := FALSE; - REPEAT i := SIZEOF (vlist) TO 1 BY -1; - IF 'LOGICAL' IN TYPEOF (vlist[i]) THEN - lgc := vlist[i]; cum := cum OR lgc; - IF lgc = TRUE THEN RETURN (ctmv(TRUE)); END_IF; - REMOVE (vlist, i); - END_IF; - END_REPEAT; - IF SIZEOF (vlist) = 0 THEN RETURN (ctmv(cum)); END_IF; - IF cum <> FALSE THEN INSERT (vlist, ctmv(cum), 0); END_IF; - IF SIZEOF (vlist) = 1 THEN RETURN (vlist[1]); END_IF; - END; - ef_not : - IF 'LOGICAL' IN TYPEOF (v1) THEN lgc := v1; RETURN (ctmv(NOT lgc)); END_IF; - ef_xor : BEGIN - IF 'LOGICAL' IN TYPEOF (v1) THEN - lgc := v1; - IF 'LOGICAL' IN TYPEOF (v2) THEN cum := v2; RETURN (ctmv(lgc XOR cum)); - ELSE IF lgc = FALSE THEN RETURN (ctmv(v2)); - ELSE IF lgc = UNKNOWN THEN RETURN (ctmv(UNKNOWN)); - ELSE RETURN (make_function_application(ef_not,[v2])); - END_IF; END_IF; END_IF; - ELSE IF 'LOGICAL' IN TYPEOF (v2) THEN - lgc := v2; - IF lgc = FALSE THEN RETURN (ctmv(v1)); - ELSE IF lgc = UNKNOWN THEN RETURN (ctmv(UNKNOWN)); - ELSE RETURN (make_function_application(ef_not,[v1])); - END_IF; END_IF; - END_IF; END_IF; - END; - ef_negate_i : - IF 'INTEGER' IN TYPEOF (v1) THEN j := v1; RETURN (ctmv(-j)); END_IF; - ef_add_i : BEGIN - j := 0; - REPEAT i := SIZEOF (vlist) TO 1 BY -1; - IF 'INTEGER' IN TYPEOF (vlist[i]) THEN - k := vlist[i]; j := j + k; - REMOVE (vlist, i); - END_IF; - END_REPEAT; - IF SIZEOF (vlist) = 0 THEN RETURN (ctmv(j)); END_IF; - IF j <> 0 THEN INSERT (vlist, ctmv(j), 0); END_IF; - IF SIZEOF (vlist) = 1 THEN RETURN (vlist[1]); END_IF; - END; - ef_subtract_i : - IF ('INTEGER' IN TYPEOF (v1)) AND ('INTEGER' IN TYPEOF (v2)) THEN - j := v1; k := v2; RETURN (ctmv(j - k)); - END_IF; - ef_multiply_i : BEGIN - j := 1; - REPEAT i := SIZEOF (vlist) TO 1 BY -1; - IF 'INTEGER' IN TYPEOF (vlist[i]) THEN - k := vlist[i]; j := j * k; - REMOVE (vlist, i); - END_IF; - END_REPEAT; - IF SIZEOF (vlist) = 0 THEN RETURN (ctmv(j)); END_IF; - IF j <> 1 THEN INSERT (vlist, ctmv(j), 0); END_IF; - IF SIZEOF (vlist) = 1 THEN RETURN (vlist[1]); END_IF; - END; - ef_divide_i : - IF ('INTEGER' IN TYPEOF (v1)) AND ('INTEGER' IN TYPEOF (v2)) THEN - j := v1; k := v2; RETURN (ctmv(j DIV k)); - END_IF; - ef_mod_i : - IF ('INTEGER' IN TYPEOF (v1)) AND ('INTEGER' IN TYPEOF (v2)) THEN - j := v1; k := v2; RETURN (ctmv(j MOD k)); - END_IF; - ef_exponentiate_i : - IF ('INTEGER' IN TYPEOF (v1)) AND ('INTEGER' IN TYPEOF (v2)) THEN - j := v1; k := v2; n := 1; - REPEAT i := 1 TO ABS(k); n := n * j; END_REPEAT; - IF k < 0 THEN n := 1 DIV n; END_IF; - RETURN (ctmv(n)); - END_IF; - ef_eq_i : - IF ('INTEGER' IN TYPEOF (v1)) AND ('INTEGER' IN TYPEOF (v2)) THEN - j := v1; k := v2; RETURN (ctmv(j = k)); - END_IF; - ef_ne_i : - IF ('INTEGER' IN TYPEOF (v1)) AND ('INTEGER' IN TYPEOF (v2)) THEN - j := v1; k := v2; RETURN (ctmv(j <> k)); - END_IF; - ef_gt_i : - IF ('INTEGER' IN TYPEOF (v1)) AND ('INTEGER' IN TYPEOF (v2)) THEN - j := v1; k := v2; RETURN (ctmv(j > k)); - END_IF; - ef_lt_i : - IF ('INTEGER' IN TYPEOF (v1)) AND ('INTEGER' IN TYPEOF (v2)) THEN - j := v1; k := v2; RETURN (ctmv(j < k)); - END_IF; - ef_ge_i : - IF ('INTEGER' IN TYPEOF (v1)) AND ('INTEGER' IN TYPEOF (v2)) THEN - j := v1; k := v2; RETURN (ctmv(j >= k)); - END_IF; - ef_le_i : - IF ('INTEGER' IN TYPEOF (v1)) AND ('INTEGER' IN TYPEOF (v2)) THEN - j := v1; k := v2; RETURN (ctmv(j <= k)); - END_IF; - ef_abs_i : - IF 'INTEGER' IN TYPEOF (v1) THEN j := v1; RETURN (ctmv(ABS(j))); END_IF; - ef_max_i : BEGIN - boo := FALSE; - REPEAT i := SIZEOF (vlist) TO 1 BY -1; - IF 'INTEGER' IN TYPEOF (vlist[i]) THEN - IF boo THEN k := vlist[i]; IF k > j THEN j := k; END_IF; - ELSE j := vlist[i]; boo := TRUE; END_IF; - REMOVE (vlist, i); - END_IF; - END_REPEAT; - IF SIZEOF (vlist) = 0 THEN RETURN (ctmv(j)); END_IF; - IF boo THEN INSERT (vlist, ctmv(j), 0); END_IF; - IF SIZEOF (vlist) = 1 THEN RETURN (vlist[1]); END_IF; - END; - ef_min_i : BEGIN - boo := FALSE; - REPEAT i := SIZEOF (vlist) TO 1 BY -1; - IF 'INTEGER' IN TYPEOF (vlist[i]) THEN - IF boo THEN k := vlist[i]; IF k < j THEN j := k; END_IF; - ELSE j := vlist[i]; boo := TRUE; END_IF; - REMOVE (vlist, i); - END_IF; - END_REPEAT; - IF SIZEOF (vlist) = 0 THEN RETURN (ctmv(j)); END_IF; - IF boo THEN INSERT (vlist, ctmv(j), 0); END_IF; - IF SIZEOF (vlist) = 1 THEN RETURN (vlist[1]); END_IF; - END; - -- ef_if_i : combined with ef_if - ef_negate_r : - IF 'REAL' IN TYPEOF (v1) THEN r := v1; RETURN (ctmv(-r)); END_IF; - ef_reciprocal_r : - IF 'REAL' IN TYPEOF (v1) THEN r := v1; RETURN (ctmv(1.0/r)); END_IF; - ef_add_r : BEGIN - r := 0.0; - REPEAT i := SIZEOF (vlist) TO 1 BY -1; - IF 'REAL' IN TYPEOF (vlist[i]) THEN - s := vlist[i]; r := r + s; - REMOVE (vlist, i); - END_IF; - END_REPEAT; - IF SIZEOF (vlist) = 0 THEN RETURN (ctmv(r)); END_IF; - IF r <> 0.0 THEN INSERT (vlist, ctmv(r), 0); END_IF; - IF SIZEOF (vlist) = 1 THEN RETURN (vlist[1]); END_IF; - END; - ef_subtract_r : - IF ('REAL' IN TYPEOF (v1)) AND ('REAL' IN TYPEOF (v2)) THEN - r := v1; s := v2; RETURN (ctmv(r - s)); - END_IF; - ef_multiply_r : BEGIN - r := 1.0; - REPEAT i := SIZEOF (vlist) TO 1 BY -1; - IF 'REAL' IN TYPEOF (vlist[i]) THEN - s := vlist[i]; r := r * s; - REMOVE (vlist, i); - END_IF; - END_REPEAT; - IF SIZEOF (vlist) = 0 THEN RETURN (ctmv(r)); END_IF; - IF r <> 1.0 THEN INSERT (vlist, ctmv(r), 0); END_IF; - IF SIZEOF (vlist) = 1 THEN RETURN (vlist[1]); END_IF; - END; - ef_divide_r : - IF ('REAL' IN TYPEOF (v1)) AND ('REAL' IN TYPEOF (v2)) THEN - r := v1; s := v2; RETURN (ctmv(r / s)); - END_IF; - ef_mod_r : - IF ('REAL' IN TYPEOF (v1)) AND ('REAL' IN TYPEOF (v2)) THEN - r := v1; s := v2; t := r/s; j := t DIV 1; - IF (t < 0.0) AND (j <> t) THEN j := j - 1; END_IF; - RETURN (ctmv(r - j * s)); - END_IF; - ef_exponentiate_r : - IF ('REAL' IN TYPEOF (v1)) AND ('REAL' IN TYPEOF (v2)) THEN - r := v1; s := v2; RETURN (ctmv(r ** s)); - END_IF; - ef_exponentiate_ri : - IF ('REAL' IN TYPEOF (v1)) AND ('INTEGER' IN TYPEOF (v2)) THEN - r := v1; k := v2; t := 1.0; - REPEAT i := 1 TO ABS(k); t := t * r; END_REPEAT; - IF k < 0 THEN t := 1.0/t; END_IF; - RETURN (ctmv(t)); - END_IF; - ef_eq_r : - IF ('REAL' IN TYPEOF (v1)) AND ('REAL' IN TYPEOF (v2)) THEN - r := v1; s := v2; RETURN (ctmv(r = s)); - END_IF; - ef_ne_r : - IF ('REAL' IN TYPEOF (v1)) AND ('REAL' IN TYPEOF (v2)) THEN - r := v1; s := v2; RETURN (ctmv(r <> s)); - END_IF; - ef_gt_r : - IF ('REAL' IN TYPEOF (v1)) AND ('REAL' IN TYPEOF (v2)) THEN - r := v1; s := v2; RETURN (ctmv(r > s)); - END_IF; - ef_lt_r : - IF ('REAL' IN TYPEOF (v1)) AND ('REAL' IN TYPEOF (v2)) THEN - r := v1; s := v2; RETURN (ctmv(r < s)); - END_IF; - ef_ge_r : - IF ('REAL' IN TYPEOF (v1)) AND ('REAL' IN TYPEOF (v2)) THEN - r := v1; s := v2; RETURN (ctmv(r >= s)); - END_IF; - ef_le_r : - IF ('REAL' IN TYPEOF (v1)) AND ('REAL' IN TYPEOF (v2)) THEN - r := v1; s := v2; RETURN (ctmv(r <= s)); - END_IF; - ef_abs_r : - IF 'REAL' IN TYPEOF (v1) THEN r := v1; RETURN (ctmv(ABS(r))); END_IF; - ef_max_r : BEGIN - boo := FALSE; - REPEAT i := SIZEOF (vlist) TO 1 BY -1; - IF 'REAL' IN TYPEOF (vlist[i]) THEN - IF boo THEN s := vlist[i]; IF s > r THEN r := s; END_IF; - ELSE r := vlist[i]; boo := TRUE; END_IF; - REMOVE (vlist, i); - END_IF; - END_REPEAT; - IF SIZEOF (vlist) = 0 THEN RETURN (ctmv(r)); END_IF; - IF boo THEN INSERT (vlist, ctmv(r), 0); END_IF; - IF SIZEOF (vlist) = 1 THEN RETURN (vlist[1]); END_IF; - END; - ef_min_r : BEGIN - boo := FALSE; - REPEAT i := SIZEOF (vlist) TO 1 BY -1; - IF 'REAL' IN TYPEOF (vlist[i]) THEN - IF boo THEN s := vlist[i]; IF s < r THEN r := s; END_IF; - ELSE r := vlist[i]; boo := TRUE; END_IF; - REMOVE (vlist, i); - END_IF; - END_REPEAT; - IF SIZEOF (vlist) = 0 THEN RETURN (ctmv(r)); END_IF; - IF boo THEN INSERT (vlist, ctmv(r), 0); END_IF; - IF SIZEOF (vlist) = 1 THEN RETURN (vlist[1]); END_IF; - END; - ef_acos_r : - IF 'REAL' IN TYPEOF (v1) THEN r := v1; RETURN (ctmv(ACOS(r))); END_IF; - ef_asin_r : - IF 'REAL' IN TYPEOF (v1) THEN r := v1; RETURN (ctmv(ASIN(r))); END_IF; - ef_atan2_r : - IF ('REAL' IN TYPEOF (v1)) AND ('REAL' IN TYPEOF (v2)) THEN - r := v1; s := v2; RETURN (ctmv(atan2(r,s))); - END_IF; - ef_cos_r : - IF 'REAL' IN TYPEOF (v1) THEN r := v1; RETURN (ctmv(COS(r))); END_IF; - ef_exp_r : - IF 'REAL' IN TYPEOF (v1) THEN r := v1; RETURN (ctmv(EXP(r))); END_IF; - ef_ln_r : - IF 'REAL' IN TYPEOF (v1) THEN r := v1; RETURN (ctmv(LOG(r))); END_IF; - ef_log2_r : - IF 'REAL' IN TYPEOF (v1) THEN r := v1; RETURN (ctmv(LOG2(r))); END_IF; - ef_log10_r : - IF 'REAL' IN TYPEOF (v1) THEN r := v1; RETURN (ctmv(LOG10(r))); END_IF; - ef_sin_r : - IF 'REAL' IN TYPEOF (v1) THEN r := v1; RETURN (ctmv(SIN(r))); END_IF; - ef_sqrt_r : - IF 'REAL' IN TYPEOF (v1) THEN r := v1; RETURN (ctmv(SQRT(r))); END_IF; - ef_tan_r : - IF 'REAL' IN TYPEOF (v1) THEN r := v1; RETURN (ctmv(TAN(r))); END_IF; - -- ef_if_r : combined with ef_if - ef_form_c : - IF ('REAL' IN TYPEOF (v1)) AND ('REAL' IN TYPEOF (v2)) THEN - r := v1; s := v2; RETURN (makec(r,s)); - END_IF; - ef_rpart_c : - IF cnlit IN TYPEOF (v1) THEN - RETURN (ctmv(v1\complex_number_literal.real_part)); - END_IF; - ef_ipart_c : - IF cnlit IN TYPEOF (v1) THEN - RETURN (ctmv(v1\complex_number_literal.imag_part)); - END_IF; - ef_negate_c : - IF cnlit IN TYPEOF (v1) THEN parts(v1,p,q); RETURN (makec(-p,-q)); END_IF; - ef_reciprocal_c : - IF cnlit IN TYPEOF (v1) THEN - parts(v1,p,q); t := p*p + q*q; RETURN (makec(p/t,-q/t)); - END_IF; - ef_add_c : BEGIN - p := 0.0; q := 0.0; - REPEAT i := SIZEOF (vlist) TO 1 BY -1; - IF cnlit IN TYPEOF (vlist[i]) THEN - parts(vlist[i],r,s); p := p + r; q := q + s; - REMOVE (vlist, i); - END_IF; - END_REPEAT; - IF SIZEOF (vlist) = 0 THEN RETURN (makec(p,q)); END_IF; - IF p*p+q*q <> 0.0 THEN INSERT (vlist, makec(p,q), 0); END_IF; - IF SIZEOF (vlist) = 1 THEN RETURN (vlist[1]); END_IF; - END; - ef_subtract_c : - IF (cnlit IN TYPEOF (v1)) AND (cnlit IN TYPEOF (v2)) THEN - parts(v1,p,q); parts(v2,r,s); RETURN (makec(p-r,q-s)); - END_IF; - ef_multiply_c : BEGIN - p := 1.0; q := 0.0; - REPEAT i := SIZEOF (vlist) TO 1 BY -1; - IF cnlit IN TYPEOF (vlist[i]) THEN - parts(vlist[i],r,s); p := p*r-q*s; q := p*s+q*r; - REMOVE (vlist, i); - END_IF; - END_REPEAT; - IF SIZEOF (vlist) = 0 THEN RETURN (makec(p,q)); END_IF; - IF (p <> 1.0) OR (q <> 0.0) THEN INSERT (vlist, makec(p,q), 0); END_IF; - IF SIZEOF (vlist) = 1 THEN RETURN (vlist[1]); END_IF; - END; - ef_divide_c : - IF (cnlit IN TYPEOF (v1)) AND (cnlit IN TYPEOF (v2)) THEN - parts(v1,p,q); parts(v2,r,s); t := r*r+s*s; - RETURN (makec((p*r+q*s)/t,(q*r-p*s)/t)); - END_IF; - ef_exponentiate_c : - IF (cnlit IN TYPEOF (v1)) AND (cnlit IN TYPEOF (v2)) THEN - parts(v1,p,q); parts(v2,r,s); t := 0.5*LOG(p*p+q*q); u := atan2(q,p); - p := r*t-s*u; q := r*u+s*t; r := EXP(p); - RETURN (makec(r*COS(q),r*SIN(q))); - END_IF; - ef_exponentiate_ci : - IF (cnlit IN TYPEOF (v1)) AND ('INTEGER' IN TYPEOF (v2)) THEN - parts(v1,p,q); k := v2; r := 1.0; s := 0.0; - REPEAT i := 1 TO ABS(k); r := p*r-q*s; s := p*s+q*r; END_REPEAT; - IF k < 0 THEN t := r*r+s*s; r := r/t; s := -s/t; END_IF; - RETURN (makec(r,s)); - END_IF; - ef_eq_c : - IF (cnlit IN TYPEOF (v1)) AND (cnlit IN TYPEOF (v2)) THEN - parts(v1,p,q); parts(v2,r,s); RETURN (ctmv((p = r) AND (q = s))); - END_IF; - ef_ne_c : - IF (cnlit IN TYPEOF (v1)) AND (cnlit IN TYPEOF (v2)) THEN - parts(v1,p,q); parts(v2,r,s); RETURN (ctmv((p <> r) OR (q <> s))); - END_IF; - ef_conjugate_c : - IF cnlit IN TYPEOF (v1) THEN parts(v1,p,q); RETURN (makec(p,-q)); END_IF; - ef_abs_c : - IF cnlit IN TYPEOF (v1) THEN - parts(v1,p,q); RETURN (ctmv(SQRT(p*p+q*q))); - END_IF; - ef_arg_c : - IF cnlit IN TYPEOF (v1) THEN - parts(v1,p,q); RETURN (ctmv(atan2(q,p))); - END_IF; - ef_cos_c : - IF cnlit IN TYPEOF (v1) THEN - parts(v1,p,q); t := 0.5*EXP(-q); u := 0.5*EXP(q); - RETURN (makec((t+u)*COS(p),(t-u)*SIN(p))); - END_IF; - ef_exp_c : - IF cnlit IN TYPEOF (v1) THEN - parts(v1,p,q); RETURN (makec(EXP(p)*COS(q),EXP(p)*SIN(q))); - END_IF; - ef_ln_c : - IF cnlit IN TYPEOF (v1) THEN - parts(v1,p,q); RETURN (makec(0.5*LOG(p*p+q*q),atan2(q,p))); - END_IF; - ef_sin_c : - IF cnlit IN TYPEOF (v1) THEN - parts(v1,p,q); t := 0.5*EXP(-q); u := 0.5*EXP(q); - RETURN (makec((t+u)*SIN(p),(u-t)*COS(p))); - END_IF; - ef_sqrt_c : - IF cnlit IN TYPEOF (v1) THEN - parts(v1,p,q); t := SQRT(SQRT(p*p+q*q)); u := 0.5*atan2(q,p); - RETURN (makec(t*COS(u),t*SIN(u))); - END_IF; - ef_tan_c : - IF cnlit IN TYPEOF (v1) THEN - parts(v1,p,q); t := EXP(2.0*q) + EXP(-2.0*q) + 2.0*COS(2.0*p); - RETURN (makec(2.0*SIN(2.0*p)/t,(EXP(-2.0*q)-EXP(2.0*q))/t)); - END_IF; - -- ef_if_c : combined with ef_if - ef_subscript_s : - IF ('STRING' IN TYPEOF (v1)) AND ('INTEGER' IN TYPEOF (v2)) THEN - str := v1; k := v2; RETURN (ctmv(str[k])); - END_IF; - ef_eq_s : - IF ('STRING' IN TYPEOF (v1)) AND ('STRING' IN TYPEOF (v2)) THEN - str := v1; st2 := v2; RETURN (ctmv(str = st2)); - END_IF; - ef_ne_s : - IF ('STRING' IN TYPEOF (v1)) AND ('STRING' IN TYPEOF (v2)) THEN - str := v1; st2 := v2; RETURN (ctmv(str <> st2)); - END_IF; - ef_gt_s : - IF ('STRING' IN TYPEOF (v1)) AND ('STRING' IN TYPEOF (v2)) THEN - str := v1; st2 := v2; RETURN (ctmv(str > st2)); - END_IF; - ef_lt_s : - IF ('STRING' IN TYPEOF (v1)) AND ('STRING' IN TYPEOF (v2)) THEN - str := v1; st2 := v2; RETURN (ctmv(str < st2)); - END_IF; - ef_ge_s : - IF ('STRING' IN TYPEOF (v1)) AND ('STRING' IN TYPEOF (v2)) THEN - str := v1; st2 := v2; RETURN (ctmv(str >= st2)); - END_IF; - ef_le_s : - IF ('STRING' IN TYPEOF (v1)) AND ('STRING' IN TYPEOF (v2)) THEN - str := v1; st2 := v2; RETURN (ctmv(str <= st2)); - END_IF; - ef_subsequence_s : - IF ('STRING' IN TYPEOF (v1)) AND ('INTEGER' IN TYPEOF (v2)) AND - ('INTEGER' IN TYPEOF (v3)) THEN - str := v1; j := v2; k := v3; RETURN (ctmv(str[j:k])); - END_IF; - ef_concat_s : BEGIN - str := ''; - REPEAT i := SIZEOF (vlist) TO 1 BY -1; - IF 'STRING' IN TYPEOF (vlist[i]) THEN - st2 := vlist[i]; str := str + st2; - REMOVE (vlist, i); - ELSE IF str <> '' THEN - INSERT (vlist, ctmv(str), i); - str := ''; - END_IF; END_IF; - END_REPEAT; - IF SIZEOF (vlist) = 0 THEN RETURN (ctmv(str)); END_IF; - IF str <> '' THEN INSERT (vlist, ctmv(str), 0); END_IF; - IF SIZEOF (vlist) = 1 THEN RETURN (vlist[1]); END_IF; - END; - ef_size_s : - IF 'STRING' IN TYPEOF (v1) THEN str:=v1; RETURN (ctmv(LENGTH(str))); END_IF; - ef_format : - IF ('NUMBER' IN TYPEOF (v1)) AND ('STRING' IN TYPEOF (v2)) THEN - RETURN (ctmv(FORMAT(v1,v2))); - END_IF; - ef_value : - IF 'STRING' IN TYPEOF (v1) THEN str:=v1; RETURN (ctmv(VALUE(str))); END_IF; - ef_like : - IF ('STRING' IN TYPEOF (v1)) AND ('STRING' IN TYPEOF (v2)) THEN - RETURN (ctmv(v1 LIKE v2)); - END_IF; - -- ef_if_s : combined with ef_if - ef_subscript_b : - IF ('BINARY' IN TYPEOF (v1)) AND ('INTEGER' IN TYPEOF (v2)) THEN - bin := v1; k := v2; RETURN (ctmv(bin[k])); - END_IF; - ef_eq_b : - IF ('BINARY' IN TYPEOF (v1)) AND ('BINARY' IN TYPEOF (v2)) THEN - bin := v1; bi2 := v2; RETURN (ctmv(bin = bi2)); - END_IF; - ef_ne_b : - IF ('BINARY' IN TYPEOF (v1)) AND ('BINARY' IN TYPEOF (v2)) THEN - bin := v1; bi2 := v2; RETURN (ctmv(bin <> bi2)); - END_IF; - ef_gt_b : - IF ('BINARY' IN TYPEOF (v1)) AND ('BINARY' IN TYPEOF (v2)) THEN - bin := v1; bi2 := v2; RETURN (ctmv(bin > bi2)); - END_IF; - ef_lt_b : - IF ('BINARY' IN TYPEOF (v1)) AND ('BINARY' IN TYPEOF (v2)) THEN - bin := v1; bi2 := v2; RETURN (ctmv(bin < bi2)); - END_IF; - ef_ge_b : - IF ('BINARY' IN TYPEOF (v1)) AND ('BINARY' IN TYPEOF (v2)) THEN - bin := v1; bi2 := v2; RETURN (ctmv(bin >= bi2)); - END_IF; - ef_le_b : - IF ('BINARY' IN TYPEOF (v1)) AND ('BINARY' IN TYPEOF (v2)) THEN - bin := v1; bi2 := v2; RETURN (ctmv(bin <= bi2)); - END_IF; - ef_subsequence_b : - IF ('BINARY' IN TYPEOF (v1)) AND ('INTEGER' IN TYPEOF (v2)) AND - ('INTEGER' IN TYPEOF (v3)) THEN - bin := v1; j := v2; k := v3; RETURN (ctmv(bin[j:k])); - END_IF; - ef_concat_b : BEGIN - boo := FALSE; - REPEAT i := SIZEOF (vlist) TO 1 BY -1; - IF 'BINARY' IN TYPEOF (vlist[i]) THEN - IF boo THEN bi2 := vlist[i]; bin := bin + bi2; - ELSE bin := vlist[i]; boo := TRUE; END_IF; - REMOVE (vlist, i); - ELSE IF boo THEN - INSERT (vlist, ctmv(bin), i); - boo := FALSE; - END_IF; END_IF; - END_REPEAT; - IF SIZEOF (vlist) = 0 THEN RETURN (ctmv(bin)); END_IF; - IF boo THEN INSERT (vlist, ctmv(bin), 0); END_IF; - IF SIZEOF (vlist) = 1 THEN RETURN (vlist[1]); END_IF; - END; - ef_size_b : - IF 'BINARY' IN TYPEOF (v1) THEN bin:=v1; RETURN (ctmv(BLENGTH(bin))); END_IF; - -- ef_if_b : combined with ef_if - ef_subscript_t : - IF ('LIST' IN TYPEOF (v1)) AND ('INTEGER' IN TYPEOF (v2)) THEN - tpl := v1; k := v2; RETURN (ctmv(tpl[k])); - END_IF; - ef_eq_t : - IF ('LIST' IN TYPEOF (v1)) AND ('LIST' IN TYPEOF (v2)) THEN - lgc := equal_maths_values(v1,v2); - IF lgc <> UNKNOWN THEN RETURN (ctmv(lgc)); END_IF; - END_IF; - ef_ne_t : - IF ('LIST' IN TYPEOF (v1)) AND ('LIST' IN TYPEOF (v2)) THEN - lgc := equal_maths_values(v1,v2); - IF lgc <> UNKNOWN THEN RETURN (ctmv(NOT lgc)); END_IF; - END_IF; - ef_concat_t : BEGIN - tpl := []; - REPEAT i := SIZEOF (vlist) TO 1 BY -1; - IF 'STRING' IN TYPEOF (vlist[i]) THEN - tp2 := vlist[i]; tpl := tpl + tp2; - REMOVE (vlist, i); - ELSE IF SIZEOF (tpl) <> 0 THEN - INSERT (vlist, ctmv(tpl), i); - tpl := []; - END_IF; END_IF; - END_REPEAT; - IF SIZEOF (vlist) = 0 THEN RETURN (ctmv(tpl)); END_IF; - IF SIZEOF (tpl) <> 0 THEN INSERT (vlist, ctmv(tpl), 0); END_IF; - IF SIZEOF (vlist) = 1 THEN RETURN (vlist[1]); END_IF; - END; - ef_size_t : - IF 'LIST' IN TYPEOF (v1) THEN tpl:=v1; RETURN (ctmv(SIZEOF(tpl))); END_IF; - ef_entuple : - RETURN (ctmv(vlist)); - ef_detuple : -- This can have multiple outputs, but the expression only - -- denotes the first. - IF 'LIST' IN TYPEOF (v1) THEN tpl:=v1; RETURN (ctmv(tpl[1])); END_IF; - ef_insert : - IF ('LIST' IN TYPEOF (v1)) AND ('INTEGER' IN TYPEOF (v3)) THEN - tpl := v1; k := v3; INSERT (tpl, v2, k); RETURN (ctmv(tpl)); - END_IF; - ef_remove : - IF ('LIST' IN TYPEOF (v1)) AND ('INTEGER' IN TYPEOF (v2)) THEN - tpl := v1; k := v2; REMOVE (tpl, k); RETURN (ctmv(tpl)); - END_IF; - -- ef_if_t : combined with ef_if - ef_sum_it : - IF good_t(v1,'INTEGER') THEN - tpl := v1; j := 0; - REPEAT i := 1 TO SIZEOF (tpl); j := j + tpl[i]; END_REPEAT; - RETURN (ctmv(j)); - END_IF; - ef_product_it : - IF good_t(v1,'INTEGER') THEN - tpl := v1; j := 1; - REPEAT i := 1 TO SIZEOF (tpl); j := j * tpl[i]; END_REPEAT; - RETURN (ctmv(j)); - END_IF; - ef_add_it : BEGIN - boo := FALSE; - REPEAT i := SIZEOF (vlist) TO 1 BY -1; - IF good_t(vlist[i],'INTEGER') THEN - IF NOT boo THEN tpl := vlist[i]; boo := TRUE; - ELSE - tp2 := vlist[i]; - IF SIZEOF (tpl) <> SIZEOF (tp2) THEN RETURN (?); END_IF; - REPEAT l := 1 TO SIZEOF (tpl); tpl[j] := tpl[j] + tp2[j]; END_REPEAT; - END_IF; - REMOVE (vlist, i); - END_IF; - END_REPEAT; - IF SIZEOF (vlist) = 0 THEN RETURN (ctmv(tpl)); END_IF; - IF boo THEN INSERT (vlist, ctmv(tpl), 0); END_IF; - IF SIZEOF (vlist) = 1 THEN RETURN (vlist[1]); END_IF; - END; - ef_subtract_it : - IF good_t(v1,'INTEGER') AND good_t(v2,'INTEGER') THEN - tpl := v1; tp2 := v2; - IF SIZEOF (tpl) <> SIZEOF (tp2) THEN RETURN (?); END_IF; - REPEAT i := 1 TO SIZEOF (tpl); tpl[i] := tpl[i] - tp2[i]; END_REPEAT; - RETURN (ctmv(tpl)); - END_IF; - ef_scalar_mult_it : - IF ('INTEGER' IN TYPEOF (v1)) AND good_t(v2,'INTEGER') THEN - j := v1; tpl := v2; - REPEAT i := 1 TO SIZEOF (tpl); tpl[i] := j * tpl[i]; END_REPEAT; - RETURN (ctmv(tpl)); - END_IF; - ef_dot_prod_it : - IF good_t(v1,'INTEGER') AND good_t(v2,'INTEGER') THEN - tpl := v1; tp2 := v2; j := 0; - IF SIZEOF (tpl) <> SIZEOF (tp2) THEN RETURN (?); END_IF; - REPEAT i := 1 TO SIZEOF (tpl); j := j + tpl[i] * tp2[i]; END_REPEAT; - RETURN (ctmv(j)); - END_IF; - ef_sum_rt : - IF good_t(v1,'REAL') THEN - tpl := v1; r := 0.0; - REPEAT i := 1 TO SIZEOF (tpl); r := r + tpl[i]; END_REPEAT; - RETURN (ctmv(r)); - END_IF; - ef_product_rt : - IF good_t(v1,'REAL') THEN - tpl := v1; r := 1.0; - REPEAT i := 1 TO SIZEOF (tpl); r := r * tpl[i]; END_REPEAT; - RETURN (ctmv(r)); - END_IF; - ef_add_rt : BEGIN - boo := FALSE; - REPEAT i := SIZEOF (vlist) TO 1 BY -1; - IF good_t(vlist[i],'REAL') THEN - IF NOT boo THEN tpl := vlist[i]; boo := TRUE; - ELSE - tp2 := vlist[i]; - IF SIZEOF (tpl) <> SIZEOF (tp2) THEN RETURN (?); END_IF; - REPEAT l := 1 TO SIZEOF (tpl); tpl[j] := tpl[j] + tp2[j]; END_REPEAT; - END_IF; - REMOVE (vlist, i); - END_IF; - END_REPEAT; - IF SIZEOF (vlist) = 0 THEN RETURN (ctmv(tpl)); END_IF; - IF boo THEN INSERT (vlist, ctmv(tpl), 0); END_IF; - IF SIZEOF (vlist) = 1 THEN RETURN (vlist[1]); END_IF; - END; - ef_subtract_rt : - IF good_t(v1,'REAL') AND good_t(v2,'REAL') THEN - tpl := v1; tp2 := v2; - IF SIZEOF (tpl) <> SIZEOF (tp2) THEN RETURN (?); END_IF; - REPEAT i := 1 TO SIZEOF (tpl); tpl[i] := tpl[i] - tp2[i]; END_REPEAT; - RETURN (ctmv(tpl)); - END_IF; - ef_scalar_mult_rt : - IF ('REAL' IN TYPEOF (v1)) AND good_t(v2,'REAL') THEN - r := v1; tpl := v2; - REPEAT i := 1 TO SIZEOF (tpl); tpl[i] := r * tpl[i]; END_REPEAT; - RETURN (ctmv(tpl)); - END_IF; - ef_dot_prod_rt : - IF good_t(v1,'REAL') AND good_t(v2,'REAL') THEN - tpl := v1; tp2 := v2; r := 0; - IF SIZEOF (tpl) <> SIZEOF (tp2) THEN RETURN (?); END_IF; - REPEAT i := 1 TO SIZEOF (tpl); r := r + tpl[i] * tp2[i]; END_REPEAT; - RETURN (ctmv(r)); - END_IF; - ef_norm_rt : - IF good_t(v1,'REAL') THEN - tpl := v1; r := 0.0; - REPEAT i := 1 TO SIZEOF (tpl); r := r + tpl[i]*tpl[i]; END_REPEAT; - RETURN (ctmv(SQRT(r))); - END_IF; - ef_sum_ct : - IF good_t(v1,cnlit) THEN - tpl := v1; p := 0.0; q := 0.0; - REPEAT i:=1 TO SIZEOF (tpl); parts(tpl[i],r,s); p:=p+r; q:=q+s; END_REPEAT; - RETURN (makec(p,q)); - END_IF; - ef_product_ct : - IF good_t(v1,cnlit) THEN - tpl := v1; p := 1.0; q := 0.0; - REPEAT i := 1 TO SIZEOF (tpl); - parts(tpl[i],r,s); p := p*r-q*s; q := p*s+q*r; - END_REPEAT; - RETURN (makec(p,q)); - END_IF; - ef_add_ct : BEGIN - boo := FALSE; - REPEAT i := SIZEOF (vlist) TO 1 BY -1; - IF good_t(vlist[i],cnlit) THEN - IF NOT boo THEN tpl := vlist[i]; boo := TRUE; - ELSE - tp2 := vlist[i]; - IF SIZEOF (tpl) <> SIZEOF (tp2) THEN RETURN (?); END_IF; - REPEAT l := 1 TO SIZEOF (tpl); - parts(tpl[j],p,q); parts(tp2[j],r,s); tpl[j] := makec(p+r,q+s); - END_REPEAT; - END_IF; - REMOVE (vlist, i); - END_IF; - END_REPEAT; - IF SIZEOF (vlist) = 0 THEN RETURN (ctmv(tpl)); END_IF; - IF boo THEN INSERT (vlist, ctmv(tpl), 0); END_IF; - IF SIZEOF (vlist) = 1 THEN RETURN (vlist[1]); END_IF; - END; - ef_subtract_ct : - IF good_t(v1,cnlit) AND good_t(v2,cnlit) THEN - tpl := v1; tp2 := v2; - IF SIZEOF (tpl) <> SIZEOF (tp2) THEN RETURN (?); END_IF; - REPEAT i := 1 TO SIZEOF (tpl); - parts(tpl[i],p,q); parts(tp2[i],r,s); tpl[i] := makec(p-r,q-s); - END_REPEAT; - RETURN (ctmv(tpl)); - END_IF; - ef_scalar_mult_ct : - IF (cnlit IN TYPEOF (v1)) AND good_t(v2,cnlit) THEN - parts(v1,p,q); tpl := v2; - REPEAT i := 1 TO SIZEOF (tpl); - parts(tpl[i],r,s); tpl[i] := makec(p*r-q*s,p*s+q*r); - END_REPEAT; - RETURN (ctmv(tpl)); - END_IF; - ef_dot_prod_ct : - IF good_t(v1,cnlit) AND good_t(v2,cnlit) THEN - tpl := v1; tp2 := v2; t := 0.0; u := 0.0; - IF SIZEOF (tpl) <> SIZEOF (tp2) THEN RETURN (?); END_IF; - REPEAT i := 1 TO SIZEOF (tpl); - parts(tpl[i],p,q); parts(tp2[i],r,s); t := t + p*r+q*s; u := u + q*r-p*s; - END_REPEAT; - RETURN (makec(t,u)); - END_IF; - ef_norm_ct : - IF good_t(v1,cnlit) THEN - tpl := v1; r := 0.0; - REPEAT i := 1 TO SIZEOF (tpl); parts(tpl[i],p,q); r:=r+p*p+q*q; END_REPEAT; - RETURN (ctmv(SQRT(r))); - END_IF; - ef_if, ef_if_i, ef_if_r, ef_if_c, ef_if_s, ef_if_b, ef_if_t : - IF 'LOGICAL' IN TYPEOF (v1) THEN - lgc := v1; IF lgc THEN RETURN (v2); ELSE RETURN (v3); END_IF; - END_IF; - ef_ensemble : -- (mem + vlist) effectively converts list to set - RETURN (make_finite_space(mem + vlist)); - ef_member_of : - IF (schema_prefix + 'MATHS_SPACE') IN TYPEOF (v2) THEN - lgc := member_of(v1,v2); - IF lgc <> UNKNOWN THEN RETURN (ctmv(lgc)); END_IF; - END_IF; - END_CASE; - RETURN (make_function_application(expr.func,vlist)); - END_IF; - IF 'ABSTRACTED_EXPRESSION_FUNCTION' IN types THEN - gexpr := substitute(expr.func\abstracted_expression_function.expr, - expr.func\quantifier_expression.variables,vlist); - RETURN (simplify_generic_expression(gexpr)); - END_IF; - IF 'FINITE_FUNCTION' IN types THEN - pairs := expr.func\finite_function.pairs; - REPEAT i := 1 TO SIZEOF (pairs); - IF equal_maths_values(vlist[1],pairs[i][1]) THEN - RETURN (simplify_maths_value(pairs[i][2])); - END_IF; - END_REPEAT; - RETURN (make_function_application(expr.func,vlist)); - END_IF; - RETURN (expr); -END_FUNCTION; -- simplify_function_application - -(* Implicit interfaced from: mathematical_functions_schema *) -FUNCTION make_complex_number_literal(rpart, ipart : REAL) : complex_number_literal; - RETURN (complex_number_literal (rpart, ipart) - || generic_literal() - || simple_generic_expression() - || generic_expression() ); -END_FUNCTION; -- make_complex_number_literal - -(* Implicit interfaced from: mathematical_functions_schema *) -FUNCTION make_function_application(afunction : maths_function_select; - arguments : LIST [1:?] OF maths_value) - : function_application; - RETURN (function_application (afunction, arguments) - || multiple_arity_generic_expression (convert_to_maths_function (afunction) + - convert_to_operands (arguments)) -- derived - || generic_expression() ); -END_FUNCTION; -- make_function_application - -(* Implicit interfaced from: mathematical_functions_schema *) -FUNCTION convert_to_maths_function(func : maths_function_select) : maths_function; - LOCAL - efenum : elementary_function_enumerators; - mthfun : maths_function; - END_LOCAL; - IF (schema_prefix + 'MATHS_FUNCTION') IN TYPEOF (func) THEN - mthfun := func; - ELSE - efenum := func; - mthfun := make_elementary_function (efenum); - END_IF; - RETURN (mthfun); -END_FUNCTION; -- convert_to_maths_function - -(* Implicit interfaced from: mathematical_functions_schema *) -FUNCTION make_elementary_function(func_id : elementary_function_enumerators) - : elementary_function; - RETURN (elementary_function (func_id) - || maths_function() - || generic_expression() - || generic_literal() - || simple_generic_expression() ); -END_FUNCTION; -- make_elementary_function - -(* Implicit interfaced from: mathematical_functions_schema *) -FUNCTION convert_to_operands(values : AGGREGATE OF maths_value) - : LIST OF generic_expression; - LOCAL - operands : LIST OF generic_expression := []; - loc : INTEGER := 0; - END_LOCAL; - IF NOT EXISTS (values) THEN RETURN (?); END_IF; - REPEAT i := LOINDEX (values) TO HIINDEX (values); - INSERT (operands, convert_to_operand (values[i]), loc); - loc := loc + 1; - END_REPEAT; - RETURN (operands); -END_FUNCTION; -- convert_to_operands - -(* Implicit interfaced from: mathematical_functions_schema *) -FUNCTION convert_to_operand(val : maths_value) : generic_expression; - LOCAL - types : SET OF STRING := stripped_typeof (val); - END_LOCAL; - -- Use intermediate variables of appropriate declared types to help the compilers. - IF 'GENERIC_EXPRESSION' IN types THEN RETURN (val); END_IF; - IF 'MATHS_ATOM' IN types THEN RETURN (convert_to_literal (val)); END_IF; - IF 'ATOM_BASED_VALUE' IN types THEN RETURN (make_atom_based_literal(val)); END_IF; - IF 'MATHS_TUPLE' IN types THEN RETURN (make_maths_tuple_literal(val)); END_IF; - -- Should be unreachable - RETURN (?); -END_FUNCTION; -- convert_to_operand - -(* Implicit interfaced from: mathematical_functions_schema *) -FUNCTION convert_to_literal(val : maths_atom) : generic_literal; - LOCAL - types : SET OF STRING := TYPEOF (val); - END_LOCAL; - IF 'INTEGER' IN types THEN RETURN (make_int_literal (val)); END_IF; - IF 'REAL' IN types THEN RETURN (make_real_literal (val)); END_IF; - IF 'BOOLEAN' IN types THEN RETURN (make_boolean_literal (val)); END_IF; - IF 'STRING' IN types THEN RETURN (make_string_literal (val)); END_IF; - IF 'LOGICAL' IN types THEN RETURN (make_logical_literal (val)); END_IF; - IF 'BINARY' IN types THEN RETURN (make_binary_literal (val)); END_IF; - IF (schema_prefix + 'MATHS_ENUM_ATOM') IN types THEN - RETURN (make_maths_enum_literal (val)); - END_IF; - -- Should be unreachable - RETURN (?); -END_FUNCTION; -- convert_to_literal - -(* Implicit interfaced from: mathematical_functions_schema *) -FUNCTION make_boolean_literal(lit_value : BOOLEAN) : boolean_literal; - RETURN (boolean_literal (lit_value) - || simple_boolean_expression() - || boolean_expression() - || expression() - || generic_expression() - || simple_generic_expression() - || generic_literal() ); -END_FUNCTION; -- make_boolean_literal - -(* Implicit interfaced from: mathematical_functions_schema *) -FUNCTION make_string_literal(lit_value : STRING) : string_literal; - RETURN (string_literal (lit_value) - || simple_string_expression() - || string_expression() - || expression() - || generic_expression() - || simple_generic_expression() - || generic_literal() ); -END_FUNCTION; -- make_string_literal - -(* Implicit interfaced from: mathematical_functions_schema *) -FUNCTION make_logical_literal(lit_value : LOGICAL) : logical_literal; - RETURN (logical_literal (lit_value) - || generic_literal() - || simple_generic_expression() - || generic_expression() ); -END_FUNCTION; -- make_logical_literal - -(* Implicit interfaced from: mathematical_functions_schema *) -FUNCTION make_binary_literal(lit_value : BINARY) : binary_literal; - RETURN (binary_literal (lit_value) - || generic_literal() - || simple_generic_expression() - || generic_expression() ); -END_FUNCTION; -- make_binary_literal - -(* Implicit interfaced from: mathematical_functions_schema *) -FUNCTION make_maths_enum_literal(lit_value : maths_enum_atom) : maths_enum_literal; - RETURN (maths_enum_literal (lit_value) - || generic_literal() - || simple_generic_expression() - || generic_expression() ); -END_FUNCTION; -- make_maths_enum_literal - -(* Implicit interfaced from: mathematical_functions_schema *) -FUNCTION make_atom_based_literal(lit_value : atom_based_value) : atom_based_literal; - RETURN (atom_based_literal (lit_value) - || generic_literal() - || simple_generic_expression() - || generic_expression() ); -END_FUNCTION; -- make_atom_based_literal - -(* Implicit interfaced from: mathematical_functions_schema *) -FUNCTION make_maths_tuple_literal(lit_value : LIST OF maths_value) - : maths_tuple_literal; - RETURN (maths_tuple_literal (lit_value) - || generic_literal() - || simple_generic_expression() - || generic_expression() ); -END_FUNCTION; -- make_maths_tuple_literal - -(* Implicit interfaced from: mathematical_functions_schema *) -FUNCTION atan2(y, x : REAL) : REAL; - LOCAL - r : REAL; - END_LOCAL; - IF (y = 0.0) AND (x = 0.0) THEN RETURN (?); END_IF; - r := atan(y,x); - IF x < 0.0 THEN - IF y < 0.0 THEN r := r - PI; - ELSE r := r + PI; END_IF; - END_IF; - RETURN (r); -END_FUNCTION; -- atan2 - -(* Implicit interfaced from: mathematical_functions_schema *) -FUNCTION equal_maths_values(val1, val2 : maths_value) : LOGICAL; - FUNCTION mem_of_vs(val1, val2 : maths_value) : LOGICAL; - IF NOT has_values_space(val2) THEN RETURN (UNKNOWN); END_IF; - IF NOT member_of(val1,values_space_of(val2)) THEN RETURN (FALSE); END_IF; - RETURN (UNKNOWN); - END_FUNCTION; -- mem_of_vs - LOCAL - types1, types2 : SET OF STRING; - list1, list2 : LIST OF maths_value; - cum : LOGICAL := TRUE; - END_LOCAL; - IF NOT EXISTS (val1) OR NOT EXISTS (val2) THEN RETURN (FALSE); END_IF; - IF val1 = val2 THEN RETURN (TRUE); END_IF; - types1 := stripped_typeof (val1); - types2 := stripped_typeof (val2); - IF ('MATHS_ATOM' IN types1) OR ('COMPLEX_NUMBER_LITERAL' IN types1) THEN - IF 'MATHS_ATOM' IN types2 THEN RETURN (FALSE); END_IF; - IF 'COMPLEX_NUMBER_LITERAL' IN types2 THEN RETURN (FALSE); END_IF; - IF 'LIST' IN types2 THEN RETURN (FALSE); END_IF; - IF 'MATHS_SPACE' IN types2 THEN RETURN (FALSE); END_IF; - IF 'MATHS_FUNCTION' IN types2 THEN RETURN (FALSE); END_IF; - IF 'GENERIC_EXPRESSION' IN types2 THEN RETURN (mem_of_vs(val1,val2)); END_IF; - RETURN (UNKNOWN); - END_IF; - IF ('MATHS_ATOM' IN types2) OR ('COMPLEX_NUMBER_LITERAL' IN types2) THEN - RETURN (equal_maths_values(val2,val1)); - END_IF; - IF 'LIST' IN types1 THEN - IF 'LIST' IN types2 THEN - list1 := val1; - list2 := val2; - IF SIZEOF (list1) <> SIZEOF (list2) THEN RETURN (FALSE); END_IF; - REPEAT i := 1 TO SIZEOF (list1); - cum := cum AND equal_maths_values (list1[i], list2[i]); - IF cum = FALSE THEN RETURN (FALSE); END_IF; - END_REPEAT; - RETURN (cum); - END_IF; - IF 'MATHS_SPACE' IN types2 THEN RETURN (FALSE); END_IF; - IF 'MATHS_FUNCTION' IN types2 THEN RETURN (FALSE); END_IF; - IF 'GENERIC_EXPRESSION' IN types2 THEN RETURN (mem_of_vs(val1,val2)); END_IF; - RETURN (UNKNOWN); - END_IF; - IF 'LIST' IN types2 THEN RETURN (equal_maths_values(val2,val1)); END_IF; - IF 'MATHS_SPACE' IN types1 THEN - IF 'MATHS_SPACE' IN types2 THEN - RETURN (equal_maths_spaces(val1,val2)); - END_IF; - IF 'MATHS_FUNCTION' IN types2 THEN RETURN (FALSE); END_IF; - IF 'GENERIC_EXPRESSION' IN types2 THEN RETURN (mem_of_vs(val1,val2)); END_IF; - RETURN (UNKNOWN); - END_IF; - IF 'MATHS_SPACE' IN types2 THEN RETURN (equal_maths_values(val2,val1)); END_IF; - IF 'MATHS_FUNCTION' IN types1 THEN - IF 'MATHS_FUNCTION' IN types2 THEN - RETURN (equal_maths_functions(val1,val2)); - END_IF; - IF 'GENERIC_EXPRESSION' IN types2 THEN RETURN (mem_of_vs(val1,val2)); END_IF; - RETURN (UNKNOWN); - END_IF; - IF 'MATHS_FUNCTION' IN types2 THEN RETURN (equal_maths_values(val2,val1)); END_IF; - IF ('GENERIC_EXPRESSION' IN types1) AND ('GENERIC_EXPRESSION' IN types2) THEN - IF NOT has_values_space(val1) OR NOT has_values_space(val2) THEN - RETURN (UNKNOWN); - END_IF; - IF NOT compatible_spaces(values_space_of(val1),values_space_of(val2)) THEN - RETURN (FALSE); - END_IF; - END_IF; - RETURN (UNKNOWN); -END_FUNCTION; -- equal_maths_values - -(* Implicit interfaced from: mathematical_functions_schema *) -FUNCTION has_values_space(expr : generic_expression) : BOOLEAN; - LOCAL - typenames : SET OF STRING := stripped_typeof (expr); - END_LOCAL; - IF 'EXPRESSION' IN typenames THEN - RETURN (bool(('NUMERIC_EXPRESSION' IN typenames) OR - ('STRING_EXPRESSION' IN typenames) OR - ('BOOLEAN_EXPRESSION' IN typenames))); - END_IF; - IF 'MATHS_FUNCTION' IN typenames THEN - RETURN (TRUE); - END_IF; - IF 'FUNCTION_APPLICATION' IN typenames THEN - RETURN (TRUE); - END_IF; - IF 'MATHS_SPACE' IN typenames THEN - RETURN (TRUE); - END_IF; - IF 'MATHS_VARIABLE' IN typenames THEN - RETURN (TRUE); - END_IF; - IF 'DEPENDENT_VARIABLE_DEFINITION' IN typenames THEN - RETURN (has_values_space (expr\unary_generic_expression.operand)); - END_IF; - IF 'COMPLEX_NUMBER_LITERAL' IN typenames THEN - RETURN (TRUE); - END_IF; - IF 'LOGICAL_LITERAL' IN typenames THEN - RETURN (TRUE); - END_IF; - IF 'BINARY_LITERAL' IN typenames THEN - RETURN (TRUE); - END_IF; - IF 'MATHS_ENUM_LITERAL' IN typenames THEN - RETURN (TRUE); - END_IF; - IF 'REAL_TUPLE_LITERAL' IN typenames THEN - RETURN (TRUE); - END_IF; - IF 'INTEGER_TUPLE_LITERAL' IN typenames THEN - RETURN (TRUE); - END_IF; - IF 'ATOM_BASED_LITERAL' IN typenames THEN - RETURN (TRUE); - END_IF; - IF 'MATHS_TUPLE_LITERAL' IN typenames THEN - RETURN (TRUE); - END_IF; - IF 'PARTIAL_DERIVATIVE_EXPRESSION' IN typenames THEN - RETURN (TRUE); - END_IF; - IF 'DEFINITE_INTEGRAL_EXPRESSION' IN typenames THEN - RETURN (TRUE); - END_IF; - RETURN (FALSE); -END_FUNCTION; -- has_values_space - -(* Implicit interfaced from: mathematical_functions_schema *) -FUNCTION member_of(val : GENERIC:G; - spc : maths_space) : LOGICAL; - - -- Trivial function introduced to avoid NIST Fedex compiler error - FUNCTION fedex(val : AGGREGATE OF GENERIC:X; - i : INTEGER) : GENERIC:X; - RETURN (val[i]); - END_FUNCTION; -- fedex - - LOCAL - v : maths_value := simplify_maths_value (convert_to_maths_value (val)); - vtypes : SET OF STRING := stripped_typeof (v); - s : maths_space := simplify_maths_space (spc); - stypes : SET OF STRING := stripped_typeof (s); - tmp_int : INTEGER; - tmp_real : REAL; - tmp_cmplx : complex_number_literal; - lgcl, cum : LOGICAL; - vspc, sspc : maths_space; - smem : SET OF maths_value; - factors : LIST OF maths_space; - END_LOCAL; - IF NOT EXISTS (s) THEN - RETURN (FALSE); - END_IF; - IF NOT EXISTS (v) THEN - RETURN (s = the_generics); - END_IF; - IF ('GENERIC_EXPRESSION' IN vtypes) AND - NOT ('MATHS_SPACE' IN vtypes) AND - NOT ('MATHS_FUNCTION' IN vtypes) AND - NOT ('COMPLEX_NUMBER_LITERAL' IN vtypes) THEN - IF has_values_space (v) THEN - vspc := values_space_of (v); - IF subspace_of (vspc, s) THEN - RETURN (TRUE); - END_IF; - IF NOT compatible_spaces (vspc, s) THEN - RETURN (FALSE); - END_IF; - RETURN (UNKNOWN); - END_IF; - RETURN (UNKNOWN); - END_IF; - IF 'ELEMENTARY_SPACE' IN stypes THEN - CASE s\elementary_space.space_id OF - es_numbers : RETURN (('NUMBER' IN vtypes) OR - ('COMPLEX_NUMBER_LITERAL' IN vtypes)); - es_complex_numbers : RETURN ('COMPLEX_NUMBER_LITERAL' IN vtypes); - es_reals : RETURN (('REAL' IN vtypes) AND NOT ('INTEGER' IN vtypes)); - es_integers : RETURN ('INTEGER' IN vtypes); - es_logicals : RETURN ('LOGICAL' IN vtypes); - es_booleans : RETURN ('BOOLEAN' IN vtypes); - es_strings : RETURN ('STRING' IN vtypes); - es_binarys : RETURN ('BINARY' IN vtypes); - es_maths_spaces : RETURN ('MATHS_SPACE' IN vtypes); - es_maths_functions : RETURN ('MATHS_FUNCTION' IN vtypes); - es_generics : RETURN (TRUE); - END_CASE; - END_IF; - IF 'FINITE_INTEGER_INTERVAL' IN stypes THEN - IF 'INTEGER' IN vtypes THEN - tmp_int := v; - RETURN ({s\finite_integer_interval.min <= tmp_int <= - s\finite_integer_interval.max}); - END_IF; - RETURN (FALSE); - END_IF; - IF 'INTEGER_INTERVAL_FROM_MIN' IN stypes THEN - IF 'INTEGER' IN vtypes THEN - tmp_int := v; - RETURN (s\integer_interval_from_min.min <= tmp_int); - END_IF; - RETURN (FALSE); - END_IF; - IF 'INTEGER_INTERVAL_TO_MAX' IN stypes THEN - IF 'INTEGER' IN vtypes THEN - tmp_int := v; - RETURN (tmp_int <= s\integer_interval_to_max.max); - END_IF; - RETURN (FALSE); - END_IF; - IF 'FINITE_REAL_INTERVAL' IN stypes THEN - IF ('REAL' IN vtypes) AND NOT ('INTEGER' IN vtypes) THEN - tmp_real := v; - IF s\finite_real_interval.min_closure = closed THEN - IF s\finite_real_interval.max_closure = closed THEN - RETURN ({s\finite_real_interval.min <= tmp_real <= - s\finite_real_interval.max}); - ELSE - RETURN ({s\finite_real_interval.min <= tmp_real < - s\finite_real_interval.max}); - END_IF; - ELSE - IF s\finite_real_interval.max_closure = closed THEN - RETURN ({s\finite_real_interval.min < tmp_real <= - s\finite_real_interval.max}); - ELSE - RETURN ({s\finite_real_interval.min < tmp_real < - s\finite_real_interval.max}); - END_IF; - END_IF; - END_IF; - RETURN (FALSE); - END_IF; - IF 'REAL_INTERVAL_FROM_MIN' IN stypes THEN - IF ('REAL' IN vtypes) AND NOT ('INTEGER' IN vtypes) THEN - tmp_real := v; - IF s\real_interval_from_min.min_closure = closed THEN - RETURN (s\real_interval_from_min.min <= tmp_real); - ELSE - RETURN (s\real_interval_from_min.min < tmp_real); - END_IF; - END_IF; - RETURN (FALSE); - END_IF; - IF 'REAL_INTERVAL_TO_MAX' IN stypes THEN - IF ('REAL' IN vtypes) AND NOT ('INTEGER' IN vtypes) THEN - tmp_real := v; - IF s\real_interval_to_max.max_closure = closed THEN - RETURN (tmp_real <= s\real_interval_to_max.max); - ELSE - RETURN (tmp_real < s\real_interval_to_max.max); - END_IF; - END_IF; - RETURN (FALSE); - END_IF; - IF 'CARTESIAN_COMPLEX_NUMBER_REGION' IN stypes THEN - IF 'COMPLEX_NUMBER_LITERAL' IN vtypes THEN - RETURN (member_of(v\complex_number_literal.real_part, - s\cartesian_complex_number_region.real_constraint) AND - member_of(v\complex_number_literal.imag_part, - s\cartesian_complex_number_region.imag_constraint)); - END_IF; - RETURN (FALSE); - END_IF; - IF 'POLAR_COMPLEX_NUMBER_REGION' IN stypes THEN - IF 'COMPLEX_NUMBER_LITERAL' IN vtypes THEN - tmp_cmplx := v; - tmp_cmplx.real_part := tmp_cmplx.real_part - - s\polar_complex_number_region.centre.real_part; - tmp_cmplx.imag_part := tmp_cmplx.imag_part - - s\polar_complex_number_region.centre.imag_part; - tmp_real := SQRT (tmp_cmplx.real_part**2 + tmp_cmplx.imag_part**2); - IF NOT member_of(tmp_real, - s\polar_complex_number_region.distance_constraint) THEN - RETURN (FALSE); - END_IF; - IF tmp_real = 0.0 THEN - RETURN (TRUE); -- The centre has no direction. - END_IF; - tmp_real := atan2(tmp_cmplx.imag_part,tmp_cmplx.real_part); - RETURN (member_of(tmp_real, - s\polar_complex_number_region.direction_constraint) OR - member_of(tmp_real + 2.0*PI, - s\polar_complex_number_region.direction_constraint)); - END_IF; - RETURN (FALSE); - END_IF; - IF 'FINITE_SPACE' IN stypes THEN - smem := s\finite_space.members; - cum := FALSE; - REPEAT i := 1 TO SIZEOF (smem); - cum := cum OR equal_maths_values(v,smem[i]); - IF cum = TRUE THEN - RETURN (TRUE); - END_IF; - END_REPEAT; - RETURN (cum); - END_IF; - IF 'UNIFORM_PRODUCT_SPACE' IN stypes THEN - IF 'LIST' IN vtypes THEN - IF SIZEOF (v) = s\uniform_product_space.exponent THEN - sspc := s\uniform_product_space.base; - cum := TRUE; - REPEAT i := 1 TO SIZEOF (v); - cum := cum AND member_of(v[i],sspc); --- cum := cum AND member_of (fedex (v, i), sspc); - -- See note above for explanation of fedex() - IF cum = FALSE THEN - RETURN (FALSE); - END_IF; - END_REPEAT; - RETURN (cum); - END_IF; - END_IF; - RETURN (FALSE); - END_IF; - IF 'LISTED_PRODUCT_SPACE' IN stypes THEN - IF 'LIST' IN vtypes THEN - factors := s\listed_product_space.factors; - IF SIZEOF (v) = SIZEOF (factors) THEN - cum := TRUE; - REPEAT i := 1 TO SIZEOF (v); - cum := cum AND member_of(v[i],factors[i]); --- cum := cum AND member_of (fedex (v, i), factors[i]); - -- See note above for explanation of fedex() - IF cum = FALSE THEN - RETURN (FALSE); - END_IF; - END_REPEAT; - RETURN (cum); - END_IF; - END_IF; - RETURN (FALSE); - END_IF; - IF 'EXTENDED_TUPLE_SPACE' IN stypes THEN - IF 'LIST' IN vtypes THEN - sspc := s\extended_tuple_space.base; - tmp_int := space_dimension(sspc); - IF SIZEOF (v) >= tmp_int THEN - cum := TRUE; - REPEAT i := 1 TO tmp_int; - cum := cum AND member_of(v[i],factor_space(sspc,i)); --- cum := cum AND member_of (fedex (v, i), factor_space (sspc, i)); - -- See note above for explanation of fedex() - IF cum = FALSE THEN - RETURN (FALSE); - END_IF; - END_REPEAT; - sspc := s\extended_tuple_space.extender; - REPEAT i := tmp_int+1 TO SIZEOF (v); - cum := cum AND member_of(v[i],sspc); - IF cum = FALSE THEN - RETURN (FALSE); - END_IF; - END_REPEAT; - RETURN (cum); - END_IF; - END_IF; - RETURN (FALSE); - END_IF; - IF 'FUNCTION_SPACE' IN stypes THEN - IF 'MATHS_FUNCTION' IN vtypes THEN - vspc := v\maths_function.domain; - sspc := s\function_space.domain_argument; - CASE s\function_space.domain_constraint OF - sc_equal : cum := equal_maths_spaces (vspc, sspc); - sc_subspace : cum := subspace_of (vspc, sspc); - sc_member : cum := member_of (vspc, sspc); - END_CASE; - IF cum = FALSE THEN - RETURN (FALSE); - END_IF; - vspc := v\maths_function.range; - sspc := s\function_space.range_argument; - CASE s\function_space.range_constraint OF - sc_equal : cum := cum AND equal_maths_spaces (vspc, sspc); - sc_subspace : cum := cum AND subspace_of (vspc, sspc); - sc_member : cum := cum AND member_of (vspc, sspc); - END_CASE; - RETURN (cum); - END_IF; - RETURN (FALSE); - END_IF; - -- Should be unreachable - RETURN (UNKNOWN); -END_FUNCTION; -- member_of - -(* Implicit interfaced from: mathematical_functions_schema *) -FUNCTION make_elementary_space(space_id : elementary_space_enumerators) - : elementary_space; - RETURN (elementary_space (space_id) - || maths_space() - || generic_expression() - || generic_literal() - || simple_generic_expression() ); -END_FUNCTION; -- make_elementary_space - -(* Implicit interfaced from: mathematical_functions_schema *) -FUNCTION values_space_of(expr : generic_expression) : maths_space; - LOCAL - e_prefix : STRING := 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.'; - typenames : SET OF STRING := TYPEOF (expr); - END_LOCAL; - IF (schema_prefix + 'MATHS_VARIABLE') IN typenames THEN - RETURN (expr\maths_variable.values_space); - END_IF; - IF (e_prefix + 'EXPRESSION') IN typenames THEN - IF (e_prefix + 'NUMERIC_EXPRESSION') IN typenames THEN - IF expr\numeric_expression.is_int THEN - IF (e_prefix + 'INT_LITERAL') IN typenames THEN - RETURN (make_finite_space ([expr\int_literal.the_value])); - ELSE - RETURN (the_integers); - END_IF; - ELSE - IF (e_prefix + 'REAL_LITERAL') IN typenames THEN - RETURN (make_finite_space ([expr\real_literal.the_value])); - ELSE - RETURN (the_reals); - END_IF; - END_IF; - END_IF; - IF (e_prefix + 'BOOLEAN_EXPRESSION') IN typenames THEN - IF (e_prefix + 'BOOLEAN_LITERAL') IN typenames THEN - RETURN (make_finite_space ([expr\boolean_literal.the_value])); - ELSE - RETURN (the_booleans); - END_IF; - END_IF; - IF (e_prefix + 'STRING_EXPRESSION') IN typenames THEN - IF (e_prefix + 'STRING_LITERAL') IN typenames THEN - RETURN (make_finite_space ([expr\string_literal.the_value])); - ELSE - RETURN (the_strings); - END_IF; - END_IF; - RETURN (?); -- unknown subtype of expression - END_IF; - IF (schema_prefix + 'MATHS_FUNCTION') IN typenames THEN - IF expression_is_constant (expr) THEN - RETURN (make_finite_space ([expr])); - ELSE - RETURN (make_function_space (sc_equal, expr\maths_function.domain, - sc_equal, expr\maths_function.range)); - END_IF; - END_IF; - IF (schema_prefix + 'FUNCTION_APPLICATION') IN typenames THEN - RETURN (expr\function_application.func.range); - END_IF; - IF (schema_prefix + 'MATHS_SPACE') IN typenames THEN - IF expression_is_constant (expr) THEN - RETURN (make_finite_space ([expr])); - ELSE - -- This case cannot occur in this version of the schema. - -- When it becomes possible, the subtypes should be analysed and - -- more finely defined spaces returned. - RETURN (make_elementary_space (es_maths_spaces)); - END_IF; - END_IF; - IF (schema_prefix + 'DEPENDENT_VARIABLE_DEFINITION') IN typenames THEN - RETURN (values_space_of (expr\unary_generic_expression.operand)); - END_IF; - IF (schema_prefix + 'COMPLEX_NUMBER_LITERAL') IN typenames THEN - RETURN (make_finite_space ([expr])); - END_IF; - IF (schema_prefix + 'LOGICAL_LITERAL') IN typenames THEN - RETURN (make_finite_space ([expr\logical_literal.lit_value])); - END_IF; - IF (schema_prefix + 'BINARY_LITERAL') IN typenames THEN - RETURN (make_finite_space ([expr\binary_literal.lit_value])); - END_IF; - IF (schema_prefix + 'MATHS_ENUM_LITERAL') IN typenames THEN - RETURN (make_finite_space ([expr\maths_enum_literal.lit_value])); - END_IF; - IF (schema_prefix + 'REAL_TUPLE_LITERAL') IN typenames THEN - RETURN (make_finite_space ([expr\real_tuple_literal.lit_value])); - END_IF; - IF (schema_prefix + 'INTEGER_TUPLE_LITERAL') IN typenames THEN - RETURN (make_finite_space ([expr\integer_tuple_literal.lit_value])); - END_IF; - IF (schema_prefix + 'ATOM_BASED_LITERAL') IN typenames THEN - RETURN (make_finite_space ([expr\atom_based_literal.lit_value])); - END_IF; - IF (schema_prefix + 'MATHS_TUPLE_LITERAL') IN typenames THEN - RETURN (make_finite_space ([expr\maths_tuple_literal.lit_value])); - END_IF; - IF (schema_prefix + 'PARTIAL_DERIVATIVE_EXPRESSION') IN typenames THEN - RETURN (drop_numeric_constraints (values_space_of ( - expr\partial_derivative_expression.derivand))); - END_IF; - IF (schema_prefix + 'DEFINITE_INTEGRAL_EXPRESSION') IN typenames THEN - RETURN (drop_numeric_constraints (values_space_of ( - expr\definite_integral_expression.integrand))); - END_IF; - RETURN (?); -- not recognized as a mathematical expression -END_FUNCTION; -- values_space_of - -(* Implicit interfaced from: mathematical_functions_schema *) -FUNCTION drop_numeric_constraints(spc : maths_space) : maths_space; - LOCAL - typenames : SET OF STRING := stripped_typeof(spc); - tspc : listed_product_space; - factors : LIST OF maths_space := []; - xspc : extended_tuple_space; - END_LOCAL; - IF 'UNIFORM_PRODUCT_SPACE' IN typenames THEN - RETURN (make_uniform_product_space (drop_numeric_constraints ( - spc\uniform_product_space.base), spc\uniform_product_space.exponent)); - END_IF; - IF 'LISTED_PRODUCT_SPACE' IN typenames THEN - tspc := spc; - REPEAT i := 1 TO SIZEOF (tspc.factors); - INSERT (factors, drop_numeric_constraints (tspc.factors[i]), i-1); - END_REPEAT; - RETURN (make_listed_product_space (factors)); - END_IF; - IF 'EXTENDED_TUPLE_SPACE' IN typenames THEN - xspc := spc; - RETURN (make_extended_tuple_space (drop_numeric_constraints (xspc.base), - drop_numeric_constraints (xspc.extender))); - END_IF; - IF subspace_of_es (spc, es_numbers) THEN - RETURN (number_superspace_of (spc)); - END_IF; - RETURN (spc); -END_FUNCTION; -- drop_numeric_constraints - -(* Implicit interfaced from: mathematical_functions_schema *) -FUNCTION number_superspace_of(spc : maths_space) : elementary_space; - IF subspace_of_es(spc,es_integers) THEN RETURN (the_integers); END_IF; - IF subspace_of_es(spc,es_reals) THEN RETURN (the_reals); END_IF; - IF subspace_of_es(spc,es_complex_numbers) THEN RETURN (the_complex_numbers); END_IF; - IF subspace_of_es(spc,es_numbers) THEN RETURN (the_numbers); END_IF; - RETURN (?); -END_FUNCTION; -- number_superspace_of - -(* Implicit interfaced from: mathematical_functions_schema *) -FUNCTION subspace_of(space1, space2 : maths_space) : LOGICAL; - LOCAL - spc1 : maths_space := simplify_maths_space(space1); - spc2 : maths_space := simplify_maths_space(space2); - types1 : SET OF STRING := stripped_typeof (spc1); - types2 : SET OF STRING := stripped_typeof (spc2); - lgcl, cum : LOGICAL; - es_val : elementary_space_enumerators; - bnd1, bnd2 : REAL; - n : INTEGER; - sp1, sp2 : maths_space; - prgn1, prgn2 : polar_complex_number_region; - aitv : finite_real_interval; - END_LOCAL; - IF NOT EXISTS (spc1) OR NOT EXISTS (spc2) THEN - RETURN (FALSE); - END_IF; - IF spc2 = the_generics THEN - RETURN (TRUE); - END_IF; - IF 'ELEMENTARY_SPACE' IN types1 THEN - IF NOT ('ELEMENTARY_SPACE' IN types2) THEN - RETURN (FALSE); - END_IF; - es_val := spc2\elementary_space.space_id; - IF spc1\elementary_space.space_id = es_val THEN - RETURN (TRUE); - END_IF; - -- Note that the cases (spc2=the_generics) and (spc1=spc2) have been handled. - CASE spc1\elementary_space.space_id OF - es_numbers : RETURN (FALSE); - es_complex_numbers : RETURN (es_val = es_numbers); - es_reals : RETURN (es_val = es_numbers); - es_integers : RETURN (es_val = es_numbers); - es_logicals : RETURN (FALSE); - es_booleans : RETURN (es_val = es_logicals); - es_strings : RETURN (FALSE); - es_binarys : RETURN (FALSE); - es_maths_spaces : RETURN (FALSE); - es_maths_functions : RETURN (FALSE); - es_generics : RETURN (FALSE); - END_CASE; - -- Should be unreachable. - RETURN (UNKNOWN); - END_IF; - IF 'FINITE_INTEGER_INTERVAL' IN types1 THEN - cum := TRUE; - REPEAT i := spc1\finite_integer_interval.min TO spc1\finite_integer_interval.max; - cum := cum AND member_of (i, spc2); - IF cum = FALSE THEN - RETURN (FALSE); - END_IF; - END_REPEAT; - RETURN (cum); - END_IF; - IF 'INTEGER_INTERVAL_FROM_MIN' IN types1 THEN - IF 'ELEMENTARY_SPACE' IN types2 THEN - es_val := spc2\elementary_space.space_id; - RETURN ((es_val = es_numbers) OR (es_val = es_integers)); - END_IF; - IF 'INTEGER_INTERVAL_FROM_MIN' IN types2 THEN - RETURN (spc1\integer_interval_from_min.min>=spc2\integer_interval_from_min.min); - END_IF; - RETURN (FALSE); - END_IF; - IF 'INTEGER_INTERVAL_TO_MAX' IN types1 THEN - IF 'ELEMENTARY_SPACE' IN types2 THEN - es_val := spc2\elementary_space.space_id; - RETURN ((es_val = es_numbers) OR (es_val = es_integers)); - END_IF; - IF 'INTEGER_INTERVAL_TO_MAX' IN types2 THEN - RETURN (spc1\integer_interval_to_max.max <= spc2\integer_interval_to_max.max); - END_IF; - RETURN (FALSE); - END_IF; - IF 'FINITE_REAL_INTERVAL' IN types1 THEN - IF 'ELEMENTARY_SPACE' IN types2 THEN - es_val := spc2\elementary_space.space_id; - RETURN ((es_val = es_numbers) OR (es_val = es_reals)); - END_IF; - IF ('FINITE_REAL_INTERVAL' IN types2) OR - ('REAL_INTERVAL_FROM_MIN' IN types2) OR - ('REAL_INTERVAL_TO_MAX' IN types2) THEN - IF min_exists (spc2) THEN - bnd1 := spc1\finite_real_interval.min; - bnd2 := real_min (spc2); - IF (bnd1 < bnd2) OR ((bnd1 = bnd2) AND min_included (spc1) AND NOT - min_included (spc2)) THEN - RETURN (FALSE); - END_IF; - END_IF; - IF max_exists (spc2) THEN - bnd1 := spc1\finite_real_interval.max; - bnd2 := real_max (spc2); - IF (bnd1 > bnd2) OR ((bnd1 = bnd2) AND max_included (spc1) AND NOT - max_included (spc2)) THEN - RETURN (FALSE); - END_IF; - END_IF; - RETURN (TRUE); - END_IF; - RETURN (FALSE); - END_IF; - IF 'REAL_INTERVAL_FROM_MIN' IN types1 THEN - IF 'ELEMENTARY_SPACE' IN types2 THEN - es_val := spc2\elementary_space.space_id; - RETURN ((es_val = es_numbers) OR (es_val = es_reals)); - END_IF; - IF 'REAL_INTERVAL_FROM_MIN' IN types2 THEN - bnd1 := spc1\real_interval_from_min.min; - bnd2 := spc2\real_interval_from_min.min; - RETURN ((bnd2 < bnd1) OR ((bnd2 = bnd1) AND (min_included (spc2) OR - NOT min_included (spc1)))); - END_IF; - RETURN (FALSE); - END_IF; - IF 'REAL_INTERVAL_TO_MAX' IN types1 THEN - IF 'ELEMENTARY_SPACE' IN types2 THEN - es_val := spc2\elementary_space.space_id; - RETURN ((es_val = es_numbers) OR (es_val = es_reals)); - END_IF; - IF 'REAL_INTERVAL_TO_MAX' IN types2 THEN - bnd1 := spc1\real_interval_to_max.max; - bnd2 := spc2\real_interval_to_max.max; - RETURN ((bnd2 > bnd1) OR ((bnd2 = bnd1) AND (max_included (spc2) OR - NOT max_included (spc1)))); - END_IF; - RETURN (FALSE); - END_IF; - IF 'CARTESIAN_COMPLEX_NUMBER_REGION' IN types1 THEN - IF 'ELEMENTARY_SPACE' IN types2 THEN - es_val := spc2\elementary_space.space_id; - RETURN ((es_val = es_numbers) OR (es_val = es_complex_numbers)); - END_IF; - IF 'CARTESIAN_COMPLEX_NUMBER_REGION' IN types2 THEN - RETURN (subspace_of(spc1\cartesian_complex_number_region.real_constraint, - spc2\cartesian_complex_number_region.real_constraint) AND - subspace_of(spc1\cartesian_complex_number_region.imag_constraint, - spc2\cartesian_complex_number_region.imag_constraint)); - END_IF; - IF 'POLAR_COMPLEX_NUMBER_REGION' IN types2 THEN - RETURN (subspace_of(enclose_cregion_in_pregion(spc1, - spc2\polar_complex_number_region.centre),spc2)); - END_IF; - RETURN (FALSE); - END_IF; - IF 'POLAR_COMPLEX_NUMBER_REGION' IN types1 THEN - IF 'ELEMENTARY_SPACE' IN types2 THEN - es_val := spc2\elementary_space.space_id; - RETURN ((es_val = es_numbers) OR (es_val = es_complex_numbers)); - END_IF; - IF 'CARTESIAN_COMPLEX_NUMBER_REGION' IN types2 THEN - RETURN (subspace_of(enclose_pregion_in_cregion(spc1),spc2)); - END_IF; - IF 'POLAR_COMPLEX_NUMBER_REGION' IN types2 THEN - prgn1 := spc1; - prgn2 := spc2; - IF prgn1.centre = prgn2.centre THEN - IF prgn2.direction_constraint.max > PI THEN - aitv := make_finite_real_interval(-PI,open,prgn2.direction_constraint.max - -2.0*PI,prgn2.direction_constraint.max_closure); - RETURN (subspace_of(prgn1.distance_constraint,prgn2.distance_constraint) - AND (subspace_of(prgn1.direction_constraint,prgn2.direction_constraint) - OR subspace_of(prgn1.direction_constraint,aitv))); - ELSE - RETURN (subspace_of(prgn1.distance_constraint,prgn2.distance_constraint) - AND subspace_of(prgn1.direction_constraint,prgn2.direction_constraint)); - END_IF; - END_IF; - RETURN (subspace_of(enclose_pregion_in_pregion(prgn1,prgn2.centre),prgn2)); - END_IF; - RETURN (FALSE); - END_IF; - IF 'FINITE_SPACE' IN types1 THEN - cum := TRUE; - REPEAT i := 1 TO SIZEOF (spc1\finite_space.members); - cum := cum AND member_of (spc1\finite_space.members[i], spc2); - IF cum = FALSE THEN - RETURN (FALSE); - END_IF; - END_REPEAT; - RETURN (cum); - END_IF; - IF 'PRODUCT_SPACE' IN types1 THEN - IF 'PRODUCT_SPACE' IN types2 THEN - IF space_dimension (spc1) = space_dimension (spc2) THEN - cum := TRUE; - REPEAT i := 1 TO space_dimension (spc1); - cum := cum AND subspace_of (factor_space(spc1,i), factor_space(spc2,i)); - IF cum = FALSE THEN - RETURN (FALSE); - END_IF; - END_REPEAT; - RETURN (cum); - END_IF; - END_IF; - IF 'EXTENDED_TUPLE_SPACE' IN types2 THEN - IF space_dimension (spc1) >= space_dimension (spc2) THEN - cum := TRUE; - REPEAT i := 1 TO space_dimension (spc1); - cum := cum AND subspace_of (factor_space(spc1,i), factor_space(spc2,i)); - IF cum = FALSE THEN - RETURN (FALSE); - END_IF; - END_REPEAT; - RETURN (cum); - END_IF; - END_IF; - RETURN (FALSE); - END_IF; - IF 'EXTENDED_TUPLE_SPACE' IN types1 THEN - IF 'EXTENDED_TUPLE_SPACE' IN types2 THEN - n := space_dimension (spc1); - IF n < space_dimension (spc2) THEN - n := space_dimension (spc2); - END_IF; - cum := TRUE; - REPEAT i := 1 TO n+1; - cum := cum AND subspace_of (factor_space(spc1,i), factor_space(spc2,i)); - IF cum = FALSE THEN - RETURN (FALSE); - END_IF; - END_REPEAT; - RETURN (cum); - END_IF; - RETURN (FALSE); - END_IF; - IF 'FUNCTION_SPACE' IN types1 THEN - IF 'ELEMENTARY_SPACE' IN types2 THEN - RETURN (spc2\elementary_space.space_id = es_maths_functions); - END_IF; - IF 'FUNCTION_SPACE' IN types2 THEN - cum := TRUE; - sp1 := spc1\function_space.domain_argument; - sp2 := spc2\function_space.domain_argument; - CASE spc1\function_space.domain_constraint OF - sc_equal : BEGIN - CASE spc2\function_space.domain_constraint OF - sc_equal : cum := cum AND equal_maths_spaces (sp1, sp2); - sc_subspace : cum := cum AND subspace_of (sp1, sp2); - sc_member : cum := cum AND member_of (sp1, sp2); - END_CASE; - END; - sc_subspace : BEGIN - CASE spc2\function_space.domain_constraint OF - sc_equal : RETURN (FALSE); - sc_subspace : cum := cum AND subspace_of (sp1, sp2); - sc_member : BEGIN - IF NOT member_of (sp1, sp2) THEN - RETURN (FALSE); - END_IF; - cum := UNKNOWN; - END; - END_CASE; - END; - sc_member : BEGIN - CASE spc2\function_space.domain_constraint OF - sc_equal : cum := cum AND space_is_singleton(sp1) AND - equal_maths_spaces(singleton_member_of(sp1),sp2); - sc_subspace : BEGIN - IF NOT member_of (sp2, sp1) THEN - RETURN (FALSE); - END_IF; - cum := UNKNOWN; - END; - sc_member : cum := cum AND (subspace_of (sp1, sp2)); - END_CASE; - END; - END_CASE; - IF cum = FALSE THEN - RETURN (FALSE); - END_IF; - sp1 := spc1\function_space.range_argument; - sp2 := spc2\function_space.range_argument; - CASE spc1\function_space.range_constraint OF - sc_equal : BEGIN - CASE spc2\function_space.range_constraint OF - sc_equal : cum := cum AND equal_maths_spaces (sp1, sp2); - sc_subspace : cum := cum AND subspace_of (sp1, sp2); - sc_member : cum := cum AND member_of (sp1, sp2); - END_CASE; - END; - sc_subspace : BEGIN - CASE spc2\function_space.domain_constraint OF - sc_equal : RETURN (FALSE); - sc_subspace : cum := cum AND subspace_of (sp1, sp2); - sc_member : BEGIN - IF NOT member_of (sp1, sp2) THEN - RETURN (FALSE); - END_IF; - cum := UNKNOWN; - END; - END_CASE; - END; - sc_member : BEGIN - CASE spc2\function_space.domain_constraint OF - sc_equal : cum := cum AND space_is_singleton(sp1) AND - equal_maths_spaces(singleton_member_of(sp1),sp2); - sc_subspace : BEGIN - IF NOT member_of (sp2, sp1) THEN - RETURN (FALSE); - END_IF; - cum := UNKNOWN; - END; - sc_member : cum := cum AND subspace_of (sp1, sp2); - END_CASE; - END; - END_CASE; - RETURN (cum); - END_IF; - RETURN (FALSE); - END_IF; - -- Should be unreachable - RETURN (UNKNOWN); -END_FUNCTION; -- subspace_of - -(* Implicit interfaced from: mathematical_functions_schema *) -FUNCTION real_min(spc : maths_space) : REAL; - LOCAL - types : SET OF STRING := TYPEOF (spc); - END_LOCAL; - IF ((schema_prefix + 'FINITE_INTEGER_INTERVAL') IN types) THEN - RETURN (spc\finite_integer_interval.min); - END_IF; - IF ((schema_prefix + 'INTEGER_INTERVAL_FROM_MIN') IN types) THEN - RETURN (spc\integer_interval_from_min.min); - END_IF; - IF ((schema_prefix + 'FINITE_REAL_INTERVAL') IN types) THEN - RETURN (spc\finite_real_interval.min); - END_IF; - IF ((schema_prefix + 'REAL_INTERVAL_FROM_MIN') IN types) THEN - RETURN (spc\real_interval_from_min.min); - END_IF; - RETURN (?); -END_FUNCTION; -- real_min - -(* Implicit interfaced from: mathematical_functions_schema *) -FUNCTION min_included(spc : maths_space) : BOOLEAN; - LOCAL - types : SET OF STRING := TYPEOF (spc); - END_LOCAL; - IF ((schema_prefix + 'FINITE_INTEGER_INTERVAL') IN types) OR - ((schema_prefix + 'INTEGER_INTERVAL_FROM_MIN') IN types) THEN - RETURN (TRUE); - END_IF; - IF ((schema_prefix + 'FINITE_REAL_INTERVAL') IN types) THEN - RETURN (bool(spc\finite_real_interval.min_closure = closed)); - END_IF; - IF ((schema_prefix + 'REAL_INTERVAL_FROM_MIN') IN types) THEN - RETURN (bool(spc\real_interval_from_min.min_closure = closed)); - END_IF; - RETURN (FALSE); -END_FUNCTION; -- min_included - -(* Implicit interfaced from: mathematical_functions_schema *) -FUNCTION min_exists(spc : maths_space) : BOOLEAN; - LOCAL - types : SET OF STRING := TYPEOF (spc); - END_LOCAL; - RETURN (bool(((schema_prefix + 'FINITE_INTEGER_INTERVAL') IN types) OR - ((schema_prefix + 'INTEGER_INTERVAL_FROM_MIN') IN types) OR - ((schema_prefix + 'FINITE_REAL_INTERVAL') IN types) OR - ((schema_prefix + 'REAL_INTERVAL_FROM_MIN') IN types))); -END_FUNCTION; -- min_exists - -(* Implicit interfaced from: mathematical_functions_schema *) -FUNCTION real_max(spc : maths_space) : REAL; - LOCAL - types : SET OF STRING := TYPEOF (spc); - END_LOCAL; - IF ((schema_prefix + 'FINITE_INTEGER_INTERVAL') IN types) THEN - RETURN (spc\finite_integer_interval.max); - END_IF; - IF ((schema_prefix + 'INTEGER_INTERVAL_TO_MAX') IN types) THEN - RETURN (spc\integer_interval_to_max.max); - END_IF; - IF ((schema_prefix + 'FINITE_REAL_INTERVAL') IN types) THEN - RETURN (spc\finite_real_interval.max); - END_IF; - IF ((schema_prefix + 'REAL_INTERVAL_TO_MAX') IN types) THEN - RETURN (spc\real_interval_to_max.max); - END_IF; - RETURN (?); -END_FUNCTION; -- real_max - -(* Implicit interfaced from: mathematical_functions_schema *) -FUNCTION max_included(spc : maths_space) : BOOLEAN; - LOCAL - types : SET OF STRING := TYPEOF (spc); - END_LOCAL; - IF ((schema_prefix + 'FINITE_INTEGER_INTERVAL') IN types) OR - ((schema_prefix + 'INTEGER_INTERVAL_TO_MAX') IN types) THEN - RETURN (TRUE); - END_IF; - IF ((schema_prefix + 'FINITE_REAL_INTERVAL') IN types) THEN - RETURN (bool(spc\finite_real_interval.max_closure = closed)); - END_IF; - IF ((schema_prefix + 'REAL_INTERVAL_TO_MAX') IN types) THEN - RETURN (bool(spc\real_interval_to_max.max_closure = closed)); - END_IF; - RETURN (FALSE); -END_FUNCTION; -- max_included - -(* Implicit interfaced from: mathematical_functions_schema *) -FUNCTION max_exists(spc : maths_space) : BOOLEAN; - LOCAL - types : SET OF STRING := TYPEOF (spc); - END_LOCAL; - RETURN (bool(((schema_prefix + 'FINITE_INTEGER_INTERVAL') IN types) OR - ((schema_prefix + 'INTEGER_INTERVAL_TO_MAX') IN types) OR - ((schema_prefix + 'FINITE_REAL_INTERVAL') IN types) OR - ((schema_prefix + 'REAL_INTERVAL_TO_MAX') IN types))); -END_FUNCTION; -- max_exists - -(* Implicit interfaced from: mathematical_functions_schema *) -FUNCTION enclose_cregion_in_pregion(crgn : cartesian_complex_number_region; - centre : complex_number_literal) - : polar_complex_number_region; - -- Find equivalent direction in range -PI < a <= PI. - FUNCTION angle(a : REAL) : REAL; - REPEAT WHILE a > PI; a := a - 2.0*PI; END_REPEAT; - REPEAT WHILE a <= -PI; a := a + 2.0*PI; END_REPEAT; - RETURN (a); - END_FUNCTION; - -- Determine whether a real is strictly within a real interval - FUNCTION strictly_in(z : REAL; - zitv : real_interval) : LOGICAL; - RETURN ((NOT min_exists(zitv) OR (z > real_min(zitv))) AND - (NOT max_exists(zitv) OR (z < real_max(zitv)))); - END_FUNCTION; - -- Include direction in minmax collection - PROCEDURE angle_minmax( ab, a : REAL; - a_in : BOOLEAN; - VAR amin, amax : REAL; - VAR amin_in, amax_in : BOOLEAN); - a := angle(a - ab); - IF amin = a THEN amin_in := amin_in OR a_in; END_IF; - IF amin > a THEN amin := a; amin_in := a_in; END_IF; - IF amax = a THEN amax_in := amax_in OR a_in; END_IF; - IF amax < a THEN amax := a; amax_in := a_in; END_IF; - END_PROCEDURE; - -- Include distance in max collection - PROCEDURE range_max( r : REAL; - incl : BOOLEAN; - VAR rmax : REAL; - VAR rmax_in : BOOLEAN); - IF rmax = r THEN rmax_in := rmax_in OR incl; END_IF; - IF rmax < r THEN rmax := r; rmax_in := incl; END_IF; - END_PROCEDURE; - -- Include distance in min collection - PROCEDURE range_min( r : REAL; - incl : BOOLEAN; - VAR rmin : REAL; - VAR rmin_in : BOOLEAN); - IF rmin = r THEN rmin_in := rmin_in OR incl; END_IF; - IF (rmin < 0.0) OR (rmin > r) THEN rmin := r; rmin_in := incl; END_IF; - END_PROCEDURE; - LOCAL - xitv, yitv : real_interval; - is_xmin, is_xmax, is_ymin, is_ymax : BOOLEAN; - xmin, xmax, ymin, ymax, xc, yc : REAL := 0.0; - xmin_in, xmax_in, ymin_in, ymax_in : BOOLEAN := FALSE; - rmin, rmax : REAL := -1.0; - amin : REAL := 4.0; - amax : REAL := -4.0; - rmax_exists, outside : BOOLEAN := TRUE; - rmin_in, rmax_in, amin_in, amax_in : BOOLEAN := FALSE; - ab, a, r : REAL := 0.0; - incl : BOOLEAN; - ritv : real_interval; - aitv : finite_real_interval; - minclo, maxclo : open_closed := open; - END_LOCAL; - IF NOT EXISTS (crgn) OR NOT EXISTS (centre) THEN RETURN (?); END_IF; - -- Extract elementary input information - xitv := crgn.real_constraint; - yitv := crgn.imag_constraint; - xc := centre.real_part; - yc := centre.imag_part; - is_xmin := min_exists(xitv); - is_xmax := max_exists(xitv); - is_ymin := min_exists(yitv); - is_ymax := max_exists(yitv); - IF is_xmin THEN xmin := real_min(xitv); xmin_in := min_included(xitv); END_IF; - IF is_xmax THEN xmax := real_max(xitv); xmax_in := max_included(xitv); END_IF; - IF is_ymin THEN ymin := real_min(yitv); ymin_in := min_included(yitv); END_IF; - IF is_ymax THEN ymax := real_max(yitv); ymax_in := max_included(yitv); END_IF; - rmax_exists := is_xmin AND is_xmax AND is_ymin AND is_ymax; - -- Identify base direction with respect to which all relevant directions lie - -- within +/- 0.5*PI, or that the centre lies properly inside crgn. - IF is_xmin AND (xc <= xmin) THEN ab := 0.0; - ELSE IF is_ymin AND (yc <= ymin) THEN ab := 0.5*PI; - ELSE IF is_ymax AND (yc >= ymax) THEN ab := -0.5*PI; - ELSE IF is_xmax AND (xc >= xmax) THEN ab := PI; - ELSE outside := FALSE; - END_IF; END_IF; END_IF; END_IF; - IF NOT outside AND NOT rmax_exists THEN - RETURN (?); -- No enclosing polar region exists (requires whole plane) - END_IF; - -- Identify any closest point on a side but not a corner. - IF is_xmin AND (xc <= xmin) AND strictly_in(yc,yitv) THEN - rmin := xmin - xc; rmin_in := xmin_in; - ELSE IF is_ymin AND (yc <= ymin) AND strictly_in(xc,xitv) THEN - rmin := ymin - yc; rmin_in := ymin_in; - ELSE IF is_ymax AND (yc >= ymax) AND strictly_in(xc,xitv) THEN - rmin := yc - ymax; rmin_in := ymax_in; - ELSE IF is_xmax AND (xc >= xmax) AND strictly_in(yc,yitv) THEN - rmin := xc - xmax; rmin_in := xmax_in; - END_IF; END_IF; END_IF; END_IF; - IF is_xmin THEN - IF is_ymin THEN -- Consider lower left corner - r := SQRT((xmin-xc)**2 + (ymin-yc)**2); - incl := xmin_in AND ymin_in; - IF rmax_exists THEN range_max(r,incl,rmax,rmax_in); END_IF; - IF outside THEN - IF r > 0.0 THEN - range_min(r,incl,rmin,rmin_in); - a := angle(atan2(ymin-yc,xmin-xc) - ab); - IF xc = xmin THEN incl := xmin_in; END_IF; - IF yc = ymin THEN incl := ymin_in; END_IF; - angle_minmax(ab,a,incl,amin,amax,amin_in,amax_in); - ELSE -- Centre at lower left corner - rmin := 0.0; rmin_in := xmin_in AND ymin_in; - amin := angle(0.0-ab); amin_in := ymin_in; - amax := angle(0.5*PI-ab); amax_in := xmin_in; - END_IF; - END_IF; - ELSE IF xc <= xmin THEN -- Consider points near (xmin, -infinity) - angle_minmax(ab,-0.5*PI,(xc=xmin) AND xmin_in,amin,amax,amin_in,amax_in); - END_IF; END_IF; - IF NOT is_ymax AND (xc <= xmin) THEN -- Consider points near (xmin, +infinity) - angle_minmax(ab,0.5*PI,(xc=xmin) AND xmin_in,amin,amax,amin_in,amax_in); - END_IF; - END_IF; - IF is_ymin THEN - IF is_xmax THEN -- Consider lower right corner - r := SQRT((xmax-xc)**2 + (ymin-yc)**2); - incl := xmax_in AND ymin_in; - IF rmax_exists THEN range_max(r,incl,rmax,rmax_in); END_IF; - IF outside THEN - IF r > 0.0 THEN - range_min(r,incl,rmin,rmin_in); - a := angle(atan2(ymin-yc,xmax-xc) - ab); - IF xc = xmax THEN incl := xmax_in; END_IF; - IF yc = ymin THEN incl := ymin_in; END_IF; - angle_minmax(ab,a,incl,amin,amax,amin_in,amax_in); - ELSE -- Centre at lower right corner - rmin := 0.0; rmin_in := xmax_in AND ymin_in; - amin := angle(0.5*PI-ab); amin_in := ymin_in; - amax := angle(PI-ab); amax_in := xmax_in; - END_IF; - END_IF; - ELSE IF yc <= ymin THEN -- Consider points near (+infinity, ymin) - angle_minmax(ab,0.0,(yc=ymin) AND ymin_in,amin,amax,amin_in,amax_in); - END_IF; END_IF; - IF NOT is_xmin AND (yc <= ymin) THEN -- Consider points near (-infinity, ymin) - angle_minmax(ab,PI,(yc=ymin) AND ymin_in,amin,amax,amin_in,amax_in); - END_IF; - END_IF; - IF is_xmax THEN - IF is_ymax THEN -- Consider upper right corner - r := SQRT((xmax-xc)**2 + (ymax-yc)**2); - incl := xmax_in AND ymax_in; - IF rmax_exists THEN range_max(r,incl,rmax,rmax_in); END_IF; - IF outside THEN - IF r > 0.0 THEN - range_min(r,incl,rmin,rmin_in); - a := angle(atan2(ymax-yc,xmax-xc) - ab); - IF xc = xmax THEN incl := xmax_in; END_IF; - IF yc = ymax THEN incl := ymax_in; END_IF; - angle_minmax(ab,a,incl,amin,amax,amin_in,amax_in); - ELSE -- Centre at lower left corner - rmin := 0.0; rmin_in := xmax_in AND ymax_in; - amin := angle(-PI-ab); amin_in := ymax_in; - amax := angle(-0.5*PI-ab); amax_in := xmax_in; - END_IF; - END_IF; - ELSE IF xc >= xmax THEN -- Consider points near (xmax, +infinity) - angle_minmax(ab,0.5*PI,(xc=xmax) AND xmax_in,amin,amax,amin_in,amax_in); - END_IF; END_IF; - IF NOT is_ymin AND (xc >= xmax) THEN -- Consider points near (xmax, -infinity) - angle_minmax(ab,-0.5*PI,(xc=xmax) AND xmax_in,amin,amax,amin_in,amax_in); - END_IF; - END_IF; - IF is_ymax THEN - IF is_xmin THEN -- Consider upper left corner - r := SQRT((xmin-xc)**2 + (ymax-yc)**2); - incl := xmin_in AND ymax_in; - IF rmax_exists THEN range_max(r,incl,rmax,rmax_in); END_IF; - IF outside THEN - IF r > 0.0 THEN - range_min(r,incl,rmin,rmin_in); - a := angle(atan2(ymax-yc,xmin-xc) - ab); - IF xc = xmin THEN incl := xmin_in; END_IF; - IF yc = ymax THEN incl := ymax_in; END_IF; - angle_minmax(ab,a,incl,amin,amax,amin_in,amax_in); - ELSE -- Centre at lower right corner - rmin := 0.0; rmin_in := xmin_in AND ymax_in; - amin := angle(0.5*PI-ab); amin_in := ymax_in; - amax := angle(PI-ab); amax_in := xmin_in; - END_IF; - END_IF; - ELSE IF yc >= ymax THEN -- Consider points near (-infinity, ymax) - angle_minmax(ab,PI,(yc=ymax) AND ymax_in,amin,amax,amin_in,amax_in); - END_IF; END_IF; - IF NOT is_xmax AND (yc >= ymax) THEN -- Consider points near (+infinity, ymax) - angle_minmax(ab,0.0,(yc=ymax) AND ymax_in,amin,amax,amin_in,amax_in); - END_IF; - END_IF; - IF outside THEN -- Change direction origin from ab back to zero - amin := angle(amin+ab); - IF amin = PI THEN amin := -PI; END_IF; - amax := angle(amax+ab); - IF amax <= amin THEN amax := amax + 2.0*PI; END_IF; - ELSE - amin := -PI; amin_in := FALSE; - amax := PI; amax_in := FALSE; - END_IF; - IF amin_in THEN minclo := closed; END_IF; - IF amax_in THEN maxclo := closed; END_IF; - aitv := make_finite_real_interval(amin,minclo,amax,maxclo); - minclo := open; - IF rmin_in THEN minclo := closed; END_IF; - IF rmax_exists THEN - maxclo := open; - IF rmax_in THEN maxclo := closed; END_IF; - ritv := make_finite_real_interval(rmin,minclo,rmax,maxclo); - ELSE - ritv := make_real_interval_from_min(rmin,minclo); - END_IF; - RETURN (make_polar_complex_number_region(centre,ritv,aitv)); -END_FUNCTION; -- enclose_cregion_in_pregion - -(* Implicit interfaced from: mathematical_functions_schema *) -FUNCTION make_finite_real_interval(min : REAL; - minclo : open_closed; - max : REAL; - maxclo : open_closed) : finite_real_interval; - RETURN (finite_real_interval (min, minclo, max, maxclo) - || maths_space() - || generic_expression() - || generic_literal() - || simple_generic_expression() ); -END_FUNCTION; -- make_finite_real_interval - -(* Implicit interfaced from: mathematical_functions_schema *) -FUNCTION make_real_interval_from_min(min : REAL; - minclo : open_closed) : real_interval_from_min; - RETURN (real_interval_from_min (min, minclo) - || maths_space() - || generic_expression() - || generic_literal() - || simple_generic_expression() ); -END_FUNCTION; -- make_real_interval_from_min - -(* Implicit interfaced from: mathematical_functions_schema *) -FUNCTION make_polar_complex_number_region(centre : complex_number_literal; - dis_constraint : real_interval; - dir_constraint : finite_real_interval) - : polar_complex_number_region; - RETURN (polar_complex_number_region (centre, dis_constraint, dir_constraint) - || maths_space() - || generic_expression() - || generic_literal() - || simple_generic_expression() ); -END_FUNCTION; -- make_polar_complex_number_region - -(* Implicit interfaced from: mathematical_functions_schema *) -FUNCTION enclose_pregion_in_cregion(prgn : polar_complex_number_region) - : cartesian_complex_number_region; - PROCEDURE nearest_good_direction(acart : REAL; - aitv : finite_real_interval; - VAR a : REAL; - VAR a_in : BOOLEAN); - a := acart; a_in := TRUE; - IF a < aitv.min THEN - -- a+2.0*PI > aitv.min automatically! - IF a+2.0*PI < aitv.max THEN RETURN; END_IF; - IF a+2.0*PI = aitv.max THEN a_in := max_included(aitv); RETURN; END_IF; - ELSE IF a = aitv.min THEN a_in := min_included(aitv); RETURN; - ELSE IF a < aitv.max THEN RETURN; - ELSE IF a = aitv.max THEN a_in := max_included(aitv); RETURN; - END_IF; END_IF; END_IF; END_IF; - IF COS(acart - aitv.max) >= COS(acart - aitv.min) THEN - a := aitv.max; a_in := max_included(aitv); - ELSE - a := aitv.min; a_in := min_included(aitv); - END_IF; - END_PROCEDURE; - LOCAL - xc, yc, xmin, xmax, ymin, ymax : REAL := 0.0; - ritv, xitv, yitv : real_interval; - aitv : finite_real_interval; - xmin_exists, xmax_exists, ymin_exists, ymax_exists : BOOLEAN; - xmin_in, xmax_in, ymin_in, ymax_in : BOOLEAN := FALSE; - a, r : REAL := 0.0; - a_in : BOOLEAN := FALSE; - min_clo, max_clo : open_closed := open; - END_LOCAL; - IF NOT EXISTS (prgn) THEN RETURN (?); END_IF; - -- Extract elementary input data - xc := prgn.centre.real_part; - yc := prgn.centre.imag_part; - ritv := prgn.distance_constraint; - aitv := prgn.direction_constraint; - -- Determine xmin data - nearest_good_direction(PI,aitv,a,a_in); - IF COS(a) >= 0.0 THEN - xmin_exists := TRUE; - xmin := xc + real_min(ritv)*COS(a); - xmin_in := a_in AND (min_included(ritv) OR (COS(a) = 0.0)); - ELSE - IF max_exists(ritv) THEN - xmin_exists := TRUE; - xmin := xc + real_max(ritv)*COS(a); - xmin_in := a_in AND max_included(ritv); - ELSE - xmin_exists := FALSE; - END_IF; - END_IF; - -- Determine xmax data - nearest_good_direction(0.0,aitv,a,a_in); - IF COS(a) <= 0.0 THEN - xmax_exists := TRUE; - xmax := xc + real_min(ritv)*COS(a); - xmax_in := a_in AND (min_included(ritv) OR (COS(a) = 0.0)); - ELSE - IF max_exists(ritv) THEN - xmax_exists := TRUE; - xmax := xc + real_max(ritv)*COS(a); - xmax_in := a_in AND max_included(ritv); - ELSE - xmax_exists := FALSE; - END_IF; - END_IF; - -- Determine ymin data - nearest_good_direction(-0.5*PI,aitv,a,a_in); - IF SIN(a) >= 0.0 THEN - ymin_exists := TRUE; - ymin := yc + real_min(ritv)*SIN(a); - ymin_in := a_in AND (min_included(ritv) OR (SIN(a) = 0.0)); - ELSE - IF max_exists(ritv) THEN - ymin_exists := TRUE; - ymin := yc + real_max(ritv)*SIN(a); - ymin_in := a_in AND max_included(ritv); - ELSE - ymin_exists := FALSE; - END_IF; - END_IF; - -- Determine ymax data - nearest_good_direction(0.5*PI,aitv,a,a_in); - IF SIN(a) <= 0.0 THEN - ymax_exists := TRUE; - ymax := yc + real_min(ritv)*SIN(a); - ymax_in := a_in AND (min_included(ritv) OR (SIN(a) = 0.0)); - ELSE - IF max_exists(ritv) THEN - ymax_exists := TRUE; - ymax := yc + real_max(ritv)*SIN(a); - ymax_in := a_in AND max_included(ritv); - ELSE - ymax_exists := FALSE; - END_IF; - END_IF; - -- Construct result - IF NOT (xmin_exists OR xmax_exists OR ymin_exists OR ymax_exists) THEN - RETURN (?); -- No finite boundaries exist - END_IF; - -- Construct real_constraint - IF xmin_exists THEN - IF xmin_in THEN min_clo := closed; ELSE min_clo := open; END_IF; - IF xmax_exists THEN - IF xmax_in THEN max_clo := closed; ELSE max_clo := open; END_IF; - xitv := make_finite_real_interval(xmin,min_clo,xmax,max_clo); - ELSE - xitv := make_real_interval_from_min(xmin,min_clo); - END_IF; - ELSE - IF xmax_exists THEN - IF xmax_in THEN max_clo := closed; ELSE max_clo := open; END_IF; - xitv := make_real_interval_to_max(xmax,max_clo); - ELSE - xitv := the_reals; - END_IF; - END_IF; - -- Construct imag_constraint - IF ymin_exists THEN - IF ymin_in THEN min_clo := closed; ELSE min_clo := open; END_IF; - IF ymax_exists THEN - IF ymax_in THEN max_clo := closed; ELSE max_clo := open; END_IF; - yitv := make_finite_real_interval(ymin,min_clo,ymax,max_clo); - ELSE - yitv := make_real_interval_from_min(ymin,min_clo); - END_IF; - ELSE - IF ymax_exists THEN - IF ymax_in THEN max_clo := closed; ELSE max_clo := open; END_IF; - yitv := make_real_interval_to_max(ymax,max_clo); - ELSE - yitv := the_reals; - END_IF; - END_IF; - -- Construct cartesian region - RETURN (make_cartesian_complex_number_region(xitv,yitv)); -END_FUNCTION; -- enclose_pregion_in_cregion - -(* Implicit interfaced from: mathematical_functions_schema *) -FUNCTION make_real_interval_to_max(max : REAL; - maxclo : open_closed) : real_interval_to_max; - RETURN (real_interval_to_max (max, maxclo) - || maths_space() - || generic_expression() - || generic_literal() - || simple_generic_expression() ); -END_FUNCTION; -- make_real_interval_to_max - -(* Implicit interfaced from: mathematical_functions_schema *) -FUNCTION make_cartesian_complex_number_region(real_constraint : real_interval; - imag_constraint : real_interval) - : cartesian_complex_number_region; - RETURN (cartesian_complex_number_region (real_constraint, imag_constraint) - || maths_space() - || generic_expression() - || generic_literal() - || simple_generic_expression() ); -END_FUNCTION; -- make_cartesian_complex_number_region - -(* Implicit interfaced from: mathematical_functions_schema *) -FUNCTION enclose_pregion_in_pregion(prgn : polar_complex_number_region; - centre : complex_number_literal) - : polar_complex_number_region; - -- Find equivalent direction in range -PI < a <= PI. - FUNCTION angle(a : REAL) : REAL; - REPEAT WHILE a > PI; a := a - 2.0*PI; END_REPEAT; - REPEAT WHILE a <= -PI; a := a + 2.0*PI; END_REPEAT; - RETURN (a); - END_FUNCTION; - -- Find proper limits for direction interval - PROCEDURE angle_range(VAR amin, amax : REAL); - amin := angle(amin); - IF amin = PI THEN amin := -PI; END_IF; - amax := angle(amax); - IF amax <= amin THEN amax := amax + 2.0*PI; END_IF; - END_PROCEDURE; - -- Determine whether a direction is strictly within a direction interval - FUNCTION strictly_in(a : REAL; - aitv : finite_real_interval) : LOGICAL; - a := angle(a); - RETURN ({aitv.min < a < aitv.max} OR {aitv.min < a+2.0*PI < aitv.max}); - END_FUNCTION; - -- Find min and max and related inclusion booleans among four candidates, - -- using a base direction chosen to ensure the algebraic comparisons are valid. - PROCEDURE find_aminmax( ab,a0,a1,a2,a3 : REAL; - in0,in1,in2,in3 : BOOLEAN; - VAR amin,amax : REAL; - VAR amin_in,amax_in : BOOLEAN); - LOCAL - a : REAL; - END_LOCAL; - amin := angle(a0-ab); amin_in := in0; - amax := amin; amax_in := in0; - a := angle(a1-ab); - IF a = amin THEN amin_in := amin_in OR in1; END_IF; - IF a < amin THEN amin := a; amin_in := in1; END_IF; - IF a = amax THEN amax_in := amax_in OR in1; END_IF; - IF a > amax THEN amax := a; amax_in := in1; END_IF; - a := angle(a2-ab); - IF a = amin THEN amin_in := amin_in OR in2; END_IF; - IF a < amin THEN amin := a; amin_in := in2; END_IF; - IF a = amax THEN amax_in := amax_in OR in2; END_IF; - IF a > amax THEN amax := a; amax_in := in2; END_IF; - a := angle(a3-ab); - IF a = amin THEN amin_in := amin_in OR in3; END_IF; - IF a < amin THEN amin := a; amin_in := in3; END_IF; - IF a = amax THEN amax_in := amax_in OR in3; END_IF; - IF a > amax THEN amax := a; amax_in := in3; END_IF; - amin := amin+ab; - amax := amax+ab; - angle_range(amin,amax); - END_PROCEDURE; - - LOCAL - ritp, ritv : real_interval; - aitp, aitv : finite_real_interval; - xp, yp, xc, yc, rmax, rmin, amin, amax, rc, acp, apc : REAL := 0.0; - rmax_in, rmin_in, amin_in, amax_in : BOOLEAN := FALSE; - rmxp, rmnp, x, y, r, a, ab, r0, a0, r1, a1, r2, a2, r3, a3 : REAL := 0.0; - in0, in1, in2, in3, inn : BOOLEAN := FALSE; - minclo, maxclo : open_closed := open; - END_LOCAL; - -- Extract elementary input information - IF NOT EXISTS (prgn) OR NOT EXISTS (centre) THEN RETURN (?); END_IF; - xp := prgn.centre.real_part; - yp := prgn.centre.imag_part; - ritp := prgn.distance_constraint; - aitp := prgn.direction_constraint; - xc := centre.real_part; - yc := centre.imag_part; - IF (xc = xp) AND (yc = yp) THEN RETURN (prgn); END_IF; - rc := SQRT((xp-xc)**2 + (yp-yc)**2); - acp := atan2(yp-yc,xp-xc); - apc := atan2(yc-yp,xc-xp); - rmnp := real_min(ritp); - -- Analyse cases by existence of max distance and direction limits - IF max_exists(ritp) THEN - rmxp := real_max(ritp); - IF aitp.max - aitp.min = 2.0*PI THEN - -- annulus or disk, with or without slot or puncture - inn := NOT max_included(aitp); -- slot exists; - a := angle(aitp.min); -- slot direction - rmax := rc+rmxp; rmax_in := max_included(ritp); - IF inn AND (acp = a) THEN rmax_in := FALSE; END_IF; - IF rc > rmxp THEN - a0 := ASIN(rmxp/rc); - amin := angle(acp-a0); amin_in := max_included(ritp); - IF amin = PI THEN amin := -PI; END_IF; - amax := angle(acp+a0); amax_in := amin_in; - IF amax < amin THEN amax := amax + 2.0*PI; END_IF; - rmin := rc-rmxp; rmin_in := amin_in; - IF inn THEN - -- slotted case - IF apc = a THEN rmin_in := FALSE; END_IF; - IF angle(amin+0.5*PI) = a THEN amin_in := FALSE; END_IF; - IF angle(amax-0.5*PI) = a THEN amax_in := FALSE; END_IF; - END_IF; - ELSE IF rc = rmxp THEN - amin := angle(acp-0.5*PI); amin_in := FALSE; - IF amin = PI THEN amin := -PI; END_IF; - amax := angle(acp+0.5*PI); amax_in := FALSE; - IF amax < amin THEN amax := amax + 2.0*PI; END_IF; - rmin := 0.0; rmin_in := max_included(ritp); - IF inn AND (apc = a) THEN rmin_in := FALSE; END_IF; - ELSE IF rc > rmnp THEN - IF inn AND (apc = a) THEN -- in the slot - rmin := 0.0; rmin_in := FALSE; - amin := aitp.min; amin_in := FALSE; - amax := aitp.max; amax_in := FALSE; - ELSE - rmin := 0.0; rmin_in := TRUE; - amin := -PI; amin_in := FALSE; - amax := PI; amax_in := TRUE; - END_IF; - ELSE - rmin := rmnp-rc; rmin_in := min_included(ritp); - amin := -PI; amin_in := FALSE; - amax := PI; amax_in := TRUE; - IF inn THEN -- Special cases when aligned with slot - IF apc = a THEN - rmin_in := FALSE; - amin := aitp.min; amin_in := FALSE; - amax := aitp.max; amax_in := FALSE; - ELSE IF acp = a THEN - amin := aitp.min; amin_in := FALSE; - amax := aitp.max; amax_in := FALSE; - END_IF; END_IF; - END_IF; - END_IF; END_IF; END_IF; - ELSE -- direction range < 2*PI - -- Compute data for corners with respect to xc,yc - x := xp + rmxp*cos(aitp.min) - xc; - y := yp + rmxp*sin(aitp.min) - yc; - r0 := SQRT(x**2 + y**2); - in0 := max_included(ritp) AND min_included(aitp); - IF r0 <> 0.0 THEN a0 := atan2(y,x); END_IF; - x := xp + rmxp*cos(aitp.max) - xc; - y := yp + rmxp*sin(aitp.max) - yc; - r1 := SQRT(x**2 + y**2); - in1 := max_included(ritp) AND max_included(aitp); - IF r1 <> 0.0 THEN a1 := atan2(y,x); END_IF; - x := xp + rmnp*cos(aitp.max) - xc; - y := yp + rmnp*sin(aitp.max) - yc; - r2 := SQRT(x**2 + y**2); - in2 := min_included(ritp) AND max_included(aitp); - IF r2 <> 0.0 THEN a2 := atan2(y,x); ELSE a2 := a1; in2 := in1; END_IF; - IF r1 = 0.0 THEN a1 := a2; in1 := in2; END_IF; - x := xp + rmnp*cos(aitp.min) - xc; - y := yp + rmnp*sin(aitp.min) - yc; - r3 := SQRT(x**2 + y**2); - in3 := min_included(ritp) AND min_included(aitp); - IF r3 <> 0.0 THEN a3 := atan2(y,x); ELSE a3 := a0; in3 := in0; END_IF; - IF r0 = 0.0 THEN a0 := a3; in0 := in3; END_IF; - IF rmnp = 0.0 THEN in2 := min_included(ritp); in3 := in2; END_IF; - IF (apc = angle(aitp.min)) OR (acp = angle(aitp.min)) THEN - in0 := min_included(aitp); - in3 := in0; - ELSE IF (apc = angle(aitp.max)) OR (acp = angle(aitp.max)) THEN - in1 := max_included(aitp); - in2 := in1; - END_IF; END_IF; - -- Find rmax - IF strictly_in(acp,aitp) THEN - rmax := rc+rmxp; rmax_in := max_included(ritp); - ELSE - rmax := r0; rmax_in := in0; - IF rmax = r1 THEN rmax_in := rmax_in OR in1; END_IF; - IF rmax < r1 THEN rmax := r1; rmax_in := in1; END_IF; - IF rmax = r2 THEN rmax_in := rmax_in OR in2; END_IF; - IF rmax < r2 THEN rmax := r2; rmax_in := in2; END_IF; - IF rmax = r3 THEN rmax_in := rmax_in OR in3; END_IF; - IF rmax < r3 THEN rmax := r3; rmax_in := in3; END_IF; - END_IF; - -- Find rmin - IF strictly_in(apc,aitp) THEN - IF rc >= rmxp THEN - rmin := rc-rmxp; rmin_in := max_included(ritp); - ELSE IF rc <= rmnp THEN - rmin := rmnp-rc; rmin_in := min_included(ritp); - ELSE - rmin := 0.0; rmin_in := TRUE; - END_IF; END_IF; - ELSE - rmin := r0; rmin_in := in0; - a := apc-aitp.min; - r := rc*COS(a); - IF {rmnp < r < rmxp} THEN -- use nearest point on line segment - rmin := rc*SIN(ABS(a)); rmin_in := min_included(aitp); - END_IF; - a := apc-aitp.max; - r := rc*COS(a); - IF {rmnp < r < rmxp} THEN -- try nearest point on line segment - r := rc*SIN(ABS(a)); inn := max_included(aitp); - IF r = rmin THEN rmin_in := rmin_in OR inn; END_IF; - IF r < rmin THEN rmin := r; rmin_in := inn; END_IF; - END_IF; - IF r1 = rmin THEN rmin_in := rmin_in OR in1; END_IF; - IF r1 < rmin THEN rmin := r1; rmin_in := in1; END_IF; - IF r2 = rmin THEN rmin_in := rmin_in OR in2; END_IF; - IF r2 < rmin THEN rmin := r2; rmin_in := in2; END_IF; - IF r3 = rmin THEN rmin_in := rmin_in OR in3; END_IF; - IF r3 < rmin THEN rmin := r3; rmin_in := in3; END_IF; - END_IF; - -- Find amin and amax, initially with respect to base direction ab. - IF rc >= rmxp THEN -- outside outer circle - ab := acp; - find_aminmax(ab,a0,a1,a2,a3,in0,in1,in2,in3,amin,amax,amin_in,amax_in); - a := ACOS(rmxp/rc); - IF strictly_in(apc-a,aitp) THEN - amin := ab-ASIN(rmxp/rc); amin_in := max_included(ritp); - END_IF; - IF strictly_in(apc+a,aitp) THEN - amax := ab+ASIN(rmxp/rc); amax_in := max_included(ritp); - END_IF; - angle_range(amin,amax); - ELSE IF rc > rmnp THEN - ab := angle(0.5*(aitp.min+aitp.max)); -- reference direction - find_aminmax(ab,a0,a1,a2,a3,in0,in1,in2,in3,amin,amax,amin_in,amax_in); - ELSE - -- Using base direction midway in prgn, compute all directions using - -- values which ensure a3 < a2 and a0 < a1 algebraically. - ab := angle(0.5*(aitp.min+aitp.max)); -- reference direction - a0 := angle(a0-ab); - a1 := angle(a1-ab); - a2 := angle(a2-ab); - a3 := angle(a3-ab); - IF a3 > a2 THEN a2 := a2 + 2.0*PI; END_IF; - IF a0 > a1 THEN a0 := a0 + 2.0*PI; END_IF; - IF a3 < a0 THEN amin := a3; amin_in := in3; - ELSE amin := a0; amin_in := in0; END_IF; - IF a2 > a1 THEN amax := a2; amax_in := in2; - ELSE amax := a1; amax_in := in1; END_IF; - IF (amax - amin > 2.0*PI) OR - ((amax - amin = 2.0*PI) AND (amin_in OR amax_in)) THEN - -- Cannot see out - amin := -PI; amin_in := FALSE; - amax := PI; amax_in := TRUE; - ELSE - amin := amin + ab; - amax := amax + ab; - angle_range(amin,amax); - END_IF; - END_IF; END_IF; - END_IF; - IF rmin_in THEN minclo := closed; END_IF; - IF rmax_in THEN maxclo := closed; END_IF; - ritv := make_finite_real_interval(rmin,minclo,rmax,maxclo); - ELSE -- Not max_exists(ritp) - IF (rc > rmnp) AND strictly_in(apc,aitp) THEN - RETURN (?); -- No pregion exists. (Would require whole plane.) - END_IF; - IF aitp.max - aitp.min = 2.0*PI THEN - -- complement of disk, with or without slot - a := angle(aitp.min); -- slot direction - IF rc > rmnp THEN -- already excluded if not aligned with slot - IF max_included(aitp) THEN - RETURN (?); -- No pregion exists. (Would require whole plane.) - END_IF; - rmin := 0.0; rmin_in := FALSE; - amin := aitp.min; amin_in := FALSE; - amax := aitp.max; amax_in := FALSE; - ELSE - rmin := rmnp-rc; rmin_in := min_included(ritp); - amin := -PI; amin_in := FALSE; - amax := PI; amax_in := TRUE; - IF NOT max_included(aitp) THEN -- Special cases when aligned with slot - IF apc = a THEN - rmin_in := FALSE; - amin := aitp.min; amin_in := FALSE; - amax := aitp.max; amax_in := FALSE; - ELSE IF acp = a THEN - amin := aitp.min; amin_in := FALSE; - amax := aitp.max; amax_in := FALSE; - END_IF; END_IF; - END_IF; - END_IF; - ELSE -- direction range < 2*PI - -- Compute data for corners with respect to xc,yc (two at infinity) - a0 := angle(aitp.min); - in0 := FALSE; - a1 := angle(aitp.max); - in1 := FALSE; - x := xp + rmnp*cos(aitp.max) - xc; - y := yp + rmnp*sin(aitp.max) - yc; - r2 := SQRT(x**2 + y**2); - in2 := min_included(ritp) AND max_included(aitp); - IF r2 <> 0.0 THEN a2 := atan2(y,x); ELSE a2 := a1; in2 := in1; END_IF; - x := xp + rmnp*cos(aitp.min) - xc; - y := yp + rmnp*sin(aitp.min) - yc; - r3 := SQRT(x**2 + y**2); - in3 := min_included(ritp) AND min_included(aitp); - IF r3 <> 0.0 THEN a3 := atan2(y,x); ELSE a3 := a0; in3 := in0; END_IF; - IF rmnp = 0.0 THEN in2 := min_included(ritp); in3 := in2; END_IF; - IF (apc = angle(aitp.min)) OR (acp = angle(aitp.min)) THEN - in0 := min_included(aitp); - in3 := in0; - ELSE IF (apc = angle(aitp.max)) OR (acp = angle(aitp.max)) THEN - in1 := max_included(aitp); - in2 := in1; - END_IF; END_IF; - -- Find rmin - IF strictly_in(apc,aitp) THEN - rmin := rmnp-rc; rmin_in := min_included(ritp); - ELSE - rmin := r2; rmin_in := in2; - a := apc-aitp.min; - r := rc*COS(a); - IF rmnp < r THEN -- use nearest point on aitp.min ray - rmin := rc*SIN(ABS(a)); rmin_in := min_included(aitp); - END_IF; - a := apc-aitp.max; - r := rc*COS(a); - IF rmnp < r THEN -- try nearest point on aitp.max ray - r := rc*SIN(ABS(a)); inn := max_included(aitp); - IF r = rmin THEN rmin_in := rmin_in OR inn; END_IF; - IF r < rmin THEN rmin := r; rmin_in := inn; END_IF; - END_IF; - IF r3 = rmin THEN rmin_in := rmin_in OR in3; END_IF; - IF r3 < rmin THEN rmin := r3; rmin_in := in3; END_IF; - END_IF; - -- Find amin and amax - ab := angle(0.5*(aitp.min+aitp.max)); -- reference direction - IF rc > rmnp THEN - find_aminmax(ab,a0,a1,a2,a3,in0,in1,in2,in3,amin,amax,amin_in,amax_in); - ELSE - -- Using base direction midway in prgn, compute all directions using - -- values which ensure a3 < a2 and a0 < a1 algebraically. - a0 := angle(a0-ab); - a1 := angle(a1-ab); - a2 := angle(a2-ab); - a3 := angle(a3-ab); - IF a3 > a2 THEN a2 := a2 + 2.0*PI; END_IF; - IF a0 > a1 THEN a0 := a0 + 2.0*PI; END_IF; - IF a3 < a0 THEN amin := a3; amin_in := in3; - ELSE amin := a0; amin_in := in0; END_IF; - IF a2 > a1 THEN amax := a2; amax_in := in2; - ELSE amax := a1; amax_in := in1; END_IF; - IF (amax - amin > 2.0*PI) OR - ((amax - amin = 2.0*PI) AND (amin_in OR amax_in)) THEN - -- Cannot see out - amin := -PI; amin_in := FALSE; - amax := PI; amax_in := TRUE; - IF (rmin = 0.0) AND rmin_in THEN - RETURN (?); -- No pregion exists. (Would require whole plane.) - END_IF; - ELSE - amin := amin + ab; - amax := amax + ab; - angle_range(amin,amax); - END_IF; - END_IF; - END_IF; - IF rmin_in THEN minclo := closed; END_IF; - ritv := make_real_interval_from_min(rmin,minclo); - END_IF; - minclo := open; maxclo := open; - IF amin_in THEN minclo := closed; END_IF; - IF amax_in THEN maxclo := closed; END_IF; - aitv := make_finite_real_interval(amin,minclo,amax,maxclo); - -- Construct polar region - RETURN (make_polar_complex_number_region(centre,ritv,aitv)); -END_FUNCTION; -- enclose_pregion_in_pregion - -(* Implicit interfaced from: mathematical_functions_schema *) -FUNCTION space_dimension(tspace : tuple_space) : nonnegative_integer; - LOCAL - types : SET OF STRING := TYPEOF (tspace); - END_LOCAL; - IF (schema_prefix + 'UNIFORM_PRODUCT_SPACE') IN types THEN - RETURN (tspace\uniform_product_space.exponent); - END_IF; - IF (schema_prefix + 'LISTED_PRODUCT_SPACE') IN types THEN - RETURN (SIZEOF (tspace\listed_product_space.factors)); - END_IF; - IF (schema_prefix + 'EXTENDED_TUPLE_SPACE') IN types THEN - -- In the case of an extended_tuple_space, the minimum dimension is returned. - RETURN (space_dimension (tspace\extended_tuple_space.base)); - END_IF; - -- Should be unreachable - RETURN (?); -END_FUNCTION; -- space_dimension - -(* Implicit interfaced from: mathematical_functions_schema *) -FUNCTION factor_space(tspace : tuple_space; - idx : positive_integer) : maths_space; - LOCAL - typenames : SET OF STRING := TYPEOF (tspace); - END_LOCAL; - IF (schema_prefix + 'UNIFORM_PRODUCT_SPACE') IN typenames THEN - IF idx <= tspace\uniform_product_space.exponent THEN - RETURN (tspace\uniform_product_space.base); - END_IF; - RETURN (?); - END_IF; - IF (schema_prefix + 'LISTED_PRODUCT_SPACE') IN typenames THEN - IF idx <= SIZEOF (tspace\listed_product_space.factors) THEN - RETURN (tspace\listed_product_space.factors[idx]); - END_IF; - RETURN (?); - END_IF; - IF (schema_prefix + 'EXTENDED_TUPLE_SPACE') IN typenames THEN - IF idx <= space_dimension (tspace\extended_tuple_space.base) THEN - RETURN (factor_space (tspace\extended_tuple_space.base, idx)); - END_IF; - RETURN (tspace\extended_tuple_space.extender); - END_IF; - -- Should not be reachable. - RETURN (?); -END_FUNCTION; -- factor_space - -(* Implicit interfaced from: mathematical_functions_schema *) -FUNCTION equal_maths_spaces(spc1, spc2 : maths_space) : LOGICAL; - LOCAL - spc1types : SET OF STRING := stripped_typeof(spc1); - spc2types : SET OF STRING := stripped_typeof(spc2); - set1, set2 : SET OF maths_value; - cum : LOGICAL := TRUE; - base : maths_space; - expnt : INTEGER; - factors : LIST OF maths_space; - factors2 : LIST OF maths_space; - fs1, fs2 : function_space; - cum2 : LOGICAL; - END_LOCAL; - IF spc1 = spc2 THEN RETURN (TRUE); END_IF; - -- Consider cases where it is not yet certain that spc1 <> spc2. - IF 'FINITE_SPACE' IN spc1types THEN - set1 := spc1\finite_space.members; - IF 'FINITE_SPACE' IN spc2types THEN - -- Members may have different but equivalent representations and in - -- different orders. May also have disguised repeats in same set of members. - set2 := spc2\finite_space.members; - REPEAT i := 1 TO SIZEOF (set1); - cum := cum AND member_of (set1[i], spc2); - IF cum = FALSE THEN RETURN (FALSE); END_IF; - END_REPEAT; - IF cum = TRUE THEN - REPEAT i := 1 TO SIZEOF (set2); - cum := cum AND member_of (set2[i], spc1); - IF cum = FALSE THEN RETURN (FALSE); END_IF; - END_REPEAT; - END_IF; - RETURN (cum); - END_IF; - IF 'FINITE_INTEGER_INTERVAL' IN spc2types THEN - set2 := []; - REPEAT i := spc2\finite_integer_interval.min TO spc2\finite_integer_interval.max; - set2 := set2 + [i]; - END_REPEAT; - RETURN (equal_maths_spaces(spc1,make_finite_space(set2))); - END_IF; - END_IF; - IF ('FINITE_INTEGER_INTERVAL' IN spc1types) AND ('FINITE_SPACE' IN spc2types) THEN - set1 := []; - REPEAT i := spc1\finite_integer_interval.min TO spc1\finite_integer_interval.max; - set1 := set1 + [i]; - END_REPEAT; - RETURN (equal_maths_spaces(make_finite_space(set1),spc2)); - END_IF; - IF ('CARTESIAN_COMPLEX_NUMBER_REGION' IN spc1types) AND - ('POLAR_COMPLEX_NUMBER_REGION' IN spc2types) THEN - -- Quadrants and half spaces have two representations - RETURN (equal_cregion_pregion(spc1,spc2)); - END_IF; - IF ('POLAR_COMPLEX_NUMBER_REGION' IN spc1types) AND - ('CARTESIAN_COMPLEX_NUMBER_REGION' IN spc2types) THEN - -- Quadrants and half spaces have two representations - RETURN (equal_cregion_pregion(spc2,spc1)); - END_IF; - IF 'UNIFORM_PRODUCT_SPACE' IN spc1types THEN - base := spc1\uniform_product_space.base; - expnt := spc1\uniform_product_space.exponent; - IF 'UNIFORM_PRODUCT_SPACE' IN spc2types THEN - IF expnt <> spc2\uniform_product_space.exponent THEN RETURN (FALSE); END_IF; - RETURN (equal_maths_spaces(base,spc2\uniform_product_space.base)); - END_IF; - IF 'LISTED_PRODUCT_SPACE' IN spc2types THEN - factors := spc2\listed_product_space.factors; - IF expnt <> SIZEOF (factors) THEN RETURN (FALSE); END_IF; - REPEAT i := 1 TO SIZEOF (factors); - cum := cum AND equal_maths_spaces(base,factors[i]); - IF cum = FALSE THEN RETURN (FALSE); END_IF; - END_REPEAT; - RETURN (cum); - END_IF; - END_IF; - IF 'LISTED_PRODUCT_SPACE' IN spc1types THEN - factors := spc1\listed_product_space.factors; - IF 'UNIFORM_PRODUCT_SPACE' IN spc2types THEN - IF spc2\uniform_product_space.exponent <> SIZEOF (factors) THEN - RETURN (FALSE); - END_IF; - base := spc2\uniform_product_space.base; - REPEAT i := 1 TO SIZEOF (factors); - cum := cum AND equal_maths_spaces(base,factors[i]); - IF cum = FALSE THEN RETURN (FALSE); END_IF; - END_REPEAT; - RETURN (cum); - END_IF; - IF 'LISTED_PRODUCT_SPACE' IN spc2types THEN - factors2 := spc2\listed_product_space.factors; - IF SIZEOF (factors) <> SIZEOF (factors2) THEN RETURN (FALSE); END_IF; - REPEAT i := 1 TO SIZEOF (factors); - cum := cum AND equal_maths_spaces(factors[i],factors2[i]); - IF cum = FALSE THEN RETURN (FALSE); END_IF; - END_REPEAT; - RETURN (cum); - END_IF; - END_IF; - IF ('EXTENDED_TUPLE_SPACE' IN spc1types) AND - ('EXTENDED_TUPLE_SPACE' IN spc2types) THEN - RETURN (equal_maths_spaces(spc1\extended_tuple_space.extender, - spc2\extended_tuple_space.extender) AND equal_maths_spaces( - spc1\extended_tuple_space.base, spc2\extended_tuple_space.base)); - END_IF; - IF ('FUNCTION_SPACE' IN spc1types) AND - ('FUNCTION_SPACE' IN spc2types) THEN - fs1 := spc1; - fs2 := spc2; - IF fs1.domain_constraint <> fs2.domain_constraint THEN - IF (fs1.domain_constraint = sc_equal) OR (fs2.domain_constraint = sc_equal) THEN - RETURN (FALSE); - END_IF; - IF (fs1.domain_constraint <> sc_subspace) THEN - fs1 := spc2; - fs2 := spc1; - END_IF; - IF (fs1.domain_constraint <> sc_subspace) OR - (fs2.domain_constraint <> sc_member) THEN - -- Safety check. Should be unreachable. - RETURN (UNKNOWN); - END_IF; - IF any_space_satisfies(fs1.domain_constraint,fs1.domain_argument) <> - any_space_satisfies(fs2.domain_constraint,fs2.domain_argument) THEN - RETURN (FALSE); - END_IF; - IF NOT ('FINITE_SPACE' IN stripped_typeof(fs2.domain_argument)) THEN - RETURN (FALSE); - END_IF; - IF SIZEOF (['FINITE_SPACE','FINITE_INTEGER_INTERVAL'] * - stripped_typeof(fs1.domain_argument)) = 0 THEN - RETURN (FALSE); - END_IF; - -- Remaining cases too complex. - RETURN (UNKNOWN); - END_IF; - cum := equal_maths_spaces(fs1.domain_argument,fs2.domain_argument); - IF cum = FALSE THEN RETURN (FALSE); END_IF; - IF fs1.range_constraint <> fs2.range_constraint THEN - IF (fs1.range_constraint = sc_equal) OR (fs2.range_constraint = sc_equal) THEN - RETURN (FALSE); - END_IF; - IF (fs1.range_constraint <> sc_subspace) THEN - fs1 := spc2; - fs2 := spc1; - END_IF; - IF (fs1.range_constraint <> sc_subspace) OR - (fs2.range_constraint <> sc_member) THEN - -- Safety check. Should be unreachable. - RETURN (UNKNOWN); - END_IF; - IF any_space_satisfies(fs1.range_constraint,fs1.range_argument) <> - any_space_satisfies(fs2.range_constraint,fs2.range_argument) THEN - RETURN (FALSE); - END_IF; - IF NOT ('FINITE_SPACE' IN stripped_typeof(fs2.range_argument)) THEN - RETURN (FALSE); - END_IF; - IF SIZEOF (['FINITE_SPACE','FINITE_INTEGER_INTERVAL'] * - stripped_typeof(fs1.range_argument)) = 0 THEN - RETURN (FALSE); - END_IF; - -- Remaining cases too complex. - RETURN (UNKNOWN); - END_IF; - cum := cum AND equal_maths_spaces(fs1.range_argument,fs2.range_argument); - RETURN (cum); - END_IF; - RETURN (FALSE); -END_FUNCTION; -- equal_maths_spaces - -(* Implicit interfaced from: mathematical_functions_schema *) -FUNCTION equal_cregion_pregion(crgn : cartesian_complex_number_region; - prgn : polar_complex_number_region) : LOGICAL; - LOCAL - arng, amin, xc, yc : REAL; - aitv, xitv, yitv : real_interval; - c_in : BOOLEAN; - END_LOCAL; - IF NOT EXISTS (crgn) OR NOT EXISTS (prgn) THEN RETURN (FALSE); END_IF; - IF max_exists(prgn.distance_constraint) THEN RETURN (FALSE); END_IF; - IF real_min(prgn.distance_constraint) <> 0.0 THEN RETURN (FALSE); END_IF; - c_in := min_included(prgn.distance_constraint); - aitv := prgn.direction_constraint; - amin := aitv.min; - arng := aitv.max - amin; - xc := prgn.centre.real_part; - yc := prgn.centre.imag_part; - xitv := crgn.real_constraint; - yitv := crgn.imag_constraint; - IF arng = 0.5*PI THEN - IF amin = 0.0 THEN -- quadrant to upper right - RETURN (NOT max_exists(xitv) AND NOT max_exists(yitv) AND min_exists(xitv) - AND min_exists(yitv) AND (real_min(xitv) = xc) AND (real_min(yitv) = yc) - AND ((c_in AND min_included(aitv) AND max_included(aitv) - AND min_included(xitv) AND min_included(yitv)) - OR (NOT c_in AND NOT min_included(aitv) AND max_included(aitv) - AND min_included(xitv) AND NOT min_included(yitv)) - OR (NOT c_in AND min_included(aitv) AND NOT max_included(aitv) - AND NOT min_included(xitv) AND min_included(yitv)) - OR (NOT c_in AND NOT min_included(aitv) AND NOT max_included(aitv) - AND NOT min_included(xitv) AND NOT min_included(yitv)))); - END_IF; - IF amin = 0.5*PI THEN -- quadrant to upper left - RETURN (max_exists(xitv) AND NOT max_exists(yitv) AND NOT min_exists(xitv) - AND min_exists(yitv) AND (real_max(xitv) = xc) AND (real_min(yitv) = yc) - AND ((c_in AND min_included(aitv) AND max_included(aitv) - AND max_included(xitv) AND min_included(yitv)) - OR (NOT c_in AND NOT min_included(aitv) AND max_included(aitv) - AND max_included(xitv) AND NOT min_included(yitv)) - OR (NOT c_in AND min_included(aitv) AND NOT max_included(aitv) - AND NOT max_included(xitv) AND min_included(yitv)) - OR (NOT c_in AND NOT min_included(aitv) AND NOT max_included(aitv) - AND NOT max_included(xitv) AND NOT min_included(yitv)))); - END_IF; - IF amin = -PI THEN -- quadrant to lower left - RETURN (max_exists(xitv) AND max_exists(yitv) AND NOT min_exists(xitv) - AND NOT min_exists(yitv) AND (real_max(xitv) = xc) AND (real_max(yitv) = yc) - AND ((c_in AND min_included(aitv) AND max_included(aitv) - AND max_included(xitv) AND max_included(yitv)) - OR (NOT c_in AND NOT min_included(aitv) AND max_included(aitv) - AND max_included(xitv) AND NOT max_included(yitv)) - OR (NOT c_in AND min_included(aitv) AND NOT max_included(aitv) - AND NOT max_included(xitv) AND max_included(yitv)) - OR (NOT c_in AND NOT min_included(aitv) AND NOT max_included(aitv) - AND NOT max_included(xitv) AND NOT max_included(yitv)))); - END_IF; - IF amin = -0.5*PI THEN -- quadrant to lower right - RETURN (NOT max_exists(xitv) AND max_exists(yitv) AND min_exists(xitv) - AND NOT min_exists(yitv) AND (real_min(xitv) = xc) AND (real_max(yitv) = yc) - AND ((c_in AND min_included(aitv) AND max_included(aitv) - AND min_included(xitv) AND max_included(yitv)) - OR (NOT c_in AND NOT min_included(aitv) AND max_included(aitv) - AND min_included(xitv) AND NOT max_included(yitv)) - OR (NOT c_in AND min_included(aitv) AND NOT max_included(aitv) - AND NOT min_included(xitv) AND max_included(yitv)) - OR (NOT c_in AND NOT min_included(aitv) AND NOT max_included(aitv) - AND NOT min_included(xitv) AND NOT max_included(yitv)))); - END_IF; - END_IF; - IF arng = PI THEN - IF amin = 0.0 THEN -- upper half space - RETURN (NOT max_exists(xitv) AND NOT max_exists(yitv) AND NOT min_exists(xitv) - AND min_exists(yitv) AND (real_min(yitv) = yc) - AND ((c_in AND min_included(aitv) AND max_included(aitv) - AND min_included(yitv)) - OR (NOT c_in AND NOT min_included(aitv) AND NOT max_included(aitv) - AND NOT min_included(yitv)))); - END_IF; - IF amin = 0.5*PI THEN -- left half space - RETURN (max_exists(xitv) AND NOT max_exists(yitv) AND NOT min_exists(xitv) - AND NOT min_exists(yitv) AND (real_max(xitv) = xc) - AND ((c_in AND min_included(aitv) AND max_included(aitv) - AND max_included(xitv)) - OR (NOT c_in AND NOT min_included(aitv) AND NOT max_included(aitv) - AND NOT max_included(xitv)))); - END_IF; - IF amin = -PI THEN -- lower half space - RETURN (NOT max_exists(xitv) AND max_exists(yitv) AND NOT min_exists(xitv) - AND NOT min_exists(yitv) AND (real_max(yitv) = yc) - AND ((c_in AND min_included(aitv) AND max_included(aitv) - AND max_included(yitv)) - OR (NOT c_in AND NOT min_included(aitv) AND NOT max_included(aitv) - AND NOT max_included(yitv)))); - END_IF; - IF amin = -0.5*PI THEN -- right half space - RETURN (NOT max_exists(xitv) AND NOT max_exists(yitv) AND min_exists(xitv) - AND NOT min_exists(yitv) AND (real_min(xitv) = xc) - AND ((c_in AND min_included(aitv) AND max_included(aitv) - AND min_included(xitv)) - OR (NOT c_in AND NOT min_included(aitv) AND NOT max_included(aitv) - AND NOT min_included(xitv)))); - END_IF; - END_IF; - RETURN (FALSE); -END_FUNCTION; -- equal_cregion_pregion - -(* Implicit interfaced from: mathematical_functions_schema *) -FUNCTION any_space_satisfies(sc : space_constraint_type; - spc : maths_space) : BOOLEAN; - LOCAL - spc_id : elementary_space_enumerators; - END_LOCAL; - IF (sc = sc_equal) OR NOT ('ELEMENTARY_SPACE' IN stripped_typeof(spc)) THEN - RETURN (FALSE); - END_IF; - spc_id := spc\elementary_space.space_id; - IF sc = sc_subspace THEN - RETURN (bool(spc_id = es_generics)); - END_IF; - IF sc = sc_member THEN - RETURN (bool((spc_id = es_generics) OR (spc_id = es_maths_spaces))); - END_IF; - -- Should be unreachable. - RETURN (?); -END_FUNCTION; -- any_space_satisfies - -(* Implicit interfaced from: mathematical_functions_schema *) -FUNCTION space_is_singleton(spc : maths_space) : BOOLEAN; - LOCAL - types : SET OF STRING := stripped_typeof (spc); - END_LOCAL; - IF 'FINITE_SPACE' IN types THEN - RETURN (bool(SIZEOF (spc\finite_space.members) = 1)); - END_IF; - IF 'FINITE_INTEGER_INTERVAL' IN types THEN - RETURN (bool(spc\finite_integer_interval.size = 1)); - END_IF; - RETURN (FALSE); -END_FUNCTION; -- space_is_singleton - -(* Implicit interfaced from: mathematical_functions_schema *) -FUNCTION singleton_member_of(spc : maths_space) : maths_value; - LOCAL - types : SET OF STRING := stripped_typeof (spc); - END_LOCAL; - IF 'FINITE_SPACE' IN types THEN - IF SIZEOF (spc\finite_space.members) = 1 THEN - RETURN (spc\finite_space.members[1]); - END_IF; - RETURN (?); - END_IF; - IF 'FINITE_INTEGER_INTERVAL' IN types THEN - IF spc\finite_integer_interval.size = 1 THEN - RETURN (spc\finite_integer_interval.min); - END_IF; - RETURN (?); - END_IF; - RETURN (?); -END_FUNCTION; -- singleton_member_of - -(* Implicit interfaced from: mathematical_functions_schema *) -FUNCTION compatible_spaces(sp1, sp2 : maths_space) : BOOLEAN; - LOCAL - types1 : SET OF STRING := stripped_typeof (sp1); - types2 : SET OF STRING := stripped_typeof (sp2); - lgcl : LOGICAL := UNKNOWN; - m, n : INTEGER; - s1, s2 : maths_space; - END_LOCAL; - IF 'FINITE_SPACE' IN types1 THEN - REPEAT i := 1 TO SIZEOF (sp1\finite_space.members); - lgcl := member_of(sp1\finite_space.members[i], sp2); - IF lgcl <> FALSE THEN - RETURN (TRUE); - END_IF; - END_REPEAT; - RETURN (FALSE); - END_IF; - IF 'FINITE_SPACE' IN types2 THEN - REPEAT i := 1 TO SIZEOF (sp2\finite_space.members); - lgcl := member_of(sp2\finite_space.members[i], sp1); - IF lgcl <> FALSE THEN - RETURN (TRUE); - END_IF; - END_REPEAT; - RETURN (FALSE); - END_IF; - IF 'ELEMENTARY_SPACE' IN types1 THEN - IF sp1\elementary_space.space_id = es_generics THEN - RETURN (TRUE); - END_IF; - IF 'ELEMENTARY_SPACE' IN types2 THEN - RETURN (compatible_es_values(sp1\elementary_space.space_id, - sp2\elementary_space.space_id)); - END_IF; - IF ('FINITE_INTEGER_INTERVAL' IN types2) OR - ('INTEGER_INTERVAL_FROM_MIN' IN types2) OR - ('INTEGER_INTERVAL_TO_MAX' IN types2) THEN - RETURN (compatible_es_values(sp1\elementary_space.space_id, es_integers)); - END_IF; - IF ('FINITE_REAL_INTERVAL' IN types2) OR - ('REAL_INTERVAL_FROM_MIN' IN types2) OR - ('REAL_INTERVAL_TO_MAX' IN types2) THEN - RETURN (compatible_es_values(sp1\elementary_space.space_id, es_reals)); - END_IF; - IF ('CARTESIAN_COMPLEX_NUMBER_REGION' IN types2) OR - ('POLAR_COMPLEX_NUMBER_REGION' IN types2) THEN - RETURN (compatible_es_values(sp1\elementary_space.space_id, es_complex_numbers)); - END_IF; - IF 'TUPLE_SPACE' IN types2 THEN - RETURN (FALSE); - END_IF; - IF 'FUNCTION_SPACE' IN types2 THEN - RETURN (bool(sp1\elementary_space.space_id = es_maths_functions)); - END_IF; - -- Should be unreachable. - RETURN (TRUE); - END_IF; - IF 'ELEMENTARY_SPACE' IN types2 THEN - IF sp2\elementary_space.space_id = es_generics THEN - RETURN (TRUE); - END_IF; - IF ('FINITE_INTEGER_INTERVAL' IN types1) OR - ('INTEGER_INTERVAL_FROM_MIN' IN types1) OR - ('INTEGER_INTERVAL_TO_MAX' IN types1) THEN - RETURN (compatible_es_values(sp2\elementary_space.space_id, es_integers)); - END_IF; - IF ('FINITE_REAL_INTERVAL' IN types1) OR - ('REAL_INTERVAL_FROM_MIN' IN types1) OR - ('REAL_INTERVAL_TO_MAX' IN types1) THEN - RETURN (compatible_es_values(sp2\elementary_space.space_id, es_reals)); - END_IF; - IF ('CARTESIAN_COMPLEX_NUMBER_REGION' IN types1) OR - ('POLAR_COMPLEX_NUMBER_REGION' IN types1) THEN - RETURN (compatible_es_values(sp2\elementary_space.space_id, es_complex_numbers)); - END_IF; - IF 'TUPLE_SPACE' IN types1 THEN - RETURN (FALSE); - END_IF; - IF 'FUNCTION_SPACE' IN types1 THEN - RETURN (bool(sp2\elementary_space.space_id = es_maths_functions)); - END_IF; - -- Should be unreachable. - RETURN (TRUE); - END_IF; - IF subspace_of_es(sp1,es_integers) THEN -- Note that sp1 finite already handled. - IF subspace_of_es(sp2,es_integers) THEN -- Note that sp2 finite already handled. - RETURN (compatible_intervals(sp1,sp2)); - END_IF; - RETURN (FALSE); - END_IF; - IF subspace_of_es(sp2,es_integers) THEN - RETURN (FALSE); - END_IF; - IF subspace_of_es(sp1,es_reals) THEN -- Note that sp1 finite already handled. - IF subspace_of_es(sp2,es_reals) THEN -- Note that sp2 finite already handled. - RETURN (compatible_intervals(sp1,sp2)); - END_IF; - RETURN (FALSE); - END_IF; - IF subspace_of_es(sp2,es_reals) THEN - RETURN (FALSE); - END_IF; - IF subspace_of_es(sp1,es_complex_numbers) THEN -- Note sp1 finite already handled. - IF subspace_of_es(sp2,es_complex_numbers) THEN -- Note sp2 finite already handled. - RETURN (compatible_complex_number_regions(sp1,sp2)); - END_IF; - RETURN (FALSE); - END_IF; - IF subspace_of_es(sp2,es_complex_numbers) THEN - RETURN (FALSE); - END_IF; - IF 'UNIFORM_PRODUCT_SPACE' IN types1 THEN - IF 'UNIFORM_PRODUCT_SPACE' IN types2 THEN - IF sp1\uniform_product_space.exponent <> sp2\uniform_product_space.exponent THEN - RETURN (FALSE); - END_IF; - RETURN (compatible_spaces(sp1\uniform_product_space.base, - sp2\uniform_product_space.base)); - END_IF; - IF 'LISTED_PRODUCT_SPACE' IN types2 THEN - n := SIZEOF (sp2\listed_product_space.factors); - IF sp1\uniform_product_space.exponent <> n THEN - RETURN (FALSE); - END_IF; - REPEAT i := 1 TO n; - IF NOT compatible_spaces(sp1\uniform_product_space.base, - sp2\listed_product_space.factors[i]) THEN - RETURN (FALSE); - END_IF; - END_REPEAT; - RETURN (TRUE); - END_IF; - IF 'EXTENDED_TUPLE_SPACE' IN types2 THEN - m := sp1\uniform_product_space.exponent; - n := space_dimension(sp2\extended_tuple_space.base); - IF m < n THEN - RETURN (FALSE); - END_IF; - IF m = n THEN - RETURN (compatible_spaces(sp1, sp2\extended_tuple_space.base)); - END_IF; - RETURN (compatible_spaces(sp1, assoc_product_space( - sp2\extended_tuple_space.base, make_uniform_product_space( - sp2\extended_tuple_space.extender, m - n)))); - END_IF; - IF 'FUNCTION_SPACE' IN types2 THEN - RETURN (FALSE); - END_IF; - -- Should be unreachable. - RETURN (TRUE); - END_IF; - IF 'LISTED_PRODUCT_SPACE' IN types1 THEN - n := SIZEOF (sp1\listed_product_space.factors); - IF 'UNIFORM_PRODUCT_SPACE' IN types2 THEN - IF n <> sp2\uniform_product_space.exponent THEN - RETURN (FALSE); - END_IF; - REPEAT i := 1 TO n; - IF NOT compatible_spaces(sp2\uniform_product_space.base, - sp1\listed_product_space.factors[i]) THEN - RETURN (FALSE); - END_IF; - END_REPEAT; - RETURN (TRUE); - END_IF; - IF 'LISTED_PRODUCT_SPACE' IN types2 THEN - IF n <> SIZEOF (sp2\listed_product_space.factors) THEN - RETURN (FALSE); - END_IF; - REPEAT i := 1 TO n; - IF NOT compatible_spaces(sp1\listed_product_space.factors[i], - sp2\listed_product_space.factors[i]) THEN - RETURN (FALSE); - END_IF; - END_REPEAT; - RETURN (TRUE); - END_IF; - IF 'EXTENDED_TUPLE_SPACE' IN types2 THEN - m := space_dimension(sp2\extended_tuple_space.base); - IF n < m THEN - RETURN (FALSE); - END_IF; - IF n = m THEN - RETURN (compatible_spaces(sp1, sp2\extended_tuple_space.base)); - END_IF; - RETURN (compatible_spaces(sp1, assoc_product_space( - sp2\extended_tuple_space.base, make_uniform_product_space( - sp2\extended_tuple_space.extender, n - m)))); - END_IF; - IF (schema_prefix + 'FUNCTION_SPACE') IN types2 THEN - RETURN (FALSE); - END_IF; - -- Should be unreachable. - RETURN (TRUE); - END_IF; - IF 'EXTENDED_TUPLE_SPACE' IN types1 THEN - IF ('UNIFORM_PRODUCT_SPACE' IN types2) OR - ('LISTED_PRODUCT_SPACE' IN types2) THEN - RETURN (compatible_spaces(sp2, sp1)); - END_IF; - IF 'EXTENDED_TUPLE_SPACE' IN types2 THEN - IF NOT compatible_spaces(sp1\extended_tuple_space.extender, - sp2\extended_tuple_space.extender) THEN - RETURN (FALSE); - END_IF; - n := space_dimension(sp1\extended_tuple_space.base); - m := space_dimension(sp2\extended_tuple_space.base); - IF n < m THEN - RETURN (compatible_spaces(assoc_product_space(sp1\extended_tuple_space.base, - make_uniform_product_space(sp1\extended_tuple_space.extender, m - n)), - sp2\extended_tuple_space.base)); - END_IF; - IF n = m THEN - RETURN (compatible_spaces(sp1\extended_tuple_space.base, - sp2\extended_tuple_space.base)); - END_IF; - IF n > m THEN - RETURN (compatible_spaces(sp1\extended_tuple_space.base, - assoc_product_space(sp2\extended_tuple_space.base, - make_uniform_product_space(sp2\extended_tuple_space.extender, n - m)))); - END_IF; - END_IF; - IF 'FUNCTION_SPACE' IN types2 THEN - RETURN (FALSE); - END_IF; - -- Should be unreachable. - RETURN (TRUE); - END_IF; - IF 'FUNCTION_SPACE' IN types1 THEN - IF 'FUNCTION_SPACE' IN types2 THEN - s1 := sp1\function_space.domain_argument; - s2 := sp2\function_space.domain_argument; - CASE sp1\function_space.domain_constraint OF - sc_equal : BEGIN - CASE sp2\function_space.domain_constraint OF - sc_equal : lgcl := subspace_of(s1, s2) AND subspace_of(s2, s1); - sc_subspace : lgcl := subspace_of(s1, s2); - sc_member : lgcl := member_of(s1, s2); - END_CASE; - END; - sc_subspace :BEGIN - CASE sp2\function_space.domain_constraint OF - sc_equal : lgcl := subspace_of(s2, s1); - sc_subspace : lgcl := compatible_spaces(s1, s2); - sc_member : lgcl := UNKNOWN; - END_CASE; - END; - sc_member :BEGIN - CASE sp2\function_space.domain_constraint OF - sc_equal : lgcl := member_of(s2, s1); - sc_subspace : lgcl := UNKNOWN; - sc_member : lgcl := compatible_spaces(s1, s2); - END_CASE; - END; - END_CASE; - IF lgcl = FALSE THEN - RETURN (FALSE); - END_IF; - s1 := sp1\function_space.range_argument; - s2 := sp2\function_space.range_argument; - CASE sp1\function_space.range_constraint OF - sc_equal : BEGIN - CASE sp2\function_space.range_constraint OF - sc_equal : lgcl := subspace_of(s1, s2) AND subspace_of(s2, s1); - sc_subspace : lgcl := subspace_of(s1, s2); - sc_member : lgcl := member_of(s1, s2); - END_CASE; - END; - sc_subspace :BEGIN - CASE sp2\function_space.range_constraint OF - sc_equal : lgcl := subspace_of(s2, s1); - sc_subspace : lgcl := compatible_spaces(s1, s2); - sc_member : lgcl := UNKNOWN; - END_CASE; - END; - sc_member :BEGIN - CASE sp2\function_space.range_constraint OF - sc_equal : lgcl := member_of(s2, s1); - sc_subspace : lgcl := UNKNOWN; - sc_member : lgcl := compatible_spaces(s1, s2); - END_CASE; - END; - END_CASE; - IF lgcl = FALSE THEN - RETURN (FALSE); - END_IF; - RETURN (TRUE); - END_IF; - -- Should be unreachable. - RETURN (TRUE); - END_IF; - -- Should be unreachable. - RETURN (TRUE); -END_FUNCTION; -- compatible_spaces - -(* Implicit interfaced from: mathematical_functions_schema *) -FUNCTION compatible_es_values(esval1, esval2 : elementary_space_enumerators) : BOOLEAN; - LOCAL - esval1_is_numeric, esval2_is_numeric : LOGICAL; - END_LOCAL; - IF (esval1 = esval2) OR (esval1 = es_generics) OR (esval2 = es_generics) THEN - RETURN (TRUE); - END_IF; - esval1_is_numeric := (esval1 >= es_numbers) AND (esval1 <= es_integers); - esval2_is_numeric := (esval2 >= es_numbers) AND (esval2 <= es_integers); - IF (esval1_is_numeric AND (esval2 = es_numbers)) OR - (esval2_is_numeric AND (esval1 = es_numbers)) THEN - RETURN (TRUE); - END_IF; - IF esval1_is_numeric XOR esval2_is_numeric THEN - RETURN (FALSE); - END_IF; - IF ((esval1 = es_logicals) AND (esval2 = es_booleans)) OR - ((esval1 = es_booleans) AND (esval2 = es_logicals)) THEN - RETURN (TRUE); - END_IF; - -- All other cases are incompatible - RETURN (FALSE); -END_FUNCTION; -- compatible_es_values - -(* Implicit interfaced from: mathematical_functions_schema *) -FUNCTION compatible_intervals(sp1, sp2 : maths_space) : BOOLEAN; - LOCAL - amin, amax : REAL; - END_LOCAL; - IF min_exists(sp1) AND max_exists(sp2) THEN - amin := real_min(sp1); amax := real_max(sp2); - IF amin > amax THEN RETURN (FALSE); END_IF; - IF amin = amax THEN - RETURN (min_included(sp1) AND max_included(sp2)); - END_IF; - END_IF; - IF min_exists(sp2) AND max_exists(sp1) THEN - amin := real_min(sp2); amax := real_max(sp1); - IF amin > amax THEN RETURN (FALSE); END_IF; - IF amin = amax THEN - RETURN (min_included(sp2) AND max_included(sp1)); - END_IF; - END_IF; - RETURN (TRUE); -END_FUNCTION; -- compatible_intervals - -(* Implicit interfaced from: mathematical_functions_schema *) -FUNCTION compatible_complex_number_regions(sp1, sp2 : maths_space) : BOOLEAN; - LOCAL - typenames : SET OF string := stripped_typeof (sp1); - crgn1, crgn2 : cartesian_complex_number_region; - prgn1, prgn2, prgn1c2, prgn2c1 : polar_complex_number_region; - sp1_is_crgn, sp2_is_crgn : BOOLEAN; - END_LOCAL; - IF 'CARTESIAN_COMPLEX_NUMBER_REGION' IN typenames THEN - sp1_is_crgn := TRUE; - crgn1 := sp1; - ELSE - IF 'POLAR_COMPLEX_NUMBER_REGION' IN typenames THEN - sp1_is_crgn := FALSE; - prgn1 := sp1; - ELSE - -- Improper usage: Default response is to assume compatibility. - RETURN (TRUE); - END_IF; - END_IF; - typenames := stripped_typeof (sp2); - IF 'CARTESIAN_COMPLEX_NUMBER_REGION' IN typenames THEN - sp2_is_crgn := TRUE; - crgn2 := sp2; - ELSE - IF 'POLAR_COMPLEX_NUMBER_REGION' IN typenames THEN - sp2_is_crgn := FALSE; - prgn2 := sp2; - ELSE - -- Improper usage: Default response is to assume compatibility. - RETURN (TRUE); - END_IF; - END_IF; - IF sp1_is_crgn AND sp2_is_crgn THEN - -- two cartesian regions - RETURN (compatible_intervals(crgn1.real_constraint, crgn2.real_constraint) - AND compatible_intervals(crgn1.imag_constraint, crgn2.imag_constraint)); - END_IF; - IF NOT sp1_is_crgn AND NOT sp2_is_crgn AND - (prgn1.centre.real_part = prgn2.centre.real_part) AND - (prgn1.centre.imag_part = prgn2.centre.imag_part) THEN - -- two polar regions with common centre - IF NOT compatible_intervals(prgn1.distance_constraint, - prgn2.distance_constraint) THEN - RETURN (FALSE); - END_IF; - IF compatible_intervals(prgn1.direction_constraint, - prgn2.direction_constraint) THEN - RETURN (TRUE); - END_IF; - -- Deal with direction ambiguity by 2 pi. - IF (prgn1.direction_constraint.max > PI) AND (prgn2.direction_constraint.max < PI) - THEN - RETURN (compatible_intervals(prgn2.direction_constraint, - make_finite_real_interval(-PI,open,prgn1.direction_constraint.max-2.0*PI, - prgn1.direction_constraint.max_closure))); - END_IF; - IF (prgn2.direction_constraint.max > PI) AND (prgn1.direction_constraint.max < PI) - THEN - RETURN (compatible_intervals(prgn1.direction_constraint, - make_finite_real_interval(-PI,open,prgn2.direction_constraint.max-2.0*PI, - prgn2.direction_constraint.max_closure))); - END_IF; - RETURN (FALSE); - END_IF; - -- Make do with imperfect tests for remaining cases. - IF sp1_is_crgn AND NOT sp2_is_crgn THEN - crgn2 := enclose_pregion_in_cregion(prgn2); - prgn1 := enclose_cregion_in_pregion(crgn1,prgn2.centre); - RETURN (compatible_complex_number_regions(crgn1,crgn2) - AND compatible_complex_number_regions(prgn1,prgn2)); - END_IF; - IF NOT sp1_is_crgn AND sp2_is_crgn THEN - crgn1 := enclose_pregion_in_cregion(prgn1); - prgn2 := enclose_cregion_in_pregion(crgn2,prgn1.centre); - RETURN (compatible_complex_number_regions(crgn1,crgn2) - AND compatible_complex_number_regions(prgn1,prgn2)); - END_IF; - -- Two polar regions with different centres - prgn1c2 := enclose_pregion_in_pregion(prgn1,prgn2.centre); - prgn2c1 := enclose_pregion_in_pregion(prgn2,prgn1.centre); - RETURN (compatible_complex_number_regions(prgn1,prgn2c1) - AND compatible_complex_number_regions(prgn1c2,prgn2)); -END_FUNCTION; -- compatible_complex_number_regions - -(* Implicit interfaced from: mathematical_functions_schema *) -FUNCTION assoc_product_space(ts1, ts2 : tuple_space) : tuple_space; - LOCAL - types1 : SET OF STRING := stripped_typeof (ts1); - types2 : SET OF STRING := stripped_typeof (ts2); - up1, up2 : uniform_product_space := make_uniform_product_space(the_reals,1); - lp1, lp2, lps : listed_product_space := the_zero_tuple_space; - et1, et2, ets : extended_tuple_space := the_tuples; - use_up1, use_up2, use_lp1, use_lp2 : BOOLEAN; - factors : LIST OF maths_space := []; - tspace : tuple_space; - END_LOCAL; - -- Identify type of first operand - IF 'UNIFORM_PRODUCT_SPACE' IN types1 THEN - up1 := ts1; use_up1 := true; use_lp1 := false; - ELSE - IF 'LISTED_PRODUCT_SPACE' IN types1 THEN - lp1 := ts1; use_up1 := false; use_lp1 := true; - ELSE - IF NOT ('EXTENDED_TUPLE_SPACE' IN types1) THEN - -- Unreachable when this function was written. - RETURN (?); - END_IF; - et1 := ts1; use_up1 := false; use_lp1 := false; - END_IF; - END_IF; - -- Identify type of second operand - IF 'UNIFORM_PRODUCT_SPACE' IN types2 THEN - up2 := ts2; use_up2 := true; use_lp2 := false; - ELSE - IF 'LISTED_PRODUCT_SPACE' IN types2 THEN - lp2 := ts2; use_up2 := false; use_lp2 := true; - ELSE - IF NOT ('EXTENDED_TUPLE_SPACE' IN types2) THEN - -- Unreachable when this function was written. - RETURN (?); - END_IF; - et2 := ts2; use_up2 := false; use_lp2 := false; - END_IF; - END_IF; - -- Construction for each combination of cases - IF use_up1 THEN - IF use_up2 THEN - IF up1.base = up2.base THEN - tspace := make_uniform_product_space(up1.base, up1.exponent + up2.exponent); - ELSE - factors := [up1.base : up1.exponent, up2.base : up2.exponent]; - tspace := make_listed_product_space(factors); - END_IF; - ELSE - IF use_lp2 THEN - -- Avoid compiler confusion by breaking into two lines. - factors := [up1.base : up1.exponent]; - factors := factors + lp2.factors; - tspace := make_listed_product_space(factors); - ELSE - tspace := assoc_product_space(up1, et2.base); - tspace := make_extended_tuple_space(tspace, et2.extender); - END_IF; - END_IF; - ELSE - IF use_lp1 THEN - IF use_up2 THEN - -- Avoid compiler confusion by breaking into two lines. - factors := [up2.base : up2.exponent]; - factors := lp1.factors + factors; - tspace := make_listed_product_space(factors); - ELSE - IF use_lp2 THEN - tspace := make_listed_product_space(lp1.factors + lp2.factors); - ELSE - tspace := assoc_product_space(lp1, et2.base); - tspace := make_extended_tuple_space(tspace, et2.extender); - END_IF; - END_IF; - ELSE - IF use_up2 THEN - IF et1.extender = up2.base THEN - tspace := assoc_product_space(et1.base, up2); - tspace := make_extended_tuple_space(tspace, et1.extender); - ELSE - -- No subtype is available to represent this cartesian product. - RETURN (?); - END_IF; - ELSE - IF use_lp2 THEN - factors := lp2.factors; - REPEAT i := 1 TO SIZEOF (factors); - IF et1.extender <> factors[i] THEN - -- No subtype available to represent this cartesian product. - RETURN (?); - END_IF; - END_REPEAT; - tspace := assoc_product_space(et1.base, lp2); - tspace := make_extended_tuple_space(tspace, et1.extender); - ELSE - IF et1.extender = et2.extender THEN - -- Next line may assign indeterminate (?) to tspace. - tspace := assoc_product_space(et1, et2.base); - ELSE - -- No subtype available to represent this cartesian product. - RETURN (?); - END_IF; - END_IF; - END_IF; - END_IF; - END_IF; - RETURN (tspace); -END_FUNCTION; -- assoc_product_space - -(* Implicit interfaced from: mathematical_functions_schema *) -FUNCTION equal_maths_functions(fun1, fun2 : maths_function) : LOGICAL; - LOCAL - cum : LOGICAL; - END_LOCAL; - IF fun1 = fun2 THEN RETURN (TRUE); END_IF; - cum := equal_maths_spaces(fun1.domain,fun2.domain); - IF cum = FALSE THEN RETURN (FALSE); END_IF; - cum := cum AND equal_maths_spaces(fun1.range,fun2.range); - IF cum = FALSE THEN RETURN (FALSE); END_IF; - -- A lot of further analysis is possible, but not required. - RETURN (UNKNOWN); -END_FUNCTION; -- equal_maths_functions - -(* Implicit interfaced from: mathematical_functions_schema *) -FUNCTION substitute(expr : generic_expression; - vars : LIST [1:?] OF generic_variable; - vals : LIST [1:?] OF maths_value) : generic_expression; - LOCAL - types : SET OF STRING := stripped_typeof(expr); - opnds : LIST OF generic_expression; - op1, op2 : generic_expression; - qvars : LIST OF generic_variable; - srcdom : maths_space_or_function; - prpfun : LIST [1:?] OF maths_function; - finfun : maths_function_select; - END_LOCAL; - IF SIZEOF (vars) <> SIZEOF (vals) THEN RETURN (?); END_IF; - IF 'GENERIC_LITERAL' IN types THEN RETURN (expr); END_IF; - IF 'GENERIC_VARIABLE' IN types THEN - REPEAT i := 1 TO SIZEOF (vars); - IF expr :=: vars[i] THEN RETURN (vals[i]); END_IF; - END_REPEAT; - RETURN (expr); - END_IF; - IF 'QUANTIFIER_EXPRESSION' IN types THEN - qvars := expr\quantifier_expression.variables; - -- Variables subject to a quantifier do not participate in this kind of - -- substitution process. - REPEAT i := SIZEOF (vars) TO 1 BY -1; - IF vars[i] IN qvars THEN - REMOVE (vars, i); - REMOVE (vals, i); - END_IF; - END_REPEAT; - opnds := expr\multiple_arity_generic_expression.operands; - REPEAT i := 1 TO SIZEOF (opnds); - IF NOT (opnds[i] IN qvars) THEN - expr\multiple_arity_generic_expression.operands[i] := - substitute(opnds[i],vars,vals); - -- This technique will not work on subtypes of quantifier_expression - -- which derive their operands from other attributes! - END_IF; - END_REPEAT; - RETURN (expr); -- operands modified! - END_IF; - IF 'UNARY_GENERIC_EXPRESSION' IN types THEN - op1 := expr\unary_generic_expression.operand; - expr\unary_generic_expression.operand := substitute(op1, vars, vals); - -- This technique will not work on subtypes of unary_generic_expression - -- which derive their operands from other attributes! - END_IF; - IF 'BINARY_GENERIC_EXPRESSION' IN types THEN - op1 := expr\binary_generic_expression.operands[1]; - expr\binary_generic_expression.operands[1] := substitute(op1, vars, vals); - op2 := expr\binary_generic_expression.operands[2]; - expr\binary_generic_expression.operands[2] := substitute(op2, vars, vals); - -- This technique will not work on subtypes of binary_generic_expression - -- which derive their operands from other attributes! - END_IF; - IF 'PARALLEL_COMPOSED_FUNCTION' IN types THEN - -- Subtype of multiple_arity_generic_expression which derives its operands. - srcdom := expr\parallel_composed_function.source_of_domain; - prpfun := expr\parallel_composed_function.prep_functions; - finfun := expr\parallel_composed_function.final_function; - srcdom := substitute(srcdom,vars,vals); - REPEAT i := 1 TO SIZEOF (prpfun); - prpfun[i] := substitute(prpfun[i],vars,vals); - END_REPEAT; - IF 'MATHS_FUNCTION' IN stripped_typeof(finfun) THEN - finfun := substitute(finfun,vars,vals); - END_IF; - RETURN (make_parallel_composed_function(srcdom,prpfun,finfun)); - END_IF; - IF 'MULTIPLE_ARITY_GENERIC_EXPRESSION' IN types THEN - opnds := expr\multiple_arity_generic_expression.operands; - REPEAT i := 1 TO SIZEOF (opnds); - expr\multiple_arity_generic_expression.operands[i] := - substitute(opnds[i],vars,vals); - -- This technique will not work on subtypes of multiple_arity_generic_ - -- expression which derive their operands from other attributes! - END_REPEAT; - END_IF; - RETURN (expr); -END_FUNCTION; -- substitute - -(* Implicit interfaced from: mathematical_functions_schema *) -FUNCTION make_parallel_composed_function(srcdom : maths_space_or_function; - prepfuncs : LIST [2:?] OF maths_function; - finfunc : maths_function_select) - : parallel_composed_function; - RETURN (parallel_composed_function (srcdom, prepfuncs, finfunc) - || maths_function() - || generic_expression() - || multiple_arity_generic_expression (convert_to_operands_prcmfn ( - srcdom, prepfuncs, finfunc)) ); -- derived -END_FUNCTION; -- make_parallel_composed_function - -(* Implicit interfaced from: mathematical_functions_schema *) -FUNCTION convert_to_operands_prcmfn(srcdom : maths_space_or_function; - prepfun : LIST OF maths_function; - finfun : maths_function_select) - : LIST [2:?] OF generic_expression; - LOCAL - operands : LIST OF generic_expression := []; - END_LOCAL; - INSERT (operands, srcdom, 0); - REPEAT i := 1 TO SIZEOF (prepfun); - INSERT (operands, prepfun[i], i); - END_REPEAT; - INSERT (operands, convert_to_maths_function (finfun), SIZEOF (prepfun)+1); - RETURN (operands); -END_FUNCTION; -- convert_to_operands_prcmfn - -(* Implicit interfaced from: mathematical_functions_schema *) -FUNCTION function_applicability(func : maths_function_select; - arguments : LIST [1:?] OF maths_value) : BOOLEAN; - LOCAL - domain : tuple_space := convert_to_maths_function(func).domain; - domain_types : SET OF STRING := TYPEOF (domain); - narg : positive_integer := SIZEOF (arguments); - arg : generic_expression; - END_LOCAL; - IF (schema_prefix + 'PRODUCT_SPACE') IN domain_types THEN - IF space_dimension (domain) <> narg THEN RETURN (FALSE); END_IF; - ELSE - IF (schema_prefix + 'EXTENDED_TUPLE_SPACE') IN domain_types THEN - IF space_dimension (domain) > narg THEN RETURN (FALSE); END_IF; - ELSE - RETURN (FALSE); -- Should be unreachable - END_IF; - END_IF; - REPEAT i := 1 TO narg; - arg := convert_to_operand (arguments[i]); - IF NOT has_values_space (arg) THEN RETURN (FALSE); END_IF; - IF NOT compatible_spaces (factor_space (domain, i), values_space_of (arg)) THEN - RETURN (FALSE); - END_IF; - END_REPEAT; - RETURN (TRUE); -END_FUNCTION; -- function_applicability - -(* Implicit interfaced from: mathematical_functions_schema *) -FUNCTION no_cyclic_space_reference(spc : maths_space; - refs : SET OF maths_space) : BOOLEAN; - LOCAL - types : SET OF STRING; - refs_plus : SET OF maths_space; - END_LOCAL; - IF (spc IN refs) THEN - RETURN (FALSE); - END_IF; - types := TYPEOF (spc); - refs_plus := refs + spc; - IF (schema_prefix + 'FINITE_SPACE') IN types THEN - RETURN (bool(SIZEOF (QUERY (sp <* QUERY (mem <* spc\finite_space.members | - (schema_prefix + 'MATHS_SPACE') IN TYPEOF (mem)) | - NOT no_cyclic_space_reference (sp, refs_plus))) = 0)); - END_IF; - IF (schema_prefix + 'UNIFORM_PRODUCT_SPACE') IN types THEN - RETURN (no_cyclic_space_reference (spc\uniform_product_space.base, refs_plus)); - END_IF; - IF (schema_prefix + 'LISTED_PRODUCT_SPACE') IN types THEN - RETURN (bool(SIZEOF (QUERY (fac <* spc\listed_product_space.factors | - NOT no_cyclic_space_reference (fac, refs_plus))) = 0)); - END_IF; - IF (schema_prefix + 'EXTENDED_TUPLE_SPACE') IN types THEN - RETURN (no_cyclic_space_reference (spc\extended_tuple_space.base, refs_plus) - AND no_cyclic_space_reference (spc\extended_tuple_space.extender, refs_plus)); - END_IF; - -- spc contains no references to other spaces - RETURN (TRUE); -END_FUNCTION; -- no_cyclic_space_reference - -(* Implicit interfaced from: mathematical_functions_schema *) -FUNCTION derive_function_domain(func : maths_function) : tuple_space; - LOCAL - typenames : SET OF STRING := stripped_typeof(func); - tspace : tuple_space := make_listed_product_space ([]); - shape : LIST OF positive_integer; - sidxs : LIST OF INTEGER := [0]; - itvl : finite_integer_interval; - factors : LIST OF finite_integer_interval := []; - is_uniform : BOOLEAN := TRUE; - END_LOCAL; - IF 'FINITE_FUNCTION' IN typenames THEN - RETURN (derive_finite_function_domain (func\finite_function.pairs)); - END_IF; - IF 'CONSTANT_FUNCTION' IN typenames THEN - RETURN (domain_from (func\constant_function.source_of_domain)); - END_IF; - IF 'SELECTOR_FUNCTION' IN typenames THEN - RETURN (domain_from (func\selector_function.source_of_domain)); - END_IF; - IF 'ELEMENTARY_FUNCTION' IN typenames THEN - RETURN (derive_elementary_function_domain (func\elementary_function.func_id)); - END_IF; - IF 'RESTRICTION_FUNCTION' IN typenames THEN - RETURN (one_tuples_of (func\restriction_function.operand)); - END_IF; - IF 'REPACKAGING_FUNCTION' IN typenames THEN - IF func\repackaging_function.input_repack = ro_nochange THEN - RETURN (func\repackaging_function.operand.domain); - END_IF; - IF func\repackaging_function.input_repack = ro_wrap_as_tuple THEN - RETURN (factor1 (func\repackaging_function.operand.domain)); - END_IF; - IF func\repackaging_function.input_repack = ro_unwrap_tuple THEN - RETURN (one_tuples_of (func\repackaging_function.operand.domain)); - END_IF; - -- Unreachable, as there is no other possible value for input_repack. - RETURN (?); - END_IF; - IF 'REINDEXED_ARRAY_FUNCTION' IN typenames THEN - shape := shape_of_array(func\unary_generic_expression.operand); - sidxs := func\reindexed_array_function.starting_indices; - REPEAT i := 1 TO SIZEOF (shape); - itvl := make_finite_integer_interval (sidxs[i], sidxs[i]+shape[i]-1); - INSERT (factors, itvl, i-1); - IF shape[i] <> shape[1] THEN is_uniform := FALSE; END_IF; - END_REPEAT; - IF is_uniform THEN - RETURN (make_uniform_product_space (factors[1], SIZEOF (shape))); - END_IF; - RETURN (make_listed_product_space (factors)); - END_IF; - IF 'SERIES_COMPOSED_FUNCTION' IN typenames THEN - RETURN (func\series_composed_function.operands[1].domain); - END_IF; - IF 'PARALLEL_COMPOSED_FUNCTION' IN typenames THEN - RETURN (domain_from (func\parallel_composed_function.source_of_domain)); - END_IF; - IF 'EXPLICIT_TABLE_FUNCTION' IN typenames THEN - shape := func\explicit_table_function.shape; - sidxs[1] := func\explicit_table_function.index_base; - REPEAT i := 1 TO SIZEOF (shape); - itvl := make_finite_integer_interval (sidxs[1], sidxs[1]+shape[i]-1); - INSERT (factors, itvl, i-1); - IF shape[i] <> shape[1] THEN is_uniform := FALSE; END_IF; - END_REPEAT; - IF is_uniform THEN - RETURN (make_uniform_product_space (factors[1], SIZEOF (shape))); - END_IF; - RETURN (make_listed_product_space (factors)); - END_IF; - IF 'HOMOGENEOUS_LINEAR_FUNCTION' IN typenames THEN - RETURN (one_tuples_of (make_uniform_product_space - (factor1 (func\homogeneous_linear_function.mat.range), - func\homogeneous_linear_function.mat\explicit_table_function.shape - [func\homogeneous_linear_function.sum_index]))); - END_IF; - IF 'GENERAL_LINEAR_FUNCTION' IN typenames THEN - RETURN (one_tuples_of (make_uniform_product_space - (factor1 (func\general_linear_function.mat.range), - func\general_linear_function.mat\explicit_table_function.shape - [func\general_linear_function.sum_index] - 1))); - END_IF; - IF 'B_SPLINE_BASIS' IN typenames THEN - RETURN (one_tuples_of (make_finite_real_interval - (func\b_spline_basis.repeated_knots[func\b_spline_basis.order], closed, - func\b_spline_basis.repeated_knots[func\b_spline_basis.num_basis+1], closed))); - END_IF; - IF 'B_SPLINE_FUNCTION' IN typenames THEN - REPEAT i := 1 TO SIZEOF (func\b_spline_function.basis); - tspace := assoc_product_space (tspace, func\b_spline_function.basis[i].domain); - END_REPEAT; - RETURN (one_tuples_of (tspace)); - END_IF; - IF 'RATIONALIZE_FUNCTION' IN typenames THEN - RETURN (func\rationalize_function.fun.domain); - END_IF; - IF 'PARTIAL_DERIVATIVE_FUNCTION' IN typenames THEN - RETURN (func\partial_derivative_function.derivand.domain); - END_IF; - IF 'DEFINITE_INTEGRAL_FUNCTION' IN typenames THEN - RETURN (derive_definite_integral_domain(func)); - END_IF; - IF 'ABSTRACTED_EXPRESSION_FUNCTION' IN typenames THEN - REPEAT i := 1 TO SIZEOF (func\abstracted_expression_function.variables); - tspace := assoc_product_space (tspace, one_tuples_of (values_space_of - (func\abstracted_expression_function.variables[i]))); - END_REPEAT; - RETURN (tspace); - END_IF; - IF 'EXPRESSION_DENOTED_FUNCTION' IN typenames THEN - RETURN (values_space_of (func\expression_denoted_function.expr)\function_space. - domain_argument); - END_IF; - IF 'IMPORTED_POINT_FUNCTION' IN typenames THEN - RETURN (one_tuples_of (make_listed_product_space ([]))); - END_IF; - IF 'IMPORTED_CURVE_FUNCTION' IN typenames THEN - RETURN (func\imported_curve_function.parametric_domain); - END_IF; - IF 'IMPORTED_SURFACE_FUNCTION' IN typenames THEN - RETURN (func\imported_surface_function.parametric_domain); - END_IF; - IF 'IMPORTED_VOLUME_FUNCTION' IN typenames THEN - RETURN (func\imported_volume_function.parametric_domain); - END_IF; - IF 'APPLICATION_DEFINED_FUNCTION' IN typenames THEN - RETURN (func\application_defined_function.explicit_domain); - END_IF; - -- Unreachable, as no other subtypes of maths_function are permissible without - -- first modifying this function to account for them. - RETURN (?); -END_FUNCTION; -- derive_function_domain - -(* Implicit interfaced from: mathematical_functions_schema *) -FUNCTION derive_finite_function_domain(pairs : SET [1:?] OF LIST [2:2] OF maths_value) - : tuple_space; - LOCAL - result : SET OF maths_value := []; - END_LOCAL; --- An ambiguity in ISO 10303-11:1994 pages 99-101 leaves the result of the following --- three lines ambiguous in those cases where an operand is simultaneously a member --- of the base type and the aggregate type. --- REPEAT i := 1 TO SIZEOF (pairs); --- result := result + pairs[i][1]; --- END_REPEAT; --- The next line unions an empty set and the desired list to get the desired set. - result := result + list_selected_components (pairs, 1); - RETURN (one_tuples_of (make_finite_space (result))); -END_FUNCTION; -- derive_finite_function_domain - -(* Implicit interfaced from: mathematical_functions_schema *) -FUNCTION list_selected_components(aggr : AGGREGATE OF LIST OF maths_value; - k : positive_integer) : LIST OF maths_value; - LOCAL - result : LIST OF maths_value := []; - j : INTEGER := 0; - END_LOCAL; - REPEAT i := LOINDEX (aggr) TO HIINDEX (aggr); - IF k <= SIZEOF (aggr[i]) THEN - INSERT (result, aggr[i][k], j); - j := j + 1; - END_IF; - END_REPEAT; - RETURN (result); -END_FUNCTION; -- list_selected_components - -(* Implicit interfaced from: mathematical_functions_schema *) -FUNCTION one_tuples_of(spc : maths_space) : tuple_space; - RETURN (make_uniform_product_space (spc, 1)); -END_FUNCTION; -- one_tuples_of - -(* Implicit interfaced from: mathematical_functions_schema *) -FUNCTION domain_from(ref : maths_space_or_function) : tuple_space; - LOCAL - typenames : SET OF STRING := stripped_typeof(ref); - func : maths_function; - END_LOCAL; - IF NOT EXISTS (ref) THEN RETURN (?); END_IF; - IF 'TUPLE_SPACE' IN typenames THEN RETURN (ref); END_IF; - IF 'MATHS_SPACE' IN typenames THEN RETURN (one_tuples_of (ref)); END_IF; - func := ref; - IF 'CONSTANT_FUNCTION' IN typenames THEN - RETURN (domain_from (func\constant_function.source_of_domain)); - END_IF; - IF 'SELECTOR_FUNCTION' IN typenames THEN - RETURN (domain_from (func\selector_function.source_of_domain)); - END_IF; - IF 'PARALLEL_COMPOSED_FUNCTION' IN typenames THEN - RETURN (domain_from (func\parallel_composed_function.source_of_domain)); - END_IF; - RETURN (func.domain); -END_FUNCTION; -- domain_from - -(* Implicit interfaced from: mathematical_functions_schema *) -FUNCTION derive_elementary_function_domain(ef_val : elementary_function_enumerators) - : tuple_space; - IF NOT EXISTS (ef_val) THEN RETURN (?); END_IF; - CASE ef_val OF - ef_and : RETURN (make_extended_tuple_space (the_zero_tuple_space, the_logicals)); - ef_or : RETURN (make_extended_tuple_space (the_zero_tuple_space, the_logicals)); - ef_not : RETURN (make_uniform_product_space (the_logicals, 1)); - ef_xor : RETURN (make_uniform_product_space (the_logicals, 2)); - ef_negate_i : RETURN (make_uniform_product_space (the_integers, 1)); - ef_add_i : RETURN (the_integer_tuples); - ef_subtract_i : RETURN (make_uniform_product_space (the_integers, 2)); - ef_multiply_i : RETURN (the_integer_tuples); - ef_divide_i : RETURN (make_uniform_product_space (the_integers, 2)); - ef_mod_i : RETURN (make_uniform_product_space (the_integers, 2)); - ef_exponentiate_i : RETURN (make_uniform_product_space (the_integers, 2)); - ef_eq_i : RETURN (make_uniform_product_space (the_integers, 2)); - ef_ne_i : RETURN (make_uniform_product_space (the_integers, 2)); - ef_gt_i : RETURN (make_uniform_product_space (the_integers, 2)); - ef_lt_i : RETURN (make_uniform_product_space (the_integers, 2)); - ef_ge_i : RETURN (make_uniform_product_space (the_integers, 2)); - ef_le_i : RETURN (make_uniform_product_space (the_integers, 2)); - ef_abs_i : RETURN (make_uniform_product_space (the_integers, 1)); - ef_if_i : RETURN (make_listed_product_space ([the_logicals, the_integers, - the_integers])); - ef_negate_r : RETURN (make_uniform_product_space (the_reals, 1)); - ef_reciprocal_r : RETURN (make_uniform_product_space (the_reals, 1)); - ef_add_r : RETURN (the_real_tuples); - ef_subtract_r : RETURN (make_uniform_product_space (the_reals, 2)); - ef_multiply_r : RETURN (the_real_tuples); - ef_divide_r : RETURN (make_uniform_product_space (the_reals, 2)); - ef_mod_r : RETURN (make_uniform_product_space (the_reals, 2)); - ef_exponentiate_r : RETURN (make_listed_product_space ([the_nonnegative_reals, - the_reals])); - ef_exponentiate_ri : RETURN (make_listed_product_space ([the_reals, the_integers])); - ef_eq_r : RETURN (make_uniform_product_space (the_reals, 2)); - ef_ne_r : RETURN (make_uniform_product_space (the_reals, 2)); - ef_gt_r : RETURN (make_uniform_product_space (the_reals, 2)); - ef_lt_r : RETURN (make_uniform_product_space (the_reals, 2)); - ef_ge_r : RETURN (make_uniform_product_space (the_reals, 2)); - ef_le_r : RETURN (make_uniform_product_space (the_reals, 2)); - ef_abs_r : RETURN (make_uniform_product_space (the_reals, 1)); - ef_acos_r : RETURN (make_uniform_product_space (the_neg1_one_interval, 1)); - ef_asin_r : RETURN (make_uniform_product_space (the_neg1_one_interval, 1)); - ef_atan2_r : RETURN (make_uniform_product_space (the_reals, 2)); - ef_cos_r : RETURN (make_uniform_product_space (the_reals, 1)); - ef_exp_r : RETURN (make_uniform_product_space (the_reals, 1)); - ef_ln_r : RETURN (make_uniform_product_space (the_nonnegative_reals, 1)); - ef_log2_r : RETURN (make_uniform_product_space (the_nonnegative_reals, 1)); - ef_log10_r : RETURN (make_uniform_product_space (the_nonnegative_reals, 1)); - ef_sin_r : RETURN (make_uniform_product_space (the_reals, 1)); - ef_sqrt_r : RETURN (make_uniform_product_space (the_nonnegative_reals, 1)); - ef_tan_r : RETURN (make_uniform_product_space (the_reals, 1)); - ef_if_r : RETURN (make_listed_product_space ([the_logicals, the_reals, the_reals])); - ef_negate_c : RETURN (make_uniform_product_space (the_complex_numbers, 1)); - ef_reciprocal_c : RETURN (make_uniform_product_space (the_complex_numbers, 1)); - ef_add_c : RETURN (the_complex_tuples); - ef_subtract_c : RETURN (make_uniform_product_space (the_complex_numbers, 2)); - ef_multiply_c : RETURN (the_complex_tuples); - ef_divide_c : RETURN (make_uniform_product_space (the_complex_numbers, 2)); - ef_exponentiate_c : RETURN (make_uniform_product_space (the_complex_numbers, 2)); - ef_exponentiate_ci : RETURN (make_listed_product_space ([the_complex_numbers, - the_integers])); - ef_eq_c : RETURN (make_uniform_product_space (the_complex_numbers, 2)); - ef_ne_c : RETURN (make_uniform_product_space (the_complex_numbers, 2)); - ef_conjugate_c : RETURN (make_uniform_product_space (the_complex_numbers, 1)); - ef_abs_c : RETURN (make_uniform_product_space (the_complex_numbers, 1)); - ef_arg_c : RETURN (make_uniform_product_space (the_complex_numbers, 1)); - ef_cos_c : RETURN (make_uniform_product_space (the_complex_numbers, 1)); - ef_exp_c : RETURN (make_uniform_product_space (the_complex_numbers, 1)); - ef_ln_c : RETURN (make_uniform_product_space (the_complex_numbers, 1)); - ef_sin_c : RETURN (make_uniform_product_space (the_complex_numbers, 1)); - ef_sqrt_c : RETURN (make_uniform_product_space (the_complex_numbers, 1)); - ef_tan_c : RETURN (make_uniform_product_space (the_complex_numbers, 1)); - ef_if_c : RETURN (make_listed_product_space ([the_logicals, the_complex_numbers, - the_complex_numbers])); - ef_subscript_s : RETURN (make_listed_product_space ([the_strings, the_integers])); - ef_eq_s : RETURN (make_uniform_product_space (the_strings, 2)); - ef_ne_s : RETURN (make_uniform_product_space (the_strings, 2)); - ef_gt_s : RETURN (make_uniform_product_space (the_strings, 2)); - ef_lt_s : RETURN (make_uniform_product_space (the_strings, 2)); - ef_ge_s : RETURN (make_uniform_product_space (the_strings, 2)); - ef_le_s : RETURN (make_uniform_product_space (the_strings, 2)); - ef_subsequence_s : RETURN (make_listed_product_space ([the_strings, the_integers, - the_integers])); - ef_concat_s : RETURN (make_extended_tuple_space (the_zero_tuple_space, the_strings)); - ef_size_s : RETURN (make_uniform_product_space (the_strings, 1)); - ef_format : RETURN (make_listed_product_space ([the_numbers, the_strings])); - ef_value : RETURN (make_uniform_product_space (the_strings, 1)); - ef_like : RETURN (make_uniform_product_space (the_strings, 2)); - ef_if_s : RETURN (make_listed_product_space ([the_logicals, the_strings, - the_strings])); - ef_subscript_b : RETURN (make_listed_product_space ([the_binarys, the_integers])); - ef_eq_b : RETURN (make_uniform_product_space (the_binarys, 2)); - ef_ne_b : RETURN (make_uniform_product_space (the_binarys, 2)); - ef_gt_b : RETURN (make_uniform_product_space (the_binarys, 2)); - ef_lt_b : RETURN (make_uniform_product_space (the_binarys, 2)); - ef_ge_b : RETURN (make_uniform_product_space (the_binarys, 2)); - ef_le_b : RETURN (make_uniform_product_space (the_binarys, 2)); - ef_subsequence_b : RETURN (make_listed_product_space ([the_binarys, the_integers, - the_integers])); - ef_concat_b : RETURN (make_extended_tuple_space (the_zero_tuple_space, the_binarys)); - ef_size_b : RETURN (make_uniform_product_space (the_binarys, 1)); - ef_if_b : RETURN (make_listed_product_space ([the_logicals, the_binarys, - the_binarys])); - ef_subscript_t : RETURN (make_listed_product_space ([the_tuples, the_integers])); - ef_eq_t : RETURN (make_uniform_product_space (the_tuples, 2)); - ef_ne_t : RETURN (make_uniform_product_space (the_tuples, 2)); - ef_concat_t : RETURN (make_extended_tuple_space (the_zero_tuple_space, the_tuples)); - ef_size_t : RETURN (make_uniform_product_space (the_tuples, 1)); - ef_entuple : RETURN (the_tuples); - ef_detuple : RETURN (make_uniform_product_space (the_generics, 1)); - ef_insert : RETURN (make_listed_product_space ([the_tuples, the_generics, - the_integers])); - ef_remove : RETURN (make_listed_product_space ([the_tuples, the_integers])); - ef_if_t : RETURN (make_listed_product_space ([the_logicals, the_tuples, - the_tuples])); - ef_sum_it : RETURN (make_uniform_product_space (the_integer_tuples, 1)); - ef_product_it : RETURN (make_uniform_product_space (the_integer_tuples, 1)); - ef_add_it : RETURN (make_extended_tuple_space (the_integer_tuples, - the_integer_tuples)); - ef_subtract_it : RETURN (make_uniform_product_space (the_integer_tuples, 2)); - ef_scalar_mult_it : RETURN (make_listed_product_space ([the_integers, - the_integer_tuples])); - ef_dot_prod_it : RETURN (make_uniform_product_space (the_integer_tuples, 2)); - ef_sum_rt : RETURN (make_uniform_product_space (the_real_tuples, 1)); - ef_product_rt : RETURN (make_uniform_product_space (the_real_tuples, 1)); - ef_add_rt : RETURN (make_extended_tuple_space (the_real_tuples, the_real_tuples)); - ef_subtract_rt : RETURN (make_uniform_product_space (the_real_tuples, 2)); - ef_scalar_mult_rt : RETURN (make_listed_product_space ([the_reals, - the_real_tuples])); - ef_dot_prod_rt : RETURN (make_uniform_product_space (the_real_tuples, 2)); - ef_norm_rt : RETURN (make_uniform_product_space (the_real_tuples, 1)); - ef_sum_ct : RETURN (make_uniform_product_space (the_complex_tuples, 1)); - ef_product_ct : RETURN (make_uniform_product_space (the_complex_tuples, 1)); - ef_add_ct : RETURN (make_extended_tuple_space (the_complex_tuples, - the_complex_tuples)); - ef_subtract_ct : RETURN (make_uniform_product_space (the_complex_tuples, 2)); - ef_scalar_mult_ct : RETURN (make_listed_product_space ([the_complex_numbers, - the_complex_tuples])); - ef_dot_prod_ct : RETURN (make_uniform_product_space (the_complex_tuples, 2)); - ef_norm_ct : RETURN (make_uniform_product_space (the_complex_tuples, 1)); - ef_if : RETURN (make_listed_product_space ([the_logicals, the_generics, - the_generics])); - ef_ensemble : RETURN (the_tuples); - ef_member_of : RETURN (make_listed_product_space ([the_generics, the_maths_spaces])); - OTHERWISE : RETURN (?); - END_CASE; -END_FUNCTION; -- derive_elementary_function_domain - -(* Implicit interfaced from: mathematical_functions_schema *) -FUNCTION factor1(tspace : tuple_space) : maths_space; - LOCAL - typenames : SET OF STRING := TYPEOF (tspace); - END_LOCAL; - IF (schema_prefix + 'UNIFORM_PRODUCT_SPACE') IN typenames THEN - RETURN (tspace\uniform_product_space.base); - END_IF; - IF (schema_prefix + 'LISTED_PRODUCT_SPACE') IN typenames THEN - RETURN (tspace\listed_product_space.factors[1]); - -- This path could return the indeterminate value if the list is empty. - -- This is the correct result for this case. - END_IF; - IF (schema_prefix + 'EXTENDED_TUPLE_SPACE') IN typenames THEN - RETURN (factor1 (tspace\extended_tuple_space.base)); - END_IF; - -- Should not be reachable. - RETURN (?); -END_FUNCTION; -- factor1 - -(* Implicit interfaced from: mathematical_functions_schema *) -FUNCTION shape_of_array(func : maths_function) : LIST OF positive_integer; - LOCAL - tspace : tuple_space; - temp : maths_space; - result : LIST OF positive_integer := []; - END_LOCAL; - IF (schema_prefix + 'EXPLICIT_TABLE_FUNCTION') IN TYPEOF (func) THEN - RETURN (func\explicit_table_function.shape); - END_IF; - tspace := func.domain; - IF (space_dimension (tspace) = 1) AND ((schema_prefix + 'TUPLE_SPACE') IN - TYPEOF (factor1 (tspace))) THEN - tspace := factor1 (tspace); - END_IF; - REPEAT i := 1 TO space_dimension (tspace); - temp := factor_space (tspace, i); - IF NOT ((schema_prefix + 'FINITE_INTEGER_INTERVAL') IN TYPEOF (temp)) THEN - RETURN (?); - END_IF; - INSERT (result, temp\finite_integer_interval.size, i-1); - END_REPEAT; - RETURN (result); -END_FUNCTION; -- shape_of_array - -(* Implicit interfaced from: mathematical_functions_schema *) -FUNCTION derive_definite_integral_domain(igrl : definite_integral_function) - : tuple_space; - - -- Internal utility function: - FUNCTION process_product_space(spc : product_space; - idx, prefix : INTEGER; - vdomn : maths_space) : product_space; - LOCAL - uspc : uniform_product_space; - expnt : INTEGER; - factors : LIST OF maths_space; - END_LOCAL; - IF (schema_prefix + 'UNIFORM_PRODUCT_SPACE') IN TYPEOF (spc) THEN - uspc := spc; - expnt := uspc.exponent + prefix; - IF idx <= uspc.exponent THEN expnt := expnt - 1; END_IF; - IF expnt = 0 THEN - RETURN (make_listed_product_space([])); - ELSE - RETURN (make_uniform_product_space(uspc.base,expnt)); - END_IF; - ELSE - factors := spc\listed_product_space.factors; - IF idx <= SIZEOF (factors) THEN REMOVE (factors, idx); END_IF; - IF prefix > 0 THEN - INSERT (factors, vdomn, 0); - IF prefix > 1 THEN INSERT (factors, vdomn, 0); END_IF; - END_IF; - RETURN (make_listed_product_space(factors)); - END_IF; - END_FUNCTION; -- process_product_space - - -- Resume body of derive_definite_integral_domain function - LOCAL - idomn : tuple_space := igrl.integrand.domain; - types : SET OF STRING := TYPEOF (idomn); - idx : INTEGER := igrl.variable_of_integration; - tupled : BOOLEAN := bool(((space_dimension(idomn) = 1) AND - ((schema_prefix + 'TUPLE_SPACE') IN types))); - prefix : INTEGER := 0; - espc : extended_tuple_space; - vdomn : maths_space; - END_LOCAL; - IF tupled THEN - idomn := factor1(idomn); - types := TYPEOF (idomn); - END_IF; - IF igrl.lower_limit_neg_infinity THEN prefix := prefix + 1; END_IF; - IF igrl.upper_limit_pos_infinity THEN prefix := prefix + 1; END_IF; - vdomn := factor_space(idomn,idx); - IF (schema_prefix + 'EXTENDED_TUPLE_SPACE') IN types THEN - espc := idomn; - idomn := make_extended_tuple_space(process_product_space(espc.base,idx, - prefix,vdomn),espc.extender); - ELSE - idomn := process_product_space(idomn,idx,prefix,vdomn); - END_IF; - IF tupled THEN RETURN (one_tuples_of(idomn)); - ELSE RETURN (idomn); END_IF; -END_FUNCTION; -- derive_definite_integral_domain - -(* Implicit interfaced from: mathematical_functions_schema *) -FUNCTION derive_function_range(func : maths_function) : tuple_space; - LOCAL - typenames : SET OF STRING := stripped_typeof(func); - tspace : tuple_space := make_listed_product_space ([]); - m, n : nonnegative_integer := 0; - temp : INTEGER := 0; - END_LOCAL; - IF 'FINITE_FUNCTION' IN typenames THEN - RETURN (derive_finite_function_range (func\finite_function.pairs)); - END_IF; - IF 'CONSTANT_FUNCTION' IN typenames THEN - RETURN (one_tuples_of (make_finite_space ([func\constant_function.sole_output]))); - END_IF; - IF 'SELECTOR_FUNCTION' IN typenames THEN - tspace := func.domain; - IF (space_dimension(tspace) = 1) AND ((schema_prefix + 'TUPLE_SPACE') IN - TYPEOF (tspace)) THEN - tspace := factor1 (tspace); - END_IF; - RETURN (one_tuples_of (factor_space (tspace, func\selector_function.selector))); - END_IF; - IF 'ELEMENTARY_FUNCTION' IN typenames THEN - RETURN (derive_elementary_function_range (func\elementary_function.func_id)); - END_IF; - IF 'RESTRICTION_FUNCTION' IN typenames THEN - RETURN (one_tuples_of (func\restriction_function.operand)); - END_IF; - IF 'REPACKAGING_FUNCTION' IN typenames THEN - tspace := func\repackaging_function.operand.range; - IF func\repackaging_function.output_repack = ro_wrap_as_tuple THEN - tspace := one_tuples_of (tspace); - END_IF; - IF func\repackaging_function.output_repack = ro_unwrap_tuple THEN - tspace := factor1 (tspace); - END_IF; - IF func\repackaging_function.selected_output > 0 THEN - tspace := one_tuples_of (factor_space (tspace, - func\repackaging_function.selected_output)); - END_IF; - RETURN (tspace); - END_IF; - IF 'REINDEXED_ARRAY_FUNCTION' IN typenames THEN - RETURN (func\unary_generic_expression.operand\maths_function.range); - END_IF; - IF 'SERIES_COMPOSED_FUNCTION' IN typenames THEN - RETURN (func\series_composed_function.operands[SIZEOF - (func\series_composed_function.operands)].range); - END_IF; - IF 'PARALLEL_COMPOSED_FUNCTION' IN typenames THEN - RETURN (func\parallel_composed_function.final_function.range); - END_IF; - IF 'EXPLICIT_TABLE_FUNCTION' IN typenames THEN - IF 'LISTED_REAL_DATA' IN typenames THEN - RETURN (one_tuples_of (the_reals)); - END_IF; - IF 'LISTED_INTEGER_DATA' IN typenames THEN - RETURN (one_tuples_of (the_integers)); - END_IF; - IF 'LISTED_LOGICAL_DATA' IN typenames THEN - RETURN (one_tuples_of (the_logicals)); - END_IF; - IF 'LISTED_STRING_DATA' IN typenames THEN - RETURN (one_tuples_of (the_strings)); - END_IF; - IF 'LISTED_COMPLEX_NUMBER_DATA' IN typenames THEN - RETURN (one_tuples_of (the_complex_numbers)); - END_IF; - IF 'LISTED_DATA' IN typenames THEN - RETURN (one_tuples_of (func\listed_data.value_range)); - END_IF; - IF 'EXTERNALLY_LISTED_DATA' IN typenames THEN - RETURN (one_tuples_of (func\externally_listed_data.value_range)); - END_IF; - IF 'LINEARIZED_TABLE_FUNCTION' IN typenames THEN - RETURN (func\linearized_table_function.source.range); - END_IF; - IF 'BASIC_SPARSE_MATRIX' IN typenames THEN - RETURN (func\basic_sparse_matrix.val.range); - END_IF; - -- Unreachable, as no other subtypes of explicit_table_function are permissible - -- without first modifying this function to account for them. - RETURN (?); - END_IF; - IF 'HOMOGENEOUS_LINEAR_FUNCTION' IN typenames THEN - RETURN (one_tuples_of (make_uniform_product_space - (factor1 (func\homogeneous_linear_function.mat.range), - func\homogeneous_linear_function.mat\explicit_table_function.shape - [3 - func\homogeneous_linear_function.sum_index]))); - END_IF; - IF 'GENERAL_LINEAR_FUNCTION' IN typenames THEN - RETURN (one_tuples_of (make_uniform_product_space - (factor1 (func\general_linear_function.mat.range), - func\general_linear_function.mat\explicit_table_function.shape - [3 - func\general_linear_function.sum_index]))); - END_IF; - IF 'B_SPLINE_BASIS' IN typenames THEN - RETURN (one_tuples_of (make_uniform_product_space (the_reals, - func\b_spline_basis.num_basis))); - END_IF; - IF 'B_SPLINE_FUNCTION' IN typenames THEN - tspace := factor1 (func\b_spline_function.coef.domain); - m := SIZEOF (func\b_spline_function.basis); - n := space_dimension (tspace); - IF m = n THEN - RETURN (one_tuples_of (the_reals)); - END_IF; - IF m = n - 1 THEN - RETURN (one_tuples_of (make_uniform_product_space (the_reals, - factor_space (tspace, n)\finite_integer_interval.size))); - END_IF; - tspace := extract_factors (tspace, m+1, n); - RETURN (one_tuples_of (make_function_space (sc_equal, tspace, sc_subspace, - number_superspace_of (func\b_spline_function.coef.range)))); - END_IF; - IF 'RATIONALIZE_FUNCTION' IN typenames THEN - tspace := factor1 (func\rationalize_function.fun.range); - n := space_dimension (tspace); - RETURN (one_tuples_of (make_uniform_product_space (number_superspace_of ( - factor1 (tspace)), n-1))); - END_IF; - IF 'PARTIAL_DERIVATIVE_FUNCTION' IN typenames THEN - RETURN (drop_numeric_constraints ( - func\partial_derivative_function.derivand.range)); - END_IF; - IF 'DEFINITE_INTEGRAL_FUNCTION' IN typenames THEN - RETURN (drop_numeric_constraints ( - func\definite_integral_function.integrand.range)); - END_IF; - IF 'ABSTRACTED_EXPRESSION_FUNCTION' IN typenames THEN - RETURN (one_tuples_of(values_space_of(func\abstracted_expression_function.expr))); - END_IF; - IF 'EXPRESSION_DENOTED_FUNCTION' IN typenames THEN - RETURN (values_space_of (func\expression_denoted_function.expr)\function_space. - range_argument); - END_IF; - IF 'IMPORTED_POINT_FUNCTION' IN typenames THEN - temp := dimension_of (func\imported_point_function.geometry); - RETURN (one_tuples_of (make_uniform_product_space (the_reals, temp))); - END_IF; - IF 'IMPORTED_CURVE_FUNCTION' IN typenames THEN - temp := dimension_of (func\imported_curve_function.geometry); - RETURN (one_tuples_of (make_uniform_product_space (the_reals, temp))); - END_IF; - IF 'IMPORTED_SURFACE_FUNCTION' IN typenames THEN - temp := dimension_of (func\imported_surface_function.geometry); - RETURN (one_tuples_of (make_uniform_product_space (the_reals, temp))); - END_IF; - IF 'IMPORTED_VOLUME_FUNCTION' IN typenames THEN - temp := dimension_of (func\imported_volume_function.geometry); - RETURN (one_tuples_of (make_uniform_product_space (the_reals, temp))); - END_IF; - IF 'APPLICATION_DEFINED_FUNCTION' IN typenames THEN - RETURN (func\application_defined_function.explicit_range); - END_IF; - -- Unreachable, as no other subtypes of maths_function are permissible without - -- first modifying this function to account for them. - RETURN (?); -END_FUNCTION; -- derive_function_range - -(* Implicit interfaced from: mathematical_functions_schema *) -FUNCTION derive_finite_function_range(pairs : SET [1:?] OF LIST [2:2] OF maths_value) - : tuple_space; - LOCAL - result : SET OF maths_value := []; - END_LOCAL; --- An ambiguity in ISO 10303-11:1994 pages 99-101 leaves the result of the following --- three lines ambiguous in those cases where an operand is simultaneously a member --- of the base type and the aggregate type. --- REPEAT i := 1 TO SIZEOF (pairs); --- result := result + pairs[i][2]; --- END_REPEAT; --- The next line unions an empty set and the desired list to get the desired set. - result := result + list_selected_components (pairs, 2); - RETURN (one_tuples_of (make_finite_space (result))); -END_FUNCTION; -- derive_finite_function_range - -(* Implicit interfaced from: mathematical_functions_schema *) -FUNCTION derive_elementary_function_range(ef_val : elementary_function_enumerators) - : tuple_space; - IF NOT EXISTS (ef_val) THEN RETURN (?); END_IF; - CASE ef_val OF - ef_and : RETURN (make_uniform_product_space (the_logicals, 1)); - ef_or : RETURN (make_uniform_product_space (the_logicals, 1)); - ef_not : RETURN (make_uniform_product_space (the_logicals, 1)); - ef_xor : RETURN (make_uniform_product_space (the_logicals, 2)); - ef_negate_i : RETURN (make_uniform_product_space (the_integers, 1)); - ef_add_i : RETURN (make_uniform_product_space (the_integers, 1)); - ef_subtract_i : RETURN (make_uniform_product_space (the_integers, 1)); - ef_multiply_i : RETURN (make_uniform_product_space (the_integers, 1)); - ef_divide_i : RETURN (make_uniform_product_space (the_integers, 1)); - ef_mod_i : RETURN (make_uniform_product_space (the_integers, 1)); - ef_exponentiate_i : RETURN (make_uniform_product_space (the_integers, 1)); - ef_eq_i : RETURN (make_uniform_product_space (the_logicals, 1)); - ef_ne_i : RETURN (make_uniform_product_space (the_logicals, 1)); - ef_gt_i : RETURN (make_uniform_product_space (the_logicals, 1)); - ef_lt_i : RETURN (make_uniform_product_space (the_logicals, 1)); - ef_ge_i : RETURN (make_uniform_product_space (the_logicals, 1)); - ef_le_i : RETURN (make_uniform_product_space (the_logicals, 1)); - ef_abs_i : RETURN (make_uniform_product_space (the_integers, 1)); - ef_if_i : RETURN (make_uniform_product_space (the_integers, 1)); - ef_negate_r : RETURN (make_uniform_product_space (the_reals, 1)); - ef_reciprocal_r : RETURN (make_uniform_product_space (the_reals, 1)); - ef_add_r : RETURN (make_uniform_product_space (the_reals, 1)); - ef_subtract_r : RETURN (make_uniform_product_space (the_reals, 1)); - ef_multiply_r : RETURN (make_uniform_product_space (the_reals, 1)); - ef_divide_r : RETURN (make_uniform_product_space (the_reals, 1)); - ef_mod_r : RETURN (make_uniform_product_space (the_reals, 1)); - ef_exponentiate_r : RETURN (make_uniform_product_space (the_reals, 1)); - ef_exponentiate_ri : RETURN (make_uniform_product_space (the_reals, 1)); - ef_eq_r : RETURN (make_uniform_product_space (the_logicals, 1)); - ef_ne_r : RETURN (make_uniform_product_space (the_logicals, 1)); - ef_gt_r : RETURN (make_uniform_product_space (the_logicals, 1)); - ef_lt_r : RETURN (make_uniform_product_space (the_logicals, 1)); - ef_ge_r : RETURN (make_uniform_product_space (the_logicals, 1)); - ef_le_r : RETURN (make_uniform_product_space (the_logicals, 1)); - ef_abs_r : RETURN (make_uniform_product_space (the_nonnegative_reals, 1)); - ef_acos_r : RETURN (make_uniform_product_space (the_zero_pi_interval, 1)); - ef_asin_r : RETURN (make_uniform_product_space (the_neghalfpi_halfpi_interval, 1)); - ef_atan2_r : RETURN (make_uniform_product_space (the_negpi_pi_interval, 1)); - ef_cos_r : RETURN (make_uniform_product_space (the_neg1_one_interval, 1)); - ef_exp_r : RETURN (make_uniform_product_space (the_nonnegative_reals, 1)); - ef_ln_r : RETURN (make_uniform_product_space (the_reals, 1)); - ef_log2_r : RETURN (make_uniform_product_space (the_reals, 1)); - ef_log10_r : RETURN (make_uniform_product_space (the_reals, 1)); - ef_sin_r : RETURN (make_uniform_product_space (the_neg1_one_interval, 1)); - ef_sqrt_r : RETURN (make_uniform_product_space (the_nonnegative_reals, 1)); - ef_tan_r : RETURN (make_uniform_product_space (the_reals, 1)); - ef_if_r : RETURN (make_uniform_product_space (the_reals, 1)); - ef_negate_c : RETURN (make_uniform_product_space (the_complex_numbers, 1)); - ef_reciprocal_c : RETURN (make_uniform_product_space (the_complex_numbers, 1)); - ef_add_c : RETURN (make_uniform_product_space (the_complex_numbers, 1)); - ef_subtract_c : RETURN (make_uniform_product_space (the_complex_numbers, 1)); - ef_multiply_c : RETURN (make_uniform_product_space (the_complex_numbers, 1)); - ef_divide_c : RETURN (make_uniform_product_space (the_complex_numbers, 1)); - ef_exponentiate_c : RETURN (make_uniform_product_space (the_complex_numbers, 1)); - ef_exponentiate_ci : RETURN (make_uniform_product_space (the_complex_numbers, 1)); - ef_eq_c : RETURN (make_uniform_product_space (the_logicals, 1)); - ef_ne_c : RETURN (make_uniform_product_space (the_logicals, 1)); - ef_conjugate_c : RETURN (make_uniform_product_space (the_complex_numbers, 1)); - ef_abs_c : RETURN (make_uniform_product_space (the_nonnegative_reals, 1)); - ef_arg_c : RETURN (make_uniform_product_space (the_negpi_pi_interval, 1)); - ef_cos_c : RETURN (make_uniform_product_space (the_complex_numbers, 1)); - ef_exp_c : RETURN (make_uniform_product_space (the_complex_numbers, 1)); - ef_ln_c : RETURN (make_uniform_product_space (the_complex_numbers, 1)); - ef_sin_c : RETURN (make_uniform_product_space (the_complex_numbers, 1)); - ef_sqrt_c : RETURN (make_uniform_product_space (the_complex_numbers, 1)); - ef_tan_c : RETURN (make_uniform_product_space (the_complex_numbers, 1)); - ef_if_c : RETURN (make_uniform_product_space (the_complex_numbers, 1)); - ef_subscript_s : RETURN (make_uniform_product_space (the_strings, 1)); - ef_eq_s : RETURN (make_uniform_product_space (the_logicals, 1)); - ef_ne_s : RETURN (make_uniform_product_space (the_logicals, 1)); - ef_gt_s : RETURN (make_uniform_product_space (the_logicals, 1)); - ef_lt_s : RETURN (make_uniform_product_space (the_logicals, 1)); - ef_ge_s : RETURN (make_uniform_product_space (the_logicals, 1)); - ef_le_s : RETURN (make_uniform_product_space (the_logicals, 1)); - ef_subsequence_s : RETURN (make_uniform_product_space (the_strings, 1)); - ef_concat_s : RETURN (make_uniform_product_space (the_strings, 1)); - ef_size_s : RETURN (make_uniform_product_space (the_integers, 1)); - ef_format : RETURN (make_uniform_product_space (the_strings, 1)); - ef_value : RETURN (make_uniform_product_space (the_reals, 1)); - ef_like : RETURN (make_uniform_product_space (the_booleans, 1)); - ef_if_s : RETURN (make_uniform_product_space (the_strings, 1)); - ef_subscript_b : RETURN (make_uniform_product_space (the_binarys, 1)); - ef_eq_b : RETURN (make_uniform_product_space (the_logicals, 1)); - ef_ne_b : RETURN (make_uniform_product_space (the_logicals, 1)); - ef_gt_b : RETURN (make_uniform_product_space (the_logicals, 1)); - ef_lt_b : RETURN (make_uniform_product_space (the_logicals, 1)); - ef_ge_b : RETURN (make_uniform_product_space (the_logicals, 1)); - ef_le_b : RETURN (make_uniform_product_space (the_logicals, 1)); - ef_subsequence_b : RETURN (make_uniform_product_space (the_binarys, 1)); - ef_concat_b : RETURN (make_uniform_product_space (the_binarys, 1)); - ef_size_b : RETURN (make_uniform_product_space (the_integers, 1)); - ef_if_b : RETURN (make_uniform_product_space (the_binarys, 1)); - ef_subscript_t : RETURN (make_uniform_product_space (the_generics, 1)); - ef_eq_t : RETURN (make_uniform_product_space (the_logicals, 1)); - ef_ne_t : RETURN (make_uniform_product_space (the_logicals, 1)); - ef_concat_t : RETURN (make_uniform_product_space (the_tuples, 1)); - ef_size_t : RETURN (make_uniform_product_space (the_integers, 1)); - ef_entuple : RETURN (make_uniform_product_space (the_tuples, 1)); - ef_detuple : RETURN (the_tuples); - ef_insert : RETURN (make_uniform_product_space (the_tuples, 1)); - ef_remove : RETURN (make_uniform_product_space (the_tuples, 1)); - ef_if_t : RETURN (make_uniform_product_space (the_tuples, 1)); - ef_sum_it : RETURN (make_uniform_product_space (the_integers, 1)); - ef_product_it : RETURN (make_uniform_product_space (the_integers, 1)); - ef_add_it : RETURN (make_uniform_product_space (the_integer_tuples, 1)); - ef_subtract_it : RETURN (make_uniform_product_space (the_integer_tuples, 1)); - ef_scalar_mult_it : RETURN (make_uniform_product_space (the_integer_tuples, 1)); - ef_dot_prod_it : RETURN (make_uniform_product_space (the_integers, 1)); - ef_sum_rt : RETURN (make_uniform_product_space (the_reals, 1)); - ef_product_rt : RETURN (make_uniform_product_space (the_reals, 1)); - ef_add_rt : RETURN (make_uniform_product_space (the_real_tuples, 1)); - ef_subtract_rt : RETURN (make_uniform_product_space (the_real_tuples, 1)); - ef_scalar_mult_rt : RETURN (make_uniform_product_space (the_real_tuples, 1)); - ef_dot_prod_rt : RETURN (make_uniform_product_space (the_reals, 1)); - ef_norm_rt : RETURN (make_uniform_product_space (the_reals, 1)); - ef_sum_ct : RETURN (make_uniform_product_space (the_complex_numbers, 1)); - ef_product_ct : RETURN (make_uniform_product_space (the_complex_numbers, 1)); - ef_add_ct : RETURN (make_uniform_product_space (the_complex_tuples, 1)); - ef_subtract_ct : RETURN (make_uniform_product_space (the_complex_tuples, 1)); - ef_scalar_mult_ct : RETURN (make_uniform_product_space (the_complex_tuples, 1)); - ef_dot_prod_ct : RETURN (make_uniform_product_space (the_complex_numbers, 1)); - ef_norm_ct : RETURN (make_uniform_product_space (the_nonnegative_reals, 1)); - ef_if : RETURN (make_uniform_product_space (the_generics, 1)); - ef_ensemble : RETURN (make_uniform_product_space (the_maths_spaces, 1)); - ef_member_of : RETURN (make_uniform_product_space (the_logicals, 1)); - OTHERWISE : RETURN (?); - END_CASE; -END_FUNCTION; -- derive_elementary_function_range - -(* Implicit interfaced from: mathematical_functions_schema *) -FUNCTION extract_factors(tspace : tuple_space; - m, n : INTEGER) : tuple_space; - LOCAL - tsp : tuple_space := the_zero_tuple_space; - END_LOCAL; - REPEAT i := m TO n; - tsp := assoc_product_space (tsp, factor_space (tspace, i)); - END_REPEAT; - RETURN (tsp); -END_FUNCTION; -- extract_factors -(* REFERENCE FROM (geometry_schema); *) -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 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CARTESIAN_POINT' IN TYPEOF(item) THEN - dim := SIZEOF(item\cartesian_point.coordinates); - RETURN(dim); - END_IF; - IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.DIRECTION' IN TYPEOF(item) THEN - dim := SIZEOF(item\direction.direction_ratios); - RETURN(dim); - END_IF; - IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 for legal instances since this is required by WR1 of - -- representation_item. - IF (SIZEOF(x) > 0) THEN - y := x[1].context_of_items; - dim := y\geometric_representation_context.coordinate_space_dimension; - RETURN (dim); - ELSE - RETURN(?); - -- mark error by returning indeterminate result - END_IF;END_FUNCTION; -(* REFERENCE FROM (representation_schema); *) - FUNCTION using_representations (item : founded_item_select) - : SET 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,'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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], - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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; - -(* Implicit interfaced from: representation_schema *) - FUNCTION using_items (item : founded_item_select; - checked_items: SET OF founded_item_select) - : SET 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 , '')) | - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.REPRESENTATION_ITEM' IN TYPEOF(z)) OR - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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; - -(* Implicit interfaced from: mathematical_functions_schema *) -FUNCTION no_cyclic_domain_reference(ref : maths_space_or_function; - used : SET OF maths_function) : BOOLEAN; - LOCAL - typenames : SET OF STRING := TYPEOF (ref); - func : maths_function; - END_LOCAL; - IF (NOT EXISTS (ref)) OR (NOT EXISTS (used)) THEN - RETURN (FALSE); - END_IF; - IF (schema_prefix + 'MATHS_SPACE') IN typenames THEN - RETURN (TRUE); - END_IF; - func := ref; - IF func IN used THEN - RETURN (FALSE); - END_IF; - IF (schema_prefix + 'CONSTANT_FUNCTION') IN typenames THEN - RETURN (no_cyclic_domain_reference (func\constant_function.source_of_domain, - used + [func])); - END_IF; - IF (schema_prefix + 'SELECTOR_FUNCTION') IN typenames THEN - RETURN (no_cyclic_domain_reference (func\selector_function.source_of_domain, - used + [func])); - END_IF; - IF (schema_prefix + 'PARALLEL_COMPOSED_FUNCTION') IN typenames THEN - RETURN (no_cyclic_domain_reference ( - func\parallel_composed_function.source_of_domain, used + [func])); - END_IF; - RETURN (TRUE); -END_FUNCTION; -- no_cyclic_domain_reference - -(* Implicit interfaced from: mathematical_functions_schema *) -FUNCTION repackage(tspace : tuple_space; - repckg : repackage_options) : tuple_space; - CASE repckg OF - ro_nochange : RETURN (tspace); - ro_wrap_as_tuple : RETURN (one_tuples_of (tspace)); - ro_unwrap_tuple : RETURN (factor1 (tspace)); - OTHERWISE : RETURN (?); - END_CASE; -END_FUNCTION; -- repackage - -(* Implicit interfaced from: mathematical_functions_schema *) -FUNCTION function_is_array(func : maths_function) : BOOLEAN; - LOCAL - tspace : tuple_space; - temp : maths_space; - END_LOCAL; - IF NOT EXISTS (func) THEN RETURN (FALSE); END_IF; - tspace := func.domain; - IF (space_dimension (tspace) = 1) AND ((schema_prefix + 'TUPLE_SPACE') IN - TYPEOF (factor1 (tspace))) THEN - tspace := factor1 (tspace); - END_IF; - IF NOT ((schema_prefix + 'PRODUCT_SPACE') IN TYPEOF (tspace)) THEN - RETURN (FALSE); - END_IF; - REPEAT i := 1 TO space_dimension (tspace); - temp := factor_space (tspace, i); - IF NOT ((schema_prefix + 'FINITE_INTEGER_INTERVAL') IN TYPEOF (temp)) THEN - RETURN (FALSE); - END_IF; - END_REPEAT; - RETURN (TRUE); -END_FUNCTION; -- function_is_array - -(* Implicit interfaced from: mathematical_functions_schema *) -FUNCTION composable_sequence(operands : LIST [2:?] OF maths_function) : BOOLEAN; - REPEAT i := 1 TO SIZEOF (operands) - 1; - IF NOT compatible_spaces (operands[i].range, operands[i+1].domain) THEN - RETURN (FALSE); - END_IF; - END_REPEAT; - RETURN (TRUE); -END_FUNCTION; -- composable_sequence - -(* Implicit interfaced from: mathematical_functions_schema *) -FUNCTION parallel_composed_function_domain_check( - comdom : tuple_space; - funcs : LIST OF maths_function) : BOOLEAN; - REPEAT i := 1 TO SIZEOF (funcs); - IF NOT (compatible_spaces (comdom, funcs[i].domain)) THEN - RETURN (FALSE); - END_IF; - END_REPEAT; - RETURN (TRUE); -END_FUNCTION; -- parallel_composed_function_domain_check - -(* Implicit interfaced from: mathematical_functions_schema *) -FUNCTION parallel_composed_function_composability_check( - funcs : LIST OF maths_function; - final : maths_function_select) : BOOLEAN; - LOCAL - tplsp : tuple_space := the_zero_tuple_space; - finfun : maths_function := convert_to_maths_function (final); - END_LOCAL; - REPEAT i := 1 TO SIZEOF (funcs); - tplsp := assoc_product_space (tplsp, funcs[i].range); - END_REPEAT; - RETURN (compatible_spaces (tplsp, finfun.domain)); -END_FUNCTION; -- parallel_composed_function_composability_check - -(* Implicit interfaced from: mathematical_functions_schema *) -FUNCTION function_is_1d_array(func : maths_function) : BOOLEAN; - LOCAL - temp : maths_space; - END_LOCAL; - IF NOT EXISTS (func) THEN RETURN (FALSE); END_IF; - IF space_dimension (func.domain) <> 1 THEN RETURN (FALSE); END_IF; - temp := factor1 (func.domain); - IF (schema_prefix + 'PRODUCT_SPACE') IN TYPEOF (temp) THEN - IF space_dimension (temp) <> 1 THEN RETURN (FALSE); END_IF; - temp := factor1 (temp); - END_IF; - IF (schema_prefix + 'FINITE_INTEGER_INTERVAL') IN TYPEOF (temp) THEN - RETURN (TRUE); - END_IF; - RETURN (FALSE); -END_FUNCTION; -- function_is_1d_array - -(* Implicit interfaced from: mathematical_functions_schema *) -FUNCTION extremal_position_check(fun : linearized_table_function) : BOOLEAN; - LOCAL - source_domain : maths_space; - source_interval : finite_integer_interval; - index : INTEGER := 1; - base : INTEGER; - shape : LIST OF positive_integer; - ndim : positive_integer; - slo, shi : INTEGER; - sublo : LIST OF INTEGER := []; - subhi : LIST OF INTEGER := []; - END_LOCAL; - IF NOT EXISTS (fun) THEN RETURN (FALSE); END_IF; - source_domain := factor1 (fun.source.domain); - IF (schema_prefix + 'TUPLE_SPACE') IN TYPEOF (source_domain) THEN - source_domain := factor1 (source_domain); - END_IF; - IF NOT ((schema_prefix + 'FINITE_INTEGER_INTERVAL') IN TYPEOF (source_domain)) THEN - RETURN (FALSE); - END_IF; - source_interval := source_domain; - base := fun\explicit_table_function.index_base; - shape := fun\explicit_table_function.shape; - IF (schema_prefix + 'STANDARD_TABLE_FUNCTION') IN TYPEOF (fun) THEN - REPEAT j := 1 TO SIZEOF (shape); - index := index * shape[j]; - END_REPEAT; - index := fun.first + index - 1; - RETURN (bool({source_interval.min <= index <= source_interval.max})); - END_IF; - IF (schema_prefix + 'REGULAR_TABLE_FUNCTION') IN TYPEOF (fun) THEN - ndim := SIZEOF (fun\explicit_table_function.shape); - REPEAT j:= 1 TO ndim; - slo := base; - shi := base + shape[j] - 1; - IF fun\regular_table_function.increments[j] >= 0 THEN - INSERT (sublo, slo, j-1); - INSERT (subhi, shi, j-1); - ELSE - INSERT (sublo, shi, j-1); - INSERT (subhi, slo, j-1); - END_IF; - END_REPEAT; - index := regular_indexing (sublo, base, shape, - fun\regular_table_function.increments, fun.first); - IF NOT ({source_interval.min <= index <= source_interval.max}) THEN - RETURN (FALSE); - END_IF; - index := regular_indexing (subhi, base, shape, - fun\regular_table_function.increments, fun.first); - IF NOT ({source_interval.min <= index <= source_interval.max}) THEN - RETURN (FALSE); - END_IF; - RETURN (TRUE); - END_IF; - RETURN (FALSE); -END_FUNCTION; -- extremal_position_check - -(* Implicit interfaced from: mathematical_functions_schema *) -FUNCTION regular_indexing(sub : LIST OF INTEGER; - base : zero_or_one; - shape : LIST [1:?] OF positive_integer; - inc : LIST [1:?] OF INTEGER; - first : INTEGER) : INTEGER; - LOCAL - k : INTEGER; - index : INTEGER; - END_LOCAL; - IF NOT EXISTS (sub) OR NOT EXISTS (base) OR NOT EXISTS (shape) OR - NOT EXISTS (inc) OR NOT EXISTS (first) THEN - RETURN (?); - END_IF; - IF (SIZEOF (sub) <> SIZEOF (inc)) OR (SIZEOF (sub) <> SIZEOF (shape)) THEN - RETURN (?); - END_IF; - index := first; - REPEAT j := 1 TO SIZEOF (sub); - IF NOT EXISTS (sub[j]) OR NOT EXISTS (inc[j]) THEN - RETURN (?); - END_IF; - k := sub[j] - base; - IF NOT ({0 <= k < shape[j]}) THEN - RETURN (?); - END_IF; - index := index + k*inc[j]; - END_REPEAT; - RETURN (index); -END_FUNCTION; - -(* Implicit interfaced from: mathematical_functions_schema *) -FUNCTION function_is_1d_table(func : maths_function) : BOOLEAN; - LOCAL - temp : maths_space; - itvl : finite_integer_interval; - END_LOCAL; - IF NOT EXISTS (func) THEN RETURN (FALSE); END_IF; - IF space_dimension (func.domain) <> 1 THEN RETURN (FALSE); END_IF; - temp := factor1 (func.domain); - IF (schema_prefix + 'PRODUCT_SPACE') IN TYPEOF (temp) THEN - IF space_dimension (temp) <> 1 THEN RETURN (FALSE); END_IF; - temp := factor1 (temp); - END_IF; - IF (schema_prefix + 'FINITE_INTEGER_INTERVAL') IN TYPEOF (temp) THEN - itvl := temp; - RETURN (bool((itvl.min = 0) OR (itvl.min = 1))); - END_IF; - RETURN (FALSE); -END_FUNCTION; -- function_is_1d_table - -(* Implicit interfaced from: mathematical_functions_schema *) -FUNCTION check_sparse_index_domain(idxdom : tuple_space; - base : zero_or_one; - shape : LIST [1:?] OF positive_integer; - order : ordering_type) : BOOLEAN; - LOCAL - mthspc : maths_space; - interval : finite_integer_interval; - i : INTEGER; - END_LOCAL; - mthspc := factor1(idxdom); - -- A consequence of WR1 of basic_sparse_matrix is that here we need only - -- consider the case that mthspc is a finite integer interval and is the only - -- factor space of idxdom. - interval := mthspc; - IF order = by_rows THEN i := 1; ELSE i := 2; END_IF; - RETURN (bool((interval.min <= base) AND (interval.max >= base + shape[i]))); - -- The index function is evaluated at (base+shape[i]) when determining the - -- upper search bound for entries of the last row or column, respectively. -END_FUNCTION; -- check_sparse_index_domain; - -(* Implicit interfaced from: mathematical_functions_schema *) -FUNCTION check_sparse_index_to_loc(index_range, loc_domain : tuple_space) : BOOLEAN; - LOCAL - temp : maths_space; - idx_rng_itvl, loc_dmn_itvl : finite_integer_interval; - END_LOCAL; - temp := factor1 (index_range); - IF (schema_prefix + 'TUPLE_SPACE') IN TYPEOF (temp) THEN - temp := factor1 (temp); - END_IF; - IF NOT ((schema_prefix + 'FINITE_INTEGER_INTERVAL') IN TYPEOF (temp)) THEN - RETURN (FALSE); - END_IF; - idx_rng_itvl := temp; - temp := factor1 (loc_domain); - IF (schema_prefix + 'TUPLE_SPACE') IN TYPEOF (temp) THEN - temp := factor1 (temp); - END_IF; - IF NOT ((schema_prefix + 'FINITE_INTEGER_INTERVAL') IN TYPEOF (temp)) THEN - RETURN (FALSE); - END_IF; - loc_dmn_itvl := temp; - RETURN (bool((loc_dmn_itvl.min <= idx_rng_itvl.min) AND - (idx_rng_itvl.max <= loc_dmn_itvl.max+1))); -END_FUNCTION; -- check_sparse_index_to_loc - -(* Implicit interfaced from: mathematical_functions_schema *) -FUNCTION check_sparse_loc_range(locrng : tuple_space; - base : zero_or_one; - shape : LIST [1:?] OF positive_integer; - order : ordering_type) : BOOLEAN; - LOCAL - mthspc : maths_space; - interval : finite_integer_interval; - i : INTEGER; - END_LOCAL; - IF space_dimension(locrng) <> 1 THEN RETURN (FALSE); END_IF; - mthspc := factor1(locrng); - IF NOT ((schema_prefix + 'FINITE_INTEGER_INTERVAL') IN TYPEOF (mthspc)) THEN - RETURN (FALSE); - END_IF; - interval := mthspc; - IF order = by_rows THEN i := 2; ELSE i := 1; END_IF; - RETURN (bool((interval.min >= base) AND (interval.max <= base + shape[i] - 1))); -END_FUNCTION; -- check_sparse_loc_range; - -(* Implicit interfaced from: mathematical_functions_schema *) -FUNCTION function_is_2d_table(func : maths_function) : BOOLEAN; - LOCAL - temp : maths_space; - pspace : product_space; - itvl1, itvl2 : finite_integer_interval; - END_LOCAL; - IF NOT EXISTS (func) THEN RETURN (FALSE); END_IF; - IF space_dimension (func.domain) <> 1 THEN RETURN (FALSE); END_IF; - temp := factor1 (func.domain); - IF NOT ('PRODUCT_SPACE' IN stripped_typeof(temp)) THEN RETURN (FALSE); END_IF; - pspace := temp; - IF space_dimension (pspace) <> 2 THEN RETURN (FALSE); END_IF; - temp := factor1 (pspace); - IF NOT ('FINITE_INTEGER_INTERVAL' IN stripped_typeof(temp)) THEN - RETURN (FALSE); - END_IF; - itvl1 := temp; - temp := factor_space (pspace, 2); - IF NOT ('FINITE_INTEGER_INTERVAL' IN stripped_typeof(temp)) THEN - RETURN (FALSE); - END_IF; - itvl2 := temp; - RETURN (bool((itvl1.min = itvl2.min) AND ((itvl1.min = 0) OR (itvl1.min = 1)))); -END_FUNCTION; -- function_is_2d_table - -(* Implicit interfaced from: mathematical_functions_schema *) -FUNCTION nondecreasing(lr : LIST OF REAL) : BOOLEAN; - IF NOT EXISTS (lr) THEN - RETURN (FALSE); - END_IF; - REPEAT j := 2 TO SIZEOF (lr); - IF lr[j] < lr[j-1] THEN - RETURN (FALSE); - END_IF; - END_REPEAT; - RETURN (TRUE); -END_FUNCTION; - -(* Implicit interfaced from: mathematical_functions_schema *) -FUNCTION function_is_table(func : maths_function) : BOOLEAN; - LOCAL - tspace : tuple_space; - temp : maths_space; - base : INTEGER; - END_LOCAL; - IF NOT EXISTS (func) THEN RETURN (FALSE); END_IF; - tspace := func.domain; - IF (space_dimension (tspace) = 1) AND ((schema_prefix + 'TUPLE_SPACE') IN - TYPEOF (factor1 (tspace))) THEN - tspace := factor1 (tspace); - END_IF; - IF NOT ((schema_prefix + 'PRODUCT_SPACE') IN TYPEOF (tspace)) THEN - RETURN (FALSE); - END_IF; - temp := factor1 (tspace); - IF NOT ((schema_prefix + 'FINITE_INTEGER_INTERVAL') IN TYPEOF (temp)) THEN - RETURN (FALSE); - END_IF; - base := temp\finite_integer_interval.min; - IF (base <> 0) AND (base <> 1) THEN - RETURN (FALSE); - END_IF; - REPEAT i := 2 TO space_dimension (tspace); - temp := factor_space (tspace, i); - IF NOT ((schema_prefix + 'FINITE_INTEGER_INTERVAL') IN TYPEOF (temp)) THEN - RETURN (FALSE); - END_IF; - IF temp\finite_integer_interval.min <> base THEN RETURN (FALSE); END_IF; - END_REPEAT; - RETURN (TRUE); -END_FUNCTION; -- function_is_table - -(* Implicit interfaced from: mathematical_functions_schema *) -FUNCTION compare_basis_and_coef(basis : LIST [1:?] OF b_spline_basis; - coef : maths_function) : BOOLEAN; - LOCAL - shape : LIST OF positive_integer; - END_LOCAL; - IF NOT EXISTS (basis) OR NOT EXISTS (coef) THEN RETURN (FALSE); END_IF; - shape := shape_of_array(coef); - IF NOT EXISTS (shape) THEN RETURN (FALSE); END_IF; - IF SIZEOF (shape) < SIZEOF (basis) THEN RETURN (FALSE); END_IF; - REPEAT i := 1 TO SIZEOF (basis); - IF (basis[i].num_basis = shape[i]) <> TRUE THEN RETURN (FALSE); END_IF; - END_REPEAT; - RETURN (TRUE); -END_FUNCTION; -- compare_basis_and_coef - -(* Implicit interfaced from: mathematical_functions_schema *) -FUNCTION number_tuple_subspace_check(spc : maths_space) : LOGICAL; - LOCAL - types : SET OF STRING := stripped_typeof(spc); - factors : LIST OF maths_space; - cum : LOGICAL := TRUE; - END_LOCAL; - IF 'UNIFORM_PRODUCT_SPACE' IN types THEN - RETURN (subspace_of_es(spc\uniform_product_space.base,es_numbers)); - END_IF; - IF 'LISTED_PRODUCT_SPACE' IN types THEN - factors := spc\listed_product_space.factors; - REPEAT i := 1 TO SIZEOF (factors); - cum := cum AND subspace_of_es(factors[i],es_numbers); - END_REPEAT; - RETURN (cum); - END_IF; - IF 'EXTENDED_TUPLE_SPACE' IN types THEN - cum := subspace_of_es(spc\extended_tuple_space.extender,es_numbers); - cum := cum AND number_tuple_subspace_check(spc\extended_tuple_space.base); - RETURN (cum); - END_IF; - RETURN (FALSE); -END_FUNCTION; - -(* Implicit interfaced from: mathematical_functions_schema *) -FUNCTION space_is_continuum(space : maths_space) : BOOLEAN; - LOCAL - typenames : SET OF STRING := TYPEOF (space); - factors : LIST OF maths_space; - END_LOCAL; - IF NOT EXISTS (space) THEN - RETURN (FALSE); - END_IF; - IF subspace_of_es(space,es_reals) OR subspace_of_es(space,es_complex_numbers) THEN - RETURN (TRUE); - END_IF; - IF (schema_prefix + 'UNIFORM_PRODUCT_SPACE') IN typenames THEN - RETURN (space_is_continuum(space\uniform_product_space.base)); - END_IF; - IF (schema_prefix + 'LISTED_PRODUCT_SPACE') IN typenames THEN - factors := space\listed_product_space.factors; - IF SIZEOF(factors) = 0 THEN - RETURN (FALSE); - END_IF; - REPEAT i := 1 TO SIZEOF (factors); - IF NOT space_is_continuum(factors[i]) THEN - RETURN (FALSE); - END_IF; - END_REPEAT; - RETURN (TRUE); - END_IF; - RETURN (FALSE); -END_FUNCTION; -- space_is_continuum - -(* Implicit interfaced from: mathematical_functions_schema *) -FUNCTION partial_derivative_check(domain : tuple_space; - d_vars : LIST [1:?] OF input_selector) : BOOLEAN; - LOCAL - domn : tuple_space := domain; - fspc : maths_space; - dim : INTEGER; - k : INTEGER; - END_LOCAL; - IF (space_dimension (domain) = 1) AND ((schema_prefix + 'TUPLE_SPACE') IN - TYPEOF (factor1 (domain))) THEN - domn := factor1 (domain); - END_IF; - dim := space_dimension (domn); - REPEAT i := 1 TO SIZEOF (d_vars); - k := d_vars[i]; - IF k > dim THEN - RETURN (FALSE); - END_IF; - fspc := factor_space (domn, k); - IF (NOT subspace_of_es (fspc,es_reals)) AND - (NOT subspace_of_es (fspc,es_complex_numbers)) THEN - RETURN (FALSE); - END_IF; - END_REPEAT; - RETURN (TRUE); -END_FUNCTION; -- partial_derivative_check - -(* Implicit interfaced from: mathematical_functions_schema *) -FUNCTION definite_integral_check(domain : tuple_space; - vrblint : input_selector; - lowerinf : BOOLEAN; - upperinf : BOOLEAN) : BOOLEAN; - LOCAL - domn : tuple_space := domain; - fspc : maths_space; - dim : nonnegative_integer; - k : positive_integer; - END_LOCAL; - IF (space_dimension (domain) = 1) AND ((schema_prefix + 'TUPLE_SPACE') IN - TYPEOF (factor1 (domain))) THEN - domn := factor1 (domain); - END_IF; - dim := space_dimension (domn); - k := vrblint; - IF k > dim THEN RETURN (FALSE); END_IF; - fspc := factor_space (domn, k); - IF NOT ((schema_prefix + 'REAL_INTERVAL') IN TYPEOF (fspc)) THEN - RETURN (FALSE); - END_IF; - IF lowerinf AND min_exists (fspc) THEN RETURN (FALSE); END_IF; - IF upperinf AND max_exists (fspc) THEN RETURN (FALSE); END_IF; - RETURN (TRUE); -END_FUNCTION; -- definite_integral_check - -(* Implicit interfaced from: mathematical_functions_schema *) -FUNCTION definite_integral_expr_check(operands : LIST [2:?] OF generic_expression; - lowerinf : BOOLEAN; - upperinf : BOOLEAN) : BOOLEAN; - LOCAL - nops : INTEGER := 2; - vspc : maths_space; - dim : nonnegative_integer; - k : positive_integer; - bspc : maths_space; - END_LOCAL; - IF NOT lowerinf THEN nops := nops + 1; END_IF; - IF NOT upperinf THEN nops := nops + 1; END_IF; - IF SIZEOF (operands) <> nops THEN RETURN (FALSE); END_IF; - IF NOT ('GENERIC_VARIABLE' IN stripped_typeof(operands[2])) THEN - RETURN (FALSE); - END_IF; - IF NOT has_values_space (operands[2]) THEN RETURN (FALSE); END_IF; - vspc := values_space_of (operands[2]); - IF NOT ('REAL_INTERVAL' IN stripped_typeof(vspc)) THEN RETURN (FALSE); END_IF; - IF lowerinf THEN - IF min_exists (vspc) THEN RETURN (FALSE); END_IF; - k := 3; - ELSE - IF NOT has_values_space (operands[3]) THEN RETURN (FALSE); END_IF; - bspc := values_space_of (operands[3]); - IF NOT compatible_spaces (bspc, vspc) THEN RETURN (FALSE); END_IF; - k := 4; - END_IF; - IF upperinf THEN - IF max_exists (vspc) THEN RETURN (FALSE); END_IF; - ELSE - IF NOT has_values_space (operands[k]) THEN RETURN (FALSE); END_IF; - bspc := values_space_of (operands[k]); - IF NOT compatible_spaces (bspc, vspc) THEN RETURN (FALSE); END_IF; - END_IF; - RETURN (TRUE); -END_FUNCTION; -- definite_integral_expr_check - -(* Implicit interfaced from: mathematical_functions_schema *) -FUNCTION remove_first(alist : LIST OF GENERIC:GEN) : LIST OF GENERIC:GEN; - LOCAL - blist : LIST OF GENERIC:GEN := alist; - END_LOCAL; - IF SIZEOF (blist) > 0 THEN - REMOVE (blist, 1); - END_IF; - RETURN (blist); -END_FUNCTION; -- remove_first - -(* Implicit interfaced from: mathematical_functions_schema *) -FUNCTION dotted_identifiers_syntax(str : STRING) : BOOLEAN; - LOCAL - k : positive_integer; - m : positive_integer; - END_LOCAL; - IF NOT EXISTS (str) THEN RETURN (FALSE); END_IF; - k := parse_express_identifier (str, 1); - IF k = 1 THEN RETURN (FALSE); END_IF; - REPEAT WHILE k <= LENGTH (str); - IF (str[k] <> '.') OR (k = LENGTH (str)) THEN RETURN (FALSE); END_IF; - m := parse_express_identifier (str, k+1); - IF m = k + 1 THEN RETURN (FALSE); END_IF; - k := m; - END_REPEAT; - RETURN (TRUE); -END_FUNCTION; -- dotted_identifiers_syntax - -(* Implicit interfaced from: mathematical_functions_schema *) -FUNCTION parse_express_identifier(s : STRING; - i : positive_integer) : positive_integer; - LOCAL - k : positive_integer; - END_LOCAL; - k := i; - IF i <= LENGTH (s) THEN - IF (s[i] LIKE '@') THEN - REPEAT UNTIL (k > LENGTH (s)) OR - ((s[k] <> '_') AND NOT (s[k] LIKE '@') AND NOT (s[k] LIKE '#')); - k := k + 1; - END_REPEAT; - END_IF; - END_IF; - RETURN (k); -END_FUNCTION; -- parse_express_identifier - -(* Implicit interfaced from: mathematical_functions_schema *) -FUNCTION dot_count(str : STRING) : INTEGER; - LOCAL - n : INTEGER := 0; - END_LOCAL; - REPEAT i := 1 TO LENGTH (str); - IF str[i] = '.' THEN n := n + 1; END_IF; - END_REPEAT; - RETURN (n); -END_FUNCTION; -- dot_count - -(* Implicit interfaced from: iso13584_generic_expressions_schema *) -FUNCTION is_acyclic (arg: generic_expression): BOOLEAN; -RETURN (acyclic (arg, [])); -END_FUNCTION ; -- is_acyclic - -(* Implicit interfaced from: iso13584_generic_expressions_schema *) -FUNCTION acyclic (arg1: generic_expression; - arg2: SET OF generic_expression): BOOLEAN; - -LOCAL - result: BOOLEAN := TRUE; -END_LOCAL; - -IF ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SIMPLE_GENERIC_EXPRESSION' - IN TYPEOF (arg1)) -THEN - RETURN (TRUE); -END_IF; - -IF arg1 IN arg2 -THEN - RETURN (FALSE); -END_IF; - -IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.UNARY_GENERIC_EXPRESSION' - IN TYPEOF (arg1) -THEN - RETURN - (acyclic(arg1\unary_generic_expression.operand,arg2+[arg1])); -END_IF; - -IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 -'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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; -- acyclic - -(* Implicit interfaced from: iso13584_expressions_schema *) -FUNCTION is_int_expr (arg: numeric_expression) : BOOLEAN; - -IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.INT_LITERAL' IN TYPEOF(arg) -THEN - RETURN (TRUE); -END_IF; -IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.REAL_LITERAL' IN TYPEOF(arg) -THEN - RETURN (FALSE); -END_IF; -IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.INT_NUMERIC_VARIABLE' IN TYPEOF(arg) -THEN - RETURN (TRUE); -END_IF; -IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.REAL_NUMERIC_VARIABLE' IN TYPEOF(arg) -THEN - RETURN (FALSE); -END_IF; -IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ABS_FUNCTION' IN TYPEOF(arg) -THEN - RETURN (is_int_expr(arg\unary_numeric_expression.operand)); -END_IF; -IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MINUS_FUNCTION' IN TYPEOF(arg) -THEN - RETURN (is_int_expr(arg\unary_numeric_expression.operand)); -END_IF; -IF ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SIN_FUNCTION' IN TYPEOF(arg)) - OR ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.COS_FUNCTION' IN TYPEOF(arg)) - OR ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.TAN_FUNCTION' IN TYPEOF(arg)) - OR ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ASIN_FUNCTION' IN TYPEOF(arg)) - OR ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ACOS_FUNCTION' IN TYPEOF(arg)) - OR ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ATAN_FUNCTION' IN TYPEOF(arg)) - OR ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.EXP_FUNCTION' IN TYPEOF(arg)) - OR ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LOG_FUNCTION' IN TYPEOF(arg)) - OR ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LOG2_FUNCTION' IN TYPEOF(arg)) - OR ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LOG10_FUNCTION' IN TYPEOF(arg)) - OR ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SQUARE_ROOT_FUNCTION' - IN TYPEOF(arg)) -THEN - RETURN (FALSE); -END_IF; -IF ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PLUS_EXPRESSION' IN TYPEOF(arg)) - OR ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MULT_EXPRESSION' - IN TYPEOF(arg)) - OR ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MAXIMUM_FUNCTION' - IN TYPEOF(arg)) - OR ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MINUS_EXPRESSION' IN TYPEOF(arg)) - OR ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.DIV_EXPRESSION' IN TYPEOF(arg)) - OR ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MOD_EXPRESSION' IN TYPEOF(arg)) -THEN - RETURN(TRUE); -END_IF; -IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SLASH_EXPRESSION' IN TYPEOF(arg) -THEN - RETURN (FALSE); -END_IF; -IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_FUNCTION' IN TYPEOF(arg) -THEN - RETURN (TRUE); -END_IF; -IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.VALUE_FUNCTION' IN TYPEOF(arg) -THEN - IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.INT_VALUE_FUNCTION' - IN TYPEOF(arg) - THEN - RETURN (TRUE); - ELSE - RETURN (FALSE); - END_IF; -END_IF; -IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.INTEGER_DEFINED_FUNCTION' - IN TYPEOF(arg) -THEN - RETURN(TRUE) ; -END_IF; -IF'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.REAL_DEFINED_FUNCTION' IN TYPEOF(arg) -THEN - RETURN(FALSE) ; -END_IF ; -IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.BOOLEAN_DEFINED_FUNCTION' - IN TYPEOF(arg) -THEN - RETURN(FALSE) ; -END_IF ; -IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.STRING_DEFINED_FUNCTION' - IN TYPEOF(arg) -THEN - RETURN (FALSE) ; -END_IF ; - -RETURN (FALSE); - -END_FUNCTION; -- is_int_expr - -(* Implicit interfaced from: iso13584_expressions_schema *) -FUNCTION is_SQL_mappable (arg: expression) : BOOLEAN; - -IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SIMPLE_NUMERIC_EXPRESSION' - IN TYPEOF (arg) -THEN - RETURN (TRUE); -END_IF; -IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SQL_MAPPABLE_DEFINED_FUNCTION' - IN TYPEOF (arg) -THEN - RETURN (TRUE); -END_IF; -IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MINUS_FUNCTION' IN TYPEOF(arg) -THEN - RETURN (is_SQL_mappable(arg\unary_numeric_expression.operand)); -END_IF; -IF ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ABS_FUNCTION' IN TYPEOF(arg)) - OR ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SIN_FUNCTION' IN TYPEOF(arg)) - OR ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.COS_FUNCTION' IN TYPEOF(arg)) - OR ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.TAN_FUNCTION' IN TYPEOF(arg)) - OR ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ASIN_FUNCTION' IN TYPEOF(arg)) - OR ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ACOS_FUNCTION' IN TYPEOF(arg)) - OR ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ATAN_FUNCTION' IN TYPEOF(arg)) - OR ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.EXP_FUNCTION' IN TYPEOF(arg)) - OR ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LOG_FUNCTION' IN TYPEOF(arg)) - OR ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LOG2_FUNCTION' IN TYPEOF(arg)) - OR ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LOG10_FUNCTION' IN TYPEOF(arg)) - OR ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SQUARE_ROOT_FUNCTION' - IN TYPEOF(arg)) - OR ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.VALUE_FUNCTION' IN TYPEOF(arg)) - OR ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_FUNCTION' - IN TYPEOF(arg)) -THEN - RETURN (FALSE); -END_IF; -IF ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PLUS_EXPRESSION' IN TYPEOF(arg)) - OR('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MULT_EXPRESSION' IN TYPEOF(arg)) - OR('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MAXIMUM_FUNCTION' - IN TYPEOF(arg)) - OR('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MINUS_EXPRESSION' IN TYPEOF(arg)) - OR ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.DIV_EXPRESSION' IN TYPEOF(arg)) - OR ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MOD_EXPRESSION' IN TYPEOF(arg)) - OR('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.POWER_EXPRESSION' - IN TYPEOF(arg)) -THEN - RETURN (FALSE); -END_IF; -IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SIMPLE_BOOLEAN_EXPRESSION' - IN TYPEOF (arg) -THEN - RETURN (TRUE); -END_IF; -IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.NOT_EXPRESSION' IN TYPEOF (arg) -THEN - RETURN (is_SQL_mappable (arg\UNARY_GENERIC_EXPRESSION.OPERAND)); -END_IF; -IF ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ODD_FUNCTION'IN TYPEOF (arg)) - OR ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.XOR_EXPRESSION' - IN TYPEOF (arg)) -THEN - RETURN (FALSE); -END_IF; -IF ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.AND_EXPRESSION' IN TYPEOF (arg)) - OR ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.COMPARISON_EQUAL' IN TYPEOF (arg)) - OR ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.COMPARISON_GREATER' - IN TYPEOF (arg)) - OR ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.COMPARISON_GREATER_EQUAL' - IN TYPEOF (arg)) - OR ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.COMPARISON_LESS' - IN TYPEOF (arg)) - OR ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.COMPARISON_LESS_EQUAL' - IN TYPEOF (arg)) - OR ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.COMPARISON_NOT_EQUAL' - IN TYPEOF (arg)) - OR ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.NUMERIC_DEFINED_FUNCTION' - IN TYPEOF(arg)) - OR ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.BOOLEAN_DEFINED_FUNCTION' - IN TYPEOF(arg)) - OR ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.STRING_DEFINED_FUNCTION' - IN TYPEOF(arg)) -THEN - RETURN (FALSE) ; -END_IF; - -IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SIMPLE_STRING_EXPRESSION' - IN TYPEOF(ARG) -THEN - RETURN (TRUE); -END_IF; -IF ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.INDEX_EXPRESSION' IN TYPEOF(arg)) - OR ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SUBSTRING_EXPRESSION' - IN TYPEOF(arg)) - OR ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CONCAT_EXPRESSION' - IN TYPEOF(arg)) - OR ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FORMAT_FUNCTION' - IN TYPEOF(arg)) -THEN - RETURN (FALSE); -END_IF; - - RETURN (FALSE); -END_FUNCTION; -- is_SQL_mappable -(* REFERENCE FROM (product_property_definition_schema); *) - FUNCTION get_shape_aspects (c_def_instance : characterized_definition):SET OF shape_aspect; - LOCAL - pd_set : SET OF product_definition_shape := []; - pdr_set : SET OF shape_aspect := []; - END_LOCAL; - - pd_set := bag_to_set(QUERY(pd <* USEDIN(c_def_instance, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pd))); - IF (SIZEOF(pd_set) < 1) THEN - RETURN (pdr_set); - END_IF; - REPEAT i := 1 TO HIINDEX(pd_set); - pdr_set := pdr_set + bag_to_set(USEDIN(pd_set[i], 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE')); - END_REPEAT; - RETURN (pdr_set); - END_FUNCTION; -(* REFERENCE FROM (product_property_representation_schema); *) - FUNCTION get_property_definition_representations (c_def_instance : characterized_definition):SET 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(c_def_instance, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 + bag_to_set(USEDIN(pd_set[i], 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')); - END_REPEAT; - RETURN (pdr_set); - END_FUNCTION; -(* REFERENCE FROM (Geometric_tolerance_mim); *) -FUNCTION get_shape_aspect_property_definition_representations - (s_a_instance : shape_aspect) : SET 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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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], 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.' + 'DEFINITION') | -'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_DEFINITION_REPRESENTATION' IN TYPEOF(pdr))); -END_REPEAT; -RETURN (pdr_set); -END_FUNCTION; - -(* Implicit interfaced from: Constructive_solid_geometry_2d_mim *) -FUNCTION valid_csg_2d_primitives (input : csg_solid_2d) : BOOLEAN; -CASE TRUE OF - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRIMITIVE_2D' IN TYPEOF(input\csg_solid_2d.tree_root_expression)) : - BEGIN - IF (SIZEOF(['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CIRCULAR_AREA', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.COMPLEX_AREA', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ELLIPTIC_AREA', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.POLYGONAL_AREA', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRIMITIVE_2D_WITH_INNER_BOUNDARY', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.RECTANGULAR_AREA'] * TYPEOF(input\csg_solid_2d.tree_root_expression)) > 0) - THEN - RETURN(TRUE); - ELSE - RETURN(FALSE); - END_IF; - END; - - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.BOOLEAN_RESULT_2D' IN TYPEOF(input\csg_solid_2d.tree_root_expression)) : - RETURN (valid_csg_2d_primitives(input\csg_solid_2d.tree_root_expression\boolean_result_2d.first_operand) - AND valid_csg_2d_primitives(input\csg_solid_2d.tree_root_expression\boolean_result_2d.second_operand)); - - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.HALF_SPACE_2D' IN TYPEOF(input\csg_solid_2d.tree_root_expression)) : RETURN(TRUE); - - OTHERWISE : RETURN(FALSE); -END_CASE; -END_FUNCTION; - -(* Implicit interfaced from: Constructive_solid_geometry_2d_mim *) -FUNCTION open_path_based_inner_boundary (input : SET OF primitive_2d) : BOOLEAN; - LOCAL - pass : BOOLEAN := TRUE; - END_LOCAL; - REPEAT i := 1 TO SIZEOF(input); - IF ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PATH_AREA_WITH_PARAMETERS' IN TYPEOF(input[i])) - AND ( - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CIRCLE' IN TYPEOF(input[i]\mapped_item.mapping_source\representation_map.mapping_origin)) - OR - (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.COMPOSITE_CURVE' IN TYPEOF(input[i]\mapped_item.mapping_source\representation_map.mapping_origin)) - AND - (input[i]\mapped_item.mapping_source\representation_map.mapping_origin\composite_curve.closed_curve = TRUE) - ) - ) - THEN - pass := FALSE; - END_IF; - END_REPEAT; - RETURN(pass); -END_FUNCTION; - -(* Implicit interfaced from: Default_tolerance_mim *) -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; - -(* Implicit interfaced from: Default_tolerance_mim *) -FUNCTION default_tolerance_table_cell_wr3 - (agg : compound_item_definition) : BOOLEAN; -BEGIN -IF (SIZEOF(QUERY ( i <* agg | (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM' IN TYPEOF(i)) - AND (i\representation_item.name = 'significant number of digits')) )) = 1) OR -((SIZEOF(QUERY ( i <* agg | (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM' IN TYPEOF(i)) AND - (i\representation_item.name = 'lower limit')) )) = 1) AND -(SIZEOF( QUERY ( i <* agg | (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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; - -(* Implicit interfaced from: Default_tolerance_mim *) -FUNCTION default_tolerance_table_cell_wr4 - (agg : compound_item_definition) : BOOLEAN; -BEGIN -IF (SIZEOF(QUERY ( i <* agg | (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM' IN TYPEOF(i)) AND - (i\representation_item.name = 'plus minus tolerance value')) )) = 1) OR -((SIZEOF(QUERY ( i <* agg | (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM' IN TYPEOF(i)) AND ( - i\representation_item.name = 'lower tolerance value')) )) = 1) AND -(SIZEOF( QUERY ( i <* agg | (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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; - -(* Implicit interfaced from: Default_tolerance_mim *) -FUNCTION default_tolerance_table_cell_wr5 - (agg : compound_item_definition) : BOOLEAN; -BEGIN -IF (SIZEOF(QUERY ( i <* agg | ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF(i)) )) <= 1) AND -(SIZEOF(QUERY ( i <* agg | ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF(i)) )) = - SIZEOF(QUERY ( i <* agg | (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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; - -(* Implicit interfaced from: Geometric_tolerance_mim *) -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 | ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(rep))); - - IF (SIZEOF( QUERY( srwp <* parameter_representations | - (SIZEOF( QUERY( i <* srwp.items | - (i.name='orientation') AND - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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', 'circular curve': 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(['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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(['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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(['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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(['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT']*TYPEOF(i) - ) = 2))) = 1) )) = 1)); - OTHERWISE : RETURN(FALSE); - END_CASE; -END_FUNCTION; - -(* Implicit interfaced from: Inertia_characteristics_mim *) -FUNCTION value_range_aggregate_rep_item (agg : AGGREGATE OF representation_item) : BOOLEAN; - BEGIN - IF (SIZEOF(QUERY(i1 <* agg | ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'MEASURE_REPRESENTATION_ITEM' IN TYPEOF(i1)) )) = 6) THEN - RETURN (TRUE); - ELSE - RETURN (FALSE); - END_IF; - END; -END_FUNCTION; - -(* Implicit interfaced from: Ply_orientation_specification_mim *) - 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; -(* REFERENCE FROM (basic_attribute_schema); *) - FUNCTION get_description_value (obj : description_attribute_select):text; - LOCAL - description_bag : BAG OF description_attribute := (USEDIN(obj, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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; - -(* Implicit interfaced from: product_definition_schema *) - FUNCTION acyclic_product_category_relationship (relation : product_category_relationship; children : SET OF product_category):BOOLEAN; - LOCAL - x : SET OF product_category_relationship; - local_children : SET OF product_category; - END_LOCAL; - - REPEAT i := 1 TO HIINDEX(children); - IF relation.category :=: children[i] THEN - RETURN (FALSE); - END_IF; - END_REPEAT; - x := bag_to_set(USEDIN(relation.category, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PRODUCT_CATEGORY_RELATIONSHIP.SUB_CATEGORY')); - local_children := children + relation.category; - IF SIZEOF(x) > 0 THEN - REPEAT i := 1 TO HIINDEX(x); - IF NOT acyclic_product_category_relationship(x[i], local_children) THEN - RETURN (FALSE); - END_IF; - END_REPEAT; - END_IF; - RETURN (TRUE); - END_FUNCTION; - -(* Implicit interfaced from: date_time_schema *) -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; - -(* Implicit interfaced from: date_time_schema *) -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; - -(* Implicit interfaced from: date_time_schema *) -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; - -(* Implicit interfaced from: topology_schema *) - 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 := ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.POLY_LOOP' IN TYPEOF(l[1])); - REPEAT i := 2 TO SIZEOF(l); - IF(('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.POLY_LOOP' IN TYPEOF(l[i])) <> poly_loop_type) - THEN - RETURN(TRUE); - END_IF; - END_REPEAT; - RETURN(FALSE); - END_FUNCTION; - -(* Implicit interfaced from: topology_schema *) - FUNCTION list_to_set(l : LIST [0:?] OF GENERIC:T) : SET 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; - -(* Implicit interfaced from: Ap242_managed_model_based_3d_engineering_mim *) - 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(['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + - 'CHANGE_REQUEST', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + - 'START_REQUEST'] * - TYPEOF (x)) = 1)) - THEN RETURN(FALSE); - END_IF; - 'initiator' : IF SIZEOF (e.items) <> - SIZEOF (QUERY (x <* e.items | - SIZEOF(['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + - 'CHANGE_REQUEST', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + - 'START_REQUEST', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + - 'START_WORK', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + - 'CHANGE'] * - TYPEOF (x)) = 1)) - THEN RETURN(FALSE); - END_IF; - 'creator' : IF SIZEOF (e.items) <> - SIZEOF (QUERY (x <* e.items | - SIZEOF (['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + - 'PRODUCT_DEFINITION_FORMATION', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + - 'PRODUCT_DEFINITION'] * - TYPEOF (x)) = 1)) - THEN RETURN (FALSE); - END_IF; - 'part_supplier' : IF SIZEOF (e.items) <> - SIZEOF (QUERY (x <* e.items | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + - 'PRODUCT_DEFINITION_FORMATION' - IN TYPEOF (x))) - THEN RETURN(FALSE); - END_IF; - 'design_supplier' : IF SIZEOF (e.items) <> - SIZEOF (QUERY (x <* e.items | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + - 'PRODUCT_DEFINITION_FORMATION' - IN TYPEOF (x))) - THEN RETURN(FALSE); - END_IF; - 'design_owner' : IF SIZEOF (e.items) <> - SIZEOF (QUERY (x <* e.items | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRODUCT' - IN TYPEOF (x))) - THEN RETURN(FALSE); - END_IF; - 'configuration_manager' : IF SIZEOF (e.items) <> - SIZEOF (QUERY (x <* e.items | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + - 'CONFIGURATION_ITEM' - IN TYPEOF (x))) - THEN RETURN(FALSE); - END_IF; - 'contractor' : IF SIZEOF (e.items) <> - SIZEOF (QUERY (x <* e.items | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CONTRACT' - IN TYPEOF (x))) - THEN RETURN(FALSE); - END_IF; - 'classification_officer' : IF SIZEOF (e.items) <> - SIZEOF (QUERY (x <* e.items | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + - 'SECURITY_CLASSIFICATION' - IN TYPEOF (x))) THEN - RETURN(FALSE); - END_IF; - OTHERWISE : RETURN(TRUE); - END_CASE; - RETURN (TRUE); - END_FUNCTION; - -(* Implicit interfaced from: topology_schema *) - FUNCTION boolean_choose (b : boolean; - choice1, choice2 : generic : item) : generic : item; - - IF b THEN - RETURN (choice1); - ELSE - RETURN (choice2); - END_IF; - END_FUNCTION; - -(* Implicit interfaced from: topology_schema *) - 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; - -(* Implicit interfaced from: geometry_schema *) -FUNCTION normalise - (arg : vector_or_direction) : vector_or_direction; -LOCAL - ndim : INTEGER; - v : direction := dummy_gri || direction ([1.0,0.0,0.0]); - result : vector_or_direction; - vec : vector := dummy_gri || vector (v, 1.0); - 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 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.VECTOR' IN TYPEOF(arg) THEN - BEGIN - v := dummy_gri || direction(arg\vector.orientation.direction_ratios); - IF arg\vector.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 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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; - -(* Implicit interfaced from: geometry_schema *) -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; - -(* Implicit interfaced from: geometry_schema *) -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; - -(* Implicit interfaced from: geometry_schema *) -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; - -(* Implicit interfaced from: geometry_schema *) -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; - -(* Implicit interfaced from: geometry_schema *) -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; - -(* Implicit interfaced from: geometry_schema *) -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 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.VECTOR' IN TYPEOF (vec) THEN - v := dummy_gri || direction(vec\vector.orientation.direction_ratios); - mag := scalar * vec\vector.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; - -(* Implicit interfaced from: geometry_schema *) -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; - -(* Implicit interfaced from: geometry_schema *) -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 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.VECTOR' IN TYPEOF(arg1) THEN - mag1 := arg1\vector.magnitude; - vec1 := arg1\vector.orientation; - ELSE - mag1 := 1.0; - vec1 := arg1; - END_IF; - IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.VECTOR' IN TYPEOF(arg2) THEN - mag2 := arg2\vector.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; - -(* Implicit interfaced from: geometry_schema *) -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; - -(* Implicit interfaced from: geometry_schema *) -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; - -(* Implicit interfaced from: representation_schema *) - 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], 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.REPRESENTATION_MAP.MAPPED_REPRESENTATION')); - IF SIZEOF(rms) > 0 THEN - REPEAT j := 1 TO HIINDEX(rms); - mis := bag_to_set(USEDIN(rms[i], 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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; - -(* Implicit interfaced from: representation_schema *) - 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,'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 , '') | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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; - -(* Implicit interfaced from: structural_response_representation_schema *) -FUNCTION build_direction_node - (node_1 : node_representation; - node_2 : node_representation): LIST [2:3] OF REAL; - -LOCAL - nodal_direction_ratios : LIST [2:3] OF REAL; - u : direction; - i : INTEGER; - ndim : INTEGER; - rep_items : SET [1:?] of representation_item; - node_1_point : cartesian_point; - node_2_point : cartesian_point; -END_LOCAL; - -rep_items := node_1.items; -REPEAT i := 1 TO SIZEOF(rep_items); - IF ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CARTESIAN_POINT' IN TYPEOF(rep_items[i])) THEN - node_1_point := rep_items[i]; - ESCAPE; - END_IF; -END_REPEAT; - -rep_items := node_2.items; -REPEAT i := 1 TO SIZEOF(rep_items); - IF ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CARTESIAN_POINT' IN TYPEOF(rep_items[i])) THEN - node_2_point := rep_items[i]; - ESCAPE; - END_IF; -END_REPEAT; - -ndim := HIINDEX(node_2_point.coordinates); -REPEAT i := 1 TO ndim; - u.direction_ratios[i] := node_2_point.coordinates[i] - - node_1_point.coordinates[i]; -END_REPEAT; - -u := normalise (u); -REPEAT i := 1 TO ndim; - nodal_direction_ratios[i] := u.direction_ratios[i]; -END_REPEAT; - -RETURN (nodal_direction_ratios); - -END_FUNCTION; - -(* Implicit interfaced from: structural_response_representation_schema *) -FUNCTION consistent_geometric_reference ( - aspect : GENERIC; - item : geometric_representation_item) : BOOLEAN; - -LOCAL - srrs : STRING; - feacr : STRING; - aspect_type : SET [1:?] OF STRING; - item_type : SET [1:?] OF STRING; -END_LOCAL; - -srrs := 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.'; -feacr := 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.'; -aspect_type := TYPEOF (aspect); -item_type := TYPEOF (item); - -IF ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SOLID_MODEL' IN item_type) THEN - IF ((srrs + 'ELEMENT_VOLUME') IN aspect_type) THEN - RETURN (TRUE); - END_IF; -END_IF; - -IF (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SURFACE' IN item_type) OR - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FACE_SURFACE' IN item_type)) THEN - IF SIZEOF ([(feacr + 'VOLUME_3D_FACE'), - (feacr + 'VOLUME_2D_FACE'), - (feacr + 'SURFACE_3D_FACE'), - (feacr + 'SURFACE_2D_FACE')] * - aspect_type ) = 1 THEN - RETURN (TRUE); - END_IF; -END_IF; - -IF (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CURVE' IN item_type) OR - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.EDGE_CURVE' IN item_type)) THEN - IF SIZEOF ([(feacr + 'VOLUME_3D_EDGE'), - (feacr + 'VOLUME_2D_EDGE'), - (feacr + 'SURFACE_3D_EDGE'), - (feacr + 'SURFACE_2D_EDGE'), - (srrs + 'CURVE_EDGE')] * - aspect_type ) = 1 THEN - RETURN (TRUE); - END_IF; -END_IF; - -RETURN (FALSE); - -END_FUNCTION; - -(* Implicit interfaced from: structural_response_representation_schema *) -FUNCTION consistent_element_or_group_reference ( - aspect : GENERIC; - element : GENERIC) : BOOLEAN; - -LOCAL - srrs : STRING; - i : INTEGER; -END_LOCAL; - -srrs := 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.'; - -IF ((srrs + 'ELEMENT_REPRESENTATION') IN TYPEOF(element)) THEN - RETURN (consistent_element_reference (aspect, element)); -END_IF; - -IF ((srrs + 'ELEMENT_GROUP') IN TYPEOF(element)) THEN - REPEAT i := 1 TO HIINDEX (element.elements); - IF NOT (consistent_element_reference (aspect, element.elements[i])) - THEN - RETURN (FALSE); - END_IF; - END_REPEAT; - RETURN (TRUE); -END_IF; - -RETURN (FALSE); - -END_FUNCTION; - -(* Implicit interfaced from: structural_response_representation_schema *) -FUNCTION consistent_element_reference ( - aspect : GENERIC; - element : element_representation) : BOOLEAN; - -LOCAL - srrs : STRING; - feacr : STRING; - aspect_type : SET [1:?] OF STRING; - element_type : SET [1:?] OF STRING; -END_LOCAL; - -srrs := 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.'; -feacr := 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.'; -aspect_type := TYPEOF (aspect); -element_type := TYPEOF (element); - -IF ((srrs + 'ELEMENT_REPRESENTATION') - IN element_type) THEN - IF ((srrs + 'ELEMENT_VOLUME') IN aspect_type) THEN - RETURN (TRUE); - END_IF; -END_IF; - -IF ((srrs + 'VOLUME_3D_ELEMENT_REPRESENTATION') - IN element_type) THEN - IF (((feacr + 'VOLUME_3D_FACE') IN aspect_type) OR - ((feacr + 'VOLUME_3D_EDGE') IN aspect_type)) THEN - RETURN (TRUE); - END_IF; -END_IF; - -IF (((srrs + 'AXISYMMETRIC_VOLUME_2D_ELEMENT_REPRESENTATION') - IN element_type) OR - ((srrs + 'PLANE_VOLUME_2D_ELEMENT_REPRESENTATION') - IN element_type)) THEN - IF (((feacr + 'VOLUME_2D_FACE') IN aspect_type) OR - ((feacr + 'VOLUME_2D_EDGE') IN aspect_type)) THEN - RETURN (TRUE); - END_IF; -END_IF; - -IF ((srrs + 'SURFACE_3D_ELEMENT_REPRESENTATION') - IN element_type) THEN - IF (((feacr + 'SURFACE_3D_FACE') IN aspect_type) OR - ((feacr + 'SURFACE_3D_EDGE') IN aspect_type)) THEN - RETURN (TRUE); - END_IF; -END_IF; - -IF (((srrs + 'AXISYMMETRIC_SURFACE_2D_ELEMENT_REPRESENTATION') - IN element_type) OR - ((srrs + 'PLANE_SURFACE_2D_ELEMENT_REPRESENTATION') - IN element_type)) THEN - IF (((feacr + 'SURFACE_2D_FACE') IN aspect_type) OR - ((feacr + 'SURFACE_2D_EDGE') IN aspect_type)) THEN - RETURN (TRUE); - END_IF; -END_IF; - -IF (((srrs + 'CURVE_3D_ELEMENT_REPRESENTATION') - IN element_type) OR - ((srrs + 'AXISYMMETRIC_CURVE_2D_ELEMENT_REPRESENTATION') - IN element_type) OR - ((srrs + 'PLANE_CURVE_2D_ELEMENT_REPRESENTATION') - IN element_type)) THEN - IF ((srrs + 'CURVE_EDGE') IN aspect_type) THEN - RETURN (TRUE); - END_IF; -END_IF; - -RETURN (FALSE); - -END_FUNCTION; - -(* Implicit interfaced from: structural_response_representation_schema *) -FUNCTION required_3d_nodes - (node_list : LIST [1:?] OF node_representation; - element_shape : volume_3d_element_shape; - order : element_order) : BOOLEAN; - LOCAL - vertex_nodes : INTEGER; - edge_nodes : INTEGER; - edge_face_body_nodes : INTEGER; - END_LOCAL; - - IF (element_shape = volume_3d_element_shape.hexahedron) THEN - vertex_nodes := 8; - IF (order = element_order.linear) THEN - edge_nodes := 0; - edge_face_body_nodes := 0; - END_IF; - IF (order = element_order.quadratic) THEN - edge_nodes := 12; - edge_face_body_nodes := 19; - END_IF; - IF (order = element_order.cubic) THEN - edge_nodes := 24; - edge_face_body_nodes := 56; - END_IF; - END_IF; - - IF (element_shape = volume_3d_element_shape.wedge) THEN - vertex_nodes := 6; - IF (order = element_order.linear) THEN - edge_nodes := 0; - edge_face_body_nodes := 0; - END_IF; - IF (order = element_order.quadratic) THEN - edge_nodes := 9; - edge_face_body_nodes := 12; - END_IF; - IF (order = element_order.cubic) THEN - edge_nodes := 18; - edge_face_body_nodes := 34; - END_IF; - END_IF; - - IF (element_shape = volume_3d_element_shape.tetrahedron) THEN - vertex_nodes := 4; - IF (order = element_order.linear) THEN - edge_nodes := 0; - edge_face_body_nodes := 0; - END_IF; - IF (order = element_order.quadratic) THEN - edge_nodes := 6; - edge_face_body_nodes := 6; - END_IF; - IF (order = element_order.cubic) THEN - edge_nodes := 12; - edge_face_body_nodes := 16; - END_IF; - END_IF; - - IF (element_shape = volume_3d_element_shape.pyramid) THEN - vertex_nodes := 5; - IF (order = element_order.linear) THEN - edge_nodes := 0; - edge_face_body_nodes := 0; - END_IF; - IF (order = element_order.quadratic) THEN - edge_nodes := 8; - edge_face_body_nodes := 9; - END_IF; - IF (order = element_order.cubic) THEN - edge_nodes := 16; - edge_face_body_nodes := 25; - END_IF; - END_IF; - - RETURN ((SIZEOF (node_list) = vertex_nodes + edge_nodes) OR - (SIZEOF (node_list) = vertex_nodes + edge_face_body_nodes)); - -END_FUNCTION; - -(* Implicit interfaced from: structural_response_representation_schema *) -FUNCTION required_2d_nodes - (node_list : LIST [1:?] OF node_representation; - element_shape : element_2d_shape; - order : element_order) : BOOLEAN; - LOCAL - vertex_nodes : INTEGER; - edge_nodes : INTEGER; - edge_face_body_nodes : INTEGER; - END_LOCAL; - - IF (element_shape = element_2d_shape.triangle) THEN - vertex_nodes := 3; - IF (order = element_order.linear) THEN - edge_nodes := 0; - edge_face_body_nodes := 0; - END_IF; - IF (order = element_order.quadratic) THEN - edge_nodes := 3; - edge_face_body_nodes := 3; - END_IF; - IF (order = element_order.cubic) THEN - edge_nodes := 6; - edge_face_body_nodes := 7; - END_IF; - END_IF; - - IF (element_shape = element_2d_shape.quadrilateral) THEN - vertex_nodes := 4; - IF (order = element_order.linear) THEN - edge_nodes := 0; - edge_face_body_nodes := 0; - END_IF; - IF (order = element_order.quadratic) THEN - edge_nodes := 4; - edge_face_body_nodes := 5; - END_IF; - IF (order = element_order.cubic) THEN - edge_nodes := 8; - edge_face_body_nodes := 12; - END_IF; - END_IF; - - RETURN ((SIZEOF (node_list) = vertex_nodes + edge_nodes) OR - (SIZEOF (node_list) = vertex_nodes + edge_face_body_nodes)); - -END_FUNCTION; - -(* Implicit interfaced from: structural_response_representation_schema *) -FUNCTION required_1d_nodes - (node_list : LIST [1:?] OF node_representation; - order : element_order) : BOOLEAN; - - LOCAL - end_nodes : INTEGER; - additional_nodes : INTEGER; - END_LOCAL; - - end_nodes := 2; - - IF (order = element_order.linear) THEN - additional_nodes := 0; - END_IF; - IF (order = element_order.quadratic) THEN - additional_nodes := 1; - END_IF; - IF (order = element_order.cubic) THEN - additional_nodes := 2; - END_IF; - - RETURN (SIZEOF (node_list) = end_nodes + additional_nodes); - -END_FUNCTION; - -(* Implicit interfaced from: structural_response_representation_schema *) -FUNCTION required_0d_nodes - (node_list : LIST [1:?] OF node_representation): BOOLEAN; - - RETURN (SIZEOF (node_list) = 1); - -END_FUNCTION; - -(* Implicit interfaced from: structural_response_representation_schema *) -FUNCTION number_of_terms - (node_dof_list : LIST [1:?] OF LIST [1:?] OF degree_of_freedom; - matrix_type : matrix_symmetry) : INTEGER; - LOCAL - num_terms : INTEGER; - number_of_freedoms : INTEGER; - END_LOCAL; - - number_of_freedoms := 0; (* loop for each item in the outer list*) - - REPEAT i := 1 TO SIZEOF (node_dof_list); (* find size of inner list*) - number_of_freedoms := number_of_freedoms + SIZEOF (node_dof_list[i]); - END_REPEAT; - - IF (matrix_type = symmetric) THEN - num_terms := (number_of_freedoms * (number_of_freedoms+1)) DIV 2; - END_IF; - - IF (matrix_type = diagonal) THEN - num_terms := number_of_freedoms; - END_IF; - -RETURN (num_terms); - -END_FUNCTION; - -(* Implicit interfaced from: structural_response_representation_schema *) -FUNCTION valid_parametric_coordinate - (coordinates : LIST [1:3] OF parameter_value): BOOLEAN; - - LOCAL - i : INTEGER; - END_LOCAL; - - REPEAT i:=1 TO HIINDEX(coordinates); - IF ((1.0 < coordinates[i]) OR (coordinates[i] < -1.0)) THEN - RETURN (FALSE); - END_IF; - END_REPEAT; - - RETURN (TRUE); - -END_FUNCTION; - -(* Implicit interfaced from: mesh_topology_schema *) -FUNCTION all_mesh_vertices(arg : array_based_unstructured_mesh_and_vertices) - : BOOLEAN; -LOCAL - vertex_set : SET OF vertex := []; - cell : vertex_defined_cell; -END_LOCAL; - REPEAT i := 1 TO arg.cell_count; - cell := arg.cells[i]; - REPEAT j := 1 TO cell.vn_count; - vertex_set := vertex_set + cell.vertices[j]; - END_REPEAT; - END_REPEAT; - IF (SIZEOF(vertex_set) <> arg.index_count) THEN - RETURN(FALSE); - END_IF; - REPEAT i := 1 TO arg.index_count; - IF (NOT (arg.vertices[i] IN vertex_set) ) THEN - RETURN(FALSE); - END_IF; - END_REPEAT; - RETURN(TRUE); -END_FUNCTION; - -(* Implicit interfaced from: topology_schema *) - 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; - -(* Implicit interfaced from: mesh_topology_schema *) -FUNCTION cell_counts(arg : vertex_defined_cell) : ARRAY[1:3] OF INTEGER; -LOCAL - om1 : INTEGER := 0; -- (order - 1) - om1sq : INTEGER := om1**2; -- (order - 1) squared - vts : INTEGER; -- number of bounding vertices - eds : INTEGER; -- number of edges - qf : INTEGER := 0; -- number of quadrilateral faces - tf : INTEGER := 0; -- number of triangular faces - result : ARRAY [1:3] OF INTEGER := [0,0,0]; -END_LOCAL; - CASE arg.order OF - linear : om1 := 0; - quadratic : om1 := 1; - cubic : om1 := 2; - OTHERWISE : RETURN(result); - END_CASE; - om1sq := om1**2; - CASE arg.shape OF - cell_shape_0D.single : - BEGIN - vts := 1; eds := 0; qf := 0; tf := 0; - result[1] := vts; - result[2] := om1*eds; -- 0, 0, 0 - result[3] := 0; -- 0, 0, 0 - END; - cell_shape_1D.line : - BEGIN - vts := 2; eds := 1; qf := 0; tf := 0; - result[1] := vts; - result[2] := om1*eds; -- 0, 1, 2 - result[3] := 0; -- 0, 0, 0 - END; - cell_shape_2D.quadrilateral : - BEGIN - vts := 4; eds := 4; qf := 1; tf := 0; - result[1] := vts; - result[2] := om1*eds; -- 0, 4, 8 - result[3] := om1sq*qf; -- 0, 1, 4 - END; - cell_shape_2D.triangle : - BEGIN - vts := 3; eds := 3; qf := 0; tf := 1; - result[1] := vts; - result[2] := om1*eds; -- 0, 3, 6 - result[3] := (om1-1)*tf; -- 0, 1 - CASE arg.order OF - linear : result[3] := 0; -- 0 - END_CASE; - END; - cell_shape_3D.hexahedron : - BEGIN - vts := 8; eds := 12; qf := 6; tf := 0; - result[1] := vts; - result[2] := om1*eds; -- 0, 12, 24 - result[3] := om1sq*(qf+om1); -- 0, 7, 32 - END; - cell_shape_3D.wedge : - BEGIN - vts := 6; eds := 9; qf := 3; tf := 2; - result[1] := vts; - result[2] := om1*eds; -- 0, 9, 18 - result[3] := om1sq*qf + om1*tf; -- 0, 3, 16 - END; - cell_shape_3D.tetrahedron : - BEGIN - vts := 4; eds := 6; qf := 0; tf := 4; - result[1] := vts; - result[2] := om1*eds; -- 0, 6, 12 - result[3] := (om1-1)*tf; -- 0, 4 - CASE arg.order OF - linear : result[3] := 0; -- 0 - END_CASE; - END; - cell_shape_3D.pyramid : - BEGIN - vts := 5; eds := 8; qf := 1; tf := 4; - result[1] := vts; - result[2] := om1*eds; -- 0, 8, 16 - result[3] := om1sq*qf + (om1-1)*tf; -- 1, 9 - CASE arg.order OF - linear : result[3] := 0; -- 0 - END_CASE; - END; - END_CASE; -RETURN(result); -END_FUNCTION; - -(* Implicit interfaced from: mesh_topology_schema *) -FUNCTION shorten_array(longa : ARRAY OF GENERIC : T; - oldl, newl : INTEGER) : ARRAY OF GENERIC : T; - LOCAL - shorta : ARRAY [1:newl] OF GENERIC : T; - END_LOCAL; - - IF (newl > oldl) THEN - RETURN(?); - ELSE - REPEAT i := 1 TO newl; - shorta[i] := longa[i]; - END_REPEAT; - RETURN(shorta); - END_IF; -END_FUNCTION; - -(* Implicit interfaced from: product_analysis_schema *) - FUNCTION definition_for_temporal_spatial_domain (domain : temporal_spatial_domain): BOOLEAN; - LOCAL - spatial_set : SET OF spatial_decomposition_of_temporal_spatial_domain; - behavioural_set : SET OF behavioural_decomposition_of_temporal_spatial_domain; - domains : SET OF temporal_spatial_domain := []; - idealising : BAG OF idealisation_relationship; - spatial_bag : BAG OF spatial_decomposition_of_temporal_spatial_domain; - behavioural_bag : BAG OF behavioural_decomposition_of_temporal_spatial_domain; - END_LOCAL; - - idealising := USEDIN(domain, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.IDEALISATION_RELATIONSHIP.IDEALISATION'); - IF SIZEOF(idealising) > 0 THEN - RETURN (TRUE); - END_IF; - spatial_bag := USEDIN(domain, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SPATIAL_DECOMPOSITION_OF_TEMPORAL_SPATIAL_DOMAIN.PARTS'); - IF SIZEOF(spatial_bag) > 0 THEN - spatial_set := bag_to_set(spatial_bag); - REPEAT i := 1 TO HIINDEX(spatial_set); - domains := domains + spatial_set[i].whole; - END_REPEAT; - END_IF; - behavioural_bag := USEDIN(domain, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.BEHAVIOURAL_DECOMPOSITION_OF_TEMPORAL_SPATIAL_DOMAIN.PARTS'); - IF SIZEOF(behavioural_bag) > 0 THEN - behavioural_set := bag_to_set(behavioural_bag); - REPEAT i := 1 TO HIINDEX(behavioural_set); - domains := domains + behavioural_set[i].whole; - END_REPEAT; - END_IF; - IF SIZEOF(domains) > 0 THEN - REPEAT i := 1 TO HIINDEX(domains); - IF definition_for_temporal_spatial_domain(domains[i]) THEN - RETURN (TRUE); - END_IF; - END_REPEAT; - END_IF; - RETURN (FALSE); - END_FUNCTION; - -(* Implicit interfaced from: representation_schema *) - 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; - -(* Implicit interfaced from: domain_schema *) -FUNCTION is_coordinate_property(arg : specified_general_property) : BOOLEAN; - IF ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.EXTERNALLY_DEFINED_ITEM' IN - TYPEOF(arg) ) THEN - RETURN(TRUE); - END_IF; - RETURN ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.COORDINATE_DATA_NAME' IN TYPEOF(arg)); -END_FUNCTION; - -(* Implicit interfaced from: product_structure_schema *) -FUNCTION unambiguously_specified_multi_level_reference_designator (links : LIST[1:?] OF next_assembly_usage_occurrence) : BOOLEAN; -REPEAT i := 1 to SIZEOF(links) - 1; ---case 1 all in one file; had to disambiguate link[i].relating instance type to distinguish case 1 from case 3. - CASE TRUE OF - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRODUCT_DEFINITION' IN TYPEOF(links[i]\product_definition_relationship.relating_product_definition)) - AND - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRODUCT_DEFINITION' IN TYPEOF(links[i]\product_definition_relationship.related_product_definition)) - AND - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRODUCT_DEFINITION' IN TYPEOF(links[i+1]\product_definition_relationship.relating_product_definition)) : - BEGIN - IF NOT ( - (links[i]\product_definition_relationship.related_product_definition :=: - links[i+1]\product_definition_relationship.relating_product_definition) - OR - ((SIZEOF (QUERY (pdr <* USEDIN(links[i]\product_definition_relationship.related_product_definition, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRODUCT_DEFINITION_RELATIONSHIP.' + 'RELATED_PRODUCT_DEFINITION') | - pdr\product_definition_relationship.relating_product_definition :=: - links[i+1]\product_definition_relationship.relating_product_definition)) = 1) - AND - (links[i]\product_definition_relationship.related_product_definition\product_definition.formation\product_definition_formation.of_product - :=: - links[i+1]\product_definition_relationship.relating_product_definition\product_definition.formation\product_definition_formation.of_product))) - THEN - RETURN(FALSE); - END_IF; - END; - ---case 2 ; intermediate node reference from main to external file or both node references in external file. links[i].relating instance can be either pd or pdref. - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRODUCT_DEFINITION_REFERENCE' IN TYPEOF(links[i]\product_definition_relationship.related_product_definition)) - AND - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRODUCT_DEFINITION_REFERENCE' IN TYPEOF(links[i+1]\product_definition_relationship.relating_product_definition)) : - BEGIN - IF NOT ( - (links[i]\product_definition_relationship.related_product_definition :=: - links[i+1]\product_definition_relationship.relating_product_definition) - OR - ((SIZEOF (QUERY (pdr <* USEDIN(links[i]\product_definition_relationship.related_product_definition, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRODUCT_DEFINITION_RELATIONSHIP.' + 'RELATED_PRODUCT_DEFINITION') | - pdr\product_definition_relationship.relating_product_definition :=: - links[i+1]\product_definition_relationship.relating_product_definition)) = 1) - AND - (links[i]\product_definition_relationship.related_product_definition\product_definition_reference.product_id - = - links[i+1]\product_definition_relationship.relating_product_definition\product_definition_reference.product_id) - AND - (links[i]\product_definition_relationship.related_product_definition\product_definition_reference.id_owning_organization_name - = - links[i+1]\product_definition_relationship.relating_product_definition\product_definition_reference.id_owning_organization_name) - AND - (links[i]\product_definition_relationship.related_product_definition\product_definition_reference.product_definition_id - <> - links[i+1]\product_definition_relationship.relating_product_definition\product_definition_reference.product_definition_id))) - THEN - RETURN(FALSE); - END_IF; - END; - ---case 3 should never see -- link in external file referencing a node in main assembly file. Note link is just links[i]. - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRODUCT_DEFINITION_REFERENCE' IN TYPEOF(links[i]\product_definition_relationship.relating_product_definition)) - AND - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRODUCT_DEFINITION' IN TYPEOF(links[i]\product_definition_relationship.related_product_definition)) : - RETURN(FALSE); - - OTHERWISE : RETURN(FALSE); - END_CASE; - -END_REPEAT; -RETURN(TRUE); -END_FUNCTION; - -(* Implicit interfaced from: representation_schema *) - 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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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; -(* REFERENCE FROM (product_definition_schema); *) - FUNCTION acyclic_product_definition_relationship (relation : product_definition_relationship; relatives : SET [1:?] OF product_definition_or_reference; 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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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; - -(* Implicit interfaced from: product_property_representation_schema *) - FUNCTION get_directed_link ( nodes : LIST OF representation; - undirected_link : LIST OF chained_representation_link) : LIST OF representation_relationship; - LOCAL - directed_link : LIST OF representation_relationship := []; - END_LOCAL; - - IF (SIZEOF(nodes) <> SIZEOF(undirected_link) + 1) OR - (value_unique(nodes) = FALSE) - THEN - RETURN(?); - END_IF; - - REPEAT i := 1 to SIZEOF(undirected_link); - CASE TRUE OF - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.REPRESENTATION_CONTEXT' IN TYPEOF(undirected_link[i])) : - BEGIN - IF ((nodes[i]\representation.context_of_items :=: undirected_link[i]) AND - (nodes[i+1]\representation.context_of_items :=: undirected_link[i])) THEN - INSERT(directed_link, representation_relationship('','',nodes[i+1],nodes[i]), (i - 1)); - ELSE - RETURN(?); - END_IF; - END; - - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.REPRESENTATION_RELATIONSHIP' IN TYPEOF(undirected_link[i])) : - BEGIN - IF (((nodes[i] :=: undirected_link[i]\representation_relationship.rep_1) AND - (nodes[i+1] :=: undirected_link[i]\representation_relationship.rep_2)) OR - ((nodes[i] :=: undirected_link[i]\representation_relationship.rep_2) AND - (nodes[i+1] :=: undirected_link[i]\representation_relationship.rep_1))) THEN - INSERT(directed_link, representation_relationship('','',nodes[i+1],nodes[i]), (i - 1)); - ELSE - RETURN(?); - END_IF; - END; - - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MAPPED_ITEM' IN TYPEOF(undirected_link[i])) : - BEGIN - IF ((nodes[i] IN using_representations(undirected_link[i])) AND - (nodes[i+1] :=: undirected_link[i]\mapped_item.mapping_source\representation_map.mapped_representation)) THEN - INSERT(directed_link, representation_relationship('','',nodes[i+1],nodes[i]), (i - 1)); - ELSE - RETURN(?); - END_IF; - END; - - OTHERWISE : RETURN(?); - END_CASE; - END_REPEAT; - - IF (value_unique(directed_link) = FALSE) - THEN - RETURN(?); - END_IF; - - RETURN(directed_link); - END_FUNCTION; - -(* Implicit interfaced from: fea_definition_relationships_schema *) -FUNCTION consistent_topological_reference ( - aspect : GENERIC; - item : topological_representation_item) : BOOLEAN; - - LOCAL - status : BOOLEAN; - srrs : STRING; - END_LOCAL; - - status := FALSE; - srrs := 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.'; - - IF (srrs + 'ELEMENT_VOLUME') IN TYPEOF(aspect) THEN - IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CLOSED_SHELL' IN TYPEOF(item) THEN - status := TRUE; - END_IF; - END_IF; - - IF (srrs + 'VOLUME_3D_FACE') IN TYPEOF(aspect) THEN - IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FACE' IN TYPEOF(item) THEN - status := TRUE; - END_IF; - END_IF; - - IF (srrs + 'VOLUME_2D_FACE') IN TYPEOF(aspect) THEN - IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.EDGE' IN TYPEOF(item) THEN - status := TRUE; - END_IF; - END_IF; - - IF (srrs + 'SURFACE_3D_FACE') IN TYPEOF(aspect) THEN - IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FACE' IN TYPEOF(item) THEN - status := TRUE; - END_IF; - END_IF; - - IF (srrs + 'SURFACE_2D_FACE') IN TYPEOF(aspect) THEN - IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.EDGE' IN TYPEOF(item) THEN - status := TRUE; - END_IF; - END_IF; - - IF (srrs + 'VOLUME_3D_EDGE') IN TYPEOF(aspect) THEN - IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.EDGE' IN TYPEOF(item) THEN - status := TRUE; - END_IF; - END_IF; - - IF (srrs + 'VOLUME_2D_EDGE') IN TYPEOF(aspect) THEN - IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.VERTEX' IN TYPEOF(item) THEN - status := TRUE; - END_IF; - END_IF; - - IF (srrs + 'SURFACE_3D_EDGE') IN TYPEOF(aspect) THEN - IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.EDGE' IN TYPEOF(item) THEN - status := TRUE; - END_IF; - END_IF; - - - - IF (srrs + 'SURFACE_2D_EDGE') IN TYPEOF(aspect) THEN - IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.VERTEX' IN TYPEOF(item) THEN - status := TRUE; - END_IF; - END_IF; - - IF (srrs + 'CURVE_EDGE') IN TYPEOF(aspect) THEN - IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.EDGE' IN TYPEOF(item) THEN - status := TRUE; - - END_IF; - END_IF; - - IF 'TOPOLOGICAL_DEFINITION_AND_MESH_SCHEMA.TOPOLOGICAL_REGION' IN TYPEOF(item) THEN - status := TRUE; - END_IF; - - RETURN(status); - - END_FUNCTION; - -(* Implicit interfaced from: finite_element_analysis_control_and_result_schema *) -FUNCTION consistent_set_values - (values_and_locations : SET [1:?] OF GENERIC; - variable : GENERIC) : BOOLEAN; - - LOCAL - vv_type : STRING; - fv_type : SET [1:?] OF STRING; - i : INTEGER; - END_LOCAL; - - vv_type := variable_value_type (variable); - - REPEAT i := 1 TO HIINDEX (values_and_locations); - - fv_type := TYPEOF (values_and_locations[i].simple_value); - - IF NOT (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + - 'UNSPECIFIED_VALUE') IN fv_type) THEN - - IF NOT (vv_type IN fv_type) THEN - RETURN (FALSE); - END_IF; - - END_IF; - - END_REPEAT; - - RETURN (TRUE); - -END_FUNCTION; - -(* Implicit interfaced from: finite_element_analysis_control_and_result_schema *) -FUNCTION variable_value_type - (variable : GENERIC) : STRING; - - LOCAL - svt : STRING; - feacr : STRING; - variable_typeof : SET [1:?] OF STRING; - END_LOCAL; - - svt := 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.'; - feacr := 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.'; - variable_typeof := TYPEOF (variable); - - IF SIZEOF ([(feacr + 'CURVE_SCALAR_VARIABLE'), - (feacr + 'SURFACE_SCALAR_VARIABLE'), - (feacr + 'VOLUME_SCALAR_VARIABLE'), - (feacr + 'BOUNDARY_CURVE_SCALAR_VARIABLE'), - (feacr + 'BOUNDARY_SURFACE_SCALAR_VARIABLE'), - (feacr + 'AGGREGATED_SCALAR_VARIABLE'), - (feacr + 'VOLUME_ANGULAR_VARIABLE'), - (feacr + 'AGGREGATED_ANGULAR_VARIABLE'), - (feacr + 'APPLICATION_DEFINED_SCALAR_VARIABLE')] * - variable_typeof ) = 1 THEN - RETURN (svt + 'SCALAR'); - END_IF; - - IF SIZEOF ([(feacr + 'CURVE_VECTOR_2D_VARIABLE'), - (feacr + 'SURFACE_VECTOR_2D_VARIABLE'), - (feacr + 'APPLICATION_DEFINED_VECTOR_2D_VARIABLE')] * - variable_typeof ) = 1 THEN - RETURN (svt + 'TENSOR1_2D'); - END_IF; - - IF SIZEOF ([(feacr + 'CURVE_VECTOR_3D_VARIABLE'), - (feacr + 'SURFACE_VECTOR_3D_VARIABLE'), - (feacr + 'VOLUME_VECTOR_3D_VARIABLE'), - (feacr + 'BOUNDARY_CURVE_VECTOR_3D_VARIABLE'), - (feacr + 'BOUNDARY_SURFACE_VECTOR_3D_VARIABLE'), - (feacr + 'AGGREGATED_VECTOR_3D_VARIABLE'), - (feacr + 'APPLICATION_DEFINED_VECTOR_3D_VARIABLE')] * - variable_typeof ) = 1 THEN - RETURN (svt + 'TENSOR1_3D'); - END_IF; - - IF SIZEOF ([(feacr + 'SURFACE_TENSOR2_2D_VARIABLE'), - (feacr + 'APPLICATION_DEFINED_TENSOR2_2D_VARIABLE')] * - variable_typeof ) = 1 THEN - RETURN (svt + 'SYMMETRIC_TENSOR2_3D'); - END_IF; - - IF SIZEOF ([(feacr + 'VOLUME_TENSOR2_3D_VARIABLE'), - (feacr + 'AGGREGATED_TENSOR2_3D_VARIABLE'), - (feacr + 'APPLICATION_DEFINED_TENSOR2_3D_VARIABLE')] * - variable_typeof ) = 1 THEN - RETURN (svt + 'SYMMETRIC_TENSOR2_3D'); - END_IF; - - RETURN ('NO_MATCH'); - -END_FUNCTION; - -(* Implicit interfaced from: finite_element_analysis_control_and_result_schema *) -FUNCTION appropriate_set_value_existence - (values_and_locations : SET [1:?] OF GENERIC; - type_self : SET [1:?] OF STRING) : BOOLEAN; - - LOCAL - i : INTEGER; - END_LOCAL; - - REPEAT i := 1 TO HIINDEX (values_and_locations); - IF NOT (appropriate_value_existence - (values_and_locations[i].simple_value, type_self)) - THEN - RETURN (FALSE); - END_IF; - END_REPEAT; - - RETURN (TRUE); - -END_FUNCTION; - -(* Implicit interfaced from: finite_element_analysis_control_and_result_schema *) -FUNCTION appropriate_value_existence - (a_value_e : GENERIC; - type_self : SET [1:?] OF STRING) : BOOLEAN; - - LOCAL - feacr : STRING; - value_typeof : SET [1:?] OF STRING; - END_LOCAL; - - feacr := 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.'; - value_typeof := TYPEOF(a_value_e); - - IF (((feacr + 'OUTPUT_REQUEST_STATE') IN type_self) AND - NOT ((feacr + 'UNSPECIFIED_VALUE') IN value_typeof)) THEN - RETURN (FALSE); - END_IF; - - RETURN (TRUE); - -END_FUNCTION; - -(* Implicit interfaced from: finite_element_analysis_control_and_result_schema *) -FUNCTION necessary_value_coordinate_system - (cs_value : field_value; - coordinate_system : GENERIC): BOOLEAN; - - IF (SIZEOF ( - ['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.TENSOR1_2D', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.TENSOR1_3D', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SYMMETRIC_TENSOR2_2D', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SYMMETRIC_TENSOR2_3D'] * - TYPEOF (cs_value)) = 1) THEN - IF (NOT EXISTS (coordinate_system) ) THEN - RETURN (FALSE); - END_IF; - END_IF; - - RETURN (TRUE); - -END_FUNCTION; - -(* Implicit interfaced from: finite_element_analysis_control_and_result_schema *) -FUNCTION consistent_value - (c_value : field_value; - variable : GENERIC) : BOOLEAN; - - LOCAL - vv_type : STRING; - fv_type : SET [1:?] OF STRING; - END_LOCAL; - - vv_type := variable_value_type (variable); - - fv_type := TYPEOF (c_value); - - IF NOT (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + - 'UNSPECIFIED_VALUE') IN fv_type) THEN - - IF NOT (vv_type IN fv_type) THEN - RETURN (FALSE); - END_IF; - - END_IF; - - RETURN (TRUE); - -END_FUNCTION; - -(* Implicit interfaced from: finite_element_analysis_control_and_result_schema *) -FUNCTION consistent_list_values - (values : LIST [1:?] OF field_value; - variable : GENERIC) : BOOLEAN; - - LOCAL - vv_type : STRING; - fv_type : SET [1:?] OF STRING; - i : INTEGER; - END_LOCAL; - - vv_type := variable_value_type (variable); - - REPEAT i := 1 TO HIINDEX (values); - - fv_type := TYPEOF (values[i]); - - IF NOT (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + - 'UNSPECIFIED_VALUE') IN fv_type) THEN - - IF NOT (vv_type IN fv_type) THEN - RETURN (FALSE); - END_IF; - - END_IF; - - END_REPEAT; - - RETURN (TRUE); - -END_FUNCTION; - -(* Implicit interfaced from: finite_element_analysis_control_and_result_schema *) -FUNCTION appropriate_list_value_existence - (values : LIST [1:?] OF GENERIC; - type_self : SET [1:?] OF STRING) : BOOLEAN; - - LOCAL - i : INTEGER; - END_LOCAL; - - REPEAT i := 1 TO HIINDEX (values); - IF NOT (appropriate_value_existence (values[i], type_self)) THEN - RETURN (FALSE); - END_IF; - END_REPEAT; - - RETURN (TRUE); - -END_FUNCTION; -(* REFERENCE FROM (product_property_definition_schema); *) - FUNCTION acyclic_shape_aspect_relationship (relation : shape_aspect_relationship; relatives : SET [1:?] OF shape_aspect; specific_relation : STRING):BOOLEAN; - LOCAL - x : SET OF shape_aspect_relationship; - END_LOCAL; - - IF relation.relating_shape_aspect IN relatives THEN - RETURN (FALSE); - END_IF; - x := QUERY(sa <* bag_to_set(USEDIN(relation.relating_shape_aspect, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'SHAPE_ASPECT_RELATIONSHIP.' + 'RELATED_SHAPE_ASPECT')) | specific_relation IN TYPEOF(sa)); - REPEAT i := 1 TO HIINDEX(x); - IF NOT acyclic_shape_aspect_relationship(x[i], relatives + relation.relating_shape_aspect, specific_relation) THEN - RETURN (FALSE); - END_IF; - END_REPEAT; - RETURN (TRUE); - END_FUNCTION; -(* REFERENCE FROM (geometric_model_schema); *) -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; - -(* Implicit interfaced from: geometry_schema *) -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 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PCURVE' IN TYPEOF (c) THEN - surfs := [c\pcurve.basis_surface]; - ELSE - IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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; - -(* Implicit interfaced from: geometry_schema *) -FUNCTION associated_surface - (arg : pcurve_or_surface) : surface; -LOCAL - surf : surface; - END_LOCAL; - - IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PCURVE' IN TYPEOF(arg) THEN - surf := arg\pcurve.basis_surface; - ELSE - surf := arg; - END_IF; - RETURN(surf);END_FUNCTION; - -(* Implicit interfaced from: geometry_schema *) -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; - -(* Implicit interfaced from: geometry_schema *) -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; - -(* Implicit interfaced from: geometry_schema *) -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; - -(* Implicit interfaced from: geometry_schema *) -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; - -(* Implicit interfaced from: geometry_schema *) -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 (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.B_SPLINE_SURFACE' IN TYPEOF - (s.segments[i][j].parent_surface)) OR - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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; - -(* Implicit interfaced from: aic_manifold_surface *) -FUNCTION msf_surface_check (surf : surface) : BOOLEAN; - -(* This function varifies the validity of a surface in the - context of a manifold surface model. -*) - - (* elementary_surfaces are valid surface types - *) - IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ELEMENTARY_SURFACE' IN TYPEOF(surf) THEN - RETURN(TRUE); - ELSE - - (* a swept_surface shall have a valid sweeping curve - *) - IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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; - -(* Implicit interfaced from: aic_manifold_surface *) -FUNCTION msf_curve_check (cv : representation_item) : BOOLEAN; - -(* This function varifies the validity of a curve in the context of a - manifold surface model. Representation_items are - valid input, however, they are supposed to be curves; otherwise - this function will return false. -*) - -(* complex subtypes of curve that are both bounded_curve and - oneof conic, curve_replica, line, or offset_curve_3d are not - valid -*) -IF SIZEOF (['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.BOUNDED_CURVE', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CONIC', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CURVE_REPLICA', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LINE', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.OFFSET_CURVE_3D'] * TYPEOF(cv)) > 1 THEN - RETURN(FALSE); -END_IF; - -(* b_spline_curves shall not self-intersect - *) -IF (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 (['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CONIC', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LINE'] - * TYPEOF (cv)) = 1 THEN - RETURN(TRUE); - ELSE - - (* a curve_replica shall reference a valid curve - *) - IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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; - -(* Implicit interfaced from: product_data_quality_inspection_result_schema *) - FUNCTION inspected_product_definition - (dqir:data_quality_inspection_result_representation) - :BAG OF product_definition; - LOCAL - dqdr :BAG OF data_quality_definition_representation_relationship:= []; - pdqdr :BAG OF product_data_and_data_quality_relationship:= []; - pd :BAG OF product_definition:= []; - END_LOCAL; - dqdr := USEDIN(dqir,'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' - +'DATA_QUALITY_DEFINITION_REPRESENTATION_RELATIONSHIP.' - +'USED_REPRESENTATION'); - REPEAT i:= 1 TO SIZEOF(dqdr); - pdqdr := USEDIN(dqdr[i].definition, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' - +'PRODUCT_DATA_AND_DATA_QUALITY_RELATIONSHIP.' - +'DATA_QUALITY'); - REPEAT j:= 1 TO SIZEOF(pdqdr); - pd := pd + pdqdr[j].product_data; - END_REPEAT; - END_REPEAT; - RETURN(pd); - END_FUNCTION; - -(* Implicit interfaced from: shape_data_quality_criteria_schema *) - FUNCTION validate_measured_data_type - (ei:shape_data_quality_criterion; - type_string: STRING):LOGICAL; - LOCAL - sdqir: SET OF - SHAPE_DATA_QUALITY_INSPECTION_RESULT:=[]; - sdcr: SET OF - SHAPE_DATA_QUALITY_INSPECTION_CRITERION_REPORT:=[]; - sdir: SET OF - SHAPE_DATA_QUALITY_INSPECTION_INSTANCE_REPORT:=[]; - sdii: SET OF - SHAPE_DATA_QUALITY_INSPECTION_INSTANCE_REPORT_ITEM:=[]; - sdei: BAG OF - INSTANCE_REPORT_ITEM_WITH_EXTREME_INSTANCES:=[]; - END_LOCAL; - - -- STEP-1 - -- collect all shape_data_quality_inspection_criterion_report instances, - -- all shape_data_quality_inspection_instance_report_item instances, and - -- instance_report_item_with_extreme_instances instances - -- associated with the given shape_data_quality_criterion - -- via shape_data_quality_inspection_result. - - sdqir := QUERY(q <* bag_to_set(USEDIN(ei, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.'+ - 'DATA_QUALITY_INSPECTION_RESULT.'+ - 'CRITERION_INSPECTED'))| - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.'+ - 'SHAPE_DATA_QUALITY_INSPECTION_RESULT' - IN TYPEOF(q)); - IF(SIZEOF(sdqir) = 0) THEN - RETURN(TRUE); - END_IF; - REPEAT i:= 1 TO SIZEOF(sdqir); - sdcr := sdcr + QUERY(q <* bag_to_set(USEDIN(sdqir[i], - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.'+ - 'DATA_QUALITY_INSPECTION_REPORT.'+ - 'INSPECTION_RESULT'))| - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.'+ - 'SHAPE_DATA_QUALITY_INSPECTION_CRITERION_REPORT' - IN TYPEOF(q)); - END_REPEAT; - REPEAT i:= 1 TO SIZEOF(sdqir); - sdir := sdir + QUERY(q <* bag_to_set(USEDIN(sdqir[i], - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.'+ - 'DATA_QUALITY_INSPECTION_REPORT.'+ - 'INSPECTION_RESULT'))| - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.'+ - 'SHAPE_DATA_QUALITY_INSPECTION_INSTANCE_REPORT' - IN TYPEOF(q)); - END_REPEAT; - - -- If there is no report, then return true. - IF((SIZEOF(sdcr) = 0) AND (SIZEOF(sdir) = 0)) THEN - RETURN(TRUE); - END_IF; - - REPEAT i:= 1 TO SIZEOF(sdir); - sdii := sdii + QUERY(q <* sdir[i].inspected_instances| - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.'+ - 'SHAPE_DATA_QUALITY_INSPECTION_INSTANCE_REPORT_ITEM' - IN TYPEOF(q)); - END_REPEAT; - REPEAT i:= 1 TO SIZEOF(sdir); - sdei := sdei + QUERY(q <* sdir[i].inspected_instances| - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.'+ - 'INSTANCE_REPORT_ITEM_WITH_EXTREME_INSTANCES' - IN TYPEOF(q)); - END_REPEAT; - - -- When reports exist, then perform the following checking process. - -- Check representative_measured_value of - -- shape_data_quality_inspection_criterion_report - REPEAT i:= 1 TO SIZEOF(sdcr); - IF(NOT(type_string IN - TYPEOF(sdcr[i].representative_measured_value))) THEN - RETURN(FALSE); - END_IF; - END_REPEAT; - - -- Check measured_value of shape_data_quality_inspection_ - -- instance_report_item - REPEAT i:= 1 TO SIZEOF(sdii); - IF(NOT(type_string IN - TYPEOF(sdii[i].measured_value))) THEN - RETURN(FALSE); - END_IF; - END_REPEAT; - - -- Check measured_value of extreme_instances of - -- instance_report_item_with_extreme_instance - REPEAT i:= 1 TO SIZEOF(sdei); - REPEAT j:= 1 TO SIZEOF(sdei[i].extreme_instances); - IF(NOT(type_string IN - TYPEOF(sdei[i].extreme_instances[j].measured_value))) - THEN - RETURN(FALSE); - END_IF; - END_REPEAT; - END_REPEAT; - - RETURN(TRUE); - - END_FUNCTION; - -(* Implicit interfaced from: shape_data_quality_criteria_schema *) - FUNCTION validate_inspected_elements_type - (ei:shape_data_quality_criterion; - type_list:BAG OF STRING):LOGICAL; - LOCAL - sdqir: SET OF - SHAPE_DATA_QUALITY_INSPECTION_RESULT:=[]; - sdir: SET OF - SHAPE_DATA_QUALITY_INSPECTION_INSTANCE_REPORT:=[]; - sdiri: SET OF - SHAPE_DATA_QUALITY_INSPECTION_INSTANCE_REPORT_ITEM:=[]; - t_type_list:BAG OF STRING:=[]; - END_LOCAL; - - -- STEP-1 - -- collect all shape_data_quality_inspection_instance_report_item - -- instances associated with the given shape_data_quality_criterion - -- via shape_data_quality_inspection_result and - -- shape_data_quality_inspection_instance_report - - sdqir := QUERY(q <* bag_to_set(USEDIN(ei, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.'+ - 'DATA_QUALITY_INSPECTION_RESULT.'+ - 'CRITERION_INSPECTED'))| - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.'+ - 'SHAPE_DATA_QUALITY_INSPECTION_RESULT' - IN TYPEOF(q)); - IF(SIZEOF(sdqir) = 0) THEN - RETURN(TRUE); - END_IF; - REPEAT i:= 1 TO SIZEOF(sdqir); - sdir := sdir + QUERY(q <* bag_to_set(USEDIN(sdqir[i], - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.'+ - 'DATA_QUALITY_INSPECTION_REPORT.'+ - 'INSPECTION_RESULT'))| - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.'+ - 'SHAPE_DATA_QUALITY_INSPECTION_INSTANCE_REPORT' - IN TYPEOF(q)); - END_REPEAT; - IF(SIZEOF(sdir) = 0) THEN - RETURN(TRUE); - END_IF; - - REPEAT i:= 1 TO SIZEOF(sdir); - sdiri := sdiri + QUERY(q <* sdir[i].inspected_instances| - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.'+ - 'SHAPE_DATA_QUALITY_INSPECTION_INSTANCE_REPORT_ITEM' - IN TYPEOF(q)); - END_REPEAT; - - -- STEP-2 - -- check if the types of inspected_elements of the collected - -- instances are exactly coincident with the type names in the - -- type list given as an input argument of this function. - - -- If there is no instance_report_item, then return true. - IF(SIZEOF(sdiri) = 0) THEN - RETURN(TRUE); - END_IF; - - -- When reports exist, then perform the following checking process. - REPEAT i:= 1 TO SIZEOF(sdiri); - -- If the size of inspected_elements is not equal to the size of - -- type_list, then return false. - IF(SIZEOF(sdiri[i].inspected_elements) <> - SIZEOF(type_list)) THEN - RETURN(FALSE); - END_IF; - -- check all elements in the type_list - -- for each element of inspected_elements. - t_type_list := type_list; - REPEAT j:= 1 TO SIZEOF(sdiri[i].inspected_elements); - REPEAT k:= 1 TO SIZEOF(t_type_list); - IF(t_type_list[k] IN - TYPEOF(sdiri[i].inspected_elements[j])) THEN - t_type_list := t_type_list - t_type_list[k]; - ESCAPE; - END_IF; - END_REPEAT; - END_REPEAT; - IF(SIZEOF(t_type_list) > 0) THEN - RETURN(FALSE); - END_IF; - END_REPEAT; - - RETURN(TRUE); - END_FUNCTION; - -(* Implicit interfaced from: shape_data_quality_criteria_schema *) - FUNCTION validate_locations_of_extreme_value_type - (ei:shape_data_quality_criterion; - type_list:BAG OF STRING):LOGICAL; - LOCAL - sdqir: SET OF - SHAPE_DATA_QUALITY_INSPECTION_RESULT:=[]; - sdir: SET OF - SHAPE_DATA_QUALITY_INSPECTION_INSTANCE_REPORT:=[]; - sdei: SET OF - INSTANCE_REPORT_ITEM_WITH_EXTREME_INSTANCES:=[]; - t_type_list:BAG OF STRING:=[]; - END_LOCAL; - - -- STEP-1 - -- collect all instance_report_item_with_extreme_instances instances - -- associated with the given shape_data_quality_criterion - -- via shape_data_quality_inspection_result and - -- shape_data_quality_inspection_instance_report. - - sdqir := QUERY(q <* bag_to_set(USEDIN(ei, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.'+ - 'DATA_QUALITY_INSPECTION_RESULT.'+ - 'CRITERION_INSPECTED'))| - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.'+ - 'SHAPE_DATA_QUALITY_INSPECTION_RESULT' - IN TYPEOF(q)); - IF(SIZEOF(sdqir) = 0) THEN - RETURN(TRUE); - END_IF; - REPEAT i:= 1 TO SIZEOF(sdqir); - sdir := sdir + QUERY(q <* bag_to_set(USEDIN(sdqir[i], - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.'+ - 'DATA_QUALITY_INSPECTION_REPORT.'+ - 'INSPECTION_RESULT'))| - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.'+ - 'SHAPE_DATA_QUALITY_INSPECTION_INSTANCE_REPORT' - IN TYPEOF(q)); - END_REPEAT; - REPEAT i:= 1 TO SIZEOF(sdir); - sdei := sdei + QUERY(q <* sdir[i].inspected_instances| - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.'+ - 'INSTANCE_REPORT_ITEM_WITH_EXTREME_INSTANCES' - IN TYPEOF(q)); - END_REPEAT; - - -- STEP-2 - -- check if the types of locations_of_extreme_value attributes - -- of all extreme_instances attributes of the collected instances are - -- exactly coincident with the type names in the type list given as an - -- input argument of this function. - - -- If there is no instance report, then return true. - IF(SIZEOF(sdei) = 0) THEN - RETURN(TRUE); - END_IF; - - -- If the type_list is empty and - -- instance_report_item_with_extreme_instances exists, then return false. - IF((SIZEOF(type_list) = 0) AND (SIZEOF(sdei) <> 0)) THEN - RETURN(FALSE); - END_IF; - - -- When report_items exist, then perform the following checking process. - REPEAT i:= 1 TO SIZEOF(sdei); - REPEAT j:= 1 TO SIZEOF(sdei[i].extreme_instances); - -- If the size of locations_of_extreme_value is not equal to - -- the size of type_list, then return false. - IF(SIZEOF(sdei[i].extreme_instances[j]. - locations_of_extreme_value) <> - SIZEOF(type_list)) THEN - RETURN(FALSE); - END_IF; - t_type_list := type_list; - -- check all elements of the type_list - -- for each element of locations_of_extreme_value. - REPEAT k:= 1 TO SIZEOF(sdei[i].extreme_instances[j] - .locations_of_extreme_value); - REPEAT l:= 1 TO SIZEOF(t_type_list); - IF(t_type_list[l] IN - TYPEOF(sdei[i].extreme_instances[j]. - locations_of_extreme_value[k])) THEN - t_type_list := t_type_list - t_type_list[l]; - ESCAPE; - END_IF; - END_REPEAT; - END_REPEAT; - IF(SIZEOF(t_type_list) > 0) THEN - RETURN(FALSE); - END_IF; - END_REPEAT; - END_REPEAT; - - RETURN(TRUE); - END_FUNCTION; - -(* Implicit interfaced from: shape_data_quality_criteria_schema *) - FUNCTION validate_accuracy_types - (ei:shape_data_quality_criterion; - type_list:BAG OF STRING):LOGICAL; - LOCAL - sdqca: BAG OF - SHAPE_DATA_QUALITY_CRITERION_AND_ACCURACY_ASSOCIATION:=[]; - sma: BAG OF SHAPE_MEASUREMENT_ACCURACY:=[]; - sdqir: SET OF - SHAPE_DATA_QUALITY_INSPECTION_RESULT:=[]; - scraa: BAG OF - SHAPE_INSPECTION_RESULT_ACCURACY_ASSOCIATION:=[]; - t_logic:BOOLEAN; - END_LOCAL; - -- STEP-1 - -- collect types of range attribute of shape_measurement_accuracy - -- referred from shape_data_quality_criterion_and_accuracy_association - -- that refers to given shape_data_quality_criterion. - sdqca := USEDIN(ei, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.'+ - 'SHAPE_DATA_QUALITY_CRITERION_AND_ACCURACY_ASSOCIATION.'+ - 'SHAPE_DATA_QUALITY_CRITERION'); - IF(SIZEOF(sdqca) <> 0) THEN - REPEAT i:= 1 TO SIZEOF(sdqca); - sma := sma + sdqca[i].required_specific_accuracy; - END_REPEAT; - - -- STEP-2 - -- check whether the collected types include all the type names - -- in the type list given as an input argument of this function - -- and they do not include any other type names. - IF(SIZEOF(type_list) < SIZEOF(sma)) THEN - RETURN(FALSE); - END_IF; - - REPEAT i:= 1 TO SIZEOF(sma); - t_logic := FALSE; - REPEAT j:= 1 TO SIZEOF(type_list); - IF(type_list[j] IN value_limit_type(sma[i].range)) THEN - t_logic := TRUE; - ESCAPE; - END_IF; - END_REPEAT; - IF(NOT(t_logic)) THEN - RETURN(FALSE); - END_IF; - END_REPEAT; - END_IF; - - -- STEP-3 - -- collect types of range attribute of shape_measurement_accuracy - -- referred from shape_inspection_result_accuracy_association - -- that refers to shape_data_quality_inspection_result - -- for the given shape_data_quality_criterion. - sdqir := QUERY(q <* bag_to_set(USEDIN(ei, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.'+ - 'DATA_QUALITY_INSPECTION_RESULT.'+ - 'CRITERION_INSPECTED'))| - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.'+ - 'SHAPE_DATA_QUALITY_INSPECTION_RESULT' - IN TYPEOF(q)); - IF(SIZEOF(sdqir) = 0) THEN - RETURN(TRUE); - END_IF; - - REPEAT i:= 1 TO SIZEOF(sdqir); - scraa := USEDIN(sdqir[i], - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.'+ - 'SHAPE_INSPECTION_RESULT_ACCURACY_ASSOCIATION.'+ - 'SHAPE_DATA_QUALITY_RESULT'); - IF(SIZEOF(scraa) <> 0) THEN - sma := []; - REPEAT j:= 1 TO SIZEOF(scraa); - sma := sma + scraa[j].applied_specific_accuracy; - END_REPEAT; - - -- STEP-4 - -- check whether the collected types include all the type - -- names in the type list given as an input argument of - -- this function and they do not include any other type names. - IF(SIZEOF(type_list) < SIZEOF(sma)) THEN - RETURN(FALSE); - END_IF; - - REPEAT j:= 1 TO SIZEOF(sma); - t_logic := FALSE; - REPEAT k:= 1 TO SIZEOF(type_list); - IF(type_list[k] IN value_limit_type(sma[j].range)) THEN - t_logic := TRUE; - ESCAPE; - END_IF; - END_REPEAT; - IF(NOT(t_logic)) THEN - RETURN(FALSE); - END_IF; - END_REPEAT; - END_IF; - END_REPEAT; - - RETURN(TRUE); - END_FUNCTION; - -(* Implicit interfaced from: shape_data_quality_criteria_schema *) - FUNCTION value_limit_type - (iv:shape_data_quality_value_limit_type_select):SET OF STRING; - LOCAL - retval : SET OF STRING := []; - END_LOCAL; - IF(('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' - +'SHAPE_DATA_QUALITY_VALUE_RANGE') IN TYPEOF(iv)) THEN - retval := TYPEOF(iv\compound_representation_item.item_element[1].value_component); - END_IF; - IF(('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' - +'SHAPE_DATA_QUALITY_VALUE_LIMIT') IN TYPEOF(iv)) THEN - IF(('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'MEASURE_WITH_UNIT') IN TYPEOF(iv)) THEN - retval := TYPEOF(iv\measure_with_unit.value_component); - END_IF; - END_IF; - RETURN(retval); - END_FUNCTION; - -(* Implicit interfaced from: shape_data_quality_inspection_result_schema *) - FUNCTION using_product_definition_of_shape_representation - (item: shape_representation) : SET OF product_definition; - LOCAL - local_s_d_r: SET OF shape_definition_representation := []; - local_p_d: SET OF product_definition := []; - i : INTEGER; - END_LOCAL; - - -- find shape_definition_representations - local_s_d_r := QUERY(i1<* bag_to_set (USEDIN (item, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + - 'PROPERTY_DEFINITION_REPRESENTATION.USED_REPRESENTATION'))| - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.'+ - 'SHAPE_DEFINITION_REPRESENTATION' - IN TYPEOF(i1)); - - -- find product_definition_shape & product_definitions - REPEAT i := 1 TO HIINDEX (local_s_d_r); - IF ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION' IN - TYPEOF (local_s_d_r[i]\property_definition_representation.definition)) - THEN - IF('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRODUCT_DEFINITION' IN TYPEOF - (local_s_d_r[i]\property_definition_representation.definition\property_definition.definition)) - THEN - local_p_d := local_p_d + local_s_d_r[i]\property_definition_representation.definition\property_definition.definition; - END_IF; - END_IF; - END_REPEAT; - RETURN (local_p_d); - END_FUNCTION; - -(* Implicit interfaced from: shape_data_quality_inspection_result_schema *) - FUNCTION relating_shape_representations_of_extreme_values - (item:location_of_extreme_value_select) - : SET OF shape_representation; - - LOCAL - results : SET OF shape_representation:=[]; - exti : SET OF extreme_instance:=[]; - ii_ei : SET OF - instance_report_item_with_extreme_instances:=[]; - sdiir : SET OF - shape_data_quality_inspection_instance_report:=[]; - sdqr : SET OF - shape_data_quality_inspection_result_representation:=[]; - sdisr : SET OF - shape_data_quality_inspected_shape_and_result_relationship:=[]; - END_LOCAL; - -- find extreme_instances - exti := exti + - bag_to_set( USEDIN(item, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + - 'EXTREME_INSTANCE.'+ - 'LOCATIONS_OF_EXTREME_VALUE')); - - -- find instance_report_item_with_extreme_instances - REPEAT i := 1 TO HIINDEX (exti); - ii_ei := ii_ei + - bag_to_set( USEDIN(exti[i], - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + - 'INSTANCE_REPORT_ITEM_WITH_EXTREME_INSTANCES.'+ - 'EXTREME_INSTANCES')); - END_REPEAT; - - -- find shape_data_quality_inspection_instance_report - REPEAT i := 1 TO HIINDEX (ii_ei); - sdiir := sdiir + - bag_to_set( USEDIN(ii_ei[i], - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + - 'SHAPE_DATA_QUALITY_INSPECTION_INSTANCE_REPORT.'+ - 'INSPECTED_INSTANCES')); - END_REPEAT; - - -- find shape_data_quality_inspection_result_representation - REPEAT i := 1 TO HIINDEX (sdiir); - sdqr := sdqr + - QUERY(i1<* bag_to_set( USEDIN(sdiir[i].inspection_result, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.REPRESENTATION.ITEMS'))| - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + - 'SHAPE_DATA_QUALITY_INSPECTION_RESULT_REPRESENTATION' - IN TYPEOF(i1)); - END_REPEAT; - - -- find shape_data_quality_inspected_shape_and_result_relationship - REPEAT i := 1 TO HIINDEX (sdqr); - sdisr := sdisr + bag_to_set(USEDIN(sdqr[i], - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + - 'SHAPE_DATA_QUALITY_INSPECTED_SHAPE_AND_RESULT_RELATIONSHIP.'+ - 'REP_2')); - END_REPEAT; - - -- find shape_representation - REPEAT i := 1 TO HIINDEX (sdisr); - results := results + sdisr[i].rep_1; - END_REPEAT; - - RETURN (results); - END_FUNCTION; - -(* Implicit interfaced from: Externally_conditioned_data_quality_criteria_mim *) - FUNCTION validate_ecdq_inspected_elements_type - (ei:Externally_conditioned_data_quality_criterion; - type_list:BAG OF STRING):LOGICAL; - LOCAL - sdqir: SET OF - EXTERNALLY_CONDITIONED_DATA_QUALITY_INSPECTION_RESULT:=[]; - dir: SET OF - DATA_QUALITY_INSPECTION_INSTANCE_REPORT:=[]; - sdiri: SET OF - EXTERNALLY_CONDITIONED_DATA_QUALITY_INSPECTION_INSTANCE_REPORT_ITEM:=[]; - t_type_list:BAG OF STRING:=[]; - END_LOCAL; - -- STEP-1 - -- collect all externally_conditioned_data_quality_inspection_instance_report_item - -- instances associated with the given externally_conditioned_data_quality_criterion - -- via externally_conditioned_data_quality_inspection_result and - -- data_quality_inspection_instance_report - - sdqir := QUERY(q <* bag_to_set(USEDIN(ei, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.'+ - 'DATA_QUALITY_INSPECTION_RESULT.'+ - 'CRITERION_INSPECTED'))| - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.'+ - 'EXTERNALLY_CONDITIONED_DATA_QUALITY_INSPECTION_RESULT' - IN TYPEOF(q)); - IF(SIZEOF(sdqir) = 0) THEN - RETURN(TRUE); - END_IF; - REPEAT i:= 1 TO SIZEOF(sdqir); - dir := dir + QUERY(q <* bag_to_set(USEDIN(sdqir[i], - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.'+ - 'DATA_QUALITY_INSPECTION_REPORT.'+ - 'INSPECTION_RESULT'))| - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.'+ - 'DATA_QUALITY_INSPECTION_INSTANCE_REPORT' - IN TYPEOF(q)); - END_REPEAT; - IF(SIZEOF(dir) = 0) THEN - RETURN(TRUE); - END_IF; - - REPEAT i:= 1 TO SIZEOF(dir); - sdiri := sdiri + QUERY(q <* dir[i].inspected_instances| - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.'+ - 'EXTERNALLY_CONDITIONED_DATA_QUALITY_INSPECTION_INSTANCE_REPORT_ITEM' - IN TYPEOF(q)); - END_REPEAT; - - -- STEP-2 - -- check if the types of inspected_elements of the collected - -- instances are exactly coincident with the type names in the - -- type list given as an input argument of this function. - - -- If there is no instance_report_item, then this function returns true. - IF(SIZEOF(sdiri) = 0) THEN - RETURN(TRUE); - END_IF; - - -- When reports exist, then perform the following checking process. - REPEAT i:= 1 TO SIZEOF(sdiri); - -- If the size of inspected_elements is not equal to the size of - -- type_list, then return false. - IF(SIZEOF(sdiri[i].inspected_elements) <> - SIZEOF(type_list)) THEN - RETURN(FALSE); - END_IF; - -- check all elements in the type_list - -- for each element of inspected_elements. - t_type_list := type_list; - REPEAT j:= 1 TO SIZEOF(sdiri[i].inspected_elements); - REPEAT k:= 1 TO SIZEOF(t_type_list); - IF(t_type_list[k] IN - TYPEOF(sdiri[i].inspected_elements[j])) THEN - t_type_list := t_type_list - t_type_list[k]; - ESCAPE; - END_IF; - END_REPEAT; - END_REPEAT; - IF(SIZEOF(t_type_list) > 0) THEN - RETURN(FALSE); - END_IF; - END_REPEAT; - - RETURN(TRUE); - END_FUNCTION; -(* REFERENCE FROM (iso13584_generic_expressions_schema); *) -FUNCTION used_variables (arg : generic_expression) : - SET OF generic_variable; - -LOCAL - result : SET OF generic_variable := []; -END_LOCAL; - -IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.GENERIC_VARIABLE' - IN TYPEOF (arg) -THEN - RETURN ([arg]); -END_IF; - -IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.UNARY_GENERIC_EXPRESSION' - IN TYPEOF (arg) -THEN - RETURN (used_variables (arg\unary_generic_expression.operand)); -END_IF; - -IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.BINARY_GENERIC_EXPRESSION' - IN TYPEOF (arg) -THEN - RETURN(used_variables(arg\binary_generic_expression.operands[1]) - + used_variables (arg\binary_generic_expression.operands[2])); -END_IF; - -IF -'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MULTIPLE_ARITY_GENERIC_EXPRESSION' - IN TYPEOF (arg) -THEN - REPEAT i := 1 TO - SIZEOF(arg\multiple_arity_generic_expression.operands); - result := result + used_variables( - arg\multiple_arity_generic_expression.operands[i]); - END_REPEAT; - - RETURN (result); -END_IF; -RETURN ([ ]); -- in this case the subtype shall not contain - -- any variable (see IP1 in generic_expression) -END_FUNCTION; -- used_variables -(* REFERENCE FROM (measure_schema); *) - 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 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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; -(* REFERENCE FROM (assembly_feature_relationship_schema); *) -FUNCTION using_representation_with_mapping (item : representation_item) - : SET OF representation; -LOCAL - results: SET OF representation := []; - local_results : SET OF representation := []; - local_representation_map : SET OF representation_map := []; - intermediate_items : SET OF representation_item := []; - i : INTEGER; - j : INTEGER; -END_LOCAL; --- find the representations in which the item is used --- and which is referenced from the representation_map - local_results := QUERY (z <* using_representations (item)| - SIZEOF (USEDIN (z, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.REPRESENTATION_MAP.' + - 'MAPPED_REPRESENTATION')) > 0 ); - IF (SIZEOF (local_results) = 0) THEN RETURN ([]); - ELSE --- find the set of representation_map in which the local_results are used - REPEAT i := 1 TO HIINDEX(local_results); - local_representation_map := local_representation_map + - bag_to_set (USEDIN (local_results[i], - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.REPRESENTATION_MAP.MAPPED_REPRESENTATION')); - END_REPEAT; --- find the set of mapped_item - REPEAT i := 1 TO HIINDEX(local_representation_map); - intermediate_items := intermediate_items + - bag_to_set (USEDIN (local_representation_map[i], - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MAPPED_ITEM.MAPPING_SOURCE')); - END_REPEAT; --- repeat same manner - REPEAT j := 1 to HIINDEX(intermediate_items); - results := results + bag_to_set (using_representation_with_mapping - (intermediate_items[j])); - END_REPEAT; - END_IF; - RETURN (results); -END_FUNCTION; - -(* Implicit interfaced from: assembly_constraint_schema *) -FUNCTION assembly_leaf - (item: product_definition) : BOOLEAN; -LOCAL - local_relation: SET OF assembly_component_usage := []; - local_relation2: BAG OF assembly_component_usage := []; -END_LOCAL; --- extraction of related assembly_component_relationships -- -local_relation2 := local_relation2 + QUERY(pdr <* USEDIN (item, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRODUCT_DEFINITION_RELATIONSHIP.RELATING_PRODUCT_DEFINITION') | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ASSEMBLY_COMPONENT_USAGE' IN - TYPEOF(pdr)); -local_relation := bag_to_set (local_relation2); -IF (SIZEOF (local_relation) = 0) THEN RETURN (TRUE); - ELSE RETURN (FALSE); -END_IF; -END_FUNCTION; - -(* Implicit interfaced from: Extended_measure_representation_mim *) - FUNCTION value_range_wr1 - (agg : compound_item_definition) : BOOLEAN; - BEGIN - IF (SIZEOF(agg) = 2) AND ((SIZEOF(QUERY (i1 <* agg | ( - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM' IN TYPEOF - (i1)))) = 2) OR - (SIZEOF(QUERY (i2 <* agg | ( - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.VALUE_REPRESENTATION_ITEM' IN TYPEOF - (i2)))) = 2)) - THEN - RETURN(TRUE); - ELSE - RETURN(FALSE); - END_IF; - END; - END_FUNCTION; - -(* Implicit interfaced from: Extended_measure_representation_mim *) - 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; - -(* Implicit interfaced from: Extended_measure_representation_mim *) - FUNCTION value_range_wr3 - (agg : compound_item_definition) : BOOLEAN; - BEGIN - IF (SIZEOF(QUERY(i1 <* agg | - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM' IN TYPEOF (i1)) AND - (SIZEOF (QUERY (i2 <* agg | - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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; - -(* Implicit interfaced from: geometry_schema *) -FUNCTION acyclic_curve_replica - (rep : curve_replica; parent : curve) : BOOLEAN; -IF NOT (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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; - -(* Implicit interfaced from: geometry_schema *) -FUNCTION acyclic_point_replica - (rep : point_replica; parent : point) : BOOLEAN; -IF NOT (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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; - -(* Implicit interfaced from: geometry_schema *) -FUNCTION acyclic_surface_replica - (rep : surface_replica; parent : surface) : BOOLEAN; -IF NOT (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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; - -(* Implicit interfaced from: aic_draughting_annotation *) -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; - -(* Implicit interfaced from: aic_draughting_annotation *) -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; - -(* Implicit interfaced from: presentation_organization_schema *) - 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; - -(* Implicit interfaced from: measure_schema *) - 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, 2.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; - -(* Implicit interfaced from: measure_schema *) - FUNCTION valid_units (m : measure_with_unit):BOOLEAN; - IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 2.0, 0.0, 0.0, 0.0 ) THEN - RETURN (FALSE); - END_IF; - END_IF; - IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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; - -(* Implicit interfaced from: shape_aspect_definition_schema *) -FUNCTION sts_get_general_datum_reference - (input : datum_reference_element) : general_datum_reference; -LOCAL - general_datum_reference_bag : BAG OF general_datum_reference := -(USEDIN(input, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'GENERAL_DATUM_REFERENCE.' + 'BASE')); - END_LOCAL; - - IF SIZEOF(general_datum_reference_bag) = 1 THEN - RETURN (general_datum_reference_bag[1]); - ELSE - RETURN (?); - END_IF;END_FUNCTION; - -(* Implicit interfaced from: shape_tolerance_schema *) -FUNCTION sts_get_product_definition_shape - (input : geometric_tolerance_target) : product_definition_shape; -CASE TRUE OF ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.DIMENSIONAL_LOCATION' IN TYPEOF(input)) : - RETURN(input\shape_aspect_relationship.relating_shape_aspect\shape_aspect.of_shape); - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.DIMENSIONAL_SIZE' IN TYPEOF(input)) : - RETURN(input\dimensional_size.applies_to\shape_aspect.of_shape); - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(input)) : - RETURN(input); - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT' IN TYPEOF(input)) : - RETURN(input\shape_aspect.of_shape); - OTHERWISE : RETURN(?); - END_CASE;END_FUNCTION; - -(* Implicit interfaced from: aic_manifold_subsurface *) -FUNCTION advanced_face_properties (testface : face) : BOOLEAN; -(* return TRUE if testface is of type advanced_face *) -IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SUBFACE' IN TYPEOF(testface)) THEN - RETURN(advanced_face_properties(testface\subface.parent_face)); - ELSE RETURN (FALSE); -END_IF; -END_FUNCTION; - -(* Implicit interfaced from: solid_shape_element_schema *) -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; - -(* Implicit interfaced from: solid_shape_element_schema *) -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; - -(* Implicit interfaced from: solid_shape_element_schema *) -FUNCTION check_continuous_edges (edges : LIST 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); -- all edges have now been successfully checked. - -END_FUNCTION; - -(* Implicit interfaced from: presentation_definition_schema *) - 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; - -(* Implicit interfaced from: aic_geometrically_bounded_2d_wireframe *) -FUNCTION valid_basis_curve_in_2d_wireframe - (crv: curve) : BOOLEAN; - -- check for valid basic curve types - IF SIZEOF (['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.POLYLINE', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.B_SPLINE_CURVE', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ELLIPSE', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CIRCLE'] * - TYPEOF (crv)) = 1 - THEN RETURN (TRUE); - ELSE - -- if the curve is a trimmed_curve - IF (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.TRIMMED_CURVE') - IN TYPEOF (crv)) THEN - -- if a line, parabola, or hyperbola is being trimmed, then valid - IF SIZEOF (['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LINE', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PARABOLA', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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; - -(* Implicit interfaced from: sketch_schema *) -FUNCTION get_plane_of_implicit_geometry - (ps : positioned_sketch) : plane; - - LOCAL - sb : sketch_basis_select := ps.sketch_basis; - result : plane := ?; - END_LOCAL; - - -- determine plane of implicit geometry from the underlying entity data - -- type of its owning instance of positioned_sketch_representation. If - -- the sketch basis is of type planar_curve_select then the planarity - -- of the curve is guaranteed by a WHERE rule on the SELECT type of that - -- name. - - IF ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FACE_SURFACE' IN TYPEOF(sb)) THEN - result := sb\face_surface.face_geometry; - ELSE - IF ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CURVE_BOUNDED_SURFACE' IN TYPEOF(sb)) THEN - result := sb\curve_bounded_surface.basis_surface; - ELSE - IF ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PLANAR_CURVE_SELECT' IN TYPEOF(sb)) THEN - BEGIN - - IF ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CONIC' IN TYPEOF(sb)) - THEN result := dummy_gri || surface() || - elementary_surface(sb\conic.position) || plane(); - END_IF; - - IF ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.TRIMMED_CURVE' IN TYPEOF(sb)) - THEN - BEGIN - result := get_plane_of_implicit_geometry( - dummy_gri || positioned_sketch(sb\trimmed_curve.basis_curve,[])); - END; - END_IF; - - IF ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PCURVE' IN TYPEOF(sb)) - THEN result := sb\pcurve.basis_surface; - END_IF; - - IF ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SURFACE_CURVE' IN TYPEOF(sb)) THEN - BEGIN - IF ((SIZEOF(sb\surface_curve.basis_surface) = 1) -- case of one basis surface - AND ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PLANE' IN TYPEOF(sb\surface_curve.basis_surface[1]))) - THEN result := sb\surface_curve.basis_surface[1]; - ELSE -- case of two basis surfaces - IF (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PLANE' IN TYPEOF(sb\surface_curve.basis_surface[1])) - AND ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PLANE' IN TYPEOF(sb\surface_curve.basis_surface[2]))) - THEN result := ?; - -- both basis surfaces are planes, their intersection curve - -- is a line, and no unique plane is defined - ELSE -- only one of the two basis surfaces is a plane - IF ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PLANE' IN TYPEOF(sb\surface_curve.basis_surface[1])) - THEN result := sb\surface_curve.basis_surface[1]; - ELSE result := sb\surface_curve.basis_surface[2]; - END_IF; - END_IF; - END_IF; - END; - END_IF; - END; - END_IF; - END_IF; - END_IF; - - RETURN(result); - -END_FUNCTION; - -(* Implicit interfaced from: sketch_schema *) -FUNCTION get_relative_direction_2points - (cp1, cp2 : cartesian_point) : direction; - - LOCAL - d1, d2, d3, magnitude : REAL; - result : direction := ?; - END_LOCAL; - - -- check that input points are three-dimensional - - IF ((cp1.dim <> 3) OR (cp2.dim <> 3)) THEN - RETURN(result); - ELSE - - -- construct components of vector and compute its magnitude - - BEGIN - d1 := cp2.coordinates[1] - cp1.coordinates[1]; - d2 := cp2.coordinates[2] - cp1.coordinates[2]; - d3 := cp2.coordinates[3] - cp1.coordinates[3]; - magnitude := sqrt(d1*d1 + d2*d2 + d3*d3); - IF (magnitude = 0) THEN - return(result); -- direction is indeterminate in this case - END_IF; - result := dummy_gri || direction([d1, d2, d3]); - END; - END_IF; - RETURN(result); - -END_FUNCTION; - -(* Implicit interfaced from: sketch_schema *) -FUNCTION check_curve_planarity (checked_curve: curve) : BOOLEAN; - - LOCAL - crv : curve := checked_curve; - i,j : INTEGER; - result : BOOLEAN := FALSE; - END_LOCAL; - - -- Determine whether the curve lies on a plane, according to its type - - IF (SIZEOF(['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CONIC','AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LINE'] * - TYPEOF(crv)) > 0) - THEN result := TRUE; - ELSE - IF (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.TRIMMED_CURVE' IN TYPEOF(crv)) - AND check_curve_planarity(crv\trimmed_curve.basis_curve)) - THEN result := TRUE; - ELSE - IF (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PCURVE' IN TYPEOF(crv)) - AND ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PLANE' IN TYPEOF(crv\pcurve.basis_surface))) - THEN result := TRUE; - ELSE - IF ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SURFACE_CURVE' IN TYPEOF(crv)) - THEN - BEGIN - REPEAT j := 1 TO HIINDEX(crv\surface_curve.basis_surface); - IF ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PLANE' IN TYPEOF(crv\surface_curve.basis_surface[j])) - THEN result := TRUE; - END_IF; - END_REPEAT; - END; - END_IF; - END_IF; - END_IF; - END_IF; - - RETURN(result); - -END_FUNCTION; - -(* Implicit interfaced from: topology_schema *) - 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; - -(* Implicit interfaced from: topology_schema *) - FUNCTION topology_reversed (an_item : reversible_topology) - : reversible_topology; - - IF ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.EDGE' IN TYPEOF (an_item)) THEN - RETURN (edge_reversed (an_item)); - END_IF; - - IF ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PATH' IN TYPEOF (an_item)) THEN - RETURN (path_reversed (an_item)); - END_IF; - - IF ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FACE_BOUND' IN TYPEOF (an_item)) THEN - RETURN (face_bound_reversed (an_item)); - END_IF; - - IF ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FACE' IN TYPEOF (an_item)) THEN - RETURN (face_reversed (an_item)); - END_IF; - - IF ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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; - -(* Implicit interfaced from: topology_schema *) - FUNCTION edge_reversed (an_edge : edge) : oriented_edge; - LOCAL - the_reverse : oriented_edge; - END_LOCAL; - - IF ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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; - -(* Implicit interfaced from: topology_schema *) -FUNCTION path_reversed (a_path : path) : oriented_path; - LOCAL - the_reverse : oriented_path ; - END_LOCAL; - IF ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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; - -(* Implicit interfaced from: topology_schema *) - 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; - -(* Implicit interfaced from: topology_schema *) - FUNCTION face_bound_reversed (a_face_bound : face_bound) : face_bound; - LOCAL - the_reverse : face_bound ; - END_LOCAL; - IF ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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; - -(* Implicit interfaced from: topology_schema *) - FUNCTION face_reversed (a_face : face) : oriented_face; - LOCAL - the_reverse : oriented_face ; - END_LOCAL; - IF ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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; - -(* Implicit interfaced from: topology_schema *) - 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; - -(* Implicit interfaced from: topology_schema *) - FUNCTION shell_reversed (a_shell : shell) : shell; - IF ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.OPEN_SHELL' IN TYPEOF (a_shell) ) THEN - RETURN (open_shell_reversed (a_shell)); - ELSE - IF ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CLOSED_SHELL' IN TYPEOF (a_shell) ) THEN - RETURN (closed_shell_reversed (a_shell)); - ELSE - RETURN (?); - END_IF; - END_IF; - END_FUNCTION; - -(* Implicit interfaced from: topology_schema *) - FUNCTION open_shell_reversed ( a_shell : open_shell) : - oriented_open_shell; - LOCAL - the_reverse : oriented_open_shell; - END_LOCAL; - IF ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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; - -(* Implicit interfaced from: topology_schema *) - FUNCTION closed_shell_reversed (a_shell : closed_shell) : - oriented_closed_shell; - LOCAL - the_reverse : oriented_closed_shell; - END_LOCAL; - IF ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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; - -(* Implicit interfaced from: geometric_model_schema *) -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 ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.OPEN_SHELL' IN - TYPEOF(m.sbsm_boundary[j])) AND - (NOT ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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; - -(* Implicit interfaced from: parameterization_schema *) -FUNCTION make_numeric_set(start, delta : maths_number; - incs : positive_integer) - : SET [2:?] OF maths_number; - - LOCAL - i : INTEGER; - numeric_set : SET[2:?] OF maths_number := [start, (start + delta)]; - END_LOCAL; - - IF incs > 1 THEN REPEAT i := 2 TO incs; - numeric_set := numeric_set + (start + (i*delta)); - END_REPEAT; - END_IF; - RETURN(numeric_set); -END_FUNCTION; - -(* Implicit interfaced from: variational_representation_schema *) -FUNCTION invalidate_vrep_item(item : representation_item) - : BOOLEAN; - - LOCAL - reps : SET[1:?] OF representation := using_representations(item); - ri : SET[1:?] OF variational_representation_item; - iar : instance_attribute_reference; - i : INTEGER; - n : INTEGER := HIINDEX(reps); - END_LOCAL; - - IF ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.BOUND_VARIATIONAL_PARAMETER' IN TYPEOF(item)) - THEN - IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.INSTANCE_ATTRIBUTE_REFERENCE' - IN TYPEOF(item\generic_variable.interpretation\environment.semantics) - THEN - BEGIN - iar := item\generic_variable.interpretation\environment.semantics; - IF (reps <> using_representations(iar\instance_attribute_reference.owning_instance)) - THEN - RETURN(TRUE); - END_IF; - END; - ELSE RETURN(TRUE); -- parameter not attached to an instance attribute - END_IF; - END_IF; - - IF ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.UNBOUND_VARIATIONAL_PARAMETER' IN TYPEOF(item)) - THEN - BEGIN - REPEAT i := 1 TO n; - ri := QUERY(q <* reps[i]\representation.items | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FREE_FORM_CONSTRAINT' IN TYPEOF(q)); - IF SIZEOF(QUERY(r <* ri | - item IN (r\free_form_constraint.reference_elements + r\free_form_constraint.constrained_elements))) = 0 - THEN - RETURN(TRUE); - END_IF; - END_REPEAT; - END; - END_IF; - - IF ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FIXED_INSTANCE_ATTRIBUTE_SET' - IN TYPEOF(item)) - THEN - REPEAT i := 1 TO SIZEOF(item\fixed_instance_attribute_set.fixed_attributes); ---next line is previous --- IF (reps <> using_representations(item\fixed_instance_attribute_set.fixed_attributes[i])) ---is this intent? - IF (reps <> using_representations(item\fixed_instance_attribute_set.fixed_attributes[i]\instance_attribute_reference.owning_instance)) - THEN - RETURN(TRUE); - END_IF; - END_REPEAT; - END_IF; - - IF ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.EXPLICIT_CONSTRAINT' IN TYPEOF(item)) - THEN - IF SIZEOF(QUERY(q <* - (item\explicit_constraint.reference_elements + item\explicit_constraint.constrained_elements) | - reps <> using_representations(q))) > 0 - THEN - RETURN(TRUE); - END_IF; - END_IF; - - IF ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.AUXILIARY_GEOMETRIC_REPRESENTATION_ITEM' IN TYPEOF(item)) - THEN - BEGIN - REPEAT i := 1 TO n; - ri := QUERY(q <* reps[i]\representation.items | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.EXPLICIT_GEOMETRIC_CONSTRAINT' IN TYPEOF(q)); - IF SIZEOF(QUERY(r <* ri | - item IN r\explicit_geometric_constraint.reference_elements)) = 0 - THEN - RETURN(TRUE); - END_IF; - END_REPEAT; - END; - END_IF; - - RETURN(FALSE); -- no invalid cases have been found - -END_FUNCTION; - -(* Implicit interfaced from: assembly_feature_relationship_schema *) -FUNCTION using_shape_aspect_of_shape_representation - (item: shape_representation) : SET OF shape_aspect; -LOCAL - local_s_d_r: SET OF shape_definition_representation := []; - local_s_d_r2: BAG OF shape_definition_representation := []; - local_s_a: SET OF shape_aspect := []; - i : INTEGER; -END_LOCAL; --- find shape_definition_representations - local_s_d_r2 := local_s_d_r2 + QUERY(pdr <* USEDIN (item, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.USED_REPRESENTATION') | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_DEFINITION_REPRESENTATION' IN - TYPEOF(pdr)); - local_s_d_r := bag_to_set (local_s_d_r2); --- find shape_aspects -REPEAT i := 1 TO HIINDEX (local_s_d_r); - IF ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT' IN TYPEOF - (local_s_d_r[i]\property_definition_representation.definition\property_definition.definition)) - THEN local_s_a := local_s_a + local_s_d_r[i]\property_definition_representation.definition\property_definition.definition; - END_IF; -END_REPEAT; -RETURN (local_s_a); -END_FUNCTION; - -(* Implicit interfaced from: assembly_feature_relationship_schema *) -FUNCTION find_representative_shape_representation_of_product_definition - (item:product_definition) : shape_representation; -LOCAL - local_s_r: SET OF shape_representation := []; -END_LOCAL; --- find representative_shape_representation of the product_definition - local_s_r := QUERY - ( z <* find_shape_representation_of_product_definition (item)| - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.REPRESENTATIVE_SHAPE_REPRESENTATION' IN TYPEOF(z)); - IF (SIZEOF (local_s_r) = 1) - THEN RETURN (local_s_r[1]); - ELSE RETURN(?); - END_IF; -END_FUNCTION; - -(* Implicit interfaced from: assembly_feature_relationship_schema *) -FUNCTION find_shape_representation_of_product_definition - (item:product_definition) : SET OF shape_representation; -LOCAL - local_p_d_s: SET OF product_definition_shape := []; - local_p_d_s2: BAG OF product_definition_shape := []; - local_s_d_r: SET OF shape_definition_representation := []; - local_s_d_r2: BAG OF shape_definition_representation := []; - local_s_r: SET OF shape_representation := []; - i : INTEGER; -END_LOCAL; --- find product_definition_shape representing the product_definiton - local_p_d_s2 := local_p_d_s2 + QUERY(pd <* USEDIN (item, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN - TYPEOF(pd)); - local_p_d_s := bag_to_set(local_p_d_s2); --- find shape_definition_representations refereing to the local_p_d_s - REPEAT i := 1 to HIINDEX (local_p_d_s); - local_s_d_r2 := local_s_d_r2 + QUERY(pdr <* USEDIN (local_p_d_s[i], - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_DEFINITION_REPRESENTATION' IN - TYPEOF(pdr)); - END_REPEAT; - local_s_d_r := bag_to_set (local_s_d_r2); - REPEAT i := 1 to HIINDEX (local_s_d_r); - IF('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION' - IN TYPEOF (local_s_d_r[i].used_representation)) THEN - local_s_r := local_s_r + local_s_d_r[i].used_representation; - END_IF; - END_REPEAT; - RETURN (local_s_r); -END_FUNCTION; - -(* Implicit interfaced from: assembly_feature_relationship_schema *) -FUNCTION using_product_definition_of_shape_aspect - (item:shape_aspect) : product_definition ; - IF ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRODUCT_DEFINITION' IN TYPEOF - (item.of_shape.definition)) THEN - RETURN (item.of_shape.definition); - ELSE - RETURN (?); - END_IF; -END_FUNCTION; - -(* Implicit interfaced from: assembly_feature_relationship_schema *) -FUNCTION find_representative_shape_representation_of_shape_aspect - (item:shape_aspect) : shape_representation; -LOCAL - local_s_r: SET OF shape_representation := []; -END_LOCAL; --- find representative_shape_representation of the shape_aspect - local_s_r := QUERY ( z <* find_shape_representation_of_shape_aspect (item)| - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.REPRESENTATIVE_SHAPE_REPRESENTATION' IN TYPEOF(z)); - IF (SIZEOF (local_s_r) = 1) - THEN RETURN (local_s_r[1]); - ELSE RETURN(?); - END_IF; -END_FUNCTION; - -(* Implicit interfaced from: assembly_feature_relationship_schema *) -FUNCTION find_shape_representation_of_shape_aspect - (item:shape_aspect) : SET OF shape_representation; -LOCAL - local_p_d: SET OF property_definition:= []; - local_s_d_r: SET OF shape_definition_representation := []; - local_s_d_r2: BAG OF shape_definition_representation := []; - local_s_r: SET OF shape_representation := []; - i : INTEGER; -END_LOCAL; --- find property_definition representing the shape_aspect - local_p_d := bag_to_set (USEDIN (item, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION')); --- find shape_definition_representations refereing to the local_p_d - REPEAT i := 1 to HIINDEX (local_p_d); - local_s_d_r2 := local_s_d_r2 + QUERY(pdr <* USEDIN (local_p_d[i], - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_DEFINITION_REPRESENTATION' IN - TYPEOF(pdr)); - END_REPEAT; - local_s_d_r := bag_to_set (local_s_d_r2); - REPEAT i := 1 to HIINDEX (local_s_d_r); - IF('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION' - IN TYPEOF (local_s_d_r[i].used_representation)) THEN - local_s_r := local_s_r + local_s_d_r[i].used_representation; - END_IF; - END_REPEAT; - RETURN (local_s_r); -END_FUNCTION; - -(* Implicit interfaced from: assembly_feature_relationship_schema *) -FUNCTION find_assembly_root - (constituent: SET OF product_definition) : SET OF product_definition; -LOCAL - local_relation: SET OF assembly_component_usage := []; - local_relation2: BAG OF assembly_component_usage := []; - local_parent: SET OF product_definition := []; - root : SET OF product_definition; - i : INTEGER := 0; - j : INTEGER := 0; -END_LOCAL; - --- Is constituent root ? -- -IF ((SIZEOF (constituent) = 1) AND assembly_root (constituent[1])) - THEN RETURN ([constituent [1]]); --- ERROR constituent is vacant -- - ELSE IF (SIZEOF (constituent) = 0 ) THEN RETURN ([]); - --- extraction of related assembly_component_relationships -- - ELSE - REPEAT j:= 1 TO HIINDEX(constituent); - local_relation2 := local_relation2 + QUERY(pdr <* USEDIN (constituent[j], - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRODUCT_DEFINITION_RELATIONSHIP.' - +'RELATED_PRODUCT_DEFINITION') | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ASSEMBLY_COMPONENT_USAGE' IN - TYPEOF(pdr)); - END_REPEAT; - local_relation := bag_to_set (local_relation2); - IF (SIZEOF(local_relation) = 0) THEN - IF (SIZEOF(constituent) = 1) THEN RETURN ([constituent[1]]); - ELSE RETURN ([]); - END_IF; - ELSE --- extraction of a set of parents -- - REPEAT i :=1 TO HIINDEX(local_relation); - REPEAT j := 1 TO HIINDEX(constituent); - IF (local_relation[i].relating_product_definition <> - constituent[j]) THEN - local_parent := local_parent + - local_relation[i].relating_product_definition; - END_IF; - END_REPEAT; - END_REPEAT; - IF ((SIZEOF (local_parent) = 1 ) AND - assembly_root (local_parent[1])) - THEN RETURN ([local_parent[1]]); - ELSE IF (SIZEOF (local_parent) = 0) THEN RETURN ([]); --- try again -- - ELSE - root := find_assembly_root(local_parent); - IF (SIZEOF (root) =1) THEN RETURN (root); - ELSE IF (SIZEOF (root) = 0) THEN RETURN ([]); - END_IF; - END_IF; - END_IF; - END_IF; - END_IF; - END_IF; -END_IF; -RETURN ([]); -END_FUNCTION; - -(* Implicit interfaced from: assembly_feature_relationship_schema *) -FUNCTION assembly_root - (item: product_definition) : BOOLEAN; --- extraction of related assembly_component_relationships -- -IF (SIZEOF(QUERY(pdr <* USEDIN (item, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRODUCT_DEFINITION_RELATIONSHIP.' + - 'RELATED_PRODUCT_DEFINITION') | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ASSEMBLY_COMPONENT_USAGE' IN - TYPEOF(pdr))) - = 0) THEN RETURN(TRUE); -ELSE RETURN (FALSE); -END_IF; -END_FUNCTION; - -(* Implicit interfaced from: assembly_feature_relationship_schema *) -FUNCTION unique_in_product_definition - (item:representative_shape_representation) : BOOLEAN; -LOCAL - local_p_d: SET OF product_definition := []; - local_s_r: SET OF shape_representation := []; - i : INTEGER; - j : INTEGER; -END_LOCAL; --- find product_definitions represented by the input --- representative_shape_representation - local_p_d := using_product_definition_of_shape_representation (item); --- ERROR - IF (SIZEOF (local_p_d) <> 1) THEN RETURN (FALSE); - ELSE --- find shape_representation representing the product_definitions - REPEAT i := 1 to HIINDEX (local_p_d); - local_s_r := find_shape_representation_of_product_definition - (local_p_d[i]); - REPEAT j := 1 to HIINDEX (local_s_r); - IF (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.REPRESENTATIVE_SHAPE_REPRESENTATION' IN TYPEOF (local_s_r[j])) - AND (local_s_r[j] :<>: item)) THEN RETURN (FALSE); - END_IF; - END_REPEAT; - END_REPEAT; - END_IF; - RETURN (TRUE); -END_FUNCTION; - -(* Implicit interfaced from: assembly_feature_relationship_schema *) -FUNCTION unique_in_shape_aspect - (item:representative_shape_representation) : BOOLEAN; -LOCAL - local_s_a: SET OF shape_aspect := []; - local_s_r: SET OF shape_representation := []; - i : INTEGER; - j : INTEGER; -END_LOCAL; --- find shape_aspects represented by the input --- representative_shape_representation - local_s_a := using_shape_aspect_of_shape_representation (item); --- ERROR - IF (SIZEOF (local_s_a) <> 1) THEN RETURN (FALSE); - ELSE --- find shape_representation representing the shape_aspect - REPEAT i := 1 to HIINDEX (local_s_a); - local_s_r := find_shape_representation_of_shape_aspect - (local_s_a[i]); - REPEAT j := 1 to HIINDEX (local_s_r); - IF (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.REPRESENTATIVE_SHAPE_REPRESENTATION' IN TYPEOF (local_s_r[j])) - AND (local_s_r[j] :<>: item)) THEN RETURN (FALSE); - END_IF; - END_REPEAT; - END_REPEAT; - END_IF; - RETURN (TRUE); -END_FUNCTION; - -(* Implicit interfaced from: aic_edge_based_wireframe *) -FUNCTION valid_wireframe_edge_curve -( -crv : curve ) : BOOLEAN ; - IF SIZEOF ([ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LINE', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CONIC', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.B_SPLINE_CURVE', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.POLYLINE' ] * TYPEOF (crv)) = 1 THEN - RETURN (TRUE); - ELSE - IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CURVE_REPLICA' IN TYPEOF (crv) THEN - RETURN (valid_wireframe_edge_curve(crv\curve_replica.parent_curve)); - ELSE - IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ; - -(* Implicit interfaced from: aic_edge_based_wireframe *) -FUNCTION valid_wireframe_vertex_point -( -pnt : point ) : BOOLEAN ; - IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CARTESIAN_POINT' IN TYPEOF (pnt) THEN - RETURN (TRUE); - ELSE - IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ; - -(* Implicit interfaced from: aic_non_manifold_surface *) -FUNCTION nmsf_surface_check (surf : surface) : BOOLEAN; - -(* This function varifies the validity of a surface in the - context of a non-manifold surface model. -*) - - (* elementary_surfaces are valid surface types - *) - IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ELEMENTARY_SURFACE' IN TYPEOF(surf) THEN - RETURN(TRUE); - ELSE - - (* a swept_surface shall have a valid sweeping curve - *) - IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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; - -(* Implicit interfaced from: aic_non_manifold_surface *) -FUNCTION nmsf_curve_check (cv : representation_item) : BOOLEAN; - -(* This function varifies the validity of a curve in the context of a - non-manifold surface model. Representation_items are - valid input, however, they are supposed to be curves; otherwise - this function will return false. -*) - - (* complex subtypes of curve that are both bounded_curve and - oneof conic, curve_replica, line, or offset_curve_3d are not - valid - *) - IF SIZEOF (['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.BOUNDED_CURVE', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CONIC', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CURVE_REPLICA', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LINE', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.OFFSET_CURVE_3D'] * TYPEOF(cv)) > 1 - THEN RETURN(FALSE); - ELSE - - (* b_spline_curves shall not self-intersect - *) - IF (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 (['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CONIC', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LINE'] * TYPEOF (cv)) = 1 THEN - RETURN(TRUE); - ELSE - - (* a curve_replica shall reference a valid curve - *) - IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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; - -(* Implicit interfaced from: geometric_model_schema *) -FUNCTION acyclic_solid_replica - (rep : solid_replica; parent : solid_model) : BOOLEAN; -IF NOT (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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; - -(* Implicit interfaced from: geometry_schema *) -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; - -(* Implicit interfaced from: geometry_schema *) -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('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PCURVE' IN - TYPEOF(c\composite_curve.segments[k].parent_curve))) AND - (NOT('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SURFACE_CURVE' IN - TYPEOF(c\composite_curve.segments[k].parent_curve))) AND - (NOT('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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; - -(* Implicit interfaced from: presentation_definition_schema *) - 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 | - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 | - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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(['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ANNOTATION_TEXT', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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; - -(* Implicit interfaced from: aic_geometrically_bounded_surface *) -FUNCTION gbsf_check_point - (pnt : point) : BOOLEAN; - IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CARTESIAN_POINT' IN TYPEOF(pnt) THEN - RETURN (TRUE); - ELSE - IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.POINT_ON_CURVE' IN TYPEOF(pnt) THEN - RETURN (gbsf_check_curve(pnt\point_on_curve.basis_curve)); - ELSE - IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.POINT_ON_SURFACE' IN TYPEOF(pnt) THEN - RETURN (gbsf_check_surface(pnt\point_on_surface.basis_surface)); - ELSE - IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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; - -(* Implicit interfaced from: aic_geometrically_bounded_surface *) -FUNCTION gbsf_check_curve - (cv : representation_item) : BOOLEAN; - IF SIZEOF(['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.BOUNDED_CURVE', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CONIC', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CURVE_REPLICA', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LINE', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.OFFSET_CURVE_3D'] * TYPEOF(cv)) > 1 THEN - RETURN (FALSE); - END_IF; - IF SIZEOF(['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CIRCLE', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ELLIPSE', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.TRIMMED_CURVE'] * TYPEOF(cv)) = 1 THEN - RETURN (TRUE); - ELSE - IF (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CURVE_REPLICA' IN TYPEOF(cv) THEN - RETURN (gbsf_check_curve(cv\curve_replica.parent_curve)); - ELSE - IF (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.POLYLINE' IN TYPEOF(cv\offset_curve_3d.basis_curve)))) THEN - RETURN (gbsf_check_curve(cv\offset_curve_3d.basis_curve)); - ELSE - IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.POLYLINE' IN TYPEOF(cv) THEN - IF (SIZEOF(cv\polyline.points) >= 3) THEN - RETURN (TRUE); - END_IF; - ELSE - IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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; - -(* Implicit interfaced from: aic_geometrically_bounded_surface *) -FUNCTION gbsf_check_surface - (sf : surface) : BOOLEAN; - IF (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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(['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SPHERICAL_SURFACE', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.TOROIDAL_SURFACE', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CURVE_BOUNDED_SURFACE', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.RECTANGULAR_TRIMMED_SURFACE'] * TYPEOF(sf)) = 1 THEN - RETURN (TRUE); - ELSE - IF (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SURFACE_REPLICA' IN TYPEOF(sf) THEN - RETURN (gbsf_check_surface(sf\surface_replica.parent_surface)); - ELSE - IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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; - -(* Implicit interfaced from: aic_geometrically_bounded_wireframe *) -FUNCTION valid_geometrically_bounded_wf_curve -( -crv : curve ) : BOOLEAN ; - IF SIZEOF ([ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.POLYLINE', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.B_SPLINE_CURVE', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ELLIPSE', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CIRCLE' ] * TYPEOF (crv)) = 1 THEN - RETURN (TRUE); - ELSE - IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.TRIMMED_CURVE' IN TYPEOF (crv) THEN - IF SIZEOF ([ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LINE', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PARABOLA', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.OFFSET_CURVE_3D' IN TYPEOF (crv) THEN - RETURN (valid_geometrically_bounded_wf_curve(crv\offset_curve_3d.basis_curve)); - ELSE - IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CURVE_REPLICA' IN TYPEOF (crv) THEN - RETURN (valid_geometrically_bounded_wf_curve(crv\curve_replica.parent_curve)); - ELSE - IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ; - -(* Implicit interfaced from: aic_geometrically_bounded_wireframe *) -FUNCTION valid_geometrically_bounded_wf_point -( -pnt : point ) : BOOLEAN ; - IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CARTESIAN_POINT' IN TYPEOF (pnt) THEN - RETURN (TRUE); - ELSE - IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.POINT_ON_CURVE' IN TYPEOF (pnt) THEN - RETURN (valid_geometrically_bounded_wf_curve(pnt\point_on_curve.basis_curve)); - ELSE - IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ; - -(* Implicit interfaced from: parameterization_schema *) -FUNCTION validate_attribute_id(attid : attribute_identifier) : BOOLEAN; - - CONSTANT - letters : SET[52:52] OF STRING := - ['a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p', - 'q','r','s','t','u','v','w','x','y','z','A','B','C','D','E','F', - 'G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V', - 'W','X','Y','Z']; - numbers_etc : SET[15:15] OF STRING := - ['0','1','2','3','4','5','6','7','8','9','_','[',']','.','\']; - valid_chars : SET[67:67] OF STRING := letters + numbers_etc; - END_CONSTANT; - - LOCAL - id_length : INTEGER := LENGTH(attid); - id_valid : BOOLEAN := TRUE; - i : INTEGER; - END_LOCAL; - - -- check that indentifier starts with a letter - - IF NOT (attid[1] IN letters) THEN - id_valid := FALSE; - END_IF; - - -- check that no invalid characters occur subsequently - - REPEAT i := 2 TO id_length WHILE id_valid = TRUE; - IF NOT (attid[i] IN valid_chars) THEN - id_valid := FALSE; - END_IF; - END_REPEAT; - RETURN(id_valid); - -END_FUNCTION; - -(* Implicit interfaced from: kinematic_structure_schema *) -FUNCTION collect_joints - (items : SET[1:?] OF pair_representation_relationship) : SET OF kinematic_joint; -LOCAL - result : SET OF kinematic_joint := []; -END_LOCAL; - REPEAT i := 1 TO HIINDEX(items); - result := result + items[i].transformation_operator.joint; - END_REPEAT; - RETURN(result); -END_FUNCTION; -(* REFERENCE FROM (kinematic_topology_schema); *) -FUNCTION get_kinematic_joints_from_oriented_joints(ors : SET OF oriented_joint) : SET OF kinematic_joint; - LOCAL - result : SET OF kinematic_joint := []; - END_LOCAL; - IF SIZEOF(ors) > 0 THEN - REPEAT i := 1 TO HIINDEX(ors); - result := result + ors[i].edge_element; - END_REPEAT; - END_IF; - RETURN (result); -END_FUNCTION; -(* REFERENCE FROM (kinematic_topology_schema); *) -FUNCTION get_kinematic_joints_from_kinematic_loops(kls : SET OF kinematic_loop) : SET OF kinematic_joint; - LOCAL - result : SET OF oriented_joint := []; - END_LOCAL; - IF SIZEOF(kls) > 0 THEN - REPEAT i := 1 TO HIINDEX(kls); - result := result + kls[i].edge_list; - END_REPEAT; - END_IF; - RETURN (get_kinematic_joints_from_oriented_joints(result)); -END_FUNCTION; - -(* Implicit interfaced from: kinematic_structure_schema *) -FUNCTION sort_link_associations - (aprr : SET[1:?] OF pair_representation_relationship; one_not_two : boolean) : SET OF kinematic_link_representation; -LOCAL - result : SET OF kinematic_link_representation := []; -END_LOCAL; - IF one_not_two THEN - REPEAT i := 1 TO HIINDEX(aprr); - result := result + aprr[i].rep_1; - END_REPEAT; - ELSE - REPEAT i := 1 TO HIINDEX(aprr); - result := result + aprr[i].rep_2; - END_REPEAT; - END_IF; - RETURN(result); -END_FUNCTION; - -(* Implicit interfaced from: kinematic_structure_schema *) -FUNCTION plane_angle_for_pair_in_radian - (pair : kinematic_pair; - angle : plane_angle_measure) : plane_angle_measure; - LOCAL - converted_angle : plane_angle_measure := angle; - link_rep : kinematic_link_representation - := representation_of_link (pair.joint.edge_start); - link_cntxt : representation_context; - pa_units : SET OF unit := []; - pau : unit; - END_LOCAL; - - link_cntxt := link_rep\representation.context_of_items; - - IF NOT ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.GLOBAL_UNIT_ASSIGNED_CONTEXT' - IN TYPEOF (link_cntxt)) THEN - RETURN (?); - END_IF; - - pa_units := QUERY (unit <* link_cntxt\global_unit_assigned_context.units | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PLANE_ANGLE_UNIT' IN TYPEOF (unit)); - - IF SIZEOF (pa_units) <> 1 THEN - RETURN (?); - END_IF; - - pau := pa_units[1]; - - IF (NOT ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SI_UNIT' IN TYPEOF (pau)) AND - NOT ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CONVERSION_BASED_UNIT' IN TYPEOF (pau))) THEN - RETURN (?); - END_IF; - - REPEAT WHILE ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CONVERSION_BASED_UNIT' IN TYPEOF (pau)); - converted_angle := converted_angle * - pau\conversion_based_unit.conversion_factor. - value_component; - pau := pau\conversion_based_unit.conversion_factor.unit_component; - - IF ((NOT ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SI_UNIT' IN TYPEOF (pau)) AND - NOT ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CONVERSION_BASED_UNIT' IN TYPEOF (pau))) OR - (NOT ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PLANE_ANGLE_UNIT' IN TYPEOF (pau)))) THEN - RETURN (?); - END_IF; - END_REPEAT; - - IF (pau\si_unit.name <> si_unit_name.radian) THEN - RETURN (?); - END_IF; - - CASE pau\si_unit.prefix OF - si_prefix.exa : RETURN (1.E18 * converted_angle); - si_prefix.peta : RETURN (1.E15 * converted_angle); - si_prefix.tera : RETURN (1.E12 * converted_angle); - si_prefix.giga : RETURN (1.E9 * converted_angle); - si_prefix.mega : RETURN (1.E6 * converted_angle); - si_prefix.kilo : RETURN (1.E3 * converted_angle); - si_prefix.hecto : RETURN (1.E2 * converted_angle); - si_prefix.deca : RETURN (1.E1 * converted_angle); - si_prefix.deci : RETURN (1.E-1 * converted_angle); - si_prefix.centi : RETURN (1.E-2 * converted_angle); - si_prefix.milli : RETURN (1.E-3 * converted_angle); - si_prefix.micro : RETURN (1.E-6 * converted_angle); - si_prefix.nano : RETURN (1.E-9 * converted_angle); - si_prefix.pico : RETURN (1.E-12 * converted_angle); - si_prefix.femto : RETURN (1.E-15 * converted_angle); - si_prefix.atto : RETURN (1.E-18 * converted_angle); - OTHERWISE : RETURN (converted_angle); - END_CASE; - -END_FUNCTION; - -(* Implicit interfaced from: kinematic_structure_schema *) -FUNCTION representation_of_link (link : kinematic_link) - : kinematic_link_representation; -(* - LOCAL - link_rep_rel : BAG OF kinematic_link_representation_relation; - END_LOCAL; - - link_rep_rel := USEDIN (link, 'KINEMATIC_STRUCTURE_SCHEMA.'+ - 'KINEMATIC_LINK_REPRESENTATION_RELATION.'+ - 'TOPOLOGICAL_ASPECTS'); - IF (SIZEOF (link_rep_rel) = 0) THEN - RETURN (?); - ELSE - RETURN (link_rep_rel[1].geometric_aspects); - END_IF; -*) - RETURN (?); -END_FUNCTION; - -(* Implicit interfaced from: kinematic_state_schema *) -FUNCTION convert_spatial_to_ypr_rotation (pair : kinematic_pair; - rotation : spatial_rotation) - : ypr_rotation; - LOCAL - axis : direction; - angle : plane_angle_measure; -- rotation angle in application - -- specific units - conv_angle : plane_angle_measure; -- rotation angle in radians - ya, pa, ra : plane_angle_measure; -- yaw, pitch, and roll angle - ucf : REAL; -- unit conversion factor - dx, dy, dz : REAL; -- components of direction vector - s_a, c_a : REAL; -- sine and cosine of rotation angle - rotmat : ARRAY [1 : 3] OF - ARRAY [1 : 3] OF REAL; -- rotation matrix - cm1 : REAL; - s_y, c_y : REAL; - s_r, c_r : REAL; - END_LOCAL; - - -- If rotation is already a ypr_rotation, return it immediately - IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.YPR_ROTATION' IN TYPEOF (rotation) THEN - RETURN (rotation); - END_IF; - - -- rotation is a rotation_about_direction - - axis := normalise (rotation\rotation_about_direction.direction_of_axis); - angle := rotation\rotation_about_direction.rotation_angle; - - -- a zero rotation is converted trivially - IF (angle = 0.0) THEN - RETURN ([0.0, 0.0, 0.0]); - END_IF; - - dx := axis.direction_ratios[1]; - dy := axis.direction_ratios[2]; - dz := axis.direction_ratios[3]; - - -- provide angle measured in radian - - conv_angle := plane_angle_for_pair_in_radian (pair, angle); - - IF NOT('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PLANE_ANGLE_MEASURE' IN TYPEOF(conv_angle)) THEN - RETURN (?); - END_IF; - - ucf := angle / conv_angle; - s_a := SIN (conv_angle); - c_a := COS (conv_angle); - - -- axis parallel either to x-axis or to z-axis? - IF (dy = 0.0) AND (dx * dz = 0.0) THEN - REPEAT WHILE (conv_angle <= - PI); - conv_angle := conv_angle + 2.0 * PI; - END_REPEAT; - REPEAT WHILE (conv_angle > PI); - conv_angle := conv_angle - 2.0 * PI; - END_REPEAT; - - ya := ucf * conv_angle; - IF (conv_angle <> PI) THEN - ra := - ya; - ELSE - ra := ya; - END_IF; - - IF (dx <> 0.0) THEN - -- axis parallel to x-axis - use x-axis as roll axis - IF (dx > 0.0) THEN - RETURN ([0.0, 0.0, ya]); - ELSE - RETURN ([0.0, 0.0, ra]); - END_IF; - ELSE - -- axis parallel to z-axis - use z-axis as yaw axis - IF (dz > 0.0) THEN - RETURN ([ya, 0.0, 0.0]); - ELSE - RETURN ([ra, 0.0, 0.0]); - END_IF; - END_IF; - END_IF; - - -- axis parallel to y-axis - use y-axis as pitch axis - IF ((dy <> 0.0) AND (dx = 0.0) AND (dz = 0.0)) THEN - IF (c_a >= 0.0) THEN - ya := 0.0; - ra := 0.0; - ELSE - ya := ucf * PI; - ra := ya; - END_IF; - - pa := ucf * ATAN (s_a, ABS (c_a)); - IF (dy < 0.0) THEN - pa := - pa; - END_IF; - - RETURN ([ya, pa, ra]); - END_IF; - - -- axis not parallel to any axis of coordinate system - -- compute rotation matrix - - cm1 := 1.0 - c_a; - - rotmat := [ [ dx * dx * cm1 + c_a, - dx * dy * cm1 - dz * s_a, - dx * dz * cm1 + dy * s_a ], - [ dx * dy * cm1 + dz * s_a, - dy * dy * cm1 + c_a, - dy * dz * cm1 - dx * s_a ], - [ dx * dz * cm1 - dy * s_a, - dy * dz * cm1 + dx * s_a, - dz * dz * cm1 + c_a ] ]; - - -- rotmat[1][3] equals SIN (pitch_angle) - IF (ABS (rotmat[1][3]) = 1.0) THEN - -- |pa| = PI/2 - BEGIN - IF (rotmat[1][3] = 1.0) THEN - pa := 0.5 * PI; - ELSE - pa := -0.5 * PI; - END_IF; - - -- In this case, only the sum or difference of roll and yaw angles - -- is relevant and can be evaluated from the matrix. - -- According to IP `rectangular pitch angle' for ypr_rotation, - - ra := 0.0; - ya := ATAN (rotmat[2][1], rotmat[2][2]); - - - IF (rotmat[2][2] < 0.0) THEN - IF ya <= 0.0 THEN - ya := ya + PI; - ELSE - ya := ya - PI; - END_IF; - END_IF; - END; - ELSE - BEGIN - ya := ATAN (- rotmat[1][2], rotmat[1][1]); - - IF (rotmat[1][1] < 0.0) THEN - IF (ya <= 0.0) THEN - ya := ya + PI; - ELSE - ya := ya - PI; - END_IF; - END_IF; - - ra := ATAN (-rotmat[2][3], rotmat[3][3]); - - IF (rotmat[3][3] < 0.0) THEN - IF (ra <= 0.0) THEN - ra := ra + PI; - ELSE - ra := ra - PI; - END_IF; - END_IF; - - s_y := SIN (ya); - c_y := COS (ya); - s_r := SIN (ra); - c_r := COS (ra); - - IF ((ABS (s_y) > ABS (c_y)) AND - (ABS (s_y) > ABS (s_r)) AND - (ABS (s_y) > ABS (c_r))) THEN - cm1 := - rotmat[1][2] / s_y; - ELSE - IF ((ABS (c_y) > ABS (s_r)) AND (ABS (c_y) > ABS (c_r))) THEN - cm1 := rotmat[1][1] / c_y; - ELSE - IF (ABS (s_r) > ABS (c_r)) THEN - cm1 := - rotmat[2][3] / s_r; - ELSE - cm1 := rotmat[3][3] / c_r; - END_IF; - END_IF; - END_IF; - - pa := ATAN (rotmat[1][3], cm1); - - END; - END_IF; - - ya := ya * ucf; - pa := pa * ucf; - ra := ra * ucf; - - RETURN ([ya, pa, ra]); - -END_FUNCTION; - -(* Implicit interfaced from: geometric_model_schema *) -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 ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.WIRE_SHELL' IN - TYPEOF(m.sbwm_boundary[j])) AND - (NOT ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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; - -(* Implicit interfaced from: kinematic_state_schema *) -FUNCTION ypr_index (ypr : ypr_enumeration) : INTEGER; - CASE ypr OF - yaw : RETURN (1); - pitch : RETURN (2); - roll : RETURN (3); - END_CASE; - RETURN (?); -END_FUNCTION; -(* REFERENCE FROM (support_resource_schema); *) - FUNCTION type_check_function (the_type : GENERIC; sub_names : SET OF STRING; criterion : INTEGER):LOGICAL; - IF ((NOT EXISTS(the_type)) 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); - OTHERWISE : RETURN (UNKNOWN); - END_CASE; - END_IF; - END_FUNCTION; - -(* Implicit interfaced from: Classification_with_attributes_mim *) -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 ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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(['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CHARACTERIZED_CLASS'] * 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 ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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(['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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(['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRODUCT', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRODUCT_DEFINITION_FORMATION', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRODUCT_DEFINITION'] * TYPEOF(it)) = 1) - )) = 0 ) - THEN - RETURN(FALSE); - END_IF; - END_IF; - -RETURN(TRUE); -END_FUNCTION; - -(* Implicit interfaced from: Product_and_manufacturing_information_view_context_mim *) -FUNCTION get_associated_mandatory_document_ids(pdc : product_definition_context) : SET OF STRING; - LOCAL - result : SET OF STRING := []; - adrs_raw : SET OF applied_document_reference := bag_to_set(USEDIN(pdc, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.APPLIED_DOCUMENT_REFERENCE.ITEMS')); - adrs_filtered : SET OF applied_document_reference := []; - ras : SET OF role_association; - dpas : SET OF document_product_association; - END_LOCAL; - - -- scan adrs_raw for associated role 'mandatory' and fill adrs_filtered with results - REPEAT i := 1 TO HIINDEX(adrs_raw); - if adrs_raw[i]\document_reference.role\object_role.name = 'mandatory' THEN - adrs_filtered := adrs_filtered + adrs_raw[i]; - END_IF; - END_REPEAT; - - -- scan through adrs_filtered and access associated product.id s - REPEAT i := 1 TO HIINDEX(adrs_filtered); - dpas := bag_to_set(USEDIN(adrs_filtered[i]\document_reference.assigned_document, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.DOCUMENT_PRODUCT_ASSOCIATION.RELATING_DOCUMENT')); - REPEAT j := 1 TO HIINDEX(dpas); - IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.DOCUMENT_PRODUCT_EQUIVALENCE' IN TYPEOF (dpas[j]) THEN - IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRODUCT_DEFINITION_FORMATION' IN TYPEOF (dpas[j]\document_product_association.related_product) THEN - result := result + dpas[j]\document_product_association.related_product\product_definition_formation.of_product\product.id; - END_IF; - IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRODUCT' IN TYPEOF (dpas[j].related_product) THEN - result := result + dpas[j]\document_product_association.related_product\product.id; - END_IF; - END_IF; - END_REPEAT; - END_REPEAT; - - RETURN (result); -END_FUNCTION; - -(* Implicit interfaced from: External_properties_mim *) - FUNCTION external_version_assignment_is_valid (aia: applied_external_identification_assignment): BOOLEAN; - LOCAL - item: external_identification_item; - role: identification_role; - END_LOCAL; - role:= aia.role; - IF role.name='version' THEN - REPEAT i := LOINDEX(aia\applied_external_identification_assignment.items) TO HIINDEX(aia\applied_external_identification_assignment.items); - item:= aia\applied_external_identification_assignment.items[i]; - IF (SIZEOF(['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.EXTERNALLY_DEFINED_GENERAL_PROPERTY']*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; - -(* Implicit interfaced from: Product_occurrence_mim *) - 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 ,'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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] , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 (['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM' , - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 | - ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 | - ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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(['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.QUALIFIED_REPRESENTATION_ITEM' , - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.VALUE_RANGE']* TYPEOF ( i ) ) =0 ))) > 0 ) THEN - RETURN(FALSE); - END_IF; - RETURN(TRUE); - END_FUNCTION; -(* REFERENCE FROM (product_definition_schema); *) - FUNCTION categories_of_product - (obj : product) : SET OF STRING; - LOCAL - category_assignments: BAG OF product_category; - categories: SET OF STRING:=[]; - END_LOCAL; - category_assignments := USEDIN(obj, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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; - -(* Implicit interfaced from: Surface_conditions_mim *) - 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; - -(* Implicit interfaced from: Specification_control_mim *) - RULE restrict_configuration_design_for_class_breakdown_association FOR - (configuration_design); - WHERE - WR1: SIZEOF ( QUERY ( cd <* configuration_design | - ( cd.name ='functionality' ) AND - ( NOT ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRODUCT_CLASS' IN TYPEOF ( cd.configuration.item_concept ) ) ) - ) ) =0; - END_RULE; - -(* Implicit interfaced from: Part_and_zone_laminate_tables_mim *) - 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; - -(* Implicit interfaced from: Ap242_managed_model_based_3d_engineering_mim *) - RULE application_definition_required FOR - (application_context); - WHERE - WR1: SIZEOF( QUERY( ac <* application_context | - (SIZEOF (QUERY (apd <* USEDIN(ac,'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.APPLICATION_PROTOCOL_DEFINITION.APPLICATION') | - ((apd.application_interpreted_model_schema_name = 'ap242_managed_model_based_3d_engineering') - OR - (apd.application_interpreted_model_schema_name = 'Ap209_multidisciplinary_analysis_and_design')) - )) > 0) - )) > 0; - - END_RULE; - -(* Implicit interfaced from: geometry_schema *) -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; - -(* Implicit interfaced from: Qualified_measure_mim *) -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 | - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'UNCERTAINTY_QUALIFIER' IN TYPEOF ( u1 ) ) AND - ( SIZEOF ( QUERY ( u2 <* qri.qualifiers | - ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'UNCERTAINTY_QUALIFIER' IN TYPEOF ( u2 ) ) AND - ( u2\uncertainty_qualifier.measure_name = u1\uncertainty_qualifier.measure_name ) ) - ) >1 ) ) ) >0 ) ) = 0; -END_RULE; - -(* Implicit interfaced from: Appearance_assignment_mim *) - RULE styled_curve FOR (styled_item); - WHERE - WR1: SIZEOF( QUERY( si <* styled_item | ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CURVE' IN TYPEOF (si.item)) AND (SIZEOF (QUERY (psa <* si.styles | (SIZEOF (QUERY (cs <* psa.styles | ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CURVE_STYLE' IN TYPEOF (cs)) )) > 0) )) <> 1) )) = 0; - END_RULE; - -(* Implicit interfaced from: Ap242_managed_model_based_3d_engineering_mim *) - RULE dimensioning_data_requires_document FOR (applied_document_reference, product_definition_context_association, role_association); - LOCAL - adr : SET OF applied_document_reference := (QUERY(adr <* applied_document_reference | - (adr\document_reference.assigned_document\document.kind\document_type.product_data_type = 'Standards Document') AND - ((adr\document_reference.assigned_document\document.id = 'ASME Y14.41-2003') OR - (adr\document_reference.assigned_document\document.id = 'ASME Y14.5M-1994') OR - (adr\document_reference.assigned_document\document.id = 'ISO 1101: 2004')))); - pdca : SET OF product_definition_context_association := (QUERY(pdca <* product_definition_context_association | - (pdca\product_definition_context_association.role\product_definition_context_role.name = 'additional context') AND - (pdca\product_definition_context_association.frame_of_reference\application_context_element.name = 'Geometric Dimensioning and Tolerancing Product Specification'))); - ra : SET OF role_association := (QUERY(ra <* role_association | - ra\role_association.role\object_role.name = 'dimensioning standard')); - ra1 : SET OF role_association := []; - pdpdca : SET OF product_definition := []; - pdadr : SET OF product_definition := []; - pass : BOOLEAN := TRUE; - END_LOCAL; - - REPEAT i := 1 TO HIINDEX(pdca); - pdpdca := pdpdca + pdca[i]\product_definition_context_association.definition; - END_REPEAT; - REPEAT i := 1 TO HIINDEX(adr); - ra1 := bag_to_set(USEDIN(adr[i],'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ROLE_ASSOCIATION.ITEM_WITH_ROLE')); - IF (ra1 * ra) <> ra1 THEN - pass := FALSE; - END_IF; - REPEAT j := 1 to HIINDEX(adr[i]\applied_document_reference.items); - IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRODUCT_DEFINITION' IN TYPEOF(adr[i]\applied_document_reference.items[j]) THEN - pdadr := pdadr + adr[i]\applied_document_reference.items[j]; - END_IF; - END_REPEAT; - END_REPEAT; - - WHERE - WR1 : pass; - WR2 : pdpdca = pdadr; - -END_RULE; - -(* Implicit interfaced from: Machining_features_mim *) -RULE chamfer_requires_faces FOR (chamfer, -property_definition_representation); -WHERE -WR1: (SIZEOF (QUERY (cf <* chamfer | -NOT (1 = SIZEOF (QUERY (pdr <* property_definition_representation | -((pdr\property_definition_representation.definition\property_definition.definition = cf) AND -('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FACE_SHAPE_REPRESENTATION' -IN TYPEOF (pdr.used_representation)) AND -(pdr.used_representation.name = 'chamfer face')) -))) -))=0); -END_RULE; - -(* Implicit interfaced from: Machining_features_mim *) -RULE chamfer_offset_requires_faces FOR -(chamfer_offset, property_definition_representation); -WHERE -WR1: (SIZEOF (QUERY (co <* chamfer_offset | -NOT (1 = SIZEOF (QUERY (pdr <* property_definition_representation | -((pdr\property_definition_representation.definition\property_definition.definition = co) AND -('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FACE_SHAPE_REPRESENTATION' IN TYPEOF (pdr.used_representation)) AND -( ((pdr\property_definition_representation.definition\property_definition.definition.description = 'first offset') AND -(pdr.used_representation.name = 'first face shape')) -OR -((pdr\property_definition_representation.definition\property_definition.definition.description = 'second offset') AND -(pdr.used_representation.name = 'second face shape')) -)) -))) -))=0); -END_RULE; - -(* Implicit interfaced from: Machining_features_mim *) -RULE edge_round_requires_faces FOR -(edge_round, property_definition_representation); -WHERE -WR1: (0 = SIZEOF (QUERY (er <* edge_round | -NOT (1 = SIZEOF (QUERY (pdr <* property_definition_representation | -((pdr\property_definition_representation.definition\property_definition.definition = er) AND -('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FACE_SHAPE_REPRESENTATION' -IN TYPEOF (pdr.used_representation)) AND -(pdr.used_representation.name = 'edge round face')) -))) -))); -WR2: (SIZEOF (QUERY (er <* edge_round | -NOT (1 = SIZEOF (QUERY (pdr <* property_definition_representation | -((pdr\property_definition_representation.definition\property_definition.definition = er) AND -('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FACE_SHAPE_REPRESENTATION' -IN TYPEOF (pdr.used_representation)) AND -(pdr.used_representation.name = 'first face shape')) -))) -))=0); -WR3: (SIZEOF (QUERY (er <* edge_round | -NOT (1 = SIZEOF (QUERY (pdr <* property_definition_representation | -((pdr\property_definition_representation.definition\property_definition.definition = er) AND -('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FACE_SHAPE_REPRESENTATION' -IN TYPEOF (pdr.used_representation)) AND -(pdr.used_representation.name = 'second face shape')) -))) -))=0); -END_RULE; - -(* Implicit interfaced from: Machining_features_mim *) -RULE transition_feature_life_cycle FOR -(transition_feature); -WHERE -WR1: SIZEOF (QUERY (tf <* transition_feature | -NOT (tf.of_shape.definition.frame_of_reference.life_cycle_stage = -'manufacturing planning'))) = 0; -END_RULE; - -(* Implicit interfaced from: Machining_features_mim *) -RULE transition_feature_on_part_boundary FOR -(transition_feature); -WHERE -WR1: SIZEOF (QUERY (tf <* transition_feature | -NOT (tf.product_definitional))) = 0; -END_RULE; - -(* Implicit interfaced from: Dimension_and_tolerance_callouts_mim *) -RULE draughting_model_items_constraint FOR (draughting_model); -WHERE - -- logic - there should be 0 items, which are annotation_occurrences and which are not draughting_annotation_occurrences - WR1: SIZEOF(QUERY(dm <* draughting_model | - NOT(SIZEOF(QUERY(it1 <* dm\representation.items | - (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ANNOTATION_OCCURRENCE' IN TYPEOF(it1)) - AND - NOT('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'DRAUGHTING_ANNOTATION_OCCURRENCE' IN TYPEOF(it1))) - )) = 0) - )) = 0; - WR2: SIZEOF(QUERY(dm <* draughting_model | - NOT(SIZEOF(QUERY(it1 <* dm\representation.items | - (('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.DRAUGHTING_CALLOUT' IN TYPEOF(it1)) - AND - NOT('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.DRAUGHTING_ELEMENTS' IN TYPEOF(it1))) - )) = 0) - )) = 0; -END_RULE; - -(* Implicit interfaced from: shape_aspect_definition_schema *) -RULE unique_datum_system FOR -(datum_system); - -LOCAL - pass : BOOLEAN := TRUE; -END_LOCAL; -REPEAT i := 1 TO SIZEOF(datum_system); - REPEAT j := 1 TO SIZEOF(datum_system); - IF (i <> j) THEN - IF datum_system[i]\datum_system.constituents = - datum_system[j]\datum_system.constituents THEN - pass := FALSE; - END_IF; - END_IF; - END_REPEAT; -END_REPEAT;WHERE - WR1: pass; -END_RULE; - -(* Implicit interfaced from: shape_tolerance_schema *) -RULE subtype_exclusiveness_geometric_tolerance FOR -(geometric_tolerance); -WHERE - WR1: SIZEOF(QUERY (gt <* geometric_tolerance | NOT (type_check_function(gt, ['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ANGULARITY_TOLERANCE', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CIRCULAR_RUNOUT_TOLERANCE', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.COAXIALITY_TOLERANCE', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CONCENTRICITY_TOLERANCE', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CYLINDRICITY_TOLERANCE', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FLATNESS_TOLERANCE', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LINE_PROFILE_TOLERANCE', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PARALLELISM_TOLERANCE', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PERPENDICULARITY_TOLERANCE', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.POSITION_TOLERANCE', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ROUNDNESS_TOLERANCE', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.STRAIGHTNESS_TOLERANCE', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SURFACE_PROFILE_TOLERANCE', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SYMMETRY_TOLERANCE', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.TOTAL_RUNOUT_TOLERANCE'] , 2 ) ))) = 0; -END_RULE; - -(* Implicit interfaced from: Geometric_tolerance_mim *) -RULE tolerance_zone_form_name_constraint for (tolerance_zone_form); -LOCAL - names : SET OF STRING := - [ 'within a circle', - 'between two concentric circles', - 'between two equidistant curves', - 'within a cylinder', - 'between two coaxial cylinders', - 'between two equidistant surfaces', - 'non uniform', - 'cylindrical or circular', - 'spherical', - 'unknown']; - pass : BOOLEAN := TRUE; -END_LOCAL; -REPEAT i := 1 to SIZEOF(tolerance_zone_form) WHILE pass; - pass := (tolerance_zone_form[i].name IN names); -END_REPEAT; -WHERE - WR1: pass; -END_RULE; - -(* Implicit interfaced from: Text_appearance_mim *) - 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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.TEXT_LITERAL.FONT')) = 0 )) = 0; - WR2: SIZEOF (QUERY (edtf <* externally_defined_text_font | SIZEOF (USEDIN (edtf, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.TEXT_LITERAL.FONT')) = 0 )) = 0; - END_RULE; - -(* Implicit interfaced from: External_properties_mim *) - 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 | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.KNOWN_SOURCE' IN TYPEOF(edc.source) ); - WHERE - WR1: SIZEOF ( QUERY ( edgp <* known_sourced_properties | - ( SIZEOF ( QUERY ( edir <* USEDIN ( edgp, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.EXTERNALLY_DEFINED_ITEM_RELATIONSHIP.RELATING_ITEM' )| - ( edir.name = 'name scope' ) AND - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.EXTERNALLY_DEFINED_CLASS' IN TYPEOF ( edir.related_item ) ) AND - ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.KNOWN_SOURCE' IN TYPEOF ( edir.related_item.source ) ) ) ) <>1 ) ) ) = 0; - END_RULE; - -(* Implicit interfaced from: External_properties_mim *) - 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 | - ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.KNOWN_SOURCE' IN TYPEOF ( edgp.source ) ) AND - ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.KNOWN_SOURCE' + '.NAME' = 'ISO 13584 library' ) ); --tt found real problem here - WHERE - WR1: SIZEOF( QUERY( edgp <* plib_properties | - (SIZEOF( QUERY( edir <* USEDIN(edgp, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.APPLIED_EXTERNAL_IDENTIFICATION_ASSIGNMENT.ITEMS') | - (edir.role.name = 'version') )) <> 1) )) = 0; - END_RULE; - -(* Implicit interfaced from: Product_class_mim *) -RULE product_concept_feature_requires_category FOR (product_concept_feature); -WHERE -WR1: SIZEOF ( QUERY ( pcf <* product_concept_feature | -(SIZEOF(['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'INCLUSION_PRODUCT_CONCEPT_FEATURE', -'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'CONDITIONAL_CONCEPT_FEATURE'] * TYPEOF(pcf)) = 0) AND -(SIZEOF ( QUERY ( aga <* USEDIN ( pcf , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'APPLIED_GROUP_ASSIGNMENT.' + 'ITEMS' ) | -(aga\group_assignment.role\object_role.name = 'specification category member' ) AND -('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PRODUCT_CONCEPT_FEATURE_CATEGORY' IN TYPEOF ( aga.assigned_group )))) <>1 ) ) ) = 0; -END_RULE; - -(* Implicit interfaced from: Product_class_mim *) -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 , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'CONCEPT_FEATURE_RELATIONSHIP_WITH_CONDITION.' + - 'CONDITIONAL_OPERATOR' ) | - SIZEOF ( QUERY ( ccf <* USEDIN( cfrwc , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'CONDITIONAL_CONCEPT_FEATURE.CONDITION' ) | - NOT ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'CONCEPT_FEATURE_RELATIONSHIP_WITH_CONDITION.CONDITIONAL_OPERATOR') | - cfrwc.related_product_concept_feature :<>: cfrwc.relating_product_concept_feature)) >0 ))) = 0; -END_RULE; - -(* Implicit interfaced from: Multi_linguism_mim *) -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 ,'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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; - -(* Implicit interfaced from: Ap242_managed_model_based_3d_engineering_mim *) -RULE subtype_mandatory_shape_representation FOR - (shape_representation); -WHERE - WR1: SIZEOF (QUERY (sr <* shape_representation | - NOT ((SIZEOF ([ - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ADVANCED_BREP_SHAPE_REPRESENTATION', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FACETED_BREP_SHAPE_REPRESENTATION', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MANIFOLD_SURFACE_SHAPE_REPRESENTATION', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MANIFOLD_SUBSURFACE_SHAPE_REPRESENTATION', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.EDGE_BASED_WIREFRAME_SHAPE_REPRESENTATION', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHELL_BASED_WIREFRAME_SHAPE_REPRESENTATION', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.GEOMETRICALLY_BOUNDED_SURFACE_SHAPE_REPRESENTATION', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.GEOMETRICALLY_BOUNDED_WIREFRAME_SHAPE_REPRESENTATION', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.BEVELED_SHEET_REPRESENTATION', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.COMPOSITE_SHEET_REPRESENTATION', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.COMPOUND_SHAPE_REPRESENTATION', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CSG_2D_SHAPE_REPRESENTATION', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CSG_SHAPE_REPRESENTATION', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CURVE_SWEPT_SOLID_SHAPE_REPRESENTATION', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.DIRECTION_SHAPE_REPRESENTATION', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ELEMENTARY_BREP_SHAPE_REPRESENTATION', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FACE_SHAPE_REPRESENTATION', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.GEOMETRICALLY_BOUNDED_2D_WIREFRAME_REPRESENTATION', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LOCATION_SHAPE_REPRESENTATION', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.NEUTRAL_SKETCH_REPRESENTATION', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.NON_MANIFOLD_SURFACE_SHAPE_REPRESENTATION', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PATH_SHAPE_REPRESENTATION', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PLANAR_SHAPE_REPRESENTATION', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROCEDURAL_SHAPE_REPRESENTATION', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.REPRESENTATIVE_SHAPE_REPRESENTATION', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_DIMENSION_REPRESENTATION', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.TESSELLATED_SHAPE_REPRESENTATION' - ] * TYPEOF (sr)) = 1) OR - (SIZEOF (QUERY (it <* sr\representation.items | - NOT ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.AXIS2_PLACEMENT_3D' IN TYPEOF (it)))) - = 0) OR - (SIZEOF (QUERY (sdr <* QUERY (pdr <* USEDIN (sr, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.' + - 'USED_REPRESENTATION') | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_DEFINITION_REPRESENTATION' IN - TYPEOF (pdr)) | - NOT (SIZEOF (['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP'] * TYPEOF - (sdr.definition)) = 1))) = 0)))) = 0; -END_RULE; -- subtype_mandatory_shape_representation - -(* Implicit interfaced from: Classification_with_attributes_mim *) -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; - -(* Implicit interfaced from: Stock_material_mim *) - 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; - -(* Implicit interfaced from: Product_and_manufacturing_information_view_context_mim *) -RULE valid_product_and_manufacturing_information_view_contexts FOR (product_definition_context); -LOCAL - design_view_contexts : SET OF product_definition_context := - QUERY( pdc <* product_definition_context | pdc.life_cycle_stage = 'design'); - gdt_representation_view_contexts : SET OF product_definition_context := - QUERY( pdc <* product_definition_context | pdc.frame_of_reference.application = 'geometrical dimensioning and tolerancing representation'); - machining_feature_view_contexts : SET OF product_definition_context := - QUERY( pdc <* product_definition_context | pdc.frame_of_reference.application = 'machining feature'); - material_specification_view_contexts : SET OF product_definition_context := - QUERY( pdc <* product_definition_context | pdc.frame_of_reference.application = 'material specification'); - model_based_3d_annotation_presentation_view_contexts : SET OF product_definition_context := - QUERY( pdc <* product_definition_context | pdc.frame_of_reference.application = 'model based 3D annotation presentation'); - model_based_view_contexts : SET OF product_definition_context := - QUERY( pdc <* product_definition_context | pdc.frame_of_reference.application = 'model based product geometry'); - process_state_view_contexts : SET OF product_definition_context := - QUERY( pdc <* product_definition_context | pdc.frame_of_reference.application = 'process state'); - surface_finish_view_contexts : SET OF product_definition_context := - QUERY( pdc <* product_definition_context | pdc.frame_of_reference.application = 'surface finish'); - additional_view_contexts : SET OF product_definition_context := - gdt_representation_view_contexts + machining_feature_view_contexts + material_specification_view_contexts + - model_based_3d_annotation_presentation_view_contexts + process_state_view_contexts + surface_finish_view_contexts; - need_initial_model_based_view_contexts : SET OF product_definition_context := - gdt_representation_view_contexts + model_based_3d_annotation_presentation_view_contexts; -END_LOCAL; - -WHERE - WR1: SIZEOF(gdt_representation_view_contexts * design_view_contexts) = SIZEOF(gdt_representation_view_contexts); - WR2: SIZEOF(machining_feature_view_contexts * design_view_contexts) = SIZEOF(machining_feature_view_contexts); - WR3: SIZEOF(material_specification_view_contexts * design_view_contexts) = SIZEOF(material_specification_view_contexts); - WR4: SIZEOF(model_based_3d_annotation_presentation_view_contexts * design_view_contexts) = SIZEOF(model_based_3d_annotation_presentation_view_contexts); - WR5: SIZEOF(model_based_view_contexts * design_view_contexts) = SIZEOF(model_based_view_contexts); - WR6: SIZEOF(process_state_view_contexts * design_view_contexts) = SIZEOF(process_state_view_contexts); - WR7: SIZEOF(surface_finish_view_contexts * design_view_contexts) = SIZEOF(surface_finish_view_contexts); - WR8: -- not used as additional_contexts - SIZEOF(QUERY(mbvc <* model_based_view_contexts | - (SIZEOF(USEDIN(mbvc, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRODUCT_DEFINITION_CONTEXT_ASSOCIATION.FRAME_OF_REFERENCE')) = 0) - )) = SIZEOF(model_based_view_contexts); - WR9: -- not used as initial_context - SIZEOF(QUERY(avc <* additional_view_contexts | - (SIZEOF(USEDIN(avc, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRODUCT_DEFINITION.FRAME_OF_REFERENCE')) = 0) - )) = SIZEOF(additional_view_contexts); - WR10: -- initial_context shall have a Model_based_view_context - SIZEOF(QUERY(nimbvc <* need_initial_model_based_view_contexts | NOT - (SIZEOF(QUERY(pdca <* USEDIN(nimbvc, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRODUCT_DEFINITION_CONTEXT_ASSOCIATION.FRAME_OF_REFERENCE') | - (pdca\product_definition_context_association.definition\product_definition.frame_of_reference IN model_based_view_contexts))) - = - SIZEOF(need_initial_model_based_view_contexts)) - )) = 0; - WR11: -- gdt_representation_view_contexts must have at least either ISO 1101 or ASME Y14.5 as associated dimension standard document - SIZEOF ( QUERY( gdt_pdc <* gdt_representation_view_contexts | - SIZEOF(['ISO 1101', 'ASME Y14.5'] * get_associated_mandatory_document_ids(gdt_pdc) ) = 0 ) - ) = 0; - WR12: -- model_based_3d_annotation_presentation_view_contexts must have at least either ISO 1101, ISO 16792, ASME Y14.41 or ASME Y14.5 as associated model standard document - SIZEOF ( QUERY( mb3d_pdc <* model_based_3d_annotation_presentation_view_contexts | - SIZEOF(['ISO 1101', 'ISO 16792', 'ASME Y14.41', 'ASME Y14.5'] * get_associated_mandatory_document_ids(mb3d_pdc) ) = 0) - ) = 0; -END_RULE; - -(* Implicit interfaced from: Classification_with_attributes_mim *) -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('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CLASS' IN TYPEOF(gr\group_relationship.related_group)) OR - NOT('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CLASS' IN TYPEOF(gr\group_relationship.relating_group))) )) = 0; -END_RULE; - -(* Implicit interfaced from: Product_class_mim *) -RULE restrict_group_relationship_for_specification_category FOR (group_relationship); -WHERE -WR1 : SIZEOF( QUERY( gr <* group_relationship | - (gr.name = 'specification category hierarchy') AND - (NOT('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRODUCT_CONCEPT_FEATURE_CATEGORY' IN TYPEOF(gr.related_group)) - OR NOT('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRODUCT_CONCEPT_FEATURE_CATEGORY' IN TYPEOF(gr.relating_group))) )) = 0; -END_RULE; - -(* Implicit interfaced from: Part_and_zone_laminate_tables_mim *) - 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; - -(* Implicit interfaced from: Specification_control_mim *) - RULE restrict_configuration_design_for_design_constraint FOR (configuration_design); - WHERE - WR1: SIZEOF ( QUERY (cd <* configuration_design | - (cd.name = 'design constraint usage') AND - (NOT('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRODUCT_DEFINITION' IN TYPEOF ( cd.design ) ) OR - (cd.design\product_definition.frame_of_reference.name <> 'design constraint definition')))) = 0; - END_RULE; - -(* Implicit interfaced from: Geometric_tolerance_mim *) -RULE unique_gdt_element_id_constraint for ( - product_definition_shape, - dimensional_location, - dimensional_size, - shape_aspect, - shape_aspect_relationship); -LOCAL - bss : BAG OF STRING := []; - ds : SET OF dimensional_size := QUERY(ds <* dimensional_size | EXISTS(ds\dimensional_size.id)); - sa : SET OF shape_aspect := QUERY(sa <* shape_aspect | EXISTS(sa\shape_aspect.id)); - sar : SET OF shape_aspect_relationship := QUERY(sar <* shape_aspect_relationship | EXISTS(sar\shape_aspect_relationship.id)); - ssa : SET OF shape_aspect := []; - pass : BOOLEAN := TRUE; -END_LOCAL; -REPEAT ii := 1 TO SIZEOF (product_definition_shape) WHILE pass; - bss := []; - ssa := bag_to_set(USEDIN(product_definition_shape[ii], 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'SHAPE_ASPECT.' + 'OF_SHAPE')); - - REPEAT i := 1 to SIZEOF (ds); - IF (ds[i]\dimensional_size.applies_to IN ssa) THEN - bss := bss + ds[i]\dimensional_size.id; - END_IF; - END_REPEAT; - - REPEAT i := 1 to SIZEOF (sa); - IF (sa[i] IN ssa) THEN - bss := bss + sa[i]\shape_aspect.id; - END_IF; - END_REPEAT; - - REPEAT i := 1 to SIZEOF (sar); - IF (sar[i]\shape_aspect_relationship.relating_shape_aspect IN ssa) THEN - bss := bss + sar[i]\shape_aspect_relationship.id; - END_IF; - END_REPEAT; - - IF (SIZEOF(bag_to_set(bss)) <> SIZEOF(bss)) THEN pass := FALSE; - END_IF; -END_REPEAT; -WHERE - WR1 : pass; -END_RULE; - -(* Implicit interfaced from: Machining_features_mim *) -RULE machining_feature_life_cycle FOR -(instanced_feature); -WHERE -WR1: SIZEOF (QUERY (mf <* instanced_feature | -NOT (mf.of_shape.definition.frame_of_reference.life_cycle_stage = -'manufacturing planning'))) = 0; -END_RULE; - -(* Implicit interfaced from: External_properties_mim *) - 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; - -(* Implicit interfaced from: Surface_conditions_mim *) - 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 ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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; - -(* Implicit interfaced from: Inertia_characteristics_mim *) -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 | - ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'POINT' IN TYPEOF ( i ) ) AND - ( i.name = 'centre point' ) )) <>1 ) ) ) ) - =0; -END_RULE; - -(* Implicit interfaced from: Extended_measure_representation_mim *) - RULE subtype_exclusiveness_representation_item FOR - (representation_item); - WHERE - WR1: SIZEOF(QUERY (cri <* representation_item | - NOT (type_check_function(cri,['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.VALUE_REPRESENTATION_ITEM', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.COMPOUND_REPRESENTATION_ITEM'] , 3)))) = 0; - END_RULE; - -(* Implicit interfaced from: Product_occurrence_mim *) - 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; - -(* Implicit interfaced from: Specification_control_mim *) - 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 , - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRODUCT_RELATED_PRODUCT_CATEGORY.PRODUCTS' ) | - prpc. name ='requirement' ) ) =0 ) ) ) =0; - END_RULE; - -(* Implicit interfaced from: Item_definition_structure_mim *) - 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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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; - -(* Implicit interfaced from: Product_occurrence_mim *) - 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 , - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PRODUCT_DEFINITION_RELATIONSHIP.RELATED_PRODUCT_DEFINITION' ) | - pdr.name = 'definition usage' ) ) <>1 ) AND - ( SIZEOF ( QUERY ( cd <* USEDIN ( pd , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'CONFIGURATION_DESIGN.DESIGN' ) | - ( cd.name = 'occurrence usage definition' ) AND - ( NOT ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PRODUCT_IDENTIFICATION' IN TYPEOF( cd.configuration ) ) ) ) ) <>1 ) ) ) = 0; - WR3: SIZEOF ( QUERY ( pd <* part_occurrences | - (SIZEOF ( QUERY ( cd <* USEDIN ( pd , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.'+ 'PRODUCT_DEFINITION_RELATIONSHIP.RELATED_PRODUCT_DEFINITION' ) | - ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' +'PRODUCT_DEFINITION_USAGE' IN TYPEOF ( cd ) ) ) ) = 0 )AND - ( SIZEOF ( USEDIN ( pd , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' +'PROPERTY_DEFINITION.DEFINITION' ) | - ( ppd.name ='occurrence quantity' ) AND - ( SIZEOF ( QUERY ( pdr <*USEDIN ( ppd , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 | - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' +'PRODUCT_DEFINITION_OCCURRENCE_RELATIONSHIP.OCCURRENCE' ) | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' +'SPECIFIED_HIGHER_USAGE_OCCURRENCE' IN TYPEOF ( pdor.occurrence_usage ) ) ) = 0 ) ) ) = 0; - END_RULE; - -(* Implicit interfaced from: Product_occurrence_mim *) - 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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRODUCT_RELATED_PRODUCT_CATEGORY.PRODUCTS') | - prpc.name IN ['part','raw material','tool'] )) = 0 ) )) = 0; - END_RULE; - -(* Implicit interfaced from: Specification_control_mim *) - 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 , - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRODUCT_RELATED_PRODUCT_CATEGORY.PRODUCTS' ) | - prpc.name = 'functionality' ) ) = 1 ) AND - ( SIZEOF ( QUERY ( pd <* USEDIN ( pdf ,'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 , - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRODUCT_RELATED_PRODUCT_CATEGORY.PRODUCTS' ) | - prpc.name = 'conceptual design' ) ) = 1 ) AND - ( SIZEOF (QUERY ( pd <* USEDIN ( pdf , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRODUCT_DEFINITION.FORMATION' ) | - pd.frame_of_reference.name = 'conceptual definition' ) ) <1) ) ) = 0; - END_RULE; - -(* Implicit interfaced from: Specification_control_mim *) - 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 , - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRODUCT_RELATED_PRODUCT_CATEGORY.PRODUCTS' ) | - prpc.name = 'requirement' ) ) >0 ) AND - ( SIZEOF ( QUERY ( pd <* USEDIN ( pdf , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRODUCT_DEFINITION.FORMATION') | - pd.frame_of_reference.name = 'design constraint definition' ) ) <1 ) ) ) = 0; - END_RULE; - -(* Implicit interfaced from: Item_definition_structure_mim *) - 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,'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.APPLIED_EFFECTIVITY_ASSIGNMENT.ITEMS') ) = 0) )) - = 0; - END_RULE; - -(* Implicit interfaced from: Item_definition_structure_mim *) - 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; - -(* Implicit interfaced from: Product_occurrence_mim *) - 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; - -(* Implicit interfaced from: Specification_control_mim *) - 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; - -(* Implicit interfaced from: Surface_conditions_mim *) - 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; - -(* Implicit interfaced from: Surface_conditions_mim *) - 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 , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MATERIAL_DESIGNATION.DEFINITIONS'))<>1 - )) = 0; - END_RULE; - -(* Implicit interfaced from: aic_machining_feature *) -RULE machining_feature_definition_constraints FOR (feature_definition); -LOCAL - mfds : SET OF feature_definition := []; -END_LOCAL; - mfds := QUERY(temp <* feature_definition | 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MACHINING_FEATURE_DEFINITION' IN TYPEOF (temp) ); -WHERE - WR1: SIZEOF(QUERY( mfd <* mfds | NOT (SIZEOF(QUERY( pdr <* - get_property_definition_representations (mfd) | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' - IN TYPEOF ( pdr.used_representation ) ) ) <=1 ) ) ) = 0; - WR2: SIZEOF(QUERY( mfd <* mfds | NOT (SIZEOF (QUERY (pd <* USEDIN (mfd, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - NOT (SIZEOF (QUERY (impl_rep <* QUERY (pdr <* USEDIN (pd, - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' - IN TYPEOF (pdr.used_representation)) | - NOT (SIZEOF (QUERY (it <* impl_rep.used_representation.items | - ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PLACEMENT' - IN TYPEOF (it)) AND (it.name = 'orientation'))) = 1))) = 0))) = 0 ) ) ) = 0; - WR3: SIZEOF(QUERY( mfd <* mfds | NOT ((NOT (SIZEOF(['AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ROUND_HOLE', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.BOSS', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.OUTSIDE_PROFILE', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.REMOVAL_VOLUME', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FLAT_FACE', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.POCKET', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROTRUSION', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.RIB_TOP', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ROUNDED_END', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SLOT', - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.STEP'] * TYPEOF(mfds)) = 1)) OR - ((SIZEOF(QUERY(pdr <* get_property_definition_representations (mfd) | - ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PLANAR_SHAPE_REPRESENTATION' - IN TYPEOF ( pdr.used_representation ) ) AND - ( pdr.used_representation.name ='maximum feature limit'))) >=0)) ) ) ) = 0; -END_RULE; - -(* Implicit interfaced from: Alternative_solution_mim *) - 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 , - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 , - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'APPLIED_ORGANIZATION_ASSIGNMENT.ITEMS' ) | - aoa.role.name = 'supplier' )) <>1 ) )) = 0; - END_RULE; - -(* Implicit interfaced from: Alternative_solution_mim *) - 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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PRODUCT_RELATED_PRODUCT_CATEGORY.PRODUCTS') | - prpc.name = 'alternative solution')) = 0 ) )) = 0; - END_RULE; - -(* Implicit interfaced from: Part_collection_mim *) - 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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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; - -(* Implicit interfaced from: Alternative_solution_mim *) - 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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PRODUCT_RELATED_PRODUCT_CATEGORY.PRODUCTS') | - prpc.name = 'alternative solution')) = 1); - WHERE - WR1: SIZEOF( QUERY( pdf <* solution_versions | - SIZEOF( QUERY( pd <* USEDIN(pdf, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PRODUCT_DEFINITION.FORMATION') | - pd.frame_of_reference.name = 'alternative definition')) <> 1))= 0; - END_RULE; - -(* Implicit interfaced from: Alternative_solution_mim *) - 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; - -(* Implicit interfaced from: Part_collection_mim *) - 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 , - 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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; - -(* Implicit interfaced from: kinematic_analysis_control_and_result_schema *) -(* E2: SUBTYPE_CONSTRAINT link_motion_representation_along_path_subtypes FOR LINK_MOTION_REPRESENTATION_ALONG_PATH; *) - -(* Implicit interfaced from: External_currency_mim *) -(* E2: SUBTYPE_CONSTRAINT currency_subtypes FOR CURRENCY; *) - -(* Implicit interfaced from: Part_and_zone_laminate_tables_mim *) -(* E2: SUBTYPE_CONSTRAINT pos_product_definition_subtypes FOR PRODUCT_DEFINITION; *) - -(* Implicit interfaced from: Ply_orientation_specification_mim *) -(* E2: SUBTYPE_CONSTRAINT pos_compound_representation_item_subtypes FOR COMPOUND_REPRESENTATION_ITEM; *) - -(* Implicit interfaced from: Change_management_mim *) -(* E2: SUBTYPE_CONSTRAINT cm_group_subtypes FOR GROUP; *) - -(* Implicit interfaced from: Change_management_mim *) -(* E2: SUBTYPE_CONSTRAINT cm_group_assignment_subtypes FOR GROUP_ASSIGNMENT; *) - -(* Implicit interfaced from: product_analysis_schema *) -(* E2: SUBTYPE_CONSTRAINT sc1_temporal_spatial_domain FOR TEMPORAL_SPATIAL_DOMAIN; *) - -(* Implicit interfaced from: conditions_schema *) -(* E2: SUBTYPE_CONSTRAINT sc1_mbna_bc_data FOR MBNA_BC_DATA; *) - -(* Implicit interfaced from: equations_schema *) -(* E2: SUBTYPE_CONSTRAINT sc1_mbna_behaviour_model FOR MBNA_BEHAVIOUR_MODEL; *) - -(* Implicit interfaced from: equations_schema *) -(* E2: SUBTYPE_CONSTRAINT sc1_mbna_equation FOR MBNA_EQUATION; *) - -(* Implicit interfaced from: results_schema *) -(* E2: SUBTYPE_CONSTRAINT sc1_mbna_result FOR MBNA_RESULT; *) - -(* Implicit interfaced from: mesh_function_schema *) -(* E2: SUBTYPE_CONSTRAINT sc1_application_defined_function FOR APPLICATION_DEFINED_FUNCTION; *) - -(* Implicit interfaced from: mesh_function_schema *) -(* E2: SUBTYPE_CONSTRAINT sc1_unary_generic_expression FOR UNARY_GENERIC_EXPRESSION; *) - -(* Implicit interfaced from: Ap242_managed_model_based_3d_engineering_mim *) -(* E2: SUBTYPE_CONSTRAINT ap242_founded_item_subtypes FOR FOUNDED_ITEM; *) - -(* Implicit interfaced from: presentation_appearance_schema *) -(* E2: SUBTYPE_CONSTRAINT founded_item_subtypes FOR FOUNDED_ITEM; *) - -(* Implicit interfaced from: Appearance_assignment_mim *) -(* E2: SUBTYPE_CONSTRAINT aa_representation_item_subtypes FOR REPRESENTATION_ITEM; *) - -(* Implicit interfaced from: Document_assignment_mim *) -(* E2: SUBTYPE_CONSTRAINT subtype_mandatory_document_product_association FOR DOCUMENT_PRODUCT_ASSOCIATION; *) - -(* Implicit interfaced from: aic_machining_feature *) -(* E2: SUBTYPE_CONSTRAINT machining_feature_definition_subtypes FOR FEATURE_DEFINITION; *) - -(* Implicit interfaced from: analysis_schema *) -(* E2: SUBTYPE_CONSTRAINT sc1_numerical_model FOR NUMERICAL_MODEL; *) - -(* Implicit interfaced from: shape_aspect_definition_schema *) -(* E2: SUBTYPE_CONSTRAINT sads_shape_aspect_subtypes FOR SHAPE_ASPECT; *) - -(* Implicit interfaced from: presentation_organization_schema *) -(* E2: SUBTYPE_CONSTRAINT pos_geometric_representation_item_subtypes FOR GEOMETRIC_REPRESENTATION_ITEM; *) - -(* Implicit interfaced from: presentation_definition_schema *) -(* E2: SUBTYPE_CONSTRAINT pds_geometric_representation_item_subtypes FOR GEOMETRIC_REPRESENTATION_ITEM; *) - -(* Implicit interfaced from: Basic_data_representation_mim *) -(* E2: SUBTYPE_CONSTRAINT representation_item_subtypes FOR REPRESENTATION_ITEM; *) - -(* Implicit interfaced from: draughting_element_schema *) -(* E2: SUBTYPE_CONSTRAINT annotation_occurrence_subtypes FOR ANNOTATION_OCCURRENCE; *) - -(* Implicit interfaced from: draughting_element_schema *) -(* E2: SUBTYPE_CONSTRAINT annotation_curve_subtypes FOR ANNOTATION_CURVE_OCCURRENCE; *) - -(* Implicit interfaced from: Characteristic_mim *) -(* E2: SUBTYPE_CONSTRAINT c_compound_representation_item_subtypes FOR COMPOUND_REPRESENTATION_ITEM; *) - -(* Implicit interfaced from: Tagged_text_representation_mim *) -(* E2: SUBTYPE_CONSTRAINT ttr_descriptive_representation_item_subtypes FOR DESCRIPTIVE_REPRESENTATION_ITEM; *) - -(* Implicit interfaced from: kinematic_motion_representation_schema *) -(* E2: SUBTYPE_CONSTRAINT kmr_representation_subtypes FOR REPRESENTATION; *) - -(* Implicit interfaced from: kinematic_motion_representation_schema *) -(* E2: SUBTYPE_CONSTRAINT kmr_geometric_representation_context_subtypes FOR GEOMETRIC_REPRESENTATION_CONTEXT; *) - -(* Implicit interfaced from: kinematic_motion_representation_schema *) -(* E2: SUBTYPE_CONSTRAINT kmr_geometric_representation_item_subtypes FOR GEOMETRIC_REPRESENTATION_ITEM; *) - -(* Implicit interfaced from: presentation_appearance_schema *) -(* E2: SUBTYPE_CONSTRAINT pas_geometric_representation_item_subtypes FOR GEOMETRIC_REPRESENTATION_ITEM; *) - -(* Implicit interfaced from: presentation_resource_schema *) -(* E2: SUBTYPE_CONSTRAINT prs_geometric_representation_item_subtypes FOR GEOMETRIC_REPRESENTATION_ITEM; *) - -(* Implicit interfaced from: kinematic_structure_schema *) -(* E2: SUBTYPE_CONSTRAINT kss_representation_subtypes FOR REPRESENTATION; *) - -(* Implicit interfaced from: kinematic_property_schema *) -(* E2: SUBTYPE_CONSTRAINT kps_property_definition_subtypes FOR PROPERTY_DEFINITION; *) - -(* Implicit interfaced from: kinematic_state_schema *) -(* E2: SUBTYPE_CONSTRAINT kss_geometric_representation_item_subtypes FOR GEOMETRIC_REPRESENTATION_ITEM; *) - -(* Implicit interfaced from: kinematic_topology_schema *) -(* E2: SUBTYPE_CONSTRAINT kts_representation_subtypes FOR REPRESENTATION; *) - -(*** 2003=>1994 conversion: insert a rule to control if instances are legal according to USE/REF clauses ***) - -RULE validate_dependently_instantiable_entity_data_types FOR - (action_method_role,action_resource_type,attribute_value_role,camera_model_d2,cartesian_transformation_operator,concept_feature_relationship,concept_feature_relationship_with_condition,document_usage_constraint,edge_blended_solid,effectivity_context_role,event_occurrence_role,explicit_procedural_representation_item_relationship,indirectly_selected_elements,maths_space_context,modified_solid_with_placed_configuration,one_direction_repeat_factor,oriented_open_shell,oriented_path,procedural_representation,procedural_representation_sequence,product_definition_effectivity,property_distribution_description,runout_zone_orientation,solid_with_depression,solid_with_hole,solid_with_pocket,solid_with_protrusion,solid_with_shape_element_pattern,solid_with_slot,state_type_role,swept_area_solid,symbol_target,two_direction_repeat_factor,user_selected_elements,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; - all_instances := all_instances + action_resource_type; - all_instances := all_instances + attribute_value_role; - all_instances := all_instances + camera_model_d2; - all_instances := all_instances + cartesian_transformation_operator; - all_instances := all_instances + concept_feature_relationship; - all_instances := all_instances + concept_feature_relationship_with_condition; - all_instances := all_instances + document_usage_constraint; - all_instances := all_instances + edge_blended_solid; - all_instances := all_instances + effectivity_context_role; - all_instances := all_instances + event_occurrence_role; - all_instances := all_instances + explicit_procedural_representation_item_relationship; - all_instances := all_instances + indirectly_selected_elements; - all_instances := all_instances + maths_space_context; - all_instances := all_instances + modified_solid_with_placed_configuration; - all_instances := all_instances + one_direction_repeat_factor; - all_instances := all_instances + oriented_open_shell; - all_instances := all_instances + oriented_path; - all_instances := all_instances + procedural_representation; - all_instances := all_instances + procedural_representation_sequence; - all_instances := all_instances + product_definition_effectivity; - all_instances := all_instances + property_distribution_description; - all_instances := all_instances + runout_zone_orientation; - all_instances := all_instances + solid_with_depression; - all_instances := all_instances + solid_with_hole; - all_instances := all_instances + solid_with_pocket; - all_instances := all_instances + solid_with_protrusion; - all_instances := all_instances + solid_with_shape_element_pattern; - all_instances := all_instances + solid_with_slot; - all_instances := all_instances + state_type_role; - all_instances := all_instances + swept_area_solid; - all_instances := all_instances + symbol_target; - all_instances := all_instances + two_direction_repeat_factor; - all_instances := all_instances + user_selected_elements; - all_instances := all_instances + volume; -;-- -number_of_input_instances := SIZEOF(all_instances); -(* Collect all type strings of all FOR instances into one set. *) -REPEAT i:=1 TO number_of_input_instances; - set_of_input_types := set_of_input_types + TYPEOF(all_instances[i]); -END_REPEAT; - -WHERE - WR1: dependently_instantiated(all_instances, set_of_input_types, - previous_in_chain); -END_RULE; - -FUNCTION dependently_instantiated( - set_of_input_instances : SET OF GENERIC:igen; - set_of_input_types : SET OF STRING; - previous_in_chain : LIST OF GENERIC:cgen): BOOLEAN; -(*'dependently_instantiated' To test whether all instances in the - input set_of_input_instances are referenced by independently - instantiable instances. If so, this function returns true. - Set_of_input_types includes the type strings for all input instances. - The instances in previous_in_chain are used to detect cyclic - references during recursive calls to this function. The parameter - lists already tested instances in a chain of references. -*) -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; -- end dependently_instantiated - - - -END_SCHEMA; - diff --git a/data/wip210e3/210e3_v1_47_mim_lf.exp b/data/wip210e3/210e3_v1_47_mim_lf.exp deleted file mode 100644 index 3a2a16ff..00000000 --- a/data/wip210e3/210e3_v1_47_mim_lf.exp +++ /dev/null @@ -1,42198 +0,0 @@ -(* - $Id: mim_lf.exp,v 1.47 2013/02/20 15:32:31 thomasrthurman Exp $ - ISO TC184/SC4/WG3 8232 - ISO/TS 10303-410 AP210 electronic assembly interconnect and packaging design - EXPRESS MIM Long form - Supersedes ISO TC184/SC4/WG3 N2601 -*) - -(* ===================================================================================== *) -(* Long form schema generated by The EXPRESS Data Manager compiler version 9.8.3B 20121030*) -(* Tue Feb 19 19:27:56 2013 *) -(* The schema is converted from ISO10303 P11-2003 to ISO10303 P11-1994 *) -(* ===================================================================================== *) - -SCHEMA Ap210_electronic_assembly_interconnect_and_packaging_design_mim_LF; - - -(* - USE FROM Ap242_managed_model_based_3d_engineering_mim; - - USE FROM Assembly_2d_shape_mim; - USE FROM Assembly_3d_shape_mim; - USE FROM Assembly_module_with_cable_component_2d_mim; - USE FROM Assembly_module_with_cable_component_3d_mim; - USE FROM Assembly_module_with_macro_component_mim; - USE FROM Assembly_physical_requirement_allocation_mim; - USE FROM Connectivity_allocation_to_physical_network_mim; - USE FROM Datum_difference_based_model_mim; - USE FROM Design_specific_assignment_to_assembly_usage_view_mim; - USE FROM Design_specific_assignment_to_interconnect_usage_view_mim; - USE FROM Device_marking_mim; - USE FROM Electrical_network_definition_mim; - USE FROM Fabrication_requirement_mim; - USE FROM Functional_decomposition_to_assembly_design_mim; - USE FROM Functional_decomposition_to_interconnect_design_mim; - USE FROM Functional_unit_requirement_allocation_mim; - USE FROM Interconnect_2d_shape_mim; - USE FROM Interconnect_module_to_assembly_module_relationship_mim; - USE FROM Interconnect_non_planar_shape_mim; - USE FROM Interconnect_placement_requirements_mim; - USE FROM Layered_interconnect_module_2d_design_mim; - USE FROM Layered_interconnect_module_3d_design_mim; - USE FROM Layout_macro_definition_mim; - USE FROM Packaged_part_white_box_model_mim; - USE FROM Part_feature_grouping_mim; - USE FROM Physical_node_requirement_to_implementing_component_allocation_mim; - USE FROM Physical_unit_interconnect_definition_mim; - USE FROM Pre_defined_datum_symbol_mim; - USE FROM Sequential_laminate_assembly_design_mim; - USE FROM Test_requirement_allocation_mim; - USE FROM Thermal_network_definition_mim; - USE FROM Via_component_mim; - USE FROM Interconnect_physical_requirement_allocation_mim; - - - REFERENCE FROM support_resource_schema(bag_to_set); - - USE FROM geometry_schema(offset_curve_2d); -*) - -CONSTANT -schema_date : STRING := 'Wed Feb 20 8:31:01 2013'; - -(* Implicit interfaced from: mathematical_functions_schema *) - the_nonnegative_reals : real_interval_from_min := - make_real_interval_from_min(0.0, closed); - -(* Implicit interfaced from: geometry_schema *) - dummy_gri : geometric_representation_item := representation_item('')|| geometric_representation_item(); - -(* Implicit interfaced from: mathematical_functions_schema *) schema_prefix : STRING := 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.'; - -(* Implicit interfaced from: mathematical_functions_schema *) - the_empty_maths_tuple : maths_tuple := []; - -(* Implicit interfaced from: mathematical_functions_schema *) - the_empty_space : finite_space := make_finite_space([]); - -(* Implicit interfaced from: mathematical_functions_schema *) - the_zero_tuple_space : listed_product_space := make_listed_product_space([]); - -(* Implicit interfaced from: mathematical_functions_schema *) - the_reals : elementary_space := make_elementary_space(es_reals); - -(* Implicit interfaced from: mathematical_functions_schema *) - the_tuples : extended_tuple_space := make_extended_tuple_space( - the_zero_tuple_space, the_generics); - -(* Implicit interfaced from: mathematical_functions_schema *) - the_generics : elementary_space := make_elementary_space(es_generics); - -(* Implicit interfaced from: mathematical_functions_schema *) - the_logicals : elementary_space := make_elementary_space(es_logicals); - -(* Implicit interfaced from: mathematical_functions_schema *) - the_integers : elementary_space := make_elementary_space(es_integers); - -(* Implicit interfaced from: mathematical_functions_schema *) - the_integer_tuples : extended_tuple_space := make_extended_tuple_space( - the_zero_tuple_space, the_integers); - -(* Implicit interfaced from: mathematical_functions_schema *) - the_real_tuples : extended_tuple_space := make_extended_tuple_space( - the_zero_tuple_space, the_reals); - -(* Implicit interfaced from: Picture_representation_mim *) - pre_defined_picture_representation_types : SET [0:?] OF STRING := [ 'JPEG', 'PNG', 'TIFF', 'BMP', 'GIF']; - -(* Implicit interfaced from: mathematical_functions_schema *) - the_neg1_one_interval : finite_real_interval := make_finite_real_interval( - -1.0, closed, 1.0, closed); - -(* Implicit interfaced from: mathematical_functions_schema *) - the_complex_numbers : elementary_space := make_elementary_space(es_complex_numbers); - -(* Implicit interfaced from: mathematical_functions_schema *) - the_complex_tuples : extended_tuple_space := make_extended_tuple_space( - the_zero_tuple_space, the_complex_numbers); - -(* Implicit interfaced from: mathematical_functions_schema *) - the_strings : elementary_space := make_elementary_space(es_strings); - -(* Implicit interfaced from: mathematical_functions_schema *) - the_numbers : elementary_space := make_elementary_space(es_numbers); - -(* Implicit interfaced from: mathematical_functions_schema *) - the_binarys : elementary_space := make_elementary_space(es_binarys); - -(* Implicit interfaced from: mathematical_functions_schema *) - the_maths_spaces : elementary_space := make_elementary_space(es_maths_spaces); - -(* Implicit interfaced from: mathematical_functions_schema *) - the_booleans : elementary_space := make_elementary_space(es_booleans); - -(* Implicit interfaced from: mathematical_functions_schema *) - the_zero_pi_interval : finite_real_interval := make_finite_real_interval( - 0.0, closed, pi, closed); - -(* Implicit interfaced from: mathematical_functions_schema *) - the_neghalfpi_halfpi_interval : finite_real_interval := make_finite_real_interval( - -0.5*pi, closed, 0.5*pi, closed); - -(* Implicit interfaced from: mathematical_functions_schema *) - the_negpi_pi_interval : finite_real_interval := make_finite_real_interval( - -pi, open, pi, closed); - -(* Implicit interfaced from: topology_schema *) - dummy_tri : topological_representation_item := representation_item('')|| - topological_representation_item(); - -END_CONSTANT; -(* USED FROM (measure_schema); *) -TYPE acceleration_measure = REAL; - END_TYPE; - -(* Pruned unused type: ap210_presented_item_select *) - - -(* Pruned unused type: property_variable_rep_select_242 *) - - -(* Pruned unused type: item_identified_representation_usage_definition_242 *) - - -(* Pruned unused type: draughting_model_item_definition_242 *) - - -(* Pruned unused type: ap242_change_management_object *) - - -(* Pruned unused type: ap242_change_relationship_select *) - - -(* Pruned unused type: action_request_item_242 *) - - -(* Pruned unused type: aliasable_item_242 *) - - -(* Pruned unused type: approval_item_242 *) - -(* USED FROM (Ap242_managed_model_based_3d_engineering_mim); *) - TYPE approved_item = SELECT - (certification, - change, - change_request, - configuration_effectivity, - configuration_item, - contract, - product, - security_classification, - start_request, - start_work); - END_TYPE; - -(* Pruned unused type: attribute_language_item_242 *) - - -(* Pruned unused type: certification_item_242 *) - -(* USED FROM (Ap242_managed_model_based_3d_engineering_mim); *) - TYPE certified_item = SELECT - (supplied_part_relationship); - END_TYPE; -(* USED FROM (Ap242_managed_model_based_3d_engineering_mim); *) - TYPE change_request_item = SELECT - (product_definition_formation); - END_TYPE; -(* USED FROM (Ap242_managed_model_based_3d_engineering_mim); *) - TYPE cc_classified_item = SELECT - (assembly_component_usage, - product_definition_formation); - END_TYPE; - -(* Pruned unused type: contract_item_242 *) - -(* USED FROM (Ap242_managed_model_based_3d_engineering_mim); *) - TYPE contracted_item = SELECT - (product_definition_formation); - END_TYPE; - -(* Pruned unused type: date_and_time_item_242 *) - - -(* Pruned unused type: date_item_242 *) - -(* USED FROM (Ap242_managed_model_based_3d_engineering_mim); *) - TYPE date_time_item = SELECT - (approval_person_organization, - certification, - change, - change_request, - contract, - product_definition, - security_classification, - start_request, - start_work); - END_TYPE; - -(* Pruned unused type: document_reference_item_242 *) - - -(* Pruned unused type: effectivity_item_242 *) - - -(* Pruned unused type: event_occurrence_item_242 *) - - -(* Pruned unused type: external_identification_item_242 *) - - -(* Pruned unused type: groupable_item_242 *) - - -(* Pruned unused type: identification_item_242 *) - - -(* Pruned unused type: multi_language_attribute_item_242 *) - - -(* Pruned unused type: organization_item_242 *) - - -(* Pruned unused type: organizational_project_item_242 *) - - -(* Pruned unused type: person_and_organization_item_242 *) - -(* USED FROM (Ap242_managed_model_based_3d_engineering_mim); *) - 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; - -(* Pruned unused type: presented_item_select_242 *) - - -(* Pruned unused type: security_classification_item_242 *) - -(* USED FROM (Ap242_managed_model_based_3d_engineering_mim); *) - TYPE cc_specified_item = SELECT - (product_definition, - shape_aspect); - END_TYPE; -(* USED FROM (Ap242_managed_model_based_3d_engineering_mim); *) - TYPE start_request_item = SELECT - (product_definition_formation); - END_TYPE; - -(* Pruned unused type: time_interval_item_242 *) - - -(* Pruned unused type: action_items_242 *) - - -(* Pruned unused type: classification_item_242 *) - - -(* Pruned unused type: configured_effectivity_item_242 *) - -(* USED FROM (Ap242_managed_model_based_3d_engineering_mim); *) - TYPE work_item = SELECT - (product_definition_formation); - END_TYPE; - -(* Pruned unused type: apra_groupable_item *) - - -(* Pruned unused type: apra_requirement_assigned_item *) - - -(* Pruned unused type: device_marking_approval_item *) - - -(* Pruned unused type: device_marking_organization_item *) - - -(* Pruned unused type: device_marking_document_reference_item *) - - -(* Pruned unused type: fura_requirement_assigned_item *) - - -(* Pruned unused type: imtamr_requirement_assigned_item *) - - -(* Pruned unused type: imtamr_document_reference_item *) - - -(* Pruned unused type: ipr_groupable_item *) - - -(* Pruned unused type: ipr_requirement_assigned_item *) - - -(* Pruned unused type: slad_groupable_item *) - - -(* Pruned unused type: slad_requirement_assigned_item *) - - -(* Pruned unused type: tra_groupable_item *) - - -(* Pruned unused type: tra_requirement_assigned_item *) - -(* USED FROM (Externally_conditioned_data_quality_inspection_result_mim); *) -(* This SELECT set has been been expanded or truncated for EXPRESS E1 layout. *) -TYPE inspected_ecdq_element_select = inspected_element_select; -END_TYPE; - - -(* Pruned unused type: csg2d_bounded_primitive_2d *) - -(* USED FROM (Constructive_solid_geometry_2d_mim); *) - TYPE boolean_operand_2d = SELECT ( - bounded_primitive_2d, - boolean_result_2d); - END_TYPE; -(* USED FROM (Constructive_solid_geometry_2d_mim); *) - TYPE compound_inner_area_boundary = SELECT ( - set_inner_area_boundary); - END_TYPE; -(* USED FROM (Constructive_solid_geometry_2d_mim); *) - TYPE csg_2d_area_select = SELECT ( - axis2_placement_2d, - csg_primitive_solid_2d); - END_TYPE; -(* USED FROM (Constructive_solid_geometry_2d_mim); *) - TYPE csg_2d_shape_select = SELECT ( - mapped_item, - axis2_placement_2d, - csg_solid_2d); - END_TYPE; -(* USED FROM (Constructive_solid_geometry_2d_mim); *) - TYPE csg_select_2d = SELECT ( - bounded_primitive_2d, - boolean_result_2d); - END_TYPE; -(* USED FROM (Constructive_solid_geometry_2d_mim); *) - TYPE set_inner_area_boundary = SET [1:?] OF bounded_primitive_2d; - END_TYPE; - -(* Pruned unused type: dt_document_reference_item *) - - -(* Pruned unused type: design_pdm_action_item *) - - -(* Pruned unused type: design_pdm_action_method_items *) - - -(* Pruned unused type: design_pdm_action_request_item *) - - -(* Pruned unused type: design_pdm_approval_item *) - - -(* Pruned unused type: design_pdm_attribute_classification_item *) - - -(* Pruned unused type: design_pdm_attribute_language_item *) - - -(* Pruned unused type: design_pdm_certification_item *) - - -(* Pruned unused type: design_pdm_classification_item *) - - -(* Pruned unused type: design_pdm_configured_effectivity_item *) - - -(* Pruned unused type: design_pdm_contract_item *) - - -(* Pruned unused type: design_pdm_date_and_time_item *) - - -(* Pruned unused type: design_pdm_date_item *) - - -(* Pruned unused type: design_pdm_document_reference_item *) - - -(* Pruned unused type: design_pdm_effectivity_item *) - - -(* Pruned unused type: design_pdm_event_occurrence_item *) - - -(* Pruned unused type: design_pdm_groupable_item *) - - -(* Pruned unused type: design_pdm_identification_item *) - - -(* Pruned unused type: design_pdm_ir_usage_item *) - - -(* Pruned unused type: design_pdm_multi_language_attribute_item *) - - -(* Pruned unused type: design_pdm_name_item *) - - -(* Pruned unused type: design_pdm_organization_item *) - - -(* Pruned unused type: design_pdm_project_item *) - - -(* Pruned unused type: design_pdm_person_and_organization_item *) - - -(* Pruned unused type: design_pdm_requirement_assigned_item *) - - -(* Pruned unused type: design_pdm_requirement_source_item *) - - -(* Pruned unused type: design_pdm_security_classification_item *) - - -(* Pruned unused type: promissory_usage_in_product_model_assigned_item *) - - -(* Pruned unused type: design_pdm_time_interval_item *) - - -(* Pruned unused type: datc_draughting_model_item_definition *) - - -(* Pruned unused type: dimensioning_standard_document_reference_item *) - - -(* Pruned unused type: dimension_identification_item *) - - -(* Pruned unused type: dimension_tolerance_document_reference_item *) - - -(* Pruned unused type: eri_external_identification *) - -(* USED FROM (Mechanical_design_presentation_representation_with_draughting_mim); *) -(* This EXTENSIBLE SELECT have been replaced with plain SELECT for EXPRESS E1 layout. *) -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; - -(* USED FROM (Picture_representation_mim); *) - TYPE picture_representation_item_select = SELECT ( - styled_item, - planar_box, - axis2_placement_2d); - END_TYPE; - -(* Pruned unused type: pr_external_identification_item *) - - -(* Pruned unused type: pc_action_items *) - -(* USED FROM (Ply_orientation_specification_mim); *) - TYPE angle_direction_reference_select = SELECT ( - direction, - curve, - point_path); - END_TYPE; -(* USED FROM (Ply_orientation_specification_mim); *) - TYPE angle_direction_reference_with_a2p3d_select = SELECT ( - angle_direction_reference_select, - axis2_placement_3d); - END_TYPE; -(* USED FROM (Ply_orientation_specification_mim); *) - TYPE orientation_basis_select = SELECT ( - axis2_placement_3d, - min_and_major_ply_orientation_basis); - END_TYPE; -(* USED FROM (Ply_orientation_specification_mim); *) - TYPE point_and_vector_member = SELECT (point, direction); - END_TYPE; -(* USED FROM (Ply_orientation_specification_mim); *) - TYPE point_and_vector_members = LIST [2:3] OF point_and_vector_member; - END_TYPE; -(* USED FROM (Ply_orientation_specification_mim); *) - TYPE point_path_members = LIST [1:?] OF point_and_vector; - END_TYPE; - -(* Pruned unused type: mb3dgdtr_geometric_model_item *) - - -(* Pruned unused type: cm_approval_item *) - -(* USED FROM (Change_management_mim); *) -TYPE previous_element_assignment_select = SELECT (modify_element, delete_element); -END_TYPE; -(* USED FROM (Change_management_mim); *) -TYPE current_element_assignment_select = SELECT (modify_element, add_element); -END_TYPE; -(* USED FROM (Change_management_mim); *) -(* This SELECT set has been been expanded or truncated for EXPRESS E1 layout. *) -TYPE change_relationship_select = SELECT ( - action_relationship, - product_definition_formation_relationship, - product_definition_relationship, - shape_aspect_relationship); -END_TYPE; - -(* USED FROM (Change_management_mim); *) -(* This SELECT set has been been expanded or truncated for EXPRESS E1 layout. *) -TYPE change_management_object = SELECT ( - action, - action_directive, - action_items, - action_relationship, - alternate_product_relationship, - analog_port_variable, - analytical_model_definition, - analytical_model_make_from_relationship, - analytical_model_port, - analytical_model_port_assignment, - analytical_representation, - applied_approval_assignment, - applied_date_and_time_assignment, - applied_document_reference, - applied_external_identification_assignment, - applied_group_assignment, - applied_identification_assignment, - applied_organization_assignment, - applied_person_and_organization_assignment, - approval, - approval_status, - assembly_bond_definition, - assembly_component, - assembly_component_usage, - assembly_component_usage_substitute, - assembly_group_component_definition_placement_link, - assembly_joint, - bus_element_link, - bus_structural_definition, - calendar_date, - certification, - characterized_object, - class, - complex_clause, - component_2d_location, - component_3d_location, - component_definition, - component_feature, - component_feature_relationship, - component_functional_terminal, - component_functional_unit, - component_terminal, - composite_curve_segment, - composite_signal_property_relationship, - conductive_interconnect_element_terminal_link, - configuration_effectivity, - configuration_item, - connection_zone_interface_plane_relationship, - connection_zone_map_identification, - connector_based_interconnect_definition, - contract, - curve_style, - curve_style_font, - curve_style_font_and_scaling, - curve_style_parameters_representation, - date, - date_and_time, - datum, - datum_difference_functional_unit_usage_view_terminal_assignment, - descriptive_representation_item, - design_composition_path, - device_terminal_map, - dielectric_crossover_area, - dimension_related_tolerance_zone_element, - dimensional_characteristic_representation, - dimensional_location, - dimensional_size, - direct_stratum_component_join_implementation, - direction, - document, - document_usage_constraint, - draughting_pre_defined_text_font, - effectivity, - evaluated_characteristic, - event_occurrence, - externally_defined_curve_font, - externally_defined_hatch_style, - externally_defined_item, - externally_defined_text_font, - externally_defined_tile_style, - fabrication_joint, - fill_area_style_hatching, - fill_area_style_tiles, - frozen_assignment, - func, - functional_specification, - functional_terminal_group, - functional_unit_terminal_definition, - general_property_relationship, - geometric_representation_context, - geometric_representation_item, - geometric_tolerance, - geometric_tolerance_relationship, - group, - group_product_definition, - group_shape_aspect, - interface_mounted_join, - item_defined_transformation, - join_shape_aspect, - layer_connection_point, - layout_junction, - linear_array_component_definition_link, - make_from_connectivity_relationship, - make_from_feature_relationship, - make_from_usage_option, - mapped_item, - material_designation, - measure_qualification, - measure_with_unit, - model_parameter, - network_node_definition, - operational_requirement_relationship, - organization, - packaged_connector_terminal_relationship, - parameter_assignment, - parameter_assignment_override, - part_connected_terminals_definition, - passage_technology, - person, - person_and_organization, - physical_connectivity_definition, - physical_connectivity_element, - physical_network, - physical_node_requirement_to_implementing_component_allocation, - plated_inter_stratum_feature, - plus_minus_tolerance, - pre_defined_item, - predefined_requirement_view_definition, - presentation_style_assignment, - printed_connector_template_terminal_relationship, - printed_part_template_connected_terminals_definition, - printed_part_template_material, - printed_part_template_material_link, - product, - product_category, - product_concept, - product_definition, - product_definition_formation, - product_definition_formation_relationship, - product_definition_relationship, - product_definition_with_associated_documents, - product_specific_parameter_value_assignment, - project_item, - projected_zone_definition, - promissory_usage_occurrence, - property_definition, - property_definition_relationship, - property_definition_representation, - range_characteristic, - reference_composition_path, - representation, - representation_context, - representation_item, - representation_relationship, - representation_relationship_with_transformation, - requirement_assignment, - rule_action, - runout_zone_orientation_reference_direction, - scalar_terminal_definition_link, - security_classification, - sequential_laminate_passage_based_fabrication_joint, - shape_aspect, - shape_aspect_relationship, - shape_dimension_representation, - shape_representation, - shape_representation_relationship, - signal, - simple_clause, - solid_curve_font, - specified_higher_usage_occurrence, - stratum_feature_based_derived_pattern, - stratum_feature_conductive_join, - stratum_surface, - stratum_technology, - stratum_technology_occurrence_link, - styled_item, - text_font, - tolerance_value, - tolerance_zone_definition, - tolerance_zone_form, - usage_view_connection_zone_terminal_shape_relationship, - vector, - versioned_action_request); -END_TYPE; - -(* USED FROM (Change_management_mim); *) -TYPE location_in_aggregate_item = LIST [1:?] OF integer_representation_item; -END_TYPE; -(* USED FROM (Point_direction_model_mim); *) -TYPE point_placement_shape_representation_item = SELECT ( - compound_representation_item, - mapped_item, - axis2_placement_3d); -END_TYPE; -(* USED FROM (Numerical_interface_mim); *) -(* This SELECT set has been been expanded or truncated for EXPRESS E1 layout. *) -TYPE property_variable_rep_select = SELECT ( - dimensional_size, - representation); -END_TYPE; - -(* USED FROM (Numerical_interface_mim); *) -TYPE expression_extension_select = SELECT ( - expression_extension_string, - expression_extension_numeric); -END_TYPE; -(* USED FROM (product_property_representation_schema); *) -(* This SELECT set has been been expanded or truncated for EXPRESS E1 layout. *) -TYPE item_identified_representation_usage_definition = SELECT ( - applied_action_assignment, - applied_action_method_assignment, - applied_action_request_assignment, - applied_approval_assignment, - applied_certification_assignment, - applied_classification_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_group_assignment, - applied_identification_assignment, - applied_ineffectivity_assignment, - applied_name_assignment, - applied_organization_assignment, - applied_organizational_project_assignment, - applied_person_and_organization_assignment, - applied_security_classification_assignment, - applied_time_interval_assignment, - applied_usage_right, - dimensional_size, - geometric_tolerance, - product_definition_relationship, - property_definition, - represented_definition); -END_TYPE; - - -(* Pruned unused type: at_requirement_assigned_item *) - - -(* Pruned unused type: at_external_identification_item *) - - -(* Pruned unused type: pu3ds_external_identification_item *) - - -(* Pruned unused type: apir_requirement_assigned_item *) - - -(* Pruned unused type: apir_document_reference_item *) - - -(* Pruned unused type: afir_document_reference_item *) - - -(* Pruned unused type: ap_external_identification_item *) - - -(* Pruned unused type: ap_document_reference_item *) - - -(* Pruned unused type: p_groupable_item *) - - -(* Pruned unused type: pa_external_identification_item *) - - -(* Pruned unused type: pplt_groupable_item *) - - -(* Pruned unused type: fdwnrtpm_groupable_item *) - - -(* Pruned unused type: limd_requirement_assigned_item *) - - -(* Pruned unused type: limd_external_identification_item *) - - -(* Pruned unused type: limd_document_reference_item *) - - -(* Pruned unused type: limd_groupable_item *) - - -(* Pruned unused type: fuuv_classification_item *) - - -(* Pruned unused type: nfuv_groupable_item *) - - -(* Pruned unused type: list_external_identification_item *) - -(* USED FROM (Approval_mim); *) -(* This SELECT set has been been expanded or truncated for EXPRESS E1 layout. *) -TYPE approval_item = SELECT ( - action, - action_directive, - action_property, - action_request_solution, - alternate_product_relationship, - applied_action_assignment, - applied_classification_assignment, - applied_usage_right, - assembly_component_usage_substitute, - certification, - class, - class_system, - configuration_design, - configuration_effectivity, - configuration_item, - configured_effectivity_assignment, - contract, - date, - directed_action, - document, - document_file, - draughting_model, - drawing_revision, - effectivity, - executed_action, - frozen_assignment, - general_property, - general_property_relationship, - group, - group_relationship, - information_usage_right, - material_designation, - mechanical_design_geometric_presentation_representation, - organizational_project, - presentation_area, - product, - product_concept, - product_concept_feature, - product_concept_feature_association, - product_concept_feature_category, - product_concept_feature_category_usage, - product_definition, - product_definition_formation, - product_definition_formation_relationship, - product_definition_relationship, - product_definition_substitute, - property_definition, - representation, - requirement_assignment, - resource_property, - security_classification, - shape_aspect_relationship, - shape_representation, - versioned_action_request); -END_TYPE; - - -(* Pruned unused type: date_and_time_item_approval *) - - -(* Pruned unused type: date_item_approval *) - -(* USED FROM (basic_attribute_schema); *) -(* This SELECT set has been been expanded or truncated for EXPRESS E1 layout. *) -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; - -(* USED FROM (Date_time_assignment_mim); *) -(* This SELECT set has been been expanded or truncated for EXPRESS E1 layout. *) -TYPE date_item = SELECT ( - action, - action_directive, - action_method, - action_property, - action_relationship, - action_request_solution, - alternate_product_relationship, - applied_action_assignment, - applied_classification_assignment, - applied_organization_assignment, - applied_person_and_organization_assignment, - applied_security_classification_assignment, - approval_person_organization, - approval_status, - assembly_component_usage_substitute, - certification, - class, - class_system, - configuration_design, - configuration_item, - configured_effectivity_assignment, - contract, - data_quality_definition, - directed_action, - document, - document_file, - draughting_model, - drawing_revision, - effectivity, - event_occurrence, - executed_action, - general_property, - information_usage_right, - material_designation, - mechanical_design_geometric_presentation_representation, - organization_relationship, - organizational_project, - person_and_organization, - presentation_area, - product, - product_concept, - product_concept_feature, - product_concept_feature_association, - product_concept_feature_category, - product_concept_feature_category_usage, - product_definition, - product_definition_formation, - product_definition_formation_relationship, - product_definition_relationship, - product_definition_substitute, - property_definition, - requirement_for_action_resource, - resource_property, - security_classification, - security_classification_level, - shape_representation, - versioned_action_request); -END_TYPE; - -(* USED FROM (Date_time_assignment_mim); *) -(* This SELECT set has been been expanded or truncated for EXPRESS E1 layout. *) -TYPE date_and_time_item = SELECT ( - action, - action_directive, - action_method, - action_property, - action_relationship, - action_request_solution, - alternate_product_relationship, - applied_action_assignment, - applied_classification_assignment, - applied_organization_assignment, - applied_person_and_organization_assignment, - applied_security_classification_assignment, - approval_person_organization, - approval_status, - assembly_component_usage_substitute, - certification, - class, - class_system, - configuration_design, - configuration_item, - configured_effectivity_assignment, - contract, - data_quality_definition, - directed_action, - document, - document_file, - draughting_model, - drawing_revision, - effectivity, - event_occurrence, - executed_action, - general_property, - information_usage_right, - material_designation, - mechanical_design_geometric_presentation_representation, - organization_relationship, - organizational_project, - person_and_organization, - presentation_area, - product, - product_concept, - product_concept_feature, - product_concept_feature_association, - product_concept_feature_category, - product_concept_feature_category_usage, - product_definition, - product_definition_formation, - product_definition_formation_relationship, - product_definition_relationship, - product_definition_substitute, - property_definition, - requirement_for_action_resource, - resource_property, - rule_action, - security_classification, - security_classification_level, - shape_representation, - versioned_action_request); -END_TYPE; - - -(* Pruned unused type: ipra_requirement_assigned_item *) - - -(* Pruned unused type: lict_requirement_assigned_item *) - - -(* Pruned unused type: nfdv_requirement_assigned_item *) - - -(* Pruned unused type: ft_classification_item *) - - -(* Pruned unused type: ft_external_identification_item *) - - -(* Pruned unused type: ft_document_reference_item *) - - -(* Pruned unused type: ft_requirement_assigned_item *) - - -(* Pruned unused type: cf_groupable_item *) - -(* USED FROM (Requirement_assignment_mim); *) -(* This SELECT set has been been expanded or truncated for EXPRESS E1 layout. *) -TYPE requirement_assigned_item = SELECT ( - assembly_component_usage, - assembly_item_number, - assembly_joint, - component_functional_unit, - component_material_relationship, - configuration_item, - derived_laminate_assignment, - descriptive_representation_item, - dielectric_crossover_area, - group, - group_product_definition, - group_relationship, - group_shape_aspect, - layered_interconnect_module_design_view, - part_connected_terminals_definition, - part_connected_terminals_element, - passage_technology, - physical_connectivity_definition, - predefined_requirement_view_definition, - product, - product_class, - product_definition, - product_definition_formation, - product_definition_relationship, - representation, - shape_aspect, - shape_aspect_relationship, - shape_representation, - stratum_feature_conductive_join, - stratum_technology, - stratum_technology_occurrence, - stratum_technology_occurrence_relationship, - structured_template, - thermal_isolation_removal_template); -END_TYPE; - -(* USED FROM (Requirement_assignment_mim); *) -(* This EXTENSIBLE SELECT have been replaced with plain SELECT for EXPRESS E1 layout. *) -TYPE requirement_satisfaction_item = SELECT ( - requirement_assigned_item); -END_TYPE; - -(* USED FROM (Requirement_assignment_mim); *) -(* This SELECT set has been been expanded or truncated for EXPRESS E1 layout. *) -TYPE requirement_source_item = SELECT ( - characterized_object, - group, - group_relationship, - product, - product_definition, - product_definition_formation, - product_definition_relationship, - shape_aspect); -END_TYPE; - - -(* Pruned unused type: pie_external_identification_item *) - - -(* Pruned unused type: fdtd_change_management_object *) - - -(* Pruned unused type: fdtd_groupable_item *) - - -(* Pruned unused type: limwpcd_external_identification_item *) - -(* USED FROM (representation_schema); *) - TYPE compound_item_definition = SELECT - (list_representation_item, - set_representation_item); - END_TYPE; -(* USED FROM (representation_schema); *) - TYPE list_representation_item = LIST [1:?] OF representation_item; - END_TYPE; -(* USED FROM (Physical_unit_design_view_mim); *) -(* This EXTENSIBLE SELECT have been replaced with plain SELECT for EXPRESS E1 layout. *) -TYPE component_material_relationship_assignment_item = SELECT ( - assembly_component_usage, - assembly_item_number, - specification_definition); -END_TYPE; - - -(* Pruned unused type: pudv_groupable_item *) - - -(* Pruned unused type: pudv_requirement_assigned_item *) - - -(* Pruned unused type: imcr_requirement_assigned_item *) - - -(* Pruned unused type: fatp_groupable_item *) - - -(* Pruned unused type: fatp_requirement_assigned_item *) - - -(* Pruned unused type: puuv_groupable_item *) - - -(* Pruned unused type: puuv_requirement_assigned_item *) - - -(* Pruned unused type: puuv_document_reference_item *) - - -(* Pruned unused type: pcd_groupable_item *) - - -(* Pruned unused type: pcd_requirement_assigned_item *) - - -(* Pruned unused type: pcd_document_reference_item *) - - -(* Pruned unused type: am_document_reference_item *) - - -(* Pruned unused type: am_external_identification_item *) - - -(* Pruned unused type: am_parameter_assignment_select *) - - -(* Pruned unused type: mp_action_method_items *) - - -(* Pruned unused type: mp_groupable_item *) - - -(* Pruned unused type: mp_document_reference_item *) - -(* USED FROM (Model_parameter_mim); *) -(* This SELECT set has been been expanded or truncated for EXPRESS E1 layout. *) -TYPE parameter_assignment_select = SELECT ( - analytical_model_parameter, - model_parameter); -END_TYPE; - -(* USED FROM (Shape_property_assignment_mim); *) -(* This SELECT set has been been expanded or truncated for EXPRESS E1 layout. *) -TYPE geometric_model_item = SELECT ( - connected_face_set, - edge_loop, - geometric_representation_item); -END_TYPE; - -(* USED FROM (Shape_property_assignment_mim); *) -TYPE geometric_item_specific_usage_select = SELECT - (shape_aspect, - shape_aspect_relationship); -END_TYPE; -(* USED FROM (Shape_property_assignment_mim); *) -(* This SELECT set has been been expanded or truncated for EXPRESS E1 layout. *) -TYPE shape_model = SELECT ( - constructive_geometry_representation, - shape_representation); -END_TYPE; - - -(* Pruned unused type: dse_shape_model *) - -(* USED FROM (Construction_geometry_mim); *) - TYPE constructive_geometry_representation_or_shape_represenation = SELECT - (constructive_geometry_representation, - shape_representation); - END_TYPE; - -(* Pruned unused type: bc_external_identification_item *) - -(* USED FROM (External_item_identification_assignment_mim); *) -(* This SELECT set has been been expanded or truncated for EXPRESS E1 layout. *) -TYPE external_identification_item = SELECT ( - action_relationship, - action_request_status, - applied_organization_assignment, - applied_person_and_organization_assignment, - approval, - approval_status, - assembly_bond_definition, - assembly_component, - composite_signal_property_relationship, - date_and_time_assignment, - date_assignment, - digital_analytical_model_vector_port, - document_file, - external_source, - externally_defined_class, - externally_defined_context_dependent_unit, - externally_defined_conversion_based_unit, - externally_defined_general_property, - externally_defined_physical_network_group, - externally_defined_physical_network_group_element_relationship, - externally_defined_picture_representation_item, - externally_defined_representation_item, - functional_specification, - generic_product_definition_reference, - land_physical_template, - organizational_address, - package, - package_terminal_template_definition, - printed_component, - product_definition, - property_definition, - security_classification, - shape_representation, - signal, - stratum, - stratum_feature_based_derived_pattern, - stratum_technology, - trimmed_curve, - versioned_action_request); -END_TYPE; - -(* USED FROM (Document_assignment_mim); *) -(* This SELECT set has been been expanded or truncated for EXPRESS E1 layout. *) -TYPE document_reference_item = SELECT ( - action_directive, - action_method, - action_relationship, - analytical_model_definition, - applied_action_assignment, - applied_external_identification_assignment, - approval, - assembly_component, - assembly_component_usage, - certification, - characterized_class, - characterized_object, - class, - class_system, - component_feature, - configuration_design, - configuration_item, - contract, - descriptive_representation_item, - dimensional_size, - executed_action, - externally_conditioned_data_quality_criterion, - externally_defined_dimension_definition, - externally_defined_item, - feature_definition, - general_property, - group, - group_relationship, - information_right, - information_usage_right, - inter_stratum_feature, - material_designation, - measure_representation_item, - model_parameter, - organization, - organizational_project, - package_terminal, - passage_technology, - person, - physical_connectivity_definition, - physical_connectivity_element, - predefined_requirement_view_definition, - presentation_area, - process_plan, - product, - product_category, - product_concept, - product_concept_feature, - product_concept_feature_category, - product_definition, - product_definition_context, - product_definition_formation, - product_definition_formation_relationship, - product_definition_process, - product_definition_relationship, - product_definition_substitute, - product_related_product_category, - property_definition, - protocol_physical_layer_definition, - representation, - representation_item, - resource_requirement_type, - retention, - rule_set, - security_classification, - shape_aspect, - shape_aspect_relationship, - stratum, - stratum_feature, - stratum_surface, - stratum_technology, - structured_layout_component, - usage_association, - versioned_action_request); -END_TYPE; - -(* USED FROM (Identification_assignment_mim); *) -(* This SELECT set has been been expanded or truncated for EXPRESS E1 layout. *) -TYPE identification_item = SELECT ( - action, - action_directive, - action_method, - action_property, - applied_identification_assignment, - approval_status, - characterized_class, - class, - class_system, - configuration_item, - contract, - dimensional_size, - document_file, - document_type, - draughting_model, - effectivity, - general_property, - group, - group_relationship, - information_right, - information_usage_right, - material_designation, - measure_representation_item, - mechanical_design_geometric_presentation_representation, - organization, - organizational_project, - person_and_organization, - presentation_area, - product, - product_category, - product_class, - product_concept, - product_concept_feature, - product_concept_feature_category, - product_definition, - product_definition_formation, - product_definition_relationship, - product_identification, - property_definition, - property_definition_relationship, - representation, - rule_set, - security_classification, - security_classification_level, - shape_aspect_relationship, - shape_representation, - usage_association, - versioned_action_request); -END_TYPE; - - -(* Pruned unused type: sd_id_attribute_select *) - -(* USED FROM (shape_dimension_schema); *) -TYPE angle_relator = ENUMERATION OF - (equal, - large, - small); -END_TYPE; -(* USED FROM (shape_dimension_schema); *) -TYPE dimensional_characteristic = SELECT - (dimensional_location, - dimensional_size); -END_TYPE; - -(* Pruned unused type: sds_item_identified_representation_usage_definition *) - -(* USED FROM (shape_dimension_schema); *) -TYPE shape_dimension_representation_item = SELECT - (compound_representation_item, - descriptive_representation_item, - measure_representation_item, - placement); -END_TYPE; -(* USED FROM (shape_tolerance_schema); *) -TYPE tolerance_method_definition = SELECT - (limits_and_fits, - tolerance_value); -END_TYPE; -(* USED FROM (kinematic_motion_representation_schema); *) -TYPE interpolation_type = ENUMERATION OF - (undefined_interpolation_type, - discontinuous_interpolation_type, - synchronous_interpolation_type, - linear_interpolation_type); -END_TYPE; -(* USED FROM (shape_aspect_definition_schema); *) -(* This EXTENSIBLE ENUMERATION set has been replaced with plain ENUMERATION for EXPRESS E1 layout. *) -TYPE simple_datum_reference_modifier = ENUMERATION OF ( - any_cross_section, - any_longitudinal_section, - basic, - contacting_feature, - degree_of_freedom_constraint_u, - degree_of_freedom_constraint_v, - degree_of_freedom_constraint_w, - degree_of_freedom_constraint_x, - degree_of_freedom_constraint_y, - degree_of_freedom_constraint_z, - distance_variable, - free_state, - least_material_requirement, - line, - major_diameter, - maximum_material_requirement, - minor_diameter, - orientation, - pitch_diameter, - plane, - point, - translation); -END_TYPE; - - -(* Pruned unused type: puswp_external_identification_item *) - - -(* Pruned unused type: puswp_requirement_assigned_item *) - - -(* Pruned unused type: pu2ds_external_identification_item *) - - -(* Pruned unused type: plt_groupable_item *) - - -(* Pruned unused type: effectivity_item_for_replacement *) - - -(* Pruned unused type: rd_document_reference_item *) - - -(* Pruned unused type: rd_groupable_item *) - - -(* Pruned unused type: rd_requirement_assigned_item *) - -(* USED FROM (Product_occurrence_mim); *) - TYPE product_definition_or_assembly_relationship = SELECT (assembly_component_usage, product_definition); - END_TYPE; -(* USED FROM (representation_schema); *) - TYPE set_representation_item = SET [1:?] OF representation_item; - END_TYPE; -(* USED FROM (geometric_model_schema); *) -(* This SELECT set has been been expanded or truncated for EXPRESS E1 layout. *) -TYPE bounded_primitive_2d = SELECT ( - area_with_outer_boundary, - circular_area, - elliptic_area, - path_area_with_parameters, - polygonal_area, - rectangular_area); -END_TYPE; - - -(* Pruned unused type: representation_identification_item *) - - -(* Pruned unused type: c_document_reference_item *) - - -(* Pruned unused type: el_external_identification_item *) - - -(* Pruned unused type: external_identification_for_plib_property *) - - -(* Pruned unused type: acpr_requirement_assigned_item *) - - -(* Pruned unused type: acpr_groupable_item *) - - -(* Pruned unused type: cma_classification_item *) - -(* USED FROM (Classification_assignment_mim); *) -(* This SELECT set has been been expanded or truncated for EXPRESS E1 layout. *) -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, - document_type, - effectivity, - event_occurrence, - executed_action, - feature_definition, - functional_unit_terminal_definition, - general_feature, - general_property, - general_property_relationship, - group, - identification_assignment, - information_right, - information_usage_right, - language, - material_designation, - 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, - plus_minus_tolerance, - process_operation, - product, - product_concept, - product_concept_feature, - product_concept_feature_category, - 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, - resource_property, - security_classification, - security_classification_level, - shape_aspect, - stratum_technology_occurrence_relationship, - uncertainty_measure_with_unit, - usage_association, - versioned_action_request); -END_TYPE; - - -(* Pruned unused type: fs_external_identification_item *) - - -(* Pruned unused type: fs_document_reference_item *) - - -(* Pruned unused type: s_external_identification_item *) - - -(* Pruned unused type: pr_action_items *) - - -(* Pruned unused type: pr_date_and_time_item *) - - -(* Pruned unused type: pr_document_reference_item *) - - -(* Pruned unused type: pr_identification_item *) - - -(* Pruned unused type: pr_organization_item *) - - -(* Pruned unused type: pr_person_and_organization_item *) - -(* USED FROM (Production_rule_mim); *) -TYPE rule_superseded_item = SELECT - (product_definition_formation); -END_TYPE; -(* USED FROM (Specification_document_mim); *) - TYPE document_identifier_assigned_item = SELECT - (document); - END_TYPE; - -(* Pruned unused type: sd_document_reference_item *) - -(* USED FROM (Activity_mim); *) -(* This SELECT set has been been expanded or truncated for EXPRESS E1 layout. *) -TYPE action_items = SELECT ( - action, - action_directive, - action_method, - action_property, - action_relationship, - action_request_solution, - alternate_product_relationship, - applied_action_assignment, - applied_classification_assignment, - applied_person_and_organization_assignment, - approval_status, - assembly_component_usage_substitute, - certification, - certification_item, - characterized_object, - class, - class_system, - classification_item, - configuration_design, - configuration_effectivity, - configuration_item, - configured_effectivity_assignment, - contract, - document_file, - document_reference_item, - draughting_model, - drawing_revision, - evaluated_characteristic, - executed_action, - general_property, - identification_item, - material_designation, - mechanical_design_geometric_presentation_representation, - organization, - organization_relationship, - organizational_project, - person_and_organization, - presentation_area, - product, - product_concept, - product_concept_feature, - product_concept_feature_association, - product_concept_feature_category, - product_concept_feature_category_usage, - product_definition, - product_definition_formation, - product_definition_formation_relationship, - product_definition_relationship, - product_definition_substitute, - property_definition, - requirement_assigned_item, - requirement_for_action_resource, - resource_property, - security_classification, - security_classification_level, - shape_aspect, - shape_representation, - versioned_action_request); -END_TYPE; - -(* USED FROM (Effectivity_application_mim); *) -(* This SELECT set has been been expanded or truncated for EXPRESS E1 layout. *) -TYPE effectivity_item = SELECT ( - action, - action_method, - action_method_relationship, - action_property, - action_relationship, - assembly_component_usage_substitute, - class, - class_system, - configuration_design, - configuration_item, - configured_effectivity_assignment, - document_file, - draughting_model, - drawing_revision, - general_property, - material_designation, - mechanical_design_geometric_presentation_representation, - presentation_area, - product, - product_concept, - product_concept_feature, - product_concept_feature_association, - product_concept_feature_category, - product_concept_feature_category_usage, - product_definition, - product_definition_formation, - product_definition_formation_relationship, - product_definition_relationship, - product_definition_substitute, - property_definition, - requirement_for_action_resource, - resource_property, - security_classification, - shape_aspect, - shape_representation); -END_TYPE; - -(* USED FROM (basic_attribute_schema); *) -(* This SELECT set has been been expanded or truncated for EXPRESS E1 layout. *) -TYPE description_attribute_select = SELECT ( - action_request_solution, - application_context, - approval_role, - configuration_design, - context_dependent_shape_representation, - date_role, - date_time_role, - effectivity, - external_source, - organization_role, - organizational_project, - person_and_organization, - person_and_organization_role, - property_definition_representation, - representation); -END_TYPE; - -(* USED FROM (basic_attribute_schema); *) -(* This SELECT set has been been expanded or truncated for EXPRESS E1 layout. *) -TYPE id_attribute_select = SELECT ( - action, - address, - application_context, - dimensional_size, - geometric_tolerance, - group, - organizational_project, - product_category, - property_definition, - representation, - shape_aspect, - shape_aspect_relationship); -END_TYPE; - -(* USED FROM (product_data_quality_criteria_schema); *) - TYPE detailed_report_type = ENUMERATION OF - (measured_element, - inferior_quality_element); - END_TYPE; -(* USED FROM (product_data_quality_criteria_schema); *) - TYPE summary_report_type = ENUMERATION OF - (unspecified, - conclusion_only, - number_of_quality_defects, - number_of_inspections_and_conclusion, - full_statistics); - END_TYPE; -(* USED FROM (product_data_quality_criteria_schema); *) - TYPE preferred_ordering = ENUMERATION OF - (extremity_order, - detected_order); - END_TYPE; - -(* Pruned unused type: pdq_date_and_time_item *) - - -(* Pruned unused type: pdq_person_and_organization_item *) - - -(* Pruned unused type: pdq_date_item *) - - -(* Pruned unused type: pqd_organization_item *) - -(* USED FROM (Person_organization_assignment_mim); *) -(* This SELECT set has been been expanded or truncated for EXPRESS E1 layout. *) -TYPE organization_item = SELECT ( - action, - action_directive, - action_method, - action_property, - action_relationship, - action_request_solution, - alternate_product_relationship, - applied_action_assignment, - applied_classification_assignment, - applied_identification_assignment, - applied_organization_assignment, - applied_person_and_organization_assignment, - applied_security_classification_assignment, - approval, - approval_status, - assembly_component_usage_substitute, - certification, - class, - class_system, - configuration_design, - configuration_effectivity, - configuration_item, - configured_effectivity_assignment, - contract, - data_quality_definition, - document_file, - document_type, - draughting_model, - drawing_revision, - effectivity, - event_occurrence, - executed_action, - general_property, - information_usage_right, - material_designation, - mechanical_design_geometric_presentation_representation, - organization, - organization_relationship, - organizational_project, - person_and_organization, - presentation_area, - product, - product_concept, - product_concept_feature, - product_concept_feature_association, - product_concept_feature_category, - product_concept_feature_category_usage, - product_definition, - product_definition_formation, - product_definition_formation_relationship, - product_definition_relationship, - product_definition_substitute, - property_definition, - representation, - requirement_for_action_resource, - resource_property, - rule_action, - security_classification, - security_classification_level, - shape_representation, - versioned_action_request); -END_TYPE; - -(* USED FROM (Person_organization_assignment_mim); *) -(* This SELECT set has been been expanded or truncated for EXPRESS E1 layout. *) -TYPE person_and_organization_item = SELECT ( - action, - action_directive, - action_method, - action_property, - action_relationship, - action_request_solution, - alternate_product_relationship, - applied_action_assignment, - applied_classification_assignment, - applied_identification_assignment, - applied_organization_assignment, - applied_person_and_organization_assignment, - applied_security_classification_assignment, - approval, - approval_status, - assembly_component_usage_substitute, - certification, - class, - class_system, - configuration_design, - configuration_effectivity, - configuration_item, - configured_effectivity_assignment, - contract, - data_quality_definition, - document_file, - document_type, - draughting_model, - drawing_revision, - event_occurrence, - executed_action, - general_property, - information_usage_right, - material_designation, - mechanical_design_geometric_presentation_representation, - organization, - organization_relationship, - organizational_project, - person_and_organization, - presentation_area, - product, - product_concept, - product_concept_feature, - product_concept_feature_association, - product_concept_feature_category, - product_concept_feature_category_usage, - product_definition, - product_definition_formation, - product_definition_formation_relationship, - product_definition_relationship, - product_definition_substitute, - property_definition, - requirement_for_action_resource, - resource_property, - rule_action, - security_classification, - security_classification_level, - shape_representation, - versioned_action_request); -END_TYPE; - -(* USED FROM (basic_attribute_schema); *) -(* This SELECT set has been been expanded or truncated for EXPRESS E1 layout. *) -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; - -(* USED FROM (product_data_quality_definition_schema); *) - TYPE used_quality_representation_select = SELECT - (data_quality_criteria_representation, - data_quality_inspection_result_representation); - END_TYPE; -(* USED FROM (product_data_quality_inspection_result_schema); *) - TYPE statistical_value_type = ENUMERATION OF - (number_of_inspected_instances, - number_of_quality_defects_detected); - END_TYPE; -(* USED FROM (product_data_quality_inspection_result_schema); *) -(* This SELECT set has been been expanded or truncated for EXPRESS E1 layout. *) -TYPE inspected_element_select = SELECT ( - assembly_component_usage, - axis2_placement_3d, - b_spline_or_composite_curve_select, - b_spline_or_rectangular_composite_surface_select, - cartesian_transformation_operator_3d, - closed_or_open_shell_select, - connected_face_set, - curve, - direction, - edge_curve, - edge_loop, - face_surface, - global_uncertainty_assigned_context, - global_unit_assigned_context, - group, - manifold_solid_brep, - placement, - point, - presentation_layer_assignment, - representation_item, - styled_item, - surface, - vertex_point); -END_TYPE; - -(* USED FROM (shape_data_quality_criteria_schema); *) - TYPE shape_data_quality_assessment_specification_select = SELECT - (shape_data_quality_assessment_by_logical_test, - shape_data_quality_assessment_by_numerical_test); - END_TYPE; -(* USED FROM (shape_data_quality_criteria_schema); *) - TYPE shape_data_quality_value_limit_type_select = SELECT - (shape_data_quality_value_range, - shape_data_quality_value_limit); - END_TYPE; -(* USED FROM (shape_data_quality_inspection_result_schema); *) - TYPE measured_value_select = SELECT - (boolean_value, - measure_value, - plane_angle_and_ratio_pair, - plane_angle_and_length_pair); - END_TYPE; -(* USED FROM (shape_data_quality_inspection_result_schema); *) - TYPE boolean_value = BOOLEAN; - END_TYPE; -(* USED FROM (shape_data_quality_inspection_result_schema); *) - TYPE location_of_extreme_value_select = SELECT - (inspected_shape_element_select, - b_spline_surface_knot_locator, - b_spline_curve_knot_locator, - b_spline_curve_segment, - b_spline_surface_strip, - b_spline_surface_patch, - composite_curve_transition_locator, - rectangular_composite_surface_transition_locator, - boundary_curve_of_b_spline_or_rectangular_composite_surface, - oriented_edge, - face_bound, - point_on_edge_curve, - point_on_face_surface, - subedge, - subface); - END_TYPE; -(* USED FROM (shape_data_quality_inspection_result_schema); *) -(* This SELECT set has been been expanded or truncated for EXPRESS E1 layout. *) -TYPE inspected_shape_element_select = inspected_element_select; -END_TYPE; - -(* USED FROM (shape_data_quality_inspection_result_schema); *) - TYPE closed_or_open_shell_select = SELECT - (closed_shell, - open_shell); - END_TYPE; -(* USED FROM (shape_data_quality_inspection_result_schema); *) - TYPE b_spline_or_composite_curve_select = SELECT - (b_spline_curve, - composite_curve); - END_TYPE; -(* USED FROM (shape_data_quality_inspection_result_schema); *) - TYPE b_spline_or_rectangular_composite_surface_select = SELECT - (b_spline_surface, - rectangular_composite_surface); - END_TYPE; -(* USED FROM (shape_data_quality_inspection_result_schema); *) - TYPE u_or_v_parameter = ENUMERATION OF - (u_parameter, - v_parameter); - END_TYPE; -(* USED FROM (shape_data_quality_inspection_result_schema); *) -TYPE surface_boundary_type = ENUMERATION OF - (u_parameter_min, - v_parameter_min, - u_parameter_max, - v_parameter_max); - END_TYPE; - -(* Pruned unused type: appearance_representation_identification_item *) - -(* USED FROM (presentation_appearance_schema); *) - TYPE style_context_select = SELECT - (group, - presentation_layer_assignment, - presentation_set, - representation, - representation_item, - representation_relationship); - END_TYPE; - -(* Pruned unused type: ecdq_document_reference_item *) - - -(* Pruned unused type: document_location_select *) - - -(* Pruned unused type: file_identification_item *) - - -(* Pruned unused type: file_location_select *) - -(* USED FROM (Group_mim); *) -(* This SELECT set has been been expanded or truncated for EXPRESS E1 layout. *) -TYPE groupable_item = SELECT ( - applied_identification_assignment, - applied_name_assignment, - assembly_component, - assembly_component_usage, - assembly_spacing_requirement, - component_feature, - component_functional_unit, - geometric_representation_item, - group_relationship, - group_shape_aspect, - layout_spacing_requirement, - mapped_item, - network_node_definition, - package_product_concept_feature, - part_connected_terminals_definition, - physical_connectivity_definition, - physical_network, - predefined_requirement_view_definition, - printed_part_template_terminal, - 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, - stratum, - styled_item, - topological_representation_item); - WHERE - WR1: NOT ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.GROUP' IN TYPEOF(SELF)); -END_TYPE; -(* USED FROM (explicit_constraint_schema); *) -TYPE constraint_group_member = SELECT - (explicit_constraint, - simultaneous_constraint_group); -END_TYPE; -(* USED FROM (explicit_geometric_constraint_schema); *) -TYPE geometric_constraint_element = SELECT - (point, - curve, - surface, - vector, - direction); -END_TYPE; -(* USED FROM (explicit_geometric_constraint_schema); *) -TYPE point_curve_or_surface_constraint_element = SELECT - (point, - curve, - surface); -END_TYPE; -(* USED FROM (explicit_geometric_constraint_schema); *) -TYPE curve_or_surface_constraint_element = SELECT - (curve, - surface); -END_TYPE; -(* USED FROM (explicit_geometric_constraint_schema); *) -TYPE linear_geometry_constraint_element = SELECT - (line, - plane, - direction, - vector); -END_TYPE; -(* USED FROM (explicit_geometric_constraint_schema); *) -TYPE radial_geometry_constraint_element = SELECT - (circle, - cylindrical_surface, - conical_surface, - spherical_surface, - right_circular_cylinder, - right_circular_cone, - sphere); -END_TYPE; -(* USED FROM (explicit_geometric_constraint_schema); *) -TYPE axial_geometry_constraint_element = SELECT - (point, - line, - circle, - plane, - cylindrical_surface, - conical_surface, - spherical_surface, - toroidal_surface, - surface_of_revolution, - sphere, - right_circular_cone, - right_circular_cylinder, - torus, - revolved_face_solid, - revolved_area_solid); -END_TYPE; -(* USED FROM (explicit_geometric_constraint_schema); *) -TYPE swept_surface_or_solid = SELECT - (swept_surface, - swept_face_solid, - swept_area_solid); -END_TYPE; -(* USED FROM (explicit_geometric_constraint_schema); *) -TYPE tangent_contact_type = ENUMERATION OF - (point_contact, - curve_contact, - surface_contact); -END_TYPE; -(* USED FROM (explicit_geometric_constraint_schema); *) -TYPE parallel_offset_type = ENUMERATION OF - (curve_2d_offset, - curve_3d_offset, - surface_offset); -END_TYPE; - -(* Pruned unused type: machining_feature_definition *) - -(* USED FROM (kinematic_analysis_control_and_result_schema); *) -TYPE kinematic_analysis_definition = SELECT - (interpolated_configuration_sequence, - prescribed_path); -END_TYPE; -(* USED FROM (kinematic_analysis_control_and_result_schema); *) -TYPE kinematic_result = SELECT - (interpolated_configuration_sequence, - resulting_path); -END_TYPE; -(* USED FROM (Specification_control_mim); *) - TYPE class_usage_effectivity_context_item = SELECT - (product_definition); - END_TYPE; - -(* Pruned unused type: effectivity_specification_for_replacement *) - -(* USED FROM (Specification_control_mim); *) -(* This EXTENSIBLE SELECT have been replaced with plain SELECT for EXPRESS E1 layout. *) -TYPE instance_usage_context_select = SELECT ( - product_definition_relationship, - product_definition_usage); -END_TYPE; - - -(* Pruned unused type: product_as_individual_identification_item *) - - -(* Pruned unused type: classification_item_extended *) - - -(* Pruned unused type: classification_identification_item *) - - -(* Pruned unused type: classification_classification_item *) - -(* USED FROM (Classification_with_attributes_mim); *) -(* This EXTENSIBLE SELECT have been replaced with plain SELECT for EXPRESS E1 layout. *) -TYPE classified_item = SELECT ( - product, - product_definition, - product_definition_formation); -END_TYPE; - - -(* Pruned unused type: cwa_identification_item *) - - -(* Pruned unused type: plib_class_identification_item *) - - -(* Pruned unused type: plib_class_organization_item *) - - -(* Pruned unused type: ir_approval_item *) - - -(* Pruned unused type: ir_contract_item *) - - -(* Pruned unused type: ir_date_and_time_item *) - - -(* Pruned unused type: ir_date_item *) - - -(* Pruned unused type: ir_identification_item *) - - -(* Pruned unused type: ir_organization_item *) - - -(* Pruned unused type: ir_person_and_organization_item *) - -(* USED FROM (Information_rights_mim); *) -(* This SELECT set has been been expanded or truncated for EXPRESS E1 layout. *) -TYPE ir_usage_item = action_items; -END_TYPE; - - -(* Pruned unused type: pdpdms_person_and_organization_item *) - - -(* Pruned unused type: pdpdms_external_identification_item *) - - -(* Pruned unused type: pdm_action_items *) - - -(* Pruned unused type: pdm_action_request_item *) - - -(* Pruned unused type: pdm_approval_item *) - - -(* Pruned unused type: pdm_attribute_language_item *) - - -(* Pruned unused type: pdm_certification_item *) - - -(* Pruned unused type: pdm_classification_item *) - - -(* Pruned unused type: pdm_date_and_time_item *) - - -(* Pruned unused type: pdm_date_item *) - - -(* Pruned unused type: pdm_document_reference_item *) - - -(* Pruned unused type: pdm_effectivity_item *) - - -(* Pruned unused type: pdm_event_occurrence_item *) - - -(* Pruned unused type: pdm_external_class_name_item *) - - -(* Pruned unused type: pdm_identification_item *) - - -(* Pruned unused type: pdm_multi_language_attribute_item *) - - -(* Pruned unused type: pdm_organization_item *) - - -(* Pruned unused type: pdm_person_and_organization_item *) - - -(* Pruned unused type: pdm_project_item *) - - -(* Pruned unused type: pdm_security_classification_item *) - - -(* Pruned unused type: pdm_time_interval_item *) - -(* USED FROM (Activity_method_assignment_mim); *) -(* This SELECT set has been been expanded or truncated for EXPRESS E1 layout. *) -TYPE action_method_items = SELECT ( - action, - action_method, - action_property, - applied_action_assignment, - configuration_design, - contract, - document_file, - event_occurrence, - organization, - organizational_project, - person, - person_and_organization, - product, - product_concept, - product_definition, - product_definition_formation, - product_definition_formation_relationship, - product_definition_relationship, - property_definition, - test_method_based_parameter_assignment); -END_TYPE; - -(* USED FROM (Attribute_classification_mim); *) -(* This SELECT set has been been expanded or truncated for EXPRESS E1 layout. *) -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; - -(* USED FROM (Associative_draughting_elements_mim); *) -TYPE draughting_model_item_association_select = SELECT ( - annotation_occurrence, - draughting_callout); -END_TYPE; -(* USED FROM (Associative_draughting_elements_mim); *) -(* This SELECT set has been been expanded or truncated for EXPRESS E1 layout. *) -TYPE draughting_model_item_definition = SELECT ( - applied_action_assignment, - applied_action_method_assignment, - applied_action_request_assignment, - applied_approval_assignment, - applied_certification_assignment, - applied_classification_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_group_assignment, - applied_identification_assignment, - applied_ineffectivity_assignment, - applied_name_assignment, - applied_organization_assignment, - applied_organizational_project_assignment, - applied_person_and_organization_assignment, - applied_security_classification_assignment, - applied_time_interval_assignment, - applied_usage_right, - dimensional_size, - geometric_tolerance, - product_definition_relationship, - product_definition_shape, - property_definition, - shape_aspect, - shape_aspect_relationship); -END_TYPE; - - -(* Pruned unused type: aade_annotation_representation_select *) - - -(* Pruned unused type: aade_invisibility_context *) - -(* USED FROM (aic_associative_draughting_elements); *) - TYPE draughting_model_item_select = SELECT - (mapped_item, - styled_item, - axis2_placement, - camera_model, - draughting_callout); - END_TYPE; -(* USED FROM (product_property_definition_schema); *) - TYPE shape_definition = SELECT (product_definition_shape, shape_aspect, shape_aspect_relationship); - END_TYPE; -(* USED FROM (aic_draughting_annotation); *) -TYPE draughting_subfigure_representation_item = SELECT ( - annotation_occurrence, - draughting_callout, - axis2_placement); -END_TYPE; -(* USED FROM (aic_draughting_annotation); *) -TYPE draughting_symbol_representation_item = SELECT ( - annotation_curve_occurrence, - annotation_symbol_occurrence, - annotation_fill_area_occurrence, - annotation_text_occurrence, - axis2_placement); -END_TYPE; -(* USED FROM (Presentation_hierarchy_mim); *) -(* This SELECT set has been been expanded or truncated for EXPRESS E1 layout. *) -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; - -(* USED FROM (drawing_definition_schema); *) -TYPE draughting_titled_item = SELECT - (drawing_revision, - drawing_sheet_revision); -END_TYPE; - -(* Pruned unused type: s_name_attribute_select *) - -(* USED FROM (measure_schema); *) - TYPE absorbed_dose_measure = REAL; - END_TYPE; - -(* Pruned unused type: ap210_change_management_object *) - -(* USED FROM (measure_schema); *) - TYPE radioactivity_measure = REAL; - END_TYPE; -(* USED FROM (measure_schema); *) -TYPE amount_of_substance_measure = REAL; - END_TYPE; -(* USED FROM (measure_schema); *) - TYPE area_measure = REAL; - END_TYPE; -(* USED FROM (measure_schema); *) - TYPE celsius_temperature_measure = REAL; - END_TYPE; -(* USED FROM (measure_schema); *) - TYPE context_dependent_measure = REAL; - END_TYPE; -(* USED FROM (measure_schema); *) - TYPE count_measure = NUMBER; - END_TYPE; -(* USED FROM (measure_schema); *) - TYPE descriptive_measure = STRING; - END_TYPE; -(* USED FROM (measure_schema); *) - TYPE capacitance_measure = REAL; - END_TYPE; -(* USED FROM (measure_schema); *) - TYPE dose_equivalent_measure = REAL; - END_TYPE; -(* USED FROM (measure_schema); *) - TYPE electric_charge_measure = REAL; - END_TYPE; -(* USED FROM (measure_schema); *) - TYPE electric_current_measure = REAL; - END_TYPE; -(* USED FROM (measure_schema); *) - TYPE conductance_measure = REAL; - END_TYPE; -(* USED FROM (measure_schema); *) - TYPE electric_potential_measure = REAL; - END_TYPE; -(* USED FROM (measure_schema); *) - TYPE energy_measure = REAL; - END_TYPE; -(* USED FROM (measure_schema); *) - TYPE force_measure = REAL; - END_TYPE; -(* USED FROM (measure_schema); *) - TYPE frequency_measure = REAL; - END_TYPE; -(* USED FROM (measure_schema); *) - TYPE magnetic_flux_density_measure = REAL; - END_TYPE; -(* USED FROM (measure_schema); *) - TYPE illuminance_measure = REAL; - END_TYPE; -(* USED FROM (measure_schema); *) - TYPE inductance_measure = REAL; - END_TYPE; -(* USED FROM (measure_schema); *) - TYPE length_measure = REAL; - END_TYPE; -(* USED FROM (measure_schema); *) - TYPE luminous_intensity_measure = REAL; - END_TYPE; -(* USED FROM (measure_schema); *) - TYPE luminous_flux_measure = REAL; - END_TYPE; -(* USED FROM (measure_schema); *) - TYPE mass_measure = REAL; - END_TYPE; -(* USED FROM (measure_schema); *) - 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; -(* USED FROM (measure_schema); *) - TYPE magnetic_flux_measure = REAL; - END_TYPE; -(* USED FROM (measure_schema); *) - TYPE non_negative_length_measure = length_measure; - WHERE - WR1: SELF >= 0.0; - END_TYPE; -(* USED FROM (measure_schema); *) - TYPE numeric_measure = NUMBER; - END_TYPE; -(* USED FROM (measure_schema); *) - TYPE parameter_value = REAL; - END_TYPE; -(* USED FROM (measure_schema); *) - TYPE plane_angle_measure = REAL; - END_TYPE; -(* USED FROM (measure_schema); *) - TYPE positive_length_measure = non_negative_length_measure; - WHERE - WR1: SELF > 0.0; - END_TYPE; -(* USED FROM (measure_schema); *) - TYPE positive_plane_angle_measure = plane_angle_measure; - WHERE - WR1: SELF > 0.0; - END_TYPE; -(* USED FROM (measure_schema); *) - TYPE positive_ratio_measure = ratio_measure; - WHERE - WR1: SELF > 0.0; - END_TYPE; -(* USED FROM (measure_schema); *) - TYPE power_measure = REAL; - END_TYPE; -(* USED FROM (measure_schema); *) - TYPE pressure_measure = REAL; - END_TYPE; -(* USED FROM (measure_schema); *) - TYPE ratio_measure = REAL; - END_TYPE; -(* USED FROM (measure_schema); *) - TYPE resistance_measure = REAL; - END_TYPE; -(* USED FROM (measure_schema); *) - TYPE si_prefix = ENUMERATION OF (exa, peta, tera, giga, mega, kilo, hecto, deca, deci, centi, milli, micro, nano, pico, femto, atto); - END_TYPE; -(* USED FROM (measure_schema); *) - 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; -(* USED FROM (measure_schema); *) - TYPE solid_angle_measure = REAL; - END_TYPE; -(* USED FROM (measure_schema); *) - TYPE thermodynamic_temperature_measure = REAL; - END_TYPE; -(* USED FROM (measure_schema); *) - TYPE time_measure = REAL; - END_TYPE; -(* USED FROM (measure_schema); *) - TYPE unit = SELECT (derived_unit, named_unit); - END_TYPE; -(* USED FROM (measure_schema); *) - TYPE velocity_measure = REAL; - END_TYPE; -(* USED FROM (measure_schema); *) - TYPE volume_measure = REAL; - END_TYPE; - -(* Pruned unused type: eu_external_identification_item *) - -(* USED FROM (aic_mechanical_design_geometric_presentation); *) - TYPE mechanical_design_geometric_presentation_area_items = SELECT( - axis2_placement, - mapped_item); - END_TYPE; -(* USED FROM (aic_mechanical_design_geometric_presentation); *) - TYPE mechanical_design_geometric_presentation_representation_items = SELECT( - axis2_placement, - camera_model_d3, - mapped_item, - styled_item); - END_TYPE; -(* USED FROM (solid_shape_element_schema); *) -TYPE trim_condition_select = SELECT - (length_measure, - plane_angle_measure, - generalized_surface_select, - solid_model); -END_TYPE; -(* USED FROM (solid_shape_element_schema); *) -TYPE trim_intent = ENUMERATION OF - (blind, - offset, - through_all, - unspecified, - up_to_next); -END_TYPE; - -(* Pruned unused type: sm_approval_item *) - -(* USED FROM (support_resource_schema); *) - TYPE identifier = STRING; - END_TYPE; -(* USED FROM (procedural_shape_model_schema); *) -TYPE shape_representation_item = SELECT - (geometric_representation_item, - topological_representation_item); -END_TYPE; -(* USED FROM (geometric_model_schema); *) -(* This SELECT set has been pruned. *) -TYPE csg_primitive = SELECT ( - block, - bounded_primitive_2d, - right_angular_wedge, - right_circular_cone, - right_circular_cylinder, - sphere, - torus); -END_TYPE; - -(* USED FROM (solid_shape_element_schema); *) -TYPE base_solid_select = SELECT - (solid_model, - csg_primitive, - boolean_result); -WHERE - WR1: NOT('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PRIMITIVE_2D' IN TYPEOF(SELF)); -END_TYPE; -(* USED FROM (solid_shape_element_schema); *) -TYPE blend_radius_variation_type = ENUMERATION OF - (linear_blend, - cubic_blend, - unspecified_blend); -END_TYPE; -(* USED FROM (solid_shape_element_schema); *) -TYPE blend_end_condition_select = SELECT - (point_on_curve, - edge_curve, - vertex); -END_TYPE; -(* USED FROM (presentation_appearance_schema); *) - TYPE box_height = positive_ratio_measure; - END_TYPE; -(* USED FROM (presentation_appearance_schema); *) - TYPE box_width = positive_ratio_measure; - END_TYPE; -(* USED FROM (presentation_appearance_schema); *) - TYPE box_slant_angle = plane_angle_measure; - END_TYPE; -(* USED FROM (presentation_appearance_schema); *) - TYPE box_rotate_angle = plane_angle_measure; - END_TYPE; -(* USED FROM (presentation_resource_schema); *) -TYPE font_select = SELECT - (pre_defined_text_font, - externally_defined_text_font, - text_font); -END_TYPE; -(* USED FROM (presentation_organization_schema); *) -(* This SELECT set has been been expanded or truncated for EXPRESS E1 layout. *) -TYPE annotation_representation_select = SELECT ( - draughting_model, - presentation_area, - presentation_view, - symbol_representation); -END_TYPE; - -(* USED FROM (sketch_schema); *) -TYPE surface_or_solid_model = SELECT - (surface_model, - solid_model); -END_TYPE; - -(* Implicit interfaced from: shape_tolerance_schema *) -(* This EXTENSIBLE ENUMERATION set has been replaced with plain ENUMERATION for EXPRESS E1 layout. *) -TYPE geometric_tolerance_modifier = ENUMERATION OF ( - any_cross_section, - common_zone, - each_radial_element, - free_state, - least_material_requirement, - line_element, - major_diameter, - maximum_material_requirement, - minor_diameter, - not_convex, - pitch_diameter, - reciprocity_requirement, - separate_requirement, - statistical_tolerance, - tangent_plane); -END_TYPE; - -(* USED FROM (sketch_schema); *) -(* This EXTENSIBLE SELECT have been replaced with plain SELECT for EXPRESS E1 layout. *) -TYPE sketch_element_select = SELECT ( - curve, - point); - WHERE - WR1: 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.GEOMETRIC_REPRESENTATION_ITEM' IN TYPEOF(SELF); -END_TYPE; -(* USED FROM (sketch_schema); *) -TYPE sketch_basis_select = SELECT - (planar_curve_select, - curve_bounded_surface, - face_surface); -END_TYPE; -(* USED FROM (sketch_schema); *) -TYPE sketch_type_select = SELECT - (neutral_sketch_representation, - positioned_sketch, - subsketch); -END_TYPE; -(* USED FROM (sketch_schema); *) -TYPE curves_or_area = ENUMERATION OF - (curves, area); -END_TYPE; - -(* Pruned unused type: terminator *) - -(* USED FROM (presentation_appearance_schema); *) - TYPE marker_select = SELECT - (marker_type, - pre_defined_marker); - END_TYPE; -(* USED FROM (presentation_appearance_schema); *) - TYPE marker_type = ENUMERATION OF - (dot, - x, - plus, - asterisk, - ring, - square, - triangle); - END_TYPE; -(* USED FROM (geometric_model_schema); *) -TYPE edge_or_curve = SELECT - (curve, - edge); -END_TYPE; -(* USED FROM (geometric_model_schema); *) -TYPE face_or_surface = SELECT - (face, - surface); -END_TYPE; -(* USED FROM (geometric_model_schema); *) -TYPE path_or_composite_curve = SELECT - (composite_curve, - path); -END_TYPE; -(* USED FROM (geometric_model_schema); *) -TYPE tessellated_edge_or_vertex = SELECT - (tessellated_edge, - tessellated_vertex); -END_TYPE; - -(* Pruned unused type: ptswp_external_identification_item *) - - -(* Pruned unused type: ptswp_requirement_assigned_item *) - -(* USED FROM (product_property_definition_schema); *) - TYPE characterized_definition = SELECT ( - characterized_object, - characterized_product_definition, - shape_definition); - END_TYPE; -(* USED FROM (date_time_schema); *) -TYPE day_in_month_number = INTEGER; -WHERE - WR1: {1 <= SELF <= 31}; -END_TYPE; -(* USED FROM (support_resource_schema); *) - TYPE label = STRING; - END_TYPE; -(* USED FROM (support_resource_schema); *) - TYPE text = STRING; - END_TYPE; -(* USED FROM (product_property_definition_schema); *) - TYPE characterized_product_definition = SELECT ( - product_definition, - product_definition_relationship); - END_TYPE; - -(* Pruned unused type: id_for_product_identification *) - -(* USED FROM (Tagged_text_representation_mim); *) -TYPE string_representation_item_select = SELECT( - descriptive_representation_item, - included_text_block, - structured_text_composition); -END_TYPE; - -(* Pruned unused type: requirement_identification_and_version_identification_item *) - - -(* Pruned unused type: event_occurrence_date_and_time_item *) - - -(* Pruned unused type: event_occurrence_date_item *) - - -(* Pruned unused type: spr_document_reference_item *) - - -(* Pruned unused type: spr_organization_item *) - - -(* Pruned unused type: spr_person_and_organization_item *) - -(* USED FROM (mathematical_functions_schema); *) -TYPE product_space = SELECT - (uniform_product_space, - listed_product_space); -END_TYPE; -(* USED FROM (mathematical_functions_schema); *) -TYPE tuple_space = SELECT - (product_space, - extended_tuple_space); -END_TYPE; -(* USED FROM (mathematical_functions_schema); *) -TYPE maths_number = NUMBER; -END_TYPE; - -(* Implicit interfaced from: qualified_measure_schema *) -TYPE value_qualifier = SELECT - (precision_qualifier, - type_qualifier, - uncertainty_qualifier, - value_format_type_qualifier); -END_TYPE; - -(* Pruned unused type: representing_relationship *) - -(* USED FROM (kinematic_motion_representation_schema); *) -TYPE link_or_shape_representation = SELECT( - kinematic_link_representation, - shape_representation); -END_TYPE; - -(* Implicit interfaced from: presentation_appearance_schema *) -(* This SELECT set has been been expanded or truncated for EXPRESS E1 layout. *) -TYPE invisible_item = SELECT ( - draughting_callout, - presentation_layer_assignment, - representation, - styled_item); -END_TYPE; - - -(* Pruned unused type: organization_item_solution *) - -(* USED FROM (Product_breakdown_mim); *) -(* This EXTENSIBLE SELECT have been replaced with plain SELECT for EXPRESS E1 layout. *) -TYPE product_definition_or_breakdown_element_usage = SELECT ( - product_definition, - product_definition_usage); -END_TYPE; - -(* USED FROM (Product_breakdown_mim); *) -(* This EXTENSIBLE SELECT have been replaced with plain SELECT for EXPRESS E1 layout. *) -TYPE product_definition_or_product_definition_relationship = SELECT ( - product_definition, - product_definition_usage); -END_TYPE; - -(* USED FROM (Specification_based_configuration_mim); *) -TYPE configured_effectivity_context_item = SELECT (product_concept_feature_association); -END_TYPE; -(* USED FROM (Specification_based_configuration_mim); *) -(* This SELECT set has been been expanded or truncated for EXPRESS E1 layout. *) -TYPE configured_effectivity_item = SELECT ( - action_relationship, - process_plan, - product_definition, - product_process_plan); -END_TYPE; - -(* USED FROM (Product_class_mim); *) -TYPE category_usage_item = SELECT (product_class); -END_TYPE; - -(* Pruned unused type: id_for_class *) - - -(* Pruned unused type: specification_for_category *) - -(* USED FROM (geometric_model_schema); *) -TYPE boolean_operand = SELECT - (boolean_result, - csg_primitive, - half_space_2d, - half_space_solid, - solid_model); -END_TYPE; -(* USED FROM (geometric_model_schema); *) -TYPE boolean_operator = ENUMERATION OF - (union, - intersection, - difference); -END_TYPE; -(* USED FROM (geometric_model_schema); *) -TYPE csg_select = SELECT - (boolean_result, - csg_primitive); -END_TYPE; - -(* Pruned unused type: external_class_name_item *) - -(* USED FROM (Name_assignment_mim); *) -(* This SELECT set has been been expanded or truncated for EXPRESS E1 layout. *) -TYPE name_item = SELECT ( - assembly_component_usage, - external_class_library, - group, - group_relationship, - product, - product_definition); -END_TYPE; - -(* USED FROM (Contract_mim); *) -(* This SELECT set has been been expanded or truncated for EXPRESS E1 layout. *) -TYPE contract_item = SELECT ( - action_directive, - alternate_product_relationship, - directed_action, - drawing_revision, - executed_action, - information_usage_right, - organization, - person_and_organization, - product, - product_definition_formation); -END_TYPE; - - -(* Pruned unused type: mri_aliasable_item *) - - -(* Pruned unused type: mri_approval_item *) - - -(* Pruned unused type: mri_attribute_language_item *) - - -(* Pruned unused type: mri_date_and_time_item *) - - -(* Pruned unused type: mri_date_item *) - - -(* Pruned unused type: mri_identification_item *) - - -(* Pruned unused type: mri_multi_language_attribute_item *) - - -(* Pruned unused type: mri_organization_item *) - - -(* Pruned unused type: mri_person_and_organization_item *) - -(* USED FROM (Security_classification_mim); *) -(* This SELECT set has been been expanded or truncated for EXPRESS E1 layout. *) -TYPE security_classification_item = SELECT ( - action, - action_directive, - action_property, - applied_action_assignment, - assembly_component_usage, - assembly_component_usage_substitute, - class_system, - configuration_design, - configuration_effectivity, - configured_effectivity_assignment, - document, - document_file, - draughting_model, - drawing_revision, - executed_action, - general_property, - make_from_usage_option, - material_designation, - mechanical_design_geometric_presentation_representation, - organizational_project, - presentation_area, - product, - product_concept, - product_concept_feature, - product_concept_feature_category, - product_definition, - product_definition_formation, - product_definition_relationship, - product_definition_usage, - property_definition, - resource_property, - shape_representation, - versioned_action_request); -END_TYPE; - -(* USED FROM (Work_request_mim); *) -(* This SELECT set has been been expanded or truncated for EXPRESS E1 layout. *) -TYPE action_request_item = SELECT ( - action, - action_method, - action_property, - action_relationship, - alternate_product_relationship, - assembly_component_usage_substitute, - configuration_design, - configuration_effectivity, - configuration_item, - configured_effectivity_assignment, - document_file, - draughting_model, - drawing_revision, - general_property, - material_designation, - mechanical_design_geometric_presentation_representation, - organizational_project, - presentation_area, - product, - product_concept, - product_concept_feature, - product_concept_feature_association, - product_concept_feature_category, - product_concept_feature_category_usage, - product_definition, - product_definition_formation, - product_definition_formation_relationship, - product_definition_relationship, - product_definition_substitute, - property_definition, - resource_property, - shape_aspect, - shape_representation, - versioned_action_request); -END_TYPE; - - -(* Pruned unused type: dm_aliasable_item *) - - -(* Pruned unused type: dm_approval_item *) - - -(* Pruned unused type: dm_attribute_language_item *) - - -(* Pruned unused type: dm_contract_item *) - - -(* Pruned unused type: dm_date_and_time_item *) - - -(* Pruned unused type: dm_date_item *) - - -(* Pruned unused type: dm_identification_item *) - - -(* Pruned unused type: dm_multi_language_attribute_item *) - - -(* Pruned unused type: dm_organization_item *) - - -(* Pruned unused type: dm_person_and_organization_item *) - - -(* Pruned unused type: dm_security_classification_item *) - - -(* Pruned unused type: idrm_marked_item *) - -(* USED FROM (process_property_schema); *) -TYPE characterized_action_definition = SELECT - (action, - action_method, - action_method_relationship, - action_relationship); -END_TYPE; -(* USED FROM (product_property_definition_schema); *) - TYPE derived_property_select = SELECT (property_definition, action_property, resource_property); - END_TYPE; -(* USED FROM (Time_interval_assignment_mim); *) -(* This SELECT set has been been expanded or truncated for EXPRESS E1 layout. *) -TYPE time_interval_item = SELECT ( - action, - action_directive, - action_method, - action_property, - action_relationship, - action_request_solution, - alternate_product_relationship, - applied_action_assignment, - applied_classification_assignment, - applied_person_and_organization_assignment, - approval_status, - assembly_component_usage_substitute, - certification, - class, - class_system, - configuration_design, - configuration_effectivity, - configuration_item, - configured_effectivity_assignment, - contract, - document_file, - draughting_model, - drawing_revision, - executed_action, - general_property, - material_designation, - mechanical_design_geometric_presentation_representation, - organization_relationship, - organizational_project, - person_and_organization, - presentation_area, - product, - product_concept, - product_concept_feature, - product_concept_feature_association, - product_concept_feature_category, - product_concept_feature_category_usage, - product_definition, - product_definition_formation, - product_definition_formation_relationship, - product_definition_relationship, - product_definition_substitute, - property_definition, - requirement_for_action_resource, - resource_property, - security_classification, - security_classification_level, - shape_representation, - time_interval_based_effectivity, - versioned_action_request); -END_TYPE; - -(* USED FROM (geometry_schema); *) -TYPE axis2_placement = SELECT - (axis2_placement_2d, - axis2_placement_3d); -END_TYPE; -(* USED FROM (presentation_appearance_schema); *) -(* This SELECT set has been been expanded or truncated for EXPRESS E1 layout. *) -TYPE invisibility_context = SELECT ( - draughting_model, - presentation_representation, - presentation_set); -END_TYPE; - -(* USED FROM (presentation_appearance_schema); *) - TYPE null_style = ENUMERATION OF - (null); - END_TYPE; -(* USED FROM (presentation_definition_schema); *) - TYPE text_alignment = label; - END_TYPE; - -(* Pruned unused type: ers_description_attribute_select *) - -(* USED FROM (external_reference_schema); *) - TYPE message = STRING; - END_TYPE; -(* USED FROM (external_reference_schema); *) - TYPE source_item = SELECT (identifier, message); - END_TYPE; -(* USED FROM (presentation_appearance_schema); *) - TYPE surface_side = ENUMERATION OF - (positive, - negative, - both); - END_TYPE; -(* USED FROM (presentation_appearance_schema); *) - TYPE u_direction_count = INTEGER; - WHERE - WR1: SELF > 1; - END_TYPE; -(* USED FROM (presentation_appearance_schema); *) - TYPE v_direction_count = INTEGER; - WHERE - WR1: SELF > 1; - END_TYPE; -(* USED FROM (aic_mechanical_design_shaded_presentation); *) - TYPE mechanical_design_shaded_presentation_area_items = SELECT( - axis2_placement, - mapped_item); - END_TYPE; -(* USED FROM (aic_mechanical_design_shaded_presentation); *) - TYPE mechanical_design_shaded_presentation_representation_items = SELECT( - axis2_placement, - camera_model_d3, - mapped_item, - styled_item); - END_TYPE; - -(* Pruned unused type: pamivc_document_reference_item *) - -(* USED FROM (mathematical_functions_schema); *) -TYPE maths_boolean = BOOLEAN; -END_TYPE; -(* USED FROM (mathematical_functions_schema); *) -TYPE maths_integer = INTEGER; -END_TYPE; -(* USED FROM (mathematical_functions_schema); *) -TYPE maths_real = REAL; -END_TYPE; -(* USED FROM (mathematical_functions_schema); *) -TYPE maths_simple_atom = SELECT - (maths_number, - maths_real, - maths_integer, - maths_logical, - maths_boolean, - maths_string, - maths_binary); -END_TYPE; -(* USED FROM (mathematical_functions_schema); *) -TYPE atom_based_tuple = LIST OF atom_based_value; -END_TYPE; -(* USED FROM (mathematical_functions_schema); *) -TYPE atom_based_value = SELECT - (maths_atom, - atom_based_tuple); -END_TYPE; -(* USED FROM (mathematical_functions_schema); *) -TYPE maths_tuple = LIST [0:?] OF maths_value; -END_TYPE; -(* USED FROM (mathematical_functions_schema); *) -TYPE maths_value = SELECT - (atom_based_value, - maths_tuple, - generic_expression); -WHERE - constancy: NOT ('GENERIC_EXPRESSION' IN stripped_typeof(SELF)) OR - expression_is_constant(SELF); -END_TYPE; -(* USED FROM (kinematic_structure_schema); *) -TYPE rigid_placement = SELECT - (axis2_placement_3d, - su_parameters); -END_TYPE; -(* USED FROM (kinematic_structure_schema); *) -TYPE kinematic_link_representation_items = SELECT ( - curve, - point, - rigid_placement, - surface); -END_TYPE; -(* USED FROM (kinematic_structure_schema); *) -TYPE actuated_direction = ENUMERATION OF ( - bidirectional, - positive_only, - negative_only, - not_actuated); -END_TYPE; -(* USED FROM (kinematic_state_schema); *) -TYPE spatial_rotation = SELECT - (ypr_rotation, - rotation_about_direction); -END_TYPE; - -(* Implicit interfaced from: presentation_definition_schema *) - TYPE annotation_symbol_occurrence_item = SELECT ( - annotation_symbol, - defined_symbol); - END_TYPE; -(* USED FROM (kinematic_state_schema); *) -TYPE ypr_enumeration = ENUMERATION OF - (yaw, - pitch, - roll); -END_TYPE; -(* USED FROM (kinematic_state_schema); *) -TYPE spherical_pair_select = SELECT ( - spherical_pair, - spherical_pair_with_pin); -END_TYPE; - -(* Pruned unused type: aliasable_item *) - -(* USED FROM (Certification_mim); *) -(* This SELECT set has been been expanded or truncated for EXPRESS E1 layout. *) -TYPE certification_item = SELECT ( - alternate_product_relationship, - make_from_usage_option, - product_definition, - product_definition_formation, - product_definition_formation_relationship, - product_definition_relationship); -END_TYPE; - -(* USED FROM (Multi_linguism_mim); *) -(* This SELECT set has been been expanded or truncated for EXPRESS E1 layout. *) -TYPE attribute_language_item = SELECT ( - action, - actuated_kinematic_pair, - 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, - data_environment, - date_role, - date_time_role, - descriptive_representation_item, - document_relationship, - document_usage_role, - draughting_title, - effectivity, - effectivity_relationship, - event_occurrence, - external_source, - general_property, - general_property_relationship, - geometric_representation_item, - geometric_tolerance, - group, - group_relationship, - identification_role, - information_right, - information_usage_right, - kinematic_pair, - make_from_usage_option, - mapped_item, - multi_language_attribute_assignment, - name_assignment, - object_role, - organization_relationship, - organization_role, - organizational_project, - organizational_project_relationship, - organizational_project_role, - person_and_organization, - person_and_organization_role, - presentation_layer_assignment, - process_product_association, - product, - product_concept, - product_concept_feature, - product_concept_feature_association, - product_concept_relationship, - product_definition, - product_definition_context, - product_definition_formation, - product_definition_formation_relationship, - product_definition_relationship, - product_definition_shape, - product_definition_substitute, - product_related_product_category, - property_definition, - property_definition_relationship, - representation, - representation_relationship, - requirement_for_action_resource, - resource_property, - resource_requirement_type, - security_classification, - security_classification_assignment, - shape_aspect, - shape_aspect_relationship, - shape_representation, - styled_item, - time_interval_role, - topological_representation_item, - uncertainty_measure_with_unit, - uncertainty_qualifier, - usage_association, - versioned_action_request, - versioned_action_request_relationship); -END_TYPE; - -(* USED FROM (Multi_linguism_mim); *) -(* This SELECT set has been been expanded or truncated for EXPRESS E1 layout. *) -TYPE multi_language_attribute_item = SELECT ( - action, - action_directive, - action_method, - action_property, - action_relationship, - actuated_kinematic_pair, - 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, - data_environment, - date_role, - date_time_role, - descriptive_representation_item, - document_relationship, - document_usage_role, - draughting_title, - effectivity, - effectivity_relationship, - event_occurrence, - external_source, - general_property, - general_property_relationship, - geometric_representation_item, - geometric_tolerance, - group, - group_relationship, - identification_role, - information_right, - information_usage_right, - kinematic_pair, - make_from_usage_option, - mapped_item, - name_assignment, - object_role, - organization_relationship, - organization_role, - organizational_project, - organizational_project_relationship, - organizational_project_role, - person_and_organization, - person_and_organization_role, - presentation_layer_assignment, - process_product_association, - product, - product_concept, - product_concept_feature, - product_concept_feature_association, - product_concept_relationship, - product_definition, - product_definition_context, - product_definition_formation, - product_definition_formation_relationship, - product_definition_relationship, - product_definition_shape, - product_definition_substitute, - product_related_product_category, - property_definition, - property_definition_relationship, - representation, - representation_relationship, - requirement_for_action_resource, - resource_property, - resource_requirement_type, - security_classification, - security_classification_assignment, - shape_aspect, - shape_aspect_relationship, - shape_representation, - styled_item, - time_interval_role, - topological_representation_item, - uncertainty_measure_with_unit, - uncertainty_qualifier, - usage_association, - versioned_action_request, - versioned_action_request_relationship); -END_TYPE; - - -(* Pruned unused type: project_as_date_and_time_item *) - - -(* Pruned unused type: project_as_date_item *) - - -(* Pruned unused type: project_event_occurrence_item *) - -(* USED FROM (Project_mim); *) -(* This SELECT set has been been expanded or truncated for EXPRESS E1 layout. *) -TYPE project_item = SELECT ( - assembly_component_usage, - configuration_item, - executed_action, - product, - product_concept, - product_definition, - product_definition_formation); -END_TYPE; - -(* USED FROM (kinematic_topology_schema); *) -TYPE kinematic_topology_representation_select = SELECT ( - kinematic_topology_structure, - kinematic_topology_directed_structure, - kinematic_topology_network_structure -); -END_TYPE; -(* USED FROM (Event_assignment_mim); *) -(* This SELECT set has been been expanded or truncated for EXPRESS E1 layout. *) -TYPE event_occurrence_item = SELECT ( - action, - action_directive, - action_method, - action_property, - action_request_solution, - alternate_product_relationship, - applied_action_assignment, - applied_classification_assignment, - assembly_component_usage_substitute, - certification, - class, - class_system, - configuration_design, - configuration_effectivity, - configuration_item, - configured_effectivity_assignment, - contract, - draughting_model, - drawing_revision, - executed_action, - general_property, - material_designation, - mechanical_design_geometric_presentation_representation, - organization_relationship, - organizational_project, - person_and_organization, - presentation_area, - product, - product_concept, - product_concept_feature, - product_concept_feature_association, - product_concept_feature_category, - product_concept_feature_category_usage, - product_definition_formation, - product_definition_formation_relationship, - product_definition_relationship, - product_definition_substitute, - property_definition, - requirement_for_action_resource, - resource_property, - security_classification_level, - shape_representation); -END_TYPE; - - -(* Chained implicit interfaced from: date_time_schema *) -TYPE year_number = INTEGER; -END_TYPE; - -(* Chained implicit interfaced from: date_time_schema *) -TYPE date_time_select = SELECT - (date, - date_and_time, - local_time); -END_TYPE; - -(* Chained implicit interfaced from: person_organization_schema *) - TYPE person_organization_select = SELECT ( - person, - organization, - person_and_organization); - END_TYPE; - -(* Implicit interfaced from: product_definition_schema *) - TYPE product_definition_or_reference = SELECT ( - product_definition, - generic_product_definition_reference); - END_TYPE; - -(* Implicit interfaced from: geometry_schema *) -TYPE trimming_select = SELECT - (cartesian_point, - parameter_value); -END_TYPE; - -(* Implicit interfaced from: geometry_schema *) -TYPE trimming_preference = ENUMERATION OF - (cartesian, - parameter, - unspecified); -END_TYPE; - -(* Implicit interfaced from: representation_schema *) - TYPE founded_item_select = SELECT - (founded_item, - representation_item); - END_TYPE; - -(* Implicit interfaced from: geometry_schema *) -TYPE transition_code = ENUMERATION OF - (discontinuous, - continuous, - cont_same_gradient, - cont_same_gradient_same_curvature); -END_TYPE; - -(* Implicit interfaced from: geometry_schema *) -TYPE pcurve_or_surface = SELECT - (pcurve, - surface); -END_TYPE; - -(* Implicit interfaced from: geometry_schema *) -TYPE preferred_surface_curve_representation = ENUMERATION OF - (curve_3d, - pcurve_s1, - pcurve_s2); -END_TYPE; - -(* Implicit interfaced from: geometry_schema *) -TYPE curve_on_surface = SELECT - (composite_curve_on_surface, - pcurve, - surface_curve); -END_TYPE; - -(* Implicit interfaced from: geometry_schema *) -TYPE b_spline_curve_form = ENUMERATION OF - (polyline_form, - circular_arc, - elliptic_arc, - parabolic_arc, - hyperbolic_arc, - unspecified); -END_TYPE; - -(* Implicit interfaced from: geometry_schema *) -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; - -(* Implicit interfaced from: shape_aspect_definition_schema *) -(* This EXTENSIBLE ENUMERATION set has been replaced with plain ENUMERATION for EXPRESS E1 layout. *) -TYPE datum_reference_modifier_type = ENUMERATION OF ( - circular_or_cylindrical, - distance, - projected, - spherical); -END_TYPE; - - -(* Implicit interfaced from: shape_aspect_definition_schema *) -TYPE datum_or_common_datum = SELECT - (common_datum_list, - datum); -END_TYPE; - -(* Implicit interfaced from: shape_aspect_definition_schema *) -(* This EXTENSIBLE SELECT have been replaced with plain SELECT for EXPRESS E1 layout. *) -TYPE datum_reference_modifier = SELECT ( - datum_reference_modifier_with_value, - simple_datum_reference_modifier); -END_TYPE; - - -(* Implicit interfaced from: shape_aspect_definition_schema *) -TYPE limit_condition = ENUMERATION OF - (maximum_material_condition, - least_material_condition, - regardless_of_feature_size); -END_TYPE; - -(* Implicit interfaced from: shape_tolerance_schema *) -TYPE geometric_tolerance_target = SELECT - (dimensional_location, - dimensional_size, - product_definition_shape, - shape_aspect); -END_TYPE; - -(* Implicit interfaced from: shape_tolerance_schema *) -TYPE datum_system_or_reference = SELECT - (datum_reference, - datum_system); -END_TYPE; - -(* Implicit interfaced from: shape_tolerance_schema *) -(* This EXTENSIBLE ENUMERATION set has been replaced with plain ENUMERATION for EXPRESS E1 layout. *) -TYPE area_unit_type = ENUMERATION OF ( - circular, - rectangular, - square); -END_TYPE; - - -(* Implicit interfaced from: presentation_appearance_schema *) - TYPE curve_font_or_scaled_curve_font_select = SELECT - (curve_style_font_select, - curve_style_font_and_scaling); - END_TYPE; - -(* Implicit interfaced from: shape_tolerance_schema *) -TYPE tolerance_zone_target = SELECT ( - dimensional_location, - dimensional_size, - geometric_tolerance, - general_datum_reference); -END_TYPE; - -(* Implicit interfaced from: product_property_representation_schema *) - TYPE represented_definition = SELECT ( - general_property, - property_definition, - property_definition_relationship, - shape_aspect, - shape_aspect_relationship); - END_TYPE; - -(* Implicit interfaced from: product_property_definition_schema *) - TYPE multi_or_next_assembly_usage_occurrence = SELECT ( - multi_level_reference_designator, - next_assembly_usage_occurrence); - END_TYPE; - -(* Implicit interfaced from: product_property_definition_schema *) - TYPE internal_or_reflected_shape_aspect = SELECT ( - shape_aspect, - identifier); - END_TYPE; - -(* Implicit interfaced from: geometric_model_schema *) -TYPE geometric_set_select = SELECT - (curve, - point, - surface); -END_TYPE; - -(* Implicit interfaced from: representation_schema *) - TYPE transformation = SELECT - (item_defined_transformation, - functionally_defined_transformation); - END_TYPE; - -(* Implicit interfaced from: geometry_schema *) -TYPE vector_or_direction = SELECT - (direction, - vector); -END_TYPE; - -(* Implicit interfaced from: geometry_schema *) -TYPE dimension_count = INTEGER; -WHERE - WR1: SELF > 0; -END_TYPE; - -(* Implicit interfaced from: date_time_schema *) -TYPE month_in_year_number = INTEGER; -WHERE - WR1: { 1 <= SELF <= 12 }; -END_TYPE; - -(* Implicit interfaced from: date_time_schema *) -TYPE ahead_or_behind = ENUMERATION OF - (ahead, - exact, - behind); -END_TYPE; - -(* Implicit interfaced from: date_time_schema *) -TYPE hour_in_day = INTEGER; -WHERE - WR1: { 0 <= SELF < 24 }; -END_TYPE; - -(* Implicit interfaced from: date_time_schema *) -TYPE minute_in_hour = INTEGER; -WHERE - WR1: { 0 <= SELF <= 59 }; -END_TYPE; - -(* Implicit interfaced from: date_time_schema *) -TYPE second_in_minute = REAL; -WHERE - WR1: { 0 <= SELF <= 60.0 }; -END_TYPE; - -(* Chained implicit interfaced from: date_time_schema *) -TYPE date_time_or_event_occurrence = SELECT - (date_time_select, - event_occurrence); -END_TYPE; - -(* Implicit interfaced from: date_time_schema *) -TYPE week_in_year_number = INTEGER; -WHERE - WR1: { 1 <= SELF <= 53 }; -END_TYPE; - -(* Implicit interfaced from: qualified_measure_schema *) -TYPE value_format_type = identifier; -WHERE - WR1: LENGTH(SELF) <= 80; -END_TYPE; -- value_format_type - -(* Implicit interfaced from: date_time_schema *) -TYPE day_in_week_number = INTEGER; -WHERE - WR1: { 1 <= SELF <= 7 }; -END_TYPE; - -(* Implicit interfaced from: presentation_appearance_schema *) -(* This SELECT set has been pruned. *) -TYPE presentation_style_select = SELECT ( - point_style, - curve_style, - surface_style_usage, - symbol_style, - fill_area_style, - text_style, - externally_defined_style, - null_style); -END_TYPE; - - -(* Implicit interfaced from: presentation_appearance_schema *) - TYPE styled_item_target = SELECT - (geometric_representation_item, - mapped_item, - representation); - END_TYPE; - -(* Implicit interfaced from: document_schema *) - TYPE product_or_formation_or_definition = SELECT (product, product_definition_formation, product_definition); - END_TYPE; - -(* Implicit interfaced from: mathematical_functions_schema *) -TYPE maths_function_select = SELECT - (maths_function, - elementary_function_enumerators); -END_TYPE; - -(* Implicit interfaced from: mathematical_functions_schema *) -TYPE maths_logical = LOGICAL; -END_TYPE; - -(* Implicit interfaced from: mathematical_functions_schema *) -TYPE maths_string = STRING; -END_TYPE; - -(* Implicit interfaced from: mathematical_functions_schema *) -TYPE maths_binary = BINARY; -END_TYPE; - -(* Implicit interfaced from: mathematical_functions_schema *) -(* This SELECT set has been pruned. *) -TYPE maths_enum_atom = SELECT ( - elementary_space_enumerators, - ordering_type, - elementary_function_enumerators, - open_closed, - space_constraint_type, - repackage_options, - extension_options); -END_TYPE; - - -(* Implicit interfaced from: mathematical_functions_schema *) -TYPE positive_integer = nonnegative_integer; -WHERE positivity: SELF > 0; -END_TYPE; - -(* Implicit interfaced from: mathematical_functions_schema *) -TYPE nonnegative_integer = INTEGER; -WHERE -nonnegativity: SELF >= 0; -END_TYPE; - -(* Implicit interfaced from: mathematical_functions_schema *) -TYPE space_constraint_type = ENUMERATION OF - (sc_equal, - sc_subspace, - sc_member); -END_TYPE; - -(* Implicit interfaced from: mathematical_functions_schema *) -TYPE elementary_space_enumerators = ENUMERATION OF - (es_numbers, - es_complex_numbers, - es_reals, - es_integers, - es_logicals, - es_booleans, - es_strings, - es_binarys, - es_maths_spaces, - es_maths_functions, - es_generics); -END_TYPE; - -(* Implicit interfaced from: mathematical_functions_schema *) -TYPE maths_expression = SELECT - (atom_based_value, - maths_tuple, - generic_expression); -END_TYPE; - -(* Implicit interfaced from: mathematical_functions_schema *) -TYPE maths_space_or_function = SELECT - (maths_space, - maths_function); -END_TYPE; - -(* Implicit interfaced from: mathematical_functions_schema *) -TYPE input_selector = positive_integer; -END_TYPE; - -(* Implicit interfaced from: mathematical_functions_schema *) -TYPE elementary_function_enumerators = ENUMERATION OF - (ef_and, ef_or, ef_not, ef_xor, - ef_negate_i, ef_add_i, ef_subtract_i, ef_multiply_i, ef_divide_i, ef_mod_i, - ef_exponentiate_i, ef_eq_i, ef_ne_i, ef_gt_i, ef_lt_i, ef_ge_i, ef_le_i, - ef_abs_i, ef_max_i, ef_min_i, ef_if_i, - ef_negate_r, ef_reciprocal_r, ef_add_r, ef_subtract_r, ef_multiply_r, - ef_divide_r, ef_mod_r, ef_exponentiate_r, ef_exponentiate_ri, - ef_eq_r, ef_ne_r, ef_gt_r, ef_lt_r, ef_ge_r, ef_le_r, ef_abs_r, - ef_max_r, ef_min_r, ef_acos_r, ef_asin_r, ef_atan2_r, ef_cos_r, ef_exp_r, - ef_ln_r, ef_log2_r, ef_log10_r, ef_sin_r, ef_sqrt_r, ef_tan_r, ef_if_r, - ef_form_c, ef_rpart_c, ef_ipart_c, - ef_negate_c, ef_reciprocal_c, ef_add_c, ef_subtract_c, ef_multiply_c, - ef_divide_c, ef_exponentiate_c, ef_exponentiate_ci, ef_eq_c, ef_ne_c, - ef_conjugate_c, ef_abs_c, ef_arg_c, ef_cos_c, ef_exp_c, ef_ln_c, ef_sin_c, - ef_sqrt_c, ef_tan_c, ef_if_c, - ef_subscript_s, ef_eq_s, ef_ne_s, ef_gt_s, ef_lt_s, ef_ge_s, ef_le_s, - ef_subsequence_s, ef_concat_s, ef_size_s, ef_format, ef_value, ef_like, ef_if_s, - ef_subscript_b, ef_eq_b, ef_ne_b, ef_gt_b, ef_lt_b, ef_ge_b, ef_le_b, - ef_subsequence_b, ef_concat_b, ef_size_b, ef_if_b, - ef_subscript_t, ef_eq_t, ef_ne_t, ef_concat_t, ef_size_t, - ef_entuple, ef_detuple, ef_insert, ef_remove, ef_if_t, - ef_sum_it, ef_product_it, - ef_add_it, ef_subtract_it, ef_scalar_mult_it, ef_dot_prod_it, - ef_sum_rt, ef_product_rt, - ef_add_rt, ef_subtract_rt, ef_scalar_mult_rt, ef_dot_prod_rt, ef_norm_rt, - ef_sum_ct, ef_product_ct, - ef_add_ct, ef_subtract_ct, ef_scalar_mult_ct, ef_dot_prod_ct, ef_norm_ct, - ef_if, ef_ensemble, ef_member_of); -END_TYPE; - -(* Implicit interfaced from: mathematical_functions_schema *) -TYPE open_closed = ENUMERATION OF - (open, - closed); -END_TYPE; - -(* Implicit interfaced from: mathematical_functions_schema *) -TYPE repackage_options = ENUMERATION OF - (ro_nochange, - ro_wrap_as_tuple, - ro_unwrap_tuple); -END_TYPE; - -(* Implicit interfaced from: mathematical_functions_schema *) -TYPE zero_or_one = nonnegative_integer; -WHERE in_range: (SELF = 0) OR (SELF = 1); -END_TYPE; - -(* Implicit interfaced from: mathematical_functions_schema *) -TYPE one_or_two = positive_integer; -WHERE in_range: (SELF = 1) OR (SELF = 2); -END_TYPE; - -(* Implicit interfaced from: mathematical_functions_schema *) -TYPE extension_options = ENUMERATION OF - (eo_none, - eo_cont, - eo_cont_right, - eo_cont_left); -END_TYPE; - -(* Implicit interfaced from: mathematical_functions_schema *) -TYPE real_interval = SELECT - (real_interval_from_min, - real_interval_to_max, - finite_real_interval, - elementary_space); -WHERE - WR1: NOT ('ELEMENTARY_SPACE' IN stripped_typeof(SELF)) OR - (SELF\elementary_space.space_id = es_reals); -END_TYPE; - -(* Implicit interfaced from: mathematical_functions_schema *) -TYPE ordering_type = ENUMERATION OF - (by_rows, - by_columns); -END_TYPE; - -(* Implicit interfaced from: mathematical_functions_schema *) -TYPE maths_atom = SELECT - (maths_simple_atom, - maths_enum_atom); -END_TYPE; - -(* Implicit interfaced from: action_schema *) - TYPE supported_item = SELECT (action_directive, action, action_method); - END_TYPE; - -(* Implicit interfaced from: process_property_schema *) -TYPE property_or_shape_select = SELECT - (property_definition, - shape_definition); -END_TYPE; - -(* Implicit interfaced from: process_property_schema *) -(* This SELECT set has been pruned. *) -TYPE characterized_resource_definition = SELECT ( - action_resource, - action_resource_requirement); -END_TYPE; - - -(* Implicit interfaced from: configuration_management_schema *) -TYPE configuration_design_item = SELECT - (product_definition, - product_definition_formation); -END_TYPE; - -(* Implicit interfaced from: product_property_representation_schema *) - TYPE chained_representation_link = SELECT (mapped_item, representation_context, representation_relationship); - END_TYPE; - -(* Implicit interfaced from: material_property_definition_schema *) -(* This SELECT set has been pruned. *) -TYPE characterized_product_composition_value = SELECT ( - measure_with_unit); -END_TYPE; - - -(* Implicit interfaced from: product_definition_schema *) - TYPE source = ENUMERATION OF (made, bought, not_known); - END_TYPE; - -(* Implicit interfaced from: draughting_element_schema *) - TYPE dimension_extent_usage = ENUMERATION OF - (origin, - target); - END_TYPE; - -(* Implicit interfaced from: presentation_appearance_schema *) - 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; - -(* Implicit interfaced from: presentation_organization_schema *) - TYPE camera_model_d3_multi_clipping_interection_select = SELECT ( - camera_model_d3_multi_clipping_union, - plane); - END_TYPE; - -(* Implicit interfaced from: presentation_organization_schema *) - TYPE camera_model_d3_multi_clipping_union_select = SELECT ( - camera_model_d3_multi_clipping_intersection, - plane); - END_TYPE; - -(* Implicit interfaced from: presentation_organization_schema *) - TYPE central_or_parallel = ENUMERATION OF - (central, - parallel); - END_TYPE; - -(* Implicit interfaced from: presentation_organization_schema *) - TYPE presentation_size_assignment_select = SELECT - (presentation_view, - presentation_area, - area_in_set); - END_TYPE; - -(* Implicit interfaced from: solid_shape_element_schema *) -TYPE generalized_surface_select = SELECT - (surface, - face_surface, - surfaced_open_shell); -END_TYPE; - -(* Implicit interfaced from: material_property_definition_schema *) -TYPE characterized_material_property = SELECT - (material_property_representation, - product_material_composition_relationship); -END_TYPE; - -(* Implicit interfaced from: presentation_appearance_schema *) - TYPE character_style_select = SELECT - (character_glyph_style_stroke, - character_glyph_style_outline, - text_style_for_defined_font); - END_TYPE; - -(* Implicit interfaced from: presentation_appearance_schema *) -(* This SELECT set has been pruned. *) -TYPE character_spacing_select = SELECT ( - length_measure, - ratio_measure, - measure_with_unit, - descriptive_measure); -END_TYPE; - - -(* Implicit interfaced from: presentation_definition_schema *) - TYPE text_delineation = label; - END_TYPE; - -(* Implicit interfaced from: presentation_definition_schema *) - TYPE defined_glyph_select = SELECT - (pre_defined_character_glyph, - externally_defined_character_glyph); - END_TYPE; - -(* Implicit interfaced from: presentation_appearance_schema *) - TYPE curve_style_font_select = SELECT - (curve_style_font, - pre_defined_curve_font, - externally_defined_curve_font); - END_TYPE; - -(* Implicit interfaced from: presentation_definition_schema *) - TYPE text_path = ENUMERATION OF - (left, - right, - up, - down); - END_TYPE; - -(* Implicit interfaced from: presentation_definition_schema *) - TYPE annotation_text_occurrence_item = SELECT( - text_literal, - annotation_text, - annotation_text_character, - defined_character_glyph, - composite_text); - END_TYPE; - -(* Implicit interfaced from: presentation_definition_schema *) - TYPE curve_or_curve_set = SELECT ( - curve, - geometric_curve_set); - END_TYPE; - -(* Implicit interfaced from: presentation_definition_schema *) - TYPE text_string_representation_item = SELECT( - text_literal, - annotation_text, - annotation_text_character, - defined_character_glyph, - composite_text, - axis2_placement); - END_TYPE; - -(* Implicit interfaced from: presentation_appearance_schema *) - TYPE rendering_properties_select = SELECT - (surface_style_reflectance_ambient, - surface_style_transparent); - END_TYPE; - -(* Implicit interfaced from: presentation_appearance_schema *) -(* This SELECT set has been pruned. *) -TYPE size_select = SELECT ( - positive_length_measure, - measure_with_unit, - descriptive_measure); -END_TYPE; - - -(* Implicit interfaced from: presentation_appearance_schema *) - TYPE box_characteristic_select = SELECT - (box_height, - box_width, - box_slant_angle, - box_rotate_angle); - END_TYPE; - -(* Implicit interfaced from: draughting_element_schema *) - TYPE annotation_plane_element = SELECT - (draughting_callout, - styled_item); - END_TYPE; - -(* Implicit interfaced from: draughting_element_schema *) - TYPE plane_or_planar_box = SELECT - (plane, - planar_box) ; - END_TYPE; - -(* Implicit interfaced from: draughting_element_schema *) - TYPE draughting_callout_element = SELECT - (annotation_curve_occurrence, - annotation_fill_area_occurrence, - annotation_symbol_occurrence, - annotation_text_occurrence, - tessellated_annotation_occurrence); - END_TYPE; - -(* Implicit interfaced from: presentation_appearance_schema *) - 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; - -(* Implicit interfaced from: date_time_schema *) -TYPE day_in_year_number = INTEGER; -WHERE - WR1: {1 <= SELF <= 366}; -END_TYPE; - -(* Pruned unused type: apps_role_select *) - - -(* Pruned unused type: apps_description_attribute_select *) - - -(* Implicit interfaced from: product_property_representation_schema *) - TYPE item_identified_representation_usage_select = SELECT ( - representation_item, - list_representation_item, - set_representation_item); - END_TYPE; - -(* Implicit interfaced from: geometry_schema *) -TYPE knot_type = ENUMERATION OF - (uniform_knots, - quasi_uniform_knots, - piecewise_bezier_knots, - unspecified); -END_TYPE; - -(* Implicit interfaced from: topology_schema *) - TYPE reversible_topology = SELECT - (reversible_topology_item, - list_of_reversible_topology_item, - set_of_reversible_topology_item); - END_TYPE; - -(* Implicit interfaced from: topology_schema *) - TYPE list_of_reversible_topology_item = - LIST [0:?] of reversible_topology_item; - END_TYPE; - -(* Implicit interfaced from: topology_schema *) - TYPE reversible_topology_item = SELECT - (edge, - path, - face, - face_bound, - closed_shell, - open_shell); - END_TYPE; - -(* Implicit interfaced from: topology_schema *) - TYPE set_of_reversible_topology_item = - SET [0:?] of reversible_topology_item; - END_TYPE; - -(* Implicit interfaced from: topology_schema *) - TYPE shell = SELECT - (vertex_shell, - wire_shell, - open_shell, - closed_shell); - END_TYPE; - -(* Implicit interfaced from: presentation_organization_schema *) - TYPE layered_item = SELECT - (presentation_representation, - representation_item); - END_TYPE; - -(* Implicit interfaced from: shape_aspect_definition_schema *) -(* This EXTENSIBLE SELECT have been replaced with plain SELECT for EXPRESS E1 layout. *) -TYPE shape_representation_with_parameters_items = SELECT ( - descriptive_representation_item, - direction, - measure_representation_item, - placement); -END_TYPE; - - -(* Implicit interfaced from: presentation_appearance_schema *) -(* This SELECT set has been pruned. *) -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; - - -(* Implicit interfaced from: presentation_appearance_schema *) -(* This SELECT set has been pruned. *) -TYPE symbol_style_select = SELECT ( - symbol_colour); -END_TYPE; - - -(* Implicit interfaced from: presentation_definition_schema *) - TYPE text_or_character = SELECT - (annotation_text, - annotation_text_character, - defined_character_glyph, - composite_text, - text_literal); - END_TYPE; - -(* Implicit interfaced from: presentation_definition_schema *) - TYPE defined_symbol_select = SELECT - (pre_defined_symbol, - externally_defined_symbol); - END_TYPE; - -(* Implicit interfaced from: presentation_organization_schema *) - TYPE presentation_representation_select = SELECT - (presentation_representation, - presentation_set); - END_TYPE; - -(* Implicit interfaced from: presentation_appearance_schema *) - TYPE curve_or_annotation_curve_occurrence = SELECT - (curve, - annotation_curve_occurrence); - END_TYPE; - -(* Pruned unused type: shape_tolerance_select *) - - -(* Implicit interfaced from: presentation_appearance_schema *) - TYPE curve_or_render = SELECT - (curve_style, - curve_style_rendering); - END_TYPE; - -(* Implicit interfaced from: presentation_appearance_schema *) - TYPE shading_surface_method = ENUMERATION OF - (constant_shading, - colour_shading, - dot_shading, - normal_shading); - END_TYPE; - -(* Implicit interfaced from: presentation_appearance_schema *) - TYPE direction_count_select = SELECT - (u_direction_count, - v_direction_count); - END_TYPE; - -(* Implicit interfaced from: presentation_appearance_schema *) - TYPE surface_side_style_select = SELECT - (surface_side_style, - pre_defined_surface_side_style); - END_TYPE; - -(* Implicit interfaced from: presentation_organization_schema *) - TYPE area_or_view = SELECT - (presentation_area, - presentation_view); - END_TYPE; - -(* Pruned unused type: pprs_description_attribute_select *) - - -(* Implicit interfaced from: presentation_appearance_schema *) - TYPE shading_curve_method = ENUMERATION OF - (constant_colour, - linear_colour); - END_TYPE; - -(* Pruned unused type: pprs_name_attribute_select *) - - -(* Implicit interfaced from: management_resources_schema *) - TYPE attribute_type = SELECT (label, text); - END_TYPE; - -(* Pruned unused type: acs_description_attribute_select *) - - -(* Pruned unused type: acs_id_attribute_select *) - - -(* Pruned unused type: as_id_attribute_select *) - - -(* Pruned unused type: pos_description_attribute_select *) - - -(* Pruned unused type: mrs_role_select *) - - -(* Pruned unused type: gs_id_attribute_select *) - - -(* Pruned unused type: rs_description_attribute_select *) - - -(* Pruned unused type: rs_id_attribute_select *) - - -(* Pruned unused type: dts_description_attribute_select *) - - -(* Pruned unused type: ppds_id_attribute_select *) - - -(* Pruned unused type: surface_boundary *) - - -(* Pruned unused type: pos_id_attribute_select *) - - -(* Pruned unused type: st_id_attribute_select *) - - -(* Pruned unused type: sts_item_identified_representation_usage_definition *) - - -(* Pruned unused type: pds_id_attribute_select *) - - -(* Pruned unused type: pos_name_attribute_select *) - - -(* Pruned unused type: as_description_attribute_select *) - - -(* Pruned unused type: as_name_attribute_select *) - - -(* Pruned unused type: effs_description_attribute_select *) - - -(* Pruned unused type: effs_name_attribute_select *) - - -(* Implicit interfaced from: geometric_model_schema *) -TYPE surface_model = SELECT - (face_based_surface_model, - shell_based_surface_model); -END_TYPE; - -(* Pruned unused type: wireframe_model *) - - -(* Pruned unused type: cms_description_attribute_select *) - - -(* Pruned unused type: cms_name_attribute_select *) - - -(* Pruned unused type: pds_name_attribute_select *) - - -(* Pruned unused type: product_data_representation_view_item *) - - -(* Pruned unused type: des_invisible_item *) - -(* USED FROM (kinematic_state_schema); *) -TYPE ypr_rotation = ARRAY [ypr_index(yaw) : ypr_index(roll)] - OF plane_angle_measure; -END_TYPE; -(* USED FROM (sketch_schema); *) -TYPE planar_curve_select = SELECT - (line, - conic, - trimmed_curve, - pcurve, - surface_curve); -WHERE - WR1: SELF\geometric_representation_item.dim = 3; - WR2: check_curve_planarity(SELF); -END_TYPE; - -(* Implicit interfaced from: presentation_definition_schema *) - TYPE presentable_text = STRING; - WHERE - WR1: control_characters_free(SELF); - END_TYPE; -(* USED FROM (shape_aspect_definition_schema); *) -TYPE common_datum_list = LIST[2:?] OF datum_reference_element; -WHERE - WR1: SIZEOF( QUERY(dre <* SELF | dre\shape_aspect.of_shape <> SELF[1]\shape_aspect.of_shape)) = 0; -END_TYPE; -(* USED FROM (parameterization_schema); *) -TYPE attribute_identifier = identifier; -WHERE - WR1: validate_attribute_id(SELF); -END_TYPE; -(* USED FROM (shape_data_quality_inspection_result_schema); *) - ENTITY shape_inspection_result_representation_with_accuracy - SUBTYPE OF(shape_data_quality_inspection_result_representation); - applied_general_accuracy : SET [1:?] OF shape_measurement_accuracy; - END_ENTITY; -(* USED FROM (Ap242_managed_model_based_3d_engineering_mim); *) - ENTITY cc_design_certification - SUBTYPE OF (certification_assignment); - items : SET[1:?] OF certified_item; - END_ENTITY; -(* USED FROM (Ap242_managed_model_based_3d_engineering_mim); *) - ENTITY cc_design_contract - SUBTYPE OF (contract_assignment); - items : SET[1:?] OF contracted_item; - END_ENTITY; -(* USED FROM (Ap242_managed_model_based_3d_engineering_mim); *) - ENTITY cc_design_date_and_time_assignment - SUBTYPE OF (date_and_time_assignment); - items : SET[1:?] OF date_time_item; - END_ENTITY; -(* USED FROM (shape_data_quality_inspection_result_schema); *) - ENTITY shape_data_quality_inspection_result - SUBTYPE OF(data_quality_inspection_result); - SELF\data_quality_inspection_result.criterion_inspected:shape_data_quality_criterion; - END_ENTITY; -(* USED FROM (Ap242_managed_model_based_3d_engineering_mim); *) - ENTITY cc_design_security_classification - SUBTYPE OF (security_classification_assignment); - items : SET[1:?] OF cc_classified_item; - END_ENTITY; -(* USED FROM (Ap242_managed_model_based_3d_engineering_mim); *) - ENTITY cc_design_specification_reference - SUBTYPE OF (document_reference); - items : SET[1:?] OF cc_specified_item; - END_ENTITY; -(* USED FROM (Ap242_managed_model_based_3d_engineering_mim); *) - ENTITY change - SUBTYPE OF (action_assignment); - items : SET[1:?] OF work_item; - END_ENTITY; -(* USED FROM (Ap242_managed_model_based_3d_engineering_mim); *) - ENTITY change_request - SUBTYPE OF (action_request_assignment); - items : SET[1:?] OF change_request_item; - END_ENTITY; -(* USED FROM (Ap242_managed_model_based_3d_engineering_mim); *) - ENTITY design_context - SUBTYPE OF (product_definition_context); - WHERE - WR1: SELF.life_cycle_stage = 'design'; - END_ENTITY; -(* USED FROM (Ap242_managed_model_based_3d_engineering_mim); *) - ENTITY design_make_from_relationship - SUBTYPE OF (product_definition_relationship); - END_ENTITY; -(* USED FROM (Ap242_managed_model_based_3d_engineering_mim); *) - ENTITY mechanical_context - SUBTYPE OF (product_context); - WHERE - WR1: SELF.discipline_type = 'mechanical'; - END_ENTITY; -(* USED FROM (Ap242_managed_model_based_3d_engineering_mim); *) - ENTITY start_request - SUBTYPE OF (action_request_assignment); - items : SET[1:?] OF start_request_item; - END_ENTITY; -(* USED FROM (Ap242_managed_model_based_3d_engineering_mim); *) - ENTITY start_work - SUBTYPE OF (action_assignment); - items : SET[1:?] OF work_item; - END_ENTITY; -(* USED FROM (Ap242_managed_model_based_3d_engineering_mim); *) - ENTITY supplied_part_relationship - SUBTYPE OF (product_definition_relationship); - END_ENTITY; -(* USED FROM (Assembly_module_with_macro_component_mim); *) - ENTITY assembly_module_macro_component - SUBTYPE OF (physical_component); - END_ENTITY; -(* USED FROM (Assembly_module_with_macro_component_mim); *) -ENTITY assembly_module_macro_component_join_terminal - SUBTYPE OF (physical_component_terminal); -END_ENTITY; -(* USED FROM (Assembly_physical_requirement_allocation_mim); *) -ENTITY electromagnetic_compatibility_requirement_allocation - SUPERTYPE OF ( - ASSEMBLY_SHIELD_ALLOCATION) - SUBTYPE OF (requirement_assignment); -END_ENTITY; -(* USED FROM (Assembly_physical_requirement_allocation_mim); *) -ENTITY assembly_shield_allocation - SUBTYPE OF (electromagnetic_compatibility_requirement_allocation); -END_ENTITY; -(* USED FROM (Assembly_physical_requirement_allocation_mim); *) -ENTITY thermal_requirement_allocation - SUBTYPE OF (requirement_assignment); -END_ENTITY; -(* USED FROM (Datum_difference_based_model_mim); *) -ENTITY datum_difference_based_model_parameter - SUBTYPE OF (model_parameter); -END_ENTITY; -(* USED FROM (Datum_difference_based_model_mim); *) -ENTITY datum_difference_functional_unit_usage_view_terminal_assignment - SUBTYPE OF (shape_aspect_relationship); - SELF\shape_aspect_relationship.relating_shape_aspect : datum_difference; - SELF\shape_aspect_relationship.related_shape_aspect : functional_unit_terminal_definition; -END_ENTITY; -(* USED FROM (Datum_difference_based_model_mim); *) -ENTITY datum_difference - SUBTYPE OF (shape_aspect,shape_aspect_relationship); - SELF\shape_aspect_relationship.relating_shape_aspect : datum; - SELF\shape_aspect_relationship.related_shape_aspect : datum; -WHERE - WR1: SELF\shape_aspect_relationship.relating_shape_aspect :<>: - SELF\shape_aspect_relationship.related_shape_aspect; -END_ENTITY; -(* USED FROM (Electrical_network_definition_mim); *) -ENTITY electrical_network - SUBTYPE OF (functional_unit); -END_ENTITY; -(* USED FROM (Interconnect_non_planar_shape_mim); *) -ENTITY manifold_constraining_context_dependent_shape_representation - SUBTYPE OF (context_dependent_shape_representation, representation_relationship); -END_ENTITY; -(* USED FROM (Interconnect_non_planar_shape_mim); *) -ENTITY component_part_2d_non_planar_geometric_representation_relationship - SUBTYPE OF (shape_representation_relationship, representation_relationship_with_transformation); -END_ENTITY; -(* USED FROM (Interconnect_placement_requirements_mim); *) - ENTITY area_qualified_layout_spacing_requirement - SUBTYPE OF (layout_spacing_requirement); - END_ENTITY; -(* USED FROM (Interconnect_placement_requirements_mim); *) - ENTITY layout_spacing_contextual_area - SUBTYPE OF (shape_aspect); - END_ENTITY; -(* USED FROM (Interconnect_placement_requirements_mim); *) - ENTITY interconnect_module_design_object_category - SUBTYPE OF (characterized_object); - END_ENTITY; -(* USED FROM (Interconnect_placement_requirements_mim); *) - ENTITY layer_qualified_layout_spacing_requirement - SUBTYPE OF (layout_spacing_requirement); - END_ENTITY; -(* USED FROM (Interconnect_placement_requirements_mim); *) - ENTITY layout_spacing_requirement - SUBTYPE OF (predefined_requirement_view_definition); - END_ENTITY; -(* USED FROM (Layout_macro_definition_mim); *) -ENTITY layout_macro_component - SUBTYPE OF (printed_component); -END_ENTITY; -(* USED FROM (Layout_macro_definition_mim); *) -ENTITY layout_macro_definition - SUBTYPE OF (layered_interconnect_module_design_view); -END_ENTITY; -(* USED FROM (Layout_macro_definition_mim); *) -ENTITY layout_macro_definition_terminal_to_usage_terminal_assignment - SUBTYPE OF (shape_aspect, shape_aspect_relationship); - SELF\shape_aspect_relationship.related_shape_aspect : printed_part_template_terminal; -UNIQUE - UR1: SELF\shape_aspect_relationship.name; -END_ENTITY; -(* USED FROM (Layout_macro_definition_mim); *) -ENTITY layout_macro_floor_plan_template - SUBTYPE OF (printed_part_template); -END_ENTITY; -(* USED FROM (Packaged_part_white_box_model_mim); *) -ENTITY device_terminal_map - SUBTYPE OF (shape_aspect, shape_aspect_relationship); - SELF\shape_aspect_relationship.relating_shape_aspect : packaged_part_terminal; -UNIQUE - UR1: SELF\shape_aspect_relationship.related_shape_aspect, - SELF\shape_aspect_relationship.relating_shape_aspect; -END_ENTITY; -(* USED FROM (Part_feature_grouping_mim); *) -ENTITY composite_array_shape_aspect - SUPERTYPE OF (ONEOF ( - LINEAR_COMPOSITE_ARRAY_SHAPE_ASPECT, - RECTANGULAR_COMPOSITE_ARRAY_SHAPE_ASPECT)) - SUBTYPE OF (composite_shape_aspect); -END_ENTITY; -(* USED FROM (Part_feature_grouping_mim); *) -ENTITY composite_array_shape_aspect_link - SUBTYPE OF (shape_aspect,shape_aspect_relationship); -WHERE - WR1: SELF\shape_aspect_relationship.related_shape_aspect :<>: - SELF\shape_aspect_relationship.relating_shape_aspect; -END_ENTITY; -(* USED FROM (Part_feature_grouping_mim); *) -ENTITY linear_composite_array_shape_aspect - SUBTYPE OF (composite_array_shape_aspect); -END_ENTITY; -(* USED FROM (Part_feature_grouping_mim); *) -ENTITY linear_composite_array_shape_aspect_link - SUBTYPE OF (shape_aspect,shape_aspect_relationship); - SELF\shape_aspect_relationship.relating_shape_aspect : linear_composite_array_shape_aspect; - SELF\shape_aspect_relationship.related_shape_aspect : linear_composite_array_shape_aspect; -WHERE - WR1: SELF\shape_aspect_relationship.related_shape_aspect :<>: - SELF\shape_aspect_relationship.relating_shape_aspect; -END_ENTITY; -(* USED FROM (Part_feature_grouping_mim); *) -ENTITY rectangular_composite_array_shape_aspect - SUBTYPE OF (composite_array_shape_aspect); -END_ENTITY; -(* USED FROM (Physical_node_requirement_to_implementing_component_allocation_mim); *) - ENTITY assembly_to_part_connectivity_structure_allocation - SUBTYPE OF (shape_aspect_relationship, shape_aspect); - SELF\shape_aspect_relationship.related_shape_aspect : physical_connectivity_element; -- assembly_element : This ATTRIBUTE was RENAMED in the EXPRESS E2 source, an attribute with the new name is in the DERIVE clause - SELF\shape_aspect_relationship.relating_shape_aspect : part_connected_terminals_element; -- part_element : This ATTRIBUTE was RENAMED in the EXPRESS E2 source, an attribute with the new name is in the DERIVE clause - DERIVE - assembly_element : PHYSICAL_CONNECTIVITY_ELEMENT := SELF\shape_aspect_relationship.related_shape_aspect; -- RELATED_SHAPE_ASPECT : This ATTRIBUTE was RENAMED in the EXPRESS E2 source, this is the new name implemented as DERIVE - part_element : PART_CONNECTED_TERMINALS_ELEMENT := SELF\shape_aspect_relationship.relating_shape_aspect; -- RELATING_SHAPE_ASPECT : This ATTRIBUTE was RENAMED in the EXPRESS E2 source, this is the new name implemented as DERIVE - - END_ENTITY; -(* USED FROM (Physical_node_requirement_to_implementing_component_allocation_mim); *) - ENTITY physical_node_branch_requirement_to_implementing_component_allocation - SUBTYPE OF (shape_aspect_relationship, shape_aspect); - SELF\shape_aspect_relationship.related_shape_aspect : physical_connectivity_element; -- physical_node_branch_requirement : This ATTRIBUTE was RENAMED in the EXPRESS E2 source, an attribute with the new name is in the DERIVE clause - SELF\shape_aspect.of_shape : assembly_component; -- implementation_component : This ATTRIBUTE was RENAMED in the EXPRESS E2 source, an attribute with the new name is in the DERIVE clause - SELF\shape_aspect_relationship.relating_shape_aspect : part_connected_terminals_element; -- part_element : This ATTRIBUTE was RENAMED in the EXPRESS E2 source, an attribute with the new name is in the DERIVE clause - DERIVE - implementation_component : ASSEMBLY_COMPONENT := SELF\shape_aspect.of_shape; -- OF_SHAPE : This ATTRIBUTE was RENAMED in the EXPRESS E2 source, this is the new name implemented as DERIVE - part_element : PART_CONNECTED_TERMINALS_ELEMENT := SELF\shape_aspect_relationship.relating_shape_aspect; -- RELATING_SHAPE_ASPECT : This ATTRIBUTE was RENAMED in the EXPRESS E2 source, this is the new name implemented as DERIVE - physical_node_branch_requirement : PHYSICAL_CONNECTIVITY_ELEMENT := SELF\shape_aspect_relationship.related_shape_aspect; -- RELATED_SHAPE_ASPECT : This ATTRIBUTE was RENAMED in the EXPRESS E2 source, this is the new name implemented as DERIVE - - END_ENTITY; -(* USED FROM (shape_data_quality_inspection_result_schema); *) - ENTITY boundary_curve_of_b_spline_or_rectangular_composite_surface - SUBTYPE OF(founded_item); - basis_surface : b_spline_or_rectangular_composite_surface_select; - boundary_type : surface_boundary_type; - WHERE - WR1 : SIZEOF( - using_representations(SELF.basis_surface) * - relating_shape_representations_of_extreme_values(SELF))>0; - END_ENTITY; -(* USED FROM (Physical_unit_interconnect_definition_mim); *) -ENTITY connector_based_interconnect_definition - SUBTYPE OF (property_definition); - SELF\property_definition.definition : physical_unit_interconnect_definition; -UNIQUE - UR1: SELF\property_definition.name,SELF\property_definition.definition; -END_ENTITY; -(* USED FROM (Physical_unit_interconnect_definition_mim); *) -ENTITY physical_unit_interconnect_definition - SUBTYPE OF (product_definition); -END_ENTITY; -(* USED FROM (Pre_defined_datum_symbol_mim); *) -ENTITY pre_defined_parallel_datum_axis_symbol_3d_2d_relationship - SUBTYPE OF (shape_definition_3d_intersection); -END_ENTITY; -(* USED FROM (Pre_defined_datum_symbol_mim); *) -ENTITY pre_defined_perpendicular_datum_axis_symbol_3d_2d_relationship - SUBTYPE OF (shape_definition_3d_intersection); -END_ENTITY; -(* USED FROM (Pre_defined_datum_symbol_mim); *) -ENTITY pre_defined_perpendicular_datum_plane_symbol_3d_2d_relationship - SUBTYPE OF (shape_definition_3d_intersection); -END_ENTITY; -(* USED FROM (Sequential_laminate_assembly_design_mim); *) - ENTITY derived_laminate_assignment - SUBTYPE OF (property_definition_relationship); - END_ENTITY; -(* USED FROM (Sequential_laminate_assembly_design_mim); *) - ENTITY interconnect_module_stratum_based_terminal - SUBTYPE OF (interconnect_module_terminal); - END_ENTITY; -(* USED FROM (Sequential_laminate_assembly_design_mim); *) - ENTITY sequential_laminate_passage_based_fabrication_joint - SUBTYPE OF (shape_aspect); - END_ENTITY; -(* USED FROM (Sequential_laminate_assembly_design_mim); *) - ENTITY sequential_laminate_stackup_component - SUBTYPE OF(physical_component); - END_ENTITY; -(* USED FROM (Sequential_laminate_assembly_design_mim); *) - ENTITY sequential_laminate_stackup_definition - SUBTYPE OF(product_definition); - END_ENTITY; -(* USED FROM (Thermal_network_definition_mim); *) -ENTITY thermal_network - SUBTYPE OF (functional_unit); -END_ENTITY; -(* USED FROM (Thermal_network_definition_mim); *) -ENTITY thermal_network_node_definition - SUBTYPE OF (network_node_definition); -END_ENTITY; -(* USED FROM (Via_component_mim); *) - ENTITY blind_via - ABSTRACT SUPERTYPE OF (ONEOF ( - NON_CONDUCTIVE_BASE_BLIND_VIA, - PLATED_CONDUCTIVE_BASE_BLIND_VIA)) - SUBTYPE OF (via); - END_ENTITY; -(* USED FROM (Via_component_mim); *) - ENTITY buried_via - SUBTYPE OF (via); - END_ENTITY; -(* USED FROM (Via_component_mim); *) - ENTITY interfacial_connection - SUBTYPE OF (via); - END_ENTITY; -(* USED FROM (Via_component_mim); *) - ENTITY non_conductive_base_blind_via - SUBTYPE OF (blind_via); - END_ENTITY; -(* USED FROM (Via_component_mim); *) - ENTITY plated_conductive_base_blind_via - SUBTYPE OF (blind_via); - END_ENTITY; -(* USED FROM (Interconnect_physical_requirement_allocation_mim); *) - ENTITY interconnect_shield_allocation - SUBTYPE OF (requirement_assignment); - END_ENTITY; -(* USED FROM (geometry_schema); *) -ENTITY offset_curve_2d - SUBTYPE OF (curve); - basis_curve : curve; - distance : length_measure; - self_intersect : LOGICAL; -WHERE - WR1: basis_curve.dim = 2; -END_ENTITY; -(* USED FROM (Mating_structure_mim); *) -ENTITY mated_part_relationship - SUBTYPE OF (group, group_assignment, product_definition_shape, product_definition_relationship, shape_aspect); - items : SET [0:?] OF product_definition; -DERIVE - SELF\group_assignment.assigned_group : mated_part_relationship := SELF; - SELF\property_definition.definition : mated_part_relationship := SELF; - SELF\shape_aspect.of_shape : mated_part_relationship := SELF; -END_ENTITY; -(* USED FROM (Externally_conditioned_data_quality_criteria_mim); *) - ENTITY excessive_use_of_groups - SUBTYPE OF(externally_conditioned_data_quality_criterion); - WHERE - WR1: validate_ecdq_inspected_elements_type(SELF, ['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.GROUP']); - END_ENTITY; -(* USED FROM (Externally_conditioned_data_quality_inspection_result_mim); *) - ENTITY externally_conditioned_data_quality_inspection_result - SUBTYPE OF(data_quality_inspection_result); - WHERE - WR1 : 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.'+ - 'EXTERNALLY_CONDITIONED_DATA_QUALITY_CRITERION' IN TYPEOF - (SELF\data_quality_inspection_result.criterion_inspected); - END_ENTITY; -(* USED FROM (Externally_conditioned_data_quality_criteria_mim); *) - ENTITY excessive_use_of_layers - SUBTYPE OF(Externally_conditioned_data_quality_criterion); - WHERE - WR1: validate_ecdq_inspected_elements_type(SELF, - ['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PRESENTATION_LAYER_ASSIGNMENT']); - END_ENTITY; -(* USED FROM (Machining_features_mim); *) -ENTITY face_shape_representation_relationship - SUBTYPE OF (representation_relationship); - WHERE - WR1: ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.FACE_SHAPE_REPRESENTATION' - IN TYPEOF(SELF.rep_1)); - WR2: ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.FACE_SHAPE_REPRESENTATION' - IN TYPEOF(SELF.rep_2)); -END_ENTITY; - -(* Implicit interfaced from: presentation_definition_schema *) - ENTITY symbol_target - SUBTYPE OF (geometric_representation_item); - placement : axis2_placement; - x_scale : positive_ratio_measure; - y_scale : positive_ratio_measure; - END_ENTITY; -(* REFERENCE FROM (product_definition_schema); *) - ENTITY product_definition_effectivity - SUBTYPE OF (effectivity); - usage : product_definition_relationship; - WHERE - WR1: SIZEOF(USEDIN(SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'EFFECTIVITY_ASSIGNMENT.ASSIGNED_EFFECTIVITY')) = 0; - END_ENTITY; - -(* Implicit interfaced from: management_resources_schema *) - ENTITY effectivity_context_role; - name : label; - description : OPTIONAL text; - END_ENTITY; - -(* Implicit interfaced from: product_concept_schema *) -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; - -(* Implicit interfaced from: product_concept_schema *) -ENTITY concept_feature_relationship_with_condition - SUBTYPE OF (concept_feature_relationship); - conditional_operator : concept_feature_operator; -END_ENTITY; - -(* Implicit interfaced from: geometric_model_schema *) -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: 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PLANE' IN TYPEOF(swept_area.basis_surface); -END_ENTITY; - -(* Implicit interfaced from: topology_schema *) - 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 ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.ORIENTED_OPEN_SHELL' - IN TYPEOF (SELF.open_shell_element)); - END_ENTITY; - -(* Implicit interfaced from: topology_schema *) - 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 ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.ORIENTED_PATH' IN TYPEOF (SELF.path_element)); - END_ENTITY; - -(* Implicit interfaced from: presentation_appearance_schema *) - ENTITY two_direction_repeat_factor - SUBTYPE OF (one_direction_repeat_factor); - second_repeat_factor : vector; - END_ENTITY; - -(* Implicit interfaced from: presentation_appearance_schema *) - ENTITY one_direction_repeat_factor - SUBTYPE OF (geometric_representation_item); - repeat_factor : vector; - END_ENTITY; - -(* Implicit interfaced from: solid_shape_element_schema *) -ENTITY solid_with_hole - ABSTRACT SUPERTYPE OF ( - SOLID_WITH_STEPPED_ROUND_HOLE) - SUBTYPE OF (solid_with_depression); -END_ENTITY; -(* USED FROM (Process_plan_mim); *) -ENTITY product_definition_resource - SUBTYPE OF (action_resource,product_definition); -WHERE - WR1: SIZEOF( USEDIN(SELF,'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + - 'REQUIREMENT_FOR_ACTION_RESOURCE.RESOURCES') - ) > 0; - - WR2: SELF.frame_of_reference.name IN - ['part_definition','part occurrence','physical occurrence']; - -END_ENTITY; - -(* Implicit interfaced from: solid_shape_element_schema *) -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(('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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; -(* USED FROM (Constructive_solid_geometry_2d_mim); *) - ENTITY boolean_result_2d - SUBTYPE OF (boolean_result); - SELF\boolean_result.first_operand : boolean_operand_2d; - SELF\boolean_result.second_operand : boolean_operand_2d; - END_ENTITY; -(* USED FROM (Constructive_solid_geometry_2d_mim); *) - ENTITY closed_curve_style_parameters - SUBTYPE OF(curve_style_parameters_representation); - END_ENTITY; -(* USED FROM (Constructive_solid_geometry_2d_mim); *) - ENTITY complex_area - ABSTRACT SUPERTYPE OF ( - PATH_AREA_WITH_PARAMETERS - ANDOR - PRIMITIVE_2D_WITH_INNER_BOUNDARY) - SUBTYPE OF (primitive_2d); - END_ENTITY; -(* USED FROM (Constructive_solid_geometry_2d_mim); *) - ENTITY csg_primitive_solid_2d - SUBTYPE OF (csg_solid_2d); - SELF\csg_solid.tree_root_expression : bounded_primitive_2d; - END_ENTITY; -(* USED FROM (Externally_conditioned_data_quality_criteria_mim); *) - ENTITY inappropriate_element_visibility - SUBTYPE OF(Externally_conditioned_data_quality_criterion); - WHERE - WR1: validate_ecdq_inspected_elements_type(SELF, - ['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.STYLED_ITEM']); - END_ENTITY; - -(* Implicit interfaced from: solid_shape_element_schema *) -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; -(* USED FROM (Constructive_solid_geometry_2d_mim); *) -ENTITY curve_style_parameters_representation - SUBTYPE OF(representation); -END_ENTITY; -(* USED FROM (Constructive_solid_geometry_2d_mim); *) -ENTITY curve_style_parameters_with_ends - SUBTYPE OF(curve_style_parameters_representation); -END_ENTITY; -(* USED FROM (Constructive_solid_geometry_2d_mim); *) -ENTITY path_area_with_parameters - SUBTYPE OF (complex_area, mapped_item); - WHERE - WR1: 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CURVE' IN TYPEOF(SELF\mapped_item.mapping_target); - -- the mapping source must be a curve (open or closed) - -- no the mapping target must be a curve (open or closed) - --wr2: -- the mapping_source.mapped_representation must be curve_style_parameters_representation; - WR2: 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CURVE_STYLE_PARAMETERS_REPRESENTATION' IN TYPEOF(SELF\mapped_item.mapping_source\representation_map.mapped_representation); - WR3: SELF\mapped_item.mapping_source\representation_map.mapping_origin\representation_item.name = 'curve width'; - --don't reall care on mapping_source.mapping_origin. Best to make it the line-width -END_ENTITY; -(* USED FROM (Externally_conditioned_data_quality_criteria_mim); *) - ENTITY inappropriate_use_of_layer - SUBTYPE OF(Externally_conditioned_data_quality_criterion); - WHERE - WR1: validate_ecdq_inspected_elements_type(SELF, - ['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PRESENTATION_LAYER_ASSIGNMENT']); - END_ENTITY; - -(* Implicit interfaced from: solid_shape_element_schema *) -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; - -(* Implicit interfaced from: solid_shape_element_schema *) -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; -(* USED FROM (Product_as_individual_assembly_and_test_mim); *) -ENTITY evaluated_characteristic_of_product_as_individual_test_result - SUBTYPE OF (evaluated_characteristic); -END_ENTITY; -(* USED FROM (Characterized_representation_mim); *) -ENTITY characterized_representation - SUBTYPE OF (representation, characterized_object); -DERIVE - SELF\characterized_object.name : label := SELF\representation.name; - SELF\characterized_object.description : text := SELF\representation.description; -END_ENTITY; -(* USED FROM (Composite_material_aspects_mim); *) - ENTITY composite_material_designation - SUBTYPE OF (material_designation); - END_ENTITY; -(* USED FROM (Externally_conditioned_data_quality_criteria_mim); *) - ENTITY non_agreed_accuracy_parameter_usage - SUBTYPE OF(externally_conditioned_data_quality_criterion); - WHERE - WR1: validate_ecdq_inspected_elements_type(SELF, - ['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.GLOBAL_UNCERTAINTY_ASSIGNED_CONTEXT']); - END_ENTITY; -(* USED FROM (Externally_conditioned_data_quality_criteria_mim); *) - ENTITY inconsistent_element_reference - SUBTYPE OF(Externally_conditioned_data_quality_criterion); - WHERE - WR1: validate_ecdq_inspected_elements_type(SELF, - ['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.REPRESENTATION_ITEM']); - END_ENTITY; - -(* Implicit interfaced from: procedural_model_schema *) -ENTITY user_selected_elements - SUBTYPE OF (representation_item); - picked_items : SET[1:?] OF representation_item; -END_ENTITY; - -(* Implicit interfaced from: presentation_organization_schema *) - ENTITY camera_model_d2 - SUBTYPE OF (camera_model); - view_window : planar_box; - view_window_clipping : BOOLEAN; - WHERE - WR1: SELF\geometric_representation_item.dim = 2; - END_ENTITY; -(* USED FROM (Dimension_and_tolerance_callouts_mim); *) -ENTITY dimension_curve_terminator_to_projection_curve_associativity - SUBTYPE OF(annotation_occurrence_associativity); - SELF\annotation_occurrence_relationship.relating_annotation_occurrence : dimension_curve_terminator; - SELF\annotation_occurrence_relationship.related_annotation_occurrence : projection_curve; -END_ENTITY; -(* REFERENCE FROM (procedural_model_schema); *) -ENTITY indirectly_selected_elements - SUBTYPE OF (user_selected_elements); - indirectly_picked_items : SET[1:?] OF representation_item; -END_ENTITY; -(* USED FROM (Drawing_definition_mim); *) -ENTITY drawing_sheet_layout - SUBTYPE OF (draughting_symbol_representation); -END_ENTITY; -(* USED FROM (External_currency_mim); *) - ENTITY externally_defined_currency - SUBTYPE OF (currency, externally_defined_context_dependent_unit); - END_ENTITY; -(* USED FROM (External_representation_item_mim); *) - ENTITY externally_defined_representation_item - SUBTYPE OF (representation_item, externally_defined_item); - END_ENTITY; -(* USED FROM (External_representation_item_mim); *) - ENTITY externally_defined_string - SUBTYPE OF (externally_defined_representation_item); - END_ENTITY; -(* USED FROM (External_representation_item_mim); *) - ENTITY externally_defined_representation - SUBTYPE OF (representation, externally_defined_item); - SELF\representation.items : SET [1:?] OF externally_defined_representation_item; - END_ENTITY; -(* USED FROM (Geometric_tolerance_mim); *) -ENTITY feature_for_datum_target_relationship - SUBTYPE OF (shape_aspect_relationship); - SELF\shape_aspect_relationship.related_shape_aspect : datum_target; -UNIQUE - UR1: related_shape_aspect; -WHERE - WR1: relating_shape_aspect.of_shape :=: related_shape_aspect.of_shape; - WR2: relating_shape_aspect\shape_aspect.product_definitional = TRUE; -END_ENTITY; -(* USED FROM (Externally_conditioned_data_quality_criteria_mim); *) - ENTITY non_agreed_unit_usage - SUBTYPE OF(externally_conditioned_data_quality_criterion); - WHERE - WR1: validate_ecdq_inspected_elements_type(SELF, - ['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.GLOBAL_UNIT_ASSIGNED_CONTEXT']); - END_ENTITY; -(* USED FROM (Externally_conditioned_data_quality_criteria_mim); *) - ENTITY non_referenced_coordinate_system - SUBTYPE OF(Externally_conditioned_data_quality_criterion); - WHERE - WR1: validate_ecdq_inspected_elements_type(SELF, - ['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.AXIS2_PLACEMENT_3D']); - END_ENTITY; -(* USED FROM (Mechanical_design_presentation_representation_with_draughting_mim); *) - ENTITY mechanical_design_presentation_representation_with_draughting - SUBTYPE of (representation); - SELF\representation.items : SET[1:?] OF camera_model_d3; - END_ENTITY; -(* USED FROM (Mechanical_design_presentation_representation_with_draughting_mim); *) - 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('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.'+'DRAUGHTING_MODEL' IN TYPEOF(rep_2)) OR - (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.'+'DRAUGHTING_MODEL' IN TYPEOF(rep_1)) OR - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.'+'SHAPE_REPRESENTATION' IN TYPEOF(rep_1))); - WR2: NOT('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.'+'MECHANICAL_DESIGN_GEOMETRIC_PRESENTATION_REPRESENTATION' IN TYPEOF(rep_2)) OR - (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.'+'MECHANICAL_DESIGN_GEOMETRIC_PRESENTATION_REPRESENTATION' IN TYPEOF(rep_1)) OR - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.'+'SHAPE_REPRESENTATION' IN TYPEOF(rep_1))); - WR3: NOT('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.'+'MECHANICAL_DESIGN_SHADED_PRESENTATION_REPRESENTATION' IN TYPEOF(rep_2)) OR - (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.'+'MECHANICAL_DESIGN_SHADED_PRESENTATION_REPRESENTATION' IN TYPEOF(rep_1)) OR - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.'+'SHAPE_REPRESENTATION' IN TYPEOF(rep_1))); - END_ENTITY; -(* USED FROM (Externally_conditioned_data_quality_criteria_mim); *) - ENTITY unused_shape_element - SUBTYPE OF(Externally_conditioned_data_quality_criterion); - WHERE - WR1: validate_ecdq_inspected_elements_type(SELF, - ['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.REPRESENTATION_ITEM']); - END_ENTITY; -(* USED FROM (Part_and_zone_laminate_tables_mim); *) - ENTITY composite_assembly_table - SUBTYPE OF (part_laminate_table); - END_ENTITY; -(* USED FROM (Part_and_zone_laminate_tables_mim); *) - ENTITY laminate_table - SUPERTYPE OF (ONEOF ( - PART_LAMINATE_TABLE, - ZONE_STRUCTURAL_MAKEUP)) - SUBTYPE OF (product_definition); - END_ENTITY; -(* USED FROM (Part_and_zone_laminate_tables_mim); *) - ENTITY part_laminate_table - SUPERTYPE OF (ONEOF ( - COMPOSITE_ASSEMBLY_TABLE, - PLY_LAMINATE_TABLE)) - SUBTYPE OF (laminate_table); - END_ENTITY; -(* USED FROM (Part_and_zone_laminate_tables_mim); *) - ENTITY percentage_laminate_table - SUBTYPE OF (zone_structural_makeup); - END_ENTITY; -(* USED FROM (document_schema); *) - ENTITY document_product_association - ABSTRACT SUPERTYPE; - name : label; - description : OPTIONAL text; - relating_document : document; - related_product : product_or_formation_or_definition; - END_ENTITY; -(* USED FROM (Part_and_zone_laminate_tables_mim); *) - ENTITY ply_laminate_table - SUBTYPE OF (part_laminate_table); - END_ENTITY; -(* USED FROM (Part_and_zone_laminate_tables_mim); *) - ENTITY smeared_material_definition - SUBTYPE OF (zone_structural_makeup); - END_ENTITY; -(* USED FROM (Part_and_zone_laminate_tables_mim); *) - ENTITY thickness_laminate_table - SUBTYPE OF (zone_structural_makeup); - END_ENTITY; -(* USED FROM (Part_and_zone_laminate_tables_mim); *) - 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; -(* USED FROM (Picture_representation_mim); *) - 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; -(* USED FROM (management_resources_schema); *) - ENTITY document_usage_constraint_assignment - ABSTRACT SUPERTYPE; - assigned_document_usage : document_usage_constraint; - role : document_usage_role; - END_ENTITY; -(* USED FROM (Picture_representation_mim); *) - ENTITY picture_representation_item - ABSTRACT SUPERTYPE OF (ONEOF ( - EXTERNALLY_DEFINED_PICTURE_REPRESENTATION_ITEM, - PREDEFINED_PICTURE_REPRESENTATION_ITEM)) - SUBTYPE OF (bytes_representation_item); - END_ENTITY; -(* USED FROM (Picture_representation_mim); *) - ENTITY predefined_picture_representation_item - SUBTYPE OF (picture_representation_item); - WHERE - WR1: SELF\representation_item.name IN pre_defined_picture_representation_types; - END_ENTITY; -(* USED FROM (Planned_characteristic_mim); *) -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; -(* USED FROM (Planned_characteristic_mim); *) -ENTITY evaluation_product_definition - SUBTYPE OF (product_definition); -END_ENTITY; -(* USED FROM (Ply_orientation_specification_mim); *) - ENTITY angle_direction_reference - SUBTYPE OF (representation_item_relationship, geometric_representation_item); - SELF\representation_item_relationship.relating_representation_item : orientation_basis_select; - SELF\representation_item_relationship.related_representation_item : angle_direction_reference_select; - WHERE - WR1: ((('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.POINT_PATH' IN TYPEOF(related_representation_item)) AND - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MIN_AND_MAJOR_PLY_ORIENTATION_BASIS' IN TYPEOF(relating_representation_item))) - OR - (NOT('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.POINT_PATH' IN TYPEOF(related_representation_item)) AND - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.AXIS2_PLACEMENT_3D' IN TYPEOF(relating_representation_item)))); - END_ENTITY; -(* USED FROM (Ply_orientation_specification_mim); *) - ENTITY draped_defined_transformation - SUBTYPE OF (transformation_with_derived_angle); - END_ENTITY; -(* USED FROM (Ply_orientation_specification_mim); *) - ENTITY laid_defined_transformation - SUBTYPE OF (transformation_with_derived_angle); - END_ENTITY; -(* USED FROM (Ply_orientation_specification_mim); *) - ENTITY min_and_major_ply_orientation_basis - SUBTYPE OF (representation_item_relationship, geometric_representation_item); - SELF\representation_item_relationship.relating_representation_item : axis2_placement_3d; -- minor_orientation_basis : This ATTRIBUTE was RENAMED in the EXPRESS E2 source, an attribute with the new name is in the DERIVE clause - SELF\representation_item_relationship.related_representation_item : axis2_placement_3d; -- major_orientation_basis : This ATTRIBUTE was RENAMED in the EXPRESS E2 source, an attribute with the new name is in the DERIVE clause - DERIVE - major_orientation_basis : AXIS2_PLACEMENT_3D := SELF\representation_item_relationship.related_representation_item; -- RELATED_REPRESENTATION_ITEM : This ATTRIBUTE was RENAMED in the EXPRESS E2 source, this is the new name implemented as DERIVE - minor_orientation_basis : AXIS2_PLACEMENT_3D := SELF\representation_item_relationship.relating_representation_item; -- RELATING_REPRESENTATION_ITEM : This ATTRIBUTE was RENAMED in the EXPRESS E2 source, this is the new name implemented as DERIVE - - END_ENTITY; -(* USED FROM (Ply_orientation_specification_mim); *) - ENTITY point_and_vector - SUBTYPE OF (compound_representation_item, geometric_representation_item); - SELF\compound_representation_item.item_element : point_and_vector_members; - END_ENTITY; -(* USED FROM (Ply_orientation_specification_mim); *) - ENTITY point_path - SUBTYPE OF (compound_representation_item, geometric_representation_item); - SELF\compound_representation_item.item_element : point_path_members; - END_ENTITY; -(* USED FROM (Ply_orientation_specification_mim); *) - 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; -(* USED FROM (Shape_feature_mim); *) -ENTITY shape_feature_definition - SUBTYPE OF (feature_definition); -END_ENTITY; -(* USED FROM (Shape_feature_mim); *) -ENTITY placed_feature - SUBTYPE OF (shape_aspect); -END_ENTITY; -(* USED FROM (explicit_constraint_schema); *) -ENTITY free_form_constraint - ABSTRACT SUPERTYPE OF (ONEOF ( - FREE_FORM_ASSIGNMENT, - FREE_FORM_RELATION)) - SUBTYPE OF (explicit_constraint); - SELF\explicit_constraint.constrained_elements : - SET[1:?] OF variational_parameter; - SELF\explicit_constraint.reference_elements : - SET[0:?] OF variational_parameter; - constraining_expression : expression; -END_ENTITY; - -(* Implicit interfaced from: action_schema *) - ENTITY action_resource_type; - name : label; - END_ENTITY; -(* USED FROM (explicit_constraint_schema); *) -ENTITY equal_parameter_constraint - SUBTYPE OF (defined_constraint); - SELF\explicit_constraint.constrained_elements : - SET[1:?] OF variational_parameter; - SELF\explicit_constraint.reference_elements : - SET[0:1] OF variational_parameter; -WHERE - WR1: SIZEOF(SELF\explicit_constraint.constrained_elements + - SELF\explicit_constraint.reference_elements) >= 2; -END_ENTITY; - -(* Implicit interfaced from: mathematical_functions_schema *) -ENTITY imported_point_function - SUBTYPE OF (maths_function, generic_literal); - geometry : point; -END_ENTITY; - -(* Implicit interfaced from: mathematical_functions_schema *) -ENTITY externally_listed_data - SUBTYPE OF (explicit_table_function, generic_literal, externally_defined_item); - value_range : maths_space; -WHERE - WR1: expression_is_constant(value_range); -END_ENTITY; - -(* Implicit interfaced from: mathematical_functions_schema *) -ENTITY application_defined_function - SUBTYPE OF (maths_function); - explicit_domain : tuple_space; - explicit_range : tuple_space; - parameters : LIST OF maths_value; -WHERE - WR1: expression_is_constant(explicit_domain); - WR2: expression_is_constant(explicit_range); -END_ENTITY; -(* USED FROM (Change_management_mim); *) -ENTITY change_group - SUBTYPE OF (group); -END_ENTITY; -(* USED FROM (Change_management_mim); *) -ENTITY change_element - ABSTRACT SUPERTYPE OF (ONEOF ( - MODIFY_ELEMENT, - DELETE_ELEMENT, - ADD_ELEMENT)) - SUBTYPE OF (group, characterized_object); -END_ENTITY; -(* USED FROM (Change_management_mim); *) -ENTITY modify_element - SUBTYPE OF (change_element); -END_ENTITY; -(* USED FROM (Change_management_mim); *) -ENTITY delete_element - SUBTYPE OF (change_element); -END_ENTITY; -(* USED FROM (Change_management_mim); *) -ENTITY add_element - SUBTYPE OF (change_element); -END_ENTITY; -(* USED FROM (Change_management_mim); *) -ENTITY change_element_sequence - SUBTYPE OF (group_relationship); - SELF\group_relationship.relating_group : change_element; -- previous : This ATTRIBUTE was RENAMED in the EXPRESS E2 source, an attribute with the new name is in the DERIVE clause - SELF\group_relationship.related_group : change_element; -- next : This ATTRIBUTE was RENAMED in the EXPRESS E2 source, an attribute with the new name is in the DERIVE clause - DERIVE - next : CHANGE_ELEMENT := SELF\group_relationship.related_group; -- RELATED_GROUP : This ATTRIBUTE was RENAMED in the EXPRESS E2 source, this is the new name implemented as DERIVE - previous : CHANGE_ELEMENT := SELF\group_relationship.relating_group; -- RELATING_GROUP : This ATTRIBUTE was RENAMED in the EXPRESS E2 source, this is the new name implemented as DERIVE - -END_ENTITY; -(* USED FROM (Change_management_mim); *) -ENTITY change_composition_relationship - SUBTYPE OF (group_relationship); - SELF\group_relationship.relating_group : change_group; -- composition : This ATTRIBUTE was RENAMED in the EXPRESS E2 source, an attribute with the new name is in the DERIVE clause - SELF\group_relationship.related_group : change_element; -- element : This ATTRIBUTE was RENAMED in the EXPRESS E2 source, an attribute with the new name is in the DERIVE clause - DERIVE - composition : CHANGE_GROUP := SELF\group_relationship.relating_group; -- RELATING_GROUP : This ATTRIBUTE was RENAMED in the EXPRESS E2 source, this is the new name implemented as DERIVE - element : CHANGE_ELEMENT := SELF\group_relationship.related_group; -- RELATED_GROUP : This ATTRIBUTE was RENAMED in the EXPRESS E2 source, this is the new name implemented as DERIVE - -END_ENTITY; -(* USED FROM (Change_management_mim); *) -ENTITY change_group_assignment - SUBTYPE OF (group_assignment); - SELF\group_assignment.assigned_group : change_group; - item : change_relationship_select; -END_ENTITY; -(* USED FROM (Change_management_mim); *) -ENTITY current_change_element_assignment - SUBTYPE OF (group_assignment); - SELF\group_assignment.assigned_group : current_element_assignment_select; - items : SET [1:?] OF change_management_object; -END_ENTITY; -(* USED FROM (Change_management_mim); *) -ENTITY previous_change_element_assignment - SUBTYPE OF (group_assignment); - SELF\group_assignment.assigned_group : previous_element_assignment_select; - items : SET [1:?] OF change_management_object; -END_ENTITY; -(* USED FROM (Change_management_mim); *) -ENTITY frozen_assignment - SUBTYPE OF (approval_assignment); - items : SET [1:?] OF change_management_object; -END_ENTITY; -(* USED FROM (Change_management_mim); *) -ENTITY location_in_aggregate_representation_item - SUBTYPE OF (compound_representation_item); - SELF\compound_representation_item.item_element : location_in_aggregate_item; -END_ENTITY; -(* USED FROM (explicit_geometric_constraint_schema); *) -ENTITY parallel_geometric_constraint - SUBTYPE OF (explicit_geometric_constraint); - SELF\explicit_constraint.constrained_elements : - SET[1:?] OF linear_geometry_constraint_element; - SELF\explicit_constraint.reference_elements : - SET[0:1] OF linear_geometry_constraint_element; -END_ENTITY; -(* USED FROM (Numerical_interface_mim); *) -ENTITY expression_extension_numeric - SUBTYPE OF (measure_with_unit, numeric_expression); -END_ENTITY; -(* USED FROM (Numerical_interface_mim); *) -ENTITY expression_extension_string - SUBTYPE OF (measure_with_unit, string_expression); -END_ENTITY; -(* USED FROM (Numerical_interface_mim); *) -ENTITY expression_extension_to_select; - type_expression_associated: expression_extension_select; -END_ENTITY; -(* USED FROM (Numerical_interface_mim); *) -ENTITY variable_expression - SUBTYPE OF (variable_semantics); - property_associated: property_variable_rep_select; -END_ENTITY; -(* USED FROM (application_context_schema); *) - 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, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'DESCRIPTION_ATTRIBUTE.DESCRIBED_ITEM')) <= 1; - WR2: SIZEOF(USEDIN(SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'ID_ATTRIBUTE.IDENTIFIED_ITEM')) <= 1; - END_ENTITY; -(* USED FROM (application_context_schema); *) - ENTITY application_protocol_definition; - status : label; - application_interpreted_model_schema_name : label; - application_protocol_year : year_number; - application : application_context; - END_ENTITY; -(* USED FROM (application_context_schema); *) - ENTITY product_context - SUBTYPE OF (application_context_element); - discipline_type : label; - END_ENTITY; -(* USED FROM (application_context_schema); *) - ENTITY product_definition_context - SUBTYPE OF (application_context_element); - life_cycle_stage : label; - END_ENTITY; -(* USED FROM (product_concept_schema); *) -ENTITY product_concept_relationship; - name : label; - description : OPTIONAL text; - relating_product_concept : product_concept; - related_product_concept : product_concept; -END_ENTITY; -(* USED FROM (product_definition_schema); *) - ENTITY product_definition_context_role; - name : label; - description : OPTIONAL text; - END_ENTITY; -(* USED FROM (explicit_geometric_constraint_schema); *) -ENTITY near_point_relationship - SUBTYPE OF (representation_item_relationship); - SELF\representation_item_relationship.relating_representation_item : - curve_or_surface_constraint_element; - SELF\representation_item_relationship.related_representation_item : - point; -END_ENTITY; -(* USED FROM (Assembly_technology_mim); *) -ENTITY assembly_bond_definition - SUBTYPE OF (shape_aspect); -UNIQUE - UR1: SELF\shape_aspect.name; -END_ENTITY; -(* USED FROM (Assembly_technology_mim); *) -ENTITY assembly_joint - SUBTYPE OF (component_feature_joint); -WHERE - WR1: acyclic_shape_aspect_relationship(SELF, - [SELF\shape_aspect_relationship.related_shape_aspect], - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.'+ - 'ASSEMBLY_JOINT'); -END_ENTITY; -(* USED FROM (Assembly_technology_mim); *) -ENTITY component_mating_constraint_condition - SUBTYPE OF (shape_aspect); -UNIQUE - UR1: SELF\shape_aspect.name, SELF\shape_aspect.of_shape; -END_ENTITY; -(* USED FROM (Assembly_technology_mim); *) -ENTITY connection_zone_based_assembly_joint - SUBTYPE OF (assembly_joint); -END_ENTITY; -(* USED FROM (Physical_unit_2d_design_view_mim); *) -ENTITY component_2d_location - SUBTYPE OF (context_dependent_shape_representation, shape_representation_relationship, representation_relationship_with_transformation, definitional_representation_relationship); - DERIVE - SELF\context_dependent_shape_representation.representation_relation : component_2d_location := SELF; -- NEW - WHERE - WR1: SELF\representation_relationship.name = 'component 2d location'; -END_ENTITY; -(* USED FROM (Assembly_module_with_cable_component_mim); *) - ENTITY cable_component - SUBTYPE OF (physical_component); - END_ENTITY; -(* USED FROM (Cable_mim); *) -ENTITY cable_terminal - SUBTYPE OF (shape_aspect); - SELF\shape_aspect.of_shape : cable_usage_view; -END_ENTITY; -(* USED FROM (Cable_mim); *) -ENTITY cable_usage_view - SUBTYPE OF (physical_unit); -END_ENTITY; -(* USED FROM (Physical_unit_3d_design_view_mim); *) -ENTITY component_3d_location - SUBTYPE OF (context_dependent_shape_representation, shape_representation_relationship, representation_relationship_with_transformation, definitional_representation_relationship); - DERIVE - SELF\context_dependent_shape_representation.representation_relation : component_3d_location := SELF; -- NEW - WHERE - WR1: SELF\representation_relationship.name = 'component 3d location'; -END_ENTITY; -(* USED FROM (Assembly_module_macro_definition_mim); *) -ENTITY assembly_module_macro_terminal - SUBTYPE OF (assembly_module_terminal); -END_ENTITY; -(* USED FROM (Interconnect_module_with_macros_mim); *) - ENTITY interconnect_module_macro_component - SUBTYPE OF (physical_component); - END_ENTITY; -(* USED FROM (Interconnect_module_with_macros_mim); *) - ENTITY interconnect_module_macro_component_join_terminal - SUBTYPE OF (physical_component_terminal); - END_ENTITY; -(* USED FROM (Assembly_module_with_subassembly_mim); *) - ENTITY assembly_module_component - SUBTYPE OF (physical_component); - END_ENTITY; -(* USED FROM (Assembly_functional_interface_requirement_mim); *) - ENTITY minimally_defined_connector - SUBTYPE OF (packaged_part); - END_ENTITY; -(* USED FROM (Assembly_functional_interface_requirement_mim); *) - ENTITY protocol_physical_layer_definition - SUBTYPE OF (product_definition); - END_ENTITY; -(* USED FROM (Assembly_functional_interface_requirement_mim); *) - ENTITY protocol_physical_layer_definition_with_characterization - SUBTYPE OF (protocol_physical_layer_definition); - END_ENTITY; -(* USED FROM (Assembly_functional_interface_requirement_mim); *) - ENTITY protocol_requirement_allocation_to_part_terminal - SUBTYPE OF (requirement_assignment); - END_ENTITY; -(* USED FROM (Altered_package_mim); *) -ENTITY altered_package_terminal - ABSTRACT SUPERTYPE OF (( - SHAPE_FORMED_TERMINAL - ANDOR - SURFACE_PREPPED_TERMINAL) - ANDOR - LENGTH_TRIMMED_TERMINAL) - SUBTYPE OF (package_terminal); -END_ENTITY; -(* USED FROM (Altered_package_mim); *) -ENTITY length_trimmed_terminal - SUBTYPE OF (altered_package_terminal); -END_ENTITY; -(* USED FROM (Altered_package_mim); *) -ENTITY shape_formed_terminal - SUBTYPE OF (altered_package_terminal); -END_ENTITY; -(* USED FROM (Altered_package_mim); *) -ENTITY surface_prepped_terminal - SUBTYPE OF (altered_package_terminal); -END_ENTITY; -(* USED FROM (Package_mim); *) -ENTITY visual_orientation_feature - SUBTYPE OF (shape_aspect); -END_ENTITY; -(* USED FROM (Package_mim); *) -ENTITY guided_wave_terminal - SUBTYPE OF (package_terminal); -END_ENTITY; -(* USED FROM (Package_mim); *) -ENTITY package - SUBTYPE OF (physical_unit); -END_ENTITY; -(* USED FROM (Package_mim); *) -ENTITY package_body - SUBTYPE OF (shape_aspect); -END_ENTITY; -(* USED FROM (Package_mim); *) -ENTITY package_body_bottom_surface - SUBTYPE OF (package_body_surface); -END_ENTITY; -(* USED FROM (Package_mim); *) -ENTITY package_body_edge_segment_surface - SUBTYPE OF (shape_aspect, shape_aspect_relationship); - SELF\shape_aspect_relationship.relating_shape_aspect : edge_segment_vertex; - SELF\shape_aspect_relationship.related_shape_aspect : edge_segment_vertex; -WHERE - WR1: SELF\shape_aspect_relationship.relating_shape_aspect :<>: - SELF\shape_aspect_relationship.related_shape_aspect; -END_ENTITY; -(* USED FROM (Package_mim); *) -ENTITY package_body_edge_surface - SUBTYPE OF (package_body_surface); -END_ENTITY; -(* USED FROM (Package_mim); *) -ENTITY package_body_surface - ABSTRACT SUPERTYPE OF (ONEOF ( - PACKAGE_BODY_TOP_SURFACE, - PACKAGE_BODY_EDGE_SURFACE, - PACKAGE_BODY_BOTTOM_SURFACE)) - - SUBTYPE OF (shape_aspect); -END_ENTITY; -(* USED FROM (Package_mim); *) -ENTITY package_body_top_surface - SUBTYPE OF (package_body_surface); -END_ENTITY; -(* USED FROM (Package_mim); *) -ENTITY package_terminal_template_definition - SUBTYPE OF (part_feature_template_definition); -END_ENTITY; -(* USED FROM (Package_mim); *) -ENTITY package_terminal - SUPERTYPE OF ( - GUIDED_WAVE_TERMINAL - ANDOR - PRIMARY_REFERENCE_TERMINAL) - SUBTYPE OF (placed_feature); -END_ENTITY; -(* USED FROM (Package_mim); *) -ENTITY primary_orientation_feature - SUBTYPE OF (shape_aspect); -WHERE - WR1: SELF\shape_aspect.product_definitional = TRUE; -END_ENTITY; -(* USED FROM (Package_mim); *) -ENTITY primary_reference_terminal - SUBTYPE OF (package_terminal); -END_ENTITY; -(* USED FROM (Package_mim); *) -ENTITY secondary_orientation_feature - SUBTYPE OF (shape_aspect); -WHERE - WR1: SELF.product_definitional = TRUE; -END_ENTITY; -(* USED FROM (Package_mim); *) -ENTITY tertiary_orientation_feature - SUBTYPE OF (shape_aspect); -WHERE - WR1: SELF.product_definitional = TRUE; -END_ENTITY; -(* USED FROM (Package_mim); *) -ENTITY wire_terminal - SUBTYPE OF (package_terminal); -END_ENTITY; -(* USED FROM (Package_mim); *) -ENTITY wire_terminal_template_definition - SUBTYPE OF (package_terminal_template_definition); -END_ENTITY; -(* USED FROM (Packaged_part_black_box_model_mim); *) -ENTITY packaged_part - SUPERTYPE OF ((ONEOF ( - MINIMALLY_DEFINED_CONNECTOR, - PACKAGED_CONNECTOR)) ) - - SUBTYPE OF (physical_unit); -END_ENTITY; -(* USED FROM (Packaged_part_black_box_model_mim); *) -ENTITY packaged_part_terminal - SUBTYPE OF (shape_aspect); -END_ENTITY; -(* USED FROM (Layered_3d_shape_mim); *) - ENTITY shape_definition_3d_intersection - SUPERTYPE OF ( ( (ONEOF ( - EDGE_SEGMENT_CROSS_SECTION, - PRE_DEFINED_PARALLEL_DATUM_AXIS_SYMBOL_3D_2D_RELATIONSHIP, - PRE_DEFINED_PERPENDICULAR_DATUM_AXIS_SYMBOL_3D_2D_RELATIONSHIP, - PRE_DEFINED_PERPENDICULAR_DATUM_PLANE_SYMBOL_3D_2D_RELATIONSHIP)) )ANDOR( (ONEOF ( - PRE_DEFINED_PARALLEL_DATUM_AXIS_SYMBOL_3D_2D_RELATIONSHIP, - PRE_DEFINED_PERPENDICULAR_DATUM_AXIS_SYMBOL_3D_2D_RELATIONSHIP, - PRE_DEFINED_PERPENDICULAR_DATUM_PLANE_SYMBOL_3D_2D_RELATIONSHIP)) ) ) - SUBTYPE OF (representation, - shape_representation_relationship, - representation_relationship_with_transformation); - SELF\representation_relationship_with_transformation.transformation_operator : item_defined_transformation; - 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; -(* USED FROM (Printed_physical_layout_template_mim); *) - ENTITY basic_multi_stratum_printed_part_template - SUBTYPE OF (printed_part_template); - END_ENTITY; -(* USED FROM (Printed_physical_layout_template_mim); *) - ENTITY multi_stratum_printed_part_template - SUBTYPE OF (structured_printed_part_template, multi_stratum_structured_template); - END_ENTITY; -(* USED FROM (Printed_physical_layout_template_mim); *) - ENTITY non_conductive_cross_section_template - SUBTYPE OF (part_template_definition); - END_ENTITY; -(* USED FROM (Printed_physical_layout_template_mim); *) - ENTITY printed_connector_template - SUBTYPE OF (printed_part_template); - END_ENTITY; -(* USED FROM (Printed_physical_layout_template_mim); *) - ENTITY printed_connector_template_terminal_relationship - SUBTYPE OF (shape_aspect, shape_aspect_relationship); - UNIQUE - UR1: SELF\shape_aspect_relationship.relating_shape_aspect, - SELF\shape_aspect_relationship.related_shape_aspect; - WHERE - WR1: SELF\shape_aspect_relationship.relating_shape_aspect :<>: - SELF\shape_aspect_relationship.related_shape_aspect; - END_ENTITY; -(* USED FROM (Printed_physical_layout_template_mim); *) - ENTITY printed_part_cross_section_template - SUBTYPE OF (printed_part_template); - END_ENTITY; -(* USED FROM (Printed_physical_layout_template_mim); *) - ENTITY printed_part_cross_section_template_terminal - SUBTYPE OF (printed_part_template_terminal); - END_ENTITY; -(* USED FROM (Printed_physical_layout_template_mim); *) - ENTITY printed_part_template - ABSTRACT SUPERTYPE OF (ONEOF ( - BASIC_MULTI_STRATUM_PRINTED_PART_TEMPLATE, - STRUCTURED_PRINTED_PART_TEMPLATE) - ANDOR - PRINTED_CONNECTOR_TEMPLATE) - SUBTYPE OF (part_template_definition); - END_ENTITY; -(* USED FROM (Printed_physical_layout_template_mim); *) - ENTITY printed_part_template_connected_terminals_definition - SUBTYPE OF (shape_aspect); - UNIQUE - UR1: SELF\shape_aspect.name; - END_ENTITY; -(* USED FROM (Printed_physical_layout_template_mim); *) - ENTITY printed_part_template_material - SUBTYPE OF (product_definition); - END_ENTITY; -(* USED FROM (Printed_physical_layout_template_mim); *) - ENTITY printed_part_template_material_link - SUBTYPE OF (shape_aspect,shape_aspect_relationship); - SELF\shape_aspect_relationship.relating_shape_aspect : template_material_cross_section_boundary; - SELF\shape_aspect_relationship.related_shape_aspect : template_material_cross_section_boundary; - UNIQUE - UR1: SELF\shape_aspect_relationship.related_shape_aspect, - SELF\shape_aspect_relationship.relating_shape_aspect; - WHERE - WR1: SELF\shape_aspect_relationship.related_shape_aspect :<>: - SELF\shape_aspect_relationship.relating_shape_aspect; - END_ENTITY; -(* USED FROM (Printed_physical_layout_template_mim); *) - ENTITY printed_part_template_terminal - SUPERTYPE OF ( - PRINTED_PART_CROSS_SECTION_TEMPLATE_TERMINAL - ANDOR - STRUCTURED_PRINTED_PART_TEMPLATE_TERMINAL) - SUBTYPE OF (shape_aspect); - END_ENTITY; -(* USED FROM (Printed_physical_layout_template_mim); *) - ENTITY printed_part_template_terminal_connection_zone_category - SUBTYPE OF (group); - END_ENTITY; -(* USED FROM (Printed_physical_layout_template_mim); *) - ENTITY printed_tiebar_template - SUBTYPE OF (structured_printed_part_template); - END_ENTITY; -(* USED FROM (Printed_physical_layout_template_mim); *) - ENTITY single_stratum_printed_part_template - SUBTYPE OF (structured_printed_part_template, single_stratum_structured_template); - END_ENTITY; -(* USED FROM (Printed_physical_layout_template_mim); *) - ENTITY structured_printed_part_template - ABSTRACT SUPERTYPE OF (ONEOF ( - SINGLE_STRATUM_PRINTED_PART_TEMPLATE, - MULTI_STRATUM_PRINTED_PART_TEMPLATE)) - SUBTYPE OF (printed_part_template, structured_template); - END_ENTITY; -(* USED FROM (Printed_physical_layout_template_mim); *) - ENTITY structured_printed_part_template_terminal - SUBTYPE OF (printed_part_template_terminal); - END_ENTITY; -(* USED FROM (Printed_physical_layout_template_mim); *) - ENTITY template_material_cross_section_boundary - SUBTYPE OF (shape_aspect); - END_ENTITY; - -(* Implicit interfaced from: mathematical_functions_schema *) -ENTITY imported_surface_function - SUBTYPE OF (maths_function, generic_literal); - geometry : surface; - parametric_domain : tuple_space; -WHERE - WR1: expression_is_constant(parametric_domain); -END_ENTITY; -(* USED FROM (Discrete_shield_mim); *) -ENTITY physical_shield - SUBTYPE OF (physical_component); -END_ENTITY; -(* USED FROM (Discrete_shield_mim); *) -ENTITY routed_physical_shield - SUBTYPE OF (physical_shield, routed_physical_component); -END_ENTITY; -(* USED FROM (Functional_decomposition_with_nodal_representation_to_packaged_mapping_mim); *) -ENTITY aggregate_connectivity_requirement - SUBTYPE OF (applied_group_assignment, product_definition); -END_ENTITY; -(* USED FROM (Layered_interconnect_module_design_mim); *) - ENTITY additive_laminate_text_component - SUBTYPE OF (generic_laminate_text_component); - END_ENTITY; -(* USED FROM (Layered_interconnect_module_design_mim); *) - ENTITY area_component - SUPERTYPE OF ( - CONNECTED_AREA_COMPONENT) - SUBTYPE OF (stratum_feature_template_component); - END_ENTITY; -(* USED FROM (Layered_interconnect_module_design_mim); *) - ENTITY breakout_occurrence - SUBTYPE OF (footprint_occurrence); - END_ENTITY; -(* USED FROM (Layered_interconnect_module_design_mim); *) - ENTITY component_termination_passage - SUBTYPE OF (plated_passage); - END_ENTITY; -(* USED FROM (Layered_interconnect_module_design_mim); *) - ENTITY conductive_interconnect_element - ABSTRACT SUPERTYPE OF (ONEOF ( - UNROUTED_CONDUCTIVE_INTERCONNECT_ELEMENT, - CONDUCTIVE_INTERCONNECT_ELEMENT_WITH_PRE_DEFINED_TRANSITIONS)) - SUBTYPE OF (stratum_feature_template_component); - END_ENTITY; -(* USED FROM (Layered_interconnect_module_design_mim); *) - ENTITY conductive_interconnect_element_terminal_link - SUBTYPE OF (shape_aspect,shape_aspect_relationship); - SELF\shape_aspect_relationship.relating_shape_aspect : laminate_component_feature; - SELF\shape_aspect_relationship.related_shape_aspect : laminate_component_feature; - WHERE - WR1: SELF\shape_aspect_relationship.related_shape_aspect :<>: - SELF\shape_aspect_relationship.relating_shape_aspect; - END_ENTITY; -(* USED FROM (Layered_interconnect_module_design_mim); *) - ENTITY conductive_interconnect_element_with_pre_defined_transitions - SUBTYPE OF (conductive_interconnect_element, item_identified_representation_usage); - DERIVE - SELF\item_identified_representation_usage.definition : property_definition := SELF; - END_ENTITY; -(* USED FROM (Layered_interconnect_module_design_mim); *) - ENTITY connected_area_component - SUBTYPE OF (area_component); - END_ENTITY; -(* USED FROM (Layered_interconnect_module_design_mim); *) - ENTITY cutout - SUPERTYPE OF (ONEOF ( - PHYSICAL_CONNECTIVITY_INTERRUPTING_CUTOUT, - PLATED_CUTOUT, - PARTIALLY_PLATED_CUTOUT)) - SUBTYPE OF (inter_stratum_feature); - END_ENTITY; -(* USED FROM (Layered_interconnect_module_design_mim); *) - ENTITY cutout_edge_segment - SUPERTYPE OF ( - PLATED_CUTOUT_EDGE_SEGMENT) - SUBTYPE OF (inter_stratum_feature,shape_aspect_relationship); - SELF\shape_aspect_relationship.relating_shape_aspect : edge_segment_vertex; - SELF\shape_aspect_relationship.related_shape_aspect : edge_segment_vertex; - WHERE - WR1: SELF\shape_aspect_relationship.relating_shape_aspect :<>: - SELF\shape_aspect_relationship.related_shape_aspect; - END_ENTITY; -(* USED FROM (Layered_interconnect_module_design_mim); *) - ENTITY derived_stratum - SUBTYPE OF (stratum); - END_ENTITY; -(* USED FROM (Layered_interconnect_module_design_mim); *) - ENTITY design_layer_stratum - SUBTYPE OF (stratum); - END_ENTITY; -(* USED FROM (Layered_interconnect_module_design_mim); *) - ENTITY dielectric_material_passage - SUBTYPE OF (inter_stratum_feature); - END_ENTITY; -(* USED FROM (Layered_interconnect_module_design_mim); *) - ENTITY documentation_layer_stratum - SUBTYPE OF (stratum); - END_ENTITY; -(* USED FROM (Layered_interconnect_module_design_mim); *) - ENTITY electrical_isolation_laminate_component - SUBTYPE OF (material_removal_laminate_component); - END_ENTITY; -(* USED FROM (Layered_interconnect_module_design_mim); *) - ENTITY fiducial - SUBTYPE OF (laminate_component); - END_ENTITY; -(* USED FROM (Layered_interconnect_module_design_mim); *) - ENTITY fiducial_stratum_feature - SUBTYPE OF (stratum_feature); - END_ENTITY; -(* USED FROM (Layered_interconnect_module_design_mim); *) - ENTITY filled_via - SUBTYPE OF (via); - END_ENTITY; -(* USED FROM (Layered_interconnect_module_design_mim); *) - ENTITY footprint_occurrence - SUBTYPE OF (structured_layout_component); - END_ENTITY; -(* USED FROM (Layered_interconnect_module_design_mim); *) - ENTITY footprint_occurrence_product_definition_relationship - SUBTYPE OF (structured_layout_component_sub_assembly_relationship); - END_ENTITY; -(* USED FROM (Layered_interconnect_module_design_mim); *) - ENTITY inter_stratum_feature - SUPERTYPE OF (ONEOF ( - CUTOUT, - INTERCONNECT_MODULE_EDGE) ) - SUBTYPE OF (laminate_component); - END_ENTITY; -(* USED FROM (Layered_interconnect_module_design_mim); *) - ENTITY interconnect_module_design_view - SUPERTYPE OF ( - LAYERED_INTERCONNECT_MODULE_DESIGN_VIEW) - SUBTYPE OF (physical_unit); - END_ENTITY; -(* USED FROM (Layered_interconnect_module_design_mim); *) - ENTITY interconnect_module_edge - SUPERTYPE OF (ONEOF ( - PARTIALLY_PLATED_INTERCONNECT_MODULE_EDGE, - PLATED_INTERCONNECT_MODULE_EDGE)) - SUBTYPE OF (inter_stratum_feature); - END_ENTITY; -(* USED FROM (Layered_interconnect_module_design_mim); *) - ENTITY interconnect_module_edge_segment - SUPERTYPE OF (ONEOF ( - PLATED_INTERCONNECT_MODULE_EDGE_SEGMENT, - UNPLATED_INTERCONNECT_MODULE_EDGE_SEGMENT)) - SUBTYPE OF (inter_stratum_feature,shape_aspect_relationship); - SELF\shape_aspect_relationship.relating_shape_aspect : edge_segment_vertex; - SELF\shape_aspect_relationship.related_shape_aspect : edge_segment_vertex; - WHERE - WR1: SELF\shape_aspect_relationship.relating_shape_aspect :<>: - SELF\shape_aspect_relationship.related_shape_aspect; - END_ENTITY; -(* USED FROM (Layered_interconnect_module_design_mim); *) - ENTITY interconnect_module_macro_terminal - SUBTYPE OF (interconnect_module_terminal); - END_ENTITY; -(* USED FROM (Layered_interconnect_module_design_mim); *) - ENTITY interface_access_component_definition - SUBTYPE OF (laminate_component); - END_ENTITY; -(* USED FROM (Layered_interconnect_module_design_mim); *) - ENTITY interface_access_material_removal_laminate_component - SUBTYPE OF (material_removal_laminate_component); - END_ENTITY; -(* USED FROM (Layered_interconnect_module_design_mim); *) - ENTITY interface_access_stratum_feature_template_component - SUBTYPE OF (stratum_feature_template_component); - END_ENTITY; -(* USED FROM (Layered_interconnect_module_design_mim); *) - ENTITY internal_probe_access_area - SUBTYPE OF (probe_access_area); - END_ENTITY; -(* USED FROM (Layered_interconnect_module_design_mim); *) - ENTITY join_shape_aspect - SUBTYPE OF (shape_aspect); - END_ENTITY; -(* USED FROM (Layered_interconnect_module_design_mim); *) - ENTITY laminate_component - SUPERTYPE OF (ONEOF ( - MATERIAL_REMOVAL_LAMINATE_COMPONENT, - STRATUM_FEATURE_TEMPLATE_COMPONENT - ANDOR - PROBE_ACCESS_AREA, - INTER_STRATUM_FEATURE, - GENERIC_LAMINATE_TEXT_COMPONENT, - LAMINATE_TEXT_STRING_COMPONENT) - ANDOR - FIDUCIAL) - SUBTYPE OF (assembly_component); - END_ENTITY; -(* USED FROM (Layered_interconnect_module_design_mim); *) - ENTITY laminate_component_feature - SUPERTYPE OF (ONEOF ( - LAMINATE_COMPONENT_INTERFACE_TERMINAL, - LAMINATE_COMPONENT_JOIN_TERMINAL)) - SUBTYPE OF (component_feature); - END_ENTITY; -(* USED FROM (Layered_interconnect_module_design_mim); *) - ENTITY laminate_component_interface_terminal - SUBTYPE OF (laminate_component_feature); - END_ENTITY; -(* USED FROM (Layered_interconnect_module_design_mim); *) - ENTITY laminate_component_join_terminal - SUBTYPE OF (laminate_component_feature, - component_terminal); - END_ENTITY; -(* USED FROM (Layered_interconnect_module_design_mim); *) - ENTITY laminate_group_component_make_from_relationship - SUBTYPE OF (make_from_usage_option); - SELF\product_definition_relationship.relating_product_definition : assembly_group_component; - SELF\product_definition_relationship.related_product_definition : assembly_group_component; - END_ENTITY; -(* USED FROM (Layered_interconnect_module_design_mim); *) - ENTITY generic_laminate_text_component - ABSTRACT SUPERTYPE OF (ONEOF ( - ADDITIVE_LAMINATE_TEXT_COMPONENT, - MATERIAL_REMOVAL_LAMINATE_TEXT_COMPONENT)) - SUBTYPE OF (laminate_component); - END_ENTITY; -(* USED FROM (Layered_interconnect_module_design_mim); *) - ENTITY laminate_text_string_component - SUBTYPE OF (array_placement_group, laminate_component); - END_ENTITY; -(* USED FROM (Layered_interconnect_module_design_mim); *) - ENTITY layer_connection_point - SUBTYPE OF (shape_aspect); - UNIQUE - UR1: SELF\shape_aspect.name, SELF\shape_aspect.of_shape; - END_ENTITY; -(* USED FROM (Layered_interconnect_module_design_mim); *) - ENTITY layout_junction - SUBTYPE OF (shape_aspect); - END_ENTITY; -(* USED FROM (Layered_interconnect_module_design_mim); *) - ENTITY layer_stack_region - SUBTYPE OF (instanced_feature); - END_ENTITY; -(* USED FROM (Layered_interconnect_module_design_mim); *) - ENTITY layered_interconnect_module_design_view - SUPERTYPE OF ( - LAYERED_INTERCONNECT_PANEL_DESIGN_VIEW) - SUBTYPE OF (interconnect_module_design_view); - END_ENTITY; -(* USED FROM (Layered_interconnect_module_design_mim); *) - ENTITY layered_interconnect_panel_design_view - SUBTYPE OF (layered_interconnect_module_design_view); - END_ENTITY; -(* USED FROM (Layered_interconnect_module_design_mim); *) - ENTITY material_removal_laminate_component - SUBTYPE OF (laminate_component); - END_ENTITY; -(* USED FROM (Layered_interconnect_module_design_mim); *) - ENTITY material_removal_structured_component - SUBTYPE OF (structured_layout_component); - END_ENTITY; -(* USED FROM (Layered_interconnect_module_design_mim); *) - ENTITY multi_layer_component_definition - SUBTYPE OF (laminate_component); - END_ENTITY; -(* USED FROM (Layered_interconnect_module_design_mim); *) - ENTITY multi_layer_material_removal_laminate_component - SUBTYPE OF (material_removal_laminate_component); - END_ENTITY; -(* USED FROM (Layered_interconnect_module_design_mim); *) - ENTITY multi_layer_stratum_feature_template_component - SUBTYPE OF (stratum_feature_template_component); - END_ENTITY; -(* USED FROM (Layered_interconnect_module_design_mim); *) - ENTITY multi_stratum_special_symbol_component - SUBTYPE OF (structured_layout_component); - END_ENTITY; -(* USED FROM (Layered_interconnect_module_design_mim); *) - ENTITY material_removal_laminate_text_component - SUBTYPE OF (generic_laminate_text_component); - END_ENTITY; -(* USED FROM (Layered_interconnect_module_design_mim); *) - ENTITY padstack_occurrence - SUBTYPE OF (structured_layout_component); - END_ENTITY; -(* USED FROM (Layered_interconnect_module_design_mim); *) - ENTITY padstack_occurrence_product_definition_relationship - SUBTYPE OF (property_definition, next_assembly_usage_occurrence_relationship); - WHERE - WR1: SELF\product_definition_relationship.related_product_definition :<>: - SELF\product_definition_relationship.relating_product_definition; - END_ENTITY; -(* USED FROM (Layered_interconnect_module_design_mim); *) - ENTITY partially_plated_cutout - SUBTYPE OF (cutout); - END_ENTITY; -(* USED FROM (Layered_interconnect_module_design_mim); *) - ENTITY partially_plated_interconnect_module_edge - SUBTYPE OF (interconnect_module_edge); - END_ENTITY; -(* USED FROM (Layered_interconnect_module_design_mim); *) - ENTITY physical_connectivity_interrupting_cutout - SUBTYPE OF (cutout); - END_ENTITY; -(* USED FROM (Layered_interconnect_module_design_mim); *) - ENTITY physical_network - SUBTYPE OF (shape_aspect); - END_ENTITY; -(* USED FROM (Layered_interconnect_module_design_mim); *) - ENTITY physical_network_group - ABSTRACT SUPERTYPE OF (ONEOF ( - PRE_DEFINED_PHYSICAL_NETWORK_GROUP, - EXTERNALLY_DEFINED_PHYSICAL_NETWORK_GROUP)) - SUBTYPE OF (group); - END_ENTITY; -(* USED FROM (Layered_interconnect_module_design_mim); *) - ENTITY pre_defined_physical_network_group - SUBTYPE OF (physical_network_group); - END_ENTITY; -(* USED FROM (Layered_interconnect_module_design_mim); *) - ENTITY externally_defined_physical_network_group - SUBTYPE OF (physical_network_group); - END_ENTITY; -(* USED FROM (Layered_interconnect_module_design_mim); *) - ENTITY physical_network_group_element_relationship - ABSTRACT SUPERTYPE OF (ONEOF ( - PRE_DEFINED_PHYSICAL_NETWORK_GROUP_ELEMENT_RELATIONSHIP, - EXTERNALLY_DEFINED_PHYSICAL_NETWORK_GROUP_ELEMENT_RELATIONSHIP)) - SUBTYPE OF (group_relationship); - END_ENTITY; -(* USED FROM (Layered_interconnect_module_design_mim); *) - ENTITY pre_defined_physical_network_group_element_relationship - SUBTYPE OF (physical_network_group_element_relationship); - END_ENTITY; -(* USED FROM (Layered_interconnect_module_design_mim); *) - ENTITY externally_defined_physical_network_group_element_relationship - SUBTYPE OF (physical_network_group_element_relationship); - END_ENTITY; -(* USED FROM (Layered_interconnect_module_design_mim); *) - ENTITY physical_network_supporting_inter_stratum_feature - SUBTYPE OF (plated_inter_stratum_feature); - END_ENTITY; -(* USED FROM (Layered_interconnect_module_design_mim); *) - ENTITY plated_cutout - SUBTYPE OF (cutout, plated_inter_stratum_feature); - END_ENTITY; -(* USED FROM (Layered_interconnect_module_design_mim); *) - ENTITY plated_cutout_edge_segment - SUBTYPE OF (cutout_edge_segment,plated_inter_stratum_feature); - END_ENTITY; -(* USED FROM (Layered_interconnect_module_design_mim); *) - ENTITY plated_interconnect_module_edge - SUBTYPE OF (interconnect_module_edge, plated_inter_stratum_feature); - END_ENTITY; -(* USED FROM (Layered_interconnect_module_design_mim); *) - ENTITY plated_interconnect_module_edge_segment - SUBTYPE OF (interconnect_module_edge_segment, - plated_inter_stratum_feature); - END_ENTITY; -(* USED FROM (Layered_interconnect_module_design_mim); *) - ENTITY plated_inter_stratum_feature - SUPERTYPE OF (ONEOF ( - PLATED_CUTOUT_EDGE_SEGMENT, - PLATED_INTERCONNECT_MODULE_EDGE_SEGMENT, - PLATED_PASSAGE)) - SUBTYPE OF (inter_stratum_feature); - END_ENTITY; -(* USED FROM (Layered_interconnect_module_design_mim); *) - ENTITY plated_passage - SUPERTYPE OF (ONEOF ( - COMPONENT_TERMINATION_PASSAGE, - VIA)) - SUBTYPE OF (plated_inter_stratum_feature); - END_ENTITY; -(* USED FROM (Layered_interconnect_module_design_mim); *) - ENTITY primary_stratum_indicator_symbol - SUBTYPE OF (single_stratum_special_symbol_component); - END_ENTITY; -(* USED FROM (Layered_interconnect_module_design_mim); *) - ENTITY probe_access_area - SUBTYPE OF (laminate_component, shape_aspect); - DERIVE - SELF\shape_aspect.of_shape : probe_access_area := SELF; - END_ENTITY; -(* USED FROM (Layered_interconnect_module_design_mim); *) - ENTITY region_based_derived_pattern - SUBTYPE OF (shape_aspect); - END_ENTITY; -(* USED FROM (Layered_interconnect_module_design_mim); *) - ENTITY single_stratum_special_symbol_component - SUPERTYPE OF ( - PRIMARY_STRATUM_INDICATOR_SYMBOL) - SUBTYPE OF (structured_layout_component); - END_ENTITY; -(* USED FROM (Layered_interconnect_module_design_mim); *) - ENTITY stratum - SUPERTYPE OF (ONEOF ( - DOCUMENTATION_LAYER_STRATUM, - DESIGN_LAYER_STRATUM)) - SUBTYPE OF (product_definition, product_definition_shape); - DERIVE - SELF\property_definition.definition : stratum := SELF; - UNIQUE - UR1: SELF\product_definition.id, SELF\product_definition.formation; - WHERE - WR1: SIZEOF (USEDIN (SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' +'NAME_ATTRIBUTE.NAMED_ITEM')) = 0; - WR2: NOT EXISTS(SELF\property_definition.description); - END_ENTITY; -(* USED FROM (Layered_interconnect_module_design_mim); *) - ENTITY stratum_feature - SUPERTYPE OF ( - FIDUCIAL_STRATUM_FEATURE) - SUBTYPE OF (shape_aspect); - END_ENTITY; -(* USED FROM (Layered_interconnect_module_design_mim); *) - ENTITY stratum_feature_based_derived_pattern - SUBTYPE OF(characterized_object, property_definition_relationship); - END_ENTITY; -(* USED FROM (Layered_interconnect_module_design_mim); *) - ENTITY stratum_feature_conductive_join - SUBTYPE OF (product_definition_relationship); - END_ENTITY; -(* USED FROM (Layered_interconnect_module_design_mim); *) - ENTITY stratum_feature_template_component - SUPERTYPE OF ( ( ONEOF ( - AREA_COMPONENT, - CONDUCTIVE_INTERCONNECT_ELEMENT) )ANDOR( (ONEOF ( - AREA_COMPONENT, - CONDUCTIVE_INTERCONNECT_ELEMENT, - LAND)) ) ) - SUBTYPE OF (laminate_component); - END_ENTITY; -(* USED FROM (Layered_interconnect_module_design_mim); *) - ENTITY stratum_feature_template_component_with_stratum_feature - SUBTYPE OF (stratum_feature_template_component, stratum_feature, shape_aspect_relationship); - DERIVE - SELF\shape_aspect_relationship.related_shape_aspect : stratum_feature_template_component_with_stratum_feature := SELF; - SELF\shape_aspect_relationship.relating_shape_aspect : stratum_feature_template_component_with_stratum_feature := SELF; - WHERE - WR1: SELF\shape_aspect_relationship.name = 'implementation'; - END_ENTITY; -(* USED FROM (Layered_interconnect_module_design_mim); *) - ENTITY stratum_surface - SUBTYPE OF (shape_aspect); - END_ENTITY; -(* USED FROM (Layered_interconnect_module_design_mim); *) - ENTITY structured_layout_component - ABSTRACT SUPERTYPE OF ( ( ONEOF ( - FOOTPRINT_OCCURRENCE, - MATERIAL_REMOVAL_STRUCTURED_COMPONENT, - MULTI_STRATUM_SPECIAL_SYMBOL_COMPONENT, - PADSTACK_OCCURRENCE, - SINGLE_STRATUM_SPECIAL_SYMBOL_COMPONENT) )ANDOR( (ONEOF ( - FOOTPRINT_OCCURRENCE, - MATERIAL_REMOVAL_STRUCTURED_COMPONENT, - MULTI_STRATUM_PRINTED_COMPONENT, - MULTI_STRATUM_SPECIAL_SYMBOL_COMPONENT, - PADSTACK_OCCURRENCE, - SINGLE_STRATUM_PRINTED_COMPONENT, - SINGLE_STRATUM_SPECIAL_SYMBOL_COMPONENT)) ) ) - SUBTYPE OF (assembly_group_component); - END_ENTITY; -(* USED FROM (Layered_interconnect_module_design_mim); *) - ENTITY structured_layout_component_sub_assembly_relationship - SUPERTYPE OF ( - FOOTPRINT_OCCURRENCE_PRODUCT_DEFINITION_RELATIONSHIP) - SUBTYPE OF (next_assembly_usage_occurrence_relationship); - WHERE - WR1: SELF\product_definition_relationship.related_product_definition :<>: - SELF\product_definition_relationship.relating_product_definition; - END_ENTITY; -(* USED FROM (Layered_interconnect_module_design_mim); *) - ENTITY structured_layout_component_sub_assembly_relationship_with_component - SUBTYPE OF (structured_layout_component_sub_assembly_relationship, assembly_component); - DERIVE - SELF\product_definition_relationship.related_product_definition : assembly_component := SELF; - END_ENTITY; -(* USED FROM (Layered_interconnect_module_design_mim); *) - ENTITY unplated_cutout_edge_segment - SUBTYPE OF (cutout_edge_segment); - END_ENTITY; -(* USED FROM (Layered_interconnect_module_design_mim); *) - ENTITY unplated_interconnect_module_edge_segment - SUBTYPE OF (interconnect_module_edge_segment); - END_ENTITY; -(* USED FROM (Layered_interconnect_module_design_mim); *) - ENTITY unrouted_conductive_interconnect_element - SUBTYPE OF (conductive_interconnect_element); - END_ENTITY; -(* USED FROM (Layered_interconnect_module_design_mim); *) - ENTITY unsupported_passage - SUBTYPE OF (inter_stratum_feature); - END_ENTITY; -(* USED FROM (Layered_interconnect_module_design_mim); *) - ENTITY via - ABSTRACT SUPERTYPE OF ( ( - FILLED_VIA )ANDOR( (ONEOF ( - BLIND_VIA, - BURIED_VIA, - INTERFACIAL_CONNECTION)) ) ) - SUBTYPE OF (plated_passage); - END_ENTITY; -(* USED FROM (Functional_usage_view_mim); *) - ENTITY functional_terminal_group - SUBTYPE OF (group); - UNIQUE - UR1: SELF\group.name; - END_ENTITY; -(* USED FROM (Functional_usage_view_mim); *) - ENTITY functional_unit - SUBTYPE OF (product_definition, product_definition_shape); - DERIVE - SELF\property_definition.definition : functional_unit := SELF; - WHERE - WR1: SIZEOF (USEDIN (SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' +'NAME_ATTRIBUTE.NAMED_ITEM')) = 0; - WR2: NOT EXISTS(SELF\property_definition.description); - END_ENTITY; -(* USED FROM (Functional_usage_view_mim); *) - ENTITY functional_unit_terminal_definition - SUBTYPE OF (shape_aspect); - SELF\shape_aspect.of_shape : functional_unit; - UNIQUE - UR1: SELF\shape_aspect.name, of_shape; - WHERE - WR1: SELF\shape_aspect.product_definitional = FALSE; - END_ENTITY; -(* USED FROM (Functional_usage_view_mim); *) - ENTITY make_from_functional_unit_terminal_definition_relationship - SUBTYPE OF (shape_aspect, shape_aspect_relationship); - UNIQUE - UR1: SELF\shape_aspect_relationship.relating_shape_aspect, - SELF\shape_aspect_relationship.related_shape_aspect; - WHERE - WR1: relating_shape_aspect.of_shape :<>: - related_shape_aspect.of_shape; - WR2: SELF\shape_aspect.product_definitional = FALSE; - END_ENTITY; -(* USED FROM (Functional_usage_view_mim); *) - ENTITY scalar_terminal_definition_link - SUBTYPE OF (shape_aspect,shape_aspect_relationship); - SELF\shape_aspect_relationship.relating_shape_aspect : functional_unit_terminal_definition; - UNIQUE - UR1: related_shape_aspect, relating_shape_aspect; - WHERE - WR1: SELF\shape_aspect_relationship.related_shape_aspect :<>: - SELF\shape_aspect_relationship.relating_shape_aspect; - END_ENTITY; -(* USED FROM (Assembly_module_with_interconnect_component_mim); *) -ENTITY interconnect_module_component - SUBTYPE OF (physical_component); -END_ENTITY; -(* USED FROM (Assembly_module_with_interconnect_component_mim); *) -ENTITY interconnect_module_component_surface_feature - SUBTYPE OF (physical_component_feature); -END_ENTITY; -(* USED FROM (Assembly_module_design_mim); *) -ENTITY assembly_module_design_view - SUPERTYPE OF (ONEOF ( - LAYERED_ASSEMBLY_PANEL_DESIGN_VIEW, - LAYERED_ASSEMBLY_MODULE_DESIGN_VIEW)) - SUBTYPE OF (physical_unit); -END_ENTITY; -(* USED FROM (Assembly_module_design_mim); *) -ENTITY bare_die_component - SUBTYPE OF (physical_component); -END_ENTITY; -(* USED FROM (Assembly_module_design_mim); *) -ENTITY component_mounting_feature - SUBTYPE OF (physical_component_feature); -END_ENTITY; -(* USED FROM (Assembly_module_design_mim); *) -ENTITY layered_assembly_panel_design_view - SUBTYPE OF (assembly_module_design_view); -END_ENTITY; -(* USED FROM (Assembly_module_design_mim); *) -ENTITY packaged_component - SUBTYPE OF (physical_component); -END_ENTITY; -(* USED FROM (Assembly_module_design_mim); *) -ENTITY layered_assembly_module_design_view - SUBTYPE OF (assembly_module_design_view); -END_ENTITY; -(* USED FROM (Assembly_module_design_mim); *) -ENTITY routed_interconnect_component - SUBTYPE OF (item_identified_representation_usage, physical_component); -END_ENTITY; -(* USED FROM (Assembly_module_design_mim); *) -ENTITY routed_physical_component - SUBTYPE OF (item_identified_representation_usage, physical_component); -END_ENTITY; -(* USED FROM (Assembly_module_usage_view_mim); *) -ENTITY assembly_module_interface_terminal - SUBTYPE OF (assembly_module_terminal); -END_ENTITY; -(* USED FROM (Assembly_module_usage_view_mim); *) -ENTITY assembly_module_terminal - SUPERTYPE OF ( ( - ASSEMBLY_MODULE_INTERFACE_TERMINAL )ANDOR( (ONEOF ( - ASSEMBLY_MODULE_INTERFACE_TERMINAL, - ASSEMBLY_MODULE_MACRO_TERMINAL)) ) ) - SUBTYPE OF (shape_aspect); -END_ENTITY; -(* USED FROM (Assembly_module_usage_view_mim); *) -ENTITY assembly_module_usage_view - SUPERTYPE OF ( - LAYERED_ASSEMBLY_MODULE_USAGE_VIEW) - SUBTYPE OF (physical_unit); -END_ENTITY; -(* USED FROM (Assembly_module_usage_view_mim); *) -ENTITY layered_assembly_module_usage_view - SUBTYPE OF (assembly_module_usage_view); -END_ENTITY; -(* USED FROM (Bare_die_mim); *) -ENTITY bare_die - SUBTYPE OF (physical_unit); -END_ENTITY; -(* USED FROM (Bare_die_mim); *) -ENTITY bare_die_bottom_surface - SUBTYPE OF (bare_die_surface); -END_ENTITY; -(* USED FROM (Bare_die_mim); *) -ENTITY bare_die_edge_segment_surface - SUBTYPE OF (shape_aspect, shape_aspect_relationship); - SELF\shape_aspect_relationship.relating_shape_aspect : edge_segment_vertex; - SELF\shape_aspect_relationship.related_shape_aspect : edge_segment_vertex; -WHERE - WR1: SELF\shape_aspect_relationship.relating_shape_aspect :<>: - SELF\shape_aspect_relationship.related_shape_aspect; -END_ENTITY; -(* USED FROM (Bare_die_mim); *) -ENTITY bare_die_edge_surface - SUBTYPE OF (bare_die_surface); -WHERE - WR1: SELF\shape_aspect.product_definitional; - WR2: SIZEOF(TYPEOF(SELF) - TYPEOF(SELF\shape_aspect || - SELF\part_mounting_feature || - SELF\bare_die_edge_surface || - SELF\bare_die_surface)) = 0; -END_ENTITY; -(* USED FROM (Bare_die_mim); *) -ENTITY bare_die_surface - ABSTRACT SUPERTYPE OF (ONEOF ( - BARE_DIE_BOTTOM_SURFACE, - BARE_DIE_TOP_SURFACE, - BARE_DIE_EDGE_SURFACE)) - - SUBTYPE OF (part_mounting_feature); - SELF\shape_aspect.of_shape : bare_die; - WHERE - WR1: SELF\shape_aspect.product_definitional; -END_ENTITY; -(* USED FROM (Bare_die_mim); *) -ENTITY bare_die_terminal - SUBTYPE OF (minimally_defined_bare_die_terminal, placed_feature); -END_ENTITY; -(* USED FROM (Bare_die_mim); *) -ENTITY bare_die_template_terminal - SUBTYPE OF (part_feature_template_definition, shape_aspect); -END_ENTITY; -(* USED FROM (Bare_die_mim); *) -ENTITY bare_die_top_surface - SUBTYPE OF (bare_die_surface); -WHERE - WR1: SELF\shape_aspect.product_definitional; - WR2: SIZEOF(TYPEOF(SELF) - TYPEOF(SELF\shape_aspect || - SELF\part_mounting_feature || - SELF\bare_die_top_surface || - SELF\bare_die_surface)) = 0; -END_ENTITY; -(* USED FROM (Bare_die_mim); *) -ENTITY minimally_defined_bare_die_terminal - SUPERTYPE OF ( - BARE_DIE_TERMINAL) - SUBTYPE OF (shape_aspect); - SELF\shape_aspect.of_shape : bare_die; -END_ENTITY; -(* USED FROM (Physical_component_feature_mim); *) - ENTITY physical_component_feature - SUPERTYPE OF ((ONEOF ( - PHYSICAL_COMPONENT_TERMINAL, - PHYSICAL_COMPONENT_INTERFACE_TERMINAL)) ) - SUBTYPE OF (component_feature); - END_ENTITY; -(* USED FROM (Physical_component_feature_mim); *) - ENTITY physical_component_terminal - SUPERTYPE OF ((ONEOF ( - ASSEMBLY_MODULE_MACRO_COMPONENT_JOIN_TERMINAL, - INTERCONNECT_MODULE_MACRO_COMPONENT_JOIN_TERMINAL)) ) - SUBTYPE OF (component_terminal, - physical_component_feature); - END_ENTITY; -(* USED FROM (Layered_interconnect_simple_template_mim); *) -ENTITY blind_passage_template - SUBTYPE OF (unsupported_passage_template); -END_ENTITY; -(* USED FROM (Layered_interconnect_simple_template_mim); *) -ENTITY component_termination_passage_template - SUBTYPE OF (continuous_template, inter_stratum_feature_template); -END_ENTITY; -(* USED FROM (Layered_interconnect_simple_template_mim); *) -ENTITY continuous_template - SUBTYPE OF (geometric_template); -END_ENTITY; -(* USED FROM (Layered_interconnect_simple_template_mim); *) -ENTITY counterbore_passage_template - SUBTYPE OF (unsupported_passage_template); -END_ENTITY; -(* USED FROM (Layered_interconnect_simple_template_mim); *) -ENTITY countersunk_passage_template - SUBTYPE OF (unsupported_passage_template); -END_ENTITY; -(* USED FROM (Layered_interconnect_simple_template_mim); *) -ENTITY default_attachment_size_based_land_physical_template - SUBTYPE OF (land_physical_template, shape_aspect); - DERIVE - SELF\shape_aspect.of_shape : default_attachment_size_based_land_physical_template := SELF; -END_ENTITY; -(* USED FROM (Layered_interconnect_simple_template_mim); *) -ENTITY default_passage_based_land_physical_template - ABSTRACT SUPERTYPE OF (ONEOF ( - DEFAULT_PLATED_PASSAGE_BASED_LAND_PHYSICAL_TEMPLATE, - DEFAULT_UNSUPPORTED_PASSAGE_BASED_LAND_PHYSICAL_TEMPLATE)) - SUBTYPE OF (land_physical_template); -END_ENTITY; -(* USED FROM (Layered_interconnect_simple_template_mim); *) -ENTITY default_plated_passage_based_land_physical_template - SUBTYPE OF (default_passage_based_land_physical_template); -END_ENTITY; -(* USED FROM (Layered_interconnect_simple_template_mim); *) -ENTITY default_trace_template - SUBTYPE OF (trace_template); -END_ENTITY; -(* USED FROM (Layered_interconnect_simple_template_mim); *) -ENTITY default_unsupported_passage_based_land_physical_template - SUBTYPE OF (default_passage_based_land_physical_template); -END_ENTITY; -(* USED FROM (Layered_interconnect_simple_template_mim); *) -ENTITY electrical_isolation_removal_template - SUBTYPE OF (material_removal_feature_template); -END_ENTITY; -(* USED FROM (Layered_interconnect_simple_template_mim); *) -ENTITY inter_stratum_feature_edge_segment_template - SUBTYPE OF (part_template_definition,shape_aspect_relationship); - SELF\shape_aspect_relationship.relating_shape_aspect : edge_segment_vertex; - SELF\shape_aspect_relationship.related_shape_aspect : edge_segment_vertex; -WHERE - WR1: SELF\shape_aspect_relationship.relating_shape_aspect :<>: - SELF\shape_aspect_relationship.related_shape_aspect; -END_ENTITY; -(* USED FROM (Layered_interconnect_simple_template_mim); *) -ENTITY inter_stratum_feature_edge_template - SUBTYPE OF (part_template_definition); -END_ENTITY; -(* USED FROM (Layered_interconnect_simple_template_mim); *) -ENTITY inter_stratum_feature_template - SUPERTYPE OF (ONEOF ( - COMPONENT_TERMINATION_PASSAGE_TEMPLATE, - UNSUPPORTED_PASSAGE_TEMPLATE, - VIA_TEMPLATE)) - SUBTYPE OF (geometric_template); -END_ENTITY; -(* USED FROM (Layered_interconnect_simple_template_mim); *) -ENTITY fill_area_template - SUBTYPE OF (parametric_template); -END_ENTITY; -(* USED FROM (Layered_interconnect_simple_template_mim); *) -ENTITY hatch_area_template - SUBTYPE OF (fill_area_template); -END_ENTITY; -(* USED FROM (Layered_interconnect_simple_template_mim); *) -ENTITY hatch_line_element - SUBTYPE OF (geometric_representation_item, representation_item_relationship); - SELF\representation_item_relationship.relating_representation_item : line; - SELF\representation_item_relationship.related_representation_item : measure_representation_item; -END_ENTITY; -(* USED FROM (Layered_interconnect_simple_template_mim); *) -ENTITY land_physical_template - SUPERTYPE OF (ONEOF ( - DEFAULT_PASSAGE_BASED_LAND_PHYSICAL_TEMPLATE, - DEFAULT_ATTACHMENT_SIZE_BASED_LAND_PHYSICAL_TEMPLATE)) - SUBTYPE OF (stratum_feature_template); -END_ENTITY; -(* USED FROM (Layered_interconnect_simple_template_mim); *) -ENTITY land_template_terminal - SUBTYPE OF (shape_aspect); -END_ENTITY; -(* USED FROM (Layered_interconnect_simple_template_mim); *) -ENTITY material_removal_feature_template - SUBTYPE OF (single_stratum_continuous_template); -END_ENTITY; -(* USED FROM (Layered_interconnect_simple_template_mim); *) -ENTITY parametric_template - ABSTRACT SUPERTYPE OF (ONEOF ( - FILL_AREA_TEMPLATE, - TEARDROP_TEMPLATE, - TRACE_TEMPLATE)) - SUBTYPE OF (part_template_definition); -END_ENTITY; -(* USED FROM (Layered_interconnect_simple_template_mim); *) -ENTITY part_string_template - SUBTYPE OF (part_template_definition); -END_ENTITY; -(* USED FROM (Layered_interconnect_simple_template_mim); *) -ENTITY part_text_template - SUBTYPE OF (part_template_definition); -END_ENTITY; -(* USED FROM (Layered_interconnect_simple_template_mim); *) -ENTITY planar_path_shape_representation_with_parameters - SUBTYPE OF (single_area_csg_2d_shape_representation); -END_ENTITY; -(* USED FROM (Layered_interconnect_simple_template_mim); *) -ENTITY planar_closed_path_shape_representation_with_parameters - SUBTYPE OF (planar_path_shape_representation_with_parameters); -END_ENTITY; -(* USED FROM (Layered_interconnect_simple_template_mim); *) -ENTITY single_stratum_continuous_template - ABSTRACT SUPERTYPE OF (ONEOF ( - STRATUM_FEATURE_TEMPLATE, - MATERIAL_REMOVAL_FEATURE_TEMPLATE)) - SUBTYPE OF (continuous_template, single_stratum_template); -END_ENTITY; -(* USED FROM (Layered_interconnect_simple_template_mim); *) -ENTITY single_stratum_template - ABSTRACT SUPERTYPE OF ( - SINGLE_STRATUM_CONTINUOUS_TEMPLATE) - SUBTYPE OF (part_template_definition); -END_ENTITY; -(* USED FROM (Layered_interconnect_simple_template_mim); *) -ENTITY solid_character_glyph_2d_symbol - SUBTYPE OF (generic_character_glyph_symbol, csg_2d_shape_representation); -END_ENTITY; -(* USED FROM (Layered_interconnect_simple_template_mim); *) -ENTITY snowball_template - SUBTYPE OF (teardrop_template); -END_ENTITY; -(* USED FROM (Layered_interconnect_simple_template_mim); *) -ENTITY stratum_feature_template - SUBTYPE OF (single_stratum_continuous_template); -END_ENTITY; -(* USED FROM (Layered_interconnect_simple_template_mim); *) -ENTITY teardrop_by_angle_template - SUBTYPE OF (teardrop_template); -END_ENTITY; -(* USED FROM (Layered_interconnect_simple_template_mim); *) -ENTITY teardrop_by_length_template - SUBTYPE OF (teardrop_template); -END_ENTITY; -(* USED FROM (Layered_interconnect_simple_template_mim); *) -ENTITY teardrop_template - ABSTRACT SUPERTYPE OF (ONEOF ( - SNOWBALL_TEMPLATE, - TEARDROP_BY_ANGLE_TEMPLATE, - TEARDROP_BY_LENGTH_TEMPLATE)) - SUBTYPE OF (parametric_template, single_stratum_template); -END_ENTITY; -(* USED FROM (Layered_interconnect_simple_template_mim); *) -ENTITY tile_area_template - SUBTYPE OF (fill_area_template); -END_ENTITY; -(* USED FROM (Layered_interconnect_simple_template_mim); *) -ENTITY trace_template - SUPERTYPE OF ( - DEFAULT_TRACE_TEMPLATE) - SUBTYPE OF (parametric_template); -END_ENTITY; -(* USED FROM (Layered_interconnect_simple_template_mim); *) -ENTITY unsupported_passage_template - SUPERTYPE OF (ONEOF ( - COUNTERBORE_PASSAGE_TEMPLATE, - COUNTERSUNK_PASSAGE_TEMPLATE, - BLIND_PASSAGE_TEMPLATE)) - SUBTYPE OF (continuous_template, inter_stratum_feature_template); -END_ENTITY; -(* USED FROM (Layered_interconnect_simple_template_mim); *) -ENTITY via_template - SUBTYPE OF (continuous_template, inter_stratum_feature_template); -END_ENTITY; -(* USED FROM (Interconnect_module_usage_view_mim); *) -ENTITY interconnect_module_cutout_segment_surface - SUBTYPE OF (shape_aspect, shape_aspect_relationship); - SELF\shape_aspect_relationship.relating_shape_aspect : edge_segment_vertex; - SELF\shape_aspect_relationship.related_shape_aspect : edge_segment_vertex; -WHERE - WR1: SELF\shape_aspect_relationship.relating_shape_aspect :<>: - SELF\shape_aspect_relationship.related_shape_aspect; -END_ENTITY; -(* USED FROM (Interconnect_module_usage_view_mim); *) -ENTITY interconnect_module_edge_segment_surface - SUBTYPE OF (shape_aspect, shape_aspect_relationship); - SELF\shape_aspect_relationship.relating_shape_aspect : edge_segment_vertex; - SELF\shape_aspect_relationship.related_shape_aspect : edge_segment_vertex; -WHERE - WR1: SELF\shape_aspect_relationship.relating_shape_aspect :<>: - SELF\shape_aspect_relationship.related_shape_aspect; -END_ENTITY; -(* USED FROM (Interconnect_module_usage_view_mim); *) -ENTITY interconnect_module_interface_terminal - SUBTYPE OF (interconnect_module_terminal); -END_ENTITY; -(* USED FROM (Interconnect_module_usage_view_mim); *) -ENTITY interconnect_module_terminal - SUPERTYPE OF ( ( - INTERCONNECT_MODULE_INTERFACE_TERMINAL )ANDOR( (ONEOF ( - INTERCONNECT_MODULE_INTERFACE_TERMINAL, - INTERCONNECT_MODULE_MACRO_TERMINAL)) ) ) - SUBTYPE OF (shape_aspect); -END_ENTITY; -(* USED FROM (Interconnect_module_usage_view_mim); *) -ENTITY interconnect_module_usage_view - SUPERTYPE OF ( - LAYERED_INTERCONNECT_MODULE_USAGE_VIEW) - SUBTYPE OF (physical_unit); -END_ENTITY; -(* USED FROM (Interconnect_module_usage_view_mim); *) -ENTITY layered_interconnect_module_usage_view - SUBTYPE OF (interconnect_module_usage_view); -END_ENTITY; -(* USED FROM (Interface_component_mim); *) -ENTITY physical_component_interface_terminal - SUBTYPE OF (physical_component_feature); -END_ENTITY; -(* USED FROM (Interface_component_mim); *) -ENTITY interface_component - SUBTYPE OF (physical_component); -END_ENTITY; -(* USED FROM (Fabrication_joint_mim); *) -ENTITY connection_zone_based_fabrication_joint - SUBTYPE OF (fabrication_joint); -END_ENTITY; -(* USED FROM (Fabrication_joint_mim); *) -ENTITY fabrication_joint - SUBTYPE OF (component_feature_joint); -WHERE - WR1: acyclic_shape_aspect_relationship(SELF, - [SELF\shape_aspect_relationship.related_shape_aspect], - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.'+ - 'FABRICATION_JOINT'); -END_ENTITY; -(* USED FROM (Fabrication_joint_mim); *) -ENTITY passage_terminal_based_fabrication_joint_link - SUBTYPE OF (shape_aspect, shape_aspect_relationship); -END_ENTITY; -(* USED FROM (Approval_mim); *) -ENTITY applied_approval_assignment - SUBTYPE OF (approval_assignment); - items : SET[1:?] OF approval_item; -END_ENTITY; -(* USED FROM (approval_schema); *) - ENTITY approval; - status : approval_status; - level : label; - END_ENTITY; -(* USED FROM (approval_schema); *) - ENTITY approval_date_time; - date_time : date_time_select; - dated_approval : approval; - DERIVE - role : object_role := get_role(SELF); - WHERE - WR1: SIZEOF(USEDIN(SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'ROLE_ASSOCIATION.ITEM_WITH_ROLE')) <= 1; - END_ENTITY; -(* USED FROM (approval_schema); *) - ENTITY approval_person_organization; - person_organization : person_organization_select; - authorized_approval : approval; - role : approval_role; - END_ENTITY; -(* USED FROM (approval_schema); *) - ENTITY approval_relationship; - name : label; - description : OPTIONAL text; - relating_approval : approval; - related_approval : approval; - END_ENTITY; -(* USED FROM (approval_schema); *) - ENTITY approval_role; - role : label; - DERIVE - description : text := get_description_value(SELF); - WHERE - WR1: SIZEOF(USEDIN(SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'DESCRIPTION_ATTRIBUTE.DESCRIBED_ITEM')) <= 1; - END_ENTITY; -(* USED FROM (approval_schema); *) - ENTITY approval_status; - name : label; - END_ENTITY; -(* USED FROM (basic_attribute_schema); *) - ENTITY object_role; - name : label; - description : OPTIONAL text; - END_ENTITY; -(* USED FROM (basic_attribute_schema); *) - ENTITY role_association; - role : object_role; - item_with_role : role_select; - END_ENTITY; -(* USED FROM (Date_time_assignment_mim); *) -ENTITY applied_date_and_time_assignment - SUBTYPE OF (date_and_time_assignment); - items : SET [1:?] OF date_and_time_item; -END_ENTITY; -(* USED FROM (Date_time_assignment_mim); *) -ENTITY applied_date_assignment - SUBTYPE OF (date_assignment); - items : SET [1:?] OF date_item; -END_ENTITY; -(* USED FROM (management_resources_schema); *) - ENTITY approval_assignment - ABSTRACT SUPERTYPE; - assigned_approval : approval; - DERIVE - role : object_role := get_role(SELF); - WHERE - WR1: SIZEOF(USEDIN(SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'ROLE_ASSOCIATION.ITEM_WITH_ROLE')) <= 1; - END_ENTITY; -(* USED FROM (action_schema); *) - ENTITY action_resource; - name : label; - description : OPTIONAL text; - usage : SET [1:?] OF supported_item; - kind : action_resource_type; - END_ENTITY; -(* USED FROM (Layered_interconnect_complex_template_mim); *) - ENTITY complex_passage_padstack_definition - SUBTYPE OF (stratum_stack_dependent_template, passage_padstack_definition); - END_ENTITY; -(* USED FROM (Layered_interconnect_complex_template_mim); *) - ENTITY dependent_electrical_isolation_removal_template - SUBTYPE OF (electrical_isolation_removal_template); - END_ENTITY; -(* USED FROM (Layered_interconnect_complex_template_mim); *) - ENTITY dependent_thermal_isolation_removal_template - SUBTYPE OF (thermal_isolation_removal_template); - END_ENTITY; -(* USED FROM (Layered_interconnect_complex_template_mim); *) - ENTITY design_specific_stratum_technology_mapping_relationship - SUBTYPE OF(stratum_technology_mapping_relationship, property_definition); - SELF\property_definition.definition : library_to_design_stack_model_mapping; -- scope : This ATTRIBUTE was RENAMED in the EXPRESS E2 source, an attribute with the new name is in the DERIVE clause - DERIVE - scope : LIBRARY_TO_DESIGN_STACK_MODEL_MAPPING := SELF\property_definition.definition; -- DEFINITION : This ATTRIBUTE was RENAMED in the EXPRESS E2 source, this is the new name implemented as DERIVE - - END_ENTITY; -(* USED FROM (Layered_interconnect_complex_template_mim); *) - ENTITY library_stack_model - SUBTYPE OF(stratum_stack_model); - END_ENTITY; -(* USED FROM (Layered_interconnect_complex_template_mim); *) - ENTITY library_to_design_stack_model_mapping - SUBTYPE OF (product_definition_relationship); - END_ENTITY; -(* USED FROM (Layered_interconnect_complex_template_mim); *) - ENTITY material_removal_structured_template - SUBTYPE OF (single_stratum_structured_template); - END_ENTITY; -(* USED FROM (Layered_interconnect_complex_template_mim); *) - ENTITY multi_stratum_special_symbol_template - SUBTYPE OF (multi_stratum_structured_template, special_symbol_template); - END_ENTITY; -(* USED FROM (Layered_interconnect_complex_template_mim); *) - ENTITY multi_stratum_structured_template - ABSTRACT SUPERTYPE OF ( ( ONEOF ( - PADSTACK_DEFINITION, - MULTI_STRATUM_SPECIAL_SYMBOL_TEMPLATE) - ANDOR - STRATUM_STACK_DEPENDENT_TEMPLATE )ANDOR( (ONEOF ( - PADSTACK_DEFINITION, - GENERIC_FOOTPRINT_DEFINITION, - MULTI_STRATUM_SPECIAL_SYMBOL_TEMPLATE)) ) ) - SUBTYPE OF (structured_template); - END_ENTITY; -(* USED FROM (Layered_interconnect_complex_template_mim); *) - ENTITY padstack_definition - SUPERTYPE OF ( - PASSAGE_PADSTACK_DEFINITION) - SUBTYPE OF (multi_stratum_structured_template); - END_ENTITY; -(* USED FROM (Layered_interconnect_complex_template_mim); *) - ENTITY part_template_keepout_shape_allocation_to_stratum_stack - SUBTYPE OF (characterized_object, property_definition); - DERIVE - SELF\property_definition.definition : part_template_keepout_shape_allocation_to_stratum_stack := SELF; - END_ENTITY; -(* USED FROM (Layered_interconnect_complex_template_mim); *) - ENTITY passage_padstack_definition - SUBTYPE OF (padstack_definition); - END_ENTITY; -(* USED FROM (Layered_interconnect_complex_template_mim); *) - ENTITY physical_unit_keepout_shape_allocation_to_stratum_stack - SUBTYPE OF (representation, representation_relationship); - END_ENTITY; -(* USED FROM (Layered_interconnect_complex_template_mim); *) - ENTITY physical_unit_keepout_shape_allocation_to_stratum_technology - SUBTYPE OF (representation); - END_ENTITY; -(* USED FROM (Layered_interconnect_complex_template_mim); *) - ENTITY single_stratum_special_symbol_template - SUBTYPE OF (single_stratum_structured_template, special_symbol_template); - END_ENTITY; -(* USED FROM (Layered_interconnect_complex_template_mim); *) - ENTITY single_stratum_structured_template - ABSTRACT SUPERTYPE OF (ONEOF ( - MATERIAL_REMOVAL_STRUCTURED_TEMPLATE, - SINGLE_STRATUM_SPECIAL_SYMBOL_TEMPLATE)) - SUBTYPE OF (structured_template, single_stratum_template); - END_ENTITY; -(* USED FROM (Layered_interconnect_complex_template_mim); *) - ENTITY special_symbol_template - ABSTRACT SUPERTYPE OF (ONEOF ( - SINGLE_STRATUM_SPECIAL_SYMBOL_TEMPLATE, - MULTI_STRATUM_SPECIAL_SYMBOL_TEMPLATE)) - SUBTYPE OF (part_template_definition); - END_ENTITY; -(* USED FROM (Layered_interconnect_complex_template_mim); *) - ENTITY stratum_specific_template_location - SUBTYPE OF (assembly_component_usage, property_definition); - END_ENTITY; -(* USED FROM (Layered_interconnect_complex_template_mim); *) - ENTITY stratum_stack_dependent_template - SUBTYPE OF (multi_stratum_structured_template); - END_ENTITY; -(* USED FROM (Layered_interconnect_complex_template_mim); *) - ENTITY structured_inter_stratum_feature_template - SUBTYPE OF (inter_stratum_feature_template, stratum_stack_dependent_template); - END_ENTITY; -(* USED FROM (Layered_interconnect_complex_template_mim); *) - ENTITY structured_template - ABSTRACT SUPERTYPE OF (ONEOF ( - SINGLE_STRATUM_STRUCTURED_TEMPLATE, - MULTI_STRATUM_STRUCTURED_TEMPLATE)) - SUBTYPE OF (geometric_template); - END_ENTITY; -(* USED FROM (Layered_interconnect_complex_template_mim); *) - ENTITY thermal_isolation_removal_template - SUBTYPE OF (material_removal_structured_template); - END_ENTITY; -(* USED FROM (Network_functional_design_view_mim); *) -ENTITY bus_element_link - SUBTYPE OF (product_definition,product_definition_relationship); -UNIQUE - UR1: SELF\product_definition_relationship.related_product_definition, - SELF\product_definition_relationship.relating_product_definition; -WHERE - WR1: SELF\product_definition_relationship.related_product_definition :<>: - SELF\product_definition_relationship.relating_product_definition; -END_ENTITY; -(* USED FROM (Network_functional_design_view_mim); *) -ENTITY bus_structural_definition - SUBTYPE OF (product_definition); -END_ENTITY; -(* USED FROM (Network_functional_design_view_mim); *) -ENTITY component_functional_terminal - SUBTYPE OF (shape_aspect); -END_ENTITY; -(* USED FROM (Network_functional_design_view_mim); *) -ENTITY component_functional_unit - SUBTYPE OF (product_definition); -END_ENTITY; -(* USED FROM (Network_functional_design_view_mim); *) -ENTITY network_node_definition - SUBTYPE OF (product_definition); -END_ENTITY; -(* USED FROM (Fabrication_technology_mim); *) -ENTITY allocated_passage_minimum_annular_ring - SUBTYPE OF (characterized_object); -END_ENTITY; -(* USED FROM (Fabrication_technology_mim); *) -ENTITY copy_stratum_technology_occurrence_relationship - SUBTYPE OF (derived_stratum_technology_occurrence_relationship); -END_ENTITY; -(* USED FROM (Fabrication_technology_mim); *) -ENTITY derived_stratum_technology_occurrence_relationship - ABSTRACT SUPERTYPE OF (ONEOF ( - COPY_STRATUM_TECHNOLOGY_OCCURRENCE_RELATIONSHIP, - INVERSE_COPY_STRATUM_TECHNOLOGY_OCCURRENCE_RELATIONSHIP)) - SUBTYPE OF (stratum_technology_occurrence_relationship); -END_ENTITY; -(* USED FROM (Fabrication_technology_mim); *) -ENTITY design_stack_model - SUBTYPE OF(stratum_stack_model); -END_ENTITY; -(* USED FROM (Fabrication_technology_mim); *) -ENTITY equivalent_stackup_model_definition - SUBTYPE OF (product_definition, product_definition_relationship); - SELF\product_definition_relationship.relating_product_definition : stratum_stack_model; -- primary_stackup_model : This ATTRIBUTE was RENAMED in the EXPRESS E2 source, an attribute with the new name is in the DERIVE clause - SELF\product_definition_relationship.related_product_definition : stratum_stack_model; -- equivalent_stackup_model : This ATTRIBUTE was RENAMED in the EXPRESS E2 source, an attribute with the new name is in the DERIVE clause - DERIVE - equivalent_stackup_model : STRATUM_STACK_MODEL := SELF\product_definition_relationship.related_product_definition; -- RELATED_PRODUCT_DEFINITION : This ATTRIBUTE was RENAMED in the EXPRESS E2 source, this is the new name implemented as DERIVE - primary_stackup_model : STRATUM_STACK_MODEL := SELF\product_definition_relationship.relating_product_definition; -- RELATING_PRODUCT_DEFINITION : This ATTRIBUTE was RENAMED in the EXPRESS E2 source, this is the new name implemented as DERIVE - WHERE - WR1 : primary_stackup_model :<>: equivalent_stackup_model; -END_ENTITY; -(* USED FROM (Fabrication_technology_mim); *) -ENTITY equivalent_sub_stack_definition - SUBTYPE OF (product_definition); -END_ENTITY; -(* USED FROM (Fabrication_technology_mim); *) -ENTITY footprint_library_stratum_technology - SUBTYPE OF (stratum_technology); -END_ENTITY; -(* USED FROM (Fabrication_technology_mim); *) -ENTITY impedance_measurement_setup_requirement - SUBTYPE OF (predefined_requirement_view_definition); -END_ENTITY; -(* USED FROM (Fabrication_technology_mim); *) -ENTITY impedance_requirement - SUBTYPE OF (predefined_requirement_view_definition); -END_ENTITY; -(* USED FROM (Fabrication_technology_mim); *) -ENTITY inverse_copy_stratum_technology_occurrence_relationship - SUBTYPE OF (derived_stratum_technology_occurrence_relationship); -END_ENTITY; -(* USED FROM (Fabrication_technology_mim); *) -ENTITY local_linear_stack - SUBTYPE OF (stratum_sub_stack); -END_ENTITY; -(* USED FROM (Fabrication_technology_mim); *) -ENTITY passage_deposition_material_identification - SUBTYPE OF (material_designation); - SELF\material_designation.definitions : SET [1:?] OF passage_technology; -END_ENTITY; -(* USED FROM (Fabrication_technology_mim); *) -ENTITY passage_filling_material_identification - SUBTYPE OF (material_designation); - SELF\material_designation.definitions : SET [1:?] OF passage_technology; -END_ENTITY; -(* USED FROM (Fabrication_technology_mim); *) -ENTITY passage_technology - SUBTYPE OF (characterized_object, product_definition_shape); - DERIVE - SELF\property_definition.definition : characterized_definition := SELF; -UNIQUE - UR1: SELF\characterized_object.name; -END_ENTITY; -(* USED FROM (Fabrication_technology_mim); *) -ENTITY passage_technology_allocation_to_stack_model - SUBTYPE OF (stratum_sub_stack); -END_ENTITY; -(* USED FROM (Fabrication_technology_mim); *) -ENTITY stratum_sub_stack - ABSTRACT SUPERTYPE OF (ONEOF ( - LOCAL_LINEAR_STACK, - PASSAGE_TECHNOLOGY_ALLOCATION_TO_STACK_MODEL)) - SUBTYPE OF (part_template_definition); -END_ENTITY; -(* USED FROM (Fabrication_technology_mim); *) -ENTITY stratum_stack_model - ABSTRACT SUPERTYPE - SUBTYPE OF(part_template_definition); -END_ENTITY; -(* USED FROM (Fabrication_technology_mim); *) -ENTITY stratum_surface_technology - SUBTYPE OF (shape_aspect); - SELF\shape_aspect.of_shape : stratum_technology; -- associated_technology : This ATTRIBUTE was RENAMED in the EXPRESS E2 source, an attribute with the new name is in the DERIVE clause - DERIVE - associated_technology : STRATUM_TECHNOLOGY := SELF\shape_aspect.of_shape; -- OF_SHAPE : This ATTRIBUTE was RENAMED in the EXPRESS E2 source, this is the new name implemented as DERIVE - -END_ENTITY; -(* USED FROM (Fabrication_technology_mim); *) -ENTITY stratum_technology - SUBTYPE OF (characterized_object, product_definition_shape); - DERIVE - SELF\property_definition.definition : characterized_definition := SELF; -UNIQUE - UR1: SELF\characterized_object.name; -END_ENTITY; -(* USED FROM (Fabrication_technology_mim); *) -ENTITY stratum_technology_occurrence - SUBTYPE OF(property_definition); -END_ENTITY; -(* USED FROM (Fabrication_technology_mim); *) -ENTITY stratum_technology_occurrence_link - SUBTYPE OF(stratum_technology_occurrence_relationship); -END_ENTITY; -(* USED FROM (Fabrication_technology_mim); *) -ENTITY stratum_technology_occurrence_relationship - ABSTRACT SUPERTYPE OF (ONEOF ( - DERIVED_STRATUM_TECHNOLOGY_OCCURRENCE_RELATIONSHIP, - STRATUM_TECHNOLOGY_OCCURRENCE_LINK, - STRATUM_TECHNOLOGY_OCCURRENCE_FEATURE_CONSTRAINT, - STRATUM_TECHNOLOGY_OCCURRENCE_SWAP_RELATIONSHIP)) - SUBTYPE OF(property_definition, property_definition_relationship); -END_ENTITY; -(* USED FROM (Fabrication_technology_mim); *) -ENTITY stratum_technology_occurrence_feature_constraint - SUBTYPE OF (stratum_technology_occurrence_relationship); -END_ENTITY; -(* USED FROM (Fabrication_technology_mim); *) -ENTITY stratum_technology_occurrence_swap_relationship - SUBTYPE OF (stratum_technology_occurrence_relationship); -END_ENTITY; -(* USED FROM (Fabrication_technology_mim); *) -ENTITY stratum_technology_swap_relationship - SUBTYPE OF(property_definition_relationship); -END_ENTITY; -(* USED FROM (Fabrication_technology_mim); *) -ENTITY stratum_technology_mapping_relationship - SUBTYPE OF(property_definition_relationship); -END_ENTITY; -(* USED FROM (Component_feature_mim); *) -ENTITY component_feature - SUPERTYPE OF ((ONEOF ( - PHYSICAL_COMPONENT_FEATURE, - LAMINATE_COMPONENT_FEATURE)) ) - SUBTYPE OF (shape_aspect); - SELF\shape_aspect.of_shape : assembly_component; -END_ENTITY; -(* USED FROM (Component_feature_mim); *) -ENTITY component_feature_joint - SUBTYPE OF (shape_aspect_relationship, shape_aspect); - SELF\shape_aspect_relationship.relating_shape_aspect : component_feature; - SELF\shape_aspect_relationship.related_shape_aspect : component_feature; -END_ENTITY; -(* USED FROM (Component_feature_mim); *) -ENTITY component_feature_relationship - SUBTYPE OF (shape_aspect_relationship); - SELF\shape_aspect_relationship.relating_shape_aspect : component_feature; - SELF\shape_aspect_relationship.related_shape_aspect : component_feature; -WHERE - WR1: SELF\shape_aspect_relationship.related_shape_aspect :<>: - SELF\shape_aspect_relationship.relating_shape_aspect; -END_ENTITY; -(* USED FROM (Component_feature_mim); *) -ENTITY component_terminal - SUPERTYPE OF ((ONEOF ( - PHYSICAL_COMPONENT_TERMINAL, - LAMINATE_COMPONENT_JOIN_TERMINAL)) ) - SUBTYPE OF (component_feature); -END_ENTITY; -(* USED FROM (Component_feature_mim); *) -ENTITY make_from_feature_relationship - SUBTYPE OF (component_feature_relationship); -END_ENTITY; -(* USED FROM (Requirement_assignment_mim); *) -ENTITY assigned_requirement - SUBTYPE OF (group_assignment); - SELF\group_assignment.assigned_group : requirement_assignment; - items : SET[1:1] OF product_definition; -END_ENTITY; -(* USED FROM (Requirement_assignment_mim); *) -ENTITY requirement_assigned_object - SUBTYPE OF (group_assignment); - SELF\group_assignment.assigned_group : requirement_assignment; - items : SET[1:1] OF requirement_assigned_item; -END_ENTITY; -(* USED FROM (Requirement_assignment_mim); *) -ENTITY requirement_assignment - SUBTYPE OF (characterized_object, group); -END_ENTITY; -(* USED FROM (Requirement_assignment_mim); *) -ENTITY requirement_source - SUBTYPE OF (group); -END_ENTITY; -(* USED FROM (Requirement_assignment_mim); *) -ENTITY satisfied_requirement - SUBTYPE OF (group_assignment); - SELF\group_assignment.assigned_group : satisfies_requirement; - items : SET[1:1] OF product_definition; -END_ENTITY; -(* USED FROM (Requirement_assignment_mim); *) -ENTITY satisfies_requirement - SUBTYPE OF (group); -END_ENTITY; -(* USED FROM (Requirement_assignment_mim); *) -ENTITY satisfying_item - SUBTYPE OF (group_assignment); - SELF\group_assignment.assigned_group : satisfies_requirement; - items : SET[1:1] OF requirement_satisfaction_item; -END_ENTITY; -(* USED FROM (Requirement_assignment_mim); *) -ENTITY source_for_requirement - SUBTYPE OF (group_assignment); - SELF\group_assignment.assigned_group : requirement_source; - items : SET[1:1] OF requirement_source_item; -END_ENTITY; -(* USED FROM (Requirement_assignment_mim); *) -ENTITY sourced_requirement - SUBTYPE OF (group_assignment); - SELF\group_assignment.assigned_group : requirement_source; - items : SET[1:1] OF product_definition; -END_ENTITY; -(* USED FROM (Component_grouping_mim); *) -ENTITY array_placement_group - SUPERTYPE OF ( ( ONEOF ( - LINEAR_ARRAY_PLACEMENT_GROUP_COMPONENT, - RECTANGULAR_ARRAY_PLACEMENT_GROUP_COMPONENT) )ANDOR( (ONEOF ( - LAMINATE_TEXT_STRING_COMPONENT, - LINEAR_ARRAY_PLACEMENT_GROUP_COMPONENT, - RECTANGULAR_ARRAY_PLACEMENT_GROUP_COMPONENT)) ) ) - SUBTYPE OF (assembly_group_component); -END_ENTITY; -(* USED FROM (Component_grouping_mim); *) -ENTITY assembly_group_component - SUBTYPE OF (assembly_component); -END_ENTITY; -(* USED FROM (management_resources_schema); *) - ENTITY classification_role; - name : label; - description : OPTIONAL text; - END_ENTITY; -(* USED FROM (Component_grouping_mim); *) -ENTITY interfaced_group_component - SUBTYPE OF (assembly_group_component); -END_ENTITY; -(* USED FROM (Component_grouping_mim); *) -ENTITY linear_array_component_definition_link - SUBTYPE OF (product_definition,product_definition_relationship); - SELF\product_definition_relationship.relating_product_definition : linear_array_placement_group_component; - SELF\product_definition_relationship.related_product_definition : linear_array_placement_group_component; -WHERE - WR1: SELF\product_definition_relationship.related_product_definition :<>: - SELF\product_definition_relationship.relating_product_definition; - WR2: acyclic_product_definition_relationship (SELF, - [SELF\product_definition_relationship.related_product_definition], - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LINEAR_ARRAY_COMPONENT_DEFINITION_LINK'); -END_ENTITY; -(* USED FROM (Component_grouping_mim); *) -ENTITY linear_array_placement_group_component - SUBTYPE OF (array_placement_group); -END_ENTITY; -(* USED FROM (Component_grouping_mim); *) -ENTITY rectangular_array_placement_group_component - SUBTYPE OF (array_placement_group); -END_ENTITY; -(* USED FROM (Functional_decomposition_to_design_mim); *) -ENTITY design_composition_path - SUBTYPE OF (applied_group_assignment, product_definition); -END_ENTITY; -(* USED FROM (Functional_decomposition_to_design_mim); *) -ENTITY reference_composition_path - SUBTYPE OF (applied_group_assignment, product_definition); -END_ENTITY; -(* USED FROM (Land_mim); *) -ENTITY contact_size_dependent_land - SUBTYPE OF (land); -END_ENTITY; -(* USED FROM (Land_mim); *) -ENTITY dependent_electrical_isolation_removal_component - SUBTYPE OF (electrical_isolation_laminate_component); -END_ENTITY; -(* USED FROM (Land_mim); *) -ENTITY dependent_thermal_isolation_removal_component - SUBTYPE OF (thermal_isolation_removal_component); -END_ENTITY; -(* USED FROM (Land_mim); *) -ENTITY inter_stratum_feature_dependent_land - ABSTRACT SUPERTYPE OF (ONEOF ( - PLATED_PASSAGE_DEPENDENT_LAND, - UNSUPPORTED_PASSAGE_DEPENDENT_LAND)) - SUBTYPE OF (land); -END_ENTITY; -(* USED FROM (Land_mim); *) -ENTITY land - SUPERTYPE OF (ONEOF ( - CONTACT_SIZE_DEPENDENT_LAND, - INTER_STRATUM_FEATURE_DEPENDENT_LAND)) - SUBTYPE OF (stratum_feature_template_component); -END_ENTITY; -(* USED FROM (Land_mim); *) -ENTITY land_with_join_terminal - SUBTYPE OF (land, laminate_component_join_terminal); - DERIVE - SELF\shape_aspect.of_shape : land_with_join_terminal := SELF; -END_ENTITY; -(* USED FROM (Land_mim); *) -ENTITY plated_passage_dependent_land - SUBTYPE OF (inter_stratum_feature_dependent_land); -END_ENTITY; -(* USED FROM (Land_mim); *) -ENTITY thermal_isolation_removal_component - SUBTYPE OF (material_removal_structured_component); -END_ENTITY; -(* USED FROM (Land_mim); *) -ENTITY unsupported_passage_dependent_land - SUBTYPE OF (inter_stratum_feature_dependent_land); -END_ENTITY; -(* USED FROM (Layered_interconnect_module_with_printed_component_design_mim); *) -ENTITY basic_multi_stratum_printed_component - SUBTYPE OF (printed_component); -END_ENTITY; -(* USED FROM (Layered_interconnect_module_with_printed_component_design_mim); *) -ENTITY multi_stratum_printed_component - SUBTYPE OF (printed_component, structured_layout_component); -END_ENTITY; -(* USED FROM (Layered_interconnect_module_with_printed_component_design_mim); *) -ENTITY printed_connector_component - SUBTYPE OF (printed_component); -END_ENTITY; -(* USED FROM (Layered_interconnect_module_with_printed_component_design_mim); *) -ENTITY printed_component - ABSTRACT SUPERTYPE OF (ONEOF ( - SINGLE_STRATUM_PRINTED_COMPONENT, - BASIC_MULTI_STRATUM_PRINTED_COMPONENT, - MULTI_STRATUM_PRINTED_COMPONENT)) - SUBTYPE OF (assembly_component); -END_ENTITY; -(* USED FROM (Layered_interconnect_module_with_printed_component_design_mim); *) -ENTITY routed_transmission_line - SUBTYPE OF (assembly_component); -END_ENTITY; -(* USED FROM (Layered_interconnect_module_with_printed_component_design_mim); *) -ENTITY single_stratum_printed_component - SUBTYPE OF (printed_component, structured_layout_component); -END_ENTITY; -(* USED FROM (Layered_interconnect_module_with_printed_component_design_mim); *) -ENTITY tiebar_printed_component - SUBTYPE OF (printed_component, structured_layout_component); -END_ENTITY; -(* USED FROM (Basic_data_representation_mim); *) - ENTITY boolean_representation_item - SUBTYPE OF (representation_item, boolean_literal); - END_ENTITY; -(* USED FROM (Basic_data_representation_mim); *) - ENTITY date_representation_item - SUBTYPE OF (representation_item, date); - END_ENTITY; -(* USED FROM (Basic_data_representation_mim); *) - ENTITY date_time_representation_item - SUBTYPE OF (representation_item, date_and_time); - END_ENTITY; -(* USED FROM (Basic_data_representation_mim); *) - ENTITY integer_representation_item - SUBTYPE OF (representation_item, int_literal); - END_ENTITY; -(* USED FROM (Basic_data_representation_mim); *) - ENTITY logical_representation_item - SUBTYPE OF (representation_item, logical_literal); - END_ENTITY; -(* USED FROM (aic_associative_draughting_elements); *) - ENTITY annotation_occurrence_associativity - SUBTYPE OF (annotation_occurrence_relationship); - WHERE - WR1: SIZEOF (TYPEOF (SELF.related_annotation_occurrence) * - ['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.ANNOTATION_FILL_AREA_OCCURRENCE', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROJECTION_CURVE', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LEADER_CURVE']) = 1; - END_ENTITY; -(* USED FROM (Basic_data_representation_mim); *) - ENTITY real_representation_item - SUBTYPE OF (representation_item, real_literal); - END_ENTITY; -(* USED FROM (iso13584_expressions_schema); *) -ENTITY boolean_literal -SUBTYPE OF (simple_Boolean_expression, generic_literal); - the_value: BOOLEAN; -END_ENTITY; -(* USED FROM (iso13584_expressions_schema); *) -ENTITY int_literal -SUBTYPE OF (literal_number); - SELF\literal_number.the_value: INTEGER; -END_ENTITY; -(* USED FROM (iso13584_expressions_schema); *) -ENTITY slash_expression -SUBTYPE OF (binary_numeric_expression); -END_ENTITY; -(* USED FROM (iso13584_expressions_schema); *) -ENTITY real_literal -SUBTYPE OF (literal_number); - SELF\literal_number.the_value: REAL; -END_ENTITY; -(* USED FROM (iso13584_generic_expressions_schema); *) -ENTITY binary_generic_expression - ABSTRACT SUPERTYPE - -SUBTYPE OF(generic_expression); - operands: LIST [2:2] OF generic_expression; -END_ENTITY; -(* USED FROM (mathematical_functions_schema); *) -ENTITY logical_literal - SUBTYPE OF (generic_literal); - lit_value : LOGICAL; -END_ENTITY; -(* USED FROM (product_definition_schema); *) - ENTITY product_definition_relationship; - id : identifier; - name : label; - description : OPTIONAL text; - relating_product_definition : product_definition_or_reference; - related_product_definition : product_definition_or_reference; - END_ENTITY; -(* USED FROM (group_schema); *) - ENTITY group SUPERTYPE OF (ONEOF ( - CHANGE_GROUP, - CHANGE_ELEMENT) ) ; - name : label; - description : OPTIONAL text; - DERIVE - id : identifier := get_id_value(SELF); - WHERE - WR1: SIZEOF(USEDIN(SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'ID_ATTRIBUTE.IDENTIFIED_ITEM')) <= 1; - END_ENTITY; -(* USED FROM (group_schema); *) - ENTITY group_relationship; - name : label; - description : OPTIONAL text; - relating_group : group; - related_group : group; - END_ENTITY; -(* USED FROM (management_resources_schema); *) - ENTITY group_assignment - ABSTRACT SUPERTYPE OF (ONEOF ( - CURRENT_CHANGE_ELEMENT_ASSIGNMENT, - PREVIOUS_CHANGE_ELEMENT_ASSIGNMENT, - CHANGE_GROUP_ASSIGNMENT) ) ; - assigned_group : group; - DERIVE - role : object_role := get_role(SELF); - WHERE - WR1: SIZEOF(USEDIN(SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'ROLE_ASSOCIATION.ITEM_WITH_ROLE')) <= 1; - END_ENTITY; -(* USED FROM (representation_schema); *) - ENTITY compound_representation_item - SUPERTYPE OF ( ( ONEOF ( - POINT_AND_VECTOR, - POINT_PATH) )ANDOR( (ONEOF ( - ROW_REPRESENTATION_ITEM, - TABLE_REPRESENTATION_ITEM)) ) ) - SUBTYPE OF (representation_item); - item_element : compound_item_definition; - END_ENTITY; -(* USED FROM (representation_schema); *) - ENTITY representation SUPERTYPE OF ( ( ONEOF ( - INTERPOLATED_CONFIGURATION_REPRESENTATION, - LINK_MOTION_REPRESENTATION_ALONG_PATH) )ANDOR( ONEOF ( - KINEMATIC_LINK_REPRESENTATION, - KINEMATIC_TOPOLOGY_STRUCTURE, - KINEMATIC_TOPOLOGY_DIRECTED_STRUCTURE, - KINEMATIC_TOPOLOGY_NETWORK_STRUCTURE, - MECHANISM_REPRESENTATION, - SHAPE_REPRESENTATION) )ANDOR( ONEOF ( - KINEMATIC_TOPOLOGY_STRUCTURE, - KINEMATIC_TOPOLOGY_DIRECTED_STRUCTURE, - KINEMATIC_TOPOLOGY_NETWORK_STRUCTURE) ) ) ; - name : label; - items : SET[1:?] OF representation_item; - context_of_items : representation_context; - DERIVE - id : identifier := get_id_value (SELF); - description : text := get_description_value (SELF); - WHERE - WR1: SIZEOF (USEDIN (SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + - 'ID_ATTRIBUTE.IDENTIFIED_ITEM')) - <= 1; - WR2: SIZEOF (USEDIN (SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + - 'DESCRIPTION_ATTRIBUTE.DESCRIBED_ITEM')) - <= 1; - END_ENTITY; -(* USED FROM (product_property_definition_schema); *) - ENTITY characterized_object; - name : label; - description : OPTIONAL text; - END_ENTITY; -(* USED FROM (Physical_unit_design_view_mim); *) - ENTITY assembly_item_number - SUBTYPE OF (group, applied_group_assignment); - SELF\applied_group_assignment.items : SET [1:?] OF assembly_component_usage; - DERIVE - SELF\group_assignment.assigned_group : group := SELF; - END_ENTITY; -(* USED FROM (Physical_unit_design_view_mim); *) - ENTITY component_material_relationship - SUBTYPE OF (group, property_definition); - SELF\property_definition.definition : physical_unit; - END_ENTITY; -(* USED FROM (Physical_unit_design_view_mim); *) - ENTITY component_material_relationship_assignment - SUBTYPE OF (group_assignment, role_association); - SELF\group_assignment.assigned_group : component_material_relationship; - items : SET [1:1] OF component_material_relationship_assignment_item; - DERIVE - SELF\role_association.item_with_role : component_material_relationship_assignment := SELF; - END_ENTITY; -(* USED FROM (Physical_unit_design_view_mim); *) - ENTITY next_assembly_usage_occurrence_relationship - SUBTYPE OF (next_assembly_usage_occurrence, - product_definition_occurrence_relationship); - DERIVE - SELF\product_definition_occurrence_relationship.occurrence_usage : next_assembly_usage_occurrence_relationship := SELF; - END_ENTITY; -(* USED FROM (Interconnect_module_connection_routing_mim); *) -ENTITY dielectric_crossover_area - SUBTYPE OF (shape_aspect, shape_aspect_relationship); -END_ENTITY; -(* USED FROM (Interconnect_module_connection_routing_mim); *) -ENTITY direct_stratum_component_join_implementation - SUBTYPE OF (shape_aspect_relationship); -END_ENTITY; -(* USED FROM (Interconnect_module_connection_routing_mim); *) -ENTITY indirect_stratum_component_join_implementation - SUBTYPE OF (plated_inter_stratum_feature); -END_ENTITY; -(* USED FROM (application_context_schema); *) -(* Pruned SUPERTYPE *) - ENTITY application_context_element - SUPERTYPE OF (ONEOF ( - PRODUCT_CONCEPT_CONTEXT, - PRODUCT_CONTEXT, - PRODUCT_DEFINITION_CONTEXT)); - name : label; - frame_of_reference : application_context; - END_ENTITY; -(* USED FROM (Non_feature_shape_element_mim); *) -ENTITY group_shape_aspect - SUBTYPE OF (shape_aspect); -END_ENTITY; -(* USED FROM (Non_feature_shape_element_mim); *) -ENTITY interface_plane - SUBTYPE OF (shape_aspect); -END_ENTITY; -(* USED FROM (Non_feature_shape_element_mim); *) -ENTITY edge_segment_vertex - SUBTYPE OF (shape_aspect); -WHERE - WR1: SELF\shape_aspect.product_definitional = TRUE; -END_ENTITY; -(* USED FROM (Non_feature_shape_element_mim); *) -ENTITY reference_graphic_registration_mark - SUBTYPE OF (shape_aspect); -WHERE - WR1: SELF\shape_aspect.product_definitional = false; -END_ENTITY; -(* USED FROM (Non_feature_shape_element_mim); *) -ENTITY seating_plane - SUBTYPE OF (shape_aspect); -END_ENTITY; -(* USED FROM (Functional_assignment_to_part_mim); *) -ENTITY part_connected_terminals_definition - SUBTYPE OF (shape_aspect); -UNIQUE - UR1: SELF\shape_aspect.name; -END_ENTITY; -(* USED FROM (Functional_assignment_to_part_mim); *) -ENTITY part_connected_terminals_definition_domain - SUBTYPE OF (shape_aspect); -END_ENTITY; -(* USED FROM (Functional_assignment_to_part_mim); *) -ENTITY part_connected_terminals_element - SUBTYPE OF (shape_aspect, shape_aspect_relationship); -END_ENTITY; -(* USED FROM (Functional_assignment_to_part_mim); *) -ENTITY part_connected_terminals_structure_definition - SUBTYPE OF (part_connected_terminals_definition); -END_ENTITY; -(* USED FROM (Functional_assignment_to_part_mim); *) -ENTITY part_connected_terminals_layout_topology_requirement_assignment - SUBTYPE OF(requirement_assignment); -END_ENTITY; -(* USED FROM (Part_feature_function_mim); *) -ENTITY fiducial_part_feature - SUBTYPE OF (part_tooling_feature); -END_ENTITY; -(* USED FROM (Part_feature_function_mim); *) -ENTITY part_interface_access_feature - SUBTYPE OF (shape_aspect); -END_ENTITY; -(* USED FROM (Part_feature_function_mim); *) -ENTITY part_mating_feature - SUBTYPE OF (shape_aspect); -END_ENTITY; -(* USED FROM (Part_feature_function_mim); *) -ENTITY part_mounting_feature - SUBTYPE OF (shape_aspect); -END_ENTITY; -(* USED FROM (Part_feature_function_mim); *) -ENTITY part_tooling_feature - SUPERTYPE OF (ONEOF ( - FIDUCIAL_PART_FEATURE, - TOOL_REGISTRATION_MARK) - ANDOR - TEST_POINT_PART_FEATURE) - - SUBTYPE OF (shape_aspect); -WHERE - WR1: SELF\shape_aspect.product_definitional = true; -END_ENTITY; -(* USED FROM (Part_feature_function_mim); *) -ENTITY test_point_part_feature - SUBTYPE OF (part_tooling_feature); -END_ENTITY; -(* USED FROM (Part_feature_function_mim); *) -ENTITY thermal_feature - SUBTYPE OF (shape_aspect); -END_ENTITY; -(* USED FROM (Part_feature_function_mim); *) -ENTITY tool_registration_mark - SUBTYPE OF (part_tooling_feature); -END_ENTITY; -(* USED FROM (Physical_unit_usage_view_mim); *) - ENTITY connection_zone_map_identification - SUBTYPE OF (shape_aspect,representation_relationship); - SELF\representation_relationship.rep_1 : usage_view_connection_zone_terminal_shape_relationship; - SELF\representation_relationship.rep_2 : usage_view_connection_zone_terminal_shape_relationship; - WHERE - WR1: SELF\representation_relationship.rep_2 :<>: - SELF\representation_relationship.rep_1; - END_ENTITY; -(* USED FROM (Physical_unit_usage_view_mim); *) - ENTITY make_from_part_feature_relationship - SUBTYPE OF (shape_aspect, shape_aspect_relationship); - UNIQUE - UR1: SELF\shape_aspect_relationship.relating_shape_aspect, - SELF\shape_aspect_relationship.related_shape_aspect; - WHERE - WR1: SELF\shape_aspect.product_definitional = FALSE; - END_ENTITY; -(* USED FROM (Physical_unit_usage_view_mim); *) - ENTITY part_feature_template_definition - SUBTYPE OF (shape_feature_definition, group); - WHERE - WR1: SELF\group.name = SELF\characterized_object.name; - WR2: SELF\group.description = SELF\characterized_object.description; - END_ENTITY; -(* USED FROM (Physical_unit_usage_view_mim); *) - ENTITY physical_unit - SUPERTYPE OF ( ( (ONEOF ( - BARE_DIE, - PACKAGE, - PACKAGED_PART, - ASSEMBLY_MODULE_DESIGN_VIEW, - INTERCONNECT_MODULE_DESIGN_VIEW)) )ANDOR( ONEOF ( - PACKAGE, - BARE_DIE, - CABLE_USAGE_VIEW, - PACKAGED_PART) ) ) - SUBTYPE OF (product_definition, product_definition_shape); - DERIVE - SELF\property_definition.definition : physical_unit := SELF; - WHERE - WR1: SIZEOF (USEDIN (SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' +'NAME_ATTRIBUTE.NAMED_ITEM')) = 0; - WR2: NOT EXISTS(SELF\property_definition.description); - END_ENTITY; -(* USED FROM (Physical_unit_usage_view_mim); *) - ENTITY usage_view_connection_zone_terminal_shape_relationship - SUBTYPE OF (representation, representation_relationship_with_transformation); - SELF\representation_relationship.rep_1 : shape_representation; - SELF\representation_relationship.rep_2 : shape_representation; - 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; -(* USED FROM (Physical_connectivity_definition_mim); *) -ENTITY make_from_connectivity_relationship - SUBTYPE OF (shape_aspect_relationship); - SELF\shape_aspect_relationship.relating_shape_aspect : physical_connectivity_definition; - SELF\shape_aspect_relationship.related_shape_aspect : physical_connectivity_definition; -END_ENTITY; -(* USED FROM (Physical_connectivity_definition_mim); *) -ENTITY physical_connectivity_definition - SUBTYPE OF (shape_aspect); -UNIQUE - UR1: SELF\shape_aspect.name,SELF\shape_aspect.of_shape; -END_ENTITY; -(* USED FROM (Physical_connectivity_definition_mim); *) -ENTITY physical_connectivity_definition_domain - SUBTYPE OF (property_definition); -END_ENTITY; -(* USED FROM (Physical_connectivity_definition_mim); *) -ENTITY physical_connectivity_element - SUBTYPE OF (shape_aspect_relationship, shape_aspect); -END_ENTITY; -(* USED FROM (Physical_connectivity_definition_mim); *) -ENTITY physical_unit_network_definition - SUBTYPE OF (physical_unit); -END_ENTITY; -(* USED FROM (Physical_connectivity_definition_mim); *) -ENTITY physical_connectivity_layout_topology_link - SUBTYPE OF(group_relationship); -END_ENTITY; -(* USED FROM (Physical_connectivity_definition_mim); *) -ENTITY physical_connectivity_layout_topology_node - SUBTYPE OF(group); -END_ENTITY; -(* USED FROM (Physical_connectivity_definition_mim); *) -ENTITY physical_connectivity_layout_topology_requirement - SUBTYPE OF(predefined_requirement_view_definition, group); -END_ENTITY; -(* USED FROM (Physical_connectivity_definition_mim); *) -ENTITY physical_connectivity_layout_topology_requirement_assignment - SUBTYPE OF(requirement_assignment); -END_ENTITY; -(* USED FROM (Analytical_model_mim); *) - ENTITY across_port_variable - SUBTYPE OF (port_variable); - END_ENTITY; -(* USED FROM (Analytical_model_mim); *) - ENTITY analog_analytical_model_port - SUBTYPE OF (analytical_model_port); - END_ENTITY; -(* USED FROM (Analytical_model_mim); *) - ENTITY analog_port_variable - SUBTYPE OF (representation, representation_item); - END_ENTITY; -(* USED FROM (Analytical_model_mim); *) - ENTITY analytical_model_definition - SUBTYPE OF (product_definition); - END_ENTITY; -(* USED FROM (Analytical_model_mim); *) - ENTITY analytical_model_make_from_relationship - SUBTYPE OF (product_definition_relationship); - SELF\product_definition_relationship.relating_product_definition : analytical_model_definition; - SELF\product_definition_relationship.related_product_definition : analytical_model_definition; - UNIQUE - UR1: SELF\product_definition_relationship.relating_product_definition, - SELF\product_definition_relationship.related_product_definition; - END_ENTITY; -(* USED FROM (Analytical_model_mim); *) - ENTITY analytical_model_parameter - SUBTYPE OF (property_definition); - END_ENTITY; -(* USED FROM (Analytical_model_mim); *) - ENTITY analytical_model_port - SUBTYPE OF(property_definition, property_definition_representation, representation); - DERIVE - SELF\property_definition_representation.definition : property_definition :=SELF; - SELF\property_definition_representation.used_representation : representation := SELF; - END_ENTITY; -(* USED FROM (Analytical_model_mim); *) - ENTITY analytical_model_port_assignment - SUBTYPE OF (property_definition_representation, representation_relationship); - SELF\property_definition_representation.used_representation : analytical_model_port; - SELF\representation_relationship.rep_1 : analytical_representation; - DERIVE - SELF\representation_relationship.rep_2 : analytical_model_port := SELF\property_definition_representation.used_representation; - END_ENTITY; -(* USED FROM (Analytical_model_mim); *) - ENTITY analytical_model_scalar_port - SUBTYPE OF (analytical_model_vector_port); - END_ENTITY; -(* USED FROM (Analytical_model_mim); *) - ENTITY analytical_model_vector_port - SUBTYPE OF (analytical_model_port, compound_representation_item); - END_ENTITY; -(* USED FROM (Analytical_model_mim); *) - ENTITY analytical_representation - SUBTYPE OF (representation); - UNIQUE - UR1: SELF\representation.name; - END_ENTITY; -(* USED FROM (Analytical_model_mim); *) - ENTITY digital_analytical_model_port - SUBTYPE OF (analytical_model_port); - END_ENTITY; -(* USED FROM (Analytical_model_mim); *) - ENTITY digital_analytical_model_scalar_port - SUBTYPE OF (digital_analytical_model_vector_port, analytical_model_scalar_port); - END_ENTITY; -(* USED FROM (Analytical_model_mim); *) - ENTITY digital_analytical_model_vector_port - SUBTYPE OF (analytical_model_vector_port); - END_ENTITY; -(* USED FROM (Analytical_model_mim); *) - ENTITY make_from_model_port_relationship - SUBTYPE OF (representation, representation_relationship); - SELF\representation_relationship.rep_1 : analytical_model_port; - SELF\representation_relationship.rep_2 : analytical_model_port; - UNIQUE - UR1: SELF\representation_relationship.rep_1, - SELF\representation_relationship.rep_2; - WHERE - WR1: rep_1 :<>: rep_2; - END_ENTITY; -(* USED FROM (Analytical_model_mim); *) - ENTITY port_variable - SUPERTYPE OF (ONEOF ( - ACROSS_PORT_VARIABLE, - THROUGH_PORT_VARIABLE, - TRANSFORM_PORT_VARIABLE)) - SUBTYPE OF (representation, representation_item); - END_ENTITY; -(* USED FROM (Analytical_model_mim); *) - ENTITY through_port_variable - SUBTYPE OF (port_variable); - END_ENTITY; -(* USED FROM (Analytical_model_mim); *) - ENTITY transform_port_variable - SUBTYPE OF (port_variable); - END_ENTITY; -(* USED FROM (Model_parameter_mim); *) - ENTITY category_model_parameter - SUBTYPE OF (model_parameter); - END_ENTITY; -(* USED FROM (Model_parameter_mim); *) - ENTITY default_value_property_definition_representation - SUBTYPE OF (property_definition_representation); - END_ENTITY; -(* USED FROM (Model_parameter_mim); *) - ENTITY model_parameter - SUPERTYPE OF (ONEOF ( - DATUM_DIFFERENCE_BASED_MODEL_PARAMETER, - SCHEMA_BASED_MODEL_PARAMETER) ) - SUBTYPE OF (general_property); - END_ENTITY; -(* USED FROM (Model_parameter_mim); *) - ENTITY model_parameter_with_unit - SUBTYPE OF (model_parameter); - WHERE - WR1 : NOT ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SCHEMA_BASED_MODEL_PARAMETER' IN TYPEOF(SELF)); - END_ENTITY; -(* USED FROM (Model_parameter_mim); *) - ENTITY parameter_assignment_override - SUBTYPE OF (representation, representation_relationship); - SELF\representation_relationship.rep_1 : parameter_assignment; - SELF\representation_relationship.rep_2 : parameter_assignment; - 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; -(* USED FROM (Model_parameter_mim); *) - ENTITY parameter_assignment - SUBTYPE OF (property_definition_representation, representation); - SELF\property_definition_representation.definition : parameter_assignment_select; - END_ENTITY; -(* USED FROM (Model_parameter_mim); *) - ENTITY product_specific_parameter_value_assignment - SUBTYPE OF (characterized_object, - product_related_product_category); - END_ENTITY; -(* USED FROM (Model_parameter_mim); *) - ENTITY schema_based_model_parameter - SUBTYPE OF (model_parameter); - END_ENTITY; -(* USED FROM (Model_parameter_mim); *) - ENTITY valid_range_property_definition_representation - SUBTYPE OF (property_definition_representation); - END_ENTITY; -(* USED FROM (Model_parameter_mim); *) - ENTITY test_method_based_parameter_assignment - SUBTYPE OF (parameter_assignment); - END_ENTITY; -(* USED FROM (product_definition_schema); *) - ENTITY product_related_product_category - SUBTYPE OF (product_category); - products : SET [1:?] OF product; - END_ENTITY; -(* USED FROM (date_time_schema); *) -ENTITY date_time_role; - name : label; -DERIVE - description : text := get_description_value (SELF); -WHERE - WR1: SIZEOF (USEDIN (SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'DESCRIPTION_ATTRIBUTE.DESCRIBED_ITEM')) <= 1; -END_ENTITY; -(* USED FROM (date_time_schema); *) -ENTITY date_role; - name : label; -DERIVE - description : text := get_description_value (SELF); -WHERE - WR1: SIZEOF (USEDIN (SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'DESCRIPTION_ATTRIBUTE.DESCRIBED_ITEM')) <= 1; -END_ENTITY; -(* USED FROM (Shape_property_assignment_mim); *) -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.used_representation : shape_model; - SELF\item_identified_representation_usage.identified_item : geometric_model_item; - UNIQUE - UR1 : definition; -END_ENTITY; -(* USED FROM (Shape_property_assignment_mim); *) -ENTITY chain_based_geometric_item_specific_usage - SUBTYPE OF (geometric_item_specific_usage, - chain_based_item_identified_representation_usage); -END_ENTITY; -(* USED FROM (document_schema); *) - ENTITY document_type; - product_data_type : label; - END_ENTITY; -(* USED FROM (product_property_definition_schema); *) - ENTITY shape_aspect SUPERTYPE OF ( ( ONEOF ( - MINIMALLY_DEFINED_BARE_DIE_TERMINAL, - ASSEMBLY_MODULE_TERMINAL, - CABLE_TERMINAL, - INTERCONNECT_MODULE_TERMINAL, - PACKAGED_PART_TERMINAL) )ANDOR( ONEOF ( - MINIMALLY_DEFINED_BARE_DIE_TERMINAL, - ASSEMBLY_MODULE_TERMINAL, - CABLE_TERMINAL, - PACKAGED_PART_TERMINAL) )ANDOR( (ONEOF ( - PACKAGE_BODY, - PRIMARY_ORIENTATION_FEATURE, - SECONDARY_ORIENTATION_FEATURE, - TERTIARY_ORIENTATION_FEATURE)) )ANDOR( ONEOF ( - CONTACTING_FEATURE, - DATUM, - DATUM_FEATURE, - DATUM_TARGET, - DATUM_SYSTEM, - GENERAL_DATUM_REFERENCE) )ANDOR( (ONEOF ( - DERIVED_SHAPE_ASPECT, - SEATING_PLANE, - REFERENCE_GRAPHIC_REGISTRATION_MARK, - GROUP_SHAPE_ASPECT, - MOUNTING_RESTRICTION_AREA, - MOUNTING_RESTRICTION_VOLUME)) ) ) ; - name : label; - description : OPTIONAL text; - of_shape : product_definition_shape; - product_definitional : LOGICAL; - DERIVE - id : identifier := get_id_value(SELF); - UNIQUE - UR1: id, of_shape; - WHERE - WR1: SIZEOF(USEDIN(SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'ID_ATTRIBUTE.IDENTIFIED_ITEM')) <= 1; - END_ENTITY; -(* USED FROM (product_property_definition_schema); *) - 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, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'ID_ATTRIBUTE.IDENTIFIED_ITEM')) <= 1; - END_ENTITY; -(* USED FROM (material_property_definition_schema); *) -ENTITY property_definition_relationship SUPERTYPE OF ((ONEOF ( - STRATUM_TECHNOLOGY_OCCURRENCE_RELATIONSHIP, - STRATUM_TECHNOLOGY_SWAP_RELATIONSHIP)) ) ; - name : label; - description : text; - relating_property_definition : property_definition; - related_property_definition : property_definition; -END_ENTITY; -(* USED FROM (measure_schema); *) - 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, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'NAME_ATTRIBUTE.NAMED_ITEM')) <= 1; - END_ENTITY; -(* USED FROM (Construction_geometry_mim); *) - 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 ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.GEOMETRIC_REPRESENTATION_CONTEXT' IN TYPEOF(SELF.rep_1.context_of_items)); - WR2: NOT('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'REPRESENTATION_RELATIONSHIP_WITH_TRANSFORMATION' IN TYPEOF(SELF)); - END_ENTITY; -(* USED FROM (External_item_identification_assignment_mim); *) -ENTITY applied_external_identification_assignment -SUBTYPE OF (external_identification_assignment); - items : SET [1 : ?] OF external_identification_item; -END_ENTITY; -(* USED FROM (geometry_schema); *) -ENTITY circle - SUBTYPE OF (conic); - radius : positive_length_measure; -END_ENTITY; -(* USED FROM (geometry_schema); *) -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; -(* USED FROM (geometry_schema); *) -ENTITY line - SUBTYPE OF (curve); - pnt : cartesian_point; - dir : vector; -WHERE - WR1: dir.dim = pnt.dim; -END_ENTITY; -(* USED FROM (measure_schema); *) - ENTITY capacitance_unit - SUBTYPE OF(derived_unit); - WHERE - WR1: derive_dimensional_exponents(SELF) = dimensions_for_si_unit (si_unit_name.farad); - END_ENTITY; -(* USED FROM (geometry_schema); *) -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: ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.BOUNDED_CURVE' IN TYPEOF(parent_curve)); -END_ENTITY; -(* USED FROM (geometry_schema); *) -ENTITY pcurve - SUBTYPE OF (curve); - basis_surface : surface; - reference_to_curve : definitional_representation; -WHERE - WR1: SIZEOF(reference_to_curve\representation.items) = 1; - WR2: 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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; -(* USED FROM (geometry_schema); *) -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: ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PCURVE' IN TYPEOF(associated_geometry[1])) OR (master_representation <> pcurve_s1); - WR3: ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PCURVE' IN TYPEOF(associated_geometry[2])) OR (master_representation <> pcurve_s2); - WR4: NOT ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PCURVE' IN TYPEOF(curve_3d)); -END_ENTITY; -(* USED FROM (measure_schema); *) - 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; -(* USED FROM (geometry_schema); *) -ENTITY b_spline_curve - SUPERTYPE OF (ONEOF ( - UNIFORM_CURVE, - B_SPLINE_CURVE_WITH_KNOTS, - QUASI_UNIFORM_CURVE, - BEZIER_CURVE) - ANDOR - RATIONAL_B_SPLINE_CURVE) - SUBTYPE OF (bounded_curve); - degree : INTEGER; - control_points_list : LIST[2:?] OF cartesian_point; - curve_form : b_spline_curve_form; - closed_curve : LOGICAL; - self_intersect : LOGICAL; -DERIVE - upper_index_on_control_points : INTEGER := (SIZEOF(control_points_list) - 1); - control_points : ARRAY[0:upper_index_on_control_points] OF cartesian_point := list_to_array(control_points_list,0, upper_index_on_control_points); -WHERE - WR1: ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.UNIFORM_CURVE' IN TYPEOF(self)) OR ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.QUASI_UNIFORM_CURVE' IN TYPEOF(self)) OR ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.BEZIER_CURVE' IN TYPEOF(self)) OR ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.B_SPLINE_CURVE_WITH_KNOTS' IN TYPEOF(self)); -END_ENTITY; -(* USED FROM (geometry_schema); *) -ENTITY b_spline_surface - SUPERTYPE OF (ONEOF ( - B_SPLINE_SURFACE_WITH_KNOTS, - UNIFORM_SURFACE, - QUASI_UNIFORM_SURFACE, - BEZIER_SURFACE) - ANDOR - RATIONAL_B_SPLINE_SURFACE) - SUBTYPE OF (bounded_surface); - u_degree : INTEGER; - v_degree : INTEGER; - control_points_list : LIST[2:?] OF LIST[2:?] OF cartesian_point; - surface_form : b_spline_surface_form; - u_closed : LOGICAL; - v_closed : LOGICAL; - self_intersect : LOGICAL; -DERIVE - u_upper : INTEGER := SIZEOF(control_points_list) - 1; - v_upper : INTEGER := SIZEOF(control_points_list[1]) - 1; - control_points : ARRAY[0:u_upper] OF ARRAY[0:v_upper] OF cartesian_point := make_array_of_array(control_points_list, 0,u_upper,0,v_upper); -WHERE - WR1: ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.UNIFORM_SURFACE' IN TYPEOF(SELF)) OR ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.QUASI_UNIFORM_SURFACE' IN TYPEOF(SELF)) OR ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.BEZIER_SURFACE' IN TYPEOF(SELF)) OR ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.B_SPLINE_SURFACE_WITH_KNOTS' IN TYPEOF(SELF)); -END_ENTITY; -(* USED FROM (geometry_schema); *) -ENTITY conical_surface - SUBTYPE OF (elementary_surface); - radius : length_measure; - semi_angle : plane_angle_measure; -WHERE - WR1: radius >= 0.0; -END_ENTITY; -(* USED FROM (geometry_schema); *) -(* Pruned SUPERTYPE *) -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; -(* USED FROM (measure_schema); *) - 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; -(* USED FROM (measure_schema); *) - ENTITY capacitance_measure_with_unit - SUBTYPE OF (measure_with_unit); - WHERE - WR1: 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CAPACITANCE_UNIT' IN TYPEOF(SELF\measure_with_unit.unit_component); - END_ENTITY; -(* USED FROM (geometry_schema); *) -ENTITY cylindrical_surface - SUBTYPE OF (elementary_surface); - radius : positive_length_measure; -END_ENTITY; -(* USED FROM (geometry_schema); *) -ENTITY degenerate_pcurve - SUBTYPE OF (point); - basis_surface : surface; - reference_to_curve : definitional_representation; -WHERE - WR1: SIZEOF(reference_to_curve\representation.items) = 1; - WR2: 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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; -(* USED FROM (geometry_schema); *) -ENTITY ellipse - SUBTYPE OF (conic); - semi_axis_1 : positive_length_measure; - semi_axis_2 : positive_length_measure; -END_ENTITY; -(* USED FROM (geometry_schema); *) -ENTITY hyperbola - SUBTYPE OF (conic); - semi_axis : positive_length_measure; - semi_imag_axis : positive_length_measure; -END_ENTITY; -(* USED FROM (geometry_schema); *) -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; -(* USED FROM (geometry_schema); *) -ENTITY offset_surface - SUBTYPE OF (surface); - basis_surface : surface; - distance : length_measure; - self_intersect : LOGICAL; -END_ENTITY; -(* USED FROM (geometry_schema); *) -ENTITY oriented_surface - SUBTYPE OF (surface); - orientation : BOOLEAN; -END_ENTITY; -(* USED FROM (geometry_schema); *) -ENTITY parabola - SUBTYPE OF (conic); - focal_dist : length_measure; -WHERE - WR1: focal_dist <> 0.0; -END_ENTITY; -(* USED FROM (geometry_schema); *) -ENTITY placement - SUPERTYPE OF (ONEOF ( - AXIS1_PLACEMENT, - AXIS2_PLACEMENT_2D, - AXIS2_PLACEMENT_3D)) - SUBTYPE OF (geometric_representation_item); - location : cartesian_point; -END_ENTITY; -(* USED FROM (geometry_schema); *) -ENTITY plane - SUBTYPE OF (elementary_surface); -END_ENTITY; -(* USED FROM (geometry_schema); *) -ENTITY point_on_curve - SUBTYPE OF (point); - basis_curve : curve; - point_parameter : parameter_value; -END_ENTITY; -(* USED FROM (geometry_schema); *) -ENTITY point_on_surface - SUBTYPE OF (point); - basis_surface : surface; - point_parameter_u : parameter_value; - point_parameter_v : parameter_value; -END_ENTITY; -(* USED FROM (measure_schema); *) - 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; -(* USED FROM (geometry_schema); *) -ENTITY polyline - SUBTYPE OF (bounded_curve); - points : LIST[2:?] OF cartesian_point; -END_ENTITY; -(* USED FROM (measure_schema); *) - ENTITY electric_current_measure_with_unit - SUBTYPE OF (measure_with_unit); - WHERE - WR1: 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.ELECTRIC_CURRENT_UNIT' IN TYPEOF(SELF\measure_with_unit.unit_component); - END_ENTITY; -(* USED FROM (geometry_schema); *) -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: (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.ELEMENTARY_SURFACE' IN TYPEOF(basis_surface)) AND (NOT ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PLANE' IN TYPEOF(basis_surface)))) OR ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SURFACE_OF_REVOLUTION' IN TYPEOF(basis_surface)) OR (usense = (u2 > u1)); - WR4: (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SPHERICAL_SURFACE' IN TYPEOF(basis_surface)) OR ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.TOROIDAL_SURFACE' IN TYPEOF(basis_surface))) OR (vsense = (v2 > v1)); -END_ENTITY; -(* USED FROM (geometry_schema); *) -ENTITY spherical_surface - SUBTYPE OF (elementary_surface); - radius : positive_length_measure; -END_ENTITY; -(* USED FROM (geometry_schema); *) -ENTITY surface - SUPERTYPE OF (ONEOF ( - ELEMENTARY_SURFACE, - SWEPT_SURFACE, - BOUNDED_SURFACE, - OFFSET_SURFACE, - SURFACE_REPLICA)) - SUBTYPE OF (geometric_representation_item); -END_ENTITY; -(* USED FROM (geometry_schema); *) -ENTITY surface_of_linear_extrusion - SUBTYPE OF (swept_surface); - extrusion_axis : vector; -END_ENTITY; -(* USED FROM (geometry_schema); *) -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; -(* USED FROM (measure_schema); *) - ENTITY conductance_measure_with_unit - SUBTYPE OF (measure_with_unit); - WHERE - WR1: 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CONDUCTANCE_UNIT' IN TYPEOF(SELF\measure_with_unit.unit_component); - END_ENTITY; -(* USED FROM (geometry_schema); *) -ENTITY toroidal_surface - SUBTYPE OF (elementary_surface); - major_radius : positive_length_measure; - minor_radius : positive_length_measure; -END_ENTITY; -(* USED FROM (measure_schema); *) - 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; - -(* Implicit interfaced from: mathematical_functions_schema *) -ENTITY cartesian_complex_number_region - SUBTYPE OF (maths_space, generic_literal); - real_constraint : real_interval; - imag_constraint : real_interval; -WHERE - WR1: min_exists(real_constraint) OR max_exists(real_constraint) OR - min_exists(imag_constraint) OR max_exists(imag_constraint); -END_ENTITY; -(* USED FROM (representation_schema); *) - ENTITY representation_relationship; - name : label; - description : OPTIONAL text; - rep_1 : representation; - rep_2 : representation; - END_ENTITY; -(* USED FROM (topology_schema); *) - ENTITY edge_curve - SUBTYPE OF(edge,geometric_representation_item); - edge_geometry : curve; - same_sense : BOOLEAN; - END_ENTITY; -(* USED FROM (topology_schema); *) - ENTITY face_surface - SUBTYPE OF(face,geometric_representation_item); - face_geometry : surface; - same_sense : BOOLEAN; - WHERE - WR1: NOT ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.ORIENTED_SURFACE' IN TYPEOF(face_geometry)); - END_ENTITY; -(* USED FROM (topology_schema); *) - ENTITY vertex_point - SUBTYPE OF(vertex,geometric_representation_item); - vertex_geometry : point; - END_ENTITY; -(* USED FROM (shape_aspect_definition_schema); *) -ENTITY apex - SUBTYPE OF (derived_shape_aspect); -END_ENTITY; -(* USED FROM (shape_aspect_definition_schema); *) -ENTITY centre_of_symmetry - SUBTYPE OF (derived_shape_aspect); -END_ENTITY; -(* USED FROM (shape_aspect_definition_schema); *) -ENTITY derived_shape_aspect - SUPERTYPE OF (ONEOF ( - APEX, - CENTRE_OF_SYMMETRY, - GEOMETRIC_ALIGNMENT, - GEOMETRIC_CONTACT, - GEOMETRIC_INTERSECTION, - PARALLEL_OFFSET, - PERPENDICULAR_TO, - EXTENSION, - TANGENT)) - SUBTYPE OF (shape_aspect); -INVERSE - deriving_relationships : SET[1:?] OF shape_aspect_deriving_relationship FOR relating_shape_aspect; -END_ENTITY; -(* USED FROM (shape_aspect_definition_schema); *) -ENTITY extension - SUBTYPE OF (derived_shape_aspect); -WHERE - WR1: SIZEOF (SELF\derived_shape_aspect.deriving_relationships)= 1; -END_ENTITY; -(* USED FROM (shape_aspect_definition_schema); *) -ENTITY geometric_alignment - SUBTYPE OF (derived_shape_aspect); -WHERE - WR1: SIZEOF (SELF\derived_shape_aspect.deriving_relationships)> 1; -END_ENTITY; -(* USED FROM (shape_aspect_definition_schema); *) -ENTITY geometric_intersection - SUBTYPE OF (derived_shape_aspect); -WHERE - WR1: SIZEOF (SELF\derived_shape_aspect.deriving_relationships)> 1; -END_ENTITY; -(* USED FROM (shape_aspect_definition_schema); *) -ENTITY parallel_offset - SUBTYPE OF (derived_shape_aspect); - offset : measure_with_unit; -WHERE - WR1: SIZEOF (SELF\derived_shape_aspect.deriving_relationships)= 1; -END_ENTITY; -(* USED FROM (shape_aspect_definition_schema); *) -ENTITY perpendicular_to - SUBTYPE OF (derived_shape_aspect); -WHERE - WR1: SIZEOF (SELF\derived_shape_aspect.deriving_relationships)= 1; -END_ENTITY; -(* USED FROM (shape_aspect_definition_schema); *) -ENTITY shape_aspect_deriving_relationship - SUBTYPE OF (shape_aspect_relationship); - SELF\shape_aspect_relationship.relating_shape_aspect : derived_shape_aspect; -END_ENTITY; -(* USED FROM (shape_aspect_definition_schema); *) -ENTITY tangent - SUBTYPE OF (derived_shape_aspect); -WHERE - WR1: SIZEOF (SELF\derived_shape_aspect.deriving_relationships)= 1; -END_ENTITY; -(* USED FROM (Value_with_unit_extension_mim); *) -ENTITY expression_conversion_based_unit - SUBTYPE OF (context_dependent_unit, variable_semantics); -INVERSE - associated_variable_environment: environment FOR semantics; -END_ENTITY; -(* USED FROM (Value_with_unit_extension_mim); *) -ENTITY dielectric_constant_measure_with_unit - SUBTYPE OF (ratio_measure_with_unit); -END_ENTITY; -(* USED FROM (Value_with_unit_extension_mim); *) -ENTITY loss_tangent_measure_with_unit - SUBTYPE OF (ratio_measure_with_unit); -END_ENTITY; -(* USED FROM (Value_with_unit_extension_mim); *) -ENTITY thermal_resistance_measure_with_unit - SUBTYPE OF (measure_with_unit); -WHERE - WR1: 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.THERMAL_RESISTANCE_UNIT' IN TYPEOF(SELF\measure_with_unit.unit_component); -END_ENTITY; -(* USED FROM (measure_schema); *) - ENTITY magnetic_flux_density_measure_with_unit - SUBTYPE OF (measure_with_unit); - WHERE - WR1: 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MAGNETIC_FLUX_DENSITY_UNIT' IN TYPEOF(SELF\measure_with_unit.unit_component); - END_ENTITY; -(* USED FROM (Shape_composition_mim); *) -ENTITY composite_unit_shape_aspect - SUBTYPE OF (composite_shape_aspect); -END_ENTITY; -(* USED FROM (Document_assignment_mim); *) -ENTITY applied_document_reference - SUBTYPE OF (document_reference); - items : SET[1:?] OF document_reference_item; -END_ENTITY; -(* USED FROM (Document_assignment_mim); *) -ENTITY applied_document_usage_constraint_assignment - SUBTYPE OF (document_usage_constraint_assignment); - items : SET[1:?] OF document_reference_item; -END_ENTITY; -(* USED FROM (measure_schema); *) - ENTITY force_unit - SUBTYPE OF(derived_unit); - WHERE - WR1: derive_dimensional_exponents(SELF) = dimensions_for_si_unit (si_unit_name.newton); - END_ENTITY; -(* USED FROM (measure_schema); *) - ENTITY force_measure_with_unit - SUBTYPE OF (measure_with_unit); - WHERE - WR1: 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.FORCE_UNIT' IN TYPEOF(SELF\measure_with_unit.unit_component); - END_ENTITY; -(* USED FROM (external_reference_schema); *) - ENTITY external_source; - source_id : source_item; - DERIVE - description : text := get_description_value(SELF); - WHERE - WR1: SIZEOF(USEDIN(SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'DESCRIPTION_ATTRIBUTE.DESCRIBED_ITEM')) <= 1; - END_ENTITY; -(* USED FROM (external_reference_schema); *) - ENTITY externally_defined_item; - item_id : source_item; - source : external_source; - END_ENTITY; -(* USED FROM (Identification_assignment_mim); *) -ENTITY applied_identification_assignment - SUBTYPE OF (identification_assignment); - items : SET[1:?] OF identification_item; -END_ENTITY; -(* USED FROM (shape_aspect_definition_schema); *) -ENTITY dimensional_location_with_datum_feature - SUBTYPE OF (datum_feature, dimensional_location); -END_ENTITY; -(* USED FROM (shape_aspect_definition_schema); *) -ENTITY dimensional_size_with_datum_feature - SUBTYPE OF (datum_feature, dimensional_size); -END_ENTITY; -(* USED FROM (shape_dimension_schema); *) -ENTITY angular_location - SUBTYPE OF (dimensional_location); - angle_selection : angle_relator; -END_ENTITY; -(* USED FROM (shape_dimension_schema); *) -ENTITY angular_size - SUBTYPE OF (dimensional_size); - angle_selection : angle_relator; -END_ENTITY; -(* USED FROM (shape_dimension_schema); *) -ENTITY dimensional_characteristic_representation; - dimension : dimensional_characteristic; - representation : shape_dimension_representation; -END_ENTITY; -(* USED FROM (shape_dimension_schema); *) -ENTITY dimensional_location - SUPERTYPE OF (ONEOF ( - ANGULAR_LOCATION, - DIMENSIONAL_LOCATION_WITH_PATH)) - SUBTYPE OF (shape_aspect_relationship); -WHERE - WR1: SELF\shape_aspect_relationship.relating_shape_aspect :<>: SELF\shape_aspect_relationship.related_shape_aspect; - WR2: SELF\shape_aspect_relationship.relating_shape_aspect.of_shape :=: SELF\shape_aspect_relationship.related_shape_aspect.of_shape; -END_ENTITY; -(* USED FROM (shape_dimension_schema); *) -ENTITY dimensional_location_with_path - SUBTYPE OF (dimensional_location); - path : shape_aspect; -END_ENTITY; -(* USED FROM (shape_dimension_schema); *) -ENTITY dimensional_size - SUPERTYPE OF (ONEOF ( - ANGULAR_SIZE, - DIMENSIONAL_SIZE_WITH_PATH)); - applies_to : shape_aspect; - name : label; -DERIVE - id : identifier := get_id_value(SELF); -UNIQUE - UR1: id, applies_to; -WHERE - WR1: applies_to.product_definitional = TRUE; - WR2: SIZEOF(USEDIN(SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'ID_ATTRIBUTE.IDENTIFIED_ITEM')) <= 1; -END_ENTITY; -(* USED FROM (shape_dimension_schema); *) -ENTITY dimensional_size_with_path - SUBTYPE OF (dimensional_size); - path : shape_aspect; -END_ENTITY; -(* USED FROM (shape_dimension_schema); *) -ENTITY directed_dimensional_location - SUBTYPE OF (dimensional_location); -END_ENTITY; -(* USED FROM (shape_dimension_schema); *) -ENTITY shape_dimension_representation - SUBTYPE OF (shape_representation); - SELF\representation.items : SET[1:?] OF shape_dimension_representation_item; -END_ENTITY; -(* USED FROM (shape_tolerance_schema); *) -ENTITY limits_and_fits; - form_variance : label; - zone_variance : label; - grade : label; - source : text; -END_ENTITY; -(* USED FROM (shape_tolerance_schema); *) -ENTITY plus_minus_tolerance; - range : tolerance_method_definition; - toleranced_dimension : dimensional_characteristic; -UNIQUE - UR1: toleranced_dimension; -END_ENTITY; -(* USED FROM (shape_tolerance_schema); *) -ENTITY tolerance_value; - lower_bound : measure_with_unit; - upper_bound : measure_with_unit; -DERIVE - ubvc : REAL := upper_bound\measure_with_unit.value_component; - lbvc : REAL := lower_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; -(* USED FROM (Feature_and_connection_zone_mim); *) -ENTITY connection_zone_interface_plane_relationship - SUBTYPE OF (shape_aspect, shape_aspect_relationship); -UNIQUE - UR1: SELF\shape_aspect_relationship.name; -END_ENTITY; -(* USED FROM (Feature_and_connection_zone_mim); *) -ENTITY feature_definition_with_connection_area - SUBTYPE OF (shape_feature_definition); -END_ENTITY; -(* USED FROM (shape_aspect_definition_schema); *) -ENTITY all_around_shape_aspect - SUBTYPE OF (continuous_shape_aspect); -END_ENTITY; -(* USED FROM (shape_aspect_definition_schema); *) -ENTITY between_shape_aspect - SUBTYPE OF (continuous_shape_aspect); -END_ENTITY; -(* USED FROM (shape_aspect_definition_schema); *) -ENTITY continuous_shape_aspect - SUPERTYPE OF (ONEOF ( - BETWEEN_SHAPE_ASPECT, - ALL_AROUND_SHAPE_ASPECT)) - SUBTYPE OF (composite_shape_aspect); -END_ENTITY; -(* USED FROM (shape_aspect_definition_schema); *) -ENTITY composite_shape_aspect - SUPERTYPE OF (ONEOF ( - CONTINUOUS_SHAPE_ASPECT, - COMMON_DATUM, - COMPOSITE_GROUP_SHAPE_ASPECT)) - SUBTYPE OF (shape_aspect); -INVERSE - component_relationships : SET[2:?] OF shape_aspect_relationship FOR relating_shape_aspect; -END_ENTITY; -(* USED FROM (shape_aspect_definition_schema); *) -ENTITY composite_group_shape_aspect - SUBTYPE OF (composite_shape_aspect); -END_ENTITY; -(* USED FROM (measure_schema); *) - 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; -(* USED FROM (shape_aspect_definition_schema); *) -ENTITY contacting_feature - SUBTYPE OF (shape_aspect); -WHERE - WR1: SELF\shape_aspect.product_definitional = FALSE; -END_ENTITY; -(* USED FROM (measure_schema); *) - ENTITY luminous_flux_unit - SUBTYPE OF(named_unit); - WHERE - WR1: derive_dimensional_exponents(SELF) = dimensions_for_si_unit (si_unit_name.lumen); - END_ENTITY; -(* USED FROM (measure_schema); *) - ENTITY luminous_flux_measure_with_unit - SUBTYPE OF (measure_with_unit); - WHERE - WR1: 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LUMINOUS_FLUX_UNIT' IN TYPEOF(SELF\measure_with_unit.unit_component); - END_ENTITY; -(* USED FROM (shape_aspect_definition_schema); *) -ENTITY datum_reference_modifier_with_value; - modifier_type : datum_reference_modifier_type; - modifier_value : length_measure_with_unit; -WHERE - WR1: (modifier_value\measure_with_unit.value_component > 0.0); -END_ENTITY; -(* USED FROM (shape_aspect_definition_schema); *) -ENTITY datum_reference; - precedence : INTEGER; - referenced_datum : datum; -WHERE - WR1: precedence > 0; -END_ENTITY; -(* USED FROM (shape_aspect_definition_schema); *) -ENTITY datum_reference_compartment - SUBTYPE OF (general_datum_reference); -INVERSE - owner : datum_system FOR constituents; -END_ENTITY; -(* USED FROM (shape_aspect_definition_schema); *) -ENTITY datum_reference_element - SUBTYPE OF (general_datum_reference); -DERIVE - owner : general_datum_reference := sts_get_general_datum_reference(SELF); -WHERE - WR1: SELF <> owner; - WR2: EXISTS(owner); - WR3: SELF\shape_aspect.of_shape = owner\shape_aspect.of_shape; -END_ENTITY; -(* USED FROM (shape_aspect_definition_schema); *) -ENTITY datum_system - SUBTYPE OF (shape_aspect); - constituents : LIST[1:3] OF UNIQUE datum_reference_compartment; -UNIQUE - UR1: SELF\shape_aspect.of_shape,SELF\shape_aspect.name; -WHERE - WR1: SELF\shape_aspect.product_definitional = FALSE; -END_ENTITY; -(* USED FROM (measure_schema); *) - ENTITY magnetic_flux_unit - SUBTYPE OF(derived_unit); - WHERE - WR1: derive_dimensional_exponents(SELF) = dimensions_for_si_unit (si_unit_name.weber); - END_ENTITY; -(* USED FROM (shape_aspect_definition_schema); *) -ENTITY general_datum_reference - ABSTRACT SUPERTYPE OF (ONEOF ( - DATUM_REFERENCE_COMPARTMENT, - DATUM_REFERENCE_ELEMENT)) - SUBTYPE OF (shape_aspect); - base : datum_or_common_datum; - modifiers : OPTIONAL SET[1:?] OF datum_reference_modifier; -WHERE - WR1: SELF\shape_aspect.name = ''; - WR2: NOT EXISTS(SELF\shape_aspect.description); - WR3: NOT EXISTS(SELF\shape_aspect.id); - WR4: SELF\shape_aspect.product_definitional = FALSE; - WR5: NOT('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.DATUM' IN TYPEOF(base)) OR (SELF\shape_aspect.of_shape = base\shape_aspect.of_shape); - WR6: NOT('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.COMMON_DATUM_LIST' IN TYPEOF(base)) OR (SELF\shape_aspect.of_shape = base[1]\shape_aspect.of_shape); -END_ENTITY; -(* USED FROM (shape_aspect_definition_schema); *) -ENTITY geometric_contact - SUBTYPE OF (derived_shape_aspect); -WHERE - WR1: SIZEOF (SELF\derived_shape_aspect.deriving_relationships)= 2; -END_ENTITY; -(* USED FROM (shape_aspect_definition_schema); *) -ENTITY referenced_modified_datum - SUBTYPE OF (datum_reference); - modifier : limit_condition; -END_ENTITY; -(* USED FROM (shape_aspect_definition_schema); *) -ENTITY symmetric_shape_aspect - SUBTYPE OF (shape_aspect); -INVERSE - basis_relationships : SET[1:?] OF shape_aspect_deriving_relationship FOR related_shape_aspect; -END_ENTITY; -(* USED FROM (shape_tolerance_schema); *) -ENTITY dimension_related_tolerance_zone_element; - related_dimension : dimensional_location; - related_element : tolerance_zone_definition; -END_ENTITY; -(* USED FROM (shape_tolerance_schema); *) -ENTITY geometric_tolerance - ABSTRACT SUPERTYPE OF ( - GEOMETRIC_TOLERANCE_WITH_DATUM_REFERENCE - ANDOR - GEOMETRIC_TOLERANCE_WITH_DEFINED_UNIT - ANDOR ONEOF ( - GEOMETRIC_TOLERANCE_WITH_MODIFIERS, - MODIFIED_GEOMETRIC_TOLERANCE) - ANDOR - UNEQUALLY_DISPOSED_GEOMETRIC_TOLERANCE - ANDOR ONEOF ( - CYLINDRICITY_TOLERANCE, - FLATNESS_TOLERANCE, - LINE_PROFILE_TOLERANCE, - POSITION_TOLERANCE, - ROUNDNESS_TOLERANCE, - STRAIGHTNESS_TOLERANCE, - SURFACE_PROFILE_TOLERANCE)); - name : label; - description : OPTIONAL text; - magnitude : OPTIONAL length_measure_with_unit; - toleranced_shape_aspect : geometric_tolerance_target; -DERIVE - controlling_shape : product_definition_shape := sts_get_product_definition_shape(toleranced_shape_aspect); - id : identifier := get_id_value(SELF); -UNIQUE - UR1: id, controlling_shape; -WHERE - WR1: magnitude\measure_with_unit.value_component >= 0.0; - WR2: EXISTS(controlling_shape); - WR3: NOT ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP' IN TYPEOF(toleranced_shape_aspect)) - OR (toleranced_shape_aspect\shape_aspect_relationship.relating_shape_aspect.of_shape :=: - toleranced_shape_aspect\shape_aspect_relationship.related_shape_aspect.of_shape); - WR4: SIZEOF(USEDIN(SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'ID_ATTRIBUTE.IDENTIFIED_ITEM')) <= 1; -END_ENTITY; -(* USED FROM (shape_tolerance_schema); *) -ENTITY geometric_tolerance_relationship; - name : label; - description : text; - relating_geometric_tolerance : geometric_tolerance; - related_geometric_tolerance : geometric_tolerance; -END_ENTITY; -(* USED FROM (measure_schema); *) - 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; -(* USED FROM (shape_tolerance_schema); *) -ENTITY geometric_tolerance_with_defined_unit - SUBTYPE OF (geometric_tolerance); - unit_size : length_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; -(* USED FROM (shape_tolerance_schema); *) -ENTITY geometric_tolerance_with_defined_area_unit - SUBTYPE OF (geometric_tolerance_with_defined_unit); - area_type : area_unit_type; - second_unit_size : OPTIONAL length_measure_with_unit; -WHERE - WR1: NOT (EXISTS(second_unit_size) XOR (area_type = area_unit_type.rectangular)); -END_ENTITY; -(* USED FROM (shape_tolerance_schema); *) -ENTITY geometric_tolerance_with_maximum_tolerance - SUBTYPE OF (geometric_tolerance_with_modifiers); - maximum_upper_tolerance : length_measure_with_unit; -WHERE - WR1: (geometric_tolerance_modifier.maximum_material_requirement IN SELF\geometric_tolerance_with_modifiers.modifiers) OR (geometric_tolerance_modifier.least_material_requirement IN SELF\geometric_tolerance_with_modifiers.modifiers); - WR2: (maximum_upper_tolerance\measure_with_unit.unit_component = SELF\geometric_tolerance.magnitude\measure_with_unit.unit_component) AND (maximum_upper_tolerance\measure_with_unit.value_component > SELF\geometric_tolerance.magnitude\measure_with_unit.value_component); -END_ENTITY; -(* USED FROM (shape_tolerance_schema); *) -ENTITY geometric_tolerance_with_modifiers - SUBTYPE OF (geometric_tolerance); - modifiers : SET[1:?] OF geometric_tolerance_modifier; -END_ENTITY; -(* USED FROM (shape_tolerance_schema); *) -ENTITY modified_geometric_tolerance - SUBTYPE OF (geometric_tolerance); - modifier : limit_condition; -END_ENTITY; -(* USED FROM (shape_tolerance_schema); *) -ENTITY non_uniform_zone_definition - SUBTYPE OF (tolerance_zone_definition); -END_ENTITY; -(* USED FROM (shape_tolerance_schema); *) -ENTITY projected_zone_definition - SUBTYPE OF (tolerance_zone_definition); - projection_end : shape_aspect; - projected_length : 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; -(* USED FROM (shape_tolerance_schema); *) -ENTITY projected_zone_definition_with_offset - SUBTYPE OF (projected_zone_definition); - offset : length_measure_with_unit; -END_ENTITY; -(* USED FROM (shape_tolerance_schema); *) -ENTITY runout_zone_definition - SUBTYPE OF (tolerance_zone_definition); - orientation : runout_zone_orientation; -END_ENTITY; -(* USED FROM (shape_tolerance_schema); *) -ENTITY runout_zone_orientation_reference_direction - SUBTYPE OF (runout_zone_orientation); - orientation_defining_relationship : shape_aspect_relationship; -END_ENTITY; -(* USED FROM (shape_tolerance_schema); *) -ENTITY tolerance_zone - SUBTYPE OF (shape_aspect); - defining_tolerance : SET[1:?] OF tolerance_zone_target; - form : tolerance_zone_form; -END_ENTITY; -(* USED FROM (shape_tolerance_schema); *) -ENTITY tolerance_zone_definition - SUPERTYPE OF (ONEOF ( - PROJECTED_ZONE_DEFINITION, - NON_UNIFORM_ZONE_DEFINITION, - RUNOUT_ZONE_DEFINITION)); - zone : tolerance_zone; - boundaries : SET[0:?] OF shape_aspect; -END_ENTITY; -(* USED FROM (shape_tolerance_schema); *) -ENTITY tolerance_zone_form; - name : label; -END_ENTITY; -(* USED FROM (shape_tolerance_schema); *) -ENTITY cylindricity_tolerance - SUBTYPE OF (geometric_tolerance); -WHERE - WR1: NOT ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'GEOMETRIC_TOLERANCE_WITH_DATUM_REFERENCE' IN TYPEOF (SELF)); -END_ENTITY; -(* USED FROM (shape_tolerance_schema); *) -ENTITY flatness_tolerance - SUBTYPE OF (geometric_tolerance); -WHERE - WR1: NOT ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'GEOMETRIC_TOLERANCE_WITH_DATUM_REFERENCE' IN TYPEOF (SELF)); -END_ENTITY; -(* USED FROM (shape_tolerance_schema); *) -ENTITY line_profile_tolerance - SUBTYPE OF (geometric_tolerance); -END_ENTITY; -(* USED FROM (shape_tolerance_schema); *) -ENTITY position_tolerance - SUBTYPE OF (geometric_tolerance); -END_ENTITY; -(* USED FROM (shape_tolerance_schema); *) -ENTITY roundness_tolerance - SUBTYPE OF (geometric_tolerance); -WHERE - WR1: NOT ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'GEOMETRIC_TOLERANCE_WITH_DATUM_REFERENCE' IN TYPEOF (SELF)); -END_ENTITY; -(* USED FROM (shape_tolerance_schema); *) -ENTITY straightness_tolerance - SUBTYPE OF (geometric_tolerance); -WHERE - WR1: NOT ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'GEOMETRIC_TOLERANCE_WITH_DATUM_REFERENCE' IN TYPEOF (SELF)); -END_ENTITY; -(* USED FROM (shape_tolerance_schema); *) -ENTITY surface_profile_tolerance - SUBTYPE OF (geometric_tolerance); -END_ENTITY; -(* USED FROM (shape_tolerance_schema); *) -ENTITY angularity_tolerance - SUBTYPE OF (geometric_tolerance_with_datum_reference); -END_ENTITY; -(* USED FROM (shape_tolerance_schema); *) -ENTITY circular_runout_tolerance - SUBTYPE OF (geometric_tolerance_with_datum_reference); -END_ENTITY; -(* USED FROM (shape_tolerance_schema); *) -ENTITY coaxiality_tolerance - SUBTYPE OF (geometric_tolerance_with_datum_reference); -END_ENTITY; -(* USED FROM (shape_tolerance_schema); *) -ENTITY concentricity_tolerance - SUBTYPE OF (geometric_tolerance_with_datum_reference); -END_ENTITY; -(* USED FROM (shape_tolerance_schema); *) -ENTITY parallelism_tolerance - SUBTYPE OF (geometric_tolerance_with_datum_reference); -END_ENTITY; -(* USED FROM (shape_tolerance_schema); *) -ENTITY perpendicularity_tolerance - SUBTYPE OF (geometric_tolerance_with_datum_reference); -END_ENTITY; -(* USED FROM (shape_tolerance_schema); *) -ENTITY symmetry_tolerance - SUBTYPE OF (geometric_tolerance_with_datum_reference); -END_ENTITY; -(* USED FROM (shape_tolerance_schema); *) -ENTITY total_runout_tolerance - SUBTYPE OF (geometric_tolerance_with_datum_reference); -END_ENTITY; -(* USED FROM (shape_tolerance_schema); *) -ENTITY unequally_disposed_geometric_tolerance - SUBTYPE OF (geometric_tolerance); - displacement : length_measure_with_unit; -WHERE - WR1: ('NUMBER' IN TYPEOF (SELF\geometric_tolerance_with_defined_unit.unit_size\measure_with_unit.value_component)) AND (SELF\geometric_tolerance_with_defined_unit.unit_size\measure_with_unit.value_component > 0.0); -END_ENTITY; -(* USED FROM (product_property_definition_schema); *) - ENTITY property_definition SUPERTYPE OF ( ( (ONEOF ( - STRATUM_TECHNOLOGY_OCCURRENCE_RELATIONSHIP, - STRATUM_TECHNOLOGY_OCCURRENCE)) )ANDOR( ONEOF ( - PRODUCT_DEFINITION_KINEMATICS, - PRODUCT_DEFINITION_RELATIONSHIP_KINEMATICS, - PRODUCT_DEFINITION_SHAPE) ) ) ; - name : label; - description : OPTIONAL text; - definition : characterized_definition; - DERIVE - id : identifier := get_id_value(SELF); - WHERE - WR1: SIZEOF(USEDIN(SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'ID_ATTRIBUTE.IDENTIFIED_ITEM')) <= 1; - END_ENTITY; -(* USED FROM (product_property_representation_schema); *) - 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, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'DESCRIPTION_ATTRIBUTE.DESCRIBED_ITEM')) <= 1; - WR2: SIZEOF(USEDIN(SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'NAME_ATTRIBUTE.NAMED_ITEM')) <= 1; - END_ENTITY; -(* USED FROM (product_property_representation_schema); *) - ENTITY shape_representation - SUBTYPE OF (representation); - END_ENTITY; -(* USED FROM (Part_external_reference_mim); *) - ENTITY part_terminal_external_reference - SUBTYPE OF (shape_aspect); - END_ENTITY; -(* USED FROM (Assembly_module_with_packaged_connector_component_mim); *) -ENTITY interface_mounted_join - SUBTYPE OF (shape_aspect_relationship,shape_aspect); -END_ENTITY; -(* USED FROM (Assembly_module_with_packaged_connector_component_mim); *) -ENTITY packaged_connector_component - SUBTYPE OF (interface_component, packaged_component); -END_ENTITY; -(* USED FROM (Part_template_mim); *) - ENTITY part_template_definition - SUPERTYPE OF ( ( ONEOF ( - PRINTED_PART_TEMPLATE, - NON_CONDUCTIVE_CROSS_SECTION_TEMPLATE) )ANDOR( (ONEOF ( - GEOMETRIC_TEMPLATE, - PARAMETRIC_TEMPLATE, - PART_STRING_TEMPLATE, - PART_TEXT_TEMPLATE, - SINGLE_STRATUM_TEMPLATE, - STRATUM_STACK_MODEL)) )ANDOR( (ONEOF (ONEOF ( - PRINTED_PART_TEMPLATE, - SPECIAL_SYMBOL_TEMPLATE) - ANDOR - GEOMETRIC_TEMPLATE, - NON_CONDUCTIVE_CROSS_SECTION_TEMPLATE, - PART_STRING_TEMPLATE, - PARAMETRIC_TEMPLATE, - PART_TEXT_TEMPLATE, - STRATUM_STACK_MODEL, - STRATUM_SUB_STACK)) ) ) - SUBTYPE OF (product_definition, product_definition_shape); - DERIVE - SELF\property_definition.definition : part_template_definition := SELF; - WHERE - WR1: SIZEOF (USEDIN (SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' +'NAME_ATTRIBUTE.NAMED_ITEM')) = 0; - WR2: NOT EXISTS(SELF\property_definition.description); - END_ENTITY; -(* USED FROM (Assembly_component_mim); *) -ENTITY assembly_component - SUPERTYPE OF ( ( (ONEOF ( - PHYSICAL_COMPONENT, - LAMINATE_COMPONENT)) )ANDOR( (ONEOF ( - PHYSICAL_COMPONENT, - PRINTED_COMPONENT, - LAMINATE_COMPONENT)) ) ) - SUBTYPE OF (component_definition, product_definition_shape); - DERIVE - SELF\property_definition.definition : assembly_component := SELF; - WHERE - WR1: NOT EXISTS(SELF\property_definition.description); -END_ENTITY; -(* USED FROM (Assembly_component_mim); *) -ENTITY component_definition - SUBTYPE OF (product_definition, product_definition_relationship); - DERIVE - SELF\product_definition_relationship.related_product_definition : component_definition := SELF; - WHERE - WR1: NOT EXISTS(SELF\product_definition_relationship.description); - WR2: NOT EXISTS(SELF\property_definition.description); - WR3: SELF\product_definition_relationship.id = SELF\product_definition.id; - WR4: SELF\product_definition_relationship.name = 'definition usage'; - WR5: NOT ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'PRODUCT_DEFINITION_USAGE' IN TYPEOF(SELF)); -END_ENTITY; -(* USED FROM (Assembly_component_mim); *) -ENTITY physical_component - SUPERTYPE OF ( ( ONEOF ( - ASSEMBLY_MODULE_COMPONENT, - ASSEMBLY_MODULE_MACRO_COMPONENT, - BARE_DIE_COMPONENT, - CABLE_COMPONENT, - INTERCONNECT_MODULE_COMPONENT, - INTERCONNECT_MODULE_MACRO_COMPONENT, - PACKAGED_COMPONENT, - ROUTED_INTERCONNECT_COMPONENT, - ROUTED_PHYSICAL_COMPONENT, - SEQUENTIAL_LAMINATE_STACKUP_COMPONENT) )ANDOR( ONEOF ( - PACKAGED_COMPONENT, - ROUTED_PHYSICAL_COMPONENT) ) ) - SUBTYPE OF (assembly_component); -END_ENTITY; -(* USED FROM (Assembly_component_mim); *) -ENTITY thermal_component - SUBTYPE OF (assembly_component); -END_ENTITY; -(* USED FROM (product_property_definition_schema); *) - ENTITY component_path_shape_aspect - SUBTYPE OF (shape_aspect); - location : multi_or_next_assembly_usage_occurrence; - component_shape_aspect : internal_or_reflected_shape_aspect; - UNIQUE - UR1 : location, component_shape_aspect; - END_ENTITY; -(* USED FROM (Requirement_decomposition_mim); *) -ENTITY material_electrical_conductivity_category - SUBTYPE OF (group); -END_ENTITY; -(* USED FROM (Requirement_decomposition_mim); *) -ENTITY operational_requirement_relationship - SUBTYPE OF (property_definition, product_definition_relationship); -END_ENTITY; -(* USED FROM (Requirement_decomposition_mim); *) -ENTITY predefined_requirement_view_definition - SUPERTYPE OF ( ( (ONEOF ( - ASSEMBLY_SPACING_REQUIREMENT, - ASSEMBLY_GROUP_SPACING_REQUIREMENT, - ITEM_RESTRICTED_REQUIREMENT, - LAYOUT_SPACING_REQUIREMENT)) )ANDOR( (ONEOF ( - ASSEMBLY_SPACING_REQUIREMENT, - ASSEMBLY_GROUP_SPACING_REQUIREMENT, - ITEM_RESTRICTED_REQUIREMENT)) ) ) - SUBTYPE OF (product_definition); -END_ENTITY; -(* USED FROM (person_organization_schema); *) - ENTITY person_and_organization_role; - name : label; - DERIVE - description : text := get_description_value(SELF); - WHERE - WR1: SIZEOF(USEDIN(SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'DESCRIPTION_ATTRIBUTE.DESCRIBED_ITEM')) <= 1; - END_ENTITY; -(* USED FROM (person_organization_schema); *) - ENTITY organization_role; - name : label; - DERIVE - description : text := get_description_value(SELF); - WHERE - WR1: SIZEOF(USEDIN(SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'DESCRIPTION_ATTRIBUTE.DESCRIBED_ITEM')) <= 1; - END_ENTITY; -(* USED FROM (product_definition_schema); *) - ENTITY product_definition_with_associated_documents - SUBTYPE OF (product_definition); - documentation_ids : SET [1:?] OF document; - END_ENTITY; -(* USED FROM (Extended_basic_geometry_mim); *) - ENTITY geometric_model_element_relationship - SUBTYPE OF (geometric_representation_item, representation_item_relationship); - SELF\representation_item_relationship.relating_representation_item : geometric_representation_item; - SELF\representation_item_relationship.related_representation_item: geometric_representation_item; - UNIQUE - UR1: SELF\representation_item_relationship.relating_representation_item, - SELF\representation_item_relationship.related_representation_item; - WHERE - WR1: SELF\representation_item_relationship.relating_representation_item :<>: - SELF\representation_item_relationship.related_representation_item; - END_ENTITY; -(* USED FROM (geometric_model_schema); *) -ENTITY circular_area - SUBTYPE OF (primitive_2d); - centre : cartesian_point; - radius : positive_length_measure; -END_ENTITY; -(* USED FROM (geometric_model_schema); *) -ENTITY elliptic_area - SUBTYPE OF (primitive_2d); - position : axis2_placement_2d; - semi_axis_1 : positive_length_measure; - semi_axis_2 : positive_length_measure; -END_ENTITY; -(* USED FROM (geometric_model_schema); *) -ENTITY polygonal_area - SUBTYPE OF (primitive_2d); - bounds : LIST[3:?] OF UNIQUE cartesian_point; -END_ENTITY; -(* USED FROM (geometric_model_schema); *) -ENTITY primitive_2d - SUPERTYPE OF (ONEOF ( - CIRCULAR_AREA, - ELLIPTIC_AREA, - RECTANGULAR_AREA, - POLYGONAL_AREA, - HALF_SPACE_2D)) - SUBTYPE OF (geometric_representation_item); -WHERE - WR1: SELF\geometric_representation_item.dim = 2; -END_ENTITY; -(* USED FROM (geometric_model_schema); *) -ENTITY rectangular_area - SUBTYPE OF (primitive_2d); - position : axis2_placement_2d; - x : positive_length_measure; - y : positive_length_measure; -END_ENTITY; -(* USED FROM (geometric_model_schema); *) -ENTITY boolean_result - SUBTYPE OF (geometric_representation_item); - operator : boolean_operator; - first_operand : boolean_operand; - second_operand : boolean_operand; -END_ENTITY; -(* USED FROM (geometric_model_schema); *) -ENTITY csg_solid - SUBTYPE OF (solid_model); - tree_root_expression : csg_select; -END_ENTITY; -(* USED FROM (geometric_model_schema); *) -ENTITY half_space_2d - SUBTYPE OF (primitive_2d); - base_curve : curve; - agreement_flag : BOOLEAN; -END_ENTITY; -(* USED FROM (geometric_model_schema); *) -ENTITY area_with_outer_boundary - SUBTYPE OF (half_space_2d); - SELF\half_space_2d.base_curve : composite_curve; -WHERE - WR1: base_curve\composite_curve.closed_curve = TRUE; -END_ENTITY; -(* USED FROM (product_property_representation_schema); *) - ENTITY shape_definition_representation - SUBTYPE OF (property_definition_representation); - SELF\property_definition_representation.definition : property_definition; - SELF\property_definition_representation.used_representation : shape_representation; - WHERE - WR1: ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(definition)) OR - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_DEFINITION' IN TYPEOF(definition\property_definition.definition)); - END_ENTITY; -(* USED FROM (measure_schema); *) - 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; -(* USED FROM (aic_curve_swept_solid); *) - ENTITY ruled_surface_swept_area_solid - SUBTYPE OF(surface_curve_swept_area_solid); - WHERE - WR1: ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.B_SPLINE_SURFACE' IN TYPEOF(SELF.reference_surface)) AND - (SELF.reference_surface\b_spline_surface.u_degree = 1); - WR2: ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PCURVE' IN TYPEOF(SELF.directrix)) OR - (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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; -(* USED FROM (External_unit_mim); *) - ENTITY externally_defined_context_dependent_unit - SUBTYPE OF (context_dependent_unit,externally_defined_item); - END_ENTITY; -(* USED FROM (geometry_schema); *) -ENTITY bezier_curve - SUBTYPE OF (b_spline_curve); -END_ENTITY; -(* USED FROM (geometry_schema); *) -ENTITY bezier_surface - SUBTYPE OF (b_spline_surface); -END_ENTITY; -(* USED FROM (geometry_schema); *) -ENTITY quasi_uniform_curve - SUBTYPE OF (b_spline_curve); -END_ENTITY; -(* USED FROM (geometry_schema); *) -ENTITY quasi_uniform_surface - SUBTYPE OF (b_spline_surface); -END_ENTITY; -(* USED FROM (External_unit_mim); *) - ENTITY externally_defined_conversion_based_unit - SUBTYPE OF (conversion_based_unit,externally_defined_item); - END_ENTITY; - -(* Implicit interfaced from: mathematical_functions_schema *) -ENTITY restriction_function - SUBTYPE OF (maths_function, unary_generic_expression); - SELF\unary_generic_expression.operand : maths_space; -END_ENTITY; -(* USED FROM (geometry_schema); *) -ENTITY uniform_curve - SUBTYPE OF (b_spline_curve); -END_ENTITY; -(* USED FROM (geometry_schema); *) -ENTITY uniform_surface - SUBTYPE OF (b_spline_surface); -END_ENTITY; -(* USED FROM (geometry_schema); *) -ENTITY boundary_curve - SUBTYPE OF (composite_curve_on_surface); -WHERE - WR1: SELF\composite_curve.closed_curve; -END_ENTITY; -(* USED FROM (geometric_model_schema); *) -(* Pruned SUPERTYPE *) -ENTITY geometric_set - - SUBTYPE OF (geometric_representation_item); - elements : SET[1:?] OF geometric_set_select; -END_ENTITY; -(* USED FROM (Camera_view_3d_mim); *) - ENTITY hidden_element_over_riding_styled_item - SUBTYPE OF (context_dependent_over_riding_styled_item); - SELF\context_dependent_over_riding_styled_item.style_context : LIST [1:1] OF presentation_view; - SELF\styled_item.item : camera_image; - INVERSE - container : SET[1:?] OF presentation_view FOR items; - WHERE - WR1: 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CAMERA_MODEL_D3_WITH_HLHSR' IN TYPEOF - (SELF.item\mapped_item.mapping_source.mapping_origin); - END_ENTITY; -(* USED FROM (Geometric_model_2d_3d_relationship_mim); *) -ENTITY axis_placement_2d_3d_mapping - SUBTYPE OF (item_defined_transformation); - SELF\item_defined_transformation.transform_item_1 : axis2_placement_2d; - SELF\item_defined_transformation.transform_item_2 : axis2_placement_3d; -END_ENTITY; -(* USED FROM (product_property_representation_schema); *) - 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: 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PRODUCT_DEFINITION_RELATIONSHIP' IN TYPEOF(SELF.represented_product_relation.definition); - WR2: SIZEOF(USEDIN(SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'DESCRIPTION_ATTRIBUTE.DESCRIBED_ITEM')) <= 1; - WR3: SIZEOF(USEDIN(SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'NAME_ATTRIBUTE.NAMED_ITEM')) <= 1; - END_ENTITY; -(* USED FROM (representation_schema); *) - ENTITY functionally_defined_transformation; - name : label; - description : OPTIONAL text; - END_ENTITY; -(* USED FROM (representation_schema); *) - 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; -(* USED FROM (Characteristic_mim); *) - ENTITY characteristic_data_table_header - SUBTYPE OF (general_property); - END_ENTITY; -(* USED FROM (Characteristic_mim); *) - ENTITY characteristic_data_column_header - SUBTYPE OF (general_property); - END_ENTITY; -(* USED FROM (Characteristic_mim); *) - ENTITY characteristic_data_column_header_link - SUBTYPE OF (general_property_relationship); - END_ENTITY; -(* USED FROM (Characteristic_mim); *) - ENTITY characteristic_data_table_header_decomposition - SUBTYPE OF (general_property_relationship); - END_ENTITY; -(* USED FROM (Characteristic_mim); *) - ENTITY characteristic_type - SUBTYPE OF (group); - END_ENTITY; -(* USED FROM (Characteristic_mim); *) - ENTITY null_representation_item - SUBTYPE OF (representation_item); - END_ENTITY; -(* USED FROM (Characteristic_mim); *) - 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; -(* USED FROM (Characteristic_mim); *) - ENTITY row_representation_item - SUBTYPE OF(compound_representation_item); - SELF\compound_representation_item.item_element : list_representation_item; - END_ENTITY; -(* USED FROM (presentation_organization_schema); *) - ENTITY camera_model_d3_with_hlhsr - SUBTYPE OF (camera_model_d3); - hidden_line_surface_removal : BOOLEAN; - END_ENTITY; -(* USED FROM (External_properties_mim); *) - ENTITY externally_defined_general_property - SUBTYPE OF (general_property, externally_defined_item); - END_ENTITY; -(* USED FROM (Footprint_definition_mim); *) -ENTITY breakout_footprint_definition - SUBTYPE OF (generic_footprint_definition); -END_ENTITY; -(* USED FROM (Footprint_definition_mim); *) -ENTITY footprint_definition - SUBTYPE OF (generic_footprint_definition); -END_ENTITY; -(* USED FROM (Footprint_definition_mim); *) -ENTITY generic_footprint_definition - ABSTRACT SUPERTYPE OF (ONEOF ( - FOOTPRINT_DEFINITION, - BREAKOUT_FOOTPRINT_DEFINITION)) - - SUBTYPE OF (multi_stratum_structured_template); -END_ENTITY; -(* USED FROM (Footprint_definition_mim); *) -ENTITY package_footprint_relationship_definition - SUBTYPE OF (part_template_definition); -END_ENTITY; -(* USED FROM (Assembly_component_placement_requirements_mim); *) - ENTITY assembly_group_spacing_requirement - SUBTYPE OF (predefined_requirement_view_definition); - END_ENTITY; -(* USED FROM (Assembly_component_placement_requirements_mim); *) - ENTITY assembly_spacing_requirement - SUBTYPE OF (predefined_requirement_view_definition); - END_ENTITY; -(* USED FROM (Assembly_component_placement_requirements_mim); *) - ENTITY group_product_definition - SUBTYPE OF (component_definition); - END_ENTITY; -(* USED FROM (Assembly_component_placement_requirements_mim); *) - ENTITY item_restricted_requirement - SUBTYPE OF (group, predefined_requirement_view_definition); - END_ENTITY; -(* USED FROM (Assembly_component_placement_requirements_mim); *) - ENTITY mounting_restriction_area - SUBTYPE OF (shape_aspect); - END_ENTITY; -(* USED FROM (Assembly_component_placement_requirements_mim); *) - ENTITY mounting_restriction_volume - SUBTYPE OF (shape_aspect); - END_ENTITY; -(* USED FROM (Conductivity_material_aspects_mim); *) - ENTITY material_designation_with_conductivity_classification - SUBTYPE OF (material_designation); - END_ENTITY; -(* USED FROM (Classification_assignment_mim); *) -ENTITY applied_classification_assignment - SUBTYPE OF (classification_assignment); - items : SET[1:?] OF classification_item; -END_ENTITY; -(* USED FROM (classification_schema); *) -ENTITY class - SUBTYPE OF (group); -END_ENTITY; -(* USED FROM (classification_schema); *) -ENTITY class_by_extension - SUBTYPE OF (class); -END_ENTITY; -(* USED FROM (classification_schema); *) -ENTITY class_by_intension - SUBTYPE OF (class); -END_ENTITY; -(* USED FROM (management_resources_schema); *) - ENTITY classification_assignment - ABSTRACT SUPERTYPE; - assigned_class : group; - role : classification_role; - END_ENTITY; -(* USED FROM (presentation_organization_schema); *) - ENTITY light_source_positional - SUBTYPE OF (light_source); - position : cartesian_point; - constant_attenuation : REAL; - distance_attenuation : REAL; - END_ENTITY; -(* USED FROM (geometry_schema); *) -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; -(* USED FROM (geometry_schema); *) -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; -(* USED FROM (geometry_schema); *) -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; -(* USED FROM (geometry_schema); *) -(* Pruned SUPERTYPE *) -ENTITY cartesian_point - - SUBTYPE OF (point); - coordinates : LIST[1:3] OF length_measure; -END_ENTITY; -(* USED FROM (geometry_schema); *) -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; -(* USED FROM (geometry_schema); *) -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; -(* USED FROM (geometric_model_schema); *) -(* Pruned SUPERTYPE *) -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; -(* USED FROM (geometry_schema); *) -ENTITY geometric_representation_context - SUPERTYPE OF (ONEOF ( - GEOMETRIC_REPRESENTATION_CONTEXT_WITH_PARAMETER, - PATH_PARAMETER_REPRESENTATION_CONTEXT) ) - SUBTYPE OF (representation_context); - coordinate_space_dimension : dimension_count; -END_ENTITY; -(* USED FROM (solid_shape_element_schema); *) -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 (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE' - IN TYPEOF(first_trim_condition)) - OR ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE' - IN TYPEOF(second_trim_condition))); - WR2: NOT((('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PLANE_ANGLE_MEASURE' - IN TYPEOF(first_trim_condition)) AND - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PLANE_ANGLE_MEASURE' - IN TYPEOF(second_trim_condition))) AND - (first_trim_condition = second_trim_condition)); -END_ENTITY; -(* USED FROM (qualified_measure_schema); *) -ENTITY measure_representation_item - SUBTYPE OF (representation_item, measure_with_unit); -END_ENTITY; -(* USED FROM (representation_schema); *) - ENTITY item_defined_transformation; - name : label; - description : OPTIONAL text; - transform_item_1 : representation_item; - transform_item_2 : representation_item; - END_ENTITY; -(* USED FROM (solid_shape_element_schema); *) -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; -(* USED FROM (Functional_specification_mim); *) -ENTITY functional_specification - SUBTYPE OF (representation); -END_ENTITY; -(* USED FROM (Functional_specification_mim); *) -ENTITY functional_specification_definition - SUBTYPE OF (functional_unit); -END_ENTITY; -(* USED FROM (Signal_mim); *) -ENTITY composite_signal_property_relationship - SUBTYPE OF (property_definition, property_definition_relationship); -WHERE - WR1: SELF\property_definition_relationship.related_property_definition.definition :<>: - SELF\property_definition_relationship.relating_property_definition.definition; -END_ENTITY; -(* USED FROM (Signal_mim); *) -ENTITY signal - SUBTYPE OF (characterized_object); -END_ENTITY; -(* USED FROM (Signal_mim); *) -ENTITY signal_category - SUBTYPE OF (group); -END_ENTITY; -(* USED FROM (Production_rule_mim); *) -ENTITY abstract_variable - SUBTYPE OF (property_definition, property_definition_representation, representation, representation_item); -END_ENTITY; -(* USED FROM (Production_rule_mim); *) -ENTITY atomic_formula - SUBTYPE OF (compound_representation_item); -END_ENTITY; -(* USED FROM (Production_rule_mim); *) -ENTITY attribute_assertion - SUBTYPE OF (fact_type, property_definition_representation, representation); -END_ENTITY; -(* USED FROM (Production_rule_mim); *) -ENTITY back_chaining_rule - SUBTYPE OF (rule_definition); -END_ENTITY; -(* USED FROM (Production_rule_mim); *) -ENTITY back_chaining_rule_body - SUBTYPE OF (property_definition, property_definition_representation, representation); -END_ENTITY; -(* USED FROM (Production_rule_mim); *) -ENTITY complex_clause - SUBTYPE OF (compound_representation_item); -END_ENTITY; -(* USED FROM (Production_rule_mim); *) -ENTITY complex_conjunctive_clause - SUBTYPE OF (complex_clause); -END_ENTITY; -(* USED FROM (Production_rule_mim); *) -ENTITY complex_disjunctive_clause - SUBTYPE OF (complex_clause); -END_ENTITY; -(* USED FROM (Production_rule_mim); *) -ENTITY entity_assertion - SUBTYPE OF (fact_type); -END_ENTITY; -(* USED FROM (Production_rule_mim); *) -ENTITY enum_reference_prefix - SUBTYPE OF (descriptive_representation_item); -END_ENTITY; -(* USED FROM (Production_rule_mim); *) -ENTITY extent - SUBTYPE OF (characterized_object); -END_ENTITY; -(* USED FROM (Production_rule_mim); *) -ENTITY fact_type - SUBTYPE OF (property_definition); -END_ENTITY; -(* USED FROM (Production_rule_mim); *) -ENTITY forward_chaining_rule - SUBTYPE OF (rule_definition); -END_ENTITY; -(* USED FROM (Production_rule_mim); *) -ENTITY forward_chaining_rule_premise - SUBTYPE OF (property_definition, property_definition_representation, representation); -END_ENTITY; -(* USED FROM (Production_rule_mim); *) -ENTITY func - SUBTYPE OF (compound_representation_item); -END_ENTITY; -(* USED FROM (Production_rule_mim); *) -ENTITY global_assignment - SUBTYPE OF (representation_item_relationship); -END_ENTITY; -(* USED FROM (Production_rule_mim); *) -ENTITY ground_fact - SUBTYPE OF (atomic_formula); -END_ENTITY; -(* USED FROM (Production_rule_mim); *) -ENTITY literal_conjunction - SUBTYPE OF (simple_clause); -END_ENTITY; -(* USED FROM (Production_rule_mim); *) -ENTITY literal_disjunction - SUBTYPE OF (simple_clause); -END_ENTITY; -(* USED FROM (Production_rule_mim); *) -ENTITY row_value - SUBTYPE OF (compound_representation_item); -END_ENTITY; -(* USED FROM (Production_rule_mim); *) -ENTITY row_variable - SUBTYPE OF (abstract_variable); -END_ENTITY; -(* USED FROM (Production_rule_mim); *) -ENTITY rule_action - SUBTYPE OF (action); -END_ENTITY; -(* USED FROM (Production_rule_mim); *) -ENTITY rule_condition - SUBTYPE OF (atomic_formula); -END_ENTITY; -(* USED FROM (Production_rule_mim); *) -ENTITY rule_definition - SUBTYPE OF (rule_software_definition); -END_ENTITY; -(* USED FROM (Production_rule_mim); *) -ENTITY rule_superseded_assignment - SUBTYPE OF (action_assignment); - items : SET [1:?] OF rule_superseded_item; -END_ENTITY; -(* USED FROM (Production_rule_mim); *) -ENTITY rule_set - SUBTYPE OF (rule_software_definition); -END_ENTITY; -(* USED FROM (Production_rule_mim); *) -ENTITY rule_software_definition - SUBTYPE OF (product_definition); -END_ENTITY; -(* USED FROM (Production_rule_mim); *) -ENTITY rule_set_group -SUBTYPE OF (rule_software_definition); -END_ENTITY; -(* USED FROM (Production_rule_mim); *) -ENTITY rule_supersedence - SUBTYPE OF (rule_action); -END_ENTITY; -(* USED FROM (Production_rule_mim); *) -ENTITY scalar_variable - SUBTYPE OF (abstract_variable); -END_ENTITY; -(* USED FROM (Production_rule_mim); *) -ENTITY simple_clause - SUBTYPE OF (compound_representation_item); -END_ENTITY; -(* USED FROM (Production_rule_mim); *) -ENTITY symbol - SUBTYPE OF (representation_item); -END_ENTITY; -(* USED FROM (Specification_document_mim); *) - ENTITY document_identifier - SUBTYPE OF (group); - UNIQUE - UR1: SELF\group.name, SELF\group.description; - END_ENTITY; -(* USED FROM (Specification_document_mim); *) - ENTITY document_identifier_assignment - SUBTYPE OF (group_assignment); - SELF\group_assignment.assigned_group : document_identifier; - items : SET [1:?] OF document_identifier_assigned_item; - END_ENTITY; -(* USED FROM (Specification_document_mim); *) - ENTITY partial_document_with_structured_text_representation_assignment - SUBTYPE OF (applied_document_usage_constraint_assignment, characterized_object); - END_ENTITY; -(* USED FROM (Specification_document_mim); *) - ENTITY specification_definition - SUBTYPE OF (product_definition); - END_ENTITY; -(* USED FROM (procedural_shape_model_schema); *) -ENTITY procedural_shape_representation_sequence - SUBTYPE OF (geometric_representation_item, - procedural_representation_sequence); - SELF\procedural_representation_sequence.elements : LIST [1:?] OF shape_representation_item; -END_ENTITY; -(* USED FROM (date_time_schema); *) -ENTITY date_and_time; - date_component : date; - time_component : local_time; -END_ENTITY; -(* USED FROM (date_time_schema); *) -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; -(* USED FROM (procedural_shape_model_schema); *) -ENTITY user_selected_shape_elements - SUBTYPE OF (user_selected_elements); - SELF\user_selected_elements.picked_items : SET [1:?] OF shape_representation_item; -END_ENTITY; -(* USED FROM (date_time_schema); *) -ENTITY date - SUPERTYPE OF (ONEOF ( - CALENDAR_DATE, - ORDINAL_DATE, - WEEK_OF_YEAR_AND_DAY_DATE, - YEAR_MONTH)); - year_component : year_number; -END_ENTITY; -(* USED FROM (management_resources_schema); *) - ENTITY date_and_time_assignment - ABSTRACT SUPERTYPE; - assigned_date_and_time : date_and_time; - role : date_time_role; - END_ENTITY; -(* USED FROM (management_resources_schema); *) - ENTITY date_assignment - ABSTRACT SUPERTYPE; - assigned_date : date; - role : date_role; - END_ENTITY; -(* USED FROM (management_resources_schema); *) - ENTITY identification_assignment - ABSTRACT SUPERTYPE; - assigned_id : identifier; - role : identification_role; - END_ENTITY; -(* USED FROM (product_definition_schema); *) - ENTITY product; - id : identifier; - name : label; - description : OPTIONAL text; - frame_of_reference : SET [1:?] OF product_context; - END_ENTITY; -(* USED FROM (Activity_mim); *) -ENTITY applied_action_assignment - SUBTYPE OF (action_assignment); - items : SET[1:?] OF action_items; -END_ENTITY; -(* USED FROM (action_schema); *) - ENTITY action; - name : label; - description : OPTIONAL text; - chosen_method : action_method; - DERIVE - id : identifier := get_id_value(SELF); - WHERE - WR1: SIZEOF(USEDIN(SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'ID_ATTRIBUTE.IDENTIFIED_ITEM')) <= 1; - END_ENTITY; -(* USED FROM (action_schema); *) - ENTITY action_relationship; - name : label; - description : OPTIONAL text; - relating_action : action; - related_action : action; - END_ENTITY; -(* USED FROM (action_schema); *) - ENTITY action_status; - status : label; - assigned_action : executed_action; - END_ENTITY; -(* USED FROM (action_schema); *) - ENTITY executed_action - SUBTYPE OF (action); - END_ENTITY; -(* USED FROM (basic_attribute_schema); *) - ENTITY id_attribute; - attribute_value : identifier; - identified_item : id_attribute_select; - END_ENTITY; -(* USED FROM (management_resources_schema); *) - ENTITY action_assignment - ABSTRACT SUPERTYPE; - assigned_action : action; - DERIVE - role : object_role := get_role(SELF); - WHERE - WR1: SIZEOF(USEDIN(SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'ROLE_ASSOCIATION.ITEM_WITH_ROLE')) <= 1; - END_ENTITY; -(* USED FROM (representation_schema); *) - ENTITY representation_item_relationship; - name : label; - description : OPTIONAL text; - relating_representation_item : representation_item; - related_representation_item : representation_item; - END_ENTITY; -(* USED FROM (product_structure_schema); *) -ENTITY assembly_component_usage - SUPERTYPE OF ( - QUANTIFIED_ASSEMBLY_COMPONENT_USAGE - ANDOR ONEOF ( - MULTI_LEVEL_REFERENCE_DESIGNATOR, - NEXT_ASSEMBLY_USAGE_OCCURRENCE, - PROMISSORY_USAGE_OCCURRENCE, - SPECIFIED_HIGHER_USAGE_OCCURRENCE)) - SUBTYPE OF (product_definition_usage); - reference_designator : OPTIONAL identifier; -END_ENTITY; -(* USED FROM (product_structure_schema); *) -ENTITY next_assembly_usage_occurrence - SUBTYPE OF (assembly_component_usage); -UNIQUE - UR1 : SELF\assembly_component_usage.reference_designator, SELF\product_definition_relationship.relating_product_definition; -END_ENTITY; -(* USED FROM (product_structure_schema); *) -ENTITY promissory_usage_occurrence - SUBTYPE OF (assembly_component_usage); -END_ENTITY; -(* USED FROM (product_structure_schema); *) -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; -(* USED FROM (solid_shape_element_schema); *) -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; -(* USED FROM (Integral_shield_mim); *) -ENTITY integral_shield - SUBTYPE OF (laminate_component); -END_ENTITY; -(* USED FROM (Integral_shield_mim); *) -ENTITY routed_shield - SUBTYPE OF (integral_shield); -END_ENTITY; -(* USED FROM (Effectivity_application_mim); *) -ENTITY applied_effectivity_assignment - SUBTYPE OF (effectivity_assignment); - items : SET[1:?] OF effectivity_item; -END_ENTITY; -(* USED FROM (Effectivity_application_mim); *) -ENTITY applied_ineffectivity_assignment - SUBTYPE OF (effectivity_assignment); - items : SET [1:?] OF effectivity_item; -WHERE - WR1: SIZEOF(['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LOT_EFFECTIVITY', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SERIAL_NUMBERED_EFFECTIVITY', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PRODUCT_DEFINITION_EFFECTIVITY'] * - TYPEOF(SELF.assigned_effectivity) - ) = 0; -END_ENTITY; -(* USED FROM (effectivity_schema); *) - ENTITY dated_effectivity - SUBTYPE OF (effectivity); - effectivity_end_date : OPTIONAL date_time_or_event_occurrence; - effectivity_start_date : OPTIONAL date_time_or_event_occurrence; - WHERE - WR1: EXISTS(effectivity_end_date) OR EXISTS(effectivity_start_date); - END_ENTITY; -(* USED FROM (effectivity_schema); *) - ENTITY effectivity - SUPERTYPE OF (ONEOF ( - SERIAL_NUMBERED_EFFECTIVITY, - DATED_EFFECTIVITY, - LOT_EFFECTIVITY, - TIME_INTERVAL_BASED_EFFECTIVITY)); - id : identifier; - DERIVE - name : label := get_name_value(SELF); - description : text := get_description_value(SELF); - WHERE - WR1: SIZEOF(USEDIN(SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'NAME_ATTRIBUTE.NAMED_ITEM')) <= 1; - WR2: SIZEOF(USEDIN(SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'DESCRIPTION_ATTRIBUTE.DESCRIBED_ITEM')) <= 1; - END_ENTITY; -(* USED FROM (effectivity_schema); *) - ENTITY effectivity_relationship; - name : label; - description : OPTIONAL text; - related_effectivity : effectivity; - relating_effectivity : effectivity; - END_ENTITY; -(* USED FROM (effectivity_schema); *) - ENTITY lot_effectivity - SUBTYPE OF (effectivity); - effectivity_lot_id : identifier; - effectivity_lot_size : measure_with_unit; - END_ENTITY; -(* USED FROM (effectivity_schema); *) - ENTITY serial_numbered_effectivity - SUBTYPE OF (effectivity); - effectivity_start_id : identifier; - effectivity_end_id : OPTIONAL identifier; - END_ENTITY; -(* USED FROM (effectivity_schema); *) - ENTITY time_interval_based_effectivity - SUBTYPE OF (effectivity); - effectivity_period : time_interval; - END_ENTITY; -(* USED FROM (management_resources_schema); *) - ENTITY effectivity_assignment - ABSTRACT SUPERTYPE; - assigned_effectivity : effectivity; - DERIVE - role : object_role := get_role(SELF); - WHERE - WR1: SIZEOF(USEDIN(SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'ROLE_ASSOCIATION.ITEM_WITH_ROLE')) <= 1; - END_ENTITY; -(* USED FROM (topology_schema); *) - ENTITY poly_loop - SUBTYPE OF (loop,geometric_representation_item); - polygon : LIST [3:?] OF UNIQUE cartesian_point; - END_ENTITY; -(* USED FROM (geometry_schema); *) -ENTITY bounded_curve - SUPERTYPE OF (ONEOF ( - POLYLINE, - B_SPLINE_CURVE, - TRIMMED_CURVE, - BOUNDED_PCURVE, - BOUNDED_SURFACE_CURVE, - COMPOSITE_CURVE)) - SUBTYPE OF (curve); -END_ENTITY; -(* USED FROM (geometry_schema); *) -ENTITY bounded_surface - SUPERTYPE OF (ONEOF ( - B_SPLINE_SURFACE, - RECTANGULAR_TRIMMED_SURFACE, - CURVE_BOUNDED_SURFACE, - RECTANGULAR_COMPOSITE_SURFACE)) - SUBTYPE OF (surface); -END_ENTITY; -(* USED FROM (geometry_schema); *) -ENTITY conic - SUPERTYPE OF (ONEOF ( - CIRCLE, - ELLIPSE, - HYPERBOLA, - PARABOLA)) - SUBTYPE OF (curve); - position : axis2_placement; -END_ENTITY; -(* USED FROM (geometry_schema); *) -(* Pruned SUPERTYPE *) -ENTITY swept_surface - SUPERTYPE OF (ONEOF ( - SURFACE_OF_LINEAR_EXTRUSION, - SURFACE_OF_REVOLUTION)) - SUBTYPE OF (surface); - swept_curve : curve; -END_ENTITY; -(* USED FROM (geometry_schema); *) -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 ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CURVE_BOUNDED_SURFACE' IN TYPEOF(parent_surface))); -END_ENTITY; -(* USED FROM (solid_shape_element_schema); *) -ENTITY solid_with_general_protrusion - SUBTYPE OF (solid_with_protrusion); - profile : positioned_sketch; - reference_point : point; -WHERE - WR1: SIZEOF(['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CURVE_BOUNDED_SURFACE', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.FACE_SURFACE'] * TYPEOF(profile.sketch_basis)) = 1; - WR2: profile IN using_items(reference_point,[]); -END_ENTITY; -(* USED FROM (basic_attribute_schema); *) - ENTITY description_attribute; - attribute_value : text; - described_item : description_attribute_select; - END_ENTITY; -(* USED FROM (measure_schema); *) - ENTITY global_unit_assigned_context - SUBTYPE OF (representation_context); - units : SET [1:?] OF unit; - END_ENTITY; -(* USED FROM (qualified_measure_schema); *) -ENTITY descriptive_representation_item - SUPERTYPE OF (ONEOF ( - TAGGED_TEXT_ITEM, - UNIFORM_RESOURCE_IDENTIFIER) ) - SUBTYPE OF (representation_item); - description : text; -END_ENTITY; -(* USED FROM (representation_schema); *) - ENTITY global_uncertainty_assigned_context - SUBTYPE OF (representation_context); - uncertainty : SET [1:?] OF uncertainty_measure_with_unit; - END_ENTITY; -(* USED FROM (representation_schema); *) - ENTITY representation_context; - context_identifier : identifier; - context_type : text; - INVERSE - representations_in_context : SET [1:?] OF representation FOR context_of_items; - END_ENTITY; -(* USED FROM (representation_schema); *) - ENTITY representation_item - SUPERTYPE OF ( ( ONEOF ( - BINARY_REPRESENTATION_ITEM, - COMPOUND_REPRESENTATION_ITEM, - MAPPED_ITEM, - VALUE_REPRESENTATION_ITEM) )ANDOR( (ONEOF ( - BOOLEAN_REPRESENTATION_ITEM, - DATE_REPRESENTATION_ITEM, - DATE_TIME_REPRESENTATION_ITEM, - INTEGER_REPRESENTATION_ITEM, - LOGICAL_REPRESENTATION_ITEM, - RATIONAL_REPRESENTATION_ITEM, - REAL_REPRESENTATION_ITEM)) )ANDOR( ONEOF ( - MAPPED_ITEM, - STYLED_ITEM) ) ) ; - name : label; - WHERE - WR1: SIZEOF(using_representations(SELF)) > 0; - END_ENTITY; -(* USED FROM (solid_shape_element_schema); *) -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; - -(* Implicit interfaced from: mathematical_functions_schema *) -ENTITY finite_function - SUBTYPE OF (maths_function, generic_literal); - pairs : SET [1:?] OF LIST [2:2] OF maths_value; -WHERE - WR1: VALUE_UNIQUE(list_selected_components(pairs, 1)); -END_ENTITY; - -(* Implicit interfaced from: mathematical_functions_schema *) -ENTITY maths_function - ABSTRACT SUPERTYPE OF (ONEOF ( - FINITE_FUNCTION, - CONSTANT_FUNCTION, - SELECTOR_FUNCTION, - ELEMENTARY_FUNCTION, - RESTRICTION_FUNCTION, - REPACKAGING_FUNCTION, - REINDEXED_ARRAY_FUNCTION, - SERIES_COMPOSED_FUNCTION, - PARALLEL_COMPOSED_FUNCTION, - EXPLICIT_TABLE_FUNCTION, - HOMOGENEOUS_LINEAR_FUNCTION, - GENERAL_LINEAR_FUNCTION, - B_SPLINE_BASIS, - B_SPLINE_FUNCTION, - RATIONALIZE_FUNCTION, - PARTIAL_DERIVATIVE_FUNCTION, - DEFINITE_INTEGRAL_FUNCTION, - ABSTRACTED_EXPRESSION_FUNCTION, - EXPRESSION_DENOTED_FUNCTION, - IMPORTED_POINT_FUNCTION, - IMPORTED_CURVE_FUNCTION, - IMPORTED_SURFACE_FUNCTION, - IMPORTED_VOLUME_FUNCTION, - APPLICATION_DEFINED_FUNCTION)) - SUBTYPE OF (generic_expression); -DERIVE - domain : tuple_space := derive_function_domain(SELF); - range : tuple_space := derive_function_range(SELF); -END_ENTITY; - -(* Implicit interfaced from: mathematical_functions_schema *) -ENTITY selector_function - SUBTYPE OF (maths_function, generic_literal); - selector : input_selector; - source_of_domain : maths_space_or_function; -WHERE - WR1: no_cyclic_domain_reference(source_of_domain, [SELF]); - WR2: expression_is_constant(domain_from(source_of_domain)); -END_ENTITY; -(* USED FROM (product_data_quality_criteria_schema); *) - ENTITY data_quality_criterion_measurement_association - SUBTYPE OF(representation_item_relationship); - SELF\representation_item_relationship.relating_representation_item : data_quality_criterion; - SELF\representation_item_relationship.related_representation_item : data_quality_measurement_requirement; - END_ENTITY; -(* USED FROM (product_data_quality_criteria_schema); *) - ENTITY data_quality_assessment_specification; - description : text; - END_ENTITY; -(* USED FROM (product_data_quality_criteria_schema); *) - ENTITY data_quality_criterion_assessment_association; - criterion : data_quality_criterion; - assessment_specification : data_quality_assessment_specification; - END_ENTITY; -(* USED FROM (product_data_quality_criteria_schema); *) - ENTITY data_quality_assessment_measurement_association; - assessment_specification : data_quality_criterion_assessment_association; - measurement_requirement : data_quality_criterion_measurement_association; - WHERE - WR1 : SELF.measurement_requirement\representation_item_relationship. - relating_representation_item :=: - SELF.assessment_specification.criterion; - END_ENTITY; -(* USED FROM (product_data_quality_criteria_schema); *) - ENTITY data_quality_report_request - ABSTRACT SUPERTYPE OF (ONEOF ( - SUMMARY_REPORT_REQUEST, - DETAILED_REPORT_REQUEST)); - description : text; - criterion_of_report_request : data_quality_criterion; - END_ENTITY; -(* USED FROM (product_data_quality_criteria_schema); *) - ENTITY summary_report_request - SUBTYPE OF(data_quality_report_request); - summary_report_request_type : summary_report_type; - END_ENTITY; -(* USED FROM (product_data_quality_criteria_schema); *) - ENTITY detailed_report_request - SUBTYPE OF(data_quality_report_request); - detailed_report_request_type : detailed_report_type; - report_sequence : preferred_ordering; - END_ENTITY; -(* USED FROM (product_data_quality_criteria_schema); *) - ENTITY detailed_report_request_with_number_of_data - SUBTYPE OF(detailed_report_request); - number_of_data : INTEGER; - DERIVE - SELF\detailed_report_request.detailed_report_request_type:detailed_report_type:= measured_element; - END_ENTITY; -(* USED FROM (Person_organization_assignment_mim); *) -ENTITY applied_organization_assignment - SUBTYPE OF (organization_assignment); - items : SET[1:?] OF organization_item; -END_ENTITY; -(* USED FROM (Person_organization_assignment_mim); *) -ENTITY applied_person_and_organization_assignment - SUBTYPE OF (person_and_organization_assignment); - items : SET[1:?] OF person_and_organization_item; -END_ENTITY; -(* USED FROM (management_resources_schema); *) - ENTITY organization_assignment - ABSTRACT SUPERTYPE; - assigned_organization : organization; - role : organization_role; - END_ENTITY; -(* USED FROM (management_resources_schema); *) - ENTITY person_and_organization_assignment - ABSTRACT SUPERTYPE; - assigned_person_and_organization : person_and_organization; - role : person_and_organization_role; - END_ENTITY; -(* USED FROM (basic_attribute_schema); *) - ENTITY name_attribute; - attribute_value : label; - named_item : name_attribute_select; - END_ENTITY; -(* USED FROM (person_organization_schema); *) - 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; -(* USED FROM (person_organization_schema); *) - ENTITY organization; - id : OPTIONAL identifier; - name : label; - description : OPTIONAL text; - END_ENTITY; -(* USED FROM (person_organization_schema); *) - ENTITY organization_relationship; - name : label; - description : OPTIONAL text; - relating_organization : organization; - related_organization : organization; - END_ENTITY; -(* USED FROM (person_organization_schema); *) - ENTITY organizational_address - SUBTYPE OF (address); - organizations : SET [1:?] OF organization; - description : OPTIONAL text; - END_ENTITY; -(* USED FROM (person_organization_schema); *) - 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; -(* USED FROM (person_organization_schema); *) - ENTITY person_and_organization; - the_person : person; - the_organization : organization; - DERIVE - name : label := get_name_value(SELF); - description : text := get_description_value(SELF); - WHERE - WR1: SIZEOF(USEDIN(SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'NAME_ATTRIBUTE.NAMED_ITEM')) <= 1; - WR2: SIZEOF(USEDIN(SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'DESCRIPTION_ATTRIBUTE.DESCRIBED_ITEM')) <= 1; - END_ENTITY; -(* USED FROM (person_organization_schema); *) - ENTITY personal_address - SUBTYPE OF (address); - people : SET [1:?] OF person; - description : OPTIONAL text; - END_ENTITY; -(* USED FROM (product_data_quality_definition_schema); *) - ENTITY data_quality_definition; - description : text; - END_ENTITY; -(* USED FROM (product_data_quality_definition_schema); *) - ENTITY data_quality_definition_representation_relationship; - description : text; - definition : data_quality_definition; - used_representation : used_quality_representation_select; - END_ENTITY; -(* USED FROM (product_data_quality_definition_schema); *) - ENTITY product_data_and_data_quality_relationship; - description : text; - product_data : product_definition; - data_quality : data_quality_definition; - END_ENTITY; -(* USED FROM (product_data_quality_definition_schema); *) - ENTITY data_quality_definition_relationship; - description : text; - relating_data_quality_definition : data_quality_definition; - related_data_quality_definition : data_quality_definition; - END_ENTITY; -(* USED FROM (product_data_quality_definition_schema); *) - ENTITY software_for_data_quality_check; - description : text; - software_name : text; - software_version : text; - data_quality : data_quality_definition_representation_relationship; - END_ENTITY; -(* USED FROM (solid_shape_element_schema); *) -ENTITY solid_with_through_depression - SUBTYPE OF (solid_with_depression); - exit_faces : SET[1:?] OF face_surface; -WHERE - WR1: SIZEOF(TYPEOF(SELF) * - ['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SOLID_WITH_HOLE', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SOLID_WITH_POCKET', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SOLID_WITH_SLOT']) = 1; -END_ENTITY; -(* USED FROM (solid_shape_element_schema); *) -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; -(* USED FROM (product_data_quality_inspection_result_schema); *) - ENTITY data_quality_inspection_result_with_judgement - SUBTYPE OF(data_quality_inspection_result); - judgement : BOOLEAN; - END_ENTITY; -(* USED FROM (solid_shape_element_schema); *) -ENTITY solid_with_variable_radius_edge_blend - SUBTYPE OF (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; - -(* Implicit interfaced from: mathematical_functions_schema *) -ENTITY integer_tuple_literal - SUBTYPE OF (generic_literal); - lit_value : LIST [1:?] OF INTEGER; -END_ENTITY; - -(* Implicit interfaced from: mathematical_functions_schema *) -ENTITY real_tuple_literal - SUBTYPE OF (generic_literal); - lit_value : LIST [1:?] OF REAL; -END_ENTITY; - -(* Implicit interfaced from: mathematical_functions_schema *) -ENTITY atom_based_literal - SUBTYPE OF (generic_literal); - lit_value : atom_based_value; -END_ENTITY; - -(* Implicit interfaced from: mathematical_functions_schema *) -ENTITY binary_literal - SUBTYPE OF (generic_literal); - lit_value : BINARY; -END_ENTITY; -(* USED FROM (product_data_quality_inspection_result_schema); *) - ENTITY data_quality_report_measurement_association - SUBTYPE OF(representation_item_relationship); - SELF\representation_item_relationship.relating_representation_item : data_quality_measurement_requirement; - SELF\representation_item_relationship.related_representation_item : data_quality_inspection_report; - END_ENTITY; -(* USED FROM (qualified_measure_schema); *) -ENTITY expanded_uncertainty - SUBTYPE OF (standard_uncertainty); - coverage_factor : REAL; -END_ENTITY; - -(* Implicit interfaced from: mathematical_functions_schema *) -ENTITY maths_enum_literal - SUBTYPE OF (generic_literal); - lit_value : maths_enum_atom; -END_ENTITY; - -(* Implicit interfaced from: geometry_schema *) -ENTITY cartesian_transformation_operator - SUPERTYPE OF (ONEOF ( - CARTESIAN_TRANSFORMATION_OPERATOR_2D, - CARTESIAN_TRANSFORMATION_OPERATOR_3D)) - SUBTYPE OF (functionally_defined_transformation, geometric_representation_item); - 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; -(* USED FROM (qualified_measure_schema); *) -ENTITY qualitative_uncertainty - SUBTYPE OF (uncertainty_qualifier); - uncertainty_value : text; -END_ENTITY; -(* USED FROM (qualified_measure_schema); *) -ENTITY precision_qualifier; - precision_value : INTEGER; -END_ENTITY; -(* USED FROM (qualified_measure_schema); *) -ENTITY standard_uncertainty - SUPERTYPE OF ( - EXPANDED_UNCERTAINTY) - SUBTYPE OF (uncertainty_qualifier); - uncertainty_value : REAL; -END_ENTITY; -(* USED FROM (qualified_measure_schema); *) -ENTITY type_qualifier; - name : label; -END_ENTITY; -(* USED FROM (qualified_measure_schema); *) -ENTITY uncertainty_qualifier - SUPERTYPE OF (ONEOF ( - STANDARD_UNCERTAINTY, - QUALITATIVE_UNCERTAINTY)); - measure_name : label; - description : text; -END_ENTITY; -(* USED FROM (qualified_measure_schema); *) -ENTITY value_format_type_qualifier; - format_type : value_format_type; -END_ENTITY; -(* USED FROM (representation_schema); *) - ENTITY uncertainty_assigned_representation - SUBTYPE OF (representation); - uncertainty : SET [1:?] OF uncertainty_measure_with_unit; - END_ENTITY; -(* USED FROM (material_property_definition_schema); *) -ENTITY material_designation; - name : label; - definitions : SET [1:?] OF characterized_definition; -END_ENTITY; -(* USED FROM (solid_shape_element_schema); *) -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) * - ['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SOLID_WITH_CONSTANT_RADIUS_EDGE_BLEND', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SOLID_WITH_VARIABLE_RADIUS_EDGE_BLEND', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SOLID_WITH_CHAMFERED_EDGES']) = 1; - WR2: NOT (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.VERTEX' IN TYPEOF(end_conditions[1])) - AND ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.VERTEX' IN TYPEOF(end_conditions[2]))); - WR3: NOT (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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; -(* USED FROM (shape_data_quality_criteria_schema); *) - ENTITY shape_data_quality_assessment_by_numerical_test - SUBTYPE OF(data_quality_assessment_specification); - threshold : shape_data_quality_value_limit_type_select; - END_ENTITY; -(* USED FROM (person_organization_schema); *) - ENTITY organizational_project_relationship; - name : label; - description : OPTIONAL text; - relating_organizational_project : organizational_project; - related_organizational_project : organizational_project; - END_ENTITY; -(* USED FROM (shape_data_quality_criteria_schema); *) - ENTITY shape_data_quality_value_limit - ABSTRACT SUPERTYPE OF (ONEOF ( - SHAPE_DATA_QUALITY_UPPER_VALUE_LIMIT, - SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT)) - SUBTYPE OF(measure_representation_item, qualified_representation_item); - END_ENTITY; -(* USED FROM (shape_data_quality_criteria_schema); *) - ENTITY shape_data_quality_upper_value_limit - SUBTYPE OF(shape_data_quality_value_limit); - WHERE - WR1 : SELF\qualified_representation_item.qualifiers[1].name = 'maximum'; - END_ENTITY; -(* USED FROM (shape_data_quality_criteria_schema); *) - ENTITY shape_data_quality_lower_value_limit - SUBTYPE OF(shape_data_quality_value_limit); - WHERE - WR1 : SELF\qualified_representation_item.qualifiers[1].name = 'minimum'; - END_ENTITY; -(* USED FROM (shape_data_quality_criteria_schema); *) - ENTITY shape_summary_request_with_representative_value - SUBTYPE OF(summary_report_request); - END_ENTITY; -(* USED FROM (shape_data_quality_criteria_schema); *) - ENTITY shape_data_quality_assessment_by_logical_test - SUBTYPE OF(data_quality_assessment_specification); - END_ENTITY; -(* USED FROM (shape_data_quality_criteria_schema); *) - ENTITY erroneous_data - ABSTRACT SUPERTYPE OF (ONEOF ( - ERRONEOUS_TOPOLOGY, - ERRONEOUS_GEOMETRY, - ERRONEOUS_TOPOLOGY_AND_GEOMETRY_RELATIONSHIP, - ERRONEOUS_MANIFOLD_SOLID_BREP)) - SUBTYPE OF(shape_data_quality_criterion); - END_ENTITY; -(* USED FROM (shape_data_quality_criteria_schema); *) - ENTITY erroneous_topology - ABSTRACT SUPERTYPE OF (ONEOF ( - OPEN_EDGE_LOOP, - OPEN_CLOSED_SHELL, - INCONSISTENT_ADJACENT_FACE_NORMALS, - DISCONNECTED_FACE_SET)) - SUBTYPE OF(erroneous_data); - END_ENTITY; -(* USED FROM (material_property_representation_schema); *) -ENTITY material_property_representation - SUBTYPE OF (property_definition_representation); - dependent_environment : data_environment; -END_ENTITY; -(* USED FROM (shape_data_quality_criteria_schema); *) - ENTITY open_closed_shell - SUBTYPE OF(erroneous_topology); - SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_logical_test; - WHERE - WR1 : validate_measured_data_type(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.BOOLEAN_VALUE'); - WR2 : validate_inspected_elements_type(SELF, - ['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CLOSED_SHELL']); - WR3 : validate_locations_of_extreme_value_type(SELF, - ['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.EDGE_CURVE']); - WR4 : validate_accuracy_types(SELF, - []); - END_ENTITY; -(* USED FROM (shape_data_quality_criteria_schema); *) - ENTITY inconsistent_adjacent_face_normals - SUBTYPE OF(erroneous_topology); - SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_logical_test; - WHERE - WR1 : validate_measured_data_type(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.BOOLEAN_VALUE'); - WR2 : validate_inspected_elements_type(SELF, - ['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.'+ - 'CLOSED_OR_OPEN_SHELL_SELECT']); - WR3 : validate_locations_of_extreme_value_type(SELF, - ['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.EDGE_CURVE']); - WR4 : validate_accuracy_types(SELF, - []); - END_ENTITY; -(* USED FROM (shape_data_quality_criteria_schema); *) - ENTITY disconnected_face_set - SUBTYPE OF(erroneous_topology); - SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_logical_test; - WHERE - WR1 : validate_measured_data_type(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.BOOLEAN_VALUE'); - WR2 : validate_inspected_elements_type(SELF, - ['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CONNECTED_FACE_SET']); - WR3 : validate_locations_of_extreme_value_type(SELF, - []); - WR4 : validate_accuracy_types(SELF, - []); - END_ENTITY; -(* USED FROM (shape_data_quality_criteria_schema); *) - ENTITY erroneous_geometry - ABSTRACT SUPERTYPE OF (ONEOF ( - INCONSISTENT_CURVE_TRANSITION_CODE, - ERRONEOUS_B_SPLINE_CURVE_DEFINITION, - INCONSISTENT_SURFACE_TRANSITION_CODE, - ERRONEOUS_B_SPLINE_SURFACE_DEFINITION)) - SUBTYPE OF(erroneous_data); - END_ENTITY; -(* USED FROM (shape_data_quality_criteria_schema); *) - ENTITY inconsistent_curve_transition_code - SUBTYPE OF(erroneous_geometry); - SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_logical_test; - angle_tolerance : plane_angle_measure; - curvature_ratio_tolerance : ratio_measure; - distance_tolerance : length_measure; - flat_curvature_radius_tolerance : length_measure; - WHERE - WR1 : validate_measured_data_type(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.BOOLEAN_VALUE'); - WR2 : validate_inspected_elements_type(SELF, - ['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.COMPOSITE_CURVE']); - WR3 : validate_locations_of_extreme_value_type(SELF, - ['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.'+ - 'COMPOSITE_CURVE_TRANSITION_LOCATOR']); - WR4 : validate_accuracy_types(SELF, - []); - END_ENTITY; -(* USED FROM (shape_data_quality_criteria_schema); *) - ENTITY erroneous_b_spline_curve_definition - SUBTYPE OF(erroneous_geometry); - SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_logical_test; - WHERE - WR1 : validate_measured_data_type(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.BOOLEAN_VALUE'); - WR2 : validate_inspected_elements_type(SELF, - ['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.B_SPLINE_CURVE_WITH_KNOTS']); - WR3 : validate_locations_of_extreme_value_type(SELF, - []); - WR4 : validate_accuracy_types(SELF, - []); - END_ENTITY; -(* USED FROM (shape_data_quality_criteria_schema); *) - ENTITY inconsistent_surface_transition_code - SUBTYPE OF(erroneous_geometry); - SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_logical_test; - angle_tolerance : plane_angle_measure; - curvature_ratio_tolerance : ratio_measure; - distance_tolerance : length_measure; - flat_curvature_radius_tolerance : length_measure; - WHERE - WR1 : validate_measured_data_type(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.BOOLEAN_VALUE'); - WR2 : validate_inspected_elements_type(SELF, - ['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.RECTANGULAR_COMPOSITE_SURFACE']); - WR3 : validate_locations_of_extreme_value_type(SELF, - ['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.'+ - 'RECTANGULAR_COMPOSITE_SURFACE_TRANSITION_LOCATOR']); - WR4 : validate_accuracy_types(SELF, - []); - END_ENTITY; -(* USED FROM (shape_data_quality_criteria_schema); *) - ENTITY erroneous_b_spline_surface_definition - SUBTYPE OF(erroneous_geometry); - SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_logical_test; - WHERE - WR1 : validate_measured_data_type(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.BOOLEAN_VALUE'); - WR2 : validate_inspected_elements_type(SELF, - ['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.B_SPLINE_SURFACE_WITH_KNOTS']); - WR3 : validate_locations_of_extreme_value_type(SELF, - []); - WR4 : validate_accuracy_types(SELF, - []); - END_ENTITY; -(* USED FROM (shape_data_quality_criteria_schema); *) - ENTITY erroneous_topology_and_geometry_relationship - ABSTRACT SUPERTYPE OF (ONEOF ( - INCONSISTENT_EDGE_AND_CURVE_DIRECTIONS, - INCONSISTENT_FACE_AND_SURFACE_NORMALS, - INCONSISTENT_FACE_AND_CLOSED_SHELL_NORMALS, - INTERSECTING_LOOPS_IN_FACE, - WRONGLY_PLACED_LOOP)) - SUBTYPE OF(erroneous_data); - END_ENTITY; -(* USED FROM (shape_data_quality_criteria_schema); *) - ENTITY inconsistent_edge_and_curve_directions - SUBTYPE OF(erroneous_topology_and_geometry_relationship); - SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_logical_test; - distance_tolerance : length_measure; -- ISO 10303-59 error! - WHERE - WR1 : validate_measured_data_type(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.BOOLEAN_VALUE') - ; - WR2 : validate_inspected_elements_type(SELF, - ['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.EDGE_CURVE']) - ; - WR3 : validate_locations_of_extreme_value_type(SELF, - []); - WR4 : validate_accuracy_types(SELF, - []); - END_ENTITY; -(* USED FROM (shape_data_quality_criteria_schema); *) - ENTITY inconsistent_face_and_surface_normals - SUBTYPE OF(erroneous_topology_and_geometry_relationship); - SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_logical_test; - WHERE - WR1 : validate_measured_data_type(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.BOOLEAN_VALUE'); - WR2 : validate_inspected_elements_type(SELF, - ['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.FACE_SURFACE']); - WR3 : validate_locations_of_extreme_value_type(SELF, - []); - WR4 : validate_accuracy_types(SELF, - []); - END_ENTITY; -(* USED FROM (shape_data_quality_criteria_schema); *) - ENTITY inconsistent_face_and_closed_shell_normals - SUBTYPE OF(erroneous_topology_and_geometry_relationship); - SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_logical_test; - WHERE - WR1 : validate_measured_data_type(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.BOOLEAN_VALUE'); - WR2 : validate_inspected_elements_type(SELF, - ['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.FACE_SURFACE']); - WR3 : validate_locations_of_extreme_value_type(SELF, - []); - WR4 : validate_accuracy_types(SELF, - []); - END_ENTITY; -(* USED FROM (shape_data_quality_criteria_schema); *) - ENTITY intersecting_loops_in_face - SUBTYPE OF(erroneous_topology_and_geometry_relationship); - SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_logical_test; - interference_tolerance : length_measure; - WHERE - WR1 : validate_measured_data_type(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.BOOLEAN_VALUE'); - WR2 : validate_inspected_elements_type(SELF, - ['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.FACE']); - WR3 : validate_locations_of_extreme_value_type(SELF, - ['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.'+ - 'POINT_ON_EDGE_CURVE', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.'+ - 'POINT_ON_EDGE_CURVE']); - WR4 : validate_accuracy_types(SELF, - ['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE']); - END_ENTITY; -(* USED FROM (shape_data_quality_criteria_schema); *) - ENTITY wrongly_placed_loop - SUBTYPE OF(erroneous_topology_and_geometry_relationship); - SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_logical_test; - WHERE - WR1 : validate_measured_data_type(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.BOOLEAN_VALUE'); - WR2 : validate_inspected_elements_type(SELF, - ['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.FACE']); - WR3 : validate_locations_of_extreme_value_type(SELF, - ['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.FACE_BOUND']); - WR4 : validate_accuracy_types(SELF, - ['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE']); - END_ENTITY; -(* USED FROM (shape_data_quality_criteria_schema); *) - ENTITY erroneous_manifold_solid_brep - ABSTRACT SUPERTYPE OF (ONEOF ( - WRONGLY_ORIENTED_VOID, - WRONGLY_PLACED_VOID, - INTERSECTING_SHELLS_IN_SOLID, - SOLID_WITH_WRONG_NUMBER_OF_VOIDS)) - SUBTYPE OF(erroneous_data); - END_ENTITY; -(* USED FROM (shape_data_quality_criteria_schema); *) - ENTITY wrongly_oriented_void - SUBTYPE OF(erroneous_manifold_solid_brep); - SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_logical_test; - WHERE - WR1 : validate_measured_data_type(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.BOOLEAN_VALUE') ; - WR2 : validate_inspected_elements_type(SELF, - ['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.BREP_WITH_VOIDS']); - WR3 : validate_locations_of_extreme_value_type(SELF, - ['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.ORIENTED_CLOSED_SHELL']); - WR4 : validate_accuracy_types(SELF, - []); - END_ENTITY; -(* USED FROM (shape_data_quality_criteria_schema); *) - ENTITY wrongly_placed_void - SUBTYPE OF(erroneous_manifold_solid_brep); - SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_logical_test; - WHERE - WR1 : validate_measured_data_type(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.BOOLEAN_VALUE') ; - WR2 : validate_inspected_elements_type(SELF, - ['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.BREP_WITH_VOIDS']); - WR3 : validate_locations_of_extreme_value_type(SELF, - ['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.ORIENTED_CLOSED_SHELL']); - WR4 : validate_accuracy_types(SELF, - []); - END_ENTITY; -(* USED FROM (shape_data_quality_criteria_schema); *) - ENTITY intersecting_shells_in_solid - SUBTYPE OF(erroneous_manifold_solid_brep); - SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_logical_test; - interference_tolerance : length_measure; - WHERE - WR1 : validate_measured_data_type(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.BOOLEAN_VALUE') ; - WR2 : validate_inspected_elements_type(SELF, - ['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.BREP_WITH_VOIDS']); - WR3 : validate_locations_of_extreme_value_type(SELF, - ['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SURFACE_CURVE']); - WR4 : validate_accuracy_types(SELF, - []); - END_ENTITY; -(* USED FROM (shape_data_quality_criteria_schema); *) - ENTITY solid_with_wrong_number_of_voids - SUBTYPE OF(erroneous_manifold_solid_brep); - SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_logical_test; - WHERE - WR1 : validate_measured_data_type(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.BOOLEAN_VALUE') ; - WR2 : validate_inspected_elements_type(SELF, - ['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.BREP_WITH_VOIDS']); - WR3 : validate_locations_of_extreme_value_type(SELF, - []); - WR4 : validate_accuracy_types(SELF, - []); - END_ENTITY; -(* USED FROM (shape_data_quality_criteria_schema); *) - ENTITY inapt_data - ABSTRACT SUPERTYPE OF (ONEOF ( - INAPT_TOPOLOGY, - INAPT_GEOMETRY, - INAPT_TOPOLOGY_AND_GEOMETRY_RELATIONSHIP, - INAPT_MANIFOLD_SOLID_BREP)) - SUBTYPE OF(shape_data_quality_criterion); - END_ENTITY; -(* USED FROM (shape_data_quality_criteria_schema); *) - ENTITY inapt_topology - ABSTRACT SUPERTYPE OF (ONEOF ( - FREE_EDGE, - NON_MANIFOLD_AT_EDGE, - NON_MANIFOLD_AT_VERTEX, - OVER_USED_VERTEX)) - SUBTYPE OF(inapt_data); - END_ENTITY; -(* USED FROM (presentation_definition_schema); *) - 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; -(* USED FROM (shape_data_quality_criteria_schema); *) - ENTITY non_manifold_at_edge - SUBTYPE OF(inapt_topology); - SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_logical_test; - WHERE - WR1 : validate_measured_data_type(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.BOOLEAN_VALUE'); - WR2 : validate_inspected_elements_type(SELF, - ['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CONNECTED_FACE_SET']); - WR3 : validate_locations_of_extreme_value_type(SELF, - ['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.EDGE_CURVE']); - WR4 : validate_accuracy_types(SELF, - []); - END_ENTITY; -(* USED FROM (shape_data_quality_criteria_schema); *) - ENTITY non_manifold_at_vertex - SUBTYPE OF(inapt_topology); - SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_logical_test; - WHERE - WR1 : validate_measured_data_type(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.BOOLEAN_VALUE'); - WR2 : validate_inspected_elements_type(SELF, - ['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CONNECTED_FACE_SET']); - WR3 : validate_locations_of_extreme_value_type(SELF, - ['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.VERTEX_POINT']); - WR4 : validate_accuracy_types(SELF, - []); - END_ENTITY; -(* USED FROM (shape_data_quality_criteria_schema); *) - ENTITY over_used_vertex - SUBTYPE OF(inapt_topology); - SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; - WHERE - WR1 : ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + - 'SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' - IN TYPEOF(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)) - AND ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.COUNT_MEASURE' - IN value_limit_type(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)); - WR2 : validate_measured_data_type(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.COUNT_MEASURE'); - WR3 : validate_inspected_elements_type(SELF, - ['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.VERTEX_POINT']); - WR4 : validate_locations_of_extreme_value_type(SELF, - []); - WR5 : validate_accuracy_types(SELF, - []); - END_ENTITY; -(* USED FROM (shape_data_quality_criteria_schema); *) - ENTITY inapt_geometry - ABSTRACT SUPERTYPE OF (ONEOF ( - NEARLY_DEGENERATE_GEOMETRY, - DISCONTINUOUS_GEOMETRY, - SELF_INTERSECTING_GEOMETRY, - GEOMETRY_WITH_LOCAL_NEAR_DEGENERACY, - OVERLAPPING_GEOMETRY, - MULTIPLY_DEFINED_GEOMETRY, - GEOMETRY_WITH_LOCAL_IRREGULARITY, - OVERCOMPLEX_GEOMETRY)) - SUBTYPE OF(inapt_data); - END_ENTITY; -(* USED FROM (shape_data_quality_criteria_schema); *) - ENTITY nearly_degenerate_geometry - ABSTRACT SUPERTYPE OF (ONEOF ( - SMALL_AREA_SURFACE, - SHORT_LENGTH_CURVE, - ENTIRELY_NARROW_SURFACE)) - SUBTYPE OF(inapt_geometry); - END_ENTITY; -(* USED FROM (shape_data_quality_criteria_schema); *) - ENTITY small_area_surface - SUBTYPE OF(nearly_degenerate_geometry); - SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; - WHERE - WR1 : ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + - 'SHAPE_DATA_QUALITY_UPPER_VALUE_LIMIT' - IN TYPEOF(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)) - AND ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.AREA_MEASURE' - IN value_limit_type(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)); - WR2 : validate_measured_data_type(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.AREA_MEASURE'); - WR3 : validate_inspected_elements_type(SELF, - ['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SURFACE']); - WR4 : validate_locations_of_extreme_value_type(SELF, - []); - WR5 : validate_accuracy_types(SELF, - ['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.AREA_MEASURE']); - END_ENTITY; -(* USED FROM (shape_data_quality_criteria_schema); *) - ENTITY short_length_curve - SUBTYPE OF(nearly_degenerate_geometry); - SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; - WHERE - WR1 : ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + - 'SHAPE_DATA_QUALITY_UPPER_VALUE_LIMIT' - IN TYPEOF(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)) - AND ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE' - IN value_limit_type(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)); - WR2 : validate_measured_data_type(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE'); - WR3 : validate_inspected_elements_type(SELF, - ['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CURVE']); - WR4 : validate_locations_of_extreme_value_type(SELF, - []); - WR5 : validate_accuracy_types(SELF, - ['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE']); - END_ENTITY; -(* USED FROM (shape_data_quality_criteria_schema); *) - ENTITY entirely_narrow_surface - SUBTYPE OF(nearly_degenerate_geometry); - SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_logical_test; - width_tolerance : length_measure; - WHERE - WR1 : validate_measured_data_type(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.BOOLEAN_VALUE'); - WR2 : validate_inspected_elements_type(SELF, - ['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.BOUNDED_SURFACE']); - WR3 : validate_locations_of_extreme_value_type(SELF, - []); - WR4 : validate_accuracy_types(SELF, - ['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE']); - END_ENTITY; -(* USED FROM (shape_data_quality_criteria_schema); *) - ENTITY discontinuous_geometry - ABSTRACT SUPERTYPE OF (ONEOF ( - G1_DISCONTINUOUS_CURVE, - G2_DISCONTINUOUS_CURVE, - G1_DISCONTINUOUS_SURFACE, - G2_DISCONTINUOUS_SURFACE)) - SUBTYPE OF(inapt_geometry); - END_ENTITY; -(* USED FROM (shape_data_quality_criteria_schema); *) - ENTITY g1_discontinuous_curve - SUBTYPE OF(discontinuous_geometry); - SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; - WHERE - WR1 : ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + - 'SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' - IN TYPEOF(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)) - AND ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PLANE_ANGLE_MEASURE' - IN value_limit_type(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)); - WR2 : validate_measured_data_type(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PLANE_ANGLE_MEASURE'); - WR3 : validate_inspected_elements_type(SELF, - ['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.B_SPLINE_CURVE']); - WR4 : validate_locations_of_extreme_value_type(SELF, - ['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.'+ - 'B_SPLINE_CURVE_KNOT_LOCATOR']); - WR5 : validate_accuracy_types(SELF, - []); - END_ENTITY; -(* USED FROM (shape_data_quality_criteria_schema); *) - ENTITY g2_discontinuous_curve - SUBTYPE OF(discontinuous_geometry); - SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; - assessment_specification_2 : shape_data_quality_assessment_by_numerical_test; - flat_curvature_radius_tolerance : length_measure; - WHERE - WR1 : ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + - 'SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' - IN TYPEOF(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)) - AND ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PLANE_ANGLE_MEASURE' - IN value_limit_type(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)); - WR2 : ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + - 'SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' - IN TYPEOF(assessment_specification_2\shape_data_quality_assessment_by_numerical_test.threshold)) - AND ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.RATIO_MEASURE' - IN value_limit_type(assessment_specification_2\shape_data_quality_assessment_by_numerical_test.threshold)) ; - WR3 : validate_measured_data_type(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.'+ - 'PLANE_ANGLE_AND_RATIO_PAIR'); - WR4 : validate_inspected_elements_type(SELF, - ['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.B_SPLINE_CURVE']); - WR5 : validate_locations_of_extreme_value_type(SELF, - ['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.'+ - 'B_SPLINE_CURVE_KNOT_LOCATOR']); - WR6 : validate_accuracy_types(SELF, - []); - END_ENTITY; -(* USED FROM (shape_data_quality_criteria_schema); *) - ENTITY g1_discontinuous_surface - SUBTYPE OF(discontinuous_geometry); - SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; - WHERE - WR1 : ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + - 'SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' - IN TYPEOF(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)) - AND ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PLANE_ANGLE_MEASURE' - IN value_limit_type(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)) ; - WR2 : validate_measured_data_type(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PLANE_ANGLE_MEASURE'); - WR3 : validate_inspected_elements_type(SELF, - ['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.B_SPLINE_SURFACE']); - WR4 : validate_locations_of_extreme_value_type(SELF, - ['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.'+ - 'B_SPLINE_SURFACE_KNOT_LOCATOR']); - WR5 : validate_accuracy_types(SELF, - ['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PLANE_ANGLE_MEASURE']); - END_ENTITY; -(* USED FROM (shape_data_quality_criteria_schema); *) - ENTITY g2_discontinuous_surface - SUBTYPE OF(discontinuous_geometry); - SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; - assessment_specification_2 : shape_data_quality_assessment_by_numerical_test; - flat_curvature_radius_tolerance : length_measure; - WHERE - WR1 : ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + - 'SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' - IN TYPEOF(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)) - AND ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PLANE_ANGLE_MEASURE' - IN value_limit_type(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)); - WR2 : ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + - 'SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' - IN TYPEOF(assessment_specification_2\shape_data_quality_assessment_by_numerical_test.threshold)) - AND ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.RATIO_MEASURE' - IN value_limit_type(assessment_specification_2\shape_data_quality_assessment_by_numerical_test.threshold)); - WR3 : validate_measured_data_type(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.'+ - 'PLANE_ANGLE_AND_RATIO_PAIR'); - WR4 : validate_inspected_elements_type(SELF, - ['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.B_SPLINE_SURFACE']); - WR5 : validate_locations_of_extreme_value_type(SELF, - ['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.'+ - 'B_SPLINE_SURFACE_KNOT_LOCATOR']); - WR6 : validate_accuracy_types(SELF, - ['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.RATIO_MEASURE']) - ; - END_ENTITY; -(* USED FROM (shape_data_quality_criteria_schema); *) - ENTITY self_intersecting_geometry - ABSTRACT SUPERTYPE OF (ONEOF ( - SELF_INTERSECTING_CURVE, - SELF_INTERSECTING_SURFACE)) - SUBTYPE OF(inapt_geometry); - END_ENTITY; -(* USED FROM (shape_data_quality_criteria_schema); *) - ENTITY self_intersecting_curve - SUBTYPE OF(self_intersecting_geometry); - SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_logical_test; - arc_length_separation_factor : REAL; - interference_tolerance : length_measure; - WHERE - WR1 : validate_measured_data_type(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.BOOLEAN_VALUE'); - WR2 : validate_inspected_elements_type(SELF, - ['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CURVE']); - WR3 : validate_locations_of_extreme_value_type(SELF, - ['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.POINT_ON_CURVE','AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.POINT_ON_CURVE']); - WR4 : validate_accuracy_types(SELF, - ['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE']); - END_ENTITY; -(* USED FROM (shape_data_quality_criteria_schema); *) - ENTITY self_intersecting_surface - SUBTYPE OF(self_intersecting_geometry); - SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_logical_test; - geodesic_separation_factor : REAL; - interference_tolerance : length_measure; - WHERE - WR1 : validate_measured_data_type(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.BOOLEAN_VALUE'); - WR2 : validate_inspected_elements_type(SELF, - ['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SURFACE']); - WR3 : validate_locations_of_extreme_value_type(SELF, - ['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.POINT_ON_SURFACE', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.POINT_ON_SURFACE']); - WR4 : validate_accuracy_types(SELF, - ['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE']); - END_ENTITY; -(* USED FROM (shape_data_quality_criteria_schema); *) - ENTITY geometry_with_local_near_degeneracy - ABSTRACT SUPERTYPE OF (ONEOF ( - CURVE_WITH_SMALL_CURVATURE_RADIUS, - SHORT_LENGTH_CURVE_SEGMENT, - SURFACE_WITH_SMALL_CURVATURE_RADIUS, - SMALL_AREA_SURFACE_PATCH, - NARROW_SURFACE_PATCH, - INDISTINCT_SURFACE_KNOTS, - INDISTINCT_CURVE_KNOTS, - NEARLY_DEGENERATE_SURFACE_BOUNDARY, - NEARLY_DEGENERATE_SURFACE_PATCH)) - SUBTYPE OF(inapt_geometry); - END_ENTITY; -(* USED FROM (shape_data_quality_criteria_schema); *) - ENTITY curve_with_small_curvature_radius - SUBTYPE OF(geometry_with_local_near_degeneracy); - SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; - WHERE - WR1 : ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + - 'SHAPE_DATA_QUALITY_UPPER_VALUE_LIMIT' - IN TYPEOF(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)) - AND ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE' - IN value_limit_type(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)); - WR2 : validate_measured_data_type(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE'); - WR3 : validate_inspected_elements_type(SELF, - ['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CURVE']); - WR4 : validate_locations_of_extreme_value_type(SELF, - ['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.POINT_ON_CURVE']); - WR5 : validate_accuracy_types(SELF, - ['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE']); - END_ENTITY; -(* USED FROM (shape_data_quality_criteria_schema); *) - ENTITY short_length_curve_segment - SUBTYPE OF(geometry_with_local_near_degeneracy); - SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; - WHERE - WR1 : ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + - 'SHAPE_DATA_QUALITY_UPPER_VALUE_LIMIT' - IN TYPEOF(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)) - AND ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE' - IN value_limit_type(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)); - WR2 : validate_measured_data_type(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE'); - WR3 : validate_inspected_elements_type(SELF, - ['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.B_SPLINE_CURVE']); - WR4 : validate_locations_of_extreme_value_type(SELF, - ['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.'+ - 'B_SPLINE_CURVE_SEGMENT']); - WR5 : validate_accuracy_types(SELF, - ['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE']); - END_ENTITY; -(* USED FROM (shape_data_quality_criteria_schema); *) - ENTITY surface_with_small_curvature_radius - SUBTYPE OF(geometry_with_local_near_degeneracy); - SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; - WHERE - WR1 : ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + - 'SHAPE_DATA_QUALITY_UPPER_VALUE_LIMIT' - IN TYPEOF(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)) - AND ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE' - IN value_limit_type(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)); - WR2 : validate_measured_data_type(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE'); - WR3 : validate_inspected_elements_type(SELF, - ['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SURFACE']); - WR4 : validate_locations_of_extreme_value_type(SELF, - ['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.POINT_ON_SURFACE']); - WR5 : validate_accuracy_types(SELF, - ['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE']); - END_ENTITY; -(* USED FROM (shape_data_quality_criteria_schema); *) - ENTITY small_area_surface_patch - SUBTYPE OF(geometry_with_local_near_degeneracy); - SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; - WHERE - WR1 : ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + - 'SHAPE_DATA_QUALITY_UPPER_VALUE_LIMIT' - IN TYPEOF(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)) - AND ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.AREA_MEASURE' - IN value_limit_type(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)); - WR2 : validate_measured_data_type(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.AREA_MEASURE'); - WR3 : validate_inspected_elements_type(SELF, - ['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.B_SPLINE_SURFACE']); - WR4 : validate_locations_of_extreme_value_type(SELF, - ['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.'+ - 'B_SPLINE_SURFACE_PATCH']); - WR5 : validate_accuracy_types(SELF, - ['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.AREA_MEASURE']); - END_ENTITY; -(* USED FROM (shape_data_quality_criteria_schema); *) - ENTITY narrow_surface_patch - SUBTYPE OF(geometry_with_local_near_degeneracy); - SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_logical_test; - width_tolerance : length_measure; - WHERE - WR1 : validate_measured_data_type(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.BOOLEAN_VALUE'); - WR2 : validate_inspected_elements_type(SELF, - ['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.B_SPLINE_SURFACE']); - WR3 : validate_locations_of_extreme_value_type(SELF, - ['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.'+ - 'B_SPLINE_SURFACE_PATCH']); - WR4 : validate_accuracy_types(SELF, - ['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE']); - END_ENTITY; -(* USED FROM (shape_data_quality_criteria_schema); *) - ENTITY indistinct_surface_knots - SUBTYPE OF(geometry_with_local_near_degeneracy); - SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; - WHERE - WR1 : ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + - 'SHAPE_DATA_QUALITY_UPPER_VALUE_LIMIT' - IN TYPEOF(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)) - AND ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PARAMETER_VALUE' - IN value_limit_type(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)); - WR2 : validate_measured_data_type(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PARAMETER_VALUE'); - WR3 : validate_inspected_elements_type(SELF, - ['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.B_SPLINE_SURFACE_WITH_KNOTS']); - WR4 : validate_locations_of_extreme_value_type(SELF, - ['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.'+ - 'B_SPLINE_SURFACE_KNOT_LOCATOR']); - WR5 : validate_accuracy_types(SELF, - []); - END_ENTITY; -(* USED FROM (shape_data_quality_criteria_schema); *) - ENTITY indistinct_curve_knots - SUBTYPE OF(geometry_with_local_near_degeneracy); - SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; - WHERE - WR1 : ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + - 'SHAPE_DATA_QUALITY_UPPER_VALUE_LIMIT' - IN TYPEOF(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)) - AND ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PARAMETER_VALUE' - IN value_limit_type(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)); - WR2 : validate_measured_data_type(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PARAMETER_VALUE'); - WR3 : validate_inspected_elements_type(SELF, - ['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.B_SPLINE_CURVE_WITH_KNOTS']); - WR4 : validate_locations_of_extreme_value_type(SELF, - ['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.'+ - 'B_SPLINE_CURVE_KNOT_LOCATOR']); - WR5 : validate_accuracy_types(SELF, - []); - END_ENTITY; -(* USED FROM (shape_data_quality_criteria_schema); *) - ENTITY nearly_degenerate_surface_boundary - SUBTYPE OF(geometry_with_local_near_degeneracy); - SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; - WHERE - WR1 : ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + - 'SHAPE_DATA_QUALITY_VALUE_RANGE' - IN TYPEOF(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)) - AND ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE' - IN value_limit_type(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)); - WR2 : validate_measured_data_type(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE'); - WR3 : validate_inspected_elements_type(SELF, - ['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.'+ - 'B_SPLINE_OR_RECTANGULAR_COMPOSITE_SURFACE_SELECT']); - WR4 : validate_locations_of_extreme_value_type(SELF, - ['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.'+ - 'BOUNDARY_CURVE_OF_B_SPLINE_OR_RECTANGULAR_COMPOSITE_SURFACE']); - WR5 : validate_accuracy_types(SELF, - ['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE']); - END_ENTITY; -(* USED FROM (shape_data_quality_criteria_schema); *) - ENTITY nearly_degenerate_surface_patch - SUBTYPE OF(geometry_with_local_near_degeneracy); - SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; - WHERE - WR1 : ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + - 'SHAPE_DATA_QUALITY_VALUE_RANGE' - IN TYPEOF(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)) - AND ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE' - IN value_limit_type(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)); - WR2 : validate_measured_data_type(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE'); - WR3 : validate_inspected_elements_type(SELF, - ['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.B_SPLINE_SURFACE']); - WR4 : validate_locations_of_extreme_value_type(SELF, - ['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.'+ - 'B_SPLINE_SURFACE_PATCH']); - WR5 : validate_accuracy_types(SELF, - ['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE']); - END_ENTITY; -(* USED FROM (shape_data_quality_criteria_schema); *) - ENTITY overlapping_geometry - ABSTRACT SUPERTYPE OF (ONEOF ( - PARTLY_OVERLAPPING_CURVES, - PARTLY_OVERLAPPING_SURFACES)) - SUBTYPE OF(inapt_geometry); - END_ENTITY; -(* USED FROM (shape_data_quality_criteria_schema); *) - ENTITY partly_overlapping_curves - SUBTYPE OF(overlapping_geometry); - SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; - interference_tolerance : length_measure; - WHERE - WR1 : ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + - 'SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' - IN TYPEOF(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)) - AND ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE' - IN value_limit_type(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)); - WR2 : validate_measured_data_type(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE'); - WR3 : validate_inspected_elements_type(SELF, - ['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CURVE','AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CURVE']); - WR4 : validate_locations_of_extreme_value_type(SELF, - ['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.TRIMMED_CURVE','AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.TRIMMED_CURVE']); - WR5 : validate_accuracy_types(SELF, - ['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE']); - END_ENTITY; -(* USED FROM (shape_data_quality_criteria_schema); *) - ENTITY partly_overlapping_surfaces - SUBTYPE OF(overlapping_geometry); - SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; - interference_tolerance : length_measure; - WHERE - WR1 : ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + - 'SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' - IN TYPEOF(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)) - AND ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.AREA_MEASURE' - IN value_limit_type(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)); - WR2 : validate_measured_data_type(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.AREA_MEASURE'); - WR3 : validate_inspected_elements_type(SELF, - ['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SURFACE','AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SURFACE']); - WR4 : validate_locations_of_extreme_value_type(SELF, - ['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CURVE_BOUNDED_SURFACE', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CURVE_BOUNDED_SURFACE']); - WR5 : validate_accuracy_types(SELF, - ['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.AREA_MEASURE']); - END_ENTITY; -(* USED FROM (shape_data_quality_criteria_schema); *) - ENTITY multiply_defined_geometry - ABSTRACT SUPERTYPE OF (ONEOF ( - MULTIPLY_DEFINED_CURVES, - MULTIPLY_DEFINED_SURFACES, - MULTIPLY_DEFINED_CARTESIAN_POINTS, - MULTIPLY_DEFINED_DIRECTIONS, - MULTIPLY_DEFINED_PLACEMENTS)) - SUBTYPE OF(inapt_geometry); - END_ENTITY; -(* USED FROM (shape_data_quality_criteria_schema); *) - ENTITY multiply_defined_curves - SUBTYPE OF(multiply_defined_geometry); - SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; - WHERE - WR1 : ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + - 'SHAPE_DATA_QUALITY_UPPER_VALUE_LIMIT' - IN TYPEOF(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)) - AND ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE' - IN value_limit_type(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)); - WR2 : validate_measured_data_type(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE'); - WR3 : validate_inspected_elements_type(SELF, - ['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CURVE','AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CURVE']); - WR4 : validate_locations_of_extreme_value_type(SELF, - []); - WR5 : validate_accuracy_types(SELF, - ['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE']); - END_ENTITY; -(* USED FROM (shape_data_quality_criteria_schema); *) - ENTITY multiply_defined_surfaces - SUBTYPE OF(multiply_defined_geometry); - SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; - WHERE - WR1 : ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + - 'SHAPE_DATA_QUALITY_UPPER_VALUE_LIMIT' - IN TYPEOF(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)) AND - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE' - IN value_limit_type(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)); - WR2 : validate_measured_data_type(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE'); - WR3 : validate_inspected_elements_type(SELF, - ['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SURFACE','AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SURFACE']); - WR4 : validate_locations_of_extreme_value_type(SELF, - []); - WR5 : validate_accuracy_types(SELF, - ['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE']); - END_ENTITY; -(* USED FROM (shape_data_quality_criteria_schema); *) - ENTITY multiply_defined_cartesian_points - SUBTYPE OF(multiply_defined_geometry); - SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; - WHERE - WR1 : ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + - 'SHAPE_DATA_QUALITY_UPPER_VALUE_LIMIT' - IN TYPEOF(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)) - AND ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE' - IN value_limit_type(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)); - WR2 : validate_measured_data_type(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE'); - WR3 : validate_inspected_elements_type(SELF, - ['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CARTESIAN_POINT','AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CARTESIAN_POINT']); - WR4 : validate_locations_of_extreme_value_type(SELF, - []); - WR5 : validate_accuracy_types(SELF, - ['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE']); - END_ENTITY; -(* USED FROM (shape_data_quality_criteria_schema); *) - ENTITY multiply_defined_directions - SUBTYPE OF(multiply_defined_geometry); - SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; - WHERE - WR1 : ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + - 'SHAPE_DATA_QUALITY_UPPER_VALUE_LIMIT' - IN TYPEOF(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)) - AND ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PLANE_ANGLE_MEASURE' - IN value_limit_type(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)); - WR2 : validate_measured_data_type(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PLANE_ANGLE_MEASURE'); - WR3 : validate_inspected_elements_type(SELF, - ['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.DIRECTION','AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.DIRECTION']); - WR4 : validate_locations_of_extreme_value_type(SELF, - []); - WR5 : validate_accuracy_types(SELF, - []); - END_ENTITY; -(* USED FROM (presentation_definition_schema); *) - ENTITY annotation_text_character - SUBTYPE OF (mapped_item); - alignment : text_alignment; - SELF\mapped_item.mapping_target : axis2_placement; - WHERE - WR1: 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CHARACTER_GLYPH_SYMBOL' IN - TYPEOF (SELF\mapped_item.mapping_source.mapped_representation); - WR2: 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.GEOMETRIC_REPRESENTATION_ITEM' IN - TYPEOF (SELF); - END_ENTITY; -(* USED FROM (shape_data_quality_criteria_schema); *) - ENTITY geometry_with_local_irregularity - ABSTRACT SUPERTYPE OF (ONEOF ( - EXTREME_PATCH_WIDTH_VARIATION, - ZERO_SURFACE_NORMAL, - ABRUPT_CHANGE_OF_SURFACE_NORMAL)) - SUBTYPE OF(inapt_geometry); - END_ENTITY; -(* USED FROM (shape_data_quality_criteria_schema); *) - ENTITY extreme_patch_width_variation - SUBTYPE OF(geometry_with_local_irregularity); - SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; - WHERE - WR1 : ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + - 'SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' - IN TYPEOF(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)) - AND ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.RATIO_MEASURE' - IN value_limit_type(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)); - WR2 : validate_measured_data_type(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.RATIO_MEASURE'); - WR3 : validate_inspected_elements_type(SELF, - ['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.B_SPLINE_SURFACE']); - WR4 : validate_locations_of_extreme_value_type(SELF, - ['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.'+ - 'B_SPLINE_SURFACE_KNOT_LOCATOR']); - WR5 : validate_accuracy_types(SELF, - ['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE']); - END_ENTITY; -(* USED FROM (shape_data_quality_criteria_schema); *) - ENTITY zero_surface_normal - SUBTYPE OF(geometry_with_local_irregularity); - SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; - WHERE - WR1 : ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + - 'SHAPE_DATA_QUALITY_UPPER_VALUE_LIMIT' - IN TYPEOF(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)) - AND ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PLANE_ANGLE_MEASURE' - IN value_limit_type(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)); - WR2 : validate_measured_data_type(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PLANE_ANGLE_MEASURE'); - WR3 : validate_inspected_elements_type(SELF, - ['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SURFACE']); - WR4 : validate_locations_of_extreme_value_type(SELF, - ['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.POINT_ON_SURFACE']); - WR5 : validate_accuracy_types(SELF, - ['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PLANE_ANGLE_MEASURE']); - END_ENTITY; -(* USED FROM (shape_data_quality_criteria_schema); *) - ENTITY abrupt_change_of_surface_normal - SUBTYPE OF(geometry_with_local_irregularity); - SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_logical_test; - small_vector_tolerance : length_measure; - test_point_distance_tolerance : length_measure; - WHERE - WR1 : validate_measured_data_type(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.BOOLEAN_VALUE'); - WR2 : validate_inspected_elements_type(SELF, - ['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SURFACE']); - WR3 : validate_locations_of_extreme_value_type(SELF, - ['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.POINT_ON_SURFACE', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.POINT_ON_SURFACE']); - WR4 : validate_accuracy_types(SELF, - []); - END_ENTITY; -(* USED FROM (shape_data_quality_criteria_schema); *) - ENTITY overcomplex_geometry - ABSTRACT SUPERTYPE OF (ONEOF ( - EXCESSIVELY_HIGH_DEGREE_CURVE, - EXCESSIVELY_HIGH_DEGREE_SURFACE, - SURFACE_WITH_EXCESSIVE_PATCHES_IN_ONE_DIRECTION, - CURVE_WITH_EXCESSIVE_SEGMENTS, - HIGH_DEGREE_LINEAR_CURVE, - HIGH_DEGREE_PLANAR_SURFACE, - HIGH_DEGREE_CONIC, - HIGH_DEGREE_AXI_SYMMETRIC_SURFACE)) - SUBTYPE OF(inapt_geometry); - END_ENTITY; -(* USED FROM (shape_data_quality_criteria_schema); *) - ENTITY excessively_high_degree_curve - SUBTYPE OF(overcomplex_geometry); - SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; - WHERE - WR1 : ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + - 'SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' - IN TYPEOF(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)) - AND ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.COUNT_MEASURE' - IN value_limit_type(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)); - WR2 : validate_measured_data_type(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.COUNT_MEASURE'); - WR3 : validate_inspected_elements_type(SELF, - ['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.B_SPLINE_CURVE']); - WR4 : validate_locations_of_extreme_value_type(SELF, - []); - WR5 : validate_accuracy_types(SELF, - []); - END_ENTITY; -(* USED FROM (shape_data_quality_criteria_schema); *) - ENTITY excessively_high_degree_surface - SUBTYPE OF(overcomplex_geometry); - SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; - WHERE - WR1 : ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + - 'SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' - IN TYPEOF(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)) - AND ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.COUNT_MEASURE' - IN value_limit_type(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)); - WR2 : validate_measured_data_type(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.COUNT_MEASURE'); - WR3 : validate_inspected_elements_type(SELF, - ['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.B_SPLINE_SURFACE']); - WR4 : validate_locations_of_extreme_value_type(SELF, - []); - WR5 : validate_accuracy_types(SELF, - []); - END_ENTITY; -(* USED FROM (shape_data_quality_criteria_schema); *) - ENTITY surface_with_excessive_patches_in_one_direction - SUBTYPE OF(overcomplex_geometry); - SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; - WHERE - WR1 : ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + - 'SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' - IN TYPEOF(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)) - AND ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.COUNT_MEASURE' - IN value_limit_type(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)); - WR2 : validate_measured_data_type(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.COUNT_MEASURE'); - WR3 : validate_inspected_elements_type(SELF, - ['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.'+ - 'B_SPLINE_OR_RECTANGULAR_COMPOSITE_SURFACE_SELECT']); - WR4 : validate_locations_of_extreme_value_type(SELF, - []); - WR5 : validate_accuracy_types(SELF, - []); - END_ENTITY; -(* USED FROM (shape_data_quality_criteria_schema); *) - ENTITY curve_with_excessive_segments - SUBTYPE OF(overcomplex_geometry); - SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; - WHERE - WR1 : ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + - 'SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' - IN TYPEOF(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)) - AND ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.COUNT_MEASURE' - IN value_limit_type(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)); - WR2 : validate_measured_data_type(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.COUNT_MEASURE'); - WR3 : validate_inspected_elements_type(SELF, - ['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.'+ - 'B_SPLINE_OR_COMPOSITE_CURVE_SELECT']); - WR4 : validate_locations_of_extreme_value_type(SELF, - []); - WR5 : validate_accuracy_types(SELF, - []); - END_ENTITY; -(* USED FROM (shape_data_quality_criteria_schema); *) - ENTITY high_degree_linear_curve - SUBTYPE OF(overcomplex_geometry); - SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; - approximation_tolerance : length_measure; - WHERE - WR1 : ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + - 'SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' - IN TYPEOF(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)) - AND ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.COUNT_MEASURE' - IN value_limit_type(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)); - WR2 : validate_measured_data_type(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.COUNT_MEASURE'); - WR3 : validate_inspected_elements_type(SELF, - ['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.B_SPLINE_CURVE']); - WR4 : validate_locations_of_extreme_value_type(SELF, - []); - WR5 : validate_accuracy_types(SELF, - ['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE']); - END_ENTITY; -(* USED FROM (shape_data_quality_criteria_schema); *) - ENTITY high_degree_planar_surface - SUBTYPE OF(overcomplex_geometry); - SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; - approximation_tolerance : length_measure; - WHERE - WR1 : ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + - 'SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' - IN TYPEOF(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)) - AND ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.COUNT_MEASURE' - IN value_limit_type(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)); - WR2 : validate_measured_data_type(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.COUNT_MEASURE'); - WR3 : validate_inspected_elements_type(SELF, - ['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.B_SPLINE_SURFACE']); - WR4 : validate_locations_of_extreme_value_type(SELF, - []); - WR5 : validate_accuracy_types(SELF, - ['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE']); - END_ENTITY; -(* USED FROM (shape_data_quality_criteria_schema); *) - ENTITY high_degree_conic - SUBTYPE OF(overcomplex_geometry); - SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; - approximation_tolerance : length_measure; - WHERE - WR1 : ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + - 'SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' - IN TYPEOF(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)) - AND ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.COUNT_MEASURE' - IN value_limit_type(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)); - WR2 : validate_measured_data_type(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.COUNT_MEASURE'); - WR3 : validate_inspected_elements_type(SELF, - ['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.B_SPLINE_CURVE']); - WR4 : validate_locations_of_extreme_value_type(SELF, - []); - WR5 : validate_accuracy_types(SELF, - ['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE']); - END_ENTITY; -(* USED FROM (shape_data_quality_criteria_schema); *) - ENTITY high_degree_axi_symmetric_surface - SUBTYPE OF(overcomplex_geometry); - SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; - approximation_tolerance : length_measure; - WHERE - WR1 : ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + - 'SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' - IN TYPEOF(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)) - AND ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.COUNT_MEASURE' - IN value_limit_type(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)); - WR2 : validate_measured_data_type(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.COUNT_MEASURE'); - WR3 : validate_inspected_elements_type(SELF, - ['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.B_SPLINE_SURFACE']); - WR4 : validate_locations_of_extreme_value_type(SELF, - []); - WR5 : validate_accuracy_types(SELF, - ['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE']); - END_ENTITY; -(* USED FROM (shape_data_quality_criteria_schema); *) - ENTITY inapt_topology_and_geometry_relationship - ABSTRACT SUPERTYPE OF (ONEOF ( - TOPOLOGY_RELATED_TO_NEARLY_DEGENERATE_GEOMETRY, - GEOMETRIC_GAP_IN_TOPOLOGY, - NON_SMOOTH_GEOMETRY_TRANSITION_ACROSS_EDGE, - TOPOLOGY_RELATED_TO_SELF_INTERSECTING_GEOMETRY, - STEEP_GEOMETRY_TRANSITION_ACROSS_EDGE, - TOPOLOGY_RELATED_TO_OVERLAPPING_GEOMETRY, - TOPOLOGY_RELATED_TO_MULTIPLY_DEFINED_GEOMETRY, - OVERCOMPLEX_TOPOLOGY_AND_GEOMETRY_RELATIONSHIP)) - SUBTYPE OF(inapt_data); - END_ENTITY; -(* USED FROM (shape_data_quality_criteria_schema); *) - ENTITY topology_related_to_nearly_degenerate_geometry - ABSTRACT SUPERTYPE OF (ONEOF ( - SHORT_LENGTH_EDGE, - SMALL_AREA_FACE, - ENTIRELY_NARROW_FACE)) - SUBTYPE OF(inapt_topology_and_geometry_relationship); - END_ENTITY; -(* USED FROM (shape_data_quality_criteria_schema); *) - ENTITY short_length_edge - SUBTYPE OF(topology_related_to_nearly_degenerate_geometry); - SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; - WHERE - WR1 : ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + - 'SHAPE_DATA_QUALITY_UPPER_VALUE_LIMIT' - IN TYPEOF(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)) - AND ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE' - IN value_limit_type(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)); - WR2 : validate_measured_data_type(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE'); - WR3 : validate_inspected_elements_type(SELF, - ['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.EDGE_CURVE']); - WR4 : validate_locations_of_extreme_value_type(SELF, - []); - WR5 : validate_accuracy_types(SELF, - ['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE']); - END_ENTITY; -(* USED FROM (shape_data_quality_criteria_schema); *) - ENTITY small_area_face - SUBTYPE OF(topology_related_to_nearly_degenerate_geometry); - SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; - WHERE - WR1 : ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + - 'SHAPE_DATA_QUALITY_UPPER_VALUE_LIMIT' - IN TYPEOF(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)) - AND ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.AREA_MEASURE' - IN value_limit_type(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)); - WR2 : validate_measured_data_type(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.AREA_MEASURE'); - WR3 : validate_inspected_elements_type(SELF, - ['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.FACE_SURFACE']); - WR4 : validate_locations_of_extreme_value_type(SELF, - []); - WR5 : validate_accuracy_types(SELF, - ['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.AREA_MEASURE']); - END_ENTITY; -(* USED FROM (shape_data_quality_criteria_schema); *) - ENTITY entirely_narrow_face - SUBTYPE OF(topology_related_to_nearly_degenerate_geometry); - SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_logical_test; - width_tolerance : length_measure; - WHERE - WR1 : validate_measured_data_type(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.BOOLEAN_VALUE'); - WR2 : validate_inspected_elements_type(SELF, - ['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.FACE_SURFACE']); - WR3 : validate_locations_of_extreme_value_type(SELF, - []); - WR4 : validate_accuracy_types(SELF, - ['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE']); - END_ENTITY; -(* USED FROM (shape_data_quality_criteria_schema); *) - ENTITY geometric_gap_in_topology - ABSTRACT SUPERTYPE OF (ONEOF ( - GAP_BETWEEN_ADJACENT_EDGES_IN_LOOP, - GAP_BETWEEN_VERTEX_AND_BASE_SURFACE, - GAP_BETWEEN_VERTEX_AND_EDGE, - GAP_BETWEEN_EDGE_AND_BASE_SURFACE, - GAP_BETWEEN_PCURVES_RELATED_TO_AN_EDGE, - GAP_BETWEEN_FACES_RELATED_TO_AN_EDGE)) - SUBTYPE OF(inapt_topology_and_geometry_relationship); - END_ENTITY; -(* USED FROM (shape_data_quality_criteria_schema); *) - ENTITY gap_between_adjacent_edges_in_loop - SUBTYPE OF(geometric_gap_in_topology); - SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; - WHERE - WR1 : ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + - 'SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' - IN TYPEOF(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)) - AND ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE' - IN value_limit_type(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)); - WR2 : validate_measured_data_type(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE'); - WR3 : validate_inspected_elements_type(SELF, - ['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.EDGE_LOOP']); - WR4 : validate_locations_of_extreme_value_type(SELF, - ['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.ORIENTED_EDGE']); - WR5 : validate_accuracy_types(SELF, - ['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE']); - END_ENTITY; -(* USED FROM (shape_data_quality_criteria_schema); *) - ENTITY gap_between_vertex_and_base_surface - SUBTYPE OF(geometric_gap_in_topology); - SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; - WHERE - WR1 : ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + - 'SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' - IN TYPEOF(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)) - AND ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE' - IN value_limit_type(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)); - WR2 : validate_measured_data_type(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE'); - WR3 : validate_inspected_elements_type(SELF, - ['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.FACE_SURFACE']); - WR4 : validate_locations_of_extreme_value_type(SELF, - ['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.VERTEX_POINT', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.'+ - 'POINT_ON_FACE_SURFACE']); - WR5 : validate_accuracy_types(SELF, - ['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE']); - END_ENTITY; -(* USED FROM (shape_data_quality_criteria_schema); *) - ENTITY gap_between_vertex_and_edge - SUBTYPE OF(geometric_gap_in_topology); - SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; - WHERE - WR1 : ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + - 'SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' - IN TYPEOF(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)) - AND ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE' - IN value_limit_type(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)); - WR2 : validate_measured_data_type(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE'); - WR3 : validate_inspected_elements_type(SELF, - ['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.EDGE_CURVE']); - WR4 : validate_locations_of_extreme_value_type(SELF, - ['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.VERTEX_POINT', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.'+ - 'POINT_ON_EDGE_CURVE']); - WR5 : validate_accuracy_types(SELF, - ['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE']); - END_ENTITY; -(* USED FROM (shape_data_quality_criteria_schema); *) - ENTITY gap_between_edge_and_base_surface - SUBTYPE OF(geometric_gap_in_topology); - SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; - WHERE - WR1 : ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + - 'SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' - IN TYPEOF(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)) - AND ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE' - IN value_limit_type(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)); - WR2 : validate_measured_data_type(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE'); - WR3 : validate_inspected_elements_type(SELF, - ['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.FACE_SURFACE']); - WR4 : validate_locations_of_extreme_value_type(SELF, - ['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.'+ - 'POINT_ON_EDGE_CURVE', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.'+ - 'POINT_ON_FACE_SURFACE']); - WR5 : validate_accuracy_types(SELF, - ['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE']); - END_ENTITY; -(* USED FROM (shape_data_quality_criteria_schema); *) - ENTITY gap_between_pcurves_related_to_an_edge - SUBTYPE OF(geometric_gap_in_topology); - SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; - WHERE - WR1 : ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + - 'SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' - IN TYPEOF(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)) - AND ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE' - IN value_limit_type(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)); - WR2 : validate_measured_data_type(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE'); - WR3 : validate_inspected_elements_type(SELF, - ['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CONNECTED_FACE_SET']); - WR4 : validate_locations_of_extreme_value_type(SELF, - ['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.POINT_ON_SURFACE', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.POINT_ON_SURFACE']); - WR5 : validate_accuracy_types(SELF, - ['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE']); - END_ENTITY; -(* USED FROM (shape_data_quality_criteria_schema); *) - ENTITY gap_between_faces_related_to_an_edge - SUBTYPE OF(geometric_gap_in_topology); - SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; - WHERE - WR1 : ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + - 'SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' - IN TYPEOF(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)) - AND ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE' - IN value_limit_type(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)); - WR2 : validate_measured_data_type(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE'); - WR3 : validate_inspected_elements_type(SELF, - ['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CONNECTED_FACE_SET']); - WR4 : validate_locations_of_extreme_value_type(SELF, - ['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.'+ - 'POINT_ON_EDGE_CURVE']); - WR5 : validate_accuracy_types(SELF, - ['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE']); - END_ENTITY; -(* USED FROM (shape_data_quality_criteria_schema); *) - ENTITY non_smooth_geometry_transition_across_edge - ABSTRACT SUPERTYPE OF (ONEOF ( - G1_DISCONTINUITY_BETWEEN_ADJACENT_FACES, - G2_DISCONTINUITY_BETWEEN_ADJACENT_FACES)) - SUBTYPE OF(inapt_topology_and_geometry_relationship); - END_ENTITY; -(* USED FROM (shape_data_quality_criteria_schema); *) - ENTITY g1_discontinuity_between_adjacent_faces - SUBTYPE OF(non_smooth_geometry_transition_across_edge); - SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; - WHERE - WR1 : ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + - 'SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' - IN TYPEOF(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)) - AND ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PLANE_ANGLE_MEASURE' - IN value_limit_type(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)); - WR2 : validate_measured_data_type(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PLANE_ANGLE_MEASURE'); - WR3 : validate_inspected_elements_type(SELF, - ['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CONNECTED_FACE_SET']); - WR4 : validate_locations_of_extreme_value_type(SELF, - ['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.'+ - 'POINT_ON_EDGE_CURVE']); - WR5 : validate_accuracy_types(SELF, - ['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PLANE_ANGLE_MEASURE']); - END_ENTITY; -(* USED FROM (shape_data_quality_criteria_schema); *) - ENTITY g2_discontinuity_between_adjacent_faces - SUBTYPE OF(non_smooth_geometry_transition_across_edge); - SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; - assessment_specification_2 : shape_data_quality_assessment_by_numerical_test; - flat_curvature_radius_tolerance : length_measure; - WHERE - WR1 : ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + - 'SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' - IN TYPEOF(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)) - AND ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PLANE_ANGLE_MEASURE' - IN value_limit_type(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)); - WR2 : ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + - 'SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' - IN TYPEOF(assessment_specification_2\shape_data_quality_assessment_by_numerical_test.threshold)) - AND ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.RATIO_MEASURE' - IN value_limit_type(assessment_specification_2\shape_data_quality_assessment_by_numerical_test.threshold)); - WR3 : validate_measured_data_type(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.'+ - 'PLANE_ANGLE_AND_RATIO_PAIR'); - WR4 : validate_inspected_elements_type(SELF, - ['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CONNECTED_FACE_SET']); - WR5 : validate_locations_of_extreme_value_type(SELF, - ['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.'+ - 'POINT_ON_EDGE_CURVE']); - WR6 : validate_accuracy_types(SELF, - ['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.RATIO_MEASURE']); - END_ENTITY; -(* USED FROM (shape_data_quality_criteria_schema); *) - ENTITY topology_related_to_self_intersecting_geometry - ABSTRACT SUPERTYPE OF (ONEOF ( - SELF_INTERSECTING_LOOP, - SELF_INTERSECTING_SHELL, - INTERSECTING_CONNECTED_FACE_SETS)) - SUBTYPE OF(inapt_topology_and_geometry_relationship); - END_ENTITY; -(* USED FROM (shape_data_quality_criteria_schema); *) - ENTITY self_intersecting_loop - SUBTYPE OF(topology_related_to_self_intersecting_geometry); - SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_logical_test; - arc_length_distance_factor : REAL; - interference_tolerance : length_measure; - WHERE - WR1 : validate_measured_data_type(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.BOOLEAN_VALUE'); - WR2 : validate_inspected_elements_type(SELF, - ['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.EDGE_LOOP']); - WR3 : validate_locations_of_extreme_value_type(SELF, - ['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.'+ - 'POINT_ON_EDGE_CURVE', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.'+ - 'POINT_ON_EDGE_CURVE']); - WR4 : validate_accuracy_types(SELF, - ['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE']); - END_ENTITY; -(* USED FROM (shape_data_quality_criteria_schema); *) - ENTITY self_intersecting_shell - SUBTYPE OF(topology_related_to_self_intersecting_geometry); - SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_logical_test; - geodesic_separation_factor : REAL; - interference_tolerance : length_measure; - WHERE - WR1 : validate_measured_data_type(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.BOOLEAN_VALUE'); - WR2 : validate_inspected_elements_type(SELF, - ['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CONNECTED_FACE_SET']); - WR3 : validate_locations_of_extreme_value_type(SELF, - ['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.'+ - 'POINT_ON_FACE_SURFACE', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.'+ - 'POINT_ON_FACE_SURFACE']); - WR4 : validate_accuracy_types(SELF, - ['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE']); - END_ENTITY; -(* USED FROM (shape_data_quality_criteria_schema); *) - ENTITY intersecting_connected_face_sets - SUBTYPE OF(topology_related_to_self_intersecting_geometry); - SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_logical_test; - interference_tolerance : length_measure; - WHERE - WR1 : validate_measured_data_type(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.BOOLEAN_VALUE'); - WR2 : validate_inspected_elements_type(SELF, - ['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CONNECTED_FACE_SET', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CONNECTED_FACE_SET']); - WR3 : validate_locations_of_extreme_value_type(SELF, - ['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.'+ - 'POINT_ON_FACE_SURFACE', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.'+ - 'POINT_ON_FACE_SURFACE']); - WR4 : validate_accuracy_types(SELF, - ['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE']); - END_ENTITY; -(* USED FROM (shape_data_quality_criteria_schema); *) - ENTITY steep_geometry_transition_across_edge - ABSTRACT SUPERTYPE OF (ONEOF ( - STEEP_ANGLE_BETWEEN_ADJACENT_EDGES, - STEEP_ANGLE_BETWEEN_ADJACENT_FACES)) - SUBTYPE OF(inapt_topology_and_geometry_relationship); - END_ENTITY; -(* USED FROM (shape_data_quality_criteria_schema); *) - ENTITY steep_angle_between_adjacent_edges - SUBTYPE OF(steep_geometry_transition_across_edge); - SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; - WHERE - WR1 : ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + - 'SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' - IN TYPEOF(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)) - AND ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PLANE_ANGLE_MEASURE' - IN value_limit_type(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)); - WR2 : validate_measured_data_type(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PLANE_ANGLE_MEASURE'); - WR3 : validate_inspected_elements_type(SELF, - ['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.EDGE_LOOP']); - WR4 : validate_locations_of_extreme_value_type(SELF, - ['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.ORIENTED_EDGE']); - WR5 : validate_accuracy_types(SELF, - ['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PLANE_ANGLE_MEASURE']); - END_ENTITY; -(* USED FROM (shape_data_quality_criteria_schema); *) - ENTITY steep_angle_between_adjacent_faces - SUBTYPE OF(steep_geometry_transition_across_edge); - SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; - WHERE - WR1 : ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + - 'SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' - IN TYPEOF(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)) - AND ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PLANE_ANGLE_MEASURE' - IN value_limit_type(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)); - WR2 : validate_measured_data_type(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PLANE_ANGLE_MEASURE'); - WR3 : validate_inspected_elements_type(SELF, - ['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CONNECTED_FACE_SET']); - WR4 : validate_locations_of_extreme_value_type(SELF, - ['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.'+ - 'POINT_ON_EDGE_CURVE']); - WR5 : validate_accuracy_types(SELF, - ['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PLANE_ANGLE_MEASURE']); - END_ENTITY; -(* USED FROM (shape_data_quality_criteria_schema); *) - ENTITY topology_related_to_overlapping_geometry - ABSTRACT SUPERTYPE OF (ONEOF ( - PARTLY_OVERLAPPING_FACES, - PARTLY_OVERLAPPING_EDGES)) - SUBTYPE OF(inapt_topology_and_geometry_relationship); - END_ENTITY; -(* USED FROM (shape_data_quality_criteria_schema); *) - ENTITY partly_overlapping_faces - SUBTYPE OF(topology_related_to_overlapping_geometry); - SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; - interference_tolerance : length_measure; - WHERE - WR1 : ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + - 'SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' - IN TYPEOF(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)) - AND ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.AREA_MEASURE' - IN value_limit_type(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)); - WR2 : validate_measured_data_type(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.AREA_MEASURE'); - WR3 : validate_inspected_elements_type(SELF, - ['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.FACE_SURFACE', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.FACE_SURFACE']); - WR4 : validate_locations_of_extreme_value_type(SELF, - ['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SUBFACE','AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SUBFACE']); - WR5 : validate_accuracy_types(SELF, - ['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.AREA_MEASURE']); - END_ENTITY; -(* USED FROM (shape_data_quality_criteria_schema); *) - ENTITY partly_overlapping_edges - SUBTYPE OF(topology_related_to_overlapping_geometry); - SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; - interference_tolerance : length_measure; - WHERE - WR1 : ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + - 'SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' - IN TYPEOF(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)) - AND ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE' - IN value_limit_type(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)); - WR2 : validate_measured_data_type(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE'); - WR3 : validate_inspected_elements_type(SELF, - ['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.EDGE_CURVE', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.EDGE_CURVE']); - WR4 : validate_locations_of_extreme_value_type(SELF, - ['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SUBEDGE','AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SUBEDGE']); - WR5 : validate_accuracy_types(SELF, - ['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE']); - END_ENTITY; -(* USED FROM (shape_data_quality_criteria_schema); *) - ENTITY topology_related_to_multiply_defined_geometry - ABSTRACT SUPERTYPE OF (ONEOF ( - MULTIPLY_DEFINED_FACES, - MULTIPLY_DEFINED_VERTICES, - MULTIPLY_DEFINED_EDGES)) - SUBTYPE OF(inapt_topology_and_geometry_relationship); - END_ENTITY; -(* USED FROM (shape_data_quality_criteria_schema); *) - ENTITY multiply_defined_faces - SUBTYPE OF(topology_related_to_multiply_defined_geometry); - SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; - WHERE - WR1 : ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + - 'SHAPE_DATA_QUALITY_UPPER_VALUE_LIMIT' - IN TYPEOF(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)) - AND ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE' - IN value_limit_type(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)); - WR2 : validate_measured_data_type(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE'); - WR3 : validate_inspected_elements_type(SELF, - ['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.FACE_SURFACE', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.FACE_SURFACE']); - WR4 : validate_locations_of_extreme_value_type(SELF, - []); - WR5 : validate_accuracy_types(SELF, - ['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE']); - END_ENTITY; -(* USED FROM (shape_data_quality_criteria_schema); *) - ENTITY multiply_defined_vertices - SUBTYPE OF(topology_related_to_multiply_defined_geometry); - SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; - WHERE - WR1 : ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + - 'SHAPE_DATA_QUALITY_UPPER_VALUE_LIMIT' - IN TYPEOF(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)) AND - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE' - IN value_limit_type(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)); - WR2 : validate_measured_data_type(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE'); - WR3 : validate_inspected_elements_type(SELF, - ['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.VERTEX_POINT', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.VERTEX_POINT']); - WR4 : validate_locations_of_extreme_value_type(SELF, - []); - WR5 : validate_accuracy_types(SELF, - []); - END_ENTITY; -(* USED FROM (shape_data_quality_criteria_schema); *) - ENTITY multiply_defined_edges - SUBTYPE OF(topology_related_to_multiply_defined_geometry); - SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; - WHERE - WR1 : ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + - 'SHAPE_DATA_QUALITY_UPPER_VALUE_LIMIT' - IN TYPEOF(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)) - AND ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE' - IN value_limit_type(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)); - WR2 : validate_measured_data_type(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE'); - WR3 : validate_inspected_elements_type(SELF, - ['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.EDGE_CURVE', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.EDGE_CURVE']); - WR4 : validate_locations_of_extreme_value_type(SELF, - []); - WR5 : validate_accuracy_types(SELF, - ['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE']); - END_ENTITY; -(* USED FROM (shape_data_quality_criteria_schema); *) - ENTITY overcomplex_topology_and_geometry_relationship - ABSTRACT SUPERTYPE OF (ONEOF ( - UNUSED_PATCHES, - EDGE_WITH_EXCESSIVE_SEGMENTS, - FACE_SURFACE_WITH_EXCESSIVE_PATCHES_IN_ONE_DIRECTION)) - SUBTYPE OF(inapt_topology_and_geometry_relationship); - END_ENTITY; -(* USED FROM (shape_data_quality_criteria_schema); *) - ENTITY unused_patches - SUBTYPE OF(overcomplex_topology_and_geometry_relationship); - SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; - WHERE - WR1 : ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + - 'SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' - IN TYPEOF(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)) - AND ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.COUNT_MEASURE' - IN value_limit_type(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)); - WR2 : validate_measured_data_type(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.COUNT_MEASURE'); - WR3 : validate_inspected_elements_type(SELF, - ['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.FACE_SURFACE']); - WR4 : validate_locations_of_extreme_value_type(SELF, - ['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.'+ - 'B_SPLINE_SURFACE_STRIP']); - WR5 : validate_accuracy_types(SELF, - []); - END_ENTITY; -(* USED FROM (shape_data_quality_criteria_schema); *) - ENTITY edge_with_excessive_segments - SUBTYPE OF(overcomplex_topology_and_geometry_relationship); - SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; - WHERE - WR1 : ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + - 'SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' - IN TYPEOF(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)) - AND ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.COUNT_MEASURE' - IN value_limit_type(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)); - WR2 : validate_measured_data_type(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.COUNT_MEASURE'); - WR3 : validate_inspected_elements_type(SELF, - ['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.EDGE_CURVE']); - WR4 : validate_locations_of_extreme_value_type(SELF, - []); - WR5 : validate_accuracy_types(SELF, - []); - END_ENTITY; -(* USED FROM (shape_data_quality_criteria_schema); *) - ENTITY face_surface_with_excessive_patches_in_one_direction - SUBTYPE OF(overcomplex_topology_and_geometry_relationship); - SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; - WHERE - WR1 : ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + - 'SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' - IN TYPEOF(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)) - AND ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.COUNT_MEASURE' - IN value_limit_type(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)); - WR2 : validate_measured_data_type(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.COUNT_MEASURE'); - WR3 : validate_inspected_elements_type(SELF, - ['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.FACE_SURFACE']); - WR4 : validate_locations_of_extreme_value_type(SELF, - []); - WR5 : validate_accuracy_types(SELF, - []); - END_ENTITY; -(* USED FROM (shape_data_quality_criteria_schema); *) - ENTITY inapt_manifold_solid_brep - ABSTRACT SUPERTYPE OF (ONEOF ( - PARTLY_OVERLAPPING_SOLIDS, - SMALL_VOLUME_SOLID, - MULTIPLY_DEFINED_SOLIDS, - ENTIRELY_NARROW_SOLID, - SOLID_WITH_EXCESSIVE_NUMBER_OF_VOIDS)) - SUBTYPE OF(inapt_data); - END_ENTITY; -(* USED FROM (shape_data_quality_criteria_schema); *) - ENTITY partly_overlapping_solids - SUBTYPE OF(inapt_manifold_solid_brep); - SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; - interference_tolerance : length_measure; - WHERE - WR1 : ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + - 'SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' - IN TYPEOF(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)) - AND ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.AREA_MEASURE' - IN value_limit_type(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)); - WR2 : validate_measured_data_type(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.AREA_MEASURE'); - WR3 : validate_inspected_elements_type(SELF, - ['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MANIFOLD_SOLID_BREP', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MANIFOLD_SOLID_BREP']); - WR4 : validate_locations_of_extreme_value_type(SELF, - ['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SUBFACE','AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SUBFACE']); - WR5 : validate_accuracy_types(SELF, - ['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.AREA_MEASURE']); - END_ENTITY; -(* USED FROM (shape_data_quality_criteria_schema); *) - ENTITY small_volume_solid - SUBTYPE OF(inapt_manifold_solid_brep); - SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; - WHERE - WR1 : ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + - 'SHAPE_DATA_QUALITY_UPPER_VALUE_LIMIT' - IN TYPEOF(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)) - AND ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.VOLUME_MEASURE' - IN value_limit_type(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)); - WR2 : validate_measured_data_type(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.VOLUME_MEASURE'); - WR3 : validate_inspected_elements_type(SELF, - ['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MANIFOLD_SOLID_BREP']); - WR4 : validate_locations_of_extreme_value_type(SELF, - []); - WR5 : validate_accuracy_types(SELF, - ['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.VOLUME_MEASURE']); - END_ENTITY; -(* USED FROM (shape_data_quality_criteria_schema); *) - ENTITY multiply_defined_solids - SUBTYPE OF(inapt_manifold_solid_brep); - SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; - WHERE - WR1 : ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + - 'SHAPE_DATA_QUALITY_UPPER_VALUE_LIMIT' - IN TYPEOF(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)) - AND ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE' - IN value_limit_type(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)); - WR2 : validate_measured_data_type(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE'); - WR3 : validate_inspected_elements_type(SELF, - ['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MANIFOLD_SOLID_BREP', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MANIFOLD_SOLID_BREP']); - WR4 : validate_locations_of_extreme_value_type(SELF, - []); - WR5 : validate_accuracy_types(SELF, - ['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE']); - END_ENTITY; -(* USED FROM (shape_data_quality_criteria_schema); *) - ENTITY entirely_narrow_solid - SUBTYPE OF(inapt_manifold_solid_brep); - SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_logical_test; - width_tolerance : length_measure; - WHERE - WR1 : validate_measured_data_type(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.BOOLEAN_VALUE'); - WR2 : validate_inspected_elements_type(SELF, - ['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MANIFOLD_SOLID_BREP']); - WR3 : validate_locations_of_extreme_value_type(SELF, - []); - WR4 : validate_accuracy_types(SELF, - ['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE']); - END_ENTITY; -(* USED FROM (shape_data_quality_criteria_schema); *) - ENTITY solid_with_excessive_number_of_voids - SUBTYPE OF(inapt_manifold_solid_brep); - SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; - WHERE - WR1 : ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + - 'SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' - IN TYPEOF(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)) - AND ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.COUNT_MEASURE' - IN value_limit_type(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)); - WR2 : validate_measured_data_type(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.COUNT_MEASURE'); - WR3 : validate_inspected_elements_type(SELF, - ['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MANIFOLD_SOLID_BREP']); - WR4 : validate_locations_of_extreme_value_type(SELF, - []); - WR5 : validate_accuracy_types(SELF, - []); - END_ENTITY; -(* USED FROM (shape_data_quality_criteria_schema); *) - ENTITY shape_criteria_representation_with_accuracy - SUBTYPE OF(shape_data_quality_criteria_representation); - required_general_accuracy : SET [1:?] OF shape_measurement_accuracy; - END_ENTITY; -(* USED FROM (shape_data_quality_criteria_schema); *) - ENTITY shape_measurement_accuracy; - description : text; - range : shape_data_quality_value_limit_type_select; - END_ENTITY; -(* USED FROM (shape_data_quality_criteria_schema); *) - ENTITY shape_data_quality_criterion_and_accuracy_association; - required_specific_accuracy : shape_measurement_accuracy; - shape_data_quality_criterion : shape_data_quality_criterion; - END_ENTITY; -(* USED FROM (Curve_appearance_mim); *) - 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; -(* USED FROM (Ap242_managed_model_based_3d_engineering_mim); *) - ENTITY cc_design_approval - SUBTYPE OF (approval_assignment); - items : SET[1:?] OF approved_item; - END_ENTITY; -(* USED FROM (Curve_appearance_mim); *) - ENTITY user_defined_marker - SUBTYPE OF (mapped_item, pre_defined_marker); - END_ENTITY; -(* USED FROM (management_resources_schema); *) - ENTITY organizational_project_assignment - ABSTRACT SUPERTYPE; - assigned_organizational_project : organizational_project; - role : organizational_project_role; - END_ENTITY; -(* USED FROM (shape_data_quality_inspection_result_schema); *) - ENTITY shape_data_quality_inspection_criterion_report - SUBTYPE OF(data_quality_inspection_criterion_report); - representative_measured_value : measured_value_select; - END_ENTITY; -(* USED FROM (shape_data_quality_inspection_result_schema); *) - ENTITY shape_inspection_result_accuracy_association; - applied_specific_accuracy : shape_measurement_accuracy; - shape_data_quality_result : shape_data_quality_inspection_result; - END_ENTITY; -(* USED FROM (shape_data_quality_inspection_result_schema); *) - ENTITY shape_data_quality_inspection_instance_report - SUBTYPE OF(data_quality_inspection_instance_report); - SELF\data_quality_inspection_instance_report.inspected_instances : LIST [1:?] OF shape_data_quality_inspection_instance_report_item; - END_ENTITY; -(* USED FROM (shape_data_quality_inspection_result_schema); *) - ENTITY shape_data_quality_inspection_instance_report_item - SUBTYPE OF(data_quality_inspection_instance_report_item); - SELF\data_quality_inspection_instance_report_item.inspected_elements : SET [1:?] OF inspected_shape_element_select; - measured_value : measured_value_select; - END_ENTITY; -(* USED FROM (shape_data_quality_inspection_result_schema); *) - ENTITY instance_report_item_with_extreme_instances - SUBTYPE OF(shape_data_quality_inspection_instance_report_item); - extreme_instances : LIST [1:?] OF extreme_instance; - END_ENTITY; -(* USED FROM (shape_data_quality_inspection_result_schema); *) - ENTITY extreme_instance; - locations_of_extreme_value : SET [1:?] OF location_of_extreme_value_select; - measured_value : measured_value_select; - END_ENTITY; -(* USED FROM (Curve_appearance_mim); *) - ENTITY vector_style - SUBTYPE OF (curve_style, pre_defined_terminator_symbol); - END_ENTITY; -(* USED FROM (shape_data_quality_inspection_result_schema); *) - ENTITY point_on_face_surface - SUBTYPE OF(point_on_surface); - basis_face_surface : face_surface; - DERIVE - SELF\point_on_surface.basis_surface : surface := SELF.basis_face_surface.face_geometry; - WHERE - WR1 : SIZEOF( - using_representations(SELF.basis_face_surface) * - relating_shape_representations_of_extreme_values(SELF))>0; - END_ENTITY; -(* USED FROM (shape_data_quality_inspection_result_schema); *) - ENTITY plane_angle_and_ratio_pair - SUBTYPE OF(founded_item); - plane_angle_value : plane_angle_measure; - ratio_value : ratio_measure; - END_ENTITY; -(* USED FROM (shape_data_quality_inspection_result_schema); *) - ENTITY plane_angle_and_length_pair - SUBTYPE OF(founded_item); - plane_angle_value : plane_angle_measure; - length_value : length_measure; - END_ENTITY; -(* USED FROM (shape_data_quality_inspection_result_schema); *) - ENTITY b_spline_surface_knot_locator - SUBTYPE OF(founded_item); - basis_surface : b_spline_surface; - knot_index : INTEGER; - surface_parameter : u_or_v_parameter; - WHERE - WR1 : SIZEOF( - using_representations(SELF.basis_surface) * - relating_shape_representations_of_extreme_values(SELF))>0; - END_ENTITY; -(* USED FROM (shape_data_quality_inspection_result_schema); *) - ENTITY b_spline_surface_patch - SUBTYPE OF(founded_item); - basis_surface : b_spline_surface; - u_start_knot_index : INTEGER; - v_start_knot_index : INTEGER; - WHERE - WR1 : SIZEOF( - using_representations(SELF.basis_surface) * - relating_shape_representations_of_extreme_values(SELF))>0; - END_ENTITY; -(* USED FROM (shape_data_quality_inspection_result_schema); *) - ENTITY b_spline_curve_knot_locator - SUBTYPE OF(founded_item); - basis_curve : b_spline_curve; - knot_index : INTEGER; - WHERE - WR1 : SIZEOF( - using_representations(SELF.basis_curve) * - relating_shape_representations_of_extreme_values(SELF))>0; - END_ENTITY; -(* USED FROM (shape_data_quality_inspection_result_schema); *) - ENTITY b_spline_curve_segment - SUBTYPE OF(founded_item); - basis_curve : b_spline_curve; - start_knot_index : INTEGER; - WHERE - WR1 : SIZEOF( - using_representations(SELF.basis_curve) * - relating_shape_representations_of_extreme_values(SELF))>0; - END_ENTITY; -(* USED FROM (shape_data_quality_inspection_result_schema); *) - ENTITY b_spline_surface_strip - SUBTYPE OF(founded_item); - basis_surface : b_spline_surface; - start_knot_index : INTEGER; - surface_parameter : u_or_v_parameter; - WHERE - WR1 : SIZEOF( - using_representations(SELF.basis_surface) * - relating_shape_representations_of_extreme_values(SELF))>0; - END_ENTITY; -(* USED FROM (shape_data_quality_inspection_result_schema); *) - ENTITY composite_curve_transition_locator - SUBTYPE OF(founded_item); - basis_curve : composite_curve; - transition_index : INTEGER; - WHERE - WR1 : SIZEOF( - using_representations(SELF.basis_curve) * - relating_shape_representations_of_extreme_values(SELF))>0; - END_ENTITY; -(* USED FROM (shape_data_quality_inspection_result_schema); *) - ENTITY rectangular_composite_surface_transition_locator - SUBTYPE OF(founded_item); - basis_surface : rectangular_composite_surface; - surface_parameter : u_or_v_parameter; - u_transition_index : INTEGER; - v_transition_index : INTEGER; - WHERE - WR1 : SIZEOF( - using_representations(SELF.basis_surface) * - relating_shape_representations_of_extreme_values(SELF))>0; - END_ENTITY; - -(* Implicit interfaced from: management_resources_schema *) - ENTITY attribute_value_role; - name : label; - description : OPTIONAL text; - END_ENTITY; -(* REFERENCE FROM (date_time_schema); *) -ENTITY event_occurrence_role; - name : label; - description : OPTIONAL text; -END_ENTITY; -(* USED FROM (presentation_appearance_schema); *) - ENTITY fill_area_style_colour; - name : label; - fill_colour : colour; - END_ENTITY; -(* USED FROM (presentation_appearance_schema); *) - ENTITY invisibility; - invisible_items : SET [1:?] OF invisible_item; - END_ENTITY; -(* USED FROM (presentation_appearance_schema); *) - ENTITY over_riding_styled_item - SUBTYPE OF (styled_item); - over_ridden_style : styled_item; - END_ENTITY; -(* USED FROM (presentation_definition_schema); *) - ENTITY externally_defined_symbol - SUBTYPE OF (externally_defined_item); - END_ENTITY; -(* USED FROM (presentation_appearance_schema); *) - ENTITY presentation_style_by_context - SUBTYPE OF (presentation_style_assignment); - style_context : style_context_select; - END_ENTITY; -(* USED FROM (presentation_appearance_schema); *) - ENTITY externally_defined_style - SUBTYPE OF (externally_defined_item, founded_item); - END_ENTITY; -(* USED FROM (draughting_element_schema); *) - 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('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.'+'PLANAR_BOX' IN TYPEOF(SELF\styled_item.item)) OR - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.'+'AXIS2_PLACEMENT_3D' IN TYPEOF(SELF\styled_item.item\planar_box.placement)); - WR3: (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.'+'PLANAR_BOX' IN TYPEOF(SELF\styled_item.item)) AND - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.'+'CURVE_STYLE' IN TYPEOF(SELF\styled_item.styles[1]\presentation_style_assignment.styles[1]))) OR - (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.'+'PLANE' IN TYPEOF(SELF\styled_item.item)) AND - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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; -(* USED FROM (presentation_resource_schema); *) -ENTITY planar_box - SUBTYPE OF (planar_extent); - placement: axis2_placement; -END_ENTITY; -(* USED FROM (Event_assignment_mim); *) -ENTITY applied_event_occurrence_assignment - SUBTYPE OF (event_occurrence_assignment); - items : SET[1:?] OF event_occurrence_item; -END_ENTITY; -(* USED FROM (management_resources_schema); *) - ENTITY attribute_value_assignment - ABSTRACT SUPERTYPE; - attribute_name : label; - attribute_value : attribute_type; - role : attribute_value_role; - END_ENTITY; - -(* Implicit interfaced from: solid_shape_element_schema *) -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; -(* USED FROM (kinematic_property_schema); *) -ENTITY kinematic_property_definition_representation - ABSTRACT SUPERTYPE OF (ONEOF ( - KINEMATIC_PROPERTY_TOPOLOGY_REPRESENTATION, - KINEMATIC_PROPERTY_MECHANISM_REPRESENTATION)) - SUBTYPE OF (property_definition_representation); - SELF\property_definition_representation.definition : product_definition_kinematics; -- LK -END_ENTITY; - -(* Implicit interfaced from: solid_shape_element_schema *) -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; - -(* Implicit interfaced from: solid_shape_element_schema *) -ENTITY edge_blended_solid - ABSTRACT SUPERTYPE OF ( - TRACK_BLENDED_SOLID - ANDOR (ONEOF ( - SOLID_WITH_CONSTANT_RADIUS_EDGE_BLEND, - SOLID_WITH_CHAMFERED_EDGES))) - SUBTYPE OF (modified_solid); - blended_edges : LIST [1:?] OF UNIQUE edge_curve; -END_ENTITY; - -(* Implicit interfaced from: management_resources_schema *) - ENTITY action_method_role; - name : label; - description : OPTIONAL text; - END_ENTITY; -(* USED FROM (kinematic_topology_schema); *) -ENTITY oriented_joint - SUBTYPE OF (oriented_edge); - SELF\oriented_edge.edge_element : kinematic_joint; -END_ENTITY; -(* USED FROM (kinematic_topology_schema); *) -ENTITY kinematic_loop - SUBTYPE OF (edge_loop); - SELF\path.edge_list : LIST [1:?] OF UNIQUE oriented_joint; -END_ENTITY; -(* USED FROM (Externally_conditioned_data_quality_criteria_mim); *) - ENTITY non_agreed_scale_usage - SUBTYPE OF(externally_conditioned_data_quality_criterion); - WHERE - WR1: validate_ecdq_inspected_elements_type(SELF, - ['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CARTESIAN_TRANSFORMATION_OPERATOR_3D']); - END_ENTITY; -(* USED FROM (kinematic_topology_schema); *) -ENTITY kinematic_joint - SUBTYPE OF (edge); - SELF\edge.edge_start : kinematic_link; - SELF\edge.edge_end : kinematic_link; -UNIQUE - UR1: edge_start, edge_end; -WHERE - WR1: edge_start :<>: edge_end; -END_ENTITY; -(* USED FROM (kinematic_topology_schema); *) -ENTITY kinematic_topology_network_structure - SUBTYPE OF (representation); - SELF\representation.items : SET[1:?] OF kinematic_loop; - parent : kinematic_topology_structure; -WHERE - WR1: context_of_items :=: parent.context_of_items; - WR2: get_kinematic_joints_from_kinematic_loops(items) <= parent.items; -END_ENTITY; -(* USED FROM (kinematic_topology_schema); *) -ENTITY kinematic_link - SUBTYPE OF (vertex); -END_ENTITY; -(* USED FROM (Externally_conditioned_data_quality_criteria_mim); *) - ENTITY wrong_element_name - SUBTYPE OF(Externally_conditioned_data_quality_criterion); - WHERE - WR1: validate_ecdq_inspected_elements_type(SELF, - ['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.REPRESENTATION_ITEM']); - END_ENTITY; -(* USED FROM (product_definition_schema); *) - ENTITY product_category; - name : label; - description : OPTIONAL text; - DERIVE - id : identifier := get_id_value(SELF); - WHERE - WR1: SIZEOF(USEDIN(SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'ID_ATTRIBUTE.IDENTIFIED_ITEM')) <= 1; - END_ENTITY; -(* USED FROM (draughting_element_schema); *) - ENTITY projection_curve - SUBTYPE OF (annotation_curve_occurrence); - END_ENTITY; -(* USED FROM (presentation_definition_schema); *) - ENTITY annotation_fill_area_occurrence - SUBTYPE OF (annotation_occurrence); - fill_style_target : point; - SELF\styled_item.item : annotation_fill_area; - END_ENTITY; -(* USED FROM (management_resources_schema); *) - ENTITY document_reference - ABSTRACT SUPERTYPE; - assigned_document : document; - source : label; - DERIVE - role : object_role := get_role(SELF); - WHERE - WR1: SIZEOF(USEDIN(SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'ROLE_ASSOCIATION.ITEM_WITH_ROLE')) <= 1; - END_ENTITY; -(* USED FROM (geometric_model_schema); *) -ENTITY tessellated_shape_representation - SUBTYPE OF (shape_representation); - SELF\representation.items : SET[1:?] OF tessellated_item; -WHERE - WR1: 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.GLOBAL_UNIT_ASSIGNED_CONTEXT' IN TYPEOF(SELF\representation.context_of_items); -END_ENTITY; -(* USED FROM (Group_mim); *) -ENTITY applied_group_assignment - SUBTYPE OF (group_assignment); - items : SET[1:?] OF groupable_item; -END_ENTITY; -(* USED FROM (kinematic_topology_schema); *) -ENTITY kinematic_topology_tree_structure - SUBTYPE OF (kinematic_topology_directed_structure); -END_ENTITY; -(* USED FROM (explicit_constraint_schema); *) -ENTITY explicit_constraint - ABSTRACT SUPERTYPE OF (ONEOF ( - DEFINED_CONSTRAINT, - FREE_FORM_CONSTRAINT)) - SUBTYPE OF (variational_representation_item); - description : OPTIONAL text; - constrained_elements : SET[1:?] OF representation_item; - reference_elements : SET[0:?] OF representation_item; -WHERE - WR1: SIZEOF(constrained_elements * reference_elements) = 0; -END_ENTITY; -(* USED FROM (explicit_constraint_schema); *) -ENTITY defined_constraint - ABSTRACT SUPERTYPE OF ( - EQUAL_PARAMETER_CONSTRAINT) - SUBTYPE OF (explicit_constraint); -END_ENTITY; -(* REFERENCE FROM (geometry_schema); *) -(* Pruned SUPERTYPE *) -ENTITY volume - - SUBTYPE OF (geometric_representation_item); -WHERE - WR1: SELF\geometric_representation_item.dim = 3; -END_ENTITY; -(* USED FROM (geometric_model_schema); *) -ENTITY repositioned_tessellated_item - SUBTYPE OF (tessellated_item); - location : axis2_placement_3d; -WHERE - WR1: NOT (SIZEOF (['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.TESSELLATED_CURVE_SET', 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.TESSELLATED_GEOMETRIC_SET', 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.TESSELLATED_POINT_SET', 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.TESSELLATED_SURFACE_SET', 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.TESSELLATED_SHELL', 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.TESSELLATED_SOLID', 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.TESSELLATED_WIRE'] * TYPEOF(SELF)) = 0); -END_ENTITY; -(* USED FROM (kinematic_topology_schema); *) -ENTITY kinematic_topology_directed_structure - SUBTYPE OF (representation); - SELF\representation.items : SET[1:?] OF oriented_joint; - parent : kinematic_topology_structure; -WHERE - WR1: context_of_items :=: parent.context_of_items; - WR2: get_kinematic_joints_from_oriented_joints(items) <= parent.items; -END_ENTITY; -(* USED FROM (iso13584_expressions_schema); *) -ENTITY value_function -SUPERTYPE OF ( - INT_VALUE_FUNCTION) - -SUBTYPE OF (numeric_expression, unary_generic_expression); - SELF\unary_generic_expression.operand: string_expression; -END_ENTITY; -(* USED FROM (iso13584_expressions_schema); *) -ENTITY odd_function -SUBTYPE OF (unary_Boolean_expression); - SELF\unary_generic_expression.operand: numeric_expression; -WHERE - WR1: is_int_expr(operand); -END_ENTITY; -(* USED FROM (explicit_geometric_constraint_schema); *) -ENTITY explicit_geometric_constraint - ABSTRACT SUPERTYPE OF (ONEOF ( - FIXED_ELEMENT_GEOMETRIC_CONSTRAINT, - PARALLEL_GEOMETRIC_CONSTRAINT, - POINT_DISTANCE_GEOMETRIC_CONSTRAINT, - SKEW_LINE_DISTANCE_GEOMETRIC_CONSTRAINT, - CURVE_DISTANCE_GEOMETRIC_CONSTRAINT, - SURFACE_DISTANCE_GEOMETRIC_CONSTRAINT, - RADIUS_GEOMETRIC_CONSTRAINT, - CURVE_LENGTH_GEOMETRIC_CONSTRAINT, - PARALLEL_OFFSET_GEOMETRIC_CONSTRAINT, - ANGLE_GEOMETRIC_CONSTRAINT, - PERPENDICULAR_GEOMETRIC_CONSTRAINT, - INCIDENCE_GEOMETRIC_CONSTRAINT, - COAXIAL_GEOMETRIC_CONSTRAINT, - TANGENT_GEOMETRIC_CONSTRAINT, - SYMMETRY_GEOMETRIC_CONSTRAINT, - SWEPT_POINT_CURVE_GEOMETRIC_CONSTRAINT, - SWEPT_CURVE_SURFACE_GEOMETRIC_CONSTRAINT, - CURVE_SMOOTHNESS_GEOMETRIC_CONSTRAINT, - SURFACE_SMOOTHNESS_GEOMETRIC_CONSTRAINT)) - SUBTYPE OF (defined_constraint, geometric_representation_item); - SELF\explicit_constraint.constrained_elements : - SET[1:?] OF geometric_representation_item; - SELF\explicit_constraint.reference_elements : - SET[0:?] OF geometric_representation_item; -END_ENTITY; -(* USED FROM (explicit_geometric_constraint_schema); *) -ENTITY fixed_element_geometric_constraint - SUBTYPE OF (explicit_geometric_constraint); - SELF\explicit_constraint.constrained_elements : - SET[1:?] OF geometric_constraint_element; -WHERE - WR1: SIZEOF(SELF\explicit_constraint.reference_elements) = 0; -END_ENTITY; -(* USED FROM (kinematic_topology_schema); *) -ENTITY kinematic_topology_substructure - SUBTYPE OF (kinematic_topology_structure); - parent : kinematic_topology_structure; -WHERE - WR1: context_of_items :=: parent.context_of_items; - WR2: SELF\kinematic_topology_structure.items <= parent\kinematic_topology_structure.items; -END_ENTITY; -(* USED FROM (iso13584_expressions_schema); *) -ENTITY length_function -SUBTYPE OF (numeric_expression, unary_generic_expression); - SELF\unary_generic_expression.operand: string_expression; -END_ENTITY; -(* USED FROM (explicit_geometric_constraint_schema); *) -ENTITY point_distance_geometric_constraint - SUBTYPE OF (explicit_geometric_constraint); - SELF\explicit_constraint.constrained_elements : SET[1:?] OF point; - SELF\explicit_constraint.reference_elements : - SET[0:4] OF point_curve_or_surface_constraint_element; -WHERE - WR1: (SIZEOF(SELF\explicit_constraint.reference_elements) > 0) OR - (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PDGC_WITH_DIMENSION' - IN TYPEOF(SELF)) AND - (SIZEOF(SELF\explicit_constraint.constrained_elements) = 2)); -END_ENTITY; -(* USED FROM (explicit_geometric_constraint_schema); *) -ENTITY pdgc_with_dimension - SUBTYPE OF (point_distance_geometric_constraint); - distance_value : non_negative_length_measure; -END_ENTITY; -(* USED FROM (explicit_geometric_constraint_schema); *) -ENTITY skew_line_distance_geometric_constraint - SUBTYPE OF (explicit_geometric_constraint); - SELF\explicit_constraint.constrained_elements : SET[1:2] OF line; - SELF\explicit_constraint.reference_elements : SET[0:1] OF line; - distance_value : non_negative_length_measure; -WHERE - WR1: SIZEOF(SELF\explicit_constraint.constrained_elements + - SELF\explicit_constraint.reference_elements) = 2; -END_ENTITY; -(* USED FROM (geometric_model_schema); *) -ENTITY tessellated_geometric_set - SUBTYPE OF (tessellated_item); - children : SET[1:?] OF tessellated_item; -END_ENTITY; -(* USED FROM (geometric_model_schema); *) -ENTITY tessellated_solid - SUBTYPE OF (tessellated_item); - items : SET[1:?] OF tessellated_structured_item; - geometric_link : OPTIONAL manifold_solid_brep; -END_ENTITY; -(* USED FROM (explicit_geometric_constraint_schema); *) -ENTITY cdgc_with_dimension - SUBTYPE OF (curve_distance_geometric_constraint); - distance_value : non_negative_length_measure; -END_ENTITY; -(* USED FROM (geometric_model_schema); *) -ENTITY tessellated_shell - SUBTYPE OF (tessellated_item); - items : SET[1:?] OF tessellated_structured_item; - topological_link : OPTIONAL connected_face_set; -END_ENTITY; -(* USED FROM (explicit_geometric_constraint_schema); *) -ENTITY sdgc_with_dimension - SUBTYPE OF (surface_distance_geometric_constraint); - distance_value : non_negative_length_measure; -END_ENTITY; -(* USED FROM (explicit_geometric_constraint_schema); *) -ENTITY radius_geometric_constraint - SUBTYPE OF (explicit_geometric_constraint); - SELF\explicit_constraint.constrained_elements : - SET[1:?] OF radial_geometry_constraint_element; -WHERE - WR1: SIZEOF(SELF\explicit_constraint.reference_elements) = 0; -END_ENTITY; -(* USED FROM (explicit_geometric_constraint_schema); *) -ENTITY rgc_with_dimension - SUBTYPE OF (radius_geometric_constraint); - radius_value : positive_length_measure; -END_ENTITY; -(* USED FROM (explicit_geometric_constraint_schema); *) -ENTITY curve_length_geometric_constraint - SUBTYPE OF (explicit_geometric_constraint); - SELF\explicit_constraint.constrained_elements : - SET[1:?] OF bounded_curve; -WHERE - WR1: SIZEOF(SELF\explicit_constraint.reference_elements) = 0; -END_ENTITY; -(* USED FROM (explicit_geometric_constraint_schema); *) -ENTITY clgc_with_dimension - SUBTYPE OF (curve_length_geometric_constraint); - length_value : positive_length_measure; -END_ENTITY; -(* USED FROM (geometric_model_schema); *) -ENTITY tessellated_structured_item - SUPERTYPE OF (ONEOF ( - TESSELLATED_FACE, - TESSELLATED_EDGE, - TESSELLATED_VERTEX)) - SUBTYPE OF (tessellated_item); -END_ENTITY; -(* USED FROM (explicit_geometric_constraint_schema); *) -ENTITY pogc_with_dimension - SUBTYPE OF (parallel_offset_geometric_constraint); - offset_value : positive_length_measure; - offset_direction_constrained : BOOLEAN; -WHERE - WR1: (SIZEOF(SELF\explicit_constraint.reference_elements) = 1) - OR (SIZEOF(SELF\explicit_constraint.constrained_elements) = 2); - WR2: (NOT (offset_direction_constrained = TRUE) - AND ((offset_type = curve_2d_offset) - OR (offset_type = surface_offset))); -END_ENTITY; -(* USED FROM (explicit_geometric_constraint_schema); *) -ENTITY angle_geometric_constraint - SUBTYPE OF (explicit_geometric_constraint); - SELF\explicit_constraint.constrained_elements : - SET[1:?] OF linear_geometry_constraint_element; - SELF\explicit_constraint.reference_elements : - SET[0:1] OF linear_geometry_constraint_element; -WHERE - WR1: (SIZEOF(SELF\explicit_constraint.reference_elements) = 1) OR - (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.AGC_WITH_DIMENSION' - IN TYPEOF(SELF)) AND - (SIZEOF(SELF\explicit_constraint.constrained_elements) = 2)); -END_ENTITY; -(* USED FROM (explicit_geometric_constraint_schema); *) -ENTITY agc_with_dimension - SUBTYPE OF (angle_geometric_constraint); - angle_value : plane_angle_measure; -END_ENTITY; -(* USED FROM (geometric_model_schema); *) -ENTITY tessellated_connecting_edge - SUBTYPE OF (tessellated_edge); - smooth : LOGICAL; - face1 : tessellated_face; - face2 : tessellated_face; - line_strip_face1 : LIST[2:?] OF INTEGER; - line_strip_face2 : LIST[2:?] OF INTEGER; -WHERE - WR1: SIZEOF(line_strip_face1) = SIZEOF(line_strip_face2); - WR2: SIZEOF(line_strip_face1) = SIZEOF(SELF\tessellated_edge.line_strip); -END_ENTITY; -(* USED FROM (geometric_model_schema); *) -ENTITY tessellated_edge - SUBTYPE OF (tessellated_structured_item); - coordinates : coordinates_list; - geometric_link : OPTIONAL edge_or_curve; - line_strip : LIST[2:?] OF INTEGER; -END_ENTITY; -(* USED FROM (iso13584_expressions_schema); *) -ENTITY square_root_function -SUBTYPE OF (unary_function_call); -END_ENTITY; -(* USED FROM (iso13584_expressions_schema); *) -ENTITY sin_function -SUBTYPE OF (unary_function_call); -END_ENTITY; -(* USED FROM (explicit_geometric_constraint_schema); *) -ENTITY symmetry_geometric_constraint - SUBTYPE OF (explicit_geometric_constraint); - SELF\explicit_constraint.constrained_elements : - SET[2:2] OF geometric_representation_item; - mirror_element : linear_geometry_constraint_element; -WHERE - WR1: SIZEOF(SELF\explicit_constraint.reference_elements) = 0; - WR2: SIZEOF(TYPEOF(mirror_element) * - ['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.DIRECTION','AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.VECTOR']) = 0; - WR3: NOT ((SELF\geometric_representation_item.dim = 2) AND - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PLANE' IN TYPEOF(mirror_element))); -END_ENTITY; -(* USED FROM (explicit_geometric_constraint_schema); *) -ENTITY swept_point_curve_geometric_constraint - SUBTYPE OF (explicit_geometric_constraint); - SELF\explicit_constraint.constrained_elements : SET[1:?] OF curve; - SELF\explicit_constraint.reference_elements : - SET[1:1] OF swept_face_solid; -END_ENTITY; -(* USED FROM (explicit_geometric_constraint_schema); *) -ENTITY swept_curve_surface_geometric_constraint - SUBTYPE OF (explicit_geometric_constraint); - SELF\explicit_constraint.constrained_elements : SET[1:?] OF surface; - SELF\explicit_constraint.reference_elements : - SET[1:1] OF swept_surface_or_solid; -END_ENTITY; -(* USED FROM (explicit_geometric_constraint_schema); *) -ENTITY curve_segment_set - SUBTYPE OF (geometric_representation_item); - segments : SET[1:?] OF composite_curve_segment; -END_ENTITY; -(* USED FROM (explicit_geometric_constraint_schema); *) -ENTITY curve_smoothness_geometric_constraint - SUBTYPE OF (explicit_geometric_constraint); - SELF\explicit_constraint.constrained_elements : - SET[1:1] OF curve_segment_set; - smoothness : transition_code; -WHERE - WR1: SIZEOF(SELF\explicit_constraint.reference_elements) = 0; -END_ENTITY; -(* USED FROM (explicit_geometric_constraint_schema); *) -ENTITY surface_patch_set - SUBTYPE OF (geometric_representation_item); - patches : SET[1:?] OF surface_patch; -END_ENTITY; -(* USED FROM (explicit_geometric_constraint_schema); *) -ENTITY surface_smoothness_geometric_constraint - SUBTYPE OF (explicit_geometric_constraint); - SELF\explicit_constraint.constrained_elements : - SET [1:1] OF surface_patch_set; - u_smoothness : transition_code; - v_smoothness : transition_code; -WHERE - WR1: SIZEOF(SELF\explicit_constraint.reference_elements) = 0; -END_ENTITY; -(* USED FROM (geometric_model_schema); *) -ENTITY tessellated_surface_set - ABSTRACT SUPERTYPE OF (ONEOF ( - TRIANGULATED_SURFACE_SET, - COMPLEX_TRIANGULATED_SURFACE_SET)) - SUBTYPE OF (tessellated_item); - coordinates : coordinates_list; - pnmax : INTEGER; - normals : LIST[0:?] OF LIST[3:3] OF REAL; -WHERE - WR1: ((SIZEOF(normals) = 0) OR (SIZEOF(normals) = 1) OR (SIZEOF(normals) = pnmax)); -END_ENTITY; -(* USED FROM (geometric_model_schema); *) -ENTITY triangulated_surface_set - SUBTYPE OF (tessellated_surface_set); - pnindex : LIST[0:?] OF INTEGER; - triangles : LIST[1:?] OF LIST[3:3] OF INTEGER; -WHERE - WR1: ((SIZEOF(pnindex) = 0) OR (SIZEOF(pnindex) = SELF\tessellated_surface_set.pnmax)); - WR2: NOT((SIZEOF(pnindex) = 0) AND (SELF\tessellated_surface_set.pnmax <> coordinates.npoints)); -END_ENTITY; -(* USED FROM (iso13584_expressions_schema); *) -ENTITY minimum_function -SUBTYPE OF (multiple_arity_function_call); -END_ENTITY; -(* USED FROM (iso13584_expressions_schema); *) -ENTITY maximum_function -SUBTYPE OF (multiple_arity_function_call); -END_ENTITY; -(* USED FROM (iso13584_expressions_schema); *) -ENTITY minus_function -SUBTYPE OF (unary_function_call); -END_ENTITY; - -(* Implicit interfaced from: mathematical_functions_schema *) -ENTITY imported_curve_function - SUBTYPE OF (maths_function, generic_literal); - geometry : curve; - parametric_domain : tuple_space; -WHERE - WR1: expression_is_constant(parametric_domain); -END_ENTITY; - -(* Implicit interfaced from: mathematical_functions_schema *) -ENTITY imported_volume_function - SUBTYPE OF (maths_function, generic_literal); - geometry : volume; - parametric_domain : tuple_space; -WHERE - WR1: expression_is_constant(parametric_domain); -END_ENTITY; -(* USED FROM (geometric_model_schema); *) -ENTITY complex_triangulated_surface_set - SUBTYPE OF (tessellated_surface_set); - pnindex : LIST[0:?] OF INTEGER; - triangle_strips : LIST[0:?] OF LIST[3:?] OF INTEGER; - triangle_fans : LIST[0:?] OF LIST[3:?] OF INTEGER; -WHERE - WR1: ((SIZEOF(pnindex) = 0) OR (SIZEOF(pnindex) = SELF\tessellated_surface_set.pnmax)); - WR2: NOT((SIZEOF(pnindex) = 0) AND (SELF\tessellated_surface_set.pnmax <> coordinates.npoints)); - WR3: NOT ((SIZEOF(triangle_strips) = 0) AND (SIZEOF(triangle_fans) = 0)); -END_ENTITY; -(* USED FROM (geometric_model_schema); *) -ENTITY tessellated_face - ABSTRACT SUPERTYPE OF (ONEOF ( - TRIANGULATED_FACE, - COMPLEX_TRIANGULATED_FACE)) - SUBTYPE OF (tessellated_structured_item); - coordinates : coordinates_list; - pnmax : INTEGER; - normals : LIST[0:?] OF LIST[3:3] OF REAL; - geometric_link : OPTIONAL face_or_surface; -WHERE - WR1: ((SIZEOF(normals) = 0) OR (SIZEOF(normals) = 1) OR (SIZEOF(normals) = pnmax)); -END_ENTITY; -(* USED FROM (iso13584_expressions_schema); *) -ENTITY log10_function -SUBTYPE OF (unary_function_call); -END_ENTITY; -(* USED FROM (iso13584_expressions_schema); *) -ENTITY log_function -SUBTYPE OF (unary_function_call); -END_ENTITY; -(* USED FROM (iso13584_expressions_schema); *) -ENTITY log2_function -SUBTYPE OF (unary_function_call); -END_ENTITY; -(* USED FROM (iso13584_expressions_schema); *) -ENTITY exp_function -SUBTYPE OF (unary_function_call); -END_ENTITY; -(* USED FROM (iso13584_expressions_schema); *) -ENTITY cos_function -SUBTYPE OF (unary_function_call); -END_ENTITY; -(* USED FROM (iso13584_expressions_schema); *) -ENTITY integer_defined_function - ABSTRACT SUPERTYPE - -SUBTYPE OF (numeric_defined_function); -END_ENTITY ; -(* USED FROM (aic_machining_feature); *) -ENTITY feature_component_relationship - SUPERTYPE OF (ONEOF ( - PATTERN_OMIT_MEMBERSHIP, - PATTERN_OFFSET_MEMBERSHIP)) - SUBTYPE OF (shape_aspect_relationship); - WHERE - WR1: ((SIZEOF([ - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.COMPOSITE_SHAPE_ASPECT', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.REPLICATE_FEATURE', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.TRANSITION_FEATURE', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MODIFIED_PATTERN'] * TYPEOF - (SELF.relating_shape_aspect)) = 1) OR - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MACHINING_FEATURE_DEFINITION' - IN TYPEOF(SELF.relating_shape_aspect.of_shape.definition)) OR - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.FEATURE_COMPONENT_DEFINITION' - IN TYPEOF(SELF.relating_shape_aspect.of_shape.definition))); -END_ENTITY; -- feature_component_relationship -(* USED FROM (geometric_model_schema); *) -ENTITY triangulated_face - SUBTYPE OF (tessellated_face); - pnindex : LIST[0:?] OF INTEGER; - triangles : LIST[1:?] OF LIST[3:3] OF INTEGER; -WHERE - WR1: ((SIZEOF(pnindex) = 0) OR (SIZEOF(pnindex) = SELF\tessellated_face.pnmax)); - WR2: NOT((SIZEOF(pnindex) = 0) AND (SELF\tessellated_face.pnmax <> coordinates.npoints)); -END_ENTITY; -(* USED FROM (iso13584_expressions_schema); *) -ENTITY asin_function - SUBTYPE OF (unary_function_call); -END_ENTITY; -(* USED FROM (iso13584_expressions_schema); *) -ENTITY acos_function -SUBTYPE OF (unary_function_call); -END_ENTITY; -(* USED FROM (iso13584_expressions_schema); *) -ENTITY atan_function -SUBTYPE OF (binary_function_call); -END_ENTITY; -(* USED FROM (topology_schema); *) - 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; -(* USED FROM (topology_schema); *) - ENTITY vertex_shell - SUBTYPE OF (topological_representation_item); - vertex_shell_extent : vertex_loop; - END_ENTITY; -(* USED FROM (iso13584_expressions_schema); *) -ENTITY abs_function -SUBTYPE OF (unary_function_call); -END_ENTITY; -(* USED FROM (presentation_appearance_schema); *) - ENTITY surface_style_transparent; - transparency : REAL; - WHERE - WR1: {0.0 <= transparency <= 1.0}; - END_ENTITY; -(* USED FROM (presentation_appearance_schema); *) - 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; -(* USED FROM (presentation_appearance_schema); *) - 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; -(* USED FROM (presentation_appearance_schema); *) - ENTITY surface_style_reflectance_ambient_diffuse - SUBTYPE OF (surface_style_reflectance_ambient); - diffuse_reflectance : REAL; - END_ENTITY; -(* USED FROM (presentation_appearance_schema); *) - ENTITY surface_style_reflectance_ambient; - ambient_reflectance : REAL; - END_ENTITY; -(* USED FROM (presentation_appearance_schema); *) - ENTITY surface_rendering_properties; - rendered_colour : colour; - END_ENTITY; -(* USED FROM (action_schema); *) - ENTITY directed_action - SUBTYPE OF (executed_action); - directive : action_directive; - END_ENTITY; -(* USED FROM (action_schema); *) - ENTITY action_directive; - name : label; - description : OPTIONAL text; - analysis : text; - comment : text; - requests : SET [1:?] OF versioned_action_request; - END_ENTITY; -(* USED FROM (draughting_element_schema); *) - ENTITY draughting_callout_relationship; - name : label; - description : text; - relating_draughting_callout : draughting_callout; - related_draughting_callout : draughting_callout; - END_ENTITY; -(* USED FROM (date_time_schema); *) -ENTITY time_interval_role; - name : label; - description : OPTIONAL text; -END_ENTITY; -(* USED FROM (management_resources_schema); *) - ENTITY action_request_assignment - ABSTRACT SUPERTYPE; - assigned_action_request : versioned_action_request; - DERIVE - role : object_role := get_role(SELF); - WHERE - WR1: SIZEOF(USEDIN(SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'ROLE_ASSOCIATION.ITEM_WITH_ROLE')) <= 1; - END_ENTITY; -(* USED FROM (management_resources_schema); *) - ENTITY time_interval_assignment - ABSTRACT SUPERTYPE; - assigned_time_interval : time_interval; - role : time_interval_role; - END_ENTITY; -(* USED FROM (action_schema); *) - ENTITY versioned_action_request; - id : identifier; - version : OPTIONAL label; - purpose : text; - description : OPTIONAL text; - END_ENTITY; -(* USED FROM (action_schema); *) - ENTITY action_request_status; - status : label; - assigned_request : versioned_action_request; - END_ENTITY; -(* USED FROM (action_schema); *) - ENTITY versioned_action_request_relationship; - id : identifier; - name : label; - description : OPTIONAL text; - relating_versioned_action_request : versioned_action_request; - related_versioned_action_request : versioned_action_request; - END_ENTITY; -(* USED FROM (management_resources_schema); *) - ENTITY security_classification_assignment - ABSTRACT SUPERTYPE; - assigned_security_classification : security_classification; - DERIVE - role : object_role := get_role(SELF); - WHERE - WR1: SIZEOF(USEDIN(SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'ROLE_ASSOCIATION.ITEM_WITH_ROLE')) <= 1; - END_ENTITY; -(* USED FROM (security_classification_schema); *) - ENTITY security_classification_level; - name : label; - END_ENTITY; -(* USED FROM (action_schema); *) - 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, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'DESCRIPTION_ATTRIBUTE.DESCRIBED_ITEM')) <= 1; - WR2: SIZEOF(USEDIN(SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'NAME_ATTRIBUTE.NAMED_ITEM')) <= 1; - END_ENTITY; -(* USED FROM (geometric_model_schema); *) -ENTITY tessellated_vertex - SUBTYPE OF (tessellated_structured_item); - coordinates : coordinates_list; - topological_link : OPTIONAL vertex_point; - point_index : INTEGER; -END_ENTITY; -(* USED FROM (Project_mim); *) -ENTITY applied_organizational_project_assignment - SUBTYPE OF (organizational_project_assignment); - items : SET[1:?] OF project_item; -END_ENTITY; -(* USED FROM (Multi_linguism_mim); *) -ENTITY attribute_language_assignment -SUBTYPE OF (attribute_classification_assignment); - SELF\attribute_classification_assignment.assigned_class: language; - items : SET [1:?] OF attribute_language_item; -WHERE -WR1: SELF\attribute_classification_assignment.role.name IN ['primary', 'translated']; -WR2: SELF\attribute_classification_assignment.attribute_name<> ''; -END_ENTITY; -(* USED FROM (Multi_linguism_mim); *) -ENTITY language -SUBTYPE OF (group); -WHERE -WR1: SELF\group.name <> ''; -END_ENTITY; -(* USED FROM (management_resources_schema); *) - ENTITY identification_role; - name : label; - description : OPTIONAL text; - END_ENTITY; -(* USED FROM (management_resources_schema); *) - ENTITY certification_assignment - ABSTRACT SUPERTYPE; - assigned_certification : certification; - DERIVE - role : object_role := get_role(SELF); - WHERE - WR1: SIZEOF(USEDIN(SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'ROLE_ASSOCIATION.ITEM_WITH_ROLE')) <= 1; - END_ENTITY; -(* USED FROM (certification_schema); *) - ENTITY certification_type; - description : label; - END_ENTITY; -(* USED FROM (certification_schema); *) - ENTITY certification; - name : label; - purpose : text; - kind : certification_type; - END_ENTITY; -(* USED FROM (aic_machining_feature); *) -ENTITY shape_defining_relationship - SUBTYPE OF (shape_aspect_relationship); -END_ENTITY; -(* USED FROM (security_classification_schema); *) - ENTITY security_classification; - name : label; - purpose : text; - security_level : security_classification_level; - END_ENTITY; -(* USED FROM (geometric_model_schema); *) -ENTITY faceted_brep - SUBTYPE OF (manifold_solid_brep); -END_ENTITY; -(* USED FROM (geometry_schema); *) -ENTITY elementary_surface - SUPERTYPE OF (ONEOF ( - PLANE, - CYLINDRICAL_SURFACE, - CONICAL_SURFACE, - SPHERICAL_SURFACE, - TOROIDAL_SURFACE)) - SUBTYPE OF (surface); - position : axis2_placement_3d; -END_ENTITY; -(* USED FROM (management_resources_schema); *) - ENTITY name_assignment - ABSTRACT SUPERTYPE; - assigned_name : label; - DERIVE - role : object_role := get_role(SELF); - WHERE - WR1: SIZEOF(USEDIN(SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'ROLE_ASSOCIATION.ITEM_WITH_ROLE')) <= 1; - END_ENTITY; -(* USED FROM (geometric_model_schema); *) -ENTITY edge_based_wireframe_model - SUBTYPE OF (geometric_representation_item); - ebwm_boundary : SET[1:?] OF connected_edge_set; -END_ENTITY; -(* USED FROM (kinematic_state_schema); *) -ENTITY rotation_about_direction - SUBTYPE OF (geometric_representation_item); -- LK - direction_of_axis : direction; - rotation_angle : plane_angle_measure; -WHERE - WR1: SIZEOF (direction_of_axis.direction_ratios) = 3; -END_ENTITY; -(* USED FROM (geometric_model_schema); *) -ENTITY face_based_surface_model - SUBTYPE OF (geometric_representation_item); - fbsm_faces : SET[1:?] OF connected_face_set; -END_ENTITY; -(* USED FROM (kinematic_state_schema); *) -ENTITY point_on_surface_pair_value - SUBTYPE OF (pair_value); - SELF\pair_value.applies_to_pair : point_on_surface_pair; - actual_point_on_surface : point_on_surface; - input_orientation : spatial_rotation; -DERIVE - actual_orientation : ypr_rotation - := convert_spatial_to_ypr_rotation - (SELF\pair_value.applies_to_pair, - input_orientation); -WHERE - WR1: SELF\pair_value.applies_to_pair\point_on_surface_pair.pair_surface :=: - actual_point_on_surface.basis_surface; -END_ENTITY; -(* USED FROM (kinematic_state_schema); *) -ENTITY unconstrained_pair_value - SUBTYPE OF (pair_value); - SELF\pair_value.applies_to_pair : unconstrained_pair; - actual_placement : axis2_placement_3d; -END_ENTITY; -(* USED FROM (aic_machining_feature); *) -ENTITY transition_feature - SUPERTYPE OF (ONEOF ( - CHAMFER, - EDGE_ROUND, - FILLET)) - SUBTYPE OF (shape_aspect); - WHERE - WR1: SIZEOF(['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PRODUCT_DEFINITION', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.COMPOUND_FEATURE'] - * TYPEOF(SELF.of_shape.definition)) = 1; - WR2: SIZEOF(['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CHAMFER', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.EDGE_ROUND', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.FILLET'] * - TYPEOF(SELF)) = 1; -END_ENTITY; -- transition_feature -(* USED FROM (kinematic_state_schema); *) -ENTITY point_on_planar_curve_pair_value - SUBTYPE OF (pair_value); - SELF\pair_value.applies_to_pair : point_on_planar_curve_pair; - actual_point_on_curve : point_on_curve; - input_orientation : spatial_rotation; -DERIVE - actual_orientation : ypr_rotation - := convert_spatial_to_ypr_rotation - (SELF\pair_value.applies_to_pair, - input_orientation); -WHERE - WR1: SELF\pair_value.applies_to_pair\point_on_planar_curve_pair.pair_curve - :=: actual_point_on_curve.basis_curve; -END_ENTITY; -(* USED FROM (draughting_element_schema); *) - ENTITY leader_terminator - SUBTYPE OF (terminator_symbol); - WHERE - WR1: 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LEADER_CURVE' IN TYPEOF - (SELF\terminator_symbol.annotated_curve); - END_ENTITY; -(* USED FROM (topology_schema); *) - ENTITY connected_edge_set - SUBTYPE OF (topological_representation_item); - ces_edges : SET [1:?] OF edge; - END_ENTITY; -(* USED FROM (topology_schema); *) - ENTITY connected_face_set - SUPERTYPE OF (ONEOF ( - CLOSED_SHELL, - OPEN_SHELL)) - SUBTYPE OF (topological_representation_item); - cfs_faces : SET [1:?] OF face; - END_ENTITY; -(* USED FROM (topology_schema); *) - ENTITY edge - SUPERTYPE OF (ONEOF ( - EDGE_CURVE, - ORIENTED_EDGE, - SUBEDGE)) - SUBTYPE OF (topological_representation_item); - edge_start : vertex; - edge_end : vertex; - END_ENTITY; -(* USED FROM (topology_schema); *) - 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; -(* USED FROM (presentation_appearance_schema); *) - ENTITY curve_style_rendering; - rendering_method : shading_curve_method; - rendering_properties : surface_rendering_properties; - END_ENTITY; -(* USED FROM (topology_schema); *) - ENTITY face_bound - SUBTYPE OF(topological_representation_item); - bound : loop; - orientation : BOOLEAN; - END_ENTITY; -(* USED FROM (topology_schema); *) - ENTITY face_outer_bound - SUBTYPE OF (face_bound); - END_ENTITY; -(* USED FROM (topology_schema); *) - ENTITY loop - SUPERTYPE OF (ONEOF ( - VERTEX_LOOP, - EDGE_LOOP, - POLY_LOOP)) - SUBTYPE OF (topological_representation_item); - END_ENTITY; -(* USED FROM (topology_schema); *) - ENTITY oriented_edge - SUBTYPE OF (edge); - edge_element : edge; - orientation : BOOLEAN; - DERIVE - SELF\edge.edge_start : vertex := boolean_choose (SELF.orientation, - SELF.edge_element.edge_start, - SELF.edge_element.edge_end); - SELF\edge.edge_end : vertex := boolean_choose (SELF.orientation, - SELF.edge_element.edge_end, - SELF.edge_element.edge_start); - WHERE - WR1: NOT ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.ORIENTED_EDGE' IN TYPEOF (SELF.edge_element)); - END_ENTITY; -(* USED FROM (geometric_model_schema); *) -ENTITY coordinates_list - SUBTYPE OF (tessellated_item); - npoints : INTEGER; - position_coords : LIST[1:?] OF LIST[3:3] OF REAL; -WHERE - WR1: npoints = SIZEOF(position_coords); - WR2: SIZEOF (['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.REPOSITIONED_TESSELLATED_ITEM'] * TYPEOF(SELF)) = 0; -END_ENTITY; -(* USED FROM (topology_schema); *) - 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; -(* USED FROM (topology_schema); *) - ENTITY vertex - SUBTYPE OF (topological_representation_item); - END_ENTITY; -(* USED FROM (topology_schema); *) - ENTITY vertex_loop - SUBTYPE OF (loop); - loop_vertex : vertex; - END_ENTITY; -(* USED FROM (assembly_constraint_schema); *) -ENTITY assembly_geometric_constraint - ABSTRACT SUPERTYPE OF (ONEOF ( - BINARY_ASSEMBLY_CONSTRAINT, - FIXED_CONSTITUENT_ASSEMBLY_CONSTRAINT)) - SUBTYPE OF (explicit_constraint); - -END_ENTITY;-- assembly_geometric_constraint -(* USED FROM (iso13584_generic_expressions_schema); *) -ENTITY environment; - syntactic_representation: generic_variable; - semantics: variable_semantics; -END_ENTITY; -(* USED FROM (kinematic_state_schema); *) -ENTITY rack_and_pinion_pair_value - SUBTYPE OF (pair_value); - SELF\pair_value.applies_to_pair : rack_and_pinion_pair; - actual_displacement : length_measure; -DERIVE - actual_rotation : plane_angle_measure - := 0.0; (* - := convert_plane_angle_for_pair_from_radian - (SELF\pair_value.applies_to_pair, - (- actual_displacement / - SELF\pair_value.applies_to_pair\ - rack_and_pinion_pair.pinion_radius)); *) -END_ENTITY; -(* USED FROM (assembly_constraint_schema); *) -ENTITY parallel_assembly_constraint - SUBTYPE OF (binary_assembly_constraint, - parallel_geometric_constraint); -END_ENTITY;-- parallel_assembly_constraint -(* USED FROM (assembly_constraint_schema); *) -ENTITY parallel_assembly_constraint_with_dimension - SUBTYPE OF (parallel_assembly_constraint, - pgc_with_dimension); -END_ENTITY;-- parallel_assembly_constraint_with_dimension -(* USED FROM (assembly_constraint_schema); *) -ENTITY surface_distance_assembly_constraint_with_dimension - SUBTYPE OF (binary_assembly_constraint, - sdgc_with_dimension); -END_ENTITY;-- surface_distance_assembly_constraint_with_dimension -(* USED FROM (assembly_constraint_schema); *) -ENTITY angle_assembly_constraint_with_dimension - SUBTYPE OF (binary_assembly_constraint, - agc_with_dimension); -END_ENTITY;-- angle_assembly_constraint_with_dimension -(* USED FROM (assembly_constraint_schema); *) -ENTITY perpendicular_assembly_constraint - SUBTYPE OF (binary_assembly_constraint, - perpendicular_geometric_constraint); -END_ENTITY;-- perpendicular_assembly_constraint -(* USED FROM (assembly_constraint_schema); *) -ENTITY incidence_assembly_constraint - SUBTYPE OF (binary_assembly_constraint, - incidence_geometric_constraint); -END_ENTITY;-- incidence_assembly_constraint -(* USED FROM (assembly_constraint_schema); *) -ENTITY coaxial_assembly_constraint - SUBTYPE OF (binary_assembly_constraint, - coaxial_geometric_constraint); -END_ENTITY;-- coaxial_assembly_constraint -(* USED FROM (assembly_constraint_schema); *) -ENTITY tangent_assembly_constraint - SUBTYPE OF (binary_assembly_constraint, - tangent_geometric_constraint); -END_ENTITY;-- tangent_assembly_constraint -(* USED FROM (kinematic_analysis_control_and_result_schema); *) -ENTITY kinematic_control; - controlled_mechanism : mechanism_representation; - contained_kinematic_programs : kinematic_analysis_definition; -END_ENTITY; -(* USED FROM (kinematic_analysis_control_and_result_schema); *) -ENTITY prescribed_path - SUBTYPE OF (link_motion_representation_along_path); - controlling_joints : OPTIONAL SET [1 : 6] OF kinematic_joint; -END_ENTITY; -(* USED FROM (kinematic_analysis_control_and_result_schema); *) -ENTITY kinematic_analysis_result; - analysed_mechanism : mechanism_representation; -- LK - result : kinematic_result; -(* -WHERE -WR1: ('KINEMATIC_ANALYSIS_CONTROL_AND_RESULT_SCHEMA.RESULTING_PATH' IN TYPEOF (result)) - XOR - (SIZEOF (QUERY (result <* contained_kinematic_results | - (('KINEMATIC_ANALYSIS_CONTROL_AND_RESULT_SCHEMA.'+ - 'INTERPOLATED_CONFIGURATION_SEQUENCE' IN TYPEOF (result)) - AND - (SIZEOF (QUERY (sequence <* result\ - interpolated_configuration_sequence.interpolation | - (sequence.interpolation <> undefined ))) > 0)))) = 0); -*) -END_ENTITY; -(* USED FROM (kinematic_analysis_control_and_result_schema); *) -ENTITY kinematic_analysis_consistency; - control : kinematic_control; - result : kinematic_analysis_result; -WHERE - WR1: control.controlled_mechanism :=: result.analysed_mechanism; -END_ENTITY; -(* USED FROM (kinematic_analysis_control_and_result_schema); *) -ENTITY resulting_path - SUBTYPE OF (link_motion_representation_along_path); - controlling_joints : SET [1 : ?] OF kinematic_joint; -END_ENTITY; -(* USED FROM (action_schema); *) - ENTITY action_method; - name : label; - description : OPTIONAL text; - consequence : text; - purpose : text; - END_ENTITY; -(* USED FROM (iso13584_generic_expressions_schema); *) -ENTITY variable_semantics - ABSTRACT SUPERTYPE; -END_ENTITY; -(* USED FROM (Specification_control_mim); *) - ENTITY instance_usage_context_assignment - SUBTYPE OF (product_definition_context); - items : SET [1:?] OF instance_usage_context_select; - END_ENTITY; -(* USED FROM (action_schema); *) - ENTITY action_method_relationship; - name : label; - description : OPTIONAL text; - relating_method : action_method; - related_method : action_method; - END_ENTITY; -(* USED FROM (iso13584_expressions_schema); *) -ENTITY concat_expression -SUBTYPE OF (string_expression, multiple_arity_generic_expression); - SELF\multiple_arity_generic_expression.operands: - LIST [2 : ?] OF string_expression; -END_ENTITY; -(* USED FROM (process_property_representation_schema); *) -ENTITY action_property_representation; - name : label; - description : text; - property : action_property; - representation : representation; -END_ENTITY; -(* USED FROM (process_property_representation_schema); *) -ENTITY resource_property_representation; - name : label; - description : text; - property : resource_property; - representation : representation; -END_ENTITY; -(* USED FROM (process_property_schema); *) -ENTITY action_property; - name : label; - description : text; - definition : characterized_action_definition; -END_ENTITY; -(* USED FROM (process_property_schema); *) -ENTITY action_resource_requirement; - name : label; - description : text; - kind : resource_requirement_type; - operations : SET [1:?] OF characterized_action_definition; -END_ENTITY; -(* USED FROM (process_property_schema); *) -ENTITY process_product_association; - name : label; - description : text; - defined_product : characterized_product_definition; - process : product_definition_process; -END_ENTITY; -(* USED FROM (process_property_schema); *) -ENTITY process_property_association; - name : label; - description : text; - process : property_process; - property_or_shape : property_or_shape_select; -END_ENTITY; -(* USED FROM (process_property_schema); *) -ENTITY product_definition_process - SUBTYPE OF (action); - identification : identifier; -INVERSE - product_definitions : SET [1:?] OF process_product_association FOR process; -END_ENTITY; -(* USED FROM (process_property_schema); *) -ENTITY property_process - SUBTYPE OF (action); - identification : identifier; -INVERSE - properties : SET [1:?] OF process_property_association FOR process; -END_ENTITY; -(* USED FROM (process_property_schema); *) -ENTITY requirement_for_action_resource - SUBTYPE OF (action_resource_requirement); - resources : SET [1:?] OF action_resource; -END_ENTITY; -(* USED FROM (process_property_schema); *) -ENTITY resource_property; - name : label; - description : text; - resource : characterized_resource_definition; -END_ENTITY; -(* USED FROM (process_property_schema); *) -ENTITY resource_requirement_type; - name : label; - description : text; -END_ENTITY; -(* USED FROM (Product_as_individual_mim); *) -ENTITY product_design_version_to_individual - SUBTYPE OF (product_definition_formation_relationship); - - (* removed : SELF\product_definition_formation_relationship.individual_product : PRODUCT_DEFINITION_FORMATION *) - - (* removed : SELF\product_definition_formation_relationship.product_design_version : PRODUCT_DEFINITION_FORMATION *) - DERIVE - individual_product : PRODUCT_DEFINITION_FORMATION := SELF\product_definition_formation_relationship.related_product_definition_formation; -- RELATED_PRODUCT_DEFINITION_FORMATION : This ATTRIBUTE was RENAMED in the EXPRESS E2 source, this is the new name implemented as DERIVE - product_design_version : PRODUCT_DEFINITION_FORMATION := SELF\product_definition_formation_relationship.relating_product_definition_formation; -- RELATING_PRODUCT_DEFINITION_FORMATION : This ATTRIBUTE was RENAMED in the EXPRESS E2 source, this is the new name implemented as DERIVE - -END_ENTITY; -(* USED FROM (Product_as_individual_mim); *) -ENTITY product_design_to_individual - SUBTYPE OF (product_relationship); - - (* removed : SELF\product_relationship.individual_product : PRODUCT *) - - (* removed : SELF\product_relationship.product_design : PRODUCT *) - DERIVE - individual_product : PRODUCT := SELF\product_relationship.related_product; -- RELATED_PRODUCT : This ATTRIBUTE was RENAMED in the EXPRESS E2 source, this is the new name implemented as DERIVE - product_design : PRODUCT := SELF\product_relationship.relating_product; -- RELATING_PRODUCT : This ATTRIBUTE was RENAMED in the EXPRESS E2 source, this is the new name implemented as DERIVE - -END_ENTITY; -(* USED FROM (Product_as_individual_mim); *) -ENTITY product_planned_to_realized - SUBTYPE OF (product_definition_formation_relationship); - - (* removed : SELF\product_definition_formation_relationship.planned_product : PRODUCT_DEFINITION_FORMATION *) - - (* removed : SELF\product_definition_formation_relationship.realized_product : PRODUCT_DEFINITION_FORMATION *) - DERIVE - planned_product : PRODUCT_DEFINITION_FORMATION := SELF\product_definition_formation_relationship.relating_product_definition_formation; -- RELATING_PRODUCT_DEFINITION_FORMATION : This ATTRIBUTE was RENAMED in the EXPRESS E2 source, this is the new name implemented as DERIVE - realized_product : PRODUCT_DEFINITION_FORMATION := SELF\product_definition_formation_relationship.related_product_definition_formation; -- RELATED_PRODUCT_DEFINITION_FORMATION : This ATTRIBUTE was RENAMED in the EXPRESS E2 source, this is the new name implemented as DERIVE - -END_ENTITY; -(* USED FROM (Product_as_individual_mim); *) -ENTITY product_as_planned - SUBTYPE OF (product_definition_formation); -END_ENTITY; -(* USED FROM (Configuration_item_mim); *) -ENTITY configuration_item_hierarchical_relationship - SUBTYPE OF (configuration_item_relationship); -END_ENTITY; -(* USED FROM (Configuration_item_mim); *) -ENTITY configuration_item_revision_sequence - SUBTYPE OF (configuration_item_relationship); -END_ENTITY; -(* USED FROM (configuration_management_schema); *) -ENTITY configuration_design; - configuration : configuration_item; - design : configuration_design_item; -DERIVE - name : label := get_name_value (SELF); - description : text := get_description_value (SELF); -UNIQUE - UR1: configuration, design; -WHERE - WR1: SIZEOF (USEDIN (SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + - 'NAME_ATTRIBUTE.NAMED_ITEM')) <= 1; - WR2: SIZEOF (USEDIN (SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + - 'DESCRIPTION_ATTRIBUTE.DESCRIBED_ITEM')) <= 1; -END_ENTITY; -(* USED FROM (configuration_management_schema); *) -ENTITY configuration_item; - id : identifier; - name : label; - description : OPTIONAL text; - item_concept : product_concept; - purpose : OPTIONAL label; -END_ENTITY; -(* USED FROM (configuration_management_schema); *) -ENTITY configuration_item_relationship; - name : label; - description : OPTIONAL text; - relating_configuration_item : configuration_item; - related_configuration_item : configuration_item; -END_ENTITY; -(* USED FROM (product_definition_schema); *) - ENTITY product_definition SUPERTYPE OF ( ( ONEOF ( - COMPOSITE_ASSEMBLY_SEQUENCE_DEFINITION, - LAMINATE_TABLE, - PLY_LAMINATE_SEQUENCE_DEFINITION) )ANDOR( (ONEOF ( - PHYSICAL_UNIT, - STRATUM)) ) ) ; - 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, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'NAME_ATTRIBUTE.NAMED_ITEM')) <= 1; - END_ENTITY; -(* USED FROM (product_definition_schema); *) - ENTITY product_definition_formation; - id : identifier; - description : OPTIONAL text; - of_product : product; - UNIQUE - UR1: id, of_product; - END_ENTITY; -(* USED FROM (product_definition_schema); *) - 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; -(* USED FROM (product_definition_schema); *) - ENTITY product_relationship; - id : identifier; - name : label; - description : OPTIONAL text; - relating_product : product; - related_product : product; - END_ENTITY; -(* USED FROM (product_property_representation_schema); *) - ENTITY characterized_item_within_representation - SUBTYPE OF (characterized_object); - item : representation_item; - rep : representation; - UNIQUE - WR1: item, rep; - WHERE - WR2: rep IN using_representations(item); - END_ENTITY; -(* USED FROM (product_property_representation_schema); *) - ENTITY characterized_chain_based_item_within_representation - SUBTYPE OF (characterized_item_within_representation); - nodes : LIST[2:?] OF UNIQUE representation; - - undirected_link : LIST[1:?] OF chained_representation_link; - DERIVE - root : representation := nodes[1]; - - SELF\characterized_item_within_representation.rep : representation := nodes[HIINDEX(nodes)]; -- leaf : This ATTRIBUTE was RENAMED in the EXPRESS E2 source, an attribute with the new name is in the DERIVE clause - directed_link : LIST[1:?] OF representation_relationship := get_directed_link(nodes, undirected_link); - leaf : REPRESENTATION := SELF\characterized_item_within_representation.rep; -- REP : This ATTRIBUTE was RENAMED in the EXPRESS E2 source, this is the new name implemented as DERIVE - WHERE - WR1 : EXISTS(directed_link); - END_ENTITY; -(* USED FROM (material_property_definition_schema); *) -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; -(* USED FROM (product_structure_schema); *) -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; -(* USED FROM (Packaged_connector_model_mim); *) -ENTITY packaged_connector - SUBTYPE OF (packaged_part); -END_ENTITY; -(* USED FROM (Classification_with_attributes_mim); *) -ENTITY characterized_class -SUBTYPE OF (characterized_object, class); -END_ENTITY; -(* USED FROM (Classification_with_attributes_mim); *) -ENTITY class_system -SUBTYPE OF (group); -END_ENTITY; -(* USED FROM (Plib_class_reference_mim); *) - ENTITY known_source - SUBTYPE OF (external_source, pre_defined_item); - END_ENTITY; -(* USED FROM (product_property_definition_schema); *) - ENTITY general_property; - id : identifier; - name : label; - description : OPTIONAL text; - END_ENTITY; -(* USED FROM (product_property_definition_schema); *) - ENTITY general_property_association; - name : label; - description : OPTIONAL text; - base_definition : general_property; - derived_definition : derived_property_select; - WHERE - WR1: SIZEOF(USEDIN(derived_definition, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'GENERAL_PROPERTY_ASSOCIATION.' + 'DERIVED_DEFINITION')) = 1; - WR2: derived_definition.name = base_definition.name; - END_ENTITY; -(* USED FROM (presentation_appearance_schema); *) - ENTITY externally_defined_hatch_style - SUBTYPE OF (externally_defined_item, geometric_representation_item); - END_ENTITY; -(* USED FROM (Information_rights_mim); *) -ENTITY applied_usage_right - SUBTYPE OF (applied_action_assignment); - SELF\applied_action_assignment.items : SET[1:?] OF ir_usage_item; -END_ENTITY; -(* USED FROM (Information_rights_mim); *) -ENTITY information_right - SUBTYPE OF (action_method); -END_ENTITY; -(* USED FROM (Information_rights_mim); *) -ENTITY information_usage_right - SUBTYPE OF (action_method); -END_ENTITY; -(* USED FROM (Information_rights_mim); *) -ENTITY right_to_usage_association - SUBTYPE OF (action_method_relationship); - SELF\action_method_relationship.relating_method : information_usage_right; -- right_usage : This ATTRIBUTE was RENAMED in the EXPRESS E2 source, an attribute with the new name is in the DERIVE clause - SELF\action_method_relationship.related_method : information_right; -- right_applied : This ATTRIBUTE was RENAMED in the EXPRESS E2 source, an attribute with the new name is in the DERIVE clause - DERIVE - right_applied : INFORMATION_RIGHT := SELF\action_method_relationship.related_method; -- RELATED_METHOD : This ATTRIBUTE was RENAMED in the EXPRESS E2 source, this is the new name implemented as DERIVE - right_usage : INFORMATION_USAGE_RIGHT := SELF\action_method_relationship.relating_method; -- RELATING_METHOD : This ATTRIBUTE was RENAMED in the EXPRESS E2 source, this is the new name implemented as DERIVE - -END_ENTITY; -(* USED FROM (Information_rights_mim); *) -ENTITY usage_association - SUBTYPE OF (action_method_relationship); - SELF\action_method_relationship.relating_method : information_usage_right; -- relating : This ATTRIBUTE was RENAMED in the EXPRESS E2 source, an attribute with the new name is in the DERIVE clause - SELF\action_method_relationship.related_method : information_usage_right; -- related : This ATTRIBUTE was RENAMED in the EXPRESS E2 source, an attribute with the new name is in the DERIVE clause - DERIVE - related : INFORMATION_USAGE_RIGHT := SELF\action_method_relationship.related_method; -- RELATED_METHOD : This ATTRIBUTE was RENAMED in the EXPRESS E2 source, this is the new name implemented as DERIVE - relating : INFORMATION_USAGE_RIGHT := SELF\action_method_relationship.relating_method; -- RELATING_METHOD : This ATTRIBUTE was RENAMED in the EXPRESS E2 source, this is the new name implemented as DERIVE - -END_ENTITY; -(* USED FROM (Activity_method_assignment_mim); *) -ENTITY applied_action_method_assignment - SUBTYPE OF (action_method_assignment); - items : SET[1:?] OF action_method_items; -END_ENTITY; -(* USED FROM (management_resources_schema); *) - ENTITY action_method_assignment - ABSTRACT SUPERTYPE; - assigned_action_method : action_method; - role : action_method_role; - END_ENTITY; -(* USED FROM (Attribute_classification_mim); *) -ENTITY applied_attribute_classification_assignment - SUBTYPE OF (attribute_classification_assignment); - SELF\attribute_classification_assignment.assigned_class : class; - items : SET[1:?] OF attribute_classification_item; -END_ENTITY; -(* USED FROM (management_resources_schema); *) - ENTITY attribute_classification_assignment - ABSTRACT SUPERTYPE; - assigned_class : group; - attribute_name : label; - role : classification_role; - END_ENTITY; -(* USED FROM (contract_schema); *) - ENTITY contract_type; - description : label; - END_ENTITY; -(* USED FROM (product_definition_schema); *) - ENTITY product_definition_formation_with_specified_source - SUBTYPE OF (product_definition_formation); - make_or_buy : source; - END_ENTITY; -(* USED FROM (representation_schema); *) - ENTITY parametric_representation_context - SUBTYPE OF (representation_context); - END_ENTITY; -(* USED FROM (Associative_draughting_elements_mim); *) -ENTITY draughting_model_item_association - SUBTYPE OF(item_identified_representation_usage); - SELF\item_identified_representation_usage.definition : draughting_model_item_definition; - SELF\item_identified_representation_usage.used_representation : annotation_representation_select; - SELF\item_identified_representation_usage.identified_item : draughting_model_item_association_select; -END_ENTITY; -(* USED FROM (product_definition_schema); *) - ENTITY product_definition_context_association; - definition : product_definition; - frame_of_reference : product_definition_context; - role : product_definition_context_role; - END_ENTITY; -(* USED FROM (product_definition_schema); *) - ENTITY generic_product_definition_reference - ABSTRACT SUPERTYPE OF (ONEOF ( - PRODUCT_DEFINITION_REFERENCE, - PRODUCT_DEFINITION_REFERENCE_WITH_LOCAL_REPRESENTATION)); - source : external_source; - END_ENTITY; -(* USED FROM (kinematic_state_schema); *) -ENTITY sliding_curve_pair_value - SUBTYPE OF (pair_value); - SELF\pair_value.applies_to_pair : sliding_curve_pair; - actual_point_on_curve_1 : point_on_curve; - actual_point_on_curve_2 : point_on_curve; -WHERE - WR1: SELF\pair_value.applies_to_pair\planar_curve_pair.curve_1 :=: - actual_point_on_curve_1.basis_curve; - WR2: SELF\pair_value.applies_to_pair\planar_curve_pair.curve_2 :=: - actual_point_on_curve_2.basis_curve; -END_ENTITY; -(* USED FROM (aic_associative_draughting_elements); *) - 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; -(* USED FROM (kinematic_state_schema); *) -ENTITY rolling_curve_pair_value - SUBTYPE OF (pair_value); - SELF\pair_value.applies_to_pair : rolling_curve_pair; - actual_point_on_curve_1 : point_on_curve; -WHERE - WR1: SELF\pair_value.applies_to_pair\planar_curve_pair.curve_1 :=: - actual_point_on_curve_1.basis_curve; -END_ENTITY; -(* USED FROM (Draughting_annotation_mim); *) - 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; -(* USED FROM (Draughting_annotation_mim); *) - 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; -(* USED FROM (Draughting_annotation_mim); *) - 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; -(* USED FROM (product_definition_schema); *) - ENTITY product_definition_reference_with_local_representation - SUBTYPE OF (generic_product_definition_reference, product_definition); - END_ENTITY; -(* USED FROM (draughting_element_schema); *) - ENTITY dimension_curve_terminator - SUBTYPE OF (terminator_symbol); - role : dimension_extent_usage; - WHERE - WR1: 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.DIMENSION_CURVE' IN TYPEOF - (SELF\terminator_symbol.annotated_curve); - END_ENTITY; -(* USED FROM (draughting_element_schema); *) - ENTITY terminator_symbol - SUBTYPE OF (annotation_symbol_occurrence); - annotated_curve : annotation_curve_occurrence; - END_ENTITY; -(* USED FROM (date_time_schema); *) -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; -(* USED FROM (date_time_schema); *) -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; -(* USED FROM (kinematic_state_schema); *) -ENTITY cylindrical_pair_value - SUBTYPE OF (pair_value); - SELF\pair_value.applies_to_pair : cylindrical_pair; - actual_translation : length_measure; - actual_rotation : plane_angle_measure; -END_ENTITY; -(* USED FROM (kinematic_state_schema); *) -ENTITY screw_pair_value - SUBTYPE OF (pair_value); - SELF\pair_value.applies_to_pair : screw_pair; - actual_rotation : plane_angle_measure; -DERIVE - actual_translation : length_measure - := SELF\pair_value.applies_to_pair\ - screw_pair.pitch * - plane_angle_for_pair_in_radian - (SELF\pair_value.applies_to_pair, - actual_rotation) / (2 * PI); -END_ENTITY; -(* USED FROM (aic_draughting_annotation); *) -ENTITY draughting_text_literal_with_delineation - SUBTYPE OF (text_literal_with_delineation); -WHERE - WR1: SELF.delineation IN ['underline', 'overline']; -END_ENTITY; -(* USED FROM (presentation_definition_schema); *) - ENTITY annotation_symbol_occurrence - SUBTYPE OF (annotation_occurrence); - SELF\styled_item.item : annotation_symbol_occurrence_item; - END_ENTITY; -(* USED FROM (presentation_definition_schema); *) - ENTITY pre_defined_symbol - SUBTYPE OF (pre_defined_item); - END_ENTITY; -(* USED FROM (Presentation_hierarchy_mim); *) - ENTITY applied_presented_item - SUBTYPE OF (presented_item); - items : SET[1:?] OF presented_item_select; - END_ENTITY; -(* USED FROM (drawing_definition_schema); *) -ENTITY drawing_definition; - drawing_number : identifier; - drawing_type : OPTIONAL label; -END_ENTITY; -(* USED FROM (drawing_definition_schema); *) -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; -(* USED FROM (drawing_definition_schema); *) -ENTITY drawing_revision_sequence; - predecessor : drawing_revision; - successor : drawing_revision; -WHERE - WR1: predecessor :<>: successor; -END_ENTITY; -(* USED FROM (product_property_representation_schema); *) - ENTITY item_identified_representation_usage; - name : label; - description : OPTIONAL text; - definition : item_identified_representation_usage_definition; - used_representation : representation; - identified_item : item_identified_representation_usage_select; - WHERE - WR1: SELF.used_representation IN using_representations(SELF.identified_item); - END_ENTITY; -(* USED FROM (drawing_definition_schema); *) -ENTITY drawing_sheet_revision_sequence - SUBTYPE OF (representation_relationship); -WHERE - WR1: SELF\representation_relationship.rep_1 :<>: - SELF\representation_relationship.rep_2; - WR2: 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.DRAWING_SHEET_REVISION' - IN TYPEOF (SELF\representation_relationship.rep_1); - WR3: 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.DRAWING_SHEET_REVISION' - IN TYPEOF (SELF\representation_relationship.rep_2); -END_ENTITY; -(* USED FROM (drawing_definition_schema); *) -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: ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.DRAWING_SHEET_REVISION' IN - TYPEOF(SELF\area_in_set.area)) - AND - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.DRAWING_REVISION' - IN TYPEOF (SELF\area_in_set.in_set)); -END_ENTITY; -(* USED FROM (drawing_definition_schema); *) -ENTITY draughting_title; - items : SET [1:?] OF draughting_titled_item; - language : label; - contents : text; -END_ENTITY; -(* USED FROM (document_schema); *) - ENTITY document_representation_type; - name : label; - represented_document : document; - END_ENTITY; -(* USED FROM (document_schema); *) - ENTITY document_relationship; - name : label; - description : OPTIONAL text; - relating_document : document; - related_document : document; - END_ENTITY; -(* USED FROM (Currency_mim); *) - 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; -(* USED FROM (Currency_mim); *) - ENTITY currency_measure_with_unit - SUBTYPE OF (measure_with_unit); - SELF\measure_with_unit.unit_component : currency; - END_ENTITY; -(* USED FROM (Currency_mim); *) - ENTITY iso4217_currency - SUBTYPE OF (currency); - END_ENTITY; -(* USED FROM (measure_schema); *) -ENTITY absorbed_dose_measure_with_unit - SUBTYPE OF (measure_with_unit); -WHERE - WR1: 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.ABSORBED_DOSE_UNIT' IN TYPEOF(SELF\measure_with_unit.unit_component); -END_ENTITY; -(* USED FROM (representation_schema); *) - ENTITY definitional_representation_relationship - SUBTYPE OF (representation_relationship); - WHERE - WR1: acyclic_representation_relationship(SELF, - [SELF\representation_relationship.rep_2], - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.'+'REPRESENTATION'); - END_ENTITY; -(* USED FROM (measure_schema); *) - 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; -(* USED FROM (measure_schema); *) - ENTITY acceleration_measure_with_unit - SUBTYPE OF (measure_with_unit); - WHERE - WR1: 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.ACCELERATION_UNIT' IN TYPEOF (SELF\measure_with_unit.unit_component); - END_ENTITY; -(* USED FROM (measure_schema); *) - 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; -(* USED FROM (measure_schema); *) -ENTITY radioactivity_measure_with_unit - SUBTYPE OF (measure_with_unit); -WHERE - WR1: 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.RADIOACTIVITY_UNIT' IN TYPEOF(SELF\measure_with_unit.unit_component); -END_ENTITY; -(* USED FROM (measure_schema); *) -ENTITY radioactivity_unit - SUBTYPE OF (derived_unit); -WHERE - WR1: derive_dimensional_exponents(SELF) = dimensions_for_si_unit (si_unit_name.becquerel); -END_ENTITY; -(* USED FROM (measure_schema); *) - 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; -(* USED FROM (measure_schema); *) - ENTITY amount_of_substance_measure_with_unit - SUBTYPE OF (measure_with_unit); - WHERE - WR1: 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.AMOUNT_OF_SUBSTANCE_UNIT' IN TYPEOF(SELF\measure_with_unit.unit_component); - END_ENTITY; -(* USED FROM (measure_schema); *) - 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; -(* USED FROM (measure_schema); *) - ENTITY area_measure_with_unit - SUBTYPE OF (measure_with_unit); - WHERE - WR1: 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.AREA_UNIT' IN TYPEOF(SELF\measure_with_unit.unit_component); - END_ENTITY; -(* USED FROM (measure_schema); *) - 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; -(* USED FROM (measure_schema); *) - ENTITY celsius_temperature_measure_with_unit - SUBTYPE OF (measure_with_unit); - WHERE - WR1: 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.THERMODYNAMIC_TEMPERATURE_UNIT' IN TYPEOF(SELF\measure_with_unit.unit_component); - END_ENTITY; -(* USED FROM (measure_schema); *) - ENTITY context_dependent_unit - SUBTYPE OF (named_unit); - name : label; - END_ENTITY; -(* USED FROM (measure_schema); *) - 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; -(* USED FROM (representation_schema); *) - ENTITY definitional_representation - SUBTYPE OF (representation); - WHERE - WR1: 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PARAMETRIC_REPRESENTATION_CONTEXT' IN - TYPEOF (SELF\representation.context_of_items ); - END_ENTITY; -(* USED FROM (measure_schema); *) - ENTITY derived_unit_element; - unit : named_unit; - exponent : REAL; - END_ENTITY; -(* USED FROM (measure_schema); *) - 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; -(* USED FROM (Shape_parameters_mim); *) -ENTITY keepout_design_object_category - SUBTYPE OF (characterized_object); -END_ENTITY; - -(* Implicit interfaced from: mathematical_functions_schema *) -ENTITY general_linear_function - SUBTYPE OF (maths_function, unary_generic_expression); - SELF\unary_generic_expression.operand : maths_function; - sum_index : one_or_two; -DERIVE - mat : maths_function := SELF\unary_generic_expression.operand; -WHERE - WR1: function_is_2d_table(mat); - WR2: (space_dimension(mat.range) = 1) AND - subspace_of_es(factor1(mat.range),es_numbers); -END_ENTITY; -(* USED FROM (kinematic_state_schema); *) -ENTITY prismatic_pair_value - SUBTYPE OF (pair_value); - SELF\pair_value.applies_to_pair : prismatic_pair; - actual_translation : length_measure; -END_ENTITY; -(* USED FROM (measure_schema); *) -ENTITY dose_equivalent_measure_with_unit - SUBTYPE OF (measure_with_unit); -WHERE - WR1: 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.DOSE_EQUIVALENT_UNIT' IN TYPEOF(SELF\measure_with_unit.unit_component); -END_ENTITY; -(* USED FROM (measure_schema); *) -ENTITY dose_equivalent_unit - SUBTYPE OF (derived_unit); -WHERE - WR1: derive_dimensional_exponents(SELF) = dimensions_for_si_unit (si_unit_name.sievert); -END_ENTITY; - -(* Implicit interfaced from: mathematical_functions_schema *) -ENTITY expression_denoted_function - SUBTYPE OF (maths_function, unary_generic_expression); -DERIVE - expr : generic_expression := SELF\unary_generic_expression.operand; -WHERE - WR1: (schema_prefix + 'FUNCTION_SPACE') IN TYPEOF (values_space_of(expr)); -END_ENTITY; -(* USED FROM (measure_schema); *) - ENTITY electric_charge_unit - SUBTYPE OF(derived_unit); - WHERE - WR1: derive_dimensional_exponents(SELF) = dimensions_for_si_unit (si_unit_name.coulomb); - END_ENTITY; -(* USED FROM (measure_schema); *) - ENTITY electric_charge_measure_with_unit - SUBTYPE OF (measure_with_unit); - WHERE - WR1: 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.ELECTRIC_CHARGE_UNIT' IN TYPEOF(SELF\measure_with_unit.unit_component); - END_ENTITY; -(* USED FROM (product_structure_schema); *) -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; -(* USED FROM (Specified_product_mim); *) - ENTITY product_specification - SUBTYPE OF (product_identification, configurable_item); - END_ENTITY; -(* USED FROM (measure_schema); *) - 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; -(* USED FROM (measure_schema); *) - ENTITY conductance_unit - SUBTYPE OF(derived_unit); - WHERE - WR1: derive_dimensional_exponents(SELF) = dimensions_for_si_unit (si_unit_name.siemens); - END_ENTITY; - -(* Implicit interfaced from: mathematical_functions_schema *) -ENTITY complex_number_literal - SUBTYPE OF (generic_literal); - real_part : REAL; - imag_part : REAL; -END_ENTITY; -(* USED FROM (geometric_model_schema); *) -ENTITY manifold_solid_brep - SUBTYPE OF (solid_model); - outer : closed_shell; -END_ENTITY; -(* USED FROM (measure_schema); *) - ENTITY electric_potential_unit - SUBTYPE OF(derived_unit); - WHERE - WR1: derive_dimensional_exponents(SELF) = dimensions_for_si_unit (si_unit_name.volt); - END_ENTITY; -(* USED FROM (measure_schema); *) - ENTITY electric_potential_measure_with_unit - SUBTYPE OF (measure_with_unit); - WHERE - WR1: 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.ELECTRIC_POTENTIAL_UNIT' IN TYPEOF(SELF\measure_with_unit.unit_component); - END_ENTITY; -(* USED FROM (measure_schema); *) - 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; -(* USED FROM (measure_schema); *) - ENTITY energy_unit - SUBTYPE OF(derived_unit); - WHERE - WR1: derive_dimensional_exponents(SELF) = dimensions_for_si_unit (si_unit_name.joule); - END_ENTITY; -(* USED FROM (measure_schema); *) - ENTITY energy_measure_with_unit - SUBTYPE OF (measure_with_unit); - WHERE - WR1: 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.ENERGY_UNIT' IN TYPEOF(SELF\measure_with_unit.unit_component); - END_ENTITY; -(* USED FROM (measure_schema); *) - 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; -(* USED FROM (measure_schema); *) - 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; -(* USED FROM (geometric_model_schema); *) -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; -(* USED FROM (measure_schema); *) - 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; -(* USED FROM (geometric_model_schema); *) -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; -(* USED FROM (geometric_model_schema); *) -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 ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SURFACE_CURVE' IN TYPEOF(directrix))) OR (reference_surface IN (directrix\surface_curve.basis_surface)); -END_ENTITY; -(* USED FROM (measure_schema); *) - 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; -(* USED FROM (measure_schema); *) - ENTITY frequency_unit - SUBTYPE OF(derived_unit); - WHERE - WR1: derive_dimensional_exponents(SELF) = dimensions_for_si_unit (si_unit_name.hertz); - END_ENTITY; -(* USED FROM (measure_schema); *) - ENTITY frequency_measure_with_unit - SUBTYPE OF (measure_with_unit); - WHERE - WR1: 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.FREQUENCY_UNIT' IN TYPEOF(SELF\measure_with_unit.unit_component); - END_ENTITY; -(* USED FROM (measure_schema); *) - 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; -(* USED FROM (measure_schema); *) - ENTITY illuminance_unit - SUBTYPE OF(derived_unit); - WHERE - WR1: derive_dimensional_exponents(SELF) = dimensions_for_si_unit (si_unit_name.lux); - END_ENTITY; -(* USED FROM (measure_schema); *) - ENTITY illuminance_measure_with_unit - SUBTYPE OF (measure_with_unit); - WHERE - WR1: 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.ILLUMINANCE_UNIT' IN TYPEOF(SELF\measure_with_unit.unit_component); - END_ENTITY; -(* USED FROM (measure_schema); *) - 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; -(* USED FROM (measure_schema); *) - ENTITY inductance_unit - SUBTYPE OF(derived_unit); - WHERE - WR1: derive_dimensional_exponents(SELF) = dimensions_for_si_unit (si_unit_name.henry); - END_ENTITY; -(* USED FROM (measure_schema); *) - ENTITY inductance_measure_with_unit - SUBTYPE OF (measure_with_unit); - WHERE - WR1: 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.INDUCTANCE_UNIT' IN TYPEOF(SELF\measure_with_unit.unit_component); - END_ENTITY; -(* USED FROM (measure_schema); *) - 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; -(* USED FROM (measure_schema); *) - ENTITY length_measure_with_unit - SUBTYPE OF (measure_with_unit); - WHERE - WR1: 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_UNIT' IN TYPEOF(SELF\measure_with_unit.unit_component); - END_ENTITY; -(* USED FROM (geometry_schema); *) -ENTITY outer_boundary_curve - SUBTYPE OF (boundary_curve); -END_ENTITY; -(* USED FROM (geometry_schema); *) -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; -(* USED FROM (kinematic_state_schema); *) -ENTITY pair_value - ABSTRACT SUPERTYPE OF (ONEOF ( - SLIDING_SURFACE_PAIR_VALUE, - ROLLING_SURFACE_PAIR_VALUE, - REVOLUTE_PAIR_VALUE, - PRISMATIC_PAIR_VALUE, - SCREW_PAIR_VALUE, - CYLINDRICAL_PAIR_VALUE, - SPHERICAL_PAIR_VALUE, - SLIDING_CURVE_PAIR_VALUE, - ROLLING_CURVE_PAIR_VALUE, - GEAR_PAIR_VALUE, - RACK_AND_PINION_PAIR_VALUE, - UNIVERSAL_PAIR_VALUE, - PLANAR_PAIR_VALUE, - UNCONSTRAINED_PAIR_VALUE, - POINT_ON_SURFACE_PAIR_VALUE, - POINT_ON_PLANAR_CURVE_PAIR_VALUE, - LOW_ORDER_KINEMATIC_PAIR_VALUE)) - SUBTYPE OF (geometric_representation_item); - applies_to_pair : kinematic_pair; -END_ENTITY; -(* USED FROM (measure_schema); *) - ENTITY luminous_intensity_measure_with_unit - SUBTYPE OF (measure_with_unit); - WHERE - WR1: 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LUMINOUS_INTENSITY_UNIT' IN TYPEOF(SELF\measure_with_unit.unit_component); - END_ENTITY; -(* USED FROM (measure_schema); *) - 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; -(* USED FROM (geometry_schema); *) -ENTITY reparametrised_composite_curve_segment - SUBTYPE OF (composite_curve_segment); - param_length : parameter_value; -WHERE - WR1: param_length > 0.0; -END_ENTITY; -(* USED FROM (measure_schema); *) - ENTITY magnetic_flux_measure_with_unit - SUBTYPE OF (measure_with_unit); - WHERE - WR1: 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MAGNETIC_FLUX_UNIT' IN TYPEOF(SELF\measure_with_unit.unit_component); - END_ENTITY; -(* USED FROM (measure_schema); *) - 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; -(* USED FROM (measure_schema); *) - ENTITY mass_measure_with_unit - SUBTYPE OF (measure_with_unit); - WHERE - WR1: 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MASS_UNIT' IN TYPEOF(SELF\measure_with_unit.unit_component); - END_ENTITY; -(* USED FROM (external_reference_schema); *) - ENTITY externally_defined_item_with_multiple_references - SUBTYPE OF (externally_defined_item); - references : LIST[1:?] OF UNIQUE source_item; - UNIQUE - UR1: references; - WHERE - WR1: NOT(SELF\externally_defined_item.item_id IN references); - END_ENTITY; -(* USED FROM (external_reference_schema); *) - ENTITY externally_defined_item_relationship; - name : label; - description : OPTIONAL text; - relating_item : externally_defined_item; - related_item : externally_defined_item; - END_ENTITY; -(* USED FROM (measure_schema); *) - 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; -(* USED FROM (measure_schema); *) - ENTITY plane_angle_measure_with_unit - SUBTYPE OF (measure_with_unit); - WHERE - WR1: 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PLANE_ANGLE_UNIT' IN TYPEOF(SELF\measure_with_unit.unit_component); - END_ENTITY; -(* USED FROM (measure_schema); *) - 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; -(* USED FROM (measure_schema); *) - ENTITY power_unit - SUBTYPE OF(derived_unit); - WHERE - WR1: derive_dimensional_exponents(SELF) = dimensions_for_si_unit (si_unit_name.watt); - END_ENTITY; -(* USED FROM (measure_schema); *) - ENTITY power_measure_with_unit - SUBTYPE OF (measure_with_unit); - WHERE - WR1: 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.POWER_UNIT' IN TYPEOF(SELF\measure_with_unit.unit_component); - END_ENTITY; -(* USED FROM (measure_schema); *) - 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; -(* USED FROM (measure_schema); *) - ENTITY pressure_unit - SUBTYPE OF(derived_unit); - WHERE - WR1: derive_dimensional_exponents(SELF) = dimensions_for_si_unit (si_unit_name.pascal); - END_ENTITY; -(* USED FROM (measure_schema); *) - ENTITY pressure_measure_with_unit - SUBTYPE OF (measure_with_unit); - WHERE - WR1: 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PRESSURE_UNIT' IN TYPEOF(SELF\measure_with_unit.unit_component); - END_ENTITY; -(* USED FROM (measure_schema); *) - 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; -(* USED FROM (measure_schema); *) - ENTITY ratio_measure_with_unit - SUBTYPE OF (measure_with_unit); - WHERE - WR1: 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.RATIO_UNIT' IN TYPEOF(SELF\measure_with_unit.unit_component); - END_ENTITY; -(* USED FROM (measure_schema); *) - 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; -(* USED FROM (measure_schema); *) - ENTITY resistance_unit - SUBTYPE OF(derived_unit); - WHERE - WR1: derive_dimensional_exponents(SELF) = dimensions_for_si_unit (si_unit_name.ohm); - END_ENTITY; -(* USED FROM (measure_schema); *) - ENTITY resistance_measure_with_unit - SUBTYPE OF (measure_with_unit); - WHERE - WR1: 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.RESISTANCE_UNIT' IN TYPEOF(SELF\measure_with_unit.unit_component); - END_ENTITY; -(* USED FROM (measure_schema); *) - 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; -(* USED FROM (measure_schema); *) - 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(('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MASS_UNIT' IN TYPEOF(SELF)) AND - (SIZEOF(USEDIN(SELF,'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.DERIVED_UNIT_ELEMENT.UNIT')) > 0)) OR - (prefix = si_prefix.kilo); - END_ENTITY; -(* USED FROM (measure_schema); *) - ENTITY solid_angle_measure_with_unit - SUBTYPE OF (measure_with_unit); - WHERE - WR1: 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SOLID_ANGLE_UNIT' IN TYPEOF(SELF\measure_with_unit.unit_component); - END_ENTITY; -(* USED FROM (measure_schema); *) - 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; -(* USED FROM (measure_schema); *) - ENTITY thermodynamic_temperature_measure_with_unit - SUBTYPE OF (measure_with_unit); - WHERE - WR1: 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.THERMODYNAMIC_TEMPERATURE_UNIT' IN TYPEOF(SELF\measure_with_unit.unit_component); - END_ENTITY; -(* USED FROM (measure_schema); *) - 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; -(* USED FROM (measure_schema); *) - ENTITY time_measure_with_unit - SUBTYPE OF (measure_with_unit); - WHERE - WR1: 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.TIME_UNIT' IN TYPEOF(SELF\measure_with_unit.unit_component); - END_ENTITY; -(* USED FROM (measure_schema); *) - 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; -(* USED FROM (measure_schema); *) - ENTITY velocity_measure_with_unit - SUBTYPE OF (measure_with_unit); - WHERE - WR1: 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.VELOCITY_UNIT' IN TYPEOF (SELF\measure_with_unit.unit_component); - END_ENTITY; -(* USED FROM (measure_schema); *) - 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; -(* USED FROM (measure_schema); *) - ENTITY volume_measure_with_unit - SUBTYPE OF (measure_with_unit); - WHERE - WR1: 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.VOLUME_UNIT' IN TYPEOF(SELF\measure_with_unit.unit_component); - END_ENTITY; - -(* Implicit interfaced from: mathematical_functions_schema *) -(* Pruned SUPERTYPE *) -ENTITY explicit_table_function - ABSTRACT SUPERTYPE OF (ONEOF ( - LISTED_DATA, - EXTERNALLY_LISTED_DATA, - LINEARIZED_TABLE_FUNCTION, - BASIC_SPARSE_MATRIX)) - SUBTYPE OF (maths_function); - index_base : zero_or_one; - shape : LIST [1:?] OF positive_integer; -END_ENTITY; -(* USED FROM (date_time_schema); *) -ENTITY event_occurrence; - id : identifier; - name : label; - description : OPTIONAL text; -END_ENTITY; - -(* Implicit interfaced from: mathematical_functions_schema *) -ENTITY elementary_function - SUBTYPE OF (maths_function, generic_literal); - func_id : elementary_function_enumerators; -END_ENTITY; -(* USED FROM (date_time_schema); *) -ENTITY event_occurrence_relationship; - name : label; - description : OPTIONAL text; - relating_event : event_occurrence; - related_event : event_occurrence; -END_ENTITY; -(* USED FROM (date_time_schema); *) -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; -(* USED FROM (kinematic_structure_schema); *) -ENTITY rack_and_pinion_pair_with_range - SUBTYPE OF (rack_and_pinion_pair); - lower_limit_rack_displacement : OPTIONAL length_measure; - upper_limit_rack_displacement : OPTIONAL length_measure; -WHERE - WR1: (NOT EXISTS(lower_limit_rack_displacement) - OR - NOT EXISTS(upper_limit_rack_displacement)) - XOR - (lower_limit_rack_displacement < upper_limit_rack_displacement); -END_ENTITY; -(* USED FROM (Colour_mim); *) - ENTITY externally_defined_colour - SUBTYPE OF (colour_specification,externally_defined_item); -END_ENTITY; -- externally_defined_colour -(* USED FROM (presentation_organization_schema); *) - ENTITY camera_image - SUPERTYPE OF (ONEOF ( - CAMERA_IMAGE_2D_WITH_SCALE, - CAMERA_IMAGE_3D_WITH_SCALE)) - SUBTYPE OF (mapped_item); - SELF\mapped_item.mapping_source : camera_usage; - SELF\mapped_item.mapping_target : planar_box; - WHERE - WR1: 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.GEOMETRIC_REPRESENTATION_ITEM' - IN TYPEOF (SELF); - END_ENTITY; -(* USED FROM (presentation_organization_schema); *) - ENTITY camera_model_d3 - SUBTYPE OF (camera_model); - view_reference_system : axis2_placement_3d; - perspective_of_volume : view_volume; - WHERE - WR1: SELF\geometric_representation_item.dim = 3; - END_ENTITY; -(* USED FROM (presentation_organization_schema); *) - 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; -(* USED FROM (presentation_organization_schema); *) - 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; -(* USED FROM (presentation_organization_schema); *) - 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; -(* USED FROM (product_structure_schema); *) -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; -(* USED FROM (presentation_organization_schema); *) - ENTITY camera_model_with_light_sources - SUBTYPE OF (camera_model_d3); - sources : SET [1:?] OF light_source; - END_ENTITY; -(* USED FROM (presentation_organization_schema); *) - 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: ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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: ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + - 'AXIS2_PLACEMENT_2D' IN TYPEOF (SELF\mapped_item. - mapping_target\planar_box.placement)) - AND NOT ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + - 'AXIS2_PLACEMENT_3D' IN TYPEOF (SELF\mapped_item. - mapping_target\planar_box.placement)); - END_ENTITY; -(* USED FROM (presentation_organization_schema); *) - 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; - INVERSE - camera_usages : SET[1:?] OF camera_model_d3 FOR perspective_of_volume; - WHERE - WR1:('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.AXIS2_PLACEMENT_2D' IN TYPEOF(SELF\view_volume.view_window.placement)) OR - (dot_product ((representation_item(' ') || geometric_representation_item() || direction([0.0,0.0,1.0])), - SELF.view_window\planar_box.placement\axis2_placement_3d.p[3] ) = 1.0); - WR2: view_plane_distance = view_window.placement\placement.location.coordinates[3]; - END_ENTITY; -(* USED FROM (product_structure_schema); *) -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; -(* USED FROM (kinematic_structure_schema); *) -ENTITY gear_pair_with_range - SUBTYPE OF (gear_pair); - lower_limit_actual_rotation_1 : OPTIONAL plane_angle_measure; - upper_limit_actual_rotation_1 : OPTIONAL plane_angle_measure; -WHERE - WR1: (NOT EXISTS(lower_limit_actual_rotation_1) - OR - NOT EXISTS(upper_limit_actual_rotation_1)) - XOR - (lower_limit_actual_rotation_1 < upper_limit_actual_rotation_1); -END_ENTITY; -(* USED FROM (presentation_organization_schema); *) - 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,'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.'+ - 'STYLED_ITEM.ITEM')) = 0; - END_ENTITY; -(* USED FROM (presentation_organization_schema); *) - ENTITY light_source_ambient - SUBTYPE OF (light_source); - END_ENTITY; -(* USED FROM (presentation_organization_schema); *) - ENTITY light_source_directional - SUBTYPE OF (light_source); - orientation : direction; - END_ENTITY; -(* USED FROM (topology_schema); *) - ENTITY open_shell - SUBTYPE OF (connected_face_set); - END_ENTITY; -(* USED FROM (presentation_organization_schema); *) - 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; -(* USED FROM (representation_schema); *) - 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; -(* USED FROM (mathematical_functions_schema); *) -ENTITY elementary_space - SUBTYPE OF (maths_space, generic_literal); - space_id : elementary_space_enumerators; -END_ENTITY; -(* USED FROM (presentation_organization_schema); *) - ENTITY presentation_layer_assignment; - name : label; - description : text; - assigned_items : SET [1:?] OF layered_item; - END_ENTITY; -(* USED FROM (solid_shape_element_schema); *) -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(('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PLANE_ANGLE_MEASURE' - IN TYPEOF(first_trim_condition)) OR - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PLANE_ANGLE_MEASURE' - IN TYPEOF(second_trim_condition))); - WR2: NOT ((('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 - (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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((('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE' - IN TYPEOF(first_trim_condition)) AND - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE' - IN TYPEOF(second_trim_condition))) AND - (first_trim_condition = second_trim_condition)); -END_ENTITY; -(* USED FROM (date_time_schema); *) -ENTITY relative_event_occurrence - SUBTYPE OF (event_occurrence); - base_event : event_occurrence; - offset : time_measure_with_unit; -END_ENTITY; -(* USED FROM (kinematic_structure_schema); *) -ENTITY fully_constrained_pair - SUBTYPE OF (low_order_kinematic_pair); -DERIVE - SELF\low_order_kinematic_pair.t_x : BOOLEAN := FALSE; - SELF\low_order_kinematic_pair.t_y : BOOLEAN := FALSE; - SELF\low_order_kinematic_pair.t_z : BOOLEAN := FALSE; - SELF\low_order_kinematic_pair.r_x : BOOLEAN := FALSE; - SELF\low_order_kinematic_pair.r_y : BOOLEAN := FALSE; - SELF\low_order_kinematic_pair.r_z : BOOLEAN := FALSE; -END_ENTITY; -(* USED FROM (Composite_constituent_shape_mim); *) - ENTITY beveled_sheet_representation - SUBTYPE OF (shape_representation); - END_ENTITY; -(* USED FROM (Composite_constituent_shape_mim); *) - ENTITY composite_sheet_representation - SUBTYPE OF (shape_representation); - WHERE - WR1: SIZEOF (['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + - 'GEOMETRICALLY_BOUNDED_SURFACE_SHAPE_REPRESENTATION', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + - 'MANIFOLD_SURFACE_SHAPE_REPRESENTATION'] * TYPEOF (SELF)) = 1; - END_ENTITY; -(* USED FROM (Composite_constituent_shape_mim); *) - ENTITY flat_pattern_ply_representation_relationship - SUBTYPE OF (shape_representation_relationship); - WHERE - WR1: 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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; -(* USED FROM (product_property_representation_schema); *) - ENTITY shape_representation_relationship - SUBTYPE OF (representation_relationship); - WHERE - WR1: 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION' IN (TYPEOF(SELF\representation_relationship.rep_1) + TYPEOF(SELF\representation_relationship.rep_2)); - END_ENTITY; -(* USED FROM (representation_schema); *) - ENTITY binary_representation_item - SUBTYPE OF (representation_item); - binary_value : BINARY; - END_ENTITY; -(* USED FROM (representation_schema); *) - 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; -(* USED FROM (management_resources_schema); *) - ENTITY external_identification_assignment - ABSTRACT SUPERTYPE - SUBTYPE OF (identification_assignment); - source : external_source; - END_ENTITY; -(* USED FROM (kinematic_structure_schema); *) -ENTITY rolling_surface_pair - SUBTYPE OF (surface_pair); -END_ENTITY; -(* USED FROM (kinematic_structure_schema); *) -ENTITY unconstrained_pair - SUBTYPE OF (low_order_kinematic_pair); -DERIVE - SELF\low_order_kinematic_pair.t_x : BOOLEAN := TRUE; - SELF\low_order_kinematic_pair.t_y : BOOLEAN := TRUE; - SELF\low_order_kinematic_pair.t_z : BOOLEAN := TRUE; - SELF\low_order_kinematic_pair.r_x : BOOLEAN := TRUE; - SELF\low_order_kinematic_pair.r_y : BOOLEAN := TRUE; - SELF\low_order_kinematic_pair.r_z : BOOLEAN := TRUE; -END_ENTITY; -(* USED FROM (presentation_organization_schema); *) - ENTITY area_in_set; - area : presentation_area; - in_set : presentation_set; - END_ENTITY; -(* USED FROM (geometry_schema); *) -(* Pruned SUPERTYPE *) -ENTITY point - SUPERTYPE OF (ONEOF ( - CARTESIAN_POINT, - POINT_ON_CURVE, - POINT_ON_SURFACE, - POINT_REPLICA, - DEGENERATE_PCURVE)) - SUBTYPE OF (geometric_representation_item); -END_ENTITY; -(* USED FROM (product_property_definition_schema); *) - ENTITY general_property_relationship; - name : label; - description : OPTIONAL text; - relating_property : general_property; - related_property : general_property; - END_ENTITY; -(* USED FROM (shape_aspect_definition_schema); *) -ENTITY feature_definition - SUPERTYPE OF (ONEOF ( - BOSS, - COMPOUND_FEATURE, - EXTERNALLY_DEFINED_FEATURE_DEFINITION, - FLAT_FACE, - GEAR, - MARKING, - OUTER_ROUND, - OUTSIDE_PROFILE, - POCKET, - PROTRUSION, - REMOVAL_VOLUME, - REPLICATE_FEATURE, - REVOLVED_PROFILE, - RIB_TOP, - ROUND_HOLE, - ROUNDED_END, - SPHERICAL_CAP, - STEP, - SLOT, - THREAD, - TURNED_KNURL) ) - SUBTYPE OF (characterized_object); -END_ENTITY; -(* USED FROM (shape_aspect_definition_schema); *) -ENTITY instanced_feature - SUBTYPE OF (feature_definition, shape_aspect); -WHERE - WR1: 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PRODUCT_DEFINITION' IN TYPEOF (SELF.of_shape.definition); - WR2: SELF.product_definitional; -END_ENTITY; -(* USED FROM (mathematical_functions_schema); *) -ENTITY finite_integer_interval - SUBTYPE OF (maths_space, generic_literal); - min : INTEGER; - max : INTEGER; -DERIVE - size : positive_integer := max - min + 1; -WHERE - WR1: min <= max; -END_ENTITY; -(* USED FROM (kinematic_structure_schema); *) -ENTITY sliding_curve_pair - SUBTYPE OF (planar_curve_pair); -END_ENTITY; -(* USED FROM (procedural_shape_model_schema); *) -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; -(* USED FROM (procedural_shape_model_schema); *) -ENTITY indirectly_selected_shape_elements - SUBTYPE OF (indirectly_selected_elements, - user_selected_shape_elements); - SELF\indirectly_selected_elements.indirectly_picked_items : SET [1:?] OF shape_representation_item; -END_ENTITY; -(* USED FROM (procedural_shape_model_schema); *) -ENTITY procedural_shape_representation - SUBTYPE OF (procedural_representation, shape_representation); - SELF\representation.items : - SET[1:?] OF procedural_shape_representation_sequence; -END_ENTITY; -(* USED FROM (mathematical_functions_schema); *) -ENTITY finite_real_interval - SUBTYPE OF (maths_space, generic_literal); - min : REAL; - min_closure : open_closed; - max : REAL; - max_closure : open_closed; -WHERE - WR1: min < max; -END_ENTITY; -(* USED FROM (kinematic_structure_schema); *) -ENTITY planar_pair - SUBTYPE OF (low_order_kinematic_pair); -DERIVE - SELF\low_order_kinematic_pair.t_x : BOOLEAN := TRUE; - SELF\low_order_kinematic_pair.t_y : BOOLEAN := TRUE; - SELF\low_order_kinematic_pair.t_z : BOOLEAN := FALSE; - SELF\low_order_kinematic_pair.r_x : BOOLEAN := FALSE; - SELF\low_order_kinematic_pair.r_y : BOOLEAN := FALSE; - SELF\low_order_kinematic_pair.r_z : BOOLEAN := TRUE; -END_ENTITY; -(* USED FROM (solid_shape_element_schema); *) -(* Pruned SUPERTYPE *) -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; -(* USED FROM (kinematic_structure_schema); *) -ENTITY universal_pair_with_range - SUBTYPE OF (universal_pair); - lower_limit_first_rotation : OPTIONAL plane_angle_measure; - upper_limit_first_rotation : OPTIONAL plane_angle_measure; - lower_limit_second_rotation : OPTIONAL plane_angle_measure; - upper_limit_second_rotation : OPTIONAL plane_angle_measure; -WHERE - WR1: (NOT EXISTS(lower_limit_first_rotation) - OR - NOT EXISTS(upper_limit_first_rotation)) - XOR - (lower_limit_first_rotation < upper_limit_first_rotation); - WR2: (NOT EXISTS(lower_limit_second_rotation) - OR - NOT EXISTS(upper_limit_second_rotation)) - XOR - (lower_limit_second_rotation < upper_limit_second_rotation); -END_ENTITY; -(* USED FROM (solid_shape_element_schema); *) -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; -(* USED FROM (solid_shape_element_schema); *) -ENTITY double_offset_shelled_solid - SUBTYPE OF (shelled_solid); - thickness2 : length_measure; -WHERE - WR1: thickness2 <> 0; - WR2: SELF\shelled_solid.thickness <> thickness2; -END_ENTITY; -(* USED FROM (solid_shape_element_schema); *) -ENTITY sculptured_solid - SUBTYPE OF (modified_solid); - sculpturing_element : generalized_surface_select; - positive_side : BOOLEAN; -END_ENTITY; -(* USED FROM (solid_shape_element_schema); *) -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; -(* USED FROM (solid_shape_element_schema); *) -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; -(* USED FROM (solid_shape_element_schema); *) -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; -(* USED FROM (mathematical_functions_schema); *) -ENTITY integer_interval_to_max - SUBTYPE OF (maths_space, generic_literal); - max : INTEGER; -END_ENTITY; -(* USED FROM (solid_shape_element_schema); *) -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; -(* USED FROM (solid_shape_element_schema); *) -ENTITY solid_with_circular_protrusion - SUBTYPE OF (solid_with_protrusion); - protrusion_radius : positive_length_measure; -END_ENTITY; -(* USED FROM (solid_shape_element_schema); *) -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; -(* USED FROM (solid_shape_element_schema); *) -ENTITY solid_with_constant_radius_edge_blend - SUBTYPE OF (edge_blended_solid); - radius : positive_length_measure; -END_ENTITY; -(* USED FROM (solid_shape_element_schema); *) -ENTITY solid_with_curved_slot - SUBTYPE OF (solid_with_slot); - slot_centreline : bounded_curve; -END_ENTITY; -(* USED FROM (solid_shape_element_schema); *) -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; -(* USED FROM (solid_shape_element_schema); *) -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; -(* USED FROM (solid_shape_element_schema); *) -ENTITY solid_with_general_pocket - SUBTYPE OF (solid_with_pocket); - profile : positioned_sketch; - reference_point : point; -WHERE - WR1: SIZEOF(['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CURVE_BOUNDED_SURFACE', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.FACE_SURFACE'] * TYPEOF(profile.sketch_basis)) = 1; - WR2: profile IN using_items(reference_point,[]); -END_ENTITY; -(* USED FROM (mathematical_functions_schema); *) -ENTITY uniform_product_space - SUBTYPE OF (maths_space, generic_literal); - base : maths_space; - exponent : positive_integer; -WHERE - WR1: expression_is_constant(base); - WR2: no_cyclic_space_reference(SELF, []); - WR3: base <> the_empty_space; -END_ENTITY; -(* USED FROM (solid_shape_element_schema); *) -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 ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SOLID_WITH_THROUGH_DEPRESSION' - IN TYPEOF(SELF)); -END_ENTITY; -(* USED FROM (mathematical_functions_schema); *) -ENTITY maths_variable - SUBTYPE OF (generic_variable); - values_space : maths_space; - name : label; -WHERE - WR1: expression_is_constant(values_space); -END_ENTITY; -(* USED FROM (kinematic_structure_schema); *) -ENTITY spherical_pair - SUBTYPE OF (low_order_kinematic_pair); -DERIVE - SELF\low_order_kinematic_pair.t_x : BOOLEAN := FALSE; - SELF\low_order_kinematic_pair.t_y : BOOLEAN := FALSE; - SELF\low_order_kinematic_pair.t_z : BOOLEAN := FALSE; - SELF\low_order_kinematic_pair.r_x : BOOLEAN := TRUE; - SELF\low_order_kinematic_pair.r_y : BOOLEAN := TRUE; - SELF\low_order_kinematic_pair.r_z : BOOLEAN := TRUE; -END_ENTITY; -(* USED FROM (kinematic_structure_schema); *) -ENTITY cylindrical_pair_with_range - SUBTYPE OF (cylindrical_pair); - lower_limit_actual_translation : OPTIONAL length_measure; - upper_limit_actual_translation : OPTIONAL length_measure; - lower_limit_actual_rotation : OPTIONAL plane_angle_measure; - upper_limit_actual_rotation : OPTIONAL plane_angle_measure; -WHERE - WR1: (NOT EXISTS(lower_limit_actual_translation) - OR - NOT EXISTS(upper_limit_actual_translation)) - XOR - (lower_limit_actual_translation < upper_limit_actual_translation); - WR2: (NOT EXISTS(lower_limit_actual_rotation) - OR - NOT EXISTS(upper_limit_actual_rotation)) - XOR - (lower_limit_actual_rotation < upper_limit_actual_rotation); -END_ENTITY; -(* USED FROM (solid_shape_element_schema); *) -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; -(* USED FROM (solid_shape_element_schema); *) -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; -(* USED FROM (solid_shape_element_schema); *) -ENTITY solid_with_single_offset_chamfer - SUBTYPE OF (solid_with_chamfered_edges); - offset_distance : positive_length_measure; -END_ENTITY; -(* USED FROM (solid_shape_element_schema); *) -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; -(* USED FROM (solid_shape_element_schema); *) -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 (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SOLID_WITH_THROUGH_DEPRESSION' - IN TYPEOF(SELF)) AND (SIZEOF(TYPEOF(SELF) * - ['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SOLID_WITH_FLAT_BOTTOM_ROUND_HOLE', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SOLID_WITH_SPHERICAL_BOTTOM_ROUND_HOLE', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SOLID_WITH_FLAT_BOTTOM_ROUND_HOLE']) - <> 0)); -END_ENTITY; -(* USED FROM (parameterization_schema); *) -ENTITY bound_variational_parameter - SUBTYPE OF (variational_parameter); -DERIVE - SELF\variational_parameter.parameter_current_value : maths_value := ?; -WHERE -WR1 : 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.BOUND_PARAMETER_ENVIRONMENT' - IN TYPEOF(SELF\generic_variable.interpretation); -END_ENTITY; -(* USED FROM (solid_shape_element_schema); *) -ENTITY solid_with_straight_slot - SUBTYPE OF (solid_with_slot); - slot_length : positive_length_measure; -END_ENTITY; -(* USED FROM (solid_shape_element_schema); *) -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; - -(* Implicit interfaced from: mathematical_functions_schema *) -ENTITY maths_tuple_literal - SUBTYPE OF (generic_literal); - lit_value : LIST OF maths_value; -END_ENTITY; - -(* Implicit interfaced from: shape_tolerance_schema *) -ENTITY runout_zone_orientation; - angle : plane_angle_measure_with_unit; -END_ENTITY; -(* REFERENCE FROM (representation_schema); *) - ENTITY founded_item SUPERTYPE OF ( ( ONEOF ( - B_SPLINE_CURVE_KNOT_LOCATOR, - B_SPLINE_CURVE_SEGMENT, - B_SPLINE_SURFACE_KNOT_LOCATOR, - B_SPLINE_SURFACE_PATCH, - B_SPLINE_SURFACE_STRIP, - BOUNDARY_CURVE_OF_B_SPLINE_OR_RECTANGULAR_COMPOSITE_SURFACE, - BOX_DOMAIN, - CHARACTER_GLYPH_STYLE_OUTLINE, - CHARACTER_GLYPH_STYLE_STROKE, - COMPOSITE_CURVE_SEGMENT, - COMPOSITE_CURVE_TRANSITION_LOCATOR, - CURVE_STYLE, - CURVE_STYLE_FONT, - CURVE_STYLE_FONT_AND_SCALING, - CURVE_STYLE_FONT_PATTERN, - EXTERNALLY_DEFINED_STYLE, - FILL_AREA_STYLE, - INTERPOLATED_CONFIGURATION_SEGMENT, - KINEMATIC_PATH_SEGMENT, - PLANE_ANGLE_AND_LENGTH_PAIR, - PLANE_ANGLE_AND_RATIO_PAIR, - POINT_STYLE, - PRESENTATION_STYLE_ASSIGNMENT, - RECTANGULAR_COMPOSITE_SURFACE_TRANSITION_LOCATOR, - SURFACE_PATCH, - 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, - VIEW_VOLUME) )ANDOR( ONEOF ( - CHARACTER_GLYPH_STYLE_OUTLINE, - CHARACTER_GLYPH_STYLE_STROKE, - CURVE_STYLE, - CURVE_STYLE_FONT, - CURVE_STYLE_FONT_AND_SCALING, - CURVE_STYLE_FONT_PATTERN, - EXTERNALLY_DEFINED_STYLE, - 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; -(* USED FROM (parameterization_schema); *) -ENTITY unbound_parameter_environment - SUBTYPE OF (environment); -WHERE - WR1: ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.UNBOUND_VARIATIONAL_PARAMETER' IN - TYPEOF(SELF\environment.syntactic_representation)) AND - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.UNBOUND_VARIATIONAL_PARAMETER_SEMANTICS' IN - TYPEOF(SELF\environment.semantics)); -END_ENTITY; -(* USED FROM (parameterization_schema); *) -ENTITY instance_attribute_reference - SUBTYPE OF (variable_semantics); - attribute_name : attribute_identifier; - owning_instance : representation_item; -END_ENTITY; -(* USED FROM (person_organization_schema); *) - 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, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'ID_ATTRIBUTE.IDENTIFIED_ITEM')) <= 1; - END_ENTITY; -(* USED FROM (parameterization_schema); *) -ENTITY unbound_variational_parameter_semantics - SUBTYPE OF (variable_semantics); -END_ENTITY; -(* USED FROM (material_property_definition_schema); *) -ENTITY material_designation_characterization; - name : label; - description : text; - designation : material_designation; - property : characterized_material_property; -END_ENTITY; -(* USED FROM (kinematic_structure_schema); *) -ENTITY cylindrical_pair - SUBTYPE OF (low_order_kinematic_pair); -DERIVE - SELF\low_order_kinematic_pair.t_x : BOOLEAN := FALSE; - SELF\low_order_kinematic_pair.t_y : BOOLEAN := FALSE; - SELF\low_order_kinematic_pair.t_z : BOOLEAN := TRUE; - SELF\low_order_kinematic_pair.r_x : BOOLEAN := FALSE; - SELF\low_order_kinematic_pair.r_y : BOOLEAN := FALSE; - SELF\low_order_kinematic_pair.r_z : BOOLEAN := TRUE; -END_ENTITY; -(* USED FROM (material_property_representation_schema); *) -ENTITY data_environment; - name : label; - description : text; - elements : SET [1:?] OF property_definition_representation; -END_ENTITY; -(* USED FROM (kinematic_structure_schema); *) -ENTITY screw_pair_with_range - SUBTYPE OF (screw_pair); - lower_limit_actual_rotation : OPTIONAL plane_angle_measure; - upper_limit_actual_rotation : OPTIONAL plane_angle_measure; -WHERE - WR1: (NOT EXISTS(lower_limit_actual_rotation) - OR - NOT EXISTS(upper_limit_actual_rotation)) - XOR - (lower_limit_actual_rotation < upper_limit_actual_rotation); -END_ENTITY; -(* USED FROM (presentation_appearance_schema); *) - ENTITY character_glyph_style_stroke - SUBTYPE OF (founded_item); - stroke_style : curve_style; - END_ENTITY; -(* USED FROM (presentation_appearance_schema); *) - ENTITY character_glyph_style_outline - SUBTYPE OF (founded_item); - outline_style : curve_style; - END_ENTITY; -(* USED FROM (presentation_appearance_schema); *) - ENTITY text_style - SUBTYPE OF (founded_item); - name : label; - character_appearance : character_style_select; - END_ENTITY; -(* USED FROM (presentation_appearance_schema); *) - ENTITY text_style_with_spacing - SUBTYPE OF (text_style); - character_spacing : character_spacing_select; - END_ENTITY; -(* USED FROM (presentation_definition_schema); *) - ENTITY composite_text_with_extent - SUBTYPE OF (composite_text); - extent : planar_extent; - END_ENTITY; -(* USED FROM (presentation_definition_schema); *) - ENTITY composite_text_with_delineation - SUBTYPE OF (composite_text); - delineation : text_delineation; - END_ENTITY; -(* USED FROM (presentation_definition_schema); *) - ENTITY composite_text_with_blanking_box - SUBTYPE OF (composite_text); - blanking : planar_box; - END_ENTITY; -(* USED FROM (presentation_definition_schema); *) - ENTITY defined_character_glyph - SUBTYPE OF(geometric_representation_item); - definition : defined_glyph_select; - placement : axis2_placement; - END_ENTITY; -(* USED FROM (presentation_definition_schema); *) - ENTITY pre_defined_character_glyph - SUBTYPE OF (pre_defined_item); - END_ENTITY; -(* USED FROM (presentation_definition_schema); *) - ENTITY externally_defined_character_glyph - SUBTYPE OF (externally_defined_item); - END_ENTITY; -(* USED FROM (variational_representation_schema); *) -ENTITY auxiliary_geometric_representation_item - SUBTYPE OF (geometric_representation_item, - variational_representation_item); -END_ENTITY; -(* USED FROM (presentation_definition_schema); *) - ENTITY text_literal_with_extent - SUBTYPE OF (text_literal); - extent : planar_extent; - END_ENTITY; -(* USED FROM (presentation_definition_schema); *) - ENTITY text_literal_with_delineation - SUBTYPE OF (text_literal); - delineation : text_delineation; - END_ENTITY; -(* USED FROM (presentation_definition_schema); *) - ENTITY text_literal_with_blanking_box - SUBTYPE OF (text_literal); - blanking : planar_box; - END_ENTITY; -(* USED FROM (presentation_resource_schema); *) -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; -(* USED FROM (presentation_resource_schema); *) -ENTITY draughting_pre_defined_text_font - SUBTYPE of (pre_defined_text_font); -WHERE - WR1: SELF.name[1:8] = 'ISO 3098'; -END_ENTITY; -(* USED FROM (presentation_resource_schema); *) -ENTITY externally_defined_text_font - SUBTYPE OF (externally_defined_item); -END_ENTITY; -(* USED FROM (presentation_resource_schema); *) -ENTITY pre_defined_colour - SUBTYPE OF (pre_defined_item, colour); -END_ENTITY; -(* USED FROM (presentation_resource_schema); *) -ENTITY pre_defined_text_font - SUBTYPE OF (pre_defined_item); -END_ENTITY; -(* USED FROM (geometric_model_schema); *) -ENTITY right_circular_cylinder - SUBTYPE OF (geometric_representation_item); - position : axis1_placement; - height : positive_length_measure; - radius : positive_length_measure; -END_ENTITY; -(* USED FROM (presentation_definition_schema); *) - ENTITY annotation_text - SUBTYPE OF (mapped_item); - SELF\mapped_item.mapping_target : axis2_placement; - WHERE - WR1: 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.TEXT_STRING_REPRESENTATION' IN - TYPEOF( SELF\mapped_item.mapping_source.mapped_representation); - WR2: 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.GEOMETRIC_REPRESENTATION_ITEM' IN - TYPEOF( SELF); - END_ENTITY; -(* USED FROM (presentation_definition_schema); *) - ENTITY annotation_text_occurrence - SUBTYPE OF (annotation_occurrence); - SELF\styled_item.item : annotation_text_occurrence_item; - END_ENTITY; -(* USED FROM (presentation_definition_schema); *) - ENTITY annotation_curve_occurrence - SUPERTYPE OF ((ONEOF ( - DIMENSION_CURVE, - LEADER_CURVE, - PROJECTION_CURVE)) ) - SUBTYPE OF (annotation_occurrence); - SELF\styled_item.item : curve_or_curve_set; - END_ENTITY; -(* USED FROM (geometric_model_schema); *) -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; -(* USED FROM (presentation_appearance_schema); *) - 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; -(* USED FROM (presentation_appearance_schema); *) - ENTITY text_style_for_defined_font; - text_colour : colour; - END_ENTITY; -(* USED FROM (geometric_model_schema); *) -(* Pruned SUPERTYPE *) -ENTITY swept_face_solid - SUPERTYPE OF (ONEOF ( - EXTRUDED_FACE_SOLID, - REVOLVED_FACE_SOLID)) - SUBTYPE OF (solid_model); - swept_face : face_surface; -WHERE - WR1: 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PLANE' IN TYPEOF(swept_face.face_geometry); -END_ENTITY; -(* USED FROM (presentation_appearance_schema); *) - ENTITY text_style_with_mirror - SUBTYPE OF (text_style); - mirror_placement : axis2_placement; - END_ENTITY; -(* USED FROM (geometric_model_schema); *) -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; -(* USED FROM (presentation_resource_schema); *) -ENTITY character_glyph_font_usage; - character : generic_character_glyph_symbol; - font : text_font; -END_ENTITY; -(* USED FROM (presentation_resource_schema); *) -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: 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.POSITIVE_LENGTH_MEASURE' - IN TYPEOF (SELF.box_height); -END_ENTITY; -(* USED FROM (presentation_resource_schema); *) -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; -(* USED FROM (presentation_resource_schema); *) -ENTITY character_glyph_symbol_stroke - SUBTYPE OF (character_glyph_symbol); - strokes : SET [1:?] OF curve; -WHERE - WR1: SELF.strokes <= SELF\representation.items; -END_ENTITY; -(* USED FROM (presentation_resource_schema); *) -ENTITY generic_character_glyph_symbol - ABSTRACT SUPERTYPE - SUBTYPE OF (symbol_representation); -END_ENTITY; -(* USED FROM (presentation_resource_schema); *) -ENTITY text_font; - id : identifier; - name : label; - description : text; -INVERSE - glyphs : SET [1:?] OF character_glyph_font_usage FOR font; -END_ENTITY; -(* USED FROM (presentation_resource_schema); *) -ENTITY text_font_family; - id : identifier; - name : label; - description : text; -INVERSE - fonts : SET [1:?] OF text_font_in_family FOR family; -END_ENTITY; -(* USED FROM (presentation_resource_schema); *) -ENTITY text_font_in_family; - font : text_font; - family : text_font_family; -END_ENTITY; -(* USED FROM (solid_shape_element_schema); *) -ENTITY thickened_face_solid - SUBTYPE OF (solid_model); - base_element : generalized_surface_select; - offset1 : length_measure; - offset2 : length_measure; -WHERE - WR1: NOT (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SURFACE' IN TYPEOF(base_element)) AND - (NOT ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.BOUNDED_SURFACE' IN TYPEOF(base_element)))); - WR2: offset1 <> offset2; -END_ENTITY; -(* USED FROM (kinematic_structure_schema); *) -ENTITY actuated_kinematic_pair - SUBTYPE OF (kinematic_pair); - t_x : OPTIONAL actuated_direction; - t_y : OPTIONAL actuated_direction; - t_z : OPTIONAL actuated_direction; - r_x : OPTIONAL actuated_direction; - r_y : OPTIONAL actuated_direction; - r_z : OPTIONAL actuated_direction; -END_ENTITY; -(* USED FROM (kinematic_structure_schema); *) -ENTITY low_order_kinematic_pair_with_range - SUBTYPE OF (low_order_kinematic_pair); - lower_limit_actual_rotation_x : OPTIONAL plane_angle_measure; - upper_limit_actual_rotation_x : OPTIONAL plane_angle_measure; - lower_limit_actual_rotation_y : OPTIONAL plane_angle_measure; - upper_limit_actual_rotation_y : OPTIONAL plane_angle_measure; - lower_limit_actual_rotation_z : OPTIONAL plane_angle_measure; - upper_limit_actual_rotation_z : OPTIONAL plane_angle_measure; - lower_limit_actual_translation_x : OPTIONAL length_measure; - upper_limit_actual_translation_x : OPTIONAL length_measure; - lower_limit_actual_translation_y : OPTIONAL length_measure; - upper_limit_actual_translation_y : OPTIONAL length_measure; - lower_limit_actual_translation_z : OPTIONAL length_measure; - upper_limit_actual_translation_z : OPTIONAL length_measure; -END_ENTITY; -(* USED FROM (sketch_schema); *) -ENTITY implicit_planar_intersection_point - SUBTYPE OF (implicit_point_on_plane); - external_curve : curve; -END_ENTITY; -(* USED FROM (sketch_schema); *) -ENTITY implicit_planar_projection_point - SUBTYPE OF (implicit_point_on_plane); - external_point : point; - projection_direction : direction; -END_ENTITY; -(* USED FROM (sketch_schema); *) -ENTITY implicit_planar_curve - ABSTRACT SUPERTYPE OF (ONEOF ( - IMPLICIT_INTERSECTION_CURVE, - IMPLICIT_PROJECTED_CURVE, - IMPLICIT_MODEL_INTERSECTION_CURVE, - IMPLICIT_SILHOUETTE_CURVE)) - SUBTYPE OF (curve, auxiliary_geometric_representation_item); - using_sketch : positioned_sketch; - computed_representation : curve; -DERIVE - curve_plane : plane - := get_plane_of_implicit_geometry(using_sketch); -WHERE - WR1: SIZEOF(TYPEOF(computed_representation) * - ['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.IMPLICIT_PLANAR_CURVE', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CURVE_REPLICA']) = 0; -END_ENTITY; -(* USED FROM (sketch_schema); *) -ENTITY implicit_intersection_curve - SUBTYPE of (implicit_planar_curve); - external_surface : surface; -END_ENTITY; -(* USED FROM (sketch_schema); *) -ENTITY implicit_projected_curve - SUBTYPE of (implicit_planar_curve); - external_curve : curve; - projection_direction : direction; -END_ENTITY; -(* USED FROM (sketch_schema); *) -ENTITY implicit_model_intersection_curve - SUBTYPE of (implicit_planar_curve); - intersected_model : surface_or_solid_model; -END_ENTITY; -(* USED FROM (sketch_schema); *) -ENTITY implicit_silhouette_curve - SUBTYPE of (implicit_planar_curve); - silhouetted_model : surface_or_solid_model; - view_direction : direction; -END_ENTITY; -(* USED FROM (kinematic_motion_representation_schema); *) -ENTITY interpolated_configuration_representation - SUBTYPE OF (representation); - SELF\representation.context_of_items : geometric_representation_context_with_parameter; - SELF\representation.items : SET[1:?] OF interpolated_configuration_sequence; -END_ENTITY; -(* USED FROM (assembly_feature_relationship_schema); *) -ENTITY constrained_kinematic_motion_representation - SUBTYPE OF (representation_relationship_with_transformation); -SELF\representation_relationship.rep_1: - representative_shape_representation; -SELF\representation_relationship.rep_2: - representative_shape_representation; -WHERE -WR1: ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.AXIS2_PLACEMENT_3D' IN TYPEOF - (SELF\representation_relationship_with_transformation. - transformation_operator\item_defined_transformation.transform_item_1)) AND - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.AXIS2_PLACEMENT_3D' IN TYPEOF - (SELF\representation_relationship_with_transformation. - transformation_operator\item_defined_transformation.transform_item_2)); -WR2: ((dimension_of - (SELF\representation_relationship_with_transformation. - transformation_operator\item_defined_transformation. - transform_item_1) = 3 ) AND - (dimension_of - (SELF\representation_relationship_with_transformation. - transformation_operator\item_defined_transformation. - transform_item_2) = 3 )); -WR3:(SELF\representation_relationship.rep_1 IN - (using_representations - (SELF\representation_relationship_with_transformation. - transformation_operator\item_defined_transformation.transform_item_1) + - using_representation_with_mapping - (SELF\representation_relationship_with_transformation. - transformation_operator\item_defined_transformation.transform_item_1))) AND - (SELF\representation_relationship.rep_2 IN - (using_representations - (SELF\representation_relationship_with_transformation. - transformation_operator\item_defined_transformation.transform_item_2) + - using_representation_with_mapping - (SELF\representation_relationship_with_transformation. - transformation_operator\item_defined_transformation.transform_item_2))); -WR4: 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.KINEMATIC_PAIR' IN TYPEOF - (SELF\representation_relationship_with_transformation. - transformation_operator); -END_ENTITY; -- constrained_kinematic_motion_representation -(* USED FROM (sketch_schema); *) -ENTITY repositioned_neutral_sketch - SUBTYPE OF (mapped_item, geometric_representation_item); -DERIVE - map : representation_map := SELF\mapped_item.mapping_source; -WHERE - WR1 : 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.NEUTRAL_SKETCH_REPRESENTATION' - IN TYPEOF(map.mapped_representation); - WR2 : 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.AXIS2_PLACEMENT_2D' IN - TYPEOF(map.mapping_origin); - WR3 : 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.AXIS2_PLACEMENT_3D' IN - TYPEOF(SELF\mapped_item.mapping_target); -END_ENTITY; -(* USED FROM (kinematic_structure_schema); *) -ENTITY kinematic_pair - ABSTRACT SUPERTYPE OF (ONEOF ( - HIGH_ORDER_KINEMATIC_PAIR, - LOW_ORDER_KINEMATIC_PAIR_WITH_MOTION_COUPLING, - LOW_ORDER_KINEMATIC_PAIR) - ANDOR - ACTUATED_KINEMATIC_PAIR) - SUBTYPE OF (geometric_representation_item, item_defined_transformation); - joint : kinematic_joint; - SELF\item_defined_transformation.transform_item_1 : rigid_placement; - SELF\item_defined_transformation.transform_item_2 : rigid_placement; -DERIVE - associated_link_representations_1 : SET[1:?] OF kinematic_link_representation := - sort_link_associations(link_representation_associations, TRUE); - associated_link_representations_2 : SET[1:?] OF kinematic_link_representation := - sort_link_associations(link_representation_associations, FALSE); - SELF\item_defined_transformation.name : label := SELF\representation_item.name; -INVERSE - link_representation_associations : SET[1:?] OF pair_representation_relationship FOR transformation_operator; -END_ENTITY; -(* USED FROM (kinematic_structure_schema); *) -ENTITY su_parameters - SUBTYPE OF (geometric_representation_item); - a : length_measure; - alpha : plane_angle_measure; - b : length_measure; - beta : plane_angle_measure; - c : length_measure; - gamma : plane_angle_measure; -WHERE - WR1: SELF\geometric_representation_item.dim=3; -END_ENTITY; -(* USED FROM (sketch_schema); *) -ENTITY rigid_subsketch - SUBTYPE OF (subsketch); -END_ENTITY; -(* USED FROM (Curve_appearance_mim); *) - ENTITY externally_defined_marker - SUBTYPE OF (externally_defined_symbol, pre_defined_marker); - END_ENTITY; -(* USED FROM (Curve_appearance_mim); *) - ENTITY externally_defined_terminator_symbol - SUBTYPE OF (externally_defined_symbol); - END_ENTITY; -(* USED FROM (Curve_appearance_mim); *) - 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; -(* USED FROM (management_resources_schema); *) - ENTITY event_occurrence_assignment - ABSTRACT SUPERTYPE; - assigned_event_occurrence : event_occurrence; - role : event_occurrence_role; - END_ENTITY; -(* USED FROM (management_resources_schema); *) - ENTITY organizational_project_role; - name : label; - description : OPTIONAL text; - END_ENTITY; -(* USED FROM (Curve_appearance_mim); *) - ENTITY user_defined_terminator_symbol - SUBTYPE OF (mapped_item, pre_defined_symbol); - END_ENTITY; -(* USED FROM (kinematic_motion_representation_schema); *) -ENTITY link_motion_relationship - SUBTYPE OF (definitional_representation_relationship, representation_relationship_with_transformation); - SELF\representation_relationship.rep_1 : link_or_shape_representation; - SELF\representation_relationship.rep_2 : link_motion_representation_along_path; - SELF\representation_relationship_with_transformation.transformation_operator : link_motion_transformation; -WHERE - WR1: transformation_operator\item_defined_transformation.transform_item_1 IN rep_1.items; - WR2: transformation_operator\item_defined_transformation.transform_item_2 IN rep_2.items; -END_ENTITY; -(* USED FROM (Styled_curve_mim); *) - ENTITY solid_curve_font - SUBTYPE OF (pre_defined_curve_font); - END_ENTITY; -(* USED FROM (Styled_curve_mim); *) - ENTITY user_defined_curve_font - SUBTYPE OF (curve_style_font, mapped_item); - END_ENTITY; -(* USED FROM (presentation_appearance_schema); *) - ENTITY curve_style_font - SUBTYPE OF (founded_item); - name : label; - pattern_list : LIST [1:?] OF curve_style_font_pattern; - END_ENTITY; -(* USED FROM (presentation_appearance_schema); *) - 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; -(* USED FROM (presentation_appearance_schema); *) - ENTITY point_style - SUBTYPE OF (founded_item); - name : label; - marker : marker_select; - marker_size : size_select; - marker_colour : colour; - END_ENTITY; -(* USED FROM (presentation_appearance_schema); *) - ENTITY pre_defined_curve_font - SUBTYPE OF (pre_defined_item); - END_ENTITY; -(* USED FROM (presentation_appearance_schema); *) - ENTITY pre_defined_marker - SUBTYPE OF (pre_defined_item); - END_ENTITY; -(* USED FROM (kinematic_motion_representation_schema); *) -ENTITY geometric_representation_context_with_parameter - SUBTYPE OF (geometric_representation_context); - parameter_unit : OPTIONAL unit; -END_ENTITY; -(* USED FROM (kinematic_property_schema); *) -ENTITY kinematic_property_topology_representation - SUBTYPE OF (kinematic_property_definition_representation); - SELF\property_definition_representation.used_representation : kinematic_topology_representation_select; - base : kinematic_link; -WHERE - WR1: used_representation IN using_representations(base); -END_ENTITY; -(* USED FROM (kinematic_property_schema); *) -ENTITY product_definition_kinematics - SUBTYPE OF (property_definition); - SELF\property_definition.definition : product_definition; -INVERSE - representation_relation : kinematic_property_definition_representation FOR definition; -UNIQUE - UR1 : definition; -END_ENTITY; -(* USED FROM (kinematic_motion_representation_schema); *) -ENTITY kinematic_path_defined_by_nodes - SUBTYPE OF (kinematic_path); - SELF\kinematic_path.segments : LIST [1:?] OF path_node; - placement_start : placement; -END_ENTITY; -(* USED FROM (kinematic_structure_schema); *) -ENTITY linear_flexible_link_representation - SUBTYPE OF (kinematic_link_representation); -END_ENTITY; -(* USED FROM (kinematic_structure_schema); *) -ENTITY kinematic_link_representation - ABSTRACT SUPERTYPE OF (ONEOF ( - LINEAR_FLEXIBLE_LINK_REPRESENTATION, - RIGID_LINK_REPRESENTATION)) - SUBTYPE OF (representation); - SELF\representation.context_of_items : geometric_representation_context; - SELF\representation.items : SET[1:?] OF kinematic_link_representation_items; - represented_link : kinematic_link; -INVERSE - associated_shape_representation : SET[0:1] OF -- LK - kinematic_link_representation_association FOR rep_1; -END_ENTITY; -(* USED FROM (kinematic_structure_schema); *) -ENTITY rigid_link_representation - SUBTYPE OF (kinematic_link_representation); -END_ENTITY; -(* USED FROM (iso13584_expressions_schema); *) -ENTITY int_value_function -SUBTYPE OF (value_function); -END_ENTITY; -(* USED FROM (iso13584_expressions_schema); *) -ENTITY tan_function -SUBTYPE OF (unary_function_call); -END_ENTITY; -(* USED FROM (iso13584_expressions_schema); *) -ENTITY unary_function_call - ABSTRACT SUPERTYPE OF (ONEOF ( - ABS_FUNCTION, - MINUS_FUNCTION, - SIN_FUNCTION, - COS_FUNCTION, - TAN_FUNCTION, - ASIN_FUNCTION, - ACOS_FUNCTION, - EXP_FUNCTION, - LOG_FUNCTION, - LOG2_FUNCTION, - LOG10_FUNCTION, - SQUARE_ROOT_FUNCTION)) - -SUBTYPE OF (unary_numeric_expression); -END_ENTITY; -(* USED FROM (kinematic_motion_representation_schema); *) -ENTITY kinematic_path_segment - ABSTRACT SUPERTYPE OF (ONEOF ( - PATH_NODE, - CURVE_BASED_PATH_WITH_ORIENTATION)) - SUBTYPE OF (founded_item); - t_end : parameter_value; - transition : transition_code; -END_ENTITY; -(* USED FROM (kinematic_motion_representation_schema); *) -ENTITY kinematic_path_defined_by_curves - SUBTYPE OF (kinematic_path); - SELF\kinematic_path.segments : LIST [1:?] OF curve_based_path_with_orientation; -END_ENTITY; -(* USED FROM (configuration_management_schema); *) -ENTITY configurable_item - SUBTYPE OF (configuration_item); - item_concept_feature : SET[1:?] OF product_concept_feature_association; -END_ENTITY; -(* USED FROM (geometric_model_schema); *) -ENTITY tessellated_wire - SUBTYPE OF (tessellated_item); - items : SET[1:?] OF tessellated_edge_or_vertex; - geometric_model_link : OPTIONAL path_or_composite_curve; -END_ENTITY; -(* USED FROM (geometric_model_schema); *) -ENTITY tessellated_curve_set - SUBTYPE OF (tessellated_item); - coordinates : coordinates_list; - line_strips : LIST[1:?] OF LIST[2:?] OF INTEGER; -END_ENTITY; -(* USED FROM (kinematic_motion_representation_schema); *) -ENTITY path_parameter_representation - SUBTYPE OF (definitional_representation); - SELF\representation.context_of_items : path_parameter_representation_context; - SELF\representation.items : SET[1:?] OF bounded_curve; -WHERE - WR1: SELF\representation.context_of_items\geometric_representation_context.coordinate_space_dimension = 2; -END_ENTITY; -(* USED FROM (iso13584_expressions_schema); *) -ENTITY numeric_defined_function - ABSTRACT SUPERTYPE OF (ONEOF ( - INTEGER_DEFINED_FUNCTION, - REAL_DEFINED_FUNCTION)) - -SUBTYPE OF (numeric_expression, defined_function); -END_ENTITY; -(* USED FROM (iso13584_expressions_schema); *) -ENTITY real_defined_function - ABSTRACT SUPERTYPE - -SUBTYPE OF (numeric_defined_function); -END_ENTITY ; -(* USED FROM (geometric_model_schema); *) -ENTITY tessellated_point_set - SUBTYPE OF (tessellated_item); - coordinates : coordinates_list; - point_list : LIST[1:?] OF INTEGER; -END_ENTITY; -(* USED FROM (Certification_mim); *) -ENTITY applied_certification_assignment - SUBTYPE OF (certification_assignment); - items : SET[1:?] OF certification_item; -END_ENTITY; -(* USED FROM (kinematic_motion_representation_schema); *) -ENTITY path_node - ABSTRACT SUPERTYPE OF (ONEOF ( - POINT_TO_POINT_PATH, - CIRCULAR_PATH, - LINEAR_PATH, - CURVE_BASED_PATH)) - SUBTYPE OF (kinematic_path_segment); - placement_end : placement; -END_ENTITY; -(* USED FROM (kinematic_motion_representation_schema); *) -ENTITY point_to_point_path - SUBTYPE OF (path_node); -DERIVE - SELF\kinematic_path_segment.transition : transition_code := discontinuous; -END_ENTITY; -(* USED FROM (iso13584_expressions_schema); *) -(* Pruned SUPERTYPE *) -ENTITY unary_numeric_expression - ABSTRACT SUPERTYPE - -SUBTYPE OF (numeric_expression, unary_generic_expression); - SELF\unary_generic_expression.operand : numeric_expression; -END_ENTITY; -(* USED FROM (kinematic_state_schema); *) -ENTITY universal_pair_value - SUBTYPE OF (pair_value); - SELF\pair_value.applies_to_pair : universal_pair; - first_rotation_angle : plane_angle_measure; - second_rotation_angle : plane_angle_measure; -END_ENTITY; -(* USED FROM (kinematic_state_schema); *) -ENTITY planar_pair_value - SUBTYPE OF (pair_value); - SELF\pair_value.applies_to_pair : planar_pair; - actual_rotation : plane_angle_measure; - actual_translation_x : length_measure; - actual_translation_y : length_measure; -END_ENTITY; -(* USED FROM (geometric_model_schema); *) -ENTITY complex_triangulated_face - SUBTYPE OF (tessellated_face); - pnindex : LIST[0:?] OF INTEGER; - triangle_strips : LIST[0:?] OF LIST[3:?] OF INTEGER; - triangle_fans : LIST[0:?] OF LIST[3:?] OF INTEGER; -WHERE - WR1: ((SIZEOF(pnindex) = 0) OR (SIZEOF(pnindex) = SELF\tessellated_face.pnmax)); - WR2: NOT((SIZEOF(pnindex) = 0) AND (SELF\tessellated_face.pnmax <> coordinates.npoints)); - WR3: NOT ((SIZEOF(triangle_strips) = 0) AND (SIZEOF(triangle_fans) = 0)); -END_ENTITY; -(* USED FROM (kinematic_motion_representation_schema); *) -ENTITY circular_path - SUBTYPE OF (path_node); - via_point : cartesian_point; -END_ENTITY; -(* USED FROM (draughting_element_schema); *) - ENTITY tessellated_annotation_occurrence - SUBTYPE OF (annotation_occurrence); - SELF\styled_item.item : tessellated_geometric_set; - END_ENTITY; -(* USED FROM (kinematic_state_schema); *) -ENTITY gear_pair_value - SUBTYPE OF (pair_value); - SELF\pair_value.applies_to_pair : gear_pair; - actual_rotation_1 : plane_angle_measure; -DERIVE - actual_rotation_2 : plane_angle_measure - := - actual_rotation_1 * - SELF\pair_value.applies_to_pair\ - gear_pair.gear_ratio; -END_ENTITY; -(* USED FROM (kinematic_motion_representation_schema); *) -ENTITY linear_path - SUBTYPE OF (path_node); -DERIVE - SELF\kinematic_path_segment.transition : transition_code := continuous; -END_ENTITY; -(* USED FROM (iso13584_generic_expressions_schema); *) -ENTITY generic_literal - ABSTRACT SUPERTYPE - -SUBTYPE OF (simple_generic_expression); -END_ENTITY; -(* USED FROM (iso13584_generic_expressions_schema); *) -ENTITY generic_variable - ABSTRACT SUPERTYPE - -SUBTYPE OF (simple_generic_expression); -INVERSE - interpretation : - environment FOR syntactic_representation; -END_ENTITY; -(* USED FROM (iso13584_generic_expressions_schema); *) -ENTITY multiple_arity_generic_expression - ABSTRACT SUPERTYPE - -SUBTYPE OF(generic_expression); - operands: LIST [2:?] OF generic_expression; -END_ENTITY; -(* USED FROM (iso13584_generic_expressions_schema); *) -ENTITY simple_generic_expression - ABSTRACT SUPERTYPE OF (ONEOF ( - GENERIC_LITERAL, - GENERIC_VARIABLE)) - -SUBTYPE OF (generic_expression); -END_ENTITY; -(* USED FROM (iso13584_generic_expressions_schema); *) -ENTITY unary_generic_expression - ABSTRACT SUPERTYPE - -SUBTYPE OF(generic_expression); - operand: generic_expression; -END_ENTITY; -(* USED FROM (kinematic_motion_representation_schema); *) -ENTITY curve_based_path_with_orientation_and_parameters - SUBTYPE OF (curve_based_path_with_orientation); - parameters : path_parameter_representation; -END_ENTITY; -(* USED FROM (iso13584_expressions_schema); *) -ENTITY variable - ABSTRACT SUPERTYPE OF (ONEOF ( - NUMERIC_VARIABLE, - BOOLEAN_VARIABLE, - STRING_VARIABLE)) - -SUBTYPE OF(generic_variable); -END_ENTITY; -(* USED FROM (Functional_breakdown_mim); *) - ENTITY functional_breakdown_context - SUBTYPE OF (breakdown_context); - END_ENTITY; -(* USED FROM (iso13584_expressions_schema); *) -ENTITY format_function -SUBTYPE OF (string_expression, binary_generic_expression); -DERIVE - value_to_format: generic_expression:= - SELF\binary_generic_expression.operands[1]; - format_string:generic_expression:= - SELF\binary_generic_expression.operands[2]; -WHERE - WR1: (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.NUMERIC_EXPRESSION') - IN TYPEOF(value_to_format)) - AND (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.STRING_EXPRESSION') - IN TYPEOF(format_string)); -END_ENTITY; -(* USED FROM (Functional_breakdown_mim); *) - ENTITY functional_element_usage - SUBTYPE OF (breakdown_element_usage); - END_ENTITY; -(* USED FROM (iso13584_expressions_schema); *) -ENTITY interval_expression -SUBTYPE OF (boolean_expression, multiple_arity_generic_expression) ; -DERIVE - interval_low: generic_expression - := SELF\multiple_arity_generic_expression.operands[1]; - interval_item:generic_expression - := SELF\multiple_arity_generic_expression.operands[2]; - interval_high:generic_expression - := SELF\multiple_arity_generic_expression.operands[3]; -WHERE - WR1:('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.EXPRESSION' - IN TYPEOF(interval_low)) - AND ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.EXPRESSION' - IN TYPEOF(interval_item) ) - AND ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.EXPRESSION' - IN TYPEOF(interval_high)); - WR2:(('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.STRING_EXPRESSION' - IN TYPEOF (SELF.interval_low)) - AND ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.STRING_EXPRESSION' - IN TYPEOF (SELF.interval_high)) - AND ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.STRING_EXPRESSION' - IN TYPEOF (SELF.interval_item))) - OR - (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.NUMERIC_EXPRESSION' - IN TYPEOF(SELF.interval_low)) - AND ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.NUMERIC_EXPRESSION' - IN TYPEOF(SELF.interval_item)) - AND ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.NUMERIC_EXPRESSION' - IN TYPEOF(SELF.interval_high))); -END_ENTITY; -(* USED FROM (iso13584_expressions_schema); *) -ENTITY like_expression -SUBTYPE OF (comparison_expression); -WHERE - WR1: ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.STRING_EXPRESSION' - IN TYPEOF(SELF\binary_generic_expression.operands[1])) AND - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.STRING_EXPRESSION' - IN TYPEOF(SELF\binary_generic_expression.operands[2])); -END_ENTITY; -(* USED FROM (iso13584_expressions_schema); *) -ENTITY simple_string_expression - ABSTRACT SUPERTYPE OF (ONEOF ( - STRING_LITERAL, - STRING_VARIABLE)) - -SUBTYPE OF (string_expression, simple_generic_expression); -END_ENTITY; -(* USED FROM (iso13584_expressions_schema); *) -ENTITY SQL_mappable_defined_function - ABSTRACT SUPERTYPE - -SUBTYPE OF (defined_function); -END_ENTITY; -(* USED FROM (iso13584_expressions_schema); *) -ENTITY string_defined_function - ABSTRACT SUPERTYPE - -SUBTYPE OF (defined_function, string_expression); -END_ENTITY ; -(* USED FROM (iso13584_expressions_schema); *) -ENTITY string_expression - ABSTRACT SUPERTYPE OF (ONEOF ( - SIMPLE_STRING_EXPRESSION, - INDEX_EXPRESSION, - SUBSTRING_EXPRESSION, - CONCAT_EXPRESSION, - FORMAT_FUNCTION, - STRING_DEFINED_FUNCTION)) - -SUBTYPE OF (expression); -END_ENTITY; -(* USED FROM (iso13584_expressions_schema); *) -ENTITY string_literal -SUBTYPE OF (simple_string_expression, generic_literal); - the_value: STRING; -END_ENTITY; -(* USED FROM (iso13584_expressions_schema); *) -ENTITY string_variable -SUBTYPE OF (simple_string_expression, variable); -END_ENTITY; -(* USED FROM (iso13584_expressions_schema); *) -ENTITY substring_expression -SUBTYPE OF (string_expression, multiple_arity_generic_expression); -DERIVE - operand:generic_expression:= - SELF\multiple_arity_generic_expression.operands[1]; - index1:generic_expression:= - SELF\multiple_arity_generic_expression.operands[2]; - index2:generic_expression:= - SELF\multiple_arity_generic_expression.operands[3]; -WHERE - WR1: ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.STRING_EXPRESSION' - IN TYPEOF(operand)) - AND ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.NUMERIC_EXPRESSION' - IN TYPEOF(index1)) - AND ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.NUMERIC_EXPRESSION' - IN TYPEOF(index2)); - WR2: SIZEOF(SELF\multiple_arity_generic_expression.operands)=3; - WR3: is_int_expr (index1); - WR4: is_int_expr (index2); -END_ENTITY; -(* USED FROM (iso13584_expressions_schema); *) -ENTITY numeric_expression - ABSTRACT SUPERTYPE OF (ONEOF ( - SIMPLE_NUMERIC_EXPRESSION, - UNARY_NUMERIC_EXPRESSION, - BINARY_NUMERIC_EXPRESSION, - MULTIPLE_ARITY_NUMERIC_EXPRESSION, - LENGTH_FUNCTION, - VALUE_FUNCTION, - NUMERIC_DEFINED_FUNCTION)) - -SUBTYPE OF (expression); -DERIVE - is_int: BOOLEAN := is_int_expr (SELF); - sql_mappable: BOOLEAN := is_SQL_mappable (SELF); -END_ENTITY; -(* USED FROM (Part_template_shape_with_parameters_mim); *) - ENTITY geometric_template - ABSTRACT SUPERTYPE - SUBTYPE OF (part_template_definition); - END_ENTITY; -(* USED FROM (Product_breakdown_mim); *) - ENTITY breakdown_element_usage - SUBTYPE OF (product_definition_relationship); - END_ENTITY; -(* USED FROM (Packaged_connector_model_mim); *) -ENTITY packaged_connector_terminal_relationship - SUBTYPE OF (shape_aspect, shape_aspect_relationship); -END_ENTITY; -(* USED FROM (geometry_schema); *) -ENTITY vector - SUBTYPE OF (geometric_representation_item); - orientation : direction; - magnitude : length_measure; -WHERE - WR1: magnitude >= 0.0; -END_ENTITY; -(* USED FROM (Product_breakdown_mim); *) - ENTITY product_definition_element_relationship - SUBTYPE OF (group); - END_ENTITY; -(* USED FROM (presentation_appearance_schema); *) - ENTITY externally_defined_tile_style - SUBTYPE OF (externally_defined_item, geometric_representation_item); - END_ENTITY; -(* USED FROM (presentation_appearance_schema); *) - 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; -(* USED FROM (presentation_appearance_schema); *) - 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; -(* USED FROM (presentation_appearance_schema); *) - ENTITY fill_area_style_tile_symbol_with_style - SUBTYPE OF (geometric_representation_item); - symbol : annotation_symbol_occurrence; - END_ENTITY; -(* USED FROM (Part_template_3d_shape_mim); *) -ENTITY edge_segment_cross_section - SUBTYPE OF (shape_definition_3d_intersection); -END_ENTITY; -(* USED FROM (Part_template_3d_shape_mim); *) -ENTITY inter_stratum_feature_edge_segment_template_with_cross_section - SUBTYPE OF (inter_stratum_feature_edge_segment_template); -END_ENTITY; -(* USED FROM (kinematic_state_schema); *) -ENTITY spherical_pair_value - SUBTYPE OF (pair_value); - SELF\pair_value.applies_to_pair : spherical_pair_select; - input_orientation : spatial_rotation; -DERIVE - actual_orientation : ypr_rotation - := convert_spatial_to_ypr_rotation - (SELF\pair_value.applies_to_pair, - input_orientation); -END_ENTITY; -(* USED FROM (Product_class_mim); *) -ENTITY exclusive_product_concept_feature_category - SUBTYPE OF (product_concept_feature_category); -END_ENTITY; -(* USED FROM (product_definition_schema); *) - ENTITY product_definition_reference - SUBTYPE OF (generic_product_definition_reference); - product_id : identifier; - product_definition_formation_id : identifier; - product_definition_id : identifier; - id_owning_organization_name : OPTIONAL label; - END_ENTITY; -(* USED FROM (iso13584_expressions_schema); *) -ENTITY simple_numeric_expression - ABSTRACT SUPERTYPE OF (ONEOF ( - LITERAL_NUMBER, - NUMERIC_VARIABLE)) - -SUBTYPE OF (numeric_expression, simple_generic_expression); -END_ENTITY; -(* USED FROM (iso13584_expressions_schema); *) -ENTITY simple_boolean_expression - ABSTRACT SUPERTYPE OF (ONEOF ( - BOOLEAN_LITERAL, - BOOLEAN_VARIABLE)) - -SUBTYPE OF (boolean_expression, simple_generic_expression); -END_ENTITY; -(* USED FROM (kinematic_state_schema); *) -ENTITY low_order_kinematic_pair_value - SUBTYPE OF (pair_value); - SELF\pair_value.applies_to_pair : low_order_kinematic_pair; - actual_translation_x : length_measure; - actual_translation_y : length_measure; - actual_translation_z : length_measure; - actual_rotation_x : plane_angle_measure; - actual_rotation_y : plane_angle_measure; - actual_rotation_z : plane_angle_measure; -END_ENTITY; -(* USED FROM (date_time_schema); *) -ENTITY year_month - SUBTYPE OF (date); - month_component : month_in_year_number; -END_ENTITY; -(* USED FROM (Part_feature_location_mim); *) - ENTITY usage_concept_usage_relationship - SUBTYPE OF (mapped_item, item_identified_representation_usage); - SELF\item_identified_representation_usage.used_representation : shape_representation; - SELF\item_identified_representation_usage.definition : shape_aspect; - DERIVE - SELF\item_identified_representation_usage.identified_item : usage_concept_usage_relationship := SELF; - WHERE - WR1: SELF IN SELF\item_identified_representation_usage.used_representation.items; - END_ENTITY; -(* USED FROM (iso13584_expressions_schema); *) -ENTITY power_expression -SUBTYPE OF (binary_numeric_expression); -END_ENTITY; -(* USED FROM (document_schema); *) - 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; -(* USED FROM (iso13584_expressions_schema); *) -ENTITY real_numeric_variable -SUBTYPE OF (numeric_variable); -END_ENTITY; -(* USED FROM (iso13584_expressions_schema); *) -ENTITY plus_expression -SUBTYPE OF (multiple_arity_numeric_expression); -END_ENTITY; -(* USED FROM (product_structure_schema); *) -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], - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PRODUCT_DEFINITION_USAGE'); -END_ENTITY; -(* USED FROM (iso13584_expressions_schema); *) -ENTITY or_expression -SUBTYPE OF (multiple_arity_boolean_expression); -END_ENTITY; -(* USED FROM (product_property_definition_schema); *) - ENTITY product_definition_shape - SUBTYPE OF (property_definition); - UNIQUE - UR1: SELF\property_definition.definition; - WHERE - WR1: SIZEOF(['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CHARACTERIZED_PRODUCT_DEFINITION', 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CHARACTERIZED_OBJECT'] * TYPEOF(SELF\property_definition.definition)) > 0; - END_ENTITY; -(* USED FROM (product_property_representation_schema); *) - ENTITY chain_based_item_identified_representation_usage - SUBTYPE OF (item_identified_representation_usage); - nodes : LIST [2:?] OF UNIQUE representation; - - undirected_link : LIST [1:?] OF chained_representation_link; - DERIVE - root : representation := nodes[1]; - - SELF\item_identified_representation_usage.used_representation : representation := nodes[HIINDEX(nodes)]; -- leaf : This ATTRIBUTE was RENAMED in the EXPRESS E2 source, an attribute with the new name is in the DERIVE clause - directed_link : LIST [1:?] OF representation_relationship := get_directed_link(nodes, undirected_link); - leaf : REPRESENTATION := SELF\item_identified_representation_usage.used_representation; -- USED_REPRESENTATION : This ATTRIBUTE was RENAMED in the EXPRESS E2 source, this is the new name implemented as DERIVE - WHERE - WR1 : EXISTS(directed_link); - END_ENTITY; -(* USED FROM (Product_class_mim); *) -ENTITY product_class - SUBTYPE OF (product_concept,characterized_object); -END_ENTITY; -(* USED FROM (geometry_schema); *) -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; -(* USED FROM (iso13584_expressions_schema); *) -ENTITY not_expression -SUBTYPE OF (unary_Boolean_expression); -SELF\unary_generic_expression.operand: boolean_expression; -END_ENTITY; -(* USED FROM (geometry_schema); *) -ENTITY degenerate_toroidal_surface - SUBTYPE OF (toroidal_surface); - select_outer : BOOLEAN; -WHERE - WR1: major_radius < minor_radius; -END_ENTITY; -(* USED FROM (iso13584_expressions_schema); *) -ENTITY multiple_arity_numeric_expression - ABSTRACT SUPERTYPE OF (ONEOF ( - PLUS_EXPRESSION, - MULT_EXPRESSION, - MULTIPLE_ARITY_FUNCTION_CALL)) - -SUBTYPE OF (numeric_expression, multiple_arity_generic_expression); - SELF\multiple_arity_generic_expression.operands : LIST [2:?] OF numeric_expression; -END_ENTITY; -(* USED FROM (mathematical_functions_schema); *) -ENTITY complex_number_literal_polar - SUBTYPE OF (complex_number_literal); - modulus : REAL; -- was radius - argument : REAL; -- was angle -DERIVE - SELF\complex_number_literal.real_part : REAL := modulus * cos(argument); - SELF\complex_number_literal.imag_part : REAL := modulus * sin(argument); -WHERE - WR1: modulus >= 0; - WR2: {0 <= argument <= 2*PI}; -END_ENTITY; -(* USED FROM (kinematic_state_schema); *) -ENTITY revolute_pair_value - SUBTYPE OF (pair_value); - SELF\pair_value.applies_to_pair : revolute_pair; - actual_rotation : plane_angle_measure ; -END_ENTITY; -(* USED FROM (product_concept_schema); *) -ENTITY conditional_concept_feature - SUBTYPE OF (product_concept_feature); - condition : concept_feature_relationship_with_condition; -END_ENTITY; -(* USED FROM (kinematic_state_schema); *) -ENTITY sliding_surface_pair_value - SUBTYPE OF (pair_value); - SELF\pair_value.applies_to_pair : sliding_surface_pair; - actual_point_on_surface_1 : point_on_surface; - actual_point_on_surface_2 : point_on_surface; - actual_rotation : plane_angle_measure; -WHERE - WR1: SELF\pair_value.applies_to_pair\surface_pair.surface_1 :=: - actual_point_on_surface_1.basis_surface; - WR2: SELF\pair_value.applies_to_pair\surface_pair.surface_2 :=: - actual_point_on_surface_2.basis_surface; -END_ENTITY; -(* USED FROM (kinematic_state_schema); *) -ENTITY rolling_surface_pair_value - SUBTYPE OF (pair_value); - SELF\pair_value.applies_to_pair : rolling_surface_pair; - actual_point_on_surface : point_on_surface; - actual_rotation : plane_angle_measure; -WHERE - WR1: SELF\pair_value.applies_to_pair\surface_pair.surface_1 :=: - actual_point_on_surface.basis_surface; -END_ENTITY; -(* USED FROM (product_concept_schema); *) -ENTITY product_concept_feature; - id : identifier; - name : label; - description : OPTIONAL text; -END_ENTITY; -(* USED FROM (geometric_model_schema); *) -ENTITY brep_with_voids - SUBTYPE OF (manifold_solid_brep); - voids : SET[1:?] OF oriented_closed_shell; -END_ENTITY; -(* USED FROM (topology_schema); *) - ENTITY closed_shell - SUBTYPE OF (connected_face_set); - END_ENTITY; -(* USED FROM (topology_schema); *) - 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 ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.ORIENTED_CLOSED_SHELL' - IN TYPEOF (SELF.closed_shell_element)); - END_ENTITY; -(* USED FROM (product_concept_schema); *) -ENTITY concept_feature_operator; - name : label; - description : OPTIONAL text; -END_ENTITY; -(* USED FROM (management_resources_schema); *) - ENTITY effectivity_context_assignment - ABSTRACT SUPERTYPE; - assigned_effectivity_assignment : effectivity_assignment; - role : effectivity_context_role; - END_ENTITY; -(* USED FROM (iso13584_expressions_schema); *) -ENTITY mult_expression -SUBTYPE OF (multiple_arity_numeric_expression); -END_ENTITY; -(* USED FROM (geometric_model_schema); *) -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; -(* USED FROM (geometry_schema); *) -ENTITY bounded_pcurve - SUBTYPE OF (bounded_curve, pcurve); -WHERE - WR1: ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.BOUNDED_CURVE' IN TYPEOF(SELF\pcurve.reference_to_curve.items[1])); -END_ENTITY; -(* USED FROM (geometry_schema); *) -ENTITY bounded_surface_curve - SUBTYPE OF (bounded_curve, surface_curve); -WHERE - WR1: ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.BOUNDED_CURVE' IN TYPEOF(SELF\surface_curve.curve_3d)); -END_ENTITY; -(* USED FROM (geometry_schema); *) -ENTITY evaluated_degenerate_pcurve - SUBTYPE OF (degenerate_pcurve); - equivalent_point : cartesian_point; -END_ENTITY; -(* USED FROM (kinematic_state_schema); *) -ENTITY mechanism_state_representation - SUBTYPE OF (representation); - SELF\representation.items : SET[1:?] OF pair_value; - represented_mechanism : mechanism_representation; -DERIVE - SELF\representation.context_of_items : geometric_representation_context := represented_mechanism.context_of_items; -END_ENTITY; -(* USED FROM (product_concept_schema); *) -ENTITY product_concept; - id : identifier; - name : label; - description : OPTIONAL text; - market_context : product_concept_context; -UNIQUE - UR1: id; -END_ENTITY; -(* USED FROM (product_definition_schema); *) - 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, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'NAME_ATTRIBUTE.NAMED_ITEM')) <= 1; - END_ENTITY; -(* USED FROM (geometry_schema); *) -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: 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PCURVE' IN TYPEOF(SELF\surface_curve.associated_geometry[1]); - WR4: 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PCURVE' IN TYPEOF(SELF\surface_curve.associated_geometry[2]); -END_ENTITY; -(* USED FROM (iso13584_expressions_schema); *) -ENTITY minus_expression -SUBTYPE OF (binary_numeric_expression); -END_ENTITY; -(* USED FROM (application_context_schema); *) - ENTITY product_concept_context - SUBTYPE OF (application_context_element); - market_segment_type : label; - END_ENTITY; -(* USED FROM (document_schema); *) - ENTITY document_usage_constraint; - source : document; - subject_element : label; - subject_element_value : text; - END_ENTITY; -(* USED FROM (Tagged_text_representation_mim); *) -ENTITY included_text_block - SUBTYPE of (mapped_item); - WHERE - WR1 : 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.STRUCTURED_TEXT_REPRESENTATION' IN TYPEOF(SELF\mapped_item.mapping_source.mapped_representation); -END_ENTITY; -(* USED FROM (Tagged_text_representation_mim); *) -ENTITY structured_text_composition - SUBTYPE OF (compound_representation_item); -END_ENTITY; -(* USED FROM (Tagged_text_representation_mim); *) -ENTITY structured_text_representation - SUBTYPE OF (representation); - SELF\Representation.items : SET [1:?] OF string_representation_item_select; -END_ENTITY; -(* USED FROM (Tagged_text_representation_mim); *) -ENTITY tagged_text_item - SUBTYPE OF (descriptive_representation_item); -END_ENTITY; -(* USED FROM (Tagged_text_representation_mim); *) -ENTITY tagged_text_format - SUBTYPE OF (representation_context); -END_ENTITY; -(* USED FROM (Tagged_text_representation_mim); *) -ENTITY uniform_resource_identifier - SUBTYPE OF (descriptive_representation_item); -END_ENTITY; -(* USED FROM (Property_as_definition_mim); *) -ENTITY single_property_is_definition - SUBTYPE OF (property_definition); - SELF\property_definition.definition : product_definition; -UNIQUE - UR1: SELF\property_definition.definition; -END_ENTITY; -(* USED FROM (Property_as_definition_mim); *) -ENTITY representation_proxy_item -SUBTYPE OF (representation_item); --- item : representation_proxy_select; -END_ENTITY; -(* USED FROM (date_time_schema); *) -ENTITY time_interval; - id : identifier; - name : label; - description : OPTIONAL text; -END_ENTITY; -(* USED FROM (date_time_schema); *) -ENTITY time_interval_relationship; - name : label; - description : OPTIONAL text; - relating_time_interval : time_interval; - related_time_interval : time_interval; -END_ENTITY; -(* USED FROM (geometric_model_schema); *) -ENTITY half_space_solid - SUBTYPE OF (geometric_representation_item); - base_surface : surface; - agreement_flag : BOOLEAN; -END_ENTITY; -(* USED FROM (kinematic_property_schema); *) -ENTITY product_definition_relationship_kinematics - SUBTYPE OF (property_definition); - SELF\property_definition.definition : product_definition_relationship; -UNIQUE - UR1 : definition; -END_ENTITY; -(* USED FROM (kinematic_property_schema); *) -ENTITY context_dependent_kinematic_link_representation; - representation_relation : kinematic_link_representation_association; - represented_product_relation : product_definition_relationship_kinematics; -END_ENTITY; -(* USED FROM (geometric_model_schema); *) -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; -(* USED FROM (iso13584_expressions_schema); *) -ENTITY int_numeric_variable -SUBTYPE OF (numeric_variable); -END_ENTITY; -(* USED FROM (kinematic_structure_schema); *) -ENTITY sliding_surface_pair - SUBTYPE OF (surface_pair); -END_ENTITY; -(* USED FROM (kinematic_structure_schema); *) -ENTITY planar_pair_with_range - SUBTYPE OF (planar_pair); - lower_limit_actual_rotation : OPTIONAL plane_angle_measure; - upper_limit_actual_rotation : OPTIONAL plane_angle_measure; - lower_limit_actual_translation_x : OPTIONAL length_measure; - upper_limit_actual_translation_x : OPTIONAL length_measure; - lower_limit_actual_translation_y : OPTIONAL length_measure; - upper_limit_actual_translation_y : OPTIONAL length_measure; -WHERE - WR1: (NOT EXISTS(lower_limit_actual_rotation) - OR - NOT EXISTS(upper_limit_actual_rotation)) - XOR - (lower_limit_actual_rotation < upper_limit_actual_rotation); - WR2: (NOT EXISTS(lower_limit_actual_translation_x) - OR - NOT EXISTS(upper_limit_actual_translation_x)) - XOR - (lower_limit_actual_translation_x < upper_limit_actual_translation_x); - WR3: (NOT EXISTS(lower_limit_actual_translation_y) - OR - NOT EXISTS(upper_limit_actual_translation_y)) - XOR - (lower_limit_actual_translation_y < upper_limit_actual_translation_y); -END_ENTITY; -(* USED FROM (iso13584_expressions_schema); *) -ENTITY expression - ABSTRACT SUPERTYPE OF (ONEOF ( - NUMERIC_EXPRESSION, - BOOLEAN_EXPRESSION, - STRING_EXPRESSION)) - -SUBTYPE OF (generic_expression); -END_ENTITY; -(* USED FROM (kinematic_structure_schema); *) -ENTITY rolling_curve_pair - SUBTYPE OF (planar_curve_pair); -END_ENTITY; -(* USED FROM (kinematic_structure_schema); *) -ENTITY homokinetic_pair - SUBTYPE OF (universal_pair); -WHERE - WR1: NOT EXISTS(SELF.input_skew_angle); -END_ENTITY; -(* USED FROM (kinematic_structure_schema); *) -ENTITY spherical_pair_with_pin_and_range - SUBTYPE OF (spherical_pair_with_pin); - lower_limit_yaw : OPTIONAL plane_angle_measure; - upper_limit_yaw : OPTIONAL plane_angle_measure; - lower_limit_roll : OPTIONAL plane_angle_measure; - upper_limit_roll : OPTIONAL plane_angle_measure; -WHERE - WR1: (NOT EXISTS(lower_limit_yaw) - OR - NOT EXISTS(upper_limit_yaw)) - XOR - (lower_limit_yaw < upper_limit_yaw); - WR2: (NOT EXISTS(lower_limit_roll) - OR - NOT EXISTS(upper_limit_roll)) - XOR - (lower_limit_roll < upper_limit_roll); -END_ENTITY; -(* USED FROM (External_class_mim); *) - ENTITY external_class_library - SUBTYPE OF (external_source); - END_ENTITY; -(* USED FROM (External_class_mim); *) - ENTITY externally_defined_class - SUBTYPE OF (class, externally_defined_item); - END_ENTITY; -(* USED FROM (mathematical_functions_schema); *) -ENTITY integer_interval_from_min - SUBTYPE OF (maths_space, generic_literal); - min : INTEGER; -END_ENTITY; -(* USED FROM (kinematic_structure_schema); *) -ENTITY spherical_pair_with_pin - SUBTYPE OF (low_order_kinematic_pair); -DERIVE - SELF\low_order_kinematic_pair.t_x : BOOLEAN := FALSE; - SELF\low_order_kinematic_pair.t_y : BOOLEAN := FALSE; - SELF\low_order_kinematic_pair.t_z : BOOLEAN := FALSE; - SELF\low_order_kinematic_pair.r_x : BOOLEAN := FALSE; - SELF\low_order_kinematic_pair.r_y : BOOLEAN := TRUE; - SELF\low_order_kinematic_pair.r_z : BOOLEAN := TRUE; -END_ENTITY; -(* USED FROM (Name_assignment_mim); *) -ENTITY applied_name_assignment - SUBTYPE OF (name_assignment); - item : name_item; -END_ENTITY; -(* USED FROM (mathematical_functions_schema); *) -ENTITY maths_space - ABSTRACT SUPERTYPE OF (ONEOF ( - ELEMENTARY_SPACE, - FINITE_INTEGER_INTERVAL, - INTEGER_INTERVAL_FROM_MIN, - INTEGER_INTERVAL_TO_MAX, - FINITE_REAL_INTERVAL, - REAL_INTERVAL_FROM_MIN, - REAL_INTERVAL_TO_MAX, - CARTESIAN_COMPLEX_NUMBER_REGION, - POLAR_COMPLEX_NUMBER_REGION, - FINITE_SPACE, - UNIFORM_PRODUCT_SPACE, - LISTED_PRODUCT_SPACE, - EXTENDED_TUPLE_SPACE, - FUNCTION_SPACE)) - SUBTYPE OF (generic_expression); -END_ENTITY; -(* USED FROM (mathematical_functions_schema); *) -ENTITY real_interval_from_min - SUBTYPE OF (maths_space, generic_literal); - min : REAL; - min_closure : open_closed; -END_ENTITY; -(* USED FROM (mathematical_functions_schema); *) -ENTITY real_interval_to_max - SUBTYPE OF (maths_space, generic_literal); - max : REAL; - max_closure : open_closed; -END_ENTITY; -(* USED FROM (Contract_mim); *) -ENTITY applied_contract_assignment - SUBTYPE OF (contract_assignment); - items : SET[1:?] OF contract_item; -END_ENTITY; -(* USED FROM (kinematic_structure_schema); *) -ENTITY spherical_pair_with_range - SUBTYPE OF (spherical_pair); - lower_limit_yaw : OPTIONAL plane_angle_measure; - upper_limit_yaw : OPTIONAL plane_angle_measure; - lower_limit_pitch : OPTIONAL plane_angle_measure; - upper_limit_pitch : OPTIONAL plane_angle_measure; - lower_limit_roll : OPTIONAL plane_angle_measure; - upper_limit_roll : OPTIONAL plane_angle_measure; -WHERE - WR1: (NOT EXISTS(lower_limit_yaw) - OR - NOT EXISTS(upper_limit_yaw)) - XOR - (lower_limit_yaw < upper_limit_yaw); - WR2: (NOT EXISTS(lower_limit_pitch) - OR - NOT EXISTS(upper_limit_pitch)) - XOR - (lower_limit_pitch < upper_limit_pitch); - WR3: (NOT EXISTS(lower_limit_roll) - OR - NOT EXISTS(upper_limit_roll)) - XOR - (lower_limit_roll < upper_limit_roll); -END_ENTITY; -(* USED FROM (parameterization_schema); *) -ENTITY variational_parameter - ABSTRACT SUPERTYPE OF (ONEOF ( - BOUND_VARIATIONAL_PARAMETER, - UNBOUND_VARIATIONAL_PARAMETER)) - SUBTYPE OF (variational_representation_item, maths_variable); - parameter_description : OPTIONAL text; - parameter_current_value : maths_value; -WHERE - WR1 : member_of(parameter_current_value, - SELF\maths_variable.values_space); - WR2 : SELF\maths_variable.name = SELF\representation_item.name; -END_ENTITY; -(* USED FROM (contract_schema); *) - ENTITY contract_relationship; - id : identifier; - name : label; - description : OPTIONAL text; - relating_contract : contract; - related_contract : contract; - END_ENTITY; -(* USED FROM (parameterization_schema); *) -ENTITY unbound_variational_parameter - SUBTYPE OF (variational_parameter); -WHERE - WR1: 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.UNBOUND_PARAMETER_ENVIRONMENT' - IN TYPEOF(SELF\generic_variable.interpretation); -END_ENTITY; -(* USED FROM (parameterization_schema); *) -ENTITY bound_parameter_environment - SUBTYPE OF (environment); -WHERE - WR1: ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.BOUND_VARIATIONAL_PARAMETER' IN - TYPEOF(SELF\environment.syntactic_representation)) AND - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.INSTANCE_ATTRIBUTE_REFERENCE' IN - TYPEOF(SELF\environment.semantics)); -END_ENTITY; -(* USED FROM (management_resources_schema); *) - ENTITY contract_assignment - ABSTRACT SUPERTYPE; - assigned_contract : contract; - DERIVE - role : object_role := get_role(SELF); - WHERE - WR1: SIZEOF(USEDIN(SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'ROLE_ASSOCIATION.ITEM_WITH_ROLE')) <= 1; - END_ENTITY; -(* USED FROM (Security_classification_mim); *) -ENTITY applied_security_classification_assignment - SUBTYPE OF (security_classification_assignment); - items : SET [1:?] OF security_classification_item; -END_ENTITY; -(* USED FROM (kinematic_structure_schema); *) -ENTITY prismatic_pair - SUBTYPE OF (low_order_kinematic_pair); -DERIVE - SELF\low_order_kinematic_pair.t_x : BOOLEAN := TRUE; - SELF\low_order_kinematic_pair.t_y : BOOLEAN := FALSE; - SELF\low_order_kinematic_pair.t_z : BOOLEAN := FALSE; - SELF\low_order_kinematic_pair.r_x : BOOLEAN := FALSE; - SELF\low_order_kinematic_pair.r_y : BOOLEAN := FALSE; - SELF\low_order_kinematic_pair.r_z : BOOLEAN := FALSE; -END_ENTITY; -(* USED FROM (Work_request_mim); *) -ENTITY applied_action_request_assignment -SUBTYPE OF (action_request_assignment); - items : SET [1 : ?] OF action_request_item; -END_ENTITY; -(* USED FROM (parameterization_schema); *) -ENTITY generated_finite_numeric_space - SUBTYPE OF (finite_space); - start_value : maths_number; - increment_value : maths_number; - increment_number : positive_integer; -DERIVE - SELF\finite_space.members : SET [2:?] OF maths_number - := make_numeric_set(start_value, increment_value, increment_number); -WHERE - WR1: increment_value <> 0.0; -END_ENTITY; -(* USED FROM (configuration_management_schema); *) -ENTITY configuration_effectivity - SUBTYPE OF (product_definition_effectivity); - configuration : configuration_design; -UNIQUE - UR1: configuration, - SELF\product_definition_effectivity.usage, - SELF\effectivity.id; -WHERE - WR1: 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PRODUCT_DEFINITION_USAGE' IN - TYPEOF (SELF\product_definition_effectivity.usage); -END_ENTITY; -(* USED FROM (kinematic_structure_schema); *) -ENTITY prismatic_pair_with_range - SUBTYPE OF (prismatic_pair); - lower_limit_actual_translation : OPTIONAL length_measure; - upper_limit_actual_translation : OPTIONAL length_measure; -WHERE - WR1: (NOT EXISTS(lower_limit_actual_translation) - OR - NOT EXISTS(upper_limit_actual_translation)) - XOR - (lower_limit_actual_translation < upper_limit_actual_translation); -END_ENTITY; -(* USED FROM (kinematic_structure_schema); *) -ENTITY revolute_pair - SUBTYPE OF (low_order_kinematic_pair); -DERIVE - SELF\low_order_kinematic_pair.t_x : BOOLEAN := FALSE; - SELF\low_order_kinematic_pair.t_y : BOOLEAN := FALSE; - SELF\low_order_kinematic_pair.t_z : BOOLEAN := FALSE; - SELF\low_order_kinematic_pair.r_x : BOOLEAN := FALSE; - SELF\low_order_kinematic_pair.r_y : BOOLEAN := FALSE; - SELF\low_order_kinematic_pair.r_z : BOOLEAN := TRUE; -END_ENTITY; -(* USED FROM (management_resources_schema); *) - ENTITY document_usage_role; - name : label; - description : OPTIONAL text; - END_ENTITY; -(* USED FROM (geometric_model_schema); *) -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; -(* USED FROM (geometric_model_schema); *) -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; -(* USED FROM (presentation_definition_schema); *) - ENTITY annotation_occurrence_relationship; - name : label; - description : text; - relating_annotation_occurrence : annotation_occurrence; - related_annotation_occurrence : annotation_occurrence; - END_ENTITY; -(* USED FROM (geometric_model_schema); *) -ENTITY sphere - SUBTYPE OF (geometric_representation_item); - radius : positive_length_measure; - centre : point; -END_ENTITY; -(* USED FROM (presentation_organization_schema); *) - ENTITY camera_model - ABSTRACT SUPERTYPE OF (ONEOF ( - CAMERA_MODEL_D2, - CAMERA_MODEL_D3)) - SUBTYPE OF (geometric_representation_item); - WHERE - WR1: (SIZEOF (USEDIN (SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + - 'ITEM_DEFINED_TRANSFORMATION.' + - 'TRANSFORM_ITEM_1')) + - SIZEOF (USEDIN (SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + - 'REPRESENTATION_MAP.MAPPING_ORIGIN')) - ) > 0; - WR2: SIZEOF(USEDIN(SELF,'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.'+ - 'STYLED_ITEM.ITEM')) = 0; - END_ENTITY; -(* USED FROM (iso13584_expressions_schema); *) -ENTITY comparison_not_equal - SUBTYPE OF (comparison_expression); -END_ENTITY; -(* USED FROM (iso13584_expressions_schema); *) -ENTITY comparison_less_equal -SUBTYPE OF (comparison_expression); -END_ENTITY; -(* USED FROM (geometric_model_schema); *) -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; -(* USED FROM (shape_aspect_definition_schema); *) -ENTITY shape_representation_with_parameters - SUBTYPE OF (shape_representation); - SELF\representation.items : SET[1:?] OF shape_representation_with_parameters_items; -END_ENTITY; -(* USED FROM (topology_schema); *) - 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 ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.ORIENTED_FACE' IN TYPEOF (SELF.face_element)); - END_ENTITY; -(* USED FROM (aic_draughting_elements); *) -ENTITY angular_dimension - SUBTYPE OF (dimension_curve_directed_callout); -END_ENTITY; -(* USED FROM (kinematic_structure_schema); *) -ENTITY revolute_pair_with_range - SUBTYPE OF (revolute_pair); - lower_limit_actual_rotation : OPTIONAL plane_angle_measure; - upper_limit_actual_rotation : OPTIONAL plane_angle_measure; -WHERE - WR1: (NOT EXISTS(lower_limit_actual_rotation) - OR - NOT EXISTS(upper_limit_actual_rotation)) - XOR - (lower_limit_actual_rotation < upper_limit_actual_rotation); -END_ENTITY; -(* USED FROM (assembly_feature_relationship_schema); *) -ENTITY free_kinematic_motion_representation - SUBTYPE OF (representation_relationship_with_transformation); -SELF\representation_relationship.rep_1: - representative_shape_representation; -SELF\representation_relationship.rep_2: - representative_shape_representation; - motion : kinematic_path; -WHERE -WR1: 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.ITEM_DEFINED_TRANSFORMATION' IN TYPEOF - (SELF\representation_relationship_with_transformation. - transformation_operator); -WR2: ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.GEOMETRIC_REPRESENTATION_ITEM' IN TYPEOF - (SELF\representation_relationship_with_transformation. - transformation_operator\item_defined_transformation.transform_item_1)) AND - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.GEOMETRIC_REPRESENTATION_ITEM' IN TYPEOF - (SELF\representation_relationship_with_transformation. - transformation_operator\item_defined_transformation.transform_item_2)); -WR3: ((dimension_of - (SELF\representation_relationship_with_transformation. - transformation_operator\item_defined_transformation. - transform_item_1) = 3 ) AND - (dimension_of - (SELF\representation_relationship_with_transformation. - transformation_operator\item_defined_transformation. - transform_item_2) = 3 )); -WR4:(SELF\representation_relationship.rep_1 IN - (using_representations - (SELF\representation_relationship_with_transformation. - transformation_operator\item_defined_transformation.transform_item_1) + - using_representation_with_mapping - (SELF\representation_relationship_with_transformation. - transformation_operator\item_defined_transformation.transform_item_1))) AND - (SELF\representation_relationship.rep_2 IN - (using_representations - (SELF\representation_relationship_with_transformation. - transformation_operator\item_defined_transformation.transform_item_2) + - using_representation_with_mapping - (SELF\representation_relationship_with_transformation. - transformation_operator\item_defined_transformation.transform_item_2))); -END_ENTITY; -- free_kinematic_motion_representation -(* USED FROM (kinematic_structure_schema); *) -ENTITY kinematic_link_representation_association - SUBTYPE OF (representation_relationship); - SELF\representation_relationship.rep_1 : kinematic_link_representation; - SELF\representation_relationship.rep_2 : shape_representation; -WHERE - WR1: (SELF\representation_relationship.rep_2.context_of_items :=: - SELF\representation_relationship.rep_1.context_of_items) OR - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.REPRESENTATION_RELATIONSHIP_WITH_TRANSFORMATION' IN TYPEOF(SELF)); -END_ENTITY; -(* USED FROM (aic_draughting_elements); *) -ENTITY datum_feature_callout - SUBTYPE OF (draughting_callout); -END_ENTITY; -(* USED FROM (aic_draughting_elements); *) -ENTITY datum_target_callout - SUBTYPE OF (draughting_callout); -END_ENTITY; -(* USED FROM (kinematic_motion_representation_schema); *) -ENTITY interpolated_configuration_segment - SUBTYPE OF (founded_item); - state : mechanism_state_representation; - t_parameter : parameter_value; - interpolation : interpolation_type; -END_ENTITY; -(* USED FROM (aic_draughting_elements); *) -ENTITY diameter_dimension - SUBTYPE OF (dimension_curve_directed_callout); -END_ENTITY; -(* USED FROM (kinematic_motion_representation_schema); *) -ENTITY item_link_motion_relationship - SUBTYPE OF (link_motion_relationship); - SELF\representation_relationship.rep_1 : shape_representation; - item : geometric_representation_item; -END_ENTITY; -(* USED FROM (kinematic_motion_representation_schema); *) -ENTITY link_motion_transformation - SUBTYPE OF (item_defined_transformation); - SELF\item_defined_transformation.transform_item_1 : rigid_placement; - SELF\item_defined_transformation.transform_item_2 : kinematic_path; -END_ENTITY; -(* USED FROM (kinematic_motion_representation_schema); *) -ENTITY link_motion_representation_along_path - SUPERTYPE OF (ONEOF ( - PRESCRIBED_PATH, - RESULTING_PATH) ) - SUBTYPE OF (representation); - SELF\representation.items : SET [1:?] OF kinematic_path; - SELF\representation.context_of_items : geometric_representation_context_with_parameter; -END_ENTITY; -(* USED FROM (aic_draughting_elements); *) -ENTITY dimension_callout_relationship - SUBTYPE OF (draughting_callout_relationship); -WHERE - WR1: SELF.name IN ['primary', 'secondary']; - WR2: SIZEOF (TYPEOF (SELF.relating_draughting_callout) * - ['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.ANGULAR_DIMENSION', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CURVE_DIMENSION', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.DIAMETER_DIMENSION', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LEADER_DIRECTED_DIMENSION', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LINEAR_DIMENSION', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.ORDINATE_DIMENSION', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.RADIUS_DIMENSION'])>=1; - WR3: SIZEOF (TYPEOF (SELF.related_draughting_callout) * - ['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.DIMENSION_CURVE_DIRECTED_CALLOUT', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROJECTION_DIRECTED_CALLOUT', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LEADER_DIRECTED_CALLOUT']) = 0; - WR4: SELF.related_draughting_callout.contents * - SELF.relating_draughting_callout.contents = - SELF.related_draughting_callout.contents; -END_ENTITY; -(* USED FROM (iso13584_expressions_schema); *) -ENTITY comparison_greater_equal -SUBTYPE OF (comparison_expression); -END_ENTITY; -(* USED FROM (iso13584_expressions_schema); *) -ENTITY comparison_greater -SUBTYPE OF (comparison_expression); -END_ENTITY; -(* USED FROM (iso13584_expressions_schema); *) -ENTITY comparison_less -SUBTYPE OF (comparison_expression); -END_ENTITY; -(* USED FROM (kinematic_structure_schema); *) -ENTITY pair_representation_relationship - SUBTYPE OF (geometric_representation_item, representation_relationship_with_transformation); - SELF\representation_relationship.rep_1 : kinematic_link_representation; - SELF\representation_relationship.rep_2 : kinematic_link_representation; - SELF\representation_relationship_with_transformation.transformation_operator : kinematic_pair; -WHERE - WR1: transformation_operator\item_defined_transformation.transform_item_1 IN rep_1.items; - WR2: transformation_operator\item_defined_transformation.transform_item_2 IN rep_2.items; - WR3: rep_1\kinematic_link_representation.represented_link = transformation_operator\kinematic_pair.joint.edge_start; - WR4: rep_2\kinematic_link_representation.represented_link = transformation_operator\kinematic_pair.joint.edge_end; -END_ENTITY; -(* USED FROM (aic_draughting_elements); *) -ENTITY dimension_pair - SUBTYPE OF (draughting_callout_relationship); -WHERE - WR1: SELF.name IN ['chained', 'parallel']; - WR2: SIZEOF (TYPEOF (SELF.relating_draughting_callout) * - ['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.ANGULAR_DIMENSION', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CURVE_DIMENSION', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.DIAMETER_DIMENSION', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LINEAR_DIMENSION', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.ORDINATE_DIMENSION', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.RADIUS_DIMENSION'])=1; - WR3: SIZEOF (TYPEOF (SELF.related_draughting_callout) * - ['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.ANGULAR_DIMENSION', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CURVE_DIMENSION', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.DIAMETER_DIMENSION', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LINEAR_DIMENSION', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.ORDINATE_DIMENSION', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.RADIUS_DIMENSION'])=1; -END_ENTITY; -(* USED FROM (kinematic_motion_representation_schema); *) -ENTITY path_parameter_representation_context - SUBTYPE OF (geometric_representation_context, parametric_representation_context); -END_ENTITY; -(* USED FROM (iso13584_expressions_schema); *) -ENTITY unary_boolean_expression - ABSTRACT SUPERTYPE OF (ONEOF ( - NOT_EXPRESSION, - ODD_FUNCTION)) - -SUBTYPE OF (boolean_expression, unary_generic_expression); -END_ENTITY; -(* USED FROM (iso13584_expressions_schema); *) -ENTITY xor_expression -SUBTYPE OF (binary_boolean_expression); - SELF\binary_generic_expression.operands: - LIST [2:2] OF boolean_expression; -END_ENTITY; -(* USED FROM (aic_draughting_elements); *) -ENTITY geometrical_tolerance_callout - SUBTYPE OF (draughting_callout); -END_ENTITY; -(* USED FROM (iso13584_expressions_schema); *) -ENTITY comparison_equal -SUBTYPE OF (comparison_expression); -END_ENTITY; -(* USED FROM (kinematic_motion_representation_schema); *) -ENTITY curve_based_path - SUBTYPE OF (path_node); - path_curve : curve; -END_ENTITY; -(* USED FROM (kinematic_motion_representation_schema); *) -ENTITY curve_based_path_with_orientation - SUBTYPE OF (kinematic_path_segment); - position_curve : bounded_curve; - orientation_curve : bounded_curve; -WHERE - WR1: TYPEOF(position_curve) = TYPEOF(orientation_curve); -END_ENTITY; -(* USED FROM (iso13584_expressions_schema); *) -ENTITY comparison_expression - ABSTRACT SUPERTYPE OF (ONEOF ( - COMPARISON_EQUAL, - COMPARISON_GREATER, - COMPARISON_GREATER_EQUAL, - COMPARISON_LESS, - COMPARISON_LESS_EQUAL, - COMPARISON_NOT_EQUAL, - LIKE_EXPRESSION)) - -SUBTYPE OF (boolean_expression, binary_generic_expression); - SELF\binary_generic_expression.operands : LIST [2:2] OF expression; -WHERE - WR1: (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.NUMERIC_EXPRESSION' -IN TYPEOF(SELF\binary_generic_expression.operands[1])) - AND - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.NUMERIC_EXPRESSION' -IN TYPEOF(SELF\binary_generic_expression.operands[2]))) -OR - (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.BOOLEAN_EXPRESSION' -IN TYPEOF(SELF\binary_generic_expression.operands[1])) - AND - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.BOOLEAN_EXPRESSION' - IN TYPEOF(SELF\binary_generic_expression.operands[2]))) -OR -(('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.STRING_EXPRESSION' -IN TYPEOF(SELF\binary_generic_expression.operands[1])) - AND - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.STRING_EXPRESSION' -IN TYPEOF(SELF\binary_generic_expression.operands[2]))) ; -END_ENTITY; -(* USED FROM (iso13584_expressions_schema); *) -ENTITY boolean_expression - ABSTRACT SUPERTYPE OF (ONEOF ( - SIMPLE_BOOLEAN_EXPRESSION, - UNARY_BOOLEAN_EXPRESSION, - BINARY_BOOLEAN_EXPRESSION, - MULTIPLE_ARITY_BOOLEAN_EXPRESSION, - COMPARISON_EXPRESSION, - INTERVAL_EXPRESSION, - BOOLEAN_DEFINED_FUNCTION)) - -SUBTYPE OF (expression); -END_ENTITY; -(* USED FROM (iso13584_expressions_schema); *) -ENTITY boolean_defined_function - ABSTRACT SUPERTYPE - -SUBTYPE OF (defined_function, boolean_expression); -END_ENTITY ; -(* USED FROM (Physical_breakdown_mim); *) - ENTITY physical_breakdown_context - SUBTYPE OF (breakdown_context); - END_ENTITY; -(* USED FROM (Physical_breakdown_mim); *) - ENTITY physical_element_usage - SUBTYPE OF (breakdown_element_usage); - END_ENTITY; -(* USED FROM (Product_breakdown_mim); *) - ENTITY breakdown_context - SUBTYPE OF (product_definition_relationship); - END_ENTITY; -(* USED FROM (Product_breakdown_mim); *) - ENTITY breakdown_element_group_assignment - SUBTYPE OF (group_assignment); - SELF\group_assignment.assigned_group : product_definition_element_relationship; - items : SET[1:1] OF product_definition_or_breakdown_element_usage; - END_ENTITY; -(* USED FROM (Product_breakdown_mim); *) - ENTITY breakdown_element_realization - SUBTYPE OF (characterized_object, product_definition_element_relationship); - END_ENTITY; -(* USED FROM (aic_draughting_elements); *) -ENTITY ordinate_dimension - SUBTYPE OF (projection_directed_callout); -END_ENTITY; -(* USED FROM (Product_breakdown_mim); *) - ENTITY breakdown_of - SUBTYPE OF (product_definition_relationship); - END_ENTITY; -(* USED FROM (iso13584_expressions_schema); *) -(* Pruned SUPERTYPE *) -ENTITY binary_function_call - ABSTRACT SUPERTYPE - -SUBTYPE OF (binary_numeric_expression); -END_ENTITY; -(* USED FROM (Product_breakdown_mim); *) - ENTITY product_definition_group_assignment - SUBTYPE OF (group_assignment); - SELF\group_assignment.assigned_group : product_definition_element_relationship; - items : SET[1:1] OF product_definition_or_product_definition_relationship; - END_ENTITY; -(* USED FROM (Specification_based_configuration_mim); *) -ENTITY configured_effectivity_context_assignment -SUBTYPE OF (effectivity_context_assignment); - SELF\effectivity_context_assignment.assigned_effectivity_assignment: configured_effectivity_assignment; - items : SET [1:?] OF configured_effectivity_context_item; -WHERE -WR1: SIZEOF(SELF.items) = 1; -END_ENTITY; -(* USED FROM (iso13584_expressions_schema); *) -ENTITY binary_numeric_expression - ABSTRACT SUPERTYPE OF (ONEOF ( - MINUS_EXPRESSION, - DIV_EXPRESSION, - MOD_EXPRESSION, - SLASH_EXPRESSION, - POWER_EXPRESSION, - BINARY_FUNCTION_CALL)) - -SUBTYPE OF (numeric_expression, binary_generic_expression); - SELF\binary_generic_expression.operands : LIST [2:2] OF - numeric_expression; -END_ENTITY; -(* USED FROM (iso13584_expressions_schema); *) -ENTITY and_expression -SUBTYPE OF (multiple_arity_boolean_expression); -END_ENTITY; -(* USED FROM (iso13584_expressions_schema); *) -ENTITY numeric_variable -SUPERTYPE OF (ONEOF ( - INT_NUMERIC_VARIABLE, - REAL_NUMERIC_VARIABLE)) - -SUBTYPE OF (simple_numeric_expression, variable); -WHERE - WR1: ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.INT_NUMERIC_VARIABLE' - IN TYPEOF(SELF) ) OR - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.REAL_NUMERIC_VARIABLE' - IN TYPEOF(SELF) ); -END_ENTITY; -(* USED FROM (aic_draughting_elements); *) -ENTITY linear_dimension - SUBTYPE OF (dimension_curve_directed_callout); -END_ENTITY; -(* USED FROM (iso13584_expressions_schema); *) -ENTITY multiple_arity_function_call - ABSTRACT SUPERTYPE OF (ONEOF ( - MAXIMUM_FUNCTION, - MINIMUM_FUNCTION)) - -SUBTYPE OF (multiple_arity_numeric_expression); -END_ENTITY; -(* USED FROM (iso13584_expressions_schema); *) -ENTITY binary_boolean_expression - ABSTRACT SUPERTYPE OF (ONEOF ( - XOR_EXPRESSION, - EQUALS_EXPRESSION)) - -SUBTYPE OF (boolean_expression, binary_generic_expression); -END_ENTITY; -(* USED FROM (Product_class_mim); *) -ENTITY product_concept_feature_category_usage - SUBTYPE OF (group_assignment); - SELF\group_assignment.assigned_group : product_concept_feature_category; - items : SET [1:?] OF category_usage_item; -WHERE -WR1 : SELF.role.name IN [ 'mandatory category usage', 'optional category usage' ]; -END_ENTITY; -(* USED FROM (presentation_appearance_schema); *) - ENTITY curve_style_font_and_scaling - SUBTYPE OF (founded_item); - name : label; - curve_font : curve_style_font_select; - curve_font_scaling : REAL; - END_ENTITY; -(* USED FROM (presentation_organization_schema); *) - ENTITY camera_usage - SUBTYPE OF (representation_map); - SELF\representation_map.mapping_origin : camera_model; - WHERE - WR1: NOT ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PRESENTATION_REPRESENTATION' - IN TYPEOF(SELF\representation_map.mapped_representation)); - END_ENTITY; -(* USED FROM (product_concept_schema); *) -ENTITY product_concept_feature_association; - name : label; - description : OPTIONAL text; - concept : product_concept; - feature : product_concept_feature; -END_ENTITY; -(* USED FROM (iso13584_expressions_schema); *) -ENTITY mod_expression -SUBTYPE OF (binary_numeric_expression); -END_ENTITY; -(* USED FROM (iso13584_expressions_schema); *) -ENTITY multiple_arity_boolean_expression - ABSTRACT SUPERTYPE OF (ONEOF ( - AND_EXPRESSION, - OR_EXPRESSION)) - -SUBTYPE OF (boolean_expression, multiple_arity_generic_expression); - SELF\multiple_arity_generic_expression.operands : -LIST [2:?] OF boolean_expression; -END_ENTITY; -(* USED FROM (iso13584_expressions_schema); *) -ENTITY literal_number - ABSTRACT SUPERTYPE OF (ONEOF ( - INT_LITERAL, - REAL_LITERAL)) - -SUBTYPE OF (simple_numeric_expression, generic_literal); - the_value: NUMBER; -END_ENTITY; -(* USED FROM (presentation_appearance_schema); *) - ENTITY surface_style_usage - SUBTYPE OF (founded_item); - side : surface_side; - style : surface_side_style_select; - END_ENTITY; -(* USED FROM (presentation_appearance_schema); *) - ENTITY surface_style_silhouette - SUBTYPE OF (founded_item); - style_of_silhouette : curve_or_render; - END_ENTITY; -(* USED FROM (presentation_appearance_schema); *) - ENTITY curve_style_font_pattern - SUBTYPE OF (founded_item); - visible_segment_length : positive_length_measure; - invisible_segment_length : positive_length_measure; - END_ENTITY; -(* USED FROM (presentation_appearance_schema); *) - 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; -(* USED FROM (presentation_appearance_schema); *) - ENTITY surface_style_fill_area - SUBTYPE OF (founded_item); - fill_area : fill_area_style; - END_ENTITY; -(* USED FROM (presentation_appearance_schema); *) - ENTITY surface_style_segmentation_curve - SUBTYPE OF (founded_item); - style_of_segmentation_curve : curve_or_render; - END_ENTITY; -(* USED FROM (geometric_model_schema); *) -ENTITY boxed_half_space - SUBTYPE OF (half_space_solid); - enclosure : box_domain; -END_ENTITY; -(* USED FROM (presentation_appearance_schema); *) - ENTITY context_dependent_invisibility - SUBTYPE OF (invisibility); - presentation_context : invisibility_context; - END_ENTITY; -(* USED FROM (iso13584_expressions_schema); *) -ENTITY div_expression -SUBTYPE OF (binary_numeric_expression); -END_ENTITY; -(* USED FROM (iso13584_expressions_schema); *) -ENTITY equals_expression -SUBTYPE OF (binary_boolean_expression); -END_ENTITY; -(* USED FROM (presentation_appearance_schema); *) - ENTITY externally_defined_curve_font - SUBTYPE OF (externally_defined_item); - END_ENTITY; -(* USED FROM (presentation_appearance_schema); *) - ENTITY surface_style_rendering; - rendering_method : shading_surface_method; - surface_colour : colour; - END_ENTITY; -(* USED FROM (presentation_appearance_schema); *) - ENTITY surface_style_control_grid - SUBTYPE OF (founded_item); - style_of_control_grid : curve_or_render; - END_ENTITY; -(* USED FROM (external_reference_schema); *) - ENTITY pre_defined_item; - name : label; - END_ENTITY; -(* USED FROM (presentation_appearance_schema); *) - ENTITY pre_defined_tile - SUBTYPE OF (pre_defined_item); - END_ENTITY; -(* USED FROM (contract_schema); *) - ENTITY contract; - name : label; - purpose : text; - kind : contract_type; - END_ENTITY; -(* USED FROM (presentation_appearance_schema); *) - ENTITY externally_defined_tile - SUBTYPE OF (externally_defined_item); - END_ENTITY; -(* USED FROM (presentation_appearance_schema); *) - ENTITY pre_defined_surface_side_style - SUBTYPE OF (pre_defined_item); - END_ENTITY; -(* USED FROM (presentation_appearance_schema); *) - 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('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CURVE' IN TYPEOF (closed_curve))) OR - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CIRCLE' IN TYPEOF (closed_curve)) OR - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.ELLIPSE' IN TYPEOF (closed_curve)) OR - ( ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.B_SPLINE_CURVE' IN TYPEOF (closed_curve)) - AND (closed_curve\b_spline_curve.closed_curve = TRUE) ) OR - ( ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.COMPOSITE_CURVE' IN TYPEOF (closed_curve)) - AND (closed_curve\composite_curve.closed_curve = TRUE) ) OR - ( ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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; -(* USED FROM (presentation_appearance_schema); *) - ENTITY fill_area_style_tile_curve_with_style - SUBTYPE OF (geometric_representation_item); - styled_curve : annotation_curve_occurrence; - END_ENTITY; -(* USED FROM (presentation_resource_schema); *) -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; -(* USED FROM (presentation_resource_schema); *) -ENTITY colour_specification - SUBTYPE OF (colour); - name : label; -END_ENTITY; -(* USED FROM (Time_interval_assignment_mim); *) -ENTITY applied_time_interval_assignment - SUBTYPE OF (time_interval_assignment); - items : SET[0:?] OF time_interval_item; -END_ENTITY; -(* USED FROM (presentation_resource_schema); *) -ENTITY colour; -END_ENTITY; -(* USED FROM (iso13584_expressions_schema); *) -ENTITY defined_function - ABSTRACT SUPERTYPE OF ((ONEOF ( - NUMERIC_DEFINED_FUNCTION, - STRING_DEFINED_FUNCTION, - BOOLEAN_DEFINED_FUNCTION)) - ANDOR - SQL_MAPPABLE_DEFINED_FUNCTION); -END_ENTITY; -(* USED FROM (presentation_appearance_schema); *) - ENTITY surface_style_boundary - SUBTYPE OF (founded_item); - style_of_boundary : curve_or_render; - END_ENTITY; -(* USED FROM (aic_draughting_elements); *) -ENTITY curve_dimension - SUBTYPE OF (dimension_curve_directed_callout); -END_ENTITY; -(* USED FROM (presentation_appearance_schema); *) - ENTITY symbol_colour; - colour_of_symbol : colour; - END_ENTITY; -(* USED FROM (presentation_appearance_schema); *) - ENTITY symbol_style - SUBTYPE OF (founded_item); - name : label; - style_of_symbol : symbol_style_select; - END_ENTITY; -(* USED FROM (topology_schema); *) - ENTITY connected_face_sub_set - SUBTYPE OF (connected_face_set); - parent_face_set : connected_face_set; - END_ENTITY; -(* USED FROM (external_reference_schema); *) - ENTITY external_source_relationship; - name : label; - description : OPTIONAL text; - relating_source : external_source; - related_source : external_source; - END_ENTITY; -(* USED FROM (topology_schema); *) - ENTITY subedge - SUBTYPE OF (edge); - parent_edge : edge; - END_ENTITY; -(* USED FROM (presentation_organization_schema); *) - ENTITY presentation_set; - INVERSE - areas : SET [1:?] OF area_in_set FOR in_set; - END_ENTITY; -(* USED FROM (iso13584_expressions_schema); *) -ENTITY boolean_variable -SUBTYPE OF (simple_Boolean_expression, variable); -END_ENTITY; -(* USED FROM (presentation_organization_schema); *) - ENTITY presented_item_representation; - presentation : presentation_representation_select; - item : presented_item; - END_ENTITY; -(* USED FROM (presentation_organization_schema); *) - ENTITY presented_item - ABSTRACT SUPERTYPE; - END_ENTITY; -(* USED FROM (presentation_resource_schema); *) -ENTITY planar_extent - SUBTYPE OF (geometric_representation_item); - size_in_x : length_measure; - size_in_y : length_measure; -END_ENTITY; -(* USED FROM (presentation_organization_schema); *) - ENTITY background_colour - SUBTYPE OF (colour); - presentation : area_or_view; - UNIQUE - UR1: presentation; - END_ENTITY; -(* USED FROM (presentation_organization_schema); *) - ENTITY presentation_view - SUBTYPE OF (presentation_representation); - END_ENTITY; -(* USED FROM (presentation_definition_schema); *) - ENTITY symbol_representation - SUBTYPE OF (representation); - END_ENTITY; -(* USED FROM (topology_schema); *) - 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; -(* USED FROM (presentation_definition_schema); *) - ENTITY composite_text_with_associated_curves - SUBTYPE OF (composite_text); - associated_curves : SET[1:?] of curve; - END_ENTITY; -(* USED FROM (presentation_definition_schema); *) - ENTITY text_literal_with_associated_curves - SUBTYPE OF (text_literal); - associated_curves : SET[1:?] of curve; - END_ENTITY; -(* USED FROM (presentation_definition_schema); *) - ENTITY annotation_symbol - SUBTYPE OF(mapped_item); - SELF\mapped_item.mapping_source : symbol_representation_map; - SELF\mapped_item.mapping_target : symbol_target; - WHERE - WR1: 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.GEOMETRIC_REPRESENTATION_ITEM' IN - TYPEOF (SELF); - END_ENTITY; -(* USED FROM (presentation_definition_schema); *) - ENTITY defined_symbol - SUBTYPE OF(geometric_representation_item); - definition : defined_symbol_select; - target : symbol_target; - END_ENTITY; -(* USED FROM (shape_data_quality_criteria_schema); *) - ENTITY multiply_defined_placements - SUBTYPE OF(multiply_defined_geometry); - SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; - assessment_specification_2 : shape_data_quality_assessment_by_numerical_test; - WHERE - WR1 : ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + - 'SHAPE_DATA_QUALITY_UPPER_VALUE_LIMIT' - IN TYPEOF(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)) - AND ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE' - IN value_limit_type(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)); - WR2 : ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + - 'SHAPE_DATA_QUALITY_UPPER_VALUE_LIMIT' - IN TYPEOF(assessment_specification_2\shape_data_quality_assessment_by_numerical_test.threshold)) - AND ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PLANE_ANGLE_MEASURE' - IN value_limit_type(assessment_specification_2\shape_data_quality_assessment_by_numerical_test.threshold)); - WR3 : validate_measured_data_type(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.'+ - 'PLANE_ANGLE_AND_LENGTH_PAIR'); - WR4 : validate_inspected_elements_type(SELF, - ['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PLACEMENT','AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PLACEMENT']); - WR5 : validate_locations_of_extreme_value_type(SELF, - []); - WR6 : validate_accuracy_types(SELF, - []); - WR7 : SIZEOF(QUERY(sdqr <* bag_to_set(USEDIN(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.'+ - 'DATA_QUALITY_INSPECTION_RESULT.'+ - 'CRITERION_INSPECTED'))| - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.'+ - 'SHAPE_DATA_QUALITY_INSPECTION_RESULT' - IN TYPEOF(sdqr)) AND - (SIZEOF(QUERY(sdqiir <* bag_to_set(USEDIN(sdqr, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.'+ - 'DATA_QUALITY_INSPECTION_REPORT.'+ - 'INSPECTION_RESULT'))| - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.'+ - 'SHAPE_DATA_QUALITY_INSPECTION_INSTANCE_REPORT' - IN TYPEOF(sdqiir)) AND - (SIZEOF(QUERY(sdqiri <* sdqiir.inspected_instances| - (TYPEOF(sdqiri.inspected_elements[1]) - <>TYPEOF(sdqiri.inspected_elements[2])))) = 0) - )) = 0) - )) = 0; - END_ENTITY; -(* USED FROM (presentation_definition_schema); *) - 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; -(* USED FROM (geometric_model_schema); *) -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 ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.BOXED_HALF_SPACE' IN TYPEOF(item)))) = 0; -END_ENTITY; -(* USED FROM (sketch_schema); *) -ENTITY implicit_point_on_plane - ABSTRACT SUPERTYPE OF (ONEOF ( - IMPLICIT_PLANAR_INTERSECTION_POINT, - IMPLICIT_PLANAR_PROJECTION_POINT)) - SUBTYPE OF (point, auxiliary_geometric_representation_item); - using_sketch : positioned_sketch; - computed_representation - : cartesian_point; -DERIVE - plane_of_point : - plane := get_plane_of_implicit_geometry(using_sketch); -WHERE - WR1: (plane_of_point\elementary_surface.position.location = - computed_representation) XOR - (dot_product(plane_of_point\elementary_surface.position.p[3], - get_relative_direction_2points - (plane_of_point\elementary_surface.position.location, - computed_representation)) = 0); - WR2: SIZEOF(TYPEOF(computed_representation) * - ['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.IMPLICIT_POINT_ON_PLANE', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.POINT_REPLICA']) = 0; -END_ENTITY; -(* USED FROM (aic_faceted_brep); *) -ENTITY faceted_brep_shape_representation - SUBTYPE OF ( shape_representation ); - WHERE -WR1 : -SIZEOF ( -QUERY ( it <* items| NOT ( SIZEOF ([ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.FACETED_BREP', 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MAPPED_ITEM', 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.AXIS2_PLACEMENT_3D' ] * TYPEOF (it)) = 1) )) = 0; -WR2 : -SIZEOF ( -QUERY ( it <* items| ( SIZEOF ([ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.FACETED_BREP', 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MAPPED_ITEM' ] * TYPEOF (it)) = 1) )) > 0; -WR3 : -SIZEOF ( -QUERY ( fbrep <* -QUERY ( it <* items| ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.FACE_SURFACE' IN TYPEOF (fcs)) AND (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PLANE' IN TYPEOF (fcs\face_surface.face_geometry)) AND ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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| ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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| ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.FACE_OUTER_BOUND' IN TYPEOF (bnds)) )) = 1) )) = 0) )) = 0) )) = 0; -WR5 : -SIZEOF ( -QUERY ( msb <* -QUERY ( it <* items| ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MANIFOLD_SOLID_BREP' IN TYPEOF (it)) )| ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.ORIENTED_CLOSED_SHELL' IN TYPEOF (msb\manifold_solid_brep.outer)) )) = 0; -WR6 : -SIZEOF ( -QUERY ( brv <* -QUERY ( it <* items| ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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| ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MAPPED_ITEM' IN TYPEOF (it)) )| NOT ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.FACETED_BREP_SHAPE_REPRESENTATION' IN TYPEOF (mi\mapped_item.mapping_source.mapped_representation)) )) = 0; - END_ENTITY ; -(* USED FROM (presentation_definition_schema); *) - 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 ( - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CIRCLE' IN TYPEOF (curve)) OR - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.ELLIPSE' IN TYPEOF (curve)) OR - ( ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.B_SPLINE_CURVE' IN TYPEOF (curve)) - AND (curve\b_spline_curve.closed_curve = TRUE) ) OR - ( ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.COMPOSITE_CURVE' IN TYPEOF (curve)) - AND (curve\composite_curve.closed_curve = TRUE) ) OR - ( ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.POLYLINE' IN TYPEOF (curve)) - AND (curve\polyline.points[LOINDEX(curve\polyline.points)] = - curve\polyline.points[HIINDEX(curve\polyline.points)]) ) - ) )) = 0); - END_ENTITY; -(* USED FROM (presentation_definition_schema); *) - ENTITY symbol_representation_map - SUBTYPE OF (representation_map); - SELF\representation_map.mapped_representation : symbol_representation; - SELF\representation_map.mapping_origin : axis2_placement; - WHERE - WR1: SIZEOF( - QUERY(mi <* SELF\representation_map.map_usage | NOT('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.ANNOTATION_SYMBOL' IN TYPEOF(mi))) - ) = 0; - END_ENTITY; -(* USED FROM (Person_organization_mim); *) -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], 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PERSON_AND_ORGANIZATION.THE_PERSON') | pao.the_organization :=: SELF\organizational_address.organizations[1])) = 1; -END_ENTITY; -(* USED FROM (iso13584_expressions_schema); *) -ENTITY index_expression -SUBTYPE OF (string_expression, binary_generic_expression); -DERIVE - operand:generic_expression:= -SELF\binary_generic_expression.operands[1]; - index:generic_expression:= -SELF\binary_generic_expression.operands[2]; -WHERE - WR1: ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.STRING_EXPRESSION' - IN TYPEOF(operand)) - AND ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.NUMERIC_EXPRESSION' - IN TYPEOF(index)); - WR2: is_int_expr (index); -END_ENTITY; -(* USED FROM (File_identification_mim); *) -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; -(* USED FROM (explicit_geometric_constraint_schema); *) -ENTITY parallel_offset_geometric_constraint - SUBTYPE OF (explicit_geometric_constraint); - SELF\explicit_constraint.constrained_elements : - SET[1:?] OF curve_or_surface_constraint_element; - SELF\explicit_constraint.reference_elements : - SET[0:1] OF curve_or_surface_constraint_element; - offset_type : parallel_offset_type; -WHERE - WR1: NOT(((offset_type = curve_2d_offset) - OR (offset_type = curve_3d_offset)) AND - (SIZEOF(QUERY( q <* (SELF\explicit_constraint.constrained_elements - + SELF\explicit_constraint.reference_elements) | - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SURFACE' IN TYPEOF(q))) > 0)); - WR2: NOT((offset_type = surface_offset) AND (SIZEOF(QUERY( q <* - (SELF\explicit_constraint.constrained_elements + - SELF\explicit_constraint.reference_elements) | - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CURVE' IN TYPEOF(q))) > 0)); -END_ENTITY; -(* USED FROM (explicit_geometric_constraint_schema); *) -ENTITY surface_distance_geometric_constraint - SUBTYPE OF (explicit_geometric_constraint); - SELF\explicit_constraint.constrained_elements : SET[1:2] OF surface; - SELF\explicit_constraint.reference_elements : - SET[0:4] OF point_curve_or_surface_constraint_element; - near_points : SET[0:4] OF near_point_relationship; -WHERE - WR1: (SIZEOF(SELF\explicit_constraint.reference_elements) > 0) OR - (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SDGC_WITH_DIMENSION' - IN TYPEOF(SELF)) - AND (SIZEOF(SELF\explicit_constraint.constrained_elements) = 2)); - WR2: SIZEOF(near_points) <= - SIZEOF(SELF\explicit_constraint.reference_elements); - WR3: SIZEOF(QUERY(q <* near_points | NOT - (q\representation_item_relationship.relating_representation_item - IN SELF\explicit_constraint.reference_elements))) = 0; -END_ENTITY; -(* USED FROM (sketch_schema); *) -ENTITY subsketch - SUBTYPE OF (geometric_representation_item); - subsketch_elements : SET[1:?] OF sketch_element_select; - owning_sketch : sketch_type_select; -WHERE - WR1: (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.NEUTRAL_SKETCH_REPRESENTATION' - IN TYPEOF(owning_sketch)) AND (SIZEOF(QUERY(q <* - subsketch_elements | NOT (owning_sketch IN - using_representations(q)))) = 0)) - XOR - ((SIZEOF(TYPEOF(owning_sketch) * - ['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.POSITIONED_SKETCH','AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SUBSKETCH']) = 1) - AND - (SIZEOF(QUERY(q <* subsketch_elements | - NOT (owning_sketch IN using_items(q,[])))) = 0)); -END_ENTITY; -(* USED FROM (shape_data_quality_inspection_result_schema); *) - ENTITY point_on_edge_curve - SUBTYPE OF(point_on_curve); - basis_edge_curve : edge_curve; - DERIVE - SELF\point_on_curve.basis_curve : curve := SELF.basis_edge_curve.edge_geometry; - WHERE - WR1 : SIZEOF( - using_representations(SELF.basis_edge_curve) * - relating_shape_representations_of_extreme_values(SELF))>0; - END_ENTITY; -(* USED FROM (sketch_schema); *) -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 (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CURVE_BOUNDED_SURFACE' IN - TYPEOF(sketch_basis)) AND NOT ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PLANE' IN - TYPEOF(sketch_basis\curve_bounded_surface.basis_surface))); - WR2: NOT (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.FACE_SURFACE' IN TYPEOF(sketch_basis)) AND - NOT ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PLANE' IN TYPEOF(sketch_basis\face_surface.face_geometry))); - WR3: SIZEOF(QUERY(q <* auxiliary_elements | (SIZEOF(TYPEOF(q) * - ['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.POINT','AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CURVE']) = 0))) = 0; - WR4: SIZEOF(QUERY(q <* auxiliary_elements | - q\geometric_representation_item.dim <> 3)) = 0; -END_ENTITY; -(* USED FROM (variational_representation_schema); *) -ENTITY variational_current_representation_relationship - SUBTYPE OF (representation_relationship); - SELF\representation_relationship.rep_1 - : variational_representation; - current_result : representation; -UNIQUE - UR1: current_result; -WHERE - WR1: QUERY(q <* SELF\representation_relationship.rep_1.items | NOT - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.VARIATIONAL_REPRESENTATION_ITEM' - IN TYPEOF(q))) = SELF\representation_relationship.rep_2.items; - WR2: SELF\representation_relationship.rep_1.context_of_items :=: - SELF\representation_relationship.rep_2.context_of_items; - WR3: SIZEOF(QUERY(q <* SELF\representation_relationship.rep_2.items | - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.VARIATIONAL_REPRESENTATION_ITEM' - IN TYPEOF(q))) = 0; - WR4: TYPEOF(SELF\representation_relationship.rep_1) - - TYPEOF(SELF\representation_relationship.rep_2) = - ['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.VARIATIONAL_REPRESENTATION']; - WR5: current_result :=: SELF\representation_relationship.rep_2; -END_ENTITY; -(* USED FROM (variational_representation_schema); *) -ENTITY variational_representation_item - ABSTRACT SUPERTYPE OF ( - AUXILIARY_GEOMETRIC_REPRESENTATION_ITEM) - SUBTYPE OF (representation_item); -WHERE - WR1: SIZEOF(QUERY(q <* using_representations(SELF) | - NOT ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.VARIATIONAL_REPRESENTATION' - IN TYPEOF(q)))) = 0; - WR2: SIZEOF(QUERY(q <* using_representations(SELF) | - NOT (SELF IN q.items))) = 0; -END_ENTITY; -(* USED FROM (shape_data_quality_criteria_schema); *) - ENTITY open_edge_loop - SUBTYPE OF(erroneous_topology); - SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_logical_test; - WHERE - WR1 : validate_measured_data_type(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.BOOLEAN_VALUE'); - WR2 : validate_inspected_elements_type(SELF, - ['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.EDGE_LOOP']); - WR3 : validate_locations_of_extreme_value_type(SELF, - ['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.ORIENTED_EDGE']); - WR4 : validate_accuracy_types(SELF, - []); - END_ENTITY; -(* USED FROM (solid_shape_element_schema); *) -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; -(* USED FROM (qualified_measure_schema); *) -ENTITY qualified_representation_item - SUBTYPE OF (representation_item); - qualifiers : SET [1:?] OF value_qualifier; -WHERE - WR1: SIZEOF(QUERY(temp <* qualifiers | - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PRECISION_QUALIFIER' - IN TYPEOF(temp))) < 2; -END_ENTITY; -(* USED FROM (solid_shape_element_schema); *) -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: ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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; -(* USED FROM (Geometric_model_2d_3d_relationship_mim); *) -ENTITY coordinated_geometric_relationship_with_2d_3d_placement_transformation - SUBTYPE OF(shape_representation_relationship, - representation_relationship_with_transformation); - SELF\representation_relationship_with_transformation.transformation_operator : axis_placement_2d_3d_mapping; - WHERE - WR1: acyclic_representation_relationship(SELF, - [SELF\representation_relationship.rep_2], - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.'+'REPRESENTATION'); - WR2: NOT('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.DEFINITIONAL_REPRESENTATION_RELATIONSHIP' IN TYPEOF(SELF)); -END_ENTITY; -(* USED FROM (product_structure_schema); *) -ENTITY multi_level_reference_designator - SUBTYPE OF (assembly_component_usage); - location : LIST[1:?] OF UNIQUE next_assembly_usage_occurrence; - DERIVE - SELF\product_definition_relationship.relating_product_definition : product_definition := location[1]\product_definition_relationship.relating_product_definition; -- root : This ATTRIBUTE was RENAMED in the EXPRESS E2 source, an attribute with the new name is in the DERIVE clause - SELF\product_definition_relationship.related_product_definition : product_definition_or_reference := location[HIINDEX(location)]\product_definition_relationship.related_product_definition; -- leaf : This ATTRIBUTE was RENAMED in the EXPRESS E2 source, an attribute with the new name is in the DERIVE clause - leaf : PRODUCT_DEFINITION_OR_REFERENCE := SELF\product_definition_relationship.related_product_definition; -- RELATED_PRODUCT_DEFINITION : This ATTRIBUTE was RENAMED in the EXPRESS E2 source, this is the new name implemented as DERIVE - root : PRODUCT_DEFINITION := SELF\product_definition_relationship.relating_product_definition; -- RELATING_PRODUCT_DEFINITION : This ATTRIBUTE was RENAMED in the EXPRESS E2 source, this is the new name implemented as DERIVE - -WHERE - WR1: unambiguously_specified_multi_level_reference_designator(location); - WR2: SIZEOF(QUERY(cp <* location | NOT ( - EXISTS(cp\assembly_component_usage.reference_designator)))) = 0; -END_ENTITY; -(* USED FROM (product_data_quality_criteria_schema); *) - ENTITY data_quality_criteria_representation - SUBTYPE OF(representation); - WHERE - WR1 : SIZEOF( QUERY( q <* SELF\representation.items| - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + - 'DATA_QUALITY_CRITERION' IN TYPEOF(q))) > 0; - END_ENTITY; -(* USED FROM (presentation_appearance_schema); *) - 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; -(* USED FROM (date_time_schema); *) -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; -(* USED FROM (solid_shape_element_schema); *) -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; -(* USED FROM (presentation_appearance_schema); *) - 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 | - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.'+ - 'FILL_AREA_STYLE_COLOUR' IN - TYPEOF(fill_style) - )) <= 1; - END_ENTITY; -(* USED FROM (measure_schema); *) - 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; -(* USED FROM (aic_non_manifold_surface); *) -ENTITY non_manifold_surface_shape_representation - SUBTYPE OF (shape_representation); -WHERE - WR1: SIZEOF (QUERY (it <* SELF.items | - NOT (SIZEOF (['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.FACE_BASED_SURFACE_MODEL', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MAPPED_ITEM', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.AXIS2_PLACEMENT_3D'] * TYPEOF (it)) = 1))) - = 0; - WR2: SIZEOF (QUERY (it <* SELF.items | - SIZEOF (['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.FACE_BASED_SURFACE_MODEL', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MAPPED_ITEM'] * TYPEOF (it)) = 1)) > 0; - WR3: SIZEOF (QUERY (mi <* QUERY (it <* SELF.items | - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MAPPED_ITEM' IN TYPEOF (it)) | - NOT (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 | - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.FACE_BASED_SURFACE_MODEL' - IN TYPEOF (mr_it)))) > 0 )))) = 0; - WR4: SIZEOF (QUERY (fbsm <* QUERY (it <* SELF.items | - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 (['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.FACE_SURFACE', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.ORIENTED_FACE'] * TYPEOF (fa)) = 1))) - = 0))) = 0))) = 0; - WR5: SIZEOF (QUERY (fbsm <* QUERY (it <* SELF.items | - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 | - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.FACE_SURFACE' IN TYPEOF (fa))) | - NOT (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 | - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 | - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.ORIENTED_FACE' IN TYPEOF (fa))) | - NOT (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 | - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.ADVANCED_FACE' IN TYPEOF (fa)) - OR - (SIZEOF (QUERY (bnds <* fa.bounds | - NOT (SIZEOF (['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.EDGE_LOOP', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.VERTEX_LOOP'] - * TYPEOF (bnds.bound)) = 1))) = 0)))) = 0))) = 0))) = 0; - WR8: SIZEOF (QUERY (fbsm <* QUERY (it <* SELF.items| - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.ADVANCED_FACE' IN TYPEOF (fa)) - OR - (SIZEOF (QUERY (elp_fbnds <* QUERY (bnds <* fa.bounds | - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.EDGE_LOOP' IN TYPEOF (bnds.bound)) | - NOT (SIZEOF (QUERY (oe <* elp_fbnds\path.edge_list | - NOT ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.EDGE_CURVE' IN TYPEOF - (oe.edge_element)))) = 0))) = 0)))) = 0))) = 0))) = 0; - WR9: SIZEOF (QUERY (fbsm <* QUERY (it <* SELF.items | - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.ADVANCED_FACE' IN TYPEOF (fa)) - OR - (SIZEOF (QUERY (elp_fbnds <* QUERY (bnds <* fa.bounds | - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.EDGE_LOOP' IN TYPEOF (bnds.bound)) | - NOT (SIZEOF (QUERY (oe_cv <* QUERY (oe <* - elp_fbnds\path.edge_list | - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.EDGE_CURVE' IN TYPEOF (oe.edge_element)) | - NOT (SIZEOF (['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.B_SPLINE_CURVE', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CONIC', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CURVE_REPLICA', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LINE', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.OFFSET_CURVE_3D', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PCURVE', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.POLYLINE', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 | - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.ADVANCED_FACE' IN TYPEOF (fa)) - OR - (SIZEOF (QUERY (elp_fbnds <* QUERY (bnds <* fa.bounds | - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 | - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.ADVANCED_FACE' IN TYPEOF (fa)) - OR - (SIZEOF (QUERY (elp_fbnds <* QUERY (bnds <* fa.bounds | - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.EDGE_LOOP' IN TYPEOF (bnds.bound)) | - NOT (SIZEOF (QUERY (oe <* elp_fbnds\path.edge_list| - NOT (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.VERTEX_POINT' IN TYPEOF - (oe.edge_element.edge_start)) - AND - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.VERTEX_POINT' IN - TYPEOF (oe.edge_element.edge_end))))) - = 0))) = 0)))) = 0))) = 0))) = 0; - WR12: SIZEOF (QUERY (fbsm <* QUERY (it <* SELF.items | - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.ADVANCED_FACE' IN TYPEOF (fa)) - OR - (SIZEOF (QUERY (elp_fbnds <* QUERY (bnds <* fa.bounds | - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.EDGE_LOOP' IN TYPEOF (bnds.bound)) | - NOT (SIZEOF (QUERY (oe <* elp_fbnds\path.edge_list | - NOT ((SIZEOF (['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CARTESIAN_POINT', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.DEGENERATE_PCURVE', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.POINT_ON_CURVE', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.POINT_ON_SURFACE'] * TYPEOF - (oe.edge_element.edge_start\vertex_point.vertex_geometry)) = 1) - AND - (SIZEOF (['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CARTESIAN_POINT', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.DEGENERATE_PCURVE', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.POINT_ON_CURVE', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 | - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.ADVANCED_FACE' IN TYPEOF (fa)) - OR - (SIZEOF (QUERY (vlp_fbnds <* QUERY (bnds <* fa.bounds | - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.VERTEX_LOOP' IN TYPEOF (bnds.bound)) | - NOT ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.VERTEX_POINT' IN TYPEOF - (vlp_fbnds\vertex_loop.loop_vertex)))) = 0)))) = 0))) - = 0))) = 0; - WR14: SIZEOF (QUERY (fbsm <* QUERY (it <* SELF.items | - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.ADVANCED_FACE' IN TYPEOF (fa)) - OR - (SIZEOF (QUERY (vlp_fbnds <* QUERY (bnds <* fa.bounds | - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.VERTEX_LOOP' IN TYPEOF (bnds.bound)) | - NOT (SIZEOF (['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CARTESIAN_POINT', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.DEGENERATE_PCURVE', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.POINT_ON_CURVE', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.POINT_ON_SURFACE'] * TYPEOF - (vlp_fbnds\vertex_loop.loop_vertex\vertex_point.vertex_geometry)) - = 1))) = 0)))) = 0))) = 0))) = 0; -END_ENTITY; -(* USED FROM (aic_edge_based_wireframe); *) -ENTITY edge_based_wireframe_shape_representation - SUBTYPE OF ( shape_representation ); - WHERE -WR1 : -SIZEOF ( -QUERY ( it <* SELF.items| NOT ( SIZEOF ([ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.EDGE_BASED_WIREFRAME_MODEL', 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MAPPED_ITEM', 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.AXIS2_PLACEMENT_3D' ] * TYPEOF (it)) = 1) )) = 0; -WR2 : -SIZEOF ( -QUERY ( it <* SELF.items| ( SIZEOF ([ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.EDGE_BASED_WIREFRAME_MODEL', 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MAPPED_ITEM' ] * TYPEOF (it)) = 1) )) >= 1; -WR3 : -SIZEOF ( -QUERY ( ebwm <* -QUERY ( it <* SELF.items| ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.EDGE_CURVE' IN TYPEOF (edges)) )) = 0) )) = 0) )) = 0; -WR4 : -SIZEOF ( -QUERY ( ebwm <* -QUERY ( it <* SELF.items| ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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| ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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| ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.VERTEX_POINT' IN TYPEOF (edges.edge_start)) AND ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.VERTEX_POINT' IN TYPEOF (edges.edge_end))) )) = 0) )) = 0) )) = 0; -WR6 : -SIZEOF ( -QUERY ( ebwm <* -QUERY ( it <* SELF.items| ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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| ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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| ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MAPPED_ITEM' IN TYPEOF (it)) )| NOT ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 ; -(* USED FROM (representation_schema); *) - 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; -(* USED FROM (shape_tolerance_schema); *) -ENTITY geometric_tolerance_with_datum_reference - SUPERTYPE OF (ONEOF ( - ANGULARITY_TOLERANCE, - CIRCULAR_RUNOUT_TOLERANCE, - COAXIALITY_TOLERANCE, - CONCENTRICITY_TOLERANCE, - PARALLELISM_TOLERANCE, - PERPENDICULARITY_TOLERANCE, - SYMMETRY_TOLERANCE, - TOTAL_RUNOUT_TOLERANCE)) - SUBTYPE OF (geometric_tolerance); - datum_system : SET[1:?] OF datum_system_or_reference; -WHERE - WR1: (SIZEOF(QUERY(ds <* datum_system | 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'DATUM_SYSTEM' in TYPEOF(ds)))=0) OR (SIZEOF(datum_system)=1); -END_ENTITY; -(* USED FROM (measure_schema); *) -ENTITY absorbed_dose_unit - SUBTYPE OF (derived_unit); -WHERE - WR1: derive_dimensional_exponents(SELF) = dimensions_for_si_unit (si_unit_name.gray); -END_ENTITY; -(* USED FROM (Construction_geometry_mim); *) - ENTITY constructive_geometry_representation - SUBTYPE OF (representation); - WHERE - WR1: ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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(['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PLACEMENT', 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CURVE', 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.EDGE', 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.FACE', 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.POINT', 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SURFACE', 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.FACE_SURFACE', 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.VERTEX_POINT'] * TYPEOF(cgr_i)) <> 1 )) = 0; - WR3: SIZEOF( USEDIN( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'REPRESENTATION_RELATIONSHIP.REP_2') ) > 0; - WR4: SIZEOF( USEDIN( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'REPRESENTATION_MAP.MAPPED_REPRESENTATION') ) = 0; - END_ENTITY; -(* USED FROM (aic_topologically_bounded_surface); *) -ENTITY advanced_face - SUBTYPE OF ( face_surface ); - WHERE -WR1 : -SIZEOF ([ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.ELEMENTARY_SURFACE', 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.B_SPLINE_SURFACE', 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SWEPT_SURFACE' ] * TYPEOF (face_geometry)) = 1; -WR2 : -SIZEOF ( -QUERY ( elp_fbnds <* -QUERY ( bnds <* bounds| ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.EDGE_LOOP' IN TYPEOF (bnds.bound)) )| NOT ( SIZEOF ( -QUERY ( oe <* elp_fbnds.bound\path.edge_list| NOT ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.EDGE_CURVE' IN TYPEOF (oe\oriented_edge.edge_element)) )) = 0) )) = 0; -WR3 : -SIZEOF ( -QUERY ( elp_fbnds <* -QUERY ( bnds <* bounds| ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.EDGE_LOOP' IN TYPEOF (bnds.bound)) )| NOT ( SIZEOF ( -QUERY ( oe <* elp_fbnds.bound\path.edge_list| NOT ( SIZEOF ([ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LINE', 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CONIC', 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.POLYLINE', 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SURFACE_CURVE', 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.B_SPLINE_CURVE' ] * TYPEOF (oe.edge_element\edge_curve.edge_geometry)) = 1) )) = 0) )) = 0; -WR4 : -SIZEOF ( -QUERY ( elp_fbnds <* -QUERY ( bnds <* bounds| ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.EDGE_LOOP' IN TYPEOF (bnds.bound)) )| NOT ( SIZEOF ( -QUERY ( oe <* elp_fbnds.bound\path.edge_list| NOT ((('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.VERTEX_POINT' IN TYPEOF (oe\edge.edge_start)) AND ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CARTESIAN_POINT' IN TYPEOF (oe\edge.edge_start\vertex_point.vertex_geometry))) AND (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.VERTEX_POINT' IN TYPEOF (oe\edge.edge_end)) AND ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CARTESIAN_POINT' IN TYPEOF (oe\edge.edge_end\vertex_point.vertex_geometry)))) )) = 0) )) = 0; -WR5 : -SIZEOF ( -QUERY ( elp_fbnds <* -QUERY ( bnds <* bounds| ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.EDGE_LOOP' IN TYPEOF (bnds.bound)) )| ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.ORIENTED_PATH' IN TYPEOF (elp_fbnds.bound)) )) = 0; -WR6 : NOT ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SWEPT_SURFACE' IN TYPEOF (face_geometry)) OR ( SIZEOF ([ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LINE', 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CONIC', 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.POLYLINE', 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.B_SPLINE_CURVE' ] * TYPEOF (face_geometry\swept_surface.swept_curve)) = 1); -WR7 : -SIZEOF ( -QUERY ( vlp_fbnds <* -QUERY ( bnds <* bounds| ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.VERTEX_LOOP' IN TYPEOF (bnds.bound)) )| NOT (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.VERTEX_POINT' IN TYPEOF (vlp_fbnds\face_bound.bound\vertex_loop.loop_vertex)) AND ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 ([ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.EDGE_LOOP', 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.VERTEX_LOOP' ] * TYPEOF (bnd.bound)) = 1) )) = 0; -WR9 : -SIZEOF ( -QUERY ( elp_fbnds <* -QUERY ( bnds <* bounds| ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.EDGE_LOOP' IN TYPEOF (bnds.bound)) )| NOT ( SIZEOF ( -QUERY ( oe <* elp_fbnds.bound\path.edge_list| ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PCURVE' IN TYPEOF (sc_ag)) )) = 0) )) = 0) )) = 0; -WR10 : (NOT ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SWEPT_SURFACE' IN TYPEOF (face_geometry)) OR (NOT ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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| ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.EDGE_LOOP' IN TYPEOF (bnds.bound)) )| NOT ( SIZEOF ( -QUERY ( oe <* elp_fbnds.bound\path.edge_list| ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 ; -(* USED FROM (presentation_organization_schema); *) -(* Pruned SUPERTYPE *) - 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: ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PRESENTATION_AREA' IN TYPEOF (SELF)) - OR - (SIZEOF (QUERY (prr <* USEDIN (SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + - 'REPRESENTATION_RELATIONSHIP.REP_2') | - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PRESENTATION_REPRESENTATION' IN - TYPEOF (prr\representation_relationship.rep_1))) > 0) - OR - (SIZEOF(QUERY( rm <* USEDIN(SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.'+ - 'REPRESENTATION_MAP.'+ - 'MAPPED_REPRESENTATION') | - SIZEOF(QUERY( mi <* USEDIN(rm, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.'+ - 'MAPPED_ITEM.'+ - 'MAPPING_SOURCE') | - SIZEOF(QUERY( rep <* using_representations (mi) | - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.'+ - 'PRESENTATION_REPRESENTATION' IN - TYPEOF (rep))) > 0 - )) > 0)) - > 0); - END_ENTITY; -(* USED FROM (aic_draughting_annotation); *) -ENTITY draughting_symbol_representation - SUBTYPE of (symbol_representation); - SELF\representation.items : SET[1:?] OF draughting_symbol_representation_item; -UNIQUE - UR1: SELF\representation.name; -WHERE - WR1: - SIZEOF (QUERY (item <* SELF\representation.items | - (SIZEOF (TYPEOF (item) * - ['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.ANNOTATION_CURVE_OCCURRENCE', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.ANNOTATION_SYMBOL_OCCURRENCE', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.ANNOTATION_FILL_AREA_OCCURRENCE', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.ANNOTATION_TEXT_OCCURRENCE']) = 1) - )) >= 1; - WR2: - SIZEOF (QUERY (item <* SELF\representation.items | - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.ANNOTATION_SUBFIGURE_OCCURRENCE' - IN TYPEOF (item))) = 0; - WR3: - SIZEOF ( QUERY (rm <* - USEDIN (SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + - 'REPRESENTATION_MAP.MAPPED_REPRESENTATION') | - NOT ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SYMBOL_REPRESENTATION_MAP' - IN TYPEOF(rm)))) = 0; - WR4: - SIZEOF (SELF.context_of_items.representations_in_context) = 1; -END_ENTITY; -(* USED FROM (aic_mechanical_design_shaded_presentation); *) - ENTITY mechanical_design_shaded_presentation_area - SUBTYPE OF (presentation_area); - SELF\representation.items : SET[1:?] OF mechanical_design_shaded_presentation_area_items; - WHERE - WR1 : (* only presentation_views or axis2_placements in - mechanical_design_shaded_presentation_area *) - SIZEOF (QUERY (it1 <* SELF.items | - NOT (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.AXIS2_PLACEMENT' - IN TYPEOF (it1)) - OR - (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MAPPED_ITEM' - IN TYPEOF (it1)) AND - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PRESENTATION_VIEW' - IN TYPEOF - (it1\mapped_item.mapping_source.mapped_representation)))))) = 0; - WR2 : (* only mechanical_design_shaded_presentation_representation - via camera_image_3d_with_scale or axis2_placements in - presentation_views *) - SIZEOF (QUERY (pv <* QUERY (mi1 <* QUERY (it1 <* SELF.items | - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MAPPED_ITEM' - IN TYPEOF (it1)) | - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.AXIS2_PLACEMENT' - IN TYPEOF(it2)) - OR - (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MAPPED_ITEM' - IN TYPEOF(it2)) AND NOT - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + - 'CAMERA_IMAGE_3D_WITH_SCALE' IN TYPEOF(it2))) AND NOT ( - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PRESENTATION_VIEW' - IN TYPEOF - (it2\mapped_item.mapping_source.mapped_representation))) - OR - (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + - 'CAMERA_IMAGE_3D_WITH_SCALE' IN TYPEOF(it2)) - AND NOT ( - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + - 'MECHANICAL_DESIGN_SHADED_PRESENTATION_REPRESENTATION' - IN TYPEOF (it2\mapped_item.mapping_source.mapped_representation) )) - ))) = 0))) = 0; - WR3: (* Presentation_size shall be a positive rectangle for area and set. - Check for this presentation_area subtype first. *) - (SIZEOF (QUERY(ps <* USEDIN (SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + - 'PRESENTATION_SIZE.UNIT') | - NOT ((ps\presentation_size.size.size_in_x > 0) - AND (ps\presentation_size.size.size_in_y > 0)) )) = 0) - AND - (* check secondly for presentation_set, via area_in_set *) - (SIZEOF (QUERY(pset <* QUERY(ais <* - USEDIN (SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + - 'AREA_IN_SET.AREA') - | 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + - 'PRESENTATION_SET' IN TYPEOF (ais.in_set)) | - (* after having collected all presentation_set, check their sizes *) - SIZEOF (QUERY(ps <* USEDIN(pset, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + - 'PRESENTATION_SIZE.UNIT') - | NOT ((ps\presentation_size.size.size_in_x > 0) - AND (ps\presentation_size.size.size_in_y > 0)) )) = 0)) = 0); - WR4: (* Drawing space shall be defined in 2D. - Check for this presentation_area subtype first. *) - (SIZEOF(QUERY( psize <* USEDIN (SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + - 'PRESENTATION_SIZE.UNIT') - | 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + - 'AREA_IN_SET.AREA') - | 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + - 'PRESENTATION_SET' IN TYPEOF (ais.in_set)) | - (* after having collected all presentation_set, check their - dimension *) - SIZEOF (QUERY(psize <* USEDIN(pset, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + - 'PRESENTATION_SIZE.UNIT') - | NOT ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + - 'AXIS2_PLACEMENT_2D' - IN TYPEOF (psize.size.placement)) )) = 0)) = 0); - WR5 : (* valid types of camera_models - get for all presentation_areas their presentation_views *) - SIZEOF (QUERY (pv <* QUERY (mi1 <* QUERY (it1 <* SELF.items | - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MAPPED_ITEM' - IN TYPEOF (it1)) | - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 | - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.'+ - 'CAMERA_IMAGE_3D_WITH_SCALE' IN TYPEOF(ci)) - AND - (SIZEOF(['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.'+ - 'CAMERA_MODEL_D3', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.'+ - 'CAMERA_MODEL_D3_WITH_HLHSR', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.'+ - 'CAMERA_MODEL_WITH_LIGHT_SOURCES'] * TYPEOF - (ci\mapped_item.mapping_source.mapping_origin)) - = 1))) = 0))) = 0; - END_ENTITY; (* mechanical_design_shaded_presentation_area *) -(* USED FROM (aic_mechanical_design_shaded_presentation); *) -ENTITY mechanical_design_shaded_presentation_representation - SUBTYPE OF (representation); - SELF\representation.items : SET[1:?] OF mechanical_design_shaded_presentation_representation_items; -WHERE - WR1: (* for all mapped_items check that only - shape_representations and - mechanical_design_shaded_presentation_representations - are referenced *) - SIZEOF(QUERY(mi <* QUERY(it <* SELF.items | - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MAPPED_ITEM' - IN TYPEOF(it))) | NOT (SIZEOF( - ['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + - 'SHAPE_REPRESENTATION', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + - 'MECHANICAL_DESIGN_SHADED_PRESENTATION_REPRESENTATION'] - * TYPEOF(mi\mapped_item.mapping_source.mapped_representation)) - = 1))) = 0; - WR2: (* for all styled_item.item check that in case they are - mapped_items that they are shape_representations *) - SIZEOF(QUERY(smi <* QUERY(si <* QUERY(it <* SELF.items | - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.STYLED_ITEM' - IN TYPEOF(it))) | - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MAPPED_ITEM' - IN TYPEOF(si\styled_item.item))) | NOT ( - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + - 'SHAPE_REPRESENTATION' IN TYPEOF (smi\styled_item. - item\mapped_item.mapping_source.mapped_representation))) )) = 0; - WR3: (* for all styled_items get their styles via - presentation_style_assignment.styles and check for valid - style types *) - SIZEOF (QUERY (si <* QUERY (it <* SELF.items | - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.STYLED_ITEM' - IN TYPEOF (it)) | - NOT (SIZEOF (QUERY (psa <* si\styled_item.styles | - NOT (SIZEOF (QUERY (pss <* psa.styles | - NOT (SIZEOF ( - ['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.POINT_STYLE', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CURVE_STYLE', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SURFACE_STYLE_USAGE'] - * TYPEOF (pss)) = 1))) = 0))) = 0))) = 0; - WR4: (* for all styled_items get those assigned styles that - are presentation_style_by_contexts and ensure that - these reference only representation_items and - representations as valid contexts *) - SIZEOF (QUERY (si <* QUERY (it <* SELF.items | - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.STYLED_ITEM' - IN TYPEOF (it)) | - NOT (SIZEOF (QUERY (psbc <* QUERY (psa <* si\styled_item.styles | - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.'+ - 'PRESENTATION_STYLE_BY_CONTEXT' IN TYPEOF (psa)) | - NOT (SIZEOF ( - ['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.REPRESENTATION_ITEM', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.REPRESENTATION'] - * TYPEOF (psbc\presentation_style_by_context.style_context)) = 1))) - = 0))) = 0; - WR5: (* for all styled_items get all assigned point_styles - and ensure that marker_select, marker_size and - marker_colour are valid *) - SIZEOF (QUERY (si <* QUERY (it <* SELF.items | - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.STYLED_ITEM' - IN TYPEOF (it)) | - NOT (SIZEOF (QUERY (psa <* si\styled_item.styles | - NOT (SIZEOF (QUERY (ps <* QUERY (pss <* psa.styles | - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.POINT_STYLE' - IN TYPEOF (pss)) | - NOT ( - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MARKER_TYPE' - IN TYPEOF (ps\point_style.marker)) - AND - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.POSITIVE_LENGTH_MEASURE' IN TYPEOF - (ps\point_style.marker_size)) - AND - (SIZEOF (['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.COLOUR_RGB', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.'+ - 'DRAUGHTING_PRE_DEFINED_COLOUR'] * TYPEOF - (ps\point_style.marker_colour)) = 1)))) = 0))) = 0))) = 0; - WR6: (* for all styled_items get all assigned curve_styles - and ensure that curve_width, curve_font and - curve_colour are valid *) - SIZEOF (QUERY (si <* QUERY (it <* SELF.items | - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.STYLED_ITEM' - IN TYPEOF (it)) | - NOT (SIZEOF (QUERY (psa <* si\styled_item.styles | - NOT (SIZEOF (QUERY (cs <* QUERY (pss <* psa.styles | - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CURVE_STYLE' - IN TYPEOF (pss)) | - NOT ( - (SIZEOF (['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.COLOUR_RGB', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.'+ - 'DRAUGHTING_PRE_DEFINED_COLOUR'] * TYPEOF - (cs\curve_style.curve_colour)) = 1) - AND - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.POSITIVE_LENGTH_MEASURE' IN TYPEOF - (cs\curve_style.curve_width)) - AND - (SIZEOF (['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.'+ - 'CURVE_STYLE_FONT', 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.'+ - 'DRAUGHTING_PRE_DEFINED_CURVE_FONT'] * TYPEOF - (cs\curve_style.curve_font)) = 1)))) = 0))) = 0))) = 0; - WR7: (* for all styled_items get all assigned surface_style_usages - and ensure that its style is a surface_side_style *) - SIZEOF (QUERY (si <* QUERY (it <* SELF.items | - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.STYLED_ITEM' - IN TYPEOF (it)) | - NOT (SIZEOF (QUERY (psa <* si\styled_item.styles | - NOT (SIZEOF (QUERY (ssu <* QUERY (pss <* psa.styles | - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SURFACE_STYLE_USAGE' - IN TYPEOF (pss)) | - NOT ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SURFACE_SIDE_STYLE' - IN TYPEOF (ssu\surface_style_usage.style)) )) = 0))) = 0 ))) = 0; - WR8: (* for all styled_items get all assigned surface_style_usages - and the surface_side_styles that they reference, and ensure - that the styles referenced by those surface_side_styles - are among the valid subset *) - SIZEOF (QUERY (si <* QUERY (it <* SELF.items | - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.STYLED_ITEM' - IN TYPEOF (it)) | - NOT (SIZEOF (QUERY (psa <* si\styled_item.styles | - NOT (SIZEOF (QUERY (ssu <* QUERY (pss <* psa.styles | - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SURFACE_STYLE_USAGE' - IN TYPEOF (pss)) | - NOT (SIZEOF (QUERY (sses <* - ssu\surface_style_usage.style\surface_side_style.styles | - NOT (SIZEOF ( - ['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.'+ - 'SURFACE_STYLE_PARAMETER_LINE', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.'+ - 'SURFACE_STYLE_CONTROL_GRID', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.'+ - 'SURFACE_STYLE_SILHOUETTE', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.'+ - 'SURFACE_STYLE_SEGMENTATION_CURVE', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.'+ - 'SURFACE_STYLE_BOUNDARY', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.'+ - 'SURFACE_STYLE_FILL_AREA', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.'+ - 'SURFACE_STYLE_RENDERING'] * TYPEOF (sses)) = 1))) = 0))) = 0))) - = 0))) = 0; - WR9: (* for all surface_style_fill_areas that are referenced by - any surface_side_styles ensure that they are valid - with respect to their colour representation *) - SIZEOF (QUERY (si <* QUERY (it <* SELF.items | - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.STYLED_ITEM' - IN TYPEOF (it)) | - NOT (SIZEOF (QUERY (psa <* si\styled_item.styles | - NOT (SIZEOF (QUERY (ssu <* QUERY (pss <* psa.styles | - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SURFACE_STYLE_USAGE' - IN TYPEOF (pss)) | - NOT (SIZEOF (QUERY (ssfa <* QUERY (sses <* - ssu\surface_style_usage.style\surface_side_style.styles | - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SURFACE_STYLE_FILL_AREA' - IN TYPEOF (sses)) | - NOT (SIZEOF (QUERY (fss <* - ssfa\surface_style_fill_area.fill_area.fill_styles | - NOT (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.'+ - 'FILL_AREA_STYLE_COLOUR' IN TYPEOF (fss)) - AND - (SIZEOF (['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.COLOUR_RGB', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.'+ - 'DRAUGHTING_PRE_DEFINED_COLOUR'] * TYPEOF - (fss\fill_area_style_colour.fill_colour)) = 1)))) = 0))) = 0))) - = 0))) = 0))) = 0; - WR10: (* for all surface_style_parameter_lines that are referenced by - any surface_side_styles ensure that they are valid - with respect to the applied curve_style, which may include - rendering *) - SIZEOF (QUERY (si <* QUERY (it <* SELF.items | - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.STYLED_ITEM' - IN TYPEOF (it)) | - NOT (SIZEOF (QUERY (psa <* si\styled_item.styles | - NOT (SIZEOF (QUERY (ssu <* QUERY (pss <* psa.styles | - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SURFACE_STYLE_USAGE' - IN TYPEOF (pss)) | - NOT (SIZEOF (QUERY (sspl <* QUERY (sses <* - ssu\surface_style_usage.style\surface_side_style.styles | - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.'+ - 'SURFACE_STYLE_PARAMETER_LINE' IN TYPEOF (sses)) | - NOT (( - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CURVE_STYLE' IN TYPEOF - (sspl\surface_style_parameter_line.style_of_parameter_lines)) - AND - (SIZEOF (['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.COLOUR_RGB', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.'+ - 'DRAUGHTING_PRE_DEFINED_COLOUR'] * TYPEOF - (sspl\surface_style_parameter_line. - style_of_parameter_lines\curve_style.curve_colour)) = 1) - AND - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.POSITIVE_LENGTH_MEASURE' IN TYPEOF - (sspl\surface_style_parameter_line. - style_of_parameter_lines\curve_style.curve_width)) - AND - (SIZEOF (['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.'+ - 'CURVE_STYLE_FONT', 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.'+ - 'DRAUGHTING_PRE_DEFINED_CURVE_FONT'] * TYPEOF - (sspl\surface_style_parameter_line. - style_of_parameter_lines\curve_style.curve_font)) = 1)) - OR - (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CURVE_STYLE_RENDERING' - IN TYPEOF - (sspl\surface_style_parameter_line.style_of_parameter_lines)) - AND - (SIZEOF (['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.COLOUR_RGB', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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; - WR11: (* for all surface_style_control_grids that are referenced by - any surface_side_styles ensure that they are valid - with respect to the applied curve_style, which may include - rendering *) - SIZEOF (QUERY (si <* QUERY (it <* SELF.items | - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.STYLED_ITEM' - IN TYPEOF (it)) | - NOT (SIZEOF (QUERY (psa <* si\styled_item.styles | - NOT (SIZEOF (QUERY (ssu <* QUERY (pss <* psa.styles | - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SURFACE_STYLE_USAGE' - IN TYPEOF (pss)) | - NOT (SIZEOF (QUERY (sscg <* QUERY (sses <* - ssu\surface_style_usage.style\surface_side_style.styles | - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.'+ - 'SURFACE_STYLE_CONTROL_GRID' IN TYPEOF (sses)) | - NOT (( - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CURVE_STYLE' - IN TYPEOF (sscg\surface_style_control_grid.style_of_control_grid)) - AND - (SIZEOF (['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.COLOUR_RGB', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.'+ - 'DRAUGHTING_PRE_DEFINED_COLOUR'] * TYPEOF - (sscg\surface_style_control_grid. - style_of_control_grid\curve_style.curve_colour)) = 1) - AND - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.POSITIVE_LENGTH_MEASURE' IN TYPEOF - (sscg\surface_style_control_grid. - style_of_control_grid\curve_style.curve_width)) - AND - (SIZEOF (['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.'+ - 'CURVE_STYLE_FONT', 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.'+ - 'DRAUGHTING_PRE_DEFINED_CURVE_FONT'] * TYPEOF - (sscg\surface_style_control_grid. - style_of_control_grid\curve_style.curve_font)) = 1)) - OR - (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CURVE_STYLE_RENDERING' - IN TYPEOF (sscg\surface_style_control_grid.style_of_control_grid)) - AND - (SIZEOF (['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.COLOUR_RGB', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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; - WR12: (* for all surface_style_silhouettes that are referenced by - any surface_side_styles ensure that they are valid - with respect to the applied curve_style, which may include - rendering *) - SIZEOF (QUERY (si <* QUERY (it <* SELF.items | - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.STYLED_ITEM' - IN TYPEOF (it)) | - NOT (SIZEOF (QUERY (psa <* si\styled_item.styles | - NOT (SIZEOF (QUERY (ssu <* QUERY (pss <* psa.styles | - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SURFACE_STYLE_USAGE' - IN TYPEOF (pss)) | - NOT (SIZEOF (QUERY (sssh <* QUERY (sses <* - ssu\surface_style_usage.style\surface_side_style.styles | - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.'+ - 'SURFACE_STYLE_SILHOUETTE' IN TYPEOF (sses)) | - NOT (( - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CURVE_STYLE' - IN TYPEOF (sssh\surface_style_silhouette.style_of_silhouette)) - AND - (SIZEOF (['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.COLOUR_RGB', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.'+ - 'DRAUGHTING_PRE_DEFINED_COLOUR'] * TYPEOF - (sssh\surface_style_silhouette. - style_of_silhouette\curve_style.curve_colour)) = 1) - AND - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.POSITIVE_LENGTH_MEASURE' IN TYPEOF - (sssh\surface_style_silhouette. - style_of_silhouette\curve_style.curve_width)) - AND - (SIZEOF (['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.'+ - 'CURVE_STYLE_FONT', 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.'+ - 'DRAUGHTING_PRE_DEFINED_CURVE_FONT'] * TYPEOF - (sssh\surface_style_silhouette. - style_of_silhouette\curve_style.curve_font)) = 1)) - OR - (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CURVE_STYLE_RENDERING' - IN TYPEOF (sssh\surface_style_silhouette.style_of_silhouette)) - AND - (SIZEOF (['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.COLOUR_RGB', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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; - WR13: (* for all surface_style_segmentation_curves that are referenced by - any surface_side_styles ensure that they are valid - with respect to the applied curve_style, which may include - rendering *) - SIZEOF (QUERY (si <* QUERY (it <* SELF.items | - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.STYLED_ITEM' - IN TYPEOF (it)) | - NOT (SIZEOF (QUERY (psa <* si\styled_item.styles | - NOT (SIZEOF (QUERY (ssu <* QUERY (pss <* psa.styles | - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SURFACE_STYLE_USAGE' - IN TYPEOF (pss)) | - NOT (SIZEOF (QUERY (sssc <* QUERY (sses <* - ssu\surface_style_usage.style\surface_side_style.styles | - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.'+ - 'SURFACE_STYLE_SEGMENTATION_CURVE' IN TYPEOF (sses)) | - NOT (( - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CURVE_STYLE' - IN TYPEOF - (sssc\surface_style_segmentation_curve.style_of_segmentation_curve)) - AND - (SIZEOF (['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.COLOUR_RGB', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.'+ - 'DRAUGHTING_PRE_DEFINED_COLOUR'] * TYPEOF - (sssc\surface_style_segmentation_curve. - style_of_segmentation_curve\curve_style.curve_colour)) = 1) - AND - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.POSITIVE_LENGTH_MEASURE' IN TYPEOF - (sssc\surface_style_segmentation_curve. - style_of_segmentation_curve\curve_style.curve_width)) - AND - (SIZEOF (['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.'+ - 'CURVE_STYLE_FONT', 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.'+ - 'DRAUGHTING_PRE_DEFINED_CURVE_FONT'] * TYPEOF - (sssc\surface_style_segmentation_curve. - style_of_segmentation_curve\curve_style.curve_font)) = 1)) - OR - (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CURVE_STYLE_RENDERING' - IN TYPEOF (sssc\surface_style_segmentation_curve. - style_of_segmentation_curve)) - AND - (SIZEOF (['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.COLOUR_RGB', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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; - WR14: (* for all surface_style_boundaries that are referenced by - any surface_side_styles ensure that they are valid - with respect to the applied curve_style, which may include - rendering *) - SIZEOF (QUERY (si <* QUERY (it <* SELF.items | - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.STYLED_ITEM' - IN TYPEOF (it)) | - NOT (SIZEOF (QUERY (psa <* si\styled_item.styles | - NOT (SIZEOF (QUERY (ssu <* QUERY (pss <* psa.styles | - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SURFACE_STYLE_USAGE' - IN TYPEOF (pss)) | - NOT (SIZEOF (QUERY (ssbd <* QUERY (sses <* - ssu\surface_style_usage.style\surface_side_style.styles | - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.'+ - 'SURFACE_STYLE_BOUNDARY' IN TYPEOF (sses)) | - NOT (( - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CURVE_STYLE' - IN TYPEOF (ssbd\surface_style_boundary.style_of_boundary)) - AND - (SIZEOF (['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.COLOUR_RGB', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.'+ - 'DRAUGHTING_PRE_DEFINED_COLOUR'] * TYPEOF - (ssbd\surface_style_boundary. - style_of_boundary\curve_style.curve_colour)) = 1) - AND - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.POSITIVE_LENGTH_MEASURE' IN TYPEOF - (ssbd\surface_style_boundary. - style_of_boundary\curve_style.curve_width)) - AND - (SIZEOF (['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.'+ - 'CURVE_STYLE_FONT', 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.'+ - 'DRAUGHTING_PRE_DEFINED_CURVE_FONT'] * TYPEOF - (ssbd\surface_style_boundary. - style_of_boundary\curve_style.curve_font)) = 1)) - OR - (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CURVE_STYLE_RENDERING' - IN TYPEOF (ssbd\surface_style_boundary.style_of_boundary)) - AND - (SIZEOF (['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.COLOUR_RGB', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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; - WR15: (* for all surface_style_renderings that are referenced by - any surface_side_styles ensure that the colour - representation is valid *) - SIZEOF (QUERY (si <* QUERY (it <* SELF.items | - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.STYLED_ITEM' - IN TYPEOF (it)) | - NOT (SIZEOF (QUERY (psa <* si\styled_item.styles | - NOT (SIZEOF (QUERY (ssu <* QUERY (pss <* psa.styles | - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SURFACE_STYLE_USAGE' - IN TYPEOF (pss)) | - NOT (SIZEOF (QUERY (ssre <* QUERY (sses <* - ssu\surface_style_usage.style\surface_side_style.styles | - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.'+ - 'SURFACE_STYLE_RENDERING' IN TYPEOF (sses)) | - NOT - (SIZEOF (['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.COLOUR_RGB', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.'+ - 'DRAUGHTING_PRE_DEFINED_COLOUR'] * TYPEOF - (ssre\surface_style_rendering.surface_colour)) = 1))) - = 0))) = 0))) = 0))) = 0; - -END_ENTITY; -(* USED FROM (aic_geometrically_bounded_wireframe); *) -ENTITY geometrically_bounded_wireframe_shape_representation - SUBTYPE OF ( shape_representation ); - WHERE -WR1 : -SIZEOF ( -QUERY ( it <* SELF.items| NOT ( SIZEOF ( TYPEOF (it) * [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.GEOMETRIC_CURVE_SET', 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.AXIS2_PLACEMENT_3D', 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MAPPED_ITEM' ]) = 1) )) = 0; -WR2 : -SIZEOF ( -QUERY ( it <* SELF.items| ( SIZEOF ( TYPEOF (it) * [ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.GEOMETRIC_CURVE_SET', 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MAPPED_ITEM' ]) = 1) )) >= 1; -WR3 : -SIZEOF ( -QUERY ( gcs <* -QUERY ( it <* SELF.items| ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.GEOMETRIC_CURVE_SET' IN TYPEOF (it)) )| NOT ( SIZEOF ( -QUERY ( crv <* -QUERY ( elem <* gcs\geometric_set.elements| ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CURVE' IN TYPEOF (elem)) )| NOT valid_geometrically_bounded_wf_curve(crv) )) = 0) )) = 0; -WR4 : -SIZEOF ( -QUERY ( gcs <* -QUERY ( it <* SELF.items| ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.GEOMETRIC_CURVE_SET' IN TYPEOF (it)) )| NOT ( SIZEOF ( -QUERY ( pnts <* -QUERY ( elem <* gcs\geometric_set.elements| ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.POINT' IN TYPEOF (elem)) )| NOT valid_geometrically_bounded_wf_point(pnts) )) = 0) )) = 0; -WR5 : -SIZEOF ( -QUERY ( gcs <* -QUERY ( it <* SELF.items| ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.GEOMETRIC_CURVE_SET' IN TYPEOF (it)) )| NOT ( SIZEOF ( -QUERY ( cnc <* -QUERY ( elem <* gcs\geometric_set.elements| ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CONIC' IN TYPEOF (elem)) )| NOT ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.AXIS2_PLACEMENT_3D' IN TYPEOF (cnc\conic.position)) )) = 0) )) = 0; -WR6 : -SIZEOF ( -QUERY ( gcs <* -QUERY ( it <* SELF.items| ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.GEOMETRIC_CURVE_SET' IN TYPEOF (it)) )| NOT ( SIZEOF ( -QUERY ( pline <* -QUERY ( elem <* gcs\geometric_set.elements| ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.POLYLINE' IN TYPEOF (elem)) )| NOT ( SIZEOF (pline\polyline.points) > 2) )) = 0) )) = 0; -WR7 : -SIZEOF ( -QUERY ( mi <* -QUERY ( it <* SELF.items| ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MAPPED_ITEM' IN TYPEOF (it)) )| NOT ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'GEOMETRICALLY_BOUNDED_WIREFRAME_SHAPE_REPRESENTATION' IN TYPEOF (mi\mapped_item.mapping_source.mapped_representation)) )) = 0; - END_ENTITY ; -(* USED FROM (aic_shell_based_wireframe); *) -ENTITY shell_based_wireframe_shape_representation - SUBTYPE OF ( shape_representation ); - WHERE -WR1 : -SIZEOF ( -QUERY ( it <* SELF.items| NOT ( SIZEOF ([ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHELL_BASED_WIREFRAME_MODEL', 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MAPPED_ITEM', 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.AXIS2_PLACEMENT_3D' ] * TYPEOF (it)) = 1) )) = 0; -WR2 : -SIZEOF ( -QUERY ( it <* SELF.items| ( SIZEOF ([ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHELL_BASED_WIREFRAME_MODEL', 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MAPPED_ITEM' ] * TYPEOF (it)) = 1) )) >= 1; -WR3 : -SIZEOF ( -QUERY ( sbwm <* -QUERY ( it <* SELF.items| ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHELL_BASED_WIREFRAME_MODEL' IN TYPEOF (it)) )| NOT ( SIZEOF ( -QUERY ( ws <* -QUERY ( sb <* sbwm\shell_based_wireframe_model.sbwm_boundary| ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.WIRE_SHELL' IN TYPEOF (sb)) )| NOT ( SIZEOF ( -QUERY ( eloop <* -QUERY ( wsb <* ws\wire_shell.wire_shell_extent| ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.EDGE_LOOP' IN TYPEOF (wsb)) )| NOT ( SIZEOF ( -QUERY ( el <* eloop\path.edge_list| NOT ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.EDGE_CURVE' IN TYPEOF (el.edge_element)) )) = 0) )) = 0) )) = 0) )) = 0; -WR4 : -SIZEOF ( -QUERY ( sbwm <* -QUERY ( it <* SELF.items| ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHELL_BASED_WIREFRAME_MODEL' IN TYPEOF (it)) )| NOT ( SIZEOF ( -QUERY ( ws <* -QUERY ( sb <* sbwm\shell_based_wireframe_model.sbwm_boundary| ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.WIRE_SHELL' IN TYPEOF (sb)) )| NOT ( SIZEOF ( -QUERY ( eloop <* -QUERY ( wsb <* ws\wire_shell.wire_shell_extent| ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.EDGE_LOOP' IN TYPEOF (wsb)) )| NOT ( SIZEOF ( -QUERY ( pline_el <* -QUERY ( el <* eloop\path.edge_list| ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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| ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHELL_BASED_WIREFRAME_MODEL' IN TYPEOF (it)) )| NOT ( SIZEOF ( -QUERY ( ws <* -QUERY ( sb <* sbwm\shell_based_wireframe_model.sbwm_boundary| ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.WIRE_SHELL' IN TYPEOF (sb)) )| NOT ( SIZEOF ( -QUERY ( eloop <* -QUERY ( wsb <* ws\wire_shell.wire_shell_extent| ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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| ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHELL_BASED_WIREFRAME_MODEL' IN TYPEOF (it)) )| NOT ( SIZEOF ( -QUERY ( ws <* -QUERY ( sb <* sbwm\shell_based_wireframe_model.sbwm_boundary| ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.WIRE_SHELL' IN TYPEOF (sb)) )| NOT ( SIZEOF ( -QUERY ( eloop <* -QUERY ( wsb <* ws\wire_shell.wire_shell_extent| ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.EDGE_LOOP' IN TYPEOF (wsb)) )| NOT ( SIZEOF ( -QUERY ( el <* eloop\path.edge_list| NOT (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.VERTEX_POINT' IN TYPEOF (el.edge_element.edge_start)) AND ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.VERTEX_POINT' IN TYPEOF (el.edge_element.edge_end))) )) = 0) )) = 0) )) = 0) )) = 0; -WR7 : -SIZEOF ( -QUERY ( sbwm <* -QUERY ( it <* SELF.items| ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHELL_BASED_WIREFRAME_MODEL' IN TYPEOF (it)) )| NOT ( SIZEOF ( -QUERY ( ws <* -QUERY ( sb <* sbwm\shell_based_wireframe_model.sbwm_boundary| ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.WIRE_SHELL' IN TYPEOF (sb)) )| NOT ( SIZEOF ( -QUERY ( eloop <* -QUERY ( wsb <* ws\wire_shell.wire_shell_extent| ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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| ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHELL_BASED_WIREFRAME_MODEL' IN TYPEOF (it)) )| NOT ( SIZEOF ( -QUERY ( ws <* -QUERY ( sb <* sbwm\shell_based_wireframe_model.sbwm_boundary| ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.WIRE_SHELL' IN TYPEOF (sb)) )| NOT ( SIZEOF ( -QUERY ( vloop <* -QUERY ( wsb <* ws\wire_shell.wire_shell_extent| ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.VERTEX_LOOP' IN TYPEOF (wsb)) )| NOT ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.VERTEX_POINT' IN TYPEOF (vloop\vertex_loop.loop_vertex)) )) = 0) )) = 0) )) = 0; -WR9 : -SIZEOF ( -QUERY ( sbwm <* -QUERY ( it <* SELF.items| ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHELL_BASED_WIREFRAME_MODEL' IN TYPEOF (it)) )| NOT ( SIZEOF ( -QUERY ( ws <* -QUERY ( sb <* sbwm\shell_based_wireframe_model.sbwm_boundary| ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.WIRE_SHELL' IN TYPEOF (sb)) )| NOT ( SIZEOF ( -QUERY ( vloop <* -QUERY ( wsb <* ws\wire_shell.wire_shell_extent| ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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| ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHELL_BASED_WIREFRAME_MODEL' IN TYPEOF (it)) )| NOT ( SIZEOF ( -QUERY ( vs <* -QUERY ( sb <* sbwm\shell_based_wireframe_model.sbwm_boundary| ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.VERTEX_SHELL' IN TYPEOF (sb)) )| NOT ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.VERTEX_POINT' IN TYPEOF (vs\vertex_shell.vertex_shell_extent.loop_vertex)) )) = 0) )) = 0; -WR11 : -SIZEOF ( -QUERY ( sbwm <* -QUERY ( it <* SELF.items| ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHELL_BASED_WIREFRAME_MODEL' IN TYPEOF (it)) )| NOT ( SIZEOF ( -QUERY ( vs <* -QUERY ( sb <* sbwm\shell_based_wireframe_model.sbwm_boundary| ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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| ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MAPPED_ITEM' IN TYPEOF (it)) )| NOT ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 ; -(* USED FROM (geometric_model_schema); *) -ENTITY geometric_curve_set - SUBTYPE OF (geometric_set); -WHERE - WR1: SIZEOF(QUERY(temp <* SELF\geometric_set.elements | 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SURFACE' IN TYPEOF(temp))) = 0; -END_ENTITY; -(* USED FROM (Specification_based_configuration_mim); *) -ENTITY configured_effectivity_assignment - SUBTYPE OF (effectivity_assignment); - items : SET [1:?] OF configured_effectivity_item; - WHERE - WR1: (SIZEOF(['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 | ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 | ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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,'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'EFFECTIVITY_CONTEXT_ASSIGNMENT.ASSIGNED_EFFECTIVITY_ASSIGNMENT') | 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CONFIGURED_EFFECTIVITY_CONTEXT_ASSIGNMENT' IN TYPEOF(x) )) = 1; -END_ENTITY; -(* USED FROM (aic_draughting_elements); *) -ENTITY structured_dimension_callout - SUBTYPE OF (draughting_callout); -WHERE - WR1: SIZEOF (TYPEOF (SELF) * - ['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.DATUM_FEATURE_CALLOUT', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.DATUM_TARGET_CALLOUT', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.GEOMETRICAL_TOLERANCE_CALLOUT', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LEADER_DIRECTED_CALLOUT', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROJECTION_DIRECTED_CALLOUT', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.DIMENSION_CURVE_DIRECTED_CALLOUT']) = 0; - WR2: SIZEOF (QUERY (ato <* QUERY (con <* SELF.contents | - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 | - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.ANNOTATION_TEXT_OCCURRENCE' - IN TYPEOF (con))) | - (ato.name = 'dimension value') - )) >= 1; - WR4: SIZEOF (QUERY (dcr <* USEDIN (SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + - 'DRAUGHTING_CALLOUT_RELATIONSHIP.' + - 'RELATING_DRAUGHTING_CALLOUT') | - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + - 'DIMENSION_CALLOUT_COMPONENT_RELATIONSHIP' IN TYPEOF (dcr)) AND - (dcr.name = 'prefix') )) <= 1; - WR5: SIZEOF (QUERY (dcr <* USEDIN (SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + - 'DRAUGHTING_CALLOUT_RELATIONSHIP.' + - 'RELATING_DRAUGHTING_CALLOUT') | - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + - 'DIMENSION_CALLOUT_COMPONENT_RELATIONSHIP' IN TYPEOF (dcr)) AND - (dcr.name = 'suffix') )) <= 1; - WR6: NOT((SIZEOF (QUERY (ato <* QUERY (con <* SELF.contents | - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.ANNOTATION_TEXT_OCCURRENCE' - IN TYPEOF(con)) ) | - (ato.name = 'prefix text') - )) > 0)) OR - (SIZEOF (QUERY (dcr <* USEDIN (SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + - 'DRAUGHTING_CALLOUT_RELATIONSHIP.' + - 'RELATING_DRAUGHTING_CALLOUT') | - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + - 'DIMENSION_CALLOUT_COMPONENT_RELATIONSHIP' IN TYPEOF (dcr)) AND - (dcr.name = 'prefix') )) = 1); - WR7: NOT(SIZEOF (QUERY (ato <* QUERY (con <* SELF.contents | - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.ANNOTATION_TEXT_OCCURRENCE' - IN TYPEOF(con))) | - (ato.name = 'suffix text') - )) > 0) OR - (SIZEOF (QUERY (dcr <* USEDIN (SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + - 'DRAUGHTING_CALLOUT_RELATIONSHIP.' + - 'RELATING_DRAUGHTING_CALLOUT') | - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + - 'DIMENSION_CALLOUT_COMPONENT_RELATIONSHIP' IN TYPEOF (dcr)) AND - (dcr.name = 'suffix') )) = 1); -END_ENTITY; -(* USED FROM (aic_csg); *) -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 ([ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CSG_SOLID', 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MAPPED_ITEM', 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.AXIS2_PLACEMENT_3D', 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SOLID_REPLICA', 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.REVOLVED_FACE_SOLID', 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.EXTRUDED_FACE_SOLID' ] * TYPEOF (it)) <> 1) )) = 0; -WR3 : -SIZEOF ( -QUERY ( mi <* -QUERY ( it <* SELF.items| ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MAPPED_ITEM' IN TYPEOF (it)) )| NOT ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CSG_SHAPE_REPRESENTATION' IN TYPEOF (mi\mapped_item.mapping_source.mapped_representation)) )) = 0; -WR4 : -SIZEOF ( -QUERY ( sr <* -QUERY ( it <* SELF.items| ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SOLID_REPLICA' IN TYPEOF (it)) )| ( SIZEOF ([ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CSG_SOLID', 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.REVOLVED_FACE_SOLID', 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.EXTRUDED_FACE_SOLID' ] * TYPEOF (sr\solid_replica.parent_solid)) = 0) )) = 0; -WR5 : -SIZEOF ( -QUERY ( it <* SELF.items| NOT ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.AXIS2_PLACEMENT_3D' IN TYPEOF (it)) )) > 0; - END_ENTITY ; -(* USED FROM (Component_grouping_mim); *) -ENTITY assembly_group_component_definition_placement_link - SUBTYPE OF (product_definition,product_definition_relationship); - SELF\product_definition_relationship.relating_product_definition : assembly_component; - SELF\product_definition_relationship.related_product_definition : assembly_component; -WHERE - WR1: SELF\product_definition_relationship.related_product_definition :<>: - SELF\product_definition_relationship.relating_product_definition; - WR2: acyclic_product_definition_relationship (SELF, - [SELF\product_definition_relationship.related_product_definition], - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.ASSEMBLY_GROUP_COMPONENT_DEFINITION_PLACEMENT_LINK'); -END_ENTITY; -(* USED FROM (aic_draughting_elements); *) -ENTITY radius_dimension - SUBTYPE OF (dimension_curve_directed_callout); -WHERE - WR1: SIZEOF (QUERY (con <* SELF.contents | - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROJECTION_CURVE' IN TYPEOF (con)))<=1; -END_ENTITY; -(* USED FROM (Specification_control_mim); *) - 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 ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PRODUCT_DEFINITION' IN TYPEOF(i)) )) = 0; - WR3: ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PRODUCT_CONCEPT_FEATURE_CATEGORY_USAGE' IN TYPEOF(i)) )) = 0); - END_ENTITY; -(* USED FROM (aic_draughting_elements); *) -ENTITY leader_directed_dimension - SUBTYPE OF (leader_directed_callout); -WHERE - WR1: SIZEOF (QUERY (con <* SELF.contents | - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LEADER_CURVE' IN TYPEOF (con)))=1; -END_ENTITY; -(* USED FROM (aic_draughting_elements); *) -ENTITY draughting_elements - SUBTYPE OF (draughting_callout); -WHERE - WR1: SIZEOF (QUERY (l_c <* QUERY (con <* SELF.contents | - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LEADER_CURVE' IN TYPEOF(con))) | - NOT (SIZEOF (QUERY (ldc <* USEDIN (l_c, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'DRAUGHTING_CALLOUT.CONTENTS') | - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LEADER_DIRECTED_CALLOUT' - IN TYPEOF (ldc)))) <= 1)))=0; - WR2: NOT ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.DIMENSION_CURVE_DIRECTED_CALLOUT' - IN TYPEOF(SELF)) OR - (SIZEOF (QUERY (con <* SELF.contents | - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROJECTION_CURVE' IN - TYPEOF (con)))) <= 2); - WR3: SIZEOF (QUERY (rc <* USEDIN (SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.DRAUGHTING_CALLOUT_' + - 'RELATIONSHIP.RELATING_DRAUGHTING_CALLOUT') | - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + - 'DIMENSION_CALLOUT_RELATIONSHIP' IN TYPEOF (rc)) AND - (rc.name = 'primary') )) <= 1; - WR4: SIZEOF (QUERY (rc <* USEDIN (SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.DRAUGHTING_CALLOUT_' + - 'RELATIONSHIP.RELATING_DRAUGHTING_CALLOUT') | - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + - 'DIMENSION_CALLOUT_RELATIONSHIP' IN TYPEOF (rc)) AND - (rc.name = 'secondary') )) <= 1; - WR5: SIZEOF (QUERY (sec <* QUERY (rc <* USEDIN (SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.DRAUGHTING_CALLOUT_' + - 'RELATIONSHIP.RELATING_DRAUGHTING_CALLOUT') | - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + - 'DIMENSION_CALLOUT_RELATIONSHIP' IN TYPEOF (rc)) AND - (rc.name = 'secondary') ) | - NOT (SIZEOF (QUERY (prim <* USEDIN (SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.DRAUGHTING_CALLOUT_' + - 'RELATIONSHIP.RELATING_DRAUGHTING_CALLOUT') | - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + - 'DIMENSION_CALLOUT_RELATIONSHIP' IN TYPEOF (prim)) AND - (prim.name = 'primary') )) = 1))) = 0; -END_ENTITY; -(* USED FROM (assembly_constraint_schema); *) -ENTITY fixed_constituent_assembly_constraint -SUBTYPE OF (assembly_geometric_constraint, - fixed_element_geometric_constraint); - fixed_constituent: representative_shape_representation; -WHERE -WR1: SELF\explicit_constraint.constrained_elements[1] - \geometric_representation_item.dim = 3; -WR2: (assembly_leaf (using_product_definition_of_shape_representation - (fixed_constituent)[1])); -WR3: (SIZEOF(SELF\explicit_constraint.constrained_elements) = 1) AND - (SIZEOF(SELF\explicit_constraint.reference_elements) = 0); -WR4: fixed_constituent IN (using_representations(SELF\explicit_constraint.constrained_elements[1]) + - using_representation_with_mapping(SELF\explicit_constraint.constrained_elements[1])); -END_ENTITY;-- fixed_constituent_assembly_constraint -(* USED FROM (topology_schema); *) -(* Pruned SUPERTYPE *) - 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; -(* USED FROM (aic_draughting_elements); *) -ENTITY dimension_callout_component_relationship - SUBTYPE OF (draughting_callout_relationship); -WHERE - WR1: SELF.name IN ['prefix', 'suffix']; - WR2: 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.STRUCTURED_DIMENSION_CALLOUT' - IN TYPEOF (SELF.relating_draughting_callout); - WR3: SIZEOF (TYPEOF (SELF.related_draughting_callout) * - ['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LEADER_DIRECTED_CALLOUT', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROJECTION_DIRECTED_CALLOUT', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.DIMENSION_CURVE_DIRECTED_CALLOUT', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 | - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 | - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.ANNOTATION_TEXT_OCCURRENCE' - IN TYPEOF(con))) | - NOT (ato.name = 'suffix text') - )) = 0)); -END_ENTITY; -(* USED FROM (Part_and_zone_laminate_tables_mim); *) - ENTITY ply_laminate_sequence_definition - SUBTYPE OF (product_definition); - WHERE - WR1: SIZEOF (QUERY (pdr <* USEDIN (SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + - 'PRODUCT_DEFINITION_RELATIONSHIP.' + - 'RELATING_PRODUCT_DEFINITION') | - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + - 'NEXT_ASSEMBLY_USAGE_OCCURRENCE' IN - TYPEOF (pdr))) > 0; - END_ENTITY; -(* USED FROM (presentation_appearance_schema); *) - 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 (['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + - 'SURFACE_STYLE_USAGE', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.'+ - 'EXTERNALLY_DEFINED_STYLE'] * - TYPEOF (style1)) = 1) - ))) = 0 - ))) = 0; - WR2: SIZEOF (QUERY (style1 <* SELF.styles | - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SURFACE_STYLE_USAGE' IN - TYPEOF(style1) - )) <= 2; - WR3: SIZEOF (QUERY (style1 <* SELF.styles | - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SURFACE_STYLE_USAGE' IN TYPEOF (style1)) AND - (SIZEOF (QUERY (style2 <* (SELF.styles - style1) | - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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; -(* USED FROM (presentation_definition_schema); *) -(* Pruned SUPERTYPE *) - ENTITY annotation_occurrence - SUPERTYPE OF ( ( ONEOF ( - ANNOTATION_CURVE_OCCURRENCE, - ANNOTATION_FILL_AREA_OCCURRENCE, - ANNOTATION_TEXT_OCCURRENCE, - ANNOTATION_SYMBOL_OCCURRENCE) )ANDOR( ONEOF ( - ANNOTATION_CURVE_OCCURRENCE, - ANNOTATION_FILL_AREA_OCCURRENCE, - ANNOTATION_PLANE, - ANNOTATION_SYMBOL_OCCURRENCE, - ANNOTATION_TEXT_OCCURRENCE, - TESSELLATED_ANNOTATION_OCCURRENCE) ) ) - SUBTYPE OF (styled_item); - WHERE - WR1: 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.GEOMETRIC_REPRESENTATION_ITEM' IN - TYPEOF (SELF); - WR2: SIZEOF (QUERY (reps <* using_representations(SELF) | - NOT('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.ANNOTATION_REPRESENTATION_SELECT' IN TYPEOF(reps)))) = 0; - END_ENTITY; -(* USED FROM (presentation_appearance_schema); *) - 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; -(* USED FROM (presentation_definition_schema); *) - 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 (['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.TEXT_LITERAL', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.ANNOTATION_TEXT', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.ANNOTATION_TEXT_CHARACTER', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.DEFINED_CHARACTER_GLYPH', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.COMPOSITE_TEXT'] * - TYPEOF (item)) = 0) - )) >= 1; - WR2: SIZEOF ( - QUERY (a2p <* - QUERY (item <* SELF\representation.items | - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.AXIS2_PLACEMENT' IN TYPEOF (item)) | - NOT ((SIZEOF ( - QUERY (at <* - QUERY (item <* SELF\representation.items | - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + - 'ANNOTATION_TEXT' IN TYPEOF (item)) | - (at\mapped_item.mapping_target :=: a2p))) >= 1) OR - (SIZEOF ( - QUERY (atc <* - QUERY (item <* SELF\representation.items | - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + - 'ANNOTATION_TEXT_CHARACTER' IN TYPEOF (item)) | - (atc\mapped_item.mapping_target :=: a2p))) >= 1) - ))) = 0; - END_ENTITY; -(* USED FROM (presentation_organization_schema); *) - ENTITY presentation_size; - unit : presentation_size_assignment_select; - size : planar_box; - UNIQUE - UR1: unit; - WHERE - WR1: (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PRESENTATION_REPRESENTATION' - IN TYPEOF (SELF.unit)) AND - item_in_context (SELF.size, - SELF.unit\representation.context_of_items) - ) - OR - (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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; -(* USED FROM (Characteristic_mim); *) - ENTITY table_representation_item - SUBTYPE OF (compound_representation_item); - WHERE - WR1: SIZEOF(QUERY(itet <* SELF\compound_representation_item.item_element | - NOT('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.ROW_REPRESENTATION_ITEM' IN TYPEOF(itet)) - )) = 0; - END_ENTITY; -(* USED FROM (solid_shape_element_schema); *) -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; -(* USED FROM (geometric_model_schema); *) -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; -(* USED FROM (shape_aspect_definition_schema); *) -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 | ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.DATUM' IN TYPEOF (sar\shape_aspect_relationship.related_shape_aspect)))) = 1; - WR2: SELF\shape_aspect.product_definitional = TRUE; -END_ENTITY; -(* USED FROM (shape_aspect_definition_schema); *) -ENTITY datum_feature - SUPERTYPE OF (ONEOF ( - DIMENSIONAL_LOCATION_WITH_DATUM_FEATURE, - DIMENSIONAL_SIZE_WITH_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 | ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.DATUM' IN TYPEOF (sar\shape_aspect_relationship.related_shape_aspect)))) = 1; - WR2: SELF\shape_aspect.product_definitional = TRUE; -END_ENTITY; -(* USED FROM (Value_with_unit_extension_mim); *) -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; -(* USED FROM (Extended_measure_representation_mim); *) - ENTITY value_range - SUBTYPE OF (compound_representation_item); - WHERE - WR1: ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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; -(* USED FROM (Document_assignment_mim); *) -ENTITY document_product_equivalence - SUBTYPE OF (document_product_association); -WHERE - WR1: SELF\document_product_association.name = 'equivalence'; - WR2: NOT ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'PRODUCT_RELATED_PRODUCT_CATEGORY.PRODUCTS') | prpc.name = 'document')) = 1)); - WR3: NOT ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PRODUCT_RELATED_PRODUCT_CATEGORY.PRODUCTS') | prpc.name = 'document')) = 1)); - WR4: NOT ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PRODUCT_RELATED_PRODUCT_CATEGORY.PRODUCTS') | prpc.name = 'document')) = 1)); -END_ENTITY; -(* USED FROM (geometry_schema); *) -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; -(* USED FROM (geometry_schema); *) -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; -(* USED FROM (Product_class_mim); *) -ENTITY product_concept_feature_category - SUBTYPE OF (group); -WHERE - WR1 : SIZEOF(QUERY(aga <* USEDIN( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'GROUP_ASSIGNMENT.ASSIGNED_GROUP' ) | - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.'+ 'APPLIED_GROUP_ASSIGNMENT' IN TYPEOF(aga)) AND - (( aga\group_assignment.role\object_role.name <> 'specification category member' ) OR - ( SIZEOF(QUERY (i <* aga\applied_group_assignment.items | ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.'+ 'PRODUCT_CONCEPT_FEATURE' IN TYPEOF ( i ) ) AND - NOT ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.'+ 'CONDITIONAL_CONCEPT_FEATURE' IN TYPEOF (i)))) <> SIZEOF (aga\applied_group_assignment.items) - )) - )) =0; -END_ENTITY; -(* USED FROM (aic_elementary_brep); *) - ENTITY elementary_brep_shape_representation - SUBTYPE OF (shape_representation); - WHERE - WR1 : SIZEOF (QUERY (it <* SELF.items | - NOT (SIZEOF (['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MANIFOLD_SOLID_BREP', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.FACETED_BREP', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MAPPED_ITEM', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.AXIS2_PLACEMENT_3D'] * - TYPEOF(it)) = 1))) = 0; - WR2 : SIZEOF (QUERY (it <* SELF.items | - SIZEOF(['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MANIFOLD_SOLID_BREP', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MAPPED_ITEM'] * TYPEOF(it)) =1 )) > 0; - WR3 : SIZEOF (QUERY (msb <* QUERY (it <* SELF.items | - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MANIFOLD_SOLID_BREP' IN TYPEOF(it)) | - NOT (SIZEOF (QUERY (csh <* msb_shells(msb) | - NOT (SIZEOF (QUERY(fcs <* csh.cfs_faces | - NOT('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.FACE_SURFACE' IN TYPEOF(fcs)))) = 0 - ))) = 0 - ))) = 0; - WR4 : SIZEOF (QUERY (msb <* QUERY (it <* SELF.items | - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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(('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.ELEMENTARY_SURFACE' IN - TYPEOF(fcs\face_surface.face_geometry)) - ))) = 0 - ))) = 0 - ))) = 0; - WR5 : SIZEOF (QUERY (msb <* QUERY (it <* SELF.items | - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 | - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.EDGE_LOOP' IN TYPEOF(bnds.bound)) | - NOT (SIZEOF (QUERY (oe <* elp_fbnds.bound\path.edge_list | - NOT('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.EDGE_CURVE' IN - TYPEOF(oe.edge_element)))) = 0 - ))) = 0 - ))) = 0 - ))) = 0 - ))) = 0; - WR6 : SIZEOF (QUERY (msb <* QUERY (it <* SELF.items | - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 | - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.EDGE_LOOP' IN TYPEOF(bnds.bound)) | - NOT (SIZEOF (QUERY (oe <* elp_fbnds.bound\path.edge_list | - NOT (SIZEOF (['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LINE', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CONIC', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 | - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 | - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.EDGE_LOOP' IN TYPEOF(bnds.bound)) | - NOT (SIZEOF (QUERY (oe <* elp_fbnds.bound\path.edge_list | - NOT(('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.VERTEX_POINT' IN TYPEOF(oe.edge_start)) - AND ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.VERTEX_POINT' IN - TYPEOF(oe.edge_end)) - ))) = 0 - ))) = 0 - ))) = 0 - ))) = 0 - ))) = 0; - WR8 : SIZEOF (QUERY (msb <* QUERY (it <* SELF.items | - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 | - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.EDGE_LOOP' IN TYPEOF(bnds.bound)) | - NOT (SIZEOF (QUERY (oe <* elp_fbnds.bound\path.edge_list | - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 | - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MANIFOLD_SOLID_BREP' IN TYPEOF(it)) | - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.ORIENTED_CLOSED_SHELL' IN TYPEOF - (msb\manifold_solid_brep.outer))) - = 0; - WR10 : SIZEOF (QUERY (brv <* QUERY (it <* items | - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 | - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MAPPED_ITEM' IN TYPEOF(it)) | - NOT ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.ELEMENTARY_BREP_SHAPE_REPRESENTATION' IN - TYPEOF(mi\mapped_item.mapping_source. - mapped_representation)))) = 0; - WR12 : SIZEOF (QUERY (msb <* QUERY (it <* SELF.items | - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 | - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.VERTEX_LOOP' IN TYPEOF(bnds.bound)) | - NOT(('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.VERTEX_POINT' IN - TYPEOF(vlp_fbnds\face_bound.bound\vertex_loop.loop_vertex)) AND - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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; -(* USED FROM (presentation_organization_schema); *) - ENTITY camera_image_2d_with_scale - SUBTYPE OF (camera_image); - DERIVE - scale : positive_ratio_measure := (SELF\mapped_item.mapping_target\planar_extent.size_in_x)/ - (SELF\mapped_item.mapping_source.mapping_origin\camera_model_d2.view_window\planar_extent.size_in_x); - WHERE - WR1: ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CAMERA_MODEL_D2' IN TYPEOF(SELF\mapped_item.mapping_source.mapping_origin)); - WR2: aspect_ratio (SELF\mapped_item.mapping_target) = aspect_ratio (SELF\mapped_item.mapping_source.mapping_origin\camera_model_d2.view_window); - WR3: SELF\mapped_item.mapping_source.mapping_origin\camera_model_d2.view_window_clipping; - END_ENTITY; -(* USED FROM (Draughting_element_specialisations_mim); *) - ENTITY surface_condition_callout - SUBTYPE OF (draughting_callout); - WHERE - WR1: SIZEOF ( QUERY ( c <* SELF.contents | SIZEOF ( - ['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.'+ 'ANNOTATION_CURVE_OCCURRENCE' , - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.'+ 'ANNOTATION_SYMBOL_OCCURRENCE' , - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.'+ 'ANNOTATION_TEXT_OCCURRENCE']* TYPEOF - ( c ) ) <>1 ) ) =0; - END_ENTITY; -(* USED FROM (drawing_definition_schema); *) -ENTITY drawing_sheet_revision - SUBTYPE OF (presentation_area); - revision_identifier : identifier; -WHERE - WR1: SIZEOF( QUERY(item <* SELF\representation.items | - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MAPPED_ITEM' IN (TYPEOF(item))) - AND - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.DRAWING_SHEET_REVISION' IN - (TYPEOF(item\mapped_item.mapping_source.mapped_representation)))))=0; -END_ENTITY; -(* USED FROM (Product_class_mim); *) -ENTITY package_product_concept_feature - SUBTYPE OF (product_concept_feature); -WHERE - WR1: NOT ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'CONDITIONAL_CONCEPT_FEATURE' IN TYPEOF ( SELF ) ) ; - WR2: SIZEOF ( QUERY ( cfr <* USEDIN ( SELF , 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'CONCEPT_FEATURE_RELATIONSHIP.' +'RELATING_PRODUCT_CONCEPT_FEATURE' ) | - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'CONCEPT_FEATURE_RELATIONSHIP_WITH_CONDITION' IN TYPEOF (cfr ) ) AND - (SIZEOF ( QUERY (ipcf <* USEDIN ( cfr , 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'CONDITIONAL_CONCEPT_FEATURE.' + 'CONDITION' ) | - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'INCLUSION_PRODUCT_CONCEPT_FEATURE' IN TYPEOF ( ipcf ) - )) = 1) - )) > 0; -END_ENTITY; -(* USED FROM (draughting_dimension_schema); *) -ENTITY dimension_callout - SUBTYPE OF (draughting_callout); -WHERE - WR1: ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LEADER_DIRECTED_CALLOUT' - IN (TYPEOF (SELF))) XOR - (SIZEOF (QUERY(dce_1 <* SELF\draughting_callout.contents | - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LEADER_CURVE' - IN (TYPEOF(dce_1))))) = 0); - WR2: ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROJECTION_DIRECTED_CALLOUT' - IN (TYPEOF (SELF))) XOR - (SIZEOF (QUERY(dce_1 <* SELF\draughting_callout.contents | - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROJECTION_CURVE' - IN (TYPEOF(dce_1))))) = 0); - WR3: -('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.DIMENSION_CURVE_DIRECTED_CALLOUT' - IN (TYPEOF (SELF))) XOR - (SIZEOF (QUERY(dce_1 <* SELF\draughting_callout.contents | - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.DIMENSION_CURVE' - IN (TYPEOF(dce_1))))) = 0); -END_ENTITY; -(* USED FROM (Product_class_mim); *) -ENTITY inclusion_product_concept_feature - SUBTYPE OF (conditional_concept_feature); - WHERE - WR1: NOT ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'PACKAGE_PRODUCT_CONCEPT_FEATURE' IN TYPEOF ( SELF ) ) ; - WR2: SIZEOF (QUERY( cfr <* USEDIN( SELF ,'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'CONCEPT_FEATURE_RELATIONSHIP.RELATING_PRODUCT_CONCEPT_FEATURE' ) | - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.'+ 'CONCEPT_FEATURE_RELATIONSHIP_WITH_CONDITION' IN TYPEOF( cfr ) - )) + - SIZEOF(QUERY( cfr <* USEDIN(SELF , 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'CONCEPT_FEATURE_RELATIONSHIP.RELATED_PRODUCT_CONCEPT_FEATURE' ) | - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'CONCEPT_FEATURE_RELATIONSHIP_WITH_CONDITION' IN TYPEOF(cfr) - )) = 0; - WR3: SELF.condition.conditional_operator.name = 'implication'; -END_ENTITY; -(* USED FROM (aic_machining_feature); *) -ENTITY thread_runout - SUBTYPE OF (shape_aspect); - WHERE - WR1: ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' - IN TYPEOF(SELF.of_shape)); - WR2: (SIZEOF(QUERY ( pd <* USEDIN(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(QUERY ( pdr <* USEDIN(pd, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') - IN TYPEOF(pdr.used_representation)) )) = 1)) )) = 0); - WR3: (SIZEOF(QUERY ( pd <* USEDIN(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') - IN TYPEOF(pdr.used_representation)) ) | - (NOT (SIZEOF (impl_rep.used_representation.items) = 3)) )) - = 0)) )) = 0); - WR4: SIZEOF( QUERY( pd <* USEDIN( SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (SIZEOF( QUERY( pdr <* USEDIN( pd, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' - IN TYPEOF(pdr.used_representation)) AND - (SIZEOF( QUERY( srwp_i <* pdr.used_representation.items | - NOT (srwp_i.name IN ['length of runout','pitch or dimension', - 'included or extra']) )) > 0 ) )) = 0 ) )) = 0; - WR5: (SIZEOF(QUERY ( pd <* USEDIN(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') - IN TYPEOF(pdr.used_representation)) ) | - (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | - ((SIZEOF([ - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * - TYPEOF(it)) = 2) AND (it.name = 'length of runout')) )) = 1)) )) - = 0)) )) <= 1); - WR6: (SIZEOF(QUERY ( pd <* USEDIN(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (( - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr. - used_representation)) ) | (NOT (SIZEOF(QUERY ( it <* - impl_rep.used_representation.items | - (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.DESCRIPTIVE_REPRESENTATION_ITEM' - IN TYPEOF(it)) AND (it.name = 'pitch or dimension') - AND (it.description IN ['pitch','pitch or dimension'])) - )) = 1)) )) = 0)) )) = 0); - WR7: (SIZEOF(QUERY ( pd <* USEDIN(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (( - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr. - used_representation)) ) | (NOT (SIZEOF(QUERY ( it <* - impl_rep.used_representation.items | - (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.DESCRIPTIVE_REPRESENTATION_ITEM' - IN TYPEOF(it)) AND (it.name = 'included or extra') - AND (it.description IN ['included','extra'])) - )) = 1)) )) = 0)) )) = 0); -END_ENTITY; -- thread_runout -(* USED FROM (aic_machining_feature); *) -ENTITY vee_profile - SUBTYPE OF (shape_aspect); - WHERE - WR1: 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.FEATURE_COMPONENT_DEFINITION' - IN TYPEOF (SELF.of_shape.definition); - WR2: SIZEOF (QUERY (pd <* USEDIN (SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - NOT (SIZEOF (QUERY (pdr <* USEDIN (pd, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' - IN TYPEOF (pdr.used_representation))) = 1))) = 0; - WR3: SIZEOF (QUERY (pd <* USEDIN (SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - NOT (SIZEOF (QUERY (impl_rep <* QUERY (pdr <* USEDIN (pd, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' - IN TYPEOF (pdr.used_representation)) | - (NOT (SIZEOF (impl_rep.used_representation.items) >= 3) - AND (SIZEOF (impl_rep.used_representation.items) <= 6)))) - = 0))) = 0; - WR4: SIZEOF( QUERY( pd <* USEDIN( SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - SIZEOF( QUERY( pdr <* USEDIN( pd, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' - IN TYPEOF(pdr.used_representation)) AND - (SIZEOF( QUERY( srwp_i <* pdr.used_representation.items | - (srwp_i.name = 'orientation') OR - (srwp_i.name = 'profile angle') OR - (srwp_i.name = 'tilt angle') OR - (srwp_i.name = 'profile radius') OR - (srwp_i.name = 'first length') OR - (srwp_i.name = 'second length') )) - = SIZEOF(pdr.used_representation.items)) )) = 1 )) = 1; - WR5: SIZEOF (QUERY (pd <* USEDIN (SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - NOT (SIZEOF (QUERY (impl_rep <* QUERY (pdr <* USEDIN (pd, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' - IN TYPEOF (pdr.used_representation)) | - NOT (SIZEOF (QUERY (it <* impl_rep.used_representation.items | - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PLACEMENT' IN TYPEOF (it)) AND - (it.name = 'orientation'))) = 1))) = 0))) = 0; - WR6: SIZEOF (QUERY (pd <* USEDIN (SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - NOT (SIZEOF (QUERY (impl_rep <* QUERY (pdr <* USEDIN (pd, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' - IN TYPEOF (pdr.used_representation)) | - NOT (SIZEOF (QUERY (it <* impl_rep.used_representation.items | - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM' - IN TYPEOF (it)) AND - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT' - IN TYPEOF (it\measure_with_unit.value_component)) AND - (it.name = 'profile radius'))) <= 1))) = 0))) = 0; - WR7: SIZEOF (QUERY (pd <* USEDIN (SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - NOT (SIZEOF (QUERY (impl_rep <* QUERY (pdr <* USEDIN (pd, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' - IN TYPEOF (pdr.used_representation)) | - NOT (SIZEOF (QUERY (it <* impl_rep.used_representation.items | - (SIZEOF - (['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PLANE_ANGLE_MEASURE_WITH_UNIT'] * - TYPEOF (it)) = 2) AND - (it.name = 'profile angle'))) = 1))) = 0))) = 0; - WR8: SIZEOF (QUERY (pd <* USEDIN (SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - NOT (SIZEOF (QUERY (impl_rep <* QUERY (pdr <* USEDIN (pd, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' - IN TYPEOF (pdr.used_representation)) | - NOT (SIZEOF (QUERY (it <* impl_rep.used_representation.items | - (SIZEOF - (['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PLANE_ANGLE_MEASURE_WITH_UNIT'] * - TYPEOF (it)) = 2) AND - (it.name = 'tilt angle'))) = 1))) = 0))) = 0; - WR9: SIZEOF (QUERY (pd <* USEDIN (SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - NOT (SIZEOF (QUERY (pdr <* USEDIN (pd, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PLANAR_SHAPE_REPRESENTATION' - IN TYPEOF (pdr.used_representation))AND - (pdr.used_representation.name = 'profile limit'))) <= 1))) = 0; - WR10: SIZEOF (QUERY (pd <* USEDIN (SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - NOT (SIZEOF (QUERY (impl_rep <* QUERY (pdr <* USEDIN (pd, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' - IN TYPEOF (pdr.used_representation)) | - NOT (SIZEOF (QUERY (it <* impl_rep.used_representation.items | - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM' - IN TYPEOF (it)) AND - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT' - IN TYPEOF (it\measure_with_unit.value_component)) AND - (it.name = 'first length'))) <= 1))) = 0))) = 0; - WR11: SIZEOF (QUERY (pd <* USEDIN (SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - NOT (SIZEOF (QUERY (impl_rep <* QUERY (pdr <* USEDIN (pd, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' - IN TYPEOF (pdr.used_representation)) | - NOT (SIZEOF (QUERY (it <* impl_rep.used_representation.items | - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM' - IN TYPEOF (it)) AND - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT' - IN TYPEOF (it\measure_with_unit.value_component)) AND - (it.name = 'second length'))) <= 1))) = 0))) = 0; -END_ENTITY; -- vee_profile -(* USED FROM (aic_machining_feature); *) -ENTITY turned_knurl - SUBTYPE OF (feature_definition); - WHERE - WR1: (SELF\characterized_object.description IN - ['diamond','diagonal','straight']); - WR2: SIZEOF( QUERY( pd <* USEDIN( SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - SIZEOF( QUERY( pdr <* USEDIN( pd, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN - TYPEOF(pdr.used_representation)) AND - ({6 <= SIZEOF(pdr.used_representation.items) <= 9}) )) = 1 )) = 1; - WR3: (SIZEOF(QUERY ( pd <* USEDIN(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') - IN TYPEOF(pdr.used_representation)) ) | - (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | - (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM' - IN TYPEOF(it)) AND - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.COUNT_MEASURE' - IN TYPEOF(it\measure_with_unit.value_component)) AND - (it.name = 'number of teeth')) )) <= 1)) )) = 0)) )) = 0); - WR4: (SIZEOF(QUERY ( pd <* USEDIN(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') - IN TYPEOF(pdr.used_representation)) ) | - (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | - ((SIZEOF([ - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] - * TYPEOF(it)) = 2) AND (it.name = 'major diameter'))))= 1)) )) - = 0)) )) = 0); - WR5: (SIZEOF(QUERY ( pd <* USEDIN(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') - IN TYPEOF(pdr.used_representation)) ) | - (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | - ((SIZEOF([ - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] - * TYPEOF(it)) = 2) AND (it.name = 'nominal diameter')) )) = 1)) )) - = 0)) )) = 0); - WR6: (SIZEOF(QUERY ( pd <* USEDIN(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY ( impl_rep <* - QUERY ( pdr <* USEDIN(pd,'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (( - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr. - used_representation)) ) | (NOT (SIZEOF(QUERY ( it <* - impl_rep.used_representation.items | ((SIZEOF([ - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] - * TYPEOF(it)) = 2) AND (it.name = 'tooth depth')) )) <= 1)) )) - = 0)) )) = 0); - WR7: (SIZEOF(QUERY ( pd <* USEDIN(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') - IN TYPEOF(pdr.used_representation)) ) | - (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | - ((SIZEOF([ - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * - TYPEOF(it)) = 2) AND (it.name = 'root fillet')) )) <= 1)) )) - = 0)) )) = 0); - WR8: (SIZEOF(QUERY ( pd <* USEDIN(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') - IN TYPEOF(pdr.used_representation)) ) | - (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | - ((SIZEOF([ - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * - TYPEOF(it)) = 2) AND (it.name = 'diametral pitch')) )) = 1)) )) - = 0)) )) = 0); - WR9: ((NOT (SELF\characterized_object.description IN - ['diamond','diagonal'])) OR ( - SIZEOF(QUERY ( pd <* USEDIN(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( - pd,'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (( - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr. - used_representation)) ) | (NOT (SIZEOF(QUERY ( it <* - impl_rep.used_representation.items | ((SIZEOF([ - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PLANE_ANGLE_MEASURE_WITH_UNIT'] - * TYPEOF(it)) = 2) AND (it.name = 'helix angle')) )) = 1)) )) - = 0)) )) = 0)); - WR10: ((NOT (SELF\characterized_object.description = 'diagonal')) OR - (SIZEOF(QUERY ( pd <* USEDIN(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') - IN TYPEOF(pdr.used_representation)) ) | - (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | - (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.DESCRIPTIVE_REPRESENTATION_ITEM' - IN TYPEOF(it)) AND (it.name = 'helix hand')) )) = 1)) )) - = 0)) )) = 0)); - WR11: (SIZEOF(QUERY ( pds <* QUERY ( pd <* USEDIN(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' - IN TYPEOF(pd)) ) | (NOT (SIZEOF(QUERY ( sa_occ <* USEDIN(pds, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE') | - ((sa_occ.description = 'partial area occurrence') AND - (SIZEOF(QUERY ( sdr <* QUERY ( sar <* USEDIN(sa_occ, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | - ((sar.description = 'applied area usage') AND - (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_DEFINING_RELATIONSHIP') IN TYPEOF(sar))) ) | - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.APPLIED_AREA' - IN TYPEOF(sdr.relating_shape_aspect)) )) = 1)) )) = 1)) )) = 0); - WR12: (SIZEOF(QUERY ( pds <* QUERY ( pd <* USEDIN(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' - IN TYPEOF(pd)) ) | - (NOT (SIZEOF(QUERY ( sa_occ <* USEDIN(pds, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE') | - ((SIZEOF(QUERY ( sdr <* QUERY ( sar <* USEDIN(sa_occ, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | - ((sar.description = 'applied shape') AND - (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_DEFINING_RELATIONSHIP') - IN TYPEOF(sar))) ) | - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT' - IN TYPEOF(sdr.relating_shape_aspect)) )) = 1)) )) = 1)) )) = 0); -END_ENTITY; -- turned_knurl -(* USED FROM (explicit_geometric_constraint_schema); *) -ENTITY curve_distance_geometric_constraint - SUBTYPE OF (explicit_geometric_constraint); - SELF\explicit_constraint.constrained_elements : SET[1:2] OF curve; - SELF\explicit_constraint.reference_elements : - SET[0:4] OF point_curve_or_surface_constraint_element; - near_points : SET[0:4] OF near_point_relationship; -WHERE - WR1: (SIZEOF(SELF\explicit_constraint.reference_elements) > 0) OR - (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CDGC_WITH_DIMENSION' - IN TYPEOF(SELF)) - AND (SIZEOF(SELF\explicit_constraint.constrained_elements) = 2)); - WR2: SIZEOF(near_points) <= - SIZEOF(SELF\explicit_constraint.reference_elements); - WR3: SIZEOF(QUERY(q <* near_points | NOT - (q\representation_item_relationship.relating_representation_item - IN SELF\explicit_constraint.reference_elements))) = 0; -END_ENTITY; -(* USED FROM (kinematic_structure_schema); *) -ENTITY mechanism_representation - SUBTYPE OF (representation); - SELF\representation.context_of_items : geometric_representation_context; - SELF\representation.items : SET[1:?] OF pair_representation_relationship; - represented_topology : kinematic_topology_representation_select; -DERIVE - represented_joints : SET[1:?] OF kinematic_joint := collect_joints(items); -WHERE - WR1: (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.KINEMATIC_TOPOLOGY_STRUCTURE' IN TYPEOF(represented_topology)) - AND (represented_joints :=: represented_topology.items)) OR - (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.KINEMATIC_TOPOLOGY_DIRECTED_STRUCTURE' IN TYPEOF(represented_topology)) - AND (represented_joints :=: get_kinematic_joints_from_oriented_joints(represented_topology.items))) OR - (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.KINEMATIC_TOPOLOGY_NETWORK_STRUCTURE' IN TYPEOF(represented_topology)) - AND (represented_joints :=: get_kinematic_joints_from_kinematic_loops(represented_topology.items))); -END_ENTITY; -(* USED FROM (product_definition_schema); *) - ENTITY product_category_relationship; - name : label; - description : OPTIONAL text; - category : product_category; - sub_category : product_category; - WHERE - WR1: acyclic_product_category_relationship(SELF, [SELF.sub_category]); - END_ENTITY; -(* USED FROM (kinematic_motion_representation_schema); *) -ENTITY kinematic_path - ABSTRACT SUPERTYPE OF (ONEOF ( - KINEMATIC_PATH_DEFINED_BY_NODES, - KINEMATIC_PATH_DEFINED_BY_CURVES)) - SUBTYPE OF (geometric_representation_item); - segments : LIST [1:?] OF kinematic_path_segment; - t_start : parameter_value; -DERIVE - n_segments : INTEGER := SIZEOF(segments); - closed_path : LOGICAL := segments[n_segments].transition <> discontinuous; -WHERE - WR1: SIZEOF(QUERY(using_rep <* using_representations(SELF)| - NOT('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.GEOMETRIC_REPRESENTATION_CONTEXT_WITH_PARAMETER' IN TYPEOF(using_rep.context_of_items))))= 0; - -- WR2 - parameters are increasing - -- WR3 - different end positions -END_ENTITY; -(* USED FROM (Part_and_zone_laminate_tables_mim); *) - ENTITY composite_assembly_sequence_definition - SUBTYPE OF (product_definition); - WHERE - WR1: SIZEOF (QUERY (pdr <* USEDIN (SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + - 'PRODUCT_DEFINITION_RELATIONSHIP.' + - 'RELATING_PRODUCT_DEFINITION') | - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + - 'NEXT_ASSEMBLY_USAGE_OCCURRENCE' IN - TYPEOF (pdr))) > 0; - END_ENTITY; -(* USED FROM (Inertia_characteristics_mim); *) -ENTITY moments_of_inertia_representation -SUBTYPE OF (representation); -WHERE -WR1: (SIZEOF(SELF.items) = 1) AND - (SIZEOF( QUERY( i <* SELF.items | ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'COMPOUND_REPRESENTATION_ITEM' IN TYPEOF(i)) AND - (i.name = 'moments of inertia matrix') )) = 1); -WR2: SIZEOF( QUERY( i <* SELF.items | ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'COMPOUND_REPRESENTATION_ITEM' IN TYPEOF(i)) AND - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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; -(* USED FROM (sketch_schema); *) -ENTITY implicit_explicit_positioned_sketch_relationship - SUBTYPE OF (representation_item_relationship); - SELF\representation_item_relationship.relating_representation_item - : repositioned_neutral_sketch; - SELF\representation_item_relationship.related_representation_item - : positioned_sketch; -WHERE - WR1: 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; -(* USED FROM (sketch_schema); *) -ENTITY neutral_sketch_representation - SUBTYPE OF (shape_representation); - neutral_sketch_semantics : curves_or_area; - SELF\representation.items : SET[1:?] OF sketch_element_select; -WHERE - WR1: SIZEOF(QUERY(q <* items | NOT( - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.GEOMETRIC_REPRESENTATION_ITEM' IN TYPEOF(q)) AND - (q\geometric_representation_item.dim = 3)))) = 0; -END_ENTITY; -(* USED FROM (kinematic_motion_representation_schema); *) -ENTITY interpolated_configuration_sequence - SUBTYPE OF (representation_item); - segments : LIST[2:?] OF interpolated_configuration_segment; -DERIVE - n_segments : INTEGER := SIZEOF(segments); - closed_interpolation : LOGICAL := segments[n_segments].interpolation <> discontinuous_interpolation_type; - configured_mechanism : mechanism_representation := segments[1].state.represented_mechanism; -WHERE - WR1: SIZEOF( QUERY(ics <* segments | ics.state.represented_mechanism :<>: configured_mechanism)) = 0; -END_ENTITY; -(* USED FROM (kinematic_structure_schema); *) -ENTITY high_order_kinematic_pair - ABSTRACT SUPERTYPE OF (ONEOF ( - LINEAR_FLEXIBLE_AND_PLANAR_CURVE_PAIR, - POINT_ON_SURFACE_PAIR, - POINT_ON_PLANAR_CURVE_PAIR, - PLANAR_CURVE_PAIR, - SURFACE_PAIR)) - SUBTYPE OF (kinematic_pair); -WHERE - WR1: SIZEOF( QUERY(lr <* SELF\kinematic_pair.associated_link_representations_2 | - NOT('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.RIGID_LINK_REPRESENTATION' IN TYPEOF(lr)))) = 0; -END_ENTITY; -(* USED FROM (kinematic_structure_schema); *) -ENTITY low_order_kinematic_pair_with_motion_coupling - ABSTRACT SUPERTYPE OF (ONEOF ( - GEAR_PAIR, - LINEAR_FLEXIBLE_AND_PINION_PAIR, - RACK_AND_PINION_PAIR, - SCREW_PAIR)) - SUBTYPE OF (kinematic_pair); -WHERE - WR1: SIZEOF( QUERY(lr <* SELF\kinematic_pair.associated_link_representations_2 | - NOT('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.RIGID_LINK_REPRESENTATION' IN TYPEOF(lr)))) = 0; -END_ENTITY; -(* USED FROM (kinematic_structure_schema); *) -ENTITY low_order_kinematic_pair - SUPERTYPE OF (ONEOF ( - REVOLUTE_PAIR, - CYLINDRICAL_PAIR, - SPHERICAL_PAIR, - SPHERICAL_PAIR_WITH_PIN, - PLANAR_PAIR, - UNCONSTRAINED_PAIR, - FULLY_CONSTRAINED_PAIR, - PRISMATIC_PAIR, - UNIVERSAL_PAIR, - LOW_ORDER_KINEMATIC_PAIR_WITH_RANGE)) - SUBTYPE OF (kinematic_pair); - t_x : BOOLEAN; - t_y : BOOLEAN; - t_z : BOOLEAN; - r_x : BOOLEAN; - r_y : BOOLEAN; - r_z : BOOLEAN; -WHERE - WR1: SIZEOF( QUERY(lr <* SELF\kinematic_pair.associated_link_representations_1 | - NOT('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.RIGID_LINK_REPRESENTATION' IN TYPEOF(lr)))) = 0; - WR2: SIZEOF( QUERY(lr <* SELF\kinematic_pair.associated_link_representations_2 | - NOT('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.RIGID_LINK_REPRESENTATION' IN TYPEOF(lr)))) = 0; -END_ENTITY; -(* USED FROM (assembly_feature_relationship_schema); *) -ENTITY shape_aspect_relationship_representation_association; - represented_shape_aspect_relationship: shape_aspect_relationship; - representing_representation_relationship : representation_relationship; -WHERE -WR1: ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.REPRESENTATIVE_SHAPE_REPRESENTATION' IN - TYPEOF(representing_representation_relationship\ - representation_relationship.rep_1)) AND - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.REPRESENTATIVE_SHAPE_REPRESENTATION' IN - TYPEOF(representing_representation_relationship\ - representation_relationship.rep_2)); -WR2: (represented_shape_aspect_relationship.relating_shape_aspect IN - using_shape_aspect_of_shape_representation - (representing_representation_relationship.rep_1)) AND - (represented_shape_aspect_relationship.related_shape_aspect IN - using_shape_aspect_of_shape_representation - (representing_representation_relationship.rep_2)); -WR3: ((find_representative_shape_representation_of_product_definition - (using_product_definition_of_shape_aspect - (represented_shape_aspect_relationship.relating_shape_aspect)). - context_of_items) :=: - (find_representative_shape_representation_of_shape_aspect - (represented_shape_aspect_relationship.relating_shape_aspect). - context_of_items)) AND - ((find_representative_shape_representation_of_product_definition - (using_product_definition_of_shape_aspect - (represented_shape_aspect_relationship.related_shape_aspect)). - context_of_items) :=: - (find_representative_shape_representation_of_shape_aspect - (represented_shape_aspect_relationship.related_shape_aspect). - context_of_items)); -WR4: using_product_definition_of_shape_aspect - (represented_shape_aspect_relationship.relating_shape_aspect) :<>: - using_product_definition_of_shape_aspect - (represented_shape_aspect_relationship.related_shape_aspect); -WR5: find_assembly_root ([using_product_definition_of_shape_aspect - (represented_shape_aspect_relationship.relating_shape_aspect)]) :=: - find_assembly_root ([using_product_definition_of_shape_aspect - (represented_shape_aspect_relationship.related_shape_aspect)]); -END_ENTITY; -- shape_aspect_relationship_representation_association -(* USED FROM (aic_geometrically_bounded_2d_wireframe); *) -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) * -['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.GEOMETRIC_CURVE_SET', -'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.AXIS2_PLACEMENT_2D', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MAPPED_ITEM']) = 1) - )) = 0; - WR3: SIZEOF (QUERY (item <* SELF.items | - SIZEOF (TYPEOF (item) * -['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.GEOMETRIC_CURVE_SET', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MAPPED_ITEM']) = 1 - )) >= 1; - WR4: SIZEOF (QUERY (mi <* QUERY (item <* SELF.items | - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MAPPED_ITEM' - IN TYPEOF (item))) | - NOT ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 | - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.GEOMETRIC_CURVE_SET' - IN TYPEOF (item))) | - NOT (SIZEOF (QUERY (elem <* gcs\geometric_set.elements | - NOT (SIZEOF (TYPEOF (elem) * - ['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.B_SPLINE_CURVE', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CIRCLE', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.COMPOSITE_CURVE', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.ELLIPSE', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.OFFSET_CURVE_2D', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.POINT', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.POLYLINE', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.TRIMMED_CURVE']) = - 1) - )) = 0) - )) = 0; - WR6: SIZEOF (QUERY (gcs <* QUERY (item <* SELF.items | - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.GEOMETRIC_CURVE_SET' - IN TYPEOF (item))) | - NOT (SIZEOF (QUERY (crv <* - QUERY (elem <* gcs\geometric_set.elements | - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CURVE' - IN TYPEOF (elem))) | - NOT (valid_basis_curve_in_2d_wireframe - (crv)) - )) = 0) - )) = 0; - WR7: SIZEOF (QUERY (gcs <* QUERY (item <* SELF.items | - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.GEOMETRIC_CURVE_SET' - IN TYPEOF (item))) | - NOT (SIZEOF (QUERY (pnt <* - QUERY (elem <* gcs\geometric_set.elements | - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.POINT' - IN TYPEOF(elem))) | - NOT (SIZEOF (TYPEOF (pnt) * - ['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CARTESIAN_POINT', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.POINT_ON_CURVE']) - = 1) - )) = 0) - )) = 0; -END_ENTITY; -(* USED FROM (assembly_feature_relationship_schema); *) -ENTITY representative_shape_representation - SUBTYPE OF (shape_representation); -WHERE -WR1: unique_in_product_definition (SELF) OR unique_in_shape_aspect (SELF); -END_ENTITY; -- representative_shape_representation -(* USED FROM (shape_data_quality_criteria_schema); *) - ENTITY free_edge - SUBTYPE OF(inapt_topology); - SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_logical_test; - WHERE - WR1 : validate_measured_data_type(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.BOOLEAN_VALUE'); - WR2 : validate_inspected_elements_type(SELF, - ['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CONNECTED_FACE_SET']); - WR3 : validate_locations_of_extreme_value_type(SELF, - ['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.EDGE_CURVE']); - WR4 : validate_accuracy_types(SELF, - []); - WR5 : SIZEOF(QUERY(sdqr <* bag_to_set(USEDIN(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.'+ - 'DATA_QUALITY_INSPECTION_RESULT.'+ - 'CRITERION_INSPECTED'))| - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.'+ - 'SHAPE_DATA_QUALITY_INSPECTION_RESULT' - IN TYPEOF(sdqr)) AND - (SIZEOF(QUERY(sdqiir <* bag_to_set(USEDIN(sdqr, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.'+ - 'DATA_QUALITY_INSPECTION_REPORT.'+ - 'INSPECTION_RESULT'))| - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.'+ - 'SHAPE_DATA_QUALITY_INSPECTION_INSTANCE_REPORT' - IN TYPEOF(sdqiir)) AND - (SIZEOF(QUERY(sdqiri <* sdqiir.inspected_instances| - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CLOSED_SHELL' - IN TYPEOF(sdqiri.inspected_elements[1])))) = 0) - )) = 0) - )) = 0; - END_ENTITY; -(* USED FROM (variational_representation_schema); *) -ENTITY variational_representation - SUBTYPE OF (representation); -INVERSE - cm_link : variational_current_representation_relationship FOR rep_1; -WHERE - WR1: SIZEOF(QUERY(q <* SELF\representation.items | - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.VARIATIONAL_REPRESENTATION_ITEM' - IN TYPEOF(q))) > 0; - WR2: SIZEOF(QUERY(q <* (SELF\representation.items - - cm_link.rep_2.items) | invalidate_vrep_item(q))) = 0; -END_ENTITY; -(* USED FROM (material_property_definition_schema); *) -ENTITY material_property -SUBTYPE OF (property_definition); -UNIQUE - UR1 : SELF\property_definition.name, SELF\property_definition.definition; -WHERE - WR1 : ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CHARACTERIZED_OBJECT' IN - TYPEOF(SELF\property_definition.definition)) OR - (SIZEOF(bag_to_set(USEDIN(SELF , - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + - 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')) - - QUERY(temp <* bag_to_set(USEDIN(SELF , - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + - 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')) | - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + - 'MATERIAL_PROPERTY_REPRESENTATION' IN - TYPEOF(temp)))) = 0); -END_ENTITY; -(* USED FROM (kinematic_structure_schema); *) -ENTITY screw_pair - SUBTYPE OF (low_order_kinematic_pair_with_motion_coupling); - pitch : length_measure; -WHERE - WR1: SIZEOF( QUERY(lr <* SELF\kinematic_pair.associated_link_representations_1 | - NOT('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.RIGID_LINK_REPRESENTATION' IN TYPEOF(lr)))) = 0; -END_ENTITY; -(* USED FROM (shape_data_quality_criteria_schema); *) - ENTITY shape_data_quality_value_range - SUBTYPE OF(compound_representation_item); - WHERE - WR1 : ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SET_REPRESENTATION_ITEM' - IN TYPEOF (SELF\compound_representation_item.item_element)) AND - ((SIZEOF(SELF\compound_representation_item.item_element) = 2) AND - ((SIZEOF(QUERY (i1 <* SELF\compound_representation_item.item_element | - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM' IN TYPEOF(i1)))) = 2) - OR (SIZEOF(QUERY (i2 <* SELF\compound_representation_item.item_element | - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.VALUE_REPRESENTATION_ITEM' IN TYPEOF(i2)))) = 2))) ; - WR2 : (SIZEOF(QUERY (i <* SELF\compound_representation_item.item_element - | (i.name = 'upper limit'))) = 1) - AND (SIZEOF(QUERY (i <* SELF\compound_representation_item.item_element - | (i.name = 'lower limit'))) = 1); - WR3 : (SIZEOF(QUERY(i1 <* SELF\compound_representation_item.item_element | - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM' IN TYPEOF (i1)) AND - (SIZEOF (QUERY (i2 <* SELF\compound_representation_item.item_element | - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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) - OR - (SIZEOF(QUERY(i1 <* SELF\compound_representation_item.item_element | - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.VALUE_REPRESENTATION_ITEM' IN TYPEOF (i1)) AND - (SIZEOF (QUERY (i2 <* SELF\compound_representation_item.item_element | - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.VALUE_REPRESENTATION_ITEM' IN TYPEOF (i2)) AND - (i1 :<>: i2) AND - (TYPEOF(i1\value_representation_item.value_component) = - TYPEOF(i2\value_representation_item.value_component))) - ) = 1))) = 2); - END_ENTITY; -(* USED FROM (parameterization_schema); *) -ENTITY fixed_instance_attribute_set - SUBTYPE OF (variational_representation_item); - fixed_attributes : SET[1:?] OF instance_attribute_reference; -WHERE - WR1: SIZEOF(QUERY(q <* using_representations(SELF) | - SIZEOF(QUERY(r <* q.items | - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.FIXED_INSTANCE_ATTRIBUTE_SET' - IN TYPEOF(r))) > 1)) = 0; -END_ENTITY; -(* USED FROM (aic_manifold_surface); *) -ENTITY manifold_surface_shape_representation - SUBTYPE OF (shape_representation); -WHERE - WR1: SIZEOF (QUERY (it <* SELF.items | - NOT (SIZEOF (['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHELL_BASED_SURFACE_MODEL', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MAPPED_ITEM', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.AXIS2_PLACEMENT_3D'] * TYPEOF (it)) = 1))) = 0; - WR2: SIZEOF (QUERY (it <* SELF.items | - SIZEOF (['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHELL_BASED_SURFACE_MODEL', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MAPPED_ITEM'] * TYPEOF (it)) = 1)) > 0; - WR3: SIZEOF (QUERY (mi <* QUERY (it <* SELF.items | - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MAPPED_ITEM' IN TYPEOF (it)) | - NOT (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 | - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHELL_BASED_SURFACE_MODEL' - IN TYPEOF (mr_it)))) > 0 )))) = 0; - WR4: SIZEOF (QUERY (sbsm <* QUERY (it <* SELF.items | - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHELL_BASED_SURFACE_MODEL' IN TYPEOF (it)) | - NOT (SIZEOF (QUERY (sh <* - sbsm\shell_based_surface_model.sbsm_boundary | - NOT (SIZEOF (['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.OPEN_SHELL', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.ORIENTED_CLOSED_SHELL', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CLOSED_SHELL'] - * TYPEOF (sh)) = 1))) = 0))) = 0; - WR5: SIZEOF (QUERY (sbsm <* QUERY (it <* SELF.items | - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.FACE_SURFACE' IN TYPEOF (fa)) )) = 0))) - = 0))) = 0; - WR6: SIZEOF (QUERY (sbsm <* QUERY (it <* SELF.items | - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 | - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.ADVANCED_FACE' IN TYPEOF (fa)) - OR - (SIZEOF (QUERY (bnds <* fa.bounds | - NOT (SIZEOF (['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.EDGE_LOOP', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.VERTEX_LOOP'] - * TYPEOF (bnds.bound)) = 1))) = 0)))) = 0))) = 0))) = 0; - WR8: SIZEOF (QUERY (sbsm <* QUERY (it <* SELF.items| - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.ADVANCED_FACE' IN TYPEOF (fa)) - OR - (SIZEOF (QUERY (elp_fbnds <* QUERY (bnds <* fa.bounds | - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.EDGE_LOOP' IN TYPEOF (bnds.bound)) | - NOT (SIZEOF (QUERY (oe <* elp_fbnds\path.edge_list | - NOT ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.EDGE_CURVE' IN TYPEOF - (oe.edge_element)))) = 0))) = 0)))) = 0))) = 0))) = 0; - WR9: SIZEOF (QUERY (sbsm <* QUERY (it <* SELF.items | - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.ADVANCED_FACE' IN TYPEOF (fa)) - OR - (SIZEOF (QUERY (elp_fbnds <* QUERY (bnds <* fa.bounds | - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.EDGE_LOOP' IN TYPEOF (bnds.bound)) | - NOT (SIZEOF (QUERY (oe_cv <* QUERY (oe <* - elp_fbnds\path.edge_list | - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.EDGE_CURVE' IN TYPEOF (oe.edge_element)) | - NOT (SIZEOF (['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.B_SPLINE_CURVE', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CONIC', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CURVE_REPLICA', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LINE', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.OFFSET_CURVE_3D', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PCURVE', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.POLYLINE', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 | - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.ADVANCED_FACE' IN TYPEOF (fa)) - OR - (SIZEOF (QUERY (elp_fbnds <* QUERY (bnds <* fa.bounds | - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 | - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.ADVANCED_FACE' IN TYPEOF (fa)) - OR - (SIZEOF (QUERY (elp_fbnds <* QUERY (bnds <* fa.bounds | - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.EDGE_LOOP' IN TYPEOF (bnds.bound)) | - NOT (SIZEOF (QUERY (oe <* elp_fbnds\path.edge_list| - NOT (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.VERTEX_POINT' IN TYPEOF - (oe.edge_element.edge_start)) - AND - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.VERTEX_POINT' IN - TYPEOF (oe.edge_element.edge_end))))) - = 0))) = 0)))) = 0))) = 0))) = 0; - WR12: SIZEOF (QUERY (sbsm <* QUERY (it <* SELF.items | - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.ADVANCED_FACE' IN TYPEOF (fa)) - OR - (SIZEOF (QUERY (elp_fbnds <* QUERY (bnds <* fa.bounds | - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.EDGE_LOOP' IN TYPEOF (bnds.bound)) | - NOT (SIZEOF (QUERY (oe <* elp_fbnds\path.edge_list | - NOT ((SIZEOF (['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CARTESIAN_POINT', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.DEGENERATE_PCURVE', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.POINT_ON_CURVE', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.POINT_ON_SURFACE'] * TYPEOF - (oe.edge_element.edge_start\vertex_point.vertex_geometry)) = 1) - AND - (SIZEOF (['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CARTESIAN_POINT', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.DEGENERATE_PCURVE', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.POINT_ON_CURVE', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 | - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.ADVANCED_FACE' IN TYPEOF (fa)) - OR - (SIZEOF (QUERY (vlp_fbnds <* QUERY (bnds <* fa.bounds | - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.VERTEX_LOOP' IN TYPEOF (bnds.bound)) | - NOT ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.VERTEX_POINT' IN TYPEOF - (vlp_fbnds\vertex_loop.loop_vertex)))) = 0)))) = 0))) - = 0))) = 0; - WR14: SIZEOF (QUERY (sbsm <* QUERY (it <* SELF.items | - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.ADVANCED_FACE' IN TYPEOF (fa)) - OR - (SIZEOF (QUERY (vlp_fbnds <* QUERY (bnds <* fa.bounds | - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.VERTEX_LOOP' IN TYPEOF (bnds.bound)) | - NOT (SIZEOF (['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CARTESIAN_POINT', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.DEGENERATE_PCURVE', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.POINT_ON_CURVE', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.POINT_ON_SURFACE'] * TYPEOF - (vlp_fbnds\vertex_loop.loop_vertex\vertex_point.vertex_geometry)) - = 1))) = 0)))) = 0))) = 0))) = 0; -END_ENTITY; -(* USED FROM (product_data_quality_criteria_schema); *) - ENTITY data_quality_measurement_requirement - SUBTYPE OF(representation_item); - WHERE - WR1 : SIZEOF(QUERY(q <* - bag_to_set( USEDIN(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.REPRESENTATION.ITEMS')) - |'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.'+ - 'DATA_QUALITY_INSPECTION_RESULT_REPRESENTATION' - IN TYPEOF(q)))=0; - END_ENTITY; -(* USED FROM (product_data_quality_criteria_schema); *) - ENTITY data_quality_criterion - SUBTYPE OF(representation_item); - WHERE - WR1 : SIZEOF(QUERY(q <* - bag_to_set( USEDIN(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.REPRESENTATION.ITEMS')) - |'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.'+ - 'DATA_QUALITY_INSPECTION_RESULT_REPRESENTATION' - IN TYPEOF(q)))=0; - END_ENTITY; -(* USED FROM (mathematical_functions_schema); *) -ENTITY listed_product_space - SUBTYPE OF (maths_space, generic_literal); - factors : LIST OF maths_space; -WHERE - WR1: SIZEOF (QUERY (space <* factors | - NOT (expression_is_constant(space)))) = 0; - WR2: no_cyclic_space_reference(SELF, []); - WR3: NOT (the_empty_space IN factors); -END_ENTITY; -(* USED FROM (date_time_schema); *) -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; -(* USED FROM (kinematic_structure_schema); *) -ENTITY universal_pair - SUBTYPE OF (low_order_kinematic_pair); - input_skew_angle : OPTIONAL plane_angle_measure; -DERIVE - SELF\low_order_kinematic_pair.t_x : BOOLEAN := FALSE; - SELF\low_order_kinematic_pair.t_y : BOOLEAN := FALSE; - SELF\low_order_kinematic_pair.t_z : BOOLEAN := FALSE; - SELF\low_order_kinematic_pair.r_x : BOOLEAN := TRUE; - SELF\low_order_kinematic_pair.r_y : BOOLEAN := FALSE; - SELF\low_order_kinematic_pair.r_z : BOOLEAN := TRUE; - skew_angle : plane_angle_measure := NVL (input_skew_angle, 0.0); -WHERE - WR1: COS (plane_angle_for_pair_in_radian (SELF, skew_angle)) - > 0.0; -END_ENTITY; -(* USED FROM (mathematical_functions_schema); *) -ENTITY finite_space - SUBTYPE OF (maths_space, generic_literal); - members : SET OF maths_value; -WHERE - WR1: VALUE_UNIQUE(members); - WR2: SIZEOF (QUERY (expr <* QUERY (member <* members | - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.GENERIC_EXPRESSION' IN TYPEOF (member)) - | NOT expression_is_constant(expr))) = 0; - WR3: no_cyclic_space_reference(SELF, []); -END_ENTITY; -(* USED FROM (procedural_shape_model_schema); *) -ENTITY explicit_procedural_geometric_representation_item_relationship - SUBTYPE OF (explicit_procedural_representation_item_relationship); - SELF\representation_item_relationship.relating_representation_item : - procedural_shape_representation_sequence; - SELF\representation_item_relationship.related_representation_item : - geometric_representation_item; -WHERE - WR1 : NOT ( - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROCEDURAL_SHAPE_REPRESENTATION_SEQUENCE' - IN TYPEOF( - SELF\representation_item_relationship.related_representation_item)); -END_ENTITY; -(* USED FROM (procedural_model_schema); *) -ENTITY explicit_procedural_representation_relationship - SUBTYPE OF (representation_relationship); - SELF\representation_relationship.rep_1 : procedural_representation; -WHERE - WR1 : (NOT ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROCEDURAL_REPRESENTATION' - IN TYPEOF(SELF\representation_relationship.rep_2))) AND - (NOT ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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; -(* USED FROM (presentation_organization_schema); *) - ENTITY presentation_area - SUBTYPE OF (presentation_representation); - WHERE - WR1: ((SIZEOF (QUERY (ais <* USEDIN (SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + - 'AREA_IN_SET.AREA') | - SIZEOF (USEDIN (ais, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + - 'PRESENTATION_SIZE.UNIT')) =1)) > 0) OR - (SIZEOF (USEDIN (SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + - 'PRESENTATION_SIZE.UNIT')) =1)); - END_ENTITY; -(* USED FROM (Generic_material_aspects_mim); *) - ENTITY general_material_property - SUBTYPE OF (general_property); - WHERE - WR1: SIZEOF( QUERY( gpa <* USEDIN(SELF,'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.GENERAL_PROPERTY_ASSOCIATION.BASE_DEFINITION') | - NOT ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MATERIAL_PROPERTY' IN TYPEOF(gpa\general_property_association.derived_definition)) )) = 0; - END_ENTITY; -(* USED FROM (aic_mechanical_design_geometric_presentation); *) - 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 | - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MAPPED_ITEM' - IN TYPEOF(it))) | NOT (SIZEOF( - ['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + - 'SHAPE_REPRESENTATION', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 | - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.STYLED_ITEM' - IN TYPEOF(it))) | - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MAPPED_ITEM' - IN TYPEOF(si\styled_item.item))) | NOT ( - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 | - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.STYLED_ITEM' - IN TYPEOF(it)) | NOT (SIZEOF(QUERY(psa <* si\styled_item.styles | - NOT (SIZEOF(QUERY(pss <* psa.styles | NOT (SIZEOF( - ['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.POINT_STYLE', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CURVE_STYLE', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SURFACE_STYLE_USAGE'] - * TYPEOF(pss)) = 1))) = 0))) = 0))) = 0; - WR4: SIZEOF(QUERY(si <* QUERY(it <* SELF.items | - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.STYLED_ITEM' - IN TYPEOF(it)) | - NOT (SIZEOF(QUERY(psbc <* QUERY(psa <* si\styled_item.styles | - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + - 'PRESENTATION_STYLE_BY_CONTEXT' IN TYPEOF(psa)) | NOT (SIZEOF( - ['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + - 'REPRESENTATION_ITEM', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.REPRESENTATION'] - * TYPEOF(psbc\presentation_style_by_context.style_context)) - = 1))) = 0))) = 0; - WR5: SIZEOF(QUERY(si <* QUERY(it <* SELF.items | - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.STYLED_ITEM' - IN TYPEOF(it)) | NOT (SIZEOF(QUERY(psa <* si\styled_item.styles | - NOT (SIZEOF(QUERY(ps <* QUERY(pss <* psa.styles | - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.POINT_STYLE' - IN TYPEOF(pss)) | NOT - (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + - 'POSITIVE_LENGTH_MEASURE' IN TYPEOF (ps\point_style.marker_size)) - AND (SIZEOF( - ['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.COLOUR_RGB', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + - 'DRAUGHTING_PRE_DEFINED_COLOUR'] - * TYPEOF(ps\point_style.marker_colour)) - = 1)))) = 0))) = 0))) = 0; - WR6: SIZEOF(QUERY(si <* QUERY(it <* SELF.items | - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.STYLED_ITEM' - IN TYPEOF(it)) | NOT (SIZEOF(QUERY(psa <* si\styled_item.styles | - NOT (SIZEOF(QUERY(cs <* QUERY(pss <* psa.styles | - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CURVE_STYLE' - IN TYPEOF(pss)) | NOT((SIZEOF( - ['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.COLOUR_RGB', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + - 'DRAUGHTING_PRE_DEFINED_COLOUR'] - * TYPEOF(cs\curve_style.curve_colour)) = 1) - AND - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + - 'POSITIVE_LENGTH_MEASURE' IN TYPEOF (cs\curve_style.curve_width)) - AND (SIZEOF( - ['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CURVE_STYLE_FONT', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 | - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.STYLED_ITEM' - IN TYPEOF(it)) | NOT (SIZEOF(QUERY(psa <* si\styled_item.styles | - NOT (SIZEOF(QUERY(ssu <* QUERY(pss <* psa.styles | - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SURFACE_STYLE_USAGE' - IN TYPEOF(pss)) | - NOT ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + - 'SURFACE_SIDE_STYLE' IN TYPEOF - (ssu\surface_style_usage.style)))) = 0))) = 0))) = 0; - WR8: SIZEOF(QUERY(si <* QUERY(it <* SELF.items | - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.STYLED_ITEM' - IN TYPEOF(it)) | NOT (SIZEOF(QUERY(psa <* si\styled_item.styles | - NOT (SIZEOF(QUERY(ssu <* QUERY(pss <* psa.styles | - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SURFACE_STYLE_USAGE' - IN TYPEOF(pss)) | NOT (SIZEOF(QUERY(sses <* - ssu\surface_style_usage.style\surface_side_style.styles | - NOT (SIZEOF( - ['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + - 'SURFACE_STYLE_PARAMETER_LINE', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + - 'SURFACE_STYLE_CONTROL_GRID', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + - 'SURFACE_STYLE_SILHOUETTE', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + - 'SURFACE_STYLE_SEGMENTATION_CURVE', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + - 'SURFACE_STYLE_FILL_AREA', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + - 'SURFACE_STYLE_BOUNDARY'] - * TYPEOF(sses)) = 1))) = 0))) = 0))) = 0))) = 0; - WR9: SIZEOF(QUERY(si <* QUERY(it <* SELF.items | - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.STYLED_ITEM' - IN TYPEOF(it)) | NOT (SIZEOF(QUERY(psa <* si\styled_item.styles | - NOT (SIZEOF(QUERY(ssu <* QUERY(pss <* psa.styles | - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SURFACE_STYLE_USAGE' - IN TYPEOF(pss)) | NOT (SIZEOF(QUERY(sspl <* QUERY(sses <* - ssu\surface_style_usage.style\surface_side_style.styles | - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + - 'SURFACE_STYLE_PARAMETER_LINE' IN TYPEOF(sses)) | - NOT (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CURVE_STYLE' - IN TYPEOF - (sspl\surface_style_parameter_line.style_of_parameter_lines)) - AND (SIZEOF( - ['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.COLOUR_RGB', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + - 'DRAUGHTING_PRE_DEFINED_COLOUR'] - * TYPEOF(sspl\surface_style_parameter_line. - style_of_parameter_lines\curve_style.curve_colour)) = 1) - AND ( - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + - 'POSITIVE_LENGTH_MEASURE' IN TYPEOF - (sspl\surface_style_parameter_line. - style_of_parameter_lines\curve_style.curve_width)) - AND (SIZEOF( - ['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CURVE_STYLE_FONT', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 | - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.STYLED_ITEM' - IN TYPEOF(it)) | NOT (SIZEOF(QUERY(psa <* si\styled_item.styles | - NOT (SIZEOF(QUERY(ssu <* QUERY(pss <* psa.styles | - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SURFACE_STYLE_USAGE' - IN TYPEOF(pss)) | NOT (SIZEOF(QUERY(sscg <* QUERY(sses <* - ssu\surface_style_usage.style\surface_side_style.styles | - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + - 'SURFACE_STYLE_CONTROL_GRID' IN TYPEOF(sses)) | - NOT (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CURVE_STYLE' - IN TYPEOF (sscg\surface_style_control_grid.style_of_control_grid)) - AND (SIZEOF( - ['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.COLOUR_RGB', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + - 'DRAUGHTING_PRE_DEFINED_COLOUR'] - * TYPEOF(sscg\surface_style_control_grid. - style_of_control_grid\curve_style.curve_colour)) = 1) - AND - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + - 'POSITIVE_LENGTH_MEASURE' IN TYPEOF - (sscg\surface_style_control_grid. - style_of_control_grid\curve_style.curve_width)) - AND (SIZEOF( - ['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CURVE_STYLE_FONT', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 | - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.STYLED_ITEM' - IN TYPEOF(it)) | - NOT (SIZEOF(QUERY(psa <* si\styled_item.styles | - NOT (SIZEOF(QUERY(ssu <* QUERY(pss <* psa.styles | - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SURFACE_STYLE_USAGE' - IN TYPEOF(pss)) | NOT (SIZEOF(QUERY(sssh <* QUERY(sses <* - ssu\surface_style_usage.style\surface_side_style.styles | - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + - 'SURFACE_STYLE_SILHOUETTE' IN TYPEOF(sses)) | - NOT (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CURVE_STYLE' - IN TYPEOF (sssh\surface_style_silhouette.style_of_silhouette)) - AND (SIZEOF( - ['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.COLOUR_RGB', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + - 'DRAUGHTING_PRE_DEFINED_COLOUR'] - * TYPEOF(sssh\surface_style_silhouette. - style_of_silhouette\curve_style.curve_colour)) = 1) - AND - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + - 'POSITIVE_LENGTH_MEASURE' IN TYPEOF - (sssh\surface_style_silhouette.style_of_silhouette\curve_style. - curve_width)) - AND (SIZEOF( - ['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CURVE_STYLE_FONT', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 | - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.STYLED_ITEM' - IN TYPEOF(it)) | NOT (SIZEOF(QUERY(psa <* si\styled_item.styles | - NOT (SIZEOF(QUERY(ssu <* QUERY(pss <* psa.styles | - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SURFACE_STYLE_USAGE' - IN TYPEOF(pss)) | NOT (SIZEOF(QUERY(sssc <* QUERY(sses <* - ssu\surface_style_usage.style\surface_side_style.styles | - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + - 'SURFACE_STYLE_SEGMENTATION_CURVE' IN TYPEOF(sses)) | - NOT (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CURVE_STYLE' - IN TYPEOF - (sssc\surface_style_segmentation_curve.style_of_segmentation_curve)) - AND (SIZEOF( - ['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.COLOUR_RGB', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + - 'DRAUGHTING_PRE_DEFINED_COLOUR'] - * TYPEOF(sssc\surface_style_segmentation_curve. - style_of_segmentation_curve\curve_style.curve_colour)) = 1) - AND - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + - 'POSITIVE_LENGTH_MEASURE' IN TYPEOF - (sssc\surface_style_segmentation_curve. - style_of_segmentation_curve\curve_style.curve_width)) - AND (SIZEOF( - ['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CURVE_STYLE_FONT', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 | - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.STYLED_ITEM' - IN TYPEOF(it)) | NOT (SIZEOF(QUERY(psa <* si\styled_item.styles | - NOT (SIZEOF(QUERY(ssu <* QUERY(pss <* psa.styles | - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SURFACE_STYLE_USAGE' - IN TYPEOF(pss)) | NOT (SIZEOF(QUERY(ssbd <* QUERY(sses <* - ssu\surface_style_usage.style\surface_side_style.styles | - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + - 'SURFACE_STYLE_BOUNDARY' IN TYPEOF(sses)) | - NOT (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CURVE_STYLE' - IN TYPEOF (ssbd\surface_style_boundary.style_of_boundary)) - AND (SIZEOF( - ['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.COLOUR_RGB', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + - 'DRAUGHTING_PRE_DEFINED_COLOUR'] - * TYPEOF(ssbd\surface_style_boundary. - style_of_boundary\curve_style.curve_colour)) = 1) - AND - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + - 'POSITIVE_LENGTH_MEASURE' IN TYPEOF (ssbd\surface_style_boundary. - style_of_boundary\curve_style.curve_width)) - AND (SIZEOF( - ['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CURVE_STYLE_FONT', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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; -(* USED FROM (kinematic_structure_schema); *) -ENTITY point_on_surface_pair - SUBTYPE OF (high_order_kinematic_pair); - pair_surface : surface; -WHERE - WR1: SIZEOF( QUERY(r <* SELF\kinematic_pair.associated_link_representations_1 | NOT(pair_surface IN r.items))) = 0; - WR2: SIZEOF( QUERY(lr <* SELF\kinematic_pair.associated_link_representations_1 | - NOT('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.RIGID_LINK_REPRESENTATION' IN TYPEOF(lr)))) = 0; -END_ENTITY; -(* USED FROM (kinematic_structure_schema); *) -ENTITY point_on_surface_pair_with_range - SUBTYPE OF (point_on_surface_pair); - range_on_pair_surface : rectangular_trimmed_surface; - lower_limit_yaw : OPTIONAL plane_angle_measure; - upper_limit_yaw : OPTIONAL plane_angle_measure; - lower_limit_pitch : OPTIONAL plane_angle_measure; - upper_limit_pitch : OPTIONAL plane_angle_measure; - lower_limit_roll : OPTIONAL plane_angle_measure; - upper_limit_roll : OPTIONAL plane_angle_measure; -WHERE - WR1: (NOT EXISTS(lower_limit_pitch) - OR - NOT EXISTS(upper_limit_pitch)) - XOR - (lower_limit_pitch < upper_limit_pitch); - WR2: (NOT EXISTS(lower_limit_yaw) - OR - NOT EXISTS(upper_limit_yaw)) - XOR - (lower_limit_yaw < upper_limit_yaw); - WR3: (NOT EXISTS(lower_limit_roll) - OR - NOT EXISTS(upper_limit_roll)) - XOR - (lower_limit_roll < upper_limit_roll); - WR4: SIZEOF( QUERY(r <* SELF\kinematic_pair.associated_link_representations_1 | NOT(range_on_pair_surface IN r.items))) = 0; -END_ENTITY; -(* USED FROM (kinematic_structure_schema); *) -ENTITY surface_pair - ABSTRACT SUPERTYPE OF (ONEOF ( - SLIDING_SURFACE_PAIR, - ROLLING_SURFACE_PAIR) - ANDOR - SURFACE_PAIR_WITH_RANGE) - SUBTYPE OF (high_order_kinematic_pair); - surface_1 : surface; - surface_2 : surface; - orientation : BOOLEAN; -WHERE - WR1: SIZEOF( QUERY(r <* SELF\kinematic_pair.associated_link_representations_1 | NOT(surface_1 IN r.items))) = 0; - WR2: SIZEOF( QUERY(r <* SELF\kinematic_pair.associated_link_representations_2 | NOT(surface_2 IN r.items))) = 0; - WR3: SIZEOF( QUERY(lr <* SELF\kinematic_pair.associated_link_representations_1 | - NOT('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.RIGID_LINK_REPRESENTATION' IN TYPEOF(lr)))) = 0; -END_ENTITY; -(* USED FROM (kinematic_structure_schema); *) -ENTITY surface_pair_with_range - SUBTYPE OF (surface_pair); - range_on_surface_1 : rectangular_trimmed_surface; - range_on_surface_2 : rectangular_trimmed_surface; - lower_limit_actual_rotation : OPTIONAL plane_angle_measure; - upper_limit_actual_rotation : OPTIONAL plane_angle_measure; -WHERE - WR1: SELF\surface_pair.surface_1 :=: range_on_surface_1.basis_surface; - WR2: SELF\surface_pair.surface_2 :=: range_on_surface_2.basis_surface; - WR3: (NOT EXISTS(lower_limit_actual_rotation) - OR - NOT EXISTS(upper_limit_actual_rotation)) - XOR - (lower_limit_actual_rotation < upper_limit_actual_rotation); - WR4: SIZEOF( QUERY(r <* SELF\kinematic_pair.associated_link_representations_1 | NOT(range_on_surface_1 IN r.items))) = 0; - WR5: SIZEOF( QUERY(r <* SELF\kinematic_pair.associated_link_representations_2 | NOT(range_on_surface_2 IN r.items))) = 0; -END_ENTITY; -(* USED FROM (aic_mechanical_design_geometric_presentation); *) - ENTITY mechanical_design_geometric_presentation_area - SUBTYPE OF (presentation_area); - SELF\representation.items : SET[1:?] OF mechanical_design_geometric_presentation_area_items; - WHERE - WR1: -- only presentation_views or axis2_placements in - -- mechanical_design_geometric_presentation_area - SIZEOF(QUERY(it1 <* SELF.items | - NOT ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MAPPED_ITEM' - IN TYPEOF(it1)) - OR - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PRESENTATION_VIEW' - IN TYPEOF - (it1\mapped_item.mapping_source.mapped_representation)))) = 0; - WR2: -- only mechanical_design_geometric_presentation_representation - -- via camera_image_3d_with_scale or axis2_placements in - -- presentation_views - SIZEOF(QUERY(pv <* QUERY(mi1 <* QUERY(it1 <* SELF.items | - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MAPPED_ITEM' - IN TYPEOF(it1)) | - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.AXIS2_PLACEMENT' - IN TYPEOF(it2)) - OR - (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MAPPED_ITEM' - IN TYPEOF(it2)) AND NOT - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + - 'CAMERA_IMAGE_3D_WITH_SCALE' IN TYPEOF(it2))) AND NOT ( - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PRESENTATION_VIEW' - IN TYPEOF - (it2\mapped_item.mapping_source.mapped_representation))) - OR - (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + - 'CAMERA_IMAGE_3D_WITH_SCALE' IN TYPEOF(it2)) - AND NOT ( - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + - 'MECHANICAL_DESIGN_GEOMETRIC_PRESENTATION_REPRESENTATION' - IN TYPEOF (it2\mapped_item.mapping_source.mapped_representation) )) - ))) = 0))) = 0; - WR3: (SIZEOF(QUERY(ps <* USEDIN (SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + - 'PRESENTATION_SIZE.UNIT') | - ((ps\presentation_size.size.size_in_x <= 0) - OR - (ps\presentation_size.size.size_in_y <= 0)))) = 0) - AND - (SIZEOF(QUERY(ais <* USEDIN (SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + - 'AREA_IN_SET.AREA') | - (SIZEOF(QUERY(ps <* USEDIN (ais, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + - 'PRESENTATION_SIZE.UNIT') | - ((ps\presentation_size.size.size_in_x <= 0) - OR - (ps\presentation_size.size.size_in_y <= 0)))) > 0))) = 0); - WR4: (SIZEOF(QUERY(ps <* USEDIN (SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + - 'PRESENTATION_SIZE.UNIT') | - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + - 'AXIS2_PLACEMENT_2D' IN TYPEOF (ps.size.placement)))) = 1) - AND - (SIZEOF(QUERY(ps <* USEDIN (SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + - 'PRESENTATION_SIZE.UNIT') | - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + - 'AXIS2_PLACEMENT_3D' IN TYPEOF (ps.size.placement)))) = 0) - OR - ((SIZEOF(QUERY(ais <* USEDIN (SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + - 'AREA_IN_SET.AREA') | - (SIZEOF(QUERY(ps <* USEDIN (ais, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + - 'PRESENTATION_SIZE.UNIT') | - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + - 'AXIS2_PLACEMENT_2D' IN TYPEOF (ps.size.placement)))) = 1))) = 1) - AND - (SIZEOF(QUERY(ais <* USEDIN (SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + - 'AREA_IN_SET.AREA') | - (SIZEOF(QUERY(ps <* USEDIN (ais, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + - 'PRESENTATION_SIZE.UNIT') | - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + - 'AXIS2_PLACEMENT_3D' IN TYPEOF (ps.size.placement)))) = 0))) = 1)); - END_ENTITY; -(* USED FROM (representation_schema); *) - ENTITY value_representation_item - SUBTYPE OF (representation_item); - value_component : measure_value; - WHERE - WR1: SIZEOF (QUERY (rep <* using_representations (SELF) | - NOT ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.GLOBAL_UNIT_ASSIGNED_CONTEXT' - IN TYPEOF (rep.context_of_items) - ))) = 0; - END_ENTITY; -(* USED FROM (kinematic_structure_schema); *) -ENTITY linear_flexible_and_planar_curve_pair - SUBTYPE OF (high_order_kinematic_pair); - pair_curve : curve; - orientation : BOOLEAN; -WHERE - WR1: SIZEOF( QUERY(r <* SELF\kinematic_pair.associated_link_representations_1 | NOT(pair_curve IN r.items))) = 0; - WR2: SIZEOF( QUERY(lr <* SELF\kinematic_pair.associated_link_representations_1 | - NOT('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LINEAR_FLEXIBLE_LINK_REPRESENTATION' IN TYPEOF(lr)))) = 0; -END_ENTITY; -(* USED FROM (kinematic_structure_schema); *) -ENTITY point_on_planar_curve_pair - SUBTYPE OF (high_order_kinematic_pair); - pair_curve : curve; - orientation : BOOLEAN; -WHERE - WR1: SIZEOF( QUERY(r <* SELF\kinematic_pair.associated_link_representations_1 | NOT(pair_curve IN r.items))) = 0; - WR2: SIZEOF( QUERY(lr <* SELF\kinematic_pair.associated_link_representations_1 | - NOT('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.RIGID_LINK_REPRESENTATION' IN TYPEOF(lr)))) = 0; -END_ENTITY; -(* USED FROM (kinematic_structure_schema); *) -ENTITY point_on_planar_curve_pair_with_range - SUBTYPE OF (point_on_planar_curve_pair); - range_on_pair_curve : trimmed_curve; - lower_limit_yaw : OPTIONAL plane_angle_measure; - upper_limit_yaw : OPTIONAL plane_angle_measure; - lower_limit_pitch : OPTIONAL plane_angle_measure; - upper_limit_pitch : OPTIONAL plane_angle_measure; - lower_limit_roll : OPTIONAL plane_angle_measure; - upper_limit_roll : OPTIONAL plane_angle_measure; -WHERE - WR1: (NOT EXISTS(lower_limit_pitch) - OR - NOT EXISTS(upper_limit_pitch)) - XOR - (lower_limit_pitch < upper_limit_pitch); - WR2: (NOT EXISTS(lower_limit_yaw) - OR - NOT EXISTS(upper_limit_yaw)) - XOR - (lower_limit_yaw < upper_limit_yaw); - WR3: (NOT EXISTS(lower_limit_roll) - OR - NOT EXISTS(upper_limit_roll)) - XOR - (lower_limit_roll < upper_limit_roll); - WR4: SIZEOF( QUERY(r <* SELF\kinematic_pair.associated_link_representations_1 | NOT(range_on_pair_curve IN r.items))) = 0; -END_ENTITY; -(* USED FROM (kinematic_structure_schema); *) -ENTITY planar_curve_pair - SUPERTYPE OF (ONEOF ( - SLIDING_CURVE_PAIR, - ROLLING_CURVE_PAIR) - ANDOR - PLANAR_CURVE_PAIR_RANGE) - SUBTYPE OF (high_order_kinematic_pair); - curve_1 : curve; - curve_2 : curve; - orientation : BOOLEAN; -WHERE - WR1: SIZEOF( QUERY(r <* SELF\kinematic_pair.associated_link_representations_1 | NOT(curve_1 IN r.items))) = 0; - WR2: SIZEOF( QUERY(r <* SELF\kinematic_pair.associated_link_representations_2 | NOT(curve_2 IN r.items))) = 0; - WR3: SIZEOF( QUERY(lr <* SELF\kinematic_pair.associated_link_representations_1 | - NOT('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.RIGID_LINK_REPRESENTATION' IN TYPEOF(lr)))) = 0; -END_ENTITY; -(* USED FROM (kinematic_structure_schema); *) -ENTITY planar_curve_pair_range - SUBTYPE OF (planar_curve_pair); - range_on_curve_1 : trimmed_curve; - range_on_curve_2 : trimmed_curve; -WHERE - WR1: SELF\planar_curve_pair.curve_1 :=: range_on_curve_1.basis_curve; - WR2: SELF\planar_curve_pair.curve_2 :=: range_on_curve_2.basis_curve; - WR3: SIZEOF( QUERY(r <* SELF\kinematic_pair.associated_link_representations_1 | NOT(range_on_curve_1 IN r.items))) = 0; - WR4: SIZEOF( QUERY(r <* SELF\kinematic_pair.associated_link_representations_2 | NOT(range_on_curve_2 IN r.items))) = 0; -END_ENTITY; -(* USED FROM (geometry_schema); *) -(* Pruned SUPERTYPE *) -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, - PRIMITIVE_2D, - RIGHT_ANGULAR_WEDGE, - VOLUME, - HALF_SPACE_SOLID, - SHELL_BASED_SURFACE_MODEL, - FACE_BASED_SURFACE_MODEL, - SHELL_BASED_WIREFRAME_MODEL, - EDGE_BASED_WIREFRAME_MODEL, - GEOMETRIC_SET, - TESSELLATED_ITEM) )ANDOR( (ONEOF ( - CAMERA_MODEL, - CAMERA_MODEL_D3_MULTI_CLIPPING_INTERSECTION, - CAMERA_MODEL_D3_MULTI_CLIPPING_UNION, - CURVE, - DIRECTION, - LIGHT_SOURCE)) )ANDOR( (ONEOF ( - ANNOTATION_FILL_AREA, - COMPOSITE_TEXT, - CURVE, - DEFINED_CHARACTER_GLYPH, - DEFINED_SYMBOL, - POINT, - SYMBOL_TARGET, - TEXT_LITERAL)) )ANDOR( (ONEOF ( - CURVE, - EXTERNALLY_DEFINED_HATCH_STYLE, - EXTERNALLY_DEFINED_TILE_STYLE, - FILL_AREA_STYLE_HATCHING, - FILL_AREA_STYLE_TILE_COLOURED_REGION, - FILL_AREA_STYLE_TILE_CURVE_WITH_STYLE, - FILL_AREA_STYLE_TILE_SYMBOL_WITH_STYLE, - FILL_AREA_STYLE_TILES, - ONE_DIRECTION_REPEAT_FACTOR, - POINT, - VECTOR)) )ANDOR( ONEOF ( - KINEMATIC_PATH, - PLACEMENT) )ANDOR( (ONEOF ( - CURVE, - PLANAR_EXTENT)) )ANDOR( ONEOF ( - ROTATION_ABOUT_DIRECTION, - SU_PARAMETERS) ) ) - SUBTYPE OF (representation_item); -DERIVE - dim : dimension_count := dimension_of(SELF); -WHERE - WR1: SIZEOF (QUERY (using_rep <* using_representations (SELF) | NOT ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.GEOMETRIC_REPRESENTATION_CONTEXT' IN TYPEOF (using_rep.context_of_items)))) = 0; -END_ENTITY; -(* USED FROM (geometry_schema); *) -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; -(* USED FROM (kinematic_structure_schema); *) -ENTITY gear_pair - SUBTYPE OF (low_order_kinematic_pair_with_motion_coupling); - radius_first_link : length_measure; - radius_second_link : length_measure; - bevel : plane_angle_measure; - helical_angle : plane_angle_measure; - gear_ratio : REAL; -WHERE - WR1: SIZEOF( QUERY(lr <* SELF\kinematic_pair.associated_link_representations_1 | - NOT('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.RIGID_LINK_REPRESENTATION' IN TYPEOF(lr)))) = 0; -END_ENTITY; -(* USED FROM (geometric_model_schema); *) -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; -(* USED FROM (kinematic_structure_schema); *) -ENTITY rack_and_pinion_pair - SUBTYPE OF (low_order_kinematic_pair_with_motion_coupling); - pinion_radius : length_measure; -WHERE - WR1: SIZEOF( QUERY(lr <* SELF\kinematic_pair.associated_link_representations_1 | - NOT('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.RIGID_LINK_REPRESENTATION' IN TYPEOF(lr)))) = 0; -END_ENTITY; -(* USED FROM (aic_geometrically_bounded_surface); *) -ENTITY geometrically_bounded_surface_shape_representation - SUBTYPE OF (shape_representation); -WHERE - WR1: SIZEOF(QUERY(it <* SELF.items | NOT (SIZEOF(['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.GEOMETRIC_SET', 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MAPPED_ITEM', 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.AXIS2_PLACEMENT_3D'] * TYPEOF(it)) = 1))) = 0; - WR2: SIZEOF(QUERY(it <* SELF.items | SIZEOF(['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.GEOMETRIC_SET', 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MAPPED_ITEM'] * TYPEOF(it)) = 1)) > 0; - WR3: SIZEOF(QUERY(mi <* QUERY(it <* SELF.items | 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MAPPED_ITEM' IN TYPEOF(it)) | NOT (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 | ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.GEOMETRIC_SET' IN TYPEOF(mr_it)))) > 0)))) = 0; - WR4: SIZEOF(QUERY(gs <* QUERY(it <* SELF.items | 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.GEOMETRIC_SET' IN TYPEOF(it)) | NOT (SIZEOF(QUERY(pnt <* QUERY(gsel <* gs\geometric_set.elements | 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.POINT' IN TYPEOF(gsel)) | NOT (gbsf_check_point(pnt)))) = 0))) = 0; - WR5: SIZEOF(QUERY(gs <* QUERY(it <* SELF.items | 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.GEOMETRIC_SET' IN TYPEOF(it)) | NOT (SIZEOF(QUERY(cv <* QUERY(gsel <* gs\geometric_set.elements | 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CURVE' IN TYPEOF(gsel)) | NOT (gbsf_check_curve(cv)))) = 0))) = 0; - WR6: SIZEOF(QUERY(gs <* QUERY(it <* SELF.items | 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.GEOMETRIC_SET' IN TYPEOF(it)) | NOT (SIZEOF(QUERY(sf <* QUERY(gsel <* gs\geometric_set.elements | 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SURFACE' IN TYPEOF(gsel)) | NOT (gbsf_check_surface(sf)))) = 0))) = 0; - WR7: SIZEOF(QUERY(gs <* QUERY(it <* SELF.items | 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.GEOMETRIC_SET' IN TYPEOF(it)) | SIZEOF(QUERY(gsel <* gs\geometric_set.elements | 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SURFACE' IN TYPEOF(gsel))) > 0)) > 0; -END_ENTITY; -(* USED FROM (kinematic_structure_schema); *) -ENTITY linear_flexible_and_pinion_pair - SUBTYPE OF (low_order_kinematic_pair_with_motion_coupling); - pinion_radius : length_measure; -WHERE - WR1: SIZEOF( QUERY(lr <* SELF\kinematic_pair.associated_link_representations_1 | - NOT('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LINEAR_FLEXIBLE_LINK_REPRESENTATION' IN TYPEOF(lr)))) = 0; -END_ENTITY; -(* USED FROM (geometry_schema); *) -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; -(* USED FROM (kinematic_property_schema); *) -ENTITY kinematic_property_mechanism_representation - SUBTYPE OF (kinematic_property_definition_representation); - SELF\property_definition_representation.used_representation : mechanism_representation; - base : kinematic_link_representation; -WHERE - WR1: SIZEOF( QUERY( i <* used_representation.items | - (base :=: i\representation_relationship.rep_1) OR - (base :=: i\representation_relationship.rep_2))) > 0; -END_ENTITY; -(* USED FROM (geometry_schema); *) -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; -(* USED FROM (shape_aspect_definition_schema); *) -ENTITY datum - SUBTYPE OF (shape_aspect); - identification : identifier; -INVERSE - established_by_relationships : SET[1:?] OF shape_aspect_relationship FOR related_shape_aspect; -UNIQUE - UR1: identification,SELF\shape_aspect.of_shape; -WHERE - WR1: ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.COMMON_DATUM' IN TYPEOF(SELF)) - XOR ((SIZEOF(QUERY(x <* SELF\datum.established_by_relationships | - SIZEOF(['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.DATUM_FEATURE', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.DATUM_TARGET'] * - TYPEOF(x\shape_aspect_relationship.relating_shape_aspect)) = 1)) >= 1)); - WR2: SIZEOF(QUERY(x <* SELF\datum.established_by_relationships | - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.DATUM_FEATURE' IN TYPEOF(x\shape_aspect_relationship.relating_shape_aspect)))) <= 1; - WR3: SELF\shape_aspect.product_definitional = FALSE; - WR4: SELF\shape_aspect.name = ''; -END_ENTITY; -(* USED FROM (shape_aspect_definition_schema); *) -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 (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.DATUM' IN TYPEOF (sar.related_shape_aspect)) AND NOT ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.COMMON_DATUM' IN TYPEOF (sar.related_shape_aspect))) )) = 0; -END_ENTITY; -(* USED FROM (geometry_schema); *) -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; -(* USED FROM (geometry_schema); *) -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; -(* USED FROM (geometry_schema); *) -ENTITY composite_curve - SUBTYPE OF (bounded_curve); - segments : LIST[1:?] OF composite_curve_segment; - self_intersect : LOGICAL; -DERIVE - n_segments : INTEGER := SIZEOF(segments); - closed_curve : LOGICAL := segments[n_segments].transition <> discontinuous; -WHERE - WR1: ((NOT closed_curve) AND (SIZEOF(QUERY(temp <* segments | temp.transition = discontinuous)) = 1)) OR ((closed_curve) AND (SIZEOF(QUERY(temp <* segments | temp.transition = discontinuous)) = 0)); -END_ENTITY; -(* USED FROM (Specified_product_mim); *) - ENTITY product_identification - SUBTYPE OF (configuration_item, characterized_object); - SELF\configuration_item.item_concept : product_class; - WHERE - WR1 : SIZEOF(QUERY - ( cd <* USEDIN ( SELF ,'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CONFIGURATION_DESIGN.CONFIGURATION' ) - | - ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.'+ 'PRODUCT_DEFINITION_FORMATION' IN TYPEOF ( cd. design ) ) - AND - ( SIZEOF ( QUERY - ( - prpc <* USEDIN ( cd. design\product_definition_formation.of_product , 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PRODUCT_RELATED_PRODUCT_CATEGORY.PRODUCTS') - | - prpc. name IN ['part' , 'raw material' , 'tool'] ) ) >0 - ) - ) - ) <=1; - WR2 : NOT ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.'+ 'CONFIGURABLE_ITEM' IN TYPEOF( SELF ) ) - XOR ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.'+ 'PRODUCT_SPECIFICATION' IN TYPEOF ( SELF ) ) ; - END_ENTITY; -(* USED FROM (aic_draughting_annotation); *) -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 ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.NULL_STYLE' - IN TYPEOF (sty.styles[1])) ))=0; - WR3: ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.ANNOTATION_SYMBOL' - IN TYPEOF (SELF.item)); - WR4: ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.DRAUGHTING_SUBFIGURE_REPRESENTATION' - IN TYPEOF - (SELF.item\mapped_item.mapping_source.mapped_representation)); -END_ENTITY; -(* USED FROM (aic_draughting_annotation); *) -ENTITY draughting_subfigure_representation - SUBTYPE OF (symbol_representation); - SELF\representation.items : SET[1:?] OF draughting_subfigure_representation_item; -WHERE - WR1: SIZEOF (QUERY (item <* SELF\representation.items | - SIZEOF (['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.ANNOTATION_OCCURRENCE', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.DRAUGHTING_CALLOUT'] * - TYPEOF (item)) = 1)) >= 1; - WR2: SIZEOF (QUERY (srm <* QUERY (rm <* - USEDIN (SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + - 'REPRESENTATION_MAP.MAPPED_REPRESENTATION') | - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SYMBOL_REPRESENTATION_MAP' - IN TYPEOF(rm))) | - NOT (SIZEOF (QUERY (a_s <* QUERY (mi <* srm.map_usage | - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.ANNOTATION_SYMBOL' IN TYPEOF(mi))) - | NOT (SIZEOF (QUERY (aso <* - USEDIN (a_s, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + - 'STYLED_ITEM.ITEM') | - NOT ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.ANNOTATION_SUBFIGURE_OCCURRENCE' - IN TYPEOF(aso)))) = 0))) = 0))) > 0; - WR3: SIZEOF (SELF.context_of_items.representations_in_context) = 1; -END_ENTITY; -(* USED FROM (aic_draughting_annotation); *) -ENTITY draughting_annotation_occurrence - SUBTYPE OF (annotation_occurrence); -WHERE - WR1: -- curve_has_curve_style: - (NOT ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.ANNOTATION_CURVE_OCCURRENCE' - IN TYPEOF (SELF))) OR - (SIZEOF (QUERY (sty <* SELF.styles | - NOT ((SIZEOF (sty.styles) = 1) - AND ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CURVE_STYLE' - IN TYPEOF (sty.styles[1]))) )) = 0); - WR2: -- fill_area_has_fill_style: - (NOT ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.ANNOTATION_FILL_AREA_OCCURRENCE' - IN TYPEOF (SELF))) OR (SIZEOF (QUERY (sty <* SELF.styles | - NOT ((SIZEOF (sty.styles) = 1) - AND ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.FILL_AREA_STYLE' - IN TYPEOF (sty.styles[1]))) )) = 0); - WR3: -- styled_fill_boundaries: - (NOT ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + - 'STYLED_ITEM.ITEM') | - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + - 'ANNOTATION_CURVE_OCCURRENCE' IN TYPEOF (si)))) > 0))) = 0); - WR4: -- symbol_has_symbol_style: - (NOT ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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]) * - ['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SYMBOL_STYLE', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.NULL_STYLE']) = 1)) )) = 0); - WR5: -- allowable_symbol_representations: - (NOT (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.ANNOTATION_SYMBOL_OCCURRENCE' - IN TYPEOF (SELF)) AND - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.ANNOTATION_SYMBOL' - IN TYPEOF(SELF.item)))) OR - (SIZEOF (['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + - 'DRAUGHTING_SYMBOL_REPRESENTATION', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + - 'DRAUGHTING_SUBFIGURE_REPRESENTATION'] * - TYPEOF (SELF.item\mapped_item.mapping_source. - mapped_representation)) = 1); - WR6: -- text_has_text_style: - (NOT ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.ANNOTATION_TEXT_OCCURRENCE' - IN TYPEOF (SELF))) OR - (SIZEOF (QUERY (sty <* SELF.styles | - NOT ((SIZEOF (sty.styles) = 1) - AND ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.TEXT_STYLE' - IN TYPEOF (sty.styles[1]))) )) = 0); - WR7: -- allowable_text: - (NOT('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.ANNOTATION_TEXT_OCCURRENCE' - IN TYPEOF (SELF))) OR - (SIZEOF (TYPEOF(SELF.item) * - ['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.COMPOSITE_TEXT', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.TEXT_LITERAL']) = 1); - WR8: -- text_not_nested: - (NOT (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.ANNOTATION_TEXT_OCCURRENCE' - IN TYPEOF (SELF)) AND - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.COMPOSITE_TEXT' - IN TYPEOF (SELF.item)))) OR (SIZEOF (QUERY (tl <* - SELF.item\composite_text.collected_text | - NOT ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.TEXT_LITERAL' - IN TYPEOF (tl)) )) = 0); - WR9: -- text_alignment_literals: - (NOT (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.ANNOTATION_TEXT_OCCURRENCE' - IN TYPEOF (SELF)) AND - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.TEXT_LITERAL' - IN TYPEOF (SELF.item)))) OR (SELF.item\text_literal.alignment - IN ['baseline left', 'baseline centre', 'baseline right']); - WR10: -- text_alignment_composites: - (NOT (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.ANNOTATION_TEXT_OCCURRENCE' - IN TYPEOF (SELF)) AND - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.COMPOSITE_TEXT' - IN TYPEOF (SELF.item)))) OR - (SIZEOF (QUERY (tl <* QUERY (text <* SELF. - item\composite_text.collected_text - |('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.TEXT_LITERAL' IN TYPEOF(text))) | - NOT (tl\text_literal.alignment IN - ['baseline left', 'baseline centre', 'baseline right']) )) = 0); - WR11: -- single_text_alignment: - NOT (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.ANNOTATION_TEXT_OCCURRENCE' - IN TYPEOF(SELF)) AND - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.COMPOSITE_TEXT' - IN TYPEOF (SELF.item))) OR check_text_alignment(SELF.item); - WR12: -- single_text_font: - NOT (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.ANNOTATION_TEXT_OCCURRENCE' - IN TYPEOF(SELF)) AND - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.COMPOSITE_TEXT' - IN TYPEOF (SELF.item))) OR check_text_font(SELF.item); - WR13: -- allowable_text_literals: - (NOT (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.ANNOTATION_TEXT_OCCURRENCE' - IN TYPEOF(SELF)) AND - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.COMPOSITE_TEXT' - IN TYPEOF (SELF.item)))) OR - (SIZEOF (QUERY (tl <* QUERY (text <* - SELF.item\composite_text.collected_text | - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.TEXT_LITERAL' IN TYPEOF (text))) | - NOT (SIZEOF (TYPEOF(tl) * - ['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + - 'TEXT_LITERAL_WITH_BLANKING_BOX', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + - 'TEXT_LITERAL_WITH_ASSOCIATED_CURVES']) = 0) )) = 0); - WR14: -- styled_text_literal_curves: - (NOT (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.ANNOTATION_TEXT_OCCURRENCE' - IN TYPEOF (SELF)) AND - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.STYLED_ITEM.ITEM') | - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.ANNOTATION_CURVE_OCCURRENCE' - IN TYPEOF (si)) )) > 0) )) = 0); - WR15: -- styled_composite_text_curves: - (NOT (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.ANNOTATION_TEXT_OCCURRENCE' - IN TYPEOF (SELF)) AND - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.STYLED_ITEM.ITEM') | - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.ANNOTATION_CURVE_OCCURRENCE' - IN TYPEOF (si)) )) > 0) )) = 0); -WR16: -- curve_style_has_width: - SIZEOF (QUERY (cs <* QUERY (sty <* SELF.styles | - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CURVE_STYLE' IN TYPEOF (sty.styles[1]))) - | NOT (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT' - IN TYPEOF (cs.styles[1]\curve_style.curve_width)) AND - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.POSITIVE_LENGTH_MEASURE' - IN TYPEOF (cs.styles[1]\curve_style. - curve_width\measure_with_unit.value_component))))) = 0; -WR17: -- tiling_constraints: - SIZEOF (QUERY (fas <* QUERY (sty <* SELF.styles | - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.FILL_AREA_STYLE' - IN TYPEOF (sty.styles[1]))) | - NOT ((SIZEOF (QUERY (fs <* fas.styles[1]\fill_area_style.fill_styles - | ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.FILL_AREA_STYLE_TILES' - IN TYPEOF (fs)))) <= 1) - AND (SIZEOF (QUERY (fst <* QUERY (fs <* - fas.styles[1]\fill_area_style.fill_styles | - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.FILL_AREA_STYLE_TILES' - IN TYPEOF (fs))) | - NOT (SIZEOF (fst\fill_area_style_tiles.tiles) = 1) - )) = 0)) - )) = 0; - WR18: -- hatching_constraints: - SIZEOF (QUERY (fas <* QUERY (sty <* SELF.styles | - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.FILL_AREA_STYLE' - IN TYPEOF (sty.styles[1]))) | - NOT (SIZEOF (QUERY (fsh <* QUERY (fs <* - fas.styles[1]\fill_area_style.fill_styles | - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.FILL_AREA_STYLE_HATCHING' - IN TYPEOF (fs))) | - NOT (fsh\fill_area_style_hatching.point_of_reference_hatch_line :=: - fsh\fill_area_style_hatching.pattern_start) )) = 0) )) = 0; - WR19: -- text_style_constraint: - SIZEOF (QUERY (ts <* QUERY (sty <* SELF.styles | - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.TEXT_STYLE' - IN TYPEOF(sty.styles[1]))) | - NOT ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + - 'TEXT_STYLE_WITH_BOX_CHARACTERISTICS' - IN TYPEOF (ts.styles[1])))) = 0; - WR20: -- text_style_characteristics: - SIZEOF (QUERY (ts <* QUERY (sty <* SELF.styles | - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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; -(* USED FROM (Basic_data_representation_mim); *) - ENTITY rational_representation_item - SUBTYPE OF (representation_item, slash_expression); - WHERE - WR1: SIZEOF( QUERY( operand <* SELF\binary_generic_expression.operands | - NOT('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.INT_LITERAL' IN TYPEOF(operand)))) = 0; - END_ENTITY; -(* USED FROM (aic_associative_draughting_elements); *) - 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 | - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MAPPED_ITEM' IN TYPEOF(it))) | - NOT ( - SIZEOF (['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.DRAUGHTING_MODEL'] * - TYPEOF (mi\mapped_item.mapping_source. - mapped_representation)) = 1 - ))) = 0; - WR2: SIZEOF (QUERY (smi <* QUERY (si <* QUERY (it <* SELF.items | - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.STYLED_ITEM' IN TYPEOF(it))) | - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MAPPED_ITEM' IN - TYPEOF(si\styled_item.item))) | - (NOT (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CURVE_STYLE' IN TYPEOF(psa))))) = 1 - )))) = 1))) - )) = 0; - END_ENTITY; -(* USED FROM (aic_associative_draughting_elements); *) - ENTITY dimension_text_associativity - SUBTYPE OF (text_literal, mapped_item); - WHERE - WR1: ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_DIMENSION_REPRESENTATION' - IN TYPEOF (SELF\mapped_item. - mapping_source.mapped_representation)); - WR2: ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.DRAUGHTING_CALLOUT' - IN TYPEOF (SELF\mapped_item.mapping_target)); - WR3: SIZEOF (QUERY (ato <* QUERY (si <* - USEDIN (SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.STYLED_ITEM.ITEM') | - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.ANNOTATION_TEXT_OCCURRENCE' - IN TYPEOF(si))) | - NOT (SIZEOF( QUERY (dc <* - USEDIN (ato, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + - 'DRAUGHTING_CALLOUT.CONTENTS') | - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.DRAUGHTING_CALLOUT' - IN TYPEOF (dc))) - * [SELF\mapped_item.mapping_target]) = 1) - )) = 0; - END_ENTITY; -(* USED FROM (assembly_constraint_schema); *) -ENTITY binary_assembly_constraint - ABSTRACT SUPERTYPE OF (ONEOF ( - PARALLEL_ASSEMBLY_CONSTRAINT, - SURFACE_DISTANCE_ASSEMBLY_CONSTRAINT_WITH_DIMENSION, - ANGLE_ASSEMBLY_CONSTRAINT_WITH_DIMENSION, - PERPENDICULAR_ASSEMBLY_CONSTRAINT, - INCIDENCE_ASSEMBLY_CONSTRAINT, - COAXIAL_ASSEMBLY_CONSTRAINT, - TANGENT_ASSEMBLY_CONSTRAINT)) - SUBTYPE OF (assembly_geometric_constraint, - representation_relationship_with_transformation); -SELF\representation_relationship.rep_1: representative_shape_representation; -SELF\representation_relationship.rep_2: representative_shape_representation; -WHERE -WR1: (SELF\explicit_constraint.constrained_elements[1] - \geometric_representation_item.dim = 3) AND - (SELF\explicit_constraint.reference_elements[1] - \geometric_representation_item.dim = 3); -WR2: (SELF\representation_relationship.rep_1 IN (using_representations - (SELF\representation_relationship_with_transformation. - transformation_operator\item_defined_transformation.transform_item_1) + - using_representation_with_mapping - (SELF\representation_relationship_with_transformation. - transformation_operator\item_defined_transformation.transform_item_1))) AND - (SELF\representation_relationship.rep_2 IN (using_representations - (SELF\representation_relationship_with_transformation. - transformation_operator\item_defined_transformation.transform_item_2) + - using_representation_with_mapping - (SELF\representation_relationship_with_transformation. - transformation_operator\item_defined_transformation.transform_item_2))); -WR3: (SIZEOF(SELF\explicit_constraint.constrained_elements)=1) AND - (SIZEOF(SELF\explicit_constraint.reference_elements)=1); -WR4: (SELF\representation_relationship_with_transformation. - transformation_operator\item_defined_transformation.transform_item_1 = - SELF\explicit_constraint.reference_elements[1]) AND - (SELF\representation_relationship_with_transformation. - transformation_operator\item_defined_transformation.transform_item_2 = - SELF\explicit_constraint.constrained_elements[1]); - -END_ENTITY;-- binary_assembly_constraint -(* USED FROM (iso13584_generic_expressions_schema); *) -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; -(* USED FROM (topology_schema); *) - 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 | 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.FACE_OUTER_BOUND' IN - TYPEOF(temp))) <= 1; - END_ENTITY; -(* USED FROM (aic_machining_feature); *) -ENTITY partial_circular_profile - SUBTYPE OF (shape_aspect); - WHERE - WR1: ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.FEATURE_COMPONENT_DEFINITION' - IN TYPEOF(SELF.of_shape.definition)); - WR2: (SIZEOF(QUERY ( pd <* USEDIN(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(QUERY ( pdr <* USEDIN(pd, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') - IN TYPEOF(pdr.used_representation)) )) = 1)) )) = 0); - WR3: (SIZEOF(QUERY ( pd <* USEDIN(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') - IN TYPEOF(pdr.used_representation)) ) | - (NOT (SIZEOF (impl_rep.used_representation.items) >= 3)) )) - = 0)) )) = 0); - WR4: (SIZEOF(QUERY ( pd <* USEDIN(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') - IN TYPEOF(pdr.used_representation)) ) | - (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | - (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PLACEMENT' - IN TYPEOF(it)) AND (it.name = 'orientation')) )) = 1)) )) - = 0)) )) = 0); - WR5: (SIZEOF(QUERY ( pd <* USEDIN(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') - IN TYPEOF(pdr.used_representation)) ) | - (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | - ((SIZEOF([ - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * - TYPEOF(it)) = 2) AND (it.name = 'radius')))) = 1)) )) - = 0)) )) = 0); - WR6: (SIZEOF(QUERY ( pd <* USEDIN(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') - IN TYPEOF(pdr.used_representation)) ) | - (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | - ((SIZEOF([ - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PLANE_ANGLE_MEASURE_WITH_UNIT'] * - TYPEOF(it)) = 2) AND (it.name = 'sweep angle')) )) = 1)) )) - = 0)) )) = 0); - WR7: SIZEOF (QUERY (pd <* USEDIN (SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - NOT (SIZEOF (QUERY (pdr <* USEDIN (pd, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PLANAR_SHAPE_REPRESENTATION' - IN TYPEOF (pdr.used_representation))AND - (pdr.used_representation.name = 'profile limit'))) <= 1))) = 0; -END_ENTITY; -- partial_circular_profile -(* USED FROM (aic_machining_feature); *) -ENTITY taper - SUBTYPE OF (shape_aspect); - WHERE - WR1: ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.FEATURE_COMPONENT_DEFINITION' - IN TYPEOF(SELF.of_shape.definition)); - WR2: (SELF.description IN ['angle taper','diameter taper', - 'directed taper']); - WR3: (SIZEOF(QUERY ( pd <* USEDIN(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(QUERY ( pdr <* USEDIN(pd, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') - IN TYPEOF(pdr.used_representation)) )) = 1)) )) = 0); - WR4: (SIZEOF(QUERY ( pd <* USEDIN(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') - IN TYPEOF(pdr.used_representation)) ) | - (NOT (SIZEOF(impl_rep.used_representation.items) = 1)) )) - = 0)) )) = 0); - WR5: ((NOT (SELF.description = 'angle taper')) OR - (SIZEOF(QUERY ( pd <* USEDIN(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') - IN TYPEOF(pdr.used_representation)) ) | - (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | - ((SIZEOF([ - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PLANE_ANGLE_MEASURE_WITH_UNIT'] * - TYPEOF(it)) = 2) AND (it.name = 'taper angle')) )) = 1)) )) - = 0)) )) = 0)); - WR6: ((NOT (SELF.description = 'diameter taper')) OR - (SIZEOF(QUERY ( pd <* USEDIN(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') - IN TYPEOF(pdr.used_representation)) ) | - (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | - ((SIZEOF([ - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * - TYPEOF(it)) = 2) AND (it.name = 'final diameter')) )) = 1)) )) - = 0)) )) = 0)); - WR7: ((NOT (SELF.description = 'directed taper')) OR - (SIZEOF(QUERY ( pd <* USEDIN(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') - IN TYPEOF(pdr.used_representation)) ) | - (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | - ((SIZEOF([ - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PLANE_ANGLE_MEASURE_WITH_UNIT'] * - TYPEOF(it)) = 2) AND (it.name = 'angle')) )) = 1)) )) - = 0)) )) = 0)); - WR8: ((NOT (SELF.description = 'directed taper')) OR - (SIZEOF(QUERY ( pd <* USEDIN(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(QUERY ( pdr <* USEDIN(pd, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.DIRECTION_SHAPE_REPRESENTATION' - IN TYPEOF(pdr.used_representation)) AND - (pdr.used_representation.name = 'direction') )) - = 1)) )) = 0)); -END_ENTITY; -- taper -(* USED FROM (aic_machining_feature); *) -ENTITY thread - SUBTYPE OF (feature_definition); - WHERE - WR1 : (SIZEOF(QUERY ( pd <* USEDIN(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (SIZEOF(QUERY ( pdr <* USEDIN(pd, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - ((('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') - IN TYPEOF(pdr.used_representation)) AND - (8 <= SIZEOF(pdr.used_representation.items)) AND - (SIZEOF(pdr.used_representation.items) <= 11)) )) = 1) )) = 1); - WR2 : (SIZEOF(QUERY ( pd <* USEDIN(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') - IN TYPEOF(pdr.used_representation)) ) | - (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | - ((SIZEOF([ - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] - * TYPEOF(it)) = 2) AND (it.name = 'major diameter')) )) = 1)) )) - = 0)) )) = 0); - WR3 : (SIZEOF(QUERY ( pd <* USEDIN(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') - IN TYPEOF(pdr.used_representation)) ) | - (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | - ((SIZEOF([ - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] - * TYPEOF(it)) = 2) AND (it.name = 'minor diameter')) )) - <= 1)) )) = 0)) )) = 0); - WR4 : (SIZEOF(QUERY ( pd <* USEDIN(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') - IN TYPEOF(pdr.used_representation)) ) | - (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | - ((SIZEOF([ - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] - * TYPEOF(it)) = 2) AND (it.name = 'pitch diameter')) )) <= 1)) )) - = 0)) )) = 0); - WR5 : (SIZEOF(QUERY ( pd <* USEDIN(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') - IN TYPEOF(pdr.used_representation)) ) | - (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | - ((SIZEOF([ - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.RATIO_MEASURE_WITH_UNIT'] * - TYPEOF(it)) = 2) AND (it.name = 'number of threads')) )) - = 1)) )) = 0)) )) = 0); - WR6 : (SIZEOF(QUERY ( pd <* USEDIN(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') - IN TYPEOF(pdr.used_representation)) ) | - (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | - (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.DESCRIPTIVE_REPRESENTATION_ITEM' - IN TYPEOF(it)) AND (it.name = 'fit class')) )) = 1)) )) = 0)) )) - = 0); - WR7 : (SIZEOF(QUERY ( pd <* USEDIN(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') - IN TYPEOF(pdr.used_representation)) ) | - (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | - (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.DESCRIPTIVE_REPRESENTATION_ITEM' - IN TYPEOF(it)) AND (it.name = 'form')) )) = 1)) )) = 0)) )) - = 0); - WR8 : (SIZEOF(QUERY ( pd <* USEDIN(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') - IN TYPEOF(pdr.used_representation)) ) | - (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | - (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.DESCRIPTIVE_REPRESENTATION_ITEM' - IN TYPEOF(it)) AND (it.name = 'hand')AND - (it.description IN ['left', 'right']) ) )) = 1)) )) = 0)) )) - = 0); - WR9 : (SIZEOF(QUERY ( pd <* USEDIN(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') - IN TYPEOF(pdr.used_representation)) ) | - (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | - (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.DESCRIPTIVE_REPRESENTATION_ITEM' - IN TYPEOF(it)) AND (it.name = 'qualifier')) )) <= 1)) )) - = 0)) )) = 0); - WR10: (SIZEOF(QUERY ( pd <* USEDIN(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') - IN TYPEOF(pdr.used_representation)) ) | - (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | - (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.DESCRIPTIVE_REPRESENTATION_ITEM' - IN TYPEOF(it)) AND (it.name = 'thread side') AND - ((it.description = 'internal') OR (it.description = 'external'))) )) - = 1)) )) = 0)) )) = 0); - WR11: (SIZEOF(QUERY ( pd <* USEDIN(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') - IN TYPEOF(pdr.used_representation)) ) | - (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | - ((SIZEOF([ - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] - * TYPEOF(it)) = 2) AND (it.name = 'crest')) )) <= 1)) )) - = 0)) )) = 0); - WR12: (SIZEOF(QUERY ( pds <* QUERY ( pd <* USEDIN(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' - IN TYPEOF(pd)) ) | - (NOT (SIZEOF(QUERY ( sa_occ <* USEDIN(pds, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE') | - ((sa_occ.description = 'partial area occurrence') AND - (SIZEOF(QUERY ( sdr <* QUERY ( sar <* USEDIN(sa_occ, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | - ((sar.description = 'applied area usage') AND - (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_DEFINING_RELATIONSHIP') - IN TYPEOF(sar))) ) | - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.APPLIED_AREA' - IN TYPEOF(sdr.relating_shape_aspect)) )) = 1)) )) = 1)) )) = 0); - WR13: (SIZEOF(QUERY ( pds <* QUERY ( pd <* USEDIN(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' - IN TYPEOF(pd)) ) | - (NOT (SIZEOF(QUERY ( sa_occ <* USEDIN(pds, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE') | - ((SIZEOF(QUERY ( sdr <* QUERY ( sar <* USEDIN(sa_occ, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | - ((sar.description = 'applied shape') AND - (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_DEFINING_RELATIONSHIP') - IN TYPEOF(sar))) ) | - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT' - IN TYPEOF(sdr.relating_shape_aspect)) )) = 1)) )) = 1)) )) = 0); - WR14 : (SIZEOF(QUERY ( pd <* USEDIN(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') - IN TYPEOF(pdr.used_representation)) ) | - (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | - (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.DESCRIPTIVE_REPRESENTATION_ITEM' - IN TYPEOF(it)) AND (it.name = 'fit class 2')) )) <= 1)) )) = 0)) )) - = 0); - WR15 : (SIZEOF(QUERY ( pd <* USEDIN(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') - IN TYPEOF(pdr.used_representation)) ) | - (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | - ((SIZEOF([ - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] - * TYPEOF(it)) = 2) AND (it.name = 'nominal size')) )) - <= 1)) )) = 0)) )) = 0); - - WR16: (SIZEOF(QUERY ( pds <* QUERY ( pd <* USEDIN(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' - IN TYPEOF(pd)) ) | - (NOT (SIZEOF(QUERY ( sa_occ <* USEDIN(pds, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE') | - ((sa_occ.description = 'thread runout') AND - (SIZEOF(QUERY ( sdr <* QUERY ( sar <* USEDIN(sa_occ, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | - ((sar.description = 'thread runout usage') AND - (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_DEFINING_RELATIONSHIP') - IN TYPEOF(sar))) ) | - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.THREAD_RUNOUT' - IN TYPEOF(sdr.relating_shape_aspect)) )) <= 1)) )) = 1)) )) = 0); - END_ENTITY; -- thread -(* USED FROM (aic_machining_feature); *) -ENTITY tee_profile - SUBTYPE OF (shape_aspect); - WHERE - WR1: 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.FEATURE_COMPONENT_DEFINITION' - IN TYPEOF (SELF.of_shape.definition); - WR2: SIZEOF (QUERY (pd <* USEDIN (SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - NOT (SIZEOF (QUERY (pdr <* USEDIN (pd, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' - IN TYPEOF (pdr.used_representation))) = 1))) = 0; - WR3: SIZEOF (QUERY (pd <* USEDIN (SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - NOT (SIZEOF (QUERY (impl_rep <* QUERY (pdr <* USEDIN (pd, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' - IN TYPEOF (pdr.used_representation)) | - (NOT (SIZEOF (impl_rep.used_representation.items) >= 9) - AND (SIZEOF (impl_rep.used_representation.items) <= 10)))) - = 0))) = 0; - WR4: SIZEOF( QUERY( pd <* USEDIN( SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - SIZEOF( QUERY( pdr <* USEDIN( pd, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' - IN TYPEOF(pdr.used_representation)) AND - (SIZEOF( QUERY( srwp_i <* pdr.used_representation.items | - (srwp_i.name = 'orientation') OR - (srwp_i.name = 'width') OR - (srwp_i.name = 'depth') OR - (srwp_i.name = 'cross bar width') OR - (srwp_i.name = 'cross bar depth') OR - (srwp_i.name = 'first offset') OR - (srwp_i.name = 'second offset') OR - (srwp_i.name = 'first angle') OR - (srwp_i.name = 'second angle') OR - (srwp_i.name = 'radius') )) - = SIZEOF(pdr.used_representation.items)) )) = 1 )) = 1; - WR5: SIZEOF (QUERY (pd <* USEDIN (SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - NOT (SIZEOF (QUERY (impl_rep <* QUERY (pdr <* USEDIN (pd, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' - IN TYPEOF (pdr.used_representation)) | - NOT (SIZEOF (QUERY (it <* impl_rep.used_representation.items | - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PLACEMENT' IN TYPEOF (it)) AND - (it.name = 'orientation'))) = 1))) = 0))) = 0; - WR6: SIZEOF (QUERY (pd <* USEDIN (SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - NOT (SIZEOF (QUERY (impl_rep <* QUERY (pdr <* USEDIN (pd, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' - IN TYPEOF (pdr.used_representation)) | - NOT (SIZEOF (QUERY (it <* impl_rep.used_representation.items | - (SIZEOF - (['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * - TYPEOF (it)) = 2) AND (it.name = 'width'))) = 1))) = 0))) = 0; - WR7: SIZEOF (QUERY (pd <* USEDIN (SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - NOT (SIZEOF (QUERY (impl_rep <* QUERY (pdr <* USEDIN (pd, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' - IN TYPEOF (pdr.used_representation)) | - NOT (SIZEOF (QUERY (it <* impl_rep.used_representation.items | - (SIZEOF - (['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * - TYPEOF (it)) = 2) AND (it.name = 'depth'))) = 1))) = 0))) = 0; - WR8: SIZEOF (QUERY (pd <* USEDIN (SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - NOT (SIZEOF (QUERY (impl_rep <* QUERY (pdr <* USEDIN (pd, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' - IN TYPEOF (pdr.used_representation)) | - NOT (SIZEOF (QUERY (it <* impl_rep.used_representation.items | - (SIZEOF - (['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * - TYPEOF (it)) = 2) AND (it.name = 'cross bar width'))) = 1))) - = 0))) = 0; - WR9: SIZEOF (QUERY (pd <* USEDIN (SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - NOT (SIZEOF (QUERY (impl_rep <* QUERY (pdr <* USEDIN (pd, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' - IN TYPEOF (pdr.used_representation)) | - NOT (SIZEOF (QUERY (it <* impl_rep.used_representation.items | - (SIZEOF - (['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * - TYPEOF (it)) = 2) AND (it.name = 'cross bar depth'))) = 1))) - = 0))) = 0; - WR10: SIZEOF (QUERY (pd <* USEDIN (SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - NOT (SIZEOF (QUERY (impl_rep <* QUERY (pdr <* USEDIN (pd, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' - IN TYPEOF (pdr.used_representation)) | - NOT (SIZEOF (QUERY (it <* impl_rep.used_representation.items | - (SIZEOF - (['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * - TYPEOF (it)) = 2) AND (it.name = 'first offset'))) = 1))) - = 0))) = 0; - WR11: SIZEOF (QUERY (pd <* USEDIN (SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - NOT (SIZEOF (QUERY (impl_rep <* QUERY (pdr <* USEDIN (pd, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' - IN TYPEOF (pdr.used_representation)) | - NOT (SIZEOF (QUERY (it <* impl_rep.used_representation.items | - (SIZEOF - (['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * - TYPEOF (it)) = 2) AND (it.name = 'second offset'))) = 1))) - = 0))) = 0; - WR12: SIZEOF (QUERY (pd <* USEDIN (SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - NOT (SIZEOF (QUERY (impl_rep <* QUERY (pdr <* USEDIN (pd, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' - IN TYPEOF (pdr.used_representation)) | - NOT (SIZEOF (QUERY (it <* impl_rep.used_representation.items | - (SIZEOF - (['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PLANE_ANGLE_MEASURE_WITH_UNIT'] * - TYPEOF (it)) = 2) AND (it.name = 'first angle'))) = 1))) - = 0))) = 0; - WR13: SIZEOF (QUERY (pd <* USEDIN (SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - NOT (SIZEOF (QUERY (impl_rep <* QUERY (pdr <* USEDIN (pd, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' - IN TYPEOF (pdr.used_representation)) | - NOT (SIZEOF (QUERY (it <* impl_rep.used_representation.items | - (SIZEOF - (['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PLANE_ANGLE_MEASURE_WITH_UNIT'] * - TYPEOF (it)) = 2) AND (it.name = 'second angle'))) = 1))) - = 0))) = 0; - WR14: SIZEOF (QUERY (pd <* USEDIN (SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - NOT (SIZEOF (QUERY (impl_rep <* QUERY (pdr <* USEDIN (pd, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' - IN TYPEOF (pdr.used_representation)) | - NOT (SIZEOF (QUERY (it <* impl_rep.used_representation.items | - (SIZEOF - (['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * - TYPEOF (it)) = 2) AND (it.name = 'radius'))) <= 1))) = 0))) = 0; - WR15: SIZEOF (QUERY (pd <* USEDIN (SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - NOT (SIZEOF (QUERY (pdr <* USEDIN (pd, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PLANAR_SHAPE_REPRESENTATION' - IN TYPEOF (pdr.used_representation))AND - (pdr.used_representation.name = 'profile limit'))) <= 1))) = 0; -END_ENTITY; -- tee_profile -(* USED FROM (aic_machining_feature); *) -ENTITY step - SUBTYPE OF (feature_definition); - WHERE - WR1: (SIZEOF(QUERY ( pd <* USEDIN(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') - IN TYPEOF(pdr.used_representation)) ) | - (NOT (SIZEOF(impl_rep.used_representation.items) = 1)) )) - = 0)) )) = 0); - WR2: (SIZEOF(QUERY ( pds <* QUERY ( pd <* USEDIN(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' - IN TYPEOF(pd)) ) | (NOT (SIZEOF(QUERY ( sa_occ <* USEDIN(pds, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE') | - ((sa_occ.description = 'course of travel occurrence') AND - (SIZEOF(QUERY ( sdr <* QUERY ( sar <* USEDIN(sa_occ, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | - ((sar.description = 'path feature component usage') AND - (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_DEFINING_RELATIONSHIP') - IN TYPEOF(sar))) ) | - (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PATH_FEATURE_COMPONENT' - IN TYPEOF(sdr.relating_shape_aspect)) AND - (sdr.relating_shape_aspect.description = 'linear')) )) = 1)) )) - = 1)) )) = 0); - WR3: (SIZEOF(QUERY ( pds <* QUERY ( pd <* USEDIN(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' - IN TYPEOF(pd)) ) | (NOT (SIZEOF(QUERY ( sa_occ <* USEDIN(pds, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE') | - ((sa_occ.description = 'removal boundary occurrence') AND - (SIZEOF(QUERY ( sdr <* QUERY ( sar <* USEDIN(sa_occ, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | - ((sar.description = 'profile usage') AND - (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_DEFINING_RELATIONSHIP') - IN TYPEOF(sar))) ) | - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.VEE_PROFILE' - IN TYPEOF(sdr.relating_shape_aspect)) )) = 1)) )) = 1)) )) = 0); - WR4: SIZEOF(QUERY(pdr <* get_property_definition_representations (SELF) | - ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PLANAR_SHAPE_REPRESENTATION' - IN TYPEOF ( pdr.used_representation ) ) AND - ( pdr.used_representation.name ='maximum feature limit'))) >=0; - WR5: SIZEOF(QUERY ( pds <* USEDIN(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' - IN TYPEOF(pds)) AND (SIZEOF(QUERY ( csa <* USEDIN(pds, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE') | - (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.COMPOSITE_SHAPE_ASPECT' IN - TYPEOF(csa)) AND - (csa.name='uncut volume') AND - (SIZEOF(QUERY ( sar <* csa.component_relationships | - (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP' - IN TYPEOF(sar)) AND (SIZEOF([ - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.BOSS', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROTRUSION'] * TYPEOF(sar. - related_shape_aspect)) = 1)) )) = 1)) )) <= 1)) )) = 1; -END_ENTITY; -- step -(* USED FROM (aic_machining_feature); *) -ENTITY slot_end - SUBTYPE OF (shape_aspect); - WHERE -WR1 : 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.FEATURE_COMPONENT_DEFINITION' - IN TYPEOF(SELF.of_shape.definition); - -WR2 : SELF.description IN ['open','radiused','flat','woodruff', - 'loop']; - -WR3: (NOT (SELF.description IN ['open','radiused','loop'])) OR - (SIZEOF(QUERY ( pd <* USEDIN(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION')| - (NOT (SIZEOF(QUERY ( pdr <* USEDIN(pd, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') - IN TYPEOF(pdr.used_representation)) )) = 0)) )) = 0); - -WR4: (NOT (SELF.description IN ['flat','woodruff'])) OR - (SIZEOF(QUERY ( pd <* USEDIN(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(QUERY ( pdr <* USEDIN(pd, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') - IN TYPEOF(pdr.used_representation)) )) = 1)) )) = 0); - -WR5: (NOT (SELF.description IN ['flat'])) OR - (SIZEOF(QUERY ( pd <* USEDIN(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') - IN TYPEOF(pdr.used_representation)) ) | - (NOT (SIZEOF(impl_rep.used_representation.items) = 2)) )) = 0)) )) = 0); - -WR6: (NOT (SELF.description = 'flat')) OR - (SIZEOF(QUERY ( pd <* USEDIN(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') - IN TYPEOF(pdr.used_representation)) ) | - (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | - ((SIZEOF([ - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(it)) - = 2) AND - (it.name = 'first radius')) )) = 1)) )) = 0)) )) = 0); - -WR7: (NOT (SELF.description = 'flat')) OR (SIZEOF(QUERY ( pd <* USEDIN(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') - IN TYPEOF(pdr.used_representation)) ) | - (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | - ((SIZEOF([ - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(it)) - = 2) AND (it.name = 'second radius')) )) = 1)) )) = 0)) )) = 0); - -WR8: (NOT (SELF.description = 'woodruff')) OR - (SIZEOF(QUERY ( pd <* USEDIN(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') - IN TYPEOF(pdr.used_representation)) ) | - (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | - (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT' - IN TYPEOF(it)) AND - (it.name = 'radius')) )) = 1)) )) = 0)) )) = 0); - -WR9: (NOT (SELF.description IN ['woodruff'])) OR - (SIZEOF(QUERY ( pd <* USEDIN(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') - IN TYPEOF(pdr.used_representation)) ) | - (NOT (SIZEOF(impl_rep.used_representation.items) = 1)) )) = 0)) )) = 0); - -WR10: SIZEOF(QUERY ( fcr <* QUERY ( sar <* USEDIN(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.' - + 'RELATING_SHAPE_ASPECT') | - (((sar.description = 'slot end usage') AND - (sar.name IN ['course of travel start','course of travel end'])) AND - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP' - IN TYPEOF(sar))) ) | - (((fcr.related_shape_aspect.description = 'end condition occurrence') AND - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SLOT' - IN TYPEOF(fcr.related_shape_aspect.of_shape.definition))) AND - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SLOT_END' - IN TYPEOF(fcr.relating_shape_aspect))) )) >= 1; - -END_ENTITY; -- slot_end -(* USED FROM (aic_machining_feature); *) - ENTITY slot - SUBTYPE OF (feature_definition); - WHERE - WR1: SIZEOF(QUERY ( pd <* USEDIN(SELF,'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (( - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr. - used_representation)) ) | (NOT (SIZEOF(impl_rep. - used_representation.items) = 1)) )) = 0)) )) = 0; - WR2: SIZEOF(QUERY ( pds <* QUERY ( pd <* USEDIN(SELF,'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | ( - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN - TYPEOF(pd)) ) | (NOT (SIZEOF(QUERY ( sa_occ <* USEDIN(pds, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE') | (( - sa_occ.description = 'swept shape occurrence') AND (SIZEOF( - QUERY ( sdr <* QUERY ( sar <* USEDIN(sa_occ, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.' - + 'RELATED_SHAPE_ASPECT') | ((sar.description = - 'profile usage') AND ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_DEFINING_RELATIONSHIP' - IN TYPEOF(sar))) ) | (SIZEOF([ - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SQUARE_U_PROFILE', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PARTIAL_CIRCULAR_PROFILE', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.ROUNDED_U_PROFILE', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.VEE_PROFILE', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.TEE_PROFILE', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.OPEN_PATH_PROFILE'] * - TYPEOF(sdr.relating_shape_aspect)) = 1) )) = 1)) )) = 1)) )) - = 0; - WR3: SIZEOF(QUERY ( pds <* QUERY ( pd <* USEDIN(SELF,'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | ( - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN - TYPEOF(pd)) ) | (NOT (SIZEOF(QUERY ( sa_occ <* USEDIN(pds, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE') | (( - sa_occ.description = 'course of travel occurrence') AND ( - SIZEOF(QUERY ( sdr <* QUERY ( sar <* USEDIN(sa_occ, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.' - + 'RELATED_SHAPE_ASPECT') | ((sar.description = - 'path feature component usage') AND ((sar.name = - 'course of travel') AND ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_DEFINING_RELATIONSHIP' - IN TYPEOF(sar)))) ) | ( - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PATH_FEATURE_COMPONENT' IN - TYPEOF(sdr.relating_shape_aspect)) )) = 1)) )) = 1)) )) = 0; - - WR4: SIZEOF(QUERY ( pds <* QUERY ( pd <* USEDIN(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' - IN TYPEOF(pd)) ) | - (NOT((SIZEOF(QUERY ( sa_occ <* USEDIN(pds, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE') | - ((sa_occ.description = 'end condition occurrence') AND - (SIZEOF(QUERY ( fcr <* QUERY ( sar <* USEDIN(sa_occ, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | - (((sar.description = 'slot end usage') AND - (sar.name IN ['course of travel start','course of travel end'])) AND - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP' - IN TYPEOF(sar))) ) | - ((('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SLOT_END' - IN TYPEOF(fcr.relating_shape_aspect)) AND - (fcr.relating_shape_aspect.description - IN ['open','radiused','flat','woodruff'])) AND - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SLOT' - IN TYPEOF(fcr.related_shape_aspect.of_shape.definition))) - )) = 1) ) )) = 2) - OR - (SIZEOF(QUERY ( sa_occ <* USEDIN(pds, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE') | - ((sa_occ.description = 'end condition occurrence') AND - (SIZEOF(QUERY ( fcr <* QUERY ( sar <* USEDIN(sa_occ, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | - (((sar.description = 'slot end usage') AND - (sar.name IN ['course of travel start','course of travel end'])) AND - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP' - IN TYPEOF(sar))) ) | - ((('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SLOT_END' - IN TYPEOF(fcr.relating_shape_aspect)) AND - (fcr.relating_shape_aspect.description IN ['loop'])) AND - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SLOT' - IN TYPEOF(fcr.related_shape_aspect.of_shape.definition))) - )) = 1) ) )) = 1))) )) =0; - - WR5: (NOT (SIZEOF(QUERY ( pds <* QUERY ( pd <* USEDIN(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pd)) ) | - (NOT (SIZEOF(QUERY ( sa_occ <* USEDIN(pds, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE') | - ((sa_occ.description = 'end condition occurrence') AND - (SIZEOF(QUERY ( fcr <* QUERY ( sar <* USEDIN(sa_occ, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | - (((sar.description = 'slot end usage') AND - (sar.name IN ['course of travel start','course of travel end'])) AND - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP' - IN TYPEOF(sar))) ) | - ((('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SLOT_END' - IN TYPEOF(fcr.relating_shape_aspect)) AND - (fcr.relating_shape_aspect.description IN ['loop'])) AND - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SLOT' - IN TYPEOF(fcr.related_shape_aspect.of_shape.definition))) - )) = 1)) )) = 1)) )) =0) - OR - (SIZEOF(QUERY ( pds <* QUERY ( pd <* USEDIN(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION')| - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pd)) ) | - (NOT (SIZEOF(QUERY ( sa_occ <* USEDIN(pds, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE') | - ((sa_occ.description = 'course of travel occurrence') AND - (SIZEOF(QUERY ( sdr <* QUERY ( sar <* USEDIN(sa_occ, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | - ((sar.description = 'path feature component usage') AND - ((sar.name = 'course of travel') AND - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_DEFINING_RELATIONSHIP' - IN TYPEOF(sar)))) ) | - (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PATH_FEATURE_COMPONENT' - IN TYPEOF(sdr.relating_shape_aspect)) AND - (sdr.relating_shape_aspect.description - IN ['complex','complete circular'])) - )) = 1)) )) = 1)) )) = 0)); - - WR6: SIZEOF(QUERY ( pdr <* get_property_definition_representations( - SELF) | (( - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PLANAR_SHAPE_REPRESENTATION' - IN TYPEOF(pdr.used_representation)) AND (pdr. - used_representation.name = 'maximum feature limit')) )) >= 0; - END_ENTITY; -- slot -(* USED FROM (aic_machining_feature); *) -ENTITY rounded_u_profile - SUBTYPE OF (shape_aspect); - WHERE - WR1: ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.FEATURE_COMPONENT_DEFINITION' - IN TYPEOF(SELF.of_shape.definition)); - WR2: (SIZEOF(QUERY ( pd <* USEDIN(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(QUERY ( pdr <* USEDIN(pd, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') - IN TYPEOF(pdr.used_representation)) )) = 1)) )) = 0); - WR3: SIZEOF (QUERY (pd <* USEDIN (SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - NOT (SIZEOF (QUERY (impl_rep <* QUERY (pdr <* USEDIN (pd, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' - IN TYPEOF (pdr.used_representation)) | - (NOT (SIZEOF (impl_rep.used_representation.items) >= 1) - AND (SIZEOF (impl_rep.used_representation.items) <= 2)))) - = 0))) = 0; - WR4: SIZEOF( QUERY( pd <* USEDIN( SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - SIZEOF( QUERY( pdr <* USEDIN( pd, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' - IN TYPEOF(pdr.used_representation)) AND - (SIZEOF( QUERY( srwp_i <* pdr.used_representation.items | - (srwp_i.name = 'orientation') OR - (srwp_i.name = 'depth') )) - = SIZEOF(pdr.used_representation.items)) )) = 1 )) = 1; - WR5: (SIZEOF(QUERY ( pd <* USEDIN(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') - IN TYPEOF(pdr.used_representation)) ) | - (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | - ((SIZEOF([ - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * - TYPEOF(it)) = 2) AND (it.name = 'width'))))= 1))))= 0))))= 0); - WR6: SIZEOF (QUERY (pd <* USEDIN (SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - NOT (SIZEOF (QUERY (pdr <* USEDIN (pd, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PLANAR_SHAPE_REPRESENTATION' - IN TYPEOF (pdr.used_representation))AND - (pdr.used_representation.name = 'profile limit'))) <= 1))) = 0; - WR7: SIZEOF (QUERY (pd <* USEDIN (SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - NOT (SIZEOF (QUERY (impl_rep <* QUERY (pdr <* USEDIN (pd, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' - IN TYPEOF (pdr.used_representation)) | - NOT (SIZEOF (QUERY (it <* impl_rep.used_representation.items | - (SIZEOF - (['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * - TYPEOF (it)) = 2) AND - (it.name = 'depth'))) <= 1))) = 0))) = 0; -END_ENTITY; -- rounded_u_profile -(* USED FROM (aic_machining_feature); *) -ENTITY square_u_profile - SUBTYPE OF (shape_aspect); - WHERE - WR1: 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.FEATURE_COMPONENT_DEFINITION' - IN TYPEOF (SELF.of_shape.definition); - WR2: SIZEOF (QUERY (pd <* USEDIN (SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - NOT (SIZEOF (QUERY (pdr <* USEDIN (pd, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' - IN TYPEOF (pdr.used_representation))) = 1))) = 0; - WR3: SIZEOF (QUERY (pd <* USEDIN (SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - NOT (SIZEOF (QUERY (impl_rep <* QUERY (pdr <* USEDIN (pd, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' - IN TYPEOF (pdr.used_representation)) | - (NOT (SIZEOF (impl_rep.used_representation.items) >= 4) - AND (SIZEOF (impl_rep.used_representation.items) <= 7)))) - = 0))) = 0; - WR4: SIZEOF( QUERY( pd <* USEDIN( SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - SIZEOF( QUERY( pdr <* USEDIN( pd, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' - IN TYPEOF(pdr.used_representation)) AND - (SIZEOF( QUERY( srwp_i <* pdr.used_representation.items | - (srwp_i.name = 'orientation') OR - (srwp_i.name = 'width') OR - (srwp_i.name = 'first angle') OR - (srwp_i.name = 'second angle') OR - (srwp_i.name = 'first radius') OR - (srwp_i.name = 'second radius') OR - (srwp_i.name = 'profile limit') OR - (srwp_i.name = 'depth') )) - = SIZEOF(pdr.used_representation.items)) )) = 1 )) = 1; - WR5: SIZEOF (QUERY (pd <* USEDIN (SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - NOT (SIZEOF (QUERY (impl_rep <* QUERY (pdr <* USEDIN (pd, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' - IN TYPEOF (pdr.used_representation)) | - NOT (SIZEOF (QUERY (it <* impl_rep.used_representation.items | - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PLACEMENT' IN TYPEOF (it)) AND - (it.name = 'orientation'))) = 1))) = 0))) = 0; - WR6: SIZEOF (QUERY (pd <* USEDIN (SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - NOT (SIZEOF (QUERY (impl_rep <* QUERY (pdr <* USEDIN (pd, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' - IN TYPEOF (pdr.used_representation)) | - NOT (SIZEOF (QUERY (it <* impl_rep.used_representation.items | - (SIZEOF - (['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * - TYPEOF (it)) = 2) AND - (it.name = 'width'))) = 1))) = 0))) = 0; - WR7: SIZEOF (QUERY (pd <* USEDIN (SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - NOT (SIZEOF (QUERY (impl_rep <* QUERY (pdr <* USEDIN (pd, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' - IN TYPEOF (pdr.used_representation)) | - NOT (SIZEOF (QUERY (it <* impl_rep.used_representation.items | - (SIZEOF - (['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * - TYPEOF (it)) = 2) AND - (it.name = 'first radius'))) <= 1))) = 0))) = 0; - WR8: SIZEOF (QUERY (pd <* USEDIN (SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - NOT (SIZEOF (QUERY (impl_rep <* QUERY (pdr <* USEDIN (pd, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' - IN TYPEOF (pdr.used_representation)) | - NOT (SIZEOF (QUERY (it <* impl_rep.used_representation.items | - (SIZEOF - (['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * - TYPEOF (it)) = 2) AND - (it.name = 'second radius'))) <= 1))) = 0))) = 0; - WR9: SIZEOF (QUERY (pd <* USEDIN (SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - NOT (SIZEOF (QUERY (impl_rep <* QUERY (pdr <* USEDIN (pd, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' - IN TYPEOF (pdr.used_representation)) | - NOT (SIZEOF (QUERY (it <* impl_rep.used_representation.items | - (SIZEOF - (['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PLANE_ANGLE_MEASURE_WITH_UNIT'] * - TYPEOF (it)) = 2) AND - (it.name = 'first angle'))) = 1))) = 0))) = 0; - WR10: SIZEOF (QUERY (pd <* USEDIN (SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - NOT (SIZEOF (QUERY (impl_rep <* QUERY (pdr <* USEDIN (pd, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' - IN TYPEOF (pdr.used_representation)) | - NOT (SIZEOF (QUERY (it <* impl_rep.used_representation.items | - (SIZEOF - (['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PLANE_ANGLE_MEASURE_WITH_UNIT'] * - TYPEOF (it)) = 2) AND - (it.name = 'second angle'))) = 1))) = 0))) = 0; - WR11: SIZEOF (QUERY (pd <* USEDIN (SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - NOT (SIZEOF (QUERY (pdr <* USEDIN (pd, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PLANAR_SHAPE_REPRESENTATION' - IN TYPEOF (pdr.used_representation))AND - (pdr.used_representation.name = 'profile limit'))) <= 1))) = 0; - - WR12: SIZEOF (QUERY (pd <* USEDIN (SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - NOT (SIZEOF (QUERY (impl_rep <* QUERY (pdr <* USEDIN (pd, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' - IN TYPEOF (pdr.used_representation)) | - NOT (SIZEOF (QUERY (it <* impl_rep.used_representation.items | - (SIZEOF - (['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * - TYPEOF (it)) = 2) AND - (it.name = 'depth'))) <= 1))) = 0))) = 0; -END_ENTITY; -- Square_U_profile -(* USED FROM (aic_machining_feature); *) -ENTITY spherical_cap - SUBTYPE OF (feature_definition); - WHERE - - WR1: (SIZEOF(QUERY ( pd <* USEDIN(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') - IN TYPEOF(pdr.used_representation)) ) | - (NOT (SIZEOF(impl_rep.used_representation.items) = 3)) )) - = 0)) )) = 0); - WR2: (SIZEOF(QUERY ( pd <* USEDIN(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') - IN TYPEOF(pdr.used_representation)) ) | - (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | - ((SIZEOF([ - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * - TYPEOF(it)) = 2) AND (it.name = 'radius')) )) = 1)))) - = 0)) )) = 0); - WR3: (SIZEOF(QUERY ( pd <* USEDIN(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') - IN TYPEOF(pdr.used_representation)) ) | - (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | - ((SIZEOF([ - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PLANE_ANGLE_MEASURE_WITH_UNIT'] * - TYPEOF(it)) = 2) AND (it.name = 'internal angle')))) = 1)) )) - = 0)) )) = 0); -END_ENTITY; -- spherical_cap -(* USED FROM (aic_machining_feature); *) -ENTITY rounded_end - SUBTYPE OF (feature_definition); - WHERE - WR1: (SIZEOF(QUERY ( pd <* USEDIN(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') - IN TYPEOF(pdr.used_representation)) ) | - (NOT (SIZEOF(impl_rep.used_representation.items) = 1)) )) - = 0)) )) = 0); - WR2: (SIZEOF(QUERY ( pds <* QUERY ( pd <* USEDIN(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' - IN TYPEOF(pd)) ) | (NOT (SIZEOF(QUERY ( sa_occ <* USEDIN(pds, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE') | - ((sa_occ.description = 'partial circular boundary occurrence') AND - (SIZEOF(QUERY ( sdr <* QUERY ( sar <* USEDIN(sa_occ, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | - ((sar.description = 'profile usage') AND - (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_DEFINING_RELATIONSHIP') - IN TYPEOF(sar))) ) | - (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PARTIAL_CIRCULAR_PROFILE' - IN TYPEOF(sdr.relating_shape_aspect)) ) )) = 1)) )) = 1)) )) = 0); - WR3: (SIZEOF(QUERY ( pds <* QUERY ( pd <* USEDIN(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' - IN TYPEOF(pd)) ) | (NOT (SIZEOF(QUERY ( sa_occ <* USEDIN(pds, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE') | - ((sa_occ.description = 'course of travel occurrence') AND - (SIZEOF(QUERY ( sdr <* QUERY ( sar <* USEDIN(sa_occ, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | - ((sar.description = 'path feature component usage') AND - (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_DEFINING_RELATIONSHIP') - IN TYPEOF(sar))) ) | - (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PATH_FEATURE_COMPONENT' - IN TYPEOF(sdr.relating_shape_aspect)) AND - (sdr.relating_shape_aspect.description = 'linear')) )) = 1)) )) - = 1)) )) = 0); - WR4: SIZEOF(QUERY(pdr <* get_property_definition_representations (SELF) | - ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PLANAR_SHAPE_REPRESENTATION' - IN TYPEOF ( pdr.used_representation ) ) AND - ( pdr.used_representation.name ='maximum feature limit'))) >=0; -END_ENTITY; -- rounded_end -(* USED FROM (aic_machining_feature); *) -ENTITY round_hole - SUBTYPE OF (feature_definition); - WHERE - WR1: (SIZEOF(QUERY ( pds <* QUERY ( pd <* USEDIN(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION')| - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' - IN TYPEOF(pd)) ) | (NOT (SIZEOF(QUERY ( sa_occ <* USEDIN(pds, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE') | - ((sa_occ.description = 'diameter occurrence') AND - (SIZEOF(QUERY ( sdr <* QUERY ( sar <* USEDIN(sa_occ, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | - ((sar.description = 'profile usage') AND - (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_DEFINING_RELATIONSHIP') - IN TYPEOF(sar))) ) | - (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CIRCULAR_CLOSED_PROFILE' - IN TYPEOF(sdr.relating_shape_aspect)) AND - (sdr.name = 'diameter')) )) = 1)) )) = 1)) )) = 0); - WR2: (SIZEOF(QUERY ( pds <* QUERY ( pd <* USEDIN(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' - IN TYPEOF(pd)) ) | (NOT (SIZEOF(QUERY ( sa_occ <* USEDIN(pds, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE') | - ((sa_occ.description = 'hole depth occurrence') AND - (SIZEOF(QUERY ( sdr <* QUERY ( sar <* USEDIN(sa_occ, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | - ((sar.description = 'path feature component usage') AND - (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_DEFINING_RELATIONSHIP') - IN TYPEOF(sar))) ) | - (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PATH_FEATURE_COMPONENT' - IN TYPEOF(sdr.relating_shape_aspect)) AND - (sdr.name = 'hole depth') AND - (sdr.relating_shape_aspect.description = 'linear')) )) = 1)) )) - = 1)) )) = 0); - WR3: (SIZEOF(QUERY ( pds <* QUERY ( pd <* USEDIN(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' - IN TYPEOF(pd)) ) | (NOT (SIZEOF(QUERY ( sa_occ <* USEDIN(pds, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE') | - ((sa_occ.description = 'bottom condition occurrence') AND - (SIZEOF(QUERY ( fcr <* QUERY ( sar <* USEDIN(sa_occ, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | - ((sar.description = 'hole bottom usage') AND - (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP') - IN TYPEOF(sar))) ) | - (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.HOLE_BOTTOM' - IN TYPEOF(fcr.relating_shape_aspect)) AND - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.ROUND_HOLE' - IN TYPEOF(fcr.related_shape_aspect.of_shape.definition))) - )) = 1)) )) = 1)) )) = 0); - WR4: (SIZEOF(QUERY ( pds <* QUERY ( pd <* USEDIN(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' - IN TYPEOF(pd)) ) | (NOT (SIZEOF(QUERY ( sa_occ <* USEDIN(pds, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE') | - ((sa_occ.description = 'change in diameter occurrence') AND - (SIZEOF(QUERY ( fcr <* QUERY ( sar <* USEDIN(sa_occ, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | - ((sar.description = 'taper usage') AND - (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP') - IN TYPEOF(sar))) ) | - (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.TAPER' - IN TYPEOF(fcr.relating_shape_aspect)) AND - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.ROUND_HOLE' - IN TYPEOF(fcr.related_shape_aspect.of_shape.definition)) ) - )) = 1)) )) <= 1)) )) = 0); - WR5: SIZEOF(QUERY(pdr <* get_property_definition_representations (SELF) | - ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' - IN TYPEOF ( pdr.used_representation ) ) )) =1; -END_ENTITY; -- round_hole -(* USED FROM (aic_machining_feature); *) -ENTITY rib_top_floor - SUBTYPE OF (shape_aspect); - WHERE - WR1: 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.FEATURE_COMPONENT_DEFINITION' IN - TYPEOF (SELF.of_shape.definition); - WR2: SELF.description IN ['planar', 'complex']; - WR3: SIZEOF (QUERY (fcr <* QUERY (sar <* USEDIN (SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATING_SHAPE_ASPECT') | - (sar.description = 'rib top usage') AND - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP' - IN TYPEOF (sar))) | - ((fcr.related_shape_aspect.description = 'rib top condition occurrence') - AND - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.RIB_TOP' IN TYPEOF - (fcr.related_shape_aspect.of_shape.definition)) AND - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.RIB_TOP_FLOOR' IN TYPEOF - (fcr.relating_shape_aspect)) ) - )) >= 1; - WR4: (NOT (SELF.description = 'complex')) OR - (SIZEOF (QUERY (pd <* USEDIN (SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - NOT (SIZEOF (QUERY (pdr <* USEDIN (pd, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.FACE_SHAPE_REPRESENTATION' - IN TYPEOF (pdr.used_representation))AND - (pdr.used_representation.name = 'rib top face'))) = 1))) = 0); - WR5: (NOT (SELF.description = 'planar')) OR - (SIZEOF (QUERY (pd <* USEDIN (SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - NOT (SIZEOF (QUERY (pdr <* USEDIN (pd, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PLANAR_SHAPE_REPRESENTATION' - IN TYPEOF (pdr.used_representation))AND - (pdr.used_representation.name = 'rib top face'))) = 1))) = 0); - WR6: (NOT (SELF.description = 'planar')) OR - (SIZEOF (QUERY (pds <* QUERY (pd <* USEDIN (SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' - IN TYPEOF (pd)) | - NOT (SIZEOF (QUERY (sa_occ <* USEDIN (pds, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE') | - (sa_occ.description = 'boundary occurrence') AND - (SIZEOF (QUERY (sdr <* QUERY (sar <* USEDIN (sa_occ, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | - (sar.description = 'profile usage') AND - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_DEFINING_RELATIONSHIP' - IN TYPEOF (sar))) | - (SIZEOF (['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CIRCULAR_CLOSED_PROFILE', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.NGON_CLOSED_PROFILE', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.RECTANGULAR_CLOSED_PROFILE', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CLOSED_PATH_PROFILE'] * - TYPEOF (sdr.relating_shape_aspect)) = 1) AND - (sdr.relating_shape_aspect.description = 'rib top floor boundary'))) - = 1))) = 1))) = 0); -END_ENTITY; -- rib_top_floor -(* USED FROM (aic_machining_feature); *) -ENTITY rib_top - SUBTYPE OF (feature_definition); - WHERE - WR1: SIZEOF (QUERY (pds <* QUERY (pd <* USEDIN (SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' - IN TYPEOF (pd)) | - NOT (SIZEOF (QUERY (sa_occ <* USEDIN (pds, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE') | - (sa_occ.description = 'rib top condition occurrence') AND - (SIZEOF (QUERY (sdr <* QUERY (sar <* USEDIN (sa_occ, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | - (sar.description = 'rib top usage') AND - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP' - IN TYPEOF (sar))) | - (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.RIB_TOP_FLOOR' - IN TYPEOF (sdr.relating_shape_aspect)) AND - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.RIB_TOP' - IN TYPEOF (sdr.related_shape_aspect.of_shape.definition)) ) - )) = 1))) = 1))) = 0; - WR2: SIZEOF (QUERY (pd <* USEDIN (SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - NOT (SIZEOF (QUERY (pdr <* USEDIN (pd, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.DIRECTION_SHAPE_REPRESENTATION' - IN TYPEOF (pdr.used_representation))AND - (pdr.used_representation.name = 'removal direction'))) = 1))) = 1; - WR3: SIZEOF(QUERY(pdr <* get_property_definition_representations (SELF) | - ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PLANAR_SHAPE_REPRESENTATION' - IN TYPEOF ( pdr.used_representation ) ) AND - ( pdr.used_representation.name ='maximum feature limit'))) >=0; -END_ENTITY; -- rib_top -(* USED FROM (aic_machining_feature); *) -ENTITY revolved_profile - SUBTYPE OF (feature_definition); - WHERE - WR1: (SELF\characterized_object.description IN - ['groove','flat','round','open profile']); - WR2: (SIZEOF(QUERY ( pd <* USEDIN(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') - IN TYPEOF(pdr.used_representation)) ) | - (NOT (SIZEOF(impl_rep.used_representation.items) = 2)) )) - = 0)) )) = 0); - WR3: (SIZEOF(QUERY ( pd <* USEDIN(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') - IN TYPEOF(pdr.used_representation)) ) | - (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | - ((SIZEOF([ - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * - TYPEOF(it)) = 2) AND (it.name = 'radius')))) = 1)) )) - = 0)) )) = 0); - WR4: SIZEOF(QUERY(pdr <* get_property_definition_representations (SELF) | - ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.DIRECTION_SHAPE_REPRESENTATION' - IN TYPEOF ( pdr.used_representation ) ) AND - ( pdr.used_representation.name ='removal direction'))) =1; - WR5: ((NOT (SELF\characterized_object.description = 'open profile')) OR - (SIZEOF(QUERY ( pds <* QUERY ( pd <* USEDIN(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' - IN TYPEOF(pd)) ) | (NOT (SIZEOF(QUERY ( sa_occ <* USEDIN(pds, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE') | - ((sa_occ.description = 'outer edge shape occurrence') AND - (SIZEOF(QUERY ( sdr <* QUERY ( sar <* USEDIN(sa_occ, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | - ((sar.description = 'profile usage') AND - (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_DEFINING_RELATIONSHIP') - IN TYPEOF(sar))) ) | - (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.OPEN_PATH_PROFILE' - IN TYPEOF(sdr.relating_shape_aspect)) AND - (sdr.relating_shape_aspect.description = 'outer edge shape')) )) - = 1)) )) = 1)) )) = 0)); - WR6: (NOT (SELF\characterized_object.description = 'flat')) OR - (SIZEOF(QUERY ( pds <* QUERY ( pd <* USEDIN(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION')| - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' - IN TYPEOF(pd)) ) | (NOT (SIZEOF(QUERY ( sa_occ <* USEDIN(pds, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE') | - (( sa_occ.description = 'flat edge shape occurrence') AND - (SIZEOF(QUERY ( sdr <* QUERY ( sar <* USEDIN(sa_occ, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | - ((sar.description = 'profile usage') AND - (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_DEFINING_RELATIONSHIP') - IN TYPEOF(sar))) ) | - (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LINEAR_PROFILE' - IN TYPEOF(sdr.relating_shape_aspect)) AND - (sdr.relating_shape_aspect.description = 'flat edge shape')) )) - = 1)) )) = 1)) )) = 0); - WR7: ((NOT (SELF\characterized_object.description = 'round')) OR - (SIZEOF(QUERY ( pds <* QUERY ( pd <* USEDIN(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' - IN TYPEOF(pd)) ) | (NOT (SIZEOF(QUERY ( sa_occ <* USEDIN(pds, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE') | - ((sa_occ.description = 'rounded edge shape occurrence') AND - (SIZEOF(QUERY ( sdr <* QUERY ( sar <* USEDIN(sa_occ, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | - ((sar.description = 'profile usage') AND - (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_DEFINING_RELATIONSHIP') - IN TYPEOF(sar))) ) | - (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PARTIAL_CIRCULAR_PROFILE' - IN TYPEOF(sdr.relating_shape_aspect)) AND - (sdr.relating_shape_aspect.description = 'rounded edge shape')) )) - = 1)) )) = 1)) )) = 0)); - WR8: ((NOT (SELF\characterized_object.description = 'groove')) OR - (SIZEOF(QUERY ( pds <* QUERY ( pd <* USEDIN(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' - IN TYPEOF(pd)) ) | (NOT (SIZEOF(QUERY ( sa_occ <* USEDIN(pds, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE') | - ((sa_occ.description = 'sweep occurrence') AND - (SIZEOF(QUERY ( sdr <* QUERY ( sar <* USEDIN(sa_occ, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | - ((sar.description = 'profile usage') AND - (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_DEFINING_RELATIONSHIP') - IN TYPEOF(sar))) ) | - ((SIZEOF(['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SQUARE_U_PROFILE', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PARTIAL_CIRCULAR_PROFILE', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.ROUNDED_U_PROFILE', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.VEE_PROFILE', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.TEE_PROFILE', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.OPEN_PATH_PROFILE'] * - TYPEOF(sdr.relating_shape_aspect)) = 1) AND - (sdr.relating_shape_aspect.description = 'sweep')) )) = 1)) )) - = 1)) )) = 0)); - WR9: SIZEOF(QUERY(pdr <* get_property_definition_representations (SELF) | - ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PLANAR_SHAPE_REPRESENTATION' - IN TYPEOF ( pdr.used_representation ) ) AND - ( pdr.used_representation.name ='maximum feature limit'))) >=0; -END_ENTITY; -- revolved_profile -(* USED FROM (aic_machining_feature); *) -ENTITY replicate_feature - SUPERTYPE OF (ONEOF ( - CIRCULAR_PATTERN, - RECTANGULAR_PATTERN, - FEATURE_PATTERN)) - SUBTYPE OF (feature_definition); - WHERE - WR1: (SIZEOF(QUERY ( pd <* USEDIN(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | (NOT (SIZEOF(QUERY ( pdr <* USEDIN(pd, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (( - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr. - used_representation)) )) = 1)) )) = 0); - WR2: (SIZEOF(QUERY ( fcr <* QUERY ( sar <* - USEDIN(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.' - + 'RELATING_SHAPE_ASPECT') | - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP' - IN TYPEOF(sar)) ) | - ((SIZEOF(['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.REPLICATE_FEATURE', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.INSTANCED_FEATURE'] * - TYPEOF(fcr.related_shape_aspect)) >= 1) AND - (fcr.name = 'pattern basis')) )) = 1); - WR3: ((SIZEOF(QUERY ( sar <* USEDIN(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.' - + 'RELATING_SHAPE_ASPECT') | - (NOT - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP' - IN TYPEOF(sar))) )) + - SIZEOF(QUERY ( sar <* USEDIN(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.' - + 'RELATED_SHAPE_ASPECT') | - (NOT - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP' - IN TYPEOF(sar))) ))) = 0); -END_ENTITY; -- replicate_feature -(* USED FROM (aic_machining_feature); *) -ENTITY rectangular_closed_profile - SUBTYPE OF (shape_aspect); - WHERE - WR1: 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.FEATURE_COMPONENT_DEFINITION' - IN TYPEOF (SELF.of_shape.definition); - WR2: SIZEOF (QUERY (pd <* USEDIN (SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - NOT (SIZEOF (QUERY (pdr <* USEDIN (pd, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' - IN TYPEOF (pdr.used_representation))) = 1))) = 0; - WR3: SIZEOF (QUERY (pd <* USEDIN (SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - NOT (SIZEOF (QUERY (impl_rep <* QUERY (pdr <* USEDIN (pd, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' - IN TYPEOF (pdr.used_representation)) | - NOT ((SIZEOF (impl_rep.used_representation.items) >= 3) - AND (SIZEOF(impl_rep.used_representation.items) <= 4)))) = 0))) = 0; - WR4: SIZEOF( QUERY( pd <* - USEDIN( SELF,'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - SIZEOF( QUERY( pdr <* USEDIN( pd, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' - IN TYPEOF(pdr.used_representation)) AND - (SIZEOF( QUERY( srwp_i <* pdr.used_representation.items | - (srwp_i.name = 'orientation') OR - (srwp_i.name = 'length') OR - (srwp_i.name = 'width') OR - (srwp_i.name = 'corner radius') )) = - SIZEOF(pdr.used_representation.items)) - )) = 1 )) = 1; - WR5: SIZEOF (QUERY (pd <* USEDIN (SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - NOT (SIZEOF (QUERY (impl_rep <* QUERY (pdr <* USEDIN (pd, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' - IN TYPEOF (pdr.used_representation)) | - NOT (SIZEOF (QUERY (it <* impl_rep.used_representation.items | - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PLACEMENT' IN TYPEOF (it)) AND - (it.name = 'orientation'))) = 1))) = 0))) = 0; - WR6: SIZEOF (QUERY (pd <* USEDIN (SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - NOT (SIZEOF (QUERY (impl_rep <* QUERY (pdr <* USEDIN (pd, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' - IN TYPEOF (pdr.used_representation)) | - NOT (SIZEOF (QUERY (it <* impl_rep.used_representation.items | - (SIZEOF - (['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * - TYPEOF (it)) = 2) AND - (it.name = 'width'))) = 1))) = 0))) = 0; - WR7: SIZEOF (QUERY (pd <* USEDIN (SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - NOT (SIZEOF (QUERY (impl_rep <* QUERY (pdr <* USEDIN (pd, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' - IN TYPEOF (pdr.used_representation)) | - NOT (SIZEOF (QUERY (it <* impl_rep.used_representation.items | - (SIZEOF - (['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * - TYPEOF (it)) = 2) AND - (it.name = 'length'))) = 1))) = 0))) = 0; - WR8: SIZEOF (QUERY (pd <* USEDIN (SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - NOT (SIZEOF (QUERY (impl_rep <* QUERY (pdr <* USEDIN (pd, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' - IN TYPEOF (pdr.used_representation)) | - NOT (SIZEOF (QUERY (it <* impl_rep.used_representation.items | - (SIZEOF - (['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * - TYPEOF (it)) = 2) AND - (it.name = 'corner radius'))) <= 1))) = 0))) = 0; -END_ENTITY; -- rectangular_closed_profile -(* USED FROM (Multi_linguism_mim); *) -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, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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; -(* USED FROM (aic_machining_feature); *) -ENTITY removal_volume - SUBTYPE OF (feature_definition); - WHERE - - WR1: (SIZEOF(QUERY ( pd <* USEDIN(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') - IN TYPEOF(pdr.used_representation)) ) | - (NOT (SIZEOF(impl_rep.used_representation.items) = 1)) )) - = 0)) )) = 0); - WR2: (SIZEOF(QUERY ( pds <* QUERY ( pd <* USEDIN(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' - IN TYPEOF(pd)) ) | (NOT (SIZEOF(QUERY ( sa_occ <* USEDIN(pds, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE') | - ((sa_occ.description = 'shape volume occurrence') AND - (SIZEOF(QUERY ( sdr <* QUERY ( sar <* USEDIN(sa_occ, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.' - + 'RELATED_SHAPE_ASPECT') | - ((sar.description = 'volume shape usage') AND - (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_DEFINING_RELATIONSHIP') - IN TYPEOF(sar))) ) | - (sdr.relating_shape_aspect.description = 'volume shape') )) = 1)) )) - = 1)) )) = 0); -END_ENTITY; -- removal_volume -(* USED FROM (aic_machining_feature); *) -ENTITY rectangular_pattern - SUBTYPE OF (replicate_feature); - WHERE - WR1: (SIZEOF(QUERY ( pds <* QUERY ( pd <* USEDIN(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' - IN TYPEOF(pd)) ) | (NOT (SIZEOF(QUERY ( sa_occ <* USEDIN - (pds,'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE') | - ((SIZEOF(QUERY ( sdr <* QUERY ( sar <* USEDIN(sa_occ, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.' - + 'RELATING_SHAPE_ASPECT') | - ((('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP') - IN TYPEOF(sar))) ) | - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT' - IN TYPEOF(sdr.related_shape_aspect)) )) = 1)) )) <= 5)) )) = 0); - WR2: (SIZEOF(QUERY ( pd <* USEDIN(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(QUERY ( pdr <* USEDIN(pd, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.DIRECTION_SHAPE_REPRESENTATION' - IN TYPEOF(pdr.used_representation)) AND - (pdr.used_representation.name = 'row layout direction') ) )) - = 1)) )) = 0); - WR3 : (SIZEOF(QUERY ( pd <* USEDIN(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(QUERY ( pdr <* USEDIN(pd, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.DIRECTION_SHAPE_REPRESENTATION' - IN TYPEOF(pdr.used_representation)) AND - (pdr.used_representation.name = 'column layout direction')) )) - = 1)) )) = 0); - WR4 : (SIZEOF(QUERY ( pd <* USEDIN(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY ( pdr <* USEDIN(pd, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' - IN TYPEOF(pdr.used_representation)) )) = 1)) )) = 0); - WR5 : (SIZEOF(QUERY ( pd <* USEDIN(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' - IN TYPEOF(pdr.used_representation)) ) | - (NOT (SIZEOF(impl_rep.used_representation.items) = 5)) )) - = 0)) )) = 0); - WR6 : (SIZEOF(QUERY ( pd <* USEDIN(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' - IN TYPEOF(pdr.used_representation)) ) | - (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | - (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM' - IN TYPEOF(it)) AND - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.COUNT_MEASURE' - IN TYPEOF(it\measure_with_unit.value_component)) AND - (it.name = 'number of rows')) )) = 1)) )) = 0)) )) = 0); - WR7 : (SIZEOF(QUERY ( pd <* USEDIN(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' - IN TYPEOF(pdr.used_representation)) ) | - (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | - (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM' - IN TYPEOF(it)) AND - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.COUNT_MEASURE' - IN TYPEOF(it\measure_with_unit.value_component)) AND - (it.name = 'number of columns')) )) = 1)) )) = 0)) )) = 0); - WR8 : (SIZEOF(QUERY ( pd <* USEDIN(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' - IN TYPEOF(pdr.used_representation)) ) | - (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | - ((SIZEOF([ - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * - TYPEOF(it)) = 2) AND (it.name = 'row spacing')) )) = 1)) )) - = 0)) )) = 0); - WR9: (SIZEOF(QUERY ( pd <* USEDIN(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' - IN TYPEOF(pdr.used_representation)) ) | - (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | - ((SIZEOF([ - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * - TYPEOF(it)) = 2) AND (it.name = 'column spacing'))))= 1)) )) - = 0)) )) = 0); - WR10: (SIZEOF(QUERY ( pd <* USEDIN(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' - IN TYPEOF(pdr.used_representation)) ) | - (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | - (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PLACEMENT' IN TYPEOF(it)) AND - (it.name = 'orientation')) )) = 1)) )) = 0)) )) = 0); -END_ENTITY; -- rectangular_pattern -(* USED FROM (aic_machining_feature); *) -ENTITY pocket_bottom - SUBTYPE OF (shape_aspect); - WHERE - WR1: 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.FEATURE_COMPONENT_DEFINITION' - IN TYPEOF (SELF.of_shape.definition); - WR2: SELF.description IN ['planar', 'complex', 'through']; - WR3: ((NOT (SELF.description = 'planar')) OR - (SIZEOF(QUERY ( pd <* USEDIN(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(QUERY ( pdr <* USEDIN(pd, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.DIRECTION_SHAPE_REPRESENTATION') - IN TYPEOF(pdr.used_representation)) AND - (pdr.used_representation.name = 'floor normal') )) = 1)) )) = 0)); - WR4 : ((NOT (SELF.description = 'planar')) OR - (SIZEOF(QUERY ( pd <* USEDIN(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(QUERY ( pdr <* USEDIN(pd, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LOCATION_SHAPE_REPRESENTATION') - IN TYPEOF(pdr.used_representation)) AND - (pdr.used_representation.name = 'floor location'))) = 1)) )) = 0)); - WR5 : ((NOT (SELF.description = 'complex')) OR - (SIZEOF(QUERY ( pd <* USEDIN(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(QUERY ( pdr <* USEDIN(pd, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.FACE_SHAPE_REPRESENTATION' - IN TYPEOF(pdr.used_representation)) AND - (pdr.used_representation.name = 'floor face') )) = 1)) )) = 0)); - WR6: (NOT (SELF.description IN ['planar', 'complex']) OR - (SIZEOF (QUERY (pd <* USEDIN (SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - NOT (SIZEOF (QUERY (pdr <* USEDIN (pd, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' - IN TYPEOF (pdr.used_representation))) = 1))) = 0)); - WR7: (NOT (SELF.description IN ['planar', 'complex']) OR - (SIZEOF (QUERY (pd <* USEDIN (SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - NOT (SIZEOF (QUERY (impl_rep <* QUERY (pdr <* USEDIN (pd, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' - IN TYPEOF (pdr.used_representation)) | - NOT (SIZEOF (impl_rep.used_representation.items) - <= 1) )) = 0))) = 0)); - WR8: (NOT (SELF.description = 'through') OR - (SIZEOF (QUERY (pd <* USEDIN (SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - NOT (SIZEOF (QUERY (pdr <* USEDIN (pd, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' - IN TYPEOF (pdr.used_representation))) = 0))) = 0)); - WR9: (NOT (SELF.description IN ['planar', 'complex'])) OR - (SIZEOF (QUERY (pd <* USEDIN (SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - NOT (SIZEOF (QUERY (impl_rep <* QUERY (pdr <* USEDIN (pd, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' - IN TYPEOF (pdr.used_representation)) | - NOT (SIZEOF (QUERY (it <* impl_rep.used_representation.items | - (SIZEOF - (['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * - TYPEOF (it)) = 2) AND (it.name = 'radius'))) <= 1))) = 0))) = 0); - WR10: SIZEOF (QUERY (fcr <* QUERY (sar <* USEDIN (SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATING_SHAPE_ASPECT') | - (sar.description = 'pocket bottom usage') AND - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP' - IN TYPEOF (sar))) | - ((fcr.related_shape_aspect.description = 'bottom condition occurrence') - AND - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.POCKET' - IN TYPEOF(fcr.related_shape_aspect.of_shape.definition)) AND - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.POCKET_BOTTOM' - IN TYPEOF(fcr.relating_shape_aspect)) ) - )) >= 1; - WR11: ((NOT (SELF.description IN ['planar','complex'])) OR - (SIZEOF (QUERY (fcr <* QUERY (sar <* USEDIN (SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATING_SHAPE_ASPECT') | - (sar.description = 'pocket bottom usage') AND - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP' - IN TYPEOF (sar))) | - (fcr.related_shape_aspect.description = 'bottom condition occurrence') - AND - (fcr.related_shape_aspect.name IN - ['pocket depth start', 'pocket depth end']) - )) = 0)); -END_ENTITY; -- Pocket_bottom -(* USED FROM (aic_machining_feature); *) -ENTITY protrusion - SUBTYPE OF (feature_definition); - WHERE - WR1: (SIZEOF(QUERY ( pd <* USEDIN(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') - IN TYPEOF(pdr.used_representation)) ) | - (NOT (SIZEOF(impl_rep.used_representation.items) = 1)) )) - = 0)) )) = 0); - WR2: (SIZEOF(QUERY ( pds <* QUERY ( pd <* USEDIN(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' - IN TYPEOF(pd)) ) | (NOT (SIZEOF(QUERY ( sa_occ <* USEDIN(pds, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE') | - ((sa_occ.description = 'shape volume occurrence') AND - (SIZEOF(QUERY ( sdr <* QUERY ( sar <* USEDIN(sa_occ, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | - ((sar.description = 'volume shape usage') AND - (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_DEFINING_RELATIONSHIP') - IN TYPEOF(sar))) ) | - (sdr.relating_shape_aspect.description = 'volume shape') )) = 1)) )) - = 1)) )) = 0); - WR3: SIZEOF(QUERY(pdr <* get_property_definition_representations (SELF) | - ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PLANAR_SHAPE_REPRESENTATION' - IN TYPEOF ( pdr.used_representation ) ) AND - ( pdr.used_representation.name ='maximum feature limit'))) >=0; -END_ENTITY; -- protrusion -(* USED FROM (aic_machining_feature); *) -ENTITY profile_floor - SUBTYPE OF (shape_aspect); - WHERE - WR1: 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.FEATURE_COMPONENT_DEFINITION' - IN TYPEOF (SELF.of_shape.definition); - WR2: SELF.description IN ['planar', 'complex', 'through']; - WR3: (NOT (SELF.description IN ['planar', 'complex']) OR - (SIZEOF (QUERY (pd <* USEDIN (SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - NOT (SIZEOF (QUERY (pdr <* USEDIN (pd, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' - IN TYPEOF (pdr.used_representation))) = 1))) = 0)); - WR4: (NOT (SELF.description IN ['planar', 'complex'])) OR - (SIZEOF (QUERY (pd <* USEDIN (SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - NOT (SIZEOF (QUERY (impl_rep <* QUERY (pdr <* USEDIN (pd, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' - IN TYPEOF (pdr.used_representation)) | - NOT (SIZEOF (impl_rep.used_representation.items) >= 1)AND - (SIZEOF (impl_rep.used_representation.items) <= 2))) = 0))) = 0); - WR5: (NOT (SELF.description = 'through') OR - (SIZEOF (QUERY (pd <* USEDIN (SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - NOT (SIZEOF (QUERY (pdr <* USEDIN (pd, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' - IN TYPEOF (pdr.used_representation))) = 0))) = 0)); - WR6: (NOT (SELF.description IN ['planar', 'complex'])) OR - (SIZEOF (QUERY (pd <* USEDIN (SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - NOT (SIZEOF (QUERY (impl_rep <* QUERY (pdr <* USEDIN (pd, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' - IN TYPEOF (pdr.used_representation)) | - NOT (SIZEOF (QUERY (it <* impl_rep.used_representation.items | - (SIZEOF (['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * - TYPEOF (it)) = 2) AND (it.name = 'radius'))) = 1))) = 0))) = 0); - WR7: SIZEOF (QUERY (fcr <* QUERY (sar <* USEDIN (SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATING_SHAPE_ASPECT') | - (sar.description = 'profile floor usage') AND - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP' IN - TYPEOF (sar))) | - (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.OUTSIDE_PROFILE' IN TYPEOF - (fcr.related_shape_aspect.of_shape.definition))AND - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROFILE_FLOOR' IN TYPEOF - (fcr.relating_shape_aspect))) - )) >= 1; - WR8: ((NOT (SELF.description IN ['planar','complex'])) OR - (SIZEOF(QUERY ( pd <* USEDIN(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') - | (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (( - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr. - used_representation)) ) | (NOT (SIZEOF(QUERY ( it <* - impl_rep.used_representation.items | - (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.DESCRIPTIVE_REPRESENTATION_ITEM' - IN TYPEOF(it)) AND (it.name = 'shape profile floor orientation') - AND (it.description IN ['shape profile start','shape profile end'])) - )) = 1)) )) = 0)) )) = 0)); - WR9: (NOT (SELF.description = 'complex')) OR - (SIZEOF (QUERY (pd <* USEDIN (SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - NOT (SIZEOF (QUERY (pdr <* USEDIN (pd, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.FACE_SHAPE_REPRESENTATION' - IN TYPEOF (pdr.used_representation)) AND - (pdr.used_representation.name='floor'))) = 1))) = 1); - WR10: (NOT (SELF.description = 'planar')) OR - (SIZEOF (QUERY (pd <* USEDIN (SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - NOT (SIZEOF (QUERY (pdr <* USEDIN (pd, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PLANAR_SHAPE_REPRESENTATION' - IN TYPEOF (pdr.used_representation)) AND - (pdr.used_representation.name='floor'))) = 1))) = 1); -END_ENTITY; -- profile_floor -(* USED FROM (aic_machining_feature); *) -ENTITY pattern_omit_membership - SUBTYPE OF (feature_component_relationship); - WHERE - WR1: (SIZEOF(QUERY ( fcr <* QUERY ( sar <* USEDIN( - SELF.relating_shape_aspect, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.' - + 'RELATING_SHAPE_ASPECT') | - (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP' - IN TYPEOF(sar)) AND (sar :<>: SELF)) ) | - ((SIZEOF (QUERY( pdr <*(QUERY(pd <* USEDIN - (fcr.related_shape_aspect.of_shape, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' - IN TYPEOF(pd))) | - SIZEOF (['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CIRCULAR_PATTERN', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.RECTANGULAR_PATTERN'] - * TYPEOF(pdr.definition)) =1 )) = 0 )) )) = 0); - WR2: (SIZEOF(QUERY ( fcr <* QUERY ( sar <* USEDIN( - SELF.related_shape_aspect, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | - (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP' - IN TYPEOF(sar)) AND (sar :<>: SELF)) ) | - (fcr.description='modified pattern') AND - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MODIFIED_PATTERN' - IN TYPEOF(fcr.relating_shape_aspect)) )) >= 1); - WR3: (SIZEOF(QUERY ( fcr <* QUERY ( sar <* USEDIN( - SELF.related_shape_aspect, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | - (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP' - IN TYPEOF(sar)) AND (sar :<>: SELF)) ) | - (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MODIFIED_PATTERN' - IN TYPEOF(fcr.relating_shape_aspect)) AND - (NOT (SIZEOF(QUERY ( modfcr <* QUERY ( modsar <* USEDIN( - fcr.relating_shape_aspect,'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATING_SHAPE_ASPECT') | - ((SIZEOF(['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CIRCULAR_PATTERN', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.RECTANGULAR_PATTERN'] * - TYPEOF(modsar.related_shape_aspect.of_shape.definition)) = 1) AND - (modsar :<>: fcr)) ) | - (NOT (modfcr.related_shape_aspect.of_shape.definition :=: - SELF.relating_shape_aspect.of_shape.definition)) )) - = 0))) )) = 0); - WR4: (SIZEOF(QUERY ( pd <* USEDIN(SELF.related_shape_aspect, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(USEDIN(pd,'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')) = 1)) )) = 0); - WR5: ((NOT ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CIRCULAR_PATTERN' - IN TYPEOF(SELF.relating_shape_aspect.of_shape.definition))) OR - (SIZEOF(QUERY ( pd <* USEDIN(SELF.related_shape_aspect, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(QUERY ( pdr <* USEDIN(pd, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - (NOT (SIZEOF(pdr.used_representation.items) = 1)) )) = 0)) )) = 0)); - WR6: ((NOT ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CIRCULAR_PATTERN' - IN TYPEOF(SELF.relating_shape_aspect.of_shape.definition))) OR - (SIZEOF(QUERY ( pd <* USEDIN(SELF.related_shape_aspect, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') - IN TYPEOF(pdr.used_representation)) ) | - (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | - (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM' - IN TYPEOF(it)) AND - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.COUNT_MEASURE' - IN TYPEOF(it\measure_with_unit.value_component)) AND - (it.name = 'index number')) )) = 1)) )) = 0)) )) = 0)); - WR7: ((NOT ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.RECTANGULAR_PATTERN' - IN TYPEOF(SELF.relating_shape_aspect.of_shape.definition))) OR - (SIZEOF(QUERY ( pd <* USEDIN(SELF.related_shape_aspect, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(QUERY ( pdr <* USEDIN(pd, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - (NOT (SIZEOF(pdr.used_representation.items) = 2)) )) = 0)) )) = 0)); - WR8: ((NOT ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.RECTANGULAR_PATTERN' - IN TYPEOF(SELF.relating_shape_aspect.of_shape.definition))) OR - (SIZEOF(QUERY ( pd <* USEDIN(SELF.related_shape_aspect, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') - IN TYPEOF(pdr.used_representation)) ) | - (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | - (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM' - IN TYPEOF(it)) AND ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.COUNT_MEASURE' - IN TYPEOF(it\measure_with_unit.value_component)) AND - (it.name = 'row index')) )) = 1)) )) = 0)) )) = 0)); - WR9: ((NOT ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.RECTANGULAR_PATTERN' - IN TYPEOF(SELF.relating_shape_aspect.of_shape.definition))) OR - (SIZEOF(QUERY ( pd <* USEDIN(SELF.related_shape_aspect, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') - IN TYPEOF(pdr.used_representation)) ) | - (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | - (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM' - IN TYPEOF(it)) AND ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.COUNT_MEASURE' - IN TYPEOF(it\measure_with_unit.value_component)) AND - (it.name = 'column index')) )) = 1)) )) = 0)) )) = 0)); -END_ENTITY; -- pattern_omit_membership -(* USED FROM (aic_machining_feature); *) -ENTITY pocket - SUBTYPE OF (feature_definition); - WHERE - WR1: (SELF\characterized_object.description IN - ['closed rectangular','open rectangular', 'complex', - 'circular cutout', 'complex cutout', 'recess']); - WR2: (SIZEOF(QUERY ( pds <* QUERY ( pd <* USEDIN(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' - IN TYPEOF(pd)) ) | (NOT (SIZEOF(QUERY ( sa_occ <* USEDIN(pds, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE') | - ((sa_occ.description = 'pocket depth occurrence') AND - (SIZEOF(QUERY ( sdr <* QUERY ( sar <* USEDIN(sa_occ, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | - ((sar.description = 'path feature component usage') AND - (sar.name = 'pocket depth') AND - (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_DEFINING_RELATIONSHIP') - IN TYPEOF(sar))) ) | - (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PATH_FEATURE_COMPONENT' - IN TYPEOF(sdr.relating_shape_aspect)) AND - (sdr.relating_shape_aspect.description ='linear')) )) - = 1)) )) = 1)) )) = 0); - WR3: SIZEOF(QUERY(pdr <* get_property_definition_representations (SELF) | - ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' - IN TYPEOF ( pdr.used_representation ) ) )) =1; - WR4: SIZEOF( QUERY( pd <* USEDIN( SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - SIZEOF( QUERY( pdr <* USEDIN( pd, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' - IN TYPEOF(pdr.used_representation)) AND - ({1 <= SIZEOF(pdr.used_representation.items) <= 2} ) )) = 1 )) = 1; - WR5: SIZEOF( QUERY( pd <* USEDIN( SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - SIZEOF( QUERY( pdr <* USEDIN( pd, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN - TYPEOF(pdr.used_representation)) AND - (SIZEOF( QUERY( srwp_i <* pdr.used_representation.items | - (srwp_i.name = 'orientation') OR - (srwp_i.name = 'fillet radius'))) - = SIZEOF(pdr.used_representation.items)) )) = 1 )) = 1; - WR6: SIZEOF (QUERY (pd <* USEDIN (SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - NOT (SIZEOF (QUERY (impl_rep <* QUERY (pdr <* USEDIN (pd, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' - IN TYPEOF (pdr.used_representation)) | - NOT (SIZEOF (QUERY (it <* impl_rep.used_representation.items | - (SIZEOF ( - ['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * - TYPEOF (it)) = 2) AND (it.name = 'fillet radius'))) <= 1))) - = 0))) = 0; - WR7: ((NOT (SELF\characterized_object.description IN ['complex', - 'non-circular cutout','recess'])) OR - (SIZEOF(QUERY ( pds <* QUERY ( pd <* USEDIN(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' - IN TYPEOF(pd)) ) | (NOT (SIZEOF(QUERY ( sa_occ <* USEDIN(pds, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE') | - ((sa_occ.description = 'boundary occurrence') AND - (SIZEOF(QUERY ( sdr <* QUERY ( sar <* USEDIN(sa_occ, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | - ((sar.description = 'profile usage') AND - (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_DEFINING_RELATIONSHIP') - IN TYPEOF(sar))) ) | ((SIZEOF([ - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CIRCULAR_CLOSED_PROFILE', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.NGON_CLOSED_PROFILE', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.RECTANGULAR_CLOSED_PROFILE', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CLOSED_PATH_PROFILE', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SQUARE_U_PROFILE', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PARTIAL_CIRCULAR_PROFILE', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.ROUNDED_U_PROFILE', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.VEE_PROFILE', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.TEE_PROFILE', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.OPEN_PATH_PROFILE'] * - TYPEOF(sdr.relating_shape_aspect)) = 1)) )) = 1)) )) - = 1)) )) = 0)); - WR8: ((NOT (SELF\characterized_object.description = - 'closed rectangular')) - OR (SIZEOF(QUERY ( pds <* QUERY ( pd <* USEDIN(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' - IN TYPEOF(pd)) ) | (NOT (SIZEOF(QUERY ( sa_occ <* USEDIN(pds, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE') | - ((sa_occ.description = 'closed boundary occurrence') AND - (SIZEOF(QUERY ( sdr <* QUERY ( sar <* USEDIN(sa_occ, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | - ((sar.description = 'profile usage') AND - (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_DEFINING_RELATIONSHIP') - IN TYPEOF(sar))) ) | - (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.RECTANGULAR_CLOSED_PROFILE' - IN TYPEOF(sdr.relating_shape_aspect))) )) = 1)) )) - = 1)) )) = 0)); - WR9: ((NOT (SELF\characterized_object.description = 'open rectangular')) - OR (SIZEOF(QUERY ( pds <* QUERY ( pd <* USEDIN(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' - IN TYPEOF(pd)) ) | (NOT (SIZEOF(QUERY ( sa_occ <* USEDIN(pds, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE') | - ((sa_occ.description = 'open boundary occurrence') AND - (SIZEOF(QUERY ( sdr <* QUERY ( sar <* USEDIN(sa_occ, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | - ((sar.description = 'profile usage') AND - (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_DEFINING_RELATIONSHIP') - IN TYPEOF(sar))) ) | - (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SQUARE_U_PROFILE' - IN TYPEOF(sdr.relating_shape_aspect))) )) = 1)) )) - = 1)) )) = 0)); - WR10: (SIZEOF(QUERY ( pds <* QUERY ( pd <* USEDIN(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' - IN TYPEOF(pd)) ) | (NOT (SIZEOF(QUERY ( sa_occ <* USEDIN(pds, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE') | - ((sa_occ.description = 'bottom condition occurrence') AND - (SIZEOF(QUERY ( sdr <* QUERY ( sar <* USEDIN(sa_occ, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | - ((sar.description = 'pocket bottom usage') AND - (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP') - IN TYPEOF(sar))) ) | - (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.POCKET_BOTTOM' - IN TYPEOF(sdr.relating_shape_aspect)) AND - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.POCKET' - IN TYPEOF(sdr.related_shape_aspect.of_shape.definition))) - )) = 1)) )) = 1)) )) = 0); - WR11: ((NOT (SELF\characterized_object.description IN ['complex', - 'non-circular cutout','recess'])) OR - (SIZEOF(QUERY ( pds <* QUERY ( pd <* USEDIN(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' - IN TYPEOF(pd)) ) | (NOT (SIZEOF(QUERY ( sa_occ <* USEDIN(pds, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE') | - ((sa_occ.description = 'change in boundary occurrence') AND - (SIZEOF(QUERY ( fcr <* QUERY ( sar <* USEDIN(sa_occ, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATING_SHAPE_ASPECT') | - ((sar.description = 'taper usage') AND - (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP') - IN TYPEOF(sar))) ) | - (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.TAPER' - IN TYPEOF(fcr.relating_shape_aspect)) AND - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.POCKET' - IN TYPEOF(fcr.related_shape_aspect.of_shape.definition)) AND - (fcr.related_shape_aspect.description - IN ['angle taper','directed taper'])) - )) = 1)) )) <= 1)) )) = 0)); - WR12: (NOT (SELF\characterized_object.description = 'circular cutout')) OR - (SIZEOF (QUERY (pds <* QUERY (pd <* USEDIN (SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN - TYPEOF (pd)) | NOT (SIZEOF (QUERY (sa_occ <* USEDIN (pds, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE') | - (sa_occ.description = 'enclosed boundary occurrence') AND - (SIZEOF (QUERY (sdr <* QUERY (sar <* USEDIN (sa_occ, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | - (sar.description = 'profile usage') AND - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_DEFINING_RELATIONSHIP' - IN TYPEOF (sar))) | - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CIRCULAR_CLOSED_PROFILE' - IN TYPEOF (sdr.relating_shape_aspect)))) - = 1))) = 1))) = 0); - WR13: (NOT (SELF\characterized_object.description IN - ['circular cutout','complex cutout'])) OR - (SIZEOF (QUERY (pds <* QUERY (pd <* USEDIN (SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN - TYPEOF (pd)) | NOT (SIZEOF (QUERY (sa_occ <* USEDIN (pds, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE') | - (sa_occ.description = 'bottom condition occurrence') AND - (SIZEOF (QUERY (sdr <* QUERY (sar <* USEDIN (sa_occ, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | - (sar.description = 'pocket bottom usage') AND - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP' - IN TYPEOF (sar))) | - (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.POCKET_BOTTOM' - IN TYPEOF (sdr.relating_shape_aspect)) AND - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.POCKET' - IN TYPEOF (sdr.related_shape_aspect.of_shape.definition))AND - (sdr.relating_shape_aspect.description = 'through') ) - )) = 1))) = 1))) = 0); - WR14: (NOT (SELF\characterized_object.description = 'recess')) OR - (SIZEOF (QUERY (pds <* QUERY (pd <* USEDIN (SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN - TYPEOF (pd)) | - NOT (SIZEOF (QUERY (sa_occ <* USEDIN (pds, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE') | - (sa_occ.description = 'bottom condition occurrence') AND - (SIZEOF (QUERY (sdr <* QUERY (sar <* USEDIN (sa_occ, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | - (sar.description = 'pocket bottom usage') AND - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP' - IN TYPEOF (sar))) | - (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.POCKET_BOTTOM' - IN TYPEOF (sdr.relating_shape_aspect)) AND - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.POCKET' - IN TYPEOF (sdr.related_shape_aspect.of_shape.definition)) AND - (sdr.relating_shape_aspect.description IN ['planar','complex']) ) - )) = 1))) = 1))) = 0); - WR15: SIZEOF(QUERY(pdr <* get_property_definition_representations (SELF) | - ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PLANAR_SHAPE_REPRESENTATION' - IN TYPEOF ( pdr.used_representation ) ) AND - ( pdr.used_representation.name ='maximum feature limit'))) >=0; - - WR16: ((NOT (SELF\characterized_object.description IN - ['closed rectangular','open rectangular', 'complex', - 'recess'])) OR - (SIZEOF(QUERY ( pds <* USEDIN(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' - IN TYPEOF(pds)) AND (SIZEOF(QUERY ( csa <* USEDIN(pds, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE') | - (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.COMPOSITE_SHAPE_ASPECT' - IN TYPEOF(csa)) AND - (csa.name='uncut volume') AND - (SIZEOF(QUERY ( sar <* csa.component_relationships | - ((('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP' - IN TYPEOF(sar)) AND - (SIZEOF(['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.BOSS','AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROTRUSION'] - * TYPEOF(sar.related_shape_aspect))=1) - ) ))) = 1)) )) <= 1)) )) = 1)); - - WR17: ((NOT (SELF\characterized_object.description IN - ['closed rectangular','open rectangular'])) OR - (SIZEOF(QUERY ( pds <* QUERY ( pd <* USEDIN(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' - IN TYPEOF(pd)) ) | (NOT (SIZEOF(QUERY ( sa_occ <* USEDIN(pds, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE') | - ((sa_occ.description = 'change in boundary occurrence') AND - (SIZEOF(QUERY ( fcr <* QUERY ( sar <* USEDIN(sa_occ, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATING_SHAPE_ASPECT') | - ((sar.description = 'taper usage') AND - (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP') - IN TYPEOF(sar))) ) | - (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.TAPER' - IN TYPEOF(fcr.relating_shape_aspect)) AND - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.POCKET' - IN TYPEOF(fcr.related_shape_aspect.of_shape.definition)) AND - (fcr.related_shape_aspect.description - IN ['angle taper','directed taper'])) - )) >= 1)) )) <=1)) )) = 0)); - -END_ENTITY; -- pocket -(* USED FROM (aic_machining_feature); *) -ENTITY planar_shape_representation - SUBTYPE OF (shape_representation); -WHERE - WR1: SIZEOF (SELF.items) = 1; - WR2: SIZEOF (QUERY (it <* SELF.items | - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PLANE' IN TYPEOF (it)))) = 1 ; -END_ENTITY; -(* USED FROM (aic_machining_feature); *) -ENTITY path_feature_component - SUBTYPE OF (shape_aspect); - WHERE - WR1: ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.FEATURE_COMPONENT_DEFINITION' - IN TYPEOF(SELF.of_shape.definition)); - WR2: (SELF.description IN ['partial circular','complete circular', - 'linear','complex']); - WR3: ((NOT (SELF.description = 'complex')) OR - (SIZEOF(QUERY ( pd <* USEDIN(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(QUERY ( pdr <* USEDIN(pd, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') - IN TYPEOF(pdr.used_representation)) )) = 1)) )) = 0)); - WR4: ((SIZEOF(QUERY ( pd <* USEDIN(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') - IN TYPEOF(pdr.used_representation)) ) | - (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | - (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PLACEMENT' - IN TYPEOF(it)) AND (it.name = 'orientation')) )) = 1)) )) - = 0)) )) = 0)); - WR5: ((NOT (SELF.description = 'partial circular')) OR - (SIZEOF(QUERY ( pd <* USEDIN(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') - IN TYPEOF(pdr.used_representation)) ) | - (NOT (SIZEOF(impl_rep.used_representation.items) = 3)) )) - = 0)) )) = 0)); - WR6: ((NOT (SELF.description = 'partial circular')) OR - (SIZEOF(QUERY ( pd <* USEDIN(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') - IN TYPEOF(pdr.used_representation)) ) | - (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | - ((SIZEOF([ - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * - TYPEOF(it)) = 2) AND (it.name = 'radius')) )) = 1)) )) - = 0)) )) = 0)); - WR7: ((NOT (SELF.description = 'partial circular')) OR - (SIZEOF(QUERY ( pd <* USEDIN(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') - IN TYPEOF(pdr.used_representation)) ) | - (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | - ((SIZEOF([ - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PLANE_ANGLE_MEASURE_WITH_UNIT'] * - TYPEOF(it)) = 2) AND (it.name = 'sweep angle')) )) = 1)) )) - = 0)) )) = 0)); - WR8: ((NOT (SELF.description = 'complete circular')) OR - (SIZEOF(QUERY ( pd <* USEDIN(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') - IN TYPEOF(pdr.used_representation)) ) | - (NOT (SIZEOF(impl_rep.used_representation.items) = 2)) )) - = 0)) )) = 0)); - WR9: ((NOT (SELF.description = 'complete circular')) OR - (SIZEOF(QUERY ( pd <* USEDIN(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') - IN TYPEOF(pdr.used_representation)) ) | - (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | - ((SIZEOF([ - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * - TYPEOF(it)) = 2) AND (it.name = 'radius')) )) = 1)) )) - = 0)) )) = 0)); - WR10: ((NOT (SELF.description = 'linear')) OR - (SIZEOF(QUERY ( pd <* USEDIN(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') - IN TYPEOF(pdr.used_representation)) ) | - (NOT (SIZEOF(impl_rep.used_representation.items) = 2)) )) - = 0)) )) = 0)); - WR11: ((NOT (SELF.description = 'linear')) OR - (SIZEOF(QUERY ( pd <* USEDIN(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') - IN TYPEOF(pdr.used_representation)) ) | - (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | - ((SIZEOF([ - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * - TYPEOF(it)) = 2) AND (it.name = 'distance')) )) = 1)) )) - = 0)) )) = 0)); - WR12: ((NOT (SELF.description = 'linear')) OR - (SIZEOF(QUERY ( pd <* USEDIN(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(QUERY ( pdr <* USEDIN(pd, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.DIRECTION_SHAPE_REPRESENTATION' - IN TYPEOF(pdr.used_representation)) )) = 1)) )) = 0)); - WR13: ((NOT (SELF.description = 'complex')) OR - (SIZEOF(QUERY ( pd <* USEDIN(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(QUERY ( pdr <* USEDIN(pd, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PATH_SHAPE_REPRESENTATION' - IN TYPEOF(pdr.used_representation)) AND - (pdr.used_representation.name = 'sweep path')AND - (SIZEOF( QUERY( srwp_i <* pdr.used_representation.items | - (srwp_i.name = 'profile shape') )) = 1) - ) )) = 1)) )) = 0)); -END_ENTITY; -- path_feature_component -(* USED FROM (aic_machining_feature); *) -ENTITY pattern_offset_membership - SUBTYPE OF (feature_component_relationship); - WHERE - WR1 : (SIZEOF(QUERY ( fcr <* QUERY ( sar <* USEDIN( - SELF.relating_shape_aspect, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.' - + 'RELATING_SHAPE_ASPECT') | - (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP' - IN TYPEOF(sar)) AND (sar :<>: SELF)) ) | - ((SIZEOF (QUERY( pdr <*(QUERY(pd <* USEDIN - (fcr.related_shape_aspect.of_shape, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' - IN TYPEOF(pd))) | - SIZEOF (['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CIRCULAR_PATTERN', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.RECTANGULAR_PATTERN'] - * TYPEOF(pdr.definition)) =1 )) = 0 )) )) = 0); - WR2 : (SIZEOF(QUERY ( fcr <* QUERY ( sar <* USEDIN( - SELF.related_shape_aspect, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | - (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP' - IN TYPEOF(sar)) AND (sar :<>: SELF)) ) | - (fcr.description='modified pattern') AND - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MODIFIED_PATTERN' - IN TYPEOF(fcr.relating_shape_aspect)) )) >= 1); - WR3 : (SIZEOF(QUERY ( fcr <* QUERY ( sar <* USEDIN( - SELF.related_shape_aspect, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | - (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP' - IN TYPEOF(sar)) AND (sar :<>: SELF)) ) | - (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MODIFIED_PATTERN' - IN TYPEOF(fcr.relating_shape_aspect)) AND - (NOT (SIZEOF(QUERY ( modfcr <* QUERY ( modsar <* USEDIN( - fcr.relating_shape_aspect,'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATING_SHAPE_ASPECT') | - ((SIZEOF(['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CIRCULAR_PATTERN', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.RECTANGULAR_PATTERN'] * - TYPEOF(modsar.related_shape_aspect.of_shape.definition)) = 1) AND - (modsar :<>: fcr)) ) | - (NOT (modfcr.related_shape_aspect.of_shape.definition :=: - SELF.relating_shape_aspect.of_shape.definition)) )) - = 0))) )) = 0); - WR4 : ((NOT ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.RECTANGULAR_PATTERN' - IN TYPEOF(SELF.relating_shape_aspect.of_shape.definition))) OR - (SIZEOF(QUERY ( pd <* USEDIN(SELF.related_shape_aspect, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(USEDIN(pd,'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')) = 2)) )) = 0)); - WR5 : ((NOT ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CIRCULAR_PATTERN' - IN TYPEOF(SELF.relating_shape_aspect.of_shape.definition))) OR - (SIZEOF(QUERY ( pd <* USEDIN(SELF.related_shape_aspect, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(USEDIN(pd,'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')) = 1)) )) = 0)); - WR6 : ((NOT ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CIRCULAR_PATTERN' - IN TYPEOF(SELF.relating_shape_aspect.of_shape.definition))) OR - (SIZEOF(QUERY ( pd <* USEDIN(SELF.related_shape_aspect, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(QUERY ( pdr <* USEDIN(pd, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - (NOT (SIZEOF(pdr.used_representation.items) = 2)) )) = 0)) )) - = 0)); - WR7 : ((NOT ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CIRCULAR_PATTERN' - IN TYPEOF(SELF.relating_shape_aspect.of_shape.definition))) OR - (SIZEOF(QUERY ( pd <* USEDIN(SELF.related_shape_aspect, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') - IN TYPEOF(pdr.used_representation)) ) | - (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | - (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM' - IN TYPEOF(it)) AND - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.COUNT_MEASURE' - IN TYPEOF(it\measure_with_unit.value_component)) AND - (it.name = 'index number')) )) = 1)) )) = 0)) )) = 0)); - WR8 : ((NOT ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CIRCULAR_PATTERN' - IN TYPEOF(SELF.relating_shape_aspect.of_shape.definition))) OR - (SIZEOF(QUERY ( pd <* USEDIN(SELF.related_shape_aspect, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') - IN TYPEOF(pdr.used_representation)) ) | - (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | - (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PLANE_ANGLE_MEASURE_WITH_UNIT' - IN TYPEOF(it)) AND (it.name = 'offset')) )) = 1)) )) = 0)) )) - = 0)); - WR9: ((NOT ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.RECTANGULAR_PATTERN' - IN TYPEOF(SELF.relating_shape_aspect.of_shape.definition))) OR - (SIZEOF(QUERY ( pd <* USEDIN(SELF.related_shape_aspect, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION')| - (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') - IN TYPEOF(pdr.used_representation)) ) | - (NOT (SIZEOF(impl_rep.used_representation.items ) = 3)) )) - = 0)) )) = 0)); - WR10: ((NOT ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.RECTANGULAR_PATTERN' - IN TYPEOF(SELF.relating_shape_aspect.of_shape.definition))) OR - (SIZEOF(QUERY ( pd <* USEDIN(SELF.related_shape_aspect, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION')| - (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') - IN TYPEOF(pdr.used_representation)) ) | - (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | - (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM' - IN TYPEOF(it)) AND - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.COUNT_MEASURE' - IN TYPEOF(it\measure_with_unit.value_component)) AND - (it.name = 'row index')) )) = 1)) )) = 0)) )) = 0)); - WR11: ((NOT ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.RECTANGULAR_PATTERN' - IN TYPEOF(SELF.relating_shape_aspect.of_shape.definition))) OR - (SIZEOF(QUERY ( pd <* USEDIN(SELF.related_shape_aspect, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') - IN TYPEOF(pdr.used_representation)) ) | - (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | - (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM' - IN TYPEOF(it)) AND - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.COUNT_MEASURE' - IN TYPEOF(it\measure_with_unit.value_component)) AND - (it.name = 'column index')) )) = 1)) )) = 0)) )) = 0)); - WR12: ((NOT ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.RECTANGULAR_PATTERN' - IN TYPEOF(SELF.relating_shape_aspect.of_shape.definition))) OR - (SIZEOF(QUERY ( pd <* USEDIN(SELF.related_shape_aspect, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') - IN TYPEOF(pdr.used_representation)) ) | - (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | - (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT' - IN TYPEOF(it)) AND (it.name = 'offset distance')) )) = 1)) )) - = 0)) )) = 0)); - WR13: ((NOT ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.RECTANGULAR_PATTERN' - IN TYPEOF(SELF.relating_shape_aspect.of_shape.definition))) OR - (SIZEOF(QUERY ( pd <* USEDIN(SELF.related_shape_aspect, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(QUERY ( pdr <* USEDIN(pd, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.DIRECTION_SHAPE_REPRESENTATION' - IN TYPEOF(pdr.used_representation)) AND - (pdr.used_representation.name = 'offset direction')) )) = 1)) )) - = 0)); -END_ENTITY; -- pattern_offset_membership -(* USED FROM (aic_machining_feature); *) -ENTITY path_shape_representation - SUBTYPE OF (shape_representation); - WHERE - WR1: (SIZEOF(SELF.items) >= 1); - WR2: (SIZEOF(QUERY ( i <* SELF.items | (SIZEOF([ - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.BOUNDED_CURVE', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.EDGE_CURVE', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PATH'] * TYPEOF(i)) = - 1) )) >= 1); -END_ENTITY; -- path_shape_representation -(* USED FROM (aic_machining_feature); *) -ENTITY chamfer - SUBTYPE OF (transition_feature); - WHERE - WR1: (SIZEOF(QUERY ( pd <* USEDIN(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(QUERY ( pdr <* USEDIN(pd, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.FACE_SHAPE_REPRESENTATION' - IN TYPEOF(pdr.used_representation)) AND - (pdr.used_representation.name = 'chamfer face')) )) <= 1)) )) = 0); - WR2: (SIZEOF(QUERY ( fcr <* QUERY ( sar <* USEDIN(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATING_SHAPE_ASPECT') | - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP' - IN TYPEOF(sar)) ) | - (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CHAMFER_OFFSET' - IN TYPEOF(fcr.related_shape_aspect))AND - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CHAMFER' - IN TYPEOF(fcr.relating_shape_aspect)) AND - (fcr.related_shape_aspect.description = 'first offset') ) - )) = 1); - WR3: (SIZEOF(QUERY ( fcr <* QUERY ( sar <* USEDIN(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATING_SHAPE_ASPECT') | - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP' - IN TYPEOF(sar)) ) | - (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CHAMFER_OFFSET' - IN TYPEOF(fcr.related_shape_aspect)) AND - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CHAMFER' - IN TYPEOF(fcr.relating_shape_aspect))AND - (fcr.related_shape_aspect.description = 'second offset')) - )) = 1); -END_ENTITY; -- chamfer -(* USED FROM (aic_machining_feature); *) -ENTITY chamfer_offset - SUBTYPE OF (shape_aspect); - WHERE - WR1: (SELF.description IN ['first offset','second offset']); - WR2: (SIZEOF(QUERY ( pd <* USEDIN(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(QUERY ( pdr <* USEDIN(pd, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') - IN TYPEOF(pdr.used_representation)) )) = 1)) )) = 0); - WR3: (SIZEOF(QUERY ( pd <* USEDIN(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') - IN TYPEOF(pdr.used_representation)) ) | - (NOT (SIZEOF(impl_rep.used_representation.items) = 1)) )) - = 0)) )) = 0); - WR4: ((NOT (SELF.description = 'first offset')) OR - (SIZEOF(QUERY ( pd <* USEDIN(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') - IN TYPEOF(pdr.used_representation)) ) | - (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | - ((SIZEOF([ - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * - TYPEOF(it)) = 2) AND (it.name = 'offset amount')) )) = 1)) )) - = 0)) )) = 0)); - WR5: ((NOT (SELF.description = 'first offset')) OR - (SIZEOF(QUERY ( pd <* USEDIN(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(QUERY ( pdr <* USEDIN(pd, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.FACE_SHAPE_REPRESENTATION' - IN TYPEOF(pdr.used_representation)) AND - (pdr.used_representation.name = 'first face shape')) )) <= 1)) )) - = 0)); - WR6: ((NOT (SELF.description = 'second offset')) OR - (SIZEOF(QUERY ( pd <* USEDIN(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') - IN TYPEOF(pdr.used_representation)) ) | - (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | - (((SIZEOF([ - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * - TYPEOF(it)) = 2) AND (it.name = 'offset amount')) OR - ((SIZEOF([ - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PLANE_ANGLE_MEASURE_WITH_UNIT'] - * TYPEOF(it)) = 2) AND (it.name = 'offset angle'))) )) = 1)) )) - = 0)) )) = 0)); - WR7: ((NOT (SELF.description = 'second offset')) OR - (SIZEOF(QUERY ( pd <* USEDIN(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(QUERY ( pdr <* USEDIN(pd, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.FACE_SHAPE_REPRESENTATION' - IN TYPEOF(pdr.used_representation)) AND - (pdr.used_representation.name = 'second face shape')) )) <= 1)) )) - = 0)); - WR8: (SIZEOF(QUERY ( sdr <* QUERY ( sar <* USEDIN(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | - (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP') - IN TYPEOF(sar)) ) | - (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CHAMFER' - IN TYPEOF(sdr.relating_shape_aspect))AND - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CHAMFER_OFFSET' - IN TYPEOF(sdr.related_shape_aspect))) - )) = 1); -END_ENTITY; -- chamfer_offset -(* USED FROM (draughting_element_schema); *) - ENTITY dimension_curve_directed_callout - SUBTYPE OF (draughting_callout); - WHERE - WR1: SIZEOF(QUERY(d_c<*SELF\draughting_callout.contents | - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.DIMENSION_CURVE' IN (TYPEOF(d_c))))<=2; - WR2: SIZEOF(SELF\draughting_callout.contents) >= 2; - END_ENTITY; -(* USED FROM (aic_machining_feature); *) -ENTITY face_shape_representation - SUBTYPE OF (shape_representation); - WHERE - WR1: (SIZEOF(SELF.items) >= 1); - WR2: (SIZEOF(QUERY ( it <* SELF.items | (NOT ( - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.FACE_SURFACE' IN TYPEOF(it)) OR - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.ORIENTED_FACE' IN TYPEOF(it)) )) - )) = 0); -END_ENTITY; -- face_shape_representation -(* USED FROM (draughting_element_schema); *) - ENTITY leader_directed_callout - SUBTYPE OF (draughting_callout); - WHERE - WR1: SIZEOF (QUERY (l_1 <* SELF\draughting_callout.contents | - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LEADER_CURVE' IN (TYPEOF(l_1)))) >= 1; - WR2: SIZEOF(SELF\draughting_callout.contents) >=2; - END_ENTITY; -(* USED FROM (aic_machining_feature); *) -ENTITY outside_profile - SUBTYPE OF (feature_definition); - WHERE - WR1: SIZEOF( QUERY( pd <* USEDIN( SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - SIZEOF( QUERY( pdr <* USEDIN( pd, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' - IN TYPEOF(pdr.used_representation)) AND - (SIZEOF (pdr.used_representation.items) = 1) )) = 1 )) = 1; - WR2: SIZEOF (QUERY (pds <* QUERY (pd <* USEDIN (SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' - IN TYPEOF (pd)) | - NOT (SIZEOF (QUERY (sa_occ <* USEDIN (pds, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE') | - (sa_occ.description IN ['boundary occurrence', - 'non-planar boundary occurrence', - 'partial circular boundary occurrence', - 'closed circular boundary occurrence', - 'open rectangular boundary occurrence', - 'closed rectangular boundary occurrence']) )) =1) ))=0; - WR3: (NOT(SIZEOF (QUERY (pds <* QUERY (pd <* USEDIN (SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' - IN TYPEOF (pd)) | - NOT (SIZEOF (QUERY (sa_occ <* USEDIN (pds, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE') | - (sa_occ.description = 'boundary occurrence') )) =1) ))=0)) OR - (SIZEOF (QUERY (pds <* QUERY (pd <* USEDIN (SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' - IN TYPEOF (pd)) | - NOT (SIZEOF (QUERY (sa_occ <* USEDIN (pds, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE') | - (SIZEOF (QUERY (sdr <* QUERY (sar <* USEDIN (sa_occ, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | - (sar.description = 'profile usage') AND - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF (sar))) | - (SIZEOF (['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CIRCULAR_CLOSED_PROFILE', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.NGON_CLOSED_PROFILE', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.RECTANGULAR_CLOSED_PROFILE', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CLOSED_PATH_PROFILE', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SQUARE_U_PROFILE', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PARTIAL_CIRCULAR_PROFILE', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.ROUNDED_U_PROFILE', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LINEAR_PROFILE', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.VEE_PROFILE', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.TEE_PROFILE', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.OPEN_PATH_PROFILE'] * - TYPEOF (sdr.relating_shape_aspect)) = 1) AND - (sdr.relating_shape_aspect.description = 'outside boundary'))) - = 1))) = 1))) = 0); - WR4: (NOT(SIZEOF (QUERY (pds <* QUERY (pd <* USEDIN (SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' - IN TYPEOF (pd)) | - NOT (SIZEOF (QUERY (sa_occ <* USEDIN (pds, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE') | - (sa_occ.description IN ['complex boundary occurrence', - 'partial circular boundary occurrence', - 'closed circular boundary occurrence', - 'open rectangular boundary occurrence', - 'closed rectangular boundary occurrence']) ))=1) ))=0)) OR - (SIZEOF (QUERY (pds <* QUERY (pd <* USEDIN (SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' - IN TYPEOF (pd)) | - NOT (SIZEOF (QUERY (sa_occ <* USEDIN (pds, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE') | - NOT(SIZEOF (QUERY (sdr <* QUERY (sar <* USEDIN (sa_occ, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | - (sar.description = 'profile floor usage') AND - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP' - IN TYPEOF (sar))) | - (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROFILE_FLOOR' - IN TYPEOF (sdr.relating_shape_aspect)) AND - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.OUTSIDE_PROFILE' - IN TYPEOF (sdr.related_shape_aspect.of_shape.definition))) - )) = 1))) = 0))) = 0); - WR5: (NOT(SIZEOF (QUERY (pds <* QUERY (pd <* USEDIN (SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' - IN TYPEOF (pd)) | - NOT (SIZEOF (QUERY (sa_occ <* USEDIN (pds, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE') | - (sa_occ.description IN ['outside boundary', - 'complex boundary occurrence', - 'partial circular boundary occurrence', - 'closed circular boundary occurrence', - 'open rectangular boundary occurrence', - 'closed rectangular boundary occurrence']) ))=1) ))=0)) OR - (SIZEOF (QUERY (pds <* QUERY (pd <* USEDIN (SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' - IN TYPEOF (pd)) | - NOT (SIZEOF (QUERY (sa_occ <* USEDIN (pds, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE') | - (SIZEOF (QUERY (sdr <* QUERY (sar <* USEDIN (sa_occ, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | - (sar.description = 'path feature component usage') AND - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF (sar))) | - (SIZEOF (['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PATH_FEATURE_COMPONENT'] * - TYPEOF (sdr.relating_shape_aspect)) = 1) AND - (sdr.name = 'profile swept shape') AND - (sdr.relating_shape_aspect.description='linear') )) = 1))) - = 1))) = 0); - WR6: (NOT(SIZEOF (QUERY (pds <* QUERY (pd <* USEDIN (SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' - IN TYPEOF (pd)) | - NOT (SIZEOF (QUERY (sa_occ <* USEDIN (pds, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE') | - (sa_occ.description = 'complex boundary occurrence') )) - =1) ))=0)) OR - (SIZEOF (QUERY (pds <* QUERY (pd <* USEDIN (SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' - IN TYPEOF (pd)) | - NOT (SIZEOF (QUERY (sa_occ <* USEDIN (pds, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE') | - (SIZEOF (QUERY (sdr <* QUERY (sar <* USEDIN (sa_occ, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | - (sar.description = 'profile usage') AND - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_DEFINING_RELATIONSHIP' - IN TYPEOF (sar))) | - (SIZEOF (['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CIRCULAR_CLOSED_PROFILE', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.NGON_CLOSED_PROFILE', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.RECTANGULAR_CLOSED_PROFILE', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CLOSED_PATH_PROFILE', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SQUARE_U_PROFILE', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PARTIAL_CIRCULAR_PROFILE', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.ROUNDED_U_PROFILE', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.VEE_PROFILE', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.TEE_PROFILE', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LINEAR_PROFILE', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.OPEN_PATH_PROFILE'] * - TYPEOF (sdr.relating_shape_aspect)) =1)) ) - = 1)))= 1))) = 0); - WR7: (NOT(SIZEOF (QUERY (pds <* QUERY (pd <* USEDIN (SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' - IN TYPEOF (pd)) | - NOT (SIZEOF (QUERY (sa_occ <* USEDIN (pds, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE') | - (sa_occ.description = 'partial circular boundary occurrence') )) - =1) ))=0)) OR - (SIZEOF (QUERY (pds <* QUERY (pd <* USEDIN (SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' - IN TYPEOF (pd)) | - NOT (SIZEOF (QUERY (sa_occ <* USEDIN (pds, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE') | - (SIZEOF (QUERY (sdr <* QUERY (sar <* USEDIN (sa_occ, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | - (sar.description = 'profile usage') AND - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_DEFINING_RELATIONSHIP' - IN TYPEOF (sar))) | - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PARTIAL_CIRCULAR_PROFILE' IN - TYPEOF (sdr.relating_shape_aspect)))) - = 1)))= 1))) = 0); - WR8: (NOT(SIZEOF (QUERY (pds <* QUERY (pd <* USEDIN (SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' - IN TYPEOF (pd)) | - NOT (SIZEOF (QUERY (sa_occ <* USEDIN (pds, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE') | - (sa_occ.description = 'closed circular boundary occurrence') )) - =1) ))=0)) OR - (SIZEOF (QUERY (pds <* QUERY (pd <* USEDIN (SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' - IN TYPEOF (pd)) | - NOT (SIZEOF (QUERY (sa_occ <* USEDIN (pds, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE') | - (SIZEOF (QUERY (sdr <* QUERY (sar <* USEDIN (sa_occ, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | - (sar.description = 'profile usage') AND - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_DEFINING_RELATIONSHIP' - IN TYPEOF (sar))) | - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CIRCULAR_CLOSED_PROFILE' IN - TYPEOF (sdr.relating_shape_aspect)))) - = 1)))= 1))) = 0); - WR9: (NOT(SIZEOF (QUERY (pds <* QUERY (pd <* USEDIN (SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' - IN TYPEOF (pd)) | - NOT (SIZEOF (QUERY (sa_occ <* USEDIN (pds, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE') | - (sa_occ.description = 'open rectangular boundary occurrence') )) - =1) ))=0)) OR - (SIZEOF (QUERY (pds <* QUERY (pd <* USEDIN (SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' - IN TYPEOF (pd)) | - NOT (SIZEOF (QUERY (sa_occ <* USEDIN (pds, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE') | - (SIZEOF (QUERY (sdr <* QUERY (sar <* USEDIN (sa_occ, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | - (sar.description = 'profile usage') AND - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_DEFINING_RELATIONSHIP' - IN TYPEOF (sar))) | - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SQUARE_U_PROFILE' IN - TYPEOF (sdr.relating_shape_aspect)))) - = 1)))= 1))) = 0); - WR10: (NOT(SIZEOF (QUERY (pds <* QUERY (pd <* USEDIN (SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' - IN TYPEOF (pd)) | - NOT (SIZEOF (QUERY (sa_occ <* USEDIN (pds, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE') | - (sa_occ.description = 'closed rectangular boundary occurrence') )) - =1) ))=0)) OR - (SIZEOF (QUERY (pds <* QUERY (pd <* USEDIN (SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' - IN TYPEOF (pd)) | - NOT (SIZEOF (QUERY (sa_occ <* USEDIN (pds, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE') | - (SIZEOF (QUERY (sdr <* QUERY (sar <* USEDIN (sa_occ, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | - (sar.description = 'profile usage') AND - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_DEFINING_RELATIONSHIP' - IN TYPEOF (sar))) | - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.RECTANGULAR_CLOSED_PROFILE' IN - TYPEOF (sdr.relating_shape_aspect)) )) = 1))) - = 1))) = 0); - WR11: (SIZEOF (QUERY (pds <* QUERY (pd <* USEDIN (SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' - IN TYPEOF (pd)) | - NOT (SIZEOF (QUERY (sa_occ <* USEDIN (pds, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE') | - (sa_occ.description IN ['boundary occurrence', - 'complex boundary occurrence', - 'partial circular boundary occurrence', - 'closed circular boundary occurrence', - 'open rectangular boundary occurrence', - 'closed rectangular boundary occurrence']) )) =1) ))=0) OR - (SIZEOF(QUERY ( pd <* USEDIN(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(QUERY ( pdr <* USEDIN(pd, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.DIRECTION_SHAPE_REPRESENTATION' - IN TYPEOF(pdr.used_representation)) AND - (pdr.used_representation.name = 'removal direction')) )) = 1)) )) - = 0); - WR12: SIZEOF(QUERY(pdr <* get_property_definition_representations (SELF) | - ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PLANAR_SHAPE_REPRESENTATION' - IN TYPEOF ( pdr.used_representation ) ) AND - ( pdr.used_representation.name ='maximum feature limit'))) >=0; -END_ENTITY; -- outside_profile -(* USED FROM (draughting_element_schema); *) - ENTITY projection_directed_callout - SUBTYPE OF (draughting_callout); - WHERE - WR1: SIZEOF(QUERY(p_1<*SELF\draughting_callout.contents | - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROJECTION_CURVE' IN (TYPEOF(p_1))))<=2; - WR2: SIZEOF(SELF\draughting_callout.contents) >=2; - END_ENTITY; -(* USED FROM (aic_machining_feature); *) -ENTITY outer_round - SUBTYPE OF (feature_definition); - WHERE - WR1: ((NOT (SELF\characterized_object.description = 'outer diameter')) OR - (SIZEOF( QUERY( pd <* USEDIN( SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - SIZEOF( QUERY( pdr <* USEDIN( pd, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' - IN TYPEOF(pdr.used_representation)) AND - (SIZEOF (pdr.used_representation.items) = 3) )) = 1 )) = 1)); - WR2: ((NOT (SELF\characterized_object.description - = 'outer diameter to shoulder')) OR - (SIZEOF( QUERY( pd <* USEDIN( SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - SIZEOF( QUERY( pdr <* USEDIN( pd, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' - IN TYPEOF(pdr.used_representation)) AND - ( {2 <= SIZEOF(pdr.used_representation.items) <= 3}) )) = 1 )) = 1)); - WR3: (SELF\characterized_object.description IN - ['outer diameter', 'outer diameter to shoulder']); - WR4: ((NOT (SELF\characterized_object.description = 'outer diameter')) OR - (SIZEOF( QUERY ( pd <* USEDIN(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') - IN TYPEOF(pdr.used_representation)) ) | - (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | - ((SIZEOF([ - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * - TYPEOF(it)) = 2) AND (it.name = 'length')) )) = 1)) )) - = 0)) )) = 0)); - WR5: (SIZEOF(QUERY ( pd <* USEDIN(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') - IN TYPEOF(pdr.used_representation)) ) | - (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | - ((SIZEOF - (['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * - TYPEOF(it)) = 2) AND (it.name = 'diameter')) )) = 1)) )) - = 0)) )) = 0); - WR6: ((NOT (SELF\characterized_object.description - = 'outer diameter to shoulder')) OR ( - SIZEOF(QUERY ( pds <* QUERY ( pd <* USEDIN(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN - TYPEOF(pd)) ) | - (NOT (SIZEOF(QUERY ( sa_occ <* USEDIN(pds, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE') | - ((sa_occ.description = 'v-shape boundary occurrence') AND - (SIZEOF(QUERY ( sdr <* QUERY ( sar <* USEDIN(sa_occ, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | - ((sar.description = 'profile usage') AND - (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_DEFINING_RELATIONSHIP') - IN TYPEOF(sar))) ) | - (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.VEE_PROFILE' - IN TYPEOF(sdr.relating_shape_aspect)) AND - (sdr.relating_shape_aspect.description = 'v-shape')) )) = 1)) )) - = 1)) )) = 0)); - WR7: ((NOT (SELF\characterized_object.description = 'outer diameter')) OR - (SIZEOF(QUERY ( pds <* QUERY ( pd <* USEDIN(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' - IN TYPEOF(pd)) ) | (NOT (SIZEOF(QUERY ( sa_occ <* USEDIN(pds, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE') | - ((sa_occ.description = 'reduced size occurrence') AND - (SIZEOF(QUERY ( sdr <* QUERY ( sar <* USEDIN(sa_occ, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | - ((sar.description = 'taper usage') AND - (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP') - IN TYPEOF(sar))) ) | - (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.TAPER' - IN TYPEOF(sdr.relating_shape_aspect)) AND - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.OUTER_ROUND' - IN TYPEOF(sdr.related_shape_aspect.of_shape.definition)) AND - (sdr.name = 'reduced size')) - )) = 1)) )) - <= 1)) )) = 0)); - WR8: ((NOT (SELF\characterized_object.description = - 'outer diameter to shoulder')) OR - (SIZEOF( QUERY ( pd <* USEDIN(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') - IN TYPEOF(pdr.used_representation)) ) | - (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | - ((SIZEOF([ - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * - TYPEOF(it)) = 2) AND (it.name = 'length')) )) <= 1)) )) - = 0)) )) = 0)); - WR9: ((NOT (SELF\characterized_object.description = - 'outer diameter to shoulder')) OR - (SIZEOF( QUERY ( pd <* USEDIN(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') - IN TYPEOF(pdr.used_representation)) ) | - (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | - ((SIZEOF([ - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * - TYPEOF(it)) = 2) AND (it.name = 'feature length')) )) <= 1)) )) - = 0)) )) = 0)); -END_ENTITY; -- outer_round -(* USED FROM (aic_machining_feature); *) -ENTITY open_path_profile - SUBTYPE OF (shape_aspect); - WHERE - WR1: ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.FEATURE_COMPONENT_DEFINITION' - IN TYPEOF(SELF.of_shape.definition)); - WR2: (SIZEOF(QUERY ( pd <* USEDIN(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(QUERY ( pdr <* USEDIN(pd, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') - IN TYPEOF(pdr.used_representation)) )) = 1)) )) = 0); - WR3: (SIZEOF(QUERY ( pd <* USEDIN(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') - IN TYPEOF(pdr.used_representation)) ) | - (NOT (SIZEOF (impl_rep.used_representation.items) = 1)) )) - = 0)) )) = 0); - WR4: (SIZEOF(QUERY ( pd <* USEDIN(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') - IN TYPEOF(pdr.used_representation)) ) | - (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | - (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PLACEMENT' - IN TYPEOF(it)) AND - (it.name = 'orientation')) )) = 1)) )) = 0)) )) = 0); - WR5: (SIZEOF(QUERY ( pd <* USEDIN(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(QUERY ( pdr <* USEDIN(pd, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PATH_SHAPE_REPRESENTATION' - IN TYPEOF(pdr.used_representation)) )) = 1)) )) = 0); - WR6: SIZEOF (QUERY (pd <* USEDIN (SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - NOT (SIZEOF (QUERY (pdr <* USEDIN (pd, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PLANAR_SHAPE_REPRESENTATION' - IN TYPEOF (pdr.used_representation))AND - (pdr.used_representation.name = 'profile limit') )) <= 1))) = 0; -END_ENTITY; -(* USED FROM (aic_machining_feature); *) -ENTITY ngon_closed_profile - SUBTYPE OF (shape_aspect); -WHERE - WR1: 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.FEATURE_COMPONENT_DEFINITION' - IN TYPEOF (SELF.of_shape.definition); - WR2: SIZEOF (QUERY (pd <* USEDIN (SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - NOT (SIZEOF (QUERY (pdr <* USEDIN (pd, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' - IN TYPEOF (pdr.used_representation))) = 1))) = 0; - WR3: SIZEOF (QUERY (pd <* USEDIN (SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - NOT (SIZEOF (QUERY (impl_rep <* QUERY (pdr <* USEDIN (pd, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' - IN TYPEOF (pdr.used_representation)) | - NOT ((SIZEOF (impl_rep.used_representation.items) >= 3) - AND (SIZEOF(impl_rep.used_representation.items) <= 4)))) = 0))) = 0; - WR4: SIZEOF( QUERY( pd <* USEDIN( SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - SIZEOF( QUERY( pdr <* USEDIN( pd, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' - IN TYPEOF(pdr.used_representation)) AND - (SIZEOF( QUERY( srwp_i <* pdr.used_representation.items | - (srwp_i.name = 'orientation') OR - (srwp_i.name = 'number of sides') OR - (srwp_i.name = 'circumscribed diameter') OR - (srwp_i.name = 'corner radius') OR - (srwp_i.name = 'diameter across flats'))) - = SIZEOF(pdr.used_representation.items)) )) = 1 )) = 1; - WR5: SIZEOF (QUERY (pd <* USEDIN (SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - NOT (SIZEOF (QUERY (impl_rep <* QUERY (pdr <* USEDIN (pd, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' - IN TYPEOF (pdr.used_representation)) | - NOT (SIZEOF (QUERY (it <* impl_rep.used_representation.items | - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PLACEMENT' IN TYPEOF (it)) AND - (it.name = 'orientation'))) = 1))) = 0))) = 0; - WR6: SIZEOF (QUERY (pd <* USEDIN (SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - NOT (SIZEOF (QUERY (impl_rep <* QUERY (pdr <* USEDIN (pd, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' - IN TYPEOF (pdr.used_representation)) | - NOT (SIZEOF (QUERY (it <* impl_rep.used_representation.items | - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM' - IN TYPEOF (it)) AND - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.COUNT_MEASURE' - IN TYPEOF (it\measure_with_unit.value_component)) AND - (it.name = 'number of sides'))) = 1))) = 0))) = 0; - WR7: SIZEOF (QUERY (pd <* USEDIN (SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - NOT (SIZEOF (QUERY (impl_rep <* QUERY (pdr <* USEDIN (pd, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' - IN TYPEOF (pdr.used_representation)) | - NOT (SIZEOF (QUERY (it <* impl_rep.used_representation.items | - (SIZEOF - (['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * - TYPEOF (it)) = 2) AND - (it.name IN ['circumscribed diameter','diameter across flats']) )) - = 1) )) = 0))) = 0; - WR8: SIZEOF (QUERY (pd <* USEDIN (SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - NOT (SIZEOF (QUERY (impl_rep <* QUERY (pdr <* USEDIN (pd, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' - IN TYPEOF (pdr.used_representation)) | - NOT (SIZEOF (QUERY (it <* impl_rep.used_representation.items | - (SIZEOF - (['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * - TYPEOF (it)) = 2) AND - (it.name = 'corner radius'))) <= 1))) = 0))) = 0; - END_ENTITY; -(* USED FROM (aic_machining_feature); *) -ENTITY modified_pattern - SUBTYPE OF (shape_aspect); - WHERE - WR1: SIZEOF( QUERY (fcr <* QUERY(sar <* USEDIN( SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATING_SHAPE_ASPECT') | - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP' - IN TYPEOF (sar)) | - (SIZEOF( - ['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.REPLICATE_FEATURE', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.INSTANCED_FEATURE'] * - TYPEOF (fcr.related_shape_aspect.of_shape.definition)) >= 1) AND - (fcr.description = 'base shape')) ) = 1; - WR2: SIZEOF( QUERY (fcr <* QUERY(sar <* USEDIN( SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATING_SHAPE_ASPECT') | - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP' - IN TYPEOF (sar)) | - (SIZEOF( - ['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CIRCULAR_PATTERN', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.RECTANGULAR_PATTERN'] * - TYPEOF(fcr.related_shape_aspect.of_shape.definition)) = 1) AND - (fcr.description = 'base pattern')) ) = 1; - WR3: SIZEOF(QUERY ( sar <* USEDIN(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATING_SHAPE_ASPECT') | - (SIZEOF(QUERY ( msar <* USEDIN(sar.related_shape_aspect, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | - (SIZEOF([ - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PATTERN_OFFSET_MEMBERSHIP', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PATTERN_OMIT_MEMBERSHIP'] * - TYPEOF(sar)) = 1) AND (sar.description='modified pattern') - AND (sar :<>: msar) )) >= 1) )) = 0; -END_ENTITY; -- modified_pattern -(* USED FROM (aic_machining_feature); *) -ENTITY marking - SUBTYPE OF (feature_definition); -WHERE - WR1: SIZEOF( QUERY( pd <* USEDIN( SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - SIZEOF( QUERY( pdr <* USEDIN( pd, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN - TYPEOF(pdr.used_representation)) AND - ({2 <= SIZEOF(pdr.used_representation.items) <=6} ) )) - = 1 )) = 1; - WR2: (SIZEOF(QUERY ( pd <* USEDIN(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(QUERY ( impl_rep <* - QUERY ( pdr <* USEDIN(pd,'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') - IN TYPEOF(pdr.used_representation)) ) | - (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | - (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.DESCRIPTIVE_REPRESENTATION_ITEM' - IN TYPEOF(it)) AND (it.name = 'marking text')) )) = 1)) )) - = 0)) )) = 0); - WR3: (SIZEOF(QUERY ( pd <* USEDIN(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') - IN TYPEOF(pdr.used_representation)) ) | - (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | - (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.DESCRIPTIVE_REPRESENTATION_ITEM' - IN TYPEOF(it)) AND (it.name = 'special instructions')) )) <= 1)) )) - = 0)) )) = 0); - WR4: (SIZEOF(QUERY ( pd <* USEDIN(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') - IN TYPEOF(pdr.used_representation)) ) | - (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | - (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.DESCRIPTIVE_REPRESENTATION_ITEM' - IN TYPEOF(it)) AND (it.name = 'font name')))) <= 1)))) - = 0)) )) = 0); - WR5: (SIZEOF(QUERY ( pd <* USEDIN(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') - IN TYPEOF(pdr.used_representation)) ) | - (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | - ((SIZEOF([ - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * - TYPEOF(it)) = 2) AND (it.name = 'character height')) )) <= 1)) )) - = 0)) )) = 0); - WR6: (SIZEOF(QUERY ( pd <* USEDIN(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') - IN TYPEOF(pdr.used_representation)) ) | - (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | - ((SIZEOF([ - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * - TYPEOF(it)) = 2) AND (it.name = 'character spacing')) )) <= 1)) )) - = 0)) )) = 0); - WR7: (SIZEOF(QUERY ( pds <* QUERY ( pd <* USEDIN(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' - IN TYPEOF(pd)) ) | - (NOT (SIZEOF(QUERY ( sa_occ <* USEDIN(pds, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE') | - ((SIZEOF(QUERY ( sdr <* QUERY ( sar <* USEDIN(sa_occ, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.' - + 'RELATED_SHAPE_ASPECT') | - ((sar.description = 'applied shape') AND - (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_DEFINING_RELATIONSHIP') - IN TYPEOF(sar))) ) | - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT' - IN TYPEOF(sdr.relating_shape_aspect)) )) = 1)) )) = 1)) )) = 0); -END_ENTITY; -- marking -(* USED FROM (aic_machining_feature); *) -ENTITY linear_profile - SUBTYPE OF (shape_aspect); - WHERE - WR1: ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.FEATURE_COMPONENT_DEFINITION' - IN TYPEOF(SELF.of_shape.definition)); - WR2: (SIZEOF(QUERY ( pd <* USEDIN(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(QUERY ( pdr <* USEDIN(pd, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') - IN TYPEOF(pdr.used_representation)) )) = 1)) )) = 0); - WR3: (SIZEOF(QUERY ( pd <* USEDIN(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') - IN TYPEOF(pdr.used_representation)) ) | - (NOT (SIZEOF(impl_rep.used_representation.items) = 2)) )) - = 0)) )) = 0); - WR4: (SIZEOF(QUERY ( pd <* USEDIN(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') - IN TYPEOF(pdr.used_representation)) ) | - (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | - (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PLACEMENT' IN TYPEOF(it)) AND - (it.name = 'orientation')) )) = 1)) )) = 0)) )) = 0); - WR5: (SIZEOF(QUERY ( pd <* USEDIN(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') - IN TYPEOF(pdr.used_representation)) ) | - (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | - ((SIZEOF([ - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * - TYPEOF(it)) = 2) AND (it.name = 'profile length')) )) = 1)) )) - = 0)) )) = 0); -END_ENTITY; -- linear_profile -(* USED FROM (aic_machining_feature); *) -ENTITY location_shape_representation - SUBTYPE OF (shape_representation); -WHERE - WR1: (SIZEOF(SELF.items) = 1); - WR2: (SIZEOF(QUERY ( it <* SELF.items | - (NOT ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.POINT' - IN TYPEOF(it))) )) = 0); -END_ENTITY; -- location_shape_representation -(* USED FROM (geometric_model_schema); *) -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; -(* USED FROM (aic_machining_feature); *) -ENTITY flat_face - SUBTYPE OF (feature_definition); - WHERE - WR1: (SIZEOF(QUERY ( pd <* USEDIN(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(QUERY ( pdr <* USEDIN(pd, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.DIRECTION_SHAPE_REPRESENTATION' - IN TYPEOF(pdr.used_representation)) AND - (pdr.used_representation.name = 'removal direction')) )) = 1)) )) - = 0); - WR2: (SIZEOF(QUERY ( pds <* QUERY ( pd <* USEDIN(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' - IN TYPEOF(pd)) ) | (NOT (SIZEOF(QUERY ( sa_occ <* USEDIN(pds, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE') | - ((sa_occ.description = 'course of travel occurrence') AND - (SIZEOF(QUERY ( sdr <* QUERY ( sar <* USEDIN(sa_occ, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | - ((sar.description = 'path feature component usage') AND - (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_DEFINING_RELATIONSHIP') - IN TYPEOF(sar))) ) | - (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PATH_FEATURE_COMPONENT' - IN TYPEOF(sdr.relating_shape_aspect)) AND - (sdr.relating_shape_aspect.description = 'linear') AND - (sdr.name = 'course of travel')) )) = 1)) )) = 1)) )) = 0); - WR3: (SIZEOF(QUERY ( pds <* QUERY ( pd <* USEDIN(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' - IN TYPEOF(pd)) ) | (NOT (SIZEOF(QUERY ( sa_occ <* USEDIN(pds, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE') | - ((sa_occ.description = 'removal boundary occurrence') AND - (SIZEOF(QUERY ( sdr <* QUERY ( sar <* USEDIN(sa_occ, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | - ((sar.description = 'profile usage') AND - (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_DEFINING_RELATIONSHIP') - IN TYPEOF(sar))) ) | - (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LINEAR_PROFILE' - IN TYPEOF(sdr.relating_shape_aspect)) AND - (sdr.name = 'removal boundary')) )) = 1)) )) = 1)) )) = 0); - WR4: SIZEOF (QUERY (pds <* QUERY (pd <* USEDIN (SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' - IN TYPEOF (pd)) | - NOT (SIZEOF (QUERY (sa_occ <* USEDIN (pds, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE') | - (sa_occ.description = 'enclosed boundary occurrence') AND - (SIZEOF (QUERY (sdr <* QUERY (sar <* USEDIN (sa_occ, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | - (sar.description = 'profile usage') AND - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_DEFINING_RELATIONSHIP' - IN TYPEOF (sar))) | - (SIZEOF - (['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CIRCULAR_CLOSED_PROFILE', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.NGON_CLOSED_PROFILE', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.RECTANGULAR_CLOSED_PROFILE', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CLOSED_PATH_PROFILE'] * - TYPEOF (sdr.relating_shape_aspect)) = 1) AND - (sdr.relating_shape_aspect.description = 'boundary'))) - = 1))) <= 1))) = 0; - WR5: SIZEOF(QUERY( pdr <* get_property_definition_representations (SELF) | - ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PLANAR_SHAPE_REPRESENTATION' - IN TYPEOF ( pdr.used_representation ) ) AND - ( pdr.used_representation.name ='maximum feature limit'))) >=0; - WR6: SIZEOF(QUERY ( pds <* USEDIN(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' - IN TYPEOF(pds)) AND (SIZEOF(QUERY ( csa <* USEDIN(pds, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE') | - (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.COMPOSITE_SHAPE_ASPECT' IN - TYPEOF(csa)) AND - (csa.name='uncut volume') AND - (SIZEOF(QUERY ( sar <* csa.component_relationships | - (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP' - IN TYPEOF(sar)) AND (SIZEOF([ - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.BOSS', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROTRUSION'] * TYPEOF(sar. - related_shape_aspect)) = 1)) )) = 1)) )) <= 1)) )) = 1; - WR7: SIZEOF (QUERY (pd <* USEDIN (SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - NOT (SIZEOF (QUERY (impl_rep <* QUERY (pdr <* USEDIN (pd, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' - IN TYPEOF (pdr.used_representation)) | - NOT (SIZEOF (QUERY (it <* impl_rep.used_representation.items | - (SIZEOF ( - ['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * - TYPEOF (it)) = 2) AND (it.name = 'removal depth'))) <= 1))) - = 0))) = 0; - -END_ENTITY; -- flat_face -(* USED FROM (aic_machining_feature); *) -ENTITY hole_bottom - SUBTYPE OF (shape_aspect); - WHERE - WR1: ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.FEATURE_COMPONENT_DEFINITION' - IN TYPEOF(SELF.of_shape.definition)); - WR2: (SELF.description IN ['through', 'flat', 'flat with radius', - 'flat with taper','spherical', 'conical']); - WR3: ((NOT (SELF.description = 'through')) OR - (SIZEOF(QUERY ( pd <* USEDIN(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(USEDIN(pd, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')) = 0)) )) - = 0)); - WR4: ((NOT (SELF.description IN ['flat with radius', - 'flat with taper', 'spherical','conical'])) OR - (SIZEOF(QUERY ( pd <* USEDIN(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(QUERY ( pdr <* USEDIN(pd, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') - IN TYPEOF(pdr.used_representation)) )) = 1)) )) = 0)); - WR5: ((NOT (SELF.description = 'flat')) OR - (SIZEOF(QUERY ( pd <* USEDIN(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') - IN TYPEOF(pdr.used_representation)) ) | - (NOT (SIZEOF(impl_rep.used_representation.items) = 0)) )) - = 0)) )) = 0)); - WR6: ((NOT (SELF.description IN ['flat with radius','spherical'])) - OR (SIZEOF(QUERY ( pd <* USEDIN(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') - IN TYPEOF(pdr.used_representation)) ) | - (NOT (SIZEOF(impl_rep.used_representation.items) = 1)) )) - = 0)) )) = 0)); - WR7: ((NOT (SELF.description = 'flat with taper')) OR - (SIZEOF(QUERY ( pd <* USEDIN(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') - IN TYPEOF(pdr.used_representation)) ) | - (NOT (SIZEOF(impl_rep.used_representation.items) = 2)) )) - = 0)) )) = 0)); - WR8: ((NOT (SELF.description = 'conical')) OR (SIZEOF( - QUERY ( pd <* USEDIN(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') - IN TYPEOF(pdr.used_representation)) ) | - (NOT (SIZEOF (impl_rep.used_representation.items) >= 1) - AND (SIZEOF (impl_rep.used_representation.items) <= 2)) )) - = 0)) )) = 0)); - WR9: ((SELF.description = 'through') OR - (SIZEOF(QUERY ( fcr <* QUERY ( sar <* USEDIN(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATING_SHAPE_ASPECT') | - ((sar.description = 'hole bottom usage') AND - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP' - IN TYPEOF(sar))) ) | - ((fcr.name IN ['hole depth start','hole depth end'])) )) >= 1)); - WR10: ((NOT (SELF.description = 'flat with radius')) OR - (SIZEOF(QUERY ( pd <* USEDIN(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') - IN TYPEOF(pdr.used_representation)) ) | - (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | - ((SIZEOF([ - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * - TYPEOF(it)) = 2) AND (it.name = 'corner radius')))) = 1)) )) - = 0)) )) = 0)); - WR11: ((NOT (SELF.description = 'spherical')) OR - (SIZEOF(QUERY ( pd <* USEDIN(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') - IN TYPEOF(pdr.used_representation)) ) | - (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | - ((SIZEOF([ - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * - TYPEOF(it)) = 2) AND (it.name = 'radius')) )) = 1)) )) = - 0)) )) = 0)); - WR12: ((NOT (SELF.description = 'conical')) OR - (SIZEOF(QUERY ( pd <* USEDIN(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') - IN TYPEOF(pdr.used_representation)) ) | - (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | - ((SIZEOF([ - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * - TYPEOF(it)) = 2) AND (it.name = 'tip radius')) )) <= 1)) )) - = 0)) )) = 0)); - WR13: ((NOT (SELF.description = 'conical')) OR - (SIZEOF(QUERY ( pd <* USEDIN(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') - IN TYPEOF(pdr.used_representation)) ) | - (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | - ((SIZEOF([ - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PLANE_ANGLE_MEASURE_WITH_UNIT'] * - TYPEOF(it)) = 2) AND (it.name = 'tip angle')) )) = 1)) )) - = 0)) )) = 0)); - WR14: (SIZEOF(QUERY ( fcr <* QUERY ( sar <* USEDIN(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATING_SHAPE_ASPECT') | - ((sar.description = 'hole bottom usage') AND - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP' - IN TYPEOF(sar))) ) | - ((fcr.related_shape_aspect.description ='bottom condition occurrence') - AND ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.ROUND_HOLE' - IN TYPEOF(fcr.related_shape_aspect.of_shape.definition)) AND - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.HOLE_BOTTOM' - IN TYPEOF(fcr.relating_shape_aspect))) - )) >= 1); - WR15: ((NOT (SELF.description = 'flat with taper')) OR (SIZEOF( - QUERY ( pd <* USEDIN(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') - IN TYPEOF(pdr.used_representation)) ) | - (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | - ((SIZEOF([ - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * - TYPEOF(it)) = 2) AND (it.name = 'final diameter')))) = 1)) )) - = 0)) )) = 0)); - WR16: ((NOT (SELF.description = 'flat with taper')) OR - (SIZEOF(QUERY ( pd <* USEDIN(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') - IN TYPEOF(pdr.used_representation)) ) | - (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | - ((SIZEOF([ - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PLANE_ANGLE_MEASURE_WITH_UNIT'] * - TYPEOF(it)) = 2) AND (it.name = 'taper diameter')) )) = 1)) )) - = 0)) )) = 0)); - END_ENTITY; -- hole_bottom -(* USED FROM (aic_machining_feature); *) -ENTITY gear - SUBTYPE OF (feature_definition); -WHERE - WR1 : SIZEOF(QUERY(pd <* USEDIN(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - SIZEOF(QUERY(pdr <* USEDIN(pd, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' - IN TYPEOF(pdr.used_representation)) - AND (10 <= SIZEOF(pdr.used_representation.items)) AND - (SIZEOF(pdr.used_representation.items) <= 13))) = 1)) = 1; - - WR2 : NOT (SELF\characterized_object.description - IN ['straight bevel gear', 'helical bevel gear', - 'spur gear', 'helical gear']) OR - (SIZEOF(QUERY(pd <* USEDIN(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | NOT - (SIZEOF(QUERY(impl_rep <* QUERY(pdr <* USEDIN(pd, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' - IN TYPEOF(pdr.used_representation)) | NOT - (SIZEOF(QUERY(it <* impl_rep.used_representation.items | - (SIZEOF([ - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.RATIO_MEASURE_WITH_UNIT'] * TYPEOF(it)) = 2) AND - (it.name = 'number of teeth'))) = 1))) = 0))) = 0); - - WR3 : NOT (SELF\characterized_object.description - IN ['straight bevel gear', 'helical bevel gear', - 'spur gear', 'helical gear']) OR - (SIZEOF(QUERY(pd <* USEDIN(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | NOT - (SIZEOF(QUERY(impl_rep <* QUERY(pdr <* USEDIN(pd, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' - IN TYPEOF(pdr.used_representation)) | NOT - (SIZEOF(QUERY(it <* impl_rep.used_representation.items | (SIZEOF([ - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PLANE_ANGLE_MEASURE_WITH_UNIT']* TYPEOF(it))= 2) AND - (it.name = 'reference pressure angle'))) = 1))) = 0))) = 0); - - WR4 : NOT (SELF\characterized_object.description - IN ['straight bevel gear', 'helical bevel gear', - 'spur gear', 'helical gear']) OR - (SIZEOF(QUERY(pd <* USEDIN(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | NOT - (SIZEOF(QUERY(impl_rep <* QUERY(pdr <* USEDIN(pd, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' - IN TYPEOF(pdr.used_representation)) | NOT - (SIZEOF(QUERY(it <* impl_rep.used_representation.items | (SIZEOF([ - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(it)) = 2) AND - (it.name = 'rake shift factor'))) = 1))) = 0))) = 0); - - WR5 : NOT (SELF\characterized_object.description - IN ['straight bevel gear', 'helical bevel gear', - 'spur gear', 'helical gear']) OR - (SIZEOF(QUERY(pd <* USEDIN(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | NOT - (SIZEOF(QUERY(impl_rep <* QUERY(pdr <* USEDIN(pd, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' - IN TYPEOF(pdr.used_representation))| NOT - (SIZEOF(QUERY(it <* impl_rep.used_representation.items | (SIZEOF([ - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT']* TYPEOF(it)) = 2) AND - (it.name = 'nominal tooth depth'))) = 1))) = 0))) = 0); - - WR6 : NOT (SELF\characterized_object.description - IN ['straight bevel gear', 'helical bevel gear', - 'spur gear', 'helical gear']) OR - (SIZEOF(QUERY(pd <* USEDIN(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | NOT - (SIZEOF(QUERY(impl_rep <* QUERY(pdr <* USEDIN(pd, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' - IN TYPEOF(pdr.used_representation))| NOT - (SIZEOF(QUERY(it <* impl_rep.used_representation.items | (SIZEOF([ - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT']* TYPEOF(it)) = 2) AND - (it.name = 'face width'))) = 1))) = 0))) = 0); - - WR7 : NOT (SELF\characterized_object.description - IN ['straight bevel gear', 'helical bevel gear', - 'spur gear', 'helical gear']) OR - (SIZEOF(QUERY(pd <* USEDIN(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | NOT - (SIZEOF(QUERY(impl_rep <* QUERY(pdr <* USEDIN(pd, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' - IN TYPEOF(pdr.used_representation))| NOT - (SIZEOF(QUERY(it <* impl_rep.used_representation.items | (SIZEOF([ - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT']* TYPEOF(it)) = 2) AND - (it.name = 'tip diameter'))) = 1))) = 0))) = 0); - - WR8 : NOT (SELF\characterized_object.description - IN ['straight bevel gear', 'helical bevel gear', - 'spur gear', 'helical gear']) OR - (SIZEOF(QUERY(pd <* USEDIN(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | NOT - (SIZEOF(QUERY(impl_rep <* QUERY(pdr <* USEDIN(pd, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' - IN TYPEOF(pdr.used_representation))| NOT - (SIZEOF(QUERY(it <* impl_rep.used_representation.items | -('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF(it)) AND - (it.name = 'module or diametral pitch') AND - ((it.description ='module') OR (it.description = 'diametral pitch')))) - = 1))) = 0))) = 0); - - WR9 : NOT (SELF\characterized_object.description - IN ['straight bevel gear', 'helical bevel gear', - 'spur gear', 'helical gear']) OR - (SIZEOF(QUERY(pd <* USEDIN(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | NOT - (SIZEOF(QUERY(impl_rep <* QUERY(pdr <* USEDIN(pd, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' - IN TYPEOF(pdr.used_representation))| NOT - (SIZEOF(QUERY(it <* impl_rep.used_representation.items | -('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF(it)) AND - (it.name = 'internal or external gear') AND - ((it.description ='internal') OR (it.description = 'external')))) - = 1))) = 0))) = 0); - - WR10: NOT (SELF\characterized_object.description - IN ['straight bevel gear', 'helical bevel gear', - 'spur gear', 'helical gear']) OR - (SIZEOF(QUERY(pd <* USEDIN(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | NOT - (SIZEOF(QUERY(impl_rep <* QUERY(pdr <* USEDIN(pd, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' - IN TYPEOF(pdr.used_representation))| NOT - (SIZEOF(QUERY(it <* impl_rep.used_representation.items | (SIZEOF([ - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT']* TYPEOF(it)) = 2) AND - (it.name = 'normal attribute'))) = 1))) = 0))) = 0); - - WR11 : NOT (SELF\characterized_object.description - IN ['straight bevel gear', 'helical bevel gear', - 'spur gear', 'helical gear']) OR - (SIZEOF(QUERY(pd <* USEDIN(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | NOT - (SIZEOF(QUERY(impl_rep <* QUERY(pdr <* USEDIN(pd, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' - IN TYPEOF(pdr.used_representation))| NOT - (SIZEOF(QUERY(it <* impl_rep.used_representation.items | (SIZEOF([ - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT']* TYPEOF(it)) = 2) AND - (it.name = 'root fillet radius'))) <= 1))) = 0))) = 0); - - WR12 : NOT (SELF\characterized_object.description - IN ['helix gear','helical bevel gear']) OR - (SIZEOF(QUERY(pd <* USEDIN(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - NOT (SIZEOF(QUERY(impl_rep <* QUERY(pdr <* USEDIN(pd, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' - IN TYPEOF(pdr.used_representation)) | NOT - (SIZEOF(QUERY(it <* impl_rep.used_representation.items | (SIZEOF([ - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', -'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PLANE_ANGLE_MEASURE_WITH_UNIT']* TYPEOF(it))= 2) AND - (it.name = 'reference helix angle'))) = 1))) = 0))) = 0); - - WR13 : NOT (SELF\characterized_object.description - IN ['helix gear','helical bevel gear']) OR - (SIZEOF(QUERY(pd <* USEDIN(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | NOT - (SIZEOF(QUERY(impl_rep <* QUERY(pdr <* USEDIN(pd, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' - IN TYPEOF(pdr.used_representation))| NOT - (SIZEOF(QUERY(it <* impl_rep.used_representation.items | - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.DESCRIPTIVE_REPRESENTATION_ITEM' - IN TYPEOF(it)) AND (it.name = 'gear tooth') AND - ((it.description = 'left hand tooth') OR - (it.description = 'right hand tooth')))) = 1))) = 0))) = 0); - - WR14 : NOT (SELF\characterized_object.description - IN ['straight bevel gear','helical bevel gear']) OR - (SIZEOF(QUERY(pd <* USEDIN(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - NOT (SIZEOF(QUERY(impl_rep <* QUERY(pdr <* USEDIN(pd, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' - IN TYPEOF(pdr.used_representation)) | NOT - (SIZEOF(QUERY(it <* impl_rep.used_representation.items | (SIZEOF([ - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', -'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PLANE_ANGLE_MEASURE_WITH_UNIT']* TYPEOF(it))= 2) AND - (it.name = 'tip angle'))) = 1))) = 0))) = 0); - - WR15 : NOT (SELF\characterized_object.description - IN ['straight bevel gear','helical bevel gear']) OR - (SIZEOF(QUERY(pd <* USEDIN(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - NOT (SIZEOF(QUERY(impl_rep <* QUERY(pdr <* USEDIN(pd, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' - IN TYPEOF(pdr.used_representation)) | NOT - (SIZEOF(QUERY(it <* impl_rep.used_representation.items | (SIZEOF([ - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', -'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PLANE_ANGLE_MEASURE_WITH_UNIT']* TYPEOF(it))= 2) AND - (it.name = 'root angle'))) = 1))) = 0))) = 0); - - WR16 : SIZEOF(QUERY(pds <* QUERY(pd <* USEDIN(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pd)) | NOT - (SIZEOF(QUERY(sa_occ <* USEDIN(pds, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE') | - SIZEOF( QUERY(sdr <* QUERY(sar <* USEDIN(sa_occ, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | - (sar.description = 'applied shape') AND - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_DEFINING_RELATIONSHIP' - IN TYPEOF(sar))) | 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT' - IN TYPEOF(sdr.relating_shape_aspect))) = 1)) = 1))) = 0; - -END_ENTITY; -(* USED FROM (aic_machining_feature); *) -ENTITY feature_component_definition - SUBTYPE OF (characterized_object); - WHERE - WR1: (SIZEOF(QUERY ( pd <* USEDIN(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(USEDIN(pd, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE')) = 1)) )) - = 0); -END_ENTITY; -- feature_component_definition -(* USED FROM (aic_machining_feature); *) -ENTITY fillet - SUBTYPE OF (transition_feature); - WHERE - WR1: (NOT (SELF\shape_aspect.description = 'constant radius')) OR - (SIZEOF (QUERY (pd <* USEDIN (SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - NOT (SIZEOF (QUERY (pdr <* USEDIN (pd, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' - IN TYPEOF (pdr.used_representation))) = 1))) = 0); - WR2: (NOT (SELF\shape_aspect.description = 'constant radius')) OR - (SIZEOF (QUERY (pd <* USEDIN (SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - NOT (SIZEOF (QUERY (impl_rep <* QUERY (pdr <* USEDIN (pd, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' - IN TYPEOF (pdr.used_representation)) | - (NOT (SIZEOF (impl_rep.used_representation.items) >= 1) - AND(SIZEOF (impl_rep.used_representation.items) <= 3)))) - = 0))) = 0); - WR3: (NOT (SELF.description = 'constant radius')) OR - (SIZEOF (QUERY (pd <* USEDIN (SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - NOT (SIZEOF (QUERY (impl_rep <* QUERY (pdr <* USEDIN (pd, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' - IN TYPEOF (pdr.used_representation)) | - NOT (SIZEOF (QUERY (it <* impl_rep.used_representation.items | - (SIZEOF - (['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * - TYPEOF (it)) = 2) AND (it.name = 'radius'))) = 1))) = 0))) = 0); - WR4: (NOT (SELF.description = 'constant radius')) OR - (SIZEOF (QUERY (pd <* USEDIN (SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - NOT (SIZEOF (QUERY (impl_rep <* QUERY (pdr <* USEDIN (pd, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' - IN TYPEOF (pdr.used_representation)) | - NOT (SIZEOF (QUERY (it <* impl_rep.used_representation.items | - (SIZEOF - (['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * - TYPEOF (it)) = 2) AND (it.name = 'first offset'))) <= 1))) - = 0))) = 0); - WR5: (NOT (SELF.description = 'constant radius')) OR - (SIZEOF (QUERY (pd <* USEDIN (SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - NOT (SIZEOF (QUERY (impl_rep <* QUERY (pdr <* USEDIN (pd, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' - IN TYPEOF (pdr.used_representation)) | - NOT (SIZEOF (QUERY (it <* impl_rep.used_representation.items | - (SIZEOF - (['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * - TYPEOF (it)) = 2) AND (it.name = 'second offset'))) <= 1))) - = 0))) = 0); - WR6: SIZEOF (QUERY (pd <* USEDIN (SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - NOT (SIZEOF (QUERY (pdr <* USEDIN (pd, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.FACE_SHAPE_REPRESENTATION' - IN TYPEOF (pdr.used_representation)) AND - (pdr.used_representation.name = 'fillet face'))) = 1))) = 0; - WR7: SIZEOF (QUERY (pd <* USEDIN (SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - NOT (SIZEOF (QUERY (pdr <* USEDIN (pd, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.FACE_SHAPE_REPRESENTATION' - IN TYPEOF (pdr.used_representation)) AND - (pdr.used_representation.name = 'first face shape'))) = 1))) = 0; - WR8: SIZEOF (QUERY (pd <* USEDIN (SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - NOT (SIZEOF (QUERY (pdr <* USEDIN (pd, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.FACE_SHAPE_REPRESENTATION' - IN TYPEOF (pdr.used_representation)) AND - (pdr.used_representation.name = 'second face shape'))) = 1))) = 0; -END_ENTITY; -(* USED FROM (aic_machining_feature); *) -ENTITY feature_pattern - SUBTYPE OF (replicate_feature); - WHERE - WR1: SIZEOF( QUERY( pd <* USEDIN( SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - SIZEOF( QUERY( pdr <* USEDIN( pd, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' - IN TYPEOF(pdr.used_representation)) AND - (SIZEOF( QUERY( srwp_i <* pdr.used_representation.items | - NOT ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PLACEMENT' - IN TYPEOF(srwp_i)) )) > 0 ) )) > 0 )) = 0; - WR2: SIZEOF (QUERY (pd <* USEDIN (SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - NOT (SIZEOF (QUERY (impl_rep <* QUERY (pdr <* USEDIN (pd, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' - IN TYPEOF (pdr.used_representation)) | - NOT (SIZEOF (QUERY (it <* impl_rep.used_representation.items | - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PLACEMENT' - IN TYPEOF (it)) AND (it.name = 'base feature placement'))) > 1))) - = 0))) = 0; -END_ENTITY; -- feature_pattern -(* USED FROM (aic_machining_feature); *) -ENTITY direction_shape_representation - SUBTYPE OF (shape_representation); - WHERE - WR1: (SIZEOF(SELF.items) = 1); - WR2: (SIZEOF(QUERY ( it <* SELF.items | - (NOT ( - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.DIRECTION' IN TYPEOF(it))) )) - = 0); -END_ENTITY; -- direction_shape_representation -(* USED FROM (aic_machining_feature); *) -ENTITY externally_defined_feature_definition - SUBTYPE OF (feature_definition, externally_defined_item); - WHERE - WR1: (((SELF\characterized_object.description = 'thread') AND - (SELF\externally_defined_item.item_id='external thread') AND - (SELF\externally_defined_item.source.source_id= - 'external feature specification') ) OR - ((SELF\characterized_object.description = 'gear') AND - (SELF\externally_defined_item.item_id='external gear') AND - (SELF\externally_defined_item.source.source_id= - 'external feature specification')) OR - ((SELF\characterized_object.description = 'marking') AND - (SELF\externally_defined_item.item_id='external marking') AND - (SELF\externally_defined_item.source.source_id= - 'external feature specification')) OR - ((SELF\characterized_object.description = 'knurl') AND - (SELF\externally_defined_item.item_id='external knurl') AND - (SELF\externally_defined_item.source.source_id= - 'external feature specification'))); - WR2: ((NOT (SELF\characterized_object.description = 'thread')) OR - (SIZEOF( QUERY( pd <* USEDIN( SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - SIZEOF( QUERY( pdr <* USEDIN( pd, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' - IN TYPEOF(pdr.used_representation)) AND - ({5 <= SIZEOF(pdr.used_representation.items) <= 10} ) )) - = 1 )) = 1)); - WR3: ((NOT (SELF\characterized_object.description = 'marking')) OR - (SIZEOF( QUERY( pd <* USEDIN( SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - SIZEOF( QUERY( pdr <* USEDIN( pd, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' - IN TYPEOF(pdr.used_representation)) AND - (SIZEOF(pdr.used_representation.items) = 2) )) = 1 )) = 1)); - WR4: ((NOT (SELF\characterized_object.description = 'knurl')) OR - (SIZEOF( QUERY( pd <* USEDIN( SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - SIZEOF( QUERY( pdr <* USEDIN( pd, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' - IN TYPEOF(pdr.used_representation)) AND - (SIZEOF(pdr.used_representation.items) = 1) )) = 1 )) = 1)); - WR5: (NOT (SELF\characterized_object.description IN [ 'knurl', - 'thread'])) OR - (SIZEOF(QUERY ( pds <* QUERY ( pd <* USEDIN(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' - IN TYPEOF(pd)) ) | (NOT (SIZEOF(QUERY ( sa_occ <* USEDIN - (pds,'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE') | - ((sa_occ.description = 'partial area occurrence') AND - (SIZEOF(QUERY ( sdr <* QUERY ( sar <* USEDIN(sa_occ, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.' - + 'RELATED_SHAPE_ASPECT') | - ((sar.description = 'applied area usage') AND - (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_DEFINING_RELATIONSHIP') - IN TYPEOF(sar))) ) | - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.APPLIED_AREA' - IN TYPEOF(sdr.relating_shape_aspect)) )) = 1)) )) <= 1)) )) = 0); - - WR6: ((NOT (SELF\characterized_object.description = 'marking')) OR - (SIZEOF(QUERY ( pd <* USEDIN(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN - (pd,'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') - IN TYPEOF(pdr.used_representation)) ) | - (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | - (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.DESCRIPTIVE_REPRESENTATION_ITEM' - IN TYPEOF(it)) AND (it.name = 'marking text')) )) = 1)) )) - = 0)) )) = 0)); - WR7: ((NOT (SELF\characterized_object.description = 'thread')) OR - (SIZEOF(QUERY ( pd <* USEDIN(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN - (pd,'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') - IN TYPEOF(pdr.used_representation)) ) | - (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | - (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.DESCRIPTIVE_REPRESENTATION_ITEM' - IN TYPEOF(it)) AND (it.name = 'removal direction') AND - ((it.description = 'internal') OR - (it.description = 'external'))) )) = 1)) )) = 0)) )) = 0)); - WR8: ((NOT (SELF\characterized_object.description = 'thread')) OR - (SIZEOF(QUERY ( pd <* USEDIN(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN - (pd,'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') - IN TYPEOF(pdr.used_representation)) ) | - (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | - (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.DESCRIPTIVE_REPRESENTATION_ITEM' - IN TYPEOF(it)) AND (it.name = 'qualifier')) ))<= 1)) ))= 0)) )) - = 0)); - WR9: ((NOT (SELF\characterized_object.description = 'thread')) OR - (SIZEOF(QUERY ( pd <* USEDIN(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN - (pd,'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') - IN TYPEOF(pdr.used_representation)) ) | - (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | - (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.DESCRIPTIVE_REPRESENTATION_ITEM' - IN TYPEOF(it)) AND (it.name = 'hand')) )) = 1)) )) = 0)) )) - = 0)); - WR10: ((NOT (SELF\characterized_object.description = 'thread')) OR - (SIZEOF(QUERY ( pd <* USEDIN(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN - (pd,'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') - IN TYPEOF(pdr.used_representation)) ) | - (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | - (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.DESCRIPTIVE_REPRESENTATION_ITEM' - IN TYPEOF(it)) AND (it.name = 'fit class')) )) = 1)) )) = - 0)) )) = 0)); - WR11: ((NOT (SELF\characterized_object.description = 'thread')) OR - (SIZEOF(QUERY ( pd <* USEDIN(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN - (pd,'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') - IN TYPEOF(pdr.used_representation)) ) | - (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | - (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.DESCRIPTIVE_REPRESENTATION_ITEM' - IN TYPEOF(it)) AND (it.name = 'form')) )) = 1)) )) = 0)) )) - = 0)); - WR12: ((NOT (SELF\characterized_object.description = 'thread')) OR - (SIZEOF(QUERY ( pd <* USEDIN(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN - (pd,'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') - IN TYPEOF(pdr.used_representation)) ) | - (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | - ((SIZEOF([ - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * - TYPEOF(it)) = 2) AND (it.name = 'major diameter')) )) <= 1)) )) - = 0)) )) = 0)); - WR13: ((NOT (SELF\characterized_object.description = 'thread')) OR - (SIZEOF(QUERY ( pd <* USEDIN(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN - (pd,'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') - IN TYPEOF(pdr.used_representation)) ) | - (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | - ((SIZEOF([ - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.RATIO_MEASURE_WITH_UNIT'] * - TYPEOF(it)) = 2) AND (it.name = 'number of threads')) )) = 1)) )) - = 0)) )) = 0)); - WR14 : (SIZEOF(QUERY ( pd <* USEDIN(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') - IN TYPEOF(pdr.used_representation)) ) | - (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | - (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.DESCRIPTIVE_REPRESENTATION_ITEM' - IN TYPEOF(it)) AND (it.name = 'fit class 2')) )) <= 1)) )) = 0)) )) - = 0); - - WR15 : (SIZEOF(QUERY ( pd <* USEDIN(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') - IN TYPEOF(pdr.used_representation)) ) | - (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | - ((SIZEOF([ - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] - * TYPEOF(it)) = 2) AND (it.name = 'nominal size')) )) - <= 1)) )) = 0)) )) = 0); - - WR16: (NOT (SELF\characterized_object.description IN [ 'knurl', - 'gear', 'thread'])) OR - (SIZEOF(QUERY ( pds <* QUERY ( pd <* USEDIN(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' - IN TYPEOF(pd)) ) | (NOT (SIZEOF(QUERY ( sa_occ <* USEDIN - (pds,'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE') | - ((SIZEOF(QUERY ( sdr <* QUERY ( sar <* USEDIN(sa_occ, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.' - + 'RELATED_SHAPE_ASPECT') | - ((sar.description = 'applied shape') AND - (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_DEFINING_RELATIONSHIP') - IN TYPEOF(sar))) ) | - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT' - IN TYPEOF(sdr.relating_shape_aspect)) )) = 1)) )) <= 1)) )) = 0); - WR17: ((NOT (SELF\characterized_object.description - IN ['gear'])) OR - (SIZEOF( QUERY( pd <* USEDIN( SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - SIZEOF( QUERY( pdr <* USEDIN( pd, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' - IN TYPEOF(pdr.used_representation)) AND - (10 <= SIZEOF(pdr.used_representation.items)) AND - (SIZEOF(pdr.used_representation.items) >= 11) - )) = 1 )) = 1)); - - WR18: ((NOT (SELF\characterized_object.description - IN ['gear'])) OR - (SIZEOF(QUERY ( pd <* USEDIN(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN - (pd,'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') - IN TYPEOF(pdr.used_representation)) ) | - (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | - ((SIZEOF([ - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.RATIO_MEASURE_WITH_UNIT'] * - TYPEOF(it)) = 2) AND (it.name = 'number of teeth')) )) = 1)) )) - = 0)) )) = 0)); - - WR19: ((NOT (SELF\characterized_object.description - IN ['gear'])) OR - (SIZEOF(QUERY ( pd <* USEDIN(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN - (pd,'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') - IN TYPEOF(pdr.used_representation)) ) | - (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | - ((SIZEOF([ - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PLANE_ANGLE_MEASURE_WITH_UNIT'] * - TYPEOF(it)) = 2) AND (it.name = 'reference pressure angle')) )) = 1)) )) - = 0)) )) = 0)); - - WR20: ((NOT (SELF\characterized_object.description - IN ['gear'])) OR - (SIZEOF(QUERY ( pd <* USEDIN(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN - (pd,'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') - IN TYPEOF(pdr.used_representation)) ) | - (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | - ((SIZEOF([ - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * - TYPEOF(it)) = 2) AND (it.name = 'rake shift factor')) )) = 1)) )) - = 0)) )) = 0)); - - WR21: ((NOT (SELF\characterized_object.description - IN ['gear'])) OR - (SIZEOF(QUERY ( pd <* USEDIN(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN - (pd,'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') - IN TYPEOF(pdr.used_representation)) ) | - (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | - ((SIZEOF([ - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * - TYPEOF(it)) = 2) AND (it.name = 'nominal tooth depth')) )) = 1)) )) - = 0)) )) = 0)); - - WR22: ((NOT (SELF\characterized_object.description - IN ['gear'])) OR - (SIZEOF(QUERY ( pd <* USEDIN(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN - (pd,'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') - IN TYPEOF(pdr.used_representation)) ) | - (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | - ((SIZEOF([ - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * - TYPEOF(it)) = 2) AND (it.name = 'face width')) )) = 1)) )) - = 0)) )) = 0)); - - WR23: ((NOT (SELF\characterized_object.description - IN ['gear'])) OR - (SIZEOF(QUERY ( pd <* USEDIN(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN - (pd,'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') - IN TYPEOF(pdr.used_representation)) ) | - (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | - ((SIZEOF([ - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * - TYPEOF(it)) = 2) AND (it.name = 'tip diameter')) )) = 1)) )) - = 0)) )) = 0)); - - WR24: ((NOT (SELF\characterized_object.description - IN ['gear'])) OR - (SIZEOF(QUERY ( pd <* USEDIN(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN - (pd,'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') - IN TYPEOF(pdr.used_representation)) ) | - (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | - (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.DESCRIPTIVE_REPRESENTATION_ITEM' - IN TYPEOF(it)) AND (it.name = 'module or diametral pitch') AND - ((it.description = 'module') OR - (it.description = 'diametral pitch'))) )) = 1)) )) = 0)) )) = 0)); - - WR25: ((NOT (SELF\characterized_object.description - IN ['gear'])) OR - (SIZEOF(QUERY ( pd <* USEDIN(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN - (pd,'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') - IN TYPEOF(pdr.used_representation)) ) | - (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | - ((SIZEOF([ - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * - TYPEOF(it)) = 2) AND (it.name = 'normal attribute')) )) = 1)) )) - = 0)) )) = 0)); - - WR26: ((NOT (SELF\characterized_object.description - IN ['gear'])) OR - (SIZEOF(QUERY ( pd <* USEDIN(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN - (pd,'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') - IN TYPEOF(pdr.used_representation)) ) | - (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | - (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.DESCRIPTIVE_REPRESENTATION_ITEM' - IN TYPEOF(it)) AND (it.name = 'internal or external gear') AND - ((it.description = 'internal') OR - (it.description = 'external'))) )) = 1)) )) = 0)) )) = 0)); - - WR27: ((NOT (SELF\characterized_object.description - IN ['gear'])) OR - (SIZEOF(QUERY ( pd <* USEDIN(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN - (pd,'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') - IN TYPEOF(pdr.used_representation)) ) | - (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | - ((SIZEOF([ - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PLANE_ANGLE_MEASURE_WITH_UNIT'] * - TYPEOF(it)) = 2) AND (it.name = 'root fillet radius')) )) <= 1)) )) - = 0)) )) = 0)); - -END_ENTITY; -- externally_defined_feature_definition -(* USED FROM (aic_machining_feature); *) -ENTITY edge_round - SUBTYPE OF (transition_feature); -WHERE - WR1: (NOT (SELF\shape_aspect.description = 'constant radius')) OR - (SIZEOF (QUERY (pd <* USEDIN (SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - NOT (SIZEOF (QUERY (pdr <* USEDIN (pd, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' - IN TYPEOF (pdr.used_representation))) = 1))) = 0); - WR2: (NOT (SELF\shape_aspect.description = 'constant radius')) OR - (SIZEOF (QUERY (pd <* USEDIN (SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - NOT (SIZEOF (QUERY (impl_rep <* QUERY (pdr <* USEDIN (pd, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' - IN TYPEOF (pdr.used_representation)) | - (NOT (SIZEOF (impl_rep.used_representation.items) >= 1) - AND (SIZEOF (impl_rep.used_representation.items) <= 3)))) - = 0))) = 0); - WR3: (NOT (SELF.description = 'constant radius')) OR - (SIZEOF (QUERY (pd <* USEDIN (SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - NOT (SIZEOF (QUERY (impl_rep <* QUERY (pdr <* USEDIN (pd, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' - IN TYPEOF (pdr.used_representation)) | - NOT (SIZEOF (QUERY (it <* impl_rep.used_representation.items | - (SIZEOF - (['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * - TYPEOF (it)) = 2) AND (it.name = 'radius'))) = 1))) = 0))) = 0); - WR4: (NOT (SELF.description = 'constant radius')) OR - (SIZEOF (QUERY (pd <* USEDIN (SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - NOT (SIZEOF (QUERY (impl_rep <* QUERY (pdr <* USEDIN (pd, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' - IN TYPEOF (pdr.used_representation)) | - NOT (SIZEOF (QUERY (it <* impl_rep.used_representation.items | - (SIZEOF - (['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * - TYPEOF (it)) = 2) AND (it.name = 'first offset'))) <= 1))) - = 0))) = 0); - WR5: (NOT (SELF.description = 'constant radius')) OR - (SIZEOF (QUERY (pd <* USEDIN (SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - NOT (SIZEOF (QUERY (impl_rep <* QUERY (pdr <* USEDIN (pd, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' - IN TYPEOF (pdr.used_representation)) | - NOT (SIZEOF (QUERY (it <* impl_rep.used_representation.items | - (SIZEOF - (['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * - TYPEOF (it)) = 2) AND (it.name = 'second offset'))) <= 1))) - = 0))) = 0); - WR6: SIZEOF (QUERY (pd <* USEDIN (SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - NOT (SIZEOF (QUERY (pdr <* USEDIN (pd, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.FACE_SHAPE_REPRESENTATION' - IN TYPEOF (pdr.used_representation)) AND - (pdr.used_representation.name = 'edge round face'))) <= 1))) = 0; - WR7: SIZEOF (QUERY (pd <* USEDIN (SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - NOT (SIZEOF (QUERY (pdr <* USEDIN (pd, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.FACE_SHAPE_REPRESENTATION' - IN TYPEOF (pdr.used_representation)) AND - (pdr.used_representation.name = 'first face shape'))) <= 1))) = 0; - WR8: SIZEOF (QUERY (pd <* USEDIN (SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - NOT (SIZEOF (QUERY (pdr <* USEDIN (pd, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.FACE_SHAPE_REPRESENTATION' - IN TYPEOF (pdr.used_representation)) AND - (pdr.used_representation.name = 'second face shape'))) <= 1))) = 0; -END_ENTITY; -- edge_round -(* USED FROM (aic_machining_feature); *) -ENTITY closed_path_profile - SUBTYPE OF (shape_aspect); - WHERE - WR1: ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.FEATURE_COMPONENT_DEFINITION' - IN TYPEOF(SELF.of_shape.definition)); - WR2: (SIZEOF(QUERY ( pd <* USEDIN(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(QUERY ( pdr <* USEDIN(pd, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') - IN TYPEOF(pdr.used_representation)) )) = 1)) )) = 0); - WR3: (SIZEOF(QUERY ( pd <* USEDIN(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') - IN TYPEOF(pdr.used_representation)) ) | - (NOT (SIZEOF(impl_rep.used_representation.items) = 1)) )) - = 0)) )) = 0); - WR4: (SIZEOF(QUERY ( pd <* USEDIN(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') - IN TYPEOF(pdr.used_representation)) ) | - (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | - (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PLACEMENT' - IN TYPEOF(it)) AND (it.name = 'orientation')) )) = 1)) )) - = 0)) )) = 0); - WR5: (SIZEOF(QUERY ( pd <* USEDIN(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(QUERY ( pdr <* USEDIN(pd, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PATH_SHAPE_REPRESENTATION') - IN TYPEOF(pdr.used_representation)) )) = 1)) )) = 0); -END_ENTITY; -- closed_path_profile -(* USED FROM (aic_machining_feature); *) -ENTITY compound_feature - SUBTYPE OF (feature_definition); - WHERE - WR1: SIZEOF( QUERY( pds <* USEDIN( SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' - IN TYPEOF(pds)) AND - (SIZEOF( QUERY( csa <* USEDIN( pds, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE') | - ((csa.name='compound feature in solid') AND - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.COMPOSITE_SHAPE_ASPECT' - IN TYPEOF(csa))) )) = 1) )) = 1; - WR2: SIZEOF( QUERY( pds <* USEDIN( SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' - IN TYPEOF(pds)) AND - (SIZEOF( QUERY( csa <* USEDIN( pds, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE') | - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.COMPOSITE_SHAPE_ASPECT' - IN TYPEOF(csa) )) = 1) )) = 1; - WR3: (SIZEOF(QUERY ( pds <* USEDIN(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' - IN TYPEOF(pds)) AND (SIZEOF(QUERY ( csa <* USEDIN(pds, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE') | - (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.COMPOSITE_SHAPE_ASPECT' - IN TYPEOF(csa)) AND - (SIZEOF(QUERY ( fcr <* csa.component_relationships | - (NOT ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP' - IN TYPEOF(fcr))) )) = 0)) )) = 1)) )) = 1); - WR4: SIZEOF (QUERY (pds <* USEDIN (SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION')| - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' - IN TYPEOF (pds)) AND - (SIZEOF (QUERY (csa <* USEDIN (pds, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE')| - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.COMPOSITE_SHAPE_ASPECT' - IN TYPEOF (csa)) )) = 1) )) = 1; - WR5: (SIZEOF(QUERY ( pds <* USEDIN(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' - IN TYPEOF(pds)) AND - (SIZEOF(QUERY ( csa <* USEDIN(pds, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE') | - (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.COMPOSITE_SHAPE_ASPECT' - IN TYPEOF(csa)) AND - (SIZEOF(QUERY ( sar <* csa.component_relationships | - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.THREAD' - IN TYPEOF(sar.related_shape_aspect)) )) = 0) - ) )) = 1)) )) = 1); - WR6: (SIZEOF (QUERY (pds <* USEDIN (SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION')| - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' - IN TYPEOF (pds)) AND (SIZEOF (QUERY (csa <* USEDIN (pds, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE')| - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.COMPOSITE_SHAPE_ASPECT' - IN TYPEOF (csa)) AND - (SIZEOF (QUERY (sar <* csa.component_relationships | - (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.COMPOUND_FEATURE' - IN TYPEOF (sar.related_shape_aspect)) AND - (sar.related_shape_aspect\characterized_object.name <> - SELF\characterized_object.name)) )) = 0) )) = 1) )) = 1); -END_ENTITY; -- compound_feature -(* USED FROM (aic_machining_feature); *) -ENTITY composite_hole - SUBTYPE OF (compound_feature); - WHERE - WR1: (SELF\characterized_object.description IN ['counterbore', - 'countersunk']); - WR2: SIZEOF(QUERY ( pds <* USEDIN(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' - IN TYPEOF(pds)) AND (SIZEOF(QUERY ( csa <* USEDIN(pds, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE') | - (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.COMPOSITE_SHAPE_ASPECT' - IN TYPEOF(csa)) AND - (SIZEOF(QUERY ( sar <* csa.component_relationships | - ((('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP' - IN TYPEOF(sar)) AND ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.ROUND_HOLE' - IN TYPEOF(sar.related_shape_aspect))) - ))) = 2)) )) = 1)) )) = 1; - WR3: (NOT (SELF\characterized_object.description = 'countersunk')) OR - (SIZEOF(QUERY ( pds <* USEDIN(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' - IN TYPEOF(pds)) AND - (SIZEOF(QUERY ( csa <* USEDIN(pds, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE') | - (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.COMPOSITE_SHAPE_ASPECT' - IN TYPEOF(csa)) AND - (SIZEOF(QUERY ( sar <* csa.component_relationships | - (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.ROUND_HOLE' - IN TYPEOF(sar.related_shape_aspect)) AND - (NOT (SIZEOF(QUERY ( pds <* QUERY ( pd <* - USEDIN(sar.related_shape_aspect, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' - IN TYPEOF(pd)) ) | - (NOT (SIZEOF(QUERY ( sa_occ <* USEDIN(pds, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE') | - ((sa_occ.description = 'change in diameter occurrence') AND - (SIZEOF(QUERY ( fcr2 <* QUERY ( sar2 <* USEDIN(sa_occ, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATING_SHAPE_ASPECT') | - ((sar2.description = 'taper usage') AND - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP' - IN TYPEOF(sar2))) ) | - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.TAPER' IN TYPEOF(fcr2.related_shape_aspect)) - )) = 1)) )) = 0)) )) = 0))) )) = 1)) )) = 1)) )) = 1); -END_ENTITY; -- composite_hole -(* USED FROM (aic_machining_feature); *) -ENTITY applied_area - SUBTYPE OF (shape_aspect); - WHERE - WR1: ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' - IN TYPEOF(SELF.of_shape)); - WR2: (SIZEOF(QUERY ( pd <* USEDIN(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(QUERY ( pdr <* USEDIN(pd, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') - IN TYPEOF(pdr.used_representation)) )) = 1)) )) = 0); - WR3: (SIZEOF(QUERY ( pd <* USEDIN(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (( - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr. - used_representation)) ) | - (NOT({2 <= SIZEOF(impl_rep.used_representation.items) <= 3} ) - ) )) = 0)) )) = 0); - WR4: SIZEOF( QUERY( pd <* USEDIN( SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (SIZEOF( QUERY( pdr <* USEDIN( pd, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' - IN TYPEOF(pdr.used_representation)) AND - (SIZEOF( QUERY( srwp_i <* pdr.used_representation.items | - NOT (srwp_i.name IN ['orientation','effective length', - 'maximum length']) )) > 0 ) )) = 0 ) )) = 0; - WR5: (SIZEOF(QUERY ( pd <* USEDIN(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') - IN TYPEOF(pdr.used_representation)) ) | - (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | - ((SIZEOF([ - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * - TYPEOF(it)) = 2) AND (it.name = 'effective length')) )) = 1)) )) - = 0)) )) <= 1); - WR6: (SIZEOF(QUERY ( pd <* USEDIN(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') - IN TYPEOF(pdr.used_representation)) ) | - (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | - ((SIZEOF([ - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * - TYPEOF(it)) = 2) AND (it.name = 'maximum length')) )) <= 1)) )) - = 0)) )) = 0); - WR7: (SIZEOF(QUERY ( pd <* USEDIN(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') - IN TYPEOF(pdr.used_representation)) ) | - (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | - (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PLACEMENT' - IN TYPEOF(it)) AND (it.name = 'orientation')) )) = 1)) )) - = 0)) )) = 0); -END_ENTITY; -- applied_area -(* USED FROM (aic_machining_feature); *) -ENTITY boss_top - SUBTYPE OF (shape_aspect); - WHERE - WR1: ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.FEATURE_COMPONENT_DEFINITION' - IN TYPEOF(SELF.of_shape.definition)); - WR2: (SELF.description IN ['planar','complex']); - WR3: ((NOT (SELF.description = 'planar')) OR - (SIZEOF(QUERY ( pd <* USEDIN(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(QUERY ( pdr <* USEDIN(pd, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.DIRECTION_SHAPE_REPRESENTATION') - IN TYPEOF(pdr.used_representation)) )) = 1)) )) = 0)); - WR4: ((NOT (SELF.description = 'planar')) OR - (SIZEOF(QUERY ( pd <* USEDIN(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(QUERY ( pdr <* USEDIN(pd, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LOCATION_SHAPE_REPRESENTATION') - IN TYPEOF(pdr.used_representation)) )) = 1)) )) = 0)); - WR5: (NOT (SELF.description = 'complex')) OR - (SIZEOF(QUERY ( pd <* USEDIN(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(QUERY ( pdr <* USEDIN(pd, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.FACE_SHAPE_REPRESENTATION') - IN TYPEOF(pdr.used_representation) )) = 1)) )) = 0); - WR6: (SIZEOF(QUERY ( fcr <* QUERY ( sar <* USEDIN(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.' + - 'RELATING_SHAPE_ASPECT') | - ((sar.description = 'boss top usage') AND - (sar.name IN ['boss height start','boss height end']))AND - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP' - IN TYPEOF(sar))) | - ((fcr.related_shape_aspect.description = 'top condition occurrence') - AND - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.BOSS' - IN TYPEOF(fcr.related_shape_aspect.of_shape.definition)) AND - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.BOSS_TOP' - IN TYPEOF(fcr.relating_shape_aspect)) ) - )) >= 1); - WR7: (SIZEOF(QUERY ( pd <* USEDIN(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(QUERY ( pdr <* USEDIN(pd, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') - IN TYPEOF(pdr.used_representation)) )) <= 1)) )) = 0); - WR8: (SIZEOF(QUERY ( pd <* USEDIN(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') - IN TYPEOF(pdr.used_representation)) ) | - (NOT (SIZEOF(impl_rep.used_representation.items) = 1)) )) - = 0)) )) = 0); - WR9: SIZEOF (QUERY (pd <* USEDIN (SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - NOT (SIZEOF (QUERY (impl_rep <* QUERY (pdr <* USEDIN (pd, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' - IN TYPEOF (pdr.used_representation)) | - NOT (SIZEOF (QUERY (it <* impl_rep.used_representation.items | - (SIZEOF ( - ['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * - TYPEOF (it)) = 2) AND (it.name = 'top radius'))) <= 1))) - = 0))) = 0; -END_ENTITY; -- boss_top -(* USED FROM (aic_machining_feature); *) -ENTITY boss - SUBTYPE OF (feature_definition); - WHERE - WR1: SELF\characterized_object.description IN - ['circular', 'complex', 'rectangular']; - WR2: SIZEOF (QUERY (pds <* QUERY (pd <* USEDIN (SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN - TYPEOF (pd)) | - NOT (SIZEOF (QUERY (sa_occ <* USEDIN (pds, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE') | - (sa_occ.description = 'boss height occurrence') AND - (SIZEOF (QUERY (sdr <* QUERY (sar <* USEDIN (sa_occ, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | - (sar.description = 'path feature component usage') AND - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF (sar))) | - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PATH_FEATURE_COMPONENT' IN - TYPEOF (sdr.relating_shape_aspect)) AND - (sdr.relating_shape_aspect.description = 'linear') AND - (sdr.name = 'boss height'))) = 1))) = 1))) = 0; - WR3: SIZEOF( QUERY( pd <* USEDIN( SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - SIZEOF( QUERY( pdr <* USEDIN( pd, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' - IN TYPEOF(pdr.used_representation)) AND - ({1 <= SIZEOF(pdr.used_representation.items) <= 2} ) )) = 1 )) = 1; - WR4: SIZEOF( QUERY( pd <* USEDIN( SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - SIZEOF( QUERY( pdr <* USEDIN( pd, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN - TYPEOF(pdr.used_representation)) AND - (SIZEOF( QUERY( srwp_i <* pdr.used_representation.items | - (srwp_i.name = 'orientation') OR - (srwp_i.name = 'fillet radius'))) - = SIZEOF(pdr.used_representation.items)) )) = 1 )) = 1; - WR5: SIZEOF (QUERY (pd <* USEDIN (SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - NOT (SIZEOF (QUERY (impl_rep <* QUERY (pdr <* USEDIN (pd, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' - IN TYPEOF (pdr.used_representation)) | - NOT (SIZEOF (QUERY (it <* impl_rep.used_representation.items | - (SIZEOF ( - ['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * - TYPEOF (it)) = 2) AND (it.name = 'fillet radius'))) <= 1))) - = 0))) = 0; - WR6: (NOT (SELF\characterized_object.description = 'circular')) OR - (SIZEOF (QUERY (pds <* QUERY (pd <* USEDIN (SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' - IN TYPEOF (pd)) | - NOT (SIZEOF (QUERY (sa_occ <* USEDIN (pds, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE') | - (sa_occ.description = 'circular profile occurrence') AND - (SIZEOF (QUERY (sdr <* QUERY (sar <* USEDIN (sa_occ, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | - (sar.description = 'profile usage') AND - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_DEFINING_RELATIONSHIP' - IN TYPEOF (sar))) | - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CIRCULAR_CLOSED_PROFILE' - IN TYPEOF (sdr.relating_shape_aspect))) = 1))) = 1))) = 0); - WR7: SIZEOF(QUERY ( pds <* QUERY ( pd <* USEDIN(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' - IN TYPEOF(pd)) ) | - (NOT (SIZEOF(QUERY ( sa_occ <* USEDIN(pds, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE') | - ((sa_occ.description = 'top condition occurrence') AND - (SIZEOF(QUERY ( fcr <* QUERY ( sar <* USEDIN(sa_occ, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | - ((sar.description = 'boss top usage') AND - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP' - IN TYPEOF(sar))) ) | (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.BOSS_TOP' - IN TYPEOF(fcr.relating_shape_aspect)) ) )) = 1)) )) = 1)) )) = 0; - WR8: (NOT (SELF\characterized_object.description = 'circular')) OR - (SIZEOF (QUERY (pds <* QUERY (pd <* USEDIN (SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN - TYPEOF (pd)) | - NOT (SIZEOF (QUERY (sa_occ <* USEDIN (pds, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE') | - (sa_occ.description = 'change in diameter occurrence') AND - (SIZEOF (QUERY (fcr <* QUERY (sar <* USEDIN (sa_occ, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | - (sar.description = 'taper usage') AND - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP' - IN TYPEOF (sar))) | - (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.TAPER' IN TYPEOF (fcr.related_shape_aspect)) - AND - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.BOSS' IN TYPEOF (fcr.relating_shape_aspect))) - ) )= 1))) <= 1))) = 0); - WR9: (NOT (SELF\characterized_object.description = 'complex')) OR - (SIZEOF (QUERY (pds <* QUERY (pd <* USEDIN (SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN - TYPEOF (pd)) | - NOT (SIZEOF (QUERY (sa_occ <* USEDIN (pds, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE') | - (sa_occ.description = 'enclosed boundary occurrence') AND - (SIZEOF (QUERY (sdr <* QUERY (sar <* USEDIN (sa_occ, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | - (sar.description = 'profile usage') AND - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_DEFINING_RELATIONSHIP' - IN TYPEOF (sar))) | - SIZEOF (['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.NGON_CLOSED_PROFILE', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CLOSED_PATH_PROFILE'] * - TYPEOF (sdr.relating_shape_aspect)) = 1)) = 1)))= 1))) = 0); - WR10: (NOT (SELF\characterized_object.description - IN ['complex','rectangular'])) OR - (SIZEOF (QUERY (pds <* QUERY (pd <* USEDIN (SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' - IN TYPEOF (pd)) | - NOT (SIZEOF (QUERY (sa_occ <* USEDIN (pds, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE') | - (sa_occ.description = 'change in boundary occurrence') AND - (SIZEOF (QUERY (fcr <* QUERY (sar <* USEDIN (sa_occ, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATING_SHAPE_ASPECT') | - (sar.description = 'taper usage') AND - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP' - IN TYPEOF (sar))) | - (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.TAPER' IN TYPEOF (fcr.related_shape_aspect)) - AND - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.BOSS' IN TYPEOF (fcr.relating_shape_aspect)) - AND - (fcr.related_shape_aspect.description IN - ['angle taper','directed taper'])) - )) = 1))) <= 1))) = 0); - WR11: (NOT (SELF\characterized_object.description = 'rectangular')) OR - (SIZEOF (QUERY (pds <* QUERY (pd <* USEDIN (SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' - IN TYPEOF (pd)) | - NOT (SIZEOF (QUERY (sa_occ <* USEDIN (pds, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE') | - (sa_occ.description = 'rectangular profile occurrence') AND - (SIZEOF (QUERY (sdr <* QUERY (sar <* USEDIN (sa_occ, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | - (sar.description = 'profile usage') AND - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_DEFINING_RELATIONSHIP' - IN TYPEOF (sar))) | - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.RECTANGULAR_CLOSED_PROFILE' - IN TYPEOF (sdr.relating_shape_aspect))) = 1))) = 1))) = 0); - - WR12: SIZEOF (QUERY(pdr <* get_property_definition_representations (SELF) | - ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PLANAR_SHAPE_REPRESENTATION' - IN TYPEOF ( pdr.used_representation ) ) AND - ( pdr.used_representation.name ='maximum feature limit'))) >=0; -END_ENTITY; -- Boss -(* USED FROM (explicit_geometric_constraint_schema); *) -ENTITY tangent_geometric_constraint - SUBTYPE OF (explicit_geometric_constraint); - SELF\explicit_constraint.constrained_elements : - SET[1:?] OF curve_or_surface_constraint_element; - SELF\explicit_constraint.reference_elements : - SET[0:?] OF curve_or_surface_constraint_element; - near_points : SET[0:?] OF near_point_relationship; - tangent_contact : tangent_contact_type; -WHERE - WR1: (SIZEOF(SELF\explicit_constraint.reference_elements) > 0) OR - (SIZEOF(SELF\explicit_constraint.constrained_elements) = 2); - WR2: NOT ((SELF\geometric_representation_item.dim = 2) - AND (tangent_contact = surface_contact)); - WR3: SIZEOF(QUERY(q <* near_points | NOT - (q\representation_item_relationship.relating_representation_item - IN SELF\explicit_constraint.reference_elements))) = 0; -END_ENTITY; -(* USED FROM (explicit_geometric_constraint_schema); *) -ENTITY coaxial_geometric_constraint - SUBTYPE OF (explicit_geometric_constraint); - SELF\explicit_constraint.constrained_elements : - SET[1:?] OF axial_geometry_constraint_element; - SELF\explicit_constraint.reference_elements : - SET[0:1] OF axial_geometry_constraint_element; -WHERE - WR1: SIZEOF(QUERY(q <* SELF\explicit_constraint.reference_elements | - SIZEOF(TYPEOF(q) * ['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.POINT','AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PLANE', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SPHERICAL_SURFACE','AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SPHERE']) - > 0)) = 0; -END_ENTITY; -(* USED FROM (explicit_geometric_constraint_schema); *) -ENTITY incidence_geometric_constraint - SUBTYPE OF (explicit_geometric_constraint); - SELF\explicit_constraint.constrained_elements : - SET[1:?] OF geometric_constraint_element; - SELF\explicit_constraint.reference_elements : - SET [0:?] OF geometric_constraint_element; - near_points : SET[0:?] OF near_point_relationship; -WHERE - WR1: (SIZEOF(SELF\explicit_constraint.reference_elements) > 0) - OR (SIZEOF(SELF\explicit_constraint.constrained_elements) = 2); - WR2: SIZEOF(near_points) <= - SIZEOF(SELF\explicit_constraint.reference_elements); - WR3: SIZEOF(QUERY(q <* near_points | NOT - (q\representation_item_relationship.relating_representation_item - IN SELF\explicit_constraint.reference_elements))) = 0; -END_ENTITY; -(* USED FROM (explicit_geometric_constraint_schema); *) -ENTITY perpendicular_geometric_constraint - SUBTYPE OF (explicit_geometric_constraint); - SELF\explicit_constraint.constrained_elements : - SET[1:?] OF linear_geometry_constraint_element; - SELF\explicit_constraint.reference_elements : - SET[0:2] OF linear_geometry_constraint_element; -WHERE - WR1: NOT ((SIZEOF(SELF\explicit_constraint.reference_elements) = 2) AND - NOT ((SIZEOF(QUERY(q <* SELF\explicit_constraint.constrained_elements + - SELF\explicit_constraint.reference_elements | - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LINE' IN TYPEOF(q))) = - SIZEOF(SELF\explicit_constraint.reference_elements + - SELF\explicit_constraint.constrained_elements)) XOR - (SIZEOF(QUERY(q <* SELF\explicit_constraint.constrained_elements + - SELF\explicit_constraint.reference_elements | - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PLANE' IN TYPEOF(q))) = - SIZEOF(SELF\explicit_constraint.reference_elements + - SELF\explicit_constraint.constrained_elements)))); - WR2: (SIZEOF(SELF\explicit_constraint.reference_elements) > 0) OR - (SIZEOF(SELF\explicit_constraint.constrained_elements) IN [2,3]); - WR3: NOT ((SIZEOF(SELF\explicit_constraint.reference_elements) = 0) AND - (SIZEOF(SELF\explicit_constraint.constrained_elements) = 3)) AND NOT - ((SIZEOF(QUERY(q <* SELF\explicit_constraint.constrained_elements | - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LINE' IN TYPEOF(q))) = 3) XOR - (SIZEOF(QUERY(q <* SELF\explicit_constraint.constrained_elements | - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PLANE' IN TYPEOF(q))) = 3)); -END_ENTITY; -(* USED FROM (explicit_geometric_constraint_schema); *) -ENTITY pgc_with_dimension - SUBTYPE OF (parallel_geometric_constraint); - distance_value : non_negative_length_measure; - negative_direction : BOOLEAN; -WHERE - WR1: (SIZEOF(SELF\explicit_constraint.reference_elements) = 1) - OR (SIZEOF(SELF\explicit_constraint.constrained_elements) = 2); - WR2: SIZEOF(QUERY(q <* (SELF\explicit_constraint.reference_elements + - SELF\explicit_constraint.constrained_elements) | SIZEOF(TYPEOF(q) * - ['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.DIRECTION', 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.VECTOR']) > 0)) = 0; -END_ENTITY; -(* USED FROM (Point_direction_model_mim); *) -ENTITY point_placement_shape_representation - SUBTYPE OF (shape_representation); - SELF\representation.items : SET[1:?] OF point_placement_shape_representation_item; -WHERE - WR1: SIZEOF( QUERY( i <* SELF.items | - SIZEOF(['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.COMPOUND_REPRESENTATION_ITEM', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MAPPED_ITEM'] - * TYPEOF(i)) = 1 - )) > 0; -END_ENTITY; -(* USED FROM (explicit_constraint_schema); *) -ENTITY simultaneous_constraint_group - SUBTYPE OF (variational_representation_item); - constraint_group : SET[2:?] OF constraint_group_member; -WHERE - WR1: SIZEOF(QUERY(q <* using_representations(SELF) | - SIZEOF(QUERY(r <* q.items | - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SIMULTANEOUS_CONSTRAINT_GROUP' - IN TYPEOF(r)) AND (SIZEOF(QUERY(s <* constraint_group | - (s IN r\simultaneous_constraint_group.constraint_group) AND NOT (r :=: SELF))) > 0))) > 0)) = 0; - WR2: SIZEOF(QUERY(q <* using_representations(constraint_group[1]) | - (SIZEOF(QUERY(r <* constraint_group | - item_in_context(r,q.context_of_items))) - = SIZEOF(constraint_group)))) > 0; - WR3: SIZEOF(QUERY(q <* constraint_group | - (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.EXPLICIT_CONSTRAINT' IN TYPEOF(q)) - AND (SIZEOF(QUERY(r <* q.constrained_elements | - SIZEOF(QUERY(s <* constraint_group | - r IN s.reference_elements)) > 0)) > 0)))) = 0; -END_ENTITY; -(* USED FROM (explicit_constraint_schema); *) -ENTITY free_form_relation - SUBTYPE OF (free_form_constraint); -WHERE - WR1: 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.BOOLEAN_EXPRESSION' IN TYPEOF - (SELF\free_form_constraint.constraining_expression); - WR2: SIZEOF(QUERY(q <* (SELF\free_form_constraint.constrained_elements + - SELF\free_form_constraint.reference_elements) | - NOT (q IN used_variables - (SELF\free_form_constraint.constraining_expression)))) = 0; -END_ENTITY; -(* USED FROM (Layer_assignment_mim); *) - ENTITY rep_item_group - SUBTYPE OF (group, representation_item); - WHERE - WR1: SIZEOF(USEDIN(SELF,'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'PRESENTATION_LAYER_ASSIGNMENT.' + 'ASSIGNED_ITEMS')) > 0; - WR2: SIZEOF(QUERY(r <* USEDIN(SELF,'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'REPRESENTATION.' + 'ITEMS') | r.name = 'group representation')) > 0; - WR3: SIZEOF(QUERY(ga <* USEDIN(SELF,'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'GROUP_ASSIGNMENT.' + 'ASSIGNED_GROUP') | ga.role.name <> 'group membership')) = 0; - WR4: SIZEOF(['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'GEOMETRIC_REPRESENTATION_ITEM', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'TOPOLOGICAL_REPRESENTATION_ITEM', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'MAPPED_ITEM', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'STYLED_ITEM'] * TYPEOF(SELF)) = 1; - END_ENTITY; -(* USED FROM (Surface_conditions_mim); *) - ENTITY hardness_representation - SUBTYPE OF (representation); - WHERE - WR1: ( {2<= SIZEOF ( SELF.items ) <=4} ) AND ( SIZEOF ( QUERY ( - i <* items | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.'+ 'DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF ( i ) ) AND ( - i.name IN [ 'measuring method' , 'measuring position' ] ) ) - ) + SIZEOF ( QUERY ( i <* items | ( SIZEOF ( - ['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.'+ 'MEASURE_REPRESENTATION_ITEM' , - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 , - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.'+'PROPERTY_DEFINITION_REPRESENTATION.'+ - 'USED_REPRESENTATION' ) ) =1 ) AND ( SIZEOF ( QUERY ( pdr - <* USEDIN ( SELF , - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.'+'PROPERTY_DEFINITION_REPRESENTATION.'+ - 'USED_REPRESENTATION' ) | SIZEOF ( QUERY ( gpa <* USEDIN ( - pdr.definition , - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.'+'GENERAL_PROPERTY_ASSOCIATION.'+ - 'DERIVED_DEFINITION' ) | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.'+ 'GENERAL_PROPERTY' IN TYPEOF ( gpa.base_definition ) ) AND - ( gpa\general_property_association.base_definition\general_property.name ='surface_condition' ) ) ) =1 ) - ) =1 ) ; - END_ENTITY; -(* USED FROM (kinematic_topology_schema); *) -ENTITY kinematic_topology_structure - SUBTYPE OF (representation); - SELF\representation.items : SET[1:?] OF kinematic_joint; -WHERE - WR1: SIZEOF (QUERY (item <* items | 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.ORIENTED_EDGE' in TYPEOF(item))) = 0; -END_ENTITY; -(* USED FROM (Surface_conditions_mim); *) - ENTITY visual_appearance_representation - SUBTYPE OF (representation); - WHERE - WR1: ( {3<= SIZEOF ( SELF.items ) <=9} ) AND ( SIZEOF ( QUERY ( - i <* items | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 ( - ['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.'+ 'MEASURE_REPRESENTATION_ITEM' , - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.'+ 'VALUE_RANGE']* TYPEOF ( i ) ) =1 ) - AND ( i.name IN ['refraction index' , 'opacity'] ) ) - ) + SIZEOF ( QUERY ( i <* items | ( - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 , - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.'+'PROPERTY_DEFINITION_REPRESENTATION.'+ - 'USED_REPRESENTATION' ) ) =1 ) AND ( SIZEOF ( QUERY ( pdr - <* USEDIN ( SELF , - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.'+'PROPERTY_DEFINITION_REPRESENTATION.'+ - 'USED_REPRESENTATION' ) | SIZEOF ( QUERY ( gpa <* USEDIN ( - pdr.definition , - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.'+'GENERAL_PROPERTY_ASSOCIATION.'+ - 'DERIVED_DEFINITION' ) | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.'+ 'GENERAL_PROPERTY' IN TYPEOF ( gpa.base_definition ) ) AND - ( gpa\general_property_association.base_definition\general_property.name ='surface_condition' ) ) ) =1 )) =1 ) ; - END_ENTITY; -(* USED FROM (Picture_representation_mim); *) - 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 | - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.STYLED_ITEM' IN TYPEOF(item))) = 1; - WR2: SIZEOF (QUERY (se <* QUERY (item <* SELF.items - | ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.STYLED_ITEM' IN TYPEOF (item))) - | NOT ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PICTURE_REPRESENTATION_ITEM' - IN TYPEOF (se\styled_item.item)) )) = 0; - END_ENTITY; -(* USED FROM (geometric_model_schema); *) -ENTITY tessellated_item - ABSTRACT SUPERTYPE OF (ONEOF ( - COORDINATES_LIST, - TESSELLATED_SOLID, - TESSELLATED_SHELL, - TESSELLATED_WIRE, - TESSELLATED_GEOMETRIC_SET, - TESSELLATED_CURVE_SET, - TESSELLATED_POINT_SET, - TESSELLATED_SURFACE_SET, - TESSELLATED_STRUCTURED_ITEM)) - SUBTYPE OF (geometric_representation_item); -WHERE - WR1: SIZEOF (QUERY (using_rep <* using_representations (SELF) | NOT ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.TESSELLATED_SHAPE_REPRESENTATION' IN TYPEOF(using_rep)))) = 0; -END_ENTITY; -(* USED FROM (Design_product_data_management_mim); *) -ENTITY retention - SUBTYPE OF (action); -WHERE - WR1: SIZEOF( QUERY( aa <* USEDIN(SELF,'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + - 'ACTION_ASSIGNMENT.ASSIGNED_ACTION') | - ('ACTIVITY.APPLIED_ACTION_ASSIGNMENT' IN - TYPEOF(aa)) AND - (aa.role.name = 'retention') - )) >= 1; - WR2: (SIZEOF( QUERY( atia <* USEDIN(SELF,'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + - 'APPLIED_TIME_INTERVAL_ASSIGNMENT.ITEMS') | - (atia.role.name = 'minimum retention period') - )) = 1) AND - (SIZEOF( QUERY( atia <* USEDIN(SELF,'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + - 'APPLIED_TIME_INTERVAL_ASSIGNMENT.ITEMS') | - (atia.role.name = 'maximum retention period') - )) = 1) AND - (SIZEOF( QUERY( atia1 <* USEDIN(SELF,'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + - 'APPLIED_TIME_INTERVAL_ASSIGNMENT.ITEMS') | - (atia1.role.name = 'minimum retention period') AND - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.TIME_INTERVAL_WITH_BOUNDS' IN - TYPEOF(atia1.assigned_time_interval)) AND - (EXISTS(atia1.assigned_time_interval\time_interval_with_bounds.secondary_bound) OR - EXISTS(atia1.assigned_time_interval\time_interval_with_bounds.duration)) AND - (SIZEOF( QUERY( atia2 <* USEDIN(SELF,'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + - 'APPLIED_TIME_INTERVAL_ASSIGNMENT.ITEMS') | - (atia2.role.name = 'maximum retention period') AND - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.TIME_INTERVAL_WITH_BOUNDS' IN - TYPEOF(atia2.assigned_time_interval)) AND - (EXISTS(atia2.assigned_time_interval\time_interval_with_bounds.secondary_bound) OR - EXISTS(atia2.assigned_time_interval\time_interval_with_bounds.duration)) AND - (atia1.assigned_time_interval\time_interval_with_bounds.primary_bound :=: - atia2.assigned_time_interval\time_interval_with_bounds.primary_bound) -)) = 1) - )) = 1); - - WR3: SIZEOF( USEDIN(SELF,'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + - 'ACTION_RELATIONSHIP.RELATING_ACTION')) + - SIZEOF( USEDIN(SELF,'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + - 'ACTION_RELATIONSHIP.RELATED_ACTION')) = 0; -END_ENTITY; -(* USED FROM (Geometric_tolerance_mim); *) -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 curve']; - WR2: SIZEOF (QUERY (pdr <* representation_associations | 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF (pdr.used_representation) )) = 1; - WR3: valid_datum_target_parameters(SELF); -END_ENTITY; -(* USED FROM (Dimension_tolerance_mim); *) -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, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.APPLIED_DOCUMENT_REFERENCE.ITEMS')| (adr.assigned_document.description = 'external size dimension specification') )); -END_ENTITY; -(* USED FROM (Process_plan_mim); *) -ENTITY product_process_plan - SUBTYPE OF (product_definition_process); -WHERE - WR1: SIZEOF( QUERY( ar <* USEDIN(SELF,'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + - 'ACTION_RELATIONSHIP.RELATED_ACTION') | - SIZEOF(['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROCESS_PLAN', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PRODUCT_PROCESS_PLAN'] * - TYPEOF(ar.relating_action) - ) <> 1 - )) = 0; - - WR2: SIZEOF( QUERY( ar <* USEDIN(SELF,'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + - 'ACTION_RELATIONSHIP.RELATING_ACTION') | - (SIZEOF(['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROCESS_PLAN', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PRODUCT_PROCESS_PLAN'] * - TYPEOF(ar.related_action)) = 1) OR - ((ar.name = 'process operation occurrence') AND - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROCESS_OPERATION' IN - TYPEOF(ar.related_action.chosen_method))) - )) = - SIZEOF(USEDIN(SELF,'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + - 'ACTION_RELATIONSHIP.RELATING_ACTION')); - WR3: SIZEOF( QUERY( ppa <* USEDIN(SELF,'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + - 'PROCESS_PRODUCT_ASSOCIATION.PROCESS') | - (ppa.name <> 'produced output') OR - NOT('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PRODUCT_DEFINITION' IN - TYPEOF(ppa.defined_product)) - )) = 0; - -END_ENTITY; -(* USED FROM (draughting_element_schema); *) - ENTITY dimension_curve - SUBTYPE OF (annotation_curve_occurrence); - WHERE - WR1: (SIZEOF( - QUERY(dct <* USEDIN(SELF,'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + - 'TERMINATOR_SYMBOL.ANNOTATED_CURVE') - | (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.'+ - 'DIMENSION_CURVE_TERMINATOR' IN TYPEOF(dct)) - )) - ) <= 2); - WR2: SIZEOF( - QUERY( dcdc <* USEDIN(SELF,'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + - 'DRAUGHTING_CALLOUT.CONTENTS') | - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.'+ - 'DIMENSION_CURVE_DIRECTED_CALLOUT' IN TYPEOF(dcdc))) - )>= 1; - WR3: (SIZEOF( - QUERY(dct1 <* USEDIN(SELF,'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + - 'TERMINATOR_SYMBOL.ANNOTATED_CURVE') - | (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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,'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.'+ - 'TERMINATOR_SYMBOL.ANNOTATED_CURVE') - | (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.'+ - 'DIMENSION_CURVE_TERMINATOR' IN TYPEOF(dct2)) - AND (dct2\dimension_curve_terminator.role = dimension_extent_usage.target))) - ) <= 1); - END_ENTITY; -(* USED FROM (Externally_conditioned_data_quality_inspection_result_mim); *) - ENTITY externally_conditioned_data_quality_inspection_result_representation - SUBTYPE OF(data_quality_inspection_result_representation); - WHERE - WR1 : SIZEOF( QUERY( q <* SELF\representation.items| - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + - 'EXTERNALLY_CONDITIONED_DATA_QUALITY_INSPECTION_RESULT' IN TYPEOF(q))) > 0; - END_ENTITY; -(* USED FROM (draughting_element_schema); *) - ENTITY draughting_callout - SUBTYPE OF (geometric_representation_item); - contents : SET [1:?] OF draughting_callout_element; - WHERE - WR1: (SIZEOF (QUERY (l_1 <* SELF\draughting_callout.contents | - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LEADER_CURVE' IN (TYPEOF(l_1)))) = 0) OR - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LEADER_DIRECTED_CALLOUT' IN (TYPEOF(SELF))) AND - (SIZEOF (QUERY (l_1 <* SELF\draughting_callout.contents | - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROJECTION_CURVE' IN (TYPEOF(l_1)))) = 0) OR - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROJECTION_DIRECTED_CALLOUT' IN (TYPEOF(SELF))) AND - (SIZEOF (QUERY (l_1 <* SELF\draughting_callout.contents | - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.DIMENSION_CURVE' IN (TYPEOF(l_1)))) = 0) OR - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.DIMENSION_CURVE_DIRECTED_CALLOUT' IN (TYPEOF(SELF))); - END_ENTITY; -(* USED FROM (Externally_conditioned_data_quality_criteria_mim); *) - ENTITY disallowed_assembly_relationship_usage - SUBTYPE OF(externally_conditioned_data_quality_criterion); - WHERE - WR1: validate_ecdq_inspected_elements_type(SELF, - ['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.ASSEMBLY_COMPONENT_USAGE']); - END_ENTITY; -(* USED FROM (presentation_appearance_schema); *) - ENTITY styled_item - SUBTYPE OF (representation_item); - styles : SET [1:?] OF presentation_style_assignment; - item : styled_item_target; - WHERE - WR1: (SIZEOF(SELF.styles) = 1) - XOR - (SIZEOF(QUERY(pres_style <* SELF.styles | - NOT ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + - 'PRESENTATION_STYLE_BY_CONTEXT' IN - TYPEOF(pres_style)) - )) = 0); - WR2: NOT ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.STYLED_ITEM' IN TYPEOF(item)); - WR3: ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MAPPED_ITEM' IN TYPEOF(item)) OR - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.GEOMETRIC_REPRESENTATION_ITEM' IN TYPEOF(item)) OR - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CONTEXT_DEPENDENT_OVER_RIDING_STYLED_ITEM' IN TYPEOF(SELF)); - END_ENTITY; -(* USED FROM (draughting_element_schema); *) - ENTITY leader_curve - SUBTYPE OF (annotation_curve_occurrence); - WHERE - WR1: SIZEOF( - QUERY(ldc <* USEDIN( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + - 'DRAUGHTING_CALLOUT.CONTENTS') - | 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + - 'LEADER_DIRECTED_CALLOUT' IN TYPEOF(ldc))) >= 1; - END_ENTITY; -(* USED FROM (shape_data_quality_inspection_result_schema); *) - ENTITY shape_data_quality_inspection_result_representation - SUBTYPE OF(data_quality_inspection_result_representation); - WHERE - WR1 : SIZEOF( QUERY( q <* SELF\representation.items| - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + - 'SHAPE_DATA_QUALITY_INSPECTION_RESULT' IN TYPEOF(q))) > 0; - WR2 : 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.GEOMETRIC_REPRESENTATION_CONTEXT' IN - TYPEOF(SELF\representation.context_of_items); - WR3 : SIZEOF(USEDIN(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.'+ - 'SHAPE_DATA_QUALITY_INSPECTED_SHAPE_AND_RESULT_RELATIONSHIP.'+ - 'REP_2'))>0; - END_ENTITY; -(* USED FROM (Ap242_managed_model_based_3d_engineering_mim); *) - 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; -(* USED FROM (shape_data_quality_inspection_result_schema); *) - ENTITY shape_data_quality_inspected_shape_and_result_relationship - SUBTYPE OF(shape_representation_relationship); - SELF\representation_relationship.rep_1 : shape_representation; - SELF\representation_relationship.rep_2 : shape_data_quality_inspection_result_representation; - WHERE - WR1 : SIZEOF( - using_product_definition_of_shape_representation(SELF.rep_1) - * - bag_to_set(inspected_product_definition(SELF.rep_2)) - ) > 0; - WR2 : SELF.rep_1\representation.context_of_items :=: - SELF.rep_2\representation.context_of_items; - END_ENTITY; -(* USED FROM (shape_data_quality_criteria_schema); *) - ENTITY shape_data_quality_criterion - SUPERTYPE OF (ONEOF ( - ERRONEOUS_DATA, - INAPT_DATA)) - SUBTYPE OF(data_quality_criterion, data_quality_measurement_requirement); - assessment_specification : shape_data_quality_assessment_specification_select; - WHERE - WR1 : SIZEOF(USEDIN(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.'+ - 'DATA_QUALITY_CRITERION_ASSESSMENT_ASSOCIATION.'+ - 'CRITERION' - )) = 0; - WR2 : SIZEOF(QUERY(i1<*bag_to_set( - USEDIN(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.'+ - 'REPRESENTATION_ITEM_RELATIONSHIP.'+ - 'RELATED_REPRESENTATION_ITEM'))| - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.'+ - 'DATA_QUALITY_CRITERION_MEASUREMENT_ASSOCIATION' - IN TYPEOF(i1))) = 0; - WR3 : SIZEOF(QUERY(i1<*bag_to_set( - USEDIN(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.'+ - 'REPRESENTATION_ITEM_RELATIONSHIP.'+ - 'RELATING_REPRESENTATION_ITEM'))| - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.'+ - 'DATA_QUALITY_CRITERION_MEASUREMENT_ASSOCIATION' - IN TYPEOF(i1))) = 0; - END_ENTITY; -(* USED FROM (shape_data_quality_criteria_schema); *) - ENTITY shape_data_quality_criteria_representation - SUBTYPE OF(data_quality_criteria_representation); - WHERE - WR1 : SIZEOF( QUERY( q <* SELF\representation.items| - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + - 'SHAPE_DATA_QUALITY_CRITERION' IN TYPEOF(q))) > 0; - END_ENTITY; -(* USED FROM (qualified_measure_schema); *) -ENTITY measure_qualification; - name : label; - description : text; - qualified_measure : measure_with_unit; - qualifiers : SET [1:?] OF value_qualifier; -WHERE - WR1: SIZEOF(QUERY(temp <* qualifiers | - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PRECISION_QUALIFIER' - IN TYPEOF(temp))) < 2; - WR2: NOT ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.REPRESENTATION_ITEM' - IN TYPEOF(SELF\measure_qualification.qualified_measure)); -END_ENTITY; -(* USED FROM (product_data_quality_inspection_result_schema); *) - ENTITY data_quality_inspection_result_representation - SUBTYPE OF(representation); - criteria_inspected : data_quality_criteria_representation; - WHERE - WR1 : SIZEOF( QUERY( q <* SELF\representation.items| - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + - 'DATA_QUALITY_INSPECTION_RESULT' IN TYPEOF(q))) > 0; - WR2 : SIZEOF(inspected_product_definition(SELF)) > 0; - END_ENTITY; -(* USED FROM (product_data_quality_inspection_result_schema); *) - ENTITY data_quality_inspection_criterion_report_item - SUBTYPE OF(representation_item); - statistical_value : INTEGER; - value_type : statistical_value_type; - WHERE - WR1 : SIZEOF(QUERY(q <* bag_to_set( USEDIN(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.REPRESENTATION.ITEMS')) - |'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.'+ - 'DATA_QUALITY_CRITERIA_REPRESENTATION' - IN TYPEOF(q)))=0; - END_ENTITY; -(* USED FROM (product_data_quality_inspection_result_schema); *) - ENTITY data_quality_inspection_instance_report_item - SUBTYPE OF(representation_item); - inspected_elements : SET [1:?] OF inspected_element_select; - WHERE - WR1 : SIZEOF(QUERY(q <* bag_to_set( USEDIN(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.REPRESENTATION.ITEMS')) - |'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.'+ - 'DATA_QUALITY_CRITERIA_REPRESENTATION' - IN TYPEOF(q)))=0; - END_ENTITY; -(* USED FROM (product_data_quality_inspection_result_schema); *) - ENTITY data_quality_inspection_instance_report - SUBTYPE OF(data_quality_inspection_report); - inspected_instances : LIST [1:?] OF data_quality_inspection_instance_report_item; - WHERE - WR1 : SIZEOF(QUERY(i1<*bag_to_set(USEDIN( - SELF\data_quality_inspection_report. - inspection_result.criterion_inspected, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.'+ - 'DATA_QUALITY_REPORT_REQUEST.CRITERION_OF_REPORT_REQUEST'))| - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.'+ - 'DETAILED_REPORT_REQUEST' - IN TYPEOF(i1)))>0; - END_ENTITY; -(* USED FROM (product_data_quality_inspection_result_schema); *) - ENTITY data_quality_inspection_result - SUBTYPE OF(representation_item); - criterion_inspected : data_quality_criterion; - WHERE - WR1 : SIZEOF(QUERY(q <* bag_to_set( USEDIN(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.REPRESENTATION.ITEMS')) - |'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.'+ - 'DATA_QUALITY_CRITERIA_REPRESENTATION' - IN TYPEOF(q)))=0; - END_ENTITY; -(* USED FROM (product_data_quality_inspection_result_schema); *) - ENTITY data_quality_inspection_criterion_report - SUBTYPE OF(data_quality_inspection_report); - statistical_values : SET [1:2] OF data_quality_inspection_criterion_report_item; - WHERE - WR1 : SIZEOF(QUERY(i1<*bag_to_set(USEDIN( - SELF\data_quality_inspection_report. - inspection_result.criterion_inspected, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.'+ - 'DATA_QUALITY_REPORT_REQUEST.CRITERION_OF_REPORT_REQUEST'))| - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.'+ - 'SUMMARY_REPORT_REQUEST' - IN TYPEOF(i1)))>0; - WR2 : (SIZEOF(SELF.statistical_values) = 1 ) OR - (SELF.statistical_values[1].value_type <> - SELF.statistical_values[2].value_type); - END_ENTITY; -(* USED FROM (product_data_quality_inspection_result_schema); *) - ENTITY data_quality_inspection_report - SUPERTYPE OF (ONEOF ( - DATA_QUALITY_INSPECTION_CRITERION_REPORT, - DATA_QUALITY_INSPECTION_INSTANCE_REPORT)) - SUBTYPE OF(representation_item); - inspection_result : data_quality_inspection_result; - WHERE - WR1 : SIZEOF(QUERY(q <* bag_to_set( USEDIN(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.REPRESENTATION.ITEMS')) - |'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.'+ - 'DATA_QUALITY_CRITERIA_REPRESENTATION' - IN TYPEOF(q)))=0; - END_ENTITY; -(* USED FROM (solid_shape_element_schema); *) -ENTITY surfaced_open_shell - SUBTYPE OF (open_shell); -WHERE - WR1: SIZEOF(QUERY(q <* SELF\connected_face_set.cfs_faces | - NOT ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.FACE_SURFACE' IN TYPEOF(q)))) = 0; -END_ENTITY; - -(* Implicit interfaced from: mathematical_functions_schema *) -ENTITY extended_tuple_space - SUBTYPE OF (maths_space, generic_literal); - base : product_space; - extender : maths_space; -WHERE - WR1: expression_is_constant(base) AND - expression_is_constant(extender); - WR2: no_cyclic_space_reference(SELF, []); - WR3: extender <> the_empty_space; -END_ENTITY; - -(* Implicit interfaced from: mathematical_functions_schema *) -ENTITY quantifier_expression - ABSTRACT SUPERTYPE - SUBTYPE OF (multiple_arity_generic_expression); - variables : LIST [1:?] OF UNIQUE generic_variable; -WHERE - WR1: SIZEOF (QUERY (vrbl <* variables | NOT (vrbl IN - SELF\multiple_arity_generic_expression.operands))) = 0; - WR2: SIZEOF (QUERY (vrbl <* variables | NOT ((schema_prefix + - 'BOUND_VARIABLE_SEMANTICS') IN TYPEOF (vrbl.interpretation.semantics)))) = 0; -END_ENTITY; - -(* Implicit interfaced from: mathematical_functions_schema *) -ENTITY function_space - SUBTYPE OF (maths_space, generic_literal); - domain_constraint : space_constraint_type; - domain_argument : maths_space; - range_constraint : space_constraint_type; - range_argument : maths_space; -WHERE - WR1: expression_is_constant(domain_argument) AND - expression_is_constant(range_argument); - WR2: (domain_argument <> the_empty_space) AND - (range_argument <> the_empty_space); - WR3: (domain_constraint <> sc_member) OR NOT - member_of(the_empty_space,domain_argument); - WR4: (range_constraint <> sc_member) OR NOT - member_of(the_empty_space,range_argument); - WR5: NOT (any_space_satisfies(domain_constraint,domain_argument) AND - any_space_satisfies(range_constraint,range_argument)); -END_ENTITY; - -(* Implicit interfaced from: mathematical_functions_schema *) -ENTITY function_application - SUBTYPE OF (multiple_arity_generic_expression); - func : maths_function_select; - arguments : LIST [1:?] OF maths_expression; -DERIVE - SELF\multiple_arity_generic_expression.operands : LIST [2:?] OF generic_expression - := [convert_to_maths_function(func)] + convert_to_operands(arguments); -WHERE - WR1: function_applicability(func, arguments); -END_ENTITY; -(* USED FROM (solid_shape_element_schema); *) -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; -(* USED FROM (solid_shape_element_schema); *) -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; - -(* Implicit interfaced from: mathematical_functions_schema *) -ENTITY constant_function - SUBTYPE OF (maths_function, generic_literal); - sole_output : maths_value; - source_of_domain : maths_space_or_function; -WHERE - WR1: no_cyclic_domain_reference(source_of_domain, [SELF]); - WR2: expression_is_constant(domain_from(source_of_domain)); -END_ENTITY; -(* USED FROM (representation_schema); *) - 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; - -(* Implicit interfaced from: mathematical_functions_schema *) -ENTITY parallel_composed_function - SUBTYPE OF (maths_function, multiple_arity_generic_expression); - source_of_domain : maths_space_or_function; - prep_functions : LIST [1:?] OF maths_function; - final_function : maths_function_select; -DERIVE - SELF\multiple_arity_generic_expression.operands : LIST [2:?] of generic_expression - := convert_to_operands_prcmfn(source_of_domain, prep_functions, final_function); -WHERE - WR1: no_cyclic_domain_reference(source_of_domain, [SELF]); - WR2: expression_is_constant(domain_from(source_of_domain)); - WR3: parallel_composed_function_domain_check(domain_from(source_of_domain), - prep_functions); - WR4: parallel_composed_function_composability_check(prep_functions, final_function); -END_ENTITY; -(* USED FROM (aic_curve_swept_solid); *) - ENTITY curve_swept_solid_shape_representation - SUBTYPE OF (shape_representation); - WHERE - WR1: SIZEOF (QUERY (it <* SELF.items | - NOT (SIZEOF (['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SWEPT_AREA_SOLID', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SWEPT_DISK_SOLID', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MAPPED_ITEM', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.AXIS2_PLACEMENT_3D'] * - TYPEOF(it)) = 1))) = 0; - WR2: SIZEOF (QUERY (it <* SELF.items | - SIZEOF(['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SWEPT_AREA_SOLID', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SWEPT_DISK_SOLID', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MAPPED_ITEM'] * TYPEOF(it)) =1 )) > 0; - WR3: SIZEOF (QUERY (mi <* QUERY (it <* items | - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MAPPED_ITEM' IN TYPEOF(it)) | - NOT ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 | - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SURFACE_CURVE_SWEPT_AREA_SOLID' IN - TYPEOF(it)) | - NOT(('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SURFACE_CURVE' IN - TYPEOF(scsas\surface_curve_swept_area_solid.directrix)) OR - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PCURVE' IN - TYPEOF(scsas\surface_curve_swept_area_solid.directrix))))) = 0; - END_ENTITY; -(* USED FROM (aic_manifold_subsurface); *) - ENTITY manifold_subsurface_shape_representation - SUBTYPE OF (shape_representation); - WHERE - WR1: SIZEOF (QUERY (it <* SELF.items | - NOT (SIZEOF (['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CONNECTED_FACE_SUB_SET', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MAPPED_ITEM', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.AXIS2_PLACEMENT_3D'] * - TYPEOF(it)) = 1))) = 0; - WR2: SIZEOF (QUERY (it <* SELF.items | - SIZEOF(['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CONNECTED_FACE_SUB_SET', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MAPPED_ITEM'] * TYPEOF(it)) =1 )) > 0; - WR3: SIZEOF (QUERY (mi <* QUERY (it <* items | - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MAPPED_ITEM' IN TYPEOF(it)) | - NOT ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MANIFOLD_SUBSURFACE_SHAPE_REPRESENTATION' IN - TYPEOF(mi\mapped_item.mapping_source. - mapped_representation)))) = 0; - WR4: SIZEOF (QUERY (cfss <* QUERY (it <* SELF.items | - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CONNECTED_FACE_SUB_SET' IN TYPEOF(it)) | - NOT('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.OPEN_SHELL' IN TYPEOF(cfss)))) = 0; - WR5: SIZEOF (QUERY (cfss <* QUERY (it <* SELF.items | - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CONNECTED_FACE_SUB_SET' IN TYPEOF(it)) | - NOT( (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.ADVANCED_FACE' IN TYPEOF(fac)))) = 0) - ))) = 0; - WR6: SIZEOF (QUERY (cfss <* QUERY (it <* SELF.items | - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 | - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CONNECTED_FACE_SUB_SET' IN TYPEOF(it)) | - NOT (SIZEOF (QUERY(fcs <* cfss\connected_face_set.cfs_faces | - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SUBFACE' IN TYPEOF(fcs)) AND - NOT (SIZEOF(QUERY (elp_fbnds <* QUERY (bnds <* fcs.bounds | - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.EDGE_LOOP' IN TYPEOF(bnds.bound)) | - NOT (SIZEOF (QUERY (oe <* elp_fbnds.bound\path.edge_list | - NOT(('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.EDGE_CURVE' IN - TYPEOF(oe.edge_element)) OR - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SUBEDGE' IN - TYPEOF(oe.edge_element)) ))) = 0 - ))) = 0 - ))) = 0 - ))) = 0; - WR8: SIZEOF (QUERY (cfss <* QUERY (it <* SELF.items | - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CONNECTED_FACE_SUB_SET' IN TYPEOF(it)) | - NOT (SIZEOF (QUERY(fcs <* cfss\connected_face_set.cfs_faces | - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SUBFACE' IN TYPEOF(fcs)) AND - NOT (SIZEOF(QUERY (elp_fbnds <* QUERY (bnds <* fcs.bounds | - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.EDGE_LOOP' IN TYPEOF(bnds.bound)) | - NOT (SIZEOF (QUERY (oe <* elp_fbnds.bound\path.edge_list | - NOT(('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.VERTEX_POINT' IN TYPEOF(oe.edge_start)) - AND ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.VERTEX_POINT' IN - TYPEOF(oe.edge_end)) - ))) = 0 - ))) = 0 - ))) = 0 - ))) = 0; - WR9: SIZEOF (QUERY (cfss <* QUERY (it <* SELF.items | - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CONNECTED_FACE_SUB_SET' IN TYPEOF(it)) | - NOT (SIZEOF (QUERY(fcs <* cfss\connected_face_set.cfs_faces | - ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SUBFACE' IN TYPEOF(fcs)) AND - ( NOT (SIZEOF(QUERY (bnds <* fcs.bounds | - NOT (SIZEOF (['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.EDGE_LOOP', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.VERTEX_LOOP'] * - TYPEOF(bnds.bound)) = 1 ) - )) = 0) - ))) = 0 - ))) = 0; - WR10: SIZEOF (QUERY (cfss <* QUERY (it <* SELF.items | - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CONNECTED_FACE_SUB_SET' IN TYPEOF(it)) | - NOT (SIZEOF (QUERY(fcs <* cfss\connected_face_set.cfs_faces | - ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SUBFACE' IN TYPEOF(fcs)) AND - ( NOT (SIZEOF(QUERY (elp_fbnds <* QUERY (bnds <* fcs.bounds | - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.EDGE_LOOP' IN TYPEOF(bnds.bound)) | - NOT (SIZEOF (QUERY (oe <* elp_fbnds.bound\path.edge_list | - NOT (SIZEOF (['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LINE', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CONIC', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.POLYLINE', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SURFACE_CURVE', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 | - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CONNECTED_FACE_SUB_SET' IN TYPEOF(it)) | - NOT (SIZEOF (QUERY(fcs <* cfss\connected_face_set.cfs_faces | - ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SUBFACE' IN TYPEOF(fcs)) AND - (NOT (SIZEOF(QUERY (elp_fbnds <* QUERY (bnds <* fcs.bounds | - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.EDGE_LOOP' IN TYPEOF(bnds.bound)) | - NOT (SIZEOF (QUERY (oe <* elp_fbnds.bound\path.edge_list | - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PCURVE' IN - TYPEOF(sc_ag)))) = 0))) - )) = 0 - ))) = 0 - )))) = 0 - ))) = 0; - WR12: SIZEOF (QUERY (cfss <* QUERY (it <* SELF.items | - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CONNECTED_FACE_SUB_SET' IN TYPEOF(it)) | - NOT (SIZEOF (QUERY(fcs <* cfss\connected_face_set.cfs_faces | - ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SUBFACE' IN TYPEOF(fcs)) AND - (NOT (SIZEOF(QUERY (elp_fbnds <* QUERY (bnds <* fcs.bounds | - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.EDGE_LOOP' IN TYPEOF(bnds.bound)) | - NOT (SIZEOF (QUERY (oe <* elp_fbnds.bound\path.edge_list | - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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; - -(* Implicit interfaced from: mathematical_functions_schema *) -ENTITY repackaging_function - SUBTYPE OF (maths_function, unary_generic_expression); - SELF\unary_generic_expression.operand : maths_function; - input_repack : repackage_options; - output_repack : repackage_options; - selected_output : nonnegative_integer; -WHERE - WR1: (input_repack <> ro_wrap_as_tuple) OR - ((space_dimension(operand.domain) = 1) AND - ((schema_prefix + 'TUPLE_SPACE') IN TYPEOF (factor1(operand.domain)))); - WR2: (output_repack <> ro_unwrap_tuple) OR - ((space_dimension(operand.range) = 1) AND - ((schema_prefix + 'TUPLE_SPACE') IN TYPEOF (factor1(operand.range)))); - WR3: selected_output <= space_dimension( repackage( - operand.range, output_repack)); -END_ENTITY; -(* USED FROM (aic_advanced_brep); *) -ENTITY advanced_brep_shape_representation - SUBTYPE OF ( shape_representation ); - WHERE -WR1 : -SIZEOF ( -QUERY ( it <* SELF.items| NOT ( SIZEOF ([ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MANIFOLD_SOLID_BREP', 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.FACETED_BREP', 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MAPPED_ITEM', 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.AXIS2_PLACEMENT_3D' ] * TYPEOF (it)) = 1) )) = 0; -WR2 : -SIZEOF ( -QUERY ( it <* SELF.items| ( SIZEOF ([ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MANIFOLD_SOLID_BREP', 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MAPPED_ITEM' ] * TYPEOF (it)) = 1) )) > 0; -WR3 : -SIZEOF ( -QUERY ( msb <* -QUERY ( it <* SELF.items| ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.ADVANCED_FACE' IN TYPEOF (fcs)) )) = 0) )) = 0) )) = 0; -WR4 : -SIZEOF ( -QUERY ( msb <* -QUERY ( it <* items| ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MANIFOLD_SOLID_BREP' IN TYPEOF (it)) )| ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.ORIENTED_CLOSED_SHELL' IN TYPEOF (msb\manifold_solid_brep.outer)) )) = 0; -WR5 : -SIZEOF ( -QUERY ( brv <* -QUERY ( it <* items| ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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| ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MAPPED_ITEM' IN TYPEOF (it)) )| NOT ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.ADVANCED_BREP_SHAPE_REPRESENTATION' IN TYPEOF (mi\mapped_item.mapping_source.mapped_representation)) )) = 0; - END_ENTITY ; - -(* Implicit interfaced from: mathematical_functions_schema *) -ENTITY reindexed_array_function - SUBTYPE OF (maths_function, unary_generic_expression); - SELF\unary_generic_expression.operand : maths_function; - starting_indices : LIST [1:?] OF INTEGER; -WHERE - WR1: function_is_array(SELF\unary_generic_expression.operand); - WR2: SIZEOF(starting_indices) = SIZEOF(shape_of_array( - SELF\unary_generic_expression.operand)); -END_ENTITY; - -(* Implicit interfaced from: mathematical_functions_schema *) -ENTITY series_composed_function - SUBTYPE OF (maths_function, multiple_arity_generic_expression); - SELF\multiple_arity_generic_expression.operands : LIST [2:?] of maths_function; -WHERE - WR1: composable_sequence(SELF\multiple_arity_generic_expression.operands); -END_ENTITY; - -(* Implicit interfaced from: mathematical_functions_schema *) -ENTITY homogeneous_linear_function - SUBTYPE OF (maths_function, unary_generic_expression); - SELF\unary_generic_expression.operand : maths_function; - sum_index : one_or_two; -DERIVE - mat : maths_function := SELF\unary_generic_expression.operand; -WHERE - WR1: function_is_2d_table(mat); - WR2: (space_dimension(mat.range) = 1) AND - subspace_of_es(factor1(mat.range),es_numbers); -END_ENTITY; - -(* Implicit interfaced from: mathematical_functions_schema *) -ENTITY partial_derivative_expression - SUBTYPE OF (unary_generic_expression); - d_variables : LIST [1:?] OF maths_variable; - extension : extension_options; -DERIVE - derivand : generic_expression := SELF\unary_generic_expression.operand; -WHERE - WR1: has_values_space (derivand); - WR2: space_is_continuum (values_space_of (derivand)); - WR3: SIZEOF (QUERY (vbl <* d_variables | (NOT subspace_of (values_space_of (vbl), - the_reals)) AND (NOT subspace_of (values_space_of (vbl), the_complex_numbers)) - )) = 0; -END_ENTITY; - -(* Implicit interfaced from: mathematical_functions_schema *) -ENTITY polar_complex_number_region - SUBTYPE OF (maths_space, generic_literal); - centre : complex_number_literal; - distance_constraint : real_interval; - direction_constraint : finite_real_interval; -WHERE - WR1: min_exists(distance_constraint) AND (real_min(distance_constraint) >= 0.0); - WR2: {-PI <= direction_constraint.min < PI}; - WR3: direction_constraint.max - direction_constraint.min <= 2.0*PI; - WR4: (direction_constraint.max - direction_constraint.min < 2.0*PI) OR - (direction_constraint.min_closure = open); - WR5: (direction_constraint.max - direction_constraint.min < 2.0*PI) OR - (direction_constraint.max_closure = open) OR - (direction_constraint.min = -PI); - WR6: (real_min(distance_constraint) > 0.0) OR max_exists(distance_constraint) OR - (direction_constraint.max - direction_constraint.min < 2.0*PI) OR - (direction_constraint.max_closure = open); -END_ENTITY; -(* USED FROM (geometry_schema); *) -ENTITY surface_replica - SUBTYPE OF (surface); - parent_surface : surface; - transformation : cartesian_transformation_operator_3d; -WHERE - WR1: acyclic_surface_replica(SELF, parent_surface); -END_ENTITY; -(* USED FROM (representation_schema); *) - ENTITY mapped_item - SUBTYPE OF (representation_item); - mapping_source : representation_map; - mapping_target : representation_item; - WHERE - WR1: acyclic_mapped_representation(SELF); - END_ENTITY; - -(* Implicit interfaced from: mathematical_functions_schema *) -ENTITY definite_integral_expression - SUBTYPE OF (quantifier_expression); - lower_limit_neg_infinity : BOOLEAN; - upper_limit_pos_infinity : BOOLEAN; -DERIVE - integrand : generic_expression - := SELF\multiple_arity_generic_expression.operands[1]; - variable_of_integration : maths_variable - := SELF\multiple_arity_generic_expression.operands[2]; - SELF\quantifier_expression.variables : LIST [1:1] OF UNIQUE generic_variable - := [variable_of_integration]; -WHERE - WR1: has_values_space (integrand); - WR2: space_is_continuum (values_space_of (integrand)); - WR3: definite_integral_expr_check (SELF\multiple_arity_generic_expression.operands, - lower_limit_neg_infinity, upper_limit_pos_infinity); -END_ENTITY; -(* USED FROM (geometry_schema); *) -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; - -(* Implicit interfaced from: mathematical_functions_schema *) -ENTITY b_spline_basis - SUBTYPE OF (maths_function, generic_literal); - degree : nonnegative_integer; - repeated_knots : LIST [2:?] OF REAL; -DERIVE - order : positive_integer := degree + 1; - num_basis : positive_integer := SIZEOF (repeated_knots) - order; -WHERE - WR1: num_basis >= order; - WR2: nondecreasing(repeated_knots); - WR3: repeated_knots[order] < repeated_knots[num_basis+1]; -END_ENTITY; - -(* Implicit interfaced from: mathematical_functions_schema *) -ENTITY b_spline_function - SUBTYPE OF (maths_function, unary_generic_expression); - SELF\unary_generic_expression.operand : maths_function; - basis : LIST [1:?] OF b_spline_basis; -DERIVE - coef : maths_function := SELF\unary_generic_expression.operand; -WHERE - WR1: function_is_table(coef); - WR2: (space_dimension(coef.range) = 1) AND - (number_superspace_of(factor1(coef.range)) = the_reals); - WR3: SIZEOF (basis) <= - SIZEOF (shape_of_array(coef)); - WR4: compare_basis_and_coef(basis, coef); -END_ENTITY; - -(* Implicit interfaced from: mathematical_functions_schema *) -ENTITY rationalize_function - SUBTYPE OF (maths_function, unary_generic_expression); - SELF\unary_generic_expression.operand : maths_function; -DERIVE - fun : maths_function := SELF\unary_generic_expression.operand; -WHERE - WR1: (space_dimension(fun.domain) = 1) AND (space_dimension(fun.range) = 1); - WR2: number_tuple_subspace_check(factor1(fun.range)); - WR3: space_dimension(factor1(fun.range)) > 1; -END_ENTITY; - -(* Implicit interfaced from: mathematical_functions_schema *) -ENTITY partial_derivative_function - SUBTYPE OF (maths_function, unary_generic_expression); - SELF\unary_generic_expression.operand : maths_function; - d_variables : LIST [1:?] OF input_selector; - extension : extension_options; -DERIVE - derivand : maths_function := SELF\unary_generic_expression.operand; -WHERE - WR1: space_is_continuum (derivand.range); - WR2: partial_derivative_check (derivand.domain, d_variables); -END_ENTITY; - -(* Implicit interfaced from: mathematical_functions_schema *) -ENTITY definite_integral_function - SUBTYPE OF (maths_function, unary_generic_expression); - SELF\unary_generic_expression.operand : maths_function; - variable_of_integration : input_selector; - lower_limit_neg_infinity : BOOLEAN; - upper_limit_pos_infinity : BOOLEAN; -DERIVE - integrand : maths_function := SELF\unary_generic_expression.operand; -WHERE - WR1: space_is_continuum (integrand.range); - WR2: definite_integral_check (integrand.domain, variable_of_integration, - lower_limit_neg_infinity, upper_limit_pos_infinity); -END_ENTITY; - -(* Implicit interfaced from: mathematical_functions_schema *) -ENTITY abstracted_expression_function - SUBTYPE OF (maths_function, quantifier_expression); -DERIVE - SELF\quantifier_expression.variables : LIST [1:?] OF UNIQUE generic_variable := - remove_first(SELF\multiple_arity_generic_expression.operands); - expr : generic_expression := SELF\multiple_arity_generic_expression.operands[1]; -WHERE - WR1: SIZEOF (QUERY ( operand <* - SELF\multiple_arity_generic_expression.operands | NOT ( - has_values_space( operand)))) = 0; -END_ENTITY; -(* USED FROM (geometry_schema); *) -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 | 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.OUTER_BOUNDARY_CURVE' IN TYPEOF(temp))) = 0); - WR2: (NOT(implicit_outer)) OR ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.BOUNDED_SURFACE' IN TYPEOF(basis_surface)); - WR3: SIZEOF(QUERY(temp <* boundaries | 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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; -(* USED FROM (aic_machining_feature); *) -ENTITY circular_pattern - SUBTYPE OF (replicate_feature); - WHERE - WR1: (SIZEOF(QUERY ( pds <* QUERY ( pd <* USEDIN(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' - IN TYPEOF(pd)) ) | (NOT (SIZEOF(QUERY ( sa_occ <* USEDIN - (pds,'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE') | - ((SIZEOF(QUERY ( sdr <* QUERY ( sar <* USEDIN(sa_occ, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.' - + 'RELATING_SHAPE_ASPECT') | - ((('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP') - IN TYPEOF(sar))) ) | - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT' - IN TYPEOF(sdr.related_shape_aspect)) )) = 1)) )) <= 3)) )) = 0); - WR2: (SIZEOF(QUERY ( pd <* USEDIN(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(QUERY ( pdr <* USEDIN(pd, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') - IN TYPEOF(pdr.used_representation)) )) = 1)) )) = 0); - WR3: (SIZEOF(QUERY ( pd <* USEDIN(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' - IN TYPEOF(pdr.used_representation)) ) | - (NOT ((SIZEOF (impl_rep.used_representation.items) >= 3) - AND (SIZEOF(impl_rep.used_representation.items) <= 5))) )) - = 0)) )) = 0); - WR4: (SIZEOF(QUERY ( pd <* USEDIN(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' - IN TYPEOF(pdr.used_representation)) ) | - (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | - ((SIZEOF( - ['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * - TYPEOF(it)) = 2) AND (it.name = 'diameter')) )) <= 1)) )) - = 0)) )) = 0); - WR5: (SIZEOF(QUERY ( pd <* USEDIN(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' - IN TYPEOF(pdr.used_representation)) ) | - (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | - ((SIZEOF( - ['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PLANE_ANGLE_MEASURE_WITH_UNIT'] * - TYPEOF(it)) = 2) AND (it.name = 'base feature rotation')) )) - <= 1)) )) = 0)) )) = 0); - WR6: (SIZEOF(QUERY ( pd <* USEDIN(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' - IN TYPEOF(pdr.used_representation)) ) | - (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | - (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM' - IN TYPEOF(it)) AND - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.COUNT_MEASURE' - IN TYPEOF(it\measure_with_unit.value_component)) AND - (it.name = 'number of features')) )) = 1)) )) = 0)) )) = 0); - WR7: (SIZEOF(QUERY ( pd <* USEDIN(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' - IN TYPEOF(pdr.used_representation)) ) | - (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | - ((SIZEOF( - ['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PLANE_ANGLE_MEASURE_WITH_UNIT'] * - TYPEOF(it)) = 2) AND (it.name = 'angular spacing'))))= 1)) )) - = 0)) )) = 0); - WR8: (SIZEOF(QUERY ( pd <* USEDIN(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' - IN TYPEOF(pdr.used_representation)) ) | - (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | - (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PLACEMENT' - IN TYPEOF(it)) AND (it.name = 'orientation')) )) = 1)) )) - = 0)) )) = 0); -END_ENTITY; -- circular_pattern -(* USED FROM (product_structure_schema); *) -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, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PRODUCT_DEFINITION_RELATIONSHIP.' + - 'RELATED_PRODUCT_DEFINITION') | - pdr.relating_product_definition :=: - next_usage.relating_product_definition)) = 1); - WR5: SIZEOF (['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.NEXT_ASSEMBLY_USAGE_OCCURRENCE', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SPECIFIED_HIGHER_USAGE_OCCURRENCE'] - * TYPEOF(upper_usage)) = 1; -END_ENTITY; -(* USED FROM (aic_machining_feature); *) -ENTITY circular_closed_profile - SUBTYPE OF (shape_aspect); - WHERE - WR1: ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.FEATURE_COMPONENT_DEFINITION' - IN TYPEOF(SELF.of_shape.definition)); - WR2: (SIZEOF(QUERY ( pd <* USEDIN(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(QUERY ( pdr <* USEDIN(pd, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') - IN TYPEOF(pdr.used_representation)) )) = 1)) )) = 0); - WR3: (SIZEOF(QUERY ( pd <* USEDIN(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (( - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') - IN TYPEOF(pdr.used_representation)) ) | - (NOT (SIZEOF(impl_rep.used_representation.items) = 2)) )) - = 0)) )) = 0); - WR4: (SIZEOF(QUERY ( pd <* USEDIN(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') - IN TYPEOF(pdr.used_representation)) ) | - NOT(SIZEOF(QUERY ( it <* impl_rep.used_representation.items | - (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PLACEMENT' - IN TYPEOF(it)) - AND (it.name = 'orientation')) )) = 1) )) = 0)) )) = 0); - WR5: (SIZEOF(QUERY ( pd <* USEDIN(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') - IN TYPEOF(pdr.used_representation)) ) | - (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | - ((SIZEOF([ - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * - TYPEOF(it)) = 2) AND (it.name = 'diameter')) )) = 1)) )) - = 0)) )) = 0); -END_ENTITY; -- circular_closed_profile -(* USED FROM (Surface_conditions_mim); *) - ENTITY tactile_appearance_representation - SUBTYPE OF (representation); - WHERE - WR1: SIZEOF ( QUERY ( i <* SELF.items | SIZEOF ( - ['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.'+ 'MEASURE_REPRESENTATION_ITEM' , - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.'+ 'VALUE_RANGE']* TYPEOF ( i ) ) <>1 )) =0; - WR2: SIZEOF ( QUERY ( i <* SELF.items | name ='depth' ) ) <=1; - WR3: ( SIZEOF ( USEDIN ( SELF , - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.'+'PROPERTY_DEFINITION_REPRESENTATION.'+ - 'USED_REPRESENTATION' ) ) =1 ) AND ( SIZEOF ( QUERY ( pdr - <* USEDIN ( SELF , - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.'+'PROPERTY_DEFINITION_REPRESENTATION.'+ - 'USED_REPRESENTATION' ) | SIZEOF ( QUERY ( gpa <* USEDIN ( - pdr.definition , - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.'+'GENERAL_PROPERTY_ASSOCIATION.'+ - 'DERIVED_DEFINITION' ) | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.'+ 'GENERAL_PROPERTY' IN TYPEOF ( gpa.base_definition ) ) AND - ( gpa\general_property_association.base_definition\general_property.name ='surface_condition' ) ) ) =1 )) =1 ) ; - END_ENTITY; -(* USED FROM (Surface_conditions_mim); *) - ENTITY surface_texture_representation - SUBTYPE OF (representation); - WHERE - WR1: SIZEOF ( QUERY ( i <* SELF.items | SIZEOF ( - ['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.'+ 'MEASURE_REPRESENTATION_ITEM' , - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.'+ 'VALUE_RANGE' , 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.'+ 'DESCRIPTIVE_REPRESENTATION_ITEM']* TYPEOF ( i ) ) <>1 ) ) - =0; - WR2: ( SIZEOF ( QUERY ( i <* SELF.items | 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.'+ 'DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF ( i ) ) ) =1 ) - AND ( SIZEOF ( QUERY ( i <* SELF.items | ( - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.'+ 'DESCRIPTIVE_REPRESENTATION_ITEM' IN - TYPEOF ( i ) ) AND ( i.name = 'measuring method' ) ) ) =1 ); - WR3: SIZEOF ( QUERY ( i <* SELF.items | SIZEOF ( - ['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.'+ 'MEASURE_REPRESENTATION_ITEM' , - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.'+ 'VALUE_RANGE']* TYPEOF ( i ) ) =1 ) ) - >0; - WR4: ( SIZEOF ( USEDIN ( SELF , - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.'+'REPRESENTATION_RELATIONSHIP.'+ - 'REP_1' ) ) <=1 ) AND ( SIZEOF ( USEDIN ( SELF , - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.'+'REPRESENTATION_RELATIONSHIP.'+ - 'REP_2' ) ) =0 ) AND ( SIZEOF ( QUERY ( rr <* USEDIN ( SELF - , 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.'+'REPRESENTATION_RELATIONSHIP.'+ - 'REP_1' ) | rr.rep_2.name = 'measuring direction' ) ) = - SIZEOF ( USEDIN ( SELF , - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.'+'REPRESENTATION_RELATIONSHIP.'+ - 'REP_1' ) ) ) ; - WR5: ( SIZEOF ( USEDIN ( SELF , - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.'+'PROPERTY_DEFINITION_REPRESENTATION.'+ - 'USED_REPRESENTATION' ) ) =1 ) AND ( SIZEOF ( QUERY ( pdr - <* USEDIN ( SELF , - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.'+'PROPERTY_DEFINITION_REPRESENTATION.'+ - 'USED_REPRESENTATION' ) | SIZEOF ( QUERY ( gpa <* USEDIN ( - pdr.definition , - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.'+'GENERAL_PROPERTY_ASSOCIATION.'+ - 'DERIVED_DEFINITION' ) | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.'+ 'GENERAL_PROPERTY' IN TYPEOF ( gpa.base_definition ) ) AND - ( gpa\general_property_association.base_definition\general_property.name ='surface_condition' ) ) ) =1 ) - ) =1 ) ; - END_ENTITY; - -(* Implicit interfaced from: mathematical_functions_schema *) -ENTITY listed_data - SUBTYPE OF (explicit_table_function, generic_literal); - values : LIST [1:?] OF maths_value; - value_range : maths_space; -DERIVE - SELF\explicit_table_function.shape : LIST [1:?] OF positive_integer := - [SIZEOF (values)]; -WHERE - WR1: expression_is_constant(value_range); - WR2: SIZEOF (QUERY (val <* values | NOT (member_of( val, value_range)))) = 0; -END_ENTITY; -(* USED FROM (Surface_conditions_mim); *) - ENTITY contact_ratio_representation - SUBTYPE OF (representation); - WHERE - WR1: (SIZEOF ( SELF.items ) =1 ) AND - (SIZEOF ( QUERY ( i <* SELF.items | - (SIZEOF(['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.'+ 'MEASURE_REPRESENTATION_ITEM' , 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'VALUE_RANGE']* TYPEOF(i)) = 1) AND - (i.name = 'ratio value'))) = 1); - WR2: (SIZEOF ( QUERY ( pdr <* USEDIN ( SELF ,'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.'+'PROPERTY_DEFINITION_REPRESENTATION.'+ 'USED_REPRESENTATION' ) | - pdr\property_definition_representation.name = 'contact ratio reference' ) ) = 1 ) AND - (SIZEOF ( QUERY (pdr <* USEDIN ( SELF ,'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.'+'PROPERTY_DEFINITION_REPRESENTATION.'+ 'USED_REPRESENTATION' ) | - (pdr\property_definition_representation.name = 'contact ratio reference' ) AND - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.'+ 'PRODUCT_DEFINITION' IN TYPEOF ( pdr\property_definition_representation.definition\property_definition.definition)) - )) = 1); - WR3:(SIZEOF(USEDIN(SELF ,'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.'+'PROPERTY_DEFINITION_REPRESENTATION.'+ 'USED_REPRESENTATION')) = 1) AND - (SIZEOF ( QUERY ( pdr <* USEDIN ( SELF , - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.'+'PROPERTY_DEFINITION_REPRESENTATION.'+ - 'USED_REPRESENTATION' ) | SIZEOF ( QUERY ( gpa <* USEDIN (pdr.definition , - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.'+'GENERAL_PROPERTY_ASSOCIATION.'+ - 'DERIVED_DEFINITION' ) | ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.'+ 'GENERAL_PROPERTY' IN TYPEOF (gpa\general_property_association.base_definition ) ) AND - (gpa\general_property_association.base_definition\general_property.name ='surface_condition') - )) = 1 - )) = 1); - END_ENTITY; - -(* Implicit interfaced from: mathematical_functions_schema *) -(* Pruned SUPERTYPE *) -ENTITY linearized_table_function - - SUBTYPE OF (explicit_table_function, unary_generic_expression); - SELF\unary_generic_expression.operand : maths_function; - first : integer; -DERIVE - source : maths_function := SELF\unary_generic_expression.operand; -WHERE - WR1: function_is_1d_array(source); - WR2: member_of(first, source\maths_function.domain); -END_ENTITY; - -(* Implicit interfaced from: mathematical_functions_schema *) -ENTITY basic_sparse_matrix - SUBTYPE OF (explicit_table_function, multiple_arity_generic_expression); - SELF\multiple_arity_generic_expression.operands : LIST [3:3] OF maths_function; - default_entry : maths_value; - order : ordering_type; -DERIVE - index : maths_function := SELF\multiple_arity_generic_expression.operands[1]; - loc : maths_function := SELF\multiple_arity_generic_expression.operands[2]; - val : maths_function := SELF\multiple_arity_generic_expression.operands[3]; -WHERE - WR1: function_is_1d_table(index); - WR2: function_is_1d_table(loc); - WR3: function_is_1d_table(val); - WR4: check_sparse_index_domain(index.domain, index_base, shape, order); - WR5: check_sparse_index_to_loc(index.range, loc.domain); - WR6: loc.domain = val.domain; - WR7: check_sparse_loc_range(loc.range, index_base, shape, order); - WR8: member_of(default_entry, val.range); -END_ENTITY; -(* USED FROM (Shape_feature_mim); *) -ENTITY general_feature - SUBTYPE OF (shape_feature_definition); -WHERE - WR1: (SIZEOF(get_property_definition_representations(SELF)) <= 1) AND - (SIZEOF( QUERY( pdr <* get_property_definition_representations(SELF) | - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN - TYPEOF(pdr.used_representation) - )) <= 1); - WR2: SIZEOF( QUERY( sa <* get_shape_aspects(SELF) | - sa.description = 'course of travel occurrence')) = - SIZEOF( QUERY( sa <* get_shape_aspects(SELF) | - (sa.description = 'course of travel occurrence') AND - (SIZEOF( QUERY( sar <* USEDIN( sa, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_DEFINING_RELATIONSHIP' IN - TYPEOF(sar)) AND - (sar.name = 'course of travel') - )) = 1 ))); - WR3: SIZEOF( QUERY( sa <* get_shape_aspects(SELF) | - sa.description = 'course of travel occurrence')) = - SIZEOF( QUERY( sa <* get_shape_aspects(SELF) | - (sa.description = 'course of travel occurrence') AND - (SIZEOF( QUERY( sar <* USEDIN( sa, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_DEFINING_RELATIONSHIP' IN - TYPEOF(sar)) AND - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PATH_FEATURE_COMPONENT' IN - TYPEOF(sar.relating_shape_aspect)) - )) = 1 ))); - WR4: SIZEOF( QUERY( sa <* get_shape_aspects(SELF) | - sa.description = 'boundary occurrence')) = - SIZEOF( QUERY( sa <* get_shape_aspects(SELF) | - (sa.description = 'boundary occurrence') AND - (SIZEOF( QUERY( sar <* USEDIN( sa, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_DEFINING_RELATIONSHIP' IN - TYPEOF(sar)) AND - (sar.description = 'profile usage') - )) = 1 ))); - WR5: (SIZEOF( QUERY( sa <* get_shape_aspects(SELF) | - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.COMPOSITE_SHAPE_ASPECT' IN - TYPEOF(sa)) - )) <= 1 ) AND - (SIZEOF( QUERY( sa <* get_shape_aspects(SELF) | - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.COMPOSITE_SHAPE_ASPECT' IN - TYPEOF(sa)) AND - (sa.name = 'general compound feature') AND - (SIZEOF( QUERY( sar <* USEDIN( sa, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATING_SHAPE_ASPECT') | - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP' IN - TYPEOF(sar)) AND - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.INSTANCED_FEATURE' IN - TYPEOF(sar.related_shape_aspect)) - )) >= 2 ) - )) <= 1 ); -END_ENTITY; -(* USED FROM (explicit_constraint_schema); *) -ENTITY free_form_assignment - SUBTYPE OF (free_form_constraint); -WHERE - WR1: SIZEOF(QUERY(q <* SELF\free_form_constraint.constrained_elements | - q IN used_variables - (SELF\free_form_constraint.constraining_expression))) = 0; - WR2: SIZEOF(QUERY(q <* SELF\free_form_constraint.reference_elements | - NOT (q IN used_variables( - SELF\free_form_constraint.constraining_expression)))) = 0; - WR3: SIZEOF(SELF\free_form_constraint.reference_elements) >= 1; - WR4: SIZEOF(QUERY(q <* SELF\free_form_constraint.constrained_elements | - NOT (compatible_spaces(values_space_of( - SELF\free_form_constraint.constraining_expression), - q\maths_variable.values_space)))) = 0; -END_ENTITY; -(* USED FROM (Constructive_solid_geometry_2d_mim); *) - ENTITY single_boundary_csg_2d_shape_representation - SUBTYPE OF (single_area_csg_2d_shape_representation); - WHERE - WR1: SIZEOF(QUERY ( it <* SELF.items | - (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CSG_PRIMITIVE_SOLID_2D' IN TYPEOF(it)) - AND (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PRIMITIVE_2D_WITH_INNER_BOUNDARY') IN - TYPEOF(it\csg_primitive_solid_2d.tree_root_expression))) )) = 0; - END_ENTITY; -(* USED FROM (Default_tolerance_mim); *) -ENTITY default_tolerance_table_cell - SUBTYPE OF (compound_representation_item); -WHERE - WR1: SIZEOF(QUERY( x <* USEDIN(SELF,'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'REPRESENTATION.ITEMS') | 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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; - -(* Implicit interfaced from: procedural_model_schema *) -ENTITY procedural_representation - SUBTYPE OF (representation); - SELF\representation.items : - SET[1:?] OF procedural_representation_sequence; -END_ENTITY; - -(* Implicit interfaced from: procedural_model_schema *) -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; -(* REFERENCE FROM (procedural_model_schema); *) -ENTITY explicit_procedural_representation_item_relationship - SUBTYPE OF (representation_item_relationship); - SELF\representation_item_relationship.relating_representation_item : - procedural_representation_sequence; -WHERE - WR1 : NOT ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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; -(* USED FROM (Default_tolerance_mim); *) -ENTITY default_tolerance_table - SUBTYPE OF (representation); -WHERE - WR1: SIZEOF( QUERY( i <* SELF.items | NOT('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.DEFAULT_TOLERANCE_TABLE_CELL' IN TYPEOF(i)) )) = 0; - WR2: (SIZEOF( QUERY( rr <* USEDIN(SELF,'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'REPRESENTATION_RELATIONSHIP.REP_1') | rr.name < 'general tolerance definition' )) = 0) AND (SIZEOF( QUERY( rr <* USEDIN(SELF,'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'REPRESENTATION_RELATIONSHIP.REP_1') | (rr.name = 'general tolerance definition') AND (rr.rep_2.name < 'default tolerance') )) = 0) AND (SIZEOF( USEDIN(SELF,'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'REPRESENTATION_RELATIONSHIP.REP_2') ) = 0); -END_ENTITY; -(* USED FROM (Compound_shape_representation_mim); *) - ENTITY compound_shape_representation - SUBTYPE OF (shape_representation); - WHERE - WR1: ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 ( - ['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.'+ 'EDGE_BASED_WIREFRAME_MODEL' , - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.'+ 'FACE_BASED_SURFACE_MODEL' , - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.'+ 'MAPPED_ITEM' , 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.'+ - 'AXIS2_PLACEMENT_3D']* TYPEOF ( cbsr_i ) ) <>1 ) ) =0; - WR3: SIZEOF ( QUERY ( cbsr_i <* SELF.items | SIZEOF ( - ['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.'+ 'EDGE_BASED_WIREFRAME_MODEL' , - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.'+ 'FACE_BASED_SURFACE_MODEL' , - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.'+ 'MAPPED_ITEM']* TYPEOF ( cbsr_i ) ) =1 ) ) >0; - WR4: SIZEOF ( QUERY ( cbsr_i <* SELF.items | ( - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.'+ 'MAPPED_ITEM' IN TYPEOF ( cbsr_i ) ) - AND ( SIZEOF ( ['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.'+ - 'COMPOUND_SHAPE_REPRESENTATION' , 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.'+ - 'EDGE_BASED_WIREFRAME_SHAPE_REPRESENTATION' , - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.'+ - 'NON_MANIFOLD_SURFACE_SHAPE_REPRESENTATION']* TYPEOF ( - cbsr_i\ mapped_item.mapping_source ) ) <>1 ) ) ) =0; - END_ENTITY; -(* USED FROM (Constructive_solid_geometry_2d_mim); *) - ENTITY single_area_csg_2d_shape_representation - SUBTYPE OF (csg_2d_shape_representation); - SELF\representation.items : SET[1:?] OF csg_2d_area_select; - WHERE - WR1: SIZEOF (QUERY (it <* SELF.items| - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MAPPED_ITEM' - IN TYPEOF(it)) )) = 0; - WR2: SIZEOF (QUERY (it <* SELF.items| - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CSG_SOLID_2D' - IN TYPEOF(it)) )) = 1; - END_ENTITY; -(* USED FROM (Constructive_solid_geometry_2d_mim); *) - ENTITY primitive_2d_with_inner_boundary - SUBTYPE OF (complex_area, compound_representation_item); - - (* removed : SELF\compound_representation_item.inner_boundary : COMPOUND_INNER_AREA_BOUNDARY *) - DERIVE - inner_boundary : COMPOUND_INNER_AREA_BOUNDARY := SELF\compound_representation_item.item_element; -- ITEM_ELEMENT : This ATTRIBUTE was RENAMED in the EXPRESS E2 source, this is the new name implemented as DERIVE - WHERE - WR1: SIZEOF(['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CIRCULAR_AREA', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.ELLIPTIC_AREA', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.RECTANGULAR_AREA', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.POLYGONAL_AREA', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.AREA_WITH_OUTER_BOUNDARY', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PATH_AREA_WITH_PARAMETERS'] * TYPEOF(SELF)) > 0; - WR2: SIZEOF(QUERY(inner <* inner_boundary | - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PRIMITIVE_2D_WITH_INNER_BOUNDARY' IN TYPEOF(inner))) = 0; - WR3: open_path_based_inner_boundary(inner_boundary); - END_ENTITY; -(* USED FROM (Externally_conditioned_data_quality_criteria_mim); *) - ENTITY externally_conditioned_data_quality_criterion - SUBTYPE OF(Data_quality_criterion,Data_quality_measurement_requirement); - WHERE - WR1 : SIZEOF(USEDIN(SELF, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.'+ - 'DATA_QUALITY_CRITERION_ASSESSMENT_ASSOCIATION.'+ - 'CRITERION')) = 0; - WR2 : SIZEOF(QUERY(i1<*bag_to_set( USEDIN(SELF,'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.'+ - 'REPRESENTATION_ITEM_RELATIONSHIP.'+ 'RELATED_REPRESENTATION_ITEM'))| - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.'+ 'DATA_QUALITY_CRITERION_MEASUREMENT_ASSOCIATION' - IN TYPEOF(i1))) = 0; - WR3 : SIZEOF(QUERY(i1<*bag_to_set( USEDIN(SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.'+ - 'REPRESENTATION_ITEM_RELATIONSHIP.'+ 'RELATING_REPRESENTATION_ITEM'))| - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.'+ 'DATA_QUALITY_CRITERION_MEASUREMENT_ASSOCIATION' - IN TYPEOF(i1))) = 0; - END_ENTITY; -(* USED FROM (Constructive_solid_geometry_2d_mim); *) - ENTITY csg_2d_shape_representation - SUBTYPE OF (shape_representation); - SELF\representation.items : SET[1:?] OF csg_2d_shape_select; - WHERE - WR1: SELF.context_of_items\geometric_representation_context.coordinate_space_dimension = 2; - WR2: SIZEOF(QUERY ( it <* SELF.items | - (SIZEOF(['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CSG_SOLID'] - * TYPEOF(it)) = 1) - OR - (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MAPPED_ITEM' - IN TYPEOF(it)) AND - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + - 'CSG_2D_SHAPE_REPRESENTATION' - IN TYPEOF(it\mapped_item.mapping_source.mapped_representation))) - )) >= 1; - WR3: SIZEOF(QUERY ( it <* SELF.items | - (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MAPPED_ITEM' - IN TYPEOF(it)) AND (NOT (( - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + - 'CSG_2D_SHAPE_REPRESENTATION') - IN TYPEOF(it\mapped_item.mapping_source.mapped_representation)))) )) = 0; - -- TODO does not work with the new introduced subtypes - -- WR4: SIZEOF(TYPEOF(SELF) - TYPEOF(SELF\shape_representation || - -- SELF\csg_2d_shape_representation || SELF\representation)) = 0; - END_ENTITY; -(* USED FROM (Constructive_solid_geometry_2d_mim); *) - ENTITY csg_solid_2d - SUBTYPE OF (csg_solid); - SELF\csg_solid.tree_root_expression : csg_select_2d; - WHERE - WR1: valid_csg_2d_primitives(SELF); - END_ENTITY; -(* USED FROM (Process_plan_mim); *) -ENTITY process_plan - SUBTYPE OF (action); -WHERE - WR1: SIZEOF( QUERY( ar <* USEDIN(SELF,'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + - 'ACTION_RELATIONSHIP.RELATED_ACTION') | - SIZEOF(['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROCESS_PLAN', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PRODUCT_PROCESS_PLAN'] * - TYPEOF(ar.relating_action)) <> 1 - )) = 0; - - WR2: SIZEOF( QUERY( ar <* USEDIN(SELF,'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + - 'ACTION_RELATIONSHIP.RELATING_ACTION') | - (SIZEOF(['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROCESS_PLAN', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PRODUCT_PROCESS_PLAN'] * - TYPEOF(ar.related_action)) = 1) OR - ((ar.name = 'process operation occurrence') AND - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROCESS_OPERATION' IN - TYPEOF(ar.related_action.chosen_method))) - )) = - SIZEOF(USEDIN(SELF,'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + - 'ACTION_RELATIONSHIP.RELATING_ACTION')); -END_ENTITY; -(* USED FROM (Process_plan_mim); *) -ENTITY process_operation - SUBTYPE OF (action_method); -WHERE - WR1: SIZEOF( QUERY( amr <* USEDIN(SELF,'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.ACTION_METHOD_RELATIONSHIP.' + - 'RELATING_METHOD') | - NOT('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROCESS_OPERATION' IN - TYPEOF(amr\action_method_relationship.related_method)) OR - (SELF :=: amr\action_method_relationship.related_method) - )) = 0; - WR2: SIZEOF( QUERY( amr <* USEDIN(SELF,'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.ACTION_METHOD_RELATIONSHIP.' + - 'RELATED_METHOD') | - NOT('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROCESS_OPERATION' IN - TYPEOF(amr\action_method_relationship.relating_method)) OR - (SELF :=: amr\action_method_relationship.relating_method) - )) = 0; -END_ENTITY; -(* USED FROM (Form_feature_in_panel_mim); *) -ENTITY locator - SUBTYPE OF (feature_definition); -WHERE - WR1: SIZEOF( QUERY( pdr <* get_property_definition_representations(SELF) | - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN - TYPEOF(pdr.used_representation)) AND - NOT ({2 <= SIZEOF(pdr.used_representation.items) <= 5}) - )) = 0; - WR2: SIZEOF( QUERY( pdr <* get_property_definition_representations(SELF) | - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN - TYPEOF(pdr.used_representation)) AND - (SIZEOF( QUERY( i <* pdr.used_representation.items | - (i.name='diameter') AND - (SIZEOF(['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', -'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT']*TYPEOF(i) - ) = 2) - )) = 1) - )) = 1; - WR3: SIZEOF( QUERY( pdr <* get_property_definition_representations(SELF) | - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN - TYPEOF(pdr.used_representation)) AND - (SIZEOF( QUERY( i <* pdr.used_representation.items | - (i.name='tip radius') AND - (SIZEOF(['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', -'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT']*TYPEOF(i) - ) = 2) - )) = 1) - )) <= 1; - WR4: SIZEOF( QUERY( pdr <* get_property_definition_representations(SELF) | - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN - TYPEOF(pdr.used_representation)) AND - (SIZEOF( QUERY( i <* pdr.used_representation.items | - (i.name='tip angle') AND - (SIZEOF(['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', -'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PLANE_ANGLE_MEASURE_WITH_UNIT']*TYPEOF(i) - ) = 2) - )) = 1) - )) = 1; - WR5: SIZEOF( QUERY( pdr <* get_property_definition_representations(SELF) | - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN - TYPEOF(pdr.used_representation)) AND - (SIZEOF( QUERY( i <* pdr.used_representation.items | - (i.name='base radius') AND - (SIZEOF(['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', -'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT']*TYPEOF(i) - ) = 2) - )) = 1) - )) <= 1; -END_ENTITY; -(* USED FROM (Form_feature_in_panel_mim); *) -ENTITY joggle_termination - SUBTYPE OF (shape_aspect); -WHERE - WR1: 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.FEATURE_COMPONENT_DEFINITION' IN - TYPEOF(SELF.of_shape.definition); - WR2: SELF.description IN ['value termination','face termination']; - WR3: (SELF.description = 'value termination') XOR - (SIZEOF( QUERY( pdr <* get_shape_aspect_property_definition_representations(SELF) | - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN - TYPEOF(pdr.used_representation)) - )) = 0); - WR4: (SELF.description <> 'value termination') OR - (SIZEOF( QUERY( pdr <* get_shape_aspect_property_definition_representations(SELF) | - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN - TYPEOF(pdr.used_representation)) AND - (SIZEOF(pdr.used_representation.items) = 2) - )) = 1); - WR5: (SELF.description <> 'value termination') OR - (SIZEOF( QUERY( pdr <* get_shape_aspect_property_definition_representations(SELF) | - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN - TYPEOF(pdr.used_representation)) AND - (SIZEOF( QUERY( i <* pdr.used_representation.items | - (i.name='depth') AND - (SIZEOF(['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', -'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT']*TYPEOF(i) - ) = 2) - )) = 1) - )) = 1); - WR6: (SELF.description <> 'value termination') OR - (SIZEOF( QUERY( pdr <* get_shape_aspect_property_definition_representations(SELF) | - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN - TYPEOF(pdr.used_representation)) AND - (SIZEOF( QUERY( i <* pdr.used_representation.items | - (i.name='angle') AND - (SIZEOF(['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', -'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PLANE_ANGLE_MEASURE_WITH_UNIT']*TYPEOF(i) - ) = 2) - )) = 1) - )) = 1); - WR7: SIZEOF( QUERY( sar <* USEDIN( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + - 'SHAPE_ASPECT_RELATIONSHIP.RELATING_SHAPE_ASPECT') | - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP' IN - TYPEOF(sar)) AND - (sar.name = 'joggle termination usage') AND - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.JOGGLE' IN TYPEOF(sar.related_shape_aspect.of_shape.definition)) AND - (sar.related_shape_aspect.of_shape.definition\characterized_object.name = 'termination') AND - (sar.related_shape_aspect.of_shape.definition\characterized_object.description = 'joggle termination occurrence') - )) = 1; -END_ENTITY; -(* USED FROM (Form_feature_in_panel_mim); *) -ENTITY joggle - SUBTYPE OF (feature_definition); -WHERE - WR1: SIZEOF( QUERY( pdr <* get_property_definition_representations(SELF) | - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN - TYPEOF(pdr.used_representation)) AND - NOT({5 <= SIZEOF(pdr.used_representation.items) <= 10}) - )) = 0; - WR2: SIZEOF( QUERY( pdr <* get_property_definition_representations(SELF) | - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN - TYPEOF(pdr.used_representation)) AND - (SIZEOF( QUERY( i <* pdr.used_representation.items | - NOT(i.name IN ['orientation','base radius 1','base radius 2','direction angle 1', - 'direction angle 2','height','slope angle 1','slope angle 2', - 'top radius 1','top radius 2']) - )) > 0) - )) = 0; - WR3: SIZEOF( QUERY( pdr <* get_property_definition_representations(SELF) | - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN - TYPEOF(pdr.used_representation)) AND - (SIZEOF( QUERY( i <* pdr.used_representation.items | - (i.name='direction angle 1') AND - (SIZEOF(['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', -'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PLANE_ANGLE_MEASURE_WITH_UNIT']*TYPEOF(i) - ) = 2) - )) = 1) - )) = 1; - WR4: SIZEOF( QUERY( pdr <* get_property_definition_representations(SELF) | - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN - TYPEOF(pdr.used_representation)) AND - (SIZEOF( QUERY( i <* pdr.used_representation.items | - (i.name='direction angle 2') AND - (SIZEOF(['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', -'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PLANE_ANGLE_MEASURE_WITH_UNIT']*TYPEOF(i) - ) = 2) - )) = 1) - )) = 1; - WR5: SIZEOF( QUERY( pdr <* get_property_definition_representations(SELF) | - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN - TYPEOF(pdr.used_representation)) AND - (SIZEOF( QUERY( i <* pdr.used_representation.items | - (i.name='height') AND - (SIZEOF(['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', -'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT']*TYPEOF(i) - ) = 2) - )) = 1) - )) <= 1; - WR6: SIZEOF( QUERY( pdr <* get_property_definition_representations(SELF) | - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN - TYPEOF(pdr.used_representation)) AND - (SIZEOF( QUERY( i <* pdr.used_representation.items | - (i.name='slope angle 1') AND - (SIZEOF(['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', -'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PLANE_ANGLE_MEASURE_WITH_UNIT']*TYPEOF(i) - ) = 2) - )) = 1) - )) = 1; - WR7: SIZEOF( QUERY( pdr <* get_property_definition_representations(SELF) | - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN - TYPEOF(pdr.used_representation)) AND - (SIZEOF( QUERY( i <* pdr.used_representation.items | - (i.name='slope angle 2') AND - (SIZEOF(['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', -'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PLANE_ANGLE_MEASURE_WITH_UNIT']*TYPEOF(i) - ) = 2) - )) = 1) - )) = 1; - WR8: SIZEOF( QUERY( sa <* get_shape_aspects(SELF) | - (sa.name = 'defining path') AND - (sa.description = 'path feature component occurrence') AND - (SIZEOF( QUERY( sar <* USEDIN( sa, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + - 'SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_DEFINING_RELATIONSHIP' IN - TYPEOF(sar)) AND - (sar.description = 'path feature component usage') AND - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PATH_FEATURE_COMPONENT' IN - TYPEOF(sar.relating_shape_aspect)) AND - (sar.relating_shape_aspect.description = 'linear') - )) = 1 ) - )) = 1; - WR9: SIZEOF( QUERY( sa <* get_shape_aspects(SELF) | - (sa.name = 'termination') AND - (sa.description = 'joggle termination occurrence') AND - (SIZEOF( QUERY( sar <* USEDIN( sa, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + - 'SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP' IN - TYPEOF(sar)) AND - (sar.name = 'joggle termination usage') AND - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.JOGGLE_TERMINATION' IN - TYPEOF(sar.relating_shape_aspect)) - )) = 1 ) - )) = 1; - WR10: SIZEOF( QUERY( pdr <* get_property_definition_representations(SELF) | - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN - TYPEOF(pdr.used_representation)) AND - (SIZEOF( QUERY( i <* pdr.used_representation.items | - (i.name='base radius 1') AND - (SIZEOF(['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', -'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT']*TYPEOF(i) - ) = 2) - )) = 1) - )) <= 1; - WR11: SIZEOF( QUERY( pdr <* get_property_definition_representations(SELF) | - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN - TYPEOF(pdr.used_representation)) AND - (SIZEOF( QUERY( i <* pdr.used_representation.items | - (i.name='base radius 2') AND - (SIZEOF(['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', -'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT']*TYPEOF(i) - ) = 2) - )) = 1) - )) <= 1; - WR12: SIZEOF( QUERY( pdr <* get_property_definition_representations(SELF) | - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN - TYPEOF(pdr.used_representation)) AND - (SIZEOF( QUERY( i <* pdr.used_representation.items | - (i.name='top radius 1') AND - (SIZEOF(['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', -'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT']*TYPEOF(i) - ) = 2) - )) = 1) - )) <= 1; - WR13: SIZEOF( QUERY( pdr <* get_property_definition_representations(SELF) | - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN - TYPEOF(pdr.used_representation)) AND - (SIZEOF( QUERY( i <* pdr.used_representation.items | - (i.name='top radius 2') AND - (SIZEOF(['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', -'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT']*TYPEOF(i) - ) = 2) - )) = 1) - )) <= 1; -END_ENTITY; -(* USED FROM (Form_feature_in_panel_mim); *) -ENTITY hole_in_panel - SUBTYPE OF (feature_definition); -WHERE - WR1: SIZEOF( QUERY( sa <* get_shape_aspects(SELF) | - (sa.name = 'hole profile') AND - (sa.description = 'closed profile occurrence') AND - (SIZEOF( QUERY( sar <* USEDIN( sa, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + - 'SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_DEFINING_RELATIONSHIP' IN - TYPEOF(sar)) AND - (sar.description = 'profile usage') AND - (SIZEOF(['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CIRCULAR_CLOSED_PROFILE', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.NGON_CLOSED_PROFILE', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.RECTANGULAR_CLOSED_PROFILE', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CLOSED_PATH_PROFILE'] - * TYPEOF(sar.relating_shape_aspect) - ) = 1 ) - )) = 1 ) - )) = 1; - WR2: SIZEOF( get_property_definition_representations(SELF)) = - SIZEOF( QUERY( pdr <* get_property_definition_representations(SELF) | - SIZEOF( pdr.used_representation.items) = 1)); -END_ENTITY; -(* USED FROM (Form_feature_in_panel_mim); *) -ENTITY feature_in_panel - SUBTYPE OF (feature_definition); -WHERE - WR1: SELF.description IN ['pocket','boss','stairstep']; - WR2: SIZEOF( QUERY( pdr <* get_property_definition_representations(SELF) | - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN - TYPEOF(pdr.used_representation)) AND - NOT ({2 <= SIZEOF(pdr.used_representation.items) <= 3}) - )) = 0; - WR3: SIZEOF( QUERY( pdr <* get_property_definition_representations(SELF) | - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN - TYPEOF(pdr.used_representation)) AND - (SIZEOF( QUERY( i <* pdr.used_representation.items | - NOT( i.name IN ['orientation','base radius','target radius']) - )) > 0) - )) = 0; - WR4: SIZEOF( QUERY( pdr <* get_property_definition_representations(SELF) | - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN - TYPEOF(pdr.used_representation)) AND - (SIZEOF( QUERY( i <* pdr.used_representation.items | - (i.name='base radius') AND - (SIZEOF(['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', -'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT']*TYPEOF(i) - ) = 2) - )) = 1) - )) = 1; - WR5: SIZEOF( QUERY( pdr <* get_property_definition_representations(SELF) | - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN - TYPEOF(pdr.used_representation)) AND - (SIZEOF( QUERY( i <* pdr.used_representation.items | - (i.name='target radius') AND - (SIZEOF(['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', -'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT']*TYPEOF(i) - ) = 2) - )) = 1) - )) = 1; - WR6: SIZEOF( QUERY( sa <* get_shape_aspects(SELF) | - (sa.name = 'base boundary') AND - (sa.description IN ['directed angle occurrence','closed profile occurrence']) - )) = 1; - WR7: SIZEOF( QUERY( sa <* get_shape_aspects(SELF) | - (sa.name = 'target boundary') AND - (sa.description IN ['directed angle occurrence','closed profile occurrence']) - )) = 1; - WR8: SIZEOF( QUERY( sa <* get_shape_aspects(SELF) | - (sa.description = 'directed angle occurrence') - )) <= 1; - WR9: SIZEOF( QUERY( sa <* get_shape_aspects(SELF) | - (sa.description = 'directed angle occurrence') AND - (SIZEOF( QUERY( sar <* USEDIN( sa, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + - 'SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_DEFINING_RELATIONSHIP' IN - TYPEOF(sar)) AND - (sar.name = 'directed angle usage') AND - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.DIRECTED_ANGLE' IN - TYPEOF(sar.relating_shape_aspect)) - )) = 1 ) - )) = - SIZEOF( QUERY( sa <* get_shape_aspects(SELF) | - (sa.description = 'directed angle occurrence'))); - WR10: SIZEOF( QUERY( sa <* get_shape_aspects(SELF) | - (sa.description = 'closed profile occurrence') AND - (SIZEOF( QUERY( sar <* USEDIN( sa, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + - 'SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_DEFINING_RELATIONSHIP' IN - TYPEOF(sar)) AND - (sar.description = 'profile usage') AND - (SIZEOF(['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CIRCULAR_CLOSED_PROFILE', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.NGON_CLOSED_PROFILE', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.RECTANGULAR_CLOSED_PROFILE', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CLOSED_PATH_PROFILE'] - * TYPEOF(sar.relating_shape_aspect) - ) = 1 ) - )) = 1 ) - )) = - SIZEOF( QUERY( sa <* get_shape_aspects(SELF) | - (sa.description = 'closed profile occurrence'))); - WR11: (SIZEOF( QUERY( pdr <* get_property_definition_representations(SELF) | - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.FACE_SHAPE_REPRESENTATION' IN - TYPEOF(pdr.used_representation) - )) <= 1) AND - (SIZEOF( QUERY( pdr <* get_property_definition_representations(SELF) | - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.FACE_SHAPE_REPRESENTATION' IN - TYPEOF(pdr.used_representation)) AND - NOT(pdr.used_representation.name = 'target face') - )) = 0); - WR12: (SIZEOF( QUERY( sa <* get_shape_aspects(SELF) | - (sa.name = 'target boundary') AND - (sa.description = 'directed angle occurrence') - )) = 0) OR - (SIZEOF( QUERY( pdr <* get_property_definition_representations(SELF) | - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.FACE_SHAPE_REPRESENTATION' IN - TYPEOF(pdr.used_representation)) - )) = 1); -END_ENTITY; -(* USED FROM (Form_feature_in_panel_mim); *) -ENTITY directed_angle - SUBTYPE OF (shape_aspect); -WHERE - WR1: 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.FEATURE_COMPONENT_DEFINITION' IN - TYPEOF(SELF.of_shape.definition); - WR2: SIZEOF( QUERY( pdr <* get_shape_aspect_property_definition_representations(SELF) | - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN - TYPEOF(pdr.used_representation)) - )) = 1; - WR3: SIZEOF( QUERY( pdr <* get_shape_aspect_property_definition_representations(SELF) | - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN - TYPEOF(pdr.used_representation)) AND - (SIZEOF(pdr.used_representation.items) = 1) - )) = 1; - WR4: SELF.description IN ['punch direction','profile normal','surface normal']; - WR5: SIZEOF( QUERY( pdr <* get_shape_aspect_property_definition_representations(SELF) | - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN - TYPEOF(pdr.used_representation)) AND - (SIZEOF( QUERY( i <* pdr.used_representation.items | - (i.name='angle') AND - (SIZEOF(['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', -'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PLANE_ANGLE_MEASURE_WITH_UNIT']*TYPEOF(i) - ) = 2) - )) = 1) - )) = 1; -END_ENTITY; -(* USED FROM (Form_feature_in_panel_mim); *) -ENTITY bead_end - SUBTYPE OF (shape_aspect); -WHERE - WR1: 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.FEATURE_COMPONENT_DEFINITION' IN - TYPEOF(SELF.of_shape.definition); - WR2: SELF.description IN ['linear','open','radiused']; - - WR3: (SELF.description <> 'linear') XOR - (SIZEOF( QUERY( pdr <* get_shape_aspect_property_definition_representations(SELF) | - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN - TYPEOF(pdr.used_representation)) - )) > 0); - WR4: (SELF.description <> 'linear') OR - (SIZEOF( QUERY( pdr <* get_shape_aspect_property_definition_representations(SELF) | - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN - TYPEOF(pdr.used_representation)) AND - (SIZEOF(pdr.used_representation.items) = 2) - )) = 1); - WR5: (SELF.description <> 'linear') OR - (SIZEOF( QUERY( pdr <* get_shape_aspect_property_definition_representations(SELF) | - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN - TYPEOF(pdr.used_representation)) AND - (SIZEOF( QUERY( i <* pdr.used_representation.items | - (i.name='end length') AND - (SIZEOF(['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', -'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT']*TYPEOF(i) - ) = 2) - )) = 1) - )) = 1); - WR6: (SELF.description <> 'linear') OR - (SIZEOF( QUERY( pdr <* get_shape_aspect_property_definition_representations(SELF) | - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN - TYPEOF(pdr.used_representation)) AND - (SIZEOF( QUERY( i <* pdr.used_representation.items | - (i.name = 'end shape') AND - (i\descriptive_representation_item.description IN ['straight','tapered']) AND - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.DESCRIPTIVE_REPRESENTATION_ITEM' - IN TYPEOF(i)) - )) = 1) - )) = 1); - WR7: SIZEOF( QUERY( sar <* USEDIN( SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + - 'SHAPE_ASPECT_RELATIONSHIP.RELATING_SHAPE_ASPECT') | - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP' IN - TYPEOF(sar)) AND - (sar.name = 'bead end usage') AND - (sar.description IN ['starting' -,'ending' -]) AND - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.BEAD' IN - TYPEOF(sar.related_shape_aspect.of_shape.definition)) AND - (sar.related_shape_aspect.of_shape.definition\characterized_object.name = 'end condition') AND - (sar.related_shape_aspect.of_shape.definition\characterized_object.description = 'bead end occurrence') - )) = 1; -END_ENTITY; -(* USED FROM (Form_feature_in_panel_mim); *) -ENTITY bead - SUBTYPE OF (feature_definition); -WHERE - WR1: (SIZEOF( QUERY( pdr <* get_property_definition_representations(SELF) | - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN - TYPEOF(pdr.used_representation) - )) <= 1) AND - (SIZEOF( QUERY( pdr <* get_property_definition_representations(SELF) | - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN - TYPEOF(pdr.used_representation)) AND - (SIZEOF(pdr.used_representation.items) > 2) - )) = 0); - WR2: SIZEOF( QUERY( pdr <* get_property_definition_representations(SELF) | - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN - TYPEOF(pdr.used_representation)) AND - (SIZEOF( QUERY( i <* pdr.used_representation.items | - NOT( i.name IN ['orientation','base radius']) - )) > 0) - )) = 0; - WR3: SIZEOF( QUERY( pdr <* get_property_definition_representations(SELF) | - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN - TYPEOF(pdr.used_representation)) AND - (SIZEOF( QUERY( i <* pdr.used_representation.items | - (i.name='base radius') AND - (SIZEOF(['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', -'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT']*TYPEOF(i) - ) = 2) - )) > 1) - )) = 0; - WR4: SIZEOF( QUERY( sa <* get_shape_aspects(SELF) | - (sa.name = 'sweep path') AND - (sa.description = 'path feature component occurrence') AND - (SIZEOF( QUERY( sar <* USEDIN( sa, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + - 'SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_DEFINING_RELATIONSHIP' IN - TYPEOF(sar)) AND - (sar.description = 'path feature component usage') AND - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PATH_FEATURE_COMPONENT' IN - TYPEOF(sar.relating_shape_aspect)) - )) = 1 ) - )) = 1; - WR5: SIZEOF( QUERY( sa <* get_shape_aspects(SELF) | - (sa.name = 'bead profile') AND - (sa.description = 'open profile occurrence') AND - (SIZEOF( QUERY( sar <* USEDIN( sa, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + - 'SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_DEFINING_RELATIONSHIP' IN - TYPEOF(sar)) AND - (sar.description = 'profile usage') AND - (SIZEOF(['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.OPEN_PATH_PROFILE', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PARTIAL_CIRCULAR_PROFILE', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.ROUNDED_U_PROFILE', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SQUARE_U_PROFILE', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.TEE_PROFILE', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.VEE_PROFILE'] - * TYPEOF(sar.relating_shape_aspect) - ) = 1 ) - )) = 1 ) - )) = 1; - WR6: SIZEOF( QUERY( sa <* get_shape_aspects(SELF) | - (sa.name = 'end condition') AND - (sa.description = 'bead end occurrence') AND - (SIZEOF( QUERY( sar <* USEDIN( sa, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + - 'SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP' IN - TYPEOF(sar)) AND - (sar.name = 'bead end usage') AND - (sar.description = 'starting' -) AND - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.BEAD_END' IN - TYPEOF(sar.relating_shape_aspect)) - )) = 1 ) - )) = 1; - WR7: SIZEOF( QUERY( sa <* get_shape_aspects(SELF) | - (sa.name = 'end condition') AND - (sa.description = 'bead end occurrence') AND - (SIZEOF( QUERY( sar <* USEDIN( sa, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + - 'SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP' IN - TYPEOF(sar)) AND - (sar.name = 'bead end usage') AND - (sar.description = 'ending' -) AND - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.BEAD_END' IN - TYPEOF(sar.relating_shape_aspect)) - )) = 1 ) - )) = 1; -END_ENTITY; -(* USED FROM (Form_feature_in_panel_mim); *) -ENTITY barring_hole - SUBTYPE OF (feature_definition); -WHERE - WR1: SIZEOF( QUERY( sa <* get_shape_aspects(SELF) | - (sa.name = 'hole profile') AND - (sa.description = 'closed profile occurrence') AND - (SIZEOF( QUERY( sar <* USEDIN( sa, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + - 'SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_DEFINING_RELATIONSHIP' IN - TYPEOF(sar)) AND - (sar.description = 'profile usage') AND - (SIZEOF(['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CIRCULAR_CLOSED_PROFILE', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.NGON_CLOSED_PROFILE', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.RECTANGULAR_CLOSED_PROFILE', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CLOSED_PATH_PROFILE'] - * TYPEOF(sar.relating_shape_aspect) - ) = 1 ) - )) = 1 ) - )) = 1; - WR2: SIZEOF( QUERY( sa <* get_shape_aspects(SELF) | - (sa.name = 'barring profile') AND - (sa.description = 'closed profile occurrence') AND - (SIZEOF( QUERY( sar <* USEDIN( sa, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + - 'SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_DEFINING_RELATIONSHIP' IN - TYPEOF(sar)) AND - (sar.description = 'profile usage') - )) = 1 ) - )) = 1; - WR3: (SIZEOF( QUERY( pdr <* get_property_definition_representations(SELF) | - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN - TYPEOF(pdr.used_representation) - )) = 1) AND - (SIZEOF( QUERY( pdr <* get_property_definition_representations(SELF) | - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN - TYPEOF(pdr.used_representation)) AND - {1 <= SIZEOF(pdr.used_representation.items) <= 2} - )) = 1); - WR4: SIZEOF( QUERY( pdr <* get_property_definition_representations(SELF) | - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN - TYPEOF(pdr.used_representation)) AND - (SIZEOF( QUERY( i <* pdr.used_representation.items | - NOT( i.name IN ['orientation','base radius']) - )) > 0) - )) = 0; - WR5: SIZEOF( QUERY( pdr <* get_property_definition_representations(SELF) | - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN - TYPEOF(pdr.used_representation)) AND - (SIZEOF( QUERY( i <* pdr.used_representation.items | - (i.name='base radius') AND - (SIZEOF(['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', -'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT']*TYPEOF(i) - ) = 2) - )) <> 1) - )) = 0; -END_ENTITY; -(* USED FROM (Externally_conditioned_data_quality_inspection_result_mim); *) - ENTITY externally_conditioned_data_quality_inspection_instance_report_item - SUBTYPE OF(data_quality_inspection_instance_report_item); - SELF\data_quality_inspection_instance_report_item.inspected_elements : SET [1:?] OF inspected_ecdq_element_select; - WHERE - WR1 : SIZEOF(QUERY(i1 <* - bag_to_set(USEDIN(SELF, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.'+ - 'DATA_QUALITY_INSPECTION_INSTANCE_REPORT.'+ 'INSPECTED_INSTANCES'))| - NOT('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.'+ - 'EXTERNALLY_CONDITIONED_DATA_QUALITY_INSPECTION_RESULT' - IN TYPEOF(i1.inspection_result))))=0; - END_ENTITY; -(* USED FROM (Externally_conditioned_data_quality_criteria_mim); *) - ENTITY externally_conditioned_data_quality_criteria_representation - SUBTYPE OF(Data_quality_criteria_representation); - WHERE - WR1 : SIZEOF( QUERY( q <* SELF\representation.items| - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + - 'EXTERNALLY_CONDITIONED_DATA_QUALITY_CRITERION' IN TYPEOF(q))) > 0; - END_ENTITY; -(* USED FROM (Physical_node_requirement_to_implementing_component_allocation_mim); *) -ENTITY physical_node_requirement_to_implementing_component_allocation - SUBTYPE OF (shape_aspect_relationship, shape_aspect); - SELF\shape_aspect_relationship.relating_shape_aspect : physical_connectivity_definition; -WHERE - WR1: acyclic_shape_aspect_relationship(SELF, - [SELF\shape_aspect_relationship.related_shape_aspect], - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.'+ - 'PHYSICAL_NODE_REQUIREMENT_TO_IMPLEMENTING_COMPONENT_ALLOCATION'); -END_ENTITY; -(* USED FROM (presentation_appearance_schema); *) - 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 | 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.REPRESENTATION_ITEM' IN TYPEOF(sc)))= 1) OR -(SIZEOF(QUERY(sc <* SELF.style_context | - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MAPPED_ITEM' IN TYPEOF(sc)) - OR ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.REPRESENTATION_RELATIONSHIP' IN TYPEOF(sc)) )) - = SIZEOF(style_context)); - END_ENTITY; - -(* Implicit interfaced from: mathematical_functions_schema *) -FUNCTION real_min(spc : maths_space) : REAL; - LOCAL - types : SET OF STRING := TYPEOF (spc); - END_LOCAL; - IF ((schema_prefix + 'FINITE_INTEGER_INTERVAL') IN types) THEN - RETURN (spc\finite_integer_interval.min); - END_IF; - IF ((schema_prefix + 'INTEGER_INTERVAL_FROM_MIN') IN types) THEN - RETURN (spc\integer_interval_from_min.min); - END_IF; - IF ((schema_prefix + 'FINITE_REAL_INTERVAL') IN types) THEN - RETURN (spc\finite_real_interval.min); - END_IF; - IF ((schema_prefix + 'REAL_INTERVAL_FROM_MIN') IN types) THEN - RETURN (spc\real_interval_from_min.min); - END_IF; - RETURN (?); -END_FUNCTION; -- real_min - -FUNCTION apeaid_is_base(input : area_component) : LOGICAL; -LOCAL - pd : SET OF property_definition := bag_to_set(QUERY(pd <* USEDIN(input,'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - pd\property_definition.name = 'is base')); -END_LOCAL; - RETURN(pd[1].description = 'true'); -END_FUNCTION; -(* REFERENCE FROM (support_resource_schema); *) - FUNCTION bag_to_set (the_bag : BAG OF GENERIC:intype):SET 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; - -(* Implicit interfaced from: Ap242_managed_model_based_3d_engineering_mim *) - 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(['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + - 'CHANGE_REQUEST', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + - 'START_REQUEST'] * - TYPEOF (x)) = 1)) - THEN RETURN(FALSE); - END_IF; - 'initiator' : IF SIZEOF (e.items) <> - SIZEOF (QUERY (x <* e.items | - SIZEOF(['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + - 'CHANGE_REQUEST', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + - 'START_REQUEST', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + - 'START_WORK', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + - 'CHANGE'] * - TYPEOF (x)) = 1)) - THEN RETURN(FALSE); - END_IF; - 'creator' : IF SIZEOF (e.items) <> - SIZEOF (QUERY (x <* e.items | - SIZEOF (['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + - 'PRODUCT_DEFINITION_FORMATION', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + - 'PRODUCT_DEFINITION'] * - TYPEOF (x)) = 1)) - THEN RETURN (FALSE); - END_IF; - 'part_supplier' : IF SIZEOF (e.items) <> - SIZEOF (QUERY (x <* e.items | - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + - 'PRODUCT_DEFINITION_FORMATION' - IN TYPEOF (x))) - THEN RETURN(FALSE); - END_IF; - 'design_supplier' : IF SIZEOF (e.items) <> - SIZEOF (QUERY (x <* e.items | - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + - 'PRODUCT_DEFINITION_FORMATION' - IN TYPEOF (x))) - THEN RETURN(FALSE); - END_IF; - 'design_owner' : IF SIZEOF (e.items) <> - SIZEOF (QUERY (x <* e.items | - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PRODUCT' - IN TYPEOF (x))) - THEN RETURN(FALSE); - END_IF; - 'configuration_manager' : IF SIZEOF (e.items) <> - SIZEOF (QUERY (x <* e.items | - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + - 'CONFIGURATION_ITEM' - IN TYPEOF (x))) - THEN RETURN(FALSE); - END_IF; - 'contractor' : IF SIZEOF (e.items) <> - SIZEOF (QUERY (x <* e.items | - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CONTRACT' - IN TYPEOF (x))) - THEN RETURN(FALSE); - END_IF; - 'classification_officer' : IF SIZEOF (e.items) <> - SIZEOF (QUERY (x <* e.items | - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + - 'SECURITY_CLASSIFICATION' - IN TYPEOF (x))) THEN - RETURN(FALSE); - END_IF; - OTHERWISE : RETURN(TRUE); - END_CASE; - RETURN (TRUE); - END_FUNCTION; -(* REFERENCE FROM (product_property_definition_schema); *) - FUNCTION acyclic_shape_aspect_relationship (relation : shape_aspect_relationship; relatives : SET [1:?] OF shape_aspect; specific_relation : STRING):BOOLEAN; - LOCAL - x : SET OF shape_aspect_relationship; - END_LOCAL; - - IF relation.relating_shape_aspect IN relatives THEN - RETURN (FALSE); - END_IF; - x := QUERY(sa <* bag_to_set(USEDIN(relation.relating_shape_aspect, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'SHAPE_ASPECT_RELATIONSHIP.' + 'RELATED_SHAPE_ASPECT')) | specific_relation IN TYPEOF(sa)); - REPEAT i := 1 TO HIINDEX(x); - IF NOT acyclic_shape_aspect_relationship(x[i], relatives + relation.relating_shape_aspect, specific_relation) THEN - RETURN (FALSE); - END_IF; - END_REPEAT; - RETURN (TRUE); - END_FUNCTION; -(* REFERENCE FROM (product_property_definition_schema); *) - FUNCTION get_shape_aspects (c_def_instance : characterized_definition):SET OF shape_aspect; - LOCAL - pd_set : SET OF product_definition_shape := []; - pdr_set : SET OF shape_aspect := []; - END_LOCAL; - - pd_set := bag_to_set(QUERY(pd <* USEDIN(c_def_instance, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pd))); - IF (SIZEOF(pd_set) < 1) THEN - RETURN (pdr_set); - END_IF; - REPEAT i := 1 TO HIINDEX(pd_set); - pdr_set := pdr_set + bag_to_set(USEDIN(pd_set[i], 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE')); - END_REPEAT; - RETURN (pdr_set); - END_FUNCTION; -(* REFERENCE FROM (product_property_representation_schema); *) - FUNCTION get_property_definition_representations (c_def_instance : characterized_definition):SET 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(c_def_instance, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 + bag_to_set(USEDIN(pd_set[i], 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')); - END_REPEAT; - RETURN (pdr_set); - END_FUNCTION; -(* REFERENCE FROM (Geometric_tolerance_mim); *) -FUNCTION get_shape_aspect_property_definition_representations - (s_a_instance : shape_aspect) : SET 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, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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], 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.' + 'DEFINITION') | -'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_DEFINITION_REPRESENTATION' IN TYPEOF(pdr))); -END_REPEAT; -RETURN (pdr_set); -END_FUNCTION; - -(* Implicit interfaced from: Constructive_solid_geometry_2d_mim *) -FUNCTION valid_csg_2d_primitives (input : csg_solid_2d) : BOOLEAN; -CASE TRUE OF - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PRIMITIVE_2D' IN TYPEOF(input\csg_solid_2d.tree_root_expression)) : - BEGIN - IF (SIZEOF(['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CIRCULAR_AREA', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.COMPLEX_AREA', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.ELLIPTIC_AREA', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.POLYGONAL_AREA', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PRIMITIVE_2D_WITH_INNER_BOUNDARY', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.RECTANGULAR_AREA'] * TYPEOF(input\csg_solid_2d.tree_root_expression)) > 0) - THEN - RETURN(TRUE); - ELSE - RETURN(FALSE); - END_IF; - END; - - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.BOOLEAN_RESULT_2D' IN TYPEOF(input\csg_solid_2d.tree_root_expression)) : - RETURN (valid_csg_2d_primitives(input\csg_solid_2d.tree_root_expression\boolean_result_2d.first_operand) - AND valid_csg_2d_primitives(input\csg_solid_2d.tree_root_expression\boolean_result_2d.second_operand)); - - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.HALF_SPACE_2D' IN TYPEOF(input\csg_solid_2d.tree_root_expression)) : RETURN(TRUE); - - OTHERWISE : RETURN(FALSE); -END_CASE; -END_FUNCTION; - -(* Implicit interfaced from: Constructive_solid_geometry_2d_mim *) -FUNCTION open_path_based_inner_boundary (input : SET OF primitive_2d) : BOOLEAN; - LOCAL - pass : BOOLEAN := TRUE; - END_LOCAL; - REPEAT i := 1 TO SIZEOF(input); - IF ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PATH_AREA_WITH_PARAMETERS' IN TYPEOF(input[i])) - AND ( - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CIRCLE' IN TYPEOF(input[i]\mapped_item.mapping_source\representation_map.mapping_origin)) - OR - (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.COMPOSITE_CURVE' IN TYPEOF(input[i]\mapped_item.mapping_source\representation_map.mapping_origin)) - AND - (input[i]\mapped_item.mapping_source\representation_map.mapping_origin\composite_curve.closed_curve = TRUE) - ) - ) - THEN - pass := FALSE; - END_IF; - END_REPEAT; - RETURN(pass); -END_FUNCTION; - -(* Implicit interfaced from: Default_tolerance_mim *) -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; - -(* Implicit interfaced from: Default_tolerance_mim *) -FUNCTION default_tolerance_table_cell_wr3 - (agg : compound_item_definition) : BOOLEAN; -BEGIN -IF (SIZEOF(QUERY ( i <* agg | (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM' IN TYPEOF(i)) - AND (i\representation_item.name = 'significant number of digits')) )) = 1) OR -((SIZEOF(QUERY ( i <* agg | (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM' IN TYPEOF(i)) AND - (i\representation_item.name = 'lower limit')) )) = 1) AND -(SIZEOF( QUERY ( i <* agg | (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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; - -(* Implicit interfaced from: Default_tolerance_mim *) -FUNCTION default_tolerance_table_cell_wr4 - (agg : compound_item_definition) : BOOLEAN; -BEGIN -IF (SIZEOF(QUERY ( i <* agg | (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM' IN TYPEOF(i)) AND - (i\representation_item.name = 'plus minus tolerance value')) )) = 1) OR -((SIZEOF(QUERY ( i <* agg | (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM' IN TYPEOF(i)) AND ( - i\representation_item.name = 'lower tolerance value')) )) = 1) AND -(SIZEOF( QUERY ( i <* agg | (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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; - -(* Implicit interfaced from: Default_tolerance_mim *) -FUNCTION default_tolerance_table_cell_wr5 - (agg : compound_item_definition) : BOOLEAN; -BEGIN -IF (SIZEOF(QUERY ( i <* agg | ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF(i)) )) <= 1) AND -(SIZEOF(QUERY ( i <* agg | ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF(i)) )) = - SIZEOF(QUERY ( i <* agg | (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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; - -(* Implicit interfaced from: Geometric_tolerance_mim *) -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 | ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(rep))); - - IF (SIZEOF( QUERY( srwp <* parameter_representations | - (SIZEOF( QUERY( i <* srwp.items | - (i.name='orientation') AND - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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', 'circular curve': 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(['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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(['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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(['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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(['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT']*TYPEOF(i) - ) = 2))) = 1) )) = 1)); - OTHERWISE : RETURN(FALSE); - END_CASE; -END_FUNCTION; - -(* Implicit interfaced from: Inertia_characteristics_mim *) -FUNCTION value_range_aggregate_rep_item (agg : AGGREGATE OF representation_item) : BOOLEAN; - BEGIN - IF (SIZEOF(QUERY(i1 <* agg | ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'MEASURE_REPRESENTATION_ITEM' IN TYPEOF(i1)) )) = 6) THEN - RETURN (TRUE); - ELSE - RETURN (FALSE); - END_IF; - END; -END_FUNCTION; - -(* Implicit interfaced from: Ply_orientation_specification_mim *) - 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; -(* REFERENCE FROM (basic_attribute_schema); *) - FUNCTION get_description_value (obj : description_attribute_select):text; - LOCAL - description_bag : BAG OF description_attribute := (USEDIN(obj, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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; -(* REFERENCE FROM (basic_attribute_schema); *) - FUNCTION get_id_value (obj : id_attribute_select):identifier; - LOCAL - id_bag : BAG OF id_attribute := (USEDIN(obj, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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; - -(* Implicit interfaced from: product_definition_schema *) - FUNCTION acyclic_product_category_relationship (relation : product_category_relationship; children : SET OF product_category):BOOLEAN; - LOCAL - x : SET OF product_category_relationship; - local_children : SET OF product_category; - END_LOCAL; - - REPEAT i := 1 TO HIINDEX(children); - IF relation.category :=: children[i] THEN - RETURN (FALSE); - END_IF; - END_REPEAT; - x := bag_to_set(USEDIN(relation.category, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'PRODUCT_CATEGORY_RELATIONSHIP.SUB_CATEGORY')); - local_children := children + relation.category; - IF SIZEOF(x) > 0 THEN - REPEAT i := 1 TO HIINDEX(x); - IF NOT acyclic_product_category_relationship(x[i], local_children) THEN - RETURN (FALSE); - END_IF; - END_REPEAT; - END_IF; - RETURN (TRUE); - END_FUNCTION; -(* REFERENCE FROM (basic_attribute_schema); *) - FUNCTION get_role (obj : role_select):object_role; - LOCAL - role_bag : BAG OF role_association := (USEDIN(obj, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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; -(* REFERENCE FROM (product_definition_schema); *) - FUNCTION acyclic_product_definition_relationship (relation : product_definition_relationship; relatives : SET [1:?] OF product_definition_or_reference; 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, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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; - -(* Implicit interfaced from: representation_schema *) - FUNCTION using_items (item : founded_item_select; - checked_items: SET OF founded_item_select) - : SET 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 , '')) | - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.REPRESENTATION_ITEM' IN TYPEOF(z)) OR - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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; - -(* Implicit interfaced from: geometry_schema *) -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 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PCURVE' IN TYPEOF (c) THEN - surfs := [c\pcurve.basis_surface]; - ELSE - IF 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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; - -(* Implicit interfaced from: geometry_schema *) -FUNCTION associated_surface - (arg : pcurve_or_surface) : surface; -LOCAL - surf : surface; - END_LOCAL; - - IF 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PCURVE' IN TYPEOF(arg) THEN - surf := arg\pcurve.basis_surface; - ELSE - surf := arg; - END_IF; - RETURN(surf);END_FUNCTION; - -(* Implicit interfaced from: geometry_schema *) -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; - -(* Implicit interfaced from: geometry_schema *) -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; - -(* Implicit interfaced from: geometry_schema *) -FUNCTION acyclic_curve_replica - (rep : curve_replica; parent : curve) : BOOLEAN; -IF NOT (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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; - -(* Implicit interfaced from: geometry_schema *) -FUNCTION acyclic_point_replica - (rep : point_replica; parent : point) : BOOLEAN; -IF NOT (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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; - -(* Implicit interfaced from: geometry_schema *) -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 (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.B_SPLINE_SURFACE' IN TYPEOF - (s.segments[i][j].parent_surface)) OR - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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; - -(* Implicit interfaced from: geometry_schema *) -FUNCTION acyclic_surface_replica - (rep : surface_replica; parent : surface) : BOOLEAN; -IF NOT (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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; - -(* Implicit interfaced from: representation_schema *) - 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], 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.REPRESENTATION_MAP.MAPPED_REPRESENTATION')); - IF SIZEOF(rms) > 0 THEN - REPEAT j := 1 TO HIINDEX(rms); - mis := bag_to_set(USEDIN(rms[i], 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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; - -(* Implicit interfaced from: representation_schema *) - FUNCTION using_representations (item : founded_item_select) - : SET 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,'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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], - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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; - -(* Implicit interfaced from: representation_schema *) - 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,'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 , '') | - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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; -(* REFERENCE FROM (measure_schema); *) - 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 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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; - -(* Implicit interfaced from: Extended_measure_representation_mim *) - FUNCTION value_range_wr1 - (agg : compound_item_definition) : BOOLEAN; - BEGIN - IF (SIZEOF(agg) = 2) AND ((SIZEOF(QUERY (i1 <* agg | ( - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM' IN TYPEOF - (i1)))) = 2) OR - (SIZEOF(QUERY (i2 <* agg | ( - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.VALUE_REPRESENTATION_ITEM' IN TYPEOF - (i2)))) = 2)) - THEN - RETURN(TRUE); - ELSE - RETURN(FALSE); - END_IF; - END; - END_FUNCTION; - -(* Implicit interfaced from: Extended_measure_representation_mim *) - 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; - -(* Implicit interfaced from: Extended_measure_representation_mim *) - FUNCTION value_range_wr3 - (agg : compound_item_definition) : BOOLEAN; - BEGIN - IF (SIZEOF(QUERY(i1 <* agg | - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM' IN TYPEOF (i1)) AND - (SIZEOF (QUERY (i2 <* agg | - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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; - -(* Implicit interfaced from: shape_aspect_definition_schema *) -FUNCTION sts_get_general_datum_reference - (input : datum_reference_element) : general_datum_reference; -LOCAL - general_datum_reference_bag : BAG OF general_datum_reference := -(USEDIN(input, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'GENERAL_DATUM_REFERENCE.' + 'BASE')); - END_LOCAL; - - IF SIZEOF(general_datum_reference_bag) = 1 THEN - RETURN (general_datum_reference_bag[1]); - ELSE - RETURN (?); - END_IF;END_FUNCTION; - -(* Implicit interfaced from: shape_tolerance_schema *) -FUNCTION sts_get_product_definition_shape - (input : geometric_tolerance_target) : product_definition_shape; -CASE TRUE OF ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.DIMENSIONAL_LOCATION' IN TYPEOF(input)) : - RETURN(input\shape_aspect_relationship.relating_shape_aspect\shape_aspect.of_shape); - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.DIMENSIONAL_SIZE' IN TYPEOF(input)) : - RETURN(input\dimensional_size.applies_to\shape_aspect.of_shape); - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(input)) : - RETURN(input); - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT' IN TYPEOF(input)) : - RETURN(input\shape_aspect.of_shape); - OTHERWISE : RETURN(?); - END_CASE;END_FUNCTION; -(* REFERENCE FROM (basic_attribute_schema); *) - FUNCTION get_name_value (obj : name_attribute_select):label; - LOCAL - name_bag : BAG OF name_attribute := (USEDIN(obj, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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; -(* REFERENCE FROM (geometric_model_schema); *) -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; - -(* Implicit interfaced from: aic_geometrically_bounded_surface *) -FUNCTION gbsf_check_point - (pnt : point) : BOOLEAN; - IF 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CARTESIAN_POINT' IN TYPEOF(pnt) THEN - RETURN (TRUE); - ELSE - IF 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.POINT_ON_CURVE' IN TYPEOF(pnt) THEN - RETURN (gbsf_check_curve(pnt\point_on_curve.basis_curve)); - ELSE - IF 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.POINT_ON_SURFACE' IN TYPEOF(pnt) THEN - RETURN (gbsf_check_surface(pnt\point_on_surface.basis_surface)); - ELSE - IF 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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; - -(* Implicit interfaced from: aic_geometrically_bounded_surface *) -FUNCTION gbsf_check_curve - (cv : representation_item) : BOOLEAN; - IF SIZEOF(['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.BOUNDED_CURVE', 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CONIC', 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CURVE_REPLICA', 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LINE', 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.OFFSET_CURVE_3D'] * TYPEOF(cv)) > 1 THEN - RETURN (FALSE); - END_IF; - IF SIZEOF(['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CIRCLE', 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.ELLIPSE', 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.TRIMMED_CURVE'] * TYPEOF(cv)) = 1 THEN - RETURN (TRUE); - ELSE - IF (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CURVE_REPLICA' IN TYPEOF(cv) THEN - RETURN (gbsf_check_curve(cv\curve_replica.parent_curve)); - ELSE - IF (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.POLYLINE' IN TYPEOF(cv\offset_curve_3d.basis_curve)))) THEN - RETURN (gbsf_check_curve(cv\offset_curve_3d.basis_curve)); - ELSE - IF 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.POLYLINE' IN TYPEOF(cv) THEN - IF (SIZEOF(cv\polyline.points) >= 3) THEN - RETURN (TRUE); - END_IF; - ELSE - IF 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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; - -(* Implicit interfaced from: aic_geometrically_bounded_surface *) -FUNCTION gbsf_check_surface - (sf : surface) : BOOLEAN; - IF (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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(['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SPHERICAL_SURFACE', 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.TOROIDAL_SURFACE', 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CURVE_BOUNDED_SURFACE', 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.RECTANGULAR_TRIMMED_SURFACE'] * TYPEOF(sf)) = 1 THEN - RETURN (TRUE); - ELSE - IF (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SURFACE_REPLICA' IN TYPEOF(sf) THEN - RETURN (gbsf_check_surface(sf\surface_replica.parent_surface)); - ELSE - IF 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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; - -(* Implicit interfaced from: geometry_schema *) -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; - -(* Implicit interfaced from: geometry_schema *) -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; -(* REFERENCE FROM (representation_schema); *) - 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, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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; - -(* Implicit interfaced from: geometry_schema *) -FUNCTION normalise - (arg : vector_or_direction) : vector_or_direction; -LOCAL - ndim : INTEGER; - v : direction := dummy_gri || direction ([1.0,0.0,0.0]); - result : vector_or_direction; - vec : vector := dummy_gri || vector (v, 1.0); - 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 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.VECTOR' IN TYPEOF(arg) THEN - BEGIN - v := dummy_gri || direction(arg\vector.orientation.direction_ratios); - IF arg\vector.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 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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; - -(* Implicit interfaced from: geometry_schema *) -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; - -(* Implicit interfaced from: geometry_schema *) -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; - -(* Implicit interfaced from: geometry_schema *) -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; - -(* Implicit interfaced from: geometry_schema *) -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; - -(* Implicit interfaced from: geometry_schema *) -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; - -(* Implicit interfaced from: geometry_schema *) -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 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.VECTOR' IN TYPEOF (vec) THEN - v := dummy_gri || direction(vec\vector.orientation.direction_ratios); - mag := scalar * vec\vector.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; - -(* Implicit interfaced from: geometry_schema *) -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; - -(* Implicit interfaced from: geometry_schema *) -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 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.VECTOR' IN TYPEOF(arg1) THEN - mag1 := arg1\vector.magnitude; - vec1 := arg1\vector.orientation; - ELSE - mag1 := 1.0; - vec1 := arg1; - END_IF; - IF 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.VECTOR' IN TYPEOF(arg2) THEN - mag2 := arg2\vector.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; - -(* Implicit interfaced from: geometry_schema *) -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; - -(* Implicit interfaced from: geometry_schema *) -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; - -(* Implicit interfaced from: geometry_schema *) -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 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CARTESIAN_POINT' IN TYPEOF(item) THEN - dim := SIZEOF(item\cartesian_point.coordinates); - RETURN(dim); - END_IF; - IF 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.DIRECTION' IN TYPEOF(item) THEN - dim := SIZEOF(item\direction.direction_ratios); - RETURN(dim); - END_IF; - IF 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 for legal instances since this is required by WR1 of - -- representation_item. - IF (SIZEOF(x) > 0) THEN - y := x[1].context_of_items; - dim := y\geometric_representation_context.coordinate_space_dimension; - RETURN (dim); - ELSE - RETURN(?); - -- mark error by returning indeterminate result - END_IF;END_FUNCTION; - -(* Implicit interfaced from: date_time_schema *) -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; - -(* Implicit interfaced from: date_time_schema *) -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; - -(* Implicit interfaced from: date_time_schema *) -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; - -(* Implicit interfaced from: product_structure_schema *) -FUNCTION unambiguously_specified_multi_level_reference_designator (links : LIST[1:?] OF next_assembly_usage_occurrence) : BOOLEAN; -REPEAT i := 1 to SIZEOF(links) - 1; ---case 1 all in one file; had to disambiguate link[i].relating instance type to distinguish case 1 from case 3. - CASE TRUE OF - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PRODUCT_DEFINITION' IN TYPEOF(links[i]\product_definition_relationship.relating_product_definition)) - AND - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PRODUCT_DEFINITION' IN TYPEOF(links[i]\product_definition_relationship.related_product_definition)) - AND - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PRODUCT_DEFINITION' IN TYPEOF(links[i+1]\product_definition_relationship.relating_product_definition)) : - BEGIN - IF NOT ( - (links[i]\product_definition_relationship.related_product_definition :=: - links[i+1]\product_definition_relationship.relating_product_definition) - OR - ((SIZEOF (QUERY (pdr <* USEDIN(links[i]\product_definition_relationship.related_product_definition, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PRODUCT_DEFINITION_RELATIONSHIP.' + 'RELATED_PRODUCT_DEFINITION') | - pdr\product_definition_relationship.relating_product_definition :=: - links[i+1]\product_definition_relationship.relating_product_definition)) = 1) - AND - (links[i]\product_definition_relationship.related_product_definition\product_definition.formation\product_definition_formation.of_product - :=: - links[i+1]\product_definition_relationship.relating_product_definition\product_definition.formation\product_definition_formation.of_product))) - THEN - RETURN(FALSE); - END_IF; - END; - ---case 2 ; intermediate node reference from main to external file or both node references in external file. links[i].relating instance can be either pd or pdref. - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PRODUCT_DEFINITION_REFERENCE' IN TYPEOF(links[i]\product_definition_relationship.related_product_definition)) - AND - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PRODUCT_DEFINITION_REFERENCE' IN TYPEOF(links[i+1]\product_definition_relationship.relating_product_definition)) : - BEGIN - IF NOT ( - (links[i]\product_definition_relationship.related_product_definition :=: - links[i+1]\product_definition_relationship.relating_product_definition) - OR - ((SIZEOF (QUERY (pdr <* USEDIN(links[i]\product_definition_relationship.related_product_definition, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PRODUCT_DEFINITION_RELATIONSHIP.' + 'RELATED_PRODUCT_DEFINITION') | - pdr\product_definition_relationship.relating_product_definition :=: - links[i+1]\product_definition_relationship.relating_product_definition)) = 1) - AND - (links[i]\product_definition_relationship.related_product_definition\product_definition_reference.product_id - = - links[i+1]\product_definition_relationship.relating_product_definition\product_definition_reference.product_id) - AND - (links[i]\product_definition_relationship.related_product_definition\product_definition_reference.id_owning_organization_name - = - links[i+1]\product_definition_relationship.relating_product_definition\product_definition_reference.id_owning_organization_name) - AND - (links[i]\product_definition_relationship.related_product_definition\product_definition_reference.product_definition_id - <> - links[i+1]\product_definition_relationship.relating_product_definition\product_definition_reference.product_definition_id))) - THEN - RETURN(FALSE); - END_IF; - END; - ---case 3 should never see -- link in external file referencing a node in main assembly file. Note link is just links[i]. - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PRODUCT_DEFINITION_REFERENCE' IN TYPEOF(links[i]\product_definition_relationship.relating_product_definition)) - AND - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PRODUCT_DEFINITION' IN TYPEOF(links[i]\product_definition_relationship.related_product_definition)) : - RETURN(FALSE); - - OTHERWISE : RETURN(FALSE); - END_CASE; - -END_REPEAT; -RETURN(TRUE); -END_FUNCTION; - -(* Implicit interfaced from: aic_manifold_surface *) -FUNCTION msf_surface_check (surf : surface) : BOOLEAN; - -(* This function varifies the validity of a surface in the - context of a manifold surface model. -*) - - (* elementary_surfaces are valid surface types - *) - IF 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.ELEMENTARY_SURFACE' IN TYPEOF(surf) THEN - RETURN(TRUE); - ELSE - - (* a swept_surface shall have a valid sweeping curve - *) - IF 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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; - -(* Implicit interfaced from: aic_manifold_surface *) -FUNCTION msf_curve_check (cv : representation_item) : BOOLEAN; - -(* This function varifies the validity of a curve in the context of a - manifold surface model. Representation_items are - valid input, however, they are supposed to be curves; otherwise - this function will return false. -*) - -(* complex subtypes of curve that are both bounded_curve and - oneof conic, curve_replica, line, or offset_curve_3d are not - valid -*) -IF SIZEOF (['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.BOUNDED_CURVE', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CONIC', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CURVE_REPLICA', 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LINE', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.OFFSET_CURVE_3D'] * TYPEOF(cv)) > 1 THEN - RETURN(FALSE); -END_IF; - -(* b_spline_curves shall not self-intersect - *) -IF (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 (['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CONIC', 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LINE'] - * TYPEOF (cv)) = 1 THEN - RETURN(TRUE); - ELSE - - (* a curve_replica shall reference a valid curve - *) - IF 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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; - -(* Implicit interfaced from: representation_schema *) - 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; - -(* Implicit interfaced from: product_data_quality_inspection_result_schema *) - FUNCTION inspected_product_definition - (dqir:data_quality_inspection_result_representation) - :BAG OF product_definition; - LOCAL - dqdr :BAG OF data_quality_definition_representation_relationship:= []; - pdqdr :BAG OF product_data_and_data_quality_relationship:= []; - pd :BAG OF product_definition:= []; - END_LOCAL; - dqdr := USEDIN(dqir,'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' - +'DATA_QUALITY_DEFINITION_REPRESENTATION_RELATIONSHIP.' - +'USED_REPRESENTATION'); - REPEAT i:= 1 TO SIZEOF(dqdr); - pdqdr := USEDIN(dqdr[i].definition, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' - +'PRODUCT_DATA_AND_DATA_QUALITY_RELATIONSHIP.' - +'DATA_QUALITY'); - REPEAT j:= 1 TO SIZEOF(pdqdr); - pd := pd + pdqdr[j].product_data; - END_REPEAT; - END_REPEAT; - RETURN(pd); - END_FUNCTION; - -(* Implicit interfaced from: shape_data_quality_criteria_schema *) - FUNCTION validate_measured_data_type - (ei:shape_data_quality_criterion; - type_string: STRING):LOGICAL; - LOCAL - sdqir: SET OF - SHAPE_DATA_QUALITY_INSPECTION_RESULT:=[]; - sdcr: SET OF - SHAPE_DATA_QUALITY_INSPECTION_CRITERION_REPORT:=[]; - sdir: SET OF - SHAPE_DATA_QUALITY_INSPECTION_INSTANCE_REPORT:=[]; - sdii: SET OF - SHAPE_DATA_QUALITY_INSPECTION_INSTANCE_REPORT_ITEM:=[]; - sdei: BAG OF - INSTANCE_REPORT_ITEM_WITH_EXTREME_INSTANCES:=[]; - END_LOCAL; - - -- STEP-1 - -- collect all shape_data_quality_inspection_criterion_report instances, - -- all shape_data_quality_inspection_instance_report_item instances, and - -- instance_report_item_with_extreme_instances instances - -- associated with the given shape_data_quality_criterion - -- via shape_data_quality_inspection_result. - - sdqir := QUERY(q <* bag_to_set(USEDIN(ei, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.'+ - 'DATA_QUALITY_INSPECTION_RESULT.'+ - 'CRITERION_INSPECTED'))| - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.'+ - 'SHAPE_DATA_QUALITY_INSPECTION_RESULT' - IN TYPEOF(q)); - IF(SIZEOF(sdqir) = 0) THEN - RETURN(TRUE); - END_IF; - REPEAT i:= 1 TO SIZEOF(sdqir); - sdcr := sdcr + QUERY(q <* bag_to_set(USEDIN(sdqir[i], - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.'+ - 'DATA_QUALITY_INSPECTION_REPORT.'+ - 'INSPECTION_RESULT'))| - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.'+ - 'SHAPE_DATA_QUALITY_INSPECTION_CRITERION_REPORT' - IN TYPEOF(q)); - END_REPEAT; - REPEAT i:= 1 TO SIZEOF(sdqir); - sdir := sdir + QUERY(q <* bag_to_set(USEDIN(sdqir[i], - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.'+ - 'DATA_QUALITY_INSPECTION_REPORT.'+ - 'INSPECTION_RESULT'))| - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.'+ - 'SHAPE_DATA_QUALITY_INSPECTION_INSTANCE_REPORT' - IN TYPEOF(q)); - END_REPEAT; - - -- If there is no report, then return true. - IF((SIZEOF(sdcr) = 0) AND (SIZEOF(sdir) = 0)) THEN - RETURN(TRUE); - END_IF; - - REPEAT i:= 1 TO SIZEOF(sdir); - sdii := sdii + QUERY(q <* sdir[i].inspected_instances| - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.'+ - 'SHAPE_DATA_QUALITY_INSPECTION_INSTANCE_REPORT_ITEM' - IN TYPEOF(q)); - END_REPEAT; - REPEAT i:= 1 TO SIZEOF(sdir); - sdei := sdei + QUERY(q <* sdir[i].inspected_instances| - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.'+ - 'INSTANCE_REPORT_ITEM_WITH_EXTREME_INSTANCES' - IN TYPEOF(q)); - END_REPEAT; - - -- When reports exist, then perform the following checking process. - -- Check representative_measured_value of - -- shape_data_quality_inspection_criterion_report - REPEAT i:= 1 TO SIZEOF(sdcr); - IF(NOT(type_string IN - TYPEOF(sdcr[i].representative_measured_value))) THEN - RETURN(FALSE); - END_IF; - END_REPEAT; - - -- Check measured_value of shape_data_quality_inspection_ - -- instance_report_item - REPEAT i:= 1 TO SIZEOF(sdii); - IF(NOT(type_string IN - TYPEOF(sdii[i].measured_value))) THEN - RETURN(FALSE); - END_IF; - END_REPEAT; - - -- Check measured_value of extreme_instances of - -- instance_report_item_with_extreme_instance - REPEAT i:= 1 TO SIZEOF(sdei); - REPEAT j:= 1 TO SIZEOF(sdei[i].extreme_instances); - IF(NOT(type_string IN - TYPEOF(sdei[i].extreme_instances[j].measured_value))) - THEN - RETURN(FALSE); - END_IF; - END_REPEAT; - END_REPEAT; - - RETURN(TRUE); - - END_FUNCTION; - -(* Implicit interfaced from: shape_data_quality_criteria_schema *) - FUNCTION validate_inspected_elements_type - (ei:shape_data_quality_criterion; - type_list:BAG OF STRING):LOGICAL; - LOCAL - sdqir: SET OF - SHAPE_DATA_QUALITY_INSPECTION_RESULT:=[]; - sdir: SET OF - SHAPE_DATA_QUALITY_INSPECTION_INSTANCE_REPORT:=[]; - sdiri: SET OF - SHAPE_DATA_QUALITY_INSPECTION_INSTANCE_REPORT_ITEM:=[]; - t_type_list:BAG OF STRING:=[]; - END_LOCAL; - - -- STEP-1 - -- collect all shape_data_quality_inspection_instance_report_item - -- instances associated with the given shape_data_quality_criterion - -- via shape_data_quality_inspection_result and - -- shape_data_quality_inspection_instance_report - - sdqir := QUERY(q <* bag_to_set(USEDIN(ei, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.'+ - 'DATA_QUALITY_INSPECTION_RESULT.'+ - 'CRITERION_INSPECTED'))| - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.'+ - 'SHAPE_DATA_QUALITY_INSPECTION_RESULT' - IN TYPEOF(q)); - IF(SIZEOF(sdqir) = 0) THEN - RETURN(TRUE); - END_IF; - REPEAT i:= 1 TO SIZEOF(sdqir); - sdir := sdir + QUERY(q <* bag_to_set(USEDIN(sdqir[i], - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.'+ - 'DATA_QUALITY_INSPECTION_REPORT.'+ - 'INSPECTION_RESULT'))| - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.'+ - 'SHAPE_DATA_QUALITY_INSPECTION_INSTANCE_REPORT' - IN TYPEOF(q)); - END_REPEAT; - IF(SIZEOF(sdir) = 0) THEN - RETURN(TRUE); - END_IF; - - REPEAT i:= 1 TO SIZEOF(sdir); - sdiri := sdiri + QUERY(q <* sdir[i].inspected_instances| - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.'+ - 'SHAPE_DATA_QUALITY_INSPECTION_INSTANCE_REPORT_ITEM' - IN TYPEOF(q)); - END_REPEAT; - - -- STEP-2 - -- check if the types of inspected_elements of the collected - -- instances are exactly coincident with the type names in the - -- type list given as an input argument of this function. - - -- If there is no instance_report_item, then return true. - IF(SIZEOF(sdiri) = 0) THEN - RETURN(TRUE); - END_IF; - - -- When reports exist, then perform the following checking process. - REPEAT i:= 1 TO SIZEOF(sdiri); - -- If the size of inspected_elements is not equal to the size of - -- type_list, then return false. - IF(SIZEOF(sdiri[i].inspected_elements) <> - SIZEOF(type_list)) THEN - RETURN(FALSE); - END_IF; - -- check all elements in the type_list - -- for each element of inspected_elements. - t_type_list := type_list; - REPEAT j:= 1 TO SIZEOF(sdiri[i].inspected_elements); - REPEAT k:= 1 TO SIZEOF(t_type_list); - IF(t_type_list[k] IN - TYPEOF(sdiri[i].inspected_elements[j])) THEN - t_type_list := t_type_list - t_type_list[k]; - ESCAPE; - END_IF; - END_REPEAT; - END_REPEAT; - IF(SIZEOF(t_type_list) > 0) THEN - RETURN(FALSE); - END_IF; - END_REPEAT; - - RETURN(TRUE); - END_FUNCTION; - -(* Implicit interfaced from: shape_data_quality_criteria_schema *) - FUNCTION validate_locations_of_extreme_value_type - (ei:shape_data_quality_criterion; - type_list:BAG OF STRING):LOGICAL; - LOCAL - sdqir: SET OF - SHAPE_DATA_QUALITY_INSPECTION_RESULT:=[]; - sdir: SET OF - SHAPE_DATA_QUALITY_INSPECTION_INSTANCE_REPORT:=[]; - sdei: SET OF - INSTANCE_REPORT_ITEM_WITH_EXTREME_INSTANCES:=[]; - t_type_list:BAG OF STRING:=[]; - END_LOCAL; - - -- STEP-1 - -- collect all instance_report_item_with_extreme_instances instances - -- associated with the given shape_data_quality_criterion - -- via shape_data_quality_inspection_result and - -- shape_data_quality_inspection_instance_report. - - sdqir := QUERY(q <* bag_to_set(USEDIN(ei, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.'+ - 'DATA_QUALITY_INSPECTION_RESULT.'+ - 'CRITERION_INSPECTED'))| - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.'+ - 'SHAPE_DATA_QUALITY_INSPECTION_RESULT' - IN TYPEOF(q)); - IF(SIZEOF(sdqir) = 0) THEN - RETURN(TRUE); - END_IF; - REPEAT i:= 1 TO SIZEOF(sdqir); - sdir := sdir + QUERY(q <* bag_to_set(USEDIN(sdqir[i], - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.'+ - 'DATA_QUALITY_INSPECTION_REPORT.'+ - 'INSPECTION_RESULT'))| - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.'+ - 'SHAPE_DATA_QUALITY_INSPECTION_INSTANCE_REPORT' - IN TYPEOF(q)); - END_REPEAT; - REPEAT i:= 1 TO SIZEOF(sdir); - sdei := sdei + QUERY(q <* sdir[i].inspected_instances| - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.'+ - 'INSTANCE_REPORT_ITEM_WITH_EXTREME_INSTANCES' - IN TYPEOF(q)); - END_REPEAT; - - -- STEP-2 - -- check if the types of locations_of_extreme_value attributes - -- of all extreme_instances attributes of the collected instances are - -- exactly coincident with the type names in the type list given as an - -- input argument of this function. - - -- If there is no instance report, then return true. - IF(SIZEOF(sdei) = 0) THEN - RETURN(TRUE); - END_IF; - - -- If the type_list is empty and - -- instance_report_item_with_extreme_instances exists, then return false. - IF((SIZEOF(type_list) = 0) AND (SIZEOF(sdei) <> 0)) THEN - RETURN(FALSE); - END_IF; - - -- When report_items exist, then perform the following checking process. - REPEAT i:= 1 TO SIZEOF(sdei); - REPEAT j:= 1 TO SIZEOF(sdei[i].extreme_instances); - -- If the size of locations_of_extreme_value is not equal to - -- the size of type_list, then return false. - IF(SIZEOF(sdei[i].extreme_instances[j]. - locations_of_extreme_value) <> - SIZEOF(type_list)) THEN - RETURN(FALSE); - END_IF; - t_type_list := type_list; - -- check all elements of the type_list - -- for each element of locations_of_extreme_value. - REPEAT k:= 1 TO SIZEOF(sdei[i].extreme_instances[j] - .locations_of_extreme_value); - REPEAT l:= 1 TO SIZEOF(t_type_list); - IF(t_type_list[l] IN - TYPEOF(sdei[i].extreme_instances[j]. - locations_of_extreme_value[k])) THEN - t_type_list := t_type_list - t_type_list[l]; - ESCAPE; - END_IF; - END_REPEAT; - END_REPEAT; - IF(SIZEOF(t_type_list) > 0) THEN - RETURN(FALSE); - END_IF; - END_REPEAT; - END_REPEAT; - - RETURN(TRUE); - END_FUNCTION; - -(* Implicit interfaced from: shape_data_quality_criteria_schema *) - FUNCTION validate_accuracy_types - (ei:shape_data_quality_criterion; - type_list:BAG OF STRING):LOGICAL; - LOCAL - sdqca: BAG OF - SHAPE_DATA_QUALITY_CRITERION_AND_ACCURACY_ASSOCIATION:=[]; - sma: BAG OF SHAPE_MEASUREMENT_ACCURACY:=[]; - sdqir: SET OF - SHAPE_DATA_QUALITY_INSPECTION_RESULT:=[]; - scraa: BAG OF - SHAPE_INSPECTION_RESULT_ACCURACY_ASSOCIATION:=[]; - t_logic:BOOLEAN; - END_LOCAL; - -- STEP-1 - -- collect types of range attribute of shape_measurement_accuracy - -- referred from shape_data_quality_criterion_and_accuracy_association - -- that refers to given shape_data_quality_criterion. - sdqca := USEDIN(ei, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.'+ - 'SHAPE_DATA_QUALITY_CRITERION_AND_ACCURACY_ASSOCIATION.'+ - 'SHAPE_DATA_QUALITY_CRITERION'); - IF(SIZEOF(sdqca) <> 0) THEN - REPEAT i:= 1 TO SIZEOF(sdqca); - sma := sma + sdqca[i].required_specific_accuracy; - END_REPEAT; - - -- STEP-2 - -- check whether the collected types include all the type names - -- in the type list given as an input argument of this function - -- and they do not include any other type names. - IF(SIZEOF(type_list) < SIZEOF(sma)) THEN - RETURN(FALSE); - END_IF; - - REPEAT i:= 1 TO SIZEOF(sma); - t_logic := FALSE; - REPEAT j:= 1 TO SIZEOF(type_list); - IF(type_list[j] IN value_limit_type(sma[i].range)) THEN - t_logic := TRUE; - ESCAPE; - END_IF; - END_REPEAT; - IF(NOT(t_logic)) THEN - RETURN(FALSE); - END_IF; - END_REPEAT; - END_IF; - - -- STEP-3 - -- collect types of range attribute of shape_measurement_accuracy - -- referred from shape_inspection_result_accuracy_association - -- that refers to shape_data_quality_inspection_result - -- for the given shape_data_quality_criterion. - sdqir := QUERY(q <* bag_to_set(USEDIN(ei, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.'+ - 'DATA_QUALITY_INSPECTION_RESULT.'+ - 'CRITERION_INSPECTED'))| - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.'+ - 'SHAPE_DATA_QUALITY_INSPECTION_RESULT' - IN TYPEOF(q)); - IF(SIZEOF(sdqir) = 0) THEN - RETURN(TRUE); - END_IF; - - REPEAT i:= 1 TO SIZEOF(sdqir); - scraa := USEDIN(sdqir[i], - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.'+ - 'SHAPE_INSPECTION_RESULT_ACCURACY_ASSOCIATION.'+ - 'SHAPE_DATA_QUALITY_RESULT'); - IF(SIZEOF(scraa) <> 0) THEN - sma := []; - REPEAT j:= 1 TO SIZEOF(scraa); - sma := sma + scraa[j].applied_specific_accuracy; - END_REPEAT; - - -- STEP-4 - -- check whether the collected types include all the type - -- names in the type list given as an input argument of - -- this function and they do not include any other type names. - IF(SIZEOF(type_list) < SIZEOF(sma)) THEN - RETURN(FALSE); - END_IF; - - REPEAT j:= 1 TO SIZEOF(sma); - t_logic := FALSE; - REPEAT k:= 1 TO SIZEOF(type_list); - IF(type_list[k] IN value_limit_type(sma[j].range)) THEN - t_logic := TRUE; - ESCAPE; - END_IF; - END_REPEAT; - IF(NOT(t_logic)) THEN - RETURN(FALSE); - END_IF; - END_REPEAT; - END_IF; - END_REPEAT; - - RETURN(TRUE); - END_FUNCTION; - -(* Implicit interfaced from: shape_data_quality_criteria_schema *) - FUNCTION value_limit_type - (iv:shape_data_quality_value_limit_type_select):SET OF STRING; - LOCAL - retval : SET OF STRING := []; - END_LOCAL; - IF(('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' - +'SHAPE_DATA_QUALITY_VALUE_RANGE') IN TYPEOF(iv)) THEN - retval := TYPEOF(iv\compound_representation_item.item_element[1].value_component); - END_IF; - IF(('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' - +'SHAPE_DATA_QUALITY_VALUE_LIMIT') IN TYPEOF(iv)) THEN - IF(('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'MEASURE_WITH_UNIT') IN TYPEOF(iv)) THEN - retval := TYPEOF(iv\measure_with_unit.value_component); - END_IF; - END_IF; - RETURN(retval); - END_FUNCTION; - -(* Implicit interfaced from: shape_data_quality_inspection_result_schema *) - FUNCTION using_product_definition_of_shape_representation - (item: shape_representation) : SET OF product_definition; - LOCAL - local_s_d_r: SET OF shape_definition_representation := []; - local_p_d: SET OF product_definition := []; - i : INTEGER; - END_LOCAL; - - -- find shape_definition_representations - local_s_d_r := QUERY(i1<* bag_to_set (USEDIN (item, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + - 'PROPERTY_DEFINITION_REPRESENTATION.USED_REPRESENTATION'))| - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.'+ - 'SHAPE_DEFINITION_REPRESENTATION' - IN TYPEOF(i1)); - - -- find product_definition_shape & product_definitions - REPEAT i := 1 TO HIINDEX (local_s_d_r); - IF ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION' IN - TYPEOF (local_s_d_r[i]\property_definition_representation.definition)) - THEN - IF('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PRODUCT_DEFINITION' IN TYPEOF - (local_s_d_r[i]\property_definition_representation.definition\property_definition.definition)) - THEN - local_p_d := local_p_d + local_s_d_r[i]\property_definition_representation.definition\property_definition.definition; - END_IF; - END_IF; - END_REPEAT; - RETURN (local_p_d); - END_FUNCTION; - -(* Implicit interfaced from: shape_data_quality_inspection_result_schema *) - FUNCTION relating_shape_representations_of_extreme_values - (item:location_of_extreme_value_select) - : SET OF shape_representation; - - LOCAL - results : SET OF shape_representation:=[]; - exti : SET OF extreme_instance:=[]; - ii_ei : SET OF - instance_report_item_with_extreme_instances:=[]; - sdiir : SET OF - shape_data_quality_inspection_instance_report:=[]; - sdqr : SET OF - shape_data_quality_inspection_result_representation:=[]; - sdisr : SET OF - shape_data_quality_inspected_shape_and_result_relationship:=[]; - END_LOCAL; - -- find extreme_instances - exti := exti + - bag_to_set( USEDIN(item, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + - 'EXTREME_INSTANCE.'+ - 'LOCATIONS_OF_EXTREME_VALUE')); - - -- find instance_report_item_with_extreme_instances - REPEAT i := 1 TO HIINDEX (exti); - ii_ei := ii_ei + - bag_to_set( USEDIN(exti[i], - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + - 'INSTANCE_REPORT_ITEM_WITH_EXTREME_INSTANCES.'+ - 'EXTREME_INSTANCES')); - END_REPEAT; - - -- find shape_data_quality_inspection_instance_report - REPEAT i := 1 TO HIINDEX (ii_ei); - sdiir := sdiir + - bag_to_set( USEDIN(ii_ei[i], - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + - 'SHAPE_DATA_QUALITY_INSPECTION_INSTANCE_REPORT.'+ - 'INSPECTED_INSTANCES')); - END_REPEAT; - - -- find shape_data_quality_inspection_result_representation - REPEAT i := 1 TO HIINDEX (sdiir); - sdqr := sdqr + - QUERY(i1<* bag_to_set( USEDIN(sdiir[i].inspection_result, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.REPRESENTATION.ITEMS'))| - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + - 'SHAPE_DATA_QUALITY_INSPECTION_RESULT_REPRESENTATION' - IN TYPEOF(i1)); - END_REPEAT; - - -- find shape_data_quality_inspected_shape_and_result_relationship - REPEAT i := 1 TO HIINDEX (sdqr); - sdisr := sdisr + bag_to_set(USEDIN(sdqr[i], - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + - 'SHAPE_DATA_QUALITY_INSPECTED_SHAPE_AND_RESULT_RELATIONSHIP.'+ - 'REP_2')); - END_REPEAT; - - -- find shape_representation - REPEAT i := 1 TO HIINDEX (sdisr); - results := results + sdisr[i].rep_1; - END_REPEAT; - - RETURN (results); - END_FUNCTION; - -(* Implicit interfaced from: Externally_conditioned_data_quality_criteria_mim *) - FUNCTION validate_ecdq_inspected_elements_type - (ei:Externally_conditioned_data_quality_criterion; - type_list:BAG OF STRING):LOGICAL; - LOCAL - sdqir: SET OF - EXTERNALLY_CONDITIONED_DATA_QUALITY_INSPECTION_RESULT:=[]; - dir: SET OF - DATA_QUALITY_INSPECTION_INSTANCE_REPORT:=[]; - sdiri: SET OF - EXTERNALLY_CONDITIONED_DATA_QUALITY_INSPECTION_INSTANCE_REPORT_ITEM:=[]; - t_type_list:BAG OF STRING:=[]; - END_LOCAL; - -- STEP-1 - -- collect all externally_conditioned_data_quality_inspection_instance_report_item - -- instances associated with the given externally_conditioned_data_quality_criterion - -- via externally_conditioned_data_quality_inspection_result and - -- data_quality_inspection_instance_report - - sdqir := QUERY(q <* bag_to_set(USEDIN(ei, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.'+ - 'DATA_QUALITY_INSPECTION_RESULT.'+ - 'CRITERION_INSPECTED'))| - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.'+ - 'EXTERNALLY_CONDITIONED_DATA_QUALITY_INSPECTION_RESULT' - IN TYPEOF(q)); - IF(SIZEOF(sdqir) = 0) THEN - RETURN(TRUE); - END_IF; - REPEAT i:= 1 TO SIZEOF(sdqir); - dir := dir + QUERY(q <* bag_to_set(USEDIN(sdqir[i], - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.'+ - 'DATA_QUALITY_INSPECTION_REPORT.'+ - 'INSPECTION_RESULT'))| - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.'+ - 'DATA_QUALITY_INSPECTION_INSTANCE_REPORT' - IN TYPEOF(q)); - END_REPEAT; - IF(SIZEOF(dir) = 0) THEN - RETURN(TRUE); - END_IF; - - REPEAT i:= 1 TO SIZEOF(dir); - sdiri := sdiri + QUERY(q <* dir[i].inspected_instances| - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.'+ - 'EXTERNALLY_CONDITIONED_DATA_QUALITY_INSPECTION_INSTANCE_REPORT_ITEM' - IN TYPEOF(q)); - END_REPEAT; - - -- STEP-2 - -- check if the types of inspected_elements of the collected - -- instances are exactly coincident with the type names in the - -- type list given as an input argument of this function. - - -- If there is no instance_report_item, then this function returns true. - IF(SIZEOF(sdiri) = 0) THEN - RETURN(TRUE); - END_IF; - - -- When reports exist, then perform the following checking process. - REPEAT i:= 1 TO SIZEOF(sdiri); - -- If the size of inspected_elements is not equal to the size of - -- type_list, then return false. - IF(SIZEOF(sdiri[i].inspected_elements) <> - SIZEOF(type_list)) THEN - RETURN(FALSE); - END_IF; - -- check all elements in the type_list - -- for each element of inspected_elements. - t_type_list := type_list; - REPEAT j:= 1 TO SIZEOF(sdiri[i].inspected_elements); - REPEAT k:= 1 TO SIZEOF(t_type_list); - IF(t_type_list[k] IN - TYPEOF(sdiri[i].inspected_elements[j])) THEN - t_type_list := t_type_list - t_type_list[k]; - ESCAPE; - END_IF; - END_REPEAT; - END_REPEAT; - IF(SIZEOF(t_type_list) > 0) THEN - RETURN(FALSE); - END_IF; - END_REPEAT; - - RETURN(TRUE); - END_FUNCTION; -(* REFERENCE FROM (iso13584_generic_expressions_schema); *) -FUNCTION used_variables (arg : generic_expression) : - SET OF generic_variable; - -LOCAL - result : SET OF generic_variable := []; -END_LOCAL; - -IF 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.GENERIC_VARIABLE' - IN TYPEOF (arg) -THEN - RETURN ([arg]); -END_IF; - -IF 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.UNARY_GENERIC_EXPRESSION' - IN TYPEOF (arg) -THEN - RETURN (used_variables (arg\unary_generic_expression.operand)); -END_IF; - -IF 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.BINARY_GENERIC_EXPRESSION' - IN TYPEOF (arg) -THEN - RETURN(used_variables(arg\binary_generic_expression.operands[1]) - + used_variables (arg\binary_generic_expression.operands[2])); -END_IF; - -IF -'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MULTIPLE_ARITY_GENERIC_EXPRESSION' - IN TYPEOF (arg) -THEN - REPEAT i := 1 TO - SIZEOF(arg\multiple_arity_generic_expression.operands); - result := result + used_variables( - arg\multiple_arity_generic_expression.operands[i]); - END_REPEAT; - - RETURN (result); -END_IF; -RETURN ([ ]); -- in this case the subtype shall not contain - -- any variable (see IP1 in generic_expression) -END_FUNCTION; -- used_variables -(* REFERENCE FROM (mathematical_functions_schema); *) -FUNCTION compatible_spaces(sp1, sp2 : maths_space) : BOOLEAN; - LOCAL - types1 : SET OF STRING := stripped_typeof (sp1); - types2 : SET OF STRING := stripped_typeof (sp2); - lgcl : LOGICAL := UNKNOWN; - m, n : INTEGER; - s1, s2 : maths_space; - END_LOCAL; - IF 'FINITE_SPACE' IN types1 THEN - REPEAT i := 1 TO SIZEOF (sp1\finite_space.members); - lgcl := member_of(sp1\finite_space.members[i], sp2); - IF lgcl <> FALSE THEN - RETURN (TRUE); - END_IF; - END_REPEAT; - RETURN (FALSE); - END_IF; - IF 'FINITE_SPACE' IN types2 THEN - REPEAT i := 1 TO SIZEOF (sp2\finite_space.members); - lgcl := member_of(sp2\finite_space.members[i], sp1); - IF lgcl <> FALSE THEN - RETURN (TRUE); - END_IF; - END_REPEAT; - RETURN (FALSE); - END_IF; - IF 'ELEMENTARY_SPACE' IN types1 THEN - IF sp1\elementary_space.space_id = es_generics THEN - RETURN (TRUE); - END_IF; - IF 'ELEMENTARY_SPACE' IN types2 THEN - RETURN (compatible_es_values(sp1\elementary_space.space_id, - sp2\elementary_space.space_id)); - END_IF; - IF ('FINITE_INTEGER_INTERVAL' IN types2) OR - ('INTEGER_INTERVAL_FROM_MIN' IN types2) OR - ('INTEGER_INTERVAL_TO_MAX' IN types2) THEN - RETURN (compatible_es_values(sp1\elementary_space.space_id, es_integers)); - END_IF; - IF ('FINITE_REAL_INTERVAL' IN types2) OR - ('REAL_INTERVAL_FROM_MIN' IN types2) OR - ('REAL_INTERVAL_TO_MAX' IN types2) THEN - RETURN (compatible_es_values(sp1\elementary_space.space_id, es_reals)); - END_IF; - IF ('CARTESIAN_COMPLEX_NUMBER_REGION' IN types2) OR - ('POLAR_COMPLEX_NUMBER_REGION' IN types2) THEN - RETURN (compatible_es_values(sp1\elementary_space.space_id, es_complex_numbers)); - END_IF; - IF 'TUPLE_SPACE' IN types2 THEN - RETURN (FALSE); - END_IF; - IF 'FUNCTION_SPACE' IN types2 THEN - RETURN (bool(sp1\elementary_space.space_id = es_maths_functions)); - END_IF; - -- Should be unreachable. - RETURN (TRUE); - END_IF; - IF 'ELEMENTARY_SPACE' IN types2 THEN - IF sp2\elementary_space.space_id = es_generics THEN - RETURN (TRUE); - END_IF; - IF ('FINITE_INTEGER_INTERVAL' IN types1) OR - ('INTEGER_INTERVAL_FROM_MIN' IN types1) OR - ('INTEGER_INTERVAL_TO_MAX' IN types1) THEN - RETURN (compatible_es_values(sp2\elementary_space.space_id, es_integers)); - END_IF; - IF ('FINITE_REAL_INTERVAL' IN types1) OR - ('REAL_INTERVAL_FROM_MIN' IN types1) OR - ('REAL_INTERVAL_TO_MAX' IN types1) THEN - RETURN (compatible_es_values(sp2\elementary_space.space_id, es_reals)); - END_IF; - IF ('CARTESIAN_COMPLEX_NUMBER_REGION' IN types1) OR - ('POLAR_COMPLEX_NUMBER_REGION' IN types1) THEN - RETURN (compatible_es_values(sp2\elementary_space.space_id, es_complex_numbers)); - END_IF; - IF 'TUPLE_SPACE' IN types1 THEN - RETURN (FALSE); - END_IF; - IF 'FUNCTION_SPACE' IN types1 THEN - RETURN (bool(sp2\elementary_space.space_id = es_maths_functions)); - END_IF; - -- Should be unreachable. - RETURN (TRUE); - END_IF; - IF subspace_of_es(sp1,es_integers) THEN -- Note that sp1 finite already handled. - IF subspace_of_es(sp2,es_integers) THEN -- Note that sp2 finite already handled. - RETURN (compatible_intervals(sp1,sp2)); - END_IF; - RETURN (FALSE); - END_IF; - IF subspace_of_es(sp2,es_integers) THEN - RETURN (FALSE); - END_IF; - IF subspace_of_es(sp1,es_reals) THEN -- Note that sp1 finite already handled. - IF subspace_of_es(sp2,es_reals) THEN -- Note that sp2 finite already handled. - RETURN (compatible_intervals(sp1,sp2)); - END_IF; - RETURN (FALSE); - END_IF; - IF subspace_of_es(sp2,es_reals) THEN - RETURN (FALSE); - END_IF; - IF subspace_of_es(sp1,es_complex_numbers) THEN -- Note sp1 finite already handled. - IF subspace_of_es(sp2,es_complex_numbers) THEN -- Note sp2 finite already handled. - RETURN (compatible_complex_number_regions(sp1,sp2)); - END_IF; - RETURN (FALSE); - END_IF; - IF subspace_of_es(sp2,es_complex_numbers) THEN - RETURN (FALSE); - END_IF; - IF 'UNIFORM_PRODUCT_SPACE' IN types1 THEN - IF 'UNIFORM_PRODUCT_SPACE' IN types2 THEN - IF sp1\uniform_product_space.exponent <> sp2\uniform_product_space.exponent THEN - RETURN (FALSE); - END_IF; - RETURN (compatible_spaces(sp1\uniform_product_space.base, - sp2\uniform_product_space.base)); - END_IF; - IF 'LISTED_PRODUCT_SPACE' IN types2 THEN - n := SIZEOF (sp2\listed_product_space.factors); - IF sp1\uniform_product_space.exponent <> n THEN - RETURN (FALSE); - END_IF; - REPEAT i := 1 TO n; - IF NOT compatible_spaces(sp1\uniform_product_space.base, - sp2\listed_product_space.factors[i]) THEN - RETURN (FALSE); - END_IF; - END_REPEAT; - RETURN (TRUE); - END_IF; - IF 'EXTENDED_TUPLE_SPACE' IN types2 THEN - m := sp1\uniform_product_space.exponent; - n := space_dimension(sp2\extended_tuple_space.base); - IF m < n THEN - RETURN (FALSE); - END_IF; - IF m = n THEN - RETURN (compatible_spaces(sp1, sp2\extended_tuple_space.base)); - END_IF; - RETURN (compatible_spaces(sp1, assoc_product_space( - sp2\extended_tuple_space.base, make_uniform_product_space( - sp2\extended_tuple_space.extender, m - n)))); - END_IF; - IF 'FUNCTION_SPACE' IN types2 THEN - RETURN (FALSE); - END_IF; - -- Should be unreachable. - RETURN (TRUE); - END_IF; - IF 'LISTED_PRODUCT_SPACE' IN types1 THEN - n := SIZEOF (sp1\listed_product_space.factors); - IF 'UNIFORM_PRODUCT_SPACE' IN types2 THEN - IF n <> sp2\uniform_product_space.exponent THEN - RETURN (FALSE); - END_IF; - REPEAT i := 1 TO n; - IF NOT compatible_spaces(sp2\uniform_product_space.base, - sp1\listed_product_space.factors[i]) THEN - RETURN (FALSE); - END_IF; - END_REPEAT; - RETURN (TRUE); - END_IF; - IF 'LISTED_PRODUCT_SPACE' IN types2 THEN - IF n <> SIZEOF (sp2\listed_product_space.factors) THEN - RETURN (FALSE); - END_IF; - REPEAT i := 1 TO n; - IF NOT compatible_spaces(sp1\listed_product_space.factors[i], - sp2\listed_product_space.factors[i]) THEN - RETURN (FALSE); - END_IF; - END_REPEAT; - RETURN (TRUE); - END_IF; - IF 'EXTENDED_TUPLE_SPACE' IN types2 THEN - m := space_dimension(sp2\extended_tuple_space.base); - IF n < m THEN - RETURN (FALSE); - END_IF; - IF n = m THEN - RETURN (compatible_spaces(sp1, sp2\extended_tuple_space.base)); - END_IF; - RETURN (compatible_spaces(sp1, assoc_product_space( - sp2\extended_tuple_space.base, make_uniform_product_space( - sp2\extended_tuple_space.extender, n - m)))); - END_IF; - IF (schema_prefix + 'FUNCTION_SPACE') IN types2 THEN - RETURN (FALSE); - END_IF; - -- Should be unreachable. - RETURN (TRUE); - END_IF; - IF 'EXTENDED_TUPLE_SPACE' IN types1 THEN - IF ('UNIFORM_PRODUCT_SPACE' IN types2) OR - ('LISTED_PRODUCT_SPACE' IN types2) THEN - RETURN (compatible_spaces(sp2, sp1)); - END_IF; - IF 'EXTENDED_TUPLE_SPACE' IN types2 THEN - IF NOT compatible_spaces(sp1\extended_tuple_space.extender, - sp2\extended_tuple_space.extender) THEN - RETURN (FALSE); - END_IF; - n := space_dimension(sp1\extended_tuple_space.base); - m := space_dimension(sp2\extended_tuple_space.base); - IF n < m THEN - RETURN (compatible_spaces(assoc_product_space(sp1\extended_tuple_space.base, - make_uniform_product_space(sp1\extended_tuple_space.extender, m - n)), - sp2\extended_tuple_space.base)); - END_IF; - IF n = m THEN - RETURN (compatible_spaces(sp1\extended_tuple_space.base, - sp2\extended_tuple_space.base)); - END_IF; - IF n > m THEN - RETURN (compatible_spaces(sp1\extended_tuple_space.base, - assoc_product_space(sp2\extended_tuple_space.base, - make_uniform_product_space(sp2\extended_tuple_space.extender, n - m)))); - END_IF; - END_IF; - IF 'FUNCTION_SPACE' IN types2 THEN - RETURN (FALSE); - END_IF; - -- Should be unreachable. - RETURN (TRUE); - END_IF; - IF 'FUNCTION_SPACE' IN types1 THEN - IF 'FUNCTION_SPACE' IN types2 THEN - s1 := sp1\function_space.domain_argument; - s2 := sp2\function_space.domain_argument; - CASE sp1\function_space.domain_constraint OF - sc_equal : BEGIN - CASE sp2\function_space.domain_constraint OF - sc_equal : lgcl := subspace_of(s1, s2) AND subspace_of(s2, s1); - sc_subspace : lgcl := subspace_of(s1, s2); - sc_member : lgcl := member_of(s1, s2); - END_CASE; - END; - sc_subspace :BEGIN - CASE sp2\function_space.domain_constraint OF - sc_equal : lgcl := subspace_of(s2, s1); - sc_subspace : lgcl := compatible_spaces(s1, s2); - sc_member : lgcl := UNKNOWN; - END_CASE; - END; - sc_member :BEGIN - CASE sp2\function_space.domain_constraint OF - sc_equal : lgcl := member_of(s2, s1); - sc_subspace : lgcl := UNKNOWN; - sc_member : lgcl := compatible_spaces(s1, s2); - END_CASE; - END; - END_CASE; - IF lgcl = FALSE THEN - RETURN (FALSE); - END_IF; - s1 := sp1\function_space.range_argument; - s2 := sp2\function_space.range_argument; - CASE sp1\function_space.range_constraint OF - sc_equal : BEGIN - CASE sp2\function_space.range_constraint OF - sc_equal : lgcl := subspace_of(s1, s2) AND subspace_of(s2, s1); - sc_subspace : lgcl := subspace_of(s1, s2); - sc_member : lgcl := member_of(s1, s2); - END_CASE; - END; - sc_subspace :BEGIN - CASE sp2\function_space.range_constraint OF - sc_equal : lgcl := subspace_of(s2, s1); - sc_subspace : lgcl := compatible_spaces(s1, s2); - sc_member : lgcl := UNKNOWN; - END_CASE; - END; - sc_member :BEGIN - CASE sp2\function_space.range_constraint OF - sc_equal : lgcl := member_of(s2, s1); - sc_subspace : lgcl := UNKNOWN; - sc_member : lgcl := compatible_spaces(s1, s2); - END_CASE; - END; - END_CASE; - IF lgcl = FALSE THEN - RETURN (FALSE); - END_IF; - RETURN (TRUE); - END_IF; - -- Should be unreachable. - RETURN (TRUE); - END_IF; - -- Should be unreachable. - RETURN (TRUE); -END_FUNCTION; -- compatible_spaces - -(* Implicit interfaced from: mathematical_functions_schema *) -FUNCTION stripped_typeof(arg : GENERIC:G) : SET OF STRING; - LOCAL - types : SET OF STRING := TYPEOF (arg); - stypes : SET OF STRING := []; - n : INTEGER := LENGTH (schema_prefix); - END_LOCAL; - REPEAT i := 1 TO SIZEOF (types); - IF types[i][1:n] = schema_prefix THEN - stypes := stypes + types[i][n+1:LENGTH(types[i])]; - ELSE - stypes := stypes + types[i]; - END_IF; - END_REPEAT; - RETURN (stypes); -END_FUNCTION; -- stripped_typeof - -(* Implicit interfaced from: mathematical_functions_schema *) -FUNCTION member_of(val : GENERIC:G; - spc : maths_space) : LOGICAL; - - -- Trivial function introduced to avoid NIST Fedex compiler error - FUNCTION fedex(val : AGGREGATE OF GENERIC:X; - i : INTEGER) : GENERIC:X; - RETURN (val[i]); - END_FUNCTION; -- fedex - - LOCAL - v : maths_value := simplify_maths_value (convert_to_maths_value (val)); - vtypes : SET OF STRING := stripped_typeof (v); - s : maths_space := simplify_maths_space (spc); - stypes : SET OF STRING := stripped_typeof (s); - tmp_int : INTEGER; - tmp_real : REAL; - tmp_cmplx : complex_number_literal; - lgcl, cum : LOGICAL; - vspc, sspc : maths_space; - smem : SET OF maths_value; - factors : LIST OF maths_space; - END_LOCAL; - IF NOT EXISTS (s) THEN - RETURN (FALSE); - END_IF; - IF NOT EXISTS (v) THEN - RETURN (s = the_generics); - END_IF; - IF ('GENERIC_EXPRESSION' IN vtypes) AND - NOT ('MATHS_SPACE' IN vtypes) AND - NOT ('MATHS_FUNCTION' IN vtypes) AND - NOT ('COMPLEX_NUMBER_LITERAL' IN vtypes) THEN - IF has_values_space (v) THEN - vspc := values_space_of (v); - IF subspace_of (vspc, s) THEN - RETURN (TRUE); - END_IF; - IF NOT compatible_spaces (vspc, s) THEN - RETURN (FALSE); - END_IF; - RETURN (UNKNOWN); - END_IF; - RETURN (UNKNOWN); - END_IF; - IF 'ELEMENTARY_SPACE' IN stypes THEN - CASE s\elementary_space.space_id OF - es_numbers : RETURN (('NUMBER' IN vtypes) OR - ('COMPLEX_NUMBER_LITERAL' IN vtypes)); - es_complex_numbers : RETURN ('COMPLEX_NUMBER_LITERAL' IN vtypes); - es_reals : RETURN (('REAL' IN vtypes) AND NOT ('INTEGER' IN vtypes)); - es_integers : RETURN ('INTEGER' IN vtypes); - es_logicals : RETURN ('LOGICAL' IN vtypes); - es_booleans : RETURN ('BOOLEAN' IN vtypes); - es_strings : RETURN ('STRING' IN vtypes); - es_binarys : RETURN ('BINARY' IN vtypes); - es_maths_spaces : RETURN ('MATHS_SPACE' IN vtypes); - es_maths_functions : RETURN ('MATHS_FUNCTION' IN vtypes); - es_generics : RETURN (TRUE); - END_CASE; - END_IF; - IF 'FINITE_INTEGER_INTERVAL' IN stypes THEN - IF 'INTEGER' IN vtypes THEN - tmp_int := v; - RETURN ({s\finite_integer_interval.min <= tmp_int <= - s\finite_integer_interval.max}); - END_IF; - RETURN (FALSE); - END_IF; - IF 'INTEGER_INTERVAL_FROM_MIN' IN stypes THEN - IF 'INTEGER' IN vtypes THEN - tmp_int := v; - RETURN (s\integer_interval_from_min.min <= tmp_int); - END_IF; - RETURN (FALSE); - END_IF; - IF 'INTEGER_INTERVAL_TO_MAX' IN stypes THEN - IF 'INTEGER' IN vtypes THEN - tmp_int := v; - RETURN (tmp_int <= s\integer_interval_to_max.max); - END_IF; - RETURN (FALSE); - END_IF; - IF 'FINITE_REAL_INTERVAL' IN stypes THEN - IF ('REAL' IN vtypes) AND NOT ('INTEGER' IN vtypes) THEN - tmp_real := v; - IF s\finite_real_interval.min_closure = closed THEN - IF s\finite_real_interval.max_closure = closed THEN - RETURN ({s\finite_real_interval.min <= tmp_real <= - s\finite_real_interval.max}); - ELSE - RETURN ({s\finite_real_interval.min <= tmp_real < - s\finite_real_interval.max}); - END_IF; - ELSE - IF s\finite_real_interval.max_closure = closed THEN - RETURN ({s\finite_real_interval.min < tmp_real <= - s\finite_real_interval.max}); - ELSE - RETURN ({s\finite_real_interval.min < tmp_real < - s\finite_real_interval.max}); - END_IF; - END_IF; - END_IF; - RETURN (FALSE); - END_IF; - IF 'REAL_INTERVAL_FROM_MIN' IN stypes THEN - IF ('REAL' IN vtypes) AND NOT ('INTEGER' IN vtypes) THEN - tmp_real := v; - IF s\real_interval_from_min.min_closure = closed THEN - RETURN (s\real_interval_from_min.min <= tmp_real); - ELSE - RETURN (s\real_interval_from_min.min < tmp_real); - END_IF; - END_IF; - RETURN (FALSE); - END_IF; - IF 'REAL_INTERVAL_TO_MAX' IN stypes THEN - IF ('REAL' IN vtypes) AND NOT ('INTEGER' IN vtypes) THEN - tmp_real := v; - IF s\real_interval_to_max.max_closure = closed THEN - RETURN (tmp_real <= s\real_interval_to_max.max); - ELSE - RETURN (tmp_real < s\real_interval_to_max.max); - END_IF; - END_IF; - RETURN (FALSE); - END_IF; - IF 'CARTESIAN_COMPLEX_NUMBER_REGION' IN stypes THEN - IF 'COMPLEX_NUMBER_LITERAL' IN vtypes THEN - RETURN (member_of(v\complex_number_literal.real_part, - s\cartesian_complex_number_region.real_constraint) AND - member_of(v\complex_number_literal.imag_part, - s\cartesian_complex_number_region.imag_constraint)); - END_IF; - RETURN (FALSE); - END_IF; - IF 'POLAR_COMPLEX_NUMBER_REGION' IN stypes THEN - IF 'COMPLEX_NUMBER_LITERAL' IN vtypes THEN - tmp_cmplx := v; - tmp_cmplx.real_part := tmp_cmplx.real_part - - s\polar_complex_number_region.centre.real_part; - tmp_cmplx.imag_part := tmp_cmplx.imag_part - - s\polar_complex_number_region.centre.imag_part; - tmp_real := SQRT (tmp_cmplx.real_part**2 + tmp_cmplx.imag_part**2); - IF NOT member_of(tmp_real, - s\polar_complex_number_region.distance_constraint) THEN - RETURN (FALSE); - END_IF; - IF tmp_real = 0.0 THEN - RETURN (TRUE); -- The centre has no direction. - END_IF; - tmp_real := atan2(tmp_cmplx.imag_part,tmp_cmplx.real_part); - RETURN (member_of(tmp_real, - s\polar_complex_number_region.direction_constraint) OR - member_of(tmp_real + 2.0*PI, - s\polar_complex_number_region.direction_constraint)); - END_IF; - RETURN (FALSE); - END_IF; - IF 'FINITE_SPACE' IN stypes THEN - smem := s\finite_space.members; - cum := FALSE; - REPEAT i := 1 TO SIZEOF (smem); - cum := cum OR equal_maths_values(v,smem[i]); - IF cum = TRUE THEN - RETURN (TRUE); - END_IF; - END_REPEAT; - RETURN (cum); - END_IF; - IF 'UNIFORM_PRODUCT_SPACE' IN stypes THEN - IF 'LIST' IN vtypes THEN - IF SIZEOF (v) = s\uniform_product_space.exponent THEN - sspc := s\uniform_product_space.base; - cum := TRUE; - REPEAT i := 1 TO SIZEOF (v); - cum := cum AND member_of(v[i],sspc); --- cum := cum AND member_of (fedex (v, i), sspc); - -- See note above for explanation of fedex() - IF cum = FALSE THEN - RETURN (FALSE); - END_IF; - END_REPEAT; - RETURN (cum); - END_IF; - END_IF; - RETURN (FALSE); - END_IF; - IF 'LISTED_PRODUCT_SPACE' IN stypes THEN - IF 'LIST' IN vtypes THEN - factors := s\listed_product_space.factors; - IF SIZEOF (v) = SIZEOF (factors) THEN - cum := TRUE; - REPEAT i := 1 TO SIZEOF (v); - cum := cum AND member_of(v[i],factors[i]); --- cum := cum AND member_of (fedex (v, i), factors[i]); - -- See note above for explanation of fedex() - IF cum = FALSE THEN - RETURN (FALSE); - END_IF; - END_REPEAT; - RETURN (cum); - END_IF; - END_IF; - RETURN (FALSE); - END_IF; - IF 'EXTENDED_TUPLE_SPACE' IN stypes THEN - IF 'LIST' IN vtypes THEN - sspc := s\extended_tuple_space.base; - tmp_int := space_dimension(sspc); - IF SIZEOF (v) >= tmp_int THEN - cum := TRUE; - REPEAT i := 1 TO tmp_int; - cum := cum AND member_of(v[i],factor_space(sspc,i)); --- cum := cum AND member_of (fedex (v, i), factor_space (sspc, i)); - -- See note above for explanation of fedex() - IF cum = FALSE THEN - RETURN (FALSE); - END_IF; - END_REPEAT; - sspc := s\extended_tuple_space.extender; - REPEAT i := tmp_int+1 TO SIZEOF (v); - cum := cum AND member_of(v[i],sspc); - IF cum = FALSE THEN - RETURN (FALSE); - END_IF; - END_REPEAT; - RETURN (cum); - END_IF; - END_IF; - RETURN (FALSE); - END_IF; - IF 'FUNCTION_SPACE' IN stypes THEN - IF 'MATHS_FUNCTION' IN vtypes THEN - vspc := v\maths_function.domain; - sspc := s\function_space.domain_argument; - CASE s\function_space.domain_constraint OF - sc_equal : cum := equal_maths_spaces (vspc, sspc); - sc_subspace : cum := subspace_of (vspc, sspc); - sc_member : cum := member_of (vspc, sspc); - END_CASE; - IF cum = FALSE THEN - RETURN (FALSE); - END_IF; - vspc := v\maths_function.range; - sspc := s\function_space.range_argument; - CASE s\function_space.range_constraint OF - sc_equal : cum := cum AND equal_maths_spaces (vspc, sspc); - sc_subspace : cum := cum AND subspace_of (vspc, sspc); - sc_member : cum := cum AND member_of (vspc, sspc); - END_CASE; - RETURN (cum); - END_IF; - RETURN (FALSE); - END_IF; - -- Should be unreachable - RETURN (UNKNOWN); -END_FUNCTION; -- member_of - -(* Implicit interfaced from: mathematical_functions_schema *) -FUNCTION simplify_maths_value(val : maths_value) : maths_value; - LOCAL - vtypes : SET OF STRING := stripped_typeof(val); - vlist : LIST OF maths_value; - nlist : LIST OF maths_value := []; - END_LOCAL; - IF 'GENERIC_EXPRESSION' IN vtypes THEN - RETURN (simplify_generic_expression(val)); - END_IF; - IF 'LIST' IN vtypes THEN - vlist := val; - REPEAT i := 1 TO SIZEOF (vlist); - INSERT (nlist, simplify_maths_value(vlist[i]), i-1); - END_REPEAT; - RETURN (convert_to_maths_value(nlist)); - END_IF; - RETURN (val); -END_FUNCTION; -- simplify_maths_value - -(* Implicit interfaced from: mathematical_functions_schema *) -FUNCTION simplify_generic_expression(expr : generic_expression) : maths_value; - FUNCTION restore_unary(expr : unary_generic_expression; - opnd : generic_expression) : generic_expression; - expr.operand := opnd; - RETURN (expr); - END_FUNCTION; -- restore_unary - FUNCTION restore_binary(expr : binary_generic_expression; - opd1, opd2 : generic_expression) : generic_expression; - expr.operands[1] := opd1; - expr.operands[2] := opd2; - RETURN (expr); - END_FUNCTION; -- restore_binary - FUNCTION restore_mulary(expr : multiple_arity_generic_expression; - ops : LIST OF generic_expression) : generic_expression; - expr.operands := ops; - RETURN (expr); - END_FUNCTION; -- restore_mulary - FUNCTION make_number_literal(nmb : NUMBER) : generic_literal; - IF 'INTEGER' IN TYPEOF (nmb) THEN RETURN (make_int_literal(nmb)); END_IF; - RETURN (make_real_literal(nmb)); - END_FUNCTION; -- make_number_literal; - LOCAL - types : SET OF STRING := stripped_typeof (expr); - v1, v2 : maths_value; - vlist : LIST OF maths_value := []; - op1, op2 : generic_expression; - oplist : LIST OF generic_expression := []; - opnds : LIST [2:?] OF generic_expression; - n, m : INTEGER; - finfun : maths_function_select; - boo : BOOLEAN; - str : STRING; - nmb : NUMBER; - END_LOCAL; - -- Unwrap the elementary kinds of literals - IF 'INT_LITERAL' IN types THEN - RETURN (convert_to_maths_value (expr\int_literal.the_value)); - END_IF; - IF 'REAL_LITERAL' IN types THEN - RETURN (convert_to_maths_value (expr\real_literal.the_value)); - END_IF; - IF 'BOOLEAN_LITERAL' IN types THEN - RETURN (convert_to_maths_value (expr\boolean_literal.the_value)); - END_IF; - IF 'STRING_LITERAL' IN types THEN - RETURN (convert_to_maths_value (expr\string_literal.the_value)); - END_IF; - IF 'COMPLEX_NUMBER_LITERAL' IN types THEN - RETURN (expr); -- No simpler expression available - END_IF; - IF 'LOGICAL_LITERAL' IN types THEN - RETURN (convert_to_maths_value (expr\logical_literal.lit_value)); - END_IF; - IF 'BINARY_LITERAL' IN types THEN - RETURN (convert_to_maths_value (expr\binary_literal.lit_value)); - END_IF; - IF 'MATHS_ENUM_LITERAL' IN types THEN - RETURN (expr\maths_enum_literal.lit_value); - END_IF; - IF 'REAL_TUPLE_LITERAL' IN types THEN - RETURN (convert_to_maths_value (expr\real_tuple_literal.lit_value)); - END_IF; - IF 'INTEGER_TUPLE_LITERAL' IN types THEN - RETURN (convert_to_maths_value (expr\integer_tuple_literal.lit_value)); - END_IF; - IF 'ATOM_BASED_LITERAL' IN types THEN - RETURN (expr\atom_based_literal.lit_value); - END_IF; - IF 'MATHS_TUPLE_LITERAL' IN types THEN - RETURN (convert_to_maths_value (expr\maths_tuple_literal.lit_value)); - END_IF; - -- Simplify one special class of literals - IF 'MATHS_SPACE' IN types THEN - RETURN (simplify_maths_space(expr)); - END_IF; - -- Simplify one special kind of expression - IF 'FUNCTION_APPLICATION' IN types THEN - RETURN (simplify_function_application(expr)); - END_IF; - -- Separate and simplify the operands - IF 'UNARY_GENERIC_EXPRESSION' IN types THEN - v1 := simplify_generic_expression(expr\unary_generic_expression.operand); - op1 := convert_to_operand(v1); - END_IF; - IF 'BINARY_GENERIC_EXPRESSION' IN types THEN - v1 := simplify_generic_expression(expr\binary_generic_expression.operands[1]); - op1 := convert_to_operand(v1); - v2 := simplify_generic_expression(expr\binary_generic_expression.operands[2]); - op2 := convert_to_operand(v2); - END_IF; - IF 'MULTIPLE_ARITY_GENERIC_EXPRESSION' IN types THEN - opnds := expr\multiple_arity_generic_expression.operands; - REPEAT i := 1 TO SIZEOF (opnds); - v1 := simplify_generic_expression(opnds[i]); - INSERT (vlist, v1, i-1); - INSERT (oplist, convert_to_operand(v1), i-1); - END_REPEAT; - END_IF; - -- Simplify the one kind of maths_function which derives its operands. - IF 'PARALLEL_COMPOSED_FUNCTION' IN types THEN - v1 := vlist[1]; - n := SIZEOF (vlist); - finfun := vlist[n]; - REMOVE (vlist, n); - REMOVE (vlist, 1); - RETURN (make_parallel_composed_function(v1,vlist,finfun)); - END_IF; - -- Simplify individual kinds of expressions. It is not necessary to cover all cases. - IF ('ABS_EXPRESSION' IN types) AND ('NUMBER' IN TYPEOF (v1)) THEN - RETURN (convert_to_maths_value (ABS(v1))); - END_IF; - IF ('ACOS_EXPRESSION' IN types) AND ('NUMBER' IN TYPEOF (v1)) THEN - RETURN (convert_to_maths_value (ACOS(v1))); - END_IF; - IF 'AND_EXPRESSION' IN types THEN - REPEAT i := SIZEOF (vlist) TO 1 BY -1; - IF 'BOOLEAN' IN TYPEOF (vlist[i]) THEN - boo := vlist[i]; - IF NOT boo THEN RETURN (convert_to_maths_value(FALSE)); END_IF; - REMOVE (oplist, i); - END_IF; - END_REPEAT; - IF SIZEOF (oplist) = 0 THEN RETURN (convert_to_maths_value(TRUE)); END_IF; - IF SIZEOF (oplist) = 1 THEN RETURN (oplist[1]); END_IF; - END_IF; - IF ('ASIN_EXPRESSION' IN types) AND ('NUMBER' IN TYPEOF (v1)) THEN - RETURN (convert_to_maths_value (ASIN(v1))); - END_IF; - IF ('ATAN_EXPRESSION' IN types) AND - ('NUMBER' IN TYPEOF (v1)) AND ('NUMBER' IN TYPEOF (v2)) THEN - RETURN (convert_to_maths_value (ATAN(v1,v2))); - END_IF; - IF ('COMPARISON_EXPRESSION' IN types) AND ( - (('NUMBER' IN TYPEOF (v1)) AND ('NUMBER' IN TYPEOF (v2))) OR - (('STRING' IN TYPEOF (v1)) AND ('STRING' IN TYPEOF (v2))) OR - (('BOOLEAN' IN TYPEOF (v1)) AND ('BOOLEAN' IN TYPEOF (v2))) ) THEN - IF 'COMPARISON_EQUAL' IN types THEN boo := bool(v1 = v2); - ELSE IF 'COMPARISON_GREATER' IN types THEN boo := bool(v1 > v2); - ELSE IF 'COMPARISON_GREATER_EQUAL' IN types THEN boo := bool(v1 >= v2); - ELSE IF 'COMPARISON_LESS' IN types THEN boo := bool(v1 < v2); - ELSE IF 'COMPARISON_LESS_EQUAL' IN types THEN boo := bool(v1 <= v2); - ELSE IF 'COMPARISON_NOT_EQUAL' IN types THEN boo := bool(v1 <> v2); - ELSE IF 'LIKE_EXPRESSION' IN types THEN boo := bool(v1 LIKE v2); - ELSE RETURN (?); -- Unreachable - END_IF; END_IF; END_IF; END_IF; END_IF; END_IF; END_IF; - RETURN (convert_to_maths_value (boo)); - END_IF; - IF 'CONCAT_EXPRESSION' IN types THEN - str := ''; - REPEAT i := SIZEOF (vlist) TO 1 BY -1; - IF 'STRING' IN TYPEOF (vlist[i]) THEN - str := vlist[i] + str; - REMOVE (oplist, i); - ELSE IF LENGTH(str) > 0 THEN - INSERT (oplist, make_string_literal(str), i); - str := ''; - END_IF; END_IF; - END_REPEAT; - IF SIZEOF (oplist) = 0 THEN RETURN (convert_to_maths_value(str)); END_IF; - IF LENGTH(str) > 0 THEN INSERT (oplist, make_string_literal(str), 0); END_IF; - IF SIZEOF (oplist) = 1 THEN RETURN (oplist[1]); END_IF; - END_IF; - IF ('COS_EXPRESSION' IN types) AND ('NUMBER' IN TYPEOF (v1)) THEN - RETURN (convert_to_maths_value (COS(v1))); - END_IF; - IF ('DIV_EXPRESSION' IN types) AND - ('NUMBER' IN TYPEOF (v1)) AND ('NUMBER' IN TYPEOF (v2)) THEN - RETURN (convert_to_maths_value (v1 DIV v2)); - END_IF; - IF 'EQUALS_EXPRESSION' IN types THEN - opnds := expr\binary_generic_expression.operands; - RETURN (convert_to_maths_value (opnds[1] :=: opnds[2])); - END_IF; - IF ('EXP_EXPRESSION' IN types) AND ('NUMBER' IN TYPEOF (v1)) THEN - RETURN (convert_to_maths_value (EXP(v1))); - END_IF; - IF ('FORMAT_EXPRESSION' IN types) AND - ('NUMBER' IN TYPEOF (v1)) AND ('STRING' IN TYPEOF (v2)) THEN - RETURN (convert_to_maths_value (FORMAT(v1,v2))); - END_IF; - IF ('INDEX_EXPRESSION' IN types) AND - ('STRING' IN TYPEOF (v1)) AND ('NUMBER' IN TYPEOF (v2)) THEN - str := v1; n := v2; - RETURN (convert_to_maths_value (str[n])); - END_IF; - IF ('INT_VALUE_EXPRESSION' IN types) AND ('STRING' IN TYPEOF (v1)) THEN - RETURN (convert_to_maths_value (VALUE(v1))); - END_IF; - IF 'INTERVAL_EXPRESSION' IN types THEN - str := ''; - IF 'NUMBER' IN TYPEOF (vlist[1]) THEN str := 'NUMBER'; END_IF; - IF 'STRING' IN TYPEOF (vlist[1]) THEN str := 'STRING'; END_IF; - IF 'BOOLEAN' IN TYPEOF (vlist[1]) THEN str := 'BOOLEAN'; END_IF; - IF (LENGTH (str) > 0) AND (str IN TYPEOF (vlist[2])) AND - (str IN TYPEOF (vlist[3])) THEN - RETURN (convert_to_maths_value ({vlist[1] <= vlist[2] <= vlist[3]})); - END_IF; - END_IF; - IF ('LENGTH_EXPRESSION' IN types) AND ('STRING' IN TYPEOF (v1)) THEN - RETURN (convert_to_maths_value (LENGTH(v1))); - END_IF; - IF ('LOG_EXPRESSION' IN types) AND ('NUMBER' IN TYPEOF (v1)) THEN - RETURN (convert_to_maths_value (LOG(v1))); - END_IF; - IF ('LOG10_EXPRESSION' IN types) AND ('NUMBER' IN TYPEOF (v1)) THEN - RETURN (convert_to_maths_value (LOG10(v1))); - END_IF; - IF ('LOG2_EXPRESSION' IN types) AND ('NUMBER' IN TYPEOF (v1)) THEN - RETURN (convert_to_maths_value (LOG2(v1))); - END_IF; - IF 'MAXIMUM_EXPRESSION' IN types THEN - boo := FALSE; - REPEAT i := SIZEOF (vlist) TO 1 BY -1; - IF 'NUMBER' IN TYPEOF (vlist[i]) THEN - IF boo THEN - IF nmb < vlist[i] THEN nmb := vlist[i]; END_IF; - ELSE - nmb := vlist[i]; boo := TRUE; - END_IF; - REMOVE (oplist, i); - END_IF; - END_REPEAT; - IF SIZEOF (oplist) = 0 THEN RETURN (convert_to_maths_value(nmb)); END_IF; - IF boo THEN INSERT (oplist, make_number_literal(nmb), 0); END_IF; - END_IF; - IF 'MINIMUM_EXPRESSION' IN types THEN - boo := FALSE; - REPEAT i := SIZEOF (vlist) TO 1 BY -1; - IF 'NUMBER' IN TYPEOF (vlist[i]) THEN - IF boo THEN - IF nmb > vlist[i] THEN nmb := vlist[i]; END_IF; - ELSE - nmb := vlist[i]; boo := TRUE; - END_IF; - REMOVE (oplist, i); - END_IF; - END_REPEAT; - IF SIZEOF (oplist) = 0 THEN RETURN (convert_to_maths_value(nmb)); END_IF; - IF boo THEN INSERT (oplist, make_number_literal(nmb), 0); END_IF; - END_IF; - IF ('MINUS_EXPRESSION' IN types) AND - ('NUMBER' IN TYPEOF (v1)) AND ('NUMBER' IN TYPEOF (v2)) THEN - RETURN (convert_to_maths_value (v1 - v2)); - END_IF; - IF ('MOD_EXPRESSION' IN types) AND - ('NUMBER' IN TYPEOF (v1)) AND ('NUMBER' IN TYPEOF (v2)) THEN - RETURN (convert_to_maths_value (v1 MOD v2)); - END_IF; - IF 'MULT_EXPRESSION' IN types THEN - nmb := 1; - REPEAT i := SIZEOF (vlist) TO 1 BY -1; - IF 'NUMBER' IN TYPEOF (vlist[i]) THEN - nmb := nmb * vlist[i]; - REMOVE (oplist, i); - END_IF; - END_REPEAT; - IF SIZEOF (oplist) = 0 THEN RETURN (convert_to_maths_value(nmb)); END_IF; - IF nmb <> 1 THEN INSERT (oplist, make_number_literal(nmb), 0); END_IF; - IF SIZEOF (oplist) = 1 THEN RETURN (oplist[1]); END_IF; - END_IF; - IF ('NOT_EXPRESSION' IN types) AND ('BOOLEAN' IN TYPEOF (v1)) THEN - boo := v1; - RETURN (convert_to_maths_value (NOT(boo))); - END_IF; - IF ('ODD_EXPRESSION' IN types) AND ('INTEGER' IN TYPEOF (v1)) THEN - RETURN (convert_to_maths_value (ODD(v1))); - END_IF; - IF 'OR_EXPRESSION' IN types THEN - REPEAT i := SIZEOF (vlist) TO 1 BY -1; - IF 'BOOLEAN' IN TYPEOF (vlist[i]) THEN - boo := vlist[i]; - IF boo THEN RETURN (convert_to_maths_value(TRUE)); END_IF; - REMOVE (oplist, i); - END_IF; - END_REPEAT; - IF SIZEOF (oplist) = 0 THEN RETURN (convert_to_maths_value(FALSE)); END_IF; - IF SIZEOF (oplist) = 1 THEN RETURN (oplist[1]); END_IF; - END_IF; - IF 'PLUS_EXPRESSION' IN types THEN - nmb := 0; - REPEAT i := SIZEOF (vlist) TO 1 BY -1; - IF 'NUMBER' IN TYPEOF (vlist[i]) THEN - nmb := nmb + vlist[i]; - REMOVE (oplist, i); - END_IF; - END_REPEAT; - IF SIZEOF (oplist) = 0 THEN RETURN (convert_to_maths_value(nmb)); END_IF; - IF nmb <> 0 THEN INSERT (oplist, make_number_literal(nmb), 0); END_IF; - IF SIZEOF (oplist) = 1 THEN RETURN (oplist[1]); END_IF; - END_IF; - IF ('POWER_EXPRESSION' IN types) AND - ('NUMBER' IN TYPEOF (v1)) AND ('NUMBER' IN TYPEOF (v2)) THEN - RETURN (convert_to_maths_value (v1 ** v2)); - END_IF; - IF ('SIN_EXPRESSION' IN types) AND ('NUMBER' IN TYPEOF (v1)) THEN - RETURN (convert_to_maths_value (SIN(v1))); - END_IF; - IF ('SLASH_EXPRESSION' IN types) AND - ('NUMBER' IN TYPEOF (v1)) AND ('NUMBER' IN TYPEOF (v2)) THEN - RETURN (convert_to_maths_value (v1 / v2)); - END_IF; - IF ('SQUARE_ROOT_EXPRESSION' IN types) AND ('NUMBER' IN TYPEOF (v1)) THEN - RETURN (convert_to_maths_value (SQRT(v1))); - END_IF; - IF ('SUBSTRING_EXPRESSION' IN types) AND - ('STRING' IN TYPEOF (vlist[1])) AND ('NUMBER' IN TYPEOF (vlist[2])) AND - ('NUMBER' IN TYPEOF (vlist[3])) THEN - str := vlist[1]; n := vlist[2]; m := vlist[3]; - RETURN (convert_to_maths_value (str[n:m])); - END_IF; - IF ('TAN_EXPRESSION' IN types) AND ('NUMBER' IN TYPEOF (v1)) THEN - RETURN (convert_to_maths_value (TAN(v1))); - END_IF; - IF ('UNARY_MINUS_EXPRESSION' IN types) AND ('NUMBER' IN TYPEOF (v1)) THEN - nmb := v1; - RETURN (convert_to_maths_value (-nmb)); - END_IF; - IF ('VALUE_EXPRESSION' IN types) AND ('STRING' IN TYPEOF (v1)) THEN - RETURN (convert_to_maths_value (VALUE(v1))); - END_IF; - IF ('XOR_EXPRESSION' IN types) AND - ('BOOLEAN' IN TYPEOF (v1)) AND ('BOOLEAN' IN TYPEOF (v2)) THEN - RETURN (convert_to_maths_value (v1 XOR v2)); - END_IF; - -- No special simplification defined, return same with simplified operands. - IF 'UNARY_GENERIC_EXPRESSION' IN types THEN - RETURN (restore_unary(expr,op1)); - END_IF; - IF 'BINARY_GENERIC_EXPRESSION' IN types THEN - RETURN (restore_binary(expr,op1,op2)); - END_IF; - IF 'MULTIPLE_ARITY_GENERIC_EXPRESSION' IN types THEN - RETURN (restore_mulary(expr,oplist)); - END_IF; - -- Should be unreachable, but for safety, return unsimplified expression. - RETURN (expr); -END_FUNCTION; -- simplify_generic_expression - -(* Implicit interfaced from: mathematical_functions_schema *) -FUNCTION make_int_literal(lit_value : INTEGER) : int_literal; - RETURN (int_literal () - || literal_number(lit_value) - || simple_numeric_expression() - || numeric_expression() - || expression() - || generic_expression() - || simple_generic_expression() - || generic_literal() ); -END_FUNCTION; -- make_int_literal - -(* Implicit interfaced from: mathematical_functions_schema *) -FUNCTION make_real_literal(lit_value : REAL) : real_literal; - RETURN (real_literal () - || literal_number(lit_value) - || simple_numeric_expression() - || numeric_expression() - || expression() - || generic_expression() - || simple_generic_expression() - || generic_literal() ); -END_FUNCTION; -- make_real_literal - -(* Implicit interfaced from: mathematical_functions_schema *) -FUNCTION convert_to_maths_value(val : GENERIC:G) : maths_value; - LOCAL - types : SET OF STRING := TYPEOF (val); - ival : maths_integer; - rval : maths_real; - nval : maths_number; - tfval : maths_boolean; - lval : maths_logical; - sval : maths_string; - bval : maths_binary; - tval : maths_tuple := the_empty_maths_tuple; - mval : maths_value; - END_LOCAL; - IF (schema_prefix + 'MATHS_VALUE') IN types THEN RETURN (val); END_IF; - IF 'INTEGER' IN types THEN ival := val; RETURN (ival); END_IF; - IF 'REAL' IN types THEN rval := val; RETURN (rval); END_IF; - IF 'NUMBER' IN types THEN nval := val; RETURN (nval); END_IF; - IF 'BOOLEAN' IN types THEN tfval := val; RETURN (tfval); END_IF; - IF 'LOGICAL' IN types THEN lval := val; RETURN (lval); END_IF; - IF 'STRING' IN types THEN sval := val; RETURN (sval); END_IF; - IF 'BINARY' IN types THEN bval := val; RETURN (bval); END_IF; - IF 'LIST' IN types THEN - REPEAT i := 1 TO SIZEOF (val); - mval := convert_to_maths_value (val[i]); - IF NOT EXISTS (mval) THEN RETURN (?); END_IF; - INSERT (tval, mval, i-1); - END_REPEAT; - RETURN (tval); - END_IF; - RETURN (?); -END_FUNCTION; -- convert_to_maths_value - -(* Implicit interfaced from: mathematical_functions_schema *) -FUNCTION simplify_maths_space(spc : maths_space) : maths_space; - LOCAL - stypes : SET OF STRING := stripped_typeof (spc); - sset : SET OF maths_value; - zset : SET OF maths_value := []; - zval : maths_value; - zspc : maths_space; - zallint : BOOLEAN := TRUE; - zint, zmin, zmax : INTEGER; - factors : LIST OF maths_space; - zfactors : LIST OF maths_space := []; - rspc : maths_space; - END_LOCAL; - IF 'FINITE_SPACE' IN stypes THEN - sset := spc\finite_space.members; - REPEAT i := 1 TO SIZEOF (sset); - zval := simplify_maths_value(sset[i]); - zset := zset + [zval]; - IF zallint AND ('INTEGER' IN TYPEOF (zval)) THEN - zint := zval; - IF i = 1 THEN - zmin := zint; - zmax := zint; - ELSE - IF zint < zmin THEN - zmin := zint; - END_IF; - IF zint > zmax THEN - zmax := zint; - END_IF; - END_IF; - ELSE - zallint := FALSE; - END_IF; - END_REPEAT; - IF zallint AND (SIZEOF(zset) = zmax-zmin+1) THEN - RETURN (make_finite_integer_interval(zmin,zmax)); - END_IF; - RETURN (make_finite_space(zset)); - END_IF; - IF 'UNIFORM_PRODUCT_SPACE' IN stypes THEN - zspc := simplify_maths_space(spc\uniform_product_space.base); - RETURN (make_uniform_product_space(zspc,spc\uniform_product_space.exponent)); - END_IF; - IF 'LISTED_PRODUCT_SPACE' IN stypes THEN - factors := spc\listed_product_space.factors; - REPEAT i := 1 TO SIZEOF (factors); - INSERT (zfactors, simplify_maths_space(factors[i]), i-1); - END_REPEAT; - RETURN (make_listed_product_space(zfactors)); - END_IF; - IF 'EXTENDED_TUPLE_SPACE' IN stypes THEN - zspc := simplify_maths_space(spc\extended_tuple_space.base); - rspc := simplify_maths_space(spc\extended_tuple_space.extender); - RETURN (make_extended_tuple_space(zspc,rspc)); - END_IF; - IF 'FUNCTION_SPACE' IN stypes THEN - zspc := simplify_maths_space(spc\function_space.domain_argument); - rspc := simplify_maths_space(spc\function_space.range_argument); - RETURN (make_function_space(spc\function_space.domain_constraint,zspc, - spc\function_space.range_constraint,rspc)); - END_IF; - RETURN (spc); -END_FUNCTION; -- simplify_maths_space - -(* Implicit interfaced from: mathematical_functions_schema *) -FUNCTION make_finite_integer_interval(min : INTEGER; - max : INTEGER) : finite_integer_interval; - RETURN (finite_integer_interval (min, max) - || maths_space() - || generic_expression() - || generic_literal() - || simple_generic_expression() ); -END_FUNCTION; -- make_finite_integer_interval - -(* Implicit interfaced from: mathematical_functions_schema *) -FUNCTION make_finite_space(members : SET OF maths_value) : finite_space; - RETURN (finite_space (members) - || maths_space() - || generic_expression() - || generic_literal() - || simple_generic_expression() ); -END_FUNCTION; -- make_finite_space - -(* Implicit interfaced from: mathematical_functions_schema *) -FUNCTION make_uniform_product_space(base : maths_space; - exponent : positive_integer) - : uniform_product_space; - RETURN (uniform_product_space (base, exponent) - || maths_space() - || generic_expression() - || generic_literal() - || simple_generic_expression() ); -END_FUNCTION; -- make_uniform_product_space - -(* Implicit interfaced from: mathematical_functions_schema *) -FUNCTION make_listed_product_space(factors : LIST OF maths_space) - : listed_product_space; - RETURN (listed_product_space (factors) - || maths_space() - || generic_expression() - || generic_literal() - || simple_generic_expression() ); -END_FUNCTION; -- make_listed_product_space - -(* Implicit interfaced from: mathematical_functions_schema *) -FUNCTION expression_is_constant(expr : generic_expression) : BOOLEAN; - RETURN (bool(SIZEOF (free_variables_of (expr)) = 0)); -END_FUNCTION; -- expression_is_constant - -(* Implicit interfaced from: mathematical_functions_schema *) -FUNCTION bool(lgcl: LOGICAL) : BOOLEAN; - IF NOT EXISTS (lgcl) THEN RETURN (FALSE); END_IF; - IF lgcl <> TRUE THEN RETURN (FALSE); END_IF; - RETURN (TRUE); -END_FUNCTION; -- bool - -(* Implicit interfaced from: mathematical_functions_schema *) -FUNCTION free_variables_of(expr : generic_expression) : SET OF generic_variable; - LOCAL - typenames : SET OF STRING := stripped_typeof(expr); - result : SET OF generic_variable := []; - exprs : LIST OF generic_expression := []; - END_LOCAL; - IF 'GENERIC_LITERAL' IN typenames THEN - RETURN (result); - END_IF; - IF 'GENERIC_VARIABLE' IN typenames THEN - result := result + expr; - RETURN (result); - END_IF; - IF 'QUANTIFIER_EXPRESSION' IN typenames THEN - exprs := QUERY (ge <* expr\multiple_arity_generic_expression.operands | - NOT (ge IN expr\quantifier_expression.variables)); - REPEAT i := 1 TO SIZEOF (exprs); - result := result + free_variables_of (exprs[i]); - END_REPEAT; - REPEAT i := 1 TO SIZEOF (expr\quantifier_expression.variables); - result := result - expr\quantifier_expression.variables[i]; - END_REPEAT; - RETURN (result); - END_IF; - IF 'UNARY_GENERIC_EXPRESSION' IN typenames THEN - RETURN (free_variables_of (expr\unary_generic_expression.operand)); - END_IF; - IF 'BINARY_GENERIC_EXPRESSION' IN typenames THEN - result := free_variables_of (expr\binary_generic_expression.operands[1]); - RETURN (result + free_variables_of (expr\binary_generic_expression.operands[2])); - END_IF; - IF 'MULTIPLE_ARITY_GENERIC_EXPRESSION' IN typenames THEN - REPEAT i := 1 TO SIZEOF (expr\multiple_arity_generic_expression.operands); - result := result + free_variables_of ( - expr\multiple_arity_generic_expression.operands[i]); - END_REPEAT; - RETURN (result); - END_IF; - -- In this case the subtype shall not contain any variable (see IP1 in - -- generic_expression). - RETURN (result); -END_FUNCTION; -- free_variables_of - -(* Implicit interfaced from: mathematical_functions_schema *) -FUNCTION no_cyclic_space_reference(spc : maths_space; - refs : SET OF maths_space) : BOOLEAN; - LOCAL - types : SET OF STRING; - refs_plus : SET OF maths_space; - END_LOCAL; - IF (spc IN refs) THEN - RETURN (FALSE); - END_IF; - types := TYPEOF (spc); - refs_plus := refs + spc; - IF (schema_prefix + 'FINITE_SPACE') IN types THEN - RETURN (bool(SIZEOF (QUERY (sp <* QUERY (mem <* spc\finite_space.members | - (schema_prefix + 'MATHS_SPACE') IN TYPEOF (mem)) | - NOT no_cyclic_space_reference (sp, refs_plus))) = 0)); - END_IF; - IF (schema_prefix + 'UNIFORM_PRODUCT_SPACE') IN types THEN - RETURN (no_cyclic_space_reference (spc\uniform_product_space.base, refs_plus)); - END_IF; - IF (schema_prefix + 'LISTED_PRODUCT_SPACE') IN types THEN - RETURN (bool(SIZEOF (QUERY (fac <* spc\listed_product_space.factors | - NOT no_cyclic_space_reference (fac, refs_plus))) = 0)); - END_IF; - IF (schema_prefix + 'EXTENDED_TUPLE_SPACE') IN types THEN - RETURN (no_cyclic_space_reference (spc\extended_tuple_space.base, refs_plus) - AND no_cyclic_space_reference (spc\extended_tuple_space.extender, refs_plus)); - END_IF; - -- spc contains no references to other spaces - RETURN (TRUE); -END_FUNCTION; -- no_cyclic_space_reference - -(* Implicit interfaced from: mathematical_functions_schema *) -FUNCTION make_extended_tuple_space(base : product_space; - extender : maths_space) : extended_tuple_space; - RETURN (extended_tuple_space (base, extender) - || maths_space () - || generic_expression() - || generic_literal () - || simple_generic_expression() ); -END_FUNCTION; -- make_extended_tuple_space - -(* Implicit interfaced from: mathematical_functions_schema *) -FUNCTION any_space_satisfies(sc : space_constraint_type; - spc : maths_space) : BOOLEAN; - LOCAL - spc_id : elementary_space_enumerators; - END_LOCAL; - IF (sc = sc_equal) OR NOT ('ELEMENTARY_SPACE' IN stripped_typeof(spc)) THEN - RETURN (FALSE); - END_IF; - spc_id := spc\elementary_space.space_id; - IF sc = sc_subspace THEN - RETURN (bool(spc_id = es_generics)); - END_IF; - IF sc = sc_member THEN - RETURN (bool((spc_id = es_generics) OR (spc_id = es_maths_spaces))); - END_IF; - -- Should be unreachable. - RETURN (?); -END_FUNCTION; -- any_space_satisfies - -(* Implicit interfaced from: mathematical_functions_schema *) -FUNCTION make_function_space(domain_constraint : space_constraint_type; - domain_argument : maths_space; - range_constraint : space_constraint_type; - range_argument : maths_space) : function_space; - RETURN (function_space (domain_constraint, domain_argument, range_constraint, - range_argument) - || maths_space() - || generic_expression() - || generic_literal() - || simple_generic_expression() ); -END_FUNCTION; -- make_function_space - -(* Implicit interfaced from: mathematical_functions_schema *) -FUNCTION simplify_function_application(expr : function_application) : maths_value; - FUNCTION ctmv(x : GENERIC:G) : maths_value; - RETURN (convert_to_maths_value(x)); - END_FUNCTION; -- local abbreviation for convert_to_maths_value function - PROCEDURE parts( c : complex_number_literal; - VAR x, y : REAL); - x := c.real_part; y := c.imag_part; - END_PROCEDURE; -- parts - FUNCTION makec(x, y : REAL) : complex_number_literal; - RETURN (make_complex_number_literal(x,y)); - END_FUNCTION; -- local abbreviation for make_complex_number_literal function - FUNCTION good_t(v : maths_value; - tn : STRING) : BOOLEAN; - LOCAL - tpl : LIST OF maths_value; - END_LOCAL; - IF 'LIST' IN TYPEOF (v) THEN - tpl := v; - REPEAT i := 1 TO SIZEOF (tpl); - IF NOT (tn IN TYPEOF (tpl[i])) THEN RETURN (FALSE); END_IF; - END_REPEAT; - RETURN (TRUE); - END_IF; - RETURN (FALSE); - END_FUNCTION; -- good_t - CONSTANT - cnlit : STRING := schema_prefix + 'COMPLEX_NUMBER_LITERAL'; - END_CONSTANT; - LOCAL - types : SET OF STRING := stripped_typeof(expr.func); - ef_val : elementary_function_enumerators; - is_elementary : BOOLEAN := FALSE; - v, v1, v2, v3 : maths_value; - vlist : LIST OF maths_value := []; - gexpr : generic_expression; - pairs : SET [1:?] OF LIST [2:2] OF maths_value; - boo : BOOLEAN; - lgc, cum : LOGICAL; - j, k, n : INTEGER; - p, q, r, s, t, u : REAL; - str, st2 : STRING; - bin, bi2 : BINARY; - tpl, tp2 : LIST OF maths_value; - mem :SET OF maths_value := []; - END_LOCAL; - REPEAT i := 1 TO SIZEOF (expr.arguments); - v := simplify_maths_value(expr.arguments[i]); - INSERT (vlist, v, i-1); - END_REPEAT; - IF SIZEOF (vlist) >= 1 THEN v1 := vlist[1]; END_IF; - IF SIZEOF (vlist) >= 2 THEN v2 := vlist[2]; END_IF; - IF SIZEOF (vlist) >= 3 THEN v3 := vlist[3]; END_IF; - IF 'ELEMENTARY_FUNCTION_ENUMERATORS' IN types THEN - ef_val := expr.func; - is_elementary := TRUE; - END_IF; - IF 'ELEMENTARY_FUNCTION' IN types THEN - ef_val := expr.func\elementary_function.func_id; - is_elementary := TRUE; - END_IF; - IF is_elementary THEN - CASE ef_val OF - ef_and : BEGIN - cum := TRUE; - REPEAT i := SIZEOF (vlist) TO 1 BY -1; - IF 'LOGICAL' IN TYPEOF (vlist[i]) THEN - lgc := vlist[i]; cum := cum AND lgc; - IF lgc = FALSE THEN RETURN (ctmv(FALSE)); END_IF; - REMOVE (vlist, i); - END_IF; - END_REPEAT; - IF SIZEOF (vlist) = 0 THEN RETURN (ctmv(cum)); END_IF; - IF cum <> TRUE THEN INSERT (vlist, ctmv(cum), 0); END_IF; - IF SIZEOF (vlist) = 1 THEN RETURN (vlist[1]); END_IF; - END; - ef_or : BEGIN - cum := FALSE; - REPEAT i := SIZEOF (vlist) TO 1 BY -1; - IF 'LOGICAL' IN TYPEOF (vlist[i]) THEN - lgc := vlist[i]; cum := cum OR lgc; - IF lgc = TRUE THEN RETURN (ctmv(TRUE)); END_IF; - REMOVE (vlist, i); - END_IF; - END_REPEAT; - IF SIZEOF (vlist) = 0 THEN RETURN (ctmv(cum)); END_IF; - IF cum <> FALSE THEN INSERT (vlist, ctmv(cum), 0); END_IF; - IF SIZEOF (vlist) = 1 THEN RETURN (vlist[1]); END_IF; - END; - ef_not : - IF 'LOGICAL' IN TYPEOF (v1) THEN lgc := v1; RETURN (ctmv(NOT lgc)); END_IF; - ef_xor : BEGIN - IF 'LOGICAL' IN TYPEOF (v1) THEN - lgc := v1; - IF 'LOGICAL' IN TYPEOF (v2) THEN cum := v2; RETURN (ctmv(lgc XOR cum)); - ELSE IF lgc = FALSE THEN RETURN (ctmv(v2)); - ELSE IF lgc = UNKNOWN THEN RETURN (ctmv(UNKNOWN)); - ELSE RETURN (make_function_application(ef_not,[v2])); - END_IF; END_IF; END_IF; - ELSE IF 'LOGICAL' IN TYPEOF (v2) THEN - lgc := v2; - IF lgc = FALSE THEN RETURN (ctmv(v1)); - ELSE IF lgc = UNKNOWN THEN RETURN (ctmv(UNKNOWN)); - ELSE RETURN (make_function_application(ef_not,[v1])); - END_IF; END_IF; - END_IF; END_IF; - END; - ef_negate_i : - IF 'INTEGER' IN TYPEOF (v1) THEN j := v1; RETURN (ctmv(-j)); END_IF; - ef_add_i : BEGIN - j := 0; - REPEAT i := SIZEOF (vlist) TO 1 BY -1; - IF 'INTEGER' IN TYPEOF (vlist[i]) THEN - k := vlist[i]; j := j + k; - REMOVE (vlist, i); - END_IF; - END_REPEAT; - IF SIZEOF (vlist) = 0 THEN RETURN (ctmv(j)); END_IF; - IF j <> 0 THEN INSERT (vlist, ctmv(j), 0); END_IF; - IF SIZEOF (vlist) = 1 THEN RETURN (vlist[1]); END_IF; - END; - ef_subtract_i : - IF ('INTEGER' IN TYPEOF (v1)) AND ('INTEGER' IN TYPEOF (v2)) THEN - j := v1; k := v2; RETURN (ctmv(j - k)); - END_IF; - ef_multiply_i : BEGIN - j := 1; - REPEAT i := SIZEOF (vlist) TO 1 BY -1; - IF 'INTEGER' IN TYPEOF (vlist[i]) THEN - k := vlist[i]; j := j * k; - REMOVE (vlist, i); - END_IF; - END_REPEAT; - IF SIZEOF (vlist) = 0 THEN RETURN (ctmv(j)); END_IF; - IF j <> 1 THEN INSERT (vlist, ctmv(j), 0); END_IF; - IF SIZEOF (vlist) = 1 THEN RETURN (vlist[1]); END_IF; - END; - ef_divide_i : - IF ('INTEGER' IN TYPEOF (v1)) AND ('INTEGER' IN TYPEOF (v2)) THEN - j := v1; k := v2; RETURN (ctmv(j DIV k)); - END_IF; - ef_mod_i : - IF ('INTEGER' IN TYPEOF (v1)) AND ('INTEGER' IN TYPEOF (v2)) THEN - j := v1; k := v2; RETURN (ctmv(j MOD k)); - END_IF; - ef_exponentiate_i : - IF ('INTEGER' IN TYPEOF (v1)) AND ('INTEGER' IN TYPEOF (v2)) THEN - j := v1; k := v2; n := 1; - REPEAT i := 1 TO ABS(k); n := n * j; END_REPEAT; - IF k < 0 THEN n := 1 DIV n; END_IF; - RETURN (ctmv(n)); - END_IF; - ef_eq_i : - IF ('INTEGER' IN TYPEOF (v1)) AND ('INTEGER' IN TYPEOF (v2)) THEN - j := v1; k := v2; RETURN (ctmv(j = k)); - END_IF; - ef_ne_i : - IF ('INTEGER' IN TYPEOF (v1)) AND ('INTEGER' IN TYPEOF (v2)) THEN - j := v1; k := v2; RETURN (ctmv(j <> k)); - END_IF; - ef_gt_i : - IF ('INTEGER' IN TYPEOF (v1)) AND ('INTEGER' IN TYPEOF (v2)) THEN - j := v1; k := v2; RETURN (ctmv(j > k)); - END_IF; - ef_lt_i : - IF ('INTEGER' IN TYPEOF (v1)) AND ('INTEGER' IN TYPEOF (v2)) THEN - j := v1; k := v2; RETURN (ctmv(j < k)); - END_IF; - ef_ge_i : - IF ('INTEGER' IN TYPEOF (v1)) AND ('INTEGER' IN TYPEOF (v2)) THEN - j := v1; k := v2; RETURN (ctmv(j >= k)); - END_IF; - ef_le_i : - IF ('INTEGER' IN TYPEOF (v1)) AND ('INTEGER' IN TYPEOF (v2)) THEN - j := v1; k := v2; RETURN (ctmv(j <= k)); - END_IF; - ef_abs_i : - IF 'INTEGER' IN TYPEOF (v1) THEN j := v1; RETURN (ctmv(ABS(j))); END_IF; - ef_max_i : BEGIN - boo := FALSE; - REPEAT i := SIZEOF (vlist) TO 1 BY -1; - IF 'INTEGER' IN TYPEOF (vlist[i]) THEN - IF boo THEN k := vlist[i]; IF k > j THEN j := k; END_IF; - ELSE j := vlist[i]; boo := TRUE; END_IF; - REMOVE (vlist, i); - END_IF; - END_REPEAT; - IF SIZEOF (vlist) = 0 THEN RETURN (ctmv(j)); END_IF; - IF boo THEN INSERT (vlist, ctmv(j), 0); END_IF; - IF SIZEOF (vlist) = 1 THEN RETURN (vlist[1]); END_IF; - END; - ef_min_i : BEGIN - boo := FALSE; - REPEAT i := SIZEOF (vlist) TO 1 BY -1; - IF 'INTEGER' IN TYPEOF (vlist[i]) THEN - IF boo THEN k := vlist[i]; IF k < j THEN j := k; END_IF; - ELSE j := vlist[i]; boo := TRUE; END_IF; - REMOVE (vlist, i); - END_IF; - END_REPEAT; - IF SIZEOF (vlist) = 0 THEN RETURN (ctmv(j)); END_IF; - IF boo THEN INSERT (vlist, ctmv(j), 0); END_IF; - IF SIZEOF (vlist) = 1 THEN RETURN (vlist[1]); END_IF; - END; - -- ef_if_i : combined with ef_if - ef_negate_r : - IF 'REAL' IN TYPEOF (v1) THEN r := v1; RETURN (ctmv(-r)); END_IF; - ef_reciprocal_r : - IF 'REAL' IN TYPEOF (v1) THEN r := v1; RETURN (ctmv(1.0/r)); END_IF; - ef_add_r : BEGIN - r := 0.0; - REPEAT i := SIZEOF (vlist) TO 1 BY -1; - IF 'REAL' IN TYPEOF (vlist[i]) THEN - s := vlist[i]; r := r + s; - REMOVE (vlist, i); - END_IF; - END_REPEAT; - IF SIZEOF (vlist) = 0 THEN RETURN (ctmv(r)); END_IF; - IF r <> 0.0 THEN INSERT (vlist, ctmv(r), 0); END_IF; - IF SIZEOF (vlist) = 1 THEN RETURN (vlist[1]); END_IF; - END; - ef_subtract_r : - IF ('REAL' IN TYPEOF (v1)) AND ('REAL' IN TYPEOF (v2)) THEN - r := v1; s := v2; RETURN (ctmv(r - s)); - END_IF; - ef_multiply_r : BEGIN - r := 1.0; - REPEAT i := SIZEOF (vlist) TO 1 BY -1; - IF 'REAL' IN TYPEOF (vlist[i]) THEN - s := vlist[i]; r := r * s; - REMOVE (vlist, i); - END_IF; - END_REPEAT; - IF SIZEOF (vlist) = 0 THEN RETURN (ctmv(r)); END_IF; - IF r <> 1.0 THEN INSERT (vlist, ctmv(r), 0); END_IF; - IF SIZEOF (vlist) = 1 THEN RETURN (vlist[1]); END_IF; - END; - ef_divide_r : - IF ('REAL' IN TYPEOF (v1)) AND ('REAL' IN TYPEOF (v2)) THEN - r := v1; s := v2; RETURN (ctmv(r / s)); - END_IF; - ef_mod_r : - IF ('REAL' IN TYPEOF (v1)) AND ('REAL' IN TYPEOF (v2)) THEN - r := v1; s := v2; t := r/s; j := t DIV 1; - IF (t < 0.0) AND (j <> t) THEN j := j - 1; END_IF; - RETURN (ctmv(r - j * s)); - END_IF; - ef_exponentiate_r : - IF ('REAL' IN TYPEOF (v1)) AND ('REAL' IN TYPEOF (v2)) THEN - r := v1; s := v2; RETURN (ctmv(r ** s)); - END_IF; - ef_exponentiate_ri : - IF ('REAL' IN TYPEOF (v1)) AND ('INTEGER' IN TYPEOF (v2)) THEN - r := v1; k := v2; t := 1.0; - REPEAT i := 1 TO ABS(k); t := t * r; END_REPEAT; - IF k < 0 THEN t := 1.0/t; END_IF; - RETURN (ctmv(t)); - END_IF; - ef_eq_r : - IF ('REAL' IN TYPEOF (v1)) AND ('REAL' IN TYPEOF (v2)) THEN - r := v1; s := v2; RETURN (ctmv(r = s)); - END_IF; - ef_ne_r : - IF ('REAL' IN TYPEOF (v1)) AND ('REAL' IN TYPEOF (v2)) THEN - r := v1; s := v2; RETURN (ctmv(r <> s)); - END_IF; - ef_gt_r : - IF ('REAL' IN TYPEOF (v1)) AND ('REAL' IN TYPEOF (v2)) THEN - r := v1; s := v2; RETURN (ctmv(r > s)); - END_IF; - ef_lt_r : - IF ('REAL' IN TYPEOF (v1)) AND ('REAL' IN TYPEOF (v2)) THEN - r := v1; s := v2; RETURN (ctmv(r < s)); - END_IF; - ef_ge_r : - IF ('REAL' IN TYPEOF (v1)) AND ('REAL' IN TYPEOF (v2)) THEN - r := v1; s := v2; RETURN (ctmv(r >= s)); - END_IF; - ef_le_r : - IF ('REAL' IN TYPEOF (v1)) AND ('REAL' IN TYPEOF (v2)) THEN - r := v1; s := v2; RETURN (ctmv(r <= s)); - END_IF; - ef_abs_r : - IF 'REAL' IN TYPEOF (v1) THEN r := v1; RETURN (ctmv(ABS(r))); END_IF; - ef_max_r : BEGIN - boo := FALSE; - REPEAT i := SIZEOF (vlist) TO 1 BY -1; - IF 'REAL' IN TYPEOF (vlist[i]) THEN - IF boo THEN s := vlist[i]; IF s > r THEN r := s; END_IF; - ELSE r := vlist[i]; boo := TRUE; END_IF; - REMOVE (vlist, i); - END_IF; - END_REPEAT; - IF SIZEOF (vlist) = 0 THEN RETURN (ctmv(r)); END_IF; - IF boo THEN INSERT (vlist, ctmv(r), 0); END_IF; - IF SIZEOF (vlist) = 1 THEN RETURN (vlist[1]); END_IF; - END; - ef_min_r : BEGIN - boo := FALSE; - REPEAT i := SIZEOF (vlist) TO 1 BY -1; - IF 'REAL' IN TYPEOF (vlist[i]) THEN - IF boo THEN s := vlist[i]; IF s < r THEN r := s; END_IF; - ELSE r := vlist[i]; boo := TRUE; END_IF; - REMOVE (vlist, i); - END_IF; - END_REPEAT; - IF SIZEOF (vlist) = 0 THEN RETURN (ctmv(r)); END_IF; - IF boo THEN INSERT (vlist, ctmv(r), 0); END_IF; - IF SIZEOF (vlist) = 1 THEN RETURN (vlist[1]); END_IF; - END; - ef_acos_r : - IF 'REAL' IN TYPEOF (v1) THEN r := v1; RETURN (ctmv(ACOS(r))); END_IF; - ef_asin_r : - IF 'REAL' IN TYPEOF (v1) THEN r := v1; RETURN (ctmv(ASIN(r))); END_IF; - ef_atan2_r : - IF ('REAL' IN TYPEOF (v1)) AND ('REAL' IN TYPEOF (v2)) THEN - r := v1; s := v2; RETURN (ctmv(atan2(r,s))); - END_IF; - ef_cos_r : - IF 'REAL' IN TYPEOF (v1) THEN r := v1; RETURN (ctmv(COS(r))); END_IF; - ef_exp_r : - IF 'REAL' IN TYPEOF (v1) THEN r := v1; RETURN (ctmv(EXP(r))); END_IF; - ef_ln_r : - IF 'REAL' IN TYPEOF (v1) THEN r := v1; RETURN (ctmv(LOG(r))); END_IF; - ef_log2_r : - IF 'REAL' IN TYPEOF (v1) THEN r := v1; RETURN (ctmv(LOG2(r))); END_IF; - ef_log10_r : - IF 'REAL' IN TYPEOF (v1) THEN r := v1; RETURN (ctmv(LOG10(r))); END_IF; - ef_sin_r : - IF 'REAL' IN TYPEOF (v1) THEN r := v1; RETURN (ctmv(SIN(r))); END_IF; - ef_sqrt_r : - IF 'REAL' IN TYPEOF (v1) THEN r := v1; RETURN (ctmv(SQRT(r))); END_IF; - ef_tan_r : - IF 'REAL' IN TYPEOF (v1) THEN r := v1; RETURN (ctmv(TAN(r))); END_IF; - -- ef_if_r : combined with ef_if - ef_form_c : - IF ('REAL' IN TYPEOF (v1)) AND ('REAL' IN TYPEOF (v2)) THEN - r := v1; s := v2; RETURN (makec(r,s)); - END_IF; - ef_rpart_c : - IF cnlit IN TYPEOF (v1) THEN - RETURN (ctmv(v1\complex_number_literal.real_part)); - END_IF; - ef_ipart_c : - IF cnlit IN TYPEOF (v1) THEN - RETURN (ctmv(v1\complex_number_literal.imag_part)); - END_IF; - ef_negate_c : - IF cnlit IN TYPEOF (v1) THEN parts(v1,p,q); RETURN (makec(-p,-q)); END_IF; - ef_reciprocal_c : - IF cnlit IN TYPEOF (v1) THEN - parts(v1,p,q); t := p*p + q*q; RETURN (makec(p/t,-q/t)); - END_IF; - ef_add_c : BEGIN - p := 0.0; q := 0.0; - REPEAT i := SIZEOF (vlist) TO 1 BY -1; - IF cnlit IN TYPEOF (vlist[i]) THEN - parts(vlist[i],r,s); p := p + r; q := q + s; - REMOVE (vlist, i); - END_IF; - END_REPEAT; - IF SIZEOF (vlist) = 0 THEN RETURN (makec(p,q)); END_IF; - IF p*p+q*q <> 0.0 THEN INSERT (vlist, makec(p,q), 0); END_IF; - IF SIZEOF (vlist) = 1 THEN RETURN (vlist[1]); END_IF; - END; - ef_subtract_c : - IF (cnlit IN TYPEOF (v1)) AND (cnlit IN TYPEOF (v2)) THEN - parts(v1,p,q); parts(v2,r,s); RETURN (makec(p-r,q-s)); - END_IF; - ef_multiply_c : BEGIN - p := 1.0; q := 0.0; - REPEAT i := SIZEOF (vlist) TO 1 BY -1; - IF cnlit IN TYPEOF (vlist[i]) THEN - parts(vlist[i],r,s); p := p*r-q*s; q := p*s+q*r; - REMOVE (vlist, i); - END_IF; - END_REPEAT; - IF SIZEOF (vlist) = 0 THEN RETURN (makec(p,q)); END_IF; - IF (p <> 1.0) OR (q <> 0.0) THEN INSERT (vlist, makec(p,q), 0); END_IF; - IF SIZEOF (vlist) = 1 THEN RETURN (vlist[1]); END_IF; - END; - ef_divide_c : - IF (cnlit IN TYPEOF (v1)) AND (cnlit IN TYPEOF (v2)) THEN - parts(v1,p,q); parts(v2,r,s); t := r*r+s*s; - RETURN (makec((p*r+q*s)/t,(q*r-p*s)/t)); - END_IF; - ef_exponentiate_c : - IF (cnlit IN TYPEOF (v1)) AND (cnlit IN TYPEOF (v2)) THEN - parts(v1,p,q); parts(v2,r,s); t := 0.5*LOG(p*p+q*q); u := atan2(q,p); - p := r*t-s*u; q := r*u+s*t; r := EXP(p); - RETURN (makec(r*COS(q),r*SIN(q))); - END_IF; - ef_exponentiate_ci : - IF (cnlit IN TYPEOF (v1)) AND ('INTEGER' IN TYPEOF (v2)) THEN - parts(v1,p,q); k := v2; r := 1.0; s := 0.0; - REPEAT i := 1 TO ABS(k); r := p*r-q*s; s := p*s+q*r; END_REPEAT; - IF k < 0 THEN t := r*r+s*s; r := r/t; s := -s/t; END_IF; - RETURN (makec(r,s)); - END_IF; - ef_eq_c : - IF (cnlit IN TYPEOF (v1)) AND (cnlit IN TYPEOF (v2)) THEN - parts(v1,p,q); parts(v2,r,s); RETURN (ctmv((p = r) AND (q = s))); - END_IF; - ef_ne_c : - IF (cnlit IN TYPEOF (v1)) AND (cnlit IN TYPEOF (v2)) THEN - parts(v1,p,q); parts(v2,r,s); RETURN (ctmv((p <> r) OR (q <> s))); - END_IF; - ef_conjugate_c : - IF cnlit IN TYPEOF (v1) THEN parts(v1,p,q); RETURN (makec(p,-q)); END_IF; - ef_abs_c : - IF cnlit IN TYPEOF (v1) THEN - parts(v1,p,q); RETURN (ctmv(SQRT(p*p+q*q))); - END_IF; - ef_arg_c : - IF cnlit IN TYPEOF (v1) THEN - parts(v1,p,q); RETURN (ctmv(atan2(q,p))); - END_IF; - ef_cos_c : - IF cnlit IN TYPEOF (v1) THEN - parts(v1,p,q); t := 0.5*EXP(-q); u := 0.5*EXP(q); - RETURN (makec((t+u)*COS(p),(t-u)*SIN(p))); - END_IF; - ef_exp_c : - IF cnlit IN TYPEOF (v1) THEN - parts(v1,p,q); RETURN (makec(EXP(p)*COS(q),EXP(p)*SIN(q))); - END_IF; - ef_ln_c : - IF cnlit IN TYPEOF (v1) THEN - parts(v1,p,q); RETURN (makec(0.5*LOG(p*p+q*q),atan2(q,p))); - END_IF; - ef_sin_c : - IF cnlit IN TYPEOF (v1) THEN - parts(v1,p,q); t := 0.5*EXP(-q); u := 0.5*EXP(q); - RETURN (makec((t+u)*SIN(p),(u-t)*COS(p))); - END_IF; - ef_sqrt_c : - IF cnlit IN TYPEOF (v1) THEN - parts(v1,p,q); t := SQRT(SQRT(p*p+q*q)); u := 0.5*atan2(q,p); - RETURN (makec(t*COS(u),t*SIN(u))); - END_IF; - ef_tan_c : - IF cnlit IN TYPEOF (v1) THEN - parts(v1,p,q); t := EXP(2.0*q) + EXP(-2.0*q) + 2.0*COS(2.0*p); - RETURN (makec(2.0*SIN(2.0*p)/t,(EXP(-2.0*q)-EXP(2.0*q))/t)); - END_IF; - -- ef_if_c : combined with ef_if - ef_subscript_s : - IF ('STRING' IN TYPEOF (v1)) AND ('INTEGER' IN TYPEOF (v2)) THEN - str := v1; k := v2; RETURN (ctmv(str[k])); - END_IF; - ef_eq_s : - IF ('STRING' IN TYPEOF (v1)) AND ('STRING' IN TYPEOF (v2)) THEN - str := v1; st2 := v2; RETURN (ctmv(str = st2)); - END_IF; - ef_ne_s : - IF ('STRING' IN TYPEOF (v1)) AND ('STRING' IN TYPEOF (v2)) THEN - str := v1; st2 := v2; RETURN (ctmv(str <> st2)); - END_IF; - ef_gt_s : - IF ('STRING' IN TYPEOF (v1)) AND ('STRING' IN TYPEOF (v2)) THEN - str := v1; st2 := v2; RETURN (ctmv(str > st2)); - END_IF; - ef_lt_s : - IF ('STRING' IN TYPEOF (v1)) AND ('STRING' IN TYPEOF (v2)) THEN - str := v1; st2 := v2; RETURN (ctmv(str < st2)); - END_IF; - ef_ge_s : - IF ('STRING' IN TYPEOF (v1)) AND ('STRING' IN TYPEOF (v2)) THEN - str := v1; st2 := v2; RETURN (ctmv(str >= st2)); - END_IF; - ef_le_s : - IF ('STRING' IN TYPEOF (v1)) AND ('STRING' IN TYPEOF (v2)) THEN - str := v1; st2 := v2; RETURN (ctmv(str <= st2)); - END_IF; - ef_subsequence_s : - IF ('STRING' IN TYPEOF (v1)) AND ('INTEGER' IN TYPEOF (v2)) AND - ('INTEGER' IN TYPEOF (v3)) THEN - str := v1; j := v2; k := v3; RETURN (ctmv(str[j:k])); - END_IF; - ef_concat_s : BEGIN - str := ''; - REPEAT i := SIZEOF (vlist) TO 1 BY -1; - IF 'STRING' IN TYPEOF (vlist[i]) THEN - st2 := vlist[i]; str := str + st2; - REMOVE (vlist, i); - ELSE IF str <> '' THEN - INSERT (vlist, ctmv(str), i); - str := ''; - END_IF; END_IF; - END_REPEAT; - IF SIZEOF (vlist) = 0 THEN RETURN (ctmv(str)); END_IF; - IF str <> '' THEN INSERT (vlist, ctmv(str), 0); END_IF; - IF SIZEOF (vlist) = 1 THEN RETURN (vlist[1]); END_IF; - END; - ef_size_s : - IF 'STRING' IN TYPEOF (v1) THEN str:=v1; RETURN (ctmv(LENGTH(str))); END_IF; - ef_format : - IF ('NUMBER' IN TYPEOF (v1)) AND ('STRING' IN TYPEOF (v2)) THEN - RETURN (ctmv(FORMAT(v1,v2))); - END_IF; - ef_value : - IF 'STRING' IN TYPEOF (v1) THEN str:=v1; RETURN (ctmv(VALUE(str))); END_IF; - ef_like : - IF ('STRING' IN TYPEOF (v1)) AND ('STRING' IN TYPEOF (v2)) THEN - RETURN (ctmv(v1 LIKE v2)); - END_IF; - -- ef_if_s : combined with ef_if - ef_subscript_b : - IF ('BINARY' IN TYPEOF (v1)) AND ('INTEGER' IN TYPEOF (v2)) THEN - bin := v1; k := v2; RETURN (ctmv(bin[k])); - END_IF; - ef_eq_b : - IF ('BINARY' IN TYPEOF (v1)) AND ('BINARY' IN TYPEOF (v2)) THEN - bin := v1; bi2 := v2; RETURN (ctmv(bin = bi2)); - END_IF; - ef_ne_b : - IF ('BINARY' IN TYPEOF (v1)) AND ('BINARY' IN TYPEOF (v2)) THEN - bin := v1; bi2 := v2; RETURN (ctmv(bin <> bi2)); - END_IF; - ef_gt_b : - IF ('BINARY' IN TYPEOF (v1)) AND ('BINARY' IN TYPEOF (v2)) THEN - bin := v1; bi2 := v2; RETURN (ctmv(bin > bi2)); - END_IF; - ef_lt_b : - IF ('BINARY' IN TYPEOF (v1)) AND ('BINARY' IN TYPEOF (v2)) THEN - bin := v1; bi2 := v2; RETURN (ctmv(bin < bi2)); - END_IF; - ef_ge_b : - IF ('BINARY' IN TYPEOF (v1)) AND ('BINARY' IN TYPEOF (v2)) THEN - bin := v1; bi2 := v2; RETURN (ctmv(bin >= bi2)); - END_IF; - ef_le_b : - IF ('BINARY' IN TYPEOF (v1)) AND ('BINARY' IN TYPEOF (v2)) THEN - bin := v1; bi2 := v2; RETURN (ctmv(bin <= bi2)); - END_IF; - ef_subsequence_b : - IF ('BINARY' IN TYPEOF (v1)) AND ('INTEGER' IN TYPEOF (v2)) AND - ('INTEGER' IN TYPEOF (v3)) THEN - bin := v1; j := v2; k := v3; RETURN (ctmv(bin[j:k])); - END_IF; - ef_concat_b : BEGIN - boo := FALSE; - REPEAT i := SIZEOF (vlist) TO 1 BY -1; - IF 'BINARY' IN TYPEOF (vlist[i]) THEN - IF boo THEN bi2 := vlist[i]; bin := bin + bi2; - ELSE bin := vlist[i]; boo := TRUE; END_IF; - REMOVE (vlist, i); - ELSE IF boo THEN - INSERT (vlist, ctmv(bin), i); - boo := FALSE; - END_IF; END_IF; - END_REPEAT; - IF SIZEOF (vlist) = 0 THEN RETURN (ctmv(bin)); END_IF; - IF boo THEN INSERT (vlist, ctmv(bin), 0); END_IF; - IF SIZEOF (vlist) = 1 THEN RETURN (vlist[1]); END_IF; - END; - ef_size_b : - IF 'BINARY' IN TYPEOF (v1) THEN bin:=v1; RETURN (ctmv(BLENGTH(bin))); END_IF; - -- ef_if_b : combined with ef_if - ef_subscript_t : - IF ('LIST' IN TYPEOF (v1)) AND ('INTEGER' IN TYPEOF (v2)) THEN - tpl := v1; k := v2; RETURN (ctmv(tpl[k])); - END_IF; - ef_eq_t : - IF ('LIST' IN TYPEOF (v1)) AND ('LIST' IN TYPEOF (v2)) THEN - lgc := equal_maths_values(v1,v2); - IF lgc <> UNKNOWN THEN RETURN (ctmv(lgc)); END_IF; - END_IF; - ef_ne_t : - IF ('LIST' IN TYPEOF (v1)) AND ('LIST' IN TYPEOF (v2)) THEN - lgc := equal_maths_values(v1,v2); - IF lgc <> UNKNOWN THEN RETURN (ctmv(NOT lgc)); END_IF; - END_IF; - ef_concat_t : BEGIN - tpl := []; - REPEAT i := SIZEOF (vlist) TO 1 BY -1; - IF 'STRING' IN TYPEOF (vlist[i]) THEN - tp2 := vlist[i]; tpl := tpl + tp2; - REMOVE (vlist, i); - ELSE IF SIZEOF (tpl) <> 0 THEN - INSERT (vlist, ctmv(tpl), i); - tpl := []; - END_IF; END_IF; - END_REPEAT; - IF SIZEOF (vlist) = 0 THEN RETURN (ctmv(tpl)); END_IF; - IF SIZEOF (tpl) <> 0 THEN INSERT (vlist, ctmv(tpl), 0); END_IF; - IF SIZEOF (vlist) = 1 THEN RETURN (vlist[1]); END_IF; - END; - ef_size_t : - IF 'LIST' IN TYPEOF (v1) THEN tpl:=v1; RETURN (ctmv(SIZEOF(tpl))); END_IF; - ef_entuple : - RETURN (ctmv(vlist)); - ef_detuple : -- This can have multiple outputs, but the expression only - -- denotes the first. - IF 'LIST' IN TYPEOF (v1) THEN tpl:=v1; RETURN (ctmv(tpl[1])); END_IF; - ef_insert : - IF ('LIST' IN TYPEOF (v1)) AND ('INTEGER' IN TYPEOF (v3)) THEN - tpl := v1; k := v3; INSERT (tpl, v2, k); RETURN (ctmv(tpl)); - END_IF; - ef_remove : - IF ('LIST' IN TYPEOF (v1)) AND ('INTEGER' IN TYPEOF (v2)) THEN - tpl := v1; k := v2; REMOVE (tpl, k); RETURN (ctmv(tpl)); - END_IF; - -- ef_if_t : combined with ef_if - ef_sum_it : - IF good_t(v1,'INTEGER') THEN - tpl := v1; j := 0; - REPEAT i := 1 TO SIZEOF (tpl); j := j + tpl[i]; END_REPEAT; - RETURN (ctmv(j)); - END_IF; - ef_product_it : - IF good_t(v1,'INTEGER') THEN - tpl := v1; j := 1; - REPEAT i := 1 TO SIZEOF (tpl); j := j * tpl[i]; END_REPEAT; - RETURN (ctmv(j)); - END_IF; - ef_add_it : BEGIN - boo := FALSE; - REPEAT i := SIZEOF (vlist) TO 1 BY -1; - IF good_t(vlist[i],'INTEGER') THEN - IF NOT boo THEN tpl := vlist[i]; boo := TRUE; - ELSE - tp2 := vlist[i]; - IF SIZEOF (tpl) <> SIZEOF (tp2) THEN RETURN (?); END_IF; - REPEAT l := 1 TO SIZEOF (tpl); tpl[j] := tpl[j] + tp2[j]; END_REPEAT; - END_IF; - REMOVE (vlist, i); - END_IF; - END_REPEAT; - IF SIZEOF (vlist) = 0 THEN RETURN (ctmv(tpl)); END_IF; - IF boo THEN INSERT (vlist, ctmv(tpl), 0); END_IF; - IF SIZEOF (vlist) = 1 THEN RETURN (vlist[1]); END_IF; - END; - ef_subtract_it : - IF good_t(v1,'INTEGER') AND good_t(v2,'INTEGER') THEN - tpl := v1; tp2 := v2; - IF SIZEOF (tpl) <> SIZEOF (tp2) THEN RETURN (?); END_IF; - REPEAT i := 1 TO SIZEOF (tpl); tpl[i] := tpl[i] - tp2[i]; END_REPEAT; - RETURN (ctmv(tpl)); - END_IF; - ef_scalar_mult_it : - IF ('INTEGER' IN TYPEOF (v1)) AND good_t(v2,'INTEGER') THEN - j := v1; tpl := v2; - REPEAT i := 1 TO SIZEOF (tpl); tpl[i] := j * tpl[i]; END_REPEAT; - RETURN (ctmv(tpl)); - END_IF; - ef_dot_prod_it : - IF good_t(v1,'INTEGER') AND good_t(v2,'INTEGER') THEN - tpl := v1; tp2 := v2; j := 0; - IF SIZEOF (tpl) <> SIZEOF (tp2) THEN RETURN (?); END_IF; - REPEAT i := 1 TO SIZEOF (tpl); j := j + tpl[i] * tp2[i]; END_REPEAT; - RETURN (ctmv(j)); - END_IF; - ef_sum_rt : - IF good_t(v1,'REAL') THEN - tpl := v1; r := 0.0; - REPEAT i := 1 TO SIZEOF (tpl); r := r + tpl[i]; END_REPEAT; - RETURN (ctmv(r)); - END_IF; - ef_product_rt : - IF good_t(v1,'REAL') THEN - tpl := v1; r := 1.0; - REPEAT i := 1 TO SIZEOF (tpl); r := r * tpl[i]; END_REPEAT; - RETURN (ctmv(r)); - END_IF; - ef_add_rt : BEGIN - boo := FALSE; - REPEAT i := SIZEOF (vlist) TO 1 BY -1; - IF good_t(vlist[i],'REAL') THEN - IF NOT boo THEN tpl := vlist[i]; boo := TRUE; - ELSE - tp2 := vlist[i]; - IF SIZEOF (tpl) <> SIZEOF (tp2) THEN RETURN (?); END_IF; - REPEAT l := 1 TO SIZEOF (tpl); tpl[j] := tpl[j] + tp2[j]; END_REPEAT; - END_IF; - REMOVE (vlist, i); - END_IF; - END_REPEAT; - IF SIZEOF (vlist) = 0 THEN RETURN (ctmv(tpl)); END_IF; - IF boo THEN INSERT (vlist, ctmv(tpl), 0); END_IF; - IF SIZEOF (vlist) = 1 THEN RETURN (vlist[1]); END_IF; - END; - ef_subtract_rt : - IF good_t(v1,'REAL') AND good_t(v2,'REAL') THEN - tpl := v1; tp2 := v2; - IF SIZEOF (tpl) <> SIZEOF (tp2) THEN RETURN (?); END_IF; - REPEAT i := 1 TO SIZEOF (tpl); tpl[i] := tpl[i] - tp2[i]; END_REPEAT; - RETURN (ctmv(tpl)); - END_IF; - ef_scalar_mult_rt : - IF ('REAL' IN TYPEOF (v1)) AND good_t(v2,'REAL') THEN - r := v1; tpl := v2; - REPEAT i := 1 TO SIZEOF (tpl); tpl[i] := r * tpl[i]; END_REPEAT; - RETURN (ctmv(tpl)); - END_IF; - ef_dot_prod_rt : - IF good_t(v1,'REAL') AND good_t(v2,'REAL') THEN - tpl := v1; tp2 := v2; r := 0; - IF SIZEOF (tpl) <> SIZEOF (tp2) THEN RETURN (?); END_IF; - REPEAT i := 1 TO SIZEOF (tpl); r := r + tpl[i] * tp2[i]; END_REPEAT; - RETURN (ctmv(r)); - END_IF; - ef_norm_rt : - IF good_t(v1,'REAL') THEN - tpl := v1; r := 0.0; - REPEAT i := 1 TO SIZEOF (tpl); r := r + tpl[i]*tpl[i]; END_REPEAT; - RETURN (ctmv(SQRT(r))); - END_IF; - ef_sum_ct : - IF good_t(v1,cnlit) THEN - tpl := v1; p := 0.0; q := 0.0; - REPEAT i:=1 TO SIZEOF (tpl); parts(tpl[i],r,s); p:=p+r; q:=q+s; END_REPEAT; - RETURN (makec(p,q)); - END_IF; - ef_product_ct : - IF good_t(v1,cnlit) THEN - tpl := v1; p := 1.0; q := 0.0; - REPEAT i := 1 TO SIZEOF (tpl); - parts(tpl[i],r,s); p := p*r-q*s; q := p*s+q*r; - END_REPEAT; - RETURN (makec(p,q)); - END_IF; - ef_add_ct : BEGIN - boo := FALSE; - REPEAT i := SIZEOF (vlist) TO 1 BY -1; - IF good_t(vlist[i],cnlit) THEN - IF NOT boo THEN tpl := vlist[i]; boo := TRUE; - ELSE - tp2 := vlist[i]; - IF SIZEOF (tpl) <> SIZEOF (tp2) THEN RETURN (?); END_IF; - REPEAT l := 1 TO SIZEOF (tpl); - parts(tpl[j],p,q); parts(tp2[j],r,s); tpl[j] := makec(p+r,q+s); - END_REPEAT; - END_IF; - REMOVE (vlist, i); - END_IF; - END_REPEAT; - IF SIZEOF (vlist) = 0 THEN RETURN (ctmv(tpl)); END_IF; - IF boo THEN INSERT (vlist, ctmv(tpl), 0); END_IF; - IF SIZEOF (vlist) = 1 THEN RETURN (vlist[1]); END_IF; - END; - ef_subtract_ct : - IF good_t(v1,cnlit) AND good_t(v2,cnlit) THEN - tpl := v1; tp2 := v2; - IF SIZEOF (tpl) <> SIZEOF (tp2) THEN RETURN (?); END_IF; - REPEAT i := 1 TO SIZEOF (tpl); - parts(tpl[i],p,q); parts(tp2[i],r,s); tpl[i] := makec(p-r,q-s); - END_REPEAT; - RETURN (ctmv(tpl)); - END_IF; - ef_scalar_mult_ct : - IF (cnlit IN TYPEOF (v1)) AND good_t(v2,cnlit) THEN - parts(v1,p,q); tpl := v2; - REPEAT i := 1 TO SIZEOF (tpl); - parts(tpl[i],r,s); tpl[i] := makec(p*r-q*s,p*s+q*r); - END_REPEAT; - RETURN (ctmv(tpl)); - END_IF; - ef_dot_prod_ct : - IF good_t(v1,cnlit) AND good_t(v2,cnlit) THEN - tpl := v1; tp2 := v2; t := 0.0; u := 0.0; - IF SIZEOF (tpl) <> SIZEOF (tp2) THEN RETURN (?); END_IF; - REPEAT i := 1 TO SIZEOF (tpl); - parts(tpl[i],p,q); parts(tp2[i],r,s); t := t + p*r+q*s; u := u + q*r-p*s; - END_REPEAT; - RETURN (makec(t,u)); - END_IF; - ef_norm_ct : - IF good_t(v1,cnlit) THEN - tpl := v1; r := 0.0; - REPEAT i := 1 TO SIZEOF (tpl); parts(tpl[i],p,q); r:=r+p*p+q*q; END_REPEAT; - RETURN (ctmv(SQRT(r))); - END_IF; - ef_if, ef_if_i, ef_if_r, ef_if_c, ef_if_s, ef_if_b, ef_if_t : - IF 'LOGICAL' IN TYPEOF (v1) THEN - lgc := v1; IF lgc THEN RETURN (v2); ELSE RETURN (v3); END_IF; - END_IF; - ef_ensemble : -- (mem + vlist) effectively converts list to set - RETURN (make_finite_space(mem + vlist)); - ef_member_of : - IF (schema_prefix + 'MATHS_SPACE') IN TYPEOF (v2) THEN - lgc := member_of(v1,v2); - IF lgc <> UNKNOWN THEN RETURN (ctmv(lgc)); END_IF; - END_IF; - END_CASE; - RETURN (make_function_application(expr.func,vlist)); - END_IF; - IF 'ABSTRACTED_EXPRESSION_FUNCTION' IN types THEN - gexpr := substitute(expr.func\abstracted_expression_function.expr, - expr.func\quantifier_expression.variables,vlist); - RETURN (simplify_generic_expression(gexpr)); - END_IF; - IF 'FINITE_FUNCTION' IN types THEN - pairs := expr.func\finite_function.pairs; - REPEAT i := 1 TO SIZEOF (pairs); - IF equal_maths_values(vlist[1],pairs[i][1]) THEN - RETURN (simplify_maths_value(pairs[i][2])); - END_IF; - END_REPEAT; - RETURN (make_function_application(expr.func,vlist)); - END_IF; - RETURN (expr); -END_FUNCTION; -- simplify_function_application - -(* Implicit interfaced from: mathematical_functions_schema *) -FUNCTION convert_to_maths_function(func : maths_function_select) : maths_function; - LOCAL - efenum : elementary_function_enumerators; - mthfun : maths_function; - END_LOCAL; - IF (schema_prefix + 'MATHS_FUNCTION') IN TYPEOF (func) THEN - mthfun := func; - ELSE - efenum := func; - mthfun := make_elementary_function (efenum); - END_IF; - RETURN (mthfun); -END_FUNCTION; -- convert_to_maths_function - -(* Implicit interfaced from: mathematical_functions_schema *) -FUNCTION derive_function_domain(func : maths_function) : tuple_space; - LOCAL - typenames : SET OF STRING := stripped_typeof(func); - tspace : tuple_space := make_listed_product_space ([]); - shape : LIST OF positive_integer; - sidxs : LIST OF INTEGER := [0]; - itvl : finite_integer_interval; - factors : LIST OF finite_integer_interval := []; - is_uniform : BOOLEAN := TRUE; - END_LOCAL; - IF 'FINITE_FUNCTION' IN typenames THEN - RETURN (derive_finite_function_domain (func\finite_function.pairs)); - END_IF; - IF 'CONSTANT_FUNCTION' IN typenames THEN - RETURN (domain_from (func\constant_function.source_of_domain)); - END_IF; - IF 'SELECTOR_FUNCTION' IN typenames THEN - RETURN (domain_from (func\selector_function.source_of_domain)); - END_IF; - IF 'ELEMENTARY_FUNCTION' IN typenames THEN - RETURN (derive_elementary_function_domain (func\elementary_function.func_id)); - END_IF; - IF 'RESTRICTION_FUNCTION' IN typenames THEN - RETURN (one_tuples_of (func\restriction_function.operand)); - END_IF; - IF 'REPACKAGING_FUNCTION' IN typenames THEN - IF func\repackaging_function.input_repack = ro_nochange THEN - RETURN (func\repackaging_function.operand.domain); - END_IF; - IF func\repackaging_function.input_repack = ro_wrap_as_tuple THEN - RETURN (factor1 (func\repackaging_function.operand.domain)); - END_IF; - IF func\repackaging_function.input_repack = ro_unwrap_tuple THEN - RETURN (one_tuples_of (func\repackaging_function.operand.domain)); - END_IF; - -- Unreachable, as there is no other possible value for input_repack. - RETURN (?); - END_IF; - IF 'REINDEXED_ARRAY_FUNCTION' IN typenames THEN - shape := shape_of_array(func\unary_generic_expression.operand); - sidxs := func\reindexed_array_function.starting_indices; - REPEAT i := 1 TO SIZEOF (shape); - itvl := make_finite_integer_interval (sidxs[i], sidxs[i]+shape[i]-1); - INSERT (factors, itvl, i-1); - IF shape[i] <> shape[1] THEN is_uniform := FALSE; END_IF; - END_REPEAT; - IF is_uniform THEN - RETURN (make_uniform_product_space (factors[1], SIZEOF (shape))); - END_IF; - RETURN (make_listed_product_space (factors)); - END_IF; - IF 'SERIES_COMPOSED_FUNCTION' IN typenames THEN - RETURN (func\series_composed_function.operands[1].domain); - END_IF; - IF 'PARALLEL_COMPOSED_FUNCTION' IN typenames THEN - RETURN (domain_from (func\parallel_composed_function.source_of_domain)); - END_IF; - IF 'EXPLICIT_TABLE_FUNCTION' IN typenames THEN - shape := func\explicit_table_function.shape; - sidxs[1] := func\explicit_table_function.index_base; - REPEAT i := 1 TO SIZEOF (shape); - itvl := make_finite_integer_interval (sidxs[1], sidxs[1]+shape[i]-1); - INSERT (factors, itvl, i-1); - IF shape[i] <> shape[1] THEN is_uniform := FALSE; END_IF; - END_REPEAT; - IF is_uniform THEN - RETURN (make_uniform_product_space (factors[1], SIZEOF (shape))); - END_IF; - RETURN (make_listed_product_space (factors)); - END_IF; - IF 'HOMOGENEOUS_LINEAR_FUNCTION' IN typenames THEN - RETURN (one_tuples_of (make_uniform_product_space - (factor1 (func\homogeneous_linear_function.mat.range), - func\homogeneous_linear_function.mat\explicit_table_function.shape - [func\homogeneous_linear_function.sum_index]))); - END_IF; - IF 'GENERAL_LINEAR_FUNCTION' IN typenames THEN - RETURN (one_tuples_of (make_uniform_product_space - (factor1 (func\general_linear_function.mat.range), - func\general_linear_function.mat\explicit_table_function.shape - [func\general_linear_function.sum_index] - 1))); - END_IF; - IF 'B_SPLINE_BASIS' IN typenames THEN - RETURN (one_tuples_of (make_finite_real_interval - (func\b_spline_basis.repeated_knots[func\b_spline_basis.order], closed, - func\b_spline_basis.repeated_knots[func\b_spline_basis.num_basis+1], closed))); - END_IF; - IF 'B_SPLINE_FUNCTION' IN typenames THEN - REPEAT i := 1 TO SIZEOF (func\b_spline_function.basis); - tspace := assoc_product_space (tspace, func\b_spline_function.basis[i].domain); - END_REPEAT; - RETURN (one_tuples_of (tspace)); - END_IF; - IF 'RATIONALIZE_FUNCTION' IN typenames THEN - RETURN (func\rationalize_function.fun.domain); - END_IF; - IF 'PARTIAL_DERIVATIVE_FUNCTION' IN typenames THEN - RETURN (func\partial_derivative_function.derivand.domain); - END_IF; - IF 'DEFINITE_INTEGRAL_FUNCTION' IN typenames THEN - RETURN (derive_definite_integral_domain(func)); - END_IF; - IF 'ABSTRACTED_EXPRESSION_FUNCTION' IN typenames THEN - REPEAT i := 1 TO SIZEOF (func\abstracted_expression_function.variables); - tspace := assoc_product_space (tspace, one_tuples_of (values_space_of - (func\abstracted_expression_function.variables[i]))); - END_REPEAT; - RETURN (tspace); - END_IF; - IF 'EXPRESSION_DENOTED_FUNCTION' IN typenames THEN - RETURN (values_space_of (func\expression_denoted_function.expr)\function_space. - domain_argument); - END_IF; - IF 'IMPORTED_POINT_FUNCTION' IN typenames THEN - RETURN (one_tuples_of (make_listed_product_space ([]))); - END_IF; - IF 'IMPORTED_CURVE_FUNCTION' IN typenames THEN - RETURN (func\imported_curve_function.parametric_domain); - END_IF; - IF 'IMPORTED_SURFACE_FUNCTION' IN typenames THEN - RETURN (func\imported_surface_function.parametric_domain); - END_IF; - IF 'IMPORTED_VOLUME_FUNCTION' IN typenames THEN - RETURN (func\imported_volume_function.parametric_domain); - END_IF; - IF 'APPLICATION_DEFINED_FUNCTION' IN typenames THEN - RETURN (func\application_defined_function.explicit_domain); - END_IF; - -- Unreachable, as no other subtypes of maths_function are permissible without - -- first modifying this function to account for them. - RETURN (?); -END_FUNCTION; -- derive_function_domain - -(* Implicit interfaced from: mathematical_functions_schema *) -FUNCTION derive_finite_function_domain(pairs : SET [1:?] OF LIST [2:2] OF maths_value) - : tuple_space; - LOCAL - result : SET OF maths_value := []; - END_LOCAL; --- An ambiguity in ISO 10303-11:1994 pages 99-101 leaves the result of the following --- three lines ambiguous in those cases where an operand is simultaneously a member --- of the base type and the aggregate type. --- REPEAT i := 1 TO SIZEOF (pairs); --- result := result + pairs[i][1]; --- END_REPEAT; --- The next line unions an empty set and the desired list to get the desired set. - result := result + list_selected_components (pairs, 1); - RETURN (one_tuples_of (make_finite_space (result))); -END_FUNCTION; -- derive_finite_function_domain - -(* Implicit interfaced from: mathematical_functions_schema *) -FUNCTION list_selected_components(aggr : AGGREGATE OF LIST OF maths_value; - k : positive_integer) : LIST OF maths_value; - LOCAL - result : LIST OF maths_value := []; - j : INTEGER := 0; - END_LOCAL; - REPEAT i := LOINDEX (aggr) TO HIINDEX (aggr); - IF k <= SIZEOF (aggr[i]) THEN - INSERT (result, aggr[i][k], j); - j := j + 1; - END_IF; - END_REPEAT; - RETURN (result); -END_FUNCTION; -- list_selected_components - -(* Implicit interfaced from: mathematical_functions_schema *) -FUNCTION one_tuples_of(spc : maths_space) : tuple_space; - RETURN (make_uniform_product_space (spc, 1)); -END_FUNCTION; -- one_tuples_of - -(* Implicit interfaced from: mathematical_functions_schema *) -FUNCTION domain_from(ref : maths_space_or_function) : tuple_space; - LOCAL - typenames : SET OF STRING := stripped_typeof(ref); - func : maths_function; - END_LOCAL; - IF NOT EXISTS (ref) THEN RETURN (?); END_IF; - IF 'TUPLE_SPACE' IN typenames THEN RETURN (ref); END_IF; - IF 'MATHS_SPACE' IN typenames THEN RETURN (one_tuples_of (ref)); END_IF; - func := ref; - IF 'CONSTANT_FUNCTION' IN typenames THEN - RETURN (domain_from (func\constant_function.source_of_domain)); - END_IF; - IF 'SELECTOR_FUNCTION' IN typenames THEN - RETURN (domain_from (func\selector_function.source_of_domain)); - END_IF; - IF 'PARALLEL_COMPOSED_FUNCTION' IN typenames THEN - RETURN (domain_from (func\parallel_composed_function.source_of_domain)); - END_IF; - RETURN (func.domain); -END_FUNCTION; -- domain_from - -(* Implicit interfaced from: mathematical_functions_schema *) -FUNCTION no_cyclic_domain_reference(ref : maths_space_or_function; - used : SET OF maths_function) : BOOLEAN; - LOCAL - typenames : SET OF STRING := TYPEOF (ref); - func : maths_function; - END_LOCAL; - IF (NOT EXISTS (ref)) OR (NOT EXISTS (used)) THEN - RETURN (FALSE); - END_IF; - IF (schema_prefix + 'MATHS_SPACE') IN typenames THEN - RETURN (TRUE); - END_IF; - func := ref; - IF func IN used THEN - RETURN (FALSE); - END_IF; - IF (schema_prefix + 'CONSTANT_FUNCTION') IN typenames THEN - RETURN (no_cyclic_domain_reference (func\constant_function.source_of_domain, - used + [func])); - END_IF; - IF (schema_prefix + 'SELECTOR_FUNCTION') IN typenames THEN - RETURN (no_cyclic_domain_reference (func\selector_function.source_of_domain, - used + [func])); - END_IF; - IF (schema_prefix + 'PARALLEL_COMPOSED_FUNCTION') IN typenames THEN - RETURN (no_cyclic_domain_reference ( - func\parallel_composed_function.source_of_domain, used + [func])); - END_IF; - RETURN (TRUE); -END_FUNCTION; -- no_cyclic_domain_reference - -(* Implicit interfaced from: mathematical_functions_schema *) -FUNCTION convert_to_operands_prcmfn(srcdom : maths_space_or_function; - prepfun : LIST OF maths_function; - finfun : maths_function_select) - : LIST [2:?] OF generic_expression; - LOCAL - operands : LIST OF generic_expression := []; - END_LOCAL; - INSERT (operands, srcdom, 0); - REPEAT i := 1 TO SIZEOF (prepfun); - INSERT (operands, prepfun[i], i); - END_REPEAT; - INSERT (operands, convert_to_maths_function (finfun), SIZEOF (prepfun)+1); - RETURN (operands); -END_FUNCTION; -- convert_to_operands_prcmfn - -(* Implicit interfaced from: mathematical_functions_schema *) -FUNCTION parallel_composed_function_domain_check( - comdom : tuple_space; - funcs : LIST OF maths_function) : BOOLEAN; - REPEAT i := 1 TO SIZEOF (funcs); - IF NOT (compatible_spaces (comdom, funcs[i].domain)) THEN - RETURN (FALSE); - END_IF; - END_REPEAT; - RETURN (TRUE); -END_FUNCTION; -- parallel_composed_function_domain_check - -(* Implicit interfaced from: mathematical_functions_schema *) -FUNCTION parallel_composed_function_composability_check( - funcs : LIST OF maths_function; - final : maths_function_select) : BOOLEAN; - LOCAL - tplsp : tuple_space := the_zero_tuple_space; - finfun : maths_function := convert_to_maths_function (final); - END_LOCAL; - REPEAT i := 1 TO SIZEOF (funcs); - tplsp := assoc_product_space (tplsp, funcs[i].range); - END_REPEAT; - RETURN (compatible_spaces (tplsp, finfun.domain)); -END_FUNCTION; -- parallel_composed_function_composability_check - -(* Implicit interfaced from: mathematical_functions_schema *) -FUNCTION assoc_product_space(ts1, ts2 : tuple_space) : tuple_space; - LOCAL - types1 : SET OF STRING := stripped_typeof (ts1); - types2 : SET OF STRING := stripped_typeof (ts2); - up1, up2 : uniform_product_space := make_uniform_product_space(the_reals,1); - lp1, lp2, lps : listed_product_space := the_zero_tuple_space; - et1, et2, ets : extended_tuple_space := the_tuples; - use_up1, use_up2, use_lp1, use_lp2 : BOOLEAN; - factors : LIST OF maths_space := []; - tspace : tuple_space; - END_LOCAL; - -- Identify type of first operand - IF 'UNIFORM_PRODUCT_SPACE' IN types1 THEN - up1 := ts1; use_up1 := true; use_lp1 := false; - ELSE - IF 'LISTED_PRODUCT_SPACE' IN types1 THEN - lp1 := ts1; use_up1 := false; use_lp1 := true; - ELSE - IF NOT ('EXTENDED_TUPLE_SPACE' IN types1) THEN - -- Unreachable when this function was written. - RETURN (?); - END_IF; - et1 := ts1; use_up1 := false; use_lp1 := false; - END_IF; - END_IF; - -- Identify type of second operand - IF 'UNIFORM_PRODUCT_SPACE' IN types2 THEN - up2 := ts2; use_up2 := true; use_lp2 := false; - ELSE - IF 'LISTED_PRODUCT_SPACE' IN types2 THEN - lp2 := ts2; use_up2 := false; use_lp2 := true; - ELSE - IF NOT ('EXTENDED_TUPLE_SPACE' IN types2) THEN - -- Unreachable when this function was written. - RETURN (?); - END_IF; - et2 := ts2; use_up2 := false; use_lp2 := false; - END_IF; - END_IF; - -- Construction for each combination of cases - IF use_up1 THEN - IF use_up2 THEN - IF up1.base = up2.base THEN - tspace := make_uniform_product_space(up1.base, up1.exponent + up2.exponent); - ELSE - factors := [up1.base : up1.exponent, up2.base : up2.exponent]; - tspace := make_listed_product_space(factors); - END_IF; - ELSE - IF use_lp2 THEN - -- Avoid compiler confusion by breaking into two lines. - factors := [up1.base : up1.exponent]; - factors := factors + lp2.factors; - tspace := make_listed_product_space(factors); - ELSE - tspace := assoc_product_space(up1, et2.base); - tspace := make_extended_tuple_space(tspace, et2.extender); - END_IF; - END_IF; - ELSE - IF use_lp1 THEN - IF use_up2 THEN - -- Avoid compiler confusion by breaking into two lines. - factors := [up2.base : up2.exponent]; - factors := lp1.factors + factors; - tspace := make_listed_product_space(factors); - ELSE - IF use_lp2 THEN - tspace := make_listed_product_space(lp1.factors + lp2.factors); - ELSE - tspace := assoc_product_space(lp1, et2.base); - tspace := make_extended_tuple_space(tspace, et2.extender); - END_IF; - END_IF; - ELSE - IF use_up2 THEN - IF et1.extender = up2.base THEN - tspace := assoc_product_space(et1.base, up2); - tspace := make_extended_tuple_space(tspace, et1.extender); - ELSE - -- No subtype is available to represent this cartesian product. - RETURN (?); - END_IF; - ELSE - IF use_lp2 THEN - factors := lp2.factors; - REPEAT i := 1 TO SIZEOF (factors); - IF et1.extender <> factors[i] THEN - -- No subtype available to represent this cartesian product. - RETURN (?); - END_IF; - END_REPEAT; - tspace := assoc_product_space(et1.base, lp2); - tspace := make_extended_tuple_space(tspace, et1.extender); - ELSE - IF et1.extender = et2.extender THEN - -- Next line may assign indeterminate (?) to tspace. - tspace := assoc_product_space(et1, et2.base); - ELSE - -- No subtype available to represent this cartesian product. - RETURN (?); - END_IF; - END_IF; - END_IF; - END_IF; - END_IF; - RETURN (tspace); -END_FUNCTION; -- assoc_product_space - -(* Implicit interfaced from: mathematical_functions_schema *) -FUNCTION make_elementary_space(space_id : elementary_space_enumerators) - : elementary_space; - RETURN (elementary_space (space_id) - || maths_space() - || generic_expression() - || generic_literal() - || simple_generic_expression() ); -END_FUNCTION; -- make_elementary_space - -(* Implicit interfaced from: mathematical_functions_schema *) -FUNCTION derive_elementary_function_domain(ef_val : elementary_function_enumerators) - : tuple_space; - IF NOT EXISTS (ef_val) THEN RETURN (?); END_IF; - CASE ef_val OF - ef_and : RETURN (make_extended_tuple_space (the_zero_tuple_space, the_logicals)); - ef_or : RETURN (make_extended_tuple_space (the_zero_tuple_space, the_logicals)); - ef_not : RETURN (make_uniform_product_space (the_logicals, 1)); - ef_xor : RETURN (make_uniform_product_space (the_logicals, 2)); - ef_negate_i : RETURN (make_uniform_product_space (the_integers, 1)); - ef_add_i : RETURN (the_integer_tuples); - ef_subtract_i : RETURN (make_uniform_product_space (the_integers, 2)); - ef_multiply_i : RETURN (the_integer_tuples); - ef_divide_i : RETURN (make_uniform_product_space (the_integers, 2)); - ef_mod_i : RETURN (make_uniform_product_space (the_integers, 2)); - ef_exponentiate_i : RETURN (make_uniform_product_space (the_integers, 2)); - ef_eq_i : RETURN (make_uniform_product_space (the_integers, 2)); - ef_ne_i : RETURN (make_uniform_product_space (the_integers, 2)); - ef_gt_i : RETURN (make_uniform_product_space (the_integers, 2)); - ef_lt_i : RETURN (make_uniform_product_space (the_integers, 2)); - ef_ge_i : RETURN (make_uniform_product_space (the_integers, 2)); - ef_le_i : RETURN (make_uniform_product_space (the_integers, 2)); - ef_abs_i : RETURN (make_uniform_product_space (the_integers, 1)); - ef_if_i : RETURN (make_listed_product_space ([the_logicals, the_integers, - the_integers])); - ef_negate_r : RETURN (make_uniform_product_space (the_reals, 1)); - ef_reciprocal_r : RETURN (make_uniform_product_space (the_reals, 1)); - ef_add_r : RETURN (the_real_tuples); - ef_subtract_r : RETURN (make_uniform_product_space (the_reals, 2)); - ef_multiply_r : RETURN (the_real_tuples); - ef_divide_r : RETURN (make_uniform_product_space (the_reals, 2)); - ef_mod_r : RETURN (make_uniform_product_space (the_reals, 2)); - ef_exponentiate_r : RETURN (make_listed_product_space ([the_nonnegative_reals, - the_reals])); - ef_exponentiate_ri : RETURN (make_listed_product_space ([the_reals, the_integers])); - ef_eq_r : RETURN (make_uniform_product_space (the_reals, 2)); - ef_ne_r : RETURN (make_uniform_product_space (the_reals, 2)); - ef_gt_r : RETURN (make_uniform_product_space (the_reals, 2)); - ef_lt_r : RETURN (make_uniform_product_space (the_reals, 2)); - ef_ge_r : RETURN (make_uniform_product_space (the_reals, 2)); - ef_le_r : RETURN (make_uniform_product_space (the_reals, 2)); - ef_abs_r : RETURN (make_uniform_product_space (the_reals, 1)); - ef_acos_r : RETURN (make_uniform_product_space (the_neg1_one_interval, 1)); - ef_asin_r : RETURN (make_uniform_product_space (the_neg1_one_interval, 1)); - ef_atan2_r : RETURN (make_uniform_product_space (the_reals, 2)); - ef_cos_r : RETURN (make_uniform_product_space (the_reals, 1)); - ef_exp_r : RETURN (make_uniform_product_space (the_reals, 1)); - ef_ln_r : RETURN (make_uniform_product_space (the_nonnegative_reals, 1)); - ef_log2_r : RETURN (make_uniform_product_space (the_nonnegative_reals, 1)); - ef_log10_r : RETURN (make_uniform_product_space (the_nonnegative_reals, 1)); - ef_sin_r : RETURN (make_uniform_product_space (the_reals, 1)); - ef_sqrt_r : RETURN (make_uniform_product_space (the_nonnegative_reals, 1)); - ef_tan_r : RETURN (make_uniform_product_space (the_reals, 1)); - ef_if_r : RETURN (make_listed_product_space ([the_logicals, the_reals, the_reals])); - ef_negate_c : RETURN (make_uniform_product_space (the_complex_numbers, 1)); - ef_reciprocal_c : RETURN (make_uniform_product_space (the_complex_numbers, 1)); - ef_add_c : RETURN (the_complex_tuples); - ef_subtract_c : RETURN (make_uniform_product_space (the_complex_numbers, 2)); - ef_multiply_c : RETURN (the_complex_tuples); - ef_divide_c : RETURN (make_uniform_product_space (the_complex_numbers, 2)); - ef_exponentiate_c : RETURN (make_uniform_product_space (the_complex_numbers, 2)); - ef_exponentiate_ci : RETURN (make_listed_product_space ([the_complex_numbers, - the_integers])); - ef_eq_c : RETURN (make_uniform_product_space (the_complex_numbers, 2)); - ef_ne_c : RETURN (make_uniform_product_space (the_complex_numbers, 2)); - ef_conjugate_c : RETURN (make_uniform_product_space (the_complex_numbers, 1)); - ef_abs_c : RETURN (make_uniform_product_space (the_complex_numbers, 1)); - ef_arg_c : RETURN (make_uniform_product_space (the_complex_numbers, 1)); - ef_cos_c : RETURN (make_uniform_product_space (the_complex_numbers, 1)); - ef_exp_c : RETURN (make_uniform_product_space (the_complex_numbers, 1)); - ef_ln_c : RETURN (make_uniform_product_space (the_complex_numbers, 1)); - ef_sin_c : RETURN (make_uniform_product_space (the_complex_numbers, 1)); - ef_sqrt_c : RETURN (make_uniform_product_space (the_complex_numbers, 1)); - ef_tan_c : RETURN (make_uniform_product_space (the_complex_numbers, 1)); - ef_if_c : RETURN (make_listed_product_space ([the_logicals, the_complex_numbers, - the_complex_numbers])); - ef_subscript_s : RETURN (make_listed_product_space ([the_strings, the_integers])); - ef_eq_s : RETURN (make_uniform_product_space (the_strings, 2)); - ef_ne_s : RETURN (make_uniform_product_space (the_strings, 2)); - ef_gt_s : RETURN (make_uniform_product_space (the_strings, 2)); - ef_lt_s : RETURN (make_uniform_product_space (the_strings, 2)); - ef_ge_s : RETURN (make_uniform_product_space (the_strings, 2)); - ef_le_s : RETURN (make_uniform_product_space (the_strings, 2)); - ef_subsequence_s : RETURN (make_listed_product_space ([the_strings, the_integers, - the_integers])); - ef_concat_s : RETURN (make_extended_tuple_space (the_zero_tuple_space, the_strings)); - ef_size_s : RETURN (make_uniform_product_space (the_strings, 1)); - ef_format : RETURN (make_listed_product_space ([the_numbers, the_strings])); - ef_value : RETURN (make_uniform_product_space (the_strings, 1)); - ef_like : RETURN (make_uniform_product_space (the_strings, 2)); - ef_if_s : RETURN (make_listed_product_space ([the_logicals, the_strings, - the_strings])); - ef_subscript_b : RETURN (make_listed_product_space ([the_binarys, the_integers])); - ef_eq_b : RETURN (make_uniform_product_space (the_binarys, 2)); - ef_ne_b : RETURN (make_uniform_product_space (the_binarys, 2)); - ef_gt_b : RETURN (make_uniform_product_space (the_binarys, 2)); - ef_lt_b : RETURN (make_uniform_product_space (the_binarys, 2)); - ef_ge_b : RETURN (make_uniform_product_space (the_binarys, 2)); - ef_le_b : RETURN (make_uniform_product_space (the_binarys, 2)); - ef_subsequence_b : RETURN (make_listed_product_space ([the_binarys, the_integers, - the_integers])); - ef_concat_b : RETURN (make_extended_tuple_space (the_zero_tuple_space, the_binarys)); - ef_size_b : RETURN (make_uniform_product_space (the_binarys, 1)); - ef_if_b : RETURN (make_listed_product_space ([the_logicals, the_binarys, - the_binarys])); - ef_subscript_t : RETURN (make_listed_product_space ([the_tuples, the_integers])); - ef_eq_t : RETURN (make_uniform_product_space (the_tuples, 2)); - ef_ne_t : RETURN (make_uniform_product_space (the_tuples, 2)); - ef_concat_t : RETURN (make_extended_tuple_space (the_zero_tuple_space, the_tuples)); - ef_size_t : RETURN (make_uniform_product_space (the_tuples, 1)); - ef_entuple : RETURN (the_tuples); - ef_detuple : RETURN (make_uniform_product_space (the_generics, 1)); - ef_insert : RETURN (make_listed_product_space ([the_tuples, the_generics, - the_integers])); - ef_remove : RETURN (make_listed_product_space ([the_tuples, the_integers])); - ef_if_t : RETURN (make_listed_product_space ([the_logicals, the_tuples, - the_tuples])); - ef_sum_it : RETURN (make_uniform_product_space (the_integer_tuples, 1)); - ef_product_it : RETURN (make_uniform_product_space (the_integer_tuples, 1)); - ef_add_it : RETURN (make_extended_tuple_space (the_integer_tuples, - the_integer_tuples)); - ef_subtract_it : RETURN (make_uniform_product_space (the_integer_tuples, 2)); - ef_scalar_mult_it : RETURN (make_listed_product_space ([the_integers, - the_integer_tuples])); - ef_dot_prod_it : RETURN (make_uniform_product_space (the_integer_tuples, 2)); - ef_sum_rt : RETURN (make_uniform_product_space (the_real_tuples, 1)); - ef_product_rt : RETURN (make_uniform_product_space (the_real_tuples, 1)); - ef_add_rt : RETURN (make_extended_tuple_space (the_real_tuples, the_real_tuples)); - ef_subtract_rt : RETURN (make_uniform_product_space (the_real_tuples, 2)); - ef_scalar_mult_rt : RETURN (make_listed_product_space ([the_reals, - the_real_tuples])); - ef_dot_prod_rt : RETURN (make_uniform_product_space (the_real_tuples, 2)); - ef_norm_rt : RETURN (make_uniform_product_space (the_real_tuples, 1)); - ef_sum_ct : RETURN (make_uniform_product_space (the_complex_tuples, 1)); - ef_product_ct : RETURN (make_uniform_product_space (the_complex_tuples, 1)); - ef_add_ct : RETURN (make_extended_tuple_space (the_complex_tuples, - the_complex_tuples)); - ef_subtract_ct : RETURN (make_uniform_product_space (the_complex_tuples, 2)); - ef_scalar_mult_ct : RETURN (make_listed_product_space ([the_complex_numbers, - the_complex_tuples])); - ef_dot_prod_ct : RETURN (make_uniform_product_space (the_complex_tuples, 2)); - ef_norm_ct : RETURN (make_uniform_product_space (the_complex_tuples, 1)); - ef_if : RETURN (make_listed_product_space ([the_logicals, the_generics, - the_generics])); - ef_ensemble : RETURN (the_tuples); - ef_member_of : RETURN (make_listed_product_space ([the_generics, the_maths_spaces])); - OTHERWISE : RETURN (?); - END_CASE; -END_FUNCTION; -- derive_elementary_function_domain - -(* Implicit interfaced from: mathematical_functions_schema *) -FUNCTION make_real_interval_from_min(min : REAL; - minclo : open_closed) : real_interval_from_min; - RETURN (real_interval_from_min (min, minclo) - || maths_space() - || generic_expression() - || generic_literal() - || simple_generic_expression() ); -END_FUNCTION; -- make_real_interval_from_min - -(* Implicit interfaced from: mathematical_functions_schema *) -FUNCTION make_finite_real_interval(min : REAL; - minclo : open_closed; - max : REAL; - maxclo : open_closed) : finite_real_interval; - RETURN (finite_real_interval (min, minclo, max, maxclo) - || maths_space() - || generic_expression() - || generic_literal() - || simple_generic_expression() ); -END_FUNCTION; -- make_finite_real_interval - -(* Implicit interfaced from: mathematical_functions_schema *) -FUNCTION space_dimension(tspace : tuple_space) : nonnegative_integer; - LOCAL - types : SET OF STRING := TYPEOF (tspace); - END_LOCAL; - IF (schema_prefix + 'UNIFORM_PRODUCT_SPACE') IN types THEN - RETURN (tspace\uniform_product_space.exponent); - END_IF; - IF (schema_prefix + 'LISTED_PRODUCT_SPACE') IN types THEN - RETURN (SIZEOF (tspace\listed_product_space.factors)); - END_IF; - IF (schema_prefix + 'EXTENDED_TUPLE_SPACE') IN types THEN - -- In the case of an extended_tuple_space, the minimum dimension is returned. - RETURN (space_dimension (tspace\extended_tuple_space.base)); - END_IF; - -- Should be unreachable - RETURN (?); -END_FUNCTION; -- space_dimension - -(* Implicit interfaced from: mathematical_functions_schema *) -FUNCTION factor1(tspace : tuple_space) : maths_space; - LOCAL - typenames : SET OF STRING := TYPEOF (tspace); - END_LOCAL; - IF (schema_prefix + 'UNIFORM_PRODUCT_SPACE') IN typenames THEN - RETURN (tspace\uniform_product_space.base); - END_IF; - IF (schema_prefix + 'LISTED_PRODUCT_SPACE') IN typenames THEN - RETURN (tspace\listed_product_space.factors[1]); - -- This path could return the indeterminate value if the list is empty. - -- This is the correct result for this case. - END_IF; - IF (schema_prefix + 'EXTENDED_TUPLE_SPACE') IN typenames THEN - RETURN (factor1 (tspace\extended_tuple_space.base)); - END_IF; - -- Should not be reachable. - RETURN (?); -END_FUNCTION; -- factor1 - -(* Implicit interfaced from: mathematical_functions_schema *) -FUNCTION repackage(tspace : tuple_space; - repckg : repackage_options) : tuple_space; - CASE repckg OF - ro_nochange : RETURN (tspace); - ro_wrap_as_tuple : RETURN (one_tuples_of (tspace)); - ro_unwrap_tuple : RETURN (factor1 (tspace)); - OTHERWISE : RETURN (?); - END_CASE; -END_FUNCTION; -- repackage - -(* Implicit interfaced from: mathematical_functions_schema *) -FUNCTION shape_of_array(func : maths_function) : LIST OF positive_integer; - LOCAL - tspace : tuple_space; - temp : maths_space; - result : LIST OF positive_integer := []; - END_LOCAL; - IF (schema_prefix + 'EXPLICIT_TABLE_FUNCTION') IN TYPEOF (func) THEN - RETURN (func\explicit_table_function.shape); - END_IF; - tspace := func.domain; - IF (space_dimension (tspace) = 1) AND ((schema_prefix + 'TUPLE_SPACE') IN - TYPEOF (factor1 (tspace))) THEN - tspace := factor1 (tspace); - END_IF; - REPEAT i := 1 TO space_dimension (tspace); - temp := factor_space (tspace, i); - IF NOT ((schema_prefix + 'FINITE_INTEGER_INTERVAL') IN TYPEOF (temp)) THEN - RETURN (?); - END_IF; - INSERT (result, temp\finite_integer_interval.size, i-1); - END_REPEAT; - RETURN (result); -END_FUNCTION; -- shape_of_array - -(* Implicit interfaced from: mathematical_functions_schema *) -FUNCTION factor_space(tspace : tuple_space; - idx : positive_integer) : maths_space; - LOCAL - typenames : SET OF STRING := TYPEOF (tspace); - END_LOCAL; - IF (schema_prefix + 'UNIFORM_PRODUCT_SPACE') IN typenames THEN - IF idx <= tspace\uniform_product_space.exponent THEN - RETURN (tspace\uniform_product_space.base); - END_IF; - RETURN (?); - END_IF; - IF (schema_prefix + 'LISTED_PRODUCT_SPACE') IN typenames THEN - IF idx <= SIZEOF (tspace\listed_product_space.factors) THEN - RETURN (tspace\listed_product_space.factors[idx]); - END_IF; - RETURN (?); - END_IF; - IF (schema_prefix + 'EXTENDED_TUPLE_SPACE') IN typenames THEN - IF idx <= space_dimension (tspace\extended_tuple_space.base) THEN - RETURN (factor_space (tspace\extended_tuple_space.base, idx)); - END_IF; - RETURN (tspace\extended_tuple_space.extender); - END_IF; - -- Should not be reachable. - RETURN (?); -END_FUNCTION; -- factor_space - -(* Implicit interfaced from: mathematical_functions_schema *) -FUNCTION function_is_array(func : maths_function) : BOOLEAN; - LOCAL - tspace : tuple_space; - temp : maths_space; - END_LOCAL; - IF NOT EXISTS (func) THEN RETURN (FALSE); END_IF; - tspace := func.domain; - IF (space_dimension (tspace) = 1) AND ((schema_prefix + 'TUPLE_SPACE') IN - TYPEOF (factor1 (tspace))) THEN - tspace := factor1 (tspace); - END_IF; - IF NOT ((schema_prefix + 'PRODUCT_SPACE') IN TYPEOF (tspace)) THEN - RETURN (FALSE); - END_IF; - REPEAT i := 1 TO space_dimension (tspace); - temp := factor_space (tspace, i); - IF NOT ((schema_prefix + 'FINITE_INTEGER_INTERVAL') IN TYPEOF (temp)) THEN - RETURN (FALSE); - END_IF; - END_REPEAT; - RETURN (TRUE); -END_FUNCTION; -- function_is_array - -(* Implicit interfaced from: mathematical_functions_schema *) -FUNCTION composable_sequence(operands : LIST [2:?] OF maths_function) : BOOLEAN; - REPEAT i := 1 TO SIZEOF (operands) - 1; - IF NOT compatible_spaces (operands[i].range, operands[i+1].domain) THEN - RETURN (FALSE); - END_IF; - END_REPEAT; - RETURN (TRUE); -END_FUNCTION; -- composable_sequence - -(* Implicit interfaced from: mathematical_functions_schema *) -FUNCTION function_is_2d_table(func : maths_function) : BOOLEAN; - LOCAL - temp : maths_space; - pspace : product_space; - itvl1, itvl2 : finite_integer_interval; - END_LOCAL; - IF NOT EXISTS (func) THEN RETURN (FALSE); END_IF; - IF space_dimension (func.domain) <> 1 THEN RETURN (FALSE); END_IF; - temp := factor1 (func.domain); - IF NOT ('PRODUCT_SPACE' IN stripped_typeof(temp)) THEN RETURN (FALSE); END_IF; - pspace := temp; - IF space_dimension (pspace) <> 2 THEN RETURN (FALSE); END_IF; - temp := factor1 (pspace); - IF NOT ('FINITE_INTEGER_INTERVAL' IN stripped_typeof(temp)) THEN - RETURN (FALSE); - END_IF; - itvl1 := temp; - temp := factor_space (pspace, 2); - IF NOT ('FINITE_INTEGER_INTERVAL' IN stripped_typeof(temp)) THEN - RETURN (FALSE); - END_IF; - itvl2 := temp; - RETURN (bool((itvl1.min = itvl2.min) AND ((itvl1.min = 0) OR (itvl1.min = 1)))); -END_FUNCTION; -- function_is_2d_table - -(* Implicit interfaced from: mathematical_functions_schema *) -FUNCTION subspace_of_es(spc : maths_space; - es : elementary_space_enumerators) : LOGICAL; - LOCAL - types : SET OF STRING := stripped_typeof(spc); - END_LOCAL; - IF NOT EXISTS (spc) OR NOT EXISTS (es) THEN RETURN (FALSE); END_IF; - IF 'ELEMENTARY_SPACE' IN types THEN - RETURN (es_subspace_of_es(spc\elementary_space.space_id,es)); - END_IF; - IF 'FINITE_SPACE' IN types THEN - RETURN (all_members_of_es(spc\finite_space.members,es)); - END_IF; - CASE es OF - es_numbers : RETURN ( - ('FINITE_INTEGER_INTERVAL' IN types) OR - ('INTEGER_INTERVAL_FROM_MIN' IN types) OR - ('INTEGER_INTERVAL_TO_MAX' IN types) OR - ('FINITE_REAL_INTERVAL' IN types) OR - ('REAL_INTERVAL_FROM_MIN' IN types) OR - ('REAL_INTERVAL_TO_MAX' IN types) OR - ('CARTESIAN_COMPLEX_NUMBER_REGION' IN types) OR - ('POLAR_COMPLEX_NUMBER_REGION' IN types) ); - es_complex_numbers : RETURN ( - ('CARTESIAN_COMPLEX_NUMBER_REGION' IN types) OR - ('POLAR_COMPLEX_NUMBER_REGION' IN types) ); - es_reals : RETURN ( - ('FINITE_REAL_INTERVAL' IN types) OR - ('REAL_INTERVAL_FROM_MIN' IN types) OR - ('REAL_INTERVAL_TO_MAX' IN types) ); - es_integers : RETURN ( - ('FINITE_INTEGER_INTERVAL' IN types) OR - ('INTEGER_INTERVAL_FROM_MIN' IN types) OR - ('INTEGER_INTERVAL_TO_MAX' IN types) ); - es_logicals : RETURN (FALSE); - es_booleans : RETURN (FALSE); - es_strings : RETURN (FALSE); - es_binarys : RETURN (FALSE); - es_maths_spaces : RETURN (FALSE); - es_maths_functions : RETURN ('FUNCTION_SPACE' IN types); - es_generics : RETURN (TRUE); - END_CASE; - RETURN (UNKNOWN); -END_FUNCTION; -- subspace_of_es - -(* Implicit interfaced from: mathematical_functions_schema *) -FUNCTION es_subspace_of_es(es1, es2 : elementary_space_enumerators) : BOOLEAN; - IF NOT EXISTS (es1) OR NOT EXISTS (es2) THEN RETURN (FALSE); END_IF; - IF es1 = es2 THEN RETURN (TRUE); END_IF; - IF es2 = es_generics THEN RETURN (TRUE); END_IF; - IF (es1 = es_booleans) AND (es2 = es_logicals) THEN RETURN (TRUE); END_IF; - IF (es2 = es_numbers) AND ((es1 = es_complex_numbers) OR (es1 = es_reals) OR - (es1 = es_integers)) THEN RETURN (TRUE); END_IF; - RETURN (FALSE); -END_FUNCTION; -- es_subspace_of_es - -(* Implicit interfaced from: mathematical_functions_schema *) -FUNCTION all_members_of_es(sv : SET OF maths_value; - es : elementary_space_enumerators) : LOGICAL; - CONSTANT - base_types : SET OF STRING := ['NUMBER','COMPLEX_NUMBER_LITERAL','REAL', - 'INTEGER','LOGICAL','BOOLEAN','STRING','BINARY','MATHS_SPACE', - 'MATHS_FUNCTION','LIST','ELEMENTARY_SPACE_ENUMERATORS','ORDERING_TYPE', - 'LOWER_UPPER','SYMMETRY_TYPE','ELEMENTARY_FUNCTION_ENUMERATORS', - 'OPEN_CLOSED','SPACE_CONSTRAINT_TYPE','REPACKAGE_OPTIONS', - 'EXTENSION_OPTIONS']; - END_CONSTANT; - LOCAL - v : maths_value; - key_type : STRING := ''; - types : SET OF STRING; - ge : generic_expression; - cum : LOGICAL := TRUE; - vspc : maths_space; - END_LOCAL; - IF NOT EXISTS (sv) OR NOT EXISTS (es) THEN RETURN (FALSE); END_IF; - CASE es OF - es_numbers : key_type := 'NUMBER'; - es_complex_numbers : key_type := 'COMPLEX_NUMBER_LITERAL'; - es_reals : key_type := 'REAL'; - es_integers : key_type := 'INTEGER'; - es_logicals : key_type := 'LOGICAL'; - es_booleans : key_type := 'BOOLEAN'; - es_strings : key_type := 'STRING'; - es_binarys : key_type := 'BINARY'; - es_maths_spaces : key_type := 'MATHS_SPACE'; - es_maths_functions : key_type := 'MATHS_FUNCTION'; - es_generics : RETURN (TRUE); - END_CASE; - REPEAT i := 1 TO SIZEOF (sv); - IF NOT EXISTS (sv[i]) THEN RETURN (FALSE); END_IF; - v := simplify_maths_value(sv[i]); - types := stripped_typeof(v); - IF key_type IN types THEN SKIP; END_IF; - IF (es = es_numbers) AND ('COMPLEX_NUMBER_LITERAL' IN types) THEN SKIP; END_IF; - IF SIZEOF (base_types * types) > 0 THEN RETURN (FALSE); END_IF; - -- Must be a generic_expression which doesn't simplify and which is not a - ge := v; - IF has_values_space(ge) THEN - vspc := values_space_of(ge); - IF NOT subspace_of_es(vspc,es) THEN - IF NOT compatible_spaces(vspc,make_elementary_space(es)) THEN - RETURN (FALSE); - END_IF; - cum := UNKNOWN; - END_IF; - ELSE - cum := UNKNOWN; - END_IF; - IF cum = FALSE THEN RETURN (FALSE); END_IF; - END_REPEAT; - RETURN (cum); -END_FUNCTION; - -(* Implicit interfaced from: mathematical_functions_schema *) -FUNCTION values_space_of(expr : generic_expression) : maths_space; - LOCAL - e_prefix : STRING := 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.'; - typenames : SET OF STRING := TYPEOF (expr); - END_LOCAL; - IF (schema_prefix + 'MATHS_VARIABLE') IN typenames THEN - RETURN (expr\maths_variable.values_space); - END_IF; - IF (e_prefix + 'EXPRESSION') IN typenames THEN - IF (e_prefix + 'NUMERIC_EXPRESSION') IN typenames THEN - IF expr\numeric_expression.is_int THEN - IF (e_prefix + 'INT_LITERAL') IN typenames THEN - RETURN (make_finite_space ([expr\int_literal.the_value])); - ELSE - RETURN (the_integers); - END_IF; - ELSE - IF (e_prefix + 'REAL_LITERAL') IN typenames THEN - RETURN (make_finite_space ([expr\real_literal.the_value])); - ELSE - RETURN (the_reals); - END_IF; - END_IF; - END_IF; - IF (e_prefix + 'BOOLEAN_EXPRESSION') IN typenames THEN - IF (e_prefix + 'BOOLEAN_LITERAL') IN typenames THEN - RETURN (make_finite_space ([expr\boolean_literal.the_value])); - ELSE - RETURN (the_booleans); - END_IF; - END_IF; - IF (e_prefix + 'STRING_EXPRESSION') IN typenames THEN - IF (e_prefix + 'STRING_LITERAL') IN typenames THEN - RETURN (make_finite_space ([expr\string_literal.the_value])); - ELSE - RETURN (the_strings); - END_IF; - END_IF; - RETURN (?); - END_IF; - IF (schema_prefix + 'MATHS_FUNCTION') IN typenames THEN - IF expression_is_constant (expr) THEN - RETURN (make_finite_space ([expr])); - ELSE - RETURN (make_function_space (sc_equal, expr\maths_function.domain, - sc_equal, expr\maths_function.range)); - END_IF; - END_IF; - IF (schema_prefix + 'FUNCTION_APPLICATION') IN typenames THEN - RETURN (expr\function_application.func.range); - END_IF; - IF (schema_prefix + 'MATHS_SPACE') IN typenames THEN - IF expression_is_constant (expr) THEN - RETURN (make_finite_space ([expr])); - ELSE - RETURN (make_elementary_space (es_maths_spaces)); - END_IF; - END_IF; - IF (schema_prefix + 'DEPENDENT_VARIABLE_DEFINITION') IN typenames THEN - RETURN (values_space_of (expr\unary_generic_expression.operand)); - END_IF; - IF (schema_prefix + 'COMPLEX_NUMBER_LITERAL') IN typenames THEN - RETURN (make_finite_space ([expr])); - END_IF; - IF (schema_prefix + 'LOGICAL_LITERAL') IN typenames THEN - RETURN (make_finite_space ([expr\logical_literal.lit_value])); - END_IF; - IF (schema_prefix + 'BINARY_LITERAL') IN typenames THEN - RETURN (make_finite_space ([expr\binary_literal.lit_value])); - END_IF; - IF (schema_prefix + 'MATHS_ENUM_LITERAL') IN typenames THEN - RETURN (make_finite_space ([expr\maths_enum_literal.lit_value])); - END_IF; - IF (schema_prefix + 'REAL_TUPLE_LITERAL') IN typenames THEN - RETURN (make_finite_space ([expr\real_tuple_literal.lit_value])); - END_IF; - IF (schema_prefix + 'INTEGER_TUPLE_LITERAL') IN typenames THEN - RETURN (make_finite_space ([expr\integer_tuple_literal.lit_value])); - END_IF; - IF (schema_prefix + 'ATOM_BASED_LITERAL') IN typenames THEN - RETURN (make_finite_space ([expr\atom_based_literal.lit_value])); - END_IF; - IF (schema_prefix + 'MATHS_TUPLE_LITERAL') IN typenames THEN - RETURN (make_finite_space ([expr\maths_tuple_literal.lit_value])); - END_IF; - IF (schema_prefix + 'PARTIAL_DERIVATIVE_EXPRESSION') IN typenames THEN - RETURN (drop_numeric_constraints (values_space_of ( - expr\partial_derivative_expression.derivand))); - END_IF; - IF (schema_prefix + 'DEFINITE_INTEGRAL_EXPRESSION') IN typenames THEN - RETURN (drop_numeric_constraints (values_space_of ( - expr\definite_integral_expression.integrand))); - END_IF; - RETURN (?); -END_FUNCTION; - -(* Implicit interfaced from: mathematical_functions_schema *) -FUNCTION drop_numeric_constraints(spc : maths_space) : maths_space; - LOCAL - typenames : SET OF STRING := stripped_typeof(spc); - tspc : listed_product_space; - factors : LIST OF maths_space := []; - xspc : extended_tuple_space; - END_LOCAL; - IF 'UNIFORM_PRODUCT_SPACE' IN typenames THEN - RETURN (make_uniform_product_space (drop_numeric_constraints ( - spc\uniform_product_space.base), spc\uniform_product_space.exponent)); - END_IF; - IF 'LISTED_PRODUCT_SPACE' IN typenames THEN - tspc := spc; - REPEAT i := 1 TO SIZEOF (tspc.factors); - INSERT (factors, drop_numeric_constraints (tspc.factors[i]), i-1); - END_REPEAT; - RETURN (make_listed_product_space (factors)); - END_IF; - IF 'EXTENDED_TUPLE_SPACE' IN typenames THEN - xspc := spc; - RETURN (make_extended_tuple_space (drop_numeric_constraints (xspc.base), - drop_numeric_constraints (xspc.extender))); - END_IF; - IF subspace_of_es (spc, es_numbers) THEN - RETURN (number_superspace_of (spc)); - END_IF; - RETURN (spc); -END_FUNCTION; - -(* Implicit interfaced from: mathematical_functions_schema *) -FUNCTION number_superspace_of(spc : maths_space) : elementary_space; - IF subspace_of_es(spc,es_integers) THEN RETURN (the_integers); END_IF; - IF subspace_of_es(spc,es_reals) THEN RETURN (the_reals); END_IF; - IF subspace_of_es(spc,es_complex_numbers) THEN RETURN (the_complex_numbers); END_IF; - IF subspace_of_es(spc,es_numbers) THEN RETURN (the_numbers); END_IF; - RETURN (?); -END_FUNCTION; - -(* Implicit interfaced from: mathematical_functions_schema *) -FUNCTION has_values_space(expr : generic_expression) : BOOLEAN; - LOCAL - typenames : SET OF STRING := stripped_typeof (expr); - END_LOCAL; - IF 'EXPRESSION' IN typenames THEN - RETURN (bool(('NUMERIC_EXPRESSION' IN typenames) OR - ('STRING_EXPRESSION' IN typenames) OR - ('BOOLEAN_EXPRESSION' IN typenames))); - END_IF; - IF 'MATHS_FUNCTION' IN typenames THEN - RETURN (TRUE); - END_IF; - IF 'FUNCTION_APPLICATION' IN typenames THEN - RETURN (TRUE); - END_IF; - IF 'MATHS_SPACE' IN typenames THEN - RETURN (TRUE); - END_IF; - IF 'MATHS_VARIABLE' IN typenames THEN - RETURN (TRUE); - END_IF; - IF 'DEPENDENT_VARIABLE_DEFINITION' IN typenames THEN - RETURN (has_values_space (expr\unary_generic_expression.operand)); - END_IF; - IF 'COMPLEX_NUMBER_LITERAL' IN typenames THEN - RETURN (TRUE); - END_IF; - IF 'LOGICAL_LITERAL' IN typenames THEN - RETURN (TRUE); - END_IF; - IF 'BINARY_LITERAL' IN typenames THEN - RETURN (TRUE); - END_IF; - IF 'MATHS_ENUM_LITERAL' IN typenames THEN - RETURN (TRUE); - END_IF; - IF 'REAL_TUPLE_LITERAL' IN typenames THEN - RETURN (TRUE); - END_IF; - IF 'INTEGER_TUPLE_LITERAL' IN typenames THEN - RETURN (TRUE); - END_IF; - IF 'ATOM_BASED_LITERAL' IN typenames THEN - RETURN (TRUE); - END_IF; - IF 'MATHS_TUPLE_LITERAL' IN typenames THEN - RETURN (TRUE); - END_IF; - IF 'PARTIAL_DERIVATIVE_EXPRESSION' IN typenames THEN - RETURN (TRUE); - END_IF; - IF 'DEFINITE_INTEGRAL_EXPRESSION' IN typenames THEN - RETURN (TRUE); - END_IF; - RETURN (FALSE); -END_FUNCTION; -- has_values_space - -(* Implicit interfaced from: mathematical_functions_schema *) -FUNCTION space_is_continuum(space : maths_space) : BOOLEAN; - LOCAL - typenames : SET OF STRING := TYPEOF (space); - factors : LIST OF maths_space; - END_LOCAL; - IF NOT EXISTS (space) THEN - RETURN (FALSE); - END_IF; - IF subspace_of_es(space,es_reals) OR subspace_of_es(space,es_complex_numbers) THEN - RETURN (TRUE); - END_IF; - IF (schema_prefix + 'UNIFORM_PRODUCT_SPACE') IN typenames THEN - RETURN (space_is_continuum(space\uniform_product_space.base)); - END_IF; - IF (schema_prefix + 'LISTED_PRODUCT_SPACE') IN typenames THEN - factors := space\listed_product_space.factors; - IF SIZEOF(factors) = 0 THEN - RETURN (FALSE); - END_IF; - REPEAT i := 1 TO SIZEOF (factors); - IF NOT space_is_continuum(factors[i]) THEN - RETURN (FALSE); - END_IF; - END_REPEAT; - RETURN (TRUE); - END_IF; - RETURN (FALSE); -END_FUNCTION; -- space_is_continuum - -(* Implicit interfaced from: mathematical_functions_schema *) -FUNCTION subspace_of(space1, space2 : maths_space) : LOGICAL; - LOCAL - spc1 : maths_space := simplify_maths_space(space1); - spc2 : maths_space := simplify_maths_space(space2); - types1 : SET OF STRING := stripped_typeof (spc1); - types2 : SET OF STRING := stripped_typeof (spc2); - lgcl, cum : LOGICAL; - es_val : elementary_space_enumerators; - bnd1, bnd2 : REAL; - n : INTEGER; - sp1, sp2 : maths_space; - prgn1, prgn2 : polar_complex_number_region; - aitv : finite_real_interval; - END_LOCAL; - IF NOT EXISTS (spc1) OR NOT EXISTS (spc2) THEN - RETURN (FALSE); - END_IF; - IF spc2 = the_generics THEN - RETURN (TRUE); - END_IF; - IF 'ELEMENTARY_SPACE' IN types1 THEN - IF NOT ('ELEMENTARY_SPACE' IN types2) THEN - RETURN (FALSE); - END_IF; - es_val := spc2\elementary_space.space_id; - IF spc1\elementary_space.space_id = es_val THEN - RETURN (TRUE); - END_IF; - -- Note that the cases (spc2=the_generics) and (spc1=spc2) have been handled. - CASE spc1\elementary_space.space_id OF - es_numbers : RETURN (FALSE); - es_complex_numbers : RETURN (es_val = es_numbers); - es_reals : RETURN (es_val = es_numbers); - es_integers : RETURN (es_val = es_numbers); - es_logicals : RETURN (FALSE); - es_booleans : RETURN (es_val = es_logicals); - es_strings : RETURN (FALSE); - es_binarys : RETURN (FALSE); - es_maths_spaces : RETURN (FALSE); - es_maths_functions : RETURN (FALSE); - es_generics : RETURN (FALSE); - END_CASE; - -- Should be unreachable. - RETURN (UNKNOWN); - END_IF; - IF 'FINITE_INTEGER_INTERVAL' IN types1 THEN - cum := TRUE; - REPEAT i := spc1\finite_integer_interval.min TO spc1\finite_integer_interval.max; - cum := cum AND member_of (i, spc2); - IF cum = FALSE THEN - RETURN (FALSE); - END_IF; - END_REPEAT; - RETURN (cum); - END_IF; - IF 'INTEGER_INTERVAL_FROM_MIN' IN types1 THEN - IF 'ELEMENTARY_SPACE' IN types2 THEN - es_val := spc2\elementary_space.space_id; - RETURN ((es_val = es_numbers) OR (es_val = es_integers)); - END_IF; - IF 'INTEGER_INTERVAL_FROM_MIN' IN types2 THEN - RETURN (spc1\integer_interval_from_min.min>=spc2\integer_interval_from_min.min); - END_IF; - RETURN (FALSE); - END_IF; - IF 'INTEGER_INTERVAL_TO_MAX' IN types1 THEN - IF 'ELEMENTARY_SPACE' IN types2 THEN - es_val := spc2\elementary_space.space_id; - RETURN ((es_val = es_numbers) OR (es_val = es_integers)); - END_IF; - IF 'INTEGER_INTERVAL_TO_MAX' IN types2 THEN - RETURN (spc1\integer_interval_to_max.max <= spc2\integer_interval_to_max.max); - END_IF; - RETURN (FALSE); - END_IF; - IF 'FINITE_REAL_INTERVAL' IN types1 THEN - IF 'ELEMENTARY_SPACE' IN types2 THEN - es_val := spc2\elementary_space.space_id; - RETURN ((es_val = es_numbers) OR (es_val = es_reals)); - END_IF; - IF ('FINITE_REAL_INTERVAL' IN types2) OR - ('REAL_INTERVAL_FROM_MIN' IN types2) OR - ('REAL_INTERVAL_TO_MAX' IN types2) THEN - IF min_exists (spc2) THEN - bnd1 := spc1\finite_real_interval.min; - bnd2 := real_min (spc2); - IF (bnd1 < bnd2) OR ((bnd1 = bnd2) AND min_included (spc1) AND NOT - min_included (spc2)) THEN - RETURN (FALSE); - END_IF; - END_IF; - IF max_exists (spc2) THEN - bnd1 := spc1\finite_real_interval.max; - bnd2 := real_max (spc2); - IF (bnd1 > bnd2) OR ((bnd1 = bnd2) AND max_included (spc1) AND NOT - max_included (spc2)) THEN - RETURN (FALSE); - END_IF; - END_IF; - RETURN (TRUE); - END_IF; - RETURN (FALSE); - END_IF; - IF 'REAL_INTERVAL_FROM_MIN' IN types1 THEN - IF 'ELEMENTARY_SPACE' IN types2 THEN - es_val := spc2\elementary_space.space_id; - RETURN ((es_val = es_numbers) OR (es_val = es_reals)); - END_IF; - IF 'REAL_INTERVAL_FROM_MIN' IN types2 THEN - bnd1 := spc1\real_interval_from_min.min; - bnd2 := spc2\real_interval_from_min.min; - RETURN ((bnd2 < bnd1) OR ((bnd2 = bnd1) AND (min_included (spc2) OR - NOT min_included (spc1)))); - END_IF; - RETURN (FALSE); - END_IF; - IF 'REAL_INTERVAL_TO_MAX' IN types1 THEN - IF 'ELEMENTARY_SPACE' IN types2 THEN - es_val := spc2\elementary_space.space_id; - RETURN ((es_val = es_numbers) OR (es_val = es_reals)); - END_IF; - IF 'REAL_INTERVAL_TO_MAX' IN types2 THEN - bnd1 := spc1\real_interval_to_max.max; - bnd2 := spc2\real_interval_to_max.max; - RETURN ((bnd2 > bnd1) OR ((bnd2 = bnd1) AND (max_included (spc2) OR - NOT max_included (spc1)))); - END_IF; - RETURN (FALSE); - END_IF; - IF 'CARTESIAN_COMPLEX_NUMBER_REGION' IN types1 THEN - IF 'ELEMENTARY_SPACE' IN types2 THEN - es_val := spc2\elementary_space.space_id; - RETURN ((es_val = es_numbers) OR (es_val = es_complex_numbers)); - END_IF; - IF 'CARTESIAN_COMPLEX_NUMBER_REGION' IN types2 THEN - RETURN (subspace_of(spc1\cartesian_complex_number_region.real_constraint, - spc2\cartesian_complex_number_region.real_constraint) AND - subspace_of(spc1\cartesian_complex_number_region.imag_constraint, - spc2\cartesian_complex_number_region.imag_constraint)); - END_IF; - IF 'POLAR_COMPLEX_NUMBER_REGION' IN types2 THEN - RETURN (subspace_of(enclose_cregion_in_pregion(spc1, - spc2\polar_complex_number_region.centre),spc2)); - END_IF; - RETURN (FALSE); - END_IF; - IF 'POLAR_COMPLEX_NUMBER_REGION' IN types1 THEN - IF 'ELEMENTARY_SPACE' IN types2 THEN - es_val := spc2\elementary_space.space_id; - RETURN ((es_val = es_numbers) OR (es_val = es_complex_numbers)); - END_IF; - IF 'CARTESIAN_COMPLEX_NUMBER_REGION' IN types2 THEN - RETURN (subspace_of(enclose_pregion_in_cregion(spc1),spc2)); - END_IF; - IF 'POLAR_COMPLEX_NUMBER_REGION' IN types2 THEN - prgn1 := spc1; - prgn2 := spc2; - IF prgn1.centre = prgn2.centre THEN - IF prgn2.direction_constraint.max > PI THEN - aitv := make_finite_real_interval(-PI,open,prgn2.direction_constraint.max - -2.0*PI,prgn2.direction_constraint.max_closure); - RETURN (subspace_of(prgn1.distance_constraint,prgn2.distance_constraint) - AND (subspace_of(prgn1.direction_constraint,prgn2.direction_constraint) - OR subspace_of(prgn1.direction_constraint,aitv))); - ELSE - RETURN (subspace_of(prgn1.distance_constraint,prgn2.distance_constraint) - AND subspace_of(prgn1.direction_constraint,prgn2.direction_constraint)); - END_IF; - END_IF; - RETURN (subspace_of(enclose_pregion_in_pregion(prgn1,prgn2.centre),prgn2)); - END_IF; - RETURN (FALSE); - END_IF; - IF 'FINITE_SPACE' IN types1 THEN - cum := TRUE; - REPEAT i := 1 TO SIZEOF (spc1\finite_space.members); - cum := cum AND member_of (spc1\finite_space.members[i], spc2); - IF cum = FALSE THEN - RETURN (FALSE); - END_IF; - END_REPEAT; - RETURN (cum); - END_IF; - IF 'PRODUCT_SPACE' IN types1 THEN - IF 'PRODUCT_SPACE' IN types2 THEN - IF space_dimension (spc1) = space_dimension (spc2) THEN - cum := TRUE; - REPEAT i := 1 TO space_dimension (spc1); - cum := cum AND subspace_of (factor_space(spc1,i), factor_space(spc2,i)); - IF cum = FALSE THEN - RETURN (FALSE); - END_IF; - END_REPEAT; - RETURN (cum); - END_IF; - END_IF; - IF 'EXTENDED_TUPLE_SPACE' IN types2 THEN - IF space_dimension (spc1) >= space_dimension (spc2) THEN - cum := TRUE; - REPEAT i := 1 TO space_dimension (spc1); - cum := cum AND subspace_of (factor_space(spc1,i), factor_space(spc2,i)); - IF cum = FALSE THEN - RETURN (FALSE); - END_IF; - END_REPEAT; - RETURN (cum); - END_IF; - END_IF; - RETURN (FALSE); - END_IF; - IF 'EXTENDED_TUPLE_SPACE' IN types1 THEN - IF 'EXTENDED_TUPLE_SPACE' IN types2 THEN - n := space_dimension (spc1); - IF n < space_dimension (spc2) THEN - n := space_dimension (spc2); - END_IF; - cum := TRUE; - REPEAT i := 1 TO n+1; - cum := cum AND subspace_of (factor_space(spc1,i), factor_space(spc2,i)); - IF cum = FALSE THEN - RETURN (FALSE); - END_IF; - END_REPEAT; - RETURN (cum); - END_IF; - RETURN (FALSE); - END_IF; - IF 'FUNCTION_SPACE' IN types1 THEN - IF 'ELEMENTARY_SPACE' IN types2 THEN - RETURN (spc2\elementary_space.space_id = es_maths_functions); - END_IF; - IF 'FUNCTION_SPACE' IN types2 THEN - cum := TRUE; - sp1 := spc1\function_space.domain_argument; - sp2 := spc2\function_space.domain_argument; - CASE spc1\function_space.domain_constraint OF - sc_equal : BEGIN - CASE spc2\function_space.domain_constraint OF - sc_equal : cum := cum AND equal_maths_spaces (sp1, sp2); - sc_subspace : cum := cum AND subspace_of (sp1, sp2); - sc_member : cum := cum AND member_of (sp1, sp2); - END_CASE; - END; - sc_subspace : BEGIN - CASE spc2\function_space.domain_constraint OF - sc_equal : RETURN (FALSE); - sc_subspace : cum := cum AND subspace_of (sp1, sp2); - sc_member : BEGIN - IF NOT member_of (sp1, sp2) THEN - RETURN (FALSE); - END_IF; - cum := UNKNOWN; - END; - END_CASE; - END; - sc_member : BEGIN - CASE spc2\function_space.domain_constraint OF - sc_equal : cum := cum AND space_is_singleton(sp1) AND - equal_maths_spaces(singleton_member_of(sp1),sp2); - sc_subspace : BEGIN - IF NOT member_of (sp2, sp1) THEN - RETURN (FALSE); - END_IF; - cum := UNKNOWN; - END; - sc_member : cum := cum AND (subspace_of (sp1, sp2)); - END_CASE; - END; - END_CASE; - IF cum = FALSE THEN - RETURN (FALSE); - END_IF; - sp1 := spc1\function_space.range_argument; - sp2 := spc2\function_space.range_argument; - CASE spc1\function_space.range_constraint OF - sc_equal : BEGIN - CASE spc2\function_space.range_constraint OF - sc_equal : cum := cum AND equal_maths_spaces (sp1, sp2); - sc_subspace : cum := cum AND subspace_of (sp1, sp2); - sc_member : cum := cum AND member_of (sp1, sp2); - END_CASE; - END; - sc_subspace : BEGIN - CASE spc2\function_space.domain_constraint OF - sc_equal : RETURN (FALSE); - sc_subspace : cum := cum AND subspace_of (sp1, sp2); - sc_member : BEGIN - IF NOT member_of (sp1, sp2) THEN - RETURN (FALSE); - END_IF; - cum := UNKNOWN; - END; - END_CASE; - END; - sc_member : BEGIN - CASE spc2\function_space.domain_constraint OF - sc_equal : cum := cum AND space_is_singleton(sp1) AND - equal_maths_spaces(singleton_member_of(sp1),sp2); - sc_subspace : BEGIN - IF NOT member_of (sp2, sp1) THEN - RETURN (FALSE); - END_IF; - cum := UNKNOWN; - END; - sc_member : cum := cum AND subspace_of (sp1, sp2); - END_CASE; - END; - END_CASE; - RETURN (cum); - END_IF; - RETURN (FALSE); - END_IF; - -- Should be unreachable - RETURN (UNKNOWN); -END_FUNCTION; -- subspace_of - -(* Implicit interfaced from: mathematical_functions_schema *) -FUNCTION min_exists(spc : maths_space) : BOOLEAN; - LOCAL - types : SET OF STRING := TYPEOF (spc); - END_LOCAL; - RETURN (bool(((schema_prefix + 'FINITE_INTEGER_INTERVAL') IN types) OR - ((schema_prefix + 'INTEGER_INTERVAL_FROM_MIN') IN types) OR - ((schema_prefix + 'FINITE_REAL_INTERVAL') IN types) OR - ((schema_prefix + 'REAL_INTERVAL_FROM_MIN') IN types))); -END_FUNCTION; -- min_exists - -FUNCTION valid_2d_wireframe_edge_curve - (crv : curve; schma : STRING) : BOOLEAN; - - -- recursively check for valid basic curve types - IF SIZEOF ([schma + '.LINE', - schma + '.B_SPLINE_CURVE', - schma + '.CIRCLE', - schma + '.HYPERBOLA', - schma + '.ELLIPSE', - schma + '.PARABOLA', - schma + '.POLYLINE'] * TYPEOF (crv)) = 1 - THEN RETURN (TRUE); - ELSE - -- recursively check for valid basic curves for curve_replicas - IF (schma + '.CURVE_REPLICA') IN TYPEOF (crv) - THEN RETURN (valid_2d_wireframe_edge_curve - (crv\curve_replica.parent_curve, schma)); - -- recursively check for valid basis curves for offset_curves - ELSE - IF (schma + '.OFFSET_CURVE_2D') IN TYPEOF (crv) - THEN RETURN (valid_2d_wireframe_edge_curve - (crv\offset_curve_2d.basis_curve, schma)); - END_IF; - END_IF; - END_IF; - RETURN (FALSE); -END_FUNCTION; - -(* Implicit interfaced from: mathematical_functions_schema *) -FUNCTION max_exists(spc : maths_space) : BOOLEAN; - LOCAL - types : SET OF STRING := TYPEOF (spc); - END_LOCAL; - RETURN (bool(((schema_prefix + 'FINITE_INTEGER_INTERVAL') IN types) OR - ((schema_prefix + 'INTEGER_INTERVAL_TO_MAX') IN types) OR - ((schema_prefix + 'FINITE_REAL_INTERVAL') IN types) OR - ((schema_prefix + 'REAL_INTERVAL_TO_MAX') IN types))); -END_FUNCTION; -- max_exists - -(* Implicit interfaced from: mathematical_functions_schema *) -FUNCTION min_included(spc : maths_space) : BOOLEAN; - LOCAL - types : SET OF STRING := TYPEOF (spc); - END_LOCAL; - IF ((schema_prefix + 'FINITE_INTEGER_INTERVAL') IN types) OR - ((schema_prefix + 'INTEGER_INTERVAL_FROM_MIN') IN types) THEN - RETURN (TRUE); - END_IF; - IF ((schema_prefix + 'FINITE_REAL_INTERVAL') IN types) THEN - RETURN (bool(spc\finite_real_interval.min_closure = closed)); - END_IF; - IF ((schema_prefix + 'REAL_INTERVAL_FROM_MIN') IN types) THEN - RETURN (bool(spc\real_interval_from_min.min_closure = closed)); - END_IF; - RETURN (FALSE); -END_FUNCTION; -- min_included - -(* Implicit interfaced from: mathematical_functions_schema *) -FUNCTION real_max(spc : maths_space) : REAL; - LOCAL - types : SET OF STRING := TYPEOF (spc); - END_LOCAL; - IF ((schema_prefix + 'FINITE_INTEGER_INTERVAL') IN types) THEN - RETURN (spc\finite_integer_interval.max); - END_IF; - IF ((schema_prefix + 'INTEGER_INTERVAL_TO_MAX') IN types) THEN - RETURN (spc\integer_interval_to_max.max); - END_IF; - IF ((schema_prefix + 'FINITE_REAL_INTERVAL') IN types) THEN - RETURN (spc\finite_real_interval.max); - END_IF; - IF ((schema_prefix + 'REAL_INTERVAL_TO_MAX') IN types) THEN - RETURN (spc\real_interval_to_max.max); - END_IF; - RETURN (?); -END_FUNCTION; -- real_max - -(* Implicit interfaced from: mathematical_functions_schema *) -FUNCTION max_included(spc : maths_space) : BOOLEAN; - LOCAL - types : SET OF STRING := TYPEOF (spc); - END_LOCAL; - IF ((schema_prefix + 'FINITE_INTEGER_INTERVAL') IN types) OR - ((schema_prefix + 'INTEGER_INTERVAL_TO_MAX') IN types) THEN - RETURN (TRUE); - END_IF; - IF ((schema_prefix + 'FINITE_REAL_INTERVAL') IN types) THEN - RETURN (bool(spc\finite_real_interval.max_closure = closed)); - END_IF; - IF ((schema_prefix + 'REAL_INTERVAL_TO_MAX') IN types) THEN - RETURN (bool(spc\real_interval_to_max.max_closure = closed)); - END_IF; - RETURN (FALSE); -END_FUNCTION; -- max_included - -(* Implicit interfaced from: mathematical_functions_schema *) -FUNCTION enclose_cregion_in_pregion(crgn : cartesian_complex_number_region; - centre : complex_number_literal) - : polar_complex_number_region; - -- Find equivalent direction in range -PI < a <= PI. - FUNCTION angle(a : REAL) : REAL; - REPEAT WHILE a > PI; a := a - 2.0*PI; END_REPEAT; - REPEAT WHILE a <= -PI; a := a + 2.0*PI; END_REPEAT; - RETURN (a); - END_FUNCTION; - -- Determine whether a real is strictly within a real interval - FUNCTION strictly_in(z : REAL; - zitv : real_interval) : LOGICAL; - RETURN ((NOT min_exists(zitv) OR (z > real_min(zitv))) AND - (NOT max_exists(zitv) OR (z < real_max(zitv)))); - END_FUNCTION; - -- Include direction in minmax collection - PROCEDURE angle_minmax( ab, a : REAL; - a_in : BOOLEAN; - VAR amin, amax : REAL; - VAR amin_in, amax_in : BOOLEAN); - a := angle(a - ab); - IF amin = a THEN amin_in := amin_in OR a_in; END_IF; - IF amin > a THEN amin := a; amin_in := a_in; END_IF; - IF amax = a THEN amax_in := amax_in OR a_in; END_IF; - IF amax < a THEN amax := a; amax_in := a_in; END_IF; - END_PROCEDURE; - -- Include distance in max collection - PROCEDURE range_max( r : REAL; - incl : BOOLEAN; - VAR rmax : REAL; - VAR rmax_in : BOOLEAN); - IF rmax = r THEN rmax_in := rmax_in OR incl; END_IF; - IF rmax < r THEN rmax := r; rmax_in := incl; END_IF; - END_PROCEDURE; - -- Include distance in min collection - PROCEDURE range_min( r : REAL; - incl : BOOLEAN; - VAR rmin : REAL; - VAR rmin_in : BOOLEAN); - IF rmin = r THEN rmin_in := rmin_in OR incl; END_IF; - IF (rmin < 0.0) OR (rmin > r) THEN rmin := r; rmin_in := incl; END_IF; - END_PROCEDURE; - LOCAL - xitv, yitv : real_interval; - is_xmin, is_xmax, is_ymin, is_ymax : BOOLEAN; - xmin, xmax, ymin, ymax, xc, yc : REAL := 0.0; - xmin_in, xmax_in, ymin_in, ymax_in : BOOLEAN := FALSE; - rmin, rmax : REAL := -1.0; - amin : REAL := 4.0; - amax : REAL := -4.0; - rmax_exists, outside : BOOLEAN := TRUE; - rmin_in, rmax_in, amin_in, amax_in : BOOLEAN := FALSE; - ab, a, r : REAL := 0.0; - incl : BOOLEAN; - ritv : real_interval; - aitv : finite_real_interval; - minclo, maxclo : open_closed := open; - END_LOCAL; - IF NOT EXISTS (crgn) OR NOT EXISTS (centre) THEN RETURN (?); END_IF; - -- Extract elementary input information - xitv := crgn.real_constraint; - yitv := crgn.imag_constraint; - xc := centre.real_part; - yc := centre.imag_part; - is_xmin := min_exists(xitv); - is_xmax := max_exists(xitv); - is_ymin := min_exists(yitv); - is_ymax := max_exists(yitv); - IF is_xmin THEN xmin := real_min(xitv); xmin_in := min_included(xitv); END_IF; - IF is_xmax THEN xmax := real_max(xitv); xmax_in := max_included(xitv); END_IF; - IF is_ymin THEN ymin := real_min(yitv); ymin_in := min_included(yitv); END_IF; - IF is_ymax THEN ymax := real_max(yitv); ymax_in := max_included(yitv); END_IF; - rmax_exists := is_xmin AND is_xmax AND is_ymin AND is_ymax; - -- Identify base direction with respect to which all relevant directions lie - -- within +/- 0.5*PI, or that the centre lies properly inside crgn. - IF is_xmin AND (xc <= xmin) THEN ab := 0.0; - ELSE IF is_ymin AND (yc <= ymin) THEN ab := 0.5*PI; - ELSE IF is_ymax AND (yc >= ymax) THEN ab := -0.5*PI; - ELSE IF is_xmax AND (xc >= xmax) THEN ab := PI; - ELSE outside := FALSE; - END_IF; END_IF; END_IF; END_IF; - IF NOT outside AND NOT rmax_exists THEN - RETURN (?); -- No enclosing polar region exists (requires whole plane) - END_IF; - -- Identify any closest point on a side but not a corner. - IF is_xmin AND (xc <= xmin) AND strictly_in(yc,yitv) THEN - rmin := xmin - xc; rmin_in := xmin_in; - ELSE IF is_ymin AND (yc <= ymin) AND strictly_in(xc,xitv) THEN - rmin := ymin - yc; rmin_in := ymin_in; - ELSE IF is_ymax AND (yc >= ymax) AND strictly_in(xc,xitv) THEN - rmin := yc - ymax; rmin_in := ymax_in; - ELSE IF is_xmax AND (xc >= xmax) AND strictly_in(yc,yitv) THEN - rmin := xc - xmax; rmin_in := xmax_in; - END_IF; END_IF; END_IF; END_IF; - IF is_xmin THEN - IF is_ymin THEN -- Consider lower left corner - r := SQRT((xmin-xc)**2 + (ymin-yc)**2); - incl := xmin_in AND ymin_in; - IF rmax_exists THEN range_max(r,incl,rmax,rmax_in); END_IF; - IF outside THEN - IF r > 0.0 THEN - range_min(r,incl,rmin,rmin_in); - a := angle(atan2(ymin-yc,xmin-xc) - ab); - IF xc = xmin THEN incl := xmin_in; END_IF; - IF yc = ymin THEN incl := ymin_in; END_IF; - angle_minmax(ab,a,incl,amin,amax,amin_in,amax_in); - ELSE -- Centre at lower left corner - rmin := 0.0; rmin_in := xmin_in AND ymin_in; - amin := angle(0.0-ab); amin_in := ymin_in; - amax := angle(0.5*PI-ab); amax_in := xmin_in; - END_IF; - END_IF; - ELSE IF xc <= xmin THEN -- Consider points near (xmin, -infinity) - angle_minmax(ab,-0.5*PI,(xc=xmin) AND xmin_in,amin,amax,amin_in,amax_in); - END_IF; END_IF; - IF NOT is_ymax AND (xc <= xmin) THEN -- Consider points near (xmin, +infinity) - angle_minmax(ab,0.5*PI,(xc=xmin) AND xmin_in,amin,amax,amin_in,amax_in); - END_IF; - END_IF; - IF is_ymin THEN - IF is_xmax THEN -- Consider lower right corner - r := SQRT((xmax-xc)**2 + (ymin-yc)**2); - incl := xmax_in AND ymin_in; - IF rmax_exists THEN range_max(r,incl,rmax,rmax_in); END_IF; - IF outside THEN - IF r > 0.0 THEN - range_min(r,incl,rmin,rmin_in); - a := angle(atan2(ymin-yc,xmax-xc) - ab); - IF xc = xmax THEN incl := xmax_in; END_IF; - IF yc = ymin THEN incl := ymin_in; END_IF; - angle_minmax(ab,a,incl,amin,amax,amin_in,amax_in); - ELSE -- Centre at lower right corner - rmin := 0.0; rmin_in := xmax_in AND ymin_in; - amin := angle(0.5*PI-ab); amin_in := ymin_in; - amax := angle(PI-ab); amax_in := xmax_in; - END_IF; - END_IF; - ELSE IF yc <= ymin THEN -- Consider points near (+infinity, ymin) - angle_minmax(ab,0.0,(yc=ymin) AND ymin_in,amin,amax,amin_in,amax_in); - END_IF; END_IF; - IF NOT is_xmin AND (yc <= ymin) THEN -- Consider points near (-infinity, ymin) - angle_minmax(ab,PI,(yc=ymin) AND ymin_in,amin,amax,amin_in,amax_in); - END_IF; - END_IF; - IF is_xmax THEN - IF is_ymax THEN -- Consider upper right corner - r := SQRT((xmax-xc)**2 + (ymax-yc)**2); - incl := xmax_in AND ymax_in; - IF rmax_exists THEN range_max(r,incl,rmax,rmax_in); END_IF; - IF outside THEN - IF r > 0.0 THEN - range_min(r,incl,rmin,rmin_in); - a := angle(atan2(ymax-yc,xmax-xc) - ab); - IF xc = xmax THEN incl := xmax_in; END_IF; - IF yc = ymax THEN incl := ymax_in; END_IF; - angle_minmax(ab,a,incl,amin,amax,amin_in,amax_in); - ELSE -- Centre at lower left corner - rmin := 0.0; rmin_in := xmax_in AND ymax_in; - amin := angle(-PI-ab); amin_in := ymax_in; - amax := angle(-0.5*PI-ab); amax_in := xmax_in; - END_IF; - END_IF; - ELSE IF xc >= xmax THEN -- Consider points near (xmax, +infinity) - angle_minmax(ab,0.5*PI,(xc=xmax) AND xmax_in,amin,amax,amin_in,amax_in); - END_IF; END_IF; - IF NOT is_ymin AND (xc >= xmax) THEN -- Consider points near (xmax, -infinity) - angle_minmax(ab,-0.5*PI,(xc=xmax) AND xmax_in,amin,amax,amin_in,amax_in); - END_IF; - END_IF; - IF is_ymax THEN - IF is_xmin THEN -- Consider upper left corner - r := SQRT((xmin-xc)**2 + (ymax-yc)**2); - incl := xmin_in AND ymax_in; - IF rmax_exists THEN range_max(r,incl,rmax,rmax_in); END_IF; - IF outside THEN - IF r > 0.0 THEN - range_min(r,incl,rmin,rmin_in); - a := angle(atan2(ymax-yc,xmin-xc) - ab); - IF xc = xmin THEN incl := xmin_in; END_IF; - IF yc = ymax THEN incl := ymax_in; END_IF; - angle_minmax(ab,a,incl,amin,amax,amin_in,amax_in); - ELSE -- Centre at lower right corner - rmin := 0.0; rmin_in := xmin_in AND ymax_in; - amin := angle(0.5*PI-ab); amin_in := ymax_in; - amax := angle(PI-ab); amax_in := xmin_in; - END_IF; - END_IF; - ELSE IF yc >= ymax THEN -- Consider points near (-infinity, ymax) - angle_minmax(ab,PI,(yc=ymax) AND ymax_in,amin,amax,amin_in,amax_in); - END_IF; END_IF; - IF NOT is_xmax AND (yc >= ymax) THEN -- Consider points near (+infinity, ymax) - angle_minmax(ab,0.0,(yc=ymax) AND ymax_in,amin,amax,amin_in,amax_in); - END_IF; - END_IF; - IF outside THEN -- Change direction origin from ab back to zero - amin := angle(amin+ab); - IF amin = PI THEN amin := -PI; END_IF; - amax := angle(amax+ab); - IF amax <= amin THEN amax := amax + 2.0*PI; END_IF; - ELSE - amin := -PI; amin_in := FALSE; - amax := PI; amax_in := FALSE; - END_IF; - IF amin_in THEN minclo := closed; END_IF; - IF amax_in THEN maxclo := closed; END_IF; - aitv := make_finite_real_interval(amin,minclo,amax,maxclo); - minclo := open; - IF rmin_in THEN minclo := closed; END_IF; - IF rmax_exists THEN - maxclo := open; - IF rmax_in THEN maxclo := closed; END_IF; - ritv := make_finite_real_interval(rmin,minclo,rmax,maxclo); - ELSE - ritv := make_real_interval_from_min(rmin,minclo); - END_IF; - RETURN (make_polar_complex_number_region(centre,ritv,aitv)); -END_FUNCTION; -- enclose_cregion_in_pregion - -(* Implicit interfaced from: mathematical_functions_schema *) -FUNCTION atan2(y, x : REAL) : REAL; - LOCAL - r : REAL; - END_LOCAL; - IF (y = 0.0) AND (x = 0.0) THEN RETURN (?); END_IF; - r := atan(y,x); - IF x < 0.0 THEN - IF y < 0.0 THEN r := r - PI; - ELSE r := r + PI; END_IF; - END_IF; - RETURN (r); -END_FUNCTION; -- atan2 - -(* Implicit interfaced from: mathematical_functions_schema *) -FUNCTION make_polar_complex_number_region(centre : complex_number_literal; - dis_constraint : real_interval; - dir_constraint : finite_real_interval) - : polar_complex_number_region; - RETURN (polar_complex_number_region (centre, dis_constraint, dir_constraint) - || maths_space() - || generic_expression() - || generic_literal() - || simple_generic_expression() ); -END_FUNCTION; -- make_polar_complex_number_region - -(* Implicit interfaced from: mathematical_functions_schema *) -FUNCTION enclose_pregion_in_cregion(prgn : polar_complex_number_region) - : cartesian_complex_number_region; - PROCEDURE nearest_good_direction(acart : REAL; - aitv : finite_real_interval; - VAR a : REAL; - VAR a_in : BOOLEAN); - a := acart; a_in := TRUE; - IF a < aitv.min THEN - -- a+2.0*PI > aitv.min automatically! - IF a+2.0*PI < aitv.max THEN RETURN; END_IF; - IF a+2.0*PI = aitv.max THEN a_in := max_included(aitv); RETURN; END_IF; - ELSE IF a = aitv.min THEN a_in := min_included(aitv); RETURN; - ELSE IF a < aitv.max THEN RETURN; - ELSE IF a = aitv.max THEN a_in := max_included(aitv); RETURN; - END_IF; END_IF; END_IF; END_IF; - IF COS(acart - aitv.max) >= COS(acart - aitv.min) THEN - a := aitv.max; a_in := max_included(aitv); - ELSE - a := aitv.min; a_in := min_included(aitv); - END_IF; - END_PROCEDURE; - LOCAL - xc, yc, xmin, xmax, ymin, ymax : REAL := 0.0; - ritv, xitv, yitv : real_interval; - aitv : finite_real_interval; - xmin_exists, xmax_exists, ymin_exists, ymax_exists : BOOLEAN; - xmin_in, xmax_in, ymin_in, ymax_in : BOOLEAN := FALSE; - a, r : REAL := 0.0; - a_in : BOOLEAN := FALSE; - min_clo, max_clo : open_closed := open; - END_LOCAL; - IF NOT EXISTS (prgn) THEN RETURN (?); END_IF; - -- Extract elementary input data - xc := prgn.centre.real_part; - yc := prgn.centre.imag_part; - ritv := prgn.distance_constraint; - aitv := prgn.direction_constraint; - -- Determine xmin data - nearest_good_direction(PI,aitv,a,a_in); - IF COS(a) >= 0.0 THEN - xmin_exists := TRUE; - xmin := xc + real_min(ritv)*COS(a); - xmin_in := a_in AND (min_included(ritv) OR (COS(a) = 0.0)); - ELSE - IF max_exists(ritv) THEN - xmin_exists := TRUE; - xmin := xc + real_max(ritv)*COS(a); - xmin_in := a_in AND max_included(ritv); - ELSE - xmin_exists := FALSE; - END_IF; - END_IF; - -- Determine xmax data - nearest_good_direction(0.0,aitv,a,a_in); - IF COS(a) <= 0.0 THEN - xmax_exists := TRUE; - xmax := xc + real_min(ritv)*COS(a); - xmax_in := a_in AND (min_included(ritv) OR (COS(a) = 0.0)); - ELSE - IF max_exists(ritv) THEN - xmax_exists := TRUE; - xmax := xc + real_max(ritv)*COS(a); - xmax_in := a_in AND max_included(ritv); - ELSE - xmax_exists := FALSE; - END_IF; - END_IF; - -- Determine ymin data - nearest_good_direction(-0.5*PI,aitv,a,a_in); - IF SIN(a) >= 0.0 THEN - ymin_exists := TRUE; - ymin := yc + real_min(ritv)*SIN(a); - ymin_in := a_in AND (min_included(ritv) OR (SIN(a) = 0.0)); - ELSE - IF max_exists(ritv) THEN - ymin_exists := TRUE; - ymin := yc + real_max(ritv)*SIN(a); - ymin_in := a_in AND max_included(ritv); - ELSE - ymin_exists := FALSE; - END_IF; - END_IF; - -- Determine ymax data - nearest_good_direction(0.5*PI,aitv,a,a_in); - IF SIN(a) <= 0.0 THEN - ymax_exists := TRUE; - ymax := yc + real_min(ritv)*SIN(a); - ymax_in := a_in AND (min_included(ritv) OR (SIN(a) = 0.0)); - ELSE - IF max_exists(ritv) THEN - ymax_exists := TRUE; - ymax := yc + real_max(ritv)*SIN(a); - ymax_in := a_in AND max_included(ritv); - ELSE - ymax_exists := FALSE; - END_IF; - END_IF; - -- Construct result - IF NOT (xmin_exists OR xmax_exists OR ymin_exists OR ymax_exists) THEN - RETURN (?); -- No finite boundaries exist - END_IF; - -- Construct real_constraint - IF xmin_exists THEN - IF xmin_in THEN min_clo := closed; ELSE min_clo := open; END_IF; - IF xmax_exists THEN - IF xmax_in THEN max_clo := closed; ELSE max_clo := open; END_IF; - xitv := make_finite_real_interval(xmin,min_clo,xmax,max_clo); - ELSE - xitv := make_real_interval_from_min(xmin,min_clo); - END_IF; - ELSE - IF xmax_exists THEN - IF xmax_in THEN max_clo := closed; ELSE max_clo := open; END_IF; - xitv := make_real_interval_to_max(xmax,max_clo); - ELSE - xitv := the_reals; - END_IF; - END_IF; - -- Construct imag_constraint - IF ymin_exists THEN - IF ymin_in THEN min_clo := closed; ELSE min_clo := open; END_IF; - IF ymax_exists THEN - IF ymax_in THEN max_clo := closed; ELSE max_clo := open; END_IF; - yitv := make_finite_real_interval(ymin,min_clo,ymax,max_clo); - ELSE - yitv := make_real_interval_from_min(ymin,min_clo); - END_IF; - ELSE - IF ymax_exists THEN - IF ymax_in THEN max_clo := closed; ELSE max_clo := open; END_IF; - yitv := make_real_interval_to_max(ymax,max_clo); - ELSE - yitv := the_reals; - END_IF; - END_IF; - -- Construct cartesian region - RETURN (make_cartesian_complex_number_region(xitv,yitv)); -END_FUNCTION; -- enclose_pregion_in_cregion - -(* Implicit interfaced from: mathematical_functions_schema *) -FUNCTION make_real_interval_to_max(max : REAL; - maxclo : open_closed) : real_interval_to_max; - RETURN (real_interval_to_max (max, maxclo) - || maths_space() - || generic_expression() - || generic_literal() - || simple_generic_expression() ); -END_FUNCTION; -- make_real_interval_to_max - -(* Implicit interfaced from: mathematical_functions_schema *) -FUNCTION make_cartesian_complex_number_region(real_constraint : real_interval; - imag_constraint : real_interval) - : cartesian_complex_number_region; - RETURN (cartesian_complex_number_region (real_constraint, imag_constraint) - || maths_space() - || generic_expression() - || generic_literal() - || simple_generic_expression() ); -END_FUNCTION; -- make_cartesian_complex_number_region - -(* Implicit interfaced from: mathematical_functions_schema *) -FUNCTION enclose_pregion_in_pregion(prgn : polar_complex_number_region; - centre : complex_number_literal) - : polar_complex_number_region; - -- Find equivalent direction in range -PI < a <= PI. - FUNCTION angle(a : REAL) : REAL; - REPEAT WHILE a > PI; a := a - 2.0*PI; END_REPEAT; - REPEAT WHILE a <= -PI; a := a + 2.0*PI; END_REPEAT; - RETURN (a); - END_FUNCTION; - -- Find proper limits for direction interval - PROCEDURE angle_range(VAR amin, amax : REAL); - amin := angle(amin); - IF amin = PI THEN amin := -PI; END_IF; - amax := angle(amax); - IF amax <= amin THEN amax := amax + 2.0*PI; END_IF; - END_PROCEDURE; - -- Determine whether a direction is strictly within a direction interval - FUNCTION strictly_in(a : REAL; - aitv : finite_real_interval) : LOGICAL; - a := angle(a); - RETURN ({aitv.min < a < aitv.max} OR {aitv.min < a+2.0*PI < aitv.max}); - END_FUNCTION; - -- Find min and max and related inclusion booleans among four candidates, - -- using a base direction chosen to ensure the algebraic comparisons are valid. - PROCEDURE find_aminmax( ab,a0,a1,a2,a3 : REAL; - in0,in1,in2,in3 : BOOLEAN; - VAR amin,amax : REAL; - VAR amin_in,amax_in : BOOLEAN); - LOCAL - a : REAL; - END_LOCAL; - amin := angle(a0-ab); amin_in := in0; - amax := amin; amax_in := in0; - a := angle(a1-ab); - IF a = amin THEN amin_in := amin_in OR in1; END_IF; - IF a < amin THEN amin := a; amin_in := in1; END_IF; - IF a = amax THEN amax_in := amax_in OR in1; END_IF; - IF a > amax THEN amax := a; amax_in := in1; END_IF; - a := angle(a2-ab); - IF a = amin THEN amin_in := amin_in OR in2; END_IF; - IF a < amin THEN amin := a; amin_in := in2; END_IF; - IF a = amax THEN amax_in := amax_in OR in2; END_IF; - IF a > amax THEN amax := a; amax_in := in2; END_IF; - a := angle(a3-ab); - IF a = amin THEN amin_in := amin_in OR in3; END_IF; - IF a < amin THEN amin := a; amin_in := in3; END_IF; - IF a = amax THEN amax_in := amax_in OR in3; END_IF; - IF a > amax THEN amax := a; amax_in := in3; END_IF; - amin := amin+ab; - amax := amax+ab; - angle_range(amin,amax); - END_PROCEDURE; - - LOCAL - ritp, ritv : real_interval; - aitp, aitv : finite_real_interval; - xp, yp, xc, yc, rmax, rmin, amin, amax, rc, acp, apc : REAL := 0.0; - rmax_in, rmin_in, amin_in, amax_in : BOOLEAN := FALSE; - rmxp, rmnp, x, y, r, a, ab, r0, a0, r1, a1, r2, a2, r3, a3 : REAL := 0.0; - in0, in1, in2, in3, inn : BOOLEAN := FALSE; - minclo, maxclo : open_closed := open; - END_LOCAL; - -- Extract elementary input information - IF NOT EXISTS (prgn) OR NOT EXISTS (centre) THEN RETURN (?); END_IF; - xp := prgn.centre.real_part; - yp := prgn.centre.imag_part; - ritp := prgn.distance_constraint; - aitp := prgn.direction_constraint; - xc := centre.real_part; - yc := centre.imag_part; - IF (xc = xp) AND (yc = yp) THEN RETURN (prgn); END_IF; - rc := SQRT((xp-xc)**2 + (yp-yc)**2); - acp := atan2(yp-yc,xp-xc); - apc := atan2(yc-yp,xc-xp); - rmnp := real_min(ritp); - -- Analyse cases by existence of max distance and direction limits - IF max_exists(ritp) THEN - rmxp := real_max(ritp); - IF aitp.max - aitp.min = 2.0*PI THEN - -- annulus or disk, with or without slot or puncture - inn := NOT max_included(aitp); -- slot exists; - a := angle(aitp.min); -- slot direction - rmax := rc+rmxp; rmax_in := max_included(ritp); - IF inn AND (acp = a) THEN rmax_in := FALSE; END_IF; - IF rc > rmxp THEN - a0 := ASIN(rmxp/rc); - amin := angle(acp-a0); amin_in := max_included(ritp); - IF amin = PI THEN amin := -PI; END_IF; - amax := angle(acp+a0); amax_in := amin_in; - IF amax < amin THEN amax := amax + 2.0*PI; END_IF; - rmin := rc-rmxp; rmin_in := amin_in; - IF inn THEN - -- slotted case - IF apc = a THEN rmin_in := FALSE; END_IF; - IF angle(amin+0.5*PI) = a THEN amin_in := FALSE; END_IF; - IF angle(amax-0.5*PI) = a THEN amax_in := FALSE; END_IF; - END_IF; - ELSE IF rc = rmxp THEN - amin := angle(acp-0.5*PI); amin_in := FALSE; - IF amin = PI THEN amin := -PI; END_IF; - amax := angle(acp+0.5*PI); amax_in := FALSE; - IF amax < amin THEN amax := amax + 2.0*PI; END_IF; - rmin := 0.0; rmin_in := max_included(ritp); - IF inn AND (apc = a) THEN rmin_in := FALSE; END_IF; - ELSE IF rc > rmnp THEN - IF inn AND (apc = a) THEN -- in the slot - rmin := 0.0; rmin_in := FALSE; - amin := aitp.min; amin_in := FALSE; - amax := aitp.max; amax_in := FALSE; - ELSE - rmin := 0.0; rmin_in := TRUE; - amin := -PI; amin_in := FALSE; - amax := PI; amax_in := TRUE; - END_IF; - ELSE - rmin := rmnp-rc; rmin_in := min_included(ritp); - amin := -PI; amin_in := FALSE; - amax := PI; amax_in := TRUE; - IF inn THEN -- Special cases when aligned with slot - IF apc = a THEN - rmin_in := FALSE; - amin := aitp.min; amin_in := FALSE; - amax := aitp.max; amax_in := FALSE; - ELSE IF acp = a THEN - amin := aitp.min; amin_in := FALSE; - amax := aitp.max; amax_in := FALSE; - END_IF; END_IF; - END_IF; - END_IF; END_IF; END_IF; - ELSE -- direction range < 2*PI - -- Compute data for corners with respect to xc,yc - x := xp + rmxp*cos(aitp.min) - xc; - y := yp + rmxp*sin(aitp.min) - yc; - r0 := SQRT(x**2 + y**2); - in0 := max_included(ritp) AND min_included(aitp); - IF r0 <> 0.0 THEN a0 := atan2(y,x); END_IF; - x := xp + rmxp*cos(aitp.max) - xc; - y := yp + rmxp*sin(aitp.max) - yc; - r1 := SQRT(x**2 + y**2); - in1 := max_included(ritp) AND max_included(aitp); - IF r1 <> 0.0 THEN a1 := atan2(y,x); END_IF; - x := xp + rmnp*cos(aitp.max) - xc; - y := yp + rmnp*sin(aitp.max) - yc; - r2 := SQRT(x**2 + y**2); - in2 := min_included(ritp) AND max_included(aitp); - IF r2 <> 0.0 THEN a2 := atan2(y,x); ELSE a2 := a1; in2 := in1; END_IF; - IF r1 = 0.0 THEN a1 := a2; in1 := in2; END_IF; - x := xp + rmnp*cos(aitp.min) - xc; - y := yp + rmnp*sin(aitp.min) - yc; - r3 := SQRT(x**2 + y**2); - in3 := min_included(ritp) AND min_included(aitp); - IF r3 <> 0.0 THEN a3 := atan2(y,x); ELSE a3 := a0; in3 := in0; END_IF; - IF r0 = 0.0 THEN a0 := a3; in0 := in3; END_IF; - IF rmnp = 0.0 THEN in2 := min_included(ritp); in3 := in2; END_IF; - IF (apc = angle(aitp.min)) OR (acp = angle(aitp.min)) THEN - in0 := min_included(aitp); - in3 := in0; - ELSE IF (apc = angle(aitp.max)) OR (acp = angle(aitp.max)) THEN - in1 := max_included(aitp); - in2 := in1; - END_IF; END_IF; - -- Find rmax - IF strictly_in(acp,aitp) THEN - rmax := rc+rmxp; rmax_in := max_included(ritp); - ELSE - rmax := r0; rmax_in := in0; - IF rmax = r1 THEN rmax_in := rmax_in OR in1; END_IF; - IF rmax < r1 THEN rmax := r1; rmax_in := in1; END_IF; - IF rmax = r2 THEN rmax_in := rmax_in OR in2; END_IF; - IF rmax < r2 THEN rmax := r2; rmax_in := in2; END_IF; - IF rmax = r3 THEN rmax_in := rmax_in OR in3; END_IF; - IF rmax < r3 THEN rmax := r3; rmax_in := in3; END_IF; - END_IF; - -- Find rmin - IF strictly_in(apc,aitp) THEN - IF rc >= rmxp THEN - rmin := rc-rmxp; rmin_in := max_included(ritp); - ELSE IF rc <= rmnp THEN - rmin := rmnp-rc; rmin_in := min_included(ritp); - ELSE - rmin := 0.0; rmin_in := TRUE; - END_IF; END_IF; - ELSE - rmin := r0; rmin_in := in0; - a := apc-aitp.min; - r := rc*COS(a); - IF {rmnp < r < rmxp} THEN -- use nearest point on line segment - rmin := rc*SIN(ABS(a)); rmin_in := min_included(aitp); - END_IF; - a := apc-aitp.max; - r := rc*COS(a); - IF {rmnp < r < rmxp} THEN -- try nearest point on line segment - r := rc*SIN(ABS(a)); inn := max_included(aitp); - IF r = rmin THEN rmin_in := rmin_in OR inn; END_IF; - IF r < rmin THEN rmin := r; rmin_in := inn; END_IF; - END_IF; - IF r1 = rmin THEN rmin_in := rmin_in OR in1; END_IF; - IF r1 < rmin THEN rmin := r1; rmin_in := in1; END_IF; - IF r2 = rmin THEN rmin_in := rmin_in OR in2; END_IF; - IF r2 < rmin THEN rmin := r2; rmin_in := in2; END_IF; - IF r3 = rmin THEN rmin_in := rmin_in OR in3; END_IF; - IF r3 < rmin THEN rmin := r3; rmin_in := in3; END_IF; - END_IF; - -- Find amin and amax, initially with respect to base direction ab. - IF rc >= rmxp THEN -- outside outer circle - ab := acp; - find_aminmax(ab,a0,a1,a2,a3,in0,in1,in2,in3,amin,amax,amin_in,amax_in); - a := ACOS(rmxp/rc); - IF strictly_in(apc-a,aitp) THEN - amin := ab-ASIN(rmxp/rc); amin_in := max_included(ritp); - END_IF; - IF strictly_in(apc+a,aitp) THEN - amax := ab+ASIN(rmxp/rc); amax_in := max_included(ritp); - END_IF; - angle_range(amin,amax); - ELSE IF rc > rmnp THEN - ab := angle(0.5*(aitp.min+aitp.max)); -- reference direction - find_aminmax(ab,a0,a1,a2,a3,in0,in1,in2,in3,amin,amax,amin_in,amax_in); - ELSE - -- Using base direction midway in prgn, compute all directions using - -- values which ensure a3 < a2 and a0 < a1 algebraically. - ab := angle(0.5*(aitp.min+aitp.max)); -- reference direction - a0 := angle(a0-ab); - a1 := angle(a1-ab); - a2 := angle(a2-ab); - a3 := angle(a3-ab); - IF a3 > a2 THEN a2 := a2 + 2.0*PI; END_IF; - IF a0 > a1 THEN a0 := a0 + 2.0*PI; END_IF; - IF a3 < a0 THEN amin := a3; amin_in := in3; - ELSE amin := a0; amin_in := in0; END_IF; - IF a2 > a1 THEN amax := a2; amax_in := in2; - ELSE amax := a1; amax_in := in1; END_IF; - IF (amax - amin > 2.0*PI) OR - ((amax - amin = 2.0*PI) AND (amin_in OR amax_in)) THEN - -- Cannot see out - amin := -PI; amin_in := FALSE; - amax := PI; amax_in := TRUE; - ELSE - amin := amin + ab; - amax := amax + ab; - angle_range(amin,amax); - END_IF; - END_IF; END_IF; - END_IF; - IF rmin_in THEN minclo := closed; END_IF; - IF rmax_in THEN maxclo := closed; END_IF; - ritv := make_finite_real_interval(rmin,minclo,rmax,maxclo); - ELSE -- Not max_exists(ritp) - IF (rc > rmnp) AND strictly_in(apc,aitp) THEN - RETURN (?); -- No pregion exists. (Would require whole plane.) - END_IF; - IF aitp.max - aitp.min = 2.0*PI THEN - -- complement of disk, with or without slot - a := angle(aitp.min); -- slot direction - IF rc > rmnp THEN -- already excluded if not aligned with slot - IF max_included(aitp) THEN - RETURN (?); -- No pregion exists. (Would require whole plane.) - END_IF; - rmin := 0.0; rmin_in := FALSE; - amin := aitp.min; amin_in := FALSE; - amax := aitp.max; amax_in := FALSE; - ELSE - rmin := rmnp-rc; rmin_in := min_included(ritp); - amin := -PI; amin_in := FALSE; - amax := PI; amax_in := TRUE; - IF NOT max_included(aitp) THEN -- Special cases when aligned with slot - IF apc = a THEN - rmin_in := FALSE; - amin := aitp.min; amin_in := FALSE; - amax := aitp.max; amax_in := FALSE; - ELSE IF acp = a THEN - amin := aitp.min; amin_in := FALSE; - amax := aitp.max; amax_in := FALSE; - END_IF; END_IF; - END_IF; - END_IF; - ELSE -- direction range < 2*PI - -- Compute data for corners with respect to xc,yc (two at infinity) - a0 := angle(aitp.min); - in0 := FALSE; - a1 := angle(aitp.max); - in1 := FALSE; - x := xp + rmnp*cos(aitp.max) - xc; - y := yp + rmnp*sin(aitp.max) - yc; - r2 := SQRT(x**2 + y**2); - in2 := min_included(ritp) AND max_included(aitp); - IF r2 <> 0.0 THEN a2 := atan2(y,x); ELSE a2 := a1; in2 := in1; END_IF; - x := xp + rmnp*cos(aitp.min) - xc; - y := yp + rmnp*sin(aitp.min) - yc; - r3 := SQRT(x**2 + y**2); - in3 := min_included(ritp) AND min_included(aitp); - IF r3 <> 0.0 THEN a3 := atan2(y,x); ELSE a3 := a0; in3 := in0; END_IF; - IF rmnp = 0.0 THEN in2 := min_included(ritp); in3 := in2; END_IF; - IF (apc = angle(aitp.min)) OR (acp = angle(aitp.min)) THEN - in0 := min_included(aitp); - in3 := in0; - ELSE IF (apc = angle(aitp.max)) OR (acp = angle(aitp.max)) THEN - in1 := max_included(aitp); - in2 := in1; - END_IF; END_IF; - -- Find rmin - IF strictly_in(apc,aitp) THEN - rmin := rmnp-rc; rmin_in := min_included(ritp); - ELSE - rmin := r2; rmin_in := in2; - a := apc-aitp.min; - r := rc*COS(a); - IF rmnp < r THEN -- use nearest point on aitp.min ray - rmin := rc*SIN(ABS(a)); rmin_in := min_included(aitp); - END_IF; - a := apc-aitp.max; - r := rc*COS(a); - IF rmnp < r THEN -- try nearest point on aitp.max ray - r := rc*SIN(ABS(a)); inn := max_included(aitp); - IF r = rmin THEN rmin_in := rmin_in OR inn; END_IF; - IF r < rmin THEN rmin := r; rmin_in := inn; END_IF; - END_IF; - IF r3 = rmin THEN rmin_in := rmin_in OR in3; END_IF; - IF r3 < rmin THEN rmin := r3; rmin_in := in3; END_IF; - END_IF; - -- Find amin and amax - ab := angle(0.5*(aitp.min+aitp.max)); -- reference direction - IF rc > rmnp THEN - find_aminmax(ab,a0,a1,a2,a3,in0,in1,in2,in3,amin,amax,amin_in,amax_in); - ELSE - -- Using base direction midway in prgn, compute all directions using - -- values which ensure a3 < a2 and a0 < a1 algebraically. - a0 := angle(a0-ab); - a1 := angle(a1-ab); - a2 := angle(a2-ab); - a3 := angle(a3-ab); - IF a3 > a2 THEN a2 := a2 + 2.0*PI; END_IF; - IF a0 > a1 THEN a0 := a0 + 2.0*PI; END_IF; - IF a3 < a0 THEN amin := a3; amin_in := in3; - ELSE amin := a0; amin_in := in0; END_IF; - IF a2 > a1 THEN amax := a2; amax_in := in2; - ELSE amax := a1; amax_in := in1; END_IF; - IF (amax - amin > 2.0*PI) OR - ((amax - amin = 2.0*PI) AND (amin_in OR amax_in)) THEN - -- Cannot see out - amin := -PI; amin_in := FALSE; - amax := PI; amax_in := TRUE; - IF (rmin = 0.0) AND rmin_in THEN - RETURN (?); -- No pregion exists. (Would require whole plane.) - END_IF; - ELSE - amin := amin + ab; - amax := amax + ab; - angle_range(amin,amax); - END_IF; - END_IF; - END_IF; - IF rmin_in THEN minclo := closed; END_IF; - ritv := make_real_interval_from_min(rmin,minclo); - END_IF; - minclo := open; maxclo := open; - IF amin_in THEN minclo := closed; END_IF; - IF amax_in THEN maxclo := closed; END_IF; - aitv := make_finite_real_interval(amin,minclo,amax,maxclo); - -- Construct polar region - RETURN (make_polar_complex_number_region(centre,ritv,aitv)); -END_FUNCTION; -- enclose_pregion_in_pregion - -(* Implicit interfaced from: mathematical_functions_schema *) -FUNCTION equal_maths_spaces(spc1, spc2 : maths_space) : LOGICAL; - LOCAL - spc1types : SET OF STRING := stripped_typeof(spc1); - spc2types : SET OF STRING := stripped_typeof(spc2); - set1, set2 : SET OF maths_value; - cum : LOGICAL := TRUE; - base : maths_space; - expnt : INTEGER; - factors : LIST OF maths_space; - factors2 : LIST OF maths_space; - fs1, fs2 : function_space; - cum2 : LOGICAL; - END_LOCAL; - IF spc1 = spc2 THEN RETURN (TRUE); END_IF; - -- Consider cases where it is not yet certain that spc1 <> spc2. - IF 'FINITE_SPACE' IN spc1types THEN - set1 := spc1\finite_space.members; - IF 'FINITE_SPACE' IN spc2types THEN - -- Members may have different but equivalent representations and in - -- different orders. May also have disguised repeats in same set of members. - set2 := spc2\finite_space.members; - REPEAT i := 1 TO SIZEOF (set1); - cum := cum AND member_of (set1[i], spc2); - IF cum = FALSE THEN RETURN (FALSE); END_IF; - END_REPEAT; - IF cum = TRUE THEN - REPEAT i := 1 TO SIZEOF (set2); - cum := cum AND member_of (set2[i], spc1); - IF cum = FALSE THEN RETURN (FALSE); END_IF; - END_REPEAT; - END_IF; - RETURN (cum); - END_IF; - IF 'FINITE_INTEGER_INTERVAL' IN spc2types THEN - set2 := []; - REPEAT i := spc2\finite_integer_interval.min TO spc2\finite_integer_interval.max; - set2 := set2 + [i]; - END_REPEAT; - RETURN (equal_maths_spaces(spc1,make_finite_space(set2))); - END_IF; - END_IF; - IF ('FINITE_INTEGER_INTERVAL' IN spc1types) AND ('FINITE_SPACE' IN spc2types) THEN - set1 := []; - REPEAT i := spc1\finite_integer_interval.min TO spc1\finite_integer_interval.max; - set1 := set1 + [i]; - END_REPEAT; - RETURN (equal_maths_spaces(make_finite_space(set1),spc2)); - END_IF; - IF ('CARTESIAN_COMPLEX_NUMBER_REGION' IN spc1types) AND - ('POLAR_COMPLEX_NUMBER_REGION' IN spc2types) THEN - -- Quadrants and half spaces have two representations - RETURN (equal_cregion_pregion(spc1,spc2)); - END_IF; - IF ('POLAR_COMPLEX_NUMBER_REGION' IN spc1types) AND - ('CARTESIAN_COMPLEX_NUMBER_REGION' IN spc2types) THEN - -- Quadrants and half spaces have two representations - RETURN (equal_cregion_pregion(spc2,spc1)); - END_IF; - IF 'UNIFORM_PRODUCT_SPACE' IN spc1types THEN - base := spc1\uniform_product_space.base; - expnt := spc1\uniform_product_space.exponent; - IF 'UNIFORM_PRODUCT_SPACE' IN spc2types THEN - IF expnt <> spc2\uniform_product_space.exponent THEN RETURN (FALSE); END_IF; - RETURN (equal_maths_spaces(base,spc2\uniform_product_space.base)); - END_IF; - IF 'LISTED_PRODUCT_SPACE' IN spc2types THEN - factors := spc2\listed_product_space.factors; - IF expnt <> SIZEOF (factors) THEN RETURN (FALSE); END_IF; - REPEAT i := 1 TO SIZEOF (factors); - cum := cum AND equal_maths_spaces(base,factors[i]); - IF cum = FALSE THEN RETURN (FALSE); END_IF; - END_REPEAT; - RETURN (cum); - END_IF; - END_IF; - IF 'LISTED_PRODUCT_SPACE' IN spc1types THEN - factors := spc1\listed_product_space.factors; - IF 'UNIFORM_PRODUCT_SPACE' IN spc2types THEN - IF spc2\uniform_product_space.exponent <> SIZEOF (factors) THEN - RETURN (FALSE); - END_IF; - base := spc2\uniform_product_space.base; - REPEAT i := 1 TO SIZEOF (factors); - cum := cum AND equal_maths_spaces(base,factors[i]); - IF cum = FALSE THEN RETURN (FALSE); END_IF; - END_REPEAT; - RETURN (cum); - END_IF; - IF 'LISTED_PRODUCT_SPACE' IN spc2types THEN - factors2 := spc2\listed_product_space.factors; - IF SIZEOF (factors) <> SIZEOF (factors2) THEN RETURN (FALSE); END_IF; - REPEAT i := 1 TO SIZEOF (factors); - cum := cum AND equal_maths_spaces(factors[i],factors2[i]); - IF cum = FALSE THEN RETURN (FALSE); END_IF; - END_REPEAT; - RETURN (cum); - END_IF; - END_IF; - IF ('EXTENDED_TUPLE_SPACE' IN spc1types) AND - ('EXTENDED_TUPLE_SPACE' IN spc2types) THEN - RETURN (equal_maths_spaces(spc1\extended_tuple_space.extender, - spc2\extended_tuple_space.extender) AND equal_maths_spaces( - spc1\extended_tuple_space.base, spc2\extended_tuple_space.base)); - END_IF; - IF ('FUNCTION_SPACE' IN spc1types) AND - ('FUNCTION_SPACE' IN spc2types) THEN - fs1 := spc1; - fs2 := spc2; - IF fs1.domain_constraint <> fs2.domain_constraint THEN - IF (fs1.domain_constraint = sc_equal) OR (fs2.domain_constraint = sc_equal) THEN - RETURN (FALSE); - END_IF; - IF (fs1.domain_constraint <> sc_subspace) THEN - fs1 := spc2; - fs2 := spc1; - END_IF; - IF (fs1.domain_constraint <> sc_subspace) OR - (fs2.domain_constraint <> sc_member) THEN - -- Safety check. Should be unreachable. - RETURN (UNKNOWN); - END_IF; - IF any_space_satisfies(fs1.domain_constraint,fs1.domain_argument) <> - any_space_satisfies(fs2.domain_constraint,fs2.domain_argument) THEN - RETURN (FALSE); - END_IF; - IF NOT ('FINITE_SPACE' IN stripped_typeof(fs2.domain_argument)) THEN - RETURN (FALSE); - END_IF; - IF SIZEOF (['FINITE_SPACE','FINITE_INTEGER_INTERVAL'] * - stripped_typeof(fs1.domain_argument)) = 0 THEN - RETURN (FALSE); - END_IF; - -- Remaining cases too complex. - RETURN (UNKNOWN); - END_IF; - cum := equal_maths_spaces(fs1.domain_argument,fs2.domain_argument); - IF cum = FALSE THEN RETURN (FALSE); END_IF; - IF fs1.range_constraint <> fs2.range_constraint THEN - IF (fs1.range_constraint = sc_equal) OR (fs2.range_constraint = sc_equal) THEN - RETURN (FALSE); - END_IF; - IF (fs1.range_constraint <> sc_subspace) THEN - fs1 := spc2; - fs2 := spc1; - END_IF; - IF (fs1.range_constraint <> sc_subspace) OR - (fs2.range_constraint <> sc_member) THEN - -- Safety check. Should be unreachable. - RETURN (UNKNOWN); - END_IF; - IF any_space_satisfies(fs1.range_constraint,fs1.range_argument) <> - any_space_satisfies(fs2.range_constraint,fs2.range_argument) THEN - RETURN (FALSE); - END_IF; - IF NOT ('FINITE_SPACE' IN stripped_typeof(fs2.range_argument)) THEN - RETURN (FALSE); - END_IF; - IF SIZEOF (['FINITE_SPACE','FINITE_INTEGER_INTERVAL'] * - stripped_typeof(fs1.range_argument)) = 0 THEN - RETURN (FALSE); - END_IF; - -- Remaining cases too complex. - RETURN (UNKNOWN); - END_IF; - cum := cum AND equal_maths_spaces(fs1.range_argument,fs2.range_argument); - RETURN (cum); - END_IF; - RETURN (FALSE); -END_FUNCTION; -- equal_maths_spaces - -(* Implicit interfaced from: mathematical_functions_schema *) -FUNCTION equal_cregion_pregion(crgn : cartesian_complex_number_region; - prgn : polar_complex_number_region) : LOGICAL; - LOCAL - arng, amin, xc, yc : REAL; - aitv, xitv, yitv : real_interval; - c_in : BOOLEAN; - END_LOCAL; - IF NOT EXISTS (crgn) OR NOT EXISTS (prgn) THEN RETURN (FALSE); END_IF; - IF max_exists(prgn.distance_constraint) THEN RETURN (FALSE); END_IF; - IF real_min(prgn.distance_constraint) <> 0.0 THEN RETURN (FALSE); END_IF; - c_in := min_included(prgn.distance_constraint); - aitv := prgn.direction_constraint; - amin := aitv.min; - arng := aitv.max - amin; - xc := prgn.centre.real_part; - yc := prgn.centre.imag_part; - xitv := crgn.real_constraint; - yitv := crgn.imag_constraint; - IF arng = 0.5*PI THEN - IF amin = 0.0 THEN -- quadrant to upper right - RETURN (NOT max_exists(xitv) AND NOT max_exists(yitv) AND min_exists(xitv) - AND min_exists(yitv) AND (real_min(xitv) = xc) AND (real_min(yitv) = yc) - AND ((c_in AND min_included(aitv) AND max_included(aitv) - AND min_included(xitv) AND min_included(yitv)) - OR (NOT c_in AND NOT min_included(aitv) AND max_included(aitv) - AND min_included(xitv) AND NOT min_included(yitv)) - OR (NOT c_in AND min_included(aitv) AND NOT max_included(aitv) - AND NOT min_included(xitv) AND min_included(yitv)) - OR (NOT c_in AND NOT min_included(aitv) AND NOT max_included(aitv) - AND NOT min_included(xitv) AND NOT min_included(yitv)))); - END_IF; - IF amin = 0.5*PI THEN -- quadrant to upper left - RETURN (max_exists(xitv) AND NOT max_exists(yitv) AND NOT min_exists(xitv) - AND min_exists(yitv) AND (real_max(xitv) = xc) AND (real_min(yitv) = yc) - AND ((c_in AND min_included(aitv) AND max_included(aitv) - AND max_included(xitv) AND min_included(yitv)) - OR (NOT c_in AND NOT min_included(aitv) AND max_included(aitv) - AND max_included(xitv) AND NOT min_included(yitv)) - OR (NOT c_in AND min_included(aitv) AND NOT max_included(aitv) - AND NOT max_included(xitv) AND min_included(yitv)) - OR (NOT c_in AND NOT min_included(aitv) AND NOT max_included(aitv) - AND NOT max_included(xitv) AND NOT min_included(yitv)))); - END_IF; - IF amin = -PI THEN -- quadrant to lower left - RETURN (max_exists(xitv) AND max_exists(yitv) AND NOT min_exists(xitv) - AND NOT min_exists(yitv) AND (real_max(xitv) = xc) AND (real_max(yitv) = yc) - AND ((c_in AND min_included(aitv) AND max_included(aitv) - AND max_included(xitv) AND max_included(yitv)) - OR (NOT c_in AND NOT min_included(aitv) AND max_included(aitv) - AND max_included(xitv) AND NOT max_included(yitv)) - OR (NOT c_in AND min_included(aitv) AND NOT max_included(aitv) - AND NOT max_included(xitv) AND max_included(yitv)) - OR (NOT c_in AND NOT min_included(aitv) AND NOT max_included(aitv) - AND NOT max_included(xitv) AND NOT max_included(yitv)))); - END_IF; - IF amin = -0.5*PI THEN -- quadrant to lower right - RETURN (NOT max_exists(xitv) AND max_exists(yitv) AND min_exists(xitv) - AND NOT min_exists(yitv) AND (real_min(xitv) = xc) AND (real_max(yitv) = yc) - AND ((c_in AND min_included(aitv) AND max_included(aitv) - AND min_included(xitv) AND max_included(yitv)) - OR (NOT c_in AND NOT min_included(aitv) AND max_included(aitv) - AND min_included(xitv) AND NOT max_included(yitv)) - OR (NOT c_in AND min_included(aitv) AND NOT max_included(aitv) - AND NOT min_included(xitv) AND max_included(yitv)) - OR (NOT c_in AND NOT min_included(aitv) AND NOT max_included(aitv) - AND NOT min_included(xitv) AND NOT max_included(yitv)))); - END_IF; - END_IF; - IF arng = PI THEN - IF amin = 0.0 THEN -- upper half space - RETURN (NOT max_exists(xitv) AND NOT max_exists(yitv) AND NOT min_exists(xitv) - AND min_exists(yitv) AND (real_min(yitv) = yc) - AND ((c_in AND min_included(aitv) AND max_included(aitv) - AND min_included(yitv)) - OR (NOT c_in AND NOT min_included(aitv) AND NOT max_included(aitv) - AND NOT min_included(yitv)))); - END_IF; - IF amin = 0.5*PI THEN -- left half space - RETURN (max_exists(xitv) AND NOT max_exists(yitv) AND NOT min_exists(xitv) - AND NOT min_exists(yitv) AND (real_max(xitv) = xc) - AND ((c_in AND min_included(aitv) AND max_included(aitv) - AND max_included(xitv)) - OR (NOT c_in AND NOT min_included(aitv) AND NOT max_included(aitv) - AND NOT max_included(xitv)))); - END_IF; - IF amin = -PI THEN -- lower half space - RETURN (NOT max_exists(xitv) AND max_exists(yitv) AND NOT min_exists(xitv) - AND NOT min_exists(yitv) AND (real_max(yitv) = yc) - AND ((c_in AND min_included(aitv) AND max_included(aitv) - AND max_included(yitv)) - OR (NOT c_in AND NOT min_included(aitv) AND NOT max_included(aitv) - AND NOT max_included(yitv)))); - END_IF; - IF amin = -0.5*PI THEN -- right half space - RETURN (NOT max_exists(xitv) AND NOT max_exists(yitv) AND min_exists(xitv) - AND NOT min_exists(yitv) AND (real_min(xitv) = xc) - AND ((c_in AND min_included(aitv) AND max_included(aitv) - AND min_included(xitv)) - OR (NOT c_in AND NOT min_included(aitv) AND NOT max_included(aitv) - AND NOT min_included(xitv)))); - END_IF; - END_IF; - RETURN (FALSE); -END_FUNCTION; -- equal_cregion_pregion - -(* Implicit interfaced from: mathematical_functions_schema *) -FUNCTION space_is_singleton(spc : maths_space) : BOOLEAN; - LOCAL - types : SET OF STRING := stripped_typeof (spc); - END_LOCAL; - IF 'FINITE_SPACE' IN types THEN - RETURN (bool(SIZEOF (spc\finite_space.members) = 1)); - END_IF; - IF 'FINITE_INTEGER_INTERVAL' IN types THEN - RETURN (bool(spc\finite_integer_interval.size = 1)); - END_IF; - RETURN (FALSE); -END_FUNCTION; -- space_is_singleton - -(* Implicit interfaced from: mathematical_functions_schema *) -FUNCTION singleton_member_of(spc : maths_space) : maths_value; - LOCAL - types : SET OF STRING := stripped_typeof (spc); - END_LOCAL; - IF 'FINITE_SPACE' IN types THEN - IF SIZEOF (spc\finite_space.members) = 1 THEN - RETURN (spc\finite_space.members[1]); - END_IF; - RETURN (?); - END_IF; - IF 'FINITE_INTEGER_INTERVAL' IN types THEN - IF spc\finite_integer_interval.size = 1 THEN - RETURN (spc\finite_integer_interval.min); - END_IF; - RETURN (?); - END_IF; - RETURN (?); -END_FUNCTION; -- singleton_member_of - -(* Implicit interfaced from: mathematical_functions_schema *) -FUNCTION definite_integral_expr_check(operands : LIST [2:?] OF generic_expression; - lowerinf : BOOLEAN; - upperinf : BOOLEAN) : BOOLEAN; - LOCAL - nops : INTEGER := 2; - vspc : maths_space; - dim : nonnegative_integer; - k : positive_integer; - bspc : maths_space; - END_LOCAL; - IF NOT lowerinf THEN nops := nops + 1; END_IF; - IF NOT upperinf THEN nops := nops + 1; END_IF; - IF SIZEOF (operands) <> nops THEN RETURN (FALSE); END_IF; - IF NOT ('GENERIC_VARIABLE' IN stripped_typeof(operands[2])) THEN - RETURN (FALSE); - END_IF; - IF NOT has_values_space (operands[2]) THEN RETURN (FALSE); END_IF; - vspc := values_space_of (operands[2]); - IF NOT ('REAL_INTERVAL' IN stripped_typeof(vspc)) THEN RETURN (FALSE); END_IF; - IF lowerinf THEN - IF min_exists (vspc) THEN RETURN (FALSE); END_IF; - k := 3; - ELSE - IF NOT has_values_space (operands[3]) THEN RETURN (FALSE); END_IF; - bspc := values_space_of (operands[3]); - IF NOT compatible_spaces (bspc, vspc) THEN RETURN (FALSE); END_IF; - k := 4; - END_IF; - IF upperinf THEN - IF max_exists (vspc) THEN RETURN (FALSE); END_IF; - ELSE - IF NOT has_values_space (operands[k]) THEN RETURN (FALSE); END_IF; - bspc := values_space_of (operands[k]); - IF NOT compatible_spaces (bspc, vspc) THEN RETURN (FALSE); END_IF; - END_IF; - RETURN (TRUE); -END_FUNCTION; -- definite_integral_expr_check - -(* Implicit interfaced from: mathematical_functions_schema *) -FUNCTION nondecreasing(lr : LIST OF REAL) : BOOLEAN; - IF NOT EXISTS (lr) THEN - RETURN (FALSE); - END_IF; - REPEAT j := 2 TO SIZEOF (lr); - IF lr[j] < lr[j-1] THEN - RETURN (FALSE); - END_IF; - END_REPEAT; - RETURN (TRUE); -END_FUNCTION; - -(* Implicit interfaced from: mathematical_functions_schema *) -FUNCTION function_is_table(func : maths_function) : BOOLEAN; - LOCAL - tspace : tuple_space; - temp : maths_space; - base : INTEGER; - END_LOCAL; - IF NOT EXISTS (func) THEN RETURN (FALSE); END_IF; - tspace := func.domain; - IF (space_dimension (tspace) = 1) AND ((schema_prefix + 'TUPLE_SPACE') IN - TYPEOF (factor1 (tspace))) THEN - tspace := factor1 (tspace); - END_IF; - IF NOT ((schema_prefix + 'PRODUCT_SPACE') IN TYPEOF (tspace)) THEN - RETURN (FALSE); - END_IF; - temp := factor1 (tspace); - IF NOT ((schema_prefix + 'FINITE_INTEGER_INTERVAL') IN TYPEOF (temp)) THEN - RETURN (FALSE); - END_IF; - base := temp\finite_integer_interval.min; - IF (base <> 0) AND (base <> 1) THEN - RETURN (FALSE); - END_IF; - REPEAT i := 2 TO space_dimension (tspace); - temp := factor_space (tspace, i); - IF NOT ((schema_prefix + 'FINITE_INTEGER_INTERVAL') IN TYPEOF (temp)) THEN - RETURN (FALSE); - END_IF; - IF temp\finite_integer_interval.min <> base THEN RETURN (FALSE); END_IF; - END_REPEAT; - RETURN (TRUE); -END_FUNCTION; -- function_is_table - -(* Implicit interfaced from: mathematical_functions_schema *) -FUNCTION compare_basis_and_coef(basis : LIST [1:?] OF b_spline_basis; - coef : maths_function) : BOOLEAN; - LOCAL - shape : LIST OF positive_integer; - END_LOCAL; - IF NOT EXISTS (basis) OR NOT EXISTS (coef) THEN RETURN (FALSE); END_IF; - shape := shape_of_array(coef); - IF NOT EXISTS (shape) THEN RETURN (FALSE); END_IF; - IF SIZEOF (shape) < SIZEOF (basis) THEN RETURN (FALSE); END_IF; - REPEAT i := 1 TO SIZEOF (basis); - IF (basis[i].num_basis = shape[i]) <> TRUE THEN RETURN (FALSE); END_IF; - END_REPEAT; - RETURN (TRUE); -END_FUNCTION; -- compare_basis_and_coef - -(* Implicit interfaced from: mathematical_functions_schema *) -FUNCTION number_tuple_subspace_check(spc : maths_space) : LOGICAL; - LOCAL - types : SET OF STRING := stripped_typeof(spc); - factors : LIST OF maths_space; - cum : LOGICAL := TRUE; - END_LOCAL; - IF 'UNIFORM_PRODUCT_SPACE' IN types THEN - RETURN (subspace_of_es(spc\uniform_product_space.base,es_numbers)); - END_IF; - IF 'LISTED_PRODUCT_SPACE' IN types THEN - factors := spc\listed_product_space.factors; - REPEAT i := 1 TO SIZEOF (factors); - cum := cum AND subspace_of_es(factors[i],es_numbers); - END_REPEAT; - RETURN (cum); - END_IF; - IF 'EXTENDED_TUPLE_SPACE' IN types THEN - cum := subspace_of_es(spc\extended_tuple_space.extender,es_numbers); - cum := cum AND number_tuple_subspace_check(spc\extended_tuple_space.base); - RETURN (cum); - END_IF; - RETURN (FALSE); -END_FUNCTION; - -(* Implicit interfaced from: mathematical_functions_schema *) -FUNCTION partial_derivative_check(domain : tuple_space; - d_vars : LIST [1:?] OF input_selector) : BOOLEAN; - LOCAL - domn : tuple_space := domain; - fspc : maths_space; - dim : INTEGER; - k : INTEGER; - END_LOCAL; - IF (space_dimension (domain) = 1) AND ((schema_prefix + 'TUPLE_SPACE') IN - TYPEOF (factor1 (domain))) THEN - domn := factor1 (domain); - END_IF; - dim := space_dimension (domn); - REPEAT i := 1 TO SIZEOF (d_vars); - k := d_vars[i]; - IF k > dim THEN - RETURN (FALSE); - END_IF; - fspc := factor_space (domn, k); - IF (NOT subspace_of_es (fspc,es_reals)) AND - (NOT subspace_of_es (fspc,es_complex_numbers)) THEN - RETURN (FALSE); - END_IF; - END_REPEAT; - RETURN (TRUE); -END_FUNCTION; -- partial_derivative_check - -(* Implicit interfaced from: mathematical_functions_schema *) -FUNCTION derive_definite_integral_domain(igrl : definite_integral_function) - : tuple_space; - - -- Internal utility function: - FUNCTION process_product_space(spc : product_space; - idx, prefix : INTEGER; - vdomn : maths_space) : product_space; - LOCAL - uspc : uniform_product_space; - expnt : INTEGER; - factors : LIST OF maths_space; - END_LOCAL; - IF (schema_prefix + 'UNIFORM_PRODUCT_SPACE') IN TYPEOF (spc) THEN - uspc := spc; - expnt := uspc.exponent + prefix; - IF idx <= uspc.exponent THEN expnt := expnt - 1; END_IF; - IF expnt = 0 THEN - RETURN (make_listed_product_space([])); - ELSE - RETURN (make_uniform_product_space(uspc.base,expnt)); - END_IF; - ELSE - factors := spc\listed_product_space.factors; - IF idx <= SIZEOF (factors) THEN REMOVE (factors, idx); END_IF; - IF prefix > 0 THEN - INSERT (factors, vdomn, 0); - IF prefix > 1 THEN INSERT (factors, vdomn, 0); END_IF; - END_IF; - RETURN (make_listed_product_space(factors)); - END_IF; - END_FUNCTION; -- process_product_space - - -- Resume body of derive_definite_integral_domain function - LOCAL - idomn : tuple_space := igrl.integrand.domain; - types : SET OF STRING := TYPEOF (idomn); - idx : INTEGER := igrl.variable_of_integration; - tupled : BOOLEAN := bool(((space_dimension(idomn) = 1) AND - ((schema_prefix + 'TUPLE_SPACE') IN types))); - prefix : INTEGER := 0; - espc : extended_tuple_space; - vdomn : maths_space; - END_LOCAL; - IF tupled THEN - idomn := factor1(idomn); - types := TYPEOF (idomn); - END_IF; - IF igrl.lower_limit_neg_infinity THEN prefix := prefix + 1; END_IF; - IF igrl.upper_limit_pos_infinity THEN prefix := prefix + 1; END_IF; - vdomn := factor_space(idomn,idx); - IF (schema_prefix + 'EXTENDED_TUPLE_SPACE') IN types THEN - espc := idomn; - idomn := make_extended_tuple_space(process_product_space(espc.base,idx, - prefix,vdomn),espc.extender); - ELSE - idomn := process_product_space(idomn,idx,prefix,vdomn); - END_IF; - IF tupled THEN RETURN (one_tuples_of(idomn)); - ELSE RETURN (idomn); END_IF; -END_FUNCTION; -- derive_definite_integral_domain - -(* Implicit interfaced from: mathematical_functions_schema *) -FUNCTION definite_integral_check(domain : tuple_space; - vrblint : input_selector; - lowerinf : BOOLEAN; - upperinf : BOOLEAN) : BOOLEAN; - LOCAL - domn : tuple_space := domain; - fspc : maths_space; - dim : nonnegative_integer; - k : positive_integer; - END_LOCAL; - IF (space_dimension (domain) = 1) AND ((schema_prefix + 'TUPLE_SPACE') IN - TYPEOF (factor1 (domain))) THEN - domn := factor1 (domain); - END_IF; - dim := space_dimension (domn); - k := vrblint; - IF k > dim THEN RETURN (FALSE); END_IF; - fspc := factor_space (domn, k); - IF NOT ((schema_prefix + 'REAL_INTERVAL') IN TYPEOF (fspc)) THEN - RETURN (FALSE); - END_IF; - IF lowerinf AND min_exists (fspc) THEN RETURN (FALSE); END_IF; - IF upperinf AND max_exists (fspc) THEN RETURN (FALSE); END_IF; - RETURN (TRUE); -END_FUNCTION; -- definite_integral_check - -(* Implicit interfaced from: mathematical_functions_schema *) -FUNCTION remove_first(alist : LIST OF GENERIC:GEN) : LIST OF GENERIC:GEN; - LOCAL - blist : LIST OF GENERIC:GEN := alist; - END_LOCAL; - IF SIZEOF (blist) > 0 THEN - REMOVE (blist, 1); - END_IF; - RETURN (blist); -END_FUNCTION; -- remove_first - -(* Implicit interfaced from: mathematical_functions_schema *) -FUNCTION derive_function_range(func : maths_function) : tuple_space; - LOCAL - typenames : SET OF STRING := stripped_typeof(func); - tspace : tuple_space := make_listed_product_space ([]); - m, n : nonnegative_integer := 0; - temp : INTEGER := 0; - END_LOCAL; - IF 'FINITE_FUNCTION' IN typenames THEN - RETURN (derive_finite_function_range (func\finite_function.pairs)); - END_IF; - IF 'CONSTANT_FUNCTION' IN typenames THEN - RETURN (one_tuples_of (make_finite_space ([func\constant_function.sole_output]))); - END_IF; - IF 'SELECTOR_FUNCTION' IN typenames THEN - tspace := func.domain; - IF (space_dimension(tspace) = 1) AND ((schema_prefix + 'TUPLE_SPACE') IN - TYPEOF (tspace)) THEN - tspace := factor1 (tspace); - END_IF; - RETURN (one_tuples_of (factor_space (tspace, func\selector_function.selector))); - END_IF; - IF 'ELEMENTARY_FUNCTION' IN typenames THEN - RETURN (derive_elementary_function_range (func\elementary_function.func_id)); - END_IF; - IF 'RESTRICTION_FUNCTION' IN typenames THEN - RETURN (one_tuples_of (func\restriction_function.operand)); - END_IF; - IF 'REPACKAGING_FUNCTION' IN typenames THEN - tspace := func\repackaging_function.operand.range; - IF func\repackaging_function.output_repack = ro_wrap_as_tuple THEN - tspace := one_tuples_of (tspace); - END_IF; - IF func\repackaging_function.output_repack = ro_unwrap_tuple THEN - tspace := factor1 (tspace); - END_IF; - IF func\repackaging_function.selected_output > 0 THEN - tspace := one_tuples_of (factor_space (tspace, - func\repackaging_function.selected_output)); - END_IF; - RETURN (tspace); - END_IF; - IF 'REINDEXED_ARRAY_FUNCTION' IN typenames THEN - RETURN (func\unary_generic_expression.operand\maths_function.range); - END_IF; - IF 'SERIES_COMPOSED_FUNCTION' IN typenames THEN - RETURN (func\series_composed_function.operands[SIZEOF - (func\series_composed_function.operands)].range); - END_IF; - IF 'PARALLEL_COMPOSED_FUNCTION' IN typenames THEN - RETURN (func\parallel_composed_function.final_function.range); - END_IF; - IF 'EXPLICIT_TABLE_FUNCTION' IN typenames THEN - IF 'LISTED_REAL_DATA' IN typenames THEN - RETURN (one_tuples_of (the_reals)); - END_IF; - IF 'LISTED_INTEGER_DATA' IN typenames THEN - RETURN (one_tuples_of (the_integers)); - END_IF; - IF 'LISTED_LOGICAL_DATA' IN typenames THEN - RETURN (one_tuples_of (the_logicals)); - END_IF; - IF 'LISTED_STRING_DATA' IN typenames THEN - RETURN (one_tuples_of (the_strings)); - END_IF; - IF 'LISTED_COMPLEX_NUMBER_DATA' IN typenames THEN - RETURN (one_tuples_of (the_complex_numbers)); - END_IF; - IF 'LISTED_DATA' IN typenames THEN - RETURN (one_tuples_of (func\listed_data.value_range)); - END_IF; - IF 'EXTERNALLY_LISTED_DATA' IN typenames THEN - RETURN (one_tuples_of (func\externally_listed_data.value_range)); - END_IF; - IF 'LINEARIZED_TABLE_FUNCTION' IN typenames THEN - RETURN (func\linearized_table_function.source.range); - END_IF; - IF 'BASIC_SPARSE_MATRIX' IN typenames THEN - RETURN (func\basic_sparse_matrix.val.range); - END_IF; - -- Unreachable, as no other subtypes of explicit_table_function are permissible - -- without first modifying this function to account for them. - RETURN (?); - END_IF; - IF 'HOMOGENEOUS_LINEAR_FUNCTION' IN typenames THEN - RETURN (one_tuples_of (make_uniform_product_space - (factor1 (func\homogeneous_linear_function.mat.range), - func\homogeneous_linear_function.mat\explicit_table_function.shape - [3 - func\homogeneous_linear_function.sum_index]))); - END_IF; - IF 'GENERAL_LINEAR_FUNCTION' IN typenames THEN - RETURN (one_tuples_of (make_uniform_product_space - (factor1 (func\general_linear_function.mat.range), - func\general_linear_function.mat\explicit_table_function.shape - [3 - func\general_linear_function.sum_index]))); - END_IF; - IF 'B_SPLINE_BASIS' IN typenames THEN - RETURN (one_tuples_of (make_uniform_product_space (the_reals, - func\b_spline_basis.num_basis))); - END_IF; - IF 'B_SPLINE_FUNCTION' IN typenames THEN - tspace := factor1 (func\b_spline_function.coef.domain); - m := SIZEOF (func\b_spline_function.basis); - n := space_dimension (tspace); - IF m = n THEN - RETURN (one_tuples_of (the_reals)); - END_IF; - IF m = n - 1 THEN - RETURN (one_tuples_of (make_uniform_product_space (the_reals, - factor_space (tspace, n)\finite_integer_interval.size))); - END_IF; - tspace := extract_factors (tspace, m+1, n); - RETURN (one_tuples_of (make_function_space (sc_equal, tspace, sc_subspace, - number_superspace_of (func\b_spline_function.coef.range)))); - END_IF; - IF 'RATIONALIZE_FUNCTION' IN typenames THEN - tspace := factor1 (func\rationalize_function.fun.range); - n := space_dimension (tspace); - RETURN (one_tuples_of (make_uniform_product_space (number_superspace_of ( - factor1 (tspace)), n-1))); - END_IF; - IF 'PARTIAL_DERIVATIVE_FUNCTION' IN typenames THEN - RETURN (drop_numeric_constraints ( - func\partial_derivative_function.derivand.range)); - END_IF; - IF 'DEFINITE_INTEGRAL_FUNCTION' IN typenames THEN - RETURN (drop_numeric_constraints ( - func\definite_integral_function.integrand.range)); - END_IF; - IF 'ABSTRACTED_EXPRESSION_FUNCTION' IN typenames THEN - RETURN (one_tuples_of(values_space_of(func\abstracted_expression_function.expr))); - END_IF; - IF 'EXPRESSION_DENOTED_FUNCTION' IN typenames THEN - RETURN (values_space_of (func\expression_denoted_function.expr)\function_space. - range_argument); - END_IF; - IF 'IMPORTED_POINT_FUNCTION' IN typenames THEN - temp := dimension_of (func\imported_point_function.geometry); - RETURN (one_tuples_of (make_uniform_product_space (the_reals, temp))); - END_IF; - IF 'IMPORTED_CURVE_FUNCTION' IN typenames THEN - temp := dimension_of (func\imported_curve_function.geometry); - RETURN (one_tuples_of (make_uniform_product_space (the_reals, temp))); - END_IF; - IF 'IMPORTED_SURFACE_FUNCTION' IN typenames THEN - temp := dimension_of (func\imported_surface_function.geometry); - RETURN (one_tuples_of (make_uniform_product_space (the_reals, temp))); - END_IF; - IF 'IMPORTED_VOLUME_FUNCTION' IN typenames THEN - temp := dimension_of (func\imported_volume_function.geometry); - RETURN (one_tuples_of (make_uniform_product_space (the_reals, temp))); - END_IF; - IF 'APPLICATION_DEFINED_FUNCTION' IN typenames THEN - RETURN (func\application_defined_function.explicit_range); - END_IF; - -- Unreachable, as no other subtypes of maths_function are permissible without - -- first modifying this function to account for them. - RETURN (?); -END_FUNCTION; -- derive_function_range - -(* Implicit interfaced from: mathematical_functions_schema *) -FUNCTION derive_finite_function_range(pairs : SET [1:?] OF LIST [2:2] OF maths_value) - : tuple_space; - LOCAL - result : SET OF maths_value := []; - END_LOCAL; --- An ambiguity in ISO 10303-11:1994 pages 99-101 leaves the result of the following --- three lines ambiguous in those cases where an operand is simultaneously a member --- of the base type and the aggregate type. --- REPEAT i := 1 TO SIZEOF (pairs); --- result := result + pairs[i][2]; --- END_REPEAT; --- The next line unions an empty set and the desired list to get the desired set. - result := result + list_selected_components (pairs, 2); - RETURN (one_tuples_of (make_finite_space (result))); -END_FUNCTION; -- derive_finite_function_range - -(* Implicit interfaced from: mathematical_functions_schema *) -FUNCTION derive_elementary_function_range(ef_val : elementary_function_enumerators) - : tuple_space; - IF NOT EXISTS (ef_val) THEN RETURN (?); END_IF; - CASE ef_val OF - ef_and : RETURN (make_uniform_product_space (the_logicals, 1)); - ef_or : RETURN (make_uniform_product_space (the_logicals, 1)); - ef_not : RETURN (make_uniform_product_space (the_logicals, 1)); - ef_xor : RETURN (make_uniform_product_space (the_logicals, 2)); - ef_negate_i : RETURN (make_uniform_product_space (the_integers, 1)); - ef_add_i : RETURN (make_uniform_product_space (the_integers, 1)); - ef_subtract_i : RETURN (make_uniform_product_space (the_integers, 1)); - ef_multiply_i : RETURN (make_uniform_product_space (the_integers, 1)); - ef_divide_i : RETURN (make_uniform_product_space (the_integers, 1)); - ef_mod_i : RETURN (make_uniform_product_space (the_integers, 1)); - ef_exponentiate_i : RETURN (make_uniform_product_space (the_integers, 1)); - ef_eq_i : RETURN (make_uniform_product_space (the_logicals, 1)); - ef_ne_i : RETURN (make_uniform_product_space (the_logicals, 1)); - ef_gt_i : RETURN (make_uniform_product_space (the_logicals, 1)); - ef_lt_i : RETURN (make_uniform_product_space (the_logicals, 1)); - ef_ge_i : RETURN (make_uniform_product_space (the_logicals, 1)); - ef_le_i : RETURN (make_uniform_product_space (the_logicals, 1)); - ef_abs_i : RETURN (make_uniform_product_space (the_integers, 1)); - ef_if_i : RETURN (make_uniform_product_space (the_integers, 1)); - ef_negate_r : RETURN (make_uniform_product_space (the_reals, 1)); - ef_reciprocal_r : RETURN (make_uniform_product_space (the_reals, 1)); - ef_add_r : RETURN (make_uniform_product_space (the_reals, 1)); - ef_subtract_r : RETURN (make_uniform_product_space (the_reals, 1)); - ef_multiply_r : RETURN (make_uniform_product_space (the_reals, 1)); - ef_divide_r : RETURN (make_uniform_product_space (the_reals, 1)); - ef_mod_r : RETURN (make_uniform_product_space (the_reals, 1)); - ef_exponentiate_r : RETURN (make_uniform_product_space (the_reals, 1)); - ef_exponentiate_ri : RETURN (make_uniform_product_space (the_reals, 1)); - ef_eq_r : RETURN (make_uniform_product_space (the_logicals, 1)); - ef_ne_r : RETURN (make_uniform_product_space (the_logicals, 1)); - ef_gt_r : RETURN (make_uniform_product_space (the_logicals, 1)); - ef_lt_r : RETURN (make_uniform_product_space (the_logicals, 1)); - ef_ge_r : RETURN (make_uniform_product_space (the_logicals, 1)); - ef_le_r : RETURN (make_uniform_product_space (the_logicals, 1)); - ef_abs_r : RETURN (make_uniform_product_space (the_nonnegative_reals, 1)); - ef_acos_r : RETURN (make_uniform_product_space (the_zero_pi_interval, 1)); - ef_asin_r : RETURN (make_uniform_product_space (the_neghalfpi_halfpi_interval, 1)); - ef_atan2_r : RETURN (make_uniform_product_space (the_negpi_pi_interval, 1)); - ef_cos_r : RETURN (make_uniform_product_space (the_neg1_one_interval, 1)); - ef_exp_r : RETURN (make_uniform_product_space (the_nonnegative_reals, 1)); - ef_ln_r : RETURN (make_uniform_product_space (the_reals, 1)); - ef_log2_r : RETURN (make_uniform_product_space (the_reals, 1)); - ef_log10_r : RETURN (make_uniform_product_space (the_reals, 1)); - ef_sin_r : RETURN (make_uniform_product_space (the_neg1_one_interval, 1)); - ef_sqrt_r : RETURN (make_uniform_product_space (the_nonnegative_reals, 1)); - ef_tan_r : RETURN (make_uniform_product_space (the_reals, 1)); - ef_if_r : RETURN (make_uniform_product_space (the_reals, 1)); - ef_negate_c : RETURN (make_uniform_product_space (the_complex_numbers, 1)); - ef_reciprocal_c : RETURN (make_uniform_product_space (the_complex_numbers, 1)); - ef_add_c : RETURN (make_uniform_product_space (the_complex_numbers, 1)); - ef_subtract_c : RETURN (make_uniform_product_space (the_complex_numbers, 1)); - ef_multiply_c : RETURN (make_uniform_product_space (the_complex_numbers, 1)); - ef_divide_c : RETURN (make_uniform_product_space (the_complex_numbers, 1)); - ef_exponentiate_c : RETURN (make_uniform_product_space (the_complex_numbers, 1)); - ef_exponentiate_ci : RETURN (make_uniform_product_space (the_complex_numbers, 1)); - ef_eq_c : RETURN (make_uniform_product_space (the_logicals, 1)); - ef_ne_c : RETURN (make_uniform_product_space (the_logicals, 1)); - ef_conjugate_c : RETURN (make_uniform_product_space (the_complex_numbers, 1)); - ef_abs_c : RETURN (make_uniform_product_space (the_nonnegative_reals, 1)); - ef_arg_c : RETURN (make_uniform_product_space (the_negpi_pi_interval, 1)); - ef_cos_c : RETURN (make_uniform_product_space (the_complex_numbers, 1)); - ef_exp_c : RETURN (make_uniform_product_space (the_complex_numbers, 1)); - ef_ln_c : RETURN (make_uniform_product_space (the_complex_numbers, 1)); - ef_sin_c : RETURN (make_uniform_product_space (the_complex_numbers, 1)); - ef_sqrt_c : RETURN (make_uniform_product_space (the_complex_numbers, 1)); - ef_tan_c : RETURN (make_uniform_product_space (the_complex_numbers, 1)); - ef_if_c : RETURN (make_uniform_product_space (the_complex_numbers, 1)); - ef_subscript_s : RETURN (make_uniform_product_space (the_strings, 1)); - ef_eq_s : RETURN (make_uniform_product_space (the_logicals, 1)); - ef_ne_s : RETURN (make_uniform_product_space (the_logicals, 1)); - ef_gt_s : RETURN (make_uniform_product_space (the_logicals, 1)); - ef_lt_s : RETURN (make_uniform_product_space (the_logicals, 1)); - ef_ge_s : RETURN (make_uniform_product_space (the_logicals, 1)); - ef_le_s : RETURN (make_uniform_product_space (the_logicals, 1)); - ef_subsequence_s : RETURN (make_uniform_product_space (the_strings, 1)); - ef_concat_s : RETURN (make_uniform_product_space (the_strings, 1)); - ef_size_s : RETURN (make_uniform_product_space (the_integers, 1)); - ef_format : RETURN (make_uniform_product_space (the_strings, 1)); - ef_value : RETURN (make_uniform_product_space (the_reals, 1)); - ef_like : RETURN (make_uniform_product_space (the_booleans, 1)); - ef_if_s : RETURN (make_uniform_product_space (the_strings, 1)); - ef_subscript_b : RETURN (make_uniform_product_space (the_binarys, 1)); - ef_eq_b : RETURN (make_uniform_product_space (the_logicals, 1)); - ef_ne_b : RETURN (make_uniform_product_space (the_logicals, 1)); - ef_gt_b : RETURN (make_uniform_product_space (the_logicals, 1)); - ef_lt_b : RETURN (make_uniform_product_space (the_logicals, 1)); - ef_ge_b : RETURN (make_uniform_product_space (the_logicals, 1)); - ef_le_b : RETURN (make_uniform_product_space (the_logicals, 1)); - ef_subsequence_b : RETURN (make_uniform_product_space (the_binarys, 1)); - ef_concat_b : RETURN (make_uniform_product_space (the_binarys, 1)); - ef_size_b : RETURN (make_uniform_product_space (the_integers, 1)); - ef_if_b : RETURN (make_uniform_product_space (the_binarys, 1)); - ef_subscript_t : RETURN (make_uniform_product_space (the_generics, 1)); - ef_eq_t : RETURN (make_uniform_product_space (the_logicals, 1)); - ef_ne_t : RETURN (make_uniform_product_space (the_logicals, 1)); - ef_concat_t : RETURN (make_uniform_product_space (the_tuples, 1)); - ef_size_t : RETURN (make_uniform_product_space (the_integers, 1)); - ef_entuple : RETURN (make_uniform_product_space (the_tuples, 1)); - ef_detuple : RETURN (the_tuples); - ef_insert : RETURN (make_uniform_product_space (the_tuples, 1)); - ef_remove : RETURN (make_uniform_product_space (the_tuples, 1)); - ef_if_t : RETURN (make_uniform_product_space (the_tuples, 1)); - ef_sum_it : RETURN (make_uniform_product_space (the_integers, 1)); - ef_product_it : RETURN (make_uniform_product_space (the_integers, 1)); - ef_add_it : RETURN (make_uniform_product_space (the_integer_tuples, 1)); - ef_subtract_it : RETURN (make_uniform_product_space (the_integer_tuples, 1)); - ef_scalar_mult_it : RETURN (make_uniform_product_space (the_integer_tuples, 1)); - ef_dot_prod_it : RETURN (make_uniform_product_space (the_integers, 1)); - ef_sum_rt : RETURN (make_uniform_product_space (the_reals, 1)); - ef_product_rt : RETURN (make_uniform_product_space (the_reals, 1)); - ef_add_rt : RETURN (make_uniform_product_space (the_real_tuples, 1)); - ef_subtract_rt : RETURN (make_uniform_product_space (the_real_tuples, 1)); - ef_scalar_mult_rt : RETURN (make_uniform_product_space (the_real_tuples, 1)); - ef_dot_prod_rt : RETURN (make_uniform_product_space (the_reals, 1)); - ef_norm_rt : RETURN (make_uniform_product_space (the_reals, 1)); - ef_sum_ct : RETURN (make_uniform_product_space (the_complex_numbers, 1)); - ef_product_ct : RETURN (make_uniform_product_space (the_complex_numbers, 1)); - ef_add_ct : RETURN (make_uniform_product_space (the_complex_tuples, 1)); - ef_subtract_ct : RETURN (make_uniform_product_space (the_complex_tuples, 1)); - ef_scalar_mult_ct : RETURN (make_uniform_product_space (the_complex_tuples, 1)); - ef_dot_prod_ct : RETURN (make_uniform_product_space (the_complex_numbers, 1)); - ef_norm_ct : RETURN (make_uniform_product_space (the_nonnegative_reals, 1)); - ef_if : RETURN (make_uniform_product_space (the_generics, 1)); - ef_ensemble : RETURN (make_uniform_product_space (the_maths_spaces, 1)); - ef_member_of : RETURN (make_uniform_product_space (the_logicals, 1)); - OTHERWISE : RETURN (?); - END_CASE; -END_FUNCTION; -- derive_elementary_function_range - -(* Implicit interfaced from: mathematical_functions_schema *) -FUNCTION function_is_1d_array(func : maths_function) : BOOLEAN; - LOCAL - temp : maths_space; - END_LOCAL; - IF NOT EXISTS (func) THEN RETURN (FALSE); END_IF; - IF space_dimension (func.domain) <> 1 THEN RETURN (FALSE); END_IF; - temp := factor1 (func.domain); - IF (schema_prefix + 'PRODUCT_SPACE') IN TYPEOF (temp) THEN - IF space_dimension (temp) <> 1 THEN RETURN (FALSE); END_IF; - temp := factor1 (temp); - END_IF; - IF (schema_prefix + 'FINITE_INTEGER_INTERVAL') IN TYPEOF (temp) THEN - RETURN (TRUE); - END_IF; - RETURN (FALSE); -END_FUNCTION; -- function_is_1d_array - -(* Implicit interfaced from: mathematical_functions_schema *) -FUNCTION function_is_1d_table(func : maths_function) : BOOLEAN; - LOCAL - temp : maths_space; - itvl : finite_integer_interval; - END_LOCAL; - IF NOT EXISTS (func) THEN RETURN (FALSE); END_IF; - IF space_dimension (func.domain) <> 1 THEN RETURN (FALSE); END_IF; - temp := factor1 (func.domain); - IF (schema_prefix + 'PRODUCT_SPACE') IN TYPEOF (temp) THEN - IF space_dimension (temp) <> 1 THEN RETURN (FALSE); END_IF; - temp := factor1 (temp); - END_IF; - IF (schema_prefix + 'FINITE_INTEGER_INTERVAL') IN TYPEOF (temp) THEN - itvl := temp; - RETURN (bool((itvl.min = 0) OR (itvl.min = 1))); - END_IF; - RETURN (FALSE); -END_FUNCTION; -- function_is_1d_table - -(* Implicit interfaced from: mathematical_functions_schema *) -FUNCTION check_sparse_index_domain(idxdom : tuple_space; - base : zero_or_one; - shape : LIST [1:?] OF positive_integer; - order : ordering_type) : BOOLEAN; - LOCAL - mthspc : maths_space; - interval : finite_integer_interval; - i : INTEGER; - END_LOCAL; - mthspc := factor1(idxdom); - -- A consequence of WR1 of basic_sparse_matrix is that here we need only - -- consider the case that mthspc is a finite integer interval and is the only - -- factor space of idxdom. - interval := mthspc; - IF order = by_rows THEN i := 1; ELSE i := 2; END_IF; - RETURN (bool((interval.min <= base) AND (interval.max >= base + shape[i]))); - -- The index function is evaluated at (base+shape[i]) when determining the - -- upper search bound for entries of the last row or column, respectively. -END_FUNCTION; -- check_sparse_index_domain; - -(* Implicit interfaced from: mathematical_functions_schema *) -FUNCTION check_sparse_index_to_loc(index_range, loc_domain : tuple_space) : BOOLEAN; - LOCAL - temp : maths_space; - idx_rng_itvl, loc_dmn_itvl : finite_integer_interval; - END_LOCAL; - temp := factor1 (index_range); - IF (schema_prefix + 'TUPLE_SPACE') IN TYPEOF (temp) THEN - temp := factor1 (temp); - END_IF; - IF NOT ((schema_prefix + 'FINITE_INTEGER_INTERVAL') IN TYPEOF (temp)) THEN - RETURN (FALSE); - END_IF; - idx_rng_itvl := temp; - temp := factor1 (loc_domain); - IF (schema_prefix + 'TUPLE_SPACE') IN TYPEOF (temp) THEN - temp := factor1 (temp); - END_IF; - IF NOT ((schema_prefix + 'FINITE_INTEGER_INTERVAL') IN TYPEOF (temp)) THEN - RETURN (FALSE); - END_IF; - loc_dmn_itvl := temp; - RETURN (bool((loc_dmn_itvl.min <= idx_rng_itvl.min) AND - (idx_rng_itvl.max <= loc_dmn_itvl.max+1))); -END_FUNCTION; -- check_sparse_index_to_loc - -(* Implicit interfaced from: mathematical_functions_schema *) -FUNCTION check_sparse_loc_range(locrng : tuple_space; - base : zero_or_one; - shape : LIST [1:?] OF positive_integer; - order : ordering_type) : BOOLEAN; - LOCAL - mthspc : maths_space; - interval : finite_integer_interval; - i : INTEGER; - END_LOCAL; - IF space_dimension(locrng) <> 1 THEN RETURN (FALSE); END_IF; - mthspc := factor1(locrng); - IF NOT ((schema_prefix + 'FINITE_INTEGER_INTERVAL') IN TYPEOF (mthspc)) THEN - RETURN (FALSE); - END_IF; - interval := mthspc; - IF order = by_rows THEN i := 2; ELSE i := 1; END_IF; - RETURN (bool((interval.min >= base) AND (interval.max <= base + shape[i] - 1))); -END_FUNCTION; -- check_sparse_loc_range; - -(* Implicit interfaced from: mathematical_functions_schema *) -FUNCTION extract_factors(tspace : tuple_space; - m, n : INTEGER) : tuple_space; - LOCAL - tsp : tuple_space := the_zero_tuple_space; - END_LOCAL; - REPEAT i := m TO n; - tsp := assoc_product_space (tsp, factor_space (tspace, i)); - END_REPEAT; - RETURN (tsp); -END_FUNCTION; -- extract_factors - -(* Implicit interfaced from: mathematical_functions_schema *) -FUNCTION make_elementary_function(func_id : elementary_function_enumerators) - : elementary_function; - RETURN (elementary_function (func_id) - || maths_function() - || generic_expression() - || generic_literal() - || simple_generic_expression() ); -END_FUNCTION; -- make_elementary_function - -(* Implicit interfaced from: mathematical_functions_schema *) -FUNCTION convert_to_operands(values : AGGREGATE OF maths_value) - : LIST OF generic_expression; - LOCAL - operands : LIST OF generic_expression := []; - loc : INTEGER := 0; - END_LOCAL; - IF NOT EXISTS (values) THEN RETURN (?); END_IF; - REPEAT i := LOINDEX (values) TO HIINDEX (values); - INSERT (operands, convert_to_operand (values[i]), loc); - loc := loc + 1; - END_REPEAT; - RETURN (operands); -END_FUNCTION; -- convert_to_operands - -(* Implicit interfaced from: mathematical_functions_schema *) -FUNCTION convert_to_operand(val : maths_value) : generic_expression; - LOCAL - types : SET OF STRING := stripped_typeof (val); - END_LOCAL; - -- Use intermediate variables of appropriate declared types to help the compilers. - IF 'GENERIC_EXPRESSION' IN types THEN RETURN (val); END_IF; - IF 'MATHS_ATOM' IN types THEN RETURN (convert_to_literal (val)); END_IF; - IF 'ATOM_BASED_VALUE' IN types THEN RETURN (make_atom_based_literal(val)); END_IF; - IF 'MATHS_TUPLE' IN types THEN RETURN (make_maths_tuple_literal(val)); END_IF; - -- Should be unreachable - RETURN (?); -END_FUNCTION; -- convert_to_operand - -(* Implicit interfaced from: mathematical_functions_schema *) -FUNCTION convert_to_literal(val : maths_atom) : generic_literal; - LOCAL - types : SET OF STRING := TYPEOF (val); - END_LOCAL; - IF 'INTEGER' IN types THEN RETURN (make_int_literal (val)); END_IF; - IF 'REAL' IN types THEN RETURN (make_real_literal (val)); END_IF; - IF 'BOOLEAN' IN types THEN RETURN (make_boolean_literal (val)); END_IF; - IF 'STRING' IN types THEN RETURN (make_string_literal (val)); END_IF; - IF 'LOGICAL' IN types THEN RETURN (make_logical_literal (val)); END_IF; - IF 'BINARY' IN types THEN RETURN (make_binary_literal (val)); END_IF; - IF (schema_prefix + 'MATHS_ENUM_ATOM') IN types THEN - RETURN (make_maths_enum_literal (val)); - END_IF; - -- Should be unreachable - RETURN (?); -END_FUNCTION; -- convert_to_literal - -(* Implicit interfaced from: mathematical_functions_schema *) -FUNCTION make_boolean_literal(lit_value : BOOLEAN) : boolean_literal; - RETURN (boolean_literal (lit_value) - || simple_boolean_expression() - || boolean_expression() - || expression() - || generic_expression() - || simple_generic_expression() - || generic_literal() ); -END_FUNCTION; -- make_boolean_literal - -(* Implicit interfaced from: mathematical_functions_schema *) -FUNCTION make_string_literal(lit_value : STRING) : string_literal; - RETURN (string_literal (lit_value) - || simple_string_expression() - || string_expression() - || expression() - || generic_expression() - || simple_generic_expression() - || generic_literal() ); -END_FUNCTION; -- make_string_literal - -(* Implicit interfaced from: mathematical_functions_schema *) -FUNCTION make_logical_literal(lit_value : LOGICAL) : logical_literal; - RETURN (logical_literal (lit_value) - || generic_literal() - || simple_generic_expression() - || generic_expression() ); -END_FUNCTION; -- make_logical_literal - -(* Implicit interfaced from: mathematical_functions_schema *) -FUNCTION make_binary_literal(lit_value : BINARY) : binary_literal; - RETURN (binary_literal (lit_value) - || generic_literal() - || simple_generic_expression() - || generic_expression() ); -END_FUNCTION; -- make_binary_literal - -(* Implicit interfaced from: mathematical_functions_schema *) -FUNCTION make_maths_enum_literal(lit_value : maths_enum_atom) : maths_enum_literal; - RETURN (maths_enum_literal (lit_value) - || generic_literal() - || simple_generic_expression() - || generic_expression() ); -END_FUNCTION; -- make_maths_enum_literal - -(* Implicit interfaced from: mathematical_functions_schema *) -FUNCTION make_atom_based_literal(lit_value : atom_based_value) : atom_based_literal; - RETURN (atom_based_literal (lit_value) - || generic_literal() - || simple_generic_expression() - || generic_expression() ); -END_FUNCTION; -- make_atom_based_literal - -(* Implicit interfaced from: mathematical_functions_schema *) -FUNCTION make_maths_tuple_literal(lit_value : LIST OF maths_value) - : maths_tuple_literal; - RETURN (maths_tuple_literal (lit_value) - || generic_literal() - || simple_generic_expression() - || generic_expression() ); -END_FUNCTION; -- make_maths_tuple_literal - -(* Implicit interfaced from: mathematical_functions_schema *) -FUNCTION function_applicability(func : maths_function_select; - arguments : LIST [1:?] OF maths_value) : BOOLEAN; - LOCAL - domain : tuple_space := convert_to_maths_function(func).domain; - domain_types : SET OF STRING := TYPEOF (domain); - narg : positive_integer := SIZEOF (arguments); - arg : generic_expression; - END_LOCAL; - IF (schema_prefix + 'PRODUCT_SPACE') IN domain_types THEN - IF space_dimension (domain) <> narg THEN RETURN (FALSE); END_IF; - ELSE - IF (schema_prefix + 'EXTENDED_TUPLE_SPACE') IN domain_types THEN - IF space_dimension (domain) > narg THEN RETURN (FALSE); END_IF; - ELSE - RETURN (FALSE); -- Should be unreachable - END_IF; - END_IF; - REPEAT i := 1 TO narg; - arg := convert_to_operand (arguments[i]); - IF NOT has_values_space (arg) THEN RETURN (FALSE); END_IF; - IF NOT compatible_spaces (factor_space (domain, i), values_space_of (arg)) THEN - RETURN (FALSE); - END_IF; - END_REPEAT; - RETURN (TRUE); -END_FUNCTION; -- function_applicability - -(* Implicit interfaced from: mathematical_functions_schema *) -FUNCTION make_complex_number_literal(rpart, ipart : REAL) : complex_number_literal; - RETURN (complex_number_literal (rpart, ipart) - || generic_literal() - || simple_generic_expression() - || generic_expression() ); -END_FUNCTION; -- make_complex_number_literal - -(* Implicit interfaced from: mathematical_functions_schema *) -FUNCTION make_function_application(afunction : maths_function_select; - arguments : LIST [1:?] OF maths_value) - : function_application; - RETURN (function_application (afunction, arguments) - || multiple_arity_generic_expression (convert_to_maths_function (afunction) + - convert_to_operands (arguments)) -- derived - || generic_expression() ); -END_FUNCTION; -- make_function_application - -(* Implicit interfaced from: mathematical_functions_schema *) -FUNCTION equal_maths_values(val1, val2 : maths_value) : LOGICAL; - FUNCTION mem_of_vs(val1, val2 : maths_value) : LOGICAL; - IF NOT has_values_space(val2) THEN RETURN (UNKNOWN); END_IF; - IF NOT member_of(val1,values_space_of(val2)) THEN RETURN (FALSE); END_IF; - RETURN (UNKNOWN); - END_FUNCTION; -- mem_of_vs - LOCAL - types1, types2 : SET OF STRING; - list1, list2 : LIST OF maths_value; - cum : LOGICAL := TRUE; - END_LOCAL; - IF NOT EXISTS (val1) OR NOT EXISTS (val2) THEN RETURN (FALSE); END_IF; - IF val1 = val2 THEN RETURN (TRUE); END_IF; - types1 := stripped_typeof (val1); - types2 := stripped_typeof (val2); - IF ('MATHS_ATOM' IN types1) OR ('COMPLEX_NUMBER_LITERAL' IN types1) THEN - IF 'MATHS_ATOM' IN types2 THEN RETURN (FALSE); END_IF; - IF 'COMPLEX_NUMBER_LITERAL' IN types2 THEN RETURN (FALSE); END_IF; - IF 'LIST' IN types2 THEN RETURN (FALSE); END_IF; - IF 'MATHS_SPACE' IN types2 THEN RETURN (FALSE); END_IF; - IF 'MATHS_FUNCTION' IN types2 THEN RETURN (FALSE); END_IF; - IF 'GENERIC_EXPRESSION' IN types2 THEN RETURN (mem_of_vs(val1,val2)); END_IF; - RETURN (UNKNOWN); - END_IF; - IF ('MATHS_ATOM' IN types2) OR ('COMPLEX_NUMBER_LITERAL' IN types2) THEN - RETURN (equal_maths_values(val2,val1)); - END_IF; - IF 'LIST' IN types1 THEN - IF 'LIST' IN types2 THEN - list1 := val1; - list2 := val2; - IF SIZEOF (list1) <> SIZEOF (list2) THEN RETURN (FALSE); END_IF; - REPEAT i := 1 TO SIZEOF (list1); - cum := cum AND equal_maths_values (list1[i], list2[i]); - IF cum = FALSE THEN RETURN (FALSE); END_IF; - END_REPEAT; - RETURN (cum); - END_IF; - IF 'MATHS_SPACE' IN types2 THEN RETURN (FALSE); END_IF; - IF 'MATHS_FUNCTION' IN types2 THEN RETURN (FALSE); END_IF; - IF 'GENERIC_EXPRESSION' IN types2 THEN RETURN (mem_of_vs(val1,val2)); END_IF; - RETURN (UNKNOWN); - END_IF; - IF 'LIST' IN types2 THEN RETURN (equal_maths_values(val2,val1)); END_IF; - IF 'MATHS_SPACE' IN types1 THEN - IF 'MATHS_SPACE' IN types2 THEN - RETURN (equal_maths_spaces(val1,val2)); - END_IF; - IF 'MATHS_FUNCTION' IN types2 THEN RETURN (FALSE); END_IF; - IF 'GENERIC_EXPRESSION' IN types2 THEN RETURN (mem_of_vs(val1,val2)); END_IF; - RETURN (UNKNOWN); - END_IF; - IF 'MATHS_SPACE' IN types2 THEN RETURN (equal_maths_values(val2,val1)); END_IF; - IF 'MATHS_FUNCTION' IN types1 THEN - IF 'MATHS_FUNCTION' IN types2 THEN - RETURN (equal_maths_functions(val1,val2)); - END_IF; - IF 'GENERIC_EXPRESSION' IN types2 THEN RETURN (mem_of_vs(val1,val2)); END_IF; - RETURN (UNKNOWN); - END_IF; - IF 'MATHS_FUNCTION' IN types2 THEN RETURN (equal_maths_values(val2,val1)); END_IF; - IF ('GENERIC_EXPRESSION' IN types1) AND ('GENERIC_EXPRESSION' IN types2) THEN - IF NOT has_values_space(val1) OR NOT has_values_space(val2) THEN - RETURN (UNKNOWN); - END_IF; - IF NOT compatible_spaces(values_space_of(val1),values_space_of(val2)) THEN - RETURN (FALSE); - END_IF; - END_IF; - RETURN (UNKNOWN); -END_FUNCTION; -- equal_maths_values - -(* Implicit interfaced from: mathematical_functions_schema *) -FUNCTION equal_maths_functions(fun1, fun2 : maths_function) : LOGICAL; - LOCAL - cum : LOGICAL; - END_LOCAL; - IF fun1 = fun2 THEN RETURN (TRUE); END_IF; - cum := equal_maths_spaces(fun1.domain,fun2.domain); - IF cum = FALSE THEN RETURN (FALSE); END_IF; - cum := cum AND equal_maths_spaces(fun1.range,fun2.range); - IF cum = FALSE THEN RETURN (FALSE); END_IF; - -- A lot of further analysis is possible, but not required. - RETURN (UNKNOWN); -END_FUNCTION; -- equal_maths_functions - -(* Implicit interfaced from: mathematical_functions_schema *) -FUNCTION substitute(expr : generic_expression; - vars : LIST [1:?] OF generic_variable; - vals : LIST [1:?] OF maths_value) : generic_expression; - LOCAL - types : SET OF STRING := stripped_typeof(expr); - opnds : LIST OF generic_expression; - op1, op2 : generic_expression; - qvars : LIST OF generic_variable; - srcdom : maths_space_or_function; - prpfun : LIST [1:?] OF maths_function; - finfun : maths_function_select; - END_LOCAL; - IF SIZEOF (vars) <> SIZEOF (vals) THEN RETURN (?); END_IF; - IF 'GENERIC_LITERAL' IN types THEN RETURN (expr); END_IF; - IF 'GENERIC_VARIABLE' IN types THEN - REPEAT i := 1 TO SIZEOF (vars); - IF expr :=: vars[i] THEN RETURN (vals[i]); END_IF; - END_REPEAT; - RETURN (expr); - END_IF; - IF 'QUANTIFIER_EXPRESSION' IN types THEN - qvars := expr\quantifier_expression.variables; - -- Variables subject to a quantifier do not participate in this kind of - -- substitution process. - REPEAT i := SIZEOF (vars) TO 1 BY -1; - IF vars[i] IN qvars THEN - REMOVE (vars, i); - REMOVE (vals, i); - END_IF; - END_REPEAT; - opnds := expr\multiple_arity_generic_expression.operands; - REPEAT i := 1 TO SIZEOF (opnds); - IF NOT (opnds[i] IN qvars) THEN - expr\multiple_arity_generic_expression.operands[i] := - substitute(opnds[i],vars,vals); - -- This technique will not work on subtypes of quantifier_expression - -- which derive their operands from other attributes! - END_IF; - END_REPEAT; - RETURN (expr); -- operands modified! - END_IF; - IF 'UNARY_GENERIC_EXPRESSION' IN types THEN - op1 := expr\unary_generic_expression.operand; - expr\unary_generic_expression.operand := substitute(op1, vars, vals); - -- This technique will not work on subtypes of unary_generic_expression - -- which derive their operands from other attributes! - END_IF; - IF 'BINARY_GENERIC_EXPRESSION' IN types THEN - op1 := expr\binary_generic_expression.operands[1]; - expr\binary_generic_expression.operands[1] := substitute(op1, vars, vals); - op2 := expr\binary_generic_expression.operands[2]; - expr\binary_generic_expression.operands[2] := substitute(op2, vars, vals); - -- This technique will not work on subtypes of binary_generic_expression - -- which derive their operands from other attributes! - END_IF; - IF 'PARALLEL_COMPOSED_FUNCTION' IN types THEN - -- Subtype of multiple_arity_generic_expression which derives its operands. - srcdom := expr\parallel_composed_function.source_of_domain; - prpfun := expr\parallel_composed_function.prep_functions; - finfun := expr\parallel_composed_function.final_function; - srcdom := substitute(srcdom,vars,vals); - REPEAT i := 1 TO SIZEOF (prpfun); - prpfun[i] := substitute(prpfun[i],vars,vals); - END_REPEAT; - IF 'MATHS_FUNCTION' IN stripped_typeof(finfun) THEN - finfun := substitute(finfun,vars,vals); - END_IF; - RETURN (make_parallel_composed_function(srcdom,prpfun,finfun)); - END_IF; - IF 'MULTIPLE_ARITY_GENERIC_EXPRESSION' IN types THEN - opnds := expr\multiple_arity_generic_expression.operands; - REPEAT i := 1 TO SIZEOF (opnds); - expr\multiple_arity_generic_expression.operands[i] := - substitute(opnds[i],vars,vals); - -- This technique will not work on subtypes of multiple_arity_generic_ - -- expression which derive their operands from other attributes! - END_REPEAT; - END_IF; - RETURN (expr); -END_FUNCTION; -- substitute - -(* Implicit interfaced from: mathematical_functions_schema *) -FUNCTION make_parallel_composed_function(srcdom : maths_space_or_function; - prepfuncs : LIST [2:?] OF maths_function; - finfunc : maths_function_select) - : parallel_composed_function; - RETURN (parallel_composed_function (srcdom, prepfuncs, finfunc) - || maths_function() - || generic_expression() - || multiple_arity_generic_expression (convert_to_operands_prcmfn ( - srcdom, prepfuncs, finfunc)) ); -- derived -END_FUNCTION; -- make_parallel_composed_function - -(* Implicit interfaced from: mathematical_functions_schema *) -FUNCTION compatible_es_values(esval1, esval2 : elementary_space_enumerators) : BOOLEAN; - LOCAL - esval1_is_numeric, esval2_is_numeric : LOGICAL; - END_LOCAL; - IF (esval1 = esval2) OR (esval1 = es_generics) OR (esval2 = es_generics) THEN - RETURN (TRUE); - END_IF; - esval1_is_numeric := (esval1 >= es_numbers) AND (esval1 <= es_integers); - esval2_is_numeric := (esval2 >= es_numbers) AND (esval2 <= es_integers); - IF (esval1_is_numeric AND (esval2 = es_numbers)) OR - (esval2_is_numeric AND (esval1 = es_numbers)) THEN - RETURN (TRUE); - END_IF; - IF esval1_is_numeric XOR esval2_is_numeric THEN - RETURN (FALSE); - END_IF; - IF ((esval1 = es_logicals) AND (esval2 = es_booleans)) OR - ((esval1 = es_booleans) AND (esval2 = es_logicals)) THEN - RETURN (TRUE); - END_IF; - -- All other cases are incompatible - RETURN (FALSE); -END_FUNCTION; -- compatible_es_values - -(* Implicit interfaced from: mathematical_functions_schema *) -FUNCTION compatible_intervals(sp1, sp2 : maths_space) : BOOLEAN; - LOCAL - amin, amax : REAL; - END_LOCAL; - IF min_exists(sp1) AND max_exists(sp2) THEN - amin := real_min(sp1); amax := real_max(sp2); - IF amin > amax THEN RETURN (FALSE); END_IF; - IF amin = amax THEN - RETURN (min_included(sp1) AND max_included(sp2)); - END_IF; - END_IF; - IF min_exists(sp2) AND max_exists(sp1) THEN - amin := real_min(sp2); amax := real_max(sp1); - IF amin > amax THEN RETURN (FALSE); END_IF; - IF amin = amax THEN - RETURN (min_included(sp2) AND max_included(sp1)); - END_IF; - END_IF; - RETURN (TRUE); -END_FUNCTION; -- compatible_intervals - -(* Implicit interfaced from: mathematical_functions_schema *) -FUNCTION compatible_complex_number_regions(sp1, sp2 : maths_space) : BOOLEAN; - LOCAL - typenames : SET OF string := stripped_typeof (sp1); - crgn1, crgn2 : cartesian_complex_number_region; - prgn1, prgn2, prgn1c2, prgn2c1 : polar_complex_number_region; - sp1_is_crgn, sp2_is_crgn : BOOLEAN; - END_LOCAL; - IF 'CARTESIAN_COMPLEX_NUMBER_REGION' IN typenames THEN - sp1_is_crgn := TRUE; - crgn1 := sp1; - ELSE - IF 'POLAR_COMPLEX_NUMBER_REGION' IN typenames THEN - sp1_is_crgn := FALSE; - prgn1 := sp1; - ELSE - -- Improper usage: Default response is to assume compatibility. - RETURN (TRUE); - END_IF; - END_IF; - typenames := stripped_typeof (sp2); - IF 'CARTESIAN_COMPLEX_NUMBER_REGION' IN typenames THEN - sp2_is_crgn := TRUE; - crgn2 := sp2; - ELSE - IF 'POLAR_COMPLEX_NUMBER_REGION' IN typenames THEN - sp2_is_crgn := FALSE; - prgn2 := sp2; - ELSE - -- Improper usage: Default response is to assume compatibility. - RETURN (TRUE); - END_IF; - END_IF; - IF sp1_is_crgn AND sp2_is_crgn THEN - -- two cartesian regions - RETURN (compatible_intervals(crgn1.real_constraint, crgn2.real_constraint) - AND compatible_intervals(crgn1.imag_constraint, crgn2.imag_constraint)); - END_IF; - IF NOT sp1_is_crgn AND NOT sp2_is_crgn AND - (prgn1.centre.real_part = prgn2.centre.real_part) AND - (prgn1.centre.imag_part = prgn2.centre.imag_part) THEN - -- two polar regions with common centre - IF NOT compatible_intervals(prgn1.distance_constraint, - prgn2.distance_constraint) THEN - RETURN (FALSE); - END_IF; - IF compatible_intervals(prgn1.direction_constraint, - prgn2.direction_constraint) THEN - RETURN (TRUE); - END_IF; - -- Deal with direction ambiguity by 2 pi. - IF (prgn1.direction_constraint.max > PI) AND (prgn2.direction_constraint.max < PI) - THEN - RETURN (compatible_intervals(prgn2.direction_constraint, - make_finite_real_interval(-PI,open,prgn1.direction_constraint.max-2.0*PI, - prgn1.direction_constraint.max_closure))); - END_IF; - IF (prgn2.direction_constraint.max > PI) AND (prgn1.direction_constraint.max < PI) - THEN - RETURN (compatible_intervals(prgn1.direction_constraint, - make_finite_real_interval(-PI,open,prgn2.direction_constraint.max-2.0*PI, - prgn2.direction_constraint.max_closure))); - END_IF; - RETURN (FALSE); - END_IF; - -- Make do with imperfect tests for remaining cases. - IF sp1_is_crgn AND NOT sp2_is_crgn THEN - crgn2 := enclose_pregion_in_cregion(prgn2); - prgn1 := enclose_cregion_in_pregion(crgn1,prgn2.centre); - RETURN (compatible_complex_number_regions(crgn1,crgn2) - AND compatible_complex_number_regions(prgn1,prgn2)); - END_IF; - IF NOT sp1_is_crgn AND sp2_is_crgn THEN - crgn1 := enclose_pregion_in_cregion(prgn1); - prgn2 := enclose_cregion_in_pregion(crgn2,prgn1.centre); - RETURN (compatible_complex_number_regions(crgn1,crgn2) - AND compatible_complex_number_regions(prgn1,prgn2)); - END_IF; - -- Two polar regions with different centres - prgn1c2 := enclose_pregion_in_pregion(prgn1,prgn2.centre); - prgn2c1 := enclose_pregion_in_pregion(prgn2,prgn1.centre); - RETURN (compatible_complex_number_regions(prgn1,prgn2c1) - AND compatible_complex_number_regions(prgn1c2,prgn2)); -END_FUNCTION; -- compatible_complex_number_regions - -(* Implicit interfaced from: topology_schema *) - 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 := ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.POLY_LOOP' IN TYPEOF(l[1])); - REPEAT i := 2 TO SIZEOF(l); - IF(('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.POLY_LOOP' IN TYPEOF(l[i])) <> poly_loop_type) - THEN - RETURN(TRUE); - END_IF; - END_REPEAT; - RETURN(FALSE); - END_FUNCTION; - -(* Implicit interfaced from: topology_schema *) - FUNCTION list_to_set(l : LIST [0:?] OF GENERIC:T) : SET 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; - -(* Implicit interfaced from: topology_schema *) - 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; - -(* Implicit interfaced from: topology_schema *) - FUNCTION boolean_choose (b : boolean; - choice1, choice2 : generic : item) : generic : item; - - IF b THEN - RETURN (choice1); - ELSE - RETURN (choice2); - END_IF; - END_FUNCTION; - -(* Implicit interfaced from: topology_schema *) - 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; -(* REFERENCE FROM (assembly_feature_relationship_schema); *) -FUNCTION using_representation_with_mapping (item : representation_item) - : SET OF representation; -LOCAL - results: SET OF representation := []; - local_results : SET OF representation := []; - local_representation_map : SET OF representation_map := []; - intermediate_items : SET OF representation_item := []; - i : INTEGER; - j : INTEGER; -END_LOCAL; --- find the representations in which the item is used --- and which is referenced from the representation_map - local_results := QUERY (z <* using_representations (item)| - SIZEOF (USEDIN (z, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.REPRESENTATION_MAP.' + - 'MAPPED_REPRESENTATION')) > 0 ); - IF (SIZEOF (local_results) = 0) THEN RETURN ([]); - ELSE --- find the set of representation_map in which the local_results are used - REPEAT i := 1 TO HIINDEX(local_results); - local_representation_map := local_representation_map + - bag_to_set (USEDIN (local_results[i], - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.REPRESENTATION_MAP.MAPPED_REPRESENTATION')); - END_REPEAT; --- find the set of mapped_item - REPEAT i := 1 TO HIINDEX(local_representation_map); - intermediate_items := intermediate_items + - bag_to_set (USEDIN (local_representation_map[i], - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MAPPED_ITEM.MAPPING_SOURCE')); - END_REPEAT; --- repeat same manner - REPEAT j := 1 to HIINDEX(intermediate_items); - results := results + bag_to_set (using_representation_with_mapping - (intermediate_items[j])); - END_REPEAT; - END_IF; - RETURN (results); -END_FUNCTION; - -(* Implicit interfaced from: assembly_constraint_schema *) -FUNCTION assembly_leaf - (item: product_definition) : BOOLEAN; -LOCAL - local_relation: SET OF assembly_component_usage := []; - local_relation2: BAG OF assembly_component_usage := []; -END_LOCAL; --- extraction of related assembly_component_relationships -- -local_relation2 := local_relation2 + QUERY(pdr <* USEDIN (item, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PRODUCT_DEFINITION_RELATIONSHIP.RELATING_PRODUCT_DEFINITION') | - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.ASSEMBLY_COMPONENT_USAGE' IN - TYPEOF(pdr)); -local_relation := bag_to_set (local_relation2); -IF (SIZEOF (local_relation) = 0) THEN RETURN (TRUE); - ELSE RETURN (FALSE); -END_IF; -END_FUNCTION; - -(* Implicit interfaced from: product_property_representation_schema *) - FUNCTION get_directed_link ( nodes : LIST OF representation; - undirected_link : LIST OF chained_representation_link) : LIST OF representation_relationship; - LOCAL - directed_link : LIST OF representation_relationship := []; - END_LOCAL; - - IF (SIZEOF(nodes) <> SIZEOF(undirected_link) + 1) OR - (value_unique(nodes) = FALSE) - THEN - RETURN(?); - END_IF; - - REPEAT i := 1 to SIZEOF(undirected_link); - CASE TRUE OF - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.REPRESENTATION_CONTEXT' IN TYPEOF(undirected_link[i])) : - BEGIN - IF ((nodes[i]\representation.context_of_items :=: undirected_link[i]) AND - (nodes[i+1]\representation.context_of_items :=: undirected_link[i])) THEN - INSERT(directed_link, representation_relationship('','',nodes[i+1],nodes[i]), (i - 1)); - ELSE - RETURN(?); - END_IF; - END; - - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.REPRESENTATION_RELATIONSHIP' IN TYPEOF(undirected_link[i])) : - BEGIN - IF (((nodes[i] :=: undirected_link[i]\representation_relationship.rep_1) AND - (nodes[i+1] :=: undirected_link[i]\representation_relationship.rep_2)) OR - ((nodes[i] :=: undirected_link[i]\representation_relationship.rep_2) AND - (nodes[i+1] :=: undirected_link[i]\representation_relationship.rep_1))) THEN - INSERT(directed_link, representation_relationship('','',nodes[i+1],nodes[i]), (i - 1)); - ELSE - RETURN(?); - END_IF; - END; - - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MAPPED_ITEM' IN TYPEOF(undirected_link[i])) : - BEGIN - IF ((nodes[i] IN using_representations(undirected_link[i])) AND - (nodes[i+1] :=: undirected_link[i]\mapped_item.mapping_source\representation_map.mapped_representation)) THEN - INSERT(directed_link, representation_relationship('','',nodes[i+1],nodes[i]), (i - 1)); - ELSE - RETURN(?); - END_IF; - END; - - OTHERWISE : RETURN(?); - END_CASE; - END_REPEAT; - - IF (value_unique(directed_link) = FALSE) - THEN - RETURN(?); - END_IF; - - RETURN(directed_link); - END_FUNCTION; - -(* Implicit interfaced from: aic_draughting_annotation *) -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; - -(* Implicit interfaced from: aic_draughting_annotation *) -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; - -(* Implicit interfaced from: presentation_organization_schema *) - 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; - -(* Implicit interfaced from: measure_schema *) - 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, 2.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; - -(* Implicit interfaced from: measure_schema *) - FUNCTION valid_units (m : measure_with_unit):BOOLEAN; - IF 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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, 2.0, 0.0, 0.0, 0.0 ) THEN - RETURN (FALSE); - END_IF; - END_IF; - IF 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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; - -(* Implicit interfaced from: aic_manifold_subsurface *) -FUNCTION advanced_face_properties (testface : face) : BOOLEAN; -(* return TRUE if testface is of type advanced_face *) -IF 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SUBFACE' IN TYPEOF(testface)) THEN - RETURN(advanced_face_properties(testface\subface.parent_face)); - ELSE RETURN (FALSE); -END_IF; -END_FUNCTION; - -(* Implicit interfaced from: solid_shape_element_schema *) -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; - -(* Implicit interfaced from: solid_shape_element_schema *) -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; - -(* Implicit interfaced from: solid_shape_element_schema *) -FUNCTION check_continuous_edges (edges : LIST 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); -- all edges have now been successfully checked. - -END_FUNCTION; - -(* Implicit interfaced from: presentation_definition_schema *) - 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; - -(* Implicit interfaced from: aic_geometrically_bounded_2d_wireframe *) -FUNCTION valid_basis_curve_in_2d_wireframe - (crv: curve) : BOOLEAN; - -- check for valid basic curve types - IF SIZEOF (['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.POLYLINE', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.B_SPLINE_CURVE', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.ELLIPSE', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CIRCLE'] * - TYPEOF (crv)) = 1 - THEN RETURN (TRUE); - ELSE - -- if the curve is a trimmed_curve - IF (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.TRIMMED_CURVE') - IN TYPEOF (crv)) THEN - -- if a line, parabola, or hyperbola is being trimmed, then valid - IF SIZEOF (['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LINE', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PARABOLA', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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; - -(* Implicit interfaced from: sketch_schema *) -FUNCTION get_plane_of_implicit_geometry - (ps : positioned_sketch) : plane; - - LOCAL - sb : sketch_basis_select := ps.sketch_basis; - result : plane := ?; - END_LOCAL; - - -- determine plane of implicit geometry from the underlying entity data - -- type of its owning instance of positioned_sketch_representation. If - -- the sketch basis is of type planar_curve_select then the planarity - -- of the curve is guaranteed by a WHERE rule on the SELECT type of that - -- name. - - IF ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.FACE_SURFACE' IN TYPEOF(sb)) THEN - result := sb\face_surface.face_geometry; - ELSE - IF ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CURVE_BOUNDED_SURFACE' IN TYPEOF(sb)) THEN - result := sb\curve_bounded_surface.basis_surface; - ELSE - IF ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PLANAR_CURVE_SELECT' IN TYPEOF(sb)) THEN - BEGIN - - IF ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CONIC' IN TYPEOF(sb)) - THEN result := dummy_gri || surface() || - elementary_surface(sb\conic.position) || plane(); - END_IF; - - IF ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.TRIMMED_CURVE' IN TYPEOF(sb)) - THEN - BEGIN - result := get_plane_of_implicit_geometry( - dummy_gri || positioned_sketch(sb\trimmed_curve.basis_curve,[])); - END; - END_IF; - - IF ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PCURVE' IN TYPEOF(sb)) - THEN result := sb\pcurve.basis_surface; - END_IF; - - IF ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SURFACE_CURVE' IN TYPEOF(sb)) THEN - BEGIN - IF ((SIZEOF(sb\surface_curve.basis_surface) = 1) -- case of one basis surface - AND ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PLANE' IN TYPEOF(sb\surface_curve.basis_surface[1]))) - THEN result := sb\surface_curve.basis_surface[1]; - ELSE -- case of two basis surfaces - IF (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PLANE' IN TYPEOF(sb\surface_curve.basis_surface[1])) - AND ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PLANE' IN TYPEOF(sb\surface_curve.basis_surface[2]))) - THEN result := ?; - -- both basis surfaces are planes, their intersection curve - -- is a line, and no unique plane is defined - ELSE -- only one of the two basis surfaces is a plane - IF ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PLANE' IN TYPEOF(sb\surface_curve.basis_surface[1])) - THEN result := sb\surface_curve.basis_surface[1]; - ELSE result := sb\surface_curve.basis_surface[2]; - END_IF; - END_IF; - END_IF; - END; - END_IF; - END; - END_IF; - END_IF; - END_IF; - - RETURN(result); - -END_FUNCTION; - -(* Implicit interfaced from: sketch_schema *) -FUNCTION get_relative_direction_2points - (cp1, cp2 : cartesian_point) : direction; - - LOCAL - d1, d2, d3, magnitude : REAL; - result : direction := ?; - END_LOCAL; - - -- check that input points are three-dimensional - - IF ((cp1.dim <> 3) OR (cp2.dim <> 3)) THEN - RETURN(result); - ELSE - - -- construct components of vector and compute its magnitude - - BEGIN - d1 := cp2.coordinates[1] - cp1.coordinates[1]; - d2 := cp2.coordinates[2] - cp1.coordinates[2]; - d3 := cp2.coordinates[3] - cp1.coordinates[3]; - magnitude := sqrt(d1*d1 + d2*d2 + d3*d3); - IF (magnitude = 0) THEN - return(result); -- direction is indeterminate in this case - END_IF; - result := dummy_gri || direction([d1, d2, d3]); - END; - END_IF; - RETURN(result); - -END_FUNCTION; - -(* Implicit interfaced from: iso13584_generic_expressions_schema *) -FUNCTION is_acyclic (arg: generic_expression): BOOLEAN; -RETURN (acyclic (arg, [])); -END_FUNCTION ; -- is_acyclic - -(* Implicit interfaced from: iso13584_generic_expressions_schema *) -FUNCTION acyclic (arg1: generic_expression; - arg2: SET OF generic_expression): BOOLEAN; - -LOCAL - result: BOOLEAN := TRUE; -END_LOCAL; - -IF ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SIMPLE_GENERIC_EXPRESSION' - IN TYPEOF (arg1)) -THEN - RETURN (TRUE); -END_IF; - -IF arg1 IN arg2 -THEN - RETURN (FALSE); -END_IF; - -IF 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.UNARY_GENERIC_EXPRESSION' - IN TYPEOF (arg1) -THEN - RETURN - (acyclic(arg1\unary_generic_expression.operand,arg2+[arg1])); -END_IF; - -IF 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 -'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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; -- acyclic - -(* Implicit interfaced from: iso13584_expressions_schema *) -FUNCTION is_int_expr (arg: numeric_expression) : BOOLEAN; - -IF 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.INT_LITERAL' IN TYPEOF(arg) -THEN - RETURN (TRUE); -END_IF; -IF 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.REAL_LITERAL' IN TYPEOF(arg) -THEN - RETURN (FALSE); -END_IF; -IF 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.INT_NUMERIC_VARIABLE' IN TYPEOF(arg) -THEN - RETURN (TRUE); -END_IF; -IF 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.REAL_NUMERIC_VARIABLE' IN TYPEOF(arg) -THEN - RETURN (FALSE); -END_IF; -IF 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.ABS_FUNCTION' IN TYPEOF(arg) -THEN - RETURN (is_int_expr(arg\unary_numeric_expression.operand)); -END_IF; -IF 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MINUS_FUNCTION' IN TYPEOF(arg) -THEN - RETURN (is_int_expr(arg\unary_numeric_expression.operand)); -END_IF; -IF ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SIN_FUNCTION' IN TYPEOF(arg)) - OR ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.COS_FUNCTION' IN TYPEOF(arg)) - OR ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.TAN_FUNCTION' IN TYPEOF(arg)) - OR ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.ASIN_FUNCTION' IN TYPEOF(arg)) - OR ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.ACOS_FUNCTION' IN TYPEOF(arg)) - OR ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.ATAN_FUNCTION' IN TYPEOF(arg)) - OR ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.EXP_FUNCTION' IN TYPEOF(arg)) - OR ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LOG_FUNCTION' IN TYPEOF(arg)) - OR ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LOG2_FUNCTION' IN TYPEOF(arg)) - OR ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LOG10_FUNCTION' IN TYPEOF(arg)) - OR ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SQUARE_ROOT_FUNCTION' - IN TYPEOF(arg)) -THEN - RETURN (FALSE); -END_IF; -IF ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PLUS_EXPRESSION' IN TYPEOF(arg)) - OR ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MULT_EXPRESSION' - IN TYPEOF(arg)) - OR ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MAXIMUM_FUNCTION' - IN TYPEOF(arg)) - OR ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MINUS_EXPRESSION' IN TYPEOF(arg)) - OR ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.DIV_EXPRESSION' IN TYPEOF(arg)) - OR ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MOD_EXPRESSION' IN TYPEOF(arg)) -THEN - RETURN(TRUE); -END_IF; -IF 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SLASH_EXPRESSION' IN TYPEOF(arg) -THEN - RETURN (FALSE); -END_IF; -IF 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_FUNCTION' IN TYPEOF(arg) -THEN - RETURN (TRUE); -END_IF; -IF 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.VALUE_FUNCTION' IN TYPEOF(arg) -THEN - IF 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.INT_VALUE_FUNCTION' - IN TYPEOF(arg) - THEN - RETURN (TRUE); - ELSE - RETURN (FALSE); - END_IF; -END_IF; -IF 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.INTEGER_DEFINED_FUNCTION' - IN TYPEOF(arg) -THEN - RETURN(TRUE) ; -END_IF; -IF'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.REAL_DEFINED_FUNCTION' IN TYPEOF(arg) -THEN - RETURN(FALSE) ; -END_IF ; -IF 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.BOOLEAN_DEFINED_FUNCTION' - IN TYPEOF(arg) -THEN - RETURN(FALSE) ; -END_IF ; -IF 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.STRING_DEFINED_FUNCTION' - IN TYPEOF(arg) -THEN - RETURN (FALSE) ; -END_IF ; - -RETURN (FALSE); - -END_FUNCTION; -- is_int_expr - -(* Implicit interfaced from: iso13584_expressions_schema *) -FUNCTION is_SQL_mappable (arg: expression) : BOOLEAN; - -IF 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SIMPLE_NUMERIC_EXPRESSION' - IN TYPEOF (arg) -THEN - RETURN (TRUE); -END_IF; -IF 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SQL_MAPPABLE_DEFINED_FUNCTION' - IN TYPEOF (arg) -THEN - RETURN (TRUE); -END_IF; -IF 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MINUS_FUNCTION' IN TYPEOF(arg) -THEN - RETURN (is_SQL_mappable(arg\unary_numeric_expression.operand)); -END_IF; -IF ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.ABS_FUNCTION' IN TYPEOF(arg)) - OR ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SIN_FUNCTION' IN TYPEOF(arg)) - OR ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.COS_FUNCTION' IN TYPEOF(arg)) - OR ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.TAN_FUNCTION' IN TYPEOF(arg)) - OR ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.ASIN_FUNCTION' IN TYPEOF(arg)) - OR ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.ACOS_FUNCTION' IN TYPEOF(arg)) - OR ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.ATAN_FUNCTION' IN TYPEOF(arg)) - OR ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.EXP_FUNCTION' IN TYPEOF(arg)) - OR ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LOG_FUNCTION' IN TYPEOF(arg)) - OR ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LOG2_FUNCTION' IN TYPEOF(arg)) - OR ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LOG10_FUNCTION' IN TYPEOF(arg)) - OR ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SQUARE_ROOT_FUNCTION' - IN TYPEOF(arg)) - OR ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.VALUE_FUNCTION' IN TYPEOF(arg)) - OR ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_FUNCTION' - IN TYPEOF(arg)) -THEN - RETURN (FALSE); -END_IF; -IF ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PLUS_EXPRESSION' IN TYPEOF(arg)) - OR('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MULT_EXPRESSION' IN TYPEOF(arg)) - OR('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MAXIMUM_FUNCTION' - IN TYPEOF(arg)) - OR('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MINUS_EXPRESSION' IN TYPEOF(arg)) - OR ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.DIV_EXPRESSION' IN TYPEOF(arg)) - OR ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MOD_EXPRESSION' IN TYPEOF(arg)) - OR('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.POWER_EXPRESSION' - IN TYPEOF(arg)) -THEN - RETURN (FALSE); -END_IF; -IF 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SIMPLE_BOOLEAN_EXPRESSION' - IN TYPEOF (arg) -THEN - RETURN (TRUE); -END_IF; -IF 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.NOT_EXPRESSION' IN TYPEOF (arg) -THEN - RETURN (is_SQL_mappable (arg\UNARY_GENERIC_EXPRESSION.OPERAND)); -END_IF; -IF ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.ODD_FUNCTION'IN TYPEOF (arg)) - OR ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.XOR_EXPRESSION' - IN TYPEOF (arg)) -THEN - RETURN (FALSE); -END_IF; -IF ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.AND_EXPRESSION' IN TYPEOF (arg)) - OR ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.COMPARISON_EQUAL' IN TYPEOF (arg)) - OR ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.COMPARISON_GREATER' - IN TYPEOF (arg)) - OR ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.COMPARISON_GREATER_EQUAL' - IN TYPEOF (arg)) - OR ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.COMPARISON_LESS' - IN TYPEOF (arg)) - OR ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.COMPARISON_LESS_EQUAL' - IN TYPEOF (arg)) - OR ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.COMPARISON_NOT_EQUAL' - IN TYPEOF (arg)) - OR ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.NUMERIC_DEFINED_FUNCTION' - IN TYPEOF(arg)) - OR ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.BOOLEAN_DEFINED_FUNCTION' - IN TYPEOF(arg)) - OR ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.STRING_DEFINED_FUNCTION' - IN TYPEOF(arg)) -THEN - RETURN (FALSE) ; -END_IF; - -IF 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SIMPLE_STRING_EXPRESSION' - IN TYPEOF(ARG) -THEN - RETURN (TRUE); -END_IF; -IF ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.INDEX_EXPRESSION' IN TYPEOF(arg)) - OR ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SUBSTRING_EXPRESSION' - IN TYPEOF(arg)) - OR ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CONCAT_EXPRESSION' - IN TYPEOF(arg)) - OR ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.FORMAT_FUNCTION' - IN TYPEOF(arg)) -THEN - RETURN (FALSE); -END_IF; - - RETURN (FALSE); -END_FUNCTION; -- is_SQL_mappable - -(* Implicit interfaced from: sketch_schema *) -FUNCTION check_curve_planarity (checked_curve: curve) : BOOLEAN; - - LOCAL - crv : curve := checked_curve; - i,j : INTEGER; - result : BOOLEAN := FALSE; - END_LOCAL; - - -- Determine whether the curve lies on a plane, according to its type - - IF (SIZEOF(['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CONIC','AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LINE'] * - TYPEOF(crv)) > 0) - THEN result := TRUE; - ELSE - IF (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.TRIMMED_CURVE' IN TYPEOF(crv)) - AND check_curve_planarity(crv\trimmed_curve.basis_curve)) - THEN result := TRUE; - ELSE - IF (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PCURVE' IN TYPEOF(crv)) - AND ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PLANE' IN TYPEOF(crv\pcurve.basis_surface))) - THEN result := TRUE; - ELSE - IF ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SURFACE_CURVE' IN TYPEOF(crv)) - THEN - BEGIN - REPEAT j := 1 TO HIINDEX(crv\surface_curve.basis_surface); - IF ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PLANE' IN TYPEOF(crv\surface_curve.basis_surface[j])) - THEN result := TRUE; - END_IF; - END_REPEAT; - END; - END_IF; - END_IF; - END_IF; - END_IF; - - RETURN(result); - -END_FUNCTION; - -(* Implicit interfaced from: geometry_schema *) -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; - -(* Implicit interfaced from: geometry_schema *) -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('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PCURVE' IN - TYPEOF(c\composite_curve.segments[k].parent_curve))) AND - (NOT('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SURFACE_CURVE' IN - TYPEOF(c\composite_curve.segments[k].parent_curve))) AND - (NOT('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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; - -(* Implicit interfaced from: topology_schema *) - 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; - -(* Implicit interfaced from: topology_schema *) - FUNCTION topology_reversed (an_item : reversible_topology) - : reversible_topology; - - IF ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.EDGE' IN TYPEOF (an_item)) THEN - RETURN (edge_reversed (an_item)); - END_IF; - - IF ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PATH' IN TYPEOF (an_item)) THEN - RETURN (path_reversed (an_item)); - END_IF; - - IF ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.FACE_BOUND' IN TYPEOF (an_item)) THEN - RETURN (face_bound_reversed (an_item)); - END_IF; - - IF ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.FACE' IN TYPEOF (an_item)) THEN - RETURN (face_reversed (an_item)); - END_IF; - - IF ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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; - -(* Implicit interfaced from: topology_schema *) - FUNCTION edge_reversed (an_edge : edge) : oriented_edge; - LOCAL - the_reverse : oriented_edge; - END_LOCAL; - - IF ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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; - -(* Implicit interfaced from: topology_schema *) -FUNCTION path_reversed (a_path : path) : oriented_path; - LOCAL - the_reverse : oriented_path ; - END_LOCAL; - IF ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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; - -(* Implicit interfaced from: topology_schema *) - 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; - -(* Implicit interfaced from: topology_schema *) - FUNCTION face_bound_reversed (a_face_bound : face_bound) : face_bound; - LOCAL - the_reverse : face_bound ; - END_LOCAL; - IF ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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; - -(* Implicit interfaced from: topology_schema *) - FUNCTION face_reversed (a_face : face) : oriented_face; - LOCAL - the_reverse : oriented_face ; - END_LOCAL; - IF ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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; - -(* Implicit interfaced from: topology_schema *) - 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; - -(* Implicit interfaced from: topology_schema *) - FUNCTION shell_reversed (a_shell : shell) : shell; - IF ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.OPEN_SHELL' IN TYPEOF (a_shell) ) THEN - RETURN (open_shell_reversed (a_shell)); - ELSE - IF ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CLOSED_SHELL' IN TYPEOF (a_shell) ) THEN - RETURN (closed_shell_reversed (a_shell)); - ELSE - RETURN (?); - END_IF; - END_IF; - END_FUNCTION; - -(* Implicit interfaced from: topology_schema *) - FUNCTION open_shell_reversed ( a_shell : open_shell) : - oriented_open_shell; - LOCAL - the_reverse : oriented_open_shell; - END_LOCAL; - IF ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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; - -(* Implicit interfaced from: topology_schema *) - FUNCTION closed_shell_reversed (a_shell : closed_shell) : - oriented_closed_shell; - LOCAL - the_reverse : oriented_closed_shell; - END_LOCAL; - IF ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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; - -(* Implicit interfaced from: geometric_model_schema *) -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 ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.OPEN_SHELL' IN - TYPEOF(m.sbsm_boundary[j])) AND - (NOT ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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; - -(* Implicit interfaced from: parameterization_schema *) -FUNCTION make_numeric_set(start, delta : maths_number; - incs : positive_integer) - : SET [2:?] OF maths_number; - - LOCAL - i : INTEGER; - numeric_set : SET[2:?] OF maths_number := [start, (start + delta)]; - END_LOCAL; - - IF incs > 1 THEN REPEAT i := 2 TO incs; - numeric_set := numeric_set + (start + (i*delta)); - END_REPEAT; - END_IF; - RETURN(numeric_set); -END_FUNCTION; - -(* Implicit interfaced from: variational_representation_schema *) -FUNCTION invalidate_vrep_item(item : representation_item) - : BOOLEAN; - - LOCAL - reps : SET[1:?] OF representation := using_representations(item); - ri : SET[1:?] OF variational_representation_item; - iar : instance_attribute_reference; - i : INTEGER; - n : INTEGER := HIINDEX(reps); - END_LOCAL; - - IF ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.BOUND_VARIATIONAL_PARAMETER' IN TYPEOF(item)) - THEN - IF 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.INSTANCE_ATTRIBUTE_REFERENCE' - IN TYPEOF(item\generic_variable.interpretation\environment.semantics) - THEN - BEGIN - iar := item\generic_variable.interpretation\environment.semantics; - IF (reps <> using_representations(iar\instance_attribute_reference.owning_instance)) - THEN - RETURN(TRUE); - END_IF; - END; - ELSE RETURN(TRUE); -- parameter not attached to an instance attribute - END_IF; - END_IF; - - IF ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.UNBOUND_VARIATIONAL_PARAMETER' IN TYPEOF(item)) - THEN - BEGIN - REPEAT i := 1 TO n; - ri := QUERY(q <* reps[i]\representation.items | - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.FREE_FORM_CONSTRAINT' IN TYPEOF(q)); - IF SIZEOF(QUERY(r <* ri | - item IN (r\free_form_constraint.reference_elements + r\free_form_constraint.constrained_elements))) = 0 - THEN - RETURN(TRUE); - END_IF; - END_REPEAT; - END; - END_IF; - - IF ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.FIXED_INSTANCE_ATTRIBUTE_SET' - IN TYPEOF(item)) - THEN - REPEAT i := 1 TO SIZEOF(item\fixed_instance_attribute_set.fixed_attributes); ---next line is previous --- IF (reps <> using_representations(item\fixed_instance_attribute_set.fixed_attributes[i])) ---is this intent? - IF (reps <> using_representations(item\fixed_instance_attribute_set.fixed_attributes[i]\instance_attribute_reference.owning_instance)) - THEN - RETURN(TRUE); - END_IF; - END_REPEAT; - END_IF; - - IF ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.EXPLICIT_CONSTRAINT' IN TYPEOF(item)) - THEN - IF SIZEOF(QUERY(q <* - (item\explicit_constraint.reference_elements + item\explicit_constraint.constrained_elements) | - reps <> using_representations(q))) > 0 - THEN - RETURN(TRUE); - END_IF; - END_IF; - - IF ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.AUXILIARY_GEOMETRIC_REPRESENTATION_ITEM' IN TYPEOF(item)) - THEN - BEGIN - REPEAT i := 1 TO n; - ri := QUERY(q <* reps[i]\representation.items | - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.EXPLICIT_GEOMETRIC_CONSTRAINT' IN TYPEOF(q)); - IF SIZEOF(QUERY(r <* ri | - item IN r\explicit_geometric_constraint.reference_elements)) = 0 - THEN - RETURN(TRUE); - END_IF; - END_REPEAT; - END; - END_IF; - - RETURN(FALSE); -- no invalid cases have been found - -END_FUNCTION; - -(* Implicit interfaced from: assembly_feature_relationship_schema *) -FUNCTION using_shape_aspect_of_shape_representation - (item: shape_representation) : SET OF shape_aspect; -LOCAL - local_s_d_r: SET OF shape_definition_representation := []; - local_s_d_r2: BAG OF shape_definition_representation := []; - local_s_a: SET OF shape_aspect := []; - i : INTEGER; -END_LOCAL; --- find shape_definition_representations - local_s_d_r2 := local_s_d_r2 + QUERY(pdr <* USEDIN (item, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.USED_REPRESENTATION') | - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_DEFINITION_REPRESENTATION' IN - TYPEOF(pdr)); - local_s_d_r := bag_to_set (local_s_d_r2); --- find shape_aspects -REPEAT i := 1 TO HIINDEX (local_s_d_r); - IF ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT' IN TYPEOF - (local_s_d_r[i]\property_definition_representation.definition\property_definition.definition)) - THEN local_s_a := local_s_a + local_s_d_r[i]\property_definition_representation.definition\property_definition.definition; - END_IF; -END_REPEAT; -RETURN (local_s_a); -END_FUNCTION; - -(* Implicit interfaced from: assembly_feature_relationship_schema *) -FUNCTION find_representative_shape_representation_of_product_definition - (item:product_definition) : shape_representation; -LOCAL - local_s_r: SET OF shape_representation := []; -END_LOCAL; --- find representative_shape_representation of the product_definition - local_s_r := QUERY - ( z <* find_shape_representation_of_product_definition (item)| - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.REPRESENTATIVE_SHAPE_REPRESENTATION' IN TYPEOF(z)); - IF (SIZEOF (local_s_r) = 1) - THEN RETURN (local_s_r[1]); - ELSE RETURN(?); - END_IF; -END_FUNCTION; - -(* Implicit interfaced from: assembly_feature_relationship_schema *) -FUNCTION find_shape_representation_of_product_definition - (item:product_definition) : SET OF shape_representation; -LOCAL - local_p_d_s: SET OF product_definition_shape := []; - local_p_d_s2: BAG OF product_definition_shape := []; - local_s_d_r: SET OF shape_definition_representation := []; - local_s_d_r2: BAG OF shape_definition_representation := []; - local_s_r: SET OF shape_representation := []; - i : INTEGER; -END_LOCAL; --- find product_definition_shape representing the product_definiton - local_p_d_s2 := local_p_d_s2 + QUERY(pd <* USEDIN (item, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN - TYPEOF(pd)); - local_p_d_s := bag_to_set(local_p_d_s2); --- find shape_definition_representations refereing to the local_p_d_s - REPEAT i := 1 to HIINDEX (local_p_d_s); - local_s_d_r2 := local_s_d_r2 + QUERY(pdr <* USEDIN (local_p_d_s[i], - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_DEFINITION_REPRESENTATION' IN - TYPEOF(pdr)); - END_REPEAT; - local_s_d_r := bag_to_set (local_s_d_r2); - REPEAT i := 1 to HIINDEX (local_s_d_r); - IF('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION' - IN TYPEOF (local_s_d_r[i].used_representation)) THEN - local_s_r := local_s_r + local_s_d_r[i].used_representation; - END_IF; - END_REPEAT; - RETURN (local_s_r); -END_FUNCTION; - -(* Implicit interfaced from: assembly_feature_relationship_schema *) -FUNCTION using_product_definition_of_shape_aspect - (item:shape_aspect) : product_definition ; - IF ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PRODUCT_DEFINITION' IN TYPEOF - (item.of_shape.definition)) THEN - RETURN (item.of_shape.definition); - ELSE - RETURN (?); - END_IF; -END_FUNCTION; - -(* Implicit interfaced from: assembly_feature_relationship_schema *) -FUNCTION find_representative_shape_representation_of_shape_aspect - (item:shape_aspect) : shape_representation; -LOCAL - local_s_r: SET OF shape_representation := []; -END_LOCAL; --- find representative_shape_representation of the shape_aspect - local_s_r := QUERY ( z <* find_shape_representation_of_shape_aspect (item)| - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.REPRESENTATIVE_SHAPE_REPRESENTATION' IN TYPEOF(z)); - IF (SIZEOF (local_s_r) = 1) - THEN RETURN (local_s_r[1]); - ELSE RETURN(?); - END_IF; -END_FUNCTION; - -(* Implicit interfaced from: assembly_feature_relationship_schema *) -FUNCTION find_shape_representation_of_shape_aspect - (item:shape_aspect) : SET OF shape_representation; -LOCAL - local_p_d: SET OF property_definition:= []; - local_s_d_r: SET OF shape_definition_representation := []; - local_s_d_r2: BAG OF shape_definition_representation := []; - local_s_r: SET OF shape_representation := []; - i : INTEGER; -END_LOCAL; --- find property_definition representing the shape_aspect - local_p_d := bag_to_set (USEDIN (item, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION')); --- find shape_definition_representations refereing to the local_p_d - REPEAT i := 1 to HIINDEX (local_p_d); - local_s_d_r2 := local_s_d_r2 + QUERY(pdr <* USEDIN (local_p_d[i], - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_DEFINITION_REPRESENTATION' IN - TYPEOF(pdr)); - END_REPEAT; - local_s_d_r := bag_to_set (local_s_d_r2); - REPEAT i := 1 to HIINDEX (local_s_d_r); - IF('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION' - IN TYPEOF (local_s_d_r[i].used_representation)) THEN - local_s_r := local_s_r + local_s_d_r[i].used_representation; - END_IF; - END_REPEAT; - RETURN (local_s_r); -END_FUNCTION; - -(* Implicit interfaced from: assembly_feature_relationship_schema *) -FUNCTION find_assembly_root - (constituent: SET OF product_definition) : SET OF product_definition; -LOCAL - local_relation: SET OF assembly_component_usage := []; - local_relation2: BAG OF assembly_component_usage := []; - local_parent: SET OF product_definition := []; - root : SET OF product_definition; - i : INTEGER := 0; - j : INTEGER := 0; -END_LOCAL; - --- Is constituent root ? -- -IF ((SIZEOF (constituent) = 1) AND assembly_root (constituent[1])) - THEN RETURN ([constituent [1]]); --- ERROR constituent is vacant -- - ELSE IF (SIZEOF (constituent) = 0 ) THEN RETURN ([]); - --- extraction of related assembly_component_relationships -- - ELSE - REPEAT j:= 1 TO HIINDEX(constituent); - local_relation2 := local_relation2 + QUERY(pdr <* USEDIN (constituent[j], - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PRODUCT_DEFINITION_RELATIONSHIP.' - +'RELATED_PRODUCT_DEFINITION') | - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.ASSEMBLY_COMPONENT_USAGE' IN - TYPEOF(pdr)); - END_REPEAT; - local_relation := bag_to_set (local_relation2); - IF (SIZEOF(local_relation) = 0) THEN - IF (SIZEOF(constituent) = 1) THEN RETURN ([constituent[1]]); - ELSE RETURN ([]); - END_IF; - ELSE --- extraction of a set of parents -- - REPEAT i :=1 TO HIINDEX(local_relation); - REPEAT j := 1 TO HIINDEX(constituent); - IF (local_relation[i].relating_product_definition <> - constituent[j]) THEN - local_parent := local_parent + - local_relation[i].relating_product_definition; - END_IF; - END_REPEAT; - END_REPEAT; - IF ((SIZEOF (local_parent) = 1 ) AND - assembly_root (local_parent[1])) - THEN RETURN ([local_parent[1]]); - ELSE IF (SIZEOF (local_parent) = 0) THEN RETURN ([]); --- try again -- - ELSE - root := find_assembly_root(local_parent); - IF (SIZEOF (root) =1) THEN RETURN (root); - ELSE IF (SIZEOF (root) = 0) THEN RETURN ([]); - END_IF; - END_IF; - END_IF; - END_IF; - END_IF; - END_IF; -END_IF; -RETURN ([]); -END_FUNCTION; - -(* Implicit interfaced from: assembly_feature_relationship_schema *) -FUNCTION assembly_root - (item: product_definition) : BOOLEAN; --- extraction of related assembly_component_relationships -- -IF (SIZEOF(QUERY(pdr <* USEDIN (item, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PRODUCT_DEFINITION_RELATIONSHIP.' + - 'RELATED_PRODUCT_DEFINITION') | - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.ASSEMBLY_COMPONENT_USAGE' IN - TYPEOF(pdr))) - = 0) THEN RETURN(TRUE); -ELSE RETURN (FALSE); -END_IF; -END_FUNCTION; - -(* Implicit interfaced from: assembly_feature_relationship_schema *) -FUNCTION unique_in_product_definition - (item:representative_shape_representation) : BOOLEAN; -LOCAL - local_p_d: SET OF product_definition := []; - local_s_r: SET OF shape_representation := []; - i : INTEGER; - j : INTEGER; -END_LOCAL; --- find product_definitions represented by the input --- representative_shape_representation - local_p_d := using_product_definition_of_shape_representation (item); --- ERROR - IF (SIZEOF (local_p_d) <> 1) THEN RETURN (FALSE); - ELSE --- find shape_representation representing the product_definitions - REPEAT i := 1 to HIINDEX (local_p_d); - local_s_r := find_shape_representation_of_product_definition - (local_p_d[i]); - REPEAT j := 1 to HIINDEX (local_s_r); - IF (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.REPRESENTATIVE_SHAPE_REPRESENTATION' IN TYPEOF (local_s_r[j])) - AND (local_s_r[j] :<>: item)) THEN RETURN (FALSE); - END_IF; - END_REPEAT; - END_REPEAT; - END_IF; - RETURN (TRUE); -END_FUNCTION; - -(* Implicit interfaced from: assembly_feature_relationship_schema *) -FUNCTION unique_in_shape_aspect - (item:representative_shape_representation) : BOOLEAN; -LOCAL - local_s_a: SET OF shape_aspect := []; - local_s_r: SET OF shape_representation := []; - i : INTEGER; - j : INTEGER; -END_LOCAL; --- find shape_aspects represented by the input --- representative_shape_representation - local_s_a := using_shape_aspect_of_shape_representation (item); --- ERROR - IF (SIZEOF (local_s_a) <> 1) THEN RETURN (FALSE); - ELSE --- find shape_representation representing the shape_aspect - REPEAT i := 1 to HIINDEX (local_s_a); - local_s_r := find_shape_representation_of_shape_aspect - (local_s_a[i]); - REPEAT j := 1 to HIINDEX (local_s_r); - IF (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.REPRESENTATIVE_SHAPE_REPRESENTATION' IN TYPEOF (local_s_r[j])) - AND (local_s_r[j] :<>: item)) THEN RETURN (FALSE); - END_IF; - END_REPEAT; - END_REPEAT; - END_IF; - RETURN (TRUE); -END_FUNCTION; - -(* Implicit interfaced from: aic_edge_based_wireframe *) -FUNCTION valid_wireframe_edge_curve -( -crv : curve ) : BOOLEAN ; - IF SIZEOF ([ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LINE', 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CONIC', 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.B_SPLINE_CURVE', 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.POLYLINE' ] * TYPEOF (crv)) = 1 THEN - RETURN (TRUE); - ELSE - IF 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CURVE_REPLICA' IN TYPEOF (crv) THEN - RETURN (valid_wireframe_edge_curve(crv\curve_replica.parent_curve)); - ELSE - IF 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 ; - -(* Implicit interfaced from: aic_edge_based_wireframe *) -FUNCTION valid_wireframe_vertex_point -( -pnt : point ) : BOOLEAN ; - IF 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CARTESIAN_POINT' IN TYPEOF (pnt) THEN - RETURN (TRUE); - ELSE - IF 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 ; - -(* Implicit interfaced from: aic_non_manifold_surface *) -FUNCTION nmsf_surface_check (surf : surface) : BOOLEAN; - -(* This function varifies the validity of a surface in the - context of a non-manifold surface model. -*) - - (* elementary_surfaces are valid surface types - *) - IF 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.ELEMENTARY_SURFACE' IN TYPEOF(surf) THEN - RETURN(TRUE); - ELSE - - (* a swept_surface shall have a valid sweeping curve - *) - IF 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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; - -(* Implicit interfaced from: aic_non_manifold_surface *) -FUNCTION nmsf_curve_check (cv : representation_item) : BOOLEAN; - -(* This function varifies the validity of a curve in the context of a - non-manifold surface model. Representation_items are - valid input, however, they are supposed to be curves; otherwise - this function will return false. -*) - - (* complex subtypes of curve that are both bounded_curve and - oneof conic, curve_replica, line, or offset_curve_3d are not - valid - *) - IF SIZEOF (['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.BOUNDED_CURVE', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CONIC', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CURVE_REPLICA', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LINE', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.OFFSET_CURVE_3D'] * TYPEOF(cv)) > 1 - THEN RETURN(FALSE); - ELSE - - (* b_spline_curves shall not self-intersect - *) - IF (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 (['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CONIC', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LINE'] * TYPEOF (cv)) = 1 THEN - RETURN(TRUE); - ELSE - - (* a curve_replica shall reference a valid curve - *) - IF 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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; - -(* Implicit interfaced from: geometric_model_schema *) -FUNCTION acyclic_solid_replica - (rep : solid_replica; parent : solid_model) : BOOLEAN; -IF NOT (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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; - -(* Implicit interfaced from: presentation_definition_schema *) - 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 | - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 | - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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(['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.ANNOTATION_TEXT', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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; - -(* Implicit interfaced from: aic_geometrically_bounded_wireframe *) -FUNCTION valid_geometrically_bounded_wf_curve -( -crv : curve ) : BOOLEAN ; - IF SIZEOF ([ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.POLYLINE', 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.B_SPLINE_CURVE', 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.ELLIPSE', 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CIRCLE' ] * TYPEOF (crv)) = 1 THEN - RETURN (TRUE); - ELSE - IF 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.TRIMMED_CURVE' IN TYPEOF (crv) THEN - IF SIZEOF ([ 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LINE', 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PARABOLA', 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.OFFSET_CURVE_3D' IN TYPEOF (crv) THEN - RETURN (valid_geometrically_bounded_wf_curve(crv\offset_curve_3d.basis_curve)); - ELSE - IF 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CURVE_REPLICA' IN TYPEOF (crv) THEN - RETURN (valid_geometrically_bounded_wf_curve(crv\curve_replica.parent_curve)); - ELSE - IF 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 ; - -(* Implicit interfaced from: aic_geometrically_bounded_wireframe *) -FUNCTION valid_geometrically_bounded_wf_point -( -pnt : point ) : BOOLEAN ; - IF 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CARTESIAN_POINT' IN TYPEOF (pnt) THEN - RETURN (TRUE); - ELSE - IF 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.POINT_ON_CURVE' IN TYPEOF (pnt) THEN - RETURN (valid_geometrically_bounded_wf_curve(pnt\point_on_curve.basis_curve)); - ELSE - IF 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 ; - -(* Implicit interfaced from: parameterization_schema *) -FUNCTION validate_attribute_id(attid : attribute_identifier) : BOOLEAN; - - CONSTANT - letters : SET[52:52] OF STRING := - ['a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p', - 'q','r','s','t','u','v','w','x','y','z','A','B','C','D','E','F', - 'G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V', - 'W','X','Y','Z']; - numbers_etc : SET[15:15] OF STRING := - ['0','1','2','3','4','5','6','7','8','9','_','[',']','.','\']; - valid_chars : SET[67:67] OF STRING := letters + numbers_etc; - END_CONSTANT; - - LOCAL - id_length : INTEGER := LENGTH(attid); - id_valid : BOOLEAN := TRUE; - i : INTEGER; - END_LOCAL; - - -- check that indentifier starts with a letter - - IF NOT (attid[1] IN letters) THEN - id_valid := FALSE; - END_IF; - - -- check that no invalid characters occur subsequently - - REPEAT i := 2 TO id_length WHILE id_valid = TRUE; - IF NOT (attid[i] IN valid_chars) THEN - id_valid := FALSE; - END_IF; - END_REPEAT; - RETURN(id_valid); - -END_FUNCTION; - -(* Implicit interfaced from: kinematic_structure_schema *) -FUNCTION collect_joints - (items : SET[1:?] OF pair_representation_relationship) : SET OF kinematic_joint; -LOCAL - result : SET OF kinematic_joint := []; -END_LOCAL; - REPEAT i := 1 TO HIINDEX(items); - result := result + items[i].transformation_operator.joint; - END_REPEAT; - RETURN(result); -END_FUNCTION; -(* REFERENCE FROM (kinematic_topology_schema); *) -FUNCTION get_kinematic_joints_from_oriented_joints(ors : SET OF oriented_joint) : SET OF kinematic_joint; - LOCAL - result : SET OF kinematic_joint := []; - END_LOCAL; - IF SIZEOF(ors) > 0 THEN - REPEAT i := 1 TO HIINDEX(ors); - result := result + ors[i].edge_element; - END_REPEAT; - END_IF; - RETURN (result); -END_FUNCTION; -(* REFERENCE FROM (kinematic_topology_schema); *) -FUNCTION get_kinematic_joints_from_kinematic_loops(kls : SET OF kinematic_loop) : SET OF kinematic_joint; - LOCAL - result : SET OF oriented_joint := []; - END_LOCAL; - IF SIZEOF(kls) > 0 THEN - REPEAT i := 1 TO HIINDEX(kls); - result := result + kls[i].edge_list; - END_REPEAT; - END_IF; - RETURN (get_kinematic_joints_from_oriented_joints(result)); -END_FUNCTION; - -(* Implicit interfaced from: kinematic_structure_schema *) -FUNCTION sort_link_associations - (aprr : SET[1:?] OF pair_representation_relationship; one_not_two : boolean) : SET OF kinematic_link_representation; -LOCAL - result : SET OF kinematic_link_representation := []; -END_LOCAL; - IF one_not_two THEN - REPEAT i := 1 TO HIINDEX(aprr); - result := result + aprr[i].rep_1; - END_REPEAT; - ELSE - REPEAT i := 1 TO HIINDEX(aprr); - result := result + aprr[i].rep_2; - END_REPEAT; - END_IF; - RETURN(result); -END_FUNCTION; - -(* Implicit interfaced from: kinematic_structure_schema *) -FUNCTION plane_angle_for_pair_in_radian - (pair : kinematic_pair; - angle : plane_angle_measure) : plane_angle_measure; - LOCAL - converted_angle : plane_angle_measure := angle; - link_rep : kinematic_link_representation - := representation_of_link (pair.joint.edge_start); - link_cntxt : representation_context; - pa_units : SET OF unit := []; - pau : unit; - END_LOCAL; - - link_cntxt := link_rep\representation.context_of_items; - - IF NOT ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.GLOBAL_UNIT_ASSIGNED_CONTEXT' - IN TYPEOF (link_cntxt)) THEN - RETURN (?); - END_IF; - - pa_units := QUERY (unit <* link_cntxt\global_unit_assigned_context.units | - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PLANE_ANGLE_UNIT' IN TYPEOF (unit)); - - IF SIZEOF (pa_units) <> 1 THEN - RETURN (?); - END_IF; - - pau := pa_units[1]; - - IF (NOT ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SI_UNIT' IN TYPEOF (pau)) AND - NOT ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CONVERSION_BASED_UNIT' IN TYPEOF (pau))) THEN - RETURN (?); - END_IF; - - REPEAT WHILE ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CONVERSION_BASED_UNIT' IN TYPEOF (pau)); - converted_angle := converted_angle * - pau\conversion_based_unit.conversion_factor. - value_component; - pau := pau\conversion_based_unit.conversion_factor.unit_component; - - IF ((NOT ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SI_UNIT' IN TYPEOF (pau)) AND - NOT ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CONVERSION_BASED_UNIT' IN TYPEOF (pau))) OR - (NOT ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PLANE_ANGLE_UNIT' IN TYPEOF (pau)))) THEN - RETURN (?); - END_IF; - END_REPEAT; - - IF (pau\si_unit.name <> si_unit_name.radian) THEN - RETURN (?); - END_IF; - - CASE pau\si_unit.prefix OF - si_prefix.exa : RETURN (1.E18 * converted_angle); - si_prefix.peta : RETURN (1.E15 * converted_angle); - si_prefix.tera : RETURN (1.E12 * converted_angle); - si_prefix.giga : RETURN (1.E9 * converted_angle); - si_prefix.mega : RETURN (1.E6 * converted_angle); - si_prefix.kilo : RETURN (1.E3 * converted_angle); - si_prefix.hecto : RETURN (1.E2 * converted_angle); - si_prefix.deca : RETURN (1.E1 * converted_angle); - si_prefix.deci : RETURN (1.E-1 * converted_angle); - si_prefix.centi : RETURN (1.E-2 * converted_angle); - si_prefix.milli : RETURN (1.E-3 * converted_angle); - si_prefix.micro : RETURN (1.E-6 * converted_angle); - si_prefix.nano : RETURN (1.E-9 * converted_angle); - si_prefix.pico : RETURN (1.E-12 * converted_angle); - si_prefix.femto : RETURN (1.E-15 * converted_angle); - si_prefix.atto : RETURN (1.E-18 * converted_angle); - OTHERWISE : RETURN (converted_angle); - END_CASE; - -END_FUNCTION; - -(* Implicit interfaced from: kinematic_structure_schema *) -FUNCTION representation_of_link (link : kinematic_link) - : kinematic_link_representation; -(* - LOCAL - link_rep_rel : BAG OF kinematic_link_representation_relation; - END_LOCAL; - - link_rep_rel := USEDIN (link, 'KINEMATIC_STRUCTURE_SCHEMA.'+ - 'KINEMATIC_LINK_REPRESENTATION_RELATION.'+ - 'TOPOLOGICAL_ASPECTS'); - IF (SIZEOF (link_rep_rel) = 0) THEN - RETURN (?); - ELSE - RETURN (link_rep_rel[1].geometric_aspects); - END_IF; -*) - RETURN (?); -END_FUNCTION; - -(* Implicit interfaced from: kinematic_state_schema *) -FUNCTION convert_spatial_to_ypr_rotation (pair : kinematic_pair; - rotation : spatial_rotation) - : ypr_rotation; - LOCAL - axis : direction; - angle : plane_angle_measure; -- rotation angle in application - -- specific units - conv_angle : plane_angle_measure; -- rotation angle in radians - ya, pa, ra : plane_angle_measure; -- yaw, pitch, and roll angle - ucf : REAL; -- unit conversion factor - dx, dy, dz : REAL; -- components of direction vector - s_a, c_a : REAL; -- sine and cosine of rotation angle - rotmat : ARRAY [1 : 3] OF - ARRAY [1 : 3] OF REAL; -- rotation matrix - cm1 : REAL; - s_y, c_y : REAL; - s_r, c_r : REAL; - END_LOCAL; - - -- If rotation is already a ypr_rotation, return it immediately - IF 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.YPR_ROTATION' IN TYPEOF (rotation) THEN - RETURN (rotation); - END_IF; - - -- rotation is a rotation_about_direction - - axis := normalise (rotation\rotation_about_direction.direction_of_axis); - angle := rotation\rotation_about_direction.rotation_angle; - - -- a zero rotation is converted trivially - IF (angle = 0.0) THEN - RETURN ([0.0, 0.0, 0.0]); - END_IF; - - dx := axis.direction_ratios[1]; - dy := axis.direction_ratios[2]; - dz := axis.direction_ratios[3]; - - -- provide angle measured in radian - - conv_angle := plane_angle_for_pair_in_radian (pair, angle); - - IF NOT('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PLANE_ANGLE_MEASURE' IN TYPEOF(conv_angle)) THEN - RETURN (?); - END_IF; - - ucf := angle / conv_angle; - s_a := SIN (conv_angle); - c_a := COS (conv_angle); - - -- axis parallel either to x-axis or to z-axis? - IF (dy = 0.0) AND (dx * dz = 0.0) THEN - REPEAT WHILE (conv_angle <= - PI); - conv_angle := conv_angle + 2.0 * PI; - END_REPEAT; - REPEAT WHILE (conv_angle > PI); - conv_angle := conv_angle - 2.0 * PI; - END_REPEAT; - - ya := ucf * conv_angle; - IF (conv_angle <> PI) THEN - ra := - ya; - ELSE - ra := ya; - END_IF; - - IF (dx <> 0.0) THEN - -- axis parallel to x-axis - use x-axis as roll axis - IF (dx > 0.0) THEN - RETURN ([0.0, 0.0, ya]); - ELSE - RETURN ([0.0, 0.0, ra]); - END_IF; - ELSE - -- axis parallel to z-axis - use z-axis as yaw axis - IF (dz > 0.0) THEN - RETURN ([ya, 0.0, 0.0]); - ELSE - RETURN ([ra, 0.0, 0.0]); - END_IF; - END_IF; - END_IF; - - -- axis parallel to y-axis - use y-axis as pitch axis - IF ((dy <> 0.0) AND (dx = 0.0) AND (dz = 0.0)) THEN - IF (c_a >= 0.0) THEN - ya := 0.0; - ra := 0.0; - ELSE - ya := ucf * PI; - ra := ya; - END_IF; - - pa := ucf * ATAN (s_a, ABS (c_a)); - IF (dy < 0.0) THEN - pa := - pa; - END_IF; - - RETURN ([ya, pa, ra]); - END_IF; - - -- axis not parallel to any axis of coordinate system - -- compute rotation matrix - - cm1 := 1.0 - c_a; - - rotmat := [ [ dx * dx * cm1 + c_a, - dx * dy * cm1 - dz * s_a, - dx * dz * cm1 + dy * s_a ], - [ dx * dy * cm1 + dz * s_a, - dy * dy * cm1 + c_a, - dy * dz * cm1 - dx * s_a ], - [ dx * dz * cm1 - dy * s_a, - dy * dz * cm1 + dx * s_a, - dz * dz * cm1 + c_a ] ]; - - -- rotmat[1][3] equals SIN (pitch_angle) - IF (ABS (rotmat[1][3]) = 1.0) THEN - -- |pa| = PI/2 - BEGIN - IF (rotmat[1][3] = 1.0) THEN - pa := 0.5 * PI; - ELSE - pa := -0.5 * PI; - END_IF; - - -- In this case, only the sum or difference of roll and yaw angles - -- is relevant and can be evaluated from the matrix. - -- According to IP `rectangular pitch angle' for ypr_rotation, - - ra := 0.0; - ya := ATAN (rotmat[2][1], rotmat[2][2]); - - - IF (rotmat[2][2] < 0.0) THEN - IF ya <= 0.0 THEN - ya := ya + PI; - ELSE - ya := ya - PI; - END_IF; - END_IF; - END; - ELSE - BEGIN - ya := ATAN (- rotmat[1][2], rotmat[1][1]); - - IF (rotmat[1][1] < 0.0) THEN - IF (ya <= 0.0) THEN - ya := ya + PI; - ELSE - ya := ya - PI; - END_IF; - END_IF; - - ra := ATAN (-rotmat[2][3], rotmat[3][3]); - - IF (rotmat[3][3] < 0.0) THEN - IF (ra <= 0.0) THEN - ra := ra + PI; - ELSE - ra := ra - PI; - END_IF; - END_IF; - - s_y := SIN (ya); - c_y := COS (ya); - s_r := SIN (ra); - c_r := COS (ra); - - IF ((ABS (s_y) > ABS (c_y)) AND - (ABS (s_y) > ABS (s_r)) AND - (ABS (s_y) > ABS (c_r))) THEN - cm1 := - rotmat[1][2] / s_y; - ELSE - IF ((ABS (c_y) > ABS (s_r)) AND (ABS (c_y) > ABS (c_r))) THEN - cm1 := rotmat[1][1] / c_y; - ELSE - IF (ABS (s_r) > ABS (c_r)) THEN - cm1 := - rotmat[2][3] / s_r; - ELSE - cm1 := rotmat[3][3] / c_r; - END_IF; - END_IF; - END_IF; - - pa := ATAN (rotmat[1][3], cm1); - - END; - END_IF; - - ya := ya * ucf; - pa := pa * ucf; - ra := ra * ucf; - - RETURN ([ya, pa, ra]); - -END_FUNCTION; - -(* Implicit interfaced from: geometric_model_schema *) -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 ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.WIRE_SHELL' IN - TYPEOF(m.sbwm_boundary[j])) AND - (NOT ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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; - -(* Implicit interfaced from: kinematic_state_schema *) -FUNCTION ypr_index (ypr : ypr_enumeration) : INTEGER; - CASE ypr OF - yaw : RETURN (1); - pitch : RETURN (2); - roll : RETURN (3); - END_CASE; - RETURN (?); -END_FUNCTION; -(* REFERENCE FROM (support_resource_schema); *) - FUNCTION type_check_function (the_type : GENERIC; sub_names : SET OF STRING; criterion : INTEGER):LOGICAL; - IF ((NOT EXISTS(the_type)) 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); - OTHERWISE : RETURN (UNKNOWN); - END_CASE; - END_IF; - END_FUNCTION; - -(* Implicit interfaced from: Classification_with_attributes_mim *) -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 ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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(['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CHARACTERIZED_CLASS'] * 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 ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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(['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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(['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PRODUCT', 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PRODUCT_DEFINITION_FORMATION', 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PRODUCT_DEFINITION'] * TYPEOF(it)) = 1) - )) = 0 ) - THEN - RETURN(FALSE); - END_IF; - END_IF; - -RETURN(TRUE); -END_FUNCTION; - -(* Implicit interfaced from: Product_occurrence_mim *) - 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 ,'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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] , 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 (['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM' , - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 | - ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 | - ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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(['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.QUALIFIED_REPRESENTATION_ITEM' , - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.VALUE_RANGE']* TYPEOF ( i ) ) =0 ))) > 0 ) THEN - RETURN(FALSE); - END_IF; - RETURN(TRUE); - END_FUNCTION; - -(* Implicit interfaced from: Product_and_manufacturing_information_view_context_mim *) -FUNCTION get_associated_mandatory_document_ids(pdc : product_definition_context) : SET OF STRING; - LOCAL - result : SET OF STRING := []; - adrs_raw : SET OF applied_document_reference := bag_to_set(USEDIN(pdc, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.APPLIED_DOCUMENT_REFERENCE.ITEMS')); - adrs_filtered : SET OF applied_document_reference := []; - ras : SET OF role_association; - dpas : SET OF document_product_association; - END_LOCAL; - - -- scan adrs_raw for associated role 'mandatory' and fill adrs_filtered with results - REPEAT i := 1 TO HIINDEX(adrs_raw); - if adrs_raw[i]\document_reference.role\object_role.name = 'mandatory' THEN - adrs_filtered := adrs_filtered + adrs_raw[i]; - END_IF; - END_REPEAT; - - -- scan through adrs_filtered and access associated product.id s - REPEAT i := 1 TO HIINDEX(adrs_filtered); - dpas := bag_to_set(USEDIN(adrs_filtered[i]\document_reference.assigned_document, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.DOCUMENT_PRODUCT_ASSOCIATION.RELATING_DOCUMENT')); - REPEAT j := 1 TO HIINDEX(dpas); - IF 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.DOCUMENT_PRODUCT_EQUIVALENCE' IN TYPEOF (dpas[j]) THEN - IF 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PRODUCT_DEFINITION_FORMATION' IN TYPEOF (dpas[j]\document_product_association.related_product) THEN - result := result + dpas[j]\document_product_association.related_product\product_definition_formation.of_product\product.id; - END_IF; - IF 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PRODUCT' IN TYPEOF (dpas[j].related_product) THEN - result := result + dpas[j]\document_product_association.related_product\product.id; - END_IF; - END_IF; - END_REPEAT; - END_REPEAT; - - RETURN (result); -END_FUNCTION; - -(* Implicit interfaced from: Surface_conditions_mim *) - 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; -(* REFERENCE FROM (product_definition_schema); *) - FUNCTION categories_of_product - (obj : product) : SET OF STRING; - LOCAL - category_assignments: BAG OF product_category; - categories: SET OF STRING:=[]; - END_LOCAL; - category_assignments := USEDIN(obj, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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; - -(* Implicit interfaced from: External_properties_mim *) - FUNCTION external_version_assignment_is_valid (aia: applied_external_identification_assignment): BOOLEAN; - LOCAL - item: external_identification_item; - role: identification_role; - END_LOCAL; - role:= aia.role; - IF role.name='version' THEN - REPEAT i := LOINDEX(aia\applied_external_identification_assignment.items) TO HIINDEX(aia\applied_external_identification_assignment.items); - item:= aia\applied_external_identification_assignment.items[i]; - IF (SIZEOF(['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.EXTERNALLY_DEFINED_GENERAL_PROPERTY']*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; - -RULE not_instantiable_pre_defined_surface_side_style FOR - (pre_defined_surface_side_style); -WHERE - WR1: SIZEOF (pre_defined_surface_side_style) = 0; -END_RULE; - -RULE cartesian_coordinate_system_constraint FOR - (global_unit_assigned_context, - geometric_representation_context); -LOCAL - guac_inst : SET OF global_unit_assigned_context := - QUERY ( guac <* global_unit_assigned_context | - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + - 'GEOMETRIC_REPRESENTATION_CONTEXT' IN TYPEOF (guac))); -END_LOCAL; -WHERE - WR1: SIZEOF (QUERY (guac <* guac_inst | - NOT (SIZEOF (guac.units) <= 3))) = 0; - WR2: SIZEOF (QUERY (guac <* guac_inst | (NOT ( - (SIZEOF (QUERY (u <* guac.units | - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LENGTH_UNIT' - IN TYPEOF (u)))) = 1) - AND - (SIZEOF (QUERY (u <* guac.units | - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + - 'PLANE_ANGLE_UNIT' - IN TYPEOF (u)))) = 1) - AND - (SIZEOF (QUERY (u <* guac.units | - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + - 'SOLID_ANGLE_UNIT' - IN TYPEOF (u)) )) <= 1) - )))) = 0; - WR3: SIZEOF( QUERY( grc <* guac_inst | - NOT( (grc.coordinate_space_dimension = 2) OR - (grc.coordinate_space_dimension = 3)))) = 0; - WR4: SIZEOF (QUERY (guac <* guac_inst | - NOT (SIZEOF (QUERY (u <* guac.units |NOT( - NOT(( - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + - 'PLANE_ANGLE_UNIT' IN TYPEOF(u)) AND - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + - 'CONVERSION_BASED_UNIT' IN TYPEOF(u)) AND - (u\conversion_based_unit.name = 'degree')) - OR - ((abs(u\conversion_based_unit. - conversion_factor\measure_with_unit.value_component - - 0.0174532925) <= 0.001) AND - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + - 'PLANE_ANGLE_MEASURE_WITH_UNIT' - IN TYPEOF(u\conversion_based_unit.conversion_factor))) - ))) = 0) - )) = 0; -END_RULE; - -RULE area_component_shape_constraint FOR - (area_component); -WHERE - WR1: SIZEOF( QUERY( ac <* area_component | - NOT(SIZEOF (QUERY (pdr <* USEDIN(ac,'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - NOT(NOT(pdr\property_definition_representation.used_representation\representation.id = 'ac2dsm') OR - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SINGLE_AREA_CSG_2D_SHAPE_REPRESENTATION' IN TYPEOF(pdr\property_definition_representation.used_representation))) - )) = 0) - )) = 0; - WR2: SIZEOF( QUERY( ac <* area_component | - NOT(apeaid_is_base(ac)) OR - NOT(SIZEOF (QUERY (pdr <* USEDIN(ac,'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - NOT(NOT(pdr\property_definition_representation.used_representation\representation.id = 'ac2dsm') OR - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SINGLE_BOUNDARY_CSG_2D_SHAPE_REPRESENTATION' IN TYPEOF(pdr\property_definition_representation.used_representation))) - )) = 0) - )) = 0; -END_RULE; - -(* Implicit interfaced from: Classification_with_attributes_mim *) -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('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CLASS' IN TYPEOF(gr\group_relationship.related_group)) OR - NOT('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CLASS' IN TYPEOF(gr\group_relationship.relating_group))) )) = 0; -END_RULE; - -RULE shape_representation_requires_origin FOR (shape_representation); -WHERE - WR1: -(* -pseudocode -co:FOREACH (sr <* shape_representation |c1); -c1:EXACTLYONE(it <* sr\representation.items |c2) - or ATLEASTONE(it <* sr\representation.items |c3) - or EXACTLYNONE(it <* sr\representation.items |c4); -c2:((it.name = 'origin') or (it.name = 'orientation')) and - (AXIS2_PLACEMENT_2D in TYPEOF(it) OR - AXIS2_PLACEMENT_3D in TYPEOF(it)); -c3:STYLED_ITEM in TYPEOF(it); -c4:((it.name = 'origin') or (it.name = 'orientation')) and - ((sr.name = 'zone shape') or - (sr.context_of_items.context_type = 'connection zone colour')); -*) -SIZEOF(QUERY ( sr <* shape_representation | NOT( -(SIZEOF(QUERY ( it <* sr\representation.items | ( -((it\representation_item.name = 'origin') or (it\representation_item.name = 'orientation')) and - (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + - 'AXIS2_PLACEMENT_2D' in TYPEOF(it)) OR - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + - 'AXIS2_PLACEMENT_2D' in TYPEOF(it))) -))) = 1 -) -OR -(SIZEOF(QUERY ( it <* sr\representation.items | ( - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + - 'STYLED_ITEM' in TYPEOF(it)) -))) >= 1 -) -OR -(SIZEOF(QUERY ( it <* sr\representation.items | ( -((it\representation_item.name = 'origin') or (it\representation_item.name = 'orientation')) and - ((sr\representation.name = 'zone shape') or - (sr.context_of_items\representation_context.context_type = 'connection zone colour')) -))) = 0 -) -))) = 0; -END_RULE; - -RULE spline_curve_population_constraint FOR - (curve); -WHERE - WR1: SIZEOF( QUERY( cu <* curve | -('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.B_SPLINE_CURVE' IN TYPEOF(cu)) - )) = 0; -END_RULE; - -(* Implicit interfaced from: Part_and_zone_laminate_tables_mim *) - 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; - -(* Implicit interfaced from: Part_and_zone_laminate_tables_mim *) - 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; - -(* Implicit interfaced from: Ap242_managed_model_based_3d_engineering_mim *) -(* Name in originating schema: APPLICATION_PROTOCOL_DEFINITION_REQUIRED *) - RULE Ap210_electronic_assembly_interconnect_and_packaging_design_mim_dot_application_protocol_definition_required FOR - (application_context); - WHERE - WR1: SIZEOF( QUERY( ac <* application_context | - (SIZEOF (QUERY (apd <* USEDIN(ac,'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.APPLICATION_PROTOCOL_DEFINITION.APPLICATION') | - ((apd.application_interpreted_model_schema_name = 'ap242_managed_model_based_3d_engineering') - OR - (apd.application_interpreted_model_schema_name = 'ap210_electronic_assembly_interconnect_and_packaging_design')) - )) > 0) - )) > 0; - - END_RULE; - -(* Implicit interfaced from: Geometric_tolerance_mim *) -RULE unique_gdt_element_id_constraint for ( - product_definition_shape, - dimensional_location, - dimensional_size, - shape_aspect, - shape_aspect_relationship); -LOCAL - bss : BAG OF STRING := []; - ds : SET OF dimensional_size := QUERY(ds <* dimensional_size | EXISTS(ds\dimensional_size.id)); - sa : SET OF shape_aspect := QUERY(sa <* shape_aspect | EXISTS(sa\shape_aspect.id)); - sar : SET OF shape_aspect_relationship := QUERY(sar <* shape_aspect_relationship | EXISTS(sar\shape_aspect_relationship.id)); - ssa : SET OF shape_aspect := []; - pass : BOOLEAN := TRUE; -END_LOCAL; -REPEAT ii := 1 TO SIZEOF (product_definition_shape) WHILE pass; - bss := []; - ssa := bag_to_set(USEDIN(product_definition_shape[ii], 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'SHAPE_ASPECT.' + 'OF_SHAPE')); - - REPEAT i := 1 to SIZEOF (ds); - IF (ds[i]\dimensional_size.applies_to IN ssa) THEN - bss := bss + ds[i]\dimensional_size.id; - END_IF; - END_REPEAT; - - REPEAT i := 1 to SIZEOF (sa); - IF (sa[i] IN ssa) THEN - bss := bss + sa[i]\shape_aspect.id; - END_IF; - END_REPEAT; - - REPEAT i := 1 to SIZEOF (sar); - IF (sar[i]\shape_aspect_relationship.relating_shape_aspect IN ssa) THEN - bss := bss + sar[i]\shape_aspect_relationship.id; - END_IF; - END_REPEAT; - - IF (SIZEOF(bag_to_set(bss)) <> SIZEOF(bss)) THEN pass := FALSE; - END_IF; -END_REPEAT; -WHERE - WR1 : pass; -END_RULE; - -(* Implicit interfaced from: shape_aspect_definition_schema *) -RULE unique_datum_system FOR -(datum_system); - -LOCAL - pass : BOOLEAN := TRUE; -END_LOCAL; -REPEAT i := 1 TO SIZEOF(datum_system); - REPEAT j := 1 TO SIZEOF(datum_system); - IF (i <> j) THEN - IF datum_system[i]\datum_system.constituents = - datum_system[j]\datum_system.constituents THEN - pass := FALSE; - END_IF; - END_IF; - END_REPEAT; -END_REPEAT;WHERE - WR1: pass; -END_RULE; - -(* Implicit interfaced from: shape_tolerance_schema *) -RULE subtype_exclusiveness_geometric_tolerance FOR -(geometric_tolerance); -WHERE - WR1: SIZEOF(QUERY (gt <* geometric_tolerance | NOT (type_check_function(gt, ['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.ANGULARITY_TOLERANCE', 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CIRCULAR_RUNOUT_TOLERANCE', 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.COAXIALITY_TOLERANCE', 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CONCENTRICITY_TOLERANCE', 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CYLINDRICITY_TOLERANCE', 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.FLATNESS_TOLERANCE', 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LINE_PROFILE_TOLERANCE', 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PARALLELISM_TOLERANCE', 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PERPENDICULARITY_TOLERANCE', 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.POSITION_TOLERANCE', 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.ROUNDNESS_TOLERANCE', 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.STRAIGHTNESS_TOLERANCE', 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SURFACE_PROFILE_TOLERANCE', 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SYMMETRY_TOLERANCE', 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.TOTAL_RUNOUT_TOLERANCE'] , 2 ) ))) = 0; -END_RULE; - -(* Implicit interfaced from: Geometric_tolerance_mim *) -RULE tolerance_zone_form_name_constraint for (tolerance_zone_form); -LOCAL - names : SET OF STRING := - [ 'within a circle', - 'between two concentric circles', - 'between two equidistant curves', - 'within a cylinder', - 'between two coaxial cylinders', - 'between two equidistant surfaces', - 'non uniform', - 'cylindrical or circular', - 'spherical', - 'unknown']; - pass : BOOLEAN := TRUE; -END_LOCAL; -REPEAT i := 1 to SIZEOF(tolerance_zone_form) WHILE pass; - pass := (tolerance_zone_form[i].name IN names); -END_REPEAT; -WHERE - WR1: pass; -END_RULE; - -(* Implicit interfaced from: External_properties_mim *) - 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 | - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.KNOWN_SOURCE' IN TYPEOF(edc.source) ); - WHERE - WR1: SIZEOF ( QUERY ( edgp <* known_sourced_properties | - ( SIZEOF ( QUERY ( edir <* USEDIN ( edgp, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.EXTERNALLY_DEFINED_ITEM_RELATIONSHIP.RELATING_ITEM' )| - ( edir.name = 'name scope' ) AND - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.EXTERNALLY_DEFINED_CLASS' IN TYPEOF ( edir.related_item ) ) AND - ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.KNOWN_SOURCE' IN TYPEOF ( edir.related_item.source ) ) ) ) <>1 ) ) ) = 0; - END_RULE; - -(* Implicit interfaced from: External_properties_mim *) - 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 | - ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.KNOWN_SOURCE' IN TYPEOF ( edgp.source ) ) AND - ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.KNOWN_SOURCE' + '.NAME' = 'ISO 13584 library' ) ); --tt found real problem here - WHERE - WR1: SIZEOF( QUERY( edgp <* plib_properties | - (SIZEOF( QUERY( edir <* USEDIN(edgp, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.APPLIED_EXTERNAL_IDENTIFICATION_ASSIGNMENT.ITEMS') | - (edir.role.name = 'version') )) <> 1) )) = 0; - END_RULE; - -(* Implicit interfaced from: geometry_schema *) -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; - -(* Implicit interfaced from: Qualified_measure_mim *) -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 | - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'UNCERTAINTY_QUALIFIER' IN TYPEOF ( u1 ) ) AND - ( SIZEOF ( QUERY ( u2 <* qri.qualifiers | - ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'UNCERTAINTY_QUALIFIER' IN TYPEOF ( u2 ) ) AND - ( u2\uncertainty_qualifier.measure_name = u1\uncertainty_qualifier.measure_name ) ) - ) >1 ) ) ) >0 ) ) = 0; -END_RULE; - -(* Implicit interfaced from: Appearance_assignment_mim *) - RULE styled_curve FOR (styled_item); - WHERE - WR1: SIZEOF( QUERY( si <* styled_item | ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CURVE' IN TYPEOF (si.item)) AND (SIZEOF (QUERY (psa <* si.styles | (SIZEOF (QUERY (cs <* psa.styles | ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CURVE_STYLE' IN TYPEOF (cs)) )) > 0) )) <> 1) )) = 0; - END_RULE; - -(* Implicit interfaced from: Machining_features_mim *) -RULE chamfer_requires_faces FOR (chamfer, -property_definition_representation); -WHERE -WR1: (SIZEOF (QUERY (cf <* chamfer | -NOT (1 = SIZEOF (QUERY (pdr <* property_definition_representation | -((pdr\property_definition_representation.definition\property_definition.definition = cf) AND -('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.FACE_SHAPE_REPRESENTATION' -IN TYPEOF (pdr.used_representation)) AND -(pdr.used_representation.name = 'chamfer face')) -))) -))=0); -END_RULE; - -(* Implicit interfaced from: Machining_features_mim *) -RULE chamfer_offset_requires_faces FOR -(chamfer_offset, property_definition_representation); -WHERE -WR1: (SIZEOF (QUERY (co <* chamfer_offset | -NOT (1 = SIZEOF (QUERY (pdr <* property_definition_representation | -((pdr\property_definition_representation.definition\property_definition.definition = co) AND -('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.FACE_SHAPE_REPRESENTATION' IN TYPEOF (pdr.used_representation)) AND -( ((pdr\property_definition_representation.definition\property_definition.definition.description = 'first offset') AND -(pdr.used_representation.name = 'first face shape')) -OR -((pdr\property_definition_representation.definition\property_definition.definition.description = 'second offset') AND -(pdr.used_representation.name = 'second face shape')) -)) -))) -))=0); -END_RULE; - -(* Implicit interfaced from: Machining_features_mim *) -RULE edge_round_requires_faces FOR -(edge_round, property_definition_representation); -WHERE -WR1: (0 = SIZEOF (QUERY (er <* edge_round | -NOT (1 = SIZEOF (QUERY (pdr <* property_definition_representation | -((pdr\property_definition_representation.definition\property_definition.definition = er) AND -('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.FACE_SHAPE_REPRESENTATION' -IN TYPEOF (pdr.used_representation)) AND -(pdr.used_representation.name = 'edge round face')) -))) -))); -WR2: (SIZEOF (QUERY (er <* edge_round | -NOT (1 = SIZEOF (QUERY (pdr <* property_definition_representation | -((pdr\property_definition_representation.definition\property_definition.definition = er) AND -('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.FACE_SHAPE_REPRESENTATION' -IN TYPEOF (pdr.used_representation)) AND -(pdr.used_representation.name = 'first face shape')) -))) -))=0); -WR3: (SIZEOF (QUERY (er <* edge_round | -NOT (1 = SIZEOF (QUERY (pdr <* property_definition_representation | -((pdr\property_definition_representation.definition\property_definition.definition = er) AND -('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.FACE_SHAPE_REPRESENTATION' -IN TYPEOF (pdr.used_representation)) AND -(pdr.used_representation.name = 'second face shape')) -))) -))=0); -END_RULE; - -(* Implicit interfaced from: Machining_features_mim *) -RULE transition_feature_life_cycle FOR -(transition_feature); -WHERE -WR1: SIZEOF (QUERY (tf <* transition_feature | -NOT (tf.of_shape.definition.frame_of_reference.life_cycle_stage = -'manufacturing planning'))) = 0; -END_RULE; - -(* Implicit interfaced from: Machining_features_mim *) -RULE transition_feature_on_part_boundary FOR -(transition_feature); -WHERE -WR1: SIZEOF (QUERY (tf <* transition_feature | -NOT (tf.product_definitional))) = 0; -END_RULE; - -(* Implicit interfaced from: Dimension_and_tolerance_callouts_mim *) -RULE draughting_model_items_constraint FOR (draughting_model); -WHERE - -- logic - there should be 0 items, which are annotation_occurrences and which are not draughting_annotation_occurrences - WR1: SIZEOF(QUERY(dm <* draughting_model | - NOT(SIZEOF(QUERY(it1 <* dm\representation.items | - (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.ANNOTATION_OCCURRENCE' IN TYPEOF(it1)) - AND - NOT('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'DRAUGHTING_ANNOTATION_OCCURRENCE' IN TYPEOF(it1))) - )) = 0) - )) = 0; - WR2: SIZEOF(QUERY(dm <* draughting_model | - NOT(SIZEOF(QUERY(it1 <* dm\representation.items | - (('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.DRAUGHTING_CALLOUT' IN TYPEOF(it1)) - AND - NOT('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.DRAUGHTING_ELEMENTS' IN TYPEOF(it1))) - )) = 0) - )) = 0; -END_RULE; - -(* Implicit interfaced from: Text_appearance_mim *) - 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, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.TEXT_LITERAL.FONT')) = 0 )) = 0; - WR2: SIZEOF (QUERY (edtf <* externally_defined_text_font | SIZEOF (USEDIN (edtf, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.TEXT_LITERAL.FONT')) = 0 )) = 0; - END_RULE; - -(* Implicit interfaced from: Product_class_mim *) -RULE product_concept_feature_requires_category FOR (product_concept_feature); -WHERE -WR1: SIZEOF ( QUERY ( pcf <* product_concept_feature | -(SIZEOF(['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'INCLUSION_PRODUCT_CONCEPT_FEATURE', -'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'CONDITIONAL_CONCEPT_FEATURE'] * TYPEOF(pcf)) = 0) AND -(SIZEOF ( QUERY ( aga <* USEDIN ( pcf , 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'APPLIED_GROUP_ASSIGNMENT.' + 'ITEMS' ) | -(aga\group_assignment.role\object_role.name = 'specification category member' ) AND -('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'PRODUCT_CONCEPT_FEATURE_CATEGORY' IN TYPEOF ( aga.assigned_group )))) <>1 ) ) ) = 0; -END_RULE; - -(* Implicit interfaced from: Product_class_mim *) -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 , 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'CONCEPT_FEATURE_RELATIONSHIP_WITH_CONDITION.' + - 'CONDITIONAL_OPERATOR' ) | - SIZEOF ( QUERY ( ccf <* USEDIN( cfrwc , 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'CONDITIONAL_CONCEPT_FEATURE.CONDITION' ) | - NOT ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'CONCEPT_FEATURE_RELATIONSHIP_WITH_CONDITION.CONDITIONAL_OPERATOR') | - cfrwc.related_product_concept_feature :<>: cfrwc.relating_product_concept_feature)) >0 ))) = 0; -END_RULE; - -(* Implicit interfaced from: Multi_linguism_mim *) -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 ,'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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; - -(* Implicit interfaced from: Ap242_managed_model_based_3d_engineering_mim *) - RULE dimensioning_data_requires_document FOR (applied_document_reference, product_definition_context_association, role_association); - LOCAL - adr : SET OF applied_document_reference := (QUERY(adr <* applied_document_reference | - (adr\document_reference.assigned_document\document.kind\document_type.product_data_type = 'Standards Document') AND - ((adr\document_reference.assigned_document\document.id = 'ASME Y14.41-2003') OR - (adr\document_reference.assigned_document\document.id = 'ASME Y14.5M-1994') OR - (adr\document_reference.assigned_document\document.id = 'ISO 1101: 2004')))); - pdca : SET OF product_definition_context_association := (QUERY(pdca <* product_definition_context_association | - (pdca\product_definition_context_association.role\product_definition_context_role.name = 'additional context') AND - (pdca\product_definition_context_association.frame_of_reference\application_context_element.name = 'Geometric Dimensioning and Tolerancing Product Specification'))); - ra : SET OF role_association := (QUERY(ra <* role_association | - ra\role_association.role\object_role.name = 'dimensioning standard')); - ra1 : SET OF role_association := []; - pdpdca : SET OF product_definition := []; - pdadr : SET OF product_definition := []; - pass : BOOLEAN := TRUE; - END_LOCAL; - - REPEAT i := 1 TO HIINDEX(pdca); - pdpdca := pdpdca + pdca[i]\product_definition_context_association.definition; - END_REPEAT; - REPEAT i := 1 TO HIINDEX(adr); - ra1 := bag_to_set(USEDIN(adr[i],'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.ROLE_ASSOCIATION.ITEM_WITH_ROLE')); - IF (ra1 * ra) <> ra1 THEN - pass := FALSE; - END_IF; - REPEAT j := 1 to HIINDEX(adr[i]\applied_document_reference.items); - IF 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PRODUCT_DEFINITION' IN TYPEOF(adr[i]\applied_document_reference.items[j]) THEN - pdadr := pdadr + adr[i]\applied_document_reference.items[j]; - END_IF; - END_REPEAT; - END_REPEAT; - - WHERE - WR1 : pass; - WR2 : pdpdca = pdadr; - -END_RULE; - -(* Implicit interfaced from: Ap242_managed_model_based_3d_engineering_mim *) -RULE subtype_mandatory_shape_representation FOR - (shape_representation); -WHERE - WR1: SIZEOF (QUERY (sr <* shape_representation | - NOT ((SIZEOF ([ - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.ADVANCED_BREP_SHAPE_REPRESENTATION', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.FACETED_BREP_SHAPE_REPRESENTATION', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MANIFOLD_SURFACE_SHAPE_REPRESENTATION', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MANIFOLD_SUBSURFACE_SHAPE_REPRESENTATION', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.EDGE_BASED_WIREFRAME_SHAPE_REPRESENTATION', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHELL_BASED_WIREFRAME_SHAPE_REPRESENTATION', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.GEOMETRICALLY_BOUNDED_SURFACE_SHAPE_REPRESENTATION', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.GEOMETRICALLY_BOUNDED_WIREFRAME_SHAPE_REPRESENTATION', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.BEVELED_SHEET_REPRESENTATION', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.COMPOSITE_SHEET_REPRESENTATION', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.COMPOUND_SHAPE_REPRESENTATION', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CSG_2D_SHAPE_REPRESENTATION', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CSG_SHAPE_REPRESENTATION', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.CURVE_SWEPT_SOLID_SHAPE_REPRESENTATION', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.DIRECTION_SHAPE_REPRESENTATION', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.ELEMENTARY_BREP_SHAPE_REPRESENTATION', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.FACE_SHAPE_REPRESENTATION', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.GEOMETRICALLY_BOUNDED_2D_WIREFRAME_REPRESENTATION', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.LOCATION_SHAPE_REPRESENTATION', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.NEUTRAL_SKETCH_REPRESENTATION', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.NON_MANIFOLD_SURFACE_SHAPE_REPRESENTATION', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PATH_SHAPE_REPRESENTATION', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PLANAR_SHAPE_REPRESENTATION', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROCEDURAL_SHAPE_REPRESENTATION', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.REPRESENTATIVE_SHAPE_REPRESENTATION', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_DIMENSION_REPRESENTATION', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.TESSELLATED_SHAPE_REPRESENTATION' - ] * TYPEOF (sr)) = 1) OR - (SIZEOF (QUERY (it <* sr\representation.items | - NOT ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.AXIS2_PLACEMENT_3D' IN TYPEOF (it)))) - = 0) OR - (SIZEOF (QUERY (sdr <* QUERY (pdr <* USEDIN (sr, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.' + - 'USED_REPRESENTATION') | - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_DEFINITION_REPRESENTATION' IN - TYPEOF (pdr)) | - NOT (SIZEOF (['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP'] * TYPEOF - (sdr.definition)) = 1))) = 0)))) = 0; -END_RULE; -- subtype_mandatory_shape_representation - -(* Implicit interfaced from: Classification_with_attributes_mim *) -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 application_protocol_definition_required FOR - (application_context); -WHERE - WR1: SIZEOF( QUERY( ac <* application_context | - (SIZEOF (QUERY (apd <* USEDIN(ac,'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.APPLICATION_PROTOCOL_DEFINITION.APPLICATION') | - (apd.application_interpreted_model_schema_name = 'ap210_electronic_assembly_interconnect_and_packaging_design') - )) > 0) - )) > 0; -END_RULE; - -(* Implicit interfaced from: Product_occurrence_mim *) - 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; - -(* Implicit interfaced from: Product_occurrence_mim *) - 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; - -(* Implicit interfaced from: Product_occurrence_mim *) - 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 , - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'PRODUCT_DEFINITION_RELATIONSHIP.RELATED_PRODUCT_DEFINITION' ) | - pdr.name = 'definition usage' ) ) <>1 ) AND - ( SIZEOF ( QUERY ( cd <* USEDIN ( pd , 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'CONFIGURATION_DESIGN.DESIGN' ) | - ( cd.name = 'occurrence usage definition' ) AND - ( NOT ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'PRODUCT_IDENTIFICATION' IN TYPEOF( cd.configuration ) ) ) ) ) <>1 ) ) ) = 0; - WR3: SIZEOF ( QUERY ( pd <* part_occurrences | - (SIZEOF ( QUERY ( cd <* USEDIN ( pd , 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.'+ 'PRODUCT_DEFINITION_RELATIONSHIP.RELATED_PRODUCT_DEFINITION' ) | - ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' +'PRODUCT_DEFINITION_USAGE' IN TYPEOF ( cd ) ) ) ) = 0 )AND - ( SIZEOF ( USEDIN ( pd , 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 , 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' +'PROPERTY_DEFINITION.DEFINITION' ) | - ( ppd.name ='occurrence quantity' ) AND - ( SIZEOF ( QUERY ( pdr <*USEDIN ( ppd , 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 | - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 , 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' +'PRODUCT_DEFINITION_OCCURRENCE_RELATIONSHIP.OCCURRENCE' ) | - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' +'SPECIFIED_HIGHER_USAGE_OCCURRENCE' IN TYPEOF ( pdor.occurrence_usage ) ) ) = 0 ) ) ) = 0; - END_RULE; - -(* Implicit interfaced from: Product_occurrence_mim *) - 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, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PRODUCT_RELATED_PRODUCT_CATEGORY.PRODUCTS') | - prpc.name IN ['part','raw material','tool'] )) = 0 ) )) = 0; - END_RULE; - -(* Implicit interfaced from: Extended_measure_representation_mim *) - RULE subtype_exclusiveness_representation_item FOR - (representation_item); - WHERE - WR1: SIZEOF(QUERY (cri <* representation_item | - NOT (type_check_function(cri,['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.VALUE_REPRESENTATION_ITEM', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.COMPOUND_REPRESENTATION_ITEM'] , 3)))) = 0; - END_RULE; - -(* Implicit interfaced from: Product_class_mim *) -RULE restrict_group_relationship_for_specification_category FOR (group_relationship); -WHERE -WR1 : SIZEOF( QUERY( gr <* group_relationship | - (gr.name = 'specification category hierarchy') AND - (NOT('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PRODUCT_CONCEPT_FEATURE_CATEGORY' IN TYPEOF(gr.related_group)) - OR NOT('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PRODUCT_CONCEPT_FEATURE_CATEGORY' IN TYPEOF(gr.relating_group))) )) = 0; -END_RULE; - -(* Implicit interfaced from: Product_and_manufacturing_information_view_context_mim *) -RULE valid_product_and_manufacturing_information_view_contexts FOR (product_definition_context); -LOCAL - design_view_contexts : SET OF product_definition_context := - QUERY( pdc <* product_definition_context | pdc.life_cycle_stage = 'design'); - gdt_representation_view_contexts : SET OF product_definition_context := - QUERY( pdc <* product_definition_context | pdc.frame_of_reference.application = 'geometrical dimensioning and tolerancing representation'); - machining_feature_view_contexts : SET OF product_definition_context := - QUERY( pdc <* product_definition_context | pdc.frame_of_reference.application = 'machining feature'); - material_specification_view_contexts : SET OF product_definition_context := - QUERY( pdc <* product_definition_context | pdc.frame_of_reference.application = 'material specification'); - model_based_3d_annotation_presentation_view_contexts : SET OF product_definition_context := - QUERY( pdc <* product_definition_context | pdc.frame_of_reference.application = 'model based 3D annotation presentation'); - model_based_view_contexts : SET OF product_definition_context := - QUERY( pdc <* product_definition_context | pdc.frame_of_reference.application = 'model based product geometry'); - process_state_view_contexts : SET OF product_definition_context := - QUERY( pdc <* product_definition_context | pdc.frame_of_reference.application = 'process state'); - surface_finish_view_contexts : SET OF product_definition_context := - QUERY( pdc <* product_definition_context | pdc.frame_of_reference.application = 'surface finish'); - additional_view_contexts : SET OF product_definition_context := - gdt_representation_view_contexts + machining_feature_view_contexts + material_specification_view_contexts + - model_based_3d_annotation_presentation_view_contexts + process_state_view_contexts + surface_finish_view_contexts; - need_initial_model_based_view_contexts : SET OF product_definition_context := - gdt_representation_view_contexts + model_based_3d_annotation_presentation_view_contexts; -END_LOCAL; - -WHERE - WR1: SIZEOF(gdt_representation_view_contexts * design_view_contexts) = SIZEOF(gdt_representation_view_contexts); - WR2: SIZEOF(machining_feature_view_contexts * design_view_contexts) = SIZEOF(machining_feature_view_contexts); - WR3: SIZEOF(material_specification_view_contexts * design_view_contexts) = SIZEOF(material_specification_view_contexts); - WR4: SIZEOF(model_based_3d_annotation_presentation_view_contexts * design_view_contexts) = SIZEOF(model_based_3d_annotation_presentation_view_contexts); - WR5: SIZEOF(model_based_view_contexts * design_view_contexts) = SIZEOF(model_based_view_contexts); - WR6: SIZEOF(process_state_view_contexts * design_view_contexts) = SIZEOF(process_state_view_contexts); - WR7: SIZEOF(surface_finish_view_contexts * design_view_contexts) = SIZEOF(surface_finish_view_contexts); - WR8: -- not used as additional_contexts - SIZEOF(QUERY(mbvc <* model_based_view_contexts | - (SIZEOF(USEDIN(mbvc, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PRODUCT_DEFINITION_CONTEXT_ASSOCIATION.FRAME_OF_REFERENCE')) = 0) - )) = SIZEOF(model_based_view_contexts); - WR9: -- not used as initial_context - SIZEOF(QUERY(avc <* additional_view_contexts | - (SIZEOF(USEDIN(avc, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PRODUCT_DEFINITION.FRAME_OF_REFERENCE')) = 0) - )) = SIZEOF(additional_view_contexts); - WR10: -- initial_context shall have a Model_based_view_context - SIZEOF(QUERY(nimbvc <* need_initial_model_based_view_contexts | NOT - (SIZEOF(QUERY(pdca <* USEDIN(nimbvc, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PRODUCT_DEFINITION_CONTEXT_ASSOCIATION.FRAME_OF_REFERENCE') | - (pdca\product_definition_context_association.definition\product_definition.frame_of_reference IN model_based_view_contexts))) - = - SIZEOF(need_initial_model_based_view_contexts)) - )) = 0; - WR11: -- gdt_representation_view_contexts must have at least either ISO 1101 or ASME Y14.5 as associated dimension standard document - SIZEOF ( QUERY( gdt_pdc <* gdt_representation_view_contexts | - SIZEOF(['ISO 1101', 'ASME Y14.5'] * get_associated_mandatory_document_ids(gdt_pdc) ) = 0 ) - ) = 0; - WR12: -- model_based_3d_annotation_presentation_view_contexts must have at least either ISO 1101, ISO 16792, ASME Y14.41 or ASME Y14.5 as associated model standard document - SIZEOF ( QUERY( mb3d_pdc <* model_based_3d_annotation_presentation_view_contexts | - SIZEOF(['ISO 1101', 'ISO 16792', 'ASME Y14.41', 'ASME Y14.5'] * get_associated_mandatory_document_ids(mb3d_pdc) ) = 0) - ) = 0; -END_RULE; - -(* Implicit interfaced from: Surface_conditions_mim *) - 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 ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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; - -(* Implicit interfaced from: Surface_conditions_mim *) - 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 , 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MATERIAL_DESIGNATION.DEFINITIONS'))<>1 - )) = 0; - END_RULE; - -(* Implicit interfaced from: Surface_conditions_mim *) - 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; - -(* Implicit interfaced from: Specification_control_mim *) - RULE restrict_configuration_design_for_class_breakdown_association FOR - (configuration_design); - WHERE - WR1: SIZEOF ( QUERY ( cd <* configuration_design | - ( cd.name ='functionality' ) AND - ( NOT ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PRODUCT_CLASS' IN TYPEOF ( cd.configuration.item_concept ) ) ) - ) ) =0; - END_RULE; - -(* Implicit interfaced from: Specification_control_mim *) - RULE restrict_configuration_design_for_design_constraint FOR (configuration_design); - WHERE - WR1: SIZEOF ( QUERY (cd <* configuration_design | - (cd.name = 'design constraint usage') AND - (NOT('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PRODUCT_DEFINITION' IN TYPEOF ( cd.design ) ) OR - (cd.design\product_definition.frame_of_reference.name <> 'design constraint definition')))) = 0; - END_RULE; - -(* Implicit interfaced from: Specification_control_mim *) - 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 , - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PRODUCT_RELATED_PRODUCT_CATEGORY.PRODUCTS' ) | - prpc. name ='requirement' ) ) =0 ) ) ) =0; - END_RULE; - -(* Implicit interfaced from: Item_definition_structure_mim *) - 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, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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; - -(* Implicit interfaced from: Specification_control_mim *) - 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 , - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PRODUCT_RELATED_PRODUCT_CATEGORY.PRODUCTS' ) | - prpc.name = 'functionality' ) ) = 1 ) AND - ( SIZEOF ( QUERY ( pd <* USEDIN ( pdf ,'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 , - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PRODUCT_RELATED_PRODUCT_CATEGORY.PRODUCTS' ) | - prpc.name = 'conceptual design' ) ) = 1 ) AND - ( SIZEOF (QUERY ( pd <* USEDIN ( pdf , 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PRODUCT_DEFINITION.FORMATION' ) | - pd.frame_of_reference.name = 'conceptual definition' ) ) <1) ) ) = 0; - END_RULE; - -(* Implicit interfaced from: Specification_control_mim *) - 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 , - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PRODUCT_RELATED_PRODUCT_CATEGORY.PRODUCTS' ) | - prpc.name = 'requirement' ) ) >0 ) AND - ( SIZEOF ( QUERY ( pd <* USEDIN ( pdf , 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PRODUCT_DEFINITION.FORMATION') | - pd.frame_of_reference.name = 'design constraint definition' ) ) <1 ) ) ) = 0; - END_RULE; - -(* Implicit interfaced from: Stock_material_mim *) - 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; - -(* Implicit interfaced from: Machining_features_mim *) -RULE machining_feature_life_cycle FOR -(instanced_feature); -WHERE -WR1: SIZEOF (QUERY (mf <* instanced_feature | -NOT (mf.of_shape.definition.frame_of_reference.life_cycle_stage = -'manufacturing planning'))) = 0; -END_RULE; - -(* Implicit interfaced from: Inertia_characteristics_mim *) -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 | - ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'POINT' IN TYPEOF ( i ) ) AND - ( i.name = 'centre point' ) )) <>1 ) ) ) ) - =0; -END_RULE; - -(* Implicit interfaced from: Item_definition_structure_mim *) - 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,'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.APPLIED_EFFECTIVITY_ASSIGNMENT.ITEMS') ) = 0) )) - = 0; - END_RULE; - -(* Implicit interfaced from: Item_definition_structure_mim *) - 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; - -(* Implicit interfaced from: Specification_control_mim *) - 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; - -(* Implicit interfaced from: External_properties_mim *) - 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; - -(* Implicit interfaced from: Alternative_solution_mim *) - 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 , - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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 , - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'APPLIED_ORGANIZATION_ASSIGNMENT.ITEMS' ) | - aoa.role.name = 'supplier' )) <>1 ) )) = 0; - END_RULE; - -(* Implicit interfaced from: Alternative_solution_mim *) - 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, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'PRODUCT_RELATED_PRODUCT_CATEGORY.PRODUCTS') | - prpc.name = 'alternative solution')) = 0 ) )) = 0; - END_RULE; - -(* Implicit interfaced from: Part_collection_mim *) - 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, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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; - -(* Implicit interfaced from: Alternative_solution_mim *) - 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, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'PRODUCT_RELATED_PRODUCT_CATEGORY.PRODUCTS') | - prpc.name = 'alternative solution')) = 1); - WHERE - WR1: SIZEOF( QUERY( pdf <* solution_versions | - SIZEOF( QUERY( pd <* USEDIN(pdf, 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.' + 'PRODUCT_DEFINITION.FORMATION') | - pd.frame_of_reference.name = 'alternative definition')) <> 1))= 0; - END_RULE; - -(* Implicit interfaced from: aic_machining_feature *) -RULE machining_feature_definition_constraints FOR (feature_definition); -LOCAL - mfds : SET OF feature_definition := []; -END_LOCAL; - mfds := QUERY(temp <* feature_definition | 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.MACHINING_FEATURE_DEFINITION' IN TYPEOF (temp) ); -WHERE - WR1: SIZEOF(QUERY( mfd <* mfds | NOT (SIZEOF(QUERY( pdr <* - get_property_definition_representations (mfd) | - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' - IN TYPEOF ( pdr.used_representation ) ) ) <=1 ) ) ) = 0; - WR2: SIZEOF(QUERY( mfd <* mfds | NOT (SIZEOF (QUERY (pd <* USEDIN (mfd, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | - NOT (SIZEOF (QUERY (impl_rep <* QUERY (pdr <* USEDIN (pd, - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' - IN TYPEOF (pdr.used_representation)) | - NOT (SIZEOF (QUERY (it <* impl_rep.used_representation.items | - ('AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PLACEMENT' - IN TYPEOF (it)) AND (it.name = 'orientation'))) = 1))) = 0))) = 0 ) ) ) = 0; - WR3: SIZEOF(QUERY( mfd <* mfds | NOT ((NOT (SIZEOF(['AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.ROUND_HOLE', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.BOSS', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.OUTSIDE_PROFILE', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.REMOVAL_VOLUME', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.FLAT_FACE', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.POCKET', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PROTRUSION', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.RIB_TOP', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.ROUNDED_END', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.SLOT', - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.STEP'] * TYPEOF(mfds)) = 1)) OR - ((SIZEOF(QUERY(pdr <* get_property_definition_representations (mfd) | - ( 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_MIM_LF.PLANAR_SHAPE_REPRESENTATION' - IN TYPEOF ( pdr.used_representation ) ) AND - ( pdr.used_representation.name ='maximum feature limit'))) >=0)) ) ) ) = 0; -END_RULE; - -(* Implicit interfaced from: Alternative_solution_mim *) - 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; - -(* Implicit interfaced from: Part_collection_mim *) - 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 , - 'AP210_ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN_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; - -(* Implicit interfaced from: Fabrication_technology_mim *) -(* E2: SUBTYPE_CONSTRAINT ft_property_definition_relationship_subtypes FOR PROPERTY_DEFINITION_RELATIONSHIP; *) - -(* E2: SUBTYPE_CONSTRAINT part_terminal_subtypes FOR SHAPE_ASPECT; *) - -(* E2: SUBTYPE_CONSTRAINT physical_unit_subtypes FOR PHYSICAL_UNIT; *) - -(* E2: SUBTYPE_CONSTRAINT aeaiapd_shape_definition_3d_intersection_subtypes FOR SHAPE_DEFINITION_3D_INTERSECTION; *) - -(* E2: SUBTYPE_CONSTRAINT packaged_part_subtypes FOR PACKAGED_PART; *) - -(* E2: SUBTYPE_CONSTRAINT ap210_apd_physical_component_subtypes FOR PHYSICAL_COMPONENT; *) - -(* E2: SUBTYPE_CONSTRAINT part_usage_view_subtypes FOR PHYSICAL_UNIT; *) - -(* Implicit interfaced from: Datum_difference_based_model_mim *) -(* E2: SUBTYPE_CONSTRAINT ddbm_model_parameter_subtypes FOR MODEL_PARAMETER; *) - -(* Implicit interfaced from: Interconnect_placement_requirements_mim *) -(* E2: SUBTYPE_CONSTRAINT ipr_predefined_requirement_view_definition_subtypes FOR PREDEFINED_REQUIREMENT_VIEW_DEFINITION; *) - -(* Implicit interfaced from: Pre_defined_datum_symbol_mim *) -(* E2: SUBTYPE_CONSTRAINT pdds_shape_definition_3d_intersection_subtypes FOR SHAPE_DEFINITION_3D_INTERSECTION; *) - -(* Implicit interfaced from: Via_component_mim *) -(* E2: SUBTYPE_CONSTRAINT via_subtypes FOR VIA; *) - -(* Implicit interfaced from: External_currency_mim *) -(* E2: SUBTYPE_CONSTRAINT currency_subtypes FOR CURRENCY; *) - -(* Implicit interfaced from: Part_and_zone_laminate_tables_mim *) -(* E2: SUBTYPE_CONSTRAINT pos_product_definition_subtypes FOR PRODUCT_DEFINITION; *) - -(* Implicit interfaced from: Ply_orientation_specification_mim *) -(* E2: SUBTYPE_CONSTRAINT pos_compound_representation_item_subtypes FOR COMPOUND_REPRESENTATION_ITEM; *) - -(* Implicit interfaced from: Change_management_mim *) -(* E2: SUBTYPE_CONSTRAINT cm_group_subtypes FOR GROUP; *) - -(* Implicit interfaced from: Change_management_mim *) -(* E2: SUBTYPE_CONSTRAINT cm_group_assignment_subtypes FOR GROUP_ASSIGNMENT; *) - -(* Implicit interfaced from: Assembly_module_with_cable_component_mim *) -(* E2: SUBTYPE_CONSTRAINT amwcc_shape_aspect_subtypes FOR SHAPE_ASPECT; *) - -(* Implicit interfaced from: Assembly_module_macro_definition_mim *) -(* E2: SUBTYPE_CONSTRAINT assembly_module_terminal_subtypes FOR ASSEMBLY_MODULE_TERMINAL; *) - -(* Implicit interfaced from: Package_mim *) -(* E2: SUBTYPE_CONSTRAINT package_part_feature_subtypes FOR SHAPE_ASPECT; *) - -(* Implicit interfaced from: Printed_physical_layout_template_mim *) -(* E2: SUBTYPE_CONSTRAINT pplt_part_template_definition_subtypes FOR PART_TEMPLATE_DEFINITION; *) - -(* Implicit interfaced from: Layered_interconnect_module_design_mim *) -(* E2: SUBTYPE_CONSTRAINT inter_stratum_feature_subtypes FOR INTER_STRATUM_FEATURE; *) - -(* Implicit interfaced from: Layered_interconnect_module_design_mim *) -(* E2: SUBTYPE_CONSTRAINT interconnect_module_terminal_subtypes FOR INTERCONNECT_MODULE_TERMINAL; *) - -(* Implicit interfaced from: Layered_interconnect_module_design_mim *) -(* E2: SUBTYPE_CONSTRAINT assembly_component_subtypes FOR ASSEMBLY_COMPONENT; *) - -(* Implicit interfaced from: Layered_interconnect_module_design_mim *) -(* E2: SUBTYPE_CONSTRAINT component_feature_subtypes FOR COMPONENT_FEATURE; *) - -(* Implicit interfaced from: Layered_interconnect_module_design_mim *) -(* E2: SUBTYPE_CONSTRAINT limd_component_terminal_subtypes FOR COMPONENT_TERMINAL; *) - -(* Implicit interfaced from: Layered_interconnect_module_design_mim *) -(* E2: SUBTYPE_CONSTRAINT array_placement_group_subtypes FOR ARRAY_PLACEMENT_GROUP; *) - -(* Implicit interfaced from: Layered_interconnect_module_design_mim *) -(* E2: SUBTYPE_CONSTRAINT limd_product_definition_subtypes FOR PRODUCT_DEFINITION; *) - -(* Implicit interfaced from: Assembly_module_design_mim *) -(* E2: SUBTYPE_CONSTRAINT amd_physical_component_subtypes FOR PHYSICAL_COMPONENT; *) - -(* Implicit interfaced from: Layered_interconnect_simple_template_mim *) -(* E2: SUBTYPE_CONSTRAINT list_template_definition_subtypes FOR PART_TEMPLATE_DEFINITION; *) - -(* Implicit interfaced from: Interface_component_mim *) -(* E2: SUBTYPE_CONSTRAINT physical_component_feature_subtypes FOR PHYSICAL_COMPONENT_FEATURE; *) - -(* Implicit interfaced from: Fabrication_technology_mim *) -(* E2: SUBTYPE_CONSTRAINT ft_property_definition_subtypes FOR PROPERTY_DEFINITION; *) - -(* E2: SUBTYPE_CONSTRAINT aeaiapd_component_terminal_subtypes FOR PHYSICAL_COMPONENT_TERMINAL; *) - -(* Implicit interfaced from: Land_mim *) -(* E2: SUBTYPE_CONSTRAINT stratum_feature_template_component_subtypes FOR STRATUM_FEATURE_TEMPLATE_COMPONENT; *) - -(* Implicit interfaced from: Layered_interconnect_module_with_printed_component_design_mim *) -(* E2: SUBTYPE_CONSTRAINT limwpcd_structured_layout_component_subtypes FOR STRUCTURED_LAYOUT_COMPONENT; *) - -(* Implicit interfaced from: Layered_interconnect_module_with_printed_component_design_mim *) -(* E2: SUBTYPE_CONSTRAINT limwpcd_assembly_component_subtypes FOR ASSEMBLY_COMPONENT; *) - -(* Implicit interfaced from: Basic_data_representation_mim *) -(* E2: SUBTYPE_CONSTRAINT representation_item_subtypes FOR REPRESENTATION_ITEM; *) - -(* Implicit interfaced from: shape_aspect_definition_schema *) -(* E2: SUBTYPE_CONSTRAINT sads_shape_aspect_subtypes FOR SHAPE_ASPECT; *) - -(* Implicit interfaced from: Characteristic_mim *) -(* E2: SUBTYPE_CONSTRAINT c_compound_representation_item_subtypes FOR COMPOUND_REPRESENTATION_ITEM; *) - -(* Implicit interfaced from: Footprint_definition_mim *) -(* E2: SUBTYPE_CONSTRAINT multi_stratum_structured_template_subtypes FOR MULTI_STRATUM_STRUCTURED_TEMPLATE; *) - -(* Implicit interfaced from: Assembly_component_placement_requirements_mim *) -(* E2: SUBTYPE_CONSTRAINT acpr_predefined_requirement_view_definition_subtypes FOR PREDEFINED_REQUIREMENT_VIEW_DEFINITION; *) - -(* Implicit interfaced from: Ap242_managed_model_based_3d_engineering_mim *) -(* E2: SUBTYPE_CONSTRAINT ap242_founded_item_subtypes FOR FOUNDED_ITEM; *) - -(* Implicit interfaced from: presentation_appearance_schema *) -(* E2: SUBTYPE_CONSTRAINT founded_item_subtypes FOR FOUNDED_ITEM; *) - -(* Implicit interfaced from: Appearance_assignment_mim *) -(* E2: SUBTYPE_CONSTRAINT aa_representation_item_subtypes FOR REPRESENTATION_ITEM; *) - -(* Implicit interfaced from: Document_assignment_mim *) -(* E2: SUBTYPE_CONSTRAINT subtype_mandatory_document_product_association FOR DOCUMENT_PRODUCT_ASSOCIATION; *) - -(* Implicit interfaced from: aic_machining_feature *) -(* E2: SUBTYPE_CONSTRAINT machining_feature_definition_subtypes FOR FEATURE_DEFINITION; *) - -(* Implicit interfaced from: kinematic_analysis_control_and_result_schema *) -(* E2: SUBTYPE_CONSTRAINT link_motion_representation_along_path_subtypes FOR LINK_MOTION_REPRESENTATION_ALONG_PATH; *) - -(* Implicit interfaced from: presentation_organization_schema *) -(* E2: SUBTYPE_CONSTRAINT pos_geometric_representation_item_subtypes FOR GEOMETRIC_REPRESENTATION_ITEM; *) - -(* Implicit interfaced from: presentation_definition_schema *) -(* E2: SUBTYPE_CONSTRAINT pds_geometric_representation_item_subtypes FOR GEOMETRIC_REPRESENTATION_ITEM; *) - -(* Implicit interfaced from: draughting_element_schema *) -(* E2: SUBTYPE_CONSTRAINT annotation_occurrence_subtypes FOR ANNOTATION_OCCURRENCE; *) - -(* Implicit interfaced from: draughting_element_schema *) -(* E2: SUBTYPE_CONSTRAINT annotation_curve_subtypes FOR ANNOTATION_CURVE_OCCURRENCE; *) - -(* Implicit interfaced from: presentation_appearance_schema *) -(* E2: SUBTYPE_CONSTRAINT pas_geometric_representation_item_subtypes FOR GEOMETRIC_REPRESENTATION_ITEM; *) - -(* Implicit interfaced from: Tagged_text_representation_mim *) -(* E2: SUBTYPE_CONSTRAINT ttr_descriptive_representation_item_subtypes FOR DESCRIPTIVE_REPRESENTATION_ITEM; *) - -(* Implicit interfaced from: kinematic_motion_representation_schema *) -(* E2: SUBTYPE_CONSTRAINT kmr_representation_subtypes FOR REPRESENTATION; *) - -(* Implicit interfaced from: kinematic_motion_representation_schema *) -(* E2: SUBTYPE_CONSTRAINT kmr_geometric_representation_context_subtypes FOR GEOMETRIC_REPRESENTATION_CONTEXT; *) - -(* Implicit interfaced from: kinematic_motion_representation_schema *) -(* E2: SUBTYPE_CONSTRAINT kmr_geometric_representation_item_subtypes FOR GEOMETRIC_REPRESENTATION_ITEM; *) - -(* Implicit interfaced from: presentation_resource_schema *) -(* E2: SUBTYPE_CONSTRAINT prs_geometric_representation_item_subtypes FOR GEOMETRIC_REPRESENTATION_ITEM; *) - -(* Implicit interfaced from: kinematic_structure_schema *) -(* E2: SUBTYPE_CONSTRAINT kss_representation_subtypes FOR REPRESENTATION; *) - -(* Implicit interfaced from: kinematic_property_schema *) -(* E2: SUBTYPE_CONSTRAINT kps_property_definition_subtypes FOR PROPERTY_DEFINITION; *) - -(* Implicit interfaced from: kinematic_state_schema *) -(* E2: SUBTYPE_CONSTRAINT kss_geometric_representation_item_subtypes FOR GEOMETRIC_REPRESENTATION_ITEM; *) - -(* Implicit interfaced from: kinematic_topology_schema *) -(* E2: SUBTYPE_CONSTRAINT kts_representation_subtypes FOR REPRESENTATION; *) - -(* Implicit interfaced from: Layered_interconnect_module_design_mim *) -(* E2: SUBTYPE_CONSTRAINT limd_part_template_definition_subtypes FOR PART_TEMPLATE_DEFINITION; *) - -(* Implicit interfaced from: Interconnect_placement_requirements_mim *) -(* E2: SUBTYPE_CONSTRAINT ipr_non_feature_shape_element_subtypes FOR SHAPE_ASPECT; *) - -(* Implicit interfaced from: Requirement_decomposition_mim *) -(* E2: SUBTYPE_CONSTRAINT rd_model_parameter_subtypes FOR MODEL_PARAMETER; *) - -(*** 2003=>1994 conversion: insert a rule to control if instances are legal according to USE/REF clauses ***) - -RULE validate_dependently_instantiable_entity_data_types FOR - (abstracted_expression_function,action_method_role,action_resource_type,application_defined_function,atom_based_literal,attribute_value_role,b_spline_basis,b_spline_function,basic_sparse_matrix,binary_literal,camera_model_d2,cartesian_complex_number_region,cartesian_transformation_operator,complex_number_literal,concept_feature_relationship,concept_feature_relationship_with_condition,constant_function,definite_integral_expression,definite_integral_function,edge_blended_solid,effectivity_context_role,elementary_function,event_occurrence_role,explicit_procedural_representation_item_relationship,explicit_table_function,expression_denoted_function,extended_tuple_space,externally_listed_data,finite_function,founded_item,function_application,function_space,general_linear_function,homogeneous_linear_function,imported_curve_function,imported_point_function,imported_surface_function,imported_volume_function,indirectly_selected_elements,integer_tuple_literal,linearized_table_function,listed_data,maths_enum_literal,maths_function,maths_tuple_literal,modified_solid_with_placed_configuration,one_direction_repeat_factor,oriented_open_shell,oriented_path,parallel_composed_function,partial_derivative_expression,partial_derivative_function,polar_complex_number_region,procedural_representation,procedural_representation_sequence,product_definition_effectivity,quantifier_expression,rationalize_function,real_tuple_literal,reindexed_array_function,repackaging_function,restriction_function,runout_zone_orientation,selector_function,series_composed_function,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,two_direction_repeat_factor,user_selected_elements,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 + abstracted_expression_function; - all_instances := all_instances + action_method_role; - all_instances := all_instances + action_resource_type; - all_instances := all_instances + application_defined_function; - all_instances := all_instances + atom_based_literal; - all_instances := all_instances + attribute_value_role; - all_instances := all_instances + b_spline_basis; - all_instances := all_instances + b_spline_function; - all_instances := all_instances + basic_sparse_matrix; - all_instances := all_instances + binary_literal; - all_instances := all_instances + camera_model_d2; - all_instances := all_instances + cartesian_complex_number_region; - all_instances := all_instances + cartesian_transformation_operator; - all_instances := all_instances + complex_number_literal; - all_instances := all_instances + concept_feature_relationship; - all_instances := all_instances + concept_feature_relationship_with_condition; - all_instances := all_instances + constant_function; - all_instances := all_instances + definite_integral_expression; - all_instances := all_instances + definite_integral_function; - all_instances := all_instances + edge_blended_solid; - all_instances := all_instances + effectivity_context_role; - all_instances := all_instances + elementary_function; - all_instances := all_instances + event_occurrence_role; - all_instances := all_instances + explicit_procedural_representation_item_relationship; - all_instances := all_instances + explicit_table_function; - all_instances := all_instances + expression_denoted_function; - all_instances := all_instances + extended_tuple_space; - all_instances := all_instances + externally_listed_data; - all_instances := all_instances + finite_function; - all_instances := all_instances + founded_item; - all_instances := all_instances + function_application; - all_instances := all_instances + function_space; - all_instances := all_instances + general_linear_function; - all_instances := all_instances + homogeneous_linear_function; - all_instances := all_instances + imported_curve_function; - all_instances := all_instances + imported_point_function; - all_instances := all_instances + imported_surface_function; - all_instances := all_instances + imported_volume_function; - all_instances := all_instances + indirectly_selected_elements; - all_instances := all_instances + integer_tuple_literal; - all_instances := all_instances + linearized_table_function; - all_instances := all_instances + listed_data; - all_instances := all_instances + maths_enum_literal; - all_instances := all_instances + maths_function; - all_instances := all_instances + maths_tuple_literal; - all_instances := all_instances + modified_solid_with_placed_configuration; - all_instances := all_instances + one_direction_repeat_factor; - all_instances := all_instances + oriented_open_shell; - all_instances := all_instances + oriented_path; - all_instances := all_instances + parallel_composed_function; - all_instances := all_instances + partial_derivative_expression; - all_instances := all_instances + partial_derivative_function; - all_instances := all_instances + polar_complex_number_region; - all_instances := all_instances + procedural_representation; - all_instances := all_instances + procedural_representation_sequence; - all_instances := all_instances + product_definition_effectivity; - all_instances := all_instances + quantifier_expression; - all_instances := all_instances + rationalize_function; - all_instances := all_instances + real_tuple_literal; - all_instances := all_instances + reindexed_array_function; - all_instances := all_instances + repackaging_function; - all_instances := all_instances + restriction_function; - all_instances := all_instances + runout_zone_orientation; - all_instances := all_instances + selector_function; - all_instances := all_instances + series_composed_function; - all_instances := all_instances + solid_with_depression; - all_instances := all_instances + solid_with_hole; - all_instances := all_instances + solid_with_pocket; - all_instances := all_instances + solid_with_protrusion; - all_instances := all_instances + solid_with_shape_element_pattern; - all_instances := all_instances + solid_with_slot; - all_instances := all_instances + swept_area_solid; - all_instances := all_instances + symbol_target; - all_instances := all_instances + two_direction_repeat_factor; - all_instances := all_instances + user_selected_elements; - all_instances := all_instances + volume; -;-- -number_of_input_instances := SIZEOF(all_instances); -(* Collect all type strings of all FOR instances into one set. *) -REPEAT i:=1 TO number_of_input_instances; - set_of_input_types := set_of_input_types + TYPEOF(all_instances[i]); -END_REPEAT; - -WHERE - WR1: dependently_instantiated(all_instances, set_of_input_types, - previous_in_chain); -END_RULE; - -FUNCTION dependently_instantiated( - set_of_input_instances : SET OF GENERIC:igen; - set_of_input_types : SET OF STRING; - previous_in_chain : LIST OF GENERIC:cgen): BOOLEAN; -(*'dependently_instantiated' To test whether all instances in the - input set_of_input_instances are referenced by independently - instantiable instances. If so, this function returns true. - Set_of_input_types includes the type strings for all input instances. - The instances in previous_in_chain are used to detect cyclic - references during recursive calls to this function. The parameter - lists already tested instances in a chain of references. -*) -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; -- end dependently_instantiated - - - -END_SCHEMA; -