+++ /dev/null
-(*
- $Id: mim_lf.exp,v 1.101 2019/07/01 16:42:01 kevin Exp $
- ISO TC184/SC4/WG12 N10517 - ISO/TS 10303-442 AP242 managed model based 3d engineering - EXPRESS MIM Long form
- Supersedes ISO TC184/SC4/WG3 N10384
-*)
-
--- -*- Mode: Express -*-
-
-(* ===================================================================================== *)
-(* Long form schema generated by The EXPRESS Data Manager compiler version 9.8.9B 20130507 *)
-(* Sat Jun 08 15:16:30 2019 *)
-(* The schema is converted from ISO10303 P11-2003 to ISO10303 P11-1994 *)
-(* ===================================================================================== *)
-
-(* Pretty Printed by Express Engine
- 5.0.21 (GIT eeng-5.0.21)
- Steel Bank CL 1.4.16 (64-bits)
-
- eengine --pretty
- -mode mim_longform
- -schema mim_lf.exp
- Line Width: 120
- Commandline:
- eengine --pretty
- -mode mim_longform
- -schema mim_lf.exp
-*)
-
-(* File: /Users/klt/Desktop/mim_lf.exp *)
-(* 1 Schema: AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF *)
-
-(* Interfaces: 0 *)
-(* Constants: 29 *)
-(* Types: 449 *)
-(* Entities: 2,118 *)
-(* Subtype_Constraints: 0 *)
-(* Functions: 316 *)
-(* Rules: 55 *)
-(* Procedures: 0 *)
-
-SCHEMA automotive_design;
-
-TYPE a3m_accuracy_type_name = ENUMERATION OF
- (atna_others,
- atns_area_measure,
- atns_length_measure,
- atns_others,
- atns_plane_angle_measure,
- atns_volume_measure);
-END_TYPE;
-
-TYPE a3m_detected_difference_type_name = ENUMERATION OF
- (ddna_a3ms_inspected_equivalence_element_select,
- ddna_assembly_component_usage,
- ddna_binary_assembly_constraint,
- ddna_cartesian_point,
- ddna_context_dependent_shape_representation,
- ddna_count_measure,
- ddna_multi_level_reference_designator,
- ddna_no_element,
- ddna_others,
- ddna_volume_measure,
- ddns_area_measure,
- ddns_cartesian_point,
- ddns_connected_face_set,
- ddns_count_measure,
- ddns_edge,
- ddns_face,
- ddns_five_count_measure,
- ddns_four_count_measure,
- ddns_length_measure,
- ddns_no_element,
- ddns_others,
- ddns_point_on_curve,
- ddns_point_on_surface,
- ddns_several_edges,
- ddns_several_faces,
- ddns_three_count_measure,
- ddns_two_cartesian_points,
- ddns_two_count_measure,
- ddns_volume_measure);
-END_TYPE;
-
-TYPE a3m_element_type_name = ENUMERATION OF
- (etna_others,
- etna_product_definition_or_reference,
- etna_shape_representation,
- etns_connected_edge_set,
- etns_connected_face_set,
- etns_external_representation_item,
- etns_manifold_solid_brep,
- etns_others,
- etns_point_cloud_dataset,
- etns_shell_based_surface_model,
- etns_shell_based_wireframe_model,
- etns_vertex_point);
-END_TYPE;
-
-TYPE a3m_equivalence_assessment_specification_select = SELECT
- (a3m_equivalence_assessment_by_logical_test,
- a3m_equivalence_assessment_by_numerical_test);
-END_TYPE;
-
-TYPE a3m_measured_data_type_name = ENUMERATION OF
- (mdna_boolean_value,
- mdna_context_dependent_measure,
- mdna_length_measure,
- mdna_length_measure_and_context_dependent_measure,
- mdna_others,
- mdna_plane_angle_measure,
- mdna_volume_measure,
- mdns_area_measure,
- mdns_boolean_value,
- mdns_length_measure,
- mdns_others,
- mdns_plane_angle_measure,
- mdns_volume_measure);
-END_TYPE;
-
-TYPE a3ma_accuracy_type_name = a3m_accuracy_type_name;
-END_TYPE;
-
-TYPE a3ma_detected_difference_type_name = a3m_detected_difference_type_name;
-END_TYPE;
-
-TYPE a3ma_element_type_name = a3m_element_type_name;
-END_TYPE;
-
-TYPE a3ma_measured_data_type_name = a3m_measured_data_type_name;
-END_TYPE;
-
-TYPE a3ms_accuracy_type_name = a3m_accuracy_type_name;
-END_TYPE;
-
-TYPE a3ms_detected_difference_type_name = a3m_detected_difference_type_name;
-END_TYPE;
-
-TYPE a3ms_element_type_name = a3m_element_type_name;
-END_TYPE;
-
-TYPE a3ms_inspected_equivalence_element_select = inspected_equivalence_element_select;
-END_TYPE;
-
-TYPE a3ms_measured_data_type_name = a3m_measured_data_type_name;
-END_TYPE;
-
-TYPE absorbed_dose_measure = REAL;
-END_TYPE;
-
-TYPE acceleration_measure = REAL;
-END_TYPE;
-
-TYPE accuracy_associated_target_select = SELECT
- (a3m_equivalence_criteria_representation,
- a3m_equivalence_criterion,
- a3m_equivalence_inspection_result_representation,
- data_equivalence_inspection_result);
-END_TYPE;
-
-TYPE action_items = SELECT
- (action,
- action_directive,
- action_method,
- action_method_relationship,
- action_property,
- action_property_representation,
- action_relationship,
- action_request_solution,
- alternate_product_relationship,
- alternative_solution_relationship,
- analysis_assignment,
- 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_description_text_assignment,
- applied_description_text_assignment_relationship,
- applied_document_reference,
- applied_document_usage_constraint_assignment,
- applied_effectivity_assignment,
- applied_event_occurrence_assignment,
- applied_external_identification_assignment,
- applied_identification_assignment,
- applied_ineffectivity_assignment,
- applied_organizational_project_assignment,
- applied_organization_assignment,
- applied_person_and_organization_assignment,
- applied_security_classification_assignment,
- applied_state_observed_assignment,
- applied_state_type_assignment,
- applied_time_interval_assignment,
- applied_usage_right,
- approval,
- approval_status,
- ascribable_state,
- ascribable_state_relationship,
- assembly_component_usage_substitute,
- assignment_object_relationship,
- breakdown_of,
- calendar_date,
- certification,
- certification_item,
- change_group,
- characterized_class,
- characterized_object,
- class,
- classification_item,
- class_system,
- condition,
- conditional_effectivity,
- configuration_design,
- configuration_effectivity,
- configuration_item,
- configured_effectivity_assignment,
- contract,
- date_and_time,
- date_and_time_assignment,
- date_assignment,
- dimensional_location,
- dimensional_size,
- directed_action_assignment,
- directed_dimensional_location,
- document_file,
- document_reference_item,
- document_relationship,
- document_type,
- draughting_model,
- drawing_revision,
- effectivity,
- evaluated_characteristic,
- evaluated_characteristic_of_product_as_individual_test_result,
- event_occurrence,
- evidence,
- exclusive_product_concept_feature_category,
- executed_action,
- frozen_assignment,
- general_property,
- general_property_relationship,
- group,
- group_relationship,
- hierarchical_interface_connection,
- identification_assignment_relationship,
- inclusion_product_concept_feature,
- identification_item,
- information_right,
- information_usage_right,
- interface_connection,
- interface_connector_as_planned,
- interface_connector_as_realized,
- interface_connector_design,
- interface_connector_occurrence,
- interface_connector_version,
- interface_definition_connection,
- interface_definition_for,
- interface_specification_version,
- material_designation,
- material_designation_characterization,
- measure_representation_item,
- mechanical_design_geometric_presentation_representation,
- organization,
- organizational_address,
- organizational_project,
- organizational_project_relationship,
- organization_relationship,
- package_product_concept_feature,
- person,
- person_and_organization,
- person_and_organization_address,
- presentation_area,
- process_operation,
- process_plan,
- product,
- product_category,
- product_class,
- product_concept,
- product_concept_feature,
- product_concept_feature_association,
- product_concept_feature_category,
- product_concept_feature_category_usage,
- product_definition,
- product_definition_element_relationship,
- product_definition_formation,
- product_definition_formation_relationship,
- product_definition_group_assignment,
- product_definition_relationship,
- product_definition_substitute,
- product_definition_usage,
- product_group,
- product_group_membership,
- product_group_relationship,
- product_identification,
- product_process_plan,
- product_related_product_category,
- product_relationship,
- property_definition,
- property_definition_relationship,
- property_definition_representation,
- representation,
- representation_item,
- representation_relationship,
- requirement_assigned_item,
- requirement_assignment,
- requirement_for_action_resource,
- resource_property,
- retention,
- rule_set,
- security_classification,
- security_classification_level,
- shape_aspect,
- shape_aspect_relationship,
- shape_representation,
- state_observed,
- state_observed_assignment,
- state_observed_relationship,
- state_type,
- state_type_assignment,
- state_type_relationship,
- structured_message,
- usage_association,
- validation,
- value_representation_item,
- verification,
- versioned_action_request);
-END_TYPE;
-
-TYPE action_method_items = SELECT
- (action,
- action_method,
- action_method_relationship,
- action_property,
- action_property_representation,
- action_request_solution,
- applied_action_assignment,
- applied_action_method_assignment,
- applied_action_request_assignment,
- applied_approval_assignment,
- applied_certification_assignment,
- applied_contract_assignment,
- applied_description_text_assignment,
- applied_document_reference,
- applied_document_usage_constraint_assignment,
- applied_effectivity_assignment,
- applied_event_occurrence_assignment,
- applied_external_identification_assignment,
- applied_ineffectivity_assignment,
- applied_organizational_project_assignment,
- applied_organization_assignment,
- applied_person_and_organization_assignment,
- applied_security_classification_assignment,
- applied_time_interval_assignment,
- applied_usage_right,
- approval,
- breakdown_of,
- condition,
- configuration_design,
- configuration_item,
- contract,
- contract_assignment,
- date_and_time,
- date_and_time_assignment,
- date_assignment,
- directed_action_assignment,
- document_file,
- effectivity,
- envelope,
- event_occurrence,
- evidence,
- executed_action,
- externally_defined_general_property,
- frozen_assignment,
- general_property,
- general_property_relationship,
- hierarchical_interface_connection,
- interface_connection,
- interface_connector_occurrence,
- interface_definition_connection,
- material_designation_characterization,
- measure_representation_item,
- organization,
- organizational_address,
- organizational_project,
- package_product_concept_feature,
- person,
- person_and_organization,
- person_and_organization_address,
- product,
- product_class,
- product_concept,
- product_concept_feature,
- product_concept_feature_association,
- product_concept_feature_category_usage,
- product_definition,
- product_definition_formation,
- product_definition_formation_relationship,
- product_definition_relationship,
- product_design_version_to_individual,
- product_group,
- product_group_membership,
- product_group_relationship,
- product_identification,
- property_definition,
- property_definition_representation,
- representation_item,
- representation_relationship,
- requirement_assignment,
- requirement_for_action_resource,
- requirement_view_definition_relationship,
- state_observed,
- state_type,
- state_type_relationship,
- structured_message,
- validation,
- value_representation_item,
- verification,
- versioned_action_request);
-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,
- contract,
- document_file,
- draughting_model,
- drawing_revision,
- executed_action,
- general_property,
- material_designation,
- mechanical_design_geometric_presentation_representation,
- organization,
- organizational_project,
- person,
- 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,
- product_identification,
- 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 analysed_item = SELECT
- (action_property_representation,
- alternate_product_relationship,
- ascribable_state,
- assembly_component_usage_substitute,
- evidence,
- interface_connection,
- interface_connector_occurrence,
- organization,
- organizational_project_relationship,
- organization_relationship,
- product,
- product_concept,
- product_definition,
- product_definition_context,
- product_definition_formation_relationship,
- product_definition_relationship,
- product_group_relationship,
- product_relationship,
- property_definition,
- property_definition_representation,
- requirement_assignment,
- state_observed,
- state_observed_assignment,
- state_observed_role,
- state_type,
- validation,
- verification,
- verification_relationship);
-END_TYPE;
-
-TYPE angle_direction_reference_select = SELECT
- (curve,
- direction,
- 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_deviation = positive_plane_angle_measure;
-END_TYPE;
-
-TYPE annotation_placeholder_occurrence_role = ENUMERATION OF
- (annotation_text,
- gps_data);
-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
- (annotation_text,
- annotation_text_character,
- composite_text,
- defined_character_glyph,
- text_literal);
-END_TYPE;
-
-TYPE ap242_assignment_object_select = assignment_object_select;
-END_TYPE;
-
-TYPE approval_item = SELECT
- (action,
- action_directive,
- action_method,
- action_method_relationship,
- action_property,
- action_property_representation,
- action_request_solution,
- alternate_product_relationship,
- applied_action_assignment,
- applied_action_method_assignment,
- applied_action_request_assignment,
- applied_approval_assignment,
- applied_certification_assignment,
- applied_classification_assignment,
- applied_contract_assignment,
- applied_description_text_assignment,
- applied_description_text_assignment_relationship,
- applied_document_reference,
- applied_document_usage_constraint_assignment,
- applied_effectivity_assignment,
- applied_event_occurrence_assignment,
- applied_external_identification_assignment,
- applied_identification_assignment,
- applied_ineffectivity_assignment,
- applied_organizational_project_assignment,
- applied_organization_assignment,
- applied_person_and_organization_assignment,
- applied_security_classification_assignment,
- applied_time_interval_assignment,
- applied_usage_right,
- assembly_component_usage_substitute,
- breakdown_of,
- certification,
- class,
- class_system,
- configuration_design,
- configuration_effectivity,
- configuration_item,
- configured_effectivity_assignment,
- contract,
- date,
- date_and_time_assignment,
- date_assignment,
- directed_action,
- directed_action_assignment,
- document,
- document_file,
- draughting_model,
- drawing_revision,
- effectivity,
- envelope,
- evaluated_characteristic_of_product_as_individual_test_result,
- evidence,
- exclusive_product_concept_feature_category,
- executed_action,
- externally_defined_general_property,
- frozen_assignment,
- general_property,
- general_property_relationship,
- group,
- group_relationship,
- identification_assignment_relationship,
- inclusion_product_concept_feature,
- information_usage_right,
- interface_connection,
- interface_connector_as_planned,
- interface_connector_as_realized,
- interface_connector_definition,
- interface_connector_design,
- interface_connector_design_to_planned,
- interface_connector_design_to_realized,
- interface_connector_occurrence,
- interface_connector_planned_to_realized,
- interface_connector_version,
- interface_definition_for,
- interface_specification_definition,
- interface_specification_version,
- in_zone,
- material_designation,
- material_designation_characterization,
- measure_representation_item,
- mechanical_design_geometric_presentation_representation,
- organization,
- organizational_address,
- organizational_project,
- organization_relationship,
- package_product_concept_feature,
- person_and_organization,
- presentation_area,
- process_plan,
- product,
- product_class,
- product_concept,
- product_concept_feature,
- product_concept_feature_association,
- product_concept_feature_category,
- product_concept_feature_category_usage,
- product_definition,
- product_definition_context,
- product_definition_formation,
- product_definition_formation_relationship,
- product_definition_group_assignment,
- product_definition_relationship,
- product_definition_substitute,
- product_definition_usage,
- product_process_plan,
- product_relationship,
- property_definition,
- property_definition_representation,
- representation,
- representation_item,
- representation_relationship,
- requirement_assignment,
- requirement_for_action_resource,
- requirement_source,
- resource_property,
- security_classification,
- shape_aspect_relationship,
- shape_representation,
- structured_message,
- validation,
- value_representation_item,
- verification,
- 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,
- cylindrical,
- rectangular,
- spherical,
- square);
-END_TYPE;
-
-TYPE assignment_object_select = SELECT
- (action_property,
- action_property_representation,
- applied_action_assignment,
- applied_action_method_assignment,
- applied_approval_assignment,
- applied_certification_assignment,
- applied_contract_assignment,
- applied_document_reference,
- applied_document_usage_constraint_assignment,
- applied_effectivity_assignment,
- applied_event_occurrence_assignment,
- applied_ineffectivity_assignment,
- applied_organizational_project_assignment,
- applied_organization_assignment,
- applied_person_and_organization_assignment,
- applied_security_classification_assignment,
- applied_time_interval_assignment,
- applied_usage_right,
- breakdown_of,
- date_and_time_assignment,
- date_assignment,
- directed_action_assignment,
- frozen_assignment,
- material_designation_characterization,
- organizational_address,
- person_and_organization_address,
- product_concept_feature_association,
- product_concept_feature_category_usage,
- property_definition,
- property_definition_representation,
- requirement_assignment,
- requirement_for_action_resource);
-END_TYPE;
-
-TYPE atom_based_value = SELECT
- (maths_atom);
-END_TYPE;
-
-TYPE attribute_classification_item = SELECT
- (action,
- action_directive,
- action_method,
- action_method_relationship,
- action_property,
- action_property_representation,
- action_relationship,
- action_request_solution,
- action_request_status,
- alternate_product_relationship,
- applied_action_assignment,
- applied_action_method_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_organizational_project_assignment,
- applied_organization_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,
- envelope,
- envelope_relationship,
- event_occurrence_relationship,
- executed_action,
- general_property,
- general_property_relationship,
- group,
- group_relationship,
- information_right,
- information_usage_right,
- interface_connection,
- interface_connector_definition,
- interface_definition_connection,
- interface_specification_definition,
- language,
- measure_representation_item,
- measure_with_unit,
- message_relationship,
- named_unit,
- organizational_address,
- organizational_project_relationship,
- organization_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,
- state_observed,
- state_observed_assignment,
- state_observed_relationship,
- state_type,
- state_type_assignment,
- state_type_relationship,
- structured_message,
- 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,
- action_method,
- action_method_relationship,
- actuated_kinematic_pair,
- alternate_product_relationship,
- application_context,
- applied_action_assignment,
- applied_action_method_assignment,
- 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,
- envelope,
- envelope_relationship,
- event_occurrence,
- evidence,
- external_source,
- general_property,
- general_property_relationship,
- geometric_representation_item,
- geometric_tolerance,
- group,
- group_relationship,
- identification_role,
- information_right,
- information_usage_right,
- interface_connection,
- interface_connector_occurrence,
- interface_definition_connection,
- interface_definition_for,
- kinematic_pair,
- make_from_usage_option,
- mapped_item,
- message_relationship,
- multi_language_attribute_assignment,
- name_assignment,
- object_role,
- organizational_project,
- organizational_project_relationship,
- organizational_project_role,
- organization_relationship,
- organization_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_group,
- product_group_relationship,
- product_related_product_category,
- property_definition,
- property_definition_relationship,
- representation,
- representation_item,
- representation_relationship,
- requirement_assignment,
- requirement_for_action_resource,
- requirement_source,
- resource_property,
- resource_requirement_type,
- security_classification,
- security_classification_assignment,
- shape_aspect,
- shape_aspect_relationship,
- shape_representation,
- state_observed,
- state_observed_relationship,
- state_type,
- state_type_relationship,
- structured_message,
- styled_item,
- time_interval_role,
- topological_representation_item,
- uncertainty_measure_with_unit,
- uncertainty_qualifier,
- usage_association,
- validation,
- verification,
- versioned_action_request,
- versioned_action_request_relationship);
-END_TYPE;
-
-TYPE attribute_select = SELECT
- (product_group_context,
- product_group_purpose);
-END_TYPE;
-
-TYPE attribute_type = SELECT
- (label,
- text);
-END_TYPE;
-
-TYPE axial_geometry_constraint_element = SELECT
- (circle,
- conical_surface,
- cylindrical_surface,
- line,
- plane,
- point,
- revolved_area_solid,
- revolved_face_solid,
- right_circular_cone,
- right_circular_cylinder,
- sphere,
- spherical_surface,
- surface_of_revolution,
- toroidal_surface,
- torus);
-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('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRIMITIVE_2D' IN TYPEOF(SELF));
-END_TYPE;
-
-TYPE basis_11_direction_member = SELECT
- (cartesian_11,
- curve_11,
- cylindrical_11,
- point_array,
- polar_11,
- user_defined_11);
-END_TYPE;
-
-TYPE blend_end_condition_select = SELECT
- (edge_curve,
- point_on_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
- (boolean_result_2d,
- bounded_primitive_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_rotate_angle,
- box_slant_angle,
- box_width);
-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_intersection_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
- (action_method,
- alternate_product_relationship,
- analysis_assignment,
- applied_action_method_assignment,
- assembly_component_usage,
- evidence,
- executed_action,
- interface_connection,
- interface_connector_version,
- interface_definition_connection,
- interface_specification_version,
- make_from_usage_option,
- organizational_project,
- product,
- product_definition,
- product_definition_formation,
- product_definition_formation_relationship,
- product_definition_occurrence,
- product_definition_occurrence_reference,
- product_definition_relationship,
- product_group,
- product_group_relationship,
- product_identification,
- product_relationship,
- requirement_view_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_method,
- action_method_relationship,
- action_property,
- action_property_representation,
- action_relationship,
- applied_action_assignment,
- applied_action_method_assignment,
- applied_action_request_assignment,
- applied_approval_assignment,
- applied_certification_assignment,
- applied_contract_assignment,
- applied_document_reference,
- applied_document_usage_constraint_assignment,
- applied_effectivity_assignment,
- applied_event_occurrence_assignment,
- applied_ineffectivity_assignment,
- applied_organizational_project_assignment,
- applied_organization_assignment,
- applied_person_and_organization_assignment,
- applied_security_classification_assignment,
- applied_time_interval_assignment,
- applied_usage_right,
- assembly_component_usage,
- assembly_component_usage_substitute,
- assignment_object_relationship,
- breakdown_of,
- class,
- condition,
- conditional_effectivity,
- configuration_effectivity,
- contract,
- date_and_time_assignment,
- date_assignment,
- directed_action_assignment,
- document_file,
- effectivity,
- event_occurrence,
- exclusive_product_concept_feature_category,
- frozen_assignment,
- general_property_relationship,
- inclusion_product_concept_feature,
- material_designation,
- material_designation_characterization,
- measure_representation_item,
- organization,
- organizational_address,
- organizational_project,
- organizational_project_relationship,
- package_product_concept_feature,
- person,
- person_and_organization,
- person_and_organization_address,
- process_operation,
- process_plan,
- product,
- product_class,
- 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_group_assignment,
- product_definition_occurrence,
- product_definition_occurrence_reference,
- product_definition_relationship,
- product_definition_substitute,
- product_identification,
- product_process_plan,
- project_item,
- property_definition,
- property_definition_representation,
- representation_relationship,
- requirement_assignment,
- requirement_for_action_resource,
- requirement_view_definition_relationship,
- value_representation_item);
-END_TYPE;
-
-TYPE change_relationship_select = SELECT
- (action_relationship,
- alternative_solution_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
- (descriptive_measure,
- length_measure,
- measure_with_unit,
- ratio_measure);
-END_TYPE;
-
-TYPE character_style_select = SELECT
- (character_glyph_style_outline,
- character_glyph_style_stroke,
- 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_item,
- characterized_object,
- characterized_product_definition,
- shape_definition);
-END_TYPE;
-
-TYPE characterized_item = SELECT
- (dimensional_size,
- geometric_tolerance,
- item_identified_representation_usage);
-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_occurrence,
- product_definition_relationship,
- product_definition_relationship_relationship);
-END_TYPE;
-
-TYPE characterized_property_representation = SELECT
- (action_property_representation,
- dimensional_characteristic_representation,
- property_definition_representation,
- resource_property_representation);
-END_TYPE;
-
-TYPE characterized_resource_definition = SELECT
- (action_resource,
- action_resource_relationship,
- action_resource_requirement);
-END_TYPE;
-
-TYPE chordal_deviation = positive_length_measure;
-END_TYPE;
-
-TYPE class_usage_effectivity_context_item = SELECT
- (product_definition);
-END_TYPE;
-
-TYPE classification_item = SELECT
- (action,
- action_directive,
- action_directive_relationship,
- action_method,
- action_method_relationship,
- action_property,
- action_property_representation,
- action_relationship,
- action_request_solution,
- action_request_status,
- action_resource,
- action_resource_relationship,
- address,
- alternate_product_relationship,
- alternative_solution_relationship,
- analysis_assignment,
- applied_action_assignment,
- applied_action_method_assignment,
- applied_action_request_assignment,
- applied_approval_assignment,
- applied_certification_assignment,
- applied_classification_assignment_relationship,
- applied_contract_assignment,
- applied_date_and_time_assignment,
- applied_date_assignment,
- applied_description_text_assignment,
- applied_description_text_assignment_relationship,
- applied_document_reference,
- applied_document_usage_constraint_assignment,
- applied_effectivity_assignment,
- applied_event_occurrence_assignment,
- applied_external_identification_assignment,
- applied_external_identification_assignment_relationship,
- applied_identification_assignment,
- applied_ineffectivity_assignment,
- applied_organizational_project_assignment,
- applied_organization_assignment,
- applied_person_and_organization_assignment,
- applied_security_classification_assignment,
- applied_time_interval_assignment,
- applied_usage_right,
- approval,
- approval_person_organization,
- approval_relationship,
- approval_status,
- assembly_component_usage_substitute,
- assignment_object_relationship,
- attribute_language_assignment,
- breakdown_context,
- breakdown_element_realization,
- breakdown_of,
- calendar_date,
- certification,
- change_element_sequence,
- change_group,
- characterized_class,
- characterized_object,
- class,
- classified_item,
- configuration_design,
- configuration_effectivity,
- configuration_item,
- configuration_item_relationship,
- context_dependent_unit,
- contract,
- contract_relationship,
- conversion_based_unit,
- date_and_time,
- date_and_time_assignment,
- date_assignment,
- definitional_representation_relationship,
- derived_unit,
- descriptive_representation_item,
- directed_action,
- directed_action_assignment,
- document_file,
- document_relationship,
- document_type,
- effectivity,
- effectivity_relationship,
- envelope,
- envelope_relationship,
- evaluated_characteristic,
- event_occurrence,
- event_occurrence_relationship,
- evidence,
- executed_action,
- feature_definition,
- general_feature,
- general_property,
- general_property_relationship,
- generic_property_relationship,
- group,
- group_relationship,
- identification_assignment,
- identification_assignment_relationship,
- information_right,
- information_usage_right,
- interface_connection,
- interface_connector_as_planned,
- interface_connector_as_realized,
- interface_connector_design,
- interface_connector_design_to_planned,
- interface_connector_design_to_realized,
- interface_connector_occurrence,
- interface_connector_planned_to_realized,
- interface_definition_connection,
- interface_definition_for,
- in_zone,
- language,
- link_motion_relationship,
- local_time,
- location,
- location_relationship,
- material_designation,
- material_designation_characterization,
- measure_qualification,
- measure_representation_item,
- measure_with_unit,
- message_relationship,
- multi_language_attribute_assignment,
- named_unit,
- organization,
- organizational_address,
- organizational_project,
- organizational_project_relationship,
- organization_relationship,
- person,
- person_and_organization,
- person_and_organization_address,
- plus_minus_tolerance,
- process_operation,
- process_plan,
- process_product_association,
- product,
- product_concept,
- product_concept_context,
- product_concept_feature,
- product_concept_feature_association,
- product_concept_feature_category,
- product_concept_feature_category_usage,
- product_concept_relationship,
- product_definition,
- product_definition_context,
- product_definition_formation,
- product_definition_formation_relationship,
- product_definition_relationship,
- product_definition_usage,
- product_definition_usage_relationship,
- product_design_to_individual,
- product_design_version_to_individual,
- product_group,
- product_group_membership,
- product_group_relationship,
- product_process_plan,
- product_relationship,
- property_definition,
- property_definition_representation,
- representation,
- representation_context,
- representation_item,
- representation_relationship,
- requirement_assignment,
- requirement_for_action_resource,
- requirement_source,
- resource_property,
- retention,
- satisfies_requirement,
- security_classification,
- security_classification_level,
- shape_aspect,
- shape_aspect_relationship,
- shape_feature_definition_relationship,
- state_definition_to_state_assignment_relationship,
- state_observed,
- state_observed_assignment,
- state_observed_relationship,
- state_observed_role,
- state_type,
- state_type_assignment,
- state_type_relationship,
- structured_message,
- time_interval_relationship,
- type_qualifier,
- uncertainty_measure_with_unit,
- usage_association,
- validation,
- verification,
- versioned_action_request,
- versioned_action_request_relationship);
-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 colour_type_enum = ENUMERATION OF
- (rgb8,
- rgbt8);
-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,
- product_definition_occurrence);
-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 connected_edge_with_length_set_items = SELECT
- (connected_edge_set,
- path,
- vertex_on_edge);
-END_TYPE;
-
-TYPE constraint_group_member = SELECT
- (explicit_constraint,
- simultaneous_constraint_group);
-END_TYPE;
-
-TYPE constructive_geometry_representation_or_shape_representation = SELECT
- (constructive_geometry_representation,
- shape_representation);
-END_TYPE;
-
-TYPE context_dependent_measure = REAL;
-END_TYPE;
-
-TYPE contract_item = SELECT
- (action_directive,
- action_method,
- action_method_relationship,
- alternate_product_relationship,
- applied_action_method_assignment,
- applied_classification_assignment,
- applied_description_text_assignment,
- applied_external_identification_assignment,
- applied_identification_assignment,
- applied_organization_assignment,
- applied_person_and_organization_assignment,
- directed_action,
- drawing_revision,
- executed_action,
- information_usage_right,
- interface_connector_as_planned,
- interface_connector_as_realized,
- interface_connector_design,
- organization,
- organizational_project,
- person_and_organization,
- product,
- product_definition,
- product_definition_context,
- product_definition_formation,
- product_definition_formation_relationship,
- product_definition_relationship,
- product_group,
- product_group_relationship,
- product_identification,
- requirement_assignment,
- requirement_source,
- security_classification,
- structured_message,
- validation,
- verification,
- versioned_action_request);
-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
- (axis2_placement_2d,
- csg_solid_2d,
- mapped_item);
-END_TYPE;
-
-TYPE csg_primitive = SELECT
- (block,
- bounded_primitive_2d,
- cyclide_segment_solid,
- eccentric_cone,
- ellipsoid,
- faceted_primitive,
- rectangular_pyramid,
- 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
- (boolean_result_2d,
- bounded_primitive_2d);
-END_TYPE;
-
-TYPE current_element_assignment_select = SELECT
- (add_element,
- modify_element);
-END_TYPE;
-
-TYPE curve_font_or_scaled_curve_font_select = SELECT
- (curve_style_font_and_scaling,
- curve_style_font_select);
-END_TYPE;
-
-TYPE curve_on_surface = SELECT
- (composite_curve_on_surface,
- pcurve,
- surface_curve);
-END_TYPE;
-
-TYPE curve_or_annotation_curve_occurrence = SELECT
- (annotation_curve_occurrence,
- curve);
-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,
- externally_defined_curve_font,
- pre_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,
- analysis_assignment,
- applied_action_assignment,
- applied_action_method_assignment,
- applied_certification_assignment,
- applied_classification_assignment,
- applied_contract_assignment,
- applied_document_reference,
- applied_document_usage_constraint_assignment,
- applied_effectivity_assignment,
- applied_event_occurrence_assignment,
- applied_identification_assignment,
- applied_organizational_project_assignment,
- applied_organization_assignment,
- applied_person_and_organization_assignment,
- applied_security_classification_assignment,
- applied_usage_right,
- approval,
- approval_person_organization,
- approval_status,
- ascribable_state,
- assembly_component_usage_substitute,
- certification,
- class,
- class_system,
- configuration_design,
- configuration_item,
- configured_effectivity_assignment,
- contract,
- data_equivalence_definition,
- data_quality_definition,
- date_and_time_assignment,
- date_assignment,
- directed_action,
- document,
- document_file,
- draughting_model,
- drawing_revision,
- effectivity,
- envelope,
- event_occurrence,
- evidence,
- executed_action,
- general_property,
- general_property_relationship,
- information_usage_right,
- interface_connection,
- interface_connector_as_planned,
- interface_connector_as_realized,
- interface_connector_design_to_planned,
- interface_connector_design_to_realized,
- interface_connector_occurrence,
- interface_connector_planned_to_realized,
- interface_definition_connection,
- interface_definition_for,
- material_designation,
- mechanical_design_geometric_presentation_representation,
- organizational_address,
- organizational_project,
- organization_relationship,
- person,
- 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_context,
- product_definition_formation,
- product_definition_formation_relationship,
- product_definition_relationship,
- product_definition_substitute,
- product_group,
- product_group_membership,
- product_group_relationship,
- product_identification,
- property_definition,
- property_definition_representation,
- representation,
- requirement_assignment,
- requirement_for_action_resource,
- requirement_source,
- resource_property,
- rule_action,
- security_classification,
- security_classification_level,
- shape_representation,
- state_observed,
- state_observed_assignment,
- state_observed_relationship,
- state_type,
- state_type_assignment,
- state_type_relationship,
- structured_message,
- validation,
- verification,
- verification_relationship,
- versioned_action_request);
-END_TYPE;
-
-TYPE date_item = SELECT
- (action,
- action_directive,
- action_method,
- action_property,
- action_relationship,
- action_request_solution,
- alternate_product_relationship,
- analysis_assignment,
- applied_action_assignment,
- applied_action_method_assignment,
- applied_certification_assignment,
- applied_classification_assignment,
- applied_contract_assignment,
- applied_document_reference,
- applied_document_usage_constraint_assignment,
- applied_effectivity_assignment,
- applied_event_occurrence_assignment,
- applied_identification_assignment,
- applied_organizational_project_assignment,
- applied_organization_assignment,
- applied_person_and_organization_assignment,
- applied_security_classification_assignment,
- applied_usage_right,
- approval,
- approval_person_organization,
- approval_status,
- ascribable_state,
- assembly_component_usage_substitute,
- certification,
- class,
- class_system,
- configuration_design,
- configuration_item,
- configured_effectivity_assignment,
- contract,
- data_equivalence_definition,
- data_quality_definition,
- date_and_time_assignment,
- date_assignment,
- directed_action,
- document,
- document_file,
- draughting_model,
- drawing_revision,
- effectivity,
- envelope,
- event_occurrence,
- evidence,
- executed_action,
- general_property,
- general_property_relationship,
- information_usage_right,
- interface_connection,
- interface_connector_as_planned,
- interface_connector_as_realized,
- interface_connector_design_to_planned,
- interface_connector_design_to_realized,
- interface_connector_occurrence,
- interface_connector_planned_to_realized,
- interface_definition_connection,
- interface_definition_for,
- material_designation,
- mechanical_design_geometric_presentation_representation,
- organizational_address,
- organizational_project,
- organization_relationship,
- person,
- 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_context,
- product_definition_formation,
- product_definition_formation_relationship,
- product_definition_relationship,
- product_definition_substitute,
- product_group,
- product_group_membership,
- product_group_relationship,
- product_identification,
- property_definition,
- property_definition_representation,
- representation,
- requirement_assignment,
- requirement_for_action_resource,
- requirement_source,
- resource_property,
- security_classification,
- security_classification_level,
- shape_representation,
- state_observed,
- state_observed_assignment,
- state_observed_relationship,
- state_type,
- state_type_assignment,
- state_type_relationship,
- structured_message,
- validation,
- verification,
- verification_relationship,
- 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 <= 31};
-END_TYPE;
-
-TYPE day_in_week_number = INTEGER;
-WHERE
- WR1: { 1 <= SELF <= 7 };
-END_TYPE;
-
-TYPE day_in_year_number = INTEGER;
-WHERE
- WR1: {1 <= SELF <= 366};
-END_TYPE;
-
-TYPE defined_glyph_select = SELECT
- (externally_defined_character_glyph,
- pre_defined_character_glyph);
-END_TYPE;
-
-TYPE defined_symbol_select = SELECT
- (externally_defined_symbol,
- pre_defined_symbol);
-END_TYPE;
-
-TYPE derived_property_select = SELECT
- (action_property,
- dimensional_location,
- dimensional_size,
- geometric_tolerance,
- property_definition,
- 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,
- organizational_project,
- organization_role,
- person_and_organization,
- person_and_organization_role,
- property_definition_representation,
- representation);
-END_TYPE;
-
-TYPE description_item = SELECT
- (action,
- action_directive,
- action_directive_relationship,
- action_method,
- action_method_relationship,
- action_property,
- action_property_representation,
- action_relationship,
- address,
- alternate_product_relationship,
- alternative_solution_relationship,
- analysis_representation_context,
- applied_action_assignment,
- applied_action_method_assignment,
- applied_action_request_assignment,
- applied_approval_assignment,
- applied_certification_assignment,
- applied_classification_assignment,
- applied_classification_assignment_relationship,
- applied_contract_assignment,
- applied_description_text_assignment,
- applied_description_text_assignment_relationship,
- applied_document_reference,
- applied_document_usage_constraint_assignment,
- applied_effectivity_assignment,
- applied_event_occurrence_assignment,
- applied_external_identification_assignment,
- applied_external_identification_assignment_relationship,
- applied_identification_assignment,
- applied_ineffectivity_assignment,
- applied_location_assignment,
- applied_location_representation_assignment,
- applied_organizational_project_assignment,
- applied_organization_assignment,
- applied_person_and_organization_assignment,
- applied_security_classification_assignment,
- applied_state_observed_assignment,
- applied_state_type_assignment,
- applied_time_interval_assignment,
- applied_usage_right,
- approval,
- approval_relationship,
- ascribable_state,
- ascribable_state_relationship,
- assembly_component_usage_substitute,
- assignment_object_relationship,
- breakdown_element_group_assignment,
- certification,
- change_element_sequence,
- change_group,
- configuration_design,
- configuration_effectivity,
- configuration_item,
- configuration_item_relationship,
- contract,
- contract_relationship,
- data_environment,
- date_and_time_assignment,
- date_assignment,
- directed_action_assignment,
- document_file,
- document_relationship,
- effectivity,
- effectivity_relationship,
- envelope,
- envelope_relationship,
- evaluated_characteristic,
- event_occurrence,
- event_occurrence_relationship,
- exclusive_product_concept_feature_category,
- general_property,
- general_property_relationship,
- generic_property_relationship,
- geometric_item_specific_usage,
- global_uncertainty_assigned_context,
- global_unit_assigned_context,
- group,
- group_relationship,
- location,
- location_relationship,
- material_designation_characterization,
- measure_qualification,
- measure_with_unit,
- message_relationship,
- organization,
- organizational_address,
- organizational_project,
- organizational_project_relationship,
- organization_relationship,
- organization_type,
- package_product_concept_feature,
- person,
- person_and_organization,
- person_and_organization_address,
- process_operation,
- process_plan,
- process_product_association,
- product,
- product_concept,
- product_concept_context,
- product_concept_feature,
- product_concept_feature_association,
- product_concept_feature_category,
- product_concept_feature_category_usage,
- product_concept_relationship,
- product_definition,
- product_definition_context,
- product_definition_formation,
- product_definition_formation_relationship,
- product_definition_group_assignment,
- product_definition_relationship,
- product_definition_usage,
- product_definition_usage_relationship,
- product_group_membership,
- product_group_relationship,
- product_process_plan,
- product_relationship,
- property_definition,
- property_definition_representation,
- representation,
- representation_context,
- representation_item,
- representation_relationship,
- requirement_for_action_resource,
- retention,
- satisfies_requirement,
- security_classification,
- shape_aspect,
- shape_aspect_relationship,
- shape_feature_definition,
- shape_feature_definition_relationship,
- state_definition_to_state_assignment_relationship,
- state_observed,
- state_observed_assignment,
- state_observed_relationship,
- state_observed_role,
- state_type,
- state_type_assignment,
- state_type_relationship,
- state_type_role,
- structured_message,
- time_interval,
- time_interval_relationship,
- uncertainty_measure_with_unit,
- uncertainty_qualifier,
- usage_association,
- verification_relationship,
- versioned_action_request,
- versioned_action_request_relationship);
-END_TYPE;
-
-TYPE descriptive_measure = STRING;
-END_TYPE;
-
-TYPE detailed_report_style_type = ENUMERATION OF
- (inspected_element,
- defective_element);
-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 directed_tolerance_zone_type = ENUMERATION OF
- (perpendicular,
- parallel,
- including);
-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_method_relationship,
- action_property,
- action_property_representation,
- action_relationship,
- analysis_assignment,
- applied_action_assignment,
- applied_action_method_assignment,
- applied_action_request_assignment,
- applied_approval_assignment,
- applied_certification_assignment,
- applied_classification_assignment,
- applied_contract_assignment,
- applied_description_text_assignment,
- applied_description_text_assignment_relationship,
- applied_document_reference,
- applied_document_usage_constraint_assignment,
- applied_effectivity_assignment,
- applied_event_occurrence_assignment,
- applied_external_identification_assignment,
- applied_identification_assignment,
- applied_ineffectivity_assignment,
- applied_organizational_project_assignment,
- applied_organization_assignment,
- applied_person_and_organization_assignment,
- applied_security_classification_assignment,
- applied_time_interval_assignment,
- applied_usage_right,
- approval,
- approval_person_organization,
- approval_relationship,
- assembly_component_usage,
- assembly_component_usage_substitute,
- breakdown_context,
- breakdown_of,
- certification,
- change_group,
- characterized_class,
- characterized_object,
- class,
- class_system,
- condition,
- configuration_design,
- configuration_item,
- contract,
- contract_relationship,
- date_and_time_assignment,
- date_assignment,
- descriptive_representation_item,
- dimensional_size,
- directed_action_assignment,
- document_relationship,
- effectivity,
- effectivity_relationship,
- evaluated_characteristic_of_product_as_individual_test_result,
- evidence,
- exclusive_product_concept_feature_category,
- executed_action,
- externally_conditioned_data_quality_criterion,
- externally_defined_dimension_definition,
- externally_defined_item,
- feature_definition,
- frozen_assignment,
- general_property,
- general_property_relationship,
- group,
- group_relationship,
- identification_assignment_relationship,
- information_right,
- information_usage_right,
- interface_connection,
- interface_connector_as_planned,
- interface_connector_as_realized,
- interface_connector_design,
- interface_connector_design_to_planned,
- interface_connector_design_to_realized,
- interface_connector_occurrence,
- interface_connector_planned_to_realized,
- interface_definition_connection,
- in_zone,
- material_designation,
- material_designation_characterization,
- measure_representation_item,
- organization,
- organizational_address,
- organizational_project,
- organizational_project_relationship,
- organization_relationship,
- package_product_concept_feature,
- person,
- person_and_organization,
- person_and_organization_address,
- presentation_area,
- process_plan,
- product,
- product_category,
- product_concept,
- product_concept_feature,
- product_concept_feature_association,
- product_concept_feature_category,
- product_concept_feature_category_usage,
- product_definition,
- product_definition_context,
- product_definition_formation,
- product_definition_formation_relationship,
- product_definition_group_assignment,
- product_definition_process,
- product_definition_relationship,
- product_definition_substitute,
- product_definition_usage,
- product_design_to_individual,
- product_design_version_to_individual,
- product_group,
- product_group_membership,
- product_group_relationship,
- product_process_plan,
- product_related_product_category,
- product_relationship,
- property_definition,
- property_definition_representation,
- representation,
- representation_item,
- representation_relationship,
- requirement_assignment,
- requirement_for_action_resource,
- requirement_source,
- resource_requirement_type,
- retention,
- rule_set,
- security_classification,
- shape_aspect,
- shape_aspect_relationship,
- state_observed,
- state_type,
- structured_message,
- time_interval,
- time_interval_relationship,
- usage_association,
- validation,
- value_representation_item,
- verification,
- verification_relationship,
- 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_placeholder_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
- (angularity_tolerance,
- 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_organizational_project_assignment,
- applied_organization_assignment,
- applied_person_and_organization_assignment,
- applied_security_classification_assignment,
- applied_time_interval_assignment,
- applied_usage_right,
- circular_runout_tolerance,
- coaxiality_tolerance,
- concentricity_tolerance,
- cylindricity_tolerance,
- dimensional_location,
- dimensional_size,
- flatness_tolerance,
- geometric_tolerance,
- geometric_tolerance_with_datum_reference,
- geometric_tolerance_with_defined_area_unit,
- geometric_tolerance_with_defined_unit,
- geometric_tolerance_with_maximum_tolerance,
- geometric_tolerance_with_modifiers,
- line_profile_tolerance,
- modified_geometric_tolerance,
- parallelism_tolerance,
- perpendicularity_tolerance,
- position_tolerance,
- product_definition_relationship,
- product_definition_shape,
- property_definition,
- roundness_tolerance,
- shape_aspect,
- shape_aspect_relationship,
- straightness_tolerance,
- surface_profile_tolerance,
- symmetry_tolerance,
- total_runout_tolerance,
- unequally_disposed_geometric_tolerance);
-END_TYPE;
-
-TYPE draughting_model_item_select = SELECT
- (axis2_placement,
- camera_model,
- draughting_callout,
- mapped_item,
- styled_item);
-END_TYPE;
-
-TYPE draughting_subfigure_representation_item = SELECT
- (annotation_occurrence,
- axis2_placement,
- draughting_callout);
-END_TYPE;
-
-TYPE draughting_symbol_representation_item = SELECT
- (annotation_curve_occurrence,
- annotation_fill_area_occurrence,
- annotation_symbol_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_directive,
- action_directive_relationship,
- action_method,
- action_method_relationship,
- action_property,
- action_property_representation,
- action_relationship,
- alternative_solution_relationship,
- applied_action_assignment,
- applied_action_method_assignment,
- applied_action_request_assignment,
- applied_approval_assignment,
- applied_certification_assignment,
- applied_classification_assignment_relationship,
- applied_contract_assignment,
- applied_description_text_assignment,
- applied_description_text_assignment_relationship,
- applied_document_reference,
- applied_document_usage_constraint_assignment,
- applied_effectivity_assignment,
- applied_event_occurrence_assignment,
- applied_external_identification_assignment,
- applied_external_identification_assignment_relationship,
- applied_identification_assignment,
- applied_ineffectivity_assignment,
- applied_organizational_project_assignment,
- applied_organization_assignment,
- applied_person_and_organization_assignment,
- applied_security_classification_assignment,
- applied_time_interval_assignment,
- applied_usage_right,
- approval_relationship,
- assembly_component_usage_substitute,
- assignment_object_relationship,
- breakdown_of,
- class,
- class_system,
- condition,
- conditional_effectivity,
- configuration_design,
- configuration_item,
- configuration_item_relationship,
- configured_effectivity_assignment,
- contract,
- date_and_time_assignment,
- date_assignment,
- directed_action_assignment,
- document_file,
- document_relationship,
- draughting_model,
- drawing_revision,
- effectivity_relationship,
- event_occurrence_relationship,
- evidence,
- exclusive_product_concept_feature_category,
- executed_action,
- externally_defined_general_property,
- frozen_assignment,
- general_property,
- general_property_relationship,
- generic_property_relationship,
- group,
- identification_assignment_relationship,
- inclusion_product_concept_feature,
- interface_connection,
- interface_connector_design_to_planned,
- interface_connector_design_to_realized,
- interface_connector_occurrence,
- interface_connector_planned_to_realized,
- interface_definition_for,
- in_zone,
- link_motion_relationship,
- material_designation,
- material_designation_characterization,
- measure_representation_item,
- mechanical_design_geometric_presentation_representation,
- multi_language_attribute_assignment,
- organization,
- organizational_address,
- organizational_project,
- organizational_project_relationship,
- organization_relationship,
- package_product_concept_feature,
- person_and_organization,
- person_and_organization_address,
- presentation_area,
- process_operation,
- process_plan,
- product,
- product_class,
- product_concept,
- product_concept_feature,
- product_concept_feature_association,
- product_concept_feature_category,
- product_concept_feature_category_usage,
- product_concept_relationship,
- product_definition,
- product_definition_formation,
- product_definition_formation_relationship,
- product_definition_relationship,
- product_definition_substitute,
- product_definition_usage,
- product_definition_usage_relationship,
- product_design_to_individual,
- product_design_version_to_individual,
- product_group,
- product_group_membership,
- product_group_relationship,
- product_identification,
- product_process_plan,
- product_relationship,
- property_definition,
- property_definition_representation,
- representation,
- representation_relationship,
- requirement_assignment,
- requirement_for_action_resource,
- requirement_source,
- resource_property,
- security_classification,
- shape_aspect,
- shape_aspect_relationship,
- shape_representation,
- structured_message,
- time_interval_relationship,
- usage_association,
- validation,
- value_representation_item,
- verification,
- verification_relationship,
- versioned_action_request_relationship);
-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 equivalence_detected_difference_select = SELECT
- (a3ms_inspected_equivalence_element_select,
- area_measure,
- assembly_component_usage,
- binary_assembly_constraint,
- cartesian_point,
- connected_face_set,
- context_dependent_shape_representation,
- count_measure,
- edge,
- face,
- length_measure,
- multi_level_reference_designator,
- point_on_curve,
- point_on_surface,
- volume_measure);
-END_TYPE;
-
-TYPE equivalence_measured_value_select = SELECT
- (a3ma_length_measure_and_context_dependent_measure_pair,
- area_measure,
- boolean_value,
- context_dependent_measure,
- length_measure,
- plane_angle_measure,
- volume_measure);
-END_TYPE;
-
-TYPE equivalence_product_data_select = SELECT
- (product_definition_or_reference,
- product_definition_relationship);
-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_organizational_data_select,
- general_property,
- material_designation,
- mechanical_design_geometric_presentation_representation,
- organizational_project,
- organization_relationship,
- 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 evidence_item = SELECT
- (action_property,
- action_property_representation,
- analysis_assignment,
- applied_action_assignment,
- applied_approval_assignment,
- applied_certification_assignment,
- applied_classification_assignment,
- applied_contract_assignment,
- applied_effectivity_assignment,
- applied_event_occurrence_assignment,
- applied_external_identification_assignment,
- applied_ineffectivity_assignment,
- applied_organizational_project_assignment,
- applied_organization_assignment,
- applied_person_and_organization_assignment,
- applied_security_classification_assignment,
- date_and_time_assignment,
- date_assignment,
- measure_representation_item,
- person,
- person_and_organization,
- product,
- product_definition,
- product_definition_context,
- product_definition_formation,
- product_definition_formation_relationship,
- product_definition_relationship,
- product_relationship,
- property_definition,
- property_definition_representation,
- representation,
- representation_context,
- representation_item,
- state_type,
- structured_message,
- validation,
- value_representation_item,
- verification);
-END_TYPE;
-
-TYPE expression_extension_select = SELECT
- (expression_extension_numeric,
- expression_extension_string);
-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_directive,
- action_method,
- action_method_relationship,
- action_relationship,
- action_request_status,
- address,
- analysis_model,
- analysis_representation_context,
- applied_action_method_assignment,
- applied_classification_assignment,
- applied_external_identification_assignment,
- applied_organization_assignment,
- applied_person_and_organization_assignment,
- approval,
- approval_person_organization,
- approval_status,
- assembly_bond_definition,
- assembly_joint,
- assembly_component_usage,
- breakdown_context,
- certification,
- class,
- composite_curve,
- condition,
- configuration_effectivity,
- contract,
- curve,
- date_and_time_assignment,
- date_assignment,
- derived_unit,
- document_file,
- effectivity,
- evaluated_characteristic_of_product_as_individual_test_result,
- event_occurrence,
- evidence,
- exclusive_product_concept_feature_category,
- executed_action,
- externally_defined_class,
- externally_defined_context_dependent_unit,
- externally_defined_conversion_based_unit,
- externally_defined_general_property,
- externally_defined_representation_item,
- external_source,
- general_property,
- generic_product_definition_reference,
- group,
- information_right,
- information_usage_right,
- interface_connection,
- interface_connector_definition,
- interface_connector_occurrence,
- interface_connector_version,
- interface_definition_connection,
- interface_definition_for,
- interface_specification_definition,
- interface_specification_version,
- loop,
- material_designation,
- named_unit,
- organization,
- organizational_address,
- organizational_project,
- oriented_surface,
- package_product_concept_feature,
- person,
- person_and_organization,
- point_on_curve,
- precision_qualifier,
- process_operation,
- process_plan,
- product,
- product_concept,
- product_concept_context,
- product_concept_feature,
- product_concept_feature_category,
- product_definition,
- product_definition_context,
- product_definition_formation,
- product_definition_occurrence,
- product_definition_occurrence_reference,
- product_group,
- product_identification,
- product_process_plan,
- product_specification,
- property_definition,
- representation,
- representation_item,
- requirement_source,
- satisfies_requirement,
- security_classification,
- shape_representation,
- state_observed,
- state_type,
- structured_message,
- surface,
- time_interval,
- trimmed_curve,
- type_qualifier,
- uncertainty_qualifier,
- validation,
- verification,
- versioned_action_request,
- vertex_point);
-END_TYPE;
-
-TYPE face_or_surface = SELECT
- (face,
- surface);
-END_TYPE;
-
-TYPE fill_area_style_tile_shape_select = SELECT
- (externally_defined_tile,
- fill_area_style_tile_coloured_region,
- fill_area_style_tile_curve_with_style,
- fill_area_style_tile_symbol_with_style,
- pre_defined_tile);
-END_TYPE;
-
-TYPE fill_style_select = SELECT
- (externally_defined_hatch_style,
- externally_defined_tile_style,
- fill_area_style_colour,
- fill_area_style_hatching,
- fill_area_style_tiles,
- texture_style_specification);
-END_TYPE;
-
-TYPE font_select = SELECT
- (externally_defined_text_font,
- pre_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 general_organizational_data_select = SELECT
- (action_directive,
- action_method,
- action_method_relationship,
- action_property,
- action_property_representation,
- action_relationship,
- action_request_solution,
- alternate_product_relationship,
- alternative_solution_relationship,
- applied_action_assignment,
- applied_action_method_assignment,
- applied_action_request_assignment,
- applied_approval_assignment,
- applied_certification_assignment,
- applied_classification_assignment,
- applied_contract_assignment,
- applied_description_text_assignment,
- applied_description_text_assignment_relationship,
- applied_document_reference,
- applied_document_usage_constraint_assignment,
- applied_effectivity_assignment,
- applied_event_occurrence_assignment,
- applied_external_identification_assignment,
- applied_identification_assignment,
- applied_ineffectivity_assignment,
- applied_organizational_project_assignment,
- applied_organization_assignment,
- applied_person_and_organization_assignment,
- applied_security_classification_assignment,
- applied_time_interval_assignment,
- applied_usage_right,
- approval,
- approval_person_organization,
- approval_relationship,
- approval_status,
- assembly_component_usage,
- assembly_component_usage_substitute,
- breakdown_element_group_assignment,
- breakdown_element_realization,
- breakdown_of,
- certification,
- characterized_product_concept_feature,
- characterized_product_concept_feature_category,
- class,
- class_system,
- condition,
- conditional_concept_feature,
- conditional_effectivity,
- configuration_design,
- configuration_effectivity,
- configuration_item,
- configured_effectivity_assignment,
- contract,
- date_and_time_assignment,
- date_assignment,
- directed_action_assignment,
- document_file,
- drawing_revision,
- drawing_sheet_revision,
- effectivity,
- evaluated_characteristic_of_product_as_individual_test_result,
- exclusive_product_concept_feature_category,
- executed_action,
- frozen_assignment,
- general_property,
- general_property_relationship,
- group,
- group_relationship,
- identification_assignment_relationship,
- inclusion_product_concept_feature,
- information_usage_right,
- material_designation,
- material_designation_characterization,
- measure_representation_item,
- organization,
- organizational_address,
- organizational_project,
- organization_relationship,
- package_product_concept_feature,
- person,
- person_and_organization,
- person_and_organization_address,
- presentation_area,
- process_operation,
- process_plan,
- product,
- product_class,
- 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_group_assignment,
- product_definition_occurrence,
- product_definition_occurrence_reference,
- product_definition_relationship,
- product_definition_substitute,
- product_definition_usage,
- product_design_to_individual,
- product_design_version_to_individual,
- product_process_plan,
- product_relationship,
- property_definition,
- property_definition_representation,
- representation,
- representation_item,
- representation_relationship,
- requirement_assignment,
- requirement_for_action_resource,
- requirement_source,
- requirement_view_definition_relationship,
- security_classification,
- shape_representation,
- value_representation_item,
- versioned_action_request);
-END_TYPE;
-
-TYPE generalized_surface_select = SELECT
- (face_surface,
- surface,
- surfaced_open_shell);
-END_TYPE;
-
-TYPE generic_property_definition_select = SELECT
- (action_property,
- dimensional_location,
- dimensional_size,
- property_definition,
- resource_property);
-END_TYPE;
-
-TYPE geometric_constraint_element = SELECT
- (curve,
- direction,
- point,
- surface,
- vector);
-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
- (annotation_text,
- curve,
- placement,
- planar_box,
- point,
- surface);
-END_TYPE;
-
-TYPE geometric_tolerance_auxiliary_classification_enum = ENUMERATION OF
- (all_over,
- unless_otherwise_specified);
-END_TYPE;
-
-TYPE geometric_tolerance_modifier = ENUMERATION OF
- (any_cross_section,
- associated_least_square_feature,
- associated_maximum_inscribed_feature,
- associated_minimum_inscribed_feature,
- associated_minmax_feature,
- associated_tangent_feature,
- circle_a,
- common_zone,
- each_radial_element,
- free_state,
- least_material_requirement,
- line_element,
- major_diameter,
- maximum_material_requirement,
- minor_diameter,
- not_convex,
- peak_height,
- pitch_diameter,
- reciprocity_requirement,
- reference_least_square_feature_with_external_material_constraint,
- reference_least_square_feature_with_internal_material_constraint,
- reference_least_square_feature_without_constraint,
- reference_maximum_inscribed_feature,
- reference_minimax_feature_with_external_material_constraint,
- reference_minimax_feature_with_internal_material_constraint,
- reference_minimax_feature_without_constraint,
- reference_minimum_circumscribed_feature,
- separate_requirement,
- standard_deviation,
- statistical_tolerance,
- tangent_plane,
- total_range_deviations,
- united_feature,
- valley_depth);
-END_TYPE;
-
-TYPE geometric_tolerance_target = SELECT
- (dimensional_location,
- dimensional_size,
- product_definition_shape,
- shape_aspect);
-END_TYPE;
-
-TYPE gps_filtration_specification_target = SELECT
- (geometric_tolerance);
-END_TYPE;
-
-TYPE gps_filtration_type = SELECT
- (geometric_tolerance_modifier);
-END_TYPE;
-
-TYPE groupable_item = SELECT (
- address,
- alternate_product_relationship,
- applied_action_assignment,
- applied_action_method_assignment,
- applied_action_request_assignment,
- applied_approval_assignment,
- applied_attribute_classification_assignment,
- applied_certification_assignment,
- applied_classification_assignment,
- applied_contract_assignment,
- applied_description_text_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_location_assignment,
- applied_location_representation_assignment,
- applied_name_assignment,
- applied_organization_assignment,
- applied_organization_type_assignment,
- applied_organizational_project_assignment,
- applied_person_and_organization_assignment,
- applied_security_classification_assignment,
- approval,
- approval_person_organization,
- approval_relationship,
- approval_status,
- ascribable_state,
- ascribable_state_relationship,
- assembly_component_usage,
- assembly_component_usage_substitute,
- attribute_language_assignment,
- breakdown_element_group_assignment,
- calendar_date,
- certification,
- component_feature,
- configuration_design,
- configuration_item,
- configuration_item_relationship,
- context_dependent_shape_representation,
- contract,
- contract_relationship,
- coordinated_universal_time_offset,
- date_and_time,
- date_and_time_assignment,
- date_assignment,
- derived_unit,
- derived_unit_element,
- description_text,
- document_file,
- document_relationship,
- effectivity,
- effectivity_relationship,
- event_occurrence,
- event_occurrence_relationship,
- evidence,
- external_source,
- general_property,
- general_property_relationship,
- geometric_item_specific_usage,
- geometric_representation_item,
- group_relationship,
- instanced_feature,
- interface_connector_definition,
- interface_definition_connection,
- interface_definition_for,
- item_defined_transformation,
- local_time,
- mapped_item,
- measure_qualification,
- measure_with_unit,
- multi_language_attribute_assignment,
- named_unit,
- organization,
- organization_relationship,
- organization_type,
- organizational_project,
- organizational_project_relationship,
- package_product_concept_feature,
- person,
- person_and_organization,
- precision_qualifier,
- product,
- product_concept,
- product_concept_context,
- product_concept_feature,
- product_definition,
- product_definition_context,
- product_definition_formation,
- product_definition_formation_relationship,
- product_definition_group_assignment,
- product_definition_relationship,
- product_group_membership,
- product_group_relationship,
- product_relationship,
- property_definition,
- property_definition_representation,
- replicate_feature,
- representation,
- representation_context,
- representation_item,
- representation_relationship,
- representation_relationship_with_transformation,
- security_classification,
- shape_aspect,
- shape_aspect_relationship,
- shape_representation_relationship,
- state_observed,
- state_observed_assignment,
- state_observed_relationship,
- state_observed_role,
- state_type,
- state_type_assignment,
- state_type_relationship,
- styled_item,
- time_interval,
- time_interval_assignment,
- time_interval_relationship,
- time_interval_role,
- topological_representation_item,
- transition_feature,
- type_qualifier,
- uncertainty_qualifier,
- verification_relationship,
- versioned_action_request);
- WHERE
- WR1: NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.GROUP' IN TYPEOF(SELF));
-END_TYPE;
-
-TYPE hour_in_day = INTEGER;
-WHERE
- WR1: { 0 <= SELF < 24 };
-END_TYPE;
-
-TYPE id_attribute_select = SELECT
- (action,
- address,
- application_context,
- ascribable_state_relationship,
- dimensional_size,
- geometric_tolerance,
- group,
- organizational_project,
- product_category,
- property_definition,
- representation,
- shape_aspect,
- shape_aspect_relationship,
- topological_representation_item);
-END_TYPE;
-
-TYPE identification_item = SELECT
- (action,
- action_directive,
- action_directive_relationship,
- action_method,
- action_method_relationship,
- action_property,
- action_property_representation,
- action_relationship,
- address,
- alternate_product_relationship,
- alternative_solution_relationship,
- analysis_assignment,
- analysis_representation_context,
- applied_action_assignment,
- applied_action_method_assignment,
- applied_action_request_assignment,
- applied_approval_assignment,
- applied_certification_assignment,
- applied_classification_assignment_relationship,
- applied_contract_assignment,
- applied_description_text_assignment,
- applied_description_text_assignment_relationship,
- applied_document_reference,
- applied_document_usage_constraint_assignment,
- applied_effectivity_assignment,
- applied_event_occurrence_assignment,
- applied_external_identification_assignment,
- applied_external_identification_assignment_relationship,
- applied_identification_assignment,
- applied_ineffectivity_assignment,
- applied_organizational_project_assignment,
- applied_organization_assignment,
- applied_person_and_organization_assignment,
- applied_security_classification_assignment,
- applied_time_interval_assignment,
- applied_usage_right,
- approval,
- approval_relationship,
- approval_status,
- ascribable_state,
- ascribable_state_relationship,
- assembly_component_usage,
- assembly_component_usage_substitute,
- assignment_object_relationship,
- breakdown_element_realization,
- breakdown_of,
- certification,
- change_group,
- characterized_class,
- class,
- class_system,
- configuration_effectivity,
- configuration_item,
- configuration_item_relationship,
- contract,
- contract_relationship,
- date_and_time_assignment,
- date_assignment,
- degenerate_pcurve,
- dimensional_size,
- dimensional_size_with_path,
- directed_action_assignment,
- document_file,
- document_relationship,
- document_type,
- draughting_model,
- effectivity,
- effectivity_relationship,
- envelope,
- envelope_relationship,
- evaluated_characteristic,
- event_occurrence,
- event_occurrence_relationship,
- evidence,
- exclusive_product_concept_feature_category,
- executed_action,
- general_property,
- general_property_relationship,
- generic_property_relationship,
- group,
- group_relationship,
- identification_assignment_relationship,
- information_right,
- information_usage_right,
- interface_connection,
- interface_connector_as_planned,
- interface_connector_as_realized,
- interface_connector_definition,
- interface_connector_design,
- interface_connector_occurrence,
- interface_connector_version,
- interface_definition_connection,
- interface_definition_for,
- interface_specification_definition,
- interface_specification_version,
- link_motion_relationship,
- material_designation,
- material_designation_characterization,
- measure_representation_item,
- mechanical_design_geometric_presentation_representation,
- message_relationship,
- organization,
- organizational_address,
- organizational_project,
- organizational_project_relationship,
- organization_relationship,
- package_product_concept_feature,
- person,
- person_and_organization,
- person_and_organization_address,
- point_on_surface,
- presentation_area,
- process_operation,
- process_plan,
- product,
- product_category,
- product_class,
- product_concept,
- product_concept_context,
- product_concept_feature,
- product_concept_feature_category,
- product_concept_relationship,
- product_definition,
- product_definition_formation,
- product_definition_formation_relationship,
- product_definition_occurrence,
- product_definition_occurrence_reference,
- product_definition_relationship,
- product_definition_usage,
- product_definition_usage_relationship,
- product_group,
- product_group_membership,
- product_group_relationship,
- product_identification,
- product_process_plan,
- product_relationship,
- property_definition,
- property_definition_relationship,
- property_definition_representation,
- representation,
- representation_context,
- representation_relationship,
- requirement_assignment,
- requirement_for_action_resource,
- requirement_source,
- retention,
- rule_set,
- satisfies_requirement,
- security_classification,
- security_classification_level,
- shape_aspect,
- shape_aspect_relationship,
- shape_feature_definition,
- shape_feature_definition_relationship,
- shape_representation,
- state_definition_to_state_assignment_relationship,
- state_observed,
- state_observed_assignment,
- state_observed_relationship,
- state_type,
- state_type_assignment,
- state_type_relationship,
- structured_message,
- time_interval,
- time_interval_relationship,
- usage_association,
- validation,
- verification,
- verification_relationship,
- versioned_action_request,
- versioned_action_request_relationship);
-END_TYPE;
-
-TYPE identifier = STRING;
-END_TYPE;
-
-TYPE idrm_marked_item = SELECT
- (document_file,
- product_definition);
-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;
-WHERE
- wr1 : NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.B_SPLINE_OR_COMPOSITE_CURVE_SELECT' IN TYPEOF(SELF));
- wr2 : NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.B_SPLINE_OR_RECTANGULAR_COMPOSITE_SURFACE_SELECT' IN TYPEOF(SELF));
- wr3 : NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CLOSED_OR_OPEN_SHELL_SELECT' IN TYPEOF(SELF));
- wr4 : NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CONNECTED_FACE_SET' IN TYPEOF(SELF));
- wr5 : NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CURVE' IN TYPEOF(SELF));
- wr6 : NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DIRECTION' IN TYPEOF(SELF));
- wr7 : NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EDGE_CURVE' IN TYPEOF(SELF));
- wr8 : NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EDGE_LOOP' IN TYPEOF(SELF));
- wr9 : NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FACE_SURFACE' IN TYPEOF(SELF));
- wr10 : NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MANIFOLD_SOLID_BREP' IN TYPEOF(SELF));
- wr11 : NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLACEMENT' IN TYPEOF(SELF));
- wr12 : NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POINT' IN TYPEOF(SELF));
- wr13 : NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SURFACE' IN TYPEOF(SELF));
- wr14 : NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.VERTEX_POINT' IN TYPEOF(SELF));
-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_equivalence_element_select = SELECT
- (connected_edge_set,
- connected_face_set,
- externally_defined_representation_item,
- manifold_solid_brep,
- point_cloud_dataset,
- product_definition_or_reference,
- shape_representation,
- shell_based_surface_model,
- shell_based_wireframe_model,
- vertex_point);
-END_TYPE;
-
-TYPE inspected_shape_element_select = inspected_element_select;
-WHERE
- wr1 : NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ASSEMBLY_COMPONENT_USAGE' IN TYPEOF(SELF));
- wr2 : NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.AXIS2_PLACEMENT_3D' IN TYPEOF(SELF));
- wr3 : NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CARTESIAN_TRANSFORMATION_OPERATOR_3D' IN TYPEOF(SELF));
- wr4 : NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.GLOBAL_UNCERTAINTY_ASSIGNED_CONTEXT' IN TYPEOF(SELF));
- wr5 : NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.GLOBAL_UNIT_ASSIGNED_CONTEXT' IN TYPEOF(SELF));
- wr6 : NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.GROUP' IN TYPEOF(SELF));
- wr7 : NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRESENTATION_LAYER_ASSIGNMENT' IN TYPEOF(SELF));
- wr8 : NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.REPRESENTATION_ITEM' IN TYPEOF(SELF));
- wr9 : NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.STYLED_ITEM' IN TYPEOF(SELF));
-END_TYPE;
-
-TYPE instance_usage_context_select = SELECT
- (process_product_association,
- product_definition_group_assignment,
- product_definition_relationship,
- product_definition_usage);
-END_TYPE;
-
-TYPE internal_or_reflected_shape_aspect = SELECT
- (identifier,
- shape_aspect);
-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_organizational_project_assignment,
- applied_organization_assignment,
- applied_person_and_organization_assignment,
- applied_security_classification_assignment,
- applied_time_interval_assignment,
- applied_usage_right,
- characterized_object,
- dimensional_size,
- geometric_tolerance,
- product_definition_relationship,
- property_definition,
- represented_definition);
-END_TYPE;
-
-TYPE item_identified_representation_usage_select = SELECT
- (list_representation_item,
- 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_directed_structure,
- kinematic_topology_network_structure,
- kinematic_topology_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 length_or_plane_angle_measure_with_unit_select = SELECT
- (length_measure_with_unit,
- plane_angle_measure_with_unit);
-END_TYPE;
-
-TYPE length_to_height_ratio = ratio_measure;
-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
- (direction,
- line,
- plane,
- vector);
-END_TYPE;
-
-TYPE linearly_independent_enum = ENUMERATION OF
- (independent,
- not_independent,
- not_tested);
-END_TYPE;
-
-TYPE link_or_shape_representation = SELECT
- (kinematic_link_representation,
- shape_representation);
-END_TYPE;
-
-TYPE list_item_defined_transformation = LIST [2 : ?] OF item_defined_transformation;
-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 locally_refined_spline_type_enum = ENUMERATION OF
- (analysis_suitable_t_spline,
- hierarchical_b_spline,
- lr_b_spline,
- semi_standard_t_spline,
- standard_t_spline);
-END_TYPE;
-
-TYPE location_in_aggregate_item = LIST [1 : ?] OF integer_representation_item;
-END_TYPE;
-
-TYPE location_item = SELECT
- (assembly_component_usage,
- document_file,
- interface_connection,
- interface_connector_occurrence,
- interface_definition_connection,
- organization,
- organizational_project,
- organization_type,
- person,
- person_and_organization,
- product,
- product_definition,
- product_definition_formation,
- product_definition_relationship,
- product_group);
-END_TYPE;
-
-TYPE location_of_extreme_value_select = SELECT
- (boundary_curve_of_b_spline_or_rectangular_composite_surface,
- b_spline_curve_knot_locator,
- b_spline_curve_segment,
- b_spline_surface_knot_locator,
- b_spline_surface_patch,
- b_spline_surface_strip,
- composite_curve_transition_locator,
- face_bound,
- inspected_shape_element_select,
- oriented_edge,
- point_on_edge_curve,
- point_on_face_surface,
- rectangular_composite_surface_transition_locator,
- subedge,
- subface);
-END_TYPE;
-
-TYPE location_representation_item = SELECT
- (organizational_address,
- person_and_organization_address,
- product,
- product_definition_formation);
-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_enum_atom,
- maths_simple_atom);
-END_TYPE;
-
-TYPE maths_boolean = BOOLEAN;
-END_TYPE;
-
-TYPE maths_enum_atom = SELECT
- (elementary_function_enumerators,
- elementary_space_enumerators,
- extension_options,
- lower_upper,
- open_closed,
- ordering_type,
- repackage_options,
- space_constraint_type,
- symmetry_type);
-END_TYPE;
-
-TYPE maths_expression = SELECT
- (atom_based_value,
- generic_expression,
- maths_tuple);
-END_TYPE;
-
-TYPE maths_function_select = SELECT
- (elementary_function_enumerators,
- maths_function);
-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_boolean,
- maths_integer,
- maths_logical,
- maths_number,
- maths_real,
- maths_string);
-END_TYPE;
-
-TYPE maths_space_or_function = SELECT
- (maths_function,
- maths_space);
-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 maximum_edge_length = positive_length_measure;
-END_TYPE;
-
-TYPE measure_value = SELECT
- (absorbed_dose_measure,
- acceleration_measure,
- amount_of_substance_measure,
- area_measure,
- capacitance_measure,
- celsius_temperature_measure,
- conductance_measure,
- context_dependent_measure,
- count_measure,
- descriptive_measure,
- dose_equivalent_measure,
- electric_charge_measure,
- electric_current_measure,
- electric_potential_measure,
- energy_measure,
- force_measure,
- frequency_measure,
- illuminance_measure,
- inductance_measure,
- length_measure,
- luminous_flux_measure,
- luminous_intensity_measure,
- magnetic_flux_density_measure,
- magnetic_flux_measure,
- mass_measure,
- non_negative_length_measure,
- numeric_measure,
- parameter_value,
- plane_angle_measure,
- positive_length_measure,
- positive_plane_angle_measure,
- positive_ratio_measure,
- power_measure,
- pressure_measure,
- radioactivity_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_length_pair,
- plane_angle_and_ratio_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 <= 59 };
-END_TYPE;
-
-TYPE month_in_year_number = INTEGER;
-WHERE
- WR1: { 1 <= SELF <= 12 };
-END_TYPE;
-
-TYPE multi_language_attribute_item = SELECT
- (action,
- action_directive,
- action_directive_relationship,
- action_method,
- action_method_relationship,
- action_property,
- action_property_representation,
- action_relationship,
- actuated_kinematic_pair,
- alternate_product_relationship,
- alternative_solution_relationship,
- analysis_assignment,
- analysis_representation_context,
- application_context,
- applied_action_assignment,
- applied_action_method_assignment,
- applied_action_request_assignment,
- applied_approval_assignment,
- applied_certification_assignment,
- applied_classification_assignment_relationship,
- applied_contract_assignment,
- applied_description_text_assignment,
- applied_description_text_assignment_relationship,
- applied_document_reference,
- applied_document_usage_constraint_assignment,
- applied_effectivity_assignment,
- applied_event_occurrence_assignment,
- applied_external_identification_assignment,
- applied_external_identification_assignment_relationship,
- applied_identification_assignment,
- applied_ineffectivity_assignment,
- applied_organizational_project_assignment,
- applied_organization_assignment,
- applied_person_and_organization_assignment,
- applied_time_interval_assignment,
- applied_usage_right,
- approval,
- approval_relationship,
- approval_status,
- ascribable_state,
- assembly_component_usage_substitute,
- assignment_object_relationship,
- attribute_value_assignment,
- breakdown_context,
- breakdown_element_realization,
- breakdown_of,
- certification,
- certification_type,
- change_element_sequence,
- change_group,
- class,
- colour,
- configuration_design,
- configuration_effectivity,
- configuration_item,
- configuration_item_relationship,
- contract,
- contract_relationship,
- data_environment,
- date_role,
- date_time_role,
- descriptive_representation_item,
- directed_action_assignment,
- document_file,
- document_relationship,
- document_usage_role,
- draughting_title,
- effectivity,
- effectivity_relationship,
- envelope,
- envelope_relationship,
- evaluated_characteristic,
- event_occurrence,
- event_occurrence_relationship,
- evidence,
- exclusive_product_concept_feature_category,
- executed_action,
- externally_defined_class,
- external_source,
- general_property,
- general_property_relationship,
- generic_property_relationship,
- geometric_representation_item,
- geometric_tolerance,
- global_uncertainty_assigned_context,
- global_unit_assigned_context,
- group,
- group_relationship,
- identification_assignment_relationship,
- identification_role,
- information_right,
- information_usage_right,
- interface_connection,
- interface_connector_occurrence,
- interface_definition_connection,
- interface_definition_for,
- in_zone,
- kinematic_pair,
- link_motion_relationship,
- make_from_usage_option,
- mapped_item,
- material_designation_characterization,
- measure_qualification,
- measure_with_unit,
- message_relationship,
- name_assignment,
- object_role,
- organization,
- organizational_address,
- organizational_project,
- organizational_project_relationship,
- organizational_project_role,
- organization_relationship,
- organization_role,
- package_product_concept_feature,
- person,
- person_and_organization,
- person_and_organization_address,
- person_and_organization_role,
- presentation_layer_assignment,
- process_operation,
- process_plan,
- process_product_association,
- product,
- product_concept,
- product_concept_context,
- product_concept_feature,
- product_concept_feature_association,
- product_concept_feature_category,
- product_concept_feature_category_usage,
- 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_definition_usage,
- product_definition_usage_relationship,
- product_design_to_individual,
- product_design_version_to_individual,
- product_group,
- product_group_relationship,
- product_identification,
- product_process_plan,
- product_related_product_category,
- product_relationship,
- product_specification,
- property_definition,
- property_definition_relationship,
- property_definition_representation,
- qualitative_uncertainty,
- representation,
- representation_context,
- representation_item,
- representation_relationship,
- representation_relationship_with_transformation,
- requirement_assignment,
- requirement_for_action_resource,
- requirement_source,
- resource_property,
- resource_requirement_type,
- retention,
- satisfies_requirement,
- security_classification,
- security_classification_assignment,
- shape_aspect,
- shape_aspect_relationship,
- shape_feature_definition,
- shape_feature_definition_relationship,
- shape_representation,
- state_definition_to_state_assignment_relationship,
- state_observed,
- state_observed_assignment,
- state_observed_relationship,
- state_type,
- state_type_assignment,
- state_type_relationship,
- structured_message,
- styled_item,
- time_interval,
- time_interval_relationship,
- time_interval_role,
- topological_representation_item,
- uncertainty_measure_with_unit,
- uncertainty_qualifier,
- usage_association,
- validation,
- verification,
- verification_relationship,
- 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
- (applied_action_assignment,
- applied_action_method_assignment,
- assembly_component_usage,
- external_class_library,
- group,
- group_relationship,
- product,
- product_definition);
-END_TYPE;
-
-TYPE non_negative_length_measure = length_measure;
-WHERE
- WR1: SELF >= 0.0;
-END_TYPE;
-
-TYPE non_negative_real = REAL;
-WHERE
- WR1: 0.0 <= SELF;
-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_action_method_assignment,
- applied_certification_assignment,
- applied_classification_assignment,
- applied_contract_assignment,
- applied_document_reference,
- applied_document_usage_constraint_assignment,
- applied_effectivity_assignment,
- applied_event_occurrence_assignment,
- applied_identification_assignment,
- applied_organizational_project_assignment,
- applied_organization_assignment,
- applied_person_and_organization_assignment,
- applied_security_classification_assignment,
- approval,
- approval_status,
- ascribable_state,
- assembly_component_usage_substitute,
- certification,
- class,
- class_system,
- configuration_design,
- configuration_effectivity,
- configuration_item,
- configured_effectivity_assignment,
- contract,
- data_equivalence_definition,
- data_quality_definition,
- date_and_time_assignment,
- date_assignment,
- document_file,
- document_type,
- draughting_model,
- drawing_revision,
- effectivity,
- envelope,
- event_occurrence,
- evidence,
- executed_action,
- general_property,
- general_property_relationship,
- information_right,
- information_usage_right,
- interface_connection,
- interface_connector_as_planned,
- interface_connector_as_realized,
- interface_connector_occurrence,
- interface_definition_connection,
- interface_definition_for,
- material_designation,
- mechanical_design_geometric_presentation_representation,
- organization,
- organizational_address,
- organizational_project,
- organization_relationship,
- 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_context,
- product_definition_formation,
- product_definition_formation_relationship,
- product_definition_relationship,
- product_definition_substitute,
- product_group,
- product_group_membership,
- product_group_relationship,
- property_definition,
- property_definition_representation,
- representation,
- requirement_assignment,
- requirement_for_action_resource,
- requirement_source,
- resource_property,
- rule_action,
- satisfies_requirement,
- security_classification,
- security_classification_level,
- shape_representation,
- state_observed,
- state_observed_assignment,
- state_observed_relationship,
- state_type,
- state_type_assignment,
- state_type_relationship,
- structured_message,
- validation,
- verification,
- versioned_action_request);
-END_TYPE;
-
-TYPE organization_type_item = SELECT
- (organization);
-END_TYPE;
-
-TYPE orientation_basis_select = SELECT
- (axis2_placement_3d,
- min_and_major_ply_orientation_basis);
-END_TYPE;
-
-TYPE oriented_tolerance_zone_type = ENUMERATION OF
- (perpendicular,
- parallel,
- angular);
-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_action_method_assignment,
- applied_certification_assignment,
- applied_classification_assignment,
- applied_contract_assignment,
- applied_document_reference,
- applied_document_usage_constraint_assignment,
- applied_effectivity_assignment,
- applied_event_occurrence_assignment,
- applied_identification_assignment,
- applied_organizational_project_assignment,
- applied_organization_assignment,
- applied_person_and_organization_assignment,
- applied_security_classification_assignment,
- approval,
- approval_status,
- ascribable_state,
- assembly_component_usage_substitute,
- certification,
- class,
- class_system,
- configuration_design,
- configuration_effectivity,
- configuration_item,
- configured_effectivity_assignment,
- contract,
- data_equivalence_definition,
- data_quality_definition,
- date_and_time_assignment,
- date_assignment,
- document_file,
- document_type,
- draughting_model,
- drawing_revision,
- effectivity,
- envelope,
- event_occurrence,
- evidence,
- executed_action,
- general_property,
- general_property_relationship,
- information_usage_right,
- interface_connection,
- interface_connector_as_planned,
- interface_connector_as_realized,
- interface_connector_occurrence,
- interface_definition_connection,
- interface_definition_for,
- material_designation,
- mechanical_design_geometric_presentation_representation,
- organization,
- organizational_address,
- organizational_project,
- organization_relationship,
- 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_context,
- product_definition_formation,
- product_definition_formation_relationship,
- product_definition_relationship,
- product_definition_substitute,
- product_group,
- product_group_membership,
- product_group_relationship,
- property_definition,
- property_definition_representation,
- representation,
- requirement_assignment,
- requirement_for_action_resource,
- requirement_source,
- resource_property,
- rule_action,
- security_classification,
- security_classification_level,
- shape_representation,
- state_observed,
- state_observed_assignment,
- state_observed_relationship,
- state_type,
- state_type_assignment,
- state_type_relationship,
- structured_message,
- validation,
- verification,
- versioned_action_request);
-END_TYPE;
-
-TYPE person_organization_select = SELECT
- (organization,
- person,
- person_and_organization);
-END_TYPE;
-
-TYPE picture_representation_item_select = SELECT
- (axis2_placement_2d,
- planar_box,
- styled_item);
-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
- (planar_box,
- plane);
-END_TYPE;
-
-TYPE point_and_vector_member = SELECT
- (direction,
- point);
-END_TYPE;
-
-TYPE point_and_vector_members = LIST [2 : 3] OF point_and_vector_member;
-END_TYPE;
-
-TYPE point_array_members = LIST [1 : ?] OF point_and_vector;
-END_TYPE;
-
-TYPE point_cloud_set_or_superset = SELECT
- (point_cloud_dataset,
- point_cloud_superdataset);
-END_TYPE;
-
-TYPE point_curve_or_surface_constraint_element = SELECT
- (curve,
- point,
- surface);
-END_TYPE;
-
-TYPE point_path_members = LIST [1 : ?] OF point_and_vector;
-END_TYPE;
-
-TYPE point_placement_shape_representation_item = SELECT
- (axis2_placement_3d,
- compound_representation_item,
- mapped_item);
-END_TYPE;
-
-TYPE positive_integer = nonnegative_integer;
-WHERE positivity: SELF > 0;
-END_TYPE;
-
-TYPE positive_length_measure = non_negative_length_measure;
-WHERE
- WR1: SELF > 0.0;
-END_TYPE;
-
-TYPE positive_plane_angle_measure = plane_angle_measure;
-WHERE
- WR1: SELF > 0.0;
-END_TYPE;
-
-TYPE positive_ratio_measure = ratio_measure;
-WHERE
- WR1: SELF > 0.0;
-END_TYPE;
-
-TYPE power_measure = REAL;
-END_TYPE;
-
-TYPE preferred_ordering = ENUMERATION OF
- (extremity_order,
- detected_order);
-END_TYPE;
-
-TYPE preferred_report_ordering = ENUMERATION OF
- (in_notable_order,
- in_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
- (area_in_set,
- presentation_area,
- presentation_view);
-END_TYPE;
-
-TYPE presentation_style_select = SELECT
- (curve_style,
- externally_defined_style,
- fill_area_style,
- null_style,
- point_style,
- surface_style_usage,
- symbol_style,
- texture_style_tessellation_specification,
- text_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
- (delete_element,
- modify_element);
-END_TYPE;
-
-TYPE product_definition_occurrence_or_reference = SELECT
- (product_definition_occurrence,
- product_definition_occurrence_reference);
-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,
- product_definition,
- product_definition_formation,
- product_definition_usage);
-END_TYPE;
-
-TYPE product_definition_or_product_definition_relationship = SELECT
- (interface_connector_occurrence,
- product,
- product_definition,
- product_definition_usage,
- product_group);
-END_TYPE;
-
-TYPE product_definition_or_reference = SELECT
- (generic_product_definition_reference,
- product_definition,
- product_definition_occurrence);
-END_TYPE;
-
-TYPE product_definition_or_reference_or_occurrence = product_definition_or_reference;
-END_TYPE;
-
-TYPE product_or_formation_or_definition = SELECT
- (product,
- product_definition,
- product_definition_formation);
-END_TYPE;
-
-TYPE product_select = SELECT
- (product,
- product_concept,
- product_definition_formation,
- product_group);
-END_TYPE;
-
-TYPE product_space = SELECT
- (uniform_product_space);
-END_TYPE;
-
-TYPE project_item = SELECT
- (action_method,
- action_method_relationship,
- applied_action_assignment,
- applied_action_method_assignment,
- assembly_component_usage,
- configuration_item,
- executed_action,
- measure_representation_item,
- product,
- product_concept,
- product_definition,
- product_definition_formation,
- product_definition_occurrence,
- product_definition_occurrence_reference,
- product_group,
- product_group_membership,
- product_group_relationship,
- product_identification,
- property_definition_representation,
- representation,
- representation_item,
- value_representation_item);
-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,
- conical_surface,
- cylindrical_surface,
- right_circular_cone,
- right_circular_cylinder,
- sphere,
- spherical_surface);
-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 representation_or_representation_reference = SELECT
- (representation,
- representation_reference);
-END_TYPE;
-
-TYPE representation_proxy_select = SELECT
- (product_definition_formation);
-END_TYPE;
-
-TYPE representative_value_type = ENUMERATION OF
- (average_value,
- max_value,
- min_value,
- min_max_value);
-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
- (action_method,
- alternate_product_relationship,
- applied_action_method_assignment,
- applied_state_observed_assignment,
- applied_state_type_assignment,
- assembly_component_usage,
- assembly_component_usage_substitute,
- characterized_object,
- configuration_item,
- descriptive_representation_item,
- dimensional_location,
- dimensional_size,
- geometric_tolerance,
- interface_connector_occurrence,
- organizational_project,
- product,
- product_class,
- product_definition,
- product_definition_formation,
- product_definition_group_assignment,
- product_definition_relationship,
- product_group,
- product_group_membership,
- quantified_assembly_component_usage,
- representation,
- shape_aspect,
- state_observed,
- state_type,
- validation,
- verification,
- versioned_action_request);
-END_TYPE;
-
-TYPE requirement_satisfaction_item = SELECT
- (requirement_assigned_item);
-END_TYPE;
-
-TYPE requirement_source_item = SELECT
- (action_method,
- applied_action_method_assignment,
- applied_state_observed_assignment,
- applied_state_type_assignment,
- characterized_object,
- contract,
- dimensional_location,
- dimensional_size,
- executed_action,
- geometric_tolerance,
- group,
- group_relationship,
- interface_connector_occurrence,
- organization,
- organizational_project,
- person_and_organization,
- product,
- product_definition,
- product_definition_formation,
- product_definition_relationship,
- shape_aspect,
- state_observed,
- state_type,
- validation,
- verification);
-END_TYPE;
-
-TYPE resistance_measure = REAL;
-END_TYPE;
-
-TYPE reversible_topology = SELECT
- (list_of_reversible_topology_item,
- reversible_topology_item,
- set_of_reversible_topology_item);
-END_TYPE;
-
-TYPE reversible_topology_item = SELECT
- (closed_shell,
- edge,
- face,
- face_bound,
- open_shell,
- path);
-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,
- directed_action_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 same_as_item = SELECT
- (address,
- applied_external_identification_assignment,
- approval,
- approval_status,
- attribute_language_assignment,
- calendar_date,
- certification,
- contract,
- coordinated_universal_time_offset,
- date_and_time,
- derived_unit,
- derived_unit_element,
- event_occurrence,
- external_source,
- general_property,
- information_right,
- information_usage_right,
- language,
- local_time,
- measure_with_unit,
- named_unit,
- organization,
- person,
- product_definition_context,
- representation_context,
- requirement_source,
- security_classification,
- time_interval,
- usage_association);
-END_TYPE;
-
-TYPE second_in_minute = REAL;
-WHERE
- WR1: { 0 <= SELF < 60.0 };
-END_TYPE;
-
-TYPE security_classification_item = SELECT
- (action,
- action_directive,
- action_method,
- action_method_relationship,
- action_property,
- action_property_representation,
- applied_action_assignment,
- applied_action_method_assignment,
- applied_classification_assignment,
- applied_description_text_assignment,
- applied_description_text_assignment_relationship,
- applied_document_reference,
- applied_document_usage_constraint_assignment,
- applied_external_identification_assignment,
- applied_identification_assignment,
- assembly_component_usage,
- assembly_component_usage_substitute,
- class_system,
- conditional_effectivity,
- configuration_design,
- configuration_effectivity,
- configured_effectivity_assignment,
- document,
- document_file,
- draughting_model,
- drawing_revision,
- envelope,
- evaluated_characteristic_of_product_as_individual_test_result,
- evidence,
- exclusive_product_concept_feature_category,
- executed_action,
- externally_defined_general_property,
- general_property,
- group,
- identification_assignment_relationship,
- interface_connection,
- interface_connector_as_planned,
- interface_connector_as_realized,
- interface_connector_design,
- interface_connector_occurrence,
- interface_definition_connection,
- interface_definition_for,
- make_from_usage_option,
- material_designation,
- mechanical_design_geometric_presentation_representation,
- organizational_project,
- package_product_concept_feature,
- presentation_area,
- process_plan,
- product,
- product_class,
- product_concept,
- product_concept_feature,
- product_concept_feature_category,
- product_definition,
- product_definition_formation,
- product_definition_formation_relationship,
- product_definition_group_assignment,
- product_definition_relationship,
- product_definition_usage,
- product_design_to_individual,
- product_design_version_to_individual,
- product_group,
- product_group_membership,
- product_group_relationship,
- product_identification,
- product_process_plan,
- product_relationship,
- property_definition,
- property_definition_representation,
- representation,
- requirement_assignment,
- requirement_source,
- requirement_view_definition_relationship,
- resource_property,
- shape_representation,
- structured_message,
- validation,
- verification,
- versioned_action_request);
-END_TYPE;
-
-TYPE set_inner_area_boundary = SET [1 : ?] OF bounded_primitive_2d;
-END_TYPE;
-
-TYPE set_item_defined_transformation = SET [2 : ?] OF item_defined_transformation;
-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_aspect_or_characterized_object = SELECT
- (characterized_object,
- shape_aspect);
-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_limit,
- shape_data_quality_value_range);
-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
- (closed_shell,
- open_shell,
- vertex_shell,
- wire_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
- (descriptive_measure,
- measure_with_unit,
- positive_length_measure);
-END_TYPE;
-
-TYPE sketch_basis_select = SELECT
- (curve_bounded_surface,
- face_surface,
- planar_curve_select);
-END_TYPE;
-
-TYPE sketch_element_select = SELECT (
- curve,
- point);
- WHERE
- WR1: 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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
- (rotation_about_direction,
- ypr_rotation);
-END_TYPE;
-
-TYPE specified_item = SELECT
- (drawing_revision);
-END_TYPE;
-
-TYPE spherical_pair_select = SELECT
- (spherical_pair,
- spherical_pair_with_pin);
-END_TYPE;
-
-TYPE spline_knot_values = LIST [2: ?] OF REAL;
-WHERE
-WR1 : increasing_values_in_list(SELF);
-END_TYPE;
-
-TYPE start_request_item = SELECT
- (product_definition_formation);
-END_TYPE;
-
-TYPE state_observed_of_item = SELECT
- (alternate_product_relationship,
- applied_action_method_assignment,
- applied_external_identification_assignment,
- approval,
- assembly_component_usage,
- assembly_component_usage_substitute,
- attachment_slot_design_to_planned,
- attachment_slot_design_to_realized,
- attachment_slot_on_product,
- attachment_slot_planned_to_realized,
- breakdown_element_group_assignment,
- breakdown_element_usage,
- certification,
- configuration_item,
- contract,
- document_file,
- evidence,
- final_solution,
- group,
- interface_connection,
- interface_connector_as_planned,
- interface_connector_as_realized,
- interface_connector_definition,
- interface_connector_design,
- interface_connector_occurrence,
- interface_connector_version,
- interface_definition_connection,
- interface_specification_definition,
- interface_specification_version,
- organization,
- organizational_project,
- person_and_organization,
- product,
- product_category,
- product_concept,
- product_definition,
- product_definition_formation,
- product_definition_group_assignment,
- product_definition_relationship,
- product_in_attachment_slot,
- security_classification,
- structured_message,
- validation,
- verification);
-END_TYPE;
-
-TYPE state_type_of_item = SELECT
- (action_method,
- alternate_product_relationship,
- applied_action_method_assignment,
- applied_external_identification_assignment,
- approval,
- assembly_component_usage,
- assembly_component_usage_substitute,
- attachment_slot_design_to_planned,
- attachment_slot_design_to_realized,
- attachment_slot_on_product,
- attachment_slot_planned_to_realized,
- breakdown_element_group_assignment,
- breakdown_element_usage,
- certification,
- configuration_item,
- contract,
- document_file,
- evidence,
- final_solution,
- interface_connection,
- interface_connector_as_planned,
- interface_connector_as_realized,
- interface_connector_definition,
- interface_connector_design,
- interface_connector_occurrence,
- interface_connector_version,
- interface_definition_connection,
- interface_specification_definition,
- interface_specification_version,
- organization,
- organizational_project,
- person_and_organization,
- product,
- product_category,
- product_concept,
- product_definition,
- product_definition_formation,
- product_definition_group_assignment,
- product_definition_relationship,
- product_group,
- product_in_attachment_slot,
- security_classification,
- validation,
- verification);
-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
- (context_dependent_shape_representation,
- group,
- presentation_layer_assignment,
- presentation_set,
- representation,
- representation_item,
- representation_relationship);
-END_TYPE;
-
-TYPE styled_item_target = SELECT
- (geometric_representation_item,
- mapped_item,
- representation_or_representation_reference,
- topological_representation_item);
-END_TYPE;
-
-TYPE summary_report_style_type = ENUMERATION OF
- (conclusion,
- number_of_defects,
- number_of_inspections);
-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,
- action_directive,
- 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
- (solid_model,
- surface_model);
-END_TYPE;
-
-TYPE surface_side = ENUMERATION OF
- (positive,
- negative,
- both);
-END_TYPE;
-
-TYPE surface_side_style_select = SELECT
- (pre_defined_surface_side_style,
- surface_side_style);
-END_TYPE;
-
-TYPE surface_style_element_select = SELECT
- (surface_style_boundary,
- surface_style_control_grid,
- surface_style_fill_area,
- surface_style_parameter_line,
- surface_style_rendering,
- surface_style_segmentation_curve,
- surface_style_silhouette);
-END_TYPE;
-
-TYPE swept_surface_or_solid = SELECT
- (swept_area_solid,
- swept_face_solid,
- swept_surface);
-END_TYPE;
-
-TYPE symbol_style_select = SELECT
- (symbol_colour);
-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 target_annotated_3d_model_select = SELECT
- (shape_representation_relationship);
-END_TYPE;
-
-TYPE tessellated_edge_or_vertex = SELECT
- (tessellated_edge,
- tessellated_vertex);
-END_TYPE;
-
-TYPE tessellated_facet_long_short_edge_ratio = ratio_measure;
-END_TYPE;
-
-TYPE tessellated_surface_item = SELECT
- (tessellated_face,
- tessellated_shell,
- tessellated_solid,
- tessellated_surface_set);
-END_TYPE;
-
-TYPE tessellation_accuracy_parameter_item = SELECT
- (angular_deviation,
- chordal_deviation,
- length_to_height_ratio,
- maximum_edge_length,
- tessellated_facet_long_short_edge_ratio);
-END_TYPE;
-
-TYPE text = STRING;
-END_TYPE;
-
-TYPE text_alignment = label;
-END_TYPE;
-
-TYPE text_delineation = label;
-END_TYPE;
-
-TYPE text_or_character = SELECT
- (annotation_text,
- annotation_text_character,
- composite_text,
- defined_character_glyph,
- text_literal);
-END_TYPE;
-
-TYPE text_path = ENUMERATION OF
- (left,
- right,
- up,
- down);
-END_TYPE;
-
-TYPE text_string_representation_item = SELECT
- (annotation_text,
- annotation_text_character,
- axis2_placement,
- composite_text,
- defined_character_glyph,
- text_literal);
-END_TYPE;
-
-TYPE texture_file_type = ENUMERATION OF
- (jpeg,
- png,
- gif,
- tiff,
- bmp,
- dds,
- tga,
- other);
-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,
- analysis_assignment,
- 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,
- evidence,
- executed_action,
- general_property,
- material_designation,
- mechanical_design_geometric_presentation_representation,
- organizational_project,
- organization_relationship,
- 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,
- validation,
- verification,
- verification_relationship,
- 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_value_or_limits_and_fits = SELECT
- (limits_and_fits,
- tolerance_value);
-END_TYPE;
-
-TYPE tolerance_zone_target = SELECT
- (dimensional_location,
- dimensional_size,
- general_datum_reference,
- geometric_tolerance);
-END_TYPE;
-
-TYPE transformation = SELECT
- (functionally_defined_transformation,
- item_defined_transformation,
- list_item_defined_transformation,
- set_item_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
- (generalized_surface_select,
- length_measure,
- plane_angle_measure,
- 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
- (extended_tuple_space,
- product_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 unsigned_8_bit_integer = INTEGER;
-WHERE
- WR1: {0 <= SELF <= 255};
-END_TYPE;
-
-TYPE used_equivalence_representation_select = SELECT
- (data_equivalence_criteria_representation,
- data_equivalence_inspection_result_representation);
-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 validation_criteria_or_results_select = SELECT
- (data_equivalence_definition_representation_relationship);
-END_TYPE;
-
-TYPE value_format_type = identifier;
-WHERE
- WR1: LENGTH(SELF) <= 80;
-END_TYPE; -- value_format_type
-
-TYPE value_qualifier = SELECT
- (maths_value_precision_qualifier,
- 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 <= 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;
-
-ENTITY a3m_equivalence_accuracy_association;
- id : identifier;
- name : label;
- description : OPTIONAL text;
- specific_accuracy : shape_measurement_accuracy;
- equivalence_target : accuracy_associated_target_select;
-END_ENTITY;
-
-ENTITY a3m_equivalence_assessment_by_logical_test
- SUBTYPE OF (data_equivalence_assessment_specification);
-END_ENTITY;
-
-ENTITY a3m_equivalence_assessment_by_numerical_test
- SUBTYPE OF (data_equivalence_assessment_specification);
- threshold : shape_data_quality_value_limit_type_select;
-END_ENTITY;
-
-ENTITY a3m_equivalence_criteria_representation
- SUBTYPE OF (data_equivalence_criteria_representation);
-WHERE
- WR1: SIZEOF(QUERY(q
- <* SELF\representation.items
- | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.A3M_EQUIVALENCE_CRITERION' IN TYPEOF(q))) >
- 0;
-END_ENTITY;
-
-ENTITY a3m_equivalence_criterion
- ABSTRACT SUPERTYPE OF (a3m_equivalence_criterion_with_specified_elements)
- SUBTYPE OF (data_equivalence_criterion, data_equivalence_inspection_requirement);
- assessment_specification : a3m_equivalence_assessment_specification_select;
- comparing_element_types : LIST [1 : ?] OF a3m_element_type_name;
- compared_element_types : LIST [1 : ?] OF a3m_element_type_name;
- measured_data_type : a3m_measured_data_type_name;
- detected_difference_types : LIST [0 : ?] OF a3m_detected_difference_type_name;
- accuracy_types : LIST [0 : ?] OF a3m_accuracy_type_name;
-WHERE
- WR1: SIZEOF(USEDIN(SELF,
- 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DATA_EQUIVALENCE_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_EQUIVALENCE_CRITERION_INSPECTION_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_EQUIVALENCE_CRITERION_INSPECTION_ASSOCIATION' IN
- TYPEOF(i1))) =
- 0;
-END_ENTITY;
-
-ENTITY a3m_equivalence_criterion_for_assembly
- ABSTRACT SUPERTYPE OF (ONEOF(a3m_equivalence_criterion_of_assembly_data_structure,
- a3m_equivalence_criterion_of_detailed_assembly_data_content,
- a3m_equivalence_criterion_of_component_property_difference,
- a3m_equivalence_criterion_of_representative_assembly_property_value))
- SUBTYPE OF (a3m_equivalence_criterion);
- SELF\a3m_equivalence_criterion.comparing_element_types : LIST [1 : ?] OF a3ma_element_type_name;
- SELF\a3m_equivalence_criterion.compared_element_types : LIST [1 : ?] OF a3ma_element_type_name;
- SELF\a3m_equivalence_criterion.measured_data_type : a3ma_measured_data_type_name;
- SELF\a3m_equivalence_criterion.detected_difference_types : LIST [1 : ?] OF a3ma_detected_difference_type_name;
-DERIVE
- SELF\a3m_equivalence_criterion.accuracy_types : LIST [0 : 0] OF a3ma_accuracy_type_name := [];
-WHERE
- WR1: a3ma_validate_accuracy_types(SELF, SELF);
-END_ENTITY;
-
-ENTITY a3m_equivalence_criterion_for_shape
- ABSTRACT SUPERTYPE OF (ONEOF(a3m_equivalence_criterion_of_detailed_shape_data_content,
- a3m_equivalence_criterion_of_representative_shape_property_value,
- a3m_equivalence_criterion_of_shape_data_structure))
- SUBTYPE OF (a3m_equivalence_criterion);
- SELF\a3m_equivalence_criterion.comparing_element_types : LIST [1 : ?] OF a3ms_element_type_name;
- SELF\a3m_equivalence_criterion.compared_element_types : LIST [1 : ?] OF a3ms_element_type_name;
- SELF\a3m_equivalence_criterion.measured_data_type : a3ms_measured_data_type_name;
- SELF\a3m_equivalence_criterion.detected_difference_types : LIST [1 : ?] OF a3ms_detected_difference_type_name;
- SELF\a3m_equivalence_criterion.accuracy_types : LIST [0 : ?] OF a3ms_accuracy_type_name;
-WHERE
- WR1: a3ms_validate_accuracy_types(SELF, SELF);
-END_ENTITY;
-
-ENTITY a3m_equivalence_criterion_of_assembly_data_structure
- ABSTRACT SUPERTYPE OF (ONEOF(different_component_identification_via_multi_level_reference, mismatch_of_component,
- missing_assembly_constraint, missing_component))
- SUBTYPE OF (a3m_equivalence_criterion_for_assembly);
-DERIVE
- SELF\a3m_equivalence_criterion.comparing_element_types : LIST [1 : 1] OF a3ma_element_type_name := [etna_product_definition_or_reference];
- SELF\a3m_equivalence_criterion.compared_element_types : LIST [1 : 1] OF a3ma_element_type_name := [etna_product_definition_or_reference];
-END_ENTITY;
-
-ENTITY a3m_equivalence_criterion_of_component_property_difference
- ABSTRACT SUPERTYPE OF (different_component_shape)
- SUBTYPE OF (a3m_equivalence_criterion_for_assembly);
- SELF\a3m_equivalence_criterion.assessment_specification : a3m_equivalence_assessment_by_logical_test;
-DERIVE
- SELF\a3m_equivalence_criterion.measured_data_type : a3ma_measured_data_type_name := mdna_boolean_value;
-END_ENTITY;
-
-ENTITY a3m_equivalence_criterion_of_detailed_assembly_data_content
- ABSTRACT SUPERTYPE OF (ONEOF(different_angle_of_assembly_constraint, different_assembly_constraint_type,
- different_component_type, different_length_of_assembly_constraint,
- different_placement_of_component))
- SUBTYPE OF (a3m_equivalence_criterion_for_assembly);
-DERIVE
- SELF\a3m_equivalence_criterion.comparing_element_types : LIST [1 : 1] OF a3ma_element_type_name := [etna_product_definition_or_reference];
- SELF\a3m_equivalence_criterion.compared_element_types : LIST [1 : 1] OF a3ma_element_type_name := [etna_product_definition_or_reference];
-END_ENTITY;
-
-ENTITY a3m_equivalence_criterion_of_detailed_shape_data_content
- ABSTRACT SUPERTYPE OF (ONEOF(different_surface_normal, mismatch_of_arcwise_connected_curves,
- mismatch_of_arcwise_connected_surfaces, mismatch_of_arcwise_connected_surfaces_boundary,
- mismatch_of_points, mismatch_of_point_cloud_and_related_geometry,
- mismatch_of_underlying_edge_geometry, mismatch_of_underlying_face_geometry))
- SUBTYPE OF (a3m_equivalence_criterion_for_shape);
-END_ENTITY;
-
-ENTITY a3m_equivalence_criterion_of_representative_assembly_property_value
- ABSTRACT SUPERTYPE OF (ONEOF(different_assembly_centroid, different_assembly_centroid_using_notional_solid,
- different_assembly_volume, different_number_of_components))
- SUBTYPE OF (a3m_equivalence_criterion_for_assembly);
-DERIVE
- SELF\a3m_equivalence_criterion.comparing_element_types : LIST [1 : 1] OF a3ma_element_type_name := [etna_product_definition_or_reference];
- SELF\a3m_equivalence_criterion.compared_element_types : LIST [1 : 1] OF a3ma_element_type_name := [etna_product_definition_or_reference];
-END_ENTITY;
-
-ENTITY a3m_equivalence_criterion_of_representative_shape_property_value
- ABSTRACT SUPERTYPE OF (ONEOF(different_bounding_box, different_centroid, different_curve_length,
- different_number_of_closed_shell, different_number_of_geometric_elements,
- different_number_of_geometric_elements_wireframe_model,
- different_number_of_topological_elements,
- different_number_of_topological_elements_wireframe_model, different_surface_area,
- different_volume))
- SUBTYPE OF (a3m_equivalence_criterion_for_shape);
-DERIVE
- SELF\a3m_equivalence_criterion.comparing_element_types : LIST [1 : ?] OF a3m_element_type_name := SELF\a3m_equivalence_criterion.compared_element_types;
-END_ENTITY;
-
-ENTITY a3m_equivalence_criterion_of_shape_data_structure
- ABSTRACT SUPERTYPE OF (ONEOF(mismatch_of_edges, mismatch_of_faces, missing_edge, missing_face))
- SUBTYPE OF (a3m_equivalence_criterion_for_shape);
-DERIVE
- SELF\a3m_equivalence_criterion.comparing_element_types : LIST [1 : ?] OF a3m_element_type_name := SELF\a3m_equivalence_criterion.compared_element_types;
-END_ENTITY;
-
-ENTITY a3m_equivalence_criterion_report_item_with_measured_value
- SUBTYPE OF (data_equivalence_inspection_criterion_report_item);
- representative_measured_value : equivalence_measured_value_select;
- value_type : representative_value_type;
-END_ENTITY;
-
-ENTITY a3m_equivalence_criterion_with_specified_elements
- SUBTYPE OF (a3m_equivalence_criterion);
- comparing_specified_elements : SET [1 : ?] OF inspected_equivalence_element_select;
- compared_specified_elements : SET [1 : ?] OF inspected_equivalence_element_select;
-END_ENTITY;
-
-ENTITY a3m_equivalence_inspection_instance_report_item
- SUBTYPE OF (data_equivalence_inspection_instance_report_item);
- measured_value_for_inspected_element : equivalence_measured_value_select;
-END_ENTITY;
-
-ENTITY a3m_equivalence_inspection_requirement_with_values
- ABSTRACT SUPERTYPE
- SUBTYPE OF (data_equivalence_inspection_requirement);
- applied_values : SET [1 : ?] OF measure_representation_item;
-END_ENTITY;
-
-ENTITY a3m_equivalence_inspection_result_representation
- SUBTYPE OF (data_equivalence_inspection_result_representation);
-END_ENTITY;
-
-ENTITY a3m_equivalence_inspection_result_representation_for_assembly
- SUBTYPE OF (a3m_equivalence_inspection_result_representation);
-WHERE
- WR1: SIZEOF(QUERY(q
- <* SELF\representation.items
- | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.A3MS_EQUIVALENCE_INSPECTION_RESULT' IN
- TYPEOF(q))) =
- 0;
-END_ENTITY;
-
-ENTITY a3m_equivalence_inspection_result_representation_for_shape
- SUBTYPE OF (a3m_equivalence_inspection_result_representation);
-WHERE
- WR1: SIZEOF(QUERY(q
- <* SELF\representation.items
- | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.A3MA_EQUIVALENCE_INSPECTION_RESULT' IN
- TYPEOF(q))) =
- 0;
-END_ENTITY;
-
-ENTITY a3m_equivalence_summary_report_request_with_representative_value
- SUBTYPE OF (data_equivalence_report_request);
- report_request_type : representative_value_type;
-END_ENTITY;
-
-ENTITY a3m_inspected_model_and_inspection_result_relationship;
- inspected_model : target_annotated_3d_model_select;
- equivalence_result : a3m_equivalence_inspection_result_representation;
-END_ENTITY;
-
-ENTITY a3ma_assembly_and_shape_criteria_relationship
- SUBTYPE OF (representation_item_relationship);
- SELF\representation_item_relationship.relating_representation_item : different_component_shape;
- SELF\representation_item_relationship.related_representation_item : a3m_equivalence_criterion_for_shape;
-END_ENTITY;
-
-ENTITY a3ma_equivalence_criterion_assessment_threshold_relationship
- SUBTYPE OF (representation_item_relationship);
- SELF\representation_item_relationship.relating_representation_item : different_placement_of_component;
- SELF\representation_item_relationship.related_representation_item : shape_data_quality_lower_value_limit;
-END_ENTITY;
-
-ENTITY a3ma_equivalence_inspection_result
- SUBTYPE OF (data_equivalence_inspection_result);
- SELF\data_equivalence_inspection_result.criterion_inspected : a3m_equivalence_criterion_for_assembly;
-WHERE
- WR1: a3ma_validate_accuracy_types(SELF, SELF\data_equivalence_inspection_result.criterion_inspected);
- WR2: SIZEOF(QUERY(re
- <* bag_to_set(USEDIN(SELF,
- 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DATA_EQUIVALENCE_INSPECTION_REPORT.INSPECTION_RESULT'))
- | NOT (a3ma_validate_element_types(re,
- SELF\data_equivalence_inspection_result.criterion_inspected)))) =
- 0;
- WR3: SIZEOF(QUERY(re
- <* bag_to_set(USEDIN(SELF,
- 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DATA_EQUIVALENCE_INSPECTION_REPORT.INSPECTION_RESULT'))
- | NOT (a3ma_validate_detected_difference_types(re,
- SELF\data_equivalence_inspection_result.criterion_inspected)))) =
- 0;
- WR4: SIZEOF(QUERY(re
- <* bag_to_set(USEDIN(SELF,
- 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DATA_EQUIVALENCE_INSPECTION_REPORT.INSPECTION_RESULT'))
- | NOT (a3ma_validate_measured_type(re,
- SELF\data_equivalence_inspection_result.criterion_inspected)))) =
- 0;
-END_ENTITY;
-
-ENTITY a3ma_length_measure_and_context_dependent_measure_pair
- SUBTYPE OF (compound_representation_item);
-WHERE
- WR1: 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LIST_REPRESENTATION_ITEM' IN
- TYPEOF(SELF\compound_representation_item.item_element);
- WR2: SIZEOF(SELF\compound_representation_item.item_element) = 2;
- WR3: 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.VALUE_REPRESENTATION_ITEM' IN
- TYPEOF(SELF\compound_representation_item.item_element[1]);
- WR4: SIZEOF(QUERY(vri
- <* [SELF\compound_representation_item.item_element[1]]
- | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE' IN
- TYPEOF(vri.value_component))) =
- 1;
- WR5: 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.VALUE_REPRESENTATION_ITEM' IN
- TYPEOF(SELF\compound_representation_item.item_element[2]);
- WR6: SIZEOF(QUERY(vri
- <* [SELF\compound_representation_item.item_element[2]]
- | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CONTEXT_DEPENDENT_MEASURE' IN
- TYPEOF(vri.value_component))) =
- 1;
-END_ENTITY;
-
-ENTITY a3ms_equivalence_criterion_with_specified_elements
- SUBTYPE OF (a3m_equivalence_criterion_for_shape, a3m_equivalence_criterion_with_specified_elements);
- SELF\a3m_equivalence_criterion_with_specified_elements.comparing_specified_elements : SET [1 : ?] OF a3ms_inspected_equivalence_element_select;
- SELF\a3m_equivalence_criterion_with_specified_elements.compared_specified_elements : SET [1 : ?] OF a3ms_inspected_equivalence_element_select;
-WHERE
- WR1: (a3ms_get_element_type(SELF.comparing_specified_elements) = etns_external_representation_item) OR
- (a3ms_get_element_type(SELF.comparing_specified_elements) IN
- SELF\a3m_equivalence_criterion_for_shape.comparing_element_types);
- WR2: (a3ms_get_element_type(SELF.compared_specified_elements) = etns_external_representation_item) OR
- (a3ms_get_element_type(SELF.compared_specified_elements) IN
- SELF\a3m_equivalence_criterion_for_shape.compared_element_types);
-END_ENTITY;
-
-ENTITY a3ms_equivalence_inspection_result
- SUBTYPE OF (data_equivalence_inspection_result);
- SELF\data_equivalence_inspection_result.criterion_inspected : a3m_equivalence_criterion_for_shape;
-WHERE
- WR1: a3ms_validate_accuracy_types(SELF, SELF\data_equivalence_inspection_result.criterion_inspected);
- WR2: SIZEOF(QUERY(re
- <* bag_to_set(USEDIN(SELF,
- 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DATA_EQUIVALENCE_INSPECTION_REPORT.INSPECTION_RESULT'))
- | NOT (a3ms_validate_element_types(re,
- SELF\data_equivalence_inspection_result.criterion_inspected)))) =
- 0;
- WR3: SIZEOF(QUERY(re
- <* bag_to_set(USEDIN(SELF,
- 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DATA_EQUIVALENCE_INSPECTION_REPORT.INSPECTION_RESULT'))
- | NOT (a3ms_validate_detected_difference_types(re,
- SELF\data_equivalence_inspection_result.criterion_inspected)))) =
- 0;
- WR4: SIZEOF(QUERY(re
- <* bag_to_set(USEDIN(SELF,
- 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DATA_EQUIVALENCE_INSPECTION_REPORT.INSPECTION_RESULT'))
- | NOT (a3ms_validate_measured_type(re,
- SELF\data_equivalence_inspection_result.criterion_inspected)))) =
- 0;
-END_ENTITY;
-
-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, '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',
- 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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: 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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: 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ACCELERATION_UNIT' IN
- TYPEOF(SELF\measure_with_unit.unit_component);
-END_ENTITY;
-
-ENTITY acceleration_unit
- SUBTYPE OF (derived_unit);
-WHERE
- WR1: derive_dimensional_exponents(SELF) = dimensional_exponents(1.0, 0.0, -2.0, 0.0, 0.0, 0.0, 0.0);
-END_ENTITY;
-
-ENTITY 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, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ID_ATTRIBUTE.IDENTIFIED_ITEM')) <= 1;
-END_ENTITY;
-
-ENTITY action_actual
- SUBTYPE OF (executed_action);
-END_ENTITY;
-
-ENTITY action_assignment
- ABSTRACT SUPERTYPE OF ((ONEOF(applied_usage_right, applied_action_assignment)));
- assigned_action : action;
-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')) <= 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_directive_relationship;
- name : label;
- description : OPTIONAL STRING;
- relating : action_directive;
- related : action_directive;
- relation_type : STRING;
-WHERE
- WR1: acyclic_action_directive_relationship(SELF, [related],
- 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ACTION_DIRECTIVE_RELATIONSHIP');
-END_ENTITY;
-
-ENTITY action_happening
- SUBTYPE OF (action_relationship);
-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, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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, '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;
-
-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_relationship;
- name : label;
- description : OPTIONAL text;
- relating_resource : action_resource;
- related_resource : action_resource;
-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_manufacturing_build_plate_relationship
- SUBTYPE OF (additive_manufacturing_setup_relationship);
-END_ENTITY;
-
-ENTITY additive_manufacturing_setup
- SUBTYPE OF (product);
-END_ENTITY;
-
-ENTITY additive_manufacturing_setup_relationship
- ABSTRACT SUPERTYPE OF (ONEOF(additive_manufacturing_build_plate_relationship,
- additive_manufacturing_support_structure_geometry_relationship,
- additive_manufacturing_setup_workpiece_relationship))
- SUBTYPE OF (next_assembly_usage_occurrence);
-END_ENTITY;
-
-ENTITY additive_manufacturing_setup_workpiece_relationship
- SUBTYPE OF (additive_manufacturing_setup_relationship);
-END_ENTITY;
-
-ENTITY additive_manufacturing_support_structure_geometry_relationship
- SUBTYPE OF (additive_manufacturing_setup_relationship);
-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(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.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',
- '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\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' 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)) =
- 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
- 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',
- '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)))) =
- 0))) =
- 0;
- 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.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
- ('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(elp_fbnds.bound)))) =
- 0;
- 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',
- '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
- ('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',
- '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
- | ('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(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
- | ('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) >=
- 3))) =
- 0))) =
- 0);
-END_ENTITY;
-
-ENTITY agc_with_dimension
- SUBTYPE OF (angle_geometric_constraint);
- angle_value : plane_angle_measure;
-END_ENTITY;
-
-ENTITY aggregate_id_attribute;
- attribute_value : identifier;
- identified_item : SET [1 : ?] OF id_attribute_select;
-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 alternative_solution_relationship
- SUBTYPE OF (product_definition_formation_relationship);
- relation_type : STRING;
-WHERE
- WR1: acyclic_alternative_solution_relationship(SELF,
- [SELF\product_definition_formation_relationship.related_product_definition_formation],
- 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ALTERNATIVE_SOLUTION_RELATIONSHIP');
-END_ENTITY;
-
-ENTITY amount_of_substance_measure_with_unit
- SUBTYPE OF (measure_with_unit);
-WHERE
- WR1: 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.AMOUNT_OF_SUBSTANCE_UNIT' IN
- TYPEOF(SELF\measure_with_unit.unit_component);
-END_ENTITY;
-
-ENTITY amount_of_substance_unit
- SUBTYPE OF (named_unit);
-WHERE
- WR1: (SELF\named_unit.dimensions.length_exponent = 0.0) AND (SELF\named_unit.dimensions.mass_exponent = 0.0) AND
- (SELF\named_unit.dimensions.time_exponent = 0.0) AND
- (SELF\named_unit.dimensions.electric_current_exponent = 0.0) AND
- (SELF\named_unit.dimensions.thermodynamic_temperature_exponent = 0.0) AND
- (SELF\named_unit.dimensions.amount_of_substance_exponent = 1.0) AND
- (SELF\named_unit.dimensions.luminous_intensity_exponent = 0.0);
-END_ENTITY;
-
-ENTITY 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_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 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: ('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;
-
-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
- (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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(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
- <* 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)) 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);
-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_point_occurrence, 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)))
- SUBTYPE OF (styled_item);
-WHERE
- WR1: 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.GEOMETRIC_REPRESENTATION_ITEM' IN TYPEOF(SELF);
- WR2: SIZEOF(QUERY(reps
- <* using_representations(SELF)
- | NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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) *
- ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.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;
-
-ENTITY annotation_occurrence_relationship;
- name : label;
- description : text;
- relating_annotation_occurrence : annotation_occurrence;
- related_annotation_occurrence : annotation_occurrence;
-END_ENTITY;
-
-ENTITY annotation_placeholder_occurrence
- SUBTYPE OF (annotation_occurrence, geometric_representation_item);
- SELF\styled_item.item : geometric_set;
- role : annotation_placeholder_occurrence_role;
- line_spacing : positive_length_measure;
-INVERSE
- the_callout : draughting_callout FOR contents;
- the_draughting_model_item_association_with_placeholders : SET [0:1] OF draughting_model_item_association_with_placeholder FOR annotation_placeholder;
-WHERE
- WR1: md_valid_content_in_geometric_set_for_placeholder(item);
- WR2: NOT (role = annotation_placeholder_occurrence_role.gps_data) OR
- ((SIZEOF(the_draughting_model_item_association_with_placeholders) = 1) AND
- md_pmi_name_and_type_correlation(SELF));
-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 ('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
- ('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' 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_point_occurrence
- SUBTYPE OF (annotation_occurrence);
- SELF\styled_item.item : point;
-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 ('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\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: 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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: 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.TEXT_STRING_REPRESENTATION' IN
- TYPEOF(SELF\mapped_item.mapping_source.mapped_representation);
- WR2: 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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: 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CHARACTER_GLYPH_SYMBOL' IN
- TYPEOF(SELF\mapped_item.mapping_source.mapped_representation);
- WR2: 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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 ap242_assignment_object_relationship
- SUBTYPE OF (assignment_object_relationship);
- SELF\assignment_object_relationship.related : ap242_assignment_object_select;
- SELF\assignment_object_relationship.relating : ap242_assignment_object_select;
-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, '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));
- name : label;
- frame_of_reference : application_context;
-END_ENTITY;
-
-ENTITY application_protocol_definition;
- status : label;
- application_interpreted_model_schema_name : label;
- application_protocol_year : year_number;
- application : application_context;
-END_ENTITY;
-
-ENTITY applied_action_assignment
- SUBTYPE OF (action_assignment);
- items : SET [1 : ?] OF action_items;
-END_ENTITY;
-
-ENTITY applied_action_method_assignment
- SUBTYPE OF (action_method_assignment);
- items : SET [1 : ?] OF action_method_items;
-END_ENTITY;
-
-ENTITY applied_action_request_assignment
- SUBTYPE OF (action_request_assignment);
- items : SET [1 : ?] OF action_request_item;
-END_ENTITY;
-
-ENTITY applied_approval_assignment
- SUBTYPE OF (approval_assignment);
- items : SET [1 : ?] OF approval_item;
-END_ENTITY;
-
-ENTITY applied_area
- SUBTYPE OF (shape_aspect);
-WHERE
- WR1: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(SELF.of_shape));
- 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.SHAPE_REPRESENTATION_WITH_PARAMETERS') IN
- TYPEOF(pdr.used_representation)))) =
- 1)))) =
- 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 ({2 <= 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']))) >
- 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(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 = '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(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 = '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' 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_classification_assignment_relationship
- SUBTYPE OF (classification_assignment_relationship);
- SELF\classification_assignment_relationship.related : applied_classification_assignment;
- SELF\classification_assignment_relationship.relating : applied_classification_assignment;
-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_description_text_assignment
- SUBTYPE OF (description_text_assignment);
- items : SET [1 : ?] OF description_item;
-END_ENTITY;
-
-ENTITY applied_description_text_assignment_relationship
- SUBTYPE OF (description_text_assignment_relationship);
- SELF\description_text_assignment_relationship.related : applied_description_text_assignment;
- SELF\description_text_assignment_relationship.relating : applied_description_text_assignment;
-END_ENTITY;
-
-ENTITY applied_directed_action_assignment
- SUBTYPE OF (directed_action_assignment);
- items : SET [1 : ?] OF action_request_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_external_identification_assignment_relationship
- SUBTYPE OF (external_identification_assignment_relationship);
- SELF\external_identification_assignment_relationship.related : applied_external_identification_assignment;
- SELF\external_identification_assignment_relationship.relating : applied_external_identification_assignment;
-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(['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;
-
-ENTITY applied_location_assignment
- SUBTYPE OF (location_assignment);
- items : SET [1 : ?] OF location_item;
-END_ENTITY;
-
-ENTITY applied_location_representation_assignment
- SUBTYPE OF (location_representation_assignment);
- items : SET [1 : ?] OF location_representation_item;
-END_ENTITY;
-
-ENTITY applied_name_assignment
- SUBTYPE OF (name_assignment);
- item : name_item;
-END_ENTITY;
-
-ENTITY applied_organization_assignment
- SUBTYPE OF (organization_assignment);
- items : SET [1 : ?] OF organization_item;
-END_ENTITY;
-
-ENTITY applied_organization_type_assignment
- SUBTYPE OF (organization_type_assignment);
- items : SET [1 : ?] OF organization_type_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_observed_assignment
- SUBTYPE OF (state_observed_assignment);
- items : SET [1 : ?] OF state_observed_of_item;
-END_ENTITY;
-
-ENTITY applied_state_type_assignment
- SUBTYPE OF (state_type_assignment);
- items : SET [1 : ?] OF state_type_of_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 (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, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DESCRIPTION_ATTRIBUTE.DESCRIBED_ITEM')) <=
- 1;
-END_ENTITY;
-
-ENTITY approval_status;
- name : label;
-END_ENTITY;
-
-ENTITY area_in_set;
- area : presentation_area;
- in_set : presentation_set;
-END_ENTITY;
-
-ENTITY area_measure_with_unit
- SUBTYPE OF (measure_with_unit);
-WHERE
- WR1: 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.AREA_UNIT' IN TYPEOF(SELF\measure_with_unit.unit_component);
-END_ENTITY;
-
-ENTITY area_unit
- SUBTYPE OF (derived_unit);
-WHERE
- WR1: derive_dimensional_exponents(SELF) = dimensional_exponents(2.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0);
-END_ENTITY;
-
-ENTITY 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))
- SUBTYPE OF (assembly_group_component);
-END_ENTITY;
-
-ENTITY ascribable_state;
- name : label;
- description : OPTIONAL text;
- pertaining_state_type : state_type;
- ascribed_state_observed : state_observed;
-END_ENTITY;
-
-ENTITY ascribable_state_relationship;
- name : label;
- description : OPTIONAL text;
- relating_ascribable_state : ascribable_state;
- related_ascribable_state : ascribable_state;
-DERIVE
- id : identifier := get_id_value(SELF);
-WHERE
- WR1: SIZEOF(USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ID_ATTRIBUTE.IDENTIFIED_ITEM')) <= 1;
-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_joint
- SUBTYPE OF (component_feature_joint);
-WHERE
- 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;
-
-ENTITY component_mating_constraint_condition
- SUBTYPE OF ( shape_aspect );
- UNIQUE
- ur1 : SELF\shape_aspect.name, SELF\shape_aspect.of_shape;
-END_ENTITY;
-
-ENTITY connection_zone_based_assembly_joint
- SUBTYPE OF ( assembly_joint );
-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],
- 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ASSEMBLY_GROUP_COMPONENT_DEFINITION_PLACEMENT_LINK');
-END_ENTITY;
-
-ENTITY assembly_shape_constraint
- SUBTYPE OF (shape_aspect);
-END_ENTITY;
-
-ENTITY assembly_shape_constraint_item_relationship
- SUBTYPE OF (shape_aspect_relationship);
- SELF\shape_aspect_relationship.relating_shape_aspect : assembly_shape_constraint;
-END_ENTITY;
-
-ENTITY assembly_shape_joint
- SUBTYPE OF (shape_aspect);
-END_ENTITY;
-
-ENTITY assembly_shape_joint_item_relationship
- SUBTYPE OF (shape_aspect_relationship);
- SELF\shape_aspect_relationship.relating_shape_aspect : assembly_shape_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 assignment_object_relationship;
- id : OPTIONAL identifier;
- description : OPTIONAL text;
- relating : assignment_object_select;
- related : assignment_object_select;
- relation_type : STRING;
-WHERE
- WR1: acyclic_assignment_object_relationship(SELF, [related],
- 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ASSIGNMENT_OBJECT_RELATIONSHIP');
-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 attachment_slot_as_planned
- SUBTYPE OF (product_definition_formation);
-END_ENTITY;
-
-ENTITY attachment_slot_as_realized
- SUBTYPE OF (product_definition_formation);
-END_ENTITY;
-
-ENTITY attachment_slot_design
- SUBTYPE OF (product_definition_formation);
-END_ENTITY;
-
-ENTITY attachment_slot_design_to_planned
- SUBTYPE OF (product_definition_formation_relationship);
- SELF\product_definition_formation_relationship.relating_product_definition_formation : attachment_slot_design;
- SELF\product_definition_formation_relationship.related_product_definition_formation : attachment_slot_as_planned;
-WHERE
- WR1: SELF.relating_product_definition_formation.of_product :=: SELF.related_product_definition_formation.of_product;
-END_ENTITY;
-
-ENTITY attachment_slot_design_to_realized
- SUBTYPE OF (product_definition_formation_relationship);
- SELF\product_definition_formation_relationship.relating_product_definition_formation : attachment_slot_design;
- SELF\product_definition_formation_relationship.related_product_definition_formation : attachment_slot_as_realized;
-WHERE
- WR1: SELF.relating_product_definition_formation.of_product :=: SELF.related_product_definition_formation.of_product;
-END_ENTITY;
-
-ENTITY attachment_slot_on_product
- SUBTYPE OF (product_definition_relationship);
-END_ENTITY;
-
-ENTITY attachment_slot_planned_to_realized
- SUBTYPE OF (product_definition_formation_relationship);
- SELF\product_definition_formation_relationship.relating_product_definition_formation : attachment_slot_as_planned;
- SELF\product_definition_formation_relationship.related_product_definition_formation : attachment_slot_as_realized;
-WHERE
- WR1: SELF.relating_product_definition_formation.of_product :=: SELF.related_product_definition_formation.of_product;
-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,0.0,1.0]));
-WHERE
- WR1: SELF\geometric_representation_item.dim = 3;
-END_ENTITY;
-
-ENTITY axis2_placement_2d
- SUBTYPE OF (placement);
- ref_direction : OPTIONAL direction;
-DERIVE
- p : LIST [2 : 2] OF direction := build_2axes(ref_direction);
-WHERE
- WR1: SELF\geometric_representation_item.dim = 2;
-END_ENTITY;
-
-ENTITY axis2_placement_3d
- SUBTYPE OF (placement);
- axis : OPTIONAL direction;
- ref_direction : OPTIONAL direction;
-DERIVE
- p : LIST [3 : 3] OF direction := build_axes(axis, ref_direction);
-WHERE
- WR1: SELF\placement.location.dim = 3;
- WR2: (NOT (EXISTS(axis))) OR (axis.dim = 3);
- WR3: (NOT (EXISTS(ref_direction))) OR (ref_direction.dim = 3);
- WR4: (NOT (EXISTS(axis))) OR (NOT (EXISTS(ref_direction))) OR (cross_product(axis, ref_direction).magnitude > 0.0);
-END_ENTITY;
-
-ENTITY b_spline_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: ('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;
-
-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: ('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;
-
-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 b_spline_volume
- SUPERTYPE OF (ONEOF(b_spline_volume_with_knots, uniform_volume, quasi_uniform_volume, bezier_volume) ANDOR
- rational_b_spline_volume)
- SUBTYPE OF (volume);
- u_degree : INTEGER;
- v_degree : INTEGER;
- w_degree : INTEGER;
- control_points_list : LIST [2 : ?] OF LIST [2 : ?] OF LIST [2 : ?] OF cartesian_point;
-DERIVE
- u_upper : INTEGER := SIZEOF(control_points_list) -
- 1;
- v_upper : INTEGER := SIZEOF(control_points_list[1]) -
- 1;
- w_upper : INTEGER := SIZEOF(control_points_list[1][1]) -
- 1;
- control_points : ARRAY [0 : u_upper] OF ARRAY [0 : v_upper] OF ARRAY [0 : w_upper] OF cartesian_point := make_array_of_array_of_array(control_points_list,
- 0,
- u_upper,
- 0,
- v_upper,
- 0,
- w_upper);
-WHERE
- WR1: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.BEZIER_VOLUME' IN TYPEOF(SELF)) OR
- ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.UNIFORM_VOLUME' IN TYPEOF(SELF)) OR
- ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.QUASI_UNIFORM_VOLUME' IN TYPEOF(SELF)) OR
- ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.B_SPLINE_VOLUME_WITH_KNOTS' IN TYPEOF(SELF));
-END_ENTITY;
-
-ENTITY b_spline_volume_with_knots
- SUBTYPE OF (b_spline_volume);
- u_multiplicities : LIST [2 : ?] OF INTEGER;
- v_multiplicities : LIST [2 : ?] OF INTEGER;
- w_multiplicities : LIST [2 : ?] OF INTEGER;
- u_knots : LIST [2 : ?] OF parameter_value;
- v_knots : LIST [2 : ?] OF parameter_value;
- w_knots : LIST [2 : ?] OF parameter_value;
-DERIVE
- knot_u_upper : INTEGER := SIZEOF(u_knots);
- knot_v_upper : INTEGER := SIZEOF(v_knots);
- knot_w_upper : INTEGER := SIZEOF(w_knots);
-WHERE
- WR1: constraints_param_b_spline(SELF\b_spline_volume.u_degree, knot_u_upper, SELF\b_spline_volume.u_upper,
- u_multiplicities, u_knots);
- WR2: constraints_param_b_spline(SELF\b_spline_volume.v_degree, knot_v_upper, SELF\b_spline_volume.v_upper,
- v_multiplicities, v_knots);
- WR3: constraints_param_b_spline(SELF\b_spline_volume.w_degree, knot_w_upper, SELF\b_spline_volume.w_upper,
- w_multiplicities, w_knots);
- WR4: SIZEOF(u_multiplicities) = knot_u_upper;
- WR5: SIZEOF(v_multiplicities) = knot_v_upper;
- WR6: SIZEOF(w_multiplicities) = knot_w_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,
- '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)) =
- 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')
- | ('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)
- | '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)
- | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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)
- | ('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']))) >
- 0))) =
- 0;
- 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))) =
- 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)
- | '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)
- | ('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)
- | ('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']))) >
- 0))) =
- 0;
- 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))) =
- 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')
- | ('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')
- | ('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',
- '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.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)))) =
- 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.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)))) =
- 1))) =
- 1;
-END_ENTITY;
-
-ENTITY bead_end
- SUBTYPE OF (shape_aspect);
-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(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(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(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))) =
- 1);
- 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))) =
- 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)) 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);
-WHERE
- WR1: SIZEOF(QUERY(sar
- <* SELF\composite_shape_aspect.component_relationships
- | sar\shape_aspect_relationship.name = 'start feature')) =
- 1;
- WR2: SIZEOF(QUERY(sar
- <* SELF\composite_shape_aspect.component_relationships
- | sar\shape_aspect_relationship.name = 'end feature')) =
- 1;
-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 bezier_volume
- SUBTYPE OF (b_spline_volume);
-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_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 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 block_volume
- SUBTYPE OF (volume);
- 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,
- '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,
- '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') 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.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')
- | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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, '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'))) =
- 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
- | (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 = '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 (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')
- | (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,
- '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 (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' 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))))) =
- 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 (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.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 (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')
- | (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','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 (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')
- | (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)) AND
- (pdr.used_representation.name = 'maximum feature limit'))) >=
- 0;
-END_ENTITY;
-
-ENTITY boss_top
- SUBTYPE OF (shape_aspect);
-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(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)))) =
- 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(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(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(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 = '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
- 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.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')
- | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') IN
- TYPEOF(pdr.used_representation)))) <=
- 1)))) =
- 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(impl_rep.used_representation.items) = 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(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 = 'top radius'))) <=
- 1))) =
- 0))) =
- 0;
-END_ENTITY;
-
-ENTITY bound_parameter_environment
- 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' 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: 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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,
- locally_refined_spline_curve))
- SUBTYPE OF (curve);
-END_ENTITY;
-
-ENTITY bounded_pcurve
- SUBTYPE OF (pcurve, bounded_curve);
-WHERE
- WR1: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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, locally_refined_spline_surface))
- SUBTYPE OF (surface);
-END_ENTITY;
-
-ENTITY bounded_surface_curve
- SUBTYPE OF (surface_curve, bounded_curve);
-WHERE
- WR1: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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 ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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 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: 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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: ('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.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,
- '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;
-
-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_intersection_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_intersection_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 ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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: 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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_11
- SUBTYPE OF (geometric_representation_item);
-WHERE
- WR1: 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.AXIS2_PLACEMENT_3D' IN TYPEOF(SELF);
-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
- SUPERTYPE OF (ONEOF(cylindrical_point, polar_point, spherical_point))
- SUBTYPE OF (point);
- coordinates : LIST [1 : 3] OF length_measure;
-END_ENTITY;
-
-ENTITY cartesian_transformation_operator
- SUPERTYPE OF (ONEOF(cartesian_transformation_operator_2d, cartesian_transformation_operator_3d))
- SUBTYPE OF (geometric_representation_item, functionally_defined_transformation);
- axis1 : OPTIONAL direction;
- axis2 : OPTIONAL direction;
- local_origin : cartesian_point;
- scale : OPTIONAL REAL;
-DERIVE
- scl : REAL := NVL(scale, 1.0);
-WHERE
- WR1: scl > 0.0;
-END_ENTITY;
-
-ENTITY cartesian_transformation_operator_2d
- SUBTYPE OF (cartesian_transformation_operator);
-DERIVE
- u : LIST [2 : 2] OF direction := base_axis(2, SELF\cartesian_transformation_operator.axis1,
- SELF\cartesian_transformation_operator.axis2, ?);
-WHERE
- WR1: SELF\geometric_representation_item.dim = 2;
-END_ENTITY;
-
-ENTITY cartesian_transformation_operator_3d
- SUBTYPE OF (cartesian_transformation_operator);
- axis3 : OPTIONAL direction;
-DERIVE
- u : LIST [3 : 3] OF direction := base_axis(3, SELF\cartesian_transformation_operator.axis1,
- SELF\cartesian_transformation_operator.axis2, axis3);
-WHERE
- WR1: SELF\geometric_representation_item.dim = 3;
-END_ENTITY;
-
-ENTITY cc_design_approval
- SUBTYPE OF (approval_assignment);
- items : SET [1 : ?] OF approved_item;
-END_ENTITY;
-
-ENTITY cc_design_certification
- SUBTYPE OF (certification_assignment);
- items : SET [1 : ?] OF certified_item;
-END_ENTITY;
-
-ENTITY cc_design_contract
- SUBTYPE OF (contract_assignment);
- items : SET [1 : ?] OF contracted_item;
-END_ENTITY;
-
-ENTITY cc_design_date_and_time_assignment
- SUBTYPE OF (date_and_time_assignment);
- items : SET [1 : ?] OF date_time_item;
-END_ENTITY;
-
-ENTITY cc_design_person_and_organization_assignment
- SUBTYPE OF (person_and_organization_assignment);
- items : SET [1 : ?] OF cc_person_organization_item;
-WHERE
- WR1: cc_design_person_and_organization_correlation(SELF);
-END_ENTITY;
-
-ENTITY cc_design_security_classification
- SUBTYPE OF (security_classification_assignment);
- items : SET [1 : ?] OF cc_classified_item;
-END_ENTITY;
-
-ENTITY cc_design_specification_reference
- SUBTYPE OF (document_reference);
- items : SET [1 : ?] OF cc_specified_item;
-END_ENTITY;
-
-ENTITY 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: 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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];
- 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, '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 = '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')))) =
- 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')))) =
- 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, '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);
- 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(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(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 = '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(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(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 = 'offset amount')) OR
- ((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(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(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));
- WR8: (SIZEOF(QUERY(sdr
- <* QUERY(sar
- <* USEDIN(SELF,
- '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)))
- | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CHAMFER' IN
- TYPEOF(sdr.relating_shape_aspect)) AND
- ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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.0 <= baseline_ratio <= 1.0};
- WR2: item_in_context(character_box, SELF\representation.context_of_items);
- WR3: 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POSITIVE_LENGTH_MEASURE' IN TYPEOF(box_height);
-END_ENTITY;
-
-ENTITY character_glyph_symbol_outline
- SUBTYPE OF (character_glyph_symbol);
- outlines : SET [1 : ?] OF annotation_fill_area;
-WHERE
- WR1: outlines <= SELF\representation.items;
-END_ENTITY;
-
-ENTITY character_glyph_symbol_stroke
- SUBTYPE OF (character_glyph_symbol);
- strokes : SET [1 : ?] OF curve;
-WHERE
- WR1: 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];
- 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
- UR1: item, rep;
-WHERE
- WR1: rep IN using_representations(item);
-END_ENTITY;
-
-ENTITY characterized_location_object
- SUBTYPE OF (characterized_object, location);
-END_ENTITY;
-
-ENTITY characterized_object;
- name : label;
- description : OPTIONAL text;
-END_ENTITY;
-
-ENTITY characterized_object_relationship;
- name : label;
- description : OPTIONAL text;
- relating_object : characterized_object;
- related_object : characterized_object;
-END_ENTITY;
-
-ENTITY characterized_product_concept_feature
- SUBTYPE OF (product_concept_feature, characterized_object);
-END_ENTITY;
-
-ENTITY characterized_product_concept_feature_category
- SUBTYPE OF (product_concept_feature_category, characterized_object);
-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: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FEATURE_COMPONENT_DEFINITION' IN
- TYPEOF(SELF.of_shape.definition));
- 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.SHAPE_REPRESENTATION_WITH_PARAMETERS') IN
- TYPEOF(pdr.used_representation)))) =
- 1)))) =
- 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(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')
- | (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)) 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(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 = 'diameter')))) =
- 1)))) =
- 0)))) =
- 0);
-END_ENTITY;
-
-ENTITY circular_involute
- SUBTYPE OF (curve);
- position : axis2_placement;
- base_radius : positive_length_measure;
-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,
- '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') IN
- TYPEOF(sar))))
- | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT' IN
- TYPEOF(sdr.related_shape_aspect)))) =
- 1)))) <=
- 3)))) =
- 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.SHAPE_REPRESENTATION_WITH_PARAMETERS') IN
- TYPEOF(pdr.used_representation)))) =
- 1)))) =
- 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(impl_rep.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(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 = '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(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'] *
- 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(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')))) =
- 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
- | ((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(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' 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 ('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 ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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_assignment_relationship;
- id : OPTIONAL identifier;
- description : OPTIONAL text;
- relating : classification_assignment;
- related : classification_assignment;
- relation_type : STRING;
-WHERE
- WR1: acyclic_classification_assignment_relationship(SELF, [related],
- 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CLASSIFICATION_ASSIGNMENT_RELATIONSHIP');
-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: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FEATURE_COMPONENT_DEFINITION' IN
- TYPEOF(SELF.of_shape.definition));
- 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.SHAPE_REPRESENTATION_WITH_PARAMETERS') IN
- TYPEOF(pdr.used_representation)))) =
- 1)))) =
- 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(impl_rep.used_representation.items) = 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(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.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')
- | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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 clothoid
- SUBTYPE OF (curve);
- position : axis2_placement;
- clothoid_constant : length_measure;
-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) *
- ['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;
-
-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.0 <= red <= 1.0};
- WR2: {0.0 <= green <= 1.0};
- WR3: {0.0 <= blue <= 1.0};
-END_ENTITY;
-
-ENTITY colour_specification
- SUBTYPE OF (colour);
- name : label;
-END_ENTITY;
-
-ENTITY common_datum
- SUBTYPE OF (composite_shape_aspect, datum);
-WHERE
- WR1: SIZEOF(SELF\composite_shape_aspect.component_relationships) = 2;
- WR2: SIZEOF(QUERY(sar
- <* SELF\composite_shape_aspect.component_relationships
- | NOT (('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;
-
-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: (('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
- ('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' 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 <= 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 ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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_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,
- '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;
-
-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: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EXPLICIT_COMPOSITE_HOLE' IN TYPEOF(SELF)) XOR
- (SELF\characterized_object.description IN ['counterbore','countersunk']);
- WR2: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EXPLICIT_COMPOSITE_HOLE' IN TYPEOF(SELF)) XOR
- (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.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: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EXPLICIT_COMPOSITE_HOLE' IN TYPEOF(SELF)) XOR
- ((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,
- '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' 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;
-
-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(['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;
-
-ENTITY composite_text
- SUBTYPE OF (geometric_representation_item);
- collected_text : SET [2 : ?] OF text_or_character;
-WHERE
- WR1: acyclic_composite_text(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: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EXPLICIT_COMPOSITE_HOLE' IN TYPEOF(SELF)) XOR
- (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')
- | ((csa.name = 'compound feature in solid') AND
- ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COMPOSITE_SHAPE_ASPECT' IN
- TYPEOF(csa))))) =
- 1))) =
- 1);
- WR2: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EXPLICIT_COMPOSITE_HOLE' IN TYPEOF(SELF)) XOR
- (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))) =
- 1))) =
- 1);
- WR3: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EXPLICIT_COMPOSITE_HOLE' IN TYPEOF(SELF)) XOR
- (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(fcr
- <* csa.component_relationships
- | (NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP' IN
- TYPEOF(fcr))))) =
- 0)))) =
- 1)))) =
- 1);
- WR4: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EXPLICIT_COMPOSITE_HOLE' IN TYPEOF(SELF)) XOR
- (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)))) =
- 1))) =
- 1);
- WR5: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EXPLICIT_COMPOSITE_HOLE' IN TYPEOF(SELF)) XOR
- (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(sar.related_shape_aspect)))) =
- 0)))) =
- 1)))) =
- 1);
- WR6: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EXPLICIT_COMPOSITE_HOLE' IN TYPEOF(SELF)) XOR
- (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' 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_array)) 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: ('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',
- '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',
- '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.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 condition
- SUBTYPE OF (action_method);
-END_ENTITY;
-
-ENTITY conditional_concept_feature
- SUBTYPE OF (product_concept_feature);
- condition : concept_feature_relationship_with_condition;
-END_ENTITY;
-
-ENTITY conditional_effectivity
- SUBTYPE OF (condition, effectivity);
-END_ENTITY;
-
-ENTITY conductance_measure_with_unit
- SUBTYPE OF (measure_with_unit);
-WHERE
- WR1: 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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, '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')) <=
- 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: 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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(['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',
- '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
- | ('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
- | ('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))) =
- 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.0;
-END_ENTITY;
-
-ENTITY connected_edge_set
- SUBTYPE OF (topological_representation_item);
- ces_edges : SET [1 : ?] OF edge;
-END_ENTITY;
-
-ENTITY connected_edge_with_length_set_representation
- SUBTYPE OF (representation);
- SELF\representation.items : SET [1 : ?] OF connected_edge_with_length_set_items;
-WHERE
- WR1: SIZEOF(QUERY(it
- <* SELF.items
- | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CONNECTED_EDGE_SET' IN TYPEOF(it))) =
- 1;
-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 connected_volume_set
- SUBTYPE OF (topological_representation_item);
- cvs_volumes : SET [1 : ?] OF volume_with_faces;
-END_ENTITY;
-
-ENTITY connected_volume_sub_set
- SUBTYPE OF (connected_volume_set);
- parent_volume_set : connected_volume_set;
-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 connectivity_definition
- SUBTYPE OF (shape_aspect);
-END_ENTITY;
-
-ENTITY connectivity_definition_item_relationship
- SUBTYPE OF (shape_aspect_relationship);
- SELF\shape_aspect_relationship.relating_shape_aspect : connectivity_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 constituent_shape_aspect
- SUBTYPE OF (shape_aspect);
- parent : shape_aspect;
-DERIVE
- SELF\shape_aspect.of_shape : product_definition_shape := get_root_shape_aspect(SELF);
-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: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.AXIS2_PLACEMENT_3D' IN
- TYPEOF(SELF\representation_relationship_with_transformation.transformation_operator\item_defined_transformation.transform_item_1)) AND
- ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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: 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.KINEMATIC_PAIR' IN
- TYPEOF(SELF\representation_relationship_with_transformation.transformation_operator);
-END_ENTITY;
-
-ENTITY constructive_geometry_representation
- SUBTYPE OF (representation);
-WHERE
- WR1: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.GEOMETRIC_REPRESENTATION_CONTEXT' IN
- TYPEOF(SELF\representation.context_of_items)) AND
- ({2 <= SELF\representation.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',
- 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SURFACE',
- 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CONNECTED_FACE_SET',
- 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CONNECTED_EDGE_SET',
- '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;
-END_ENTITY;
-
-ENTITY constructive_geometry_representation_relationship
- SUBTYPE OF (representation_relationship);
- SELF\representation_relationship.rep_1 : constructive_geometry_representation_or_shape_representation;
- SELF\representation_relationship.rep_2 : constructive_geometry_representation;
-WHERE
- 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
- TYPEOF(SELF));
-END_ENTITY;
-
-ENTITY contact_feature
- SUBTYPE OF (shape_aspect);
-END_ENTITY;
-
-ENTITY contact_feature_definition
- SUBTYPE OF (shape_feature_definition);
-END_ENTITY;
-
-ENTITY contact_feature_definition_fit_relationship
- SUBTYPE OF (shape_feature_definition_fit_relationship);
- SELF\characterized_object_relationship.relating_object : contact_feature_definition;
- SELF\characterized_object_relationship.related_object : contact_feature_definition;
-END_ENTITY;
-
-ENTITY contact_feature_fit_relationship
- SUBTYPE OF (shape_feature_fit_relationship);
- SELF\shape_aspect_relationship.relating_shape_aspect : contact_feature;
- SELF\shape_aspect_relationship.related_shape_aspect : contact_feature;
-END_ENTITY;
-
-ENTITY contact_ratio_representation
- 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 = 'ratio value'))) =
- 1);
- 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,
- 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.USED_REPRESENTATION')
- | (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,
- '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.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 containing_message
- SUBTYPE OF (group_assignment);
- items : SET [1 : 1] OF structured_message;
- SELF\group_assignment.assigned_group : message_contents_group;
-DERIVE
- message_contents_group : message_contents_group := SELF\group_assignment.assigned_group;
-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
- <* style_context
- | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.REPRESENTATION_ITEM' IN TYPEOF(sc))) =
- 1) OR
- (SIZEOF(QUERY(sc
- <* style_context
- | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MAPPED_ITEM' IN TYPEOF(sc)) OR
- ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CONTEXT_DEPENDENT_SHAPE_REPRESENTATION' IN
- TYPEOF(sc)) OR
- ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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: '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')) <=
- 1;
- WR3: SIZEOF(USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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 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 coordinated_universal_time_offset;
- hour_offset : INTEGER;
- minute_offset : OPTIONAL INTEGER;
- sense : ahead_or_behind;
-DERIVE
- actual_minute_offset : INTEGER := NVL(minute_offset, 0);
-WHERE
- WR1: {0 <= hour_offset < 24};
- WR2: {0 <= actual_minute_offset <= 59};
- WR3: NOT (((hour_offset <> 0) OR (actual_minute_offset <> 0)) AND (sense = exact));
-END_ENTITY;
-
-ENTITY 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(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.REPOSITIONED_TESSELLATED_ITEM'] * TYPEOF(SELF)) = 0;
-END_ENTITY;
-
-ENTITY cos_function
- SUBTYPE OF (unary_function_call);
-END_ENTITY;
-
-ENTITY counterbore_hole_definition
- SUBTYPE OF (explicit_composite_hole);
- counterbore : LIST [1 : ?] OF UNIQUE explicit_round_hole;
- drilled_hole_depth : OPTIONAL positive_length_measure_with_unit;
- drilled_hole_depth_tolerance : OPTIONAL tolerance_value;
- drilled_hole_diameter : positive_length_measure_with_unit;
- drilled_hole_diameter_tolerance : OPTIONAL tolerance_value_or_limits_and_fits;
- through_hole : BOOLEAN;
-WHERE
- WR1: through_hole XOR EXISTS(drilled_hole_depth);
- WR2: 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT' IN
- TYPEOF(drilled_hole_depth_tolerance\tolerance_value.lower_bound);
- WR3: 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT' IN
- TYPEOF(drilled_hole_depth_tolerance\tolerance_value.upper_bound);
- WR4: NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.TOLERANCE_VALUE' IN
- TYPEOF(drilled_hole_diameter_tolerance)) OR
- ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT' IN
- TYPEOF(drilled_hole_diameter_tolerance\tolerance_value.lower_bound));
- WR5: NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.TOLERANCE_VALUE' IN
- TYPEOF(drilled_hole_diameter_tolerance)) OR
- ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT' IN
- TYPEOF(drilled_hole_diameter_tolerance\tolerance_value.upper_bound));
-END_ENTITY;
-
-ENTITY counterbore_hole_occurrence
- SUBTYPE OF (shape_aspect_occurrence);
- SELF\shape_aspect_occurrence.definition : counterbore_hole_definition;
-WHERE
- WR1: 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION' IN
- TYPEOF(SELF\shape_aspect.of_shape\property_definition.definition);
- WR2: SELF\shape_aspect.product_definitional = true;
-END_ENTITY;
-
-ENTITY counterbore_hole_occurrence_in_assembly
- SUBTYPE OF (counterbore_hole_occurrence);
- modified_components : LIST [1 : ?] OF UNIQUE multi_level_reference_designator;
-END_ENTITY;
-
-ENTITY counterdrill_hole_definition
- SUBTYPE OF (explicit_composite_hole);
- counterbore : explicit_round_hole;
- counterdrill_angle : positive_plane_angle_measure_with_unit;
- counterdrill_angle_tolerance : tolerance_value;
- drilled_hole_depth : OPTIONAL positive_length_measure_with_unit;
- drilled_hole_depth_tolerance : OPTIONAL tolerance_value;
- drilled_hole_diameter : positive_length_measure_with_unit;
- drilled_hole_diameter_tolerance : OPTIONAL tolerance_value_or_limits_and_fits;
- through_hole : BOOLEAN;
-WHERE
- WR1: through_hole XOR EXISTS(drilled_hole_depth);
- WR2: 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANE_ANGLE_MEASURE_WITH_UNIT' IN
- TYPEOF(counterdrill_angle_tolerance\tolerance_value.lower_bound);
- WR3: 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANE_ANGLE_MEASURE_WITH_UNIT' IN
- TYPEOF(counterdrill_angle_tolerance\tolerance_value.upper_bound);
- WR4: 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT' IN
- TYPEOF(drilled_hole_depth_tolerance\tolerance_value.lower_bound);
- WR5: 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT' IN
- TYPEOF(drilled_hole_depth_tolerance\tolerance_value.upper_bound);
- WR6: NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.TOLERANCE_VALUE' IN
- TYPEOF(drilled_hole_diameter_tolerance)) OR
- ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT' IN
- TYPEOF(drilled_hole_diameter_tolerance\tolerance_value.lower_bound));
- WR7: NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.TOLERANCE_VALUE' IN
- TYPEOF(drilled_hole_diameter_tolerance)) OR
- ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT' IN
- TYPEOF(drilled_hole_diameter_tolerance\tolerance_value.upper_bound));
-END_ENTITY;
-
-ENTITY counterdrill_hole_occurrence
- SUBTYPE OF (shape_aspect_occurrence);
- SELF\shape_aspect_occurrence.definition : counterdrill_hole_definition;
-WHERE
- WR1: 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION' IN
- TYPEOF(SELF\shape_aspect.of_shape\property_definition.definition);
- WR2: SELF\shape_aspect.product_definitional = true;
-END_ENTITY;
-
-ENTITY counterdrill_hole_occurrence_in_assembly
- SUBTYPE OF (counterdrill_hole_occurrence);
- modified_components : LIST [1 : ?] OF UNIQUE multi_level_reference_designator;
-END_ENTITY;
-
-ENTITY countersink_hole_definition
- SUBTYPE OF (explicit_composite_hole);
- countersink_angle : positive_plane_angle_measure_with_unit;
- countersink_angle_tolerance : tolerance_value;
- countersink_diameter : positive_length_measure_with_unit;
- countersink_diameter_tolerance : OPTIONAL tolerance_value_or_limits_and_fits;
- drilled_hole_depth : OPTIONAL positive_length_measure_with_unit;
- drilled_hole_depth_tolerance : OPTIONAL tolerance_value;
- drilled_hole_diameter : positive_length_measure_with_unit;
- drilled_hole_diameter_tolerance : OPTIONAL tolerance_value_or_limits_and_fits;
- through_hole : BOOLEAN;
-WHERE
- WR1: through_hole XOR EXISTS(drilled_hole_depth);
- WR2: 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANE_ANGLE_MEASURE_WITH_UNIT' IN
- TYPEOF(countersink_angle_tolerance\tolerance_value.lower_bound);
- WR3: 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANE_ANGLE_MEASURE_WITH_UNIT' IN
- TYPEOF(countersink_angle_tolerance\tolerance_value.upper_bound);
- WR4: NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.TOLERANCE_VALUE' IN
- TYPEOF(countersink_diameter_tolerance)) OR
- ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT' IN
- TYPEOF(countersink_diameter_tolerance\tolerance_value.lower_bound));
- WR5: NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.TOLERANCE_VALUE' IN
- TYPEOF(countersink_diameter_tolerance)) OR
- ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT' IN
- TYPEOF(countersink_diameter_tolerance\tolerance_value.upper_bound));
- WR6: 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT' IN
- TYPEOF(drilled_hole_depth_tolerance\tolerance_value.lower_bound);
- WR7: 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT' IN
- TYPEOF(drilled_hole_depth_tolerance\tolerance_value.upper_bound);
- WR8: NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.TOLERANCE_VALUE' IN
- TYPEOF(drilled_hole_diameter_tolerance)) OR
- ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT' IN
- TYPEOF(drilled_hole_diameter_tolerance\tolerance_value.lower_bound));
- WR9: NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.TOLERANCE_VALUE' IN
- TYPEOF(drilled_hole_diameter_tolerance)) OR
- ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT' IN
- TYPEOF(drilled_hole_diameter_tolerance\tolerance_value.upper_bound));
-END_ENTITY;
-
-ENTITY countersink_hole_occurrence
- SUBTYPE OF (shape_aspect_occurrence);
- SELF\shape_aspect_occurrence.definition : countersink_hole_definition;
-WHERE
- WR1: 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION' IN
- TYPEOF(SELF\shape_aspect.of_shape\property_definition.definition);
- WR2: SELF\shape_aspect.product_definitional = true;
-END_ENTITY;
-
-ENTITY countersink_hole_occurrence_in_assembly
- SUBTYPE OF (countersink_hole_occurrence);
- modified_components : LIST [1 : ?] OF UNIQUE multi_level_reference_designator;
-END_ENTITY;
-
-ENTITY criterion_report_item_with_number_of_instances
- SUBTYPE OF (data_equivalence_inspection_criterion_report_item);
- statistical_value : count_measure;
- value_type : summary_report_style_type;
-END_ENTITY;
-
-ENTITY criterion_report_item_with_value
- SUBTYPE OF (data_equivalence_inspection_criterion_report_item);
- report_value : measure_with_unit;
- value_type : label;
-END_ENTITY;
-
-ENTITY cross_sectional_alternative_shape_element
- SUBTYPE OF (cross_sectional_part_shape_element);
-INVERSE
- items : SET [2:?] OF shape_aspect_relationship FOR relating_shape_aspect;
-END_ENTITY;
-
-ENTITY cross_sectional_group_shape_element
- SUPERTYPE OF (ONEOF(cross_sectional_group_shape_element_with_tubular_cover,
- cross_sectional_group_shape_element_with_lacing, twisted_cross_sectional_group_shape_element))
- SUBTYPE OF (cross_sectional_part_shape_element);
-INVERSE
- items : SET [1:?] OF shape_aspect_relationship FOR relating_shape_aspect;
-END_ENTITY;
-
-ENTITY cross_sectional_group_shape_element_with_lacing
- SUBTYPE OF (cross_sectional_group_shape_element);
-END_ENTITY;
-
-ENTITY cross_sectional_group_shape_element_with_tubular_cover
- SUBTYPE OF (cross_sectional_group_shape_element);
-END_ENTITY;
-
-ENTITY cross_sectional_occurrence_shape_element
- SUBTYPE OF (shape_aspect);
-END_ENTITY;
-
-ENTITY cross_sectional_part_shape_element
- SUPERTYPE OF (ONEOF(cross_sectional_alternative_shape_element, cross_sectional_group_shape_element))
- SUBTYPE OF (shape_aspect);
-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(['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)) 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;
-
-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(['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',
- '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 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)) =
- 0))) =
- 0;
- WR5: SIZEOF(QUERY(it
- <* SELF.items
- | NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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 cubic_bezier_tessellated_edge
- SUBTYPE OF (tessellated_edge);
- SELF\tessellated_edge.line_strip : LIST [4 : ?] OF INTEGER;
-END_ENTITY;
-
-ENTITY cubic_bezier_triangulated_face
- SUBTYPE OF (tessellated_face);
- ctriangles : LIST [1 : ?] OF LIST [10 : 10] OF INTEGER;
-WHERE
- WR1: SIZEOF(SELF\tessellated_face.normals) = 0;
-END_ENTITY;
-
-ENTITY cubic_tessellated_connecting_edge
- SUBTYPE OF (cubic_bezier_tessellated_edge);
- smooth : LOGICAL;
- face1 : cubic_bezier_triangulated_face;
- face2 : cubic_bezier_triangulated_face;
-END_ENTITY;
-
-ENTITY currency
- ABSTRACT SUPERTYPE OF ((ONEOF(externally_defined_currency, iso4217_currency)))
- SUBTYPE OF (context_dependent_unit);
-WHERE
- WR1: ((SELF\named_unit.dimensions.length_exponent = 0.0) AND (SELF\named_unit.dimensions.mass_exponent = 0.0) AND
- (SELF\named_unit.dimensions.time_exponent = 0.0) AND
- (SELF\named_unit.dimensions.electric_current_exponent = 0.0) AND
- (SELF\named_unit.dimensions.thermodynamic_temperature_exponent = 0.0) AND
- (SELF\named_unit.dimensions.amount_of_substance_exponent = 0.0) AND
- (SELF\named_unit.dimensions.luminous_intensity_exponent = 0.0));
-END_ENTITY;
-
-ENTITY currency_measure_with_unit
- SUBTYPE OF (measure_with_unit);
- SELF\measure_with_unit.unit_component : currency;
-END_ENTITY;
-
-ENTITY 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, clothoid, circular_involute, pcurve, surface_curve, offset_curve_2d,
- offset_curve_3d, curve_replica))
- SUBTYPE OF (geometric_representation_item);
-END_ENTITY;
-
-ENTITY curve_11
- SUBTYPE OF (geometric_representation_item);
-WHERE
- WR1: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CURVE' IN TYPEOF(SELF)) OR
- ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM' IN TYPEOF(SELF));
-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
- | '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(basis_surface));
- 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))) = 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
- (('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);
- 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(['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',
- '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',
- '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' 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 (('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;
-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: ('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)) 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.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: ('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)) 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']);
- WR4: validate_locations_of_extreme_value_type(SELF,
- ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POINT_ON_CURVE']);
- WR5: validate_accuracy_types(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE']);
-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 cylindrical_11
- SUBTYPE OF (geometric_representation_item);
-WHERE
- WR1: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CURVE' IN TYPEOF(SELF));
-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_point
- SUBTYPE OF (cartesian_point);
- r : length_measure;
- theta : plane_angle_measure;
- z : length_measure;
-DERIVE
- SELF\cartesian_point.coordinates : LIST [3 : 3] OF length_measure := [r * COS(theta),r * SIN(theta),z];
-WHERE
- WR1: r >= 0.0;
-END_ENTITY;
-
-ENTITY cylindrical_surface
- SUBTYPE OF (elementary_surface);
- radius : positive_length_measure;
-END_ENTITY;
-
-ENTITY cylindrical_volume
- SUBTYPE OF (volume);
- position : axis2_placement_3d;
- radius : positive_length_measure;
- height : positive_length_measure;
-END_ENTITY;
-
-ENTITY cylindricity_tolerance
- SUBTYPE OF (geometric_tolerance);
-WHERE
- WR1: NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.GEOMETRIC_TOLERANCE_WITH_DATUM_REFERENCE' IN TYPEOF(SELF));
-END_ENTITY;
-
-ENTITY data_environment;
- name : label;
- description : text;
- elements : SET [1 : ?] OF characterized_property_representation;
-END_ENTITY;
-
-ENTITY data_equivalence_assessment_specification;
- id : identifier;
- name : label;
- description : OPTIONAL text;
-END_ENTITY;
-
-ENTITY data_equivalence_criteria_representation
- SUBTYPE OF (representation);
-WHERE
- WR1: SIZEOF(QUERY(q
- <* SELF\representation.items
- | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DATA_EQUIVALENCE_CRITERION' IN TYPEOF(q))) >
- 0;
-END_ENTITY;
-
-ENTITY data_equivalence_criterion
- 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_EQUIVALENCE_INSPECTION_RESULT_REPRESENTATION' IN
- TYPEOF(q))) =
- 0;
-END_ENTITY;
-
-ENTITY data_equivalence_definition;
- id : identifier;
- name : label;
- description : OPTIONAL text;
-END_ENTITY;
-
-ENTITY data_equivalence_definition_relationship;
- id : identifier;
- name : label;
- description : OPTIONAL text;
- relating_data_equivalence_definition : data_equivalence_definition;
- related_data_equivalence_definition : data_equivalence_definition;
-END_ENTITY;
-
-ENTITY data_equivalence_definition_representation_relationship;
- id : identifier;
- name : label;
- description : OPTIONAL text;
- definition : data_equivalence_definition;
- used_representation : used_equivalence_representation_select;
-END_ENTITY;
-
-ENTITY data_equivalence_inspected_element_pair
- SUBTYPE OF (representation_item);
- comparing_elements : SET [1 : ?] OF inspected_equivalence_element_select;
- compared_elements : SET [1 : ?] OF inspected_equivalence_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_EQUIVALENCE_CRITERIA_REPRESENTATION' IN
- TYPEOF(q))) =
- 0;
-END_ENTITY;
-
-ENTITY data_equivalence_inspection_criterion_report
- SUBTYPE OF (data_equivalence_inspection_report);
- statistical_values : SET [1 : ?] OF data_equivalence_inspection_criterion_report_item;
-END_ENTITY;
-
-ENTITY data_equivalence_inspection_criterion_report_item
- ABSTRACT SUPERTYPE OF ((ONEOF(criterion_report_item_with_number_of_instances,
- criterion_report_item_with_value)) ANDOR
- (ONEOF(a3m_equivalence_criterion_report_item_with_measured_value,
- criterion_report_item_with_number_of_instances, criterion_report_item_with_value)))
- SUBTYPE OF (representation_item);
-INVERSE
- criterion_report : data_equivalence_inspection_criterion_report FOR statistical_values;
-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_EQUIVALENCE_CRITERIA_REPRESENTATION' IN
- TYPEOF(q))) =
- 0;
-END_ENTITY;
-
-ENTITY data_equivalence_inspection_instance_report
- SUBTYPE OF (data_equivalence_inspection_report);
- inspected_instances : LIST [1 : ?] OF data_equivalence_inspection_instance_report_item;
-END_ENTITY;
-
-ENTITY data_equivalence_inspection_instance_report_item
- SUBTYPE OF (representation_item);
- inspected_element : data_equivalence_inspected_element_pair;
-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_EQUIVALENCE_CRITERIA_REPRESENTATION' IN
- TYPEOF(q))) =
- 0;
-END_ENTITY;
-
-ENTITY data_equivalence_inspection_report
- ABSTRACT SUPERTYPE OF (ONEOF(data_equivalence_inspection_criterion_report,
- data_equivalence_inspection_instance_report))
- SUBTYPE OF (representation_item);
- inspection_result : data_equivalence_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_EQUIVALENCE_CRITERIA_REPRESENTATION' IN
- TYPEOF(q))) =
- 0;
-END_ENTITY;
-
-ENTITY data_equivalence_inspection_requirement
- 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_EQUIVALENCE_INSPECTION_RESULT_REPRESENTATION' IN
- TYPEOF(q))) =
- 0;
-END_ENTITY;
-
-ENTITY data_equivalence_inspection_result
- SUBTYPE OF (representation_item);
- criterion_inspected : data_equivalence_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_EQUIVALENCE_CRITERIA_REPRESENTATION' IN
- TYPEOF(q))) =
- 0;
-END_ENTITY;
-
-ENTITY data_equivalence_inspection_result_representation
- SUBTYPE OF (representation);
- criteria_inspected : data_equivalence_criteria_representation;
-WHERE
- WR1: SIZEOF(QUERY(q
- <* SELF\representation.items
- | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DATA_EQUIVALENCE_INSPECTION_RESULT' IN
- TYPEOF(q))) >
- 0;
-END_ENTITY;
-
-ENTITY data_equivalence_inspection_result_with_judgement
- SUBTYPE OF (data_equivalence_inspection_result);
- judgement : BOOLEAN;
-END_ENTITY;
-
-ENTITY data_equivalence_report_request;
- id : identifier;
- name : label;
- description : OPTIONAL text;
- criterion_of_report_request : data_equivalence_criterion;
-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
- | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.REPRESENTATION.ITEMS'))
- | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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,
- '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].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, '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))) =
- 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,
- '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;
-
-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, '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))) =
- 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, '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))) =
- 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, '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))) =
- 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
- | '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;
-
-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, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.REPRESENTATION.ITEMS'))
- | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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: ('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',
- '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.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
- | ('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;
-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.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
- | ('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;
-END_ENTITY;
-
-ENTITY datum_target_callout
- SUBTYPE OF (draughting_callout);
-END_ENTITY;
-
-ENTITY default_model_geometric_view
- SUBTYPE OF (model_geometric_view, shape_aspect);
-DERIVE
- SELF\shape_aspect.product_definitional : LOGICAL := false;
-UNIQUE
- UR1: of_shape;
-WHERE
- WR1: SELF\characterized_object.name = SELF\shape_aspect.name;
- WR2: NOT EXISTS(SELF\characterized_object.description);
- WR3: NOT EXISTS(SELF\shape_aspect.description);
-END_ENTITY;
-
-ENTITY default_tolerance_table
- SUBTYPE OF (representation);
-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(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')) = 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')
- | '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);
- 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_product_definition_usage
- SUBTYPE OF (product_definition_usage);
-UNIQUE
- UR1: relating_product_definition, related_product_definition;
-END_ENTITY;
-
-ENTITY definitional_representation
- SUBTYPE OF (representation);
-WHERE
- WR1: 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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],
- 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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: 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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.0));
- WR2: SIZEOF(USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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 description_text;
- description : text;
-END_ENTITY;
-
-ENTITY description_text_assignment
- ABSTRACT SUPERTYPE;
- description : description_text;
-END_ENTITY;
-
-ENTITY description_text_assignment_relationship;
- id : OPTIONAL identifier;
- description : OPTIONAL text;
- relating : description_text_assignment;
- related : description_text_assignment;
- relation_type : STRING;
-WHERE
- WR1: acyclic_description_text_assignment_relationship(SELF, [related],
- 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DESCRIPTION_TEXT_ASSIGNMENT_RELATIONSHIP');
-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_equivalence_report_request
- SUBTYPE OF (data_equivalence_report_request);
- report_request_type : detailed_report_style_type;
- report_sequence : preferred_report_ordering;
-END_ENTITY;
-
-ENTITY detailed_equivalence_report_request_with_number_of_instances
- SUBTYPE OF (detailed_equivalence_report_request);
- number_of_instances : INTEGER;
-DERIVE
- SELF\detailed_equivalence_report_request.report_request_type : detailed_report_style_type := inspected_element;
-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 different_angle_of_assembly_constraint
- SUBTYPE OF (a3m_equivalence_criterion_of_detailed_assembly_data_content);
- SELF\a3m_equivalence_criterion.assessment_specification : a3m_equivalence_assessment_by_numerical_test;
-DERIVE
- SELF\a3m_equivalence_criterion.measured_data_type : a3ma_measured_data_type_name := mdna_plane_angle_measure;
- SELF\a3m_equivalence_criterion.detected_difference_types : LIST [1 : 1] OF a3ma_detected_difference_type_name := [ddna_binary_assembly_constraint];
-WHERE
- WR1: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' IN
- TYPEOF(SELF\a3m_equivalence_criterion.assessment_specification\a3m_equivalence_assessment_by_numerical_test.threshold)) AND
- (a3ma_get_value_limit_type(SELF\a3m_equivalence_criterion.assessment_specification\a3m_equivalence_assessment_by_numerical_test.threshold) =
- SELF.measured_data_type);
-END_ENTITY;
-
-ENTITY different_assembly_centroid
- SUBTYPE OF (a3m_equivalence_criterion_of_representative_assembly_property_value);
- SELF\a3m_equivalence_criterion.assessment_specification : a3m_equivalence_assessment_by_numerical_test;
-DERIVE
- SELF\a3m_equivalence_criterion.measured_data_type : a3ma_measured_data_type_name := mdna_length_measure;
- SELF\a3m_equivalence_criterion.detected_difference_types : LIST [1 : 1] OF a3ma_detected_difference_type_name := [ddna_cartesian_point];
-WHERE
- WR1: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' IN
- TYPEOF(SELF\a3m_equivalence_criterion.assessment_specification\a3m_equivalence_assessment_by_numerical_test.threshold)) AND
- (a3ma_get_value_limit_type(SELF\a3m_equivalence_criterion.assessment_specification\a3m_equivalence_assessment_by_numerical_test.threshold) =
- SELF.measured_data_type);
-END_ENTITY;
-
-ENTITY different_assembly_centroid_using_notional_solid
- SUBTYPE OF (a3m_equivalence_criterion_of_representative_assembly_property_value);
- SELF\a3m_equivalence_criterion.assessment_specification : a3m_equivalence_assessment_by_numerical_test;
-DERIVE
- SELF\a3m_equivalence_criterion.measured_data_type : a3ma_measured_data_type_name := mdna_length_measure;
- SELF\a3m_equivalence_criterion.detected_difference_types : LIST [1 : 1] OF a3ma_detected_difference_type_name := [ddna_cartesian_point];
-WHERE
- WR1: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' IN
- TYPEOF(SELF\a3m_equivalence_criterion.assessment_specification\a3m_equivalence_assessment_by_numerical_test.threshold)) AND
- (a3ma_get_value_limit_type(SELF\a3m_equivalence_criterion.assessment_specification\a3m_equivalence_assessment_by_numerical_test.threshold) =
- SELF.measured_data_type);
-END_ENTITY;
-
-ENTITY different_assembly_constraint_type
- SUBTYPE OF (a3m_equivalence_criterion_of_detailed_assembly_data_content);
- SELF\a3m_equivalence_criterion.assessment_specification : a3m_equivalence_assessment_by_logical_test;
-DERIVE
- SELF\a3m_equivalence_criterion.measured_data_type : a3ma_measured_data_type_name := mdna_boolean_value;
- SELF\a3m_equivalence_criterion.detected_difference_types : LIST [1 : 1] OF a3ma_detected_difference_type_name := [ddna_binary_assembly_constraint];
-END_ENTITY;
-
-ENTITY different_assembly_volume
- SUBTYPE OF (a3m_equivalence_criterion_of_representative_assembly_property_value);
- SELF\a3m_equivalence_criterion.assessment_specification : a3m_equivalence_assessment_by_numerical_test;
-DERIVE
- SELF\a3m_equivalence_criterion.measured_data_type : a3ma_measured_data_type_name := mdna_volume_measure;
- SELF\a3m_equivalence_criterion.detected_difference_types : LIST [1 : 1] OF a3ma_detected_difference_type_name := [ddna_volume_measure];
-WHERE
- WR1: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' IN
- TYPEOF(SELF\a3m_equivalence_criterion.assessment_specification\a3m_equivalence_assessment_by_numerical_test.threshold)) AND
- (a3ma_get_value_limit_type(SELF\a3m_equivalence_criterion.assessment_specification\a3m_equivalence_assessment_by_numerical_test.threshold) =
- SELF.measured_data_type);
-END_ENTITY;
-
-ENTITY different_bounding_box
- SUBTYPE OF (a3m_equivalence_criterion_of_representative_shape_property_value,
- a3m_equivalence_inspection_requirement_with_values);
- SELF\a3m_equivalence_criterion.assessment_specification : a3m_equivalence_assessment_by_numerical_test;
-DERIVE
- SELF\a3m_equivalence_criterion.compared_element_types : LIST [3 : 3] OF a3ms_element_type_name := [etns_manifold_solid_brep,
- etns_shell_based_surface_model,
- etns_shell_based_wireframe_model];
- SELF\a3m_equivalence_criterion.measured_data_type : a3ms_measured_data_type_name := mdns_length_measure;
- SELF\a3m_equivalence_criterion.detected_difference_types : LIST [1 : 1] OF a3ms_detected_difference_type_name := [ddns_two_cartesian_points];
- SELF\a3m_equivalence_criterion.accuracy_types : LIST [0 : 0] OF a3ms_accuracy_type_name := [];
-WHERE
- WR1: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' IN
- TYPEOF(SELF\a3m_equivalence_criterion.assessment_specification\a3m_equivalence_assessment_by_numerical_test.threshold)) AND
- (a3ms_get_value_limit_type(SELF\a3m_equivalence_criterion.assessment_specification\a3m_equivalence_assessment_by_numerical_test.threshold) =
- SELF.measured_data_type);
- WR2: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT' IN
- TYPEOF(SELF\a3m_equivalence_inspection_requirement_with_values.applied_values[1])) AND
- (SELF\a3m_equivalence_inspection_requirement_with_values.applied_values[1].name = 'approximation_tolerance');
-END_ENTITY;
-
-ENTITY different_centroid
- SUBTYPE OF (a3m_equivalence_criterion_of_representative_shape_property_value,
- a3m_equivalence_inspection_requirement_with_values);
- SELF\a3m_equivalence_criterion.assessment_specification : a3m_equivalence_assessment_by_numerical_test;
-DERIVE
- SELF\a3m_equivalence_criterion.compared_element_types : LIST [3 : 3] OF a3ms_element_type_name := [etns_manifold_solid_brep,
- etns_shell_based_surface_model,
- etns_shell_based_wireframe_model];
- SELF\a3m_equivalence_criterion.measured_data_type : a3ms_measured_data_type_name := mdns_length_measure;
- SELF\a3m_equivalence_criterion.detected_difference_types : LIST [1 : 1] OF a3ms_detected_difference_type_name := [ddns_cartesian_point];
- SELF\a3m_equivalence_criterion.accuracy_types : LIST [1 : 1] OF a3ms_accuracy_type_name := [atns_length_measure];
-WHERE
- WR1: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' IN
- TYPEOF(SELF\a3m_equivalence_criterion.assessment_specification\a3m_equivalence_assessment_by_numerical_test.threshold)) AND
- (a3ms_get_value_limit_type(SELF\a3m_equivalence_criterion.assessment_specification\a3m_equivalence_assessment_by_numerical_test.threshold) =
- SELF.measured_data_type);
- WR2: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT' IN
- TYPEOF(SELF\a3m_equivalence_inspection_requirement_with_values.applied_values[1])) AND
- (SELF\a3m_equivalence_inspection_requirement_with_values.applied_values[1].name = 'approximation_tolerance');
-END_ENTITY;
-
-ENTITY different_component_identification_via_multi_level_reference
- SUBTYPE OF (a3m_equivalence_criterion_of_assembly_data_structure);
- SELF\a3m_equivalence_criterion.assessment_specification : a3m_equivalence_assessment_by_logical_test;
-DERIVE
- SELF\a3m_equivalence_criterion.measured_data_type : a3ma_measured_data_type_name := mdna_boolean_value;
- SELF\a3m_equivalence_criterion.detected_difference_types : LIST [1 : 1] OF a3ma_detected_difference_type_name := [ddna_multi_level_reference_designator];
-END_ENTITY;
-
-ENTITY different_component_shape
- SUBTYPE OF (a3m_equivalence_criterion_of_component_property_difference);
-DERIVE
- SELF\a3m_equivalence_criterion.comparing_element_types : LIST [1 : 1] OF a3ma_element_type_name := [etna_shape_representation];
- SELF\a3m_equivalence_criterion.compared_element_types : LIST [1 : 1] OF a3ma_element_type_name := [etna_shape_representation];
- SELF\a3m_equivalence_criterion.detected_difference_types : LIST [1 : 1] OF a3ma_detected_difference_type_name := [ddna_a3ms_inspected_equivalence_element_select];
-INVERSE
- shape_criteria : SET [1:?] OF a3ma_assembly_and_shape_criteria_relationship FOR relating_representation_item;
-END_ENTITY;
-
-ENTITY different_component_type
- SUBTYPE OF (a3m_equivalence_criterion_of_detailed_assembly_data_content);
- SELF\a3m_equivalence_criterion.assessment_specification : a3m_equivalence_assessment_by_logical_test;
-DERIVE
- SELF\a3m_equivalence_criterion.measured_data_type : a3ma_measured_data_type_name := mdna_boolean_value;
- SELF\a3m_equivalence_criterion.detected_difference_types : LIST [1 : 1] OF a3ma_detected_difference_type_name := [ddna_assembly_component_usage];
-END_ENTITY;
-
-ENTITY different_curve_length
- SUBTYPE OF (a3m_equivalence_criterion_of_representative_shape_property_value,
- a3m_equivalence_inspection_requirement_with_values);
- SELF\a3m_equivalence_criterion.assessment_specification : a3m_equivalence_assessment_by_numerical_test;
-DERIVE
- SELF\a3m_equivalence_criterion.compared_element_types : LIST [1 : 1] OF a3ms_element_type_name := [etns_connected_edge_set];
- SELF\a3m_equivalence_criterion.measured_data_type : a3ms_measured_data_type_name := mdns_length_measure;
- SELF\a3m_equivalence_criterion.detected_difference_types : LIST [1 : 1] OF a3ms_detected_difference_type_name := [ddns_length_measure];
- SELF\a3m_equivalence_criterion.accuracy_types : LIST [1 : 1] OF a3ms_accuracy_type_name := [atns_length_measure];
-WHERE
- WR1: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' IN
- TYPEOF(SELF\a3m_equivalence_criterion.assessment_specification\a3m_equivalence_assessment_by_numerical_test.threshold)) AND
- (a3ms_get_value_limit_type(SELF\a3m_equivalence_criterion.assessment_specification\a3m_equivalence_assessment_by_numerical_test.threshold) =
- SELF.measured_data_type);
- WR2: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT' IN
- TYPEOF(SELF\a3m_equivalence_inspection_requirement_with_values.applied_values[1])) AND
- (SELF\a3m_equivalence_inspection_requirement_with_values.applied_values[1].name = 'approximation_tolerance');
-END_ENTITY;
-
-ENTITY different_length_of_assembly_constraint
- SUBTYPE OF (a3m_equivalence_criterion_of_detailed_assembly_data_content);
- SELF\a3m_equivalence_criterion.assessment_specification : a3m_equivalence_assessment_by_numerical_test;
-DERIVE
- SELF\a3m_equivalence_criterion.measured_data_type : a3ma_measured_data_type_name := mdna_length_measure;
- SELF\a3m_equivalence_criterion.detected_difference_types : LIST [1 : 1] OF a3ma_detected_difference_type_name := [ddna_binary_assembly_constraint];
-WHERE
- WR1: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' IN
- TYPEOF(SELF\a3m_equivalence_criterion.assessment_specification\a3m_equivalence_assessment_by_numerical_test.threshold)) AND
- (a3ma_get_value_limit_type(SELF\a3m_equivalence_criterion.assessment_specification\a3m_equivalence_assessment_by_numerical_test.threshold) =
- SELF.measured_data_type);
-END_ENTITY;
-
-ENTITY different_number_of_closed_shell
- SUBTYPE OF (a3m_equivalence_criterion_of_representative_shape_property_value);
- SELF\a3m_equivalence_criterion.assessment_specification : a3m_equivalence_assessment_by_logical_test;
-DERIVE
- SELF\a3m_equivalence_criterion.compared_element_types : LIST [1 : 1] OF a3ms_element_type_name := [etns_manifold_solid_brep];
- SELF\a3m_equivalence_criterion.measured_data_type : a3ms_measured_data_type_name := mdns_boolean_value;
- SELF\a3m_equivalence_criterion.detected_difference_types : LIST [1 : 1] OF a3ms_detected_difference_type_name := [ddns_count_measure];
- SELF\a3m_equivalence_criterion.accuracy_types : LIST [0 : 0] OF a3ms_accuracy_type_name := [];
-END_ENTITY;
-
-ENTITY different_number_of_components
- SUBTYPE OF (a3m_equivalence_criterion_of_representative_assembly_property_value);
- SELF\a3m_equivalence_criterion.assessment_specification : a3m_equivalence_assessment_by_logical_test;
-DERIVE
- SELF\a3m_equivalence_criterion.measured_data_type : a3ma_measured_data_type_name := mdna_boolean_value;
- SELF\a3m_equivalence_criterion.detected_difference_types : LIST [1 : 1] OF a3ma_detected_difference_type_name := [ddna_count_measure];
-END_ENTITY;
-
-ENTITY different_number_of_geometric_elements
- SUBTYPE OF (a3m_equivalence_criterion_of_representative_shape_property_value);
- SELF\a3m_equivalence_criterion.assessment_specification : a3m_equivalence_assessment_by_logical_test;
-DERIVE
- SELF\a3m_equivalence_criterion.compared_element_types : LIST [2 : 2] OF a3ms_element_type_name := [etns_manifold_solid_brep,
- etns_shell_based_surface_model];
- SELF\a3m_equivalence_criterion.measured_data_type : a3ms_measured_data_type_name := mdns_boolean_value;
- SELF\a3m_equivalence_criterion.detected_difference_types : LIST [1 : 1] OF a3ms_detected_difference_type_name := [ddns_three_count_measure];
- SELF\a3m_equivalence_criterion.accuracy_types : LIST [0 : 0] OF a3ms_accuracy_type_name := [];
-END_ENTITY;
-
-ENTITY different_number_of_geometric_elements_wireframe_model
- SUBTYPE OF (a3m_equivalence_criterion_of_representative_shape_property_value);
- SELF\a3m_equivalence_criterion.assessment_specification : a3m_equivalence_assessment_by_logical_test;
-DERIVE
- SELF\a3m_equivalence_criterion.compared_element_types : LIST [1 : 1] OF a3ms_element_type_name := [etns_shell_based_wireframe_model];
- SELF\a3m_equivalence_criterion.measured_data_type : a3ms_measured_data_type_name := mdns_boolean_value;
- SELF\a3m_equivalence_criterion.detected_difference_types : LIST [1 : 1] OF a3ms_detected_difference_type_name := [ddns_two_count_measure];
- SELF\a3m_equivalence_criterion.accuracy_types : LIST [0 : 0] OF a3ms_accuracy_type_name := [];
-END_ENTITY;
-
-ENTITY different_number_of_topological_elements
- SUBTYPE OF (a3m_equivalence_criterion_of_representative_shape_property_value);
- SELF\a3m_equivalence_criterion.assessment_specification : a3m_equivalence_assessment_by_logical_test;
-DERIVE
- SELF\a3m_equivalence_criterion.compared_element_types : LIST [2 : 2] OF a3ms_element_type_name := [etns_manifold_solid_brep,
- etns_shell_based_surface_model];
- SELF\a3m_equivalence_criterion.measured_data_type : a3ms_measured_data_type_name := mdns_boolean_value;
- SELF\a3m_equivalence_criterion.detected_difference_types : LIST [1 : 1] OF a3ms_detected_difference_type_name := [ddns_five_count_measure];
- SELF\a3m_equivalence_criterion.accuracy_types : LIST [0 : 0] OF a3ms_accuracy_type_name := [];
-END_ENTITY;
-
-ENTITY different_number_of_topological_elements_wireframe_model
- SUBTYPE OF (a3m_equivalence_criterion_of_representative_shape_property_value);
- SELF\a3m_equivalence_criterion.assessment_specification : a3m_equivalence_assessment_by_logical_test;
-DERIVE
- SELF\a3m_equivalence_criterion.compared_element_types : LIST [1 : 1] OF a3ms_element_type_name := [etns_shell_based_wireframe_model];
- SELF\a3m_equivalence_criterion.measured_data_type : a3ms_measured_data_type_name := mdns_boolean_value;
- SELF\a3m_equivalence_criterion.detected_difference_types : LIST [1 : 1] OF a3ms_detected_difference_type_name := [ddns_four_count_measure];
- SELF\a3m_equivalence_criterion.accuracy_types : LIST [0 : 0] OF a3ms_accuracy_type_name := [];
-END_ENTITY;
-
-ENTITY different_placement_of_component
- SUBTYPE OF (a3m_equivalence_criterion_of_detailed_assembly_data_content);
- SELF\a3m_equivalence_criterion.assessment_specification : a3m_equivalence_assessment_by_numerical_test;
-DERIVE
- SELF\a3m_equivalence_criterion.measured_data_type : a3ma_measured_data_type_name := mdna_length_measure_and_context_dependent_measure;
- SELF\a3m_equivalence_criterion.detected_difference_types : LIST [1 : 1] OF a3ma_detected_difference_type_name := [ddna_context_dependent_shape_representation];
-INVERSE
- assessment_threshold_2 : a3ma_equivalence_criterion_assessment_threshold_relationship FOR relating_representation_item;
-WHERE
- WR1: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' IN
- TYPEOF(SELF\a3m_equivalence_criterion.assessment_specification\a3m_equivalence_assessment_by_numerical_test.threshold)) AND
- (a3ma_get_value_limit_type(SELF\a3m_equivalence_criterion.assessment_specification\a3m_equivalence_assessment_by_numerical_test.threshold) =
- mdna_length_measure);
- WR2: (a3ma_get_value_limit_type(SELF.assessment_threshold_2\representation_item_relationship.related_representation_item) =
- mdna_context_dependent_measure) AND
- ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CONTEXT_DEPENDENT_UNIT' IN
- TYPEOF(SELF.assessment_threshold_2\representation_item_relationship.related_representation_item\measure_with_unit.unit_component));
-END_ENTITY;
-
-ENTITY different_surface_area
- SUBTYPE OF (a3m_equivalence_criterion_of_representative_shape_property_value,
- a3m_equivalence_inspection_requirement_with_values);
- SELF\a3m_equivalence_criterion.assessment_specification : a3m_equivalence_assessment_by_numerical_test;
-DERIVE
- SELF\a3m_equivalence_criterion.compared_element_types : LIST [1 : 1] OF a3ms_element_type_name := [etns_connected_face_set];
- SELF\a3m_equivalence_criterion.measured_data_type : a3ms_measured_data_type_name := mdns_area_measure;
- SELF\a3m_equivalence_criterion.detected_difference_types : LIST [1 : 1] OF a3ms_detected_difference_type_name := [ddns_area_measure];
- SELF\a3m_equivalence_criterion.accuracy_types : LIST [1 : 1] OF a3ms_accuracy_type_name := [atns_area_measure];
-WHERE
- WR1: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' IN
- TYPEOF(SELF\a3m_equivalence_criterion.assessment_specification\a3m_equivalence_assessment_by_numerical_test.threshold)) AND
- (a3ms_get_value_limit_type(SELF\a3m_equivalence_criterion.assessment_specification\a3m_equivalence_assessment_by_numerical_test.threshold) =
- SELF.measured_data_type);
- WR2: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT' IN
- TYPEOF(SELF\a3m_equivalence_inspection_requirement_with_values.applied_values[1])) AND
- (SELF\a3m_equivalence_inspection_requirement_with_values.applied_values[1].name = 'approximation_tolerance');
-END_ENTITY;
-
-ENTITY different_surface_normal
- SUBTYPE OF (a3m_equivalence_criterion_of_detailed_shape_data_content,
- a3m_equivalence_inspection_requirement_with_values);
- SELF\a3m_equivalence_criterion.assessment_specification : a3m_equivalence_assessment_by_numerical_test;
-DERIVE
- SELF\a3m_equivalence_criterion.comparing_element_types : LIST [1 : 1] OF a3ms_element_type_name := [etns_connected_face_set];
- SELF\a3m_equivalence_criterion.compared_element_types : LIST [1 : 1] OF a3ms_element_type_name := [etns_connected_face_set];
- SELF\a3m_equivalence_criterion.measured_data_type : a3ms_measured_data_type_name := mdns_plane_angle_measure;
- SELF\a3m_equivalence_criterion.detected_difference_types : LIST [2 : 2] OF a3ms_detected_difference_type_name := [ddns_cartesian_point,
- ddns_point_on_surface];
- SELF\a3m_equivalence_criterion.accuracy_types : LIST [1 : 1] OF a3ms_accuracy_type_name := [atns_plane_angle_measure];
-WHERE
- WR1: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' IN
- TYPEOF(SELF\a3m_equivalence_criterion.assessment_specification\a3m_equivalence_assessment_by_numerical_test.threshold)) AND
- (a3ms_get_value_limit_type(SELF\a3m_equivalence_criterion.assessment_specification\a3m_equivalence_assessment_by_numerical_test.threshold) =
- SELF.measured_data_type);
- WR2: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT' IN
- TYPEOF(SELF\a3m_equivalence_inspection_requirement_with_values.applied_values[1])) AND
- (SELF\a3m_equivalence_inspection_requirement_with_values.applied_values[1].name =
- 'discretization_distance_tolerance');
-END_ENTITY;
-
-ENTITY different_volume
- SUBTYPE OF (a3m_equivalence_criterion_of_representative_shape_property_value,
- a3m_equivalence_inspection_requirement_with_values);
- SELF\a3m_equivalence_criterion.assessment_specification : a3m_equivalence_assessment_by_numerical_test;
-DERIVE
- SELF\a3m_equivalence_criterion.compared_element_types : LIST [1 : 1] OF a3ms_element_type_name := [etns_manifold_solid_brep];
- SELF\a3m_equivalence_criterion.measured_data_type : a3ms_measured_data_type_name := mdns_volume_measure;
- SELF\a3m_equivalence_criterion.detected_difference_types : LIST [1 : 1] OF a3ms_detected_difference_type_name := [ddns_volume_measure];
- SELF\a3m_equivalence_criterion.accuracy_types : LIST [1 : 1] OF a3ms_accuracy_type_name := [atns_volume_measure];
-WHERE
- WR1: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' IN
- TYPEOF(SELF\a3m_equivalence_criterion.assessment_specification\a3m_equivalence_assessment_by_numerical_test.threshold)) AND
- (a3ms_get_value_limit_type(SELF\a3m_equivalence_criterion.assessment_specification\a3m_equivalence_assessment_by_numerical_test.threshold) =
- SELF.measured_data_type);
- WR2: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT' IN
- TYPEOF(SELF\a3m_equivalence_inspection_requirement_with_values.applied_values[1])) AND
- (SELF\a3m_equivalence_inspection_requirement_with_values.applied_values[1].name = 'approximation_tolerance');
-END_ENTITY;
-
-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' IN (TYPEOF(dce_1))))) =
- 0);
- 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
- (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;
-
-ENTITY dimension_callout_component_relationship
- SUBTYPE OF (draughting_callout_relationship);
-WHERE
- WR1: SELF.name IN ['prefix','suffix'];
- 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',
- '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
- | ('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
- | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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) *
- ['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',
- '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.PROJECTION_DIRECTED_CALLOUT',
- 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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,
- '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(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
- (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' 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
- | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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: 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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) *
- ['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',
- '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',
- 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DIMENSION_REPRESENTATION' IN
- TYPEOF(SELF\mapped_item.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 (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;
-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, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ID_ATTRIBUTE.IDENTIFIED_ITEM')) <= 1;
-END_ENTITY;
-
-ENTITY dimensional_size_with_datum_feature
- SUBTYPE OF (datum_feature, dimensional_size);
-WHERE
- WR1: SELF\dimensional_size.applies_to :=: SELF;
-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_action_assignment
- ABSTRACT SUPERTYPE;
- assigned_directed_action : directed_action;
-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')) <= 1;
-END_ENTITY;
-
-ENTITY directed_angle
- 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)
- | ('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)
- | ('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)
- | ('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))) =
- 1;
-END_ENTITY;
-
-ENTITY directed_dimensional_location
- SUBTYPE OF (dimensional_location);
-END_ENTITY;
-
-ENTITY directed_tolerance_zone
- SUBTYPE OF (tolerance_zone_with_datum);
- direction : directed_tolerance_zone_type;
-END_ENTITY;
-
-ENTITY direction
- SUBTYPE OF (geometric_representation_item);
- direction_ratios : LIST [2 : 3] OF REAL;
-WHERE
- WR1: SIZEOF(QUERY(tmp <* direction_ratios | tmp <> 0.0)) > 0;
-END_ENTITY;
-
-ENTITY direction_shape_representation
- 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))))) =
- 0);
-END_ENTITY;
-
-ENTITY disallowed_assembly_relationship_usage
- SUBTYPE OF (externally_conditioned_data_quality_criterion);
-WHERE
- WR1: validate_ecdq_inspected_elements_type(SELF,
- ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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, '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, []);
- 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;
- 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 ('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 =
- '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 =
- '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 =
- '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')) =
- 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, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ROLE_ASSOCIATION.ITEM_WITH_ROLE')) <= 1;
-END_ENTITY;
-
-ENTITY document_relationship;
- name : label;
- description : OPTIONAL text;
- relating_document : document;
- related_document : document;
-END_ENTITY;
-
-ENTITY document_representation_type;
- name : label;
- represented_document : document;
-END_ENTITY;
-
-ENTITY document_type;
- product_data_type : label;
-END_ENTITY;
-
-ENTITY document_usage_constraint;
- source : document;
- subject_element : label;
- subject_element_value : text;
-END_ENTITY;
-
-ENTITY document_usage_constraint_assignment
- ABSTRACT SUPERTYPE;
- assigned_document_usage : document_usage_constraint;
- role : document_usage_role;
-END_ENTITY;
-
-ENTITY document_usage_role;
- name : label;
- description : OPTIONAL text;
-END_ENTITY;
-
-ENTITY dose_equivalent_measure_with_unit
- SUBTYPE OF (measure_with_unit);
-WHERE
- WR1: 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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 draped_orientation_angle
- SUBTYPE OF (ply_orientation_angle);
-END_ENTITY;
-
-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
- ('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
- ('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))) =
- 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]) *
- ['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
- ('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_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
- ('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',
- '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(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
- ('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
- | ('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
- 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
- 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',
- '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))) =
- 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' 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
- ('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(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
- 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.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]\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
- | '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(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)));
-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
- | ('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')
- | ('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 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.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.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,
- '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)) 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
- | ('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
- 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))))) =
- 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_model_item_association_with_placeholder
- SUBTYPE OF (draughting_model_item_association);
- SELF\draughting_model_item_association.definition : draughting_model_item_definition;
- SELF\draughting_model_item_association.used_representation : draughting_model;
- SELF\item_identified_representation_usage.identified_item : draughting_callout;
- annotation_placeholder : annotation_placeholder_occurrence;
-END_ENTITY;
-
-ENTITY draughting_pre_defined_colour
- SUBTYPE OF (pre_defined_colour);
-WHERE
- WR1: SELF\pre_defined_item.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\pre_defined_item.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\pre_defined_item.name[1:8] = 'ISO 3098';
-END_ENTITY;
-
-ENTITY draughting_specification_reference
- SUBTYPE OF (document_reference);
- specified_items : SET [1 : ?] OF specified_item;
-WHERE
- WR1: (SELF.assigned_document.kind.product_data_type = 'draughting specification');
-END_ENTITY;
-
-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(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.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.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))) =
- 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) *
- ['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' 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
- | ('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;
-
-ENTITY drawing_sheet_revision_sequence
- SUBTYPE OF (representation_relationship);
-WHERE
- WR1: SELF\representation_relationship.rep_1 :<>: SELF\representation_relationship.rep_2;
- WR2: 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DRAWING_SHEET_REVISION' IN
- TYPEOF(SELF\representation_relationship.rep_1);
- WR3: 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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: ('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 dupin_cyclide_surface
- SUBTYPE OF (elementary_surface);
- generalised_major_radius : positive_length_measure;
- generalised_minor_radius : positive_length_measure;
- skewness : length_measure;
-WHERE
- WR1: skewness >= 0.0;
-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 eccentric_conical_volume
- SUBTYPE OF (volume);
- 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 edge
- SUPERTYPE OF (ONEOF(edge_curve, edge_with_length, 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(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.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 ('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)))
- | 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))) =
- 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 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(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)))) =
- 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, '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);
- 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))) =
- 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(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 = '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(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 = '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(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 = '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 = '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 = '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 = '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: ('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)) 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.EDGE_CURVE']);
- WR4: validate_locations_of_extreme_value_type(SELF, []);
- WR5: validate_accuracy_types(SELF, []);
-END_ENTITY;
-
-ENTITY edge_with_length
- SUBTYPE OF (edge);
- edge_length : positive_length_measure;
-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, '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')) <=
- 1;
-END_ENTITY;
-
-ENTITY effectivity_assignment
- ABSTRACT SUPERTYPE;
- assigned_effectivity : effectivity;
-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')) <= 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: 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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: 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ELECTRIC_CURRENT_UNIT' IN
- TYPEOF(SELF\measure_with_unit.unit_component);
-END_ENTITY;
-
-ENTITY electric_current_unit
- SUBTYPE OF (named_unit);
-WHERE
- WR1: (SELF\named_unit.dimensions.length_exponent = 0.0) AND (SELF\named_unit.dimensions.mass_exponent = 0.0) AND
- (SELF\named_unit.dimensions.time_exponent = 0.0) AND
- (SELF\named_unit.dimensions.electric_current_exponent = 1.0) AND
- (SELF\named_unit.dimensions.thermodynamic_temperature_exponent = 0.0) AND
- (SELF\named_unit.dimensions.amount_of_substance_exponent = 0.0) AND
- (SELF\named_unit.dimensions.luminous_intensity_exponent = 0.0);
-END_ENTITY;
-
-ENTITY electric_potential_measure_with_unit
- SUBTYPE OF (measure_with_unit);
-WHERE
- WR1: 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ELECTRIC_POTENTIAL_UNIT' IN
- TYPEOF(SELF\measure_with_unit.unit_component);
-END_ENTITY;
-
-ENTITY electric_potential_unit
- SUBTYPE OF (derived_unit);
-WHERE
- WR1: derive_dimensional_exponents(SELF) = dimensions_for_si_unit(si_unit_name.volt);
-END_ENTITY;
-
-ENTITY elementary_brep_shape_representation
- SUBTYPE OF (shape_representation);
-WHERE
- WR1: SIZEOF(QUERY(it
- <* SELF.items
- | NOT (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.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',
- '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
- 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 (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 (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 (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 (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 (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)) =
- 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 (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 (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 (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 (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))) =
- 0;
- 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' 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 (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 (('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))) =
- 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 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 ellipsoid_volume
- SUBTYPE OF (volume);
- 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 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: 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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, '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_SURFACE']);
- WR3: validate_locations_of_extreme_value_type(SELF, []);
- WR4: validate_accuracy_types(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.BOOLEAN_VALUE');
- WR2: validate_inspected_elements_type(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MANIFOLD_SOLID_BREP']);
- WR3: validate_locations_of_extreme_value_type(SELF, []);
- WR4: validate_accuracy_types(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.BOOLEAN_VALUE');
- WR2: validate_inspected_elements_type(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.BOUNDED_SURFACE']);
- WR3: validate_locations_of_extreme_value_type(SELF, []);
- WR4: validate_accuracy_types(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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 envelope
- SUBTYPE OF (characterized_object, product);
-END_ENTITY;
-
-ENTITY envelope_relationship
- SUBTYPE OF (product_relationship);
-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 equivalence_instance_report_item_with_notable_instances
- SUBTYPE OF (a3m_equivalence_inspection_instance_report_item);
- notable_instances : LIST [1 : ?] OF equivalence_notable_instance;
-END_ENTITY;
-
-ENTITY equivalence_notable_instance;
- comparing_elements : LIST [0 : ?] OF equivalence_detected_difference_select;
- compared_elements : LIST [0 : ?] OF equivalence_detected_difference_select;
- measured_value : equivalence_measured_value_select;
-WHERE
- WR1: (SIZEOF(comparing_elements) <> 0) OR (SIZEOF(compared_elements) <> 0);
-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, '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_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, '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_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 evidence
- SUBTYPE OF (group_assignment);
- items : SET [1 : ?] OF evidence_item;
-END_ENTITY;
-
-ENTITY excessive_use_of_groups
- SUBTYPE OF (externally_conditioned_data_quality_criterion);
-WHERE
- WR1: validate_ecdq_inspected_elements_type(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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,
- ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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: ('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)) 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.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: ('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)) 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.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_composite_hole
- SUBTYPE OF (composite_hole);
- placement : shape_representation;
-INVERSE
- explicit_shape : SET [0:?] OF item_identified_representation_usage FOR definition;
-WHERE
- WR1: SIZEOF(QUERY(ri
- <* placement\representation.items
- | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.AXIS2_PLACEMENT_3D' IN TYPEOF(ri)))) =
- 1;
- WR2: (SIZEOF(explicit_shape) = 0) OR
- (SIZEOF(QUERY(es
- <* explicit_shape
- | NOT (placement = es\item_identified_representation_usage.used_representation))) =
- 0);
-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 ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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 ('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)
- | 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 ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROCEDURAL_REPRESENTATION' IN
- TYPEOF(SELF\representation_relationship.rep_2))) AND
- (NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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_round_hole
- SUBTYPE OF (round_hole);
- depth : positive_length_measure_with_unit;
- depth_tolerance : OPTIONAL tolerance_value;
- diameter : positive_length_measure_with_unit;
- diameter_tolerance : OPTIONAL tolerance_value_or_limits_and_fits;
- placement : shape_representation;
-WHERE
- WR1: SIZEOF(QUERY(ri
- <* placement\representation.items
- | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.AXIS2_PLACEMENT_3D' IN TYPEOF(ri)))) =
- 1;
- WR2: 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT' IN
- TYPEOF(depth_tolerance\tolerance_value.lower_bound);
- WR3: 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT' IN
- TYPEOF(depth_tolerance\tolerance_value.upper_bound);
- WR4: NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.TOLERANCE_VALUE' IN TYPEOF(diameter_tolerance)) OR
- ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT' IN
- TYPEOF(diameter_tolerance\tolerance_value.lower_bound));
- WR5: NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.TOLERANCE_VALUE' IN TYPEOF(diameter_tolerance)) OR
- ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT' IN
- TYPEOF(diameter_tolerance\tolerance_value.upper_bound));
-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 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);
- 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_identification_assignment_relationship;
- id : OPTIONAL identifier;
- description : OPTIONAL text;
- relating : external_identification_assignment;
- related : external_identification_assignment;
- relation_type : STRING;
-WHERE
- WR1: acyclic_external_identification_assignment_relationship(SELF, [related],
- 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EXTERNAL_IDENTIFICATION_ASSIGNMENT_RELATIONSHIP');
-END_ENTITY;
-
-ENTITY external_source;
- source_id : source_item;
-DERIVE
- description : text := get_description_value(SELF);
-WHERE
- WR1: SIZEOF(USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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
- | '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.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
- 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
- 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,
- '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;
-
-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(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.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, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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, '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) <= 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')
- | ('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')
- | ('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 (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);
- 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(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)))) =
- 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(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.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(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.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(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.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(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.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(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.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(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 = '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(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 = '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(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)))) =
- 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(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 = '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 (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);
- 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(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 = '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(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.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(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 = '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(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 = '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(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 = '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(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 = '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(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.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(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 = '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(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.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(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.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_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: ('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)) 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.B_SPLINE_SURFACE_KNOT_LOCATOR']);
- WR5: validate_accuracy_types(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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.0;
-END_ENTITY;
-
-ENTITY extruded_face_solid
- SUBTYPE OF (swept_face_solid);
- extruded_direction : direction;
- depth : positive_length_measure;
-WHERE
- WR1: dot_product((SELF\swept_face_solid.swept_face.face_geometry\elementary_surface.position.p[3]),
- extruded_direction) <>
- 0.0;
-END_ENTITY;
-
-ENTITY extruded_face_solid_with_draft_angle
- SUBTYPE OF (extruded_face_solid_with_trim_conditions);
- draft_angle : plane_angle_measure;
-WHERE
- WR1: draft_angle <> 0;
-END_ENTITY;
-
-ENTITY extruded_face_solid_with_multiple_draft_angles
- SUBTYPE OF (extruded_face_solid_with_trim_conditions);
- drafted_edges : LIST [2 : ?] OF SET [1 : ?] OF edge_curve;
- draft_angles : LIST [2 : ?] OF plane_angle_measure;
-WHERE
- WR1: SIZEOF(drafted_edges) = SIZEOF(draft_angles);
- WR2: SIZEOF(QUERY(q <* draft_angles | q = 0)) = 0;
- WR3: SIZEOF(QUERY(q
- <* drafted_edges
- | (SIZEOF(QUERY(r <* q | NOT (SELF\swept_face_solid.swept_face IN using_items(r, [])))) > 0))) =
- 0;
-END_ENTITY;
-
-ENTITY extruded_face_solid_with_trim_conditions
- SUPERTYPE OF (ONEOF(extruded_face_solid_with_draft_angle, extruded_face_solid_with_multiple_draft_angles))
- SUBTYPE OF (extruded_face_solid);
- first_trim_condition : trim_condition_select;
- second_trim_condition : trim_condition_select;
- first_trim_intent : trim_intent;
- second_trim_intent : trim_intent;
- first_offset : non_negative_length_measure;
- second_offset : non_negative_length_measure;
-WHERE
- WR1: NOT (('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
- ((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
- ((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 ((('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))
- 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(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 (('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;
-
-ENTITY face_shape_representation_relationship
- SUBTYPE OF (representation_relationship);
-WHERE
- WR1: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FACE_SHAPE_REPRESENTATION' IN TYPEOF(SELF.rep_1));
- WR2: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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 ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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: ('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)) 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, []);
- 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(['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',
- '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 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)) 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 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))) =
- 0))) =
- 0;
- 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)) =
- 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
- TYPEOF(mi\mapped_item.mapping_source.mapped_representation)))) =
- 0;
-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 fact_type
- SUBTYPE OF (property_definition);
-END_ENTITY;
-
-ENTITY feature_component_definition
- 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)))) =
- 0);
-END_ENTITY;
-
-ENTITY feature_component_relationship
- 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) 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))
- 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)
- | ('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) <= 3}))) =
- 0;
- 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','base radius','target radius']))) >
- 0))) =
- 0;
- 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))) =
- 1;
- 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))) =
- 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,
- '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)))) =
- 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,
- '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)) =
- 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)) 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)
- | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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, '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(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' IN
- TYPEOF(it)) AND
- (it.name = 'base feature placement'))) >
- 1))) =
- 0))) =
- 0;
-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
- <* fill_styles
- | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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 ('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
- (('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)]));
-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, '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);
- 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))) =
- 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(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 = '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(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 = '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(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 = '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 = '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 = '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 = 'second face shape'))) =
- 1))) =
- 0;
-END_ENTITY;
-
-ENTITY final_solution
- SUBTYPE OF (product_definition_formation);
- status : STRING;
-INVERSE
- specification : SET [1:?] OF product_definition FOR formation;
-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 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
- | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FIXED_INSTANCE_ATTRIBUTE_SET' IN
- TYPEOF(r))) >
- 1)) =
- 0;
-END_ENTITY;
-
-ENTITY fixed_reference_swept_surface
- SUBTYPE OF (swept_surface);
- directrix : curve;
- fixed_reference : direction;
-END_ENTITY;
-
-ENTITY flat_face
- SUBTYPE OF (feature_definition);
-WHERE
- 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 = '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,
- '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') 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,
- '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.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,
- '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)) =
- 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)) 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
- (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(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 = 'removal depth'))) <=
- 1))) =
- 0))) =
- 0;
-END_ENTITY;
-
-ENTITY flat_pattern_ply_representation_relationship
- SUBTYPE OF (shape_representation_relationship);
-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 =
- 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 TYPEOF(SELF));
-END_ENTITY;
-
-ENTITY force_measure_with_unit
- SUBTYPE OF (measure_with_unit);
-WHERE
- WR1: 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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: (('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;
-
-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, '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.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])))) =
- 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: 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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: 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ITEM_DEFINED_TRANSFORMATION' IN
- TYPEOF(SELF\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
- 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 frequency_measure_with_unit
- SUBTYPE OF (measure_with_unit);
-WHERE
- WR1: 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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: ('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)) 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.POINT_ON_EDGE_CURVE']);
- WR5: validate_accuracy_types(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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: ('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)) 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.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: ('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)) 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.B_SPLINE_SURFACE_KNOT_LOCATOR']);
- WR5: validate_accuracy_types(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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: ('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)) 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
- ('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.POINT_ON_EDGE_CURVE']);
- WR6: validate_accuracy_types(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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: ('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)) 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
- ('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.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: ('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)) 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
- ('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.B_SPLINE_SURFACE_KNOT_LOCATOR']);
- WR6: validate_accuracy_types(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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: ('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)) 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_LOOP']);
- WR4: validate_locations_of_extreme_value_type(SELF,
- ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ORIENTED_EDGE']);
- WR5: validate_accuracy_types(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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: ('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)) 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.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;
-
-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: ('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)) 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_EDGE_CURVE']);
- WR5: validate_accuracy_types(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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: ('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)) 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',
- '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;
-
-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: ('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)) 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',
- '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;
-
-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: ('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)) 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',
- '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;
-
-ENTITY gear
- SUBTYPE OF (feature_definition);
-WHERE
- 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
- (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,
- '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
- | (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 = '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,
- '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
- | (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(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,
- '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
- | (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 = '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,
- '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
- | (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 = '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,
- '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
- | (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 = '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,
- '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
- | (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 = '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,
- '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.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,
- '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.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,
- '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
- | (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 = '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,
- '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
- | (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 = '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')
- | 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.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')
- | 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.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')
- | 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.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')
- | 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.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
- <* 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;
-
-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 ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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 ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DATUM' IN TYPEOF(base)) OR
- (SELF\shape_aspect.of_shape = base\shape_aspect.of_shape);
- WR6: NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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)
- | '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(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(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(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)))) >=
- 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,
- '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(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(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DIMENSIONAL_LOCATION',
- 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DIMENSIONAL_SIZE',
- 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.GEOMETRIC_TOLERANCE'] *
- TYPEOF(derived_definition)) >
- 0) OR
- (SIZEOF(USEDIN(derived_definition,
- 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.GENERAL_PROPERTY_ASSOCIATION.DERIVED_DEFINITION')) =
- 1);
- WR2: (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DIMENSIONAL_LOCATION',
- 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DIMENSIONAL_SIZE',
- 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.GEOMETRIC_TOLERANCE'] *
- TYPEOF(derived_definition)) >
- 0) OR
- (derived_definition.name = base_definition.name);
-END_ENTITY;
-
-ENTITY general_property_relationship;
- name : label;
- description : OPTIONAL text;
- relating_property : general_property;
- related_property : general_property;
-END_ENTITY;
-
-ENTITY generic_character_glyph_symbol
- ABSTRACT SUPERTYPE
- SUBTYPE OF (symbol_representation);
-END_ENTITY;
-
-ENTITY generic_expression
- ABSTRACT SUPERTYPE OF (ONEOF(simple_generic_expression, unary_generic_expression, binary_generic_expression,
- multiple_arity_generic_expression));
-WHERE
- WR1: is_acyclic(SELF);
-END_ENTITY;
-
-ENTITY generic_literal
- ABSTRACT SUPERTYPE
- SUBTYPE OF (simple_generic_expression);
-END_ENTITY;
-
-ENTITY generic_product_definition_reference
- ABSTRACT SUPERTYPE OF (ONEOF(product_definition_reference, product_definition_reference_with_local_representation));
- source : external_source;
-END_ENTITY;
-
-ENTITY generic_property_relationship;
- name : label;
- description : text;
- relating : generic_property_definition_select;
- related : generic_property_definition_select;
- relation_type : STRING;
-WHERE
- WR1: acyclic_generic_property_relationship(SELF, [related],
- 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.GENERIC_PROPERTY_RELATIONSHIP');
-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
- | NOT (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CURVE' IN TYPEOF(temp)) OR
- ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POINT' 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;
-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,
- ellipsoid, faceted_primitive, rectangular_pyramid, cyclide_segment_solid, volume,
- half_space_solid, shell_based_surface_model, face_based_surface_model,
- shell_based_wireframe_model, edge_based_wireframe_model, geometric_set, tessellated_item,
- volume_with_faces, scanned_data_item)) ANDOR
- ((ONEOF(annotation_fill_area, curve, point, text_literal))) ANDOR
- ((ONEOF(camera_model, curve, direction))) ANDOR
- ((ONEOF(curve, externally_defined_hatch_style, externally_defined_tile_style, fill_area_style_hatching,
- fill_area_style_tile_symbol_with_style, fill_area_style_tiles, one_direction_repeat_factor,
- point, vector))) ANDOR
- ((ONEOF(curve, planar_extent))) ANDOR (ONEOF(kinematic_path, placement)) 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 ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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);
-INVERSE
- auxiliary_classification : SET [0:?] OF geometric_tolerance_auxiliary_classification FOR described_item;
- tolerance_relationship : SET [0:?] OF geometric_tolerance_relationship FOR relating_geometric_tolerance;
-UNIQUE
- UR1: id, controlling_shape;
-WHERE
- WR1: magnitude\measure_with_unit.value_component >= 0.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 :=:
- 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;
- WR5: SIZEOF(QUERY(tr <* tolerance_relationship | tr.name = 'composite tolerance')) <= 1;
-END_ENTITY;
-
-ENTITY geometric_tolerance_auxiliary_classification;
- attribute_value : geometric_tolerance_auxiliary_classification_enum;
- described_item : geometric_tolerance;
-END_ENTITY;
-
-ENTITY geometric_tolerance_relationship;
- name : label;
- description : text;
- relating_geometric_tolerance : geometric_tolerance;
- related_geometric_tolerance : geometric_tolerance;
-WHERE
- WR1: NOT (name = 'composite tolerance') OR
- (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POSITION_TOLERANCE' IN
- TYPEOF(relating_geometric_tolerance)) AND
- ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POSITION_TOLERANCE' IN
- TYPEOF(related_geometric_tolerance))) OR
- (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LINE_PROFILE_TOLERANCE' IN
- TYPEOF(relating_geometric_tolerance)) AND
- ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LINE_PROFILE_TOLERANCE' IN
- TYPEOF(related_geometric_tolerance))) OR
- (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SURFACE_PROFILE_TOLERANCE' IN
- TYPEOF(relating_geometric_tolerance)) AND
- ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SURFACE_PROFILE_TOLERANCE' IN
- TYPEOF(related_geometric_tolerance)));
- WR2: NOT (name = 'composite tolerance') OR
- (relating_geometric_tolerance\geometric_tolerance.toleranced_shape_aspect :=:
- related_geometric_tolerance\geometric_tolerance.toleranced_shape_aspect);
- WR3: acyclic_geometric_tolerance_relationship(SELF, [related_geometric_tolerance],
- 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.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
- | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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_or_plane_angle_measure_with_unit_select;
-WHERE
- WR1: NOT (EXISTS(second_unit_size) XOR
- (area_type IN [area_unit_type.rectangular,area_unit_type.cylindrical,area_unit_type.spherical]));
- WR2: NOT (area_type = area_unit_type.cylindrical) OR
- ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT' IN TYPEOF(unit_size)) AND
- ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANE_ANGLE_MEASURE_WITH_UNIT' IN
- TYPEOF(second_unit_size));
- WR3: NOT (area_type = area_unit_type.rectangular) OR
- ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT' IN TYPEOF(unit_size)) AND
- ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT' IN TYPEOF(second_unit_size));
- WR4: NOT (area_type = area_unit_type.spherical) OR
- ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANE_ANGLE_MEASURE_WITH_UNIT' IN TYPEOF(unit_size)) AND
- ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANE_ANGLE_MEASURE_WITH_UNIT' IN
- TYPEOF(second_unit_size));
- WR5: NOT (area_type = area_unit_type.spherical) OR
- (SIZEOF(QUERY(tz
- <* USEDIN(SELF,
- 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.TOLERANCE_ZONE.DEFINING_TOLERANCE')
- | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ORIENTED_TOLERANCE_ZONE' IN
- TYPEOF(tz)))) <>
- 0);
-END_ENTITY;
-
-ENTITY geometric_tolerance_with_defined_unit
- SUBTYPE OF (geometric_tolerance);
- unit_size : length_or_plane_angle_measure_with_unit_select;
-WHERE
- WR1: ('NUMBER' IN TYPEOF(unit_size\measure_with_unit.value_component)) AND
- (unit_size\measure_with_unit.value_component > 0.0);
-END_ENTITY;
-
-ENTITY 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;
-WHERE
- WR1: NOT (geometric_tolerance_modifier.circle_a IN modifiers) OR
- (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT' IN
- TYPEOF(SELF\geometric_tolerance.toleranced_shape_aspect)) AND
- (SELF\geometric_tolerance.toleranced_shape_aspect\shape_aspect.product_definitional = true) OR
- ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DIMENSIONAL_SIZE' IN
- TYPEOF(SELF\geometric_tolerance.toleranced_shape_aspect)));
-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) *
- ['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.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',
- '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',
- '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 (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',
- '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',
- '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',
- '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.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)))) =
- 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)))) =
- 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)))) =
- 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
- | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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) *
- ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.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 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 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))) =
- 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(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.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 gps_filter;
- filter_type : gps_filtration_type;
- filter_data : LIST [1 : ?] OF measure_with_unit;
-INVERSE
- owner : gps_filtration_specification FOR filter_data;
-WHERE
- WR1: NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.GEOMETRIC_TOLERANCE_WITH_MODIFIERS' IN
- TYPEOF(owner\gps_filtration_specification.base_target)) OR
- (SIZEOF([geometric_tolerance_modifier.reference_minimax_feature_without_constraint,
- geometric_tolerance_modifier.reference_minimax_feature_with_external_material_constraint,
- geometric_tolerance_modifier.reference_minimax_feature_with_internal_material_constraint,
- geometric_tolerance_modifier.reference_least_square_feature_without_constraint,
- geometric_tolerance_modifier.reference_least_square_feature_with_external_material_constraint,
- geometric_tolerance_modifier.reference_least_square_feature_with_internal_material_constraint,
- geometric_tolerance_modifier.reference_minimum_circumscribed_feature,
- geometric_tolerance_modifier.reference_maximum_inscribed_feature,
- geometric_tolerance_modifier.total_range_deviations,
- geometric_tolerance_modifier.peak_height,
- geometric_tolerance_modifier.valley_depth,
- geometric_tolerance_modifier.standard_deviation] *
- owner\gps_filtration_specification.base_target\geometric_tolerance_with_modifiers.modifiers) <>
- 0);
-END_ENTITY;
-
-ENTITY gps_filtration_specification;
- base_target : gps_filtration_specification_target;
- filter_data : LIST [1 : ?] OF gps_filter;
-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, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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) <= 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','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,
- '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.GENERAL_PROPERTY' IN
- TYPEOF(gpa.base_definition)) AND
- (gpa\general_property_association.base_definition\general_property.name =
- 'surface_condition'))) =
- 1)) =
- 1);
-END_ENTITY;
-
-ENTITY harness_node
- SUBTYPE OF (shape_aspect);
-END_ENTITY;
-
-ENTITY harness_segment
- SUBTYPE OF (shape_aspect);
-END_ENTITY;
-
-ENTITY hexahedron_volume
- SUBTYPE OF (volume);
- points : LIST [8 : 8] OF cartesian_point;
-WHERE
- WR1: above_plane(points[1], points[2], points[3], points[4]) = 0.0;
- WR2: above_plane(points[5], points[8], points[7], points[6]) = 0.0;
- WR3: above_plane(points[1], points[4], points[8], points[5]) = 0.0;
- WR4: above_plane(points[4], points[3], points[7], points[8]) = 0.0;
- WR5: above_plane(points[3], points[2], points[6], points[7]) = 0.0;
- WR6: above_plane(points[1], points[5], points[6], points[2]) = 0.0;
- WR7: same_side([points[1],points[2],points[3]], [points[5],points[6],points[7],points[8]]);
- WR8: same_side([points[1],points[4],points[8]], [points[3],points[7],points[6],points[2]]);
- WR9: same_side([points[1],points[2],points[5]], [points[3],points[7],points[8],points[4]]);
- WR10: same_side([points[5],points[6],points[7]], [points[1],points[2],points[3],points[4]]);
- WR11: same_side([points[3],points[7],points[6]], [points[1],points[4],points[8],points[5]]);
- WR12: same_side([points[3],points[7],points[8]], [points[1],points[5],points[6],points[2]]);
- WR13: points[1].dim = 3;
-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: 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CAMERA_MODEL_D3_WITH_HLHSR' IN
- TYPEOF(SELF.item\mapped_item.mapping_source.mapping_origin);
-END_ENTITY;
-
-ENTITY hierarchical_interface_connection
- SUBTYPE OF (interface_connection);
-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: ('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)) 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.B_SPLINE_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 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: ('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)) 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.B_SPLINE_CURVE']);
- 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 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: ('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)) 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.B_SPLINE_CURVE']);
- 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 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: ('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)) 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.B_SPLINE_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 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 ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.RIGID_LINK_REPRESENTATION' IN
- TYPEOF(lr)))) =
- 0;
-END_ENTITY;
-
-ENTITY hole_bottom
- SUBTYPE OF (shape_aspect);
-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)))) =
- 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')
- | (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(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(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(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(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,
- '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'])))) >=
- 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(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 = '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(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 = '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(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 = '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(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.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
- ('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(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 = '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(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.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')
- | ('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)) =
- 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_assignment_relationship;
- name : label;
- description : OPTIONAL text;
- relating_identification_assignment : identification_assignment;
- related_identification_assignment : identification_assignment;
-END_ENTITY;
-
-ENTITY identification_role;
- name : label;
- description : OPTIONAL text;
-END_ENTITY;
-
-ENTITY idrm_classification_assignment
- SUBTYPE OF (classification_assignment);
- items : SET [1 : ?] OF idrm_marked_item;
-END_ENTITY;
-
-ENTITY illuminance_measure_with_unit
- SUBTYPE OF (measure_with_unit);
-WHERE
- WR1: 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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) *
- ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.IMPLICIT_PLANAR_CURVE',
- 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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) *
- ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.IMPLICIT_POINT_ON_PLANE',
- 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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 in_zone
- SUBTYPE OF (group);
-END_ENTITY;
-
-ENTITY inappropriate_element_visibility
- SUBTYPE OF (externally_conditioned_data_quality_criterion);
-WHERE
- WR1: validate_ecdq_inspected_elements_type(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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,
- ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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: 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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 ('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(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, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.BOOLEAN_VALUE');
- 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, []);
-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, '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.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, '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_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,
- ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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, '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_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, '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_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, '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.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: ('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;
-
-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: ('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)) 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.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: ('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)) 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.B_SPLINE_SURFACE_KNOT_LOCATOR']);
- WR5: validate_accuracy_types(SELF, []);
-END_ENTITY;
-
-ENTITY inductance_measure_with_unit
- SUBTYPE OF (measure_with_unit);
-WHERE
- WR1: 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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: 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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 interface_component
- SUBTYPE OF (physical_component);
-END_ENTITY;
-
-ENTITY interface_connection
- SUBTYPE OF (group);
-END_ENTITY;
-
-ENTITY interface_connector_as_planned
- SUBTYPE OF (product_definition_formation);
-END_ENTITY;
-
-ENTITY interface_connector_as_realized
- SUBTYPE OF (product_definition_formation);
-END_ENTITY;
-
-ENTITY interface_connector_definition
- SUBTYPE OF (product_definition);
-END_ENTITY;
-
-ENTITY interface_connector_design
- SUBTYPE OF (product_definition_formation);
-END_ENTITY;
-
-ENTITY interface_connector_design_to_planned
- SUBTYPE OF (product_definition_formation_relationship);
- SELF\product_definition_formation_relationship.relating_product_definition_formation : interface_connector_design;
- SELF\product_definition_formation_relationship.related_product_definition_formation : interface_connector_as_planned;
-WHERE
- WR1: SELF.relating_product_definition_formation.of_product :=: SELF.related_product_definition_formation.of_product;
-END_ENTITY;
-
-ENTITY interface_connector_design_to_realized
- SUBTYPE OF (product_definition_formation_relationship);
- SELF\product_definition_formation_relationship.relating_product_definition_formation : interface_connector_design;
- SELF\product_definition_formation_relationship.related_product_definition_formation : interface_connector_as_realized;
-WHERE
- WR1: SELF.relating_product_definition_formation.of_product :=: SELF.related_product_definition_formation.of_product;
-END_ENTITY;
-
-ENTITY interface_connector_occurrence
- SUBTYPE OF (group);
-END_ENTITY;
-
-ENTITY interface_connector_planned_to_realized
- SUBTYPE OF (product_definition_formation_relationship);
- SELF\product_definition_formation_relationship.relating_product_definition_formation : interface_connector_as_planned;
- SELF\product_definition_formation_relationship.related_product_definition_formation : interface_connector_as_realized;
-WHERE
- WR1: SELF.relating_product_definition_formation.of_product :=: SELF.related_product_definition_formation.of_product;
-END_ENTITY;
-
-ENTITY interface_connector_version
- SUBTYPE OF (product_definition_formation);
-END_ENTITY;
-
-ENTITY interface_definition_connection
- SUBTYPE OF (product_definition_relationship);
-END_ENTITY;
-
-ENTITY interface_definition_for
- SUBTYPE OF (product_definition_relationship);
-END_ENTITY;
-
-ENTITY interface_specification_definition
- SUBTYPE OF (product_definition);
-END_ENTITY;
-
-ENTITY interface_specification_version
- SUBTYPE OF (product_definition_formation);
-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 (geometric_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, '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',
- '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.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;
-
-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, '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.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;
-
-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, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.BOOLEAN_VALUE');
- WR2: validate_inspected_elements_type(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.BREP_WITH_VOIDS']);
- WR3: validate_locations_of_extreme_value_type(SELF,
- ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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: ('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
- ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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;
-UNIQUE
- UR1: used_representation, identified_item;
- UR2: used_representation, definition;
-WHERE
- WR1: NOT (SIZEOF(identified_item) = 1) OR (used_representation IN using_representations(identified_item));
- WR2: NOT (SIZEOF(identified_item) > 1) OR (used_representation IN get_representations_for_items(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)
- | ('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) <= 10}))) =
- 0;
- 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',
- 'slope angle 2',
- 'top radius 1',
- 'top radius 2']))) >
- 0))) =
- 0;
- 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))) =
- 1;
- 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))) =
- 1;
- 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))) <=
- 1;
- 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))) =
- 1;
- 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))) =
- 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')
- | ('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 = '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')
- | ('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
- TYPEOF(sar.relating_shape_aspect)))) =
- 1))) =
- 1;
- 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))) <=
- 1;
- 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))) <=
- 1;
- 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))) <=
- 1;
- 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))) <=
- 1;
-END_ENTITY;
-
-ENTITY joggle_termination
- SUBTYPE OF (shape_aspect);
-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
- <* 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
- <* 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
- <* 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'] *
- TYPEOF(i)) =
- 2))) =
- 1))) =
- 1);
- 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'] *
- 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)) 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
- ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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 ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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 | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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 laid_orientation_angle
- SUBTYPE OF (ply_orientation_angle);
-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, '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;
-END_ENTITY;
-
-ENTITY leader_directed_callout
- SUBTYPE OF (draughting_callout);
-WHERE
- WR1: SIZEOF(QUERY(l_1
- <* SELF\draughting_callout.contents
- | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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
- | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LEADER_CURVE' IN TYPEOF(con))) =
- 1;
-END_ENTITY;
-
-ENTITY leader_terminator
- SUBTYPE OF (terminator_symbol);
-WHERE
- WR1: 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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: 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_UNIT' IN TYPEOF(SELF\measure_with_unit.unit_component);
-END_ENTITY;
-
-ENTITY length_unit
- SUBTYPE OF (named_unit);
-WHERE
- WR1: (SELF\named_unit.dimensions.length_exponent = 1.0) AND (SELF\named_unit.dimensions.mass_exponent = 0.0) AND
- (SELF\named_unit.dimensions.time_exponent = 0.0) AND
- (SELF\named_unit.dimensions.electric_current_exponent = 0.0) AND
- (SELF\named_unit.dimensions.thermodynamic_temperature_exponent = 0.0) AND
- (SELF\named_unit.dimensions.amount_of_substance_exponent = 0.0) AND
- (SELF\named_unit.dimensions.luminous_intensity_exponent = 0.0);
-END_ENTITY;
-
-ENTITY light_source
- SUPERTYPE OF (ONEOF(light_source_ambient, light_source_directional, light_source_positional, light_source_spot))
- SUBTYPE OF (geometric_representation_item);
- light_colour : colour;
-WHERE
- WR1: SIZEOF(USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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: ('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' 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],
- 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LINEAR_ARRAY_COMPONENT_DEFINITION_LINK');
-END_ENTITY;
-
-ENTITY linear_array_placement_group_component
- SUBTYPE OF (array_placement_group);
-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 ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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 ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FEATURE_COMPONENT_DEFINITION' IN
- TYPEOF(SELF.of_shape.definition));
- 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.SHAPE_REPRESENTATION_WITH_PARAMETERS') IN
- TYPEOF(pdr.used_representation)))) =
- 1)))) =
- 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(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')
- | (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)) 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(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 = '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 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;
-
-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_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_b_spline
- SUBTYPE OF (representation_item);
- degree : INTEGER;
- knots : LIST [2 : ?] OF INTEGER;
- multiplicities : LIST [2 : ?] OF INTEGER;
-WHERE
- WR1: degree > 0;
- WR2: SIZEOF(knots) = SIZEOF(multiplicities);
- WR3: constraints_param_local_b_spline(degree, knots, multiplicities);
-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 locally_refined_spline_curve
- SUBTYPE OF (bounded_curve);
- b_splines : LIST [2 : ?] OF local_b_spline;
- knot_values : spline_knot_values;
- control_points_list : LIST [2 : ?] OF cartesian_point;
- scaling_factors : LIST [2 : ?] OF REAL;
- closed_curve : LOGICAL;
- locally_refined_spline_type : locally_refined_spline_type_enum;
- self_intersect : LOGICAL;
- domain : LIST [2 : 2] OF REAL;
-WHERE
- WR1: SIZEOF(b_splines) = SIZEOF(control_points_list);
- WR2: SIZEOF(scaling_factors) = SIZEOF(control_points_list);
-END_ENTITY;
-
-ENTITY locally_refined_spline_surface
- SUBTYPE OF (bounded_surface);
- u_b_splines : LIST [4 : ?] OF local_b_spline;
- v_b_splines : LIST [4 : ?] OF local_b_spline;
- u_knots : spline_knot_values;
- v_knots : spline_knot_values;
- control_points_list : LIST [4 : ?] OF cartesian_point;
- scaling_factors : LIST [4 : ?] OF REAL;
- linearly_independent : linearly_independent_enum;
- locally_refined_spline_type : locally_refined_spline_type_enum;
- self_intersect : LOGICAL;
- u_closed : LOGICAL;
- v_closed : LOGICAL;
- domain : LIST [2 : 2] OF LIST [2 : 2] OF REAL;
-WHERE
- WR1: SIZEOF(u_b_splines) = SIZEOF(control_points_list);
- WR2: SIZEOF(v_b_splines) = SIZEOF(control_points_list);
- WR3: SIZEOF(scaling_factors) = SIZEOF(control_points_list);
- WR4: constraints_scaling(SELF.scaling_factors);
-END_ENTITY;
-
-ENTITY locally_refined_spline_volume
- SUBTYPE OF (volume);
- u_b_splines : LIST [8 : ?] OF local_b_spline;
- v_b_splines : LIST [8 : ?] OF local_b_spline;
- w_b_splines : LIST [8 : ?] OF local_b_spline;
- u_knots : spline_knot_values;
- v_knots : spline_knot_values;
- w_knots : spline_knot_values;
- control_points_list : LIST [8 : ?] OF cartesian_point;
- scaling_factors : LIST [8 : ?] OF REAL;
- linearly_independent : linearly_independent_enum;
- locally_refined_spline_type : locally_refined_spline_type_enum;
- domain : LIST [3 : 3] OF LIST [2 : 2] OF REAL;
-WHERE
- WR1: SIZEOF(u_b_splines) = SIZEOF(control_points_list);
- WR2: SIZEOF(v_b_splines) = SIZEOF(control_points_list);
- WR3: SIZEOF(w_b_splines) = SIZEOF(control_points_list);
- WR4: SIZEOF(scaling_factors) = SIZEOF(control_points_list);
- WR5: constraints_scaling(SELF.scaling_factors);
-END_ENTITY;
-
-ENTITY location;
- id : identifier;
- name : label;
- description : OPTIONAL text;
-END_ENTITY;
-
-ENTITY location_assignment
- ABSTRACT SUPERTYPE;
- id : identifier;
- name : label;
- description : OPTIONAL text;
- assigned_location : location;
- role : location_role;
-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_relationship;
- id : identifier;
- name : label;
- description : OPTIONAL text;
- relating_location : location;
- related_location : location;
-END_ENTITY;
-
-ENTITY location_representation_assignment
- ABSTRACT SUPERTYPE;
- id : identifier;
- name : label;
- description : OPTIONAL text;
- represented_location : location;
- role : location_representation_role;
-END_ENTITY;
-
-ENTITY location_representation_role;
- id : identifier;
- name : label;
- description : OPTIONAL text;
-END_ENTITY;
-
-ENTITY location_role;
- id : identifier;
- name : label;
- description : OPTIONAL text;
-END_ENTITY;
-
-ENTITY location_shape_representation
- 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))))) =
- 0);
-END_ENTITY;
-
-ENTITY locator
- SUBTYPE OF (feature_definition);
-WHERE
- 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) <= 5}))) =
- 0;
- 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))) =
- 1;
- 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))) <=
- 1;
- 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))) =
- 1;
- 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))) <=
- 1;
-END_ENTITY;
-
-ENTITY log_function
- SUBTYPE OF (unary_function_call);
-END_ENTITY;
-
-ENTITY log10_function
- SUBTYPE OF (unary_function_call);
-END_ENTITY;
-
-ENTITY log2_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 ('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 ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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 ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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: 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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: 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LUMINOUS_INTENSITY_UNIT' IN
- TYPEOF(SELF\measure_with_unit.unit_component);
-END_ENTITY;
-
-ENTITY luminous_intensity_unit
- SUBTYPE OF (named_unit);
-WHERE
- WR1: (SELF\named_unit.dimensions.length_exponent = 0.0) AND (SELF\named_unit.dimensions.mass_exponent = 0.0) AND
- (SELF\named_unit.dimensions.time_exponent = 0.0) AND
- (SELF\named_unit.dimensions.electric_current_exponent = 0.0) AND
- (SELF\named_unit.dimensions.thermodynamic_temperature_exponent = 0.0) AND
- (SELF\named_unit.dimensions.amount_of_substance_exponent = 0.0) AND
- (SELF\named_unit.dimensions.luminous_intensity_exponent = 1.0);
-END_ENTITY;
-
-ENTITY machining_process_executable
- SUBTYPE OF (process_operation);
-END_ENTITY;
-
-ENTITY magnetic_flux_density_measure_with_unit
- SUBTYPE OF (measure_with_unit);
-WHERE
- WR1: 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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: 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.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)) >
- 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.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 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 | 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(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))) =
- 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(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))) =
- 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)))) =
- 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(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.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(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.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)))) =
- 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(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))) =
- 0)))) =
- 0))) =
- 0;
-END_ENTITY;
-
-ENTITY manifold_surface_shape_representation
- 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',
- '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)) =
- 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.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)))) =
- 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',
- '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 ('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 (('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)))) =
- 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))) =
- 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',
- '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',
- '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
- 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
- ('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
- 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.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',
- '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(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',
- '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;
-
-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, '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
- ({2 <= SIZEOF(pdr.used_representation.items) <= 6}))) =
- 1)) =
- 1;
- 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.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(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)))) =
- 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(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)))) =
- 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(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 = '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(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 = '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)))) =
- 1)))) =
- 0);
-END_ENTITY;
-
-ENTITY mass_measure_with_unit
- SUBTYPE OF (measure_with_unit);
-WHERE
- WR1: 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MASS_UNIT' IN TYPEOF(SELF\measure_with_unit.unit_component);
-END_ENTITY;
-
-ENTITY mass_unit
- SUBTYPE OF (named_unit);
-WHERE
- WR1: (SELF\named_unit.dimensions.length_exponent = 0.0) AND (SELF\named_unit.dimensions.mass_exponent = 1.0) AND
- (SELF\named_unit.dimensions.time_exponent = 0.0) AND
- (SELF\named_unit.dimensions.electric_current_exponent = 0.0) AND
- (SELF\named_unit.dimensions.thermodynamic_temperature_exponent = 0.0) AND
- (SELF\named_unit.dimensions.amount_of_substance_exponent = 0.0) AND
- (SELF\named_unit.dimensions.luminous_intensity_exponent = 0.0);
-END_ENTITY;
-
-ENTITY 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: ('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)))) =
- 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,
- uniform_product_space, extended_tuple_space,
- function_space))
- SUBTYPE OF (generic_expression);
-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_value_precision_qualifier;
- precision_value : 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 mating_material
- SUBTYPE OF (property_definition, group);
- SELF\property_definition.definition : product_definition_usage_relationship;
-UNIQUE
- UR1: SELF\property_definition.definition;
-END_ENTITY;
-
-ENTITY mating_material_items
- SUBTYPE OF (group_assignment);
- SELF\group_assignment.assigned_group : mating_material;
- items : SET [1 : ?] OF product_definition;
-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
- | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRECISION_QUALIFIER' IN TYPEOF(temp)) OR
- ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MATHS_VALUE_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));
-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 ('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 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
- ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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 ('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
- 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
- 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.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')
- | (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))) =
- 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
- 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
- | ('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(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))))) =
- 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',
- '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',
- '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
- <* 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',
- '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
- <* 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',
- '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'] *
- 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
- <* 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
- <* 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))) =
- 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
- <* 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 (('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.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' 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.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
- | '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
- <* 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 (('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',
- '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
- ('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.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
- | '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
- <* 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 (('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',
- '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
- ('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.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
- | '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
- <* 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
- | '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.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',
- '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))) =
- 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
- <* 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 (('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',
- '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
- ('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)))) =
- 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_requirement_item_association
- SUBTYPE OF (pmi_requirement_item_association);
- SELF\pmi_requirement_item_association.requirement : requirement_assignment;
-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 (('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
- 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
- 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.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.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))
- | 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
- 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',
- '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;
-
-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
- | ('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(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))))) =
- 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',
- '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',
- '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
- <* 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.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
- <* 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',
- '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'] *
- 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
- <* 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
- <* 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_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
- <* 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',
- '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
- <* 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 ((('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.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' 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.DRAUGHTING_PRE_DEFINED_CURVE_FONT'] *
- TYPEOF(sspl\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.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
- | '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
- <* 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 ((('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',
- '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
- ('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.DRAUGHTING_PRE_DEFINED_CURVE_FONT'] *
- TYPEOF(sscg\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.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
- | '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
- <* 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 ((('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',
- '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
- ('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.DRAUGHTING_PRE_DEFINED_CURVE_FONT'] *
- TYPEOF(sssh\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',
- '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))))) =
- 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
- <* 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
- | '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.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',
- '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
- (('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.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
- | '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
- <* 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 ((('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',
- '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
- ('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
- (('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',
- '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))))) =
- 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
- <* 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',
- '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;
-
-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: (('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(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 message_contents_assignment
- SUBTYPE OF (group_assignment);
- items : SET [1 : ?] OF representation;
- SELF\group_assignment.assigned_group : message_contents_group;
-DERIVE
- message_contents_group : message_contents_group := SELF\group_assignment.assigned_group;
-END_ENTITY;
-
-ENTITY message_contents_group
- SUBTYPE OF (group);
-END_ENTITY;
-
-ENTITY message_relationship
- SUBTYPE OF (product_relationship);
- SELF\product_relationship.relating_product : structured_message;
- SELF\product_relationship.related_product : structured_message;
-DERIVE
- related_message : structured_message := SELF\product_relationship.related_product;
- relating_message : structured_message := SELF\product_relationship.relating_product;
-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 mismatch_of_arcwise_connected_curves
- SUBTYPE OF (a3m_equivalence_criterion_of_detailed_shape_data_content,
- a3m_equivalence_inspection_requirement_with_values);
- SELF\a3m_equivalence_criterion.assessment_specification : a3m_equivalence_assessment_by_numerical_test;
-DERIVE
- SELF\a3m_equivalence_criterion.comparing_element_types : LIST [1 : 1] OF a3ms_element_type_name := [etns_connected_edge_set];
- SELF\a3m_equivalence_criterion.compared_element_types : LIST [1 : 1] OF a3ms_element_type_name := [etns_connected_edge_set];
- SELF\a3m_equivalence_criterion.measured_data_type : a3ms_measured_data_type_name := mdns_length_measure;
- SELF\a3m_equivalence_criterion.detected_difference_types : LIST [2 : 2] OF a3ms_detected_difference_type_name := [ddns_cartesian_point,
- ddns_point_on_curve];
- SELF\a3m_equivalence_criterion.accuracy_types : LIST [1 : 1] OF a3ms_accuracy_type_name := [atns_length_measure];
-WHERE
- WR1: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' IN
- TYPEOF(SELF\a3m_equivalence_criterion.assessment_specification\a3m_equivalence_assessment_by_numerical_test.threshold)) AND
- (a3ms_get_value_limit_type(SELF\a3m_equivalence_criterion.assessment_specification\a3m_equivalence_assessment_by_numerical_test.threshold) =
- SELF.measured_data_type);
- WR2: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT' IN
- TYPEOF(SELF\a3m_equivalence_inspection_requirement_with_values.applied_values[1])) AND
- (SELF\a3m_equivalence_inspection_requirement_with_values.applied_values[1].name =
- 'discretization_distance_tolerance');
-END_ENTITY;
-
-ENTITY mismatch_of_arcwise_connected_surfaces
- SUBTYPE OF (a3m_equivalence_criterion_of_detailed_shape_data_content,
- a3m_equivalence_inspection_requirement_with_values);
- SELF\a3m_equivalence_criterion.assessment_specification : a3m_equivalence_assessment_by_numerical_test;
-DERIVE
- SELF\a3m_equivalence_criterion.comparing_element_types : LIST [1 : 1] OF a3ms_element_type_name := [etns_connected_face_set];
- SELF\a3m_equivalence_criterion.compared_element_types : LIST [1 : 1] OF a3ms_element_type_name := [etns_connected_face_set];
- SELF\a3m_equivalence_criterion.measured_data_type : a3ms_measured_data_type_name := mdns_length_measure;
- SELF\a3m_equivalence_criterion.detected_difference_types : LIST [2 : 2] OF a3ms_detected_difference_type_name := [ddns_cartesian_point,
- ddns_point_on_surface];
- SELF\a3m_equivalence_criterion.accuracy_types : LIST [1 : 1] OF a3ms_accuracy_type_name := [atns_length_measure];
-WHERE
- WR1: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' IN
- TYPEOF(SELF\a3m_equivalence_criterion.assessment_specification\a3m_equivalence_assessment_by_numerical_test.threshold)) AND
- (a3ms_get_value_limit_type(SELF\a3m_equivalence_criterion.assessment_specification\a3m_equivalence_assessment_by_numerical_test.threshold) =
- SELF.measured_data_type);
- WR2: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT' IN
- TYPEOF(SELF\a3m_equivalence_inspection_requirement_with_values.applied_values[1])) AND
- (SELF\a3m_equivalence_inspection_requirement_with_values.applied_values[1].name =
- 'discretization_distance_tolerance');
-END_ENTITY;
-
-ENTITY mismatch_of_arcwise_connected_surfaces_boundary
- SUBTYPE OF (a3m_equivalence_criterion_of_detailed_shape_data_content,
- a3m_equivalence_inspection_requirement_with_values);
- SELF\a3m_equivalence_criterion.assessment_specification : a3m_equivalence_assessment_by_numerical_test;
-DERIVE
- SELF\a3m_equivalence_criterion.comparing_element_types : LIST [1 : 1] OF a3ms_element_type_name := [etns_connected_face_set];
- SELF\a3m_equivalence_criterion.compared_element_types : LIST [1 : 1] OF a3ms_element_type_name := [etns_connected_face_set];
- SELF\a3m_equivalence_criterion.measured_data_type : a3ms_measured_data_type_name := mdns_length_measure;
- SELF\a3m_equivalence_criterion.detected_difference_types : LIST [2 : 2] OF a3ms_detected_difference_type_name := [ddns_cartesian_point,
- ddns_point_on_curve];
- SELF\a3m_equivalence_criterion.accuracy_types : LIST [1 : 1] OF a3ms_accuracy_type_name := [atns_length_measure];
-WHERE
- WR1: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' IN
- TYPEOF(SELF\a3m_equivalence_criterion.assessment_specification\a3m_equivalence_assessment_by_numerical_test.threshold)) AND
- (a3ms_get_value_limit_type(SELF\a3m_equivalence_criterion.assessment_specification\a3m_equivalence_assessment_by_numerical_test.threshold) =
- SELF.measured_data_type);
- WR2: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT' IN
- TYPEOF(SELF\a3m_equivalence_inspection_requirement_with_values.applied_values[1])) AND
- (SELF\a3m_equivalence_inspection_requirement_with_values.applied_values[1].name =
- 'discretization_distance_tolerance');
-END_ENTITY;
-
-ENTITY mismatch_of_component
- SUBTYPE OF (a3m_equivalence_criterion_of_assembly_data_structure);
- SELF\a3m_equivalence_criterion.assessment_specification : a3m_equivalence_assessment_by_logical_test;
-DERIVE
- SELF\a3m_equivalence_criterion.measured_data_type : a3ma_measured_data_type_name := mdna_boolean_value;
- SELF\a3m_equivalence_criterion.detected_difference_types : LIST [1 : 1] OF a3ma_detected_difference_type_name := [ddna_assembly_component_usage];
-END_ENTITY;
-
-ENTITY mismatch_of_edges
- SUBTYPE OF (a3m_equivalence_criterion_of_shape_data_structure);
- SELF\a3m_equivalence_criterion.assessment_specification : a3m_equivalence_assessment_by_logical_test;
-DERIVE
- SELF\a3m_equivalence_criterion.compared_element_types : LIST [1 : 1] OF a3ms_element_type_name := [etns_connected_edge_set];
- SELF\a3m_equivalence_criterion.measured_data_type : a3ms_measured_data_type_name := mdns_boolean_value;
- SELF\a3m_equivalence_criterion.detected_difference_types : LIST [2 : 2] OF a3ms_detected_difference_type_name := [ddns_edge,
- ddns_several_edges];
- SELF\a3m_equivalence_criterion.accuracy_types : LIST [0 : 0] OF a3ms_accuracy_type_name := [];
-END_ENTITY;
-
-ENTITY mismatch_of_faces
- SUBTYPE OF (a3m_equivalence_criterion_of_shape_data_structure);
- SELF\a3m_equivalence_criterion.assessment_specification : a3m_equivalence_assessment_by_logical_test;
-DERIVE
- SELF\a3m_equivalence_criterion.compared_element_types : LIST [1 : 1] OF a3ms_element_type_name := [etns_connected_face_set];
- SELF\a3m_equivalence_criterion.measured_data_type : a3ms_measured_data_type_name := mdns_boolean_value;
- SELF\a3m_equivalence_criterion.detected_difference_types : LIST [2 : 2] OF a3ms_detected_difference_type_name := [ddns_face,
- ddns_several_faces];
- SELF\a3m_equivalence_criterion.accuracy_types : LIST [0 : 0] OF a3ms_accuracy_type_name := [];
-END_ENTITY;
-
-ENTITY mismatch_of_point_cloud_and_related_geometry
- SUBTYPE OF (a3m_equivalence_criterion_of_detailed_shape_data_content);
- SELF\a3m_equivalence_criterion.assessment_specification : a3m_equivalence_assessment_by_numerical_test;
-DERIVE
- SELF\a3m_equivalence_criterion.comparing_element_types : LIST [2 : 2] OF a3ms_element_type_name := [etns_connected_edge_set,
- etns_connected_face_set];
- SELF\a3m_equivalence_criterion.compared_element_types : LIST [1 : 1] OF a3ms_element_type_name := [etns_point_cloud_dataset];
- SELF\a3m_equivalence_criterion.measured_data_type : a3ms_measured_data_type_name := mdns_length_measure;
- SELF\a3m_equivalence_criterion.detected_difference_types : LIST [3 : 3] OF a3ms_detected_difference_type_name := [ddns_cartesian_point,
- ddns_point_on_curve,
- ddns_point_on_surface];
- SELF\a3m_equivalence_criterion.accuracy_types : LIST [1 : 1] OF a3ms_accuracy_type_name := [atns_length_measure];
-WHERE
- WR1: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' IN
- TYPEOF(SELF\a3m_equivalence_criterion.assessment_specification\a3m_equivalence_assessment_by_numerical_test.threshold)) AND
- (a3ms_get_value_limit_type(SELF\a3m_equivalence_criterion.assessment_specification\a3m_equivalence_assessment_by_numerical_test.threshold) =
- SELF.measured_data_type);
-END_ENTITY;
-
-ENTITY mismatch_of_points
- SUBTYPE OF (a3m_equivalence_criterion_of_detailed_shape_data_content);
- SELF\a3m_equivalence_criterion.assessment_specification : a3m_equivalence_assessment_by_numerical_test;
-DERIVE
- SELF\a3m_equivalence_criterion.comparing_element_types : LIST [1 : 1] OF a3ms_element_type_name := [etns_vertex_point];
- SELF\a3m_equivalence_criterion.compared_element_types : LIST [1 : 1] OF a3ms_element_type_name := [etns_vertex_point];
- SELF\a3m_equivalence_criterion.measured_data_type : a3ms_measured_data_type_name := mdns_length_measure;
- SELF\a3m_equivalence_criterion.detected_difference_types : LIST [1 : 1] OF a3ms_detected_difference_type_name := [ddns_no_element];
- SELF\a3m_equivalence_criterion.accuracy_types : LIST [0 : 0] OF a3ms_accuracy_type_name := [];
-WHERE
- WR1: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' IN
- TYPEOF(SELF\a3m_equivalence_criterion.assessment_specification\a3m_equivalence_assessment_by_numerical_test.threshold)) AND
- (a3ms_get_value_limit_type(SELF\a3m_equivalence_criterion.assessment_specification\a3m_equivalence_assessment_by_numerical_test.threshold) =
- SELF.measured_data_type);
-END_ENTITY;
-
-ENTITY mismatch_of_underlying_edge_geometry
- SUBTYPE OF (a3m_equivalence_criterion_of_detailed_shape_data_content);
- SELF\a3m_equivalence_criterion.assessment_specification : a3m_equivalence_assessment_by_logical_test;
-DERIVE
- SELF\a3m_equivalence_criterion.comparing_element_types : LIST [1 : 1] OF a3ms_element_type_name := [etns_connected_face_set];
- SELF\a3m_equivalence_criterion.compared_element_types : LIST [1 : 1] OF a3ms_element_type_name := [etns_connected_face_set];
- SELF\a3m_equivalence_criterion.measured_data_type : a3ms_measured_data_type_name := mdns_boolean_value;
- SELF\a3m_equivalence_criterion.detected_difference_types : LIST [1 : 1] OF a3ms_detected_difference_type_name := [ddns_edge];
- SELF\a3m_equivalence_criterion.accuracy_types : LIST [0 : 0] OF a3ms_accuracy_type_name := [];
-END_ENTITY;
-
-ENTITY mismatch_of_underlying_face_geometry
- SUBTYPE OF (a3m_equivalence_criterion_of_detailed_shape_data_content);
- SELF\a3m_equivalence_criterion.assessment_specification : a3m_equivalence_assessment_by_logical_test;
-DERIVE
- SELF\a3m_equivalence_criterion.comparing_element_types : LIST [1 : 1] OF a3ms_element_type_name := [etns_connected_face_set];
- SELF\a3m_equivalence_criterion.compared_element_types : LIST [1 : 1] OF a3ms_element_type_name := [etns_connected_face_set];
- SELF\a3m_equivalence_criterion.measured_data_type : a3ms_measured_data_type_name := mdns_boolean_value;
- SELF\a3m_equivalence_criterion.detected_difference_types : LIST [1 : 1] OF a3ms_detected_difference_type_name := [ddns_face];
- SELF\a3m_equivalence_criterion.accuracy_types : LIST [0 : 0] OF a3ms_accuracy_type_name := [];
-END_ENTITY;
-
-ENTITY missing_assembly_constraint
- SUBTYPE OF (a3m_equivalence_criterion_of_assembly_data_structure);
- SELF\a3m_equivalence_criterion.assessment_specification : a3m_equivalence_assessment_by_logical_test;
-DERIVE
- SELF\a3m_equivalence_criterion.measured_data_type : a3ma_measured_data_type_name := mdna_boolean_value;
- SELF\a3m_equivalence_criterion.detected_difference_types : LIST [2 : 2] OF a3ma_detected_difference_type_name := [ddna_no_element,
- ddna_binary_assembly_constraint];
-END_ENTITY;
-
-ENTITY missing_component
- SUBTYPE OF (a3m_equivalence_criterion_of_assembly_data_structure);
- SELF\a3m_equivalence_criterion.assessment_specification : a3m_equivalence_assessment_by_logical_test;
-DERIVE
- SELF\a3m_equivalence_criterion.measured_data_type : a3ma_measured_data_type_name := mdna_boolean_value;
- SELF\a3m_equivalence_criterion.detected_difference_types : LIST [2 : 2] OF a3ma_detected_difference_type_name := [ddna_no_element,
- ddna_assembly_component_usage];
-END_ENTITY;
-
-ENTITY missing_edge
- SUBTYPE OF (a3m_equivalence_criterion_of_shape_data_structure);
- SELF\a3m_equivalence_criterion.assessment_specification : a3m_equivalence_assessment_by_logical_test;
-DERIVE
- SELF\a3m_equivalence_criterion.compared_element_types : LIST [1 : 1] OF a3ms_element_type_name := [etns_connected_edge_set];
- SELF\a3m_equivalence_criterion.measured_data_type : a3ms_measured_data_type_name := mdns_boolean_value;
- SELF\a3m_equivalence_criterion.detected_difference_types : LIST [2 : 2] OF a3ms_detected_difference_type_name := [ddns_no_element,
- ddns_edge];
- SELF\a3m_equivalence_criterion.accuracy_types : LIST [0 : 0] OF a3ms_accuracy_type_name := [];
-END_ENTITY;
-
-ENTITY missing_face
- SUBTYPE OF (a3m_equivalence_criterion_of_shape_data_structure);
- SELF\a3m_equivalence_criterion.assessment_specification : a3m_equivalence_assessment_by_logical_test;
-DERIVE
- SELF\a3m_equivalence_criterion.compared_element_types : LIST [1 : 1] OF a3ms_element_type_name := [etns_connected_face_set];
- SELF\a3m_equivalence_criterion.measured_data_type : a3ms_measured_data_type_name := mdns_boolean_value;
- SELF\a3m_equivalence_criterion.detected_difference_types : LIST [2 : 2] OF a3ms_detected_difference_type_name := [ddns_no_element,
- ddns_face];
- SELF\a3m_equivalence_criterion.accuracy_types : LIST [0 : 0] OF a3ms_accuracy_type_name := [];
-END_ENTITY;
-
-ENTITY mod_expression
- SUBTYPE OF (binary_numeric_expression);
-END_ENTITY;
-
-ENTITY model_geometric_view
- SUBTYPE OF (characterized_item_within_representation);
- SELF\characterized_item_within_representation.rep : draughting_model;
- SELF\characterized_item_within_representation.item : camera_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,
- '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.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.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',
- '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))
- 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
- | ('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
- 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,
- '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)) =
- 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') 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 := related_product_definition;
- root : product_definition := relating_product_definition;
-UNIQUE
- UR1: location;
-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 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: ('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)) 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',
- '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']);
-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: ('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)) 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',
- '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']);
-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: ('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)) 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',
- 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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: ('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)) 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',
- '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']);
-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: ('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)) 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',
- '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))
- 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: ('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)) 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(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',
- '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
- 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: ('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)) 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',
- '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']);
-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: ('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)) 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',
- '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']);
-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: ('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)) 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',
- 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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, '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.B_SPLINE_SURFACE_PATCH']);
- WR4: validate_accuracy_types(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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: ('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)) 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_OR_RECTANGULAR_COMPOSITE_SURFACE_SELECT']);
- 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;
-
-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: ('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)) 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.B_SPLINE_SURFACE_PATCH']);
- WR5: validate_accuracy_types(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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 (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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);
-DERIVE
- product_definition_occurrence_id : identifier := SELF\product_definition_relationship.related_product_definition\product_definition_occurrence.id;
-UNIQUE
- UR1: SELF\assembly_component_usage.reference_designator,
- SELF\product_definition_relationship.relating_product_definition;
- UR2: product_definition_occurrence_id, SELF\product_definition_relationship.relating_product_definition;
-END_ENTITY;
-
-ENTITY ngon_closed_profile
- 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(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;
- 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(impl_rep.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 = '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' 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(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'))) =
- 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
- | (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))) =
- 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
- | (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 = '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,
- ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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,
- ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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,
- ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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, '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.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, '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.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(['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(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)) =
- 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)))) =
- 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.fbsm_faces
- | NOT (SIZEOF(QUERY(fa
- <* cfs.cfs_faces
- | NOT (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FACE_SURFACE',
- '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 (('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))) =
- 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)))) =
- 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))) =
- 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',
- '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',
- '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
- 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
- ('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
- 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.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',
- '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(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',
- '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;
-
-ENTITY non_referenced_coordinate_system
- SUBTYPE OF (externally_conditioned_data_quality_criterion);
-WHERE
- WR1: validate_ecdq_inspected_elements_type(SELF,
- ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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: ('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;
-
-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, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.BOOLEAN_VALUE');
- WR2: validate_inspected_elements_type(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CLOSED_SHELL']);
- WR3: validate_locations_of_extreme_value_type(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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, '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.ORIENTED_EDGE']);
- WR4: validate_accuracy_types(SELF, []);
-END_ENTITY;
-
-ENTITY open_path
- SUBTYPE OF (path);
-DERIVE
- ne : INTEGER := SIZEOF(SELF\path.edge_list);
-WHERE
- WR1: (SELF\path.edge_list[1].edge_element.edge_start) :<>: (SELF\path.edge_list[ne].edge_element.edge_end);
-END_ENTITY;
-
-ENTITY open_path_profile
- 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(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);
- 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(impl_rep.used_representation.items) = 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(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.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')
- | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PATH_SHAPE_REPRESENTATION' IN
- TYPEOF(pdr.used_representation)))) =
- 1)))) =
- 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 = '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 <= 365}) OR
- (leap_year(SELF.year_component) AND {1 <= day_component <= 366});
-END_ENTITY;
-
-ENTITY ordinate_dimension
- SUBTYPE OF (projection_directed_callout);
-END_ENTITY;
-
-ENTITY organization;
- id : OPTIONAL identifier;
- name : label;
- description : OPTIONAL text;
-END_ENTITY;
-
-ENTITY organization_assignment
- ABSTRACT SUPERTYPE;
- assigned_organization : organization;
- role : organization_role;
-END_ENTITY;
-
-ENTITY organization_relationship;
- name : label;
- description : OPTIONAL text;
- relating_organization : organization;
- related_organization : organization;
-END_ENTITY;
-
-ENTITY organization_role;
- name : label;
-DERIVE
- description : text := get_description_value(SELF);
-WHERE
- WR1: SIZEOF(USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DESCRIPTION_ATTRIBUTE.DESCRIBED_ITEM')) <=
- 1;
-END_ENTITY;
-
-ENTITY organization_type;
- id : identifier;
- name : label;
- description : OPTIONAL text;
-END_ENTITY;
-
-ENTITY organization_type_assignment
- ABSTRACT SUPERTYPE;
- id : identifier;
- name : label;
- description : OPTIONAL text;
- assigned_organization_type : organization_type;
- role : organization_type_role;
-END_ENTITY;
-
-ENTITY organization_type_role;
- id : identifier;
- name : label;
- description : OPTIONAL text;
-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, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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 ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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 ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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 ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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 ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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 ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ORIENTED_PATH' IN TYPEOF(SELF.path_element));
-END_ENTITY;
-
-ENTITY oriented_surface
- SUBTYPE OF (surface);
- orientation : BOOLEAN;
-END_ENTITY;
-
-ENTITY oriented_tolerance_zone
- SUBTYPE OF (tolerance_zone_with_datum);
- orientation : oriented_tolerance_zone_type;
- angle : OPTIONAL plane_angle_measure_with_unit;
-WHERE
- WR1: (orientation <> oriented_tolerance_zone_type.angular) XOR EXISTS(angle);
-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, '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(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
- ({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, '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
- | ((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 = '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(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 = '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,
- '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.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,
- '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(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(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 = '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(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 = 'feature length')))) <=
- 1)))) =
- 0)))) =
- 0));
-END_ENTITY;
-
-ENTITY outside_profile
- SUBTYPE OF (feature_definition);
-WHERE
- 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(pdr.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,
- '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',
- '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 (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',
- '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))) =
- 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,
- '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
- (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
- <* 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
- ('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,
- '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 (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)))
- | (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 (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.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))) =
- 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 (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)))) =
- 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 (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)))) =
- 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 (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)))) =
- 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 (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.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,
- '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(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 = '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)) 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: ('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)) 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.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 ('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.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.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)
- | '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 TYPEOF(q))) >
- 0));
-END_ENTITY;
-
-ENTITY parallelism_tolerance
- SUBTYPE OF (geometric_tolerance_with_datum_reference);
-END_ENTITY;
-
-ENTITY parametric_representation_context
- SUBTYPE OF (representation_context);
-END_ENTITY;
-
-ENTITY partial_circular_profile
- 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(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);
- 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(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')
- | (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)) 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(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 = '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(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'] *
- 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 = '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: ('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)) 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',
- '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',
- '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;
-
-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: ('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)) 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',
- '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',
- '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;
-
-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: ('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)) 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',
- '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',
- '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;
-
-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: ('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)) 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',
- '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',
- '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;
-
-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: ('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)) 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',
- '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']);
- WR5: validate_accuracy_types(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.AREA_MEASURE']);
-END_ENTITY;
-
-ENTITY path
- SUPERTYPE OF (ONEOF(open_path, 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: 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CURVE' IN TYPEOF(SELF\mapped_item.mapping_target);
- WR2: 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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: ('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(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));
- 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' 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(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(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 = '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(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.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(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(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 = '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(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(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 = '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(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)))) =
- 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(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
- <* 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(['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;
-
-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')
- | '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)))) =
- 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)))) >=
- 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 :<>: 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',
- '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)))) =
- 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)))) =
- 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(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(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.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)))) =
- 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(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.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(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(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.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)))) =
- 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(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.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)))) =
- 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(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.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(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)))) =
- 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')
- | '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)))) =
- 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)))) >=
- 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 :<>: 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',
- '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: (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);
- 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(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(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.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)))) =
- 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(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(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.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)))) =
- 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(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.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)))) =
- 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: 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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 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
- | '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
- | '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 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, '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')) <=
- 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],
- 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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) *
- ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DIRECTION',
- 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.VECTOR']) >
- 0)) =
- 0;
-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
- 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
- SUBTYPE OF (component_terminal, physical_component_feature);
-END_ENTITY;
-
-ENTITY physical_element_usage
- SUBTYPE OF (breakdown_element_usage);
-END_ENTITY;
-
-ENTITY picture_representation
- SUBTYPE OF (presentation_view);
- SELF\representation.items : SET [2 : ?] OF picture_representation_item_select;
-INVERSE
- size : presentation_size FOR unit;
-WHERE
- WR1: SIZEOF(QUERY(item <* items | '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
- TYPEOF(se\styled_item.item)))) =
- 0;
-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
- | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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 ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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 | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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: 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANE_ANGLE_UNIT' IN
- TYPEOF(SELF\measure_with_unit.unit_component);
-END_ENTITY;
-
-ENTITY plane_angle_unit
- SUBTYPE OF (named_unit);
-WHERE
- WR1: (SELF\named_unit.dimensions.length_exponent = 0.0) AND (SELF\named_unit.dimensions.mass_exponent = 0.0) AND
- (SELF\named_unit.dimensions.time_exponent = 0.0) AND
- (SELF\named_unit.dimensions.electric_current_exponent = 0.0) AND
- (SELF\named_unit.dimensions.thermodynamic_temperature_exponent = 0.0) AND
- (SELF\named_unit.dimensions.amount_of_substance_exponent = 0.0) AND
- (SELF\named_unit.dimensions.luminous_intensity_exponent = 0.0);
-END_ENTITY;
-
-ENTITY plus_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_angle_representation
- SUBTYPE OF (representation);
- SELF\representation.items : SET [1 : 1] OF measure_representation_item;
-END_ENTITY;
-
-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))) >
- 0;
-END_ENTITY;
-
-ENTITY ply_orientation_angle
- SUBTYPE OF (representation_relationship);
- SELF\representation_relationship.rep_1 : reinforcement_orientation_basis;
- SELF\representation_relationship.rep_2 : ply_angle_representation;
-END_ENTITY;
-
-ENTITY pmi_requirement_item_association
- SUBTYPE OF (item_identified_representation_usage);
- requirement : characterized_object;
-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,
- '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,
- '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)) AND
- (sdr.relating_shape_aspect.description = 'linear')))) =
- 1)))) =
- 1)))) =
- 0);
- 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')
- | 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
- ({1 <= SIZEOF(pdr.used_representation.items) <= 2}))) =
- 1)) =
- 1;
- 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'))) =
- 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(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 = '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,
- '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',
- '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 (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')
- | ((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 (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,
- '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))))) =
- 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,
- '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))))) =
- 1)))) =
- 1)))) =
- 0);
- 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
- <* 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)))) =
- 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 (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)))
- | ('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(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')
- | (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 (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)) 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)) 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,
- '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
- (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(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')
- | ((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;
-
-ENTITY pocket_bottom
- SUBTYPE OF (shape_aspect);
-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(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 = '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(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(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(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 = '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(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));
- 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(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))) =
- 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(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 = '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))))) >=
- 1;
- 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']))) =
- 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_in_volume, 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_array
- SUBTYPE OF (compound_representation_item, geometric_representation_item);
- SELF\compound_representation_item.item_element : point_array_members;
-END_ENTITY;
-
-ENTITY point_cloud_dataset
- SUBTYPE OF (scanned_data_item);
- point_coordinates : LIST [1 : ?] OF LIST [3 : 3] OF REAL;
-END_ENTITY;
-
-ENTITY point_cloud_dataset_with_colours
- SUBTYPE OF (point_cloud_dataset);
- colour_indices : LIST [1 : ?] OF LIST [3 : 3] OF INTEGER;
-WHERE
- WR1: SIZEOF(colour_indices) = SIZEOF(SELF\point_cloud_dataset.point_coordinates);
-END_ENTITY;
-
-ENTITY point_cloud_dataset_with_intensities
- SUBTYPE OF (point_cloud_dataset);
- intensities : LIST [1 : ?] OF REAL;
-WHERE
- WR1: SIZEOF(intensities) = SIZEOF(SELF\point_cloud_dataset.point_coordinates);
-END_ENTITY;
-
-ENTITY point_cloud_dataset_with_normals
- SUBTYPE OF (point_cloud_dataset);
- normals : LIST [1 : ?] OF LIST [3 : 3] OF REAL;
-WHERE
- WR1: SIZEOF(normals) = SIZEOF(SELF\point_cloud_dataset.point_coordinates);
-END_ENTITY;
-
-ENTITY point_cloud_superdataset
- SUBTYPE OF (scanned_data_item);
- pts_per_sublist : INTEGER;
- sublists : LIST [2 : ?] OF point_cloud_dataset;
-WHERE
- WR1: consistent_sizes(SELF.pts_per_sublist, SELF.sublists);
-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
- (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PDGC_WITH_DIMENSION' IN TYPEOF(SELF)) AND
- (SIZEOF(SELF\explicit_constraint.constrained_elements) = 2));
-END_ENTITY;
-
-ENTITY point_in_volume
- SUBTYPE OF (point);
- basis_volume : volume;
- point_parameter_u : parameter_value;
- point_parameter_v : parameter_value;
- point_parameter_w : parameter_value;
-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 ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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 ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COMPOUND_REPRESENTATION_ITEM',
- 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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 : OPTIONAL marker_select;
- marker_size : OPTIONAL size_select;
- marker_colour : OPTIONAL colour;
-WHERE
- WR1: EXISTS(marker) OR EXISTS(marker_size) OR EXISTS(marker_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_11
- SUBTYPE OF (geometric_representation_item);
-WHERE
- WR1: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.AXIS2_PLACEMENT_3D' IN TYPEOF(SELF));
-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.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;
-
-ENTITY polar_point
- SUBTYPE OF (cartesian_point);
- r : length_measure;
- theta : plane_angle_measure;
-DERIVE
- SELF\cartesian_point.coordinates : LIST [2 : 2] OF length_measure := [r * COS(theta),r * SIN(theta)];
-WHERE
- WR1: r >= 0.0;
-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 (('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 ('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;
- WR4: SIZEOF(QUERY(q <* auxiliary_elements | q\geometric_representation_item.dim <> 3)) = 0;
-END_ENTITY;
-
-ENTITY positive_length_measure_with_unit
- SUBTYPE OF (length_measure_with_unit);
-WHERE
- WR1: 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POSITIVE_LENGTH_MEASURE' IN
- TYPEOF(SELF\measure_with_unit.value_component);
-END_ENTITY;
-
-ENTITY positive_plane_angle_measure_with_unit
- SUBTYPE OF (plane_angle_measure_with_unit);
-WHERE
- WR1: 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POSITIVE_PLANE_ANGLE_MEASURE' IN
- TYPEOF(SELF\measure_with_unit.value_component);
-END_ENTITY;
-
-ENTITY power_expression
- SUBTYPE OF (binary_numeric_expression);
-END_ENTITY;
-
-ENTITY power_measure_with_unit
- SUBTYPE OF (measure_with_unit);
-WHERE
- WR1: 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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 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, '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;
-
-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: ('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)) >
- 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: (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRESENTATION_REPRESENTATION' IN TYPEOF(unit)) AND
- item_in_context(size, unit\representation.context_of_items)) OR
- (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.AREA_IN_SET' IN TYPEOF(unit)) AND
- (SIZEOF(QUERY(ais
- <* unit\area_in_set.in_set.areas
- | NOT item_in_context(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
- <* styles
- | NOT (SIZEOF(QUERY(style2
- <* (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
- <* styles
- | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SURFACE_STYLE_USAGE' IN TYPEOF(style1))) <=
- 2;
- WR3: SIZEOF(QUERY(style1
- <* styles
- | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SURFACE_STYLE_USAGE' IN TYPEOF(style1)) AND
- (SIZEOF(QUERY(style2
- <* (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;
-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: 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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);
- SELF\compound_representation_item.item_element : compound_inner_area_boundary;
-DERIVE
- inner_boundary : compound_inner_area_boundary := SELF\compound_representation_item.item_element;
-WHERE
- 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',
- '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;
- 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 procedural_solid_representation_sequence
- SUBTYPE OF (procedural_shape_representation_sequence);
-WHERE
- WR1: 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SOLID_MODEL' IN TYPEOF(SELF);
-END_ENTITY;
-
-ENTITY process_operation
- SUBTYPE OF (action_method);
-END_ENTITY;
-
-ENTITY process_plan
- 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)) =
- 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
- ((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, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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, '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))))) =
- 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_equivalence_relationship;
- id : identifier;
- name : label;
- description : OPTIONAL text;
- product_data : equivalence_product_data_select;
- data_equivalence : data_equivalence_definition;
-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, 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, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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,
- 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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_resource
- SUBTYPE OF (action_resource, product_definition_formation);
-WHERE
- WR1: SIZEOF(USEDIN(SELF,
- 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.REQUIREMENT_FOR_ACTION_RESOURCE.RESOURCES')) >
- 0;
- WR2: SIZEOF(QUERY(prpc
- <* USEDIN(SELF\product_definition_formation.of_product,
- 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_RELATED_PRODUCT_CATEGORY.PRODUCTS')
- | prpc.name = 'part')) <>
- 0;
- WR3: SELF\action_resource.name = SELF\product_definition_formation.id;
- WR4: SELF\action_resource.description = SELF\product_definition_formation.description;
-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
- SUPERTYPE OF (product_definition_specified_occurrence ANDOR
- product_definition_occurrence_reference_with_local_representation);
- id : identifier;
- name : OPTIONAL label;
- description : OPTIONAL text;
- definition : OPTIONAL product_definition_or_reference_or_occurrence;
- quantity : OPTIONAL measure_with_unit;
-DERIVE
- descendant_occurrences : SET [0 : ?] OF product_definition_specified_occurrence := get_descendant_occurrences(SELF);
-INVERSE
- assembly_usages : SET [0:?] OF assembly_component_usage FOR related_product_definition;
- child_occurrences : SET [0:?] OF product_definition_specified_occurrence FOR occurrence_usage;
-WHERE
- WR1: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_SPECIFIED_OCCURRENCE' IN TYPEOF(SELF)) XOR
- (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_OCCURRENCE' IN TYPEOF(definition)) OR
- ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_OCCURRENCE_REFERENCE' IN
- TYPEOF(definition)));
- WR2: EXISTS(definition) OR
- (SIZEOF(USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CONFIGURATION_DESIGN.DESIGN')) > 0);
- WR3: (NOT ('NUMBER' IN TYPEOF(quantity.value_component))) OR (quantity.value_component > 0);
-END_ENTITY;
-
-ENTITY product_definition_occurrence_reference
- SUBTYPE OF (product_definition_reference);
- product_occurrence_id : identifier;
-END_ENTITY;
-
-ENTITY product_definition_occurrence_reference_with_local_representation
- SUBTYPE OF (product_definition_occurrence, generic_product_definition_reference);
-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_relationship_relationship;
- id : identifier;
- name : label;
- description : OPTIONAL text;
- relating : product_definition_relationship;
- related : product_definition_relationship;
-END_ENTITY;
-
-ENTITY product_definition_resource
- SUBTYPE OF (action_resource, product_definition);
-WHERE
- WR1: SIZEOF(USEDIN(SELF,
- 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.REQUIREMENT_FOR_ACTION_RESOURCE.RESOURCES')) >
- 0;
- WR2: SELF\product_definition.frame_of_reference\application_context_element.name IN
- ['part definition','part occurrence','physical occurrence'];
- WR3: SELF\action_resource.name = SELF\product_definition.name;
- WR4: SELF\action_resource.description = SELF\product_definition.description;
-END_ENTITY;
-
-ENTITY product_definition_shape
- SUBTYPE OF (property_definition);
-UNIQUE
- UR1: SELF\property_definition.definition;
-WHERE
- 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;
-
-ENTITY product_definition_specified_occurrence
- SUBTYPE OF (product_definition_occurrence);
- SELF\product_definition_occurrence.definition : product_definition_occurrence_or_reference;
- occurrence_usage : product_definition_occurrence_or_reference;
-UNIQUE
- UR1: occurrence_usage, id;
-WHERE
- WR1: SIZEOF(assembly_usages) = 0;
- WR2: acyclic_product_definition_specified_occurrence(SELF, SELF\product_definition_occurrence.definition);
-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, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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],
- 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_USAGE');
-END_ENTITY;
-
-ENTITY product_definition_usage_relationship
- SUBTYPE OF (product_definition_relationship_relationship);
- SELF\product_definition_relationship_relationship.relating : product_definition_usage;
- SELF\product_definition_relationship_relationship.related : product_definition_usage;
-WHERE
- WR1: relating.relating_product_definition :=: related.relating_product_definition;
-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_group
- SUBTYPE OF (group);
-END_ENTITY;
-
-ENTITY product_group_attribute_assignment
- SUBTYPE OF (group_assignment);
- SELF\group_assignment.assigned_group : product_group_attributes;
- attributes : SET [1 : 1] OF attribute_select;
-END_ENTITY;
-
-ENTITY product_group_attribute_set
- SUBTYPE OF (group_assignment);
- SELF\group_assignment.assigned_group : product_group;
- product_group_attributes : SET [1 : 1] OF product_group_attributes;
-END_ENTITY;
-
-ENTITY product_group_attributes
- SUBTYPE OF (group);
-END_ENTITY;
-
-ENTITY product_group_context
- SUBTYPE OF (descriptive_representation_item);
-END_ENTITY;
-
-ENTITY product_group_membership
- SUBTYPE OF (characterized_object, group_assignment);
- member : product_select;
-END_ENTITY;
-
-ENTITY product_group_membership_rules
- SUBTYPE OF (group_assignment);
- SELF\group_assignment.assigned_group : product_group;
- product_group_rules : SET [1 : 1] OF product_group_rules;
-END_ENTITY;
-
-ENTITY product_group_purpose
- SUBTYPE OF (descriptive_representation_item);
-END_ENTITY;
-
-ENTITY product_group_relationship
- SUBTYPE OF (group_relationship);
-END_ENTITY;
-
-ENTITY product_group_rule
- SUBTYPE OF (descriptive_representation_item);
-END_ENTITY;
-
-ENTITY product_group_rule_assignment
- SUBTYPE OF (group_assignment);
- SELF\group_assignment.assigned_group : product_group_rules;
- product_group_rules : SET [1 : ?] OF product_group_rule;
-END_ENTITY;
-
-ENTITY product_group_rules
- SUBTYPE OF (group);
-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,
- '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,
- '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
- ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_SPECIFICATION' IN TYPEOF(SELF));
-END_ENTITY;
-
-ENTITY product_in_attachment_slot
- SUBTYPE OF (product_definition_relationship);
-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,
- '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)) =
- 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
- ((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, '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 ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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_resource
- SUBTYPE OF (action_resource, product);
-WHERE
- WR1: SIZEOF(USEDIN(SELF,
- 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.REQUIREMENT_FOR_ACTION_RESOURCE.RESOURCES')) >
- 0;
- WR2: SIZEOF(QUERY(prpc
- <* USEDIN(SELF,
- 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_RELATED_PRODUCT_CATEGORY.PRODUCTS')
- | prpc.name = 'part')) <>
- 0;
- WR3: SELF\action_resource.name = SELF\product.name;
- WR4: SELF\action_resource.description = SELF\product.description;
-END_ENTITY;
-
-ENTITY product_specification
- SUBTYPE OF (product_identification, configurable_item);
-END_ENTITY;
-
-ENTITY profile_floor
- SUBTYPE OF (shape_aspect);
-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(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));
- 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(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))) =
- 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(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 = '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)))
- | (('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(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.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(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 = '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(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 = '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.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
- | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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, '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;
-
-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, '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);
- 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,
- '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'))) =
- 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)) AND
- (pdr.used_representation.name = 'maximum feature limit'))) >=
- 0;
-END_ENTITY;
-
-ENTITY pyramid_volume
- SUBTYPE OF (volume);
- position : axis2_placement_3d;
- xlength : positive_length_measure;
- ylength : positive_length_measure;
- height : positive_length_measure;
-END_ENTITY;
-
-ENTITY qualified_representation_item
- 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 TYPEOF(temp)) OR
- ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MATHS_VALUE_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 quasi_uniform_volume
- SUBTYPE OF (b_spline_volume);
-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 ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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.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: 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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
- | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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: 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.RATIO_UNIT' IN TYPEOF(SELF\measure_with_unit.unit_component);
-END_ENTITY;
-
-ENTITY ratio_unit
- SUBTYPE OF (named_unit);
-WHERE
- WR1: (SELF\named_unit.dimensions.length_exponent = 0.0) AND (SELF\named_unit.dimensions.mass_exponent = 0.0) AND
- (SELF\named_unit.dimensions.time_exponent = 0.0) AND
- (SELF\named_unit.dimensions.electric_current_exponent = 0.0) AND
- (SELF\named_unit.dimensions.thermodynamic_temperature_exponent = 0.0) AND
- (SELF\named_unit.dimensions.amount_of_substance_exponent = 0.0) AND
- (SELF\named_unit.dimensions.luminous_intensity_exponent = 0.0);
-END_ENTITY;
-
-ENTITY rational_b_spline_curve
- SUBTYPE OF (b_spline_curve);
- weights_data : LIST [2 : ?] OF REAL;
-DERIVE
- weights : ARRAY [0 : upper_index_on_control_points] OF REAL := list_to_array(weights_data, 0,
- upper_index_on_control_points);
-WHERE
- WR1: SIZEOF(weights_data) = SIZEOF(SELF\b_spline_curve.control_points_list);
- WR2: curve_weights_positive(SELF);
-END_ENTITY;
-
-ENTITY rational_b_spline_surface
- SUBTYPE OF (b_spline_surface);
- weights_data : LIST [2 : ?] OF LIST [2 : ?] OF REAL;
-DERIVE
- weights : ARRAY [0 : u_upper] OF ARRAY [0 : v_upper] OF REAL := make_array_of_array(weights_data, 0, u_upper, 0,
- v_upper);
-WHERE
- WR1: (SIZEOF(weights_data) = SIZEOF(SELF\b_spline_surface.control_points_list)) AND
- (SIZEOF(weights_data[1]) = SIZEOF(SELF\b_spline_surface.control_points_list[1]));
- WR2: surface_weights_positive(SELF);
-END_ENTITY;
-
-ENTITY rational_b_spline_volume
- SUBTYPE OF (b_spline_volume);
- weights_data : LIST [2 : ?] OF LIST [2 : ?] OF LIST [2 : ?] OF REAL;
-DERIVE
- weights : ARRAY [0 : u_upper] OF ARRAY [0 : v_upper] OF ARRAY [0 : w_upper] OF REAL := make_array_of_array_of_array(weights_data,
- 0,
- u_upper,
- 0,
- v_upper,
- 0,
- w_upper);
-WHERE
- WR1: (SIZEOF(weights_data) = SIZEOF(SELF\b_spline_volume.control_points_list)) AND
- (SIZEOF(weights_data[1]) = SIZEOF(SELF\b_spline_volume.control_points_list[1])) AND
- (SIZEOF(weights_data[1][1]) = SIZEOF(SELF\b_spline_volume.control_points_list[1][1]));
- WR2: volume_weights_positive(SELF);
-END_ENTITY;
-
-ENTITY rational_locally_refined_spline_curve
- SUBTYPE OF (locally_refined_spline_curve);
- weights_data : LIST [2 : ?] OF REAL;
-WHERE
- WR1: SIZEOF(weights_data) = SIZEOF(SELF\locally_refined_spline_curve.control_points_list);
- WR2: weights_positive(SELF.weights_data);
-END_ENTITY;
-
-ENTITY rational_locally_refined_spline_surface
- SUBTYPE OF (locally_refined_spline_surface);
- weights_data : LIST [4 : ?] OF REAL;
-WHERE
- WR1: SIZEOF(weights_data) = SIZEOF(SELF\locally_refined_spline_surface.control_points_list);
- WR2: weights_positive(SELF.weights_data);
-END_ENTITY;
-
-ENTITY rational_locally_refined_spline_volume
- SUBTYPE OF (locally_refined_spline_volume);
- weights_data : LIST [8 : ?] OF REAL;
-WHERE
- WR1: SIZEOF(weights_data) = SIZEOF(SELF\locally_refined_spline_volume.control_points_list);
- WR2: weights_positive(SELF.weights_data);
-END_ENTITY;
-
-ENTITY rational_representation_item
- SUBTYPE OF (representation_item, slash_expression);
-WHERE
- 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;
-
-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: 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FEATURE_COMPONENT_DEFINITION' IN
- TYPEOF(SELF.of_shape.definition);
- 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.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN
- TYPEOF(pdr.used_representation))) =
- 1))) =
- 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(impl_rep.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)) =
- 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' 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(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 = '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(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 = '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(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 = '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,
- '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') 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 = '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 = '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.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')
- | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN
- TYPEOF(pdr.used_representation)))) =
- 1)))) =
- 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(impl_rep.used_representation.items) = 5)))) =
- 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(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')))) =
- 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.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')))) =
- 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
- | ((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 = '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(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 = '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' IN
- TYPEOF(it)) AND
- (it.name = 'orientation')))) =
- 1)))) =
- 0)))) =
- 0);
-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 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: (('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 = (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 reinforcement_orientation_basis
- SUBTYPE OF (representation);
- SELF\representation.items : SET [1 : 1] OF basis_11_direction_member;
-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, '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);
- 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,
- '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'))) =
- 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.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.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',
- 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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.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, '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);
- 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) AND
- (fcr.name = 'pattern basis')))) =
- 1);
- 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 ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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: 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.NEUTRAL_SKETCH_REPRESENTATION' IN
- TYPEOF(map.mapped_representation);
- WR2: 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.AXIS2_PLACEMENT_2D' IN TYPEOF(map.mapping_origin);
- WR3: 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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(['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(reinforcement_orientation_basis, ply_angle_representation)) ANDOR
- (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, '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')) <=
- 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_context_reference;
- context_identifier : identifier;
-INVERSE
- representations_in_context : SET [1:?] OF representation_reference FOR context_of_items;
-END_ENTITY;
-
-ENTITY representation_item
- SUPERTYPE OF ((ONEOF(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(mapping_origin, mapped_representation\representation.context_of_items);
-END_ENTITY;
-
-ENTITY representation_proxy_item
- SUBTYPE OF (representation_item);
- item : representation_proxy_select;
-END_ENTITY;
-
-ENTITY representation_reference;
- id : identifier;
- context_of_items : representation_context_reference;
-END_ENTITY;
-
-ENTITY representation_relationship;
- name : label;
- description : OPTIONAL text;
- rep_1 : representation_or_representation_reference;
- rep_2 : representation_or_representation_reference;
-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;
- WR2: NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ITEM_DEFINED_TRANSFORMATION' IN
- TYPEOF(transformation_operator)) OR
- (item_in_context(transformation_operator\item_defined_transformation.transform_item_1,
- SELF\representation_relationship.rep_1.context_of_items) AND
- item_in_context(transformation_operator\item_defined_transformation.transform_item_2,
- 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: 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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,
- 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ACTION_ASSIGNMENT.ASSIGNED_ACTION')
- | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.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
- ('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')
- | (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 :=:
- 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')) =
- 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.0));
-END_ENTITY;
-
-ENTITY revolved_face_solid
- SUBTYPE OF (swept_face_solid);
- axis : axis1_placement;
- angle : plane_angle_measure;
-DERIVE
- axis_line : line := representation_item('') || geometric_representation_item() || curve() ||
- line(axis.location,
- representation_item('') || geometric_representation_item() || vector(axis.z, 1.0));
-END_ENTITY;
-
-ENTITY revolved_face_solid_with_trim_conditions
- SUBTYPE OF (revolved_face_solid);
- first_trim_condition : trim_condition_select;
- second_trim_condition : trim_condition_select;
-WHERE
- WR1: NOT (('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))) 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, '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);
- 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(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 = 'radius')))) =
- 1)))) =
- 0)))) =
- 0);
- 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,
- '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.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,
- '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') 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)))) =
- 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,
- '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)))) =
- 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,
- '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',
- '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)))) =
- 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)) 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,
- '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,
- '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.RIB_TOP_FLOOR' IN
- TYPEOF(sdr.relating_shape_aspect)) AND
- ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.RIB_TOP' IN
- TYPEOF(sdr.related_shape_aspect.of_shape.definition))))) =
- 1))) =
- 1))) =
- 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 = '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)) AND
- (pdr.used_representation.name = 'maximum feature limit'))) >=
- 0;
-END_ENTITY;
-
-ENTITY rib_top_floor
- SUBTYPE OF (shape_aspect);
-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: 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
- ('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))))) >=
- 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(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(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 = '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,
- '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)) =
- 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.0 <= ltx) AND (ltx < x));
-END_ENTITY;
-
-ENTITY right_circular_cone
- SUBTYPE OF (geometric_representation_item);
- position : axis1_placement;
- height : positive_length_measure;
- radius : length_measure;
- semi_angle : plane_angle_measure;
-WHERE
- WR1: radius >= 0.0;
-END_ENTITY;
-
-ENTITY right_circular_cylinder
- SUBTYPE OF (geometric_representation_item);
- position : axis1_placement;
- height : positive_length_measure;
- radius : positive_length_measure;
-END_ENTITY;
-
-ENTITY right_to_usage_association
- SUBTYPE OF (action_method_relationship);
- SELF\action_method_relationship.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: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EXPLICIT_ROUND_HOLE' IN TYPEOF(SELF)) XOR
- (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,
- '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)) AND
- (sdr.name = 'diameter')))) =
- 1)))) =
- 1)))) =
- 0);
- WR2: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EXPLICIT_ROUND_HOLE' IN TYPEOF(SELF)) XOR
- (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,
- '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.name = 'hole depth') AND
- (sdr.relating_shape_aspect.description = 'linear')))) =
- 1)))) =
- 1)))) =
- 0);
- WR3: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EXPLICIT_ROUND_HOLE' IN TYPEOF(SELF)) XOR
- (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,
- '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.HOLE_BOTTOM' 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);
- WR4: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EXPLICIT_ROUND_HOLE' IN TYPEOF(SELF)) XOR
- (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')
- | ((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.ROUND_HOLE' IN
- TYPEOF(fcr.related_shape_aspect.of_shape.definition))))) =
- 1)))) <=
- 1)))) =
- 0);
- WR5: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EXPLICIT_ROUND_HOLE' IN TYPEOF(SELF)) XOR
- (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;
-
-ENTITY rounded_end
- SUBTYPE OF (feature_definition);
-WHERE
- WR1: (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);
- 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,
- '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))))) =
- 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,
- '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)) AND
- (pdr.used_representation.name = 'maximum feature limit'))) >=
- 0;
-END_ENTITY;
-
-ENTITY rounded_u_profile
- 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(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);
- 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(impl_rep.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
- <* 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(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 = '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 = '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(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 = '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 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: ('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)) 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_as_external_item_assignment
- SUBTYPE OF (external_identification_assignment);
- items : SET [0 : ?] OF same_as_item;
-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 scan_3d_model
- SUBTYPE OF (scanned_data_item);
- scanner_info : SET [1 : ?] OF scanner_property;
- scanned_points : SET [1 : ?] OF scanned_data_item;
-WHERE
- WR1: SIZEOF(QUERY(tmp
- <* scanned_points
- | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SCAN_3D_MODEL' IN TYPEOF(tmp))) =
- 0;
-END_ENTITY;
-
-ENTITY scan_data_shape_representation
- SUBTYPE OF (shape_representation);
- SELF\representation.items : SET [1 : ?] OF scanned_data_item;
-WHERE
- WR1: 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.GLOBAL_UNIT_ASSIGNED_CONTEXT' IN
- TYPEOF(SELF\representation.context_of_items);
-END_ENTITY;
-
-ENTITY scanned_data_item
- SUPERTYPE OF (ONEOF(point_cloud_dataset, point_cloud_superdataset, triangulated_point_cloud_dataset, scan_3d_model))
- SUBTYPE OF (geometric_representation_item);
-WHERE
- WR1: SIZEOF(QUERY(using_rep
- <* using_representations(SELF)
- | NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SCAN_DATA_SHAPE_REPRESENTATION' IN
- TYPEOF(using_rep)))) =
- 0;
-END_ENTITY;
-
-ENTITY scanner_basic_properties
- SUBTYPE OF (scanner_property);
- scanner_identification : label;
- scanner_location : axis2_placement_3d;
- scanner_uncertainty : OPTIONAL positive_length_measure;
-END_ENTITY;
-
-ENTITY scanner_property
- ABSTRACT SUPERTYPE
- SUBTYPE OF (representation_item);
-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 ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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: 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PCURVE' IN TYPEOF(SELF\surface_curve.associated_geometry[1]);
- WR4: 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PCURVE' IN TYPEOF(SELF\surface_curve.associated_geometry[2]);
-END_ENTITY;
-
-ENTITY seam_edge
- SUBTYPE OF (oriented_edge);
- pcurve_reference : pcurve;
-WHERE
- WR1: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EDGE_CURVE' IN TYPEOF(edge_element)) AND
- ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SEAM_CURVE' IN TYPEOF(edge_element\edge_curve.edge_geometry));
- WR2: pcurve_reference IN edge_element\edge_curve.edge_geometry\surface_curve.associated_geometry;
-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, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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, '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',
- '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))
- 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, '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.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;
-
-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, '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.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;
-
-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, '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',
- '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;
-
-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(shape_aspect_occurrence, component_path_shape_aspect) ANDOR constituent_shape_aspect) ANDOR
- (ONEOF(harness_node, harness_segment)) ANDOR
- (ONEOF(contacting_feature, datum, datum_feature, datum_target, datum_system,
- general_datum_reference)) ANDOR
- (ONEOF(assembly_shape_constraint, assembly_shape_joint, connectivity_definition, contact_feature,
- transport_feature)));
- 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, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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_occurrence
- SUBTYPE OF (shape_aspect);
- definition : shape_aspect_or_characterized_object;
-WHERE
- WR1: acyclic_shape_aspect_occurrence(SELF, definition);
-END_ENTITY;
-
-ENTITY shape_aspect_relationship
- SUPERTYPE OF (ONEOF(assembly_shape_joint_item_relationship, assembly_shape_constraint_item_relationship,
- connectivity_definition_item_relationship, shape_feature_fit_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, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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: ('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 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
- | '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))
- 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.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
- 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
- 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
- | '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.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: ('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
- | ('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
- (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(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 :=:
- 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)) 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: ('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;
-
-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_feature_definition_element_relationship
- SUBTYPE OF (shape_aspect_relationship, characterized_object);
-DERIVE
- SELF\characterized_object.name : label := SELF\shape_aspect_relationship.name;
- SELF\characterized_object.description : text := SELF\shape_aspect_relationship.description;
-END_ENTITY;
-
-ENTITY shape_feature_definition_fit_relationship
- SUBTYPE OF (shape_feature_definition_relationship);
-END_ENTITY;
-
-ENTITY shape_feature_definition_relationship
- SUBTYPE OF (characterized_object_relationship, characterized_object);
- SELF\characterized_object_relationship.relating_object : shape_feature_definition;
- SELF\characterized_object_relationship.related_object : shape_feature_definition;
-DERIVE
- SELF\characterized_object.name : label := SELF\characterized_object_relationship.name;
- SELF\characterized_object.description : text := SELF\characterized_object_relationship.description;
-END_ENTITY;
-
-ENTITY shape_feature_fit_relationship
- SUBTYPE OF (shape_aspect_relationship, characterized_object);
-DERIVE
- SELF\characterized_object.name : label := SELF\shape_aspect_relationship.name;
- SELF\characterized_object.description : text := SELF\shape_aspect_relationship.description;
-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_reference
- SUBTYPE OF (representation_reference);
-END_ENTITY;
-
-ENTITY shape_representation_relationship
- SUBTYPE OF (representation_relationship);
-WHERE
- WR1: SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION',
- 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_REFERENCE'] *
- (TYPEOF(SELF\representation_relationship.rep_1) + TYPEOF(SELF\representation_relationship.rep_2))) >=
- 1;
-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(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.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)) =
- 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
- 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(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))) =
- 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
- 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(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
- | ('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)))) =
- 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))) =
- 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
- 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
- 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)))) =
- 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: ('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)) 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']);
- 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 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: ('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)) 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.B_SPLINE_CURVE_SEGMENT']);
- WR5: validate_accuracy_types(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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: ('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)) 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, []);
- WR5: validate_accuracy_types(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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 (('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))
- 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 simplified_counterbore_hole_definition
- SUBTYPE OF (counterbore_hole_definition);
-WHERE
- WR1: SIZEOF(SELF\explicit_composite_hole.placement\representation.items) = 1;
-END_ENTITY;
-
-ENTITY simplified_counterdrill_hole_definition
- SUBTYPE OF (counterdrill_hole_definition);
-WHERE
- WR1: SIZEOF(SELF\explicit_composite_hole.placement\representation.items) = 1;
-END_ENTITY;
-
-ENTITY simplified_countersink_hole_definition
- SUBTYPE OF (countersink_hole_definition);
-WHERE
- WR1: SIZEOF(SELF\explicit_composite_hole.placement\representation.items) = 1;
-END_ENTITY;
-
-ENTITY simplified_spotface_hole_definition
- SUBTYPE OF (spotface_hole_definition, simplified_counterbore_hole_definition);
-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
- | ('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 | 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 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
- | ('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)))) =
- 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(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: definition;
-END_ENTITY;
-
-ENTITY single_texture_style_tessellation_specification
- SUBTYPE OF (texture_style_tessellation_specification);
- texture_image : label;
- texture_coordinates : LIST [1 : ?] OF LIST [2 : 2] OF non_negative_real;
- texture_format : texture_file_type;
- repeating_pattern : BOOLEAN;
-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, '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;
- 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,
- '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',
- '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,
- '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)))) =
- 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,
- '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))))
- | ((('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))))) =
- 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
- <* 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))))
- | ((('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;
- 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,
- '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))))
- | ((('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(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,
- '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)) 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)) AND
- (pdr.used_representation.name = 'maximum feature limit')))) >=
- 0;
-END_ENTITY;
-
-ENTITY slot_end
- SUBTYPE OF (shape_aspect);
-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(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)))) =
- 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(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 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(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 = '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(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 = '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(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.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(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))) AND
- ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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: ('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)) 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']);
- WR4: validate_locations_of_extreme_value_type(SELF, []);
- WR5: validate_accuracy_types(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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: ('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)) 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']);
- WR4: validate_locations_of_extreme_value_type(SELF, []);
- WR5: validate_accuracy_types(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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: ('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)) 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.B_SPLINE_SURFACE_PATCH']);
- WR5: validate_accuracy_types(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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: ('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)) 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');
- WR3: validate_inspected_elements_type(SELF, ['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.VOLUME_MEASURE']);
-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: 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SOLID_ANGLE_UNIT' IN
- TYPEOF(SELF\measure_with_unit.unit_component);
-END_ENTITY;
-
-ENTITY solid_angle_unit
- SUBTYPE OF (named_unit);
-WHERE
- WR1: (SELF\named_unit.dimensions.length_exponent = 0.0) AND (SELF\named_unit.dimensions.mass_exponent = 0.0) AND
- (SELF\named_unit.dimensions.time_exponent = 0.0) AND
- (SELF\named_unit.dimensions.electric_current_exponent = 0.0) AND
- (SELF\named_unit.dimensions.thermodynamic_temperature_exponent = 0.0) AND
- (SELF\named_unit.dimensions.amount_of_substance_exponent = 0.0) AND
- (SELF\named_unit.dimensions.luminous_intensity_exponent = 0.0);
-END_ENTITY;
-
-ENTITY solid_curve_font
- SUBTYPE OF (pre_defined_curve_font);
-END_ENTITY;
-
-ENTITY solid_model
- SUPERTYPE OF (ONEOF(csg_solid, manifold_solid_brep, swept_face_solid, swept_area_solid, swept_disk_solid,
- solid_replica))
- SUBTYPE OF (geometric_representation_item);
-END_ENTITY;
-
-ENTITY solid_replica
- SUBTYPE OF (solid_model);
- parent_solid : solid_model;
- transformation : cartesian_transformation_operator_3d;
-WHERE
- WR1: acyclic_solid_replica(SELF, parent_solid);
- WR2: parent_solid\geometric_representation_item.dim = 3;
-END_ENTITY;
-
-ENTITY solid_with_angle_based_chamfer
- SUBTYPE OF (solid_with_chamfered_edges);
- offset_distance : positive_length_measure;
- left_offset : BOOLEAN;
- offset_angle : positive_plane_angle_measure;
-END_ENTITY;
-
-ENTITY solid_with_chamfered_edges
- ABSTRACT SUPERTYPE OF (ONEOF(solid_with_single_offset_chamfer, solid_with_double_offset_chamfer,
- solid_with_angle_based_chamfer))
- SUBTYPE OF (edge_blended_solid);
-END_ENTITY;
-
-ENTITY solid_with_circular_pattern
- SUPERTYPE OF (solid_with_incomplete_circular_pattern)
- SUBTYPE OF (solid_with_shape_element_pattern);
- replicate_count : positive_integer;
- angular_spacing : plane_angle_measure;
- radial_alignment : BOOLEAN;
- reference_point : point;
-END_ENTITY;
-
-ENTITY solid_with_circular_pocket
- SUBTYPE OF (solid_with_pocket);
- pocket_radius : positive_length_measure;
-WHERE
- WR1: SELF\solid_with_pocket.floor_blend_radius <= pocket_radius;
-END_ENTITY;
-
-ENTITY solid_with_circular_protrusion
- SUBTYPE OF (solid_with_protrusion);
- protrusion_radius : positive_length_measure;
-END_ENTITY;
-
-ENTITY solid_with_constant_radius_edge_blend
- SUBTYPE OF (edge_blended_solid);
- radius : positive_length_measure;
-END_ENTITY;
-
-ENTITY solid_with_depression
- ABSTRACT SUPERTYPE OF (solid_with_through_depression ANDOR
- ONEOF(solid_with_hole, solid_with_pocket, 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: ('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)) 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.MANIFOLD_SOLID_BREP']);
- WR4: validate_locations_of_extreme_value_type(SELF, []);
- WR5: validate_accuracy_types(SELF, []);
-END_ENTITY;
-
-ENTITY solid_with_general_pocket
- SUBTYPE OF (solid_with_pocket);
- profile : positioned_sketch;
- reference_point : point;
-WHERE
- 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;
-
-ENTITY solid_with_general_protrusion
- SUBTYPE OF (solid_with_protrusion);
- profile : positioned_sketch;
- reference_point : point;
-WHERE
- 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;
-
-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 ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SOLID_WITH_THROUGH_DEPRESSION' IN TYPEOF(SELF));
-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_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, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.BOOLEAN_VALUE');
- WR2: validate_inspected_elements_type(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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 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,
- 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.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)) =
- 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, '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);
- 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
- | ((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 = '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(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'] *
- 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_point
- SUBTYPE OF (cartesian_point);
- r : length_measure;
- theta : plane_angle_measure;
- phi : plane_angle_measure;
-DERIVE
- SELF\cartesian_point.coordinates : LIST [3 : 3] OF length_measure := [r * SIN(theta) * COS(phi),
- r * SIN(theta) * SIN(phi),
- r * COS(theta)];
-WHERE
- WR1: r >= 0.0;
-END_ENTITY;
-
-ENTITY spherical_surface
- SUBTYPE OF (elementary_surface);
- radius : positive_length_measure;
-END_ENTITY;
-
-ENTITY spherical_volume
- SUBTYPE OF (volume);
- position : axis2_placement_3d;
- radius : positive_length_measure;
-END_ENTITY;
-
-ENTITY spotface_definition
- SUBTYPE OF (explicit_round_hole);
- spotface_radius : positive_length_measure_with_unit;
- spotface_radius_tolerance : OPTIONAL tolerance_value;
-WHERE
- WR1: 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT' IN
- TYPEOF(spotface_radius_tolerance\tolerance_value.lower_bound);
- WR2: 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT' IN
- TYPEOF(spotface_radius_tolerance\tolerance_value.upper_bound);
-END_ENTITY;
-
-ENTITY spotface_hole_definition
- SUBTYPE OF (counterbore_hole_definition);
- SELF\counterbore_hole_definition.counterbore : LIST [1 : ?] OF UNIQUE spotface_definition;
-DERIVE
- spotface : LIST [1 : ?] OF UNIQUE spotface_definition := SELF\counterbore_hole_definition.counterbore;
-END_ENTITY;
-
-ENTITY spotface_occurrence
- SUBTYPE OF (counterbore_hole_occurrence);
- SELF\counterbore_hole_occurrence.definition : spotface_hole_definition;
-END_ENTITY;
-
-ENTITY spotface_occurrence_in_assembly
- SUBTYPE OF (counterbore_hole_occurrence_in_assembly);
- SELF\counterbore_hole_occurrence.definition : spotface_hole_definition;
-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: 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FEATURE_COMPONENT_DEFINITION' IN
- TYPEOF(SELF.of_shape.definition);
- 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.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN
- TYPEOF(pdr.used_representation))) =
- 1))) =
- 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(impl_rep.used_representation.items) >= 4) AND
- (SIZEOF(impl_rep.used_representation.items) <= 7)))) =
- 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 = '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' 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(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 = '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(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 = '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(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 = '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(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'] *
- 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(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'] *
- 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 = '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(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 = '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_definition_to_state_assignment_relationship
- SUBTYPE OF (ascribable_state_relationship);
- relation_type : STRING;
-WHERE
- WR1: acyclic_state_definition_to_state_assignment_relationship(SELF,
- [SELF\ascribable_state_relationship.related_ascribable_state],
- 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.STATE_DEFINITION_TO_STATE_ASSIGNMENT_RELATIONSHIP');
-END_ENTITY;
-
-ENTITY state_observed;
- name : label;
- description : OPTIONAL text;
-END_ENTITY;
-
-ENTITY state_observed_assignment
- ABSTRACT SUPERTYPE;
- assigned_state_observed : state_observed;
- role : state_observed_role;
-END_ENTITY;
-
-ENTITY state_observed_relationship;
- name : label;
- description : OPTIONAL text;
- relating_state_observed : SET [1 : ?] OF state_observed;
- related_state_observed : SET [1 : ?] OF state_observed;
-END_ENTITY;
-
-ENTITY state_observed_role;
- name : label;
- description : OPTIONAL text;
-END_ENTITY;
-
-ENTITY state_predicted
- SUBTYPE OF (state_observed);
-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 statechar_applied_object
- SUBTYPE OF (characterized_object, state_observed_assignment);
-END_ENTITY;
-
-ENTITY statechar_object
- SUBTYPE OF (characterized_object, state_observed);
-END_ENTITY;
-
-ENTITY statechar_relationship_object
- SUBTYPE OF (characterized_object, state_observed_relationship);
-END_ENTITY;
-
-ENTITY statechar_type_applied_object
- SUBTYPE OF (characterized_object, state_type_assignment);
-END_ENTITY;
-
-ENTITY statechar_type_object
- SUBTYPE OF (characterized_object, state_type);
-END_ENTITY;
-
-ENTITY statechar_type_relationship_object
- SUBTYPE OF (characterized_object, state_type_relationship);
-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: ('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)) 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.EDGE_LOOP']);
- WR4: validate_locations_of_extreme_value_type(SELF,
- ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ORIENTED_EDGE']);
- WR5: validate_accuracy_types(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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: ('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)) 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.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))
- SUBTYPE OF (inapt_topology_and_geometry_relationship);
-END_ENTITY;
-
-ENTITY step
- SUBTYPE OF (feature_definition);
-WHERE
- WR1: (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);
- 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,
- '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);
- 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,
- '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.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)) 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
- (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;
-
-ENTITY straightness_tolerance
- SUBTYPE OF (geometric_tolerance);
-WHERE
- WR1: NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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 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',
- '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','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)) 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)) 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.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.DIMENSION_CALLOUT_COMPONENT_RELATIONSHIP' IN
- TYPEOF(dcr)) AND
- (dcr.name = 'suffix'))) =
- 1);
-END_ENTITY;
-
-ENTITY structured_message
- SUBTYPE OF (product);
-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 [0 : ?] OF presentation_style_assignment;
- item : styled_item_target;
-WHERE
- WR1: (SIZEOF(styles) = 0) AND
- ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.STYLED_TESSELLATED_ITEM_WITH_COLOURS' IN TYPEOF(SELF)) OR
- (SIZEOF(styles) = 1) OR
- (SIZEOF(styles) > 1) AND
- (SIZEOF(QUERY(pres_style
- <* 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
- ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CONTEXT_DEPENDENT_OVER_RIDING_STYLED_ITEM' IN TYPEOF(SELF));
-END_ENTITY;
-
-ENTITY styled_tessellated_item_with_colours
- SUBTYPE OF (styled_item);
- SELF\styled_item.item : tessellated_surface_item;
- colour_type : colour_type_enum;
- colour_values : LIST [1 : ?] OF LIST [3 : 4] OF unsigned_8_bit_integer;
-DERIVE
- coloured_coordinate_values : coordinates_list := get_coordinate_values(item);
-WHERE
- WR1: SIZEOF(SELF\styled_item.styles) = 0;
- WR2: ((colour_type = rgb8) AND (SIZEOF(QUERY(clist <* colour_values | NOT (SIZEOF(clist) = 3))) = 0)) OR
- ((colour_type = rgbt8) AND (SIZEOF(QUERY(clist <* colour_values | NOT (SIZEOF(clist) = 4))) = 0));
- WR3: SIZEOF(colour_values) = coloured_coordinate_values\coordinates_list.npoints;
-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: (('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 <* 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: ('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);
- 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 summary_report_request_with_number_of_instances
- SUBTYPE OF (data_equivalence_report_request);
- report_request_type : SET [1 : 3] OF summary_report_style_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(['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)
- 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: ('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
- (master_representation <> pcurve_s2);
- WR4: NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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 ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SURFACE_CURVE' IN TYPEOF(directrix))) OR
- (reference_surface IN (directrix\surface_curve.basis_surface));
-END_ENTITY;
-
-ENTITY surface_curve_swept_surface
- SUBTYPE OF (swept_surface);
- directrix : curve;
- reference_surface : surface;
-WHERE
- 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;
-
-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
- (('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);
- 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.0));
-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 ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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 ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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_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
- <* styles
- | SIZEOF(QUERY(style2 <* 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(direction_counts) = 1) XOR (TYPEOF(direction_counts[1]) <> TYPEOF(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(properties) = 1) XOR (TYPEOF(properties[1]) <> TYPEOF(properties[2]));
-END_ENTITY;
-
-ENTITY surface_style_segmentation_curve
- SUBTYPE OF (founded_item);
- style_of_segmentation_curve : curve_or_render;
-END_ENTITY;
-
-ENTITY surface_style_silhouette
- SUBTYPE OF (founded_item);
- style_of_silhouette : curve_or_render;
-END_ENTITY;
-
-ENTITY surface_style_transparent;
- transparency : REAL;
-WHERE
- WR1: {0.0 <= transparency <= 1.0};
-END_ENTITY;
-
-ENTITY surface_style_usage
- SUBTYPE OF (founded_item);
- side : surface_side;
- style : surface_side_style_select;
-END_ENTITY;
-
-ENTITY surface_texture_representation
- SUBTYPE OF (representation);
-WHERE
- WR1: SIZEOF(QUERY(i
- <* SELF.items
- | SIZEOF(['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
- | ('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)) =
- 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.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,
- '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.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: ('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)) 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.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: ('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)) 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']);
- WR4: validate_locations_of_extreme_value_type(SELF,
- ['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;
-
-ENTITY surfaced_open_shell
- SUBTYPE OF (open_shell);
-WHERE
- WR1: SIZEOF(QUERY(q
- <* SELF\connected_face_set.cfs_faces
- | NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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: 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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: 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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, surface_curve_swept_surface,
- fixed_reference_swept_surface))
- 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 ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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_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) *
- ['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' IN TYPEOF(mirror_element)));
-END_ENTITY;
-
-ENTITY symmetry_tolerance
- SUBTYPE OF (geometric_tolerance_with_datum_reference);
-END_ENTITY;
-
-ENTITY system_breakdown_context
- SUBTYPE OF (breakdown_context);
-END_ENTITY;
-
-ENTITY system_element_usage
- SUBTYPE OF (breakdown_element_usage);
-END_ENTITY;
-
-ENTITY table_representation_item
- SUBTYPE OF (compound_representation_item);
-WHERE
- 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)) <>
- 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,
- '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.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: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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, '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);
- 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(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(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.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(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 = '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(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.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(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'))) =
- 1)))) =
- 0));
-END_ENTITY;
-
-ENTITY tee_profile
- 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(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;
- 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(impl_rep.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)) =
- 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' 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(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 = '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(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 = '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(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 = '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(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 = '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(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 = '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(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 = '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(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'] *
- 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(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'] *
- 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(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 = '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 = 'profile limit'))) <=
- 1))) =
- 0;
-END_ENTITY;
-
-ENTITY terminal_feature
- SUBTYPE OF (contact_feature);
-END_ENTITY;
-
-ENTITY terminal_location_group
- SUBTYPE OF (terminal_feature);
-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);
- WR3: NOT (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CUBIC_BEZIER_TRIANGULATED_FACE') IN TYPEOF(face1));
- WR4: NOT (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CUBIC_BEZIER_TRIANGULATED_FACE') IN TYPEOF(face2));
-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
- SUPERTYPE OF (ONEOF(tessellated_connecting_edge, cubic_bezier_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, cubic_bezier_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 ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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);
-WHERE
- WR1: 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.GLOBAL_UNIT_ASSIGNED_CONTEXT' IN
- TYPEOF(SELF\representation.context_of_items);
- WR2: NOT (SIZEOF(QUERY(it
- <* SELF.items
- | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.TESSELLATED_ITEM' IN TYPEOF(it))) =
- 0);
-END_ENTITY;
-
-ENTITY tessellated_shape_representation_with_accuracy_parameters
- SUBTYPE OF (tessellated_shape_representation);
- tessellation_accuracy_parameters : SET [1 : ?] OF tessellation_accuracy_parameter_item;
-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 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;
-
-ENTITY tetrahedron_volume
- SUBTYPE OF (volume);
- point_1 : cartesian_point;
- point_2 : cartesian_point;
- point_3 : cartesian_point;
- point_4 : cartesian_point;
-WHERE
- WR1: point_1.dim = 3;
- WR2: above_plane(point_1, point_2, point_3, point_4) <> 0.0;
-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(['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',
- '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(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)))) =
- 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 <* characteristics | SIZEOF(QUERY(c2 <* 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 texture_style_specification
- ABSTRACT SUPERTYPE
- SUBTYPE OF (founded_item);
-END_ENTITY;
-
-ENTITY texture_style_tessellation_specification
- ABSTRACT SUPERTYPE
- SUBTYPE OF (texture_style_specification);
-END_ENTITY;
-
-ENTITY thermal_component
- SUBTYPE OF (assembly_component);
-END_ENTITY;
-
-ENTITY thermal_resistance_measure_with_unit
- SUBTYPE OF (measure_with_unit);
-WHERE
- WR1: 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.THERMAL_RESISTANCE_UNIT' IN
- TYPEOF(SELF\measure_with_unit.unit_component);
-END_ENTITY;
-
-ENTITY thermal_resistance_unit
- SUBTYPE OF (derived_unit);
-WHERE
- WR1: derive_dimensional_exponents(SELF) = dimensional_exponents(-1.0, -1.0, -3.0, 0.0, 1.0, 0.0, 0.0);
-END_ENTITY;
-
-ENTITY thermodynamic_temperature_measure_with_unit
- SUBTYPE OF (measure_with_unit);
-WHERE
- WR1: 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.THERMODYNAMIC_TEMPERATURE_UNIT' IN
- TYPEOF(SELF\measure_with_unit.unit_component);
-END_ENTITY;
-
-ENTITY thermodynamic_temperature_unit
- SUBTYPE OF (named_unit);
-WHERE
- WR1: (SELF\named_unit.dimensions.length_exponent = 0.0) AND (SELF\named_unit.dimensions.mass_exponent = 0.0) AND
- (SELF\named_unit.dimensions.time_exponent = 0.0) AND
- (SELF\named_unit.dimensions.electric_current_exponent = 0.0) AND
- (SELF\named_unit.dimensions.thermodynamic_temperature_exponent = 1.0) AND
- (SELF\named_unit.dimensions.amount_of_substance_exponent = 0.0) AND
- (SELF\named_unit.dimensions.luminous_intensity_exponent = 0.0);
-END_ENTITY;
-
-ENTITY thickened_face_solid
- SUBTYPE OF (solid_model);
- base_element : generalized_surface_select;
- offset1 : length_measure;
- offset2 : length_measure;
-WHERE
- WR1: NOT (('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;
-
-ENTITY thread
- SUBTYPE OF (feature_definition);
-WHERE
- 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
- (8 <= SIZEOF(pdr.used_representation.items)) AND
- (SIZEOF(pdr.used_representation.items) <= 11)))) =
- 1))) =
- 1);
- 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
- | ((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 = '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(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 = '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(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 = '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(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 = '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(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)))) =
- 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.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(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','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(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)))) =
- 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.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(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 = '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,
- '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
- <* 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);
- 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(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)))) =
- 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(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 = '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,
- '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.THREAD_RUNOUT' IN
- TYPEOF(sdr.relating_shape_aspect)))) <=
- 1)))) =
- 1)))) =
- 0);
-END_ENTITY;
-
-ENTITY thread_runout
- SUBTYPE OF (shape_aspect);
-WHERE
- WR1: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(SELF.of_shape));
- 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.SHAPE_REPRESENTATION_WITH_PARAMETERS') IN
- TYPEOF(pdr.used_representation)))) =
- 1)))) =
- 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(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
- ['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(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 = '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(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 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(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 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: 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.TIME_UNIT' IN TYPEOF(SELF\measure_with_unit.unit_component);
-END_ENTITY;
-
-ENTITY time_unit
- SUBTYPE OF (named_unit);
-WHERE
- WR1: (SELF\named_unit.dimensions.length_exponent = 0.0) AND (SELF\named_unit.dimensions.mass_exponent = 0.0) AND
- (SELF\named_unit.dimensions.time_exponent = 1.0) AND
- (SELF\named_unit.dimensions.electric_current_exponent = 0.0) AND
- (SELF\named_unit.dimensions.thermodynamic_temperature_exponent = 0.0) AND
- (SELF\named_unit.dimensions.amount_of_substance_exponent = 0.0) AND
- (SELF\named_unit.dimensions.luminous_intensity_exponent = 0.0);
-END_ENTITY;
-
-ENTITY tolerance_value;
- lower_bound : measure_with_unit;
- upper_bound : measure_with_unit;
-DERIVE
- 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 tolerance_zone_with_datum
- SUPERTYPE OF (ONEOF(directed_tolerance_zone, oriented_tolerance_zone))
- SUBTYPE OF (tolerance_zone);
- datum_reference : datum_system;
-END_ENTITY;
-
-ENTITY topological_representation_item
- SUPERTYPE OF (ONEOF(vertex, edge, face_bound, face, vertex_shell, wire_shell, connected_edge_set, connected_face_set,
- connected_volume_set, volume_with_faces, (loop ANDOR path)))
- SUBTYPE OF (representation_item);
-DERIVE
- permanent_id : identifier := get_id_value(SELF);
- permanent_aggregate_id : identifier := get_aggregate_id_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.AGGREGATE_ID_ATTRIBUTE.IDENTIFIED_ITEM')) <=
- 1;
-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 toroidal_volume
- SUBTYPE OF (volume);
- position : axis2_placement_3d;
- major_radius : positive_length_measure;
- minor_radius : positive_length_measure;
-WHERE
- WR1: minor_radius < major_radius;
-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) *
- ['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
- ('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 ((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 ((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(['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',
- 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EDGE_ROUND',
- 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FILLET'] *
- TYPEOF(SELF)) =
- 1;
-END_ENTITY;
-
-ENTITY transport_feature
- SUBTYPE OF (shape_aspect);
-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_point_cloud_dataset
- SUBTYPE OF (scanned_data_item);
- points : point_cloud_set_or_superset;
- triangles : LIST [1 : ?] OF LIST [3 : 3] OF INTEGER;
-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, '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
- ({6 <= SIZEOF(pdr.used_representation.items) <= 9}))) =
- 1)) =
- 1;
- 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(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')))) <=
- 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(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 = '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(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 = '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(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 = '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(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 = '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(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 = '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(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.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(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.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,
- '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
- <* 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;
-
-ENTITY twisted_cross_sectional_group_shape_element
- SUBTYPE OF (cross_sectional_group_shape_element);
-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: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.UNBOUND_VARIATIONAL_PARAMETER' IN
- TYPEOF(SELF\environment.syntactic_representation)) AND
- ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.UNBOUND_VARIATIONAL_PARAMETER_SEMANTICS' IN
- TYPEOF(SELF\environment.semantics));
-END_ENTITY;
-
-ENTITY unbound_variational_parameter
- SUBTYPE OF (variational_parameter);
-WHERE
- WR1: 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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(displacement\measure_with_unit.value_component);
-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_volume
- SUBTYPE OF (b_spline_volume);
-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.0);
-WHERE
- WR1: COS(plane_angle_for_pair_in_radian(SELF, skew_angle)) > 0.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 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: ('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)) 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.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,
- ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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_11
- SUBTYPE OF (representation_item);
-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 validation
- SUBTYPE OF (group);
-END_ENTITY;
-
-ENTITY validation_software_identification;
- id : identifier;
- name : label;
- description : OPTIONAL text;
- software_name : label;
- additional_name : label;
- validation_criteria_or_results : validation_criteria_or_results_select;
-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: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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 ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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 ('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
- | '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'];
- 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
- | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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 ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.VARIATIONAL_REPRESENTATION' IN
- TYPEOF(q)))) =
- 0;
- WR2: SIZEOF(QUERY(q <* using_representations(SELF) | NOT (SELF IN q.items))) = 0;
-END_ENTITY;
-
-ENTITY vector
- SUBTYPE OF (geometric_representation_item);
- orientation : direction;
- magnitude : length_measure;
-WHERE
- WR1: magnitude >= 0.0;
-END_ENTITY;
-
-ENTITY vector_style
- SUBTYPE OF (curve_style, pre_defined_terminator_symbol);
-END_ENTITY;
-
-ENTITY vee_profile
- 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(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;
- 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(impl_rep.used_representation.items) >= 3) AND
- (SIZEOF(impl_rep.used_representation.items) <= 6)))) =
- 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 = '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, '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)) 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(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'))) <=
- 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
- | (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(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(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'] *
- 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 = '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(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'))) <=
- 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(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'))) <=
- 1))) =
- 0))) =
- 0;
-END_ENTITY;
-
-ENTITY velocity_measure_with_unit
- SUBTYPE OF (measure_with_unit);
-WHERE
- WR1: 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.VELOCITY_UNIT' IN TYPEOF(SELF\measure_with_unit.unit_component);
-END_ENTITY;
-
-ENTITY velocity_unit
- SUBTYPE OF (derived_unit);
-WHERE
- WR1: derive_dimensional_exponents(SELF) = dimensional_exponents(1.0, 0.0, -1.0, 0.0, 0.0, 0.0, 0.0);
-END_ENTITY;
-
-ENTITY verification
- SUBTYPE OF (group);
-END_ENTITY;
-
-ENTITY verification_relationship
- SUBTYPE OF (group_relationship);
- SELF\group_relationship.relating_group : verification;
- SELF\group_relationship.related_group : verification;
-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_on_edge
- SUBTYPE OF (vertex);
- parent_edge : edge_with_length;
- distance_from_start : positive_length_measure;
-WHERE
- WR1: distance_from_start < parent_edge.edge_length;
-END_ENTITY;
-
-ENTITY vertex_point
- SUBTYPE OF (vertex, geometric_representation_item);
- vertex_geometry : point;
-END_ENTITY;
-
-ENTITY vertex_shell
- SUBTYPE OF (topological_representation_item);
- vertex_shell_extent : vertex_loop;
-END_ENTITY;
-
-ENTITY view_volume
- SUBTYPE OF (founded_item);
- projection_type : central_or_parallel;
- projection_point : cartesian_point;
- view_plane_distance : length_measure;
- front_plane_distance : length_measure;
- front_plane_clipping : BOOLEAN;
- back_plane_distance : length_measure;
- back_plane_clipping : BOOLEAN;
- view_volume_sides_clipping : BOOLEAN;
- view_window : planar_box;
-INVERSE
- 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,0.0,1.0])),
- 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;
-
-ENTITY visual_appearance_representation
- SUBTYPE OF (representation);
-WHERE
- WR1: ({3 <= 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;
- 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,
- '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')
- | ('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;
-
-ENTITY volume
- SUPERTYPE OF (ONEOF(block_volume, wedge_volume, spherical_volume, cylindrical_volume, eccentric_conical_volume,
- toroidal_volume, pyramid_volume, b_spline_volume, ellipsoid_volume, tetrahedron_volume,
- hexahedron_volume, locally_refined_spline_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: 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.VOLUME_UNIT' IN TYPEOF(SELF\measure_with_unit.unit_component);
-END_ENTITY;
-
-ENTITY volume_unit
- SUBTYPE OF (derived_unit);
-WHERE
- WR1: derive_dimensional_exponents(SELF) = dimensional_exponents(3.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0);
-END_ENTITY;
-
-ENTITY volume_with_faces
- ABSTRACT SUPERTYPE OF (ONEOF(volume_with_shell, volume_with_parametric_boundary))
- SUBTYPE OF (geometric_representation_item, topological_representation_item);
- volume_geometry : volume;
-END_ENTITY;
-
-ENTITY volume_with_parametric_boundary
- SUBTYPE OF (volume_with_faces);
- outer_bound : LIST [6 : 6] OF face;
-END_ENTITY;
-
-ENTITY volume_with_shell
- SUBTYPE OF (volume_with_faces);
- outer_bound : closed_shell;
-END_ENTITY;
-
-ENTITY wedge_volume
- SUBTYPE OF (volume);
- position : axis2_placement_3d;
- x : positive_length_measure;
- y : positive_length_measure;
- z : positive_length_measure;
- ltx : length_measure;
-WHERE
- WR1: ((0.0 <= ltx) AND (ltx < x));
-END_ENTITY;
-
-ENTITY 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))) <= 366};
- WR2: leap_year(SELF\date.year_component) OR {1 <= (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 wrong_element_name
- SUBTYPE OF (externally_conditioned_data_quality_criterion);
-WHERE
- WR1: validate_ecdq_inspected_elements_type(SELF,
- ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.BOOLEAN_VALUE');
- WR2: validate_inspected_elements_type(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.BREP_WITH_VOIDS']);
- WR3: validate_locations_of_extreme_value_type(SELF,
- ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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, '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.FACE_BOUND']);
- WR4: validate_accuracy_types(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.BOOLEAN_VALUE');
- WR2: validate_inspected_elements_type(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.BREP_WITH_VOIDS']);
- WR3: validate_locations_of_extreme_value_type(SELF,
- ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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: ('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)) 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.SURFACE']);
- WR4: validate_locations_of_extreme_value_type(SELF,
- ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POINT_ON_SURFACE']);
- WR5: validate_accuracy_types(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANE_ANGLE_MEASURE']);
-END_ENTITY;
-
-ENTITY zone_breakdown_context
- SUBTYPE OF (breakdown_context);
-END_ENTITY;
-
-ENTITY zone_element_usage
- SUBTYPE OF (breakdown_element_usage);
-END_ENTITY;
-
-FUNCTION a3ma_get_accuracy_types(ei : SET [0 : ?] OF a3m_equivalence_accuracy_association) : SET [0 : ?] OF a3ma_accuracy_type_name;
-LOCAL
- type_out : a3ma_measured_data_type_name;
- retval : SET OF a3ma_accuracy_type_name := [];
-END_LOCAL;
- REPEAT i := 1 TO SIZEOF(ei);
- type_out := a3ma_get_value_limit_type(ei[i].specific_accuracy.range);
- retval := retval + [atna_others];
- END_REPEAT;
- RETURN(retval);
-END_FUNCTION;
-
-FUNCTION a3ma_get_detected_difference_type(ei : LIST [0 : ?] OF equivalence_detected_difference_select) : a3ma_detected_difference_type_name;
-LOCAL
- type_out : SET OF STRING;
- sizeei : INTEGER;
-END_LOCAL;
- sizeei := SIZEOF(ei);
- IF (sizeei = 0)
- THEN
- RETURN(ddna_no_element);
- END_IF;
- type_out := TYPEOF(ei[1]);
- IF (SIZEOF(ei) > 1)
- THEN
- RETURN(ddna_others);
- END_IF;
- IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ASSEMBLY_COMPONENT_USAGE' IN type_out)
- THEN
- RETURN(ddna_assembly_component_usage);
- END_IF;
- IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.BINARY_ASSEMBLY_CONSTRAINT' IN type_out)
- THEN
- RETURN(ddna_binary_assembly_constraint);
- END_IF;
- IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CARTESIAN_POINT' IN type_out)
- THEN
- RETURN(ddna_cartesian_point);
- END_IF;
- IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CONTEXT_DEPENDENT_SHAPE_REPRESENTATION' IN type_out)
- THEN
- RETURN(ddna_context_dependent_shape_representation);
- END_IF;
- IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COUNT_MEASURE' IN type_out)
- THEN
- RETURN(ddna_count_measure);
- END_IF;
- IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MULTI_LEVEL_REFERENCE_DESIGNATOR' IN type_out)
- THEN
- RETURN(ddna_multi_level_reference_designator);
- END_IF;
- IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.VOLUME_MEASURE' IN type_out)
- THEN
- RETURN(ddna_volume_measure);
- END_IF;
- IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.A3MS_INSPECTED_EQUIVALENCE_ELEMENT_SELECT' IN type_out)
- THEN
- RETURN(ddna_a3ms_inspected_equivalence_element_select);
- END_IF;
- RETURN(ddna_others);
-END_FUNCTION;
-
-FUNCTION a3ma_get_element_type(ei : SET [1 : ?] OF inspected_equivalence_element_select) : a3ma_element_type_name;
-LOCAL
- type_out : SET OF STRING;
-END_LOCAL;
- type_out := TYPEOF(ei[1]);
- IF (SIZEOF(ei) > 1)
- THEN
- RETURN(etna_others);
- END_IF;
- IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_OR_REFERENCE' IN type_out)
- THEN
- RETURN(etna_product_definition_or_reference);
- END_IF;
- IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION' IN type_out)
- THEN
- RETURN(etna_shape_representation);
- END_IF;
- RETURN(etna_others);
-END_FUNCTION;
-
-FUNCTION a3ma_get_measured_type(ei : equivalence_measured_value_select) : a3ma_measured_data_type_name;
-LOCAL
- type_out : SET OF STRING;
-END_LOCAL;
- type_out := TYPEOF(ei);
- IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.BOOLEAN_VALUE' IN type_out)
- THEN
- RETURN(mdna_boolean_value);
- END_IF;
- IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CONTEXT_DEPENDENT_MEASURE' IN type_out)
- THEN
- RETURN(mdna_context_dependent_measure);
- END_IF;
- IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE' IN type_out)
- THEN
- RETURN(mdna_length_measure);
- END_IF;
- IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.A3MA_LENGTH_MEASURE_AND_CONTEXT_DEPENDENT_MEASURE_PAIR' IN
- type_out)
- THEN
- RETURN(mdna_length_measure_and_context_dependent_measure);
- END_IF;
- IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANE_ANGLE_MEASURE' IN type_out)
- THEN
- RETURN(mdna_plane_angle_measure);
- END_IF;
- IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.VOLUME_MEASURE' IN type_out)
- THEN
- RETURN(mdna_volume_measure);
- END_IF;
- RETURN(mdna_others);
-END_FUNCTION;
-
-FUNCTION a3ma_get_value_limit_type(ei : shape_data_quality_value_limit_type_select) : a3ma_measured_data_type_name;
-LOCAL
- type_out : SET OF STRING;
-END_LOCAL;
- type_out := value_limit_type(ei);
- IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CONTEXT_DEPENDENT_MEASURE' IN type_out)
- THEN
- RETURN(mdna_context_dependent_measure);
- END_IF;
- IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE' IN type_out)
- THEN
- RETURN(mdna_length_measure);
- END_IF;
- IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANE_ANGLE_MEASURE' IN type_out)
- THEN
- RETURN(mdna_plane_angle_measure);
- END_IF;
- IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.VOLUME_MEASURE' IN type_out)
- THEN
- RETURN(mdna_volume_measure);
- END_IF;
- RETURN(mdna_others);
-END_FUNCTION;
-
-FUNCTION a3ma_validate_accuracy_types(ei : accuracy_associated_target_select;
- cr : a3m_equivalence_criterion_for_assembly) : LOGICAL;
-LOCAL
- aeaa : SET OF a3m_equivalence_accuracy_association;
- rp : SET OF representation;
- tp : SET OF a3ma_accuracy_type_name := [];
-END_LOCAL;
- REPEAT i := 1 TO SIZEOF(cr.accuracy_types);
- tp := tp + [cr.accuracy_types[i]];
- END_REPEAT;
- IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.REPRESENTATION_ITEM' IN TYPEOF(ei))
- THEN
- aeaa := bag_to_set(USEDIN(ei,
- 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.A3M_EQUIVALENCE_ACCURACY_ASSOCIATION.EQUIVALENCE_TARGET'));
- IF (SIZEOF(cr.accuracy_types) = 0)
- THEN
- IF (SIZEOF(aeaa) = 0)
- THEN
- RETURN(true);
- ELSE
- RETURN(false);
- END_IF;
- END_IF;
- IF (a3ma_get_accuracy_types(aeaa) = tp)
- THEN
- RETURN(true);
- END_IF;
- rp := bag_to_set(USEDIN(ei, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.REPRESENTATION.ITEMS'));
- ELSE
- IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.REPRESENTATION' IN TYPEOF(ei))
- THEN
- rp := [ei];
- ELSE
- rp := [];
- END_IF;
- END_IF;
- aeaa := [];
- REPEAT i := 1 TO SIZEOF(rp);
- aeaa := aeaa +
- bag_to_set(USEDIN(rp[i],
- 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.A3M_EQUIVALENCE_ACCURACY_ASSOCIATION.EQUIVALENCE_TARGET'));
- END_REPEAT;
- IF (a3ma_get_accuracy_types(aeaa) >= tp)
- THEN
- RETURN(true);
- END_IF;
- RETURN(false);
-END_FUNCTION;
-
-FUNCTION a3ma_validate_detected_difference_types(ei : data_equivalence_inspection_report;
- cr : a3m_equivalence_criterion_for_assembly) : LOGICAL;
-LOCAL
- deiir : data_equivalence_inspection_instance_report;
- eiriwei : equivalence_instance_report_item_with_notable_instances;
-END_LOCAL;
- IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DATA_EQUIVALENCE_INSPECTION_INSTANCE_REPORT' IN TYPEOF(ei))
- THEN
- deiir := ei;
- REPEAT i := 1 TO SIZEOF(deiir.inspected_instances);
- IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EQUIVALENCE_INSTANCE_REPORT_ITEM_WITH_NOTABLE_INSTANCES' IN
- TYPEOF(deiir.inspected_instances[i]))
- THEN
- eiriwei := deiir.inspected_instances[i];
- REPEAT j := 1 TO SIZEOF(eiriwei.notable_instances);
- IF (NOT (a3ma_get_detected_difference_type(eiriwei.notable_instances[j].comparing_elements) IN
- cr.detected_difference_types))
- THEN
- RETURN(false);
- END_IF;
- IF (NOT (a3ma_get_detected_difference_type(eiriwei.notable_instances[j].compared_elements) IN
- cr.detected_difference_types))
- THEN
- RETURN(false);
- END_IF;
- END_REPEAT;
- END_IF;
- END_REPEAT;
- END_IF;
- RETURN(true);
-END_FUNCTION;
-
-FUNCTION a3ma_validate_element_types(ei : data_equivalence_inspection_report;
- cr : a3m_equivalence_criterion_for_assembly) : LOGICAL;
-LOCAL
- compared_et : a3ma_element_type_name;
- comparing_et : a3ma_element_type_name;
- deiir : data_equivalence_inspection_instance_report;
- aeiiri : a3m_equivalence_inspection_instance_report_item;
- deiep : data_equivalence_inspected_element_pair;
-END_LOCAL;
- IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DATA_EQUIVALENCE_INSPECTION_INSTANCE_REPORT' IN TYPEOF(ei))
- THEN
- deiir := ei;
- REPEAT i := 1 TO SIZEOF(deiir.inspected_instances);
- IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.A3M_EQUIVALENCE_INSPECTION_INSTANCE_REPORT_ITEM' IN
- TYPEOF(deiir.inspected_instances[i]))
- THEN
- aeiiri := deiir.inspected_instances[i];
- deiep := aeiiri.inspected_element;
- compared_et := a3ma_get_element_type(deiep.compared_elements);
- comparing_et := a3ma_get_element_type(deiep.comparing_elements);
- IF (NOT (compared_et IN cr.compared_element_types) OR NOT (comparing_et IN cr.comparing_element_types))
- THEN
- RETURN(false);
- END_IF;
- IF (compared_et <> comparing_et)
- THEN
- RETURN(false);
- END_IF;
- END_IF;
- END_REPEAT;
- END_IF;
- RETURN(true);
-END_FUNCTION;
-
-FUNCTION a3ma_validate_measured_type(ei : data_equivalence_inspection_report;
- cr : a3m_equivalence_criterion_for_assembly) : LOGICAL;
-LOCAL
- amdtn : a3ma_measured_data_type_name;
- deicr : data_equivalence_inspection_criterion_report;
- acriwmv : a3m_equivalence_criterion_report_item_with_measured_value;
- deiir : data_equivalence_inspection_instance_report;
- aeiiri : a3m_equivalence_inspection_instance_report_item;
- eiriwei : equivalence_instance_report_item_with_notable_instances;
-END_LOCAL;
- amdtn := cr.measured_data_type;
- IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DATA_EQUIVALENCE_INSPECTION_CRITERION_REPORT' IN TYPEOF(ei))
- THEN
- deicr := ei;
- REPEAT i := 1 TO SIZEOF(deicr.statistical_values);
- IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.A3M_EQUIVALENCE_CRITERION_REPORT_ITEM_WITH_MEASURED_VALUE' IN
- TYPEOF(deicr.statistical_values[i]))
- THEN
- acriwmv := deicr.statistical_values[i];
- IF (a3ma_get_measured_type(acriwmv.representative_measured_value) <> amdtn)
- THEN
- RETURN(false);
- END_IF;
- END_IF;
- END_REPEAT;
- END_IF;
- IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DATA_EQUIVALENCE_INSPECTION_INSTANCE_REPORT' IN TYPEOF(ei))
- THEN
- deiir := ei;
- REPEAT i := 1 TO SIZEOF(deiir.inspected_instances);
- IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.A3M_EQUIVALENCE_INSPECTION_INSTANCE_REPORT_ITEM' IN
- TYPEOF(deiir.inspected_instances[i]))
- THEN
- aeiiri := deiir.inspected_instances[i];
- IF (a3ma_get_measured_type(aeiiri.measured_value_for_inspected_element) <> amdtn)
- THEN
- RETURN(false);
- END_IF;
- END_IF;
- IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EQUIVALENCE_INSTANCE_REPORT_ITEM_WITH_NOTABLE_INSTANCES' IN
- TYPEOF(deiir.inspected_instances[i]))
- THEN
- eiriwei := deiir.inspected_instances[i];
- REPEAT j := 1 TO SIZEOF(eiriwei.notable_instances);
- IF (a3ma_get_measured_type(eiriwei.notable_instances[j].measured_value) <> amdtn)
- THEN
- RETURN(false);
- END_IF;
- END_REPEAT;
- END_IF;
- END_REPEAT;
- END_IF;
- RETURN(true);
-END_FUNCTION;
-
-FUNCTION a3ms_get_accuracy_types(ei : SET [0 : ?] OF a3m_equivalence_accuracy_association) : SET [0 : ?] OF a3ms_accuracy_type_name;
-LOCAL
- type_out : a3ms_measured_data_type_name;
- retval : SET OF a3ms_accuracy_type_name := [];
-END_LOCAL;
- REPEAT i := 1 TO SIZEOF(ei);
- type_out := a3ms_get_value_limit_type(ei[i].specific_accuracy.range);
- IF (type_out = mdns_area_measure)
- THEN
- retval := retval + [atns_area_measure];
- ELSE
- IF (type_out = mdns_length_measure)
- THEN
- retval := retval + [atns_length_measure];
- ELSE
- IF (type_out = mdns_plane_angle_measure)
- THEN
- retval := retval + [atns_plane_angle_measure];
- ELSE
- IF (type_out = mdns_volume_measure)
- THEN
- retval := retval + [atns_volume_measure];
- ELSE
- retval := retval + [atns_others];
- END_IF;
- END_IF;
- END_IF;
- END_IF;
- END_REPEAT;
- RETURN(retval);
-END_FUNCTION;
-
-FUNCTION a3ms_get_detected_difference_type(ei : LIST [0 : ?] OF equivalence_detected_difference_select) : a3ms_detected_difference_type_name;
-LOCAL
- type_out : SET OF STRING;
- sizeei : INTEGER;
-END_LOCAL;
- sizeei := SIZEOF(ei);
- IF (sizeei = 0)
- THEN
- RETURN(ddns_no_element);
- ELSE
- type_out := TYPEOF(ei[1]);
- REPEAT i := 2 TO sizeei;
- IF (TYPEOF(ei[i]) <> type_out)
- THEN
- RETURN(ddns_others);
- END_IF;
- END_REPEAT;
- IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.AREA_MEASURE' IN type_out)
- THEN
- IF (sizeei = 1)
- THEN
- RETURN(ddns_area_measure);
- ELSE
- RETURN(ddns_others);
- END_IF;
- END_IF;
- IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CARTESIAN_POINT' IN type_out)
- THEN
- IF (sizeei = 1)
- THEN
- RETURN(ddns_cartesian_point);
- ELSE
- IF (sizeei = 2)
- THEN
- RETURN(ddns_two_cartesian_points);
- ELSE
- RETURN(ddns_others);
- END_IF;
- END_IF;
- END_IF;
- IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CONNECTED_FACE_SET' IN type_out)
- THEN
- IF (sizeei = 1)
- THEN
- RETURN(ddns_connected_face_set);
- ELSE
- RETURN(ddns_others);
- END_IF;
- END_IF;
- IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COUNT_MEASURE' IN type_out)
- THEN
- IF (sizeei = 1)
- THEN
- RETURN(ddns_count_measure);
- ELSE
- IF (sizeei = 2)
- THEN
- RETURN(ddns_two_count_measure);
- ELSE
- IF (sizeei = 3)
- THEN
- RETURN(ddns_three_count_measure);
- ELSE
- IF (sizeei = 4)
- THEN
- RETURN(ddns_four_count_measure);
- ELSE
- IF (sizeei = 5)
- THEN
- RETURN(ddns_five_count_measure);
- ELSE
- RETURN(ddns_others);
- END_IF;
- END_IF;
- END_IF;
- END_IF;
- END_IF;
- END_IF;
- IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EDGE' IN type_out)
- THEN
- IF (sizeei = 1)
- THEN
- RETURN(ddns_edge);
- ELSE
- RETURN(ddns_several_edges);
- END_IF;
- END_IF;
- IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FACE' IN type_out)
- THEN
- IF (sizeei = 1)
- THEN
- RETURN(ddns_face);
- ELSE
- RETURN(ddns_several_faces);
- END_IF;
- END_IF;
- IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE' IN type_out)
- THEN
- IF (sizeei = 1)
- THEN
- RETURN(ddns_length_measure);
- ELSE
- RETURN(ddns_others);
- END_IF;
- END_IF;
- IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POINT_ON_CURVE' IN type_out)
- THEN
- IF (sizeei = 1)
- THEN
- RETURN(ddns_point_on_curve);
- ELSE
- RETURN(ddns_others);
- END_IF;
- END_IF;
- IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POINT_ON_SURFACE' IN type_out)
- THEN
- IF (sizeei = 1)
- THEN
- RETURN(ddns_point_on_surface);
- ELSE
- RETURN(ddns_others);
- END_IF;
- END_IF;
- IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.VOLUME_MEASURE' IN type_out)
- THEN
- IF (sizeei = 1)
- THEN
- RETURN(ddns_volume_measure);
- ELSE
- RETURN(ddns_others);
- END_IF;
- END_IF;
- END_IF;
- RETURN(ddns_others);
-END_FUNCTION;
-
-FUNCTION a3ms_get_element_type(ei : SET [1 : ?] OF inspected_equivalence_element_select) : a3ms_element_type_name;
-LOCAL
- type_out : SET OF STRING;
-END_LOCAL;
- type_out := TYPEOF(ei[1]);
- IF (SIZEOF(ei) > 1)
- THEN
- RETURN(etns_others);
- END_IF;
- IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CONNECTED_EDGE_SET' IN type_out)
- THEN
- RETURN(etns_connected_edge_set);
- END_IF;
- IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CONNECTED_FACE_SET' IN type_out)
- THEN
- RETURN(etns_connected_face_set);
- END_IF;
- IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MANIFOLD_SOLID_BREP' IN type_out)
- THEN
- RETURN(etns_manifold_solid_brep);
- END_IF;
- IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POINT_CLOUD_DATASET' IN type_out)
- THEN
- RETURN(etns_point_cloud_dataset);
- END_IF;
- IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHELL_BASED_SURFACE_MODEL' IN type_out)
- THEN
- RETURN(etns_shell_based_surface_model);
- END_IF;
- IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHELL_BASED_WIREFRAME_MODEL' IN type_out)
- THEN
- RETURN(etns_shell_based_wireframe_model);
- END_IF;
- IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.VERTEX_POINT' IN type_out)
- THEN
- RETURN(etns_vertex_point);
- END_IF;
- IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EXTERNALLY_DEFINED_REPRESENTATION_ITEM' IN type_out)
- THEN
- RETURN(etns_external_representation_item);
- END_IF;
- RETURN(etns_others);
-END_FUNCTION;
-
-FUNCTION a3ms_get_measured_type(ei : equivalence_measured_value_select) : a3ms_measured_data_type_name;
-LOCAL
- type_out : SET OF STRING;
-END_LOCAL;
- type_out := TYPEOF(ei);
- IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.AREA_MEASURE' IN type_out)
- THEN
- RETURN(mdns_area_measure);
- END_IF;
- IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.BOOLEAN_VALUE' IN type_out)
- THEN
- RETURN(mdns_boolean_value);
- END_IF;
- IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE' IN type_out)
- THEN
- RETURN(mdns_length_measure);
- END_IF;
- IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANE_ANGLE_MEASURE' IN type_out)
- THEN
- RETURN(mdns_plane_angle_measure);
- END_IF;
- IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.VOLUME_MEASURE' IN type_out)
- THEN
- RETURN(mdns_volume_measure);
- END_IF;
- RETURN(mdns_others);
-END_FUNCTION;
-
-FUNCTION a3ms_get_value_limit_type(ei : shape_data_quality_value_limit_type_select) : a3ms_measured_data_type_name;
-LOCAL
- type_out : SET OF STRING;
-END_LOCAL;
- type_out := value_limit_type(ei);
- IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.AREA_MEASURE' IN type_out)
- THEN
- RETURN(mdns_area_measure);
- END_IF;
- IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.BOOLEAN_VALUE' IN type_out)
- THEN
- RETURN(mdns_boolean_value);
- END_IF;
- IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE' IN type_out)
- THEN
- RETURN(mdns_length_measure);
- END_IF;
- IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANE_ANGLE_MEASURE' IN type_out)
- THEN
- RETURN(mdns_plane_angle_measure);
- END_IF;
- IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.VOLUME_MEASURE' IN type_out)
- THEN
- RETURN(mdns_volume_measure);
- END_IF;
- RETURN(mdns_others);
-END_FUNCTION;
-
-FUNCTION a3ms_validate_accuracy_types(ei : accuracy_associated_target_select;
- cr : a3m_equivalence_criterion_for_shape) : LOGICAL;
-LOCAL
- aeaa : SET OF a3m_equivalence_accuracy_association;
- rp : SET OF representation;
- tp : SET OF a3ms_accuracy_type_name := [];
-END_LOCAL;
- REPEAT i := 1 TO SIZEOF(cr.accuracy_types);
- tp := tp + [cr.accuracy_types[i]];
- END_REPEAT;
- IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.REPRESENTATION_ITEM' IN TYPEOF(ei))
- THEN
- aeaa := bag_to_set(USEDIN(ei,
- 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.A3M_EQUIVALENCE_ACCURACY_ASSOCIATION.EQUIVALENCE_TARGET'));
- IF (SIZEOF(cr.accuracy_types) = 0)
- THEN
- IF (SIZEOF(aeaa) = 0)
- THEN
- RETURN(true);
- ELSE
- RETURN(false);
- END_IF;
- END_IF;
- IF (a3ms_get_accuracy_types(aeaa) = tp)
- THEN
- RETURN(true);
- END_IF;
- rp := bag_to_set(USEDIN(ei, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.REPRESENTATION.ITEMS'));
- ELSE
- IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.REPRESENTATION' IN TYPEOF(ei))
- THEN
- rp := [ei];
- ELSE
- rp := [];
- END_IF;
- END_IF;
- aeaa := [];
- REPEAT i := 1 TO SIZEOF(rp);
- aeaa := aeaa +
- bag_to_set(USEDIN(rp[i],
- 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.A3M_EQUIVALENCE_ACCURACY_ASSOCIATION.EQUIVALENCE_TARGET'));
- END_REPEAT;
- IF (a3ms_get_accuracy_types(aeaa) >= tp)
- THEN
- RETURN(true);
- END_IF;
- RETURN(false);
-END_FUNCTION;
-
-FUNCTION a3ms_validate_detected_difference_types(ei : data_equivalence_inspection_report;
- cr : a3m_equivalence_criterion_for_shape) : LOGICAL;
-LOCAL
- deiir : data_equivalence_inspection_instance_report;
- eiriwei : equivalence_instance_report_item_with_notable_instances;
- addtn : a3ms_detected_difference_type_name;
-END_LOCAL;
- IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DATA_EQUIVALENCE_INSPECTION_INSTANCE_REPORT' IN TYPEOF(ei))
- THEN
- deiir := ei;
- REPEAT i := 1 TO SIZEOF(deiir.inspected_instances);
- IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EQUIVALENCE_INSTANCE_REPORT_ITEM_WITH_NOTABLE_INSTANCES' IN
- TYPEOF(deiir.inspected_instances[i]))
- THEN
- eiriwei := deiir.inspected_instances[i];
- REPEAT j := 1 TO SIZEOF(eiriwei.notable_instances);
- IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MISMATCH_OF_POINT_CLOUD_AND_RELATED_GEOMETRY' IN
- TYPEOF(cr))
- THEN
- addtn := a3ms_get_detected_difference_type(eiriwei.notable_instances[j].comparing_elements);
- IF (a3ms_get_element_type(eiriwei.inspected_element.comparing_elements) = etns_connected_edge_set)
- THEN
- IF (addtn <> ddns_point_on_curve)
- THEN
- RETURN(false);
- END_IF;
- ELSE
- IF (a3ms_get_element_type(eiriwei.inspected_element.comparing_elements) = etns_connected_face_set)
- THEN
- IF (addtn <> ddns_point_on_surface)
- THEN
- RETURN(false);
- END_IF;
- ELSE
- IF (a3ms_get_element_type(eiriwei.inspected_element.comparing_elements) <>
- etns_external_representation_item)
- THEN
- RETURN(false);
- END_IF;
- END_IF;
- END_IF;
- IF (NOT (a3ms_get_detected_difference_type(eiriwei.notable_instances[j].compared_elements) IN
- cr.detected_difference_types))
- THEN
- RETURN(false);
- END_IF;
- ELSE
- IF (NOT (a3ms_get_detected_difference_type(eiriwei.notable_instances[j].comparing_elements) IN
- cr.detected_difference_types))
- THEN
- RETURN(false);
- END_IF;
- IF (NOT (a3ms_get_detected_difference_type(eiriwei.notable_instances[j].compared_elements) IN
- cr.detected_difference_types))
- THEN
- RETURN(false);
- END_IF;
- END_IF;
- END_REPEAT;
- END_IF;
- END_REPEAT;
- END_IF;
- RETURN(true);
-END_FUNCTION;
-
-FUNCTION a3ms_validate_element_types(ei : data_equivalence_inspection_report;
- cr : a3m_equivalence_criterion_for_shape) : LOGICAL;
-LOCAL
- compared_et : a3ms_element_type_name;
- comparing_et : a3ms_element_type_name;
- deiir : data_equivalence_inspection_instance_report;
- aeiiri : a3m_equivalence_inspection_instance_report_item;
- deiep : data_equivalence_inspected_element_pair;
-END_LOCAL;
- IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DATA_EQUIVALENCE_INSPECTION_INSTANCE_REPORT' IN TYPEOF(ei))
- THEN
- deiir := ei;
- REPEAT i := 1 TO SIZEOF(deiir.inspected_instances);
- IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.A3M_EQUIVALENCE_INSPECTION_INSTANCE_REPORT_ITEM' IN
- TYPEOF(deiir.inspected_instances[i]))
- THEN
- aeiiri := deiir.inspected_instances[i];
- deiep := aeiiri.inspected_element;
- compared_et := a3ms_get_element_type(deiep.compared_elements);
- comparing_et := a3ms_get_element_type(deiep.comparing_elements);
- IF ((NOT (compared_et IN cr.compared_element_types) AND (compared_et <> etns_external_representation_item)) OR
- (NOT (comparing_et IN cr.comparing_element_types) AND (comparing_et <> etns_external_representation_item)))
- THEN
- RETURN(false);
- END_IF;
- IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MISMATCH_OF_POINT_CLOUD_AND_RELATED_GEOMETRY' IN
- TYPEOF(cr))
- THEN
- IF (((comparing_et <> etns_external_representation_item) AND
- (compared_et <> etns_external_representation_item)) AND
- (compared_et = comparing_et))
- THEN
- RETURN(false);
- END_IF;
- ELSE
- IF (((comparing_et <> etns_external_representation_item) AND
- (compared_et <> etns_external_representation_item)) AND
- (compared_et <> comparing_et))
- THEN
- RETURN(false);
- END_IF;
- END_IF;
- END_IF;
- END_REPEAT;
- END_IF;
- RETURN(true);
-END_FUNCTION;
-
-FUNCTION a3ms_validate_measured_type(ei : data_equivalence_inspection_report;
- cr : a3m_equivalence_criterion_for_shape) : LOGICAL;
-LOCAL
- amdtn : a3ms_measured_data_type_name;
- deicr : data_equivalence_inspection_criterion_report;
- acriwmv : a3m_equivalence_criterion_report_item_with_measured_value;
- deiir : data_equivalence_inspection_instance_report;
- aeiiri : a3m_equivalence_inspection_instance_report_item;
- eiriwei : equivalence_instance_report_item_with_notable_instances;
-END_LOCAL;
- amdtn := cr.measured_data_type;
- IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DATA_EQUIVALENCE_INSPECTION_CRITERION_REPORT' IN TYPEOF(ei))
- THEN
- deicr := ei;
- REPEAT i := 1 TO SIZEOF(deicr.statistical_values);
- IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.A3M_EQUIVALENCE_CRITERION_REPORT_ITEM_WITH_MEASURED_VALUE' IN
- TYPEOF(deicr.statistical_values[i]))
- THEN
- acriwmv := deicr.statistical_values[i];
- IF (a3ms_get_measured_type(acriwmv.representative_measured_value) <> amdtn)
- THEN
- RETURN(false);
- END_IF;
- END_IF;
- END_REPEAT;
- END_IF;
- IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DATA_EQUIVALENCE_INSPECTION_INSTANCE_REPORT' IN TYPEOF(ei))
- THEN
- deiir := ei;
- REPEAT i := 1 TO SIZEOF(deiir.inspected_instances);
- IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.A3M_EQUIVALENCE_INSPECTION_INSTANCE_REPORT_ITEM' IN
- TYPEOF(deiir.inspected_instances[i]))
- THEN
- aeiiri := deiir.inspected_instances[i];
- IF (a3ms_get_measured_type(aeiiri.measured_value_for_inspected_element) <> amdtn)
- THEN
- RETURN(false);
- END_IF;
- END_IF;
- IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EQUIVALENCE_INSTANCE_REPORT_ITEM_WITH_NOTABLE_INSTANCES' IN
- TYPEOF(deiir.inspected_instances[i]))
- THEN
- eiriwei := deiir.inspected_instances[i];
- REPEAT j := 1 TO SIZEOF(eiriwei.notable_instances);
- IF (a3ms_get_measured_type(eiriwei.notable_instances[j].measured_value) <> amdtn)
- THEN
- RETURN(false);
- END_IF;
- END_REPEAT;
- END_IF;
- END_REPEAT;
- END_IF;
- RETURN(true);
-END_FUNCTION;
-
-FUNCTION above_plane(p1 : cartesian_point;
- p2 : cartesian_point;
- p3 : cartesian_point;
- p4 : cartesian_point) : REAL;
-LOCAL
- dir2 : direction := dummy_gri || direction([1.0,0.0,0.0]);
- dir3 : direction := dummy_gri || direction([1.0,0.0,0.0]);
- dir4 : direction := dummy_gri || direction([1.0,0.0,0.0]);
- val : REAL;
- 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 acyclic(arg1 : generic_expression;
- arg2 : SET OF generic_expression) : BOOLEAN;
-LOCAL
- result : BOOLEAN := true;
-END_LOCAL;
- IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SIMPLE_GENERIC_EXPRESSION' IN TYPEOF(arg1))
- THEN
- RETURN(true);
- END_IF;
- IF arg1 IN arg2
- THEN
- RETURN(false);
- END_IF;
- IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.UNARY_GENERIC_EXPRESSION' IN TYPEOF(arg1)
- THEN
- RETURN(acyclic(arg1\unary_generic_expression.operand, arg2 + [arg1]));
- END_IF;
- IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MULTIPLE_ARITY_GENERIC_EXPRESSION' IN TYPEOF(arg1)
- THEN
- result := true;
- REPEAT i := 1 TO SIZEOF(arg1\multiple_arity_generic_expression.operands);
- result := result AND acyclic(arg1\multiple_arity_generic_expression.operands[i], arg2 + [arg1]);
- END_REPEAT;
- RETURN(result);
- END_IF;
- RETURN(result);
-END_FUNCTION;
-
-FUNCTION acyclic_action_directive_relationship(relation : action_directive_relationship;
- relatives : SET [1 : ?] OF action_directive;
- specific_relation : STRING) : BOOLEAN;
-LOCAL
- x : SET OF action_directive_relationship;
-END_LOCAL;
- IF relation.relating IN relatives
- THEN
- RETURN(false);
- END_IF;
- x := QUERY(adr
- <* bag_to_set(USEDIN(relation.relating,
- 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ACTION_DIRECTIVE_RELATIONSHIP.RELATED'))
- | specific_relation IN TYPEOF(adr));
- REPEAT i := 1 TO HIINDEX(x);
- IF NOT acyclic_action_directive_relationship(x[i], relatives + relation.relating, specific_relation)
- THEN
- RETURN(false);
- END_IF;
- END_REPEAT;
- RETURN(true);
-END_FUNCTION;
-
-FUNCTION acyclic_alternative_solution_relationship(relation : alternative_solution_relationship;
- relatives : SET [1 : ?] OF product_definition_formation;
- specific_relation : STRING) : BOOLEAN;
-LOCAL
- x : SET OF alternative_solution_relationship;
-END_LOCAL;
- IF relation.relating_product_definition_formation IN relatives
- THEN
- RETURN(false);
- END_IF;
- x := QUERY(asr
- <* bag_to_set(USEDIN(relation.relating_product_definition_formation,
- 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ALTERNATIVE_SOLUTION_RELATIONSHIP.RELATED_PRODUCT_DEFINITION_FORMATION'))
- | specific_relation IN TYPEOF(asr));
- REPEAT i := 1 TO HIINDEX(x);
- IF NOT acyclic_alternative_solution_relationship(x[i], relatives + relation.relating_product_definition_formation,
- specific_relation)
- THEN
- RETURN(false);
- END_IF;
- END_REPEAT;
- RETURN(true);
-END_FUNCTION;
-
-FUNCTION acyclic_assignment_object_relationship(relation : assignment_object_relationship;
- relatives : SET [1 : ?] OF assignment_object_select;
- specific_relation : STRING) : BOOLEAN;
-LOCAL
- x : SET OF assignment_object_relationship;
-END_LOCAL;
- IF relation.relating IN relatives
- THEN
- RETURN(false);
- END_IF;
- x := QUERY(aor
- <* bag_to_set(USEDIN(relation.relating,
- 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ASSIGNMENT_OBJECT_RELATIONSHIP.RELATED'))
- | specific_relation IN TYPEOF(aor));
- REPEAT i := 1 TO HIINDEX(x);
- IF NOT acyclic_assignment_object_relationship(x[i], relatives + relation.relating, specific_relation)
- THEN
- RETURN(false);
- END_IF;
- END_REPEAT;
- RETURN(true);
-END_FUNCTION;
-
-FUNCTION acyclic_classification_assignment_relationship(relation : classification_assignment_relationship;
- relatives : SET [1 : ?] OF classification_assignment;
- specific_relation : STRING) : BOOLEAN;
-LOCAL
- x : SET OF classification_assignment_relationship;
-END_LOCAL;
- IF relation.relating IN relatives
- THEN
- RETURN(false);
- END_IF;
- x := QUERY(car
- <* bag_to_set(USEDIN(relation.relating,
- 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CLASSIFICATION_ASSIGNMENT_RELATIONSHIP.RELATED'))
- | specific_relation IN TYPEOF(car));
- REPEAT i := 1 TO HIINDEX(x);
- IF NOT acyclic_classification_assignment_relationship(x[i], relatives + relation.relating, specific_relation)
- THEN
- RETURN(false);
- END_IF;
- END_REPEAT;
- RETURN(true);
-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
- | ('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);
- 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
- | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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(['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;
- 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 (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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);
- ELSE
- RETURN(acyclic_curve_replica(rep, parent\curve_replica.parent_curve));
- END_IF;
-END_FUNCTION;
-
-FUNCTION acyclic_description_text_assignment_relationship(relation : description_text_assignment_relationship;
- relatives : SET [1 : ?] OF description_text_assignment;
- specific_relation : STRING) : BOOLEAN;
-LOCAL
- x : SET OF description_text_assignment_relationship;
-END_LOCAL;
- IF relation.relating IN relatives
- THEN
- RETURN(false);
- END_IF;
- x := QUERY(dtar
- <* bag_to_set(USEDIN(relation.relating,
- 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DESCRIPTION_TEXT_ASSIGNMENT_RELATIONSHIP.RELATED'))
- | specific_relation IN TYPEOF(dtar));
- REPEAT i := 1 TO HIINDEX(x);
- IF NOT acyclic_description_text_assignment_relationship(x[i], relatives + relation.relating, specific_relation)
- THEN
- RETURN(false);
- END_IF;
- END_REPEAT;
- RETURN(true);
-END_FUNCTION;
-
-FUNCTION acyclic_external_identification_assignment_relationship(relation : external_identification_assignment_relationship;
- relatives : SET [1 : ?] OF external_identification_assignment;
- specific_relation : STRING) : BOOLEAN;
-LOCAL
- x : SET OF external_identification_assignment_relationship;
-END_LOCAL;
- IF relation.relating IN relatives
- THEN
- RETURN(false);
- END_IF;
- x := QUERY(eiar
- <* bag_to_set(USEDIN(relation.relating,
- 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EXTERNAL_IDENTIFICATION_ASSIGNMENT_RELATIONSHIP.RELATED'))
- | specific_relation IN TYPEOF(eiar));
- REPEAT i := 1 TO HIINDEX(x);
- IF NOT acyclic_external_identification_assignment_relationship(x[i], relatives + relation.relating,
- specific_relation)
- THEN
- RETURN(false);
- END_IF;
- END_REPEAT;
- RETURN(true);
-END_FUNCTION;
-
-FUNCTION acyclic_generic_property_relationship(relation : generic_property_relationship;
- relatives : SET [1 : ?] OF generic_property_definition_select;
- specific_relation : STRING) : LOGICAL;
-LOCAL
- x : SET OF generic_property_relationship;
-END_LOCAL;
- IF relation.relating IN relatives
- THEN
- RETURN(false);
- END_IF;
- x := QUERY(gpr
- <* bag_to_set(USEDIN(relation.relating,
- 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.GENERIC_PROPERTY_RELATIONSHIP.RELATED'))
- | specific_relation IN TYPEOF(gpr));
- REPEAT i := 1 TO HIINDEX(x);
- IF NOT acyclic_generic_property_relationship(x[i], relatives + relation.relating, specific_relation)
- THEN
- RETURN(false);
- END_IF;
- END_REPEAT;
- RETURN(true);
-END_FUNCTION;
-
-FUNCTION acyclic_geometric_tolerance_relationship(relation : geometric_tolerance_relationship;
- relatives : SET [1 : ?] OF geometric_tolerance;
- specific_relation : STRING) : BOOLEAN;
-LOCAL
- x : SET OF geometric_tolerance_relationship;
-END_LOCAL;
- IF relation.relating_geometric_tolerance IN relatives
- THEN
- RETURN(false);
- END_IF;
- x := QUERY(geotol
- <* bag_to_set(USEDIN(relation.relating_geometric_tolerance,
- 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.GEOMETRIC_TOLERANCE_RELATIONSHIP.RELATED_GEOMETRIC_TOLERANCE'))
- | specific_relation IN TYPEOF(geotol));
- REPEAT i := 1 TO HIINDEX(x);
- IF NOT acyclic_geometric_tolerance_relationship(x[i], relatives + relation.relating_geometric_tolerance,
- specific_relation)
- THEN
- RETURN(false);
- END_IF;
- END_REPEAT;
- RETURN(true);
-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);
- rms := bag_to_set(USEDIN(rs1[i],
- 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.REPRESENTATION_MAP.MAPPED_REPRESENTATION'));
- IF SIZEOF(rms) > 0
- THEN
- REPEAT j := 1 TO HIINDEX(rms);
- mis := bag_to_set(USEDIN(rms[i],
- 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MAPPED_ITEM.MAPPING_SOURCE'));
- IF SIZEOF(mis) > 0
- THEN
- REPEAT j := 1 TO HIINDEX(mis);
- 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 (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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);
- 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);
- IF relation.category :=: children[i]
- THEN
- RETURN(false);
- END_IF;
- END_REPEAT;
- 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
- 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;
-
-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,
- '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);
- 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_product_definition_specified_occurrence(pdso : product_definition_specified_occurrence;
- definition : product_definition_occurrence) : BOOLEAN;
- IF NOT (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_SPECIFIED_OCCURRENCE') IN
- TYPEOF(definition))
- THEN
- RETURN(true);
- END_IF;
- IF (definition :=: pdso)
- THEN
- RETURN(false);
- ELSE
- RETURN(acyclic_product_definition_specified_occurrence(pdso, definition\product_definition_occurrence.definition));
- END_IF;
-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,
- 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.REPRESENTATION_RELATIONSHIP.REP_2'))
- | specific_relation IN TYPEOF(r));
- REPEAT i := 1 TO HIINDEX(x);
- IF NOT acyclic_representation_relationship(x[i], relatives + relation.rep_1, specific_relation)
- THEN
- RETURN(false);
- END_IF;
- END_REPEAT;
- RETURN(true);
-END_FUNCTION;
-
-FUNCTION acyclic_shape_aspect_occurrence(sao : shape_aspect_occurrence;
- definition : shape_aspect_or_characterized_object) : BOOLEAN;
- IF NOT (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT_OCCURRENCE') IN TYPEOF(definition))
- THEN
- RETURN(true);
- END_IF;
- IF (definition :=: sao)
- THEN
- RETURN(false);
- ELSE
- RETURN(acyclic_shape_aspect_occurrence(sao, definition\shape_aspect_occurrence.definition));
- END_IF;
-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,
- '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);
- 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 (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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);
- ELSE
- RETURN(acyclic_solid_replica(rep, parent\solid_replica.parent_solid));
- END_IF;
-END_FUNCTION;
-
-FUNCTION acyclic_state_definition_to_state_assignment_relationship(relation : state_definition_to_state_assignment_relationship;
- relatives : SET [1 : ?] OF ascribable_state;
- specific_relation : STRING) : LOGICAL;
-LOCAL
- x : SET OF state_definition_to_state_assignment_relationship;
-END_LOCAL;
- IF relation.relating_ascribable_state IN relatives
- THEN
- RETURN(false);
- END_IF;
- x := QUERY(sdtsar
- <* bag_to_set(USEDIN(relation.relating_ascribable_state,
- 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.STATE_DEFINITION_TO_STATE_ASSIGNMENT_RELATIONSHIP.RELATED_ASCRIBABLE_STATE'))
- | specific_relation IN TYPEOF(sdtsar));
- REPEAT i := 1 TO HIINDEX(x);
- IF NOT acyclic_state_definition_to_state_assignment_relationship(x[i],
- relatives + relation.relating_ascribable_state,
- specific_relation)
- THEN
- RETURN(false);
- END_IF;
- END_REPEAT;
- RETURN(true);
-END_FUNCTION;
-
-FUNCTION acyclic_surface_replica(rep : surface_replica;
- parent : surface) : BOOLEAN;
- IF NOT (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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);
- ELSE
- RETURN(acyclic_surface_replica(rep, parent\surface_replica.parent_surface));
- END_IF;
-END_FUNCTION;
-
-FUNCTION advanced_face_properties(testface : face) : BOOLEAN;
-(* return TRUE if testface is of type advanced_face *)
- (* return TRUE if testface is of type advanced_face *)
- IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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 ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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);
- 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 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,
- 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_RELATIONSHIP.RELATING_PRODUCT_DEFINITION')
- | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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;
--- extraction of related assembly_component_relationships --
- 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
- RETURN(false);
- END_IF;
-END_FUNCTION;
-
-FUNCTION assoc_product_space(ts1 : tuple_space;
- 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:up1.exponent,up2.base:up2.exponent];
- tspace := make_listed_product_space(factors);
- END_IF;
- ELSE
- IF use_lp2
- THEN
- 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
- 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
- RETURN(?);
- END_IF;
- ELSE
- IF use_lp2
- THEN
- factors := lp2.factors;
- REPEAT i := 1 TO SIZEOF(factors);
- 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 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PCURVE' IN TYPEOF(arg)
- THEN
- surf := arg\pcurve.basis_surface;
- ELSE
- surf := arg;
- END_IF;
- RETURN(surf);
-END_FUNCTION;
-
-FUNCTION atan2(y : REAL;
- 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;
-
-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;
-
-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 : direction;
- d2 : direction;
-END_LOCAL;
- IF (dim = 3)
- THEN
- d1 := NVL(normalise(axis3), dummy_gri || direction([0.0,0.0,1.0]));
- d2 := first_proj_axis(d1, axis1);
- u := [d2,second_proj_axis(d1, d2, axis2),d1];
- ELSE
- IF EXISTS(axis1)
- THEN
- d1 := normalise(axis1);
- u := [d1,orthogonal_complement(d1)];
- IF EXISTS(axis2)
- THEN
- factor := dot_product(axis2, u[2]);
- IF (factor < 0.0)
- THEN
- u[2].direction_ratios[1] := -u[2].direction_ratios[1];
- u[2].direction_ratios[2] := -u[2].direction_ratios[2];
- END_IF;
- END_IF;
- ELSE
- IF EXISTS(axis2)
- THEN
- d1 := normalise(axis2);
- u := [orthogonal_complement(d1),d1];
- u[1].direction_ratios[1] := -u[1].direction_ratios[1];
- u[1].direction_ratios[2] := -u[1].direction_ratios[2];
- ELSE
- u := [dummy_gri || direction([1.0,0.0]),dummy_gri || direction([0.0,1.0])];
- END_IF;
- END_IF;
- END_IF;
- RETURN(u);
-END_FUNCTION;
-
-FUNCTION 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 : GENERIC : ITEM;
- choice2 : GENERIC : ITEM) : GENERIC : ITEM;
- IF b
- THEN
- RETURN(choice1);
- ELSE
- RETURN(choice2);
- END_IF;
-END_FUNCTION;
-
-FUNCTION build_2axes(ref_direction : direction) : LIST [2 : 2] OF direction;
-LOCAL
- d : direction := NVL(normalise(ref_direction), dummy_gri || direction([1.0,0.0]));
-END_LOCAL;
- RETURN([d,orthogonal_complement(d)]);
-END_FUNCTION;
-
-FUNCTION build_axes(axis : direction;
- ref_direction : direction) : LIST [3 : 3] OF direction;
-LOCAL
- d1 : direction;
- d2 : direction;
-END_LOCAL;
- d1 := NVL(normalise(axis), dummy_gri || direction([0.0,0.0,1.0]));
- d2 := first_proj_axis(d1, ref_direction);
- RETURN([d2,normalise(cross_product(d1, d2))\vector.orientation,d1]);
-END_FUNCTION;
-
-FUNCTION categories_of_product(obj : product) : SET OF STRING;
-LOCAL
- 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');
- 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(['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.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'] *
- TYPEOF(x)) =
- 1))
- THEN
- RETURN(false);
- END_IF;
- '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
- | '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
- | '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
- | '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
- | '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
- | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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);
- 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(['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
- IF (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.TRIMMED_CURVE' IN TYPEOF(crv)) AND
- check_curve_planarity(crv\trimmed_curve.basis_curve))
- THEN
- result := true;
- ELSE
- 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
- IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SURFACE_CURVE' IN TYPEOF(crv))
- THEN
- BEGIN
- REPEAT j := 1 TO HIINDEX(crv\surface_curve.basis_surface);
- IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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_geometric_dimension(capt : SET [0 : ?] OF cartesian_point;
- dir : SET [0 : ?] OF direction;
- grc : SET [0 : ?] OF geometric_representation_context) : BOOLEAN;
-LOCAL
- globaldim : INTEGER := 0;
- reps : SET [0 : ?] OF representation := [];
- result : BOOLEAN := true;
-END_LOCAL;
- IF (SIZEOF(grc) = 0)
- THEN
- RETURN(false);
- END_IF;
- globaldim := geometric_dimensionalities_in_contexts(grc);
- IF (globaldim > 0)
- THEN
- IF (SIZEOF(capt) > 0)
- THEN
- REPEAT i := 1 TO HIINDEX(capt);
- IF (HIINDEX(capt[i].coordinates) <> globaldim)
- THEN
- RETURN(false);
- END_IF;
- END_REPEAT;
- END_IF;
- IF (SIZEOF(dir) > 0)
- THEN
- REPEAT i := 1 TO HIINDEX(dir);
- IF (HIINDEX(dir[i].direction_ratios) <> globaldim)
- THEN
- RETURN(false);
- END_IF;
- END_REPEAT;
- END_IF;
- RETURN(result);
- ELSE
- IF (SIZEOF(capt) > 0)
- THEN
- REPEAT i := 1 TO HIINDEX(capt);
- reps := using_representations(capt[i]);
- IF (SIZEOF(reps) > 0)
- THEN
- REPEAT j := 1 TO HIINDEX(reps);
- IF (HIINDEX(capt[i].coordinates) <>
- reps[j].context_of_items\geometric_representation_context.coordinate_space_dimension)
- THEN
- RETURN(false);
- END_IF;
- END_REPEAT;
- ELSE
- RETURN(false);
- END_IF;
- END_REPEAT;
- END_IF;
- IF (SIZEOF(dir) > 0)
- THEN
- REPEAT i := 1 TO HIINDEX(dir);
- reps := using_representations(dir[i]);
- IF (SIZEOF(reps) > 0)
- THEN
- REPEAT j := 1 TO HIINDEX(reps);
- IF (HIINDEX(dir[i].direction_ratios) <>
- reps[j].context_of_items\geometric_representation_context.coordinate_space_dimension)
- THEN
- RETURN(false);
- END_IF;
- END_REPEAT;
- ELSE
- RETURN(false);
- END_IF;
- END_REPEAT;
- 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 : tuple_space;
- 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);
- 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);
- 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 ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CHARACTERIZED_CLASS'] * TYPEOF(item)) = 0)
- THEN
- RETURN(false);
- END_IF;
- END_REPEAT;
- END_IF;
- IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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(['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)) =
- 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 ('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() ||
- 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);
- 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);
- 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 : maths_space;
- 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.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;
- 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 : elementary_space_enumerators;
- 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 : maths_space;
- 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 : maths_space;
- 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);
- 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;
- 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;
- 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;
- 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;
- 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;
- 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;
- 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_sizes(max : INTEGER;
- point_lists : LIST OF point_cloud_dataset) : BOOLEAN;
-LOCAL
- ndatasets : INTEGER := SIZEOF(point_lists);
- result : BOOLEAN := true;
-END_LOCAL;
- REPEAT i := 1 TO (ndatasets - 1);
- IF (SIZEOF(point_lists[i].point_coordinates) <> max)
- THEN
- result := false;
- RETURN(result);
- END_IF;
- END_REPEAT;
- IF (SIZEOF(point_lists[ndatasets].point_coordinates) > max)
- THEN
- result := false;
- RETURN(result);
- END_IF;
- RETURN(result);
-END_FUNCTION;
-
-FUNCTION constraints_composite_curve_on_surface(c : composite_curve_on_surface) : BOOLEAN;
-LOCAL
- n_segments : INTEGER := SIZEOF(c.segments);
-END_LOCAL;
- REPEAT k := 1 TO n_segments;
- IF (NOT ('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
- RETURN(false);
- END_IF;
- END_REPEAT;
- RETURN(true);
-END_FUNCTION;
-
-FUNCTION constraints_geometry_shell_based_surface_model(m : shell_based_surface_model) : BOOLEAN;
-LOCAL
- result : BOOLEAN := true;
-END_LOCAL;
- REPEAT j := 1 TO SIZEOF(m.sbsm_boundary);
- IF (NOT ('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);
- END_IF;
- END_REPEAT;
- RETURN(result);
-END_FUNCTION;
-
-FUNCTION constraints_geometry_shell_based_wireframe_model(m : shell_based_wireframe_model) : BOOLEAN;
-LOCAL
- result : BOOLEAN := true;
-END_LOCAL;
- REPEAT j := 1 TO SIZEOF(m.sbwm_boundary);
- IF (NOT ('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);
- 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;
- (* Find sum of knot multiplicities. *)
- sum := knot_mult[1];
- REPEAT i := 2 TO up_knots;
- sum := sum + knot_mult[i];
- END_REPEAT;
- (* Check limits holding for all B-spline parametrisations *)
- IF (degree < 1) OR (up_knots < 2) OR (up_cp < degree) OR (sum <> (degree + up_cp + 2))
- THEN
- result := false;
- RETURN(result);
- END_IF;
- k := knot_mult[1];
- IF (k < 1) OR (k > degree + 1)
- THEN
- result := false;
- RETURN(result);
- END_IF;
- REPEAT i := 2 TO up_knots;
- IF (knot_mult[i] < 1) OR (knots[i] <= knots[i - 1])
- THEN
- result := false;
- RETURN(result);
- END_IF;
- k := knot_mult[i];
- IF (i < up_knots) AND (k > degree)
- THEN
- result := false;
- RETURN(result);
- END_IF;
- IF (i = up_knots) AND (k > degree + 1)
- THEN
- result := false;
- RETURN(result);
- END_IF;
- END_REPEAT;
- RETURN(result);
-END_FUNCTION;
-
-FUNCTION constraints_param_local_b_spline(degree : INTEGER;
- knot_mult : LIST OF INTEGER;
- knots : LIST OF INTEGER) : BOOLEAN;
-LOCAL
- result : BOOLEAN := true;
- k : INTEGER;
- up_knots : INTEGER;
- sum : INTEGER;
-END_LOCAL;
- (* Find sum of knot multiplicities. *)
- up_knots := SIZEOF(knots);
- 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 (sum <> (degree + 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;
- (* first pointer shall be 1 or more *)
- IF (knots[1] < 1)
- THEN
- result := false;
- END_IF;
- REPEAT i := 2 TO up_knots;
- IF (knot_mult[i] < 1) OR (knots[i] <= knots[i - 1])
- THEN
- result := false;
- RETURN(result);
- END_IF;
- k := knot_mult[i];
- IF (i < up_knots) AND (k > degree)
- THEN
- result := false;
- RETURN(result);
- END_IF;
- IF (i = up_knots) AND (k > degree + 1)
- THEN
- result := false;
- RETURN(result);
- END_IF;
- END_REPEAT;
- RETURN(result);
-END_FUNCTION;
-
-FUNCTION constraints_rectangular_composite_surface(s : rectangular_composite_surface) : BOOLEAN;
- REPEAT i := 1 TO s.n_u;
- REPEAT j := 1 TO s.n_v;
- IF NOT (('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);
- END_IF;
- END_REPEAT;
- END_REPEAT;
- (* Check the transition codes, omitting the last row or column *)
- REPEAT i := 1 TO s.n_u - 1;
- REPEAT j := 1 TO s.n_v;
- IF s.segments[i][j].u_transition = discontinuous
- THEN
- RETURN(false);
- END_IF;
- END_REPEAT;
- END_REPEAT;
- REPEAT i := 1 TO s.n_u;
- REPEAT j := 1 TO s.n_v - 1;
- IF s.segments[i][j].v_transition = discontinuous
- THEN
- RETURN(false);
- END_IF;
- END_REPEAT;
- END_REPEAT;
- RETURN(true);
-END_FUNCTION;
-
-FUNCTION constraints_scaling(factors : LIST OF REAL) : BOOLEAN;
-LOCAL
- result : BOOLEAN := true;
-END_LOCAL;
- REPEAT i := 1 TO SIZEOF(factors);
- IF NOT ({0.0 < factors[i] <= 1.0})
- THEN
- result := false;
- RETURN(result);
- END_IF;
- END_REPEAT;
- RETURN(result);
-END_FUNCTION;
-
-FUNCTION control_characters_free(s : STRING) : BOOLEAN;
-LOCAL
- ch : STRING;
-END_LOCAL;
- REPEAT i := 1 TO LENGTH(s);
- ch := s[i];
- IF (ch = '\x9') OR (ch = '\xA') OR (ch = '\xD')
- THEN
- RETURN(false);
- END_IF;
- END_REPEAT;
- RETURN(true);
-END_FUNCTION;
-
-FUNCTION 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 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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.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];
- conv_angle := plane_angle_for_pair_in_radian(pair, angle);
- IF NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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.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
- IF (dx > 0.0)
- THEN
- RETURN([0.0,0.0,ya]);
- ELSE
- RETURN([0.0,0.0,ra]);
- END_IF;
- ELSE
- IF (dz > 0.0)
- THEN
- RETURN([ya,0.0,0.0]);
- ELSE
- RETURN([ra,0.0,0.0]);
- END_IF;
- END_IF;
- END_IF;
- 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;
- 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]];
- IF (ABS(rotmat[1][3]) = 1.0)
- THEN
- BEGIN
- IF (rotmat[1][3] = 1.0)
- THEN
- pa := 0.5 * PI;
- ELSE
- pa := -0.5 * PI;
- END_IF;
- 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;
-
-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_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);
- 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);
- 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 : direction;
- 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.0;
- REPEAT i := 1 TO 3;
- mag := mag + res.direction_ratios[i] * res.direction_ratios[i];
- END_REPEAT;
- IF (mag > 0.0)
- THEN
- result := dummy_gri || vector(res, SQRT(mag));
- ELSE
- result := dummy_gri || vector(arg1, 0.0);
- END_IF;
- RETURN(result);
- END;
- END_IF;
-END_FUNCTION;
-
-FUNCTION curve_weights_positive(b : rational_b_spline_curve) : BOOLEAN;
-LOCAL
- result : BOOLEAN := true;
-END_LOCAL;
- REPEAT i := 0 TO b.upper_index_on_control_points;
- IF b.weights[i] <= 0.0
- THEN
- result := false;
- RETURN(result);
- END_IF;
- END_REPEAT;
- RETURN(result);
-END_FUNCTION;
-
-FUNCTION default_tolerance_table_cell_wr2(agg : compound_item_definition) : BOOLEAN;
- BEGIN
- IF SIZEOF(agg) <= 5
- THEN
- RETURN(true);
- ELSE
- RETURN(false);
- END_IF;
- END;
-END_FUNCTION;
-
-FUNCTION default_tolerance_table_cell_wr3(agg : compound_item_definition) : BOOLEAN;
- BEGIN
- IF (SIZEOF(QUERY(i
- <* agg
- | (('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);
- 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
- | (('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
- | (('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);
- 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
- | ('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
- | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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;
-(* '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);
- set_of_input_types := set_of_input_types + 'GENERIC';
- REPEAT i := 1 TO number_of_input_instances;
- 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;
- 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 : 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) 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;
--- Internal utility function:
-FUNCTION process_product_space(spc : product_space;
- idx : INTEGER;
- 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.0, 0.0, 0.0, 0.0);
-END_LOCAL;
- IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DERIVED_UNIT' IN TYPEOF(x)
- THEN
- REPEAT i := LOINDEX(x\derived_unit.elements) TO HIINDEX(x\derived_unit.elements);
- result.length_exponent := result.length_exponent +
- (x\derived_unit.elements[i]\derived_unit_element.exponent *
- x\derived_unit.elements[i]\derived_unit_element.unit\named_unit.dimensions.length_exponent);
- result.mass_exponent := result.mass_exponent +
- (x\derived_unit.elements[i]\derived_unit_element.exponent *
- x\derived_unit.elements[i]\derived_unit_element.unit\named_unit.dimensions.mass_exponent);
- result.time_exponent := result.time_exponent +
- (x\derived_unit.elements[i]\derived_unit_element.exponent *
- x\derived_unit.elements[i]\derived_unit_element.unit\named_unit.dimensions.time_exponent);
- result.electric_current_exponent := result.electric_current_exponent +
- (x\derived_unit.elements[i]\derived_unit_element.exponent *
- x\derived_unit.elements[i]\derived_unit_element.unit\named_unit.dimensions.electric_current_exponent);
- result.thermodynamic_temperature_exponent := result.thermodynamic_temperature_exponent +
- (x\derived_unit.elements[i]\derived_unit_element.exponent *
- x\derived_unit.elements[i]\derived_unit_element.unit\named_unit.dimensions.thermodynamic_temperature_exponent);
- result.amount_of_substance_exponent := result.amount_of_substance_exponent +
- (x\derived_unit.elements[i]\derived_unit_element.exponent *
- x\derived_unit.elements[i]\derived_unit_element.unit\named_unit.dimensions.amount_of_substance_exponent);
- result.luminous_intensity_exponent := result.luminous_intensity_exponent +
- (x\derived_unit.elements[i]\derived_unit_element.exponent *
- x\derived_unit.elements[i]\derived_unit_element.unit\named_unit.dimensions.luminous_intensity_exponent);
- END_REPEAT;
- ELSE
- result := x\named_unit.dimensions;
- END_IF;
- RETURN(result);
-END_FUNCTION;
-
-FUNCTION 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);
- 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;
- 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 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CARTESIAN_POINT' IN TYPEOF(item)
- THEN
- dim := SIZEOF(item\cartesian_point.coordinates);
- RETURN(dim);
- END_IF;
- IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DIRECTION' IN TYPEOF(item)
- THEN
- dim := SIZEOF(item\direction.direction_ratios);
- RETURN(dim);
- END_IF;
- IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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.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;
-
-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);
- IF str[i] = '.'
- THEN
- n := n + 1;
- END_IF;
- END_REPEAT;
- RETURN(n);
-END_FUNCTION;
-
-FUNCTION dot_product(arg1 : direction;
- 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.0;
- REPEAT i := 1 TO ndim;
- scalar := scalar + vec1.direction_ratios[i] * vec2.direction_ratios[i];
- END_REPEAT;
- END;
- END_IF;
- END_IF;
- RETURN(scalar);
-END_FUNCTION;
-
-FUNCTION 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);
- 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.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.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 ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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;
--- 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;
-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 : REAL; a : REAL; a_in : BOOLEAN; VAR amin : REAL; VAR amax : REAL; VAR amin_in : BOOLEAN;
- VAR 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.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.0;
- xmax : REAL := 0.0;
- ymin : REAL := 0.0;
- ymax : REAL := 0.0;
- xc : REAL := 0.0;
- yc : REAL := 0.0;
- xmin_in : BOOLEAN := false;
- xmax_in : BOOLEAN := false;
- ymin_in : BOOLEAN := false;
- ymax_in : BOOLEAN := false;
- rmin : REAL := -1.0;
- rmax : REAL := -1.0;
- amin : REAL := 4.0;
- amax : REAL := -4.0;
- 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.0;
- a : REAL := 0.0;
- r : REAL := 0.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.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.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.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
- 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.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.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.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.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.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.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.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.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.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;
-
-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.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 : REAL := 0.0;
- yc : REAL := 0.0;
- xmin : REAL := 0.0;
- xmax : REAL := 0.0;
- ymin : REAL := 0.0;
- ymax : REAL := 0.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.0;
- r : REAL := 0.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.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;
- 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;
- 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;
- 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;
- 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;
--- 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;
-PROCEDURE angle_range(VAR amin : REAL; VAR 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;
-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;
-PROCEDURE find_aminmax(ab : REAL; a0 : REAL; a1 : REAL; a2 : REAL; a3 : REAL; in0 : BOOLEAN; in1 : BOOLEAN;
- in2 : BOOLEAN; in3 : BOOLEAN; VAR amin : REAL; VAR amax : REAL; VAR amin_in : BOOLEAN;
- VAR 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.0;
- yp : REAL := 0.0;
- xc : REAL := 0.0;
- yc : REAL := 0.0;
- rmax : REAL := 0.0;
- rmin : REAL := 0.0;
- amin : REAL := 0.0;
- amax : REAL := 0.0;
- rc : REAL := 0.0;
- acp : REAL := 0.0;
- apc : REAL := 0.0;
- rmax_in : BOOLEAN := false;
- rmin_in : BOOLEAN := false;
- amin_in : BOOLEAN := false;
- amax_in : BOOLEAN := false;
- rmxp : REAL := 0.0;
- rmnp : REAL := 0.0;
- x : REAL := 0.0;
- y : REAL := 0.0;
- r : REAL := 0.0;
- a : REAL := 0.0;
- ab : REAL := 0.0;
- r0 : REAL := 0.0;
- a0 : REAL := 0.0;
- r1 : REAL := 0.0;
- a1 : REAL := 0.0;
- r2 : REAL := 0.0;
- a2 : REAL := 0.0;
- r3 : REAL := 0.0;
- a3 : REAL := 0.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.0 * 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.0 * 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.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
- 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
- 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.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;
- 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.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
- 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
- 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.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
- 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.0 * PI
- THEN
- a := angle(aitp.min);
- IF rc > rmnp
- THEN
- IF max_included(aitp)
- THEN
- RETURN(?);
- 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
- 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.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;
- 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.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
- amin := -PI;
- amin_in := false;
- amax := PI;
- amax_in := true;
- IF (rmin = 0.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.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
- 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.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 : maths_function;
- 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 : maths_space;
- 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);
- 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
- 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);
- 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
- 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 : maths_value;
- val2 : maths_value) : LOGICAL;
-FUNCTION mem_of_vs(val1 : maths_value;
- 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);
- 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 : elementary_space_enumerators;
- 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);
- item := aia\applied_external_identification_assignment.items[i];
- IF (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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 : INTEGER;
- 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;
-
-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);
- 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;
-
-FUNCTION face_bound_reversed(a_face_bound : face_bound) : face_bound;
-LOCAL
- 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)) ||
- 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 ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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 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 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 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);
- 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;
- 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);
- 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([]);
- 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)
- | '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]);
- 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)
- | '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]);
- 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,
- '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));
- local_p_d_s := bag_to_set(local_p_d_s2);
- 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],
- '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;
- local_s_d_r := bag_to_set(local_s_d_r2);
- REPEAT i := 1 TO HIINDEX(local_s_d_r);
- IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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,
- 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION'));
- REPEAT i := 1 TO HIINDEX(local_p_d);
- local_s_d_r2 := local_s_d_r2 +
- QUERY(pdr
- <* USEDIN(local_p_d[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;
- local_s_d_r := bag_to_set(local_s_d_r2);
- REPEAT i := 1 TO HIINDEX(local_s_d_r);
- IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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 : direction;
- arg : direction) : direction;
-LOCAL
- x_axis : direction;
- v : direction;
- z : direction;
- x_vec : vector;
-END_LOCAL;
- IF (NOT EXISTS(z_axis))
- THEN
- RETURN(?);
- ELSE
- z := normalise(z_axis);
- IF NOT EXISTS(arg)
- THEN
- IF ((z.direction_ratios <> [1.0,0.0,0.0]) AND (z.direction_ratios <> [-1.0,0.0,0.0]))
- THEN
- v := dummy_gri || direction([1.0,0.0,0.0]);
- ELSE
- v := dummy_gri || direction([0.0,1.0,0.0]);
- END_IF;
- ELSE
- IF (arg.dim <> 3)
- THEN
- RETURN(?);
- END_IF;
- IF ((cross_product(arg, z).magnitude) = 0.0)
- THEN
- RETURN(?);
- ELSE
- v := normalise(arg);
- END_IF;
- END_IF;
- x_vec := scalar_times_vector(dot_product(v, z), z);
- x_axis := vector_difference(v, x_vec).orientation;
- x_axis := normalise(x_axis);
- END_IF;
- RETURN(x_axis);
-END_FUNCTION;
-
-FUNCTION 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;
- 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;
- 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);
- 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);
- 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(['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;
- IF SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CIRCLE',
- 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ELLIPSE',
- 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.TRIMMED_CURVE'] *
- TYPEOF(cv)) =
- 1
- THEN
- RETURN(true);
- ELSE
- IF (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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 (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CURVE_REPLICA' IN TYPEOF(cv)
- THEN
- 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 ('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
- IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POLYLINE' IN TYPEOF(cv)
- THEN
- IF (SIZEOF(cv\polyline.points) >= 3)
- THEN
- RETURN(true);
- END_IF;
- ELSE
- IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CARTESIAN_POINT' IN TYPEOF(pnt)
- THEN
- RETURN(true);
- ELSE
- IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POINT_ON_CURVE' IN TYPEOF(pnt)
- THEN
- RETURN(gbsf_check_curve(pnt\point_on_curve.basis_curve));
- ELSE
- IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POINT_ON_SURFACE' IN TYPEOF(pnt)
- THEN
- 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(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 (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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(['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)) =
- 1
- THEN
- RETURN(true);
- ELSE
- IF (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SURFACE_REPLICA' IN TYPEOF(sf)
- THEN
- RETURN(gbsf_check_surface(sf\surface_replica.parent_surface));
- ELSE
- IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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 geometric_dimensionalities_in_contexts(grcs : SET [1 : ?] OF geometric_representation_context) : INTEGER;
-LOCAL
- grcs_1d : INTEGER := 0;
- grcs_2d : INTEGER := 0;
- grcs_3d : INTEGER := 0;
-END_LOCAL;
- IF (SIZEOF(grcs) = 1)
- THEN
- RETURN(grcs[1]\geometric_representation_context.coordinate_space_dimension);
- ELSE
- REPEAT i := 1 TO HIINDEX(grcs);
- IF (grcs[i]\geometric_representation_context.coordinate_space_dimension = 1)
- THEN
- grcs_1d := grcs_1d + 1;
- ELSE
- IF (grcs[i]\geometric_representation_context.coordinate_space_dimension = 2)
- THEN
- grcs_2d := grcs_2d + 1;
- ELSE
- IF (grcs[i]\geometric_representation_context.coordinate_space_dimension = 3)
- THEN
- grcs_3d := grcs_3d + 1;
- END_IF;
- END_IF;
- END_IF;
- END_REPEAT;
- END_IF;
- IF (grcs_1d + grcs_2d = 0)
- THEN
- RETURN(3);
- ELSE
- IF (grcs_1d + grcs_3d = 0)
- THEN
- RETURN(2);
- ELSE
- IF (grcs_2d + grcs_3d = 0)
- THEN
- RETURN(1);
- ELSE
- RETURN(0);
- END_IF;
- END_IF;
- END_IF;
-END_FUNCTION;
-
-FUNCTION get_aggregate_id_value(obj : id_attribute_select) : identifier;
-LOCAL
- aggregate_id_bag : BAG OF aggregate_id_attribute := (USEDIN(obj,
- 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.AGGREGATE_ID_ATTRIBUTE.IDENTIFIED_ITEM'));
-END_LOCAL;
- IF SIZEOF(aggregate_id_bag) = 1
- THEN
- RETURN(aggregate_id_bag[1].attribute_value);
- ELSE
- RETURN(?);
- END_IF;
-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,
- 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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);
- 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);
- 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);
- IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DOCUMENT_PRODUCT_EQUIVALENCE' IN TYPEOF(dpas[j])
- THEN
- IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PCURVE' IN TYPEOF(c)
- THEN
- surfs := [c\pcurve.basis_surface];
- ELSE
- IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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;
- surfs := surfs * get_basis_surface(c\composite_curve.segments[i].parent_curve);
- END_REPEAT;
- END_IF;
- END_IF;
- RETURN(surfs);
-END_FUNCTION;
-
-FUNCTION get_coordinate_values(source : tessellated_surface_item) : coordinates_list;
-LOCAL
- coordinate_values : coordinates_list;
- max : INTEGER;
-END_LOCAL;
- (* If source is of type tessellated_face its single coordinates_list is returned *)
- CASE true OF
- 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.TESSELLATED_FACE' IN
- TYPEOF(source) : BEGIN
- coordinate_values := source\tessellated_face.coordinates;
- RETURN(coordinate_values);
- END;
- 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.TESSELLATED_SURFACE_SET' IN
- TYPEOF(source) : BEGIN
- coordinate_values := source\tessellated_surface_set.coordinates;
- RETURN(coordinate_values);
- END;
- 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.TESSELLATED_SOLID' IN
- TYPEOF(source) : BEGIN
- IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.TESSELLATED_FACE' IN
- TYPEOF(source\tessellated_solid.items[1])
- THEN
- coordinate_values := source\tessellated_solid.items[1]\tessellated_face.coordinates;
- END_IF;
- IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.TESSELLATED_EDGE' IN
- TYPEOF(source\tessellated_solid.items[1])
- THEN
- coordinate_values := source\tessellated_solid.items[1]\tessellated_edge.coordinates;
- END_IF;
- IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.TESSELLATED_VERTEX' IN
- TYPEOF(source\tessellated_solid.items[1])
- THEN
- coordinate_values := source\tessellated_solid.items[1]\tessellated_vertex.coordinates;
- END_IF;
- max := SIZEOF(source\tessellated_solid.items);
- IF max = 1
- THEN
- RETURN(coordinate_values);
- ELSE
- REPEAT i := 2 TO max;
- IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.TESSELLATED_FACE' IN
- TYPEOF(source\tessellated_solid.items[i])
- THEN
- IF NOT (coordinate_values :=:
- source\tessellated_solid.items[i]\tessellated_face.coordinates)
- THEN
- RETURN(?);
- END_IF;
- END_IF;
- IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.TESSELLATED_EDGE' IN
- TYPEOF(source\tessellated_solid.items[i])
- THEN
- IF NOT (coordinate_values :=:
- source\tessellated_solid.items[i]\tessellated_edge.coordinates)
- THEN
- RETURN(?);
- END_IF;
- END_IF;
- IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.TESSELLATED_VERTEX' IN
- TYPEOF(source\tessellated_solid.items[i])
- THEN
- IF NOT (coordinate_values :=:
- source\tessellated_solid.items[i]\tessellated_vertex.coordinates)
- THEN
- RETURN(?);
- END_IF;
- END_IF;
- END_REPEAT;
- RETURN(coordinate_values);
- END_IF;
- END;
- 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.TESSELLATED_SHELL' IN
- TYPEOF(source) : BEGIN
- IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.TESSELLATED_FACE' IN
- TYPEOF(source\tessellated_shell.items[1])
- THEN
- coordinate_values := source\tessellated_shell.items[1]\tessellated_face.coordinates;
- END_IF;
- IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.TESSELLATED_EDGE' IN
- TYPEOF(source\tessellated_shell.items[1])
- THEN
- coordinate_values := source\tessellated_shell.items[1]\tessellated_edge.coordinates;
- END_IF;
- IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.TESSELLATED_VERTEX' IN
- TYPEOF(source\tessellated_shell.items[1])
- THEN
- coordinate_values := source\tessellated_shell.items[1]\tessellated_vertex.coordinates;
- END_IF;
- max := SIZEOF(source\tessellated_shell.items);
- IF max = 1
- THEN
- RETURN(coordinate_values);
- ELSE
- REPEAT i := 2 TO max;
- IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.TESSELLATED_FACE' IN
- TYPEOF(source\tessellated_shell.items[i])
- THEN
- IF NOT (coordinate_values :=:
- source\tessellated_shell.items[i]\tessellated_face.coordinates)
- THEN
- RETURN(?);
- END_IF;
- END_IF;
- IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.TESSELLATED_EDGE' IN
- TYPEOF(source\tessellated_shell.items[i])
- THEN
- IF NOT (coordinate_values :=:
- source\tessellated_shell.items[i]\tessellated_edge.coordinates)
- THEN
- RETURN(?);
- END_IF;
- END_IF;
- IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.TESSELLATED_VERTEX' IN
- TYPEOF(source\tessellated_shell.items[i])
- THEN
- IF NOT (coordinate_values :=:
- source\tessellated_shell.items[i]\tessellated_vertex.coordinates)
- THEN
- RETURN(?);
- END_IF;
- END_IF;
- END_REPEAT;
- RETURN(coordinate_values);
- END_IF;
- END;
- END_CASE;
-END_FUNCTION;
-
-FUNCTION get_descendant_occurrences(input : product_definition_occurrence) : SET [0 : ?] OF product_definition_specified_occurrence;
-LOCAL
- result : SET OF product_definition_specified_occurrence := input.child_occurrences;
-END_LOCAL;
- REPEAT i := 1 TO HIINDEX(input.child_occurrences) BY 1;
- result := result + get_descendant_occurrences(input.child_occurrences[i]);
- END_REPEAT;
- RETURN(result);
-END_FUNCTION;
-
-FUNCTION get_description_value(obj : description_attribute_select) : text;
-LOCAL
- 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
- 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);
- CASE true OF
- ('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
- 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.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;
- ('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
- 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,
- 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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);
- 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);
- 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,
- 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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 ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FACE_SURFACE' IN TYPEOF(sb))
- THEN
- result := sb\face_surface.face_geometry;
- ELSE
- IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CURVE_BOUNDED_SURFACE' IN TYPEOF(sb))
- THEN
- result := sb\curve_bounded_surface.basis_surface;
- ELSE
- IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANAR_CURVE_SELECT' IN TYPEOF(sb))
- THEN
- BEGIN
- IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CONIC' IN TYPEOF(sb))
- THEN
- result := dummy_gri || surface() || elementary_surface(sb\conic.position) || plane();
- END_IF;
- IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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 ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PCURVE' IN TYPEOF(sb))
- THEN
- result := sb\pcurve.basis_surface;
- END_IF;
- 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' 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])) AND
- ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANE' IN
- TYPEOF(sb\surface_curve.basis_surface[2])))
- THEN
- result := ?;
- ELSE
- IF ('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
- 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,
- '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);
- pdr_set := pdr_set +
- bag_to_set(USEDIN(pd_set[i],
- 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION'));
- END_REPEAT;
- RETURN(pdr_set);
-END_FUNCTION;
-
-FUNCTION get_relative_direction_2points(cp1 : cartesian_point;
- 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_representations_for_items(input : SET OF founded_item_select) : SET OF representation;
-LOCAL
- r_set : SET OF representation := [];
-END_LOCAL;
- REPEAT i := LOINDEX(input) TO HIINDEX(input);
- r_set := r_set + using_representations(input[i]);
- END_REPEAT;
- RETURN(r_set);
-END_FUNCTION;
-
-FUNCTION get_role(obj : role_select) : object_role;
-LOCAL
- 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
- RETURN(role_bag[1].role);
- ELSE
- RETURN(?);
- END_IF;
-END_FUNCTION;
-
-FUNCTION get_root_shape_aspect(current : shape_aspect) : product_definition_shape;
- REPEAT WHILE ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CONSTITUENT_SHAPE_ASPECT' IN TYPEOF(current));
- current := current.parent;
- END_REPEAT;
- RETURN(current.of_shape);
-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,
- '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);
- 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;
- 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,
- '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)));
- 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], 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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 increasing_values_in_list(values : LIST [2 : ?] OF REAL) : BOOLEAN;
-LOCAL
- result : BOOLEAN := true;
- limit : INTEGER := SIZEOF(values);
-END_LOCAL;
- REPEAT i := 2 TO limit;
- IF values[i] <= values[i - 1]
- THEN
- result := false;
- END_IF;
- END_REPEAT;
- RETURN(result);
-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,
- 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DATA_QUALITY_DEFINITION_REPRESENTATION_RELATIONSHIP.USED_REPRESENTATION');
- REPEAT i := 1 TO SIZEOF(dqdr);
- 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);
- 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 ('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.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 ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.UNBOUND_VARIATIONAL_PARAMETER' IN TYPEOF(item))
- THEN
- BEGIN
- REPEAT i := 1 TO n;
- svri := QUERY(q
- <* reps[i]\representation.items
- | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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 ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FIXED_INSTANCE_ATTRIBUTE_SET' IN TYPEOF(item))
- THEN
- REPEAT i := 1 TO SIZEOF(item\fixed_instance_attribute_set.fixed_attributes);
- 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 ('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)
- | reps <> using_representations(q))) >
- 0
- THEN
- RETURN(true);
- END_IF;
- END_IF;
- IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.AUXILIARY_GEOMETRIC_REPRESENTATION_ITEM' IN TYPEOF(item))
- THEN
- BEGIN
- REPEAT i := 1 TO n;
- svri := QUERY(q
- <* reps[i]\representation.items
- | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.INT_LITERAL' IN TYPEOF(arg)
- THEN
- RETURN(true);
- END_IF;
- IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.REAL_LITERAL' IN TYPEOF(arg)
- THEN
- RETURN(false);
- END_IF;
- IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.INT_NUMERIC_VARIABLE' IN TYPEOF(arg)
- THEN
- RETURN(true);
- END_IF;
- IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.REAL_NUMERIC_VARIABLE' IN TYPEOF(arg)
- THEN
- RETURN(false);
- END_IF;
- IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ABS_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.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
- ('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
- ('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);
- IF NOT is_int_expr(arg\multiple_arity_numeric_expression.operands[i])
- THEN
- RETURN(false);
- END_IF;
- END_REPEAT;
- RETURN(true);
- END_IF;
- 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
- ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MOD_EXPRESSION' IN TYPEOF(arg))
- THEN
- RETURN(true);
- END_IF;
- IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SLASH_EXPRESSION' IN TYPEOF(arg)
- THEN
- RETURN(false);
- END_IF;
- IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_FUNCTION' IN TYPEOF(arg)
- THEN
- RETURN(true);
- END_IF;
- IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.VALUE_FUNCTION' IN TYPEOF(arg)
- THEN
- IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.INT_VALUE_FUNCTION' IN TYPEOF(arg)
- THEN
- RETURN(true);
- ELSE
- RETURN(false);
- END_IF;
- END_IF;
- IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.INTEGER_DEFINED_FUNCTION' IN TYPEOF(arg)
- THEN
- RETURN(true);
- END_IF;
- IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.REAL_DEFINED_FUNCTION' IN TYPEOF(arg)
- THEN
- RETURN(false);
- END_IF;
- IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.BOOLEAN_DEFINED_FUNCTION' IN TYPEOF(arg)
- THEN
- RETURN(false);
- END_IF;
- IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SIMPLE_NUMERIC_EXPRESSION' IN TYPEOF(arg)
- THEN
- RETURN(true);
- END_IF;
- IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SQL_MAPPABLE_DEFINED_FUNCTION' IN TYPEOF(arg)
- THEN
- RETURN(true);
- END_IF;
- 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
- ('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
- ('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);
- IF NOT is_sql_mappable(arg\multiple_arity_numeric_expression.operands[i])
- THEN
- RETURN(false);
- END_IF;
- END_REPEAT;
- RETURN(true);
- END_IF;
- 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
- ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POWER_EXPRESSION' IN TYPEOF(arg))
- THEN
- RETURN(false);
- END_IF;
- IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SIMPLE_BOOLEAN_EXPRESSION' IN TYPEOF(arg)
- THEN
- RETURN(true);
- END_IF;
- 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
- ('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
- ('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);
- IF NOT is_sql_mappable(arg\multiple_arity_boolean_expression.operands[i])
- THEN
- RETURN(false);
- END_IF;
- END_REPEAT;
- RETURN(true);
- END_IF;
- IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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 ('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) 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
- ('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
- ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.REPRESENTATION.ITEMS') *
- cntxt.representations_in_context) >
- 0
- THEN
- RETURN(true);
- ELSE
- y := QUERY(z
- <* USEDIN(item, '')
- | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.REPRESENTATION_ITEM' IN TYPEOF(z));
- IF SIZEOF(y) > 0
- THEN
- REPEAT i := 1 TO HIINDEX(y);
- 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);
- loops := loops + (f.bounds[i].bound);
- END_REPEAT;
- RETURN(loops);
-END_FUNCTION;
-
-FUNCTION list_of_topology_reversed(a_list : list_of_reversible_topology_item) : list_of_reversible_topology_item;
-LOCAL
- the_reverse : list_of_reversible_topology_item;
-END_LOCAL;
- the_reverse := [];
- REPEAT i := 1 TO SIZEOF(a_list);
- the_reverse := topology_reversed(a_list[i]) + the_reverse;
- END_REPEAT;
- RETURN(the_reverse);
-END_FUNCTION;
-
-FUNCTION list_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;
-
-FUNCTION list_to_array(lis : LIST [0 : ?] OF GENERIC : T;
- low : INTEGER;
- u : INTEGER) : ARRAY [low : u] OF GENERIC : T;
-LOCAL
- n : INTEGER;
- res : ARRAY [low : u] OF GENERIC : T;
-END_LOCAL;
- n := SIZEOF(lis);
- IF (n <> (u - low + 1))
- THEN
- RETURN(?);
- ELSE
- res := [lis[1]:n];
- REPEAT i := 2 TO n;
- res[low + i - 1] := lis[i];
- END_REPEAT;
- RETURN(res);
- END_IF;
-END_FUNCTION;
-
-FUNCTION list_to_set(l : LIST [0 : ?] OF GENERIC : T) : SET OF GENERIC : T;
-LOCAL
- s : SET OF GENERIC : T := [];
-END_LOCAL;
- REPEAT i := 1 TO SIZEOF(l);
- s := s + l[i];
- END_REPEAT;
- RETURN(s);
-END_FUNCTION;
-
-FUNCTION make_array_of_array(lis : LIST [1 : ?] OF LIST [1 : ?] OF GENERIC : T;
- low1 : INTEGER;
- u1 : INTEGER;
- low2 : INTEGER;
- u2 : INTEGER) : ARRAY [low1 : u1] OF ARRAY [low2 : u2] OF GENERIC : T;
-LOCAL
- res : ARRAY [low1 : u1] OF ARRAY [low2 : u2] OF GENERIC : T;
-END_LOCAL;
- (* Check input dimensions for consistency *)
- IF (u1 - low1 + 1) <> SIZEOF(lis)
- THEN
- RETURN(?);
- END_IF;
- IF (u2 - low2 + 1) <> SIZEOF(lis[1])
- THEN
- RETURN(?);
- END_IF;
- (* Initialise res with values from lis[1] *)
- res := [list_to_array(lis[1], low2, u2):(u1 - low1 + 1)];
- REPEAT i := 2 TO HIINDEX(lis);
- IF (u2 - low2 + 1) <> SIZEOF(lis[i])
- THEN
- RETURN(?);
- END_IF;
- res[low1 + i - 1] := list_to_array(lis[i], low2, u2);
- END_REPEAT;
- RETURN(res);
-END_FUNCTION;
-
-FUNCTION make_array_of_array_of_array(lis : LIST [1 : ?] OF LIST [1 : ?] OF LIST [1 : ?] OF GENERIC : T;
- low1 : INTEGER;
- u1 : INTEGER;
- low2 : INTEGER;
- u2 : INTEGER;
- low3 : INTEGER;
- u3 : INTEGER) : ARRAY [low1 : u1] OF ARRAY [low2 : u2] OF ARRAY [low3 : u3] OF GENERIC : T;
-LOCAL
- res : ARRAY [low1 : u1] OF ARRAY [low2 : u2] OF ARRAY [low3 : u3] 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 := [make_array_of_array(lis[1], low2, u2, low3, u3):(u1 - low1 + 1)];
- REPEAT i := 2 TO HIINDEX(lis);
- IF (u2 - low2 + 1) <> SIZEOF(lis[i])
- THEN
- RETURN(?);
- END_IF;
- res[low1 + i - 1] := make_array_of_array(lis[i], low2, u2, low3, u3);
- 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 : 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;
-
-FUNCTION make_complex_number_literal(rpart : REAL;
- 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(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 : maths_number;
- 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;
-
-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 md_pmi_name_and_type_correlation(input : annotation_placeholder_occurrence) : BOOLEAN;
-LOCAL
- pmi_role : STRING := input\annotation_placeholder_occurrence.item\representation_item.name;
- dmiawps : SET OF draughting_model_item_association_with_placeholder := input\annotation_placeholder_occurrence.the_draughting_model_item_association_with_placeholders;
- v : SET OF STRING := [];
-END_LOCAL;
- IF (SIZEOF(dmiawps) = 1)
- THEN
- v := TYPEOF(dmiawps[1]\draughting_model_item_association_with_placeholder.definition);
- ELSE
- RETURN(false);
- END_IF;
- IF NOT (pmi_role IN
- ['angular dimension',
- 'angularity',
- 'circular runout',
- 'circularity',
- 'coaxiality',
- 'concentricity',
- 'curve dimension',
- 'cylindricity',
- 'datum',
- 'datum target',
- 'diameter dimension',
- 'flatness',
- 'general dimension',
- 'general note',
- 'general tolerance',
- 'label',
- 'linear dimension',
- 'note',
- 'ordinate dimension',
- 'parallelism',
- 'perpendicularity',
- 'position',
- 'profile of line',
- 'profile of surface',
- 'radial dimension',
- 'roundness',
- 'runout',
- 'straightness',
- 'surface roughness',
- 'symmetry',
- 'total runout'])
- THEN
- RETURN(?);
- END_IF;
- CASE pmi_role OF
- 'angular dimension' : IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ANGULAR_LOCATION' IN v
- THEN
- RETURN(true);
- END_IF;
- 'angularity' : IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ANGULARITY_TOLERANCE' IN v
- THEN
- RETURN(true);
- END_IF;
- 'circular runout' : IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CIRCULAR_RUNOUT_TOLERANCE' IN v
- THEN
- RETURN(true);
- END_IF;
- 'circularity' : IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ROUNDNESS_TOLERANCE' IN v
- THEN
- RETURN(true);
- END_IF;
- 'coaxiality' : IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COAXIALITY_TOLERANCE' IN v
- THEN
- RETURN(true);
- END_IF;
- 'concentricity' : IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CONCENTRICITY_TOLERANCE' IN v
- THEN
- RETURN(true);
- END_IF;
- 'curve dimension' : IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DIMENSIONAL_SIZE' IN v
- THEN
- RETURN(true);
- END_IF;
- 'cylindricity' : IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CYLINDRICITY_TOLERANCE' IN v
- THEN
- RETURN(true);
- END_IF;
- 'datum' : IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DATUM' IN v
- THEN
- RETURN(true);
- END_IF;
- 'datum target' : IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DATUM_TARGET' IN v
- THEN
- RETURN(true);
- END_IF;
- 'diameter dimension' : IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DIMENSIONAL_SIZE' IN v
- THEN
- RETURN(true);
- END_IF;
- 'flatness' : IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FLATNESS_TOLERANCE' IN v
- THEN
- RETURN(true);
- END_IF;
- 'general dimension' : IF (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DIMENSIONAL_SIZE',
- 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DIMENSIONAL_LOCATION'] *
- v) =
- 1)
- THEN
- RETURN(true);
- END_IF;
- 'general note' : IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION' IN v
- THEN
- RETURN(true);
- END_IF;
- 'general tolerance' : IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.GEOMETRIC_TOLERANCE' IN v
- THEN
- RETURN(true);
- END_IF;
- 'label' : IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION' IN v
- THEN
- RETURN(true);
- END_IF;
- 'linear dimension' : IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DIMENSIONAL_SIZE' IN v
- THEN
- RETURN(true);
- END_IF;
- 'note' : IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION' IN v
- THEN
- RETURN(true);
- END_IF;
- 'ordinate dimension' : IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DIMENSIONAL_SIZE' IN v
- THEN
- RETURN(true);
- END_IF;
- 'parallelism' : IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PARALLELISM_TOLERANCE' IN v
- THEN
- RETURN(true);
- END_IF;
- 'perpendicularity' : IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PERPENDICULARITY_TOLERANCE' IN v
- THEN
- RETURN(true);
- END_IF;
- 'position' : IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POSITION_TOLERANCE' IN v
- THEN
- RETURN(true);
- END_IF;
- 'profile of line' : IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LINE_PROFILE_TOLERANCE' IN v
- THEN
- RETURN(true);
- END_IF;
- 'profile of surface' : IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SURFACE_PROFILE_TOLERANCE' IN v
- THEN
- RETURN(true);
- END_IF;
- 'radial dimension' : IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DIMENSIONAL_SIZE' IN v
- THEN
- RETURN(true);
- END_IF;
- 'roundness' : IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ROUNDNESS_TOLERANCE' IN v
- THEN
- RETURN(true);
- END_IF;
- 'runout' : IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.TOTAL_RUNOUT_TOLERANCE' IN v
- THEN
- RETURN(true);
- END_IF;
- 'straightness' : IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.STRAIGHTNESS_TOLERANCE' IN v
- THEN
- RETURN(true);
- END_IF;
- 'surface roughness' : IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION' IN v
- THEN
- RETURN(true);
- END_IF;
- 'symmetry' : IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SYMMETRY_TOLERANCE' IN v
- THEN
- RETURN(true);
- END_IF;
- 'total runout' : IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.TOTAL_RUNOUT_TOLERANCE' IN v
- THEN
- RETURN(true);
- END_IF;
- OTHERWISE: RETURN(false);
- END_CASE;
-END_FUNCTION;
-
-FUNCTION md_valid_content_in_geometric_set_for_placeholder(input : geometric_set) : BOOLEAN;
-LOCAL
- pass : BOOLEAN := true;
- boxes : BAG OF planar_box := [];
- texts : BAG OF annotation_text := [];
- placements : BAG OF placement := [];
- points : BAG OF point := [];
-END_LOCAL;
- REPEAT i := LOINDEX(input\geometric_set.elements) TO HIINDEX(input\geometric_set.elements);
- IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POINT' IN TYPEOF(input\geometric_set.elements[i])) AND
- NOT (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CARTESIAN_POINT',
- 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POINT_ON_CURVE',
- 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POINT_ON_SURFACE'] *
- TYPEOF(input\geometric_set.elements[i])) =
- 1)
- THEN
- pass := false;
- ELSE
- points := points + input\geometric_set.elements[i];
- END_IF;
- IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANAR_BOX' IN TYPEOF(input\geometric_set.elements[i])
- THEN
- boxes := boxes + input\geometric_set.elements[i];
- END_IF;
- IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ANNOTATION_TEXT' IN TYPEOF(input\geometric_set.elements[i])
- THEN
- texts := texts + input\geometric_set.elements[i];
- END_IF;
- IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLACEMENT' IN TYPEOF(input\geometric_set.elements[i])
- THEN
- placements := placements + input\geometric_set.elements[i];
- END_IF;
- END_REPEAT;
- IF SIZEOF(boxes) > 1
- THEN
- pass := false;
- END_IF;
- IF SIZEOF(texts) > 1
- THEN
- pass := false;
- END_IF;
- IF SIZEOF(points) < 1
- THEN
- pass := false;
- END_IF;
- IF SIZEOF(placements) <> 1
- THEN
- pass := false;
- END_IF;
- RETURN(pass);
-END_FUNCTION;
-
-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;
-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 <= 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);
- 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);
- 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]);
- 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));
- 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;
- 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 := ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POLY_LOOP' IN TYPEOF(l[1]));
- REPEAT i := 2 TO SIZEOF(l);
- IF (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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;
-(* 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
- *)
- (* 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(['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;
- (* b_spline_curves shall not self-intersect
- *)
- IF (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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(['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
- IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CURVE_REPLICA' IN TYPEOF(cv)
- THEN
- 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 ('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
- IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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);
- IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POLYLINE' IN TYPEOF(cv)
- THEN
- IF (SIZEOF(cv\polyline.points) >= 3)
- THEN
- RETURN(true);
- END_IF;
- END_IF;
- END_IF;
- END_IF;
- END_IF;
- END_IF;
- END_IF;
- END_IF;
- (* FALSE is returned if the input parameter cv is not a valid curve.
- *)
- RETURN(false);
-END_FUNCTION;
-
-FUNCTION msf_surface_check(surf : surface) : BOOLEAN;
-(* This function varifies the validity of a surface in the
- context of a manifold surface model.
- *)
-(* elementary_surfaces are valid surface types
- *)
- (* This function varifies the validity of a surface in the
- context of a manifold surface model.
- *)
- (* elementary_surfaces are valid surface types
- *)
- IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ELEMENTARY_SURFACE' IN TYPEOF(surf)
- THEN
- RETURN(true);
- ELSE
- IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SWEPT_SURFACE' IN TYPEOF(surf)
- THEN
- RETURN(msf_curve_check(surf\swept_surface.swept_curve));
- ELSE
- IF (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SURFACE_REPLICA' IN TYPEOF(surf)
- THEN
- RETURN(msf_surface_check(surf\surface_replica.parent_surface));
- ELSE
- IF (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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;
-(* 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
- *)
- (* 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(['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
- IF (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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(['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
- IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CURVE_REPLICA' IN TYPEOF(cv)
- THEN
- 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 ('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
- IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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);
- IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POLYLINE' IN TYPEOF(cv)
- THEN
- IF (SIZEOF(cv\polyline.points) >= 3)
- THEN
- RETURN(true);
- END_IF;
- END_IF;
- END_IF;
- END_IF;
- END_IF;
- END_IF;
- END_IF;
- END_IF;
- END_IF;
- (* FALSE is returned if the input parameter cv is not a valid curve.
- *)
- RETURN(false);
-END_FUNCTION;
-
-FUNCTION nmsf_surface_check(surf : surface) : BOOLEAN;
-(* This function varifies the validity of a surface in the
- context of a non-manifold surface model.
- *)
-(* elementary_surfaces are valid surface types
- *)
- (* This function varifies the validity of a surface in the
- context of a non-manifold surface model.
- *)
- (* elementary_surfaces are valid surface types
- *)
- IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ELEMENTARY_SURFACE' IN TYPEOF(surf)
- THEN
- RETURN(true);
- ELSE
- IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SWEPT_SURFACE' IN TYPEOF(surf)
- THEN
- RETURN(nmsf_curve_check(surf\swept_surface.swept_curve));
- ELSE
- IF (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SURFACE_REPLICA' IN TYPEOF(surf)
- THEN
- RETURN(nmsf_surface_check(surf\surface_replica.parent_surface));
- ELSE
- IF (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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);
- 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.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 := ?;
- ELSE
- ndim := arg.dim;
- IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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);
- 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);
- 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
- 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 ('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() ||
- 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);
- 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);
- 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);
- 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;
- 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 ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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 ('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
- | '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 ('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 ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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;
-
-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);
- 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;
-
-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,
- 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EXTREME_INSTANCE.LOCATIONS_OF_EXTREME_VALUE'));
- REPEAT i := 1 TO HIINDEX(exti);
- 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);
- 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);
- 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);
- 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);
- 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;
-(*
- 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;
- *)
- (*
- 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;
-
-FUNCTION same_side(plane_pts : LIST [3 : 3] OF cartesian_point;
- test_points : LIST [2 : ?] OF cartesian_point) : BOOLEAN;
-LOCAL
- val1 : REAL;
- 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;
-
-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 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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;
-
-FUNCTION second_proj_axis(z_axis : direction;
- x_axis : direction;
- arg : direction) : direction;
-LOCAL
- y_axis : vector;
- v : direction;
- temp : vector;
-END_LOCAL;
- IF NOT EXISTS(arg)
- THEN
- v := dummy_gri || direction([0.0,1.0,0.0]);
- ELSE
- v := arg;
- END_IF;
- temp := scalar_times_vector(dot_product(v, z_axis), z_axis);
- y_axis := vector_difference(v, temp);
- temp := scalar_times_vector(dot_product(v, x_axis), x_axis);
- y_axis := vector_difference(y_axis, temp);
- y_axis := normalise(y_axis);
- RETURN(y_axis.orientation);
-END_FUNCTION;
-
-FUNCTION set_of_topology_reversed(a_set : set_of_reversible_topology_item) : set_of_reversible_topology_item;
-LOCAL
- the_reverse : set_of_reversible_topology_item;
-END_LOCAL;
- the_reverse := [];
- REPEAT i := 1 TO SIZEOF(a_set);
- the_reverse := the_reverse + topology_reversed(a_set[i]);
- END_REPEAT;
- RETURN(the_reverse);
-END_FUNCTION;
-
-FUNCTION 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;
-
-FUNCTION shell_reversed(a_shell : shell) : shell;
- IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.OPEN_SHELL' IN TYPEOF(a_shell))
- THEN
- RETURN(open_shell_reversed(a_shell));
- ELSE
- IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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;
-PROCEDURE parts(c : complex_number_literal; VAR x : REAL; VAR y : REAL);
- x := c.real_part;
- y := c.imag_part;
-END_PROCEDURE;
-FUNCTION makec(x : REAL;
- y : REAL) : complex_number_literal;
- RETURN(make_complex_number_literal(x, y));
-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);
- IF NOT (tn IN TYPEOF(tpl[i]))
- THEN
- RETURN(false);
- END_IF;
- END_REPEAT;
- RETURN(true);
- END_IF;
- RETURN(false);
-END_FUNCTION;
-
-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);
- 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_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_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_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);
- 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 : 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;
-
-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 : generic_expression;
- 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 : 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);
- 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] <= 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);
- 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;
-
-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;
-
-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);
- 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;
-
-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);
- 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);
- 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,
- 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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
- ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DIMENSIONAL_LOCATION' IN
- TYPEOF(input)) : RETURN(input\shape_aspect_relationship.relating_shape_aspect\shape_aspect.of_shape);
- ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DIMENSIONAL_SIZE' IN
- TYPEOF(input)) : RETURN(input\dimensional_size.applies_to\shape_aspect.of_shape);
- ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(input)) : RETURN(input);
- ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT' IN
- TYPEOF(input)) : RETURN(input\shape_aspect.of_shape);
- OTHERWISE: RETURN(?);
- END_CASE;
-END_FUNCTION;
-
-FUNCTION subspace_of(space1 : maths_space;
- 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;
- 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;
- 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);
- 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);
- 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);
- 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);
- END_REPEAT;
- END_IF;
- RETURN(expr);
-END_FUNCTION;
-
-FUNCTION surface_condition_correlation(pd : property_definition;
- rep : representation) : LOGICAL;
- CASE pd.name OF
- 'visual appearance', 'tactile appearance', 'contact ratio', 'hardness', 'treatment result', 'surface texture' : RETURN(pd.name =
- rep.name);
- OTHERWISE: RETURN(unknown);
- END_CASE;
-END_FUNCTION;
-
-FUNCTION surface_weights_positive(b : rational_b_spline_surface) : BOOLEAN;
-LOCAL
- result : BOOLEAN := true;
-END_LOCAL;
- REPEAT i := 0 TO b.u_upper;
- REPEAT j := 0 TO b.v_upper;
- IF (b.weights[i][j] <= 0.0)
- THEN
- result := false;
- RETURN(result);
- END_IF;
- END_REPEAT;
- END_REPEAT;
- RETURN(result);
-END_FUNCTION;
-
-FUNCTION topology_reversed(an_item : reversible_topology) : reversible_topology;
- IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EDGE' IN TYPEOF(an_item))
- THEN
- RETURN(edge_reversed(an_item));
- END_IF;
- IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PATH' IN TYPEOF(an_item))
- THEN
- RETURN(path_reversed(an_item));
- END_IF;
- IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FACE_BOUND' IN TYPEOF(an_item))
- THEN
- RETURN(face_bound_reversed(an_item));
- END_IF;
- IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FACE' IN TYPEOF(an_item))
- THEN
- RETURN(face_reversed(an_item));
- END_IF;
- IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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;
- 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
- ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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,
- '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.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;
- ('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)) : 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) 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;
- ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_REFERENCE' 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)) : 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);
- local_s_r := find_shape_representation_of_product_definition(local_p_d[i]);
- REPEAT j := 1 TO HIINDEX(local_s_r);
- 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;
- 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);
- local_s_r := find_shape_representation_of_shape_aspect(local_s_a[i]);
- REPEAT j := 1 TO HIINDEX(local_s_r);
- 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;
- 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 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.GENERIC_VARIABLE' IN TYPEOF(arg)
- THEN
- RETURN([arg]);
- END_IF;
- IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.UNARY_GENERIC_EXPRESSION' IN TYPEOF(arg)
- THEN
- RETURN(used_variables(arg\unary_generic_expression.operand));
- END_IF;
- IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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([]);
-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, ''))
- | ('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(z)));
- IF SIZEOF(next_items) > 0
- THEN
- REPEAT i := 1 TO HIINDEX(next_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(result_items);
-END_FUNCTION;
-
-FUNCTION using_product_definition_of_shape_aspect(item : shape_aspect) : product_definition;
- IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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,
- '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);
- IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION' IN
- TYPEOF(local_s_d_r[i]\property_definition_representation.definition))
- THEN
- IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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,
- '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);
- 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);
- 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);
- 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, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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;
- intermediate_items := using_items(item, []);
- IF SIZEOF(intermediate_items) > 0
- THEN
- REPEAT i := 1 TO HIINDEX(intermediate_items);
- result_bag := USEDIN(intermediate_items[i],
- 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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(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,
- '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));
- local_s_d_r := bag_to_set(local_s_d_r2);
- REPEAT i := 1 TO HIINDEX(local_s_d_r);
- IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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;
--- check for valid basic curve types
- 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',
- '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)) =
- 1
- THEN
- RETURN(true);
- ELSE
- RETURN(valid_basis_curve_in_2d_wireframe(crv\trimmed_curve.basis_curve));
- END_IF;
- ELSE
- IF (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.OFFSET_CURVE_2D') IN TYPEOF(crv))
- THEN
- RETURN(valid_basis_curve_in_2d_wireframe(crv\offset_curve_2d.basis_curve));
- ELSE
- IF (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CURVE_REPLICA') IN TYPEOF(crv))
- THEN
- RETURN(valid_basis_curve_in_2d_wireframe(crv\curve_replica.parent_curve));
- ELSE
- IF (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COMPOSITE_CURVE') IN TYPEOF(crv))
- THEN
- RETURN(SIZEOF(QUERY(ccs
- <* crv\composite_curve.segments
- | NOT (valid_basis_curve_in_2d_wireframe(ccs.parent_curve)))) =
- 0);
- END_IF;
- END_IF;
- END_IF;
- END_IF;
- END_IF;
- RETURN(false);
-END_FUNCTION;
-
-FUNCTION valid_calendar_date(date : calendar_date) : LOGICAL;
- CASE date.month_component OF
- 1 : RETURN({1 <= date.day_component <= 31});
- 2 : BEGIN
- IF (leap_year(date.year_component))
- THEN
- RETURN({1 <= date.day_component <= 29});
- ELSE
- RETURN({1 <= date.day_component <= 28});
- END_IF;
- END;
- 3 : RETURN({1 <= date.day_component <= 31});
- 4 : RETURN({1 <= date.day_component <= 30});
- 5 : RETURN({1 <= date.day_component <= 31});
- 6 : RETURN({1 <= date.day_component <= 30});
- 7 : RETURN({1 <= date.day_component <= 31});
- 8 : RETURN({1 <= date.day_component <= 31});
- 9 : RETURN({1 <= date.day_component <= 30});
- 10 : RETURN({1 <= date.day_component <= 31});
- 11 : RETURN({1 <= date.day_component <= 30});
- 12 : RETURN({1 <= date.day_component <= 31});
- END_CASE;
- RETURN(false);
-END_FUNCTION;
-
-FUNCTION valid_csg_2d_primitives(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)) : BEGIN
- 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.HALF_SPACE_2D',
- '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);
- ELSE
- RETURN(false);
- 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.second_operand));
- 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);
- 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
- ('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', '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));
- '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'] *
- 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))) =
- 1));
- OTHERWISE: RETURN(false);
- END_CASE;
-END_FUNCTION;
-
-FUNCTION valid_geometrically_bounded_wf_curve(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',
- '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)) =
- 1
- THEN
- RETURN(true);
- ELSE
- RETURN(valid_geometrically_bounded_wf_curve(crv\trimmed_curve.basis_curve));
- END_IF;
- ELSE
- IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.OFFSET_CURVE_3D' IN TYPEOF(crv)
- THEN
- RETURN(valid_geometrically_bounded_wf_curve(crv\offset_curve_3d.basis_curve));
- ELSE
- IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CURVE_REPLICA' IN TYPEOF(crv)
- THEN
- RETURN(valid_geometrically_bounded_wf_curve(crv\curve_replica.parent_curve));
- ELSE
- IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CARTESIAN_POINT' IN TYPEOF(pnt)
- THEN
- RETURN(true);
- ELSE
- IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POINT_ON_CURVE' IN TYPEOF(pnt)
- THEN
- RETURN(valid_geometrically_bounded_wf_curve(pnt\point_on_curve.basis_curve));
- ELSE
- IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POINT_REPLICA' IN TYPEOF(pnt)
- THEN
- RETURN(valid_geometrically_bounded_wf_point(pnt\point_replica.parent_pt));
- END_IF;
- END_IF;
- END_IF;
- RETURN(false);
-END_FUNCTION;
-
-FUNCTION valid_measure_value(m : measure_value) : BOOLEAN;
- IF ('REAL' IN TYPEOF(m))
- THEN
- RETURN(m > 0.0);
- ELSE
- IF ('INTEGER' IN TYPEOF(m))
- THEN
- RETURN(m > 0);
- ELSE
- RETURN(true);
- END_IF;
- END_IF;
-END_FUNCTION;
-
-FUNCTION valid_selected_instance_representation(pd : product_definition_or_assembly_relationship) : LOGICAL;
-LOCAL
- properties : SET OF property_definition := bag_to_set(QUERY(prd
- <* USEDIN(pd,
- 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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],
- '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);
- 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(['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;
- 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'))) >
- 1)
- THEN
- 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(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.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 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DOSE_EQUIVALENT_MEASURE' IN TYPEOF(m.value_component)
- THEN
- IF derive_dimensional_exponents(m.unit_component) <> dimensional_exponents(2.0, 0.0, -2.0, 0.0, 0.0, 0.0, 0.0)
- THEN
- RETURN(false);
- END_IF;
- END_IF;
- RETURN(true);
-END_FUNCTION;
-
-FUNCTION valid_wireframe_edge_curve(crv : curve) : BOOLEAN;
- IF SIZEOF(['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);
- ELSE
- IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CURVE_REPLICA' IN TYPEOF(crv)
- THEN
- RETURN(valid_wireframe_edge_curve(crv\curve_replica.parent_curve));
- ELSE
- IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CARTESIAN_POINT' IN TYPEOF(pnt)
- THEN
- RETURN(true);
- ELSE
- IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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,
- '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);
- 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);
- 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;
- 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);
- 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 := [];
- REPEAT j := 1 TO SIZEOF(scraa);
- 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);
- 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;
-
-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
- 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);
- 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,
- '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);
- 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;
- IF (SIZEOF(dir) = 0)
- THEN
- RETURN(true);
- END_IF;
- REPEAT i := 1 TO SIZEOF(dir);
- 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
- RETURN(true);
- END_IF;
- REPEAT i := 1 TO SIZEOF(sdiri);
- 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);
- 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;
-
-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,
- '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);
- 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;
- IF (SIZEOF(sdir) = 0)
- THEN
- RETURN(true);
- END_IF;
- REPEAT i := 1 TO SIZEOF(sdir);
- 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
- RETURN(true);
- END_IF;
- REPEAT i := 1 TO SIZEOF(sdiri);
- 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);
- 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;
-
-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,
- '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);
- 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);
- 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
- RETURN(true);
- END_IF;
- IF ((SIZEOF(type_list) = 0) AND (SIZEOF(sdei) <> 0))
- THEN
- RETURN(false);
- END_IF;
- REPEAT i := 1 TO SIZEOF(sdei);
- REPEAT j := 1 TO SIZEOF(sdei[i].extreme_instances);
- 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);
- 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;
-
-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,
- '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);
- 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);
- 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;
- 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
- | '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);
- 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);
- IF (NOT (type_string IN TYPEOF(sdcr[i].representative_measured_value)))
- THEN
- RETURN(false);
- END_IF;
- END_REPEAT;
- REPEAT i := 1 TO SIZEOF(sdii);
- IF (NOT (type_string IN TYPEOF(sdii[i].measured_value)))
- THEN
- RETURN(false);
- END_IF;
- END_REPEAT;
- 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;
-
-FUNCTION value_limit_type(iv : shape_data_quality_value_limit_type_select) : SET OF STRING;
-LOCAL
- retval : SET OF STRING := [];
-END_LOCAL;
- IF (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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 (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DATA_QUALITY_VALUE_LIMIT') IN TYPEOF(iv))
- THEN
- IF (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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
- | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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
- | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.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
- 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
- | ('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
- RETURN(true);
- ELSE
- RETURN(false);
- END_IF;
- END;
-END_FUNCTION;
-
-FUNCTION values_space_of(expr : generic_expression) : maths_space;
-LOCAL
- 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);
- 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 : vector_or_direction;
- 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 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.VECTOR' IN TYPEOF(arg1)
- THEN
- mag1 := arg1\vector.magnitude;
- vec1 := arg1\vector.orientation;
- ELSE
- mag1 := 1.0;
- vec1 := arg1;
- END_IF;
- IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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;
-
-FUNCTION volume_weights_positive(b : rational_b_spline_volume) : BOOLEAN;
-LOCAL
- result : BOOLEAN := true;
-END_LOCAL;
- REPEAT i := 0 TO b.u_upper;
- REPEAT j := 0 TO b.v_upper;
- REPEAT k := 0 TO b.w_upper;
- IF (b.weights[i][j][k] <= 0.0)
- THEN
- result := false;
- RETURN(result);
- END_IF;
- END_REPEAT;
- END_REPEAT;
- END_REPEAT;
- RETURN(result);
-END_FUNCTION;
-
-FUNCTION weights_positive(weights : LIST OF REAL) : BOOLEAN;
-LOCAL
- result : BOOLEAN := true;
-END_LOCAL;
- REPEAT i := 1 TO SIZEOF(weights);
- IF weights[i] <= 0.0
- THEN
- result := false;
- RETURN(result);
- END_IF;
- END_REPEAT;
- 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;
-
-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,
- '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,
- 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION.FORMATION')
- | pd.frame_of_reference.name = 'alternative definition')) <>
- 1)) =
- 0;
-END_RULE;
-
-RULE ap242_application_protocol_definition_required FOR (application_context);
-WHERE
- 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_mim_lf')) >
- 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,
- '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 = '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
- ('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'))))))))) =
- 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
- ('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;
-
-RULE compatible_dimension FOR (cartesian_point, direction, geometric_representation_context);
-WHERE
- WR1: check_geometric_dimension(cartesian_point, direction, geometric_representation_context);
-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);
- nnauo := 0;
- REPEAT j := LOINDEX(next_assembly_usage_occurrence) TO HIINDEX(next_assembly_usage_occurrence);
- IF (composite_assembly_sequence_definition[i] = next_assembly_usage_occurrence[j].relating_product_definition)
- THEN
- rp := next_assembly_usage_occurrence[j].related_product_definition.formation.of_product;
- nprpc := 0;
- REPEAT k := LOINDEX(product_related_product_category) TO HIINDEX(product_related_product_category);
- IF ((rp IN product_related_product_category[k].products) AND
- (product_related_product_category[k].name IN
- ['ply','ply laminate','filament laminate','processed core','composite assembly']))
- THEN
- nprpc := nprpc + 1;
- END_IF;
- END_REPEAT;
- IF (nprpc = 1)
- THEN
- nnauo := nnauo + 1;
- ELSE
- dkuhr := false;
- ESCAPE;
- END_IF;
- END_IF;
- END_REPEAT;
- IF (dkuhr = false)
- THEN
- ESCAPE;
- END_IF;
- IF (nnauo = 0)
- THEN
- dkuhr := false;
- ESCAPE;
- END_IF;
- END_REPEAT;
-WHERE
- WR1: dkuhr;
-END_RULE;
-
-RULE consistent_uncertainty FOR (global_uncertainty_assigned_context,
- qualified_representation_item,
- uncertainty_assigned_representation);
-WHERE
- WR1: SIZEOF(QUERY(guac
- <* global_uncertainty_assigned_context
- | SIZEOF(QUERY(u1
- <* guac.uncertainty
- | SIZEOF(QUERY(u2 <* guac.uncertainty | u2.name = u1.name)) > 1)) >
- 0)) =
- 0;
- WR2: SIZEOF(QUERY(uar
- <* uncertainty_assigned_representation
- | SIZEOF(QUERY(u1
- <* uar.uncertainty
- | SIZEOF(QUERY(u2 <* uar.uncertainty | u2.name = u1.name)) > 1)) >
- 0)) =
- 0;
- WR3: SIZEOF(QUERY(qri
- <* qualified_representation_item
- | SIZEOF(QUERY(u1
- <* qri.qualifiers
- | ('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;
-
-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,
- 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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,
- '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))) =
- 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);
- pdpdca := pdpdca + pdca[i]\product_definition_context_association.definition;
- END_REPEAT;
- REPEAT i := 1 TO HIINDEX(adr);
- ra1 := bag_to_set(USEDIN(adr[i],
- 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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 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
- ('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)) 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)) 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 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,
- 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MATERIAL_DESIGNATION.DEFINITIONS')) <>
- 1)) =
- 0;
-END_RULE;
-
-RULE non_uniform_zone_definition_constraint FOR (tolerance_zone_definition, tolerance_zone, tolerance_zone_form);
-LOCAL
- tzf_set : SET OF tolerance_zone_form := QUERY(tzf
- <* tolerance_zone_form
- | tzf\tolerance_zone_form.name = 'non uniform');
- nuzd_set : SET OF tolerance_zone_definition := QUERY(tzd
- <* tolerance_zone_definition
- | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.NON_UNIFORM_ZONE_DEFINITION' IN
- TYPEOF(tzd));
-END_LOCAL;
-WHERE
- WR1: QUERY(tzd <* nuzd_set | (tzd\tolerance_zone_definition.zone\tolerance_zone.form IN tzf_set)) = nuzd_set;
-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
- | '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,
- '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(edir.related_item)) AND
- ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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
- | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.KNOWN_SOURCE' IN
- TYPEOF(edgp.source)) AND
- ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.KNOWN_SOURCE.NAME' =
- 'ISO 13584 library'));
-WHERE
- 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;
-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);
- nnauo := 0;
- REPEAT j := LOINDEX(next_assembly_usage_occurrence) TO HIINDEX(next_assembly_usage_occurrence);
- IF (ply_laminate_sequence_definition[i] = next_assembly_usage_occurrence[j].relating_product_definition)
- THEN
- rp := next_assembly_usage_occurrence[j].related_product_definition.formation.of_product;
- nprpc := 0;
- REPEAT k := LOINDEX(product_related_product_category) TO HIINDEX(product_related_product_category);
- IF ((product_related_product_category[k].name = 'ply') AND
- (rp IN product_related_product_category[k].products))
- THEN
- nprpc := nprpc + 1;
- END_IF;
- END_REPEAT;
- IF (nprpc = 1)
- THEN
- nnauo := nnauo + 1;
- ELSE
- dkuhr := false;
- ESCAPE;
- END_IF;
- END_IF;
- END_REPEAT;
- IF (dkuhr = false)
- THEN
- ESCAPE;
- END_IF;
- IF (nnauo = 0)
- THEN
- dkuhr := false;
- ESCAPE;
- END_IF;
- END_REPEAT;
-WHERE
- WR1: dkuhr;
-END_RULE;
-
-RULE ply_stock_material_select FOR (product_related_product_category, make_from_usage_option);
-LOCAL
- i : 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);
- IF (product_related_product_category[kp].name = 'ply')
- THEN
- REPEAT i := LOINDEX(product_related_product_category[kp].products) TO HIINDEX(product_related_product_category[kp].products);
- nmfuo := 0;
- REPEAT j := LOINDEX(make_from_usage_option) TO HIINDEX(make_from_usage_option);
- rp := make_from_usage_option[j].related_product_definition.formation.of_product;
- IF (product_related_product_category[kp].products[i] = rp)
- THEN
- REPEAT k := LOINDEX(product_related_product_category) TO HIINDEX(product_related_product_category);
- IF ((rp IN product_related_product_category[k].products) AND
- (product_related_product_category[k].name IN
- ['isotropic material','filament assembly','discontinuous fiber assembly']))
- THEN
- nprpc := nprpc + 1;
- END_IF;
- END_REPEAT;
- IF (nprpc = 1)
- THEN
- nmfuo := nmfuo + 1;
- ELSE
- dkuhr := false;
- ESCAPE;
- END_IF;
- END_IF;
- END_REPEAT;
- IF (dkuhr = false)
- THEN
- ESCAPE;
- END_IF;
- IF (nmfuo <> 1)
- THEN
- dkuhr := false;
- ESCAPE;
- END_IF;
- END_REPEAT;
- END_IF;
- END_REPEAT;
-WHERE
- WR1: dkuhr;
-END_RULE;
-
-RULE product_concept_feature_requires_category FOR (product_concept_feature);
-WHERE
- WR1: SIZEOF(QUERY(pcf
- <* product_concept_feature
- | (SIZEOF(['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
- ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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,
- 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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,
- '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','']))) =
- 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.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,
- '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)))) =
- 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
- | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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,
- '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)))) =
- 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,
- '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,
- '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)) >
- 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 ('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 ('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))))) =
- 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 ('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;
-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 ('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;
-
-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)) OR
- NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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,
- '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\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,
- '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.PRODUCT_IDENTIFICATION' IN
- TYPEOF(cd.configuration))))) <>
- 1))) =
- 0;
- 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.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,
- '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')
- | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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,
- 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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,
- '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;
-
-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_support_structure_category FOR (product_definition);
-LOCAL
- support_structures : SET OF product_definition := [];
-END_LOCAL;
- support_structures := QUERY(pd
- <* product_definition
- | (SIZEOF(QUERY(prpc
- <* USEDIN(pd.formation.of_product,
- 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_RELATED_PRODUCT_CATEGORY.PRODUCTS')
- | prpc.name = 'additive manufacturing support structure')) <>
- 0));
-WHERE
- WR1: SIZEOF(QUERY(pd
- <* support_structures
- | (SIZEOF(QUERY(prpc
- <* USEDIN(pd.formation.of_product,
- 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_RELATED_PRODUCT_CATEGORY.PRODUCTS')
- | prpc.name = 'part')) <>
- 0))) =
- 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 ('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;
-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,
- 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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
- | ('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;
-
-RULE subtype_exclusiveness_geometric_tolerance FOR (geometric_tolerance);
-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.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,
- ['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;
-
-RULE subtype_mandatory_shape_representation FOR (shape_representation);
-WHERE
- WR1: SIZEOF(QUERY(sr
- <* shape_representation
- | NOT ((SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ADVANCED_BREP_SHAPE_REPRESENTATION',
- 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FACETED_BREP_SHAPE_REPRESENTATION',
- 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MANIFOLD_SURFACE_SHAPE_REPRESENTATION',
- 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MANIFOLD_SUBSURFACE_SHAPE_REPRESENTATION',
- 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EDGE_BASED_WIREFRAME_SHAPE_REPRESENTATION',
- '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.POINT_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))) =
- 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, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.TEXT_LITERAL.FONT')) = 0)) =
- 0;
- 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;
-
-RULE tolerance_zone_form_name_constraint FOR (tolerance_zone_form);
-LOCAL
- names : SET OF STRING := ['within a circle',
- 'within a cylinder',
- 'within a cone',
- 'within a single complex surface',
- 'within a sphere',
- 'between two coaxial cylinders',
- 'between two concentric circles',
- 'between two equidistant curves',
- 'between two equidistant complex lines or two parallel straight lines',
- 'between two equidistant complex surfaces or two parallel planes',
- 'between two equidistant surfaces',
- 'between two non-equidistant complex lines or two non-parallel straight lines',
- 'between two non-equidistant complex surfaces or two non-parallel planes',
- 'between two parallel circles on a conical surface',
- 'between two parallel circles of the same diameter',
- '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;
-
-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);
- 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;
-
-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],
- 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_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;
-
-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,
- '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(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
- 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 (aggregate_id_attribute,
- attribute_value_role,
- camera_model_d2,
- classification_assignment_relationship,
- concept_feature_relationship,
- concept_feature_relationship_with_condition,
- data_equivalence_assessment_specification,
- data_equivalence_criteria_representation,
- data_equivalence_criterion,
- data_equivalence_inspection_instance_report_item,
- data_equivalence_inspection_requirement,
- data_equivalence_inspection_result_representation,
- document_usage_constraint,
- edge_blended_solid,
- effectivity_context_role,
- event_occurrence_role,
- explicit_procedural_representation_item_relationship,
- founded_item,
- indirectly_selected_elements,
- location_representation_role,
- location_role,
- modified_solid_with_placed_configuration,
- one_direction_repeat_factor,
- organization_type_role,
- procedural_representation,
- procedural_representation_sequence,
- product_definition_effectivity,
- product_definition_relationship_relationship,
- runout_zone_orientation,
- 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);
-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 + aggregate_id_attribute;
- all_instances := all_instances + attribute_value_role;
- all_instances := all_instances + camera_model_d2;
- all_instances := all_instances + classification_assignment_relationship;
- all_instances := all_instances + concept_feature_relationship;
- all_instances := all_instances + concept_feature_relationship_with_condition;
- all_instances := all_instances + data_equivalence_assessment_specification;
- all_instances := all_instances + data_equivalence_criteria_representation;
- all_instances := all_instances + data_equivalence_criterion;
- all_instances := all_instances + data_equivalence_inspection_instance_report_item;
- all_instances := all_instances + data_equivalence_inspection_requirement;
- all_instances := all_instances + data_equivalence_inspection_result_representation;
- 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 + founded_item;
- all_instances := all_instances + indirectly_selected_elements;
- all_instances := all_instances + location_representation_role;
- all_instances := all_instances + location_role;
- all_instances := all_instances + modified_solid_with_placed_configuration;
- all_instances := all_instances + one_direction_repeat_factor;
- all_instances := all_instances + organization_type_role;
- all_instances := all_instances + procedural_representation;
- all_instances := all_instances + procedural_representation_sequence;
- all_instances := all_instances + product_definition_effectivity;
- all_instances := all_instances + product_definition_relationship_relationship;
- 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 + swept_area_solid;
- all_instances := all_instances + symbol_target;
- all_instances := all_instances + two_direction_repeat_factor;
- all_instances := all_instances + user_selected_elements;
- ;
- number_of_input_instances := SIZEOF(all_instances);
- 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;
-END_SCHEMA;