This annex specifies the EXPRESS schema to which an implementation shall conform, using the EXPRESS language as defined in ISO 10303-11.
NOTE The EXPRESS in this annex is the expanded form of the short form schema given in 5.2.
AIM longform EXPRESS of ISO 10303-214:2010 -- -- -- Title: Core data for automotive mechanical design processes -- Author: MSc. Antonio Álvaro de Assis Moura -- SCPM, Methodist University of Piracicaba -- Rod. Luis Ometto (SP 306), Km 1 -- 13451-900 Santa Barbara d'Oeste, SP - Brazil -- Telephone: +55 19 31241792 or 31241810 -- Telefacsimile: +55 19 31241788 or 34551361 -- Email: labscpm@unimep.br -- Internet: http://www.unimep.br/feau/scpm -- Tool used: PDTec LongformGenerator V 3.1-15 -- Date: 2010-06-30 -- -- Information object registration: Schema identification: -- { iso standard 10303 part(214) version(3) object(1) automotive-design-schema(1) } SCHEMA AUTOMOTIVE_DESIGN; (* Original schemas: schema = action_schema ; schema = aic_advanced_brep ; schema = aic_associative_draughting_elements ; schema = aic_csg ; schema = aic_draughting_annotation ; schema = aic_draughting_elements ; schema = aic_edge_based_wireframe ; schema = aic_faceted_brep ; schema = aic_geometric_tolerances ; schema = aic_geometrically_bounded_2d_wireframe ; schema = aic_geometrically_bounded_surface ; schema = aic_geometrically_bounded_wireframe ; schema = aic_manifold_subsurface ; schema = aic_manifold_surface ; schema = aic_mechanical_design_geometric_presentation ; schema = aic_non_manifold_surface ; schema = aic_topologically_bounded_surface ; schema = application_context_schema ; schema = approval_schema ; schema = automotive_design ; schema = basic_attribute_schema ; schema = certification_schema ; schema = configuration_management_schema ; schema = contract_schema ; schema = date_time_schema ; schema = document_schema ; schema = draughting_dimension_schema ; schema = draughting_element_schema ; schema = drawing_definition_schema ; schema = effectivity_schema ; schema = experience_schema ; schema = external_reference_schema ; schema = geometric_model_schema ; schema = geometry_schema ; schema = group_schema ; schema = iso13584_expressions_schema ; schema = iso13584_generic_expressions_schema ; schema = kinematic_analysis_control_and_result_schema ; schema = kinematic_motion_representation_schema ; schema = kinematic_structure_schema ; schema = location_schema ; schema = management_resources_schema ; schema = material_property_definition_schema ; schema = material_property_representation_schema ; schema = measure_schema ; schema = method_definition_schema ; schema = person_organization_schema ; schema = presentation_appearance_schema ; schema = presentation_definition_schema ; schema = presentation_organization_schema ; schema = presentation_resource_schema ; schema = process_property_representation_schema ; schema = process_property_schema ; schema = product_concept_schema ; schema = product_definition_schema ; schema = product_property_definition_schema ; schema = product_property_representation_schema ; schema = product_structure_schema ; schema = qualifications_schema ; schema = qualified_measure_schema ; schema = representation_schema ; schema = security_classification_schema ; schema = shape_aspect_definition_schema ; schema = shape_dimension_schema ; schema = shape_tolerance_schema ; schema = support_resource_schema ; schema = topology_schema ; *) CONSTANT dummy_gri : geometric_representation_item := representation_item('')|| geometric_representation_item(); -- 10303-42: geometry_schema dummy_tri : topological_representation_item := representation_item('')|| topological_representation_item(); -- 10303-42: topology_schema END_CONSTANT; TYPE action_item = SELECT (action, action_directive, action_method, action_property, action_relationship, action_request_solution, alternate_product_relationship , applied_action_assignment, applied_classification_assignment, applied_person_and_organization_assignment, approval_status, assembly_component_usage_substitute, certification, class, class_system, configuration_design, configuration_effectivity, configuration_item, configured_effectivity_assignment, contract, document_file, draughting_model , drawing_revision, executed_action, general_property, material_designation, mechanical_design_geometric_presentation_representation, organization_relationship, organizational_project, person_and_organization, presentation_area, product, product_concept, product_concept_feature, product_concept_feature_association, product_concept_feature_category, product_concept_feature_category_usage, product_definition, product_definition_formation, product_definition_formation_relationship, product_definition_relationship, product_definition_substitute, property_definition, requirement_for_action_resource, resource_property, security_classification, security_classification_level, shape_aspect, shape_representation, versioned_action_request); END_TYPE; -- 10303-214: automotive_design TYPE action_request_item = SELECT (action, action_method, action_property, action_relationship, alternate_product_relationship, assembly_component_usage_substitute, configuration_design, configuration_effectivity, configuration_item, configured_effectivity_assignment, document_file, draughting_model, drawing_revision, general_property, material_designation, mechanical_design_geometric_presentation_representation, organizational_project, presentation_area, product, product_concept, product_concept_feature, product_concept_feature_association, product_concept_feature_category, product_concept_feature_category_usage, product_definition, product_definition_formation, product_definition_relationship, product_definition_substitute, property_definition, resource_property, shape_aspect, shape_representation); END_TYPE; -- 10303-214: automotive_design TYPE ahead_or_behind = ENUMERATION OF (ahead, exact, behind); END_TYPE; -- 10303-41: date_time_schema TYPE amount_of_substance_measure = REAL; END_TYPE; -- 10303-41: measure_schema TYPE angle_relator = ENUMERATION OF (equal, large, small); END_TYPE; -- 10303-47: shape_dimension_schema TYPE annotation_plane_element = SELECT (draughting_callout, styled_item); END_TYPE; (* declared in: draughting_element_schema *) TYPE annotation_symbol_occurrence_item = SELECT (annotation_symbol, defined_symbol); END_TYPE; (* declared in: presentation_definition_schema *) TYPE annotation_text_occurrence_item = SELECT (text_literal, annotation_text, annotation_text_character, defined_character_glyph, composite_text); END_TYPE; (* declared in: presentation_definition_schema *) TYPE approval_item = SELECT (action, action_directive, 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, configured_effectivity_assignment, contract, document_file, draughting_model, drawing_revision, executed_action, general_property, material_designation, mechanical_design_geometric_presentation_representation, organizational_project, presentation_area, product, product_concept, product_concept_feature, product_concept_feature_association, product_concept_feature_category, product_concept_feature_category_usage, product_definition, product_definition_formation, product_definition_relationship, product_definition_substitute, property_definition, resource_property, shape_representation, versioned_action_request); END_TYPE; -- 10303-214: automotive_design TYPE approximation_method = ENUMERATION OF (chordal_deviation, chordal_length); END_TYPE; -- 10303-46: presentation_appearance_schema TYPE area_measure = REAL; END_TYPE; -- 10303-41: measure_schema TYPE area_or_view = SELECT (presentation_area, presentation_view); END_TYPE; -- 10303-46: presentation_organization_schema TYPE attribute_language_item = SELECT (action, action_directive, action_method, action_property, action_relationship, alternate_product_relationship, application_context, approval_relationship, assembly_component_usage_substitute, attribute_value_assignment, certification, configuration_design, configuration_item, contract, data_environment, date_role, date_time_role, descriptive_representation_item, document_relationship, draughting_title, effectivity, effectivity_relationship, event_occurrence, external_source, general_property, general_property_relationship, geometric_representation_item, geometric_tolerance, group, group_relationship , identification_role, kinematic_pair, mapped_item, name_assignment, organization_relationship, organization_role, organizational_project, organizational_project_relationship, pair_actuator, 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_formation, product_definition_formation_relationship, product_definition_relationship, product_definition_substitute, product_related_product_category, property_definition, property_definition_relationship, representation, representation_relationship , requirement_for_action_resource, resource_property, resource_requirement_type, security_classification, shape_aspect, shape_aspect_relationship, styled_item, time_interval_role, topological_representation_item, uncertainty_measure_with_unit, uncertainty_qualifier, versioned_action_request, versioned_action_request_relationship); END_TYPE; -- 10303-214: automotive_design TYPE attribute_type = SELECT (label, text); END_TYPE; -- 10303-41: management_resources_schema TYPE axis2_placement = SELECT (axis2_placement_2d, axis2_placement_3d); END_TYPE; -- 10303-42: geometry_schema TYPE b_spline_curve_form = ENUMERATION OF (polyline_form, circular_arc, elliptic_arc, parabolic_arc, hyperbolic_arc, unspecified); END_TYPE; -- 10303-42: geometry_schema TYPE b_spline_surface_form = ENUMERATION OF (plane_surf, cylindrical_surf, conical_surf, spherical_surf, toroidal_surf, surf_of_revolution, ruled_surf, generalised_cone, quadric_surf, surf_of_linear_extrusion, unspecified); END_TYPE; -- 10303-42: geometry_schema TYPE boolean_operand = SELECT (solid_model, half_space_solid, csg_primitive, boolean_result); END_TYPE; -- 10303-42: geometric_model_schema TYPE boolean_operator = ENUMERATION OF (union, intersection, difference); END_TYPE; -- 10303-42: geometric_model_schema TYPE box_characteristic_select = SELECT (box_height, box_width, box_slant_angle, box_rotate_angle); END_TYPE; -- 10303-46: presentation_appearance_schema TYPE box_height = positive_ratio_measure; END_TYPE; -- 10303-46: presentation_appearance_schema TYPE box_rotate_angle = plane_angle_measure; END_TYPE; -- 10303-46: presentation_appearance_schema TYPE box_slant_angle = plane_angle_measure; END_TYPE; -- 10303-46: presentation_appearance_schema TYPE box_width = positive_ratio_measure; END_TYPE; -- 10303-46: presentation_appearance_schema TYPE category_usage_item = SELECT (product_class); END_TYPE; -- 10303-214: automotive_design TYPE celsius_temperature_measure = REAL; END_TYPE; -- 10303-41: measure_schema TYPE central_or_parallel = ENUMERATION OF (central, parallel); END_TYPE; -- 10303-46: presentation_organization_schema TYPE certification_item = SELECT (product_definition, product_definition_formation, product_definition_formation_relationship, product_definition_relationship); END_TYPE; -- 10303-214: automotive_design TYPE character_spacing_select = SELECT (length_measure, ratio_measure, measure_with_unit, descriptive_measure); END_TYPE; -- 10303-46: presentation_appearance_schema TYPE character_style_select = SELECT (text_style_for_defined_font); END_TYPE; -- 10303-46: presentation_appearance_schema TYPE characterized_action_definition = SELECT (action, action_method, action_method_relationship, action_relationship); END_TYPE; -- 10303-49: process_property_schema TYPE characterized_definition = SELECT (characterized_object, characterized_product_definition, shape_definition); END_TYPE; -- 10303-41: product_property_definition_schema TYPE characterized_material_property = SELECT (material_property_representation); END_TYPE; -- 10303-45: material_property_definition_schema TYPE characterized_product_definition = SELECT (product_definition, product_definition_relationship); END_TYPE; -- 10303-41: product_property_definition_schema TYPE characterized_resource_definition = SELECT (action_resource, action_resource_requirement); END_TYPE; -- 10303-49: process_property_schema TYPE class_usage_effectivity_context_item = SELECT (product_definition); END_TYPE; -- 10303-214: automotive_design TYPE classification_item = SELECT (action, action_directive, action_method, action_property, action_relationship, approval_status, class, configuration_item, contract, descriptive_representation_item, document_file, document_type, effectivity, executed_action, feature_definition, general_feature, general_property, material_designation, organizational_project, plus_minus_tolerance, process_operation, product, product_concept, product_concept_feature, product_concept_feature_category, product_definition, product_definition_formation, product_definition_relationship, property_definition, resource_property, security_classification_level, shape_aspect, versioned_action_request); END_TYPE; -- 10303-214: automotive_design TYPE compound_item_definition = SELECT (list_representation_item, set_representation_item); END_TYPE; -- 10303-43: representation_schema TYPE configuration_design_item = SELECT (product_definition, product_definition_formation); END_TYPE; -- 10303-44: configuration_management_schema TYPE configured_effectivity_context_item = SELECT (product_concept_feature_association); END_TYPE; -- 10303-214: automotive_design TYPE configured_effectivity_item = SELECT (action_relationship, process_plan, product_definition, product_process_plan) ; END_TYPE; -- 10303-214: automotive_design TYPE context_dependent_measure = REAL; END_TYPE; -- 10303-41: measure_schema TYPE contract_item = SELECT (drawing_revision, executed_action, product_definition_formation); END_TYPE; -- 10303-214: automotive_design TYPE count_measure = NUMBER; END_TYPE; -- 10303-41: measure_schema TYPE csg_primitive = SELECT (sphere, block, right_angular_wedge, torus, right_circular_cone, right_circular_cylinder); END_TYPE; -- 10303-42: geometric_model_schema TYPE csg_select = SELECT (boolean_result, csg_primitive); END_TYPE; -- 10303-42: geometric_model_schema TYPE curve_font_or_scaled_curve_font_select = SELECT (curve_style_font_select); END_TYPE; -- 10303-46: presentation_appearance_schema TYPE curve_on_surface = SELECT (pcurve, surface_curve, composite_curve_on_surface); END_TYPE; -- 10303-42: geometry_schema TYPE curve_or_render = SELECT (curve_style, curve_style_rendering); END_TYPE; -- 10303-46: presentation_appearance_schema TYPE curve_style_font_select = SELECT (curve_style_font, pre_defined_curve_font, externally_defined_curve_font); END_TYPE; -- 10303-46: presentation_appearance_schema TYPE curve_tolerance_deviation = positive_length_measure; END_TYPE; -- 10303-46: presentation_appearance_schema TYPE curve_tolerance_parameter = REAL; END_TYPE; -- 10303-46: presentation_appearance_schema TYPE date_and_time_item = SELECT (action, action_directive, action_method, action_property, action_relationship, action_request_solution, alternate_product_relationship , applied_action_assignment, applied_classification_assignment, applied_organization_assignment, applied_person_and_organization_assignment, approval_person_organization, approval_status, assembly_component_usage_substitute, certification, class, class_system, configuration_design, configuration_item, configured_effectivity_assignment, contract, document_file, draughting_model, drawing_revision, effectivity, event_occurrence, executed_action, general_property, material_designation, mechanical_design_geometric_presentation_representation, organization_relationship, organizational_project, person_and_organization, presentation_area, product, product_concept, product_concept_feature, product_concept_feature_association, product_concept_feature_category, product_concept_feature_category_usage, product_definition, product_definition_formation, product_definition_formation_relationship, product_definition_relationship, product_definition_substitute, property_definition, requirement_for_action_resource, resource_property, security_classification, security_classification_level, shape_representation , versioned_action_request); END_TYPE; -- 10303-214: automotive_design TYPE date_item = SELECT (action, action_directive, action_method, action_property, action_relationship, action_request_solution, alternate_product_relationship , applied_action_assignment, applied_classification_assignment, applied_organization_assignment, applied_person_and_organization_assignment, approval_person_organization, approval_status, assembly_component_usage_substitute, certification, class, class_system, configuration_design, configuration_item, configured_effectivity_assignment, contract, document_file, draughting_model, drawing_revision, effectivity, event_occurrence, executed_action, general_property, material_designation, mechanical_design_geometric_presentation_representation, organization_relationship, organizational_project, person_and_organization, presentation_area, product, product_concept, product_concept_feature, product_concept_feature_association, product_concept_feature_category, product_concept_feature_category_usage, product_definition, product_definition_formation, product_definition_formation_relationship, product_definition_relationship, product_definition_substitute, property_definition, requirement_for_action_resource, resource_property, security_classification, security_classification_level, shape_representation , versioned_action_request); END_TYPE; -- 10303-214: automotive_design TYPE date_time_or_event_occurrence = SELECT (date_time_select, event_occurrence); END_TYPE; -- 10303-41: date_time_schema TYPE date_time_select = SELECT (date, local_time, date_and_time); END_TYPE; -- 10303-41: date_time_schema TYPE day_in_month_number = INTEGER; WHERE wr1 : {1 <= SELF <= 31}; END_TYPE; -- 10303-41: date_time_schema TYPE defined_glyph_select = SELECT (externally_defined_character_glyph); END_TYPE; -- 10303-46: presentation_definition_schema TYPE defined_symbol_select = SELECT (pre_defined_symbol, externally_defined_symbol); END_TYPE; -- 10303-46: presentation_definition_schema TYPE derived_property_select = SELECT (property_definition, action_property, resource_property); END_TYPE; -- 10303-41: product_property_definition_schema TYPE description_attribute_select = SELECT (action_request_solution, application_context, approval_role, configuration_design, date_role, date_time_role, context_dependent_shape_representation, effectivity, external_source, organization_role, person_and_organization_role, person_and_organization, property_definition_representation, representation); END_TYPE; -- 10303-41: basic_attribute_schema TYPE descriptive_measure = STRING; END_TYPE; -- 10303-41: measure_schema TYPE dimension_count = INTEGER; WHERE wr1 : SELF > 0; END_TYPE; -- 10303-42: geometry_schema TYPE dimension_extent_usage = ENUMERATION OF (origin, target); END_TYPE; -- 10303-101: draughting_element_schema TYPE dimensional_characteristic = SELECT (dimensional_location, dimensional_size); END_TYPE; -- 10303-47: shape_dimension_schema TYPE direction_count_select = SELECT (u_direction_count, v_direction_count); END_TYPE; -- 10303-46: presentation_appearance_schema TYPE document_reference_item = SELECT (action_directive, action_method, action_relationship, applied_action_assignment, approval, certification, class, class_system, configuration_design, configuration_item, contract, descriptive_representation_item, executed_action, externally_defined_dimension_definition, feature_definition, general_property , material_designation, organization, organizational_project, person, presentation_area, process_plan, product, product_concept, product_concept_feature, product_concept_feature_category, product_definition , product_definition_formation, product_definition_formation_relationship, product_definition_process, product_definition_relationship, product_definition_substitute, product_related_product_category, property_definition, representation, resource_requirement_type, retention, security_classification, shape_aspect, shape_aspect_relationship, versioned_action_request); END_TYPE; -- 10303-214: automotive_design TYPE draughting_callout_element = SELECT (annotation_text_occurrence, annotation_symbol_occurrence, annotation_curve_occurrence); END_TYPE; -- 10303-101: draughting_element_schema TYPE draughting_model_item_association_select = SELECT (annotation_occurrence, draughting_callout); END_TYPE; (* declared in: automotive_design *) TYPE draughting_titled_item = SELECT (drawing_revision, drawing_sheet_revision); END_TYPE; -- 10303-101: drawing_definition_schema TYPE effectivity_item = SELECT (action, action_method, action_method_relationship, action_property, action_relationship, assembly_component_usage_substitute, class, class_system , configuration_design, configuration_item, configured_effectivity_assignment , document_file, draughting_model, drawing_revision, general_property, material_designation, mechanical_design_geometric_presentation_representation , presentation_area, product, product_concept, product_concept_feature, product_concept_feature_association, product_concept_feature_category, product_concept_feature_category_usage, product_definition, product_definition_formation, product_definition_formation_relationship, product_definition_relationship, product_definition_substitute, property_definition, requirement_for_action_resource, resource_property, security_classification, shape_aspect, shape_representation); END_TYPE; -- 10303-214: automotive_design TYPE electric_current_measure = REAL; END_TYPE; -- 10303-41: measure_schema TYPE event_occurrence_item = SELECT (action, action_directive, action_method, action_property, action_relationship, action_request_solution, alternate_product_relationship , applied_action_assignment, applied_classification_assignment, applied_person_and_organization_assignment, approval_status, assembly_component_usage_substitute, certification, class, class_system, configuration_design, configuration_effectivity, configuration_item, configured_effectivity_assignment, contract, document_file, draughting_model , drawing_revision, executed_action, general_property, material_designation, mechanical_design_geometric_presentation_representation, organization_relationship, organizational_project, person_and_organization, presentation_area, product, product_concept, product_concept_feature, product_concept_feature_association, product_concept_feature_category, product_concept_feature_category_usage, product_definition, product_definition_formation, product_definition_formation_relationship, product_definition_relationship, product_definition_substitute, property_definition, requirement_for_action_resource, resource_property, security_classification, security_classification_level, shape_representation , versioned_action_request); END_TYPE; -- 10303-214: automotive_design TYPE external_identification_item = SELECT (document_file, externally_defined_class, externally_defined_general_property , product_definition); END_TYPE; -- 10303-214: automotive_design TYPE fill_area_style_tile_shape_select = SELECT (fill_area_style_tile_symbol_with_style); END_TYPE; -- 10303-46: presentation_appearance_schema TYPE fill_style_select = SELECT (fill_area_style_colour, externally_defined_tile_style, fill_area_style_tiles , externally_defined_hatch_style, fill_area_style_hatching); END_TYPE; -- 10303-46: presentation_appearance_schema TYPE font_select = SELECT (pre_defined_text_font, externally_defined_text_font); END_TYPE; -- 10303-46: presentation_resource_schema TYPE founded_item_select = SELECT (founded_item, representation_item); END_TYPE; -- 10303-43: representation_schema TYPE geometric_set_select = SELECT (point, curve, surface); END_TYPE; -- 10303-42: geometric_model_schema TYPE group_item = SELECT (geometric_representation_item, mapped_item, product_concept_feature, shape_aspect, styled_item, topological_representation_item); END_TYPE; -- 10303-214: automotive_design TYPE hour_in_day = INTEGER; WHERE wr1 : {0 <= SELF < 24}; END_TYPE; -- 10303-41: date_time_schema TYPE id_attribute_select = SELECT (action, address, product_category, property_definition, shape_aspect, shape_aspect_relationship, application_context, group, organizational_project , representation); END_TYPE; -- 10303-41: basic_attribute_schema TYPE identification_item = SELECT (action, action_directive, action_method, action_property, applied_identification_assignment, approval_status, class, class_system, configuration_item, dimensional_size, document_file, document_type, draughting_model, effectivity, general_property, measure_representation_item , mechanical_design_geometric_presentation_representation, organization, person_and_organization, presentation_area, product, product_concept, product_concept_feature, product_concept_feature_category, product_definition , product_definition_formation, product_definition_relationship, property_definition, property_definition_relationship, security_classification_level, shape_aspect_relationship, shape_representation); END_TYPE; -- 10303-214: automotive_design TYPE identifier = STRING; END_TYPE; -- 10303-41: support_resource_schema TYPE interpolation_type = ENUMERATION OF (undefined, synchronous, linear); END_TYPE; -- 10303-105: kinematic_analysis_control_and_result_schema TYPE invisibility_context = SELECT (presentation_representation, presentation_set); END_TYPE; -- 10303-46: presentation_appearance_schema TYPE invisible_item = SELECT (styled_item, presentation_layer_assignment, representation); END_TYPE; -- 10303-46: presentation_appearance_schema TYPE kinematic_analysis_definition = SELECT (interpolated_configuration_sequence); END_TYPE; -- 10303-105: kinematic_analysis_control_and_result_schema TYPE kinematic_frame_background = SELECT (point, curve, surface); END_TYPE; -- 10303-105: kinematic_structure_schema TYPE kinematic_result = SELECT (interpolated_configuration_sequence, resulting_path); END_TYPE; -- 10303-105: kinematic_analysis_control_and_result_schema TYPE knot_type = ENUMERATION OF (uniform_knots, quasi_uniform_knots, piecewise_bezier_knots, unspecified); END_TYPE; -- 10303-42: geometry_schema TYPE label = STRING; END_TYPE; -- 10303-41: support_resource_schema TYPE language_item = SELECT (representation); END_TYPE; -- 10303-214: automotive_design TYPE layered_item = SELECT (presentation_representation, representation_item); END_TYPE; -- 10303-46: presentation_organization_schema TYPE length_measure = REAL; END_TYPE; -- 10303-41: measure_schema TYPE limit_condition = ENUMERATION OF (maximum_material_condition, least_material_condition, regardless_of_feature_size); END_TYPE; -- 10303-47: shape_aspect_definition_schema TYPE list_of_reversible_topology_item = LIST OF reversible_topology_item; END_TYPE; -- 10303-42: topology_schema TYPE list_representation_item = LIST [1:?] OF representation_item; END_TYPE; -- 10303-43: representation_schema TYPE luminous_intensity_measure = REAL; END_TYPE; -- 10303-41: measure_schema TYPE marker_select = SELECT (marker_type, pre_defined_marker); END_TYPE; -- 10303-46: presentation_appearance_schema TYPE marker_type = ENUMERATION OF (dot, x, plus, asterisk, ring, square, triangle); END_TYPE; -- 10303-46: presentation_appearance_schema TYPE mass_measure = REAL; END_TYPE; -- 10303-41: measure_schema TYPE measure_value = SELECT (length_measure, mass_measure, time_measure, electric_current_measure, thermodynamic_temperature_measure, celsius_temperature_measure, amount_of_substance_measure, luminous_intensity_measure, plane_angle_measure , solid_angle_measure, area_measure, volume_measure, ratio_measure, parameter_value, numeric_measure, context_dependent_measure, descriptive_measure, positive_length_measure, positive_plane_angle_measure, positive_ratio_measure, count_measure); END_TYPE; -- 10303-41: measure_schema TYPE minute_in_hour = INTEGER; WHERE wr1 : {0 <= SELF <= 59}; END_TYPE; -- 10303-41: date_time_schema TYPE month_in_year_number = INTEGER; WHERE wr1 : {1 <= SELF <= 12}; END_TYPE; -- 10303-41: date_time_schema TYPE motion_parameter_measure = SELECT (parameter_value, measure_with_unit); END_TYPE; -- 10303-105: kinematic_motion_representation_schema TYPE multi_language_attribute_item = SELECT (action, action_directive, action_method, action_property, action_relationship, alternate_product_relationship, application_context, approval_relationship, assembly_component_usage_substitute, certification, configuration_design, configuration_item, contract, data_environment, date_role, date_time_role, descriptive_representation_item, document_relationship, draughting_title, effectivity, effectivity_relationship, event_occurrence, external_source, general_property , general_property_relationship, geometric_representation_item, geometric_tolerance, group, group_relationship, identification_role, kinematic_pair, mapped_item, name_assignment, organization_relationship, organization_role, organizational_project, organizational_project_relationship, pair_actuator, 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_formation, product_definition_formation_relationship, product_definition_relationship, product_definition_substitute, product_related_product_category, property_definition, property_definition_relationship, representation, representation_relationship , requirement_for_action_resource, resource_property, resource_requirement_type, security_classification, shape_aspect, shape_aspect_relationship, styled_item, time_interval_role, topological_representation_item, uncertainty_measure_with_unit, uncertainty_qualifier, versioned_action_request, versioned_action_request_relationship); END_TYPE; -- 10303-214: automotive_design 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; -- 10303-41: basic_attribute_schema TYPE name_item = SELECT (kinematic_joint, kinematic_link, kinematic_structure); END_TYPE; -- 10303-214: automotive_design TYPE non_negative_length_measure = length_measure; WHERE wr1 : SELF >= 0.0; END_TYPE; (* declared in: measure_schema *) TYPE null_style = ENUMERATION OF (null); END_TYPE; -- 10303-46: presentation_appearance_schema TYPE numeric_measure = NUMBER; END_TYPE; -- 10303-41: measure_schema TYPE organization_item = SELECT (action, action_directive, action_method, action_property, action_relationship, action_request_solution, alternate_product_relationship , applied_action_assignment, applied_classification_assignment, applied_identification_assignment, applied_organization_assignment, applied_person_and_organization_assignment, approval, 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, effectivity, event_occurrence, executed_action, general_property, material_designation, mechanical_design_geometric_presentation_representation, organization_relationship, organizational_project, person_and_organization, presentation_area, product, product_concept, product_concept_feature, product_concept_feature_association, product_concept_feature_category, product_concept_feature_category_usage, product_definition, product_definition_formation, product_definition_formation_relationship, product_definition_relationship, product_definition_substitute, property_definition, requirement_for_action_resource, resource_property, security_classification, security_classification_level, shape_representation , versioned_action_request); END_TYPE; -- 10303-214: automotive_design TYPE organizational_project_item = SELECT (assembly_component_usage, configuration_item, executed_action, product, product_concept, product_definition, product_definition_formation); END_TYPE; -- 10303-214: automotive_design TYPE parameter_value = REAL; END_TYPE; -- 10303-41: measure_schema TYPE pcurve_or_surface = SELECT (pcurve, surface); END_TYPE; -- 10303-42: geometry_schema TYPE person_and_organization_item = SELECT (action, action_directive, action_method, action_property, action_relationship, action_request_solution, alternate_product_relationship , applied_action_assignment, applied_classification_assignment, applied_organization_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, event_occurrence, executed_action, general_property, material_designation, mechanical_design_geometric_presentation_representation, organization_relationship, organizational_project, person_and_organization, presentation_area, product, product_concept, product_concept_feature, product_concept_feature_association, product_concept_feature_category, product_concept_feature_category_usage, product_definition, product_definition_formation, product_definition_formation_relationship, product_definition_relationship, product_definition_substitute, property_definition, requirement_for_action_resource, resource_property, security_classification, security_classification_level, shape_representation , versioned_action_request); END_TYPE; -- 10303-214: automotive_design TYPE person_organization_select = SELECT (person, organization, person_and_organization); END_TYPE; -- 10303-41: person_organization_schema TYPE plane_angle_measure = REAL; END_TYPE; -- 10303-41: measure_schema TYPE plane_or_planar_box = SELECT (plane, planar_box); END_TYPE; (* declared in: draughting_element_schema *) TYPE positive_length_measure = length_measure; WHERE wr1 : SELF > 0.000000; END_TYPE; -- 10303-41: measure_schema TYPE positive_plane_angle_measure = plane_angle_measure; WHERE wr1 : SELF > 0.000000; END_TYPE; -- 10303-41: measure_schema TYPE positive_ratio_measure = ratio_measure; WHERE wr1 : SELF > 0.000000; END_TYPE; -- 10303-41: measure_schema TYPE preferred_surface_curve_representation = ENUMERATION OF (curve_3d, pcurve_s1, pcurve_s2); END_TYPE; -- 10303-42: geometry_schema TYPE presentable_text = STRING; END_TYPE; -- 10303-46: presentation_resource_schema TYPE presentation_representation_select = SELECT (presentation_representation, presentation_set); END_TYPE; -- 10303-46: presentation_organization_schema TYPE presentation_size_assignment_select = SELECT (presentation_view, presentation_area, area_in_set); END_TYPE; -- 10303-46: presentation_organization_schema TYPE presentation_style_select = SELECT (pre_defined_presentation_style, point_style, curve_style, surface_style_usage, symbol_style, fill_area_style, text_style, approximation_tolerance, externally_defined_style, null_style); END_TYPE; -- 10303-46: presentation_appearance_schema 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; -- 10303-214: automotive_design TYPE product_or_formation_or_definition = SELECT (product, product_definition_formation, product_definition); END_TYPE; -- 10303-41: document_schema TYPE product_or_presentation_space = ENUMERATION OF (product_shape_space, presentation_area_space); END_TYPE; -- 10303-46: presentation_appearance_schema TYPE property_or_shape_select = SELECT (property_definition, shape_definition); END_TYPE; -- 10303-49: process_property_schema TYPE ratio_measure = REAL; END_TYPE; -- 10303-41: measure_schema TYPE rendering_properties_select = SELECT (surface_style_reflectance_ambient, surface_style_transparent); END_TYPE; -- 10303-46: presentation_appearance_schema TYPE represented_definition = SELECT (general_property, property_definition, property_definition_relationship, shape_aspect, shape_aspect_relationship); END_TYPE; -- 10303-41: product_property_representation_schema TYPE reversible_topology = SELECT (reversible_topology_item, list_of_reversible_topology_item, set_of_reversible_topology_item); END_TYPE; -- 10303-42: topology_schema TYPE reversible_topology_item = SELECT (edge, path, face, face_bound, closed_shell, open_shell); END_TYPE; -- 10303-42: topology_schema TYPE rigid_placement = SELECT (axis2_placement_3d); END_TYPE; -- 10303-105: kinematic_structure_schema TYPE role_select = SELECT (action_assignment, action_request_assignment, approval_assignment, approval_date_time, certification_assignment, contract_assignment, document_reference, effectivity_assignment, group_assignment, name_assignment , security_classification_assignment); END_TYPE; -- 10303-41: basic_attribute_schema TYPE rotational_range_measure = SELECT (plane_angle_measure, unlimited_range); END_TYPE; -- 10303-105: kinematic_structure_schema TYPE second_in_minute = REAL; WHERE wr1 : {0 <= SELF <= 60.000000}; END_TYPE; -- 10303-41: date_time_schema TYPE security_classification_item = SELECT (action, action_directive, action_property, applied_action_assignment, assembly_component_usage_substitute, class_system, configuration_design, configuration_effectivity, configured_effectivity_assignment, document_file, draughting_model, drawing_revision, executed_action, general_property, material_designation, mechanical_design_geometric_presentation_representation , organizational_project, presentation_area, product, product_concept, product_concept_feature, product_concept_feature_category, product_definition , product_definition_formation, product_definition_relationship, property_definition, resource_property, shape_representation, versioned_action_request); END_TYPE; -- 10303-214: automotive_design TYPE set_of_reversible_topology_item = SET OF reversible_topology_item; END_TYPE; -- 10303-42: topology_schema TYPE set_representation_item = SET [1:?] OF representation_item; END_TYPE; -- 10303-43: representation_schema TYPE shading_curve_method = ENUMERATION OF (constant_colour, linear_colour); END_TYPE; -- 10303-46: presentation_appearance_schema TYPE shading_surface_method = ENUMERATION OF (constant_shading, colour_shading, dot_shading, normal_shading); END_TYPE; -- 10303-46: presentation_appearance_schema TYPE shape_definition = SELECT (product_definition_shape, shape_aspect, shape_aspect_relationship); END_TYPE; -- 10303-41: product_property_definition_schema TYPE shell = SELECT (open_shell, closed_shell); END_TYPE; -- 10303-42: topology_schema TYPE si_prefix = ENUMERATION OF (exa, peta, tera, giga, mega, kilo, hecto, deca, deci, centi, milli, micro, nano, pico, femto, atto); END_TYPE; -- 10303-41: measure_schema TYPE si_unit_name = ENUMERATION OF (metre, gram, second, ampere, kelvin, mole, candela, radian, steradian, hertz , newton, pascal, joule, watt, coulomb, volt, farad, ohm, siemens, weber, tesla, henry, degree_celsius, lumen, lux, becquerel, gray, sievert); END_TYPE; -- 10303-41: measure_schema TYPE size_select = SELECT (positive_length_measure, measure_with_unit, descriptive_measure); END_TYPE; -- 10303-46: presentation_appearance_schema TYPE solid_angle_measure = REAL; END_TYPE; -- 10303-41: measure_schema TYPE source = ENUMERATION OF (made, bought, not_known); END_TYPE; -- 10303-41: product_definition_schema TYPE source_item = SELECT (identifier); END_TYPE; -- 10303-41: external_reference_schema TYPE spatial_rotation = SELECT (ypr_rotation, rotation_about_direction); END_TYPE; -- 10303-105: kinematic_structure_schema TYPE specified_item = SELECT (drawing_revision); END_TYPE; -- 10303-214: automotive_design TYPE style_context_select = SELECT (group, presentation_layer_assignment, representation, representation_item, presentation_set); END_TYPE; -- 10303-46: presentation_appearance_schema TYPE supported_item = SELECT (action_directive, action, action_method); END_TYPE; -- 10303-41: action_schema TYPE surface_side = ENUMERATION OF (positive, negative, both); END_TYPE; -- 10303-46: presentation_appearance_schema TYPE surface_side_style_select = SELECT (surface_side_style); END_TYPE; -- 10303-46: presentation_appearance_schema TYPE surface_style_element_select = SELECT (surface_style_fill_area, surface_style_boundary, surface_style_silhouette, surface_style_segmentation_curve, surface_style_control_grid, surface_style_parameter_line, surface_style_rendering); END_TYPE; -- 10303-46: presentation_appearance_schema TYPE surface_tolerance_deviation = positive_length_measure; END_TYPE; -- 10303-46: presentation_appearance_schema TYPE surface_tolerance_parameter = REAL; END_TYPE; -- 10303-46: presentation_appearance_schema TYPE symbol_style_select = SELECT (symbol_colour); END_TYPE; -- 10303-46: presentation_appearance_schema TYPE text = STRING; END_TYPE; -- 10303-41: support_resource_schema TYPE text_alignment = label; END_TYPE; -- 10303-46: presentation_definition_schema TYPE text_delineation = label; END_TYPE; -- 10303-46: presentation_definition_schema TYPE text_or_character = SELECT (annotation_text, annotation_text_character, defined_character_glyph, composite_text, text_literal); END_TYPE; -- 10303-46: presentation_definition_schema TYPE text_path = ENUMERATION OF (left, right, up, down); END_TYPE; -- 10303-46: presentation_definition_schema TYPE text_string_representation_item = SELECT (text_literal, annotation_text, annotation_text_character, defined_character_glyph, composite_text, axis2_placement); END_TYPE; (* declared in: presentation_definition_schema *) TYPE thermodynamic_temperature_measure = REAL; END_TYPE; -- 10303-41: measure_schema TYPE time_interval_item = SELECT (action, action_directive, action_method, action_property, action_relationship, action_request_solution, alternate_product_relationship , applied_action_assignment, applied_classification_assignment, applied_person_and_organization_assignment, approval_status, assembly_component_usage_substitute, certification, class, class_system, configuration_design, configuration_effectivity, configuration_item, configured_effectivity_assignment, contract, document_file, draughting_model , drawing_revision, executed_action, general_property, material_designation, mechanical_design_geometric_presentation_representation, organization_relationship, organizational_project, person_and_organization, presentation_area, product, product_concept, product_concept_feature, product_concept_feature_association, product_concept_feature_category, product_concept_feature_category_usage, product_definition, product_definition_formation, product_definition_formation_relationship, product_definition_relationship, product_definition_substitute, property_definition, requirement_for_action_resource, resource_property, security_classification, security_classification_level, shape_representation , versioned_action_request); END_TYPE; -- 10303-214: automotive_design TYPE time_measure = REAL; END_TYPE; -- 10303-41: measure_schema TYPE tolerance_deviation_select = SELECT (curve_tolerance_deviation, surface_tolerance_deviation); END_TYPE; -- 10303-46: presentation_appearance_schema TYPE tolerance_method_definition = SELECT (tolerance_value, limits_and_fits); END_TYPE; -- 10303-47: shape_tolerance_schema TYPE tolerance_parameter_select = SELECT (curve_tolerance_parameter, surface_tolerance_parameter); END_TYPE; -- 10303-46: presentation_appearance_schema TYPE tolerance_select = SELECT (approximation_tolerance_deviation, approximation_tolerance_parameter); END_TYPE; -- 10303-46: presentation_appearance_schema TYPE transformation = SELECT (item_defined_transformation, functionally_defined_transformation); END_TYPE; -- 10303-43: representation_schema TYPE transition_code = ENUMERATION OF (discontinuous, continuous, cont_same_gradient, cont_same_gradient_same_curvature); END_TYPE; -- 10303-42: geometry_schema TYPE translational_range_measure = SELECT (length_measure, unlimited_range); END_TYPE; -- 10303-105: kinematic_structure_schema TYPE trimming_preference = ENUMERATION OF (cartesian, parameter, unspecified); END_TYPE; -- 10303-42: geometry_schema TYPE trimming_select = SELECT (cartesian_point, parameter_value); END_TYPE; -- 10303-42: geometry_schema TYPE u_direction_count = INTEGER; WHERE wr1 : SELF > 1; END_TYPE; -- 10303-46: presentation_appearance_schema TYPE unit = SELECT (named_unit, derived_unit); END_TYPE; -- 10303-41: measure_schema TYPE unlimited_range = ENUMERATION OF (unlimited); END_TYPE; -- 10303-105: kinematic_structure_schema TYPE v_direction_count = INTEGER; WHERE wr1 : SELF > 1; END_TYPE; -- 10303-46: presentation_appearance_schema TYPE value_qualifier = SELECT (precision_qualifier, type_qualifier, uncertainty_qualifier); END_TYPE; -- 10303-45: qualified_measure_schema TYPE vector_or_direction = SELECT (vector, direction); END_TYPE; -- 10303-42: geometry_schema TYPE volume_measure = REAL; END_TYPE; -- 10303-41: measure_schema TYPE year_number = INTEGER; END_TYPE; -- 10303-41: date_time_schema TYPE ypr_enumeration = ENUMERATION OF (yaw, pitch, roll); END_TYPE; -- 10303-105: kinematic_structure_schema TYPE ypr_rotation = ARRAY [ypr_index(yaw) : ypr_index(roll)] OF plane_angle_measure; END_TYPE; -- 10303-105: kinematic_structure_schema ENTITY abs_function SUBTYPE OF (unary_function_call); END_ENTITY; (* declared in: iso13584_expressions_schema *) ENTITY acos_function SUBTYPE OF (unary_function_call); END_ENTITY; (* declared in: iso13584_expressions_schema *) ENTITY action; name : label; description : OPTIONAL text; chosen_method : action_method; DERIVE id : identifier := get_id_value(SELF); WHERE wr1 : SIZEOF(USEDIN(SELF, 'AUTOMOTIVE_DESIGN.ID_ATTRIBUTE.IDENTIFIED_ITEM' )) <= 1; END_ENTITY; -- 10303-41: action_schema ENTITY action_assignment ABSTRACT SUPERTYPE; assigned_action : action; DERIVE role : object_role := get_role(SELF); WHERE wr1 : SIZEOF(USEDIN(SELF, 'AUTOMOTIVE_DESIGN.ROLE_ASSOCIATION.ITEM_WITH_ROLE')) <= 1; END_ENTITY; -- 10303-41: management_resources_schema ENTITY action_directive; name : label; description : OPTIONAL text; analysis : text; comment : text; requests : SET [1:?] OF versioned_action_request; END_ENTITY; -- 10303-41: action_schema ENTITY action_method; name : label; description : OPTIONAL text; consequence : text; purpose : text; END_ENTITY; -- 10303-41: action_schema ENTITY action_method_relationship; name : label; description : OPTIONAL text; relating_method : action_method; related_method : action_method; END_ENTITY; -- 10303-41: action_schema ENTITY action_property; name : label; description : text; definition : characterized_action_definition; END_ENTITY; -- 10303-49: process_property_schema ENTITY action_property_representation; name : label; description : text; property : action_property; representation : representation; END_ENTITY; -- 10303-49: process_property_representation_schema ENTITY action_relationship; name : label; description : OPTIONAL text; relating_action : action; related_action : action; END_ENTITY; -- 10303-41: action_schema ENTITY action_request_assignment ABSTRACT SUPERTYPE; assigned_action_request : versioned_action_request; DERIVE role : object_role := get_role(SELF); WHERE wr1 : SIZEOF(USEDIN(SELF, 'AUTOMOTIVE_DESIGN.ROLE_ASSOCIATION.ITEM_WITH_ROLE')) <= 1; END_ENTITY; -- 10303-41: management_resources_schema ENTITY action_request_solution; method : action_method; request : versioned_action_request; DERIVE description : text := get_description_value(SELF); name : label := get_name_value(SELF); WHERE wr1 : SIZEOF(USEDIN(SELF, 'AUTOMOTIVE_DESIGN.DESCRIPTION_ATTRIBUTE.DESCRIBED_ITEM')) <= 1; wr2 : SIZEOF(USEDIN(SELF, 'AUTOMOTIVE_DESIGN.NAME_ATTRIBUTE.NAMED_ITEM')) <= 1; END_ENTITY; -- 10303-41: action_schema ENTITY action_request_status; status : label; assigned_request : versioned_action_request; END_ENTITY; -- 10303-41: action_schema ENTITY action_resource; name : label; description : OPTIONAL text; usage : SET [1:?] OF supported_item; kind : action_resource_type; END_ENTITY; -- 10303-41: action_schema ENTITY action_resource_requirement; name : label; description : text; kind : resource_requirement_type; operations : SET [1:?] OF characterized_action_definition; END_ENTITY; -- 10303-49: process_property_schema ENTITY action_resource_type; name : label; END_ENTITY; -- 10303-41: action_schema ENTITY action_status; status : label; assigned_action : executed_action; END_ENTITY; -- 10303-41: action_schema ENTITY address; internal_location : OPTIONAL label; street_number : OPTIONAL label; street : OPTIONAL label; postal_box : OPTIONAL label; town : OPTIONAL label; region : OPTIONAL label; postal_code : OPTIONAL label; country : OPTIONAL label; facsimile_number : OPTIONAL label; telephone_number : OPTIONAL label; electronic_mail_address : OPTIONAL label; telex_number : OPTIONAL label; DERIVE name : label := get_name_value(SELF); url : identifier := get_id_value(SELF); WHERE wr1 : EXISTS(internal_location) OR EXISTS(street_number) OR EXISTS(street) OR EXISTS(postal_box) OR EXISTS(town) OR EXISTS(region) OR EXISTS(postal_code ) OR EXISTS(country) OR EXISTS(facsimile_number) OR EXISTS(telephone_number ) OR EXISTS(electronic_mail_address) OR EXISTS(telex_number); END_ENTITY; -- 10303-41: person_organization_schema ENTITY advanced_brep_shape_representation SUBTYPE OF (shape_representation); WHERE wr1 : SIZEOF(QUERY(it <* SELF.items | NOT (SIZEOF([ 'AUTOMOTIVE_DESIGN.MANIFOLD_SOLID_BREP', 'AUTOMOTIVE_DESIGN.FACETED_BREP', 'AUTOMOTIVE_DESIGN.MAPPED_ITEM', 'AUTOMOTIVE_DESIGN.AXIS2_PLACEMENT_3D'] * TYPEOF(it)) = 1))) = 0; wr2 : SIZEOF(QUERY(it <* SELF.items | SIZEOF([ 'AUTOMOTIVE_DESIGN.MANIFOLD_SOLID_BREP', 'AUTOMOTIVE_DESIGN.MAPPED_ITEM'] * TYPEOF(it)) = 1)) > 0; wr3 : SIZEOF(QUERY(msb <* QUERY(it <* SELF.items | 'AUTOMOTIVE_DESIGN.MANIFOLD_SOLID_BREP' IN TYPEOF(it)) | NOT (SIZEOF( QUERY(csh <* msb_shells(msb) | NOT (SIZEOF(QUERY(fcs <* csh\ connected_face_set.cfs_faces | NOT ('AUTOMOTIVE_DESIGN.ADVANCED_FACE' IN TYPEOF(fcs)))) = 0))) = 0))) = 0; wr4 : SIZEOF(QUERY(msb <* QUERY(it <* items | 'AUTOMOTIVE_DESIGN.MANIFOLD_SOLID_BREP' IN TYPEOF(it)) | 'AUTOMOTIVE_DESIGN.ORIENTED_CLOSED_SHELL' IN TYPEOF(msb\ manifold_solid_brep.outer))) = 0; wr5 : SIZEOF(QUERY(brv <* QUERY(it <* items | 'AUTOMOTIVE_DESIGN.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 | 'AUTOMOTIVE_DESIGN.MAPPED_ITEM' IN TYPEOF(it)) | NOT ( 'AUTOMOTIVE_DESIGN.ADVANCED_BREP_SHAPE_REPRESENTATION' IN TYPEOF(mi\ mapped_item.mapping_source.mapped_representation)))) = 0; END_ENTITY; -- 10303-514: aic_advanced_brep ENTITY advanced_face SUBTYPE OF (face_surface); WHERE wr1 : SIZEOF(['AUTOMOTIVE_DESIGN.ELEMENTARY_SURFACE', 'AUTOMOTIVE_DESIGN.B_SPLINE_SURFACE', 'AUTOMOTIVE_DESIGN.SWEPT_SURFACE'] * TYPEOF(face_geometry)) = 1; wr2 : SIZEOF(QUERY(elp_fbnds <* QUERY(bnds <* bounds | 'AUTOMOTIVE_DESIGN.EDGE_LOOP' IN TYPEOF(bnds.bound)) | NOT (SIZEOF( QUERY(oe <* elp_fbnds.bound\path.edge_list | NOT ( 'AUTOMOTIVE_DESIGN.EDGE_CURVE' IN TYPEOF(oe\oriented_edge.edge_element)) )) = 0))) = 0; wr3 : SIZEOF(QUERY(elp_fbnds <* QUERY(bnds <* bounds | 'AUTOMOTIVE_DESIGN.EDGE_LOOP' IN TYPEOF(bnds.bound)) | NOT (SIZEOF( QUERY(oe <* elp_fbnds.bound\path.edge_list | NOT (SIZEOF([ 'AUTOMOTIVE_DESIGN.LINE', 'AUTOMOTIVE_DESIGN.CONIC', 'AUTOMOTIVE_DESIGN.POLYLINE', 'AUTOMOTIVE_DESIGN.SURFACE_CURVE', 'AUTOMOTIVE_DESIGN.B_SPLINE_CURVE'] * TYPEOF(oe.edge_element\edge_curve. edge_geometry)) = 1))) = 0))) = 0; wr4 : SIZEOF(QUERY(elp_fbnds <* QUERY(bnds <* bounds | 'AUTOMOTIVE_DESIGN.EDGE_LOOP' IN TYPEOF(bnds.bound)) | NOT (SIZEOF( QUERY(oe <* elp_fbnds.bound\path.edge_list | NOT (( 'AUTOMOTIVE_DESIGN.VERTEX_POINT' IN TYPEOF(oe\edge.edge_start)) AND ( 'AUTOMOTIVE_DESIGN.CARTESIAN_POINT' IN TYPEOF(oe\edge.edge_start\ vertex_point.vertex_geometry)) AND ('AUTOMOTIVE_DESIGN.VERTEX_POINT' IN TYPEOF(oe\edge.edge_end)) AND ('AUTOMOTIVE_DESIGN.CARTESIAN_POINT' IN TYPEOF(oe\edge.edge_end\vertex_point.vertex_geometry))))) = 0))) = 0; wr5 : SIZEOF(QUERY(elp_fbnds <* QUERY(bnds <* bounds | 'AUTOMOTIVE_DESIGN.EDGE_LOOP' IN TYPEOF(bnds.bound)) | 'AUTOMOTIVE_DESIGN.ORIENTED_PATH' IN TYPEOF(elp_fbnds.bound))) = 0; wr6 : NOT ('AUTOMOTIVE_DESIGN.SWEPT_SURFACE' IN TYPEOF(face_geometry)) OR (SIZEOF(['AUTOMOTIVE_DESIGN.LINE', 'AUTOMOTIVE_DESIGN.CONIC', 'AUTOMOTIVE_DESIGN.POLYLINE', 'AUTOMOTIVE_DESIGN.B_SPLINE_CURVE'] * TYPEOF(face_geometry\swept_surface.swept_curve)) = 1); wr7 : SIZEOF(QUERY(vlp_fbnds <* QUERY(bnds <* bounds | 'AUTOMOTIVE_DESIGN.VERTEX_LOOP' IN TYPEOF(bnds.bound)) | NOT (( 'AUTOMOTIVE_DESIGN.VERTEX_POINT' IN TYPEOF(vlp_fbnds\face_bound.bound\ vertex_loop.loop_vertex)) AND ('AUTOMOTIVE_DESIGN.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([ 'AUTOMOTIVE_DESIGN.EDGE_LOOP', 'AUTOMOTIVE_DESIGN.VERTEX_LOOP'] * TYPEOF(bnd.bound)) = 1))) = 0; wr9 : SIZEOF(QUERY(elp_fbnds <* QUERY(bnds <* bounds | 'AUTOMOTIVE_DESIGN.EDGE_LOOP' IN TYPEOF(bnds.bound)) | NOT (SIZEOF( QUERY(oe <* elp_fbnds.bound\path.edge_list | ( 'AUTOMOTIVE_DESIGN.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 ('AUTOMOTIVE_DESIGN.PCURVE' IN TYPEOF(sc_ag)))) = 0))) = 0))) = 0; wr10 : (NOT ('AUTOMOTIVE_DESIGN.SWEPT_SURFACE' IN TYPEOF(face_geometry)) OR NOT ('AUTOMOTIVE_DESIGN.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 | 'AUTOMOTIVE_DESIGN.EDGE_LOOP' IN TYPEOF(bnds.bound)) | NOT (SIZEOF(QUERY(oe <* elp_fbnds.bound\path.edge_list | ( 'AUTOMOTIVE_DESIGN.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; -- 10303-511: aic_topologically_bounded_surface 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; -- 10303-44: product_structure_schema ENTITY amount_of_substance_measure_with_unit SUBTYPE OF (measure_with_unit); WHERE wr1 : 'AUTOMOTIVE_DESIGN.AMOUNT_OF_SUBSTANCE_UNIT' IN TYPEOF(SELF\ measure_with_unit.unit_component); END_ENTITY; -- 10303-41: measure_schema ENTITY amount_of_substance_unit SUBTYPE OF (named_unit); WHERE wr1 : (SELF\named_unit.dimensions.length_exponent = 0.000000) AND (SELF\ named_unit.dimensions.mass_exponent = 0.000000) AND (SELF\named_unit .dimensions.time_exponent = 0.000000) AND (SELF\named_unit.dimensions. electric_current_exponent = 0.000000) AND (SELF\named_unit.dimensions. thermodynamic_temperature_exponent = 0.000000) AND (SELF\named_unit. dimensions.amount_of_substance_exponent = 1.000000) AND (SELF\named_unit. dimensions.luminous_intensity_exponent = 0.000000); END_ENTITY; -- 10303-41: measure_schema ENTITY and_expression SUBTYPE OF (multiple_arity_boolean_expression); END_ENTITY; (* declared in: iso13584_expressions_schema *) ENTITY angular_dimension SUBTYPE OF (dimension_curve_directed_callout); END_ENTITY; -- 10303-506: aic_draughting_elements ENTITY angular_location SUBTYPE OF (dimensional_location); angle_selection : angle_relator; END_ENTITY; -- 10303-47: shape_dimension_schema ENTITY angular_size SUBTYPE OF (dimensional_size); angle_selection : angle_relator; END_ENTITY; -- 10303-47: shape_dimension_schema ENTITY angularity_tolerance SUBTYPE OF (geometric_tolerance_with_datum_reference); WHERE wr1 : SIZEOF(SELF\geometric_tolerance_with_datum_reference.datum_system) < 3; END_ENTITY; -- 10303-519: aic_geometric_tolerances ENTITY annotation_curve_occurrence SUBTYPE OF (annotation_occurrence); WHERE wr1 : 'AUTOMOTIVE_DESIGN.CURVE' IN TYPEOF(SELF\styled_item.item); END_ENTITY; -- 10303-46: presentation_definition_schema ENTITY annotation_fill_area SUBTYPE OF (geometric_representation_item); boundaries : SET [1:?] OF curve; END_ENTITY; -- 10303-46: presentation_definition_schema ENTITY annotation_fill_area_occurrence SUBTYPE OF (annotation_occurrence); fill_style_target : point; WHERE wr1 : 'AUTOMOTIVE_DESIGN.ANNOTATION_FILL_AREA' IN TYPEOF(SELF.item); END_ENTITY; -- 10303-46: presentation_definition_schema ENTITY annotation_occurrence SUPERTYPE OF (ONEOF (annotation_curve_occurrence, annotation_fill_area_occurrence, annotation_text_occurrence, annotation_symbol_occurrence)) SUBTYPE OF (styled_item); WHERE wr1 : 'AUTOMOTIVE_DESIGN.GEOMETRIC_REPRESENTATION_ITEM' IN TYPEOF(SELF); END_ENTITY; -- 10303-46: presentation_definition_schema ENTITY annotation_occurrence_associativity SUBTYPE OF (annotation_occurrence_relationship); WHERE wr1 : SIZEOF(TYPEOF(SELF.related_annotation_occurrence) * [ 'AUTOMOTIVE_DESIGN.ANNOTATION_FILL_AREA_OCCURRENCE', 'AUTOMOTIVE_DESIGN.PROJECTION_CURVE', 'AUTOMOTIVE_DESIGN.LEADER_CURVE']) = 1; END_ENTITY; -- 10303-520: aic_associative_draughting_elements ENTITY annotation_occurrence_relationship; name : label; description : text; relating_annotation_occurrence : annotation_occurrence; related_annotation_occurrence : annotation_occurrence; END_ENTITY; -- 10303-46: presentation_definition_schema ENTITY annotation_plane SUBTYPE OF (annotation_occurrence, geometric_representation_item); elements : OPTIONAL SET [1:?] OF annotation_plane_element; SELF\styled_item.item : plane_or_planar_box; WHERE wr1 : SELF\geometric_representation_item.dim = 3; wr2 : NOT ('AUTOMOTIVE_DESIGN_LF.' + 'PLANAR_BOX' IN TYPEOF(SELF\styled_item. item)) OR ('AUTOMOTIVE_DESIGN_LF.' + 'AXIS2_PLACEMENT_3D' IN TYPEOF(SELF\ styled_item.item\planar_box.placement)); wr3 : ('AUTOMOTIVE_DESIGN_LF.' + 'PLANAR_BOX' IN TYPEOF(SELF\styled_item.item )) AND ('AUTOMOTIVE_DESIGN_LF.' + 'CURVE_STYLE' IN TYPEOF(SELF\styled_item. styles[1]\presentation_style_assignment.styles[1])) OR ( 'AUTOMOTIVE_DESIGN_LF.' + 'PLANE' IN TYPEOF(SELF\styled_item.item)) AND ( 'AUTOMOTIVE_DESIGN_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; (* declared in: draughting_element_schema *) 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 ( 'AUTOMOTIVE_DESIGN.NULL_STYLE' IN TYPEOF(sty.styles[1])))) = 0; wr3 : 'AUTOMOTIVE_DESIGN.ANNOTATION_SYMBOL' IN TYPEOF(SELF.item); wr4 : 'AUTOMOTIVE_DESIGN.DRAUGHTING_SUBFIGURE_REPRESENTATION' IN TYPEOF( SELF.item\mapped_item.mapping_source.mapped_representation); END_ENTITY; -- 10303-504: aic_draughting_annotation ENTITY annotation_symbol SUBTYPE OF (mapped_item); WHERE wr1 : 'AUTOMOTIVE_DESIGN.SYMBOL_REPRESENTATION_MAP' IN TYPEOF(SELF\ mapped_item.mapping_source); wr2 : 'AUTOMOTIVE_DESIGN.SYMBOL_TARGET' IN TYPEOF(SELF\mapped_item. mapping_target); wr3 : 'AUTOMOTIVE_DESIGN.GEOMETRIC_REPRESENTATION_ITEM' IN TYPEOF(SELF); END_ENTITY; -- 10303-46: presentation_definition_schema ENTITY annotation_symbol_occurrence SUBTYPE OF (annotation_occurrence); WHERE wr1 : SIZEOF(['AUTOMOTIVE_DESIGN.ANNOTATION_SYMBOL', 'AUTOMOTIVE_DESIGN.DEFINED_SYMBOL'] * TYPEOF(SELF\styled_item.item)) > 0 ; END_ENTITY; -- 10303-46: presentation_definition_schema ENTITY annotation_text SUBTYPE OF (mapped_item); WHERE wr1 : 'AUTOMOTIVE_DESIGN.AXIS2_PLACEMENT' IN TYPEOF(SELF\mapped_item. mapping_target); wr2 : 'AUTOMOTIVE_DESIGN.TEXT_STRING_REPRESENTATION' IN TYPEOF(SELF\ mapped_item.mapping_source.mapped_representation); wr3 : 'AUTOMOTIVE_DESIGN.GEOMETRIC_REPRESENTATION_ITEM' IN TYPEOF(SELF); END_ENTITY; -- 10303-46: presentation_definition_schema ENTITY annotation_text_character SUBTYPE OF (mapped_item); alignment : text_alignment; WHERE wr1 : 'AUTOMOTIVE_DESIGN.CHARACTER_GLYPH_SYMBOL' IN TYPEOF(SELF\ mapped_item.mapping_source.mapped_representation); wr2 : 'AUTOMOTIVE_DESIGN.AXIS2_PLACEMENT' IN TYPEOF(SELF\mapped_item. mapping_target); wr3 : 'AUTOMOTIVE_DESIGN.GEOMETRIC_REPRESENTATION_ITEM' IN TYPEOF(SELF); END_ENTITY; -- 10303-46: presentation_definition_schema ENTITY annotation_text_occurrence SUBTYPE OF (annotation_occurrence); WHERE wr1 : SIZEOF(['AUTOMOTIVE_DESIGN.TEXT_LITERAL', 'AUTOMOTIVE_DESIGN.ANNOTATION_TEXT', 'AUTOMOTIVE_DESIGN.ANNOTATION_TEXT_CHARACTER', 'AUTOMOTIVE_DESIGN.DEFINED_CHARACTER_GLYPH', 'AUTOMOTIVE_DESIGN.COMPOSITE_TEXT'] * TYPEOF(SELF\styled_item.item)) > 0 ; END_ENTITY; -- 10303-46: presentation_definition_schema ENTITY apex SUBTYPE OF (derived_shape_aspect); END_ENTITY; -- 10303-47: shape_aspect_definition_schema ENTITY application_context; application : label; DERIVE description : text := get_description_value(SELF); id : identifier := get_id_value(SELF); INVERSE context_elements : SET [1:?] OF application_context_element FOR frame_of_reference; WHERE wr1 : SIZEOF(USEDIN(SELF, 'AUTOMOTIVE_DESIGN.DESCRIPTION_ATTRIBUTE.DESCRIBED_ITEM')) <= 1; wr2 : SIZEOF(USEDIN(SELF, 'AUTOMOTIVE_DESIGN.ID_ATTRIBUTE.IDENTIFIED_ITEM' )) <= 1; END_ENTITY; -- 10303-41: application_context_schema ENTITY application_context_element SUPERTYPE OF (ONEOF (product_concept_context, product_context, product_definition_context)); name : label; frame_of_reference : application_context; END_ENTITY; -- 10303-41: application_context_schema ENTITY application_context_relationship; name : label; description : OPTIONAL text; relating_context : application_context; related_context : application_context; END_ENTITY; -- 10303-41: application_context_schema ENTITY application_protocol_definition; status : label; application_interpreted_model_schema_name : label; application_protocol_year : year_number; application : application_context; END_ENTITY; -- 10303-41: application_context_schema ENTITY applied_action_assignment SUBTYPE OF (action_assignment); items : SET [1:?] OF action_item; END_ENTITY; -- 10303-214: automotive_design ENTITY applied_action_request_assignment SUBTYPE OF (action_request_assignment); items : SET [1:?] OF action_request_item; END_ENTITY; -- 10303-214: automotive_design ENTITY applied_approval_assignment SUBTYPE OF (approval_assignment); items : SET [1:?] OF approval_item; END_ENTITY; -- 10303-214: automotive_design ENTITY applied_area SUBTYPE OF (shape_aspect); WHERE wr1 : SIZEOF(QUERY(pdr <* get_shape_aspect_property_definition_representations(SELF) | 'AUTOMOTIVE_DESIGN.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation))) = 1; wr2 : SIZEOF(QUERY(pdr <* get_shape_aspect_property_definition_representations(SELF) | ( 'AUTOMOTIVE_DESIGN.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation)) AND {2 <= SIZEOF(pdr.used_representation.items) <= 3})) = 1; wr3 : SIZEOF(QUERY(pdr <* get_shape_aspect_property_definition_representations(SELF) | ( 'AUTOMOTIVE_DESIGN.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation)) AND (SIZEOF(QUERY(i <* pdr.used_representation. items | NOT (i.name IN ['orientation', 'effective length', 'maximum length' ]))) > 0))) = 0; wr4 : SIZEOF(QUERY(pdr <* get_shape_aspect_property_definition_representations(SELF) | ( 'AUTOMOTIVE_DESIGN.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation)) AND (SIZEOF(QUERY(i <* pdr.used_representation. items | (i.name = 'orientation') AND ('AUTOMOTIVE_DESIGN.' + 'PLACEMENT' IN TYPEOF(i)))) = 1))) = 1; wr5 : SIZEOF(QUERY(pdr <* get_shape_aspect_property_definition_representations(SELF) | ( 'AUTOMOTIVE_DESIGN.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation)) AND (SIZEOF(QUERY(i <* pdr.used_representation. items | (i.name = 'effective length') AND (SIZEOF(['AUTOMOTIVE_DESIGN.' + 'MEASURE_REPRESENTATION_ITEM', 'AUTOMOTIVE_DESIGN.' + 'LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(i)) = 2))) = 1))) = 1; wr6 : SIZEOF(QUERY(pdr <* get_shape_aspect_property_definition_representations(SELF) | ( 'AUTOMOTIVE_DESIGN.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation)) AND (SIZEOF(QUERY(i <* pdr.used_representation. items | (i.name = 'effective length') AND (SIZEOF(['AUTOMOTIVE_DESIGN.' + 'MEASURE_REPRESENTATION_ITEM', 'AUTOMOTIVE_DESIGN.' + 'LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(i)) = 2))) = 1))) = 1; wr7 : SIZEOF(QUERY(sar <* USEDIN(SELF, 'AUTOMOTIVE_DESIGN.SHAPE_ASPECT_RELATIONSHIP.RELATING_SHAPE_ASPECT') | ( 'AUTOMOTIVE_DESIGN.' + 'SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF(sar)) AND (sar.description = 'applied area usage') AND (('AUTOMOTIVE_DESIGN.' + 'THREAD' IN TYPEOF(sar.relating_shape_aspect.of_shape.definition)) OR ( 'AUTOMOTIVE_DESIGN.' + 'EXTERNALLY_DEFINED_FEATURE_DEFINITION' IN TYPEOF (sar.relating_shape_aspect.of_shape.definition)) AND (sar. relating_shape_aspect.of_shape.definition\externally_defined_item.item_id = 'external thread') AND (sar.relating_shape_aspect.of_shape.definition\ externally_defined_item.source.source_id = 'external thread specification') ) AND (sar.relating_shape_aspect.of_shape.definition.description = 'partial area occurrence'))) = 1; END_ENTITY; -- 10303-214: automotive_design ENTITY applied_certification_assignment SUBTYPE OF (certification_assignment); items : SET [1:?] OF certification_item; END_ENTITY; -- 10303-214: automotive_design ENTITY applied_classification_assignment SUBTYPE OF (classification_assignment); items : SET [1:?] OF classification_item; WHERE wr1 : NOT ('AUTOMOTIVE_DESIGN.' + 'CLASS' IN TYPEOF(SELF.assigned_class)) OR (SIZEOF(QUERY(i <* SELF.items | SIZEOF(['AUTOMOTIVE_DESIGN.' + 'ACTION', 'AUTOMOTIVE_DESIGN.' + 'ACTION_DIRECTIVE', 'AUTOMOTIVE_DESIGN.' + 'ACTION_METHOD', 'AUTOMOTIVE_DESIGN.' + 'ACTION_PROPERTY', 'AUTOMOTIVE_DESIGN.' + 'ACTION_RELATIONSHIP', 'AUTOMOTIVE_DESIGN.' + 'APPROVAL_STATUS', 'AUTOMOTIVE_DESIGN.' + 'ASSEMBLY_COMPONENT_USAGE', 'AUTOMOTIVE_DESIGN.' + 'CONFIGURATION_ITEM' , 'AUTOMOTIVE_DESIGN.' + 'CONTRACT', 'AUTOMOTIVE_DESIGN.' + 'DOCUMENT_FILE', 'AUTOMOTIVE_DESIGN.' + 'DOCUMENT_TYPE', 'AUTOMOTIVE_DESIGN.' + 'FEATURE_DEFINITION', 'AUTOMOTIVE_DESIGN.' + 'GENERAL_PROPERTY', 'AUTOMOTIVE_DESIGN.' + 'MATERIAL_DESIGNATION', 'AUTOMOTIVE_DESIGN.' + 'ORGANIZATIONAL_PROJECT', 'AUTOMOTIVE_DESIGN.' + 'PRODUCT', 'AUTOMOTIVE_DESIGN.' + 'PRODUCT_CONCEPT', 'AUTOMOTIVE_DESIGN.' + 'PRODUCT_CONCEPT_FEATURE_CATEGORY', 'AUTOMOTIVE_DESIGN.' + 'PRODUCT_DEFINITION', 'AUTOMOTIVE_DESIGN.' + 'PRODUCT_DEFINITION_FORMATION', 'AUTOMOTIVE_DESIGN.' + 'PROPERTY_DEFINITION', 'AUTOMOTIVE_DESIGN.' + 'RESOURCE_PROPERTY', 'AUTOMOTIVE_DESIGN.' + 'SECURITY_CLASSIFICATION_LEVEL', 'AUTOMOTIVE_DESIGN.' + 'SHAPE_ASPECT', 'AUTOMOTIVE_DESIGN.' + 'VERSIONED_ACTION_REQUEST'] * TYPEOF(i)) <> 1)) = 0); wr2 : NOT (('AUTOMOTIVE_DESIGN.' + 'GROUP' IN TYPEOF(SELF.assigned_class)) AND (SELF.assigned_class\group.name = 'E') AND (SELF.assigned_class\group .description = 'dimensioning principle')) OR (SIZEOF(QUERY(i <* SELF.items | NOT ('AUTOMOTIVE_DESIGN.' + 'PLUS_MINUS_TOLERANCE' IN TYPEOF(i)))) = 0); wr3 : NOT (('AUTOMOTIVE_DESIGN.' + 'CLASS_SYSTEM' IN TYPEOF(SELF. assigned_class)) AND (SELF.role.name = 'class system membership')) OR ( SIZEOF(QUERY(i <* SELF.items | SIZEOF(['AUTOMOTIVE_DESIGN.' + 'APPROVAL_STATUS', 'AUTOMOTIVE_DESIGN.' + 'CLASS', 'AUTOMOTIVE_DESIGN.' + 'DESCRIPTIVE_REPRESENTATION_ITEM', 'AUTOMOTIVE_DESIGN.' + 'DOCUMENT_TYPE', 'AUTOMOTIVE_DESIGN.' + 'PLANAR_EXTENT', 'AUTOMOTIVE_DESIGN.' + 'SECURITY_CLASSIFICATION_LEVEL'] * TYPEOF(i)) <> 1)) = 0); END_ENTITY; -- 10303-214: automotive_design ENTITY applied_contract_assignment SUBTYPE OF (contract_assignment); items : SET [1:?] OF contract_item; END_ENTITY; -- 10303-214: automotive_design ENTITY applied_date_and_time_assignment SUBTYPE OF (date_and_time_assignment); items : SET [1:?] OF date_and_time_item; END_ENTITY; -- 10303-214: automotive_design ENTITY applied_date_assignment SUBTYPE OF (date_assignment); items : SET [1:?] OF date_item; WHERE wr1 : NOT (SELF.role.name = 'actual end') OR item_correlation(SELF.items, [ 'ACTION', 'ORGANIZATIONAL_PROJECT', 'EFFECTIVITY']); END_ENTITY; -- 10303-214: automotive_design ENTITY applied_document_reference SUBTYPE OF (document_reference); items : SET [1:?] OF document_reference_item; WHERE wr1 : NOT (SELF.role.name = 'general tolerance definition') OR item_correlation(SELF.items, ['REPRESENTATION']); wr2 : (SELF.role.name = 'general tolerance definition') OR item_correlation( SELF.items, ['ACTION', 'ACTION_DIRECTIVE', 'ACTION_METHOD', 'ACTION_RELATIONSHIP', 'APPLIED_ACTION_ASSIGNMENT', 'APPROVAL', 'CERTIFICATION', 'CLASS', 'CLASS_SYSTEM', 'CONFIGURATION_DESIGN', 'CONFIGURATION_ITEM', 'CONTRACT', 'FEATURE_DEFINITION', 'GENERAL_PROPERTY' , 'MATERIAL_DESIGNATION', 'ORGANIZATION', 'ORGANIZATIONAL_PROJECT', 'PERSON', 'PRODUCT_CONCEPT', 'PRODUCT_CONCEPT_FEATURE', 'PRODUCT_CONCEPT_FEATURE_CATEGORY', 'PRODUCT_DEFINITION', 'PRODUCT_DEFINITION_FORMATION', 'PRODUCT_DEFINITION_FORMATION_RELATIONSHIP' , 'PRODUCT_DEFINITION_RELATIONSHIP', 'PRODUCT_DEFINITION_SUBSTITUTE', 'PRODUCT_RELATED_PRODUCT_CATEGORY', 'PROPERTY_DEFINITION', 'REPRESENTATION' , 'RESOURCE_REQUIREMENT_TYPE', 'SECURITY_CLASSIFICATION', 'SHAPE_ASPECT', 'SHAPE_ASPECT_RELATIONSHIP', 'VERSIONED_ACTION_REQUEST']); END_ENTITY; -- 10303-214: automotive_design ENTITY applied_document_usage_constraint_assignment SUBTYPE OF (document_usage_constraint_assignment); items : SET [1:?] OF document_reference_item; END_ENTITY; -- 10303-214: automotive_design ENTITY applied_effectivity_assignment SUBTYPE OF (effectivity_assignment); items : SET [1:?] OF effectivity_item; WHERE wr1 : SIZEOF(['AUTOMOTIVE_DESIGN.' + 'LOT_EFFECTIVITY', 'AUTOMOTIVE_DESIGN.' + 'SERIAL_NUMBERED_EFFECTIVITY', 'AUTOMOTIVE_DESIGN.' + 'PRODUCT_DEFINITION_EFFECTIVITY'] * TYPEOF(SELF. assigned_effectivity)) = 0; END_ENTITY; -- 10303-214: automotive_design ENTITY applied_event_occurrence_assignment SUBTYPE OF (event_occurrence_assignment); items : SET [1:?] OF event_occurrence_item; END_ENTITY; -- 10303-214: automotive_design ENTITY applied_external_identification_assignment SUBTYPE OF (external_identification_assignment); items : SET [1:?] OF external_identification_item; WHERE wr1 : NOT (SELF.role.name = 'alternative document id and location') OR item_correlation(SELF.items, ['DOCUMENT_FILE']); wr2 : NOT (SELF.role.name = 'version') OR item_correlation(SELF.items, [ 'EXTERNALLY_DEFINED_CLASS', 'EXTERNALLY_DEFINED_GENERAL_PROPERTY']); END_ENTITY; -- 10303-214: automotive_design ENTITY applied_group_assignment SUBTYPE OF (group_assignment); items : SET [1:?] OF group_item; WHERE wr1 : NOT (SELF.role.name = 'exclusiveness') OR item_correlation(SELF.items, ['ACTION']); wr2 : NOT (SELF.role.name = 'simultaneity') OR item_correlation(SELF.items, [ 'ACTION']); wr3 : NOT (SELF.role.name = 'specification category member') OR item_correlation(SELF.items, ['PRODUCT_CONCEPT_FEATURE']); wr4 : NOT (SELF.role.name = 'group membership') OR item_correlation(SELF. items, ['GEOMETRIC_REPRESENTATION_ITEM', 'SHAPE_ASPECT']); wr5 : NOT (SELF.role.name = 'group membership') OR (SIZEOF(SELF.items) = SIZEOF(QUERY(i <* SELF.items | 'AUTOMOTIVE_DESIGN.' + 'GEOMETRIC_REPRESENTATION_ITEM' IN TYPEOF(i)))) OR (SIZEOF(SELF.items) = SIZEOF(QUERY(i <* SELF.items | 'AUTOMOTIVE_DESIGN.' + 'SHAPE_ASPECT' IN TYPEOF(i)))); END_ENTITY; -- 10303-214: automotive_design ENTITY applied_identification_assignment SUBTYPE OF (identification_assignment); items : SET [1:?] OF identification_item; WHERE wr1 : NOT (SELF.role.name = 'version') OR item_correlation(SELF.items, [ 'ACTION', 'ACTION_DIRECTIVE', 'SHAPE_REPRESENTATION', 'EFFECTIVITY', 'PRODUCT_CONCEPT', 'CONFIGURATION_ITEM', 'PRODUCT_DEFINITION', 'PRODUCT_CONCEPT_FEATURE', 'DOCUMENT_FILE', 'CLASS', 'APPLIED_IDENTIFICATION_ASSIGNMENT', 'DRAUGHTING_MODEL', 'MECHANICAL_DESIGN_GEOMETRIC_PRESENTATION_REPRESENTATION', 'PRESENTATION_AREA']); wr2 : NOT (SELF.role.name = 'lot context') OR item_correlation(SELF.items, [ 'PRODUCT']); wr3 : NOT (SELF.role.name = 'property change id context') OR item_correlation (SELF.items, ['PROPERTY_DEFINITION_RELATIONSHIP', 'SHAPE_ASPECT_RELATIONSHIP', 'ACTION_PROPERTY']); wr4 : NOT (SELF.role.name = 'size id') OR item_correlation(SELF.items, [ 'DIMENSIONAL_SIZE']); wr5 : NOT (SELF.role.name = 'model change id') OR item_correlation(SELF.items , ['PROPERTY_DEFINITION', 'ACTION_PROPERTY']); wr6 : NOT (SELF.role.name = 'alias') OR item_correlation(SELF.items, [ 'APPLICATION_CONTEXT', 'APPROVAL_STATUS', 'ASSEMBLY_COMPONENT_USAGE', 'CLASS', 'CLASS_SYSTEM', 'DOCUMENT_TYPE', 'DRAUGHTING_MODEL', 'GENERAL_PROPERTY', 'MECHANICAL_DESIGN_GEOMETRIC_PRESENTATION_REPRESENTATION', 'ORGANIZATION', 'PRODUCT', 'PRODUCT_CONCEPT', 'PRODUCT_CONCEPT_FEATURE', 'PRODUCT_CONCEPT_FEATURE_CATEGORY', 'PRODUCT_DEFINITION', 'PRODUCT_DEFINITION_FORMATION', 'PROPERTY_DEFINITION', 'SECURITY_CLASSIFICATION_LEVEL', 'SHAPE_REPRESENTATION']); END_ENTITY; -- 10303-214: automotive_design ENTITY applied_ineffectivity_assignment SUBTYPE OF (effectivity_assignment); items : SET [1:?] OF effectivity_item; WHERE wr1 : SIZEOF(['AUTOMOTIVE_DESIGN.' + 'LOT_EFFECTIVITY', 'AUTOMOTIVE_DESIGN.' + 'SERIAL_NUMBERED_EFFECTIVITY', 'AUTOMOTIVE_DESIGN.' + 'PRODUCT_DEFINITION_EFFECTIVITY'] * TYPEOF(SELF. assigned_effectivity)) = 0; END_ENTITY; -- 10303-214: automotive_design ENTITY applied_name_assignment SUBTYPE OF (name_assignment); items : SET [1:?] OF name_item; WHERE wr1 : NOT (SELF.role.name = 'kinematic element name') OR item_correlation( SELF.items, ['KINEMATIC_STRUCTURE', 'KINEMATIC_JOINT', 'KINEMATIC_LINK']); END_ENTITY; -- 10303-214: automotive_design ENTITY applied_organization_assignment SUBTYPE OF (organization_assignment); items : SET [1:?] OF organization_item; WHERE wr1 : NOT (SELF.role.name = 'organization in contract') OR item_correlation( SELF.items, ['CONTRACT']); wr2 : NOT (SELF.role.name = 'signing for contract') OR item_correlation(SELF. items, ['APPLIED_ORGANIZATION_ASSIGNMENT']); wr3 : NOT (SELF.role.name = 'validity context') OR item_correlation(SELF. items, ['ACTION_PROPERTY', 'RESOURCE_PROPERTY', 'PROPERTY_DEFINITION']); wr4 : NOT (SELF.role.name = 'alias scope') OR item_correlation(SELF.items, [ 'APPLIED_IDENTIFICATION_ASSIGNMENT']); END_ENTITY; -- 10303-214: automotive_design ENTITY applied_organizational_project_assignment SUBTYPE OF (organizational_project_assignment); items : SET [1:?] OF organizational_project_item; END_ENTITY; -- 10303-214: automotive_design ENTITY applied_person_and_organization_assignment SUBTYPE OF (person_and_organization_assignment); items : SET [1:?] OF person_and_organization_item; WHERE wr1 : NOT (SELF.role.name = 'signing for contract') OR item_correlation(SELF. items, ['APPLIED_ORGANIZATION_ASSIGNMENT']); END_ENTITY; -- 10303-214: automotive_design ENTITY applied_presented_item SUBTYPE OF (presented_item); items : SET [1:?] OF presented_item_select; END_ENTITY; -- 10303-214: automotive_design ENTITY applied_security_classification_assignment SUBTYPE OF (security_classification_assignment); items : SET [1:?] OF security_classification_item; END_ENTITY; -- 10303-214: automotive_design ENTITY applied_time_interval_assignment SUBTYPE OF (time_interval_assignment); items : SET [1:?] OF time_interval_item; END_ENTITY; -- 10303-214: automotive_design ENTITY approval; status : approval_status; level : label; END_ENTITY; -- 10303-41: approval_schema ENTITY approval_assignment ABSTRACT SUPERTYPE; assigned_approval : approval; DERIVE role : object_role := get_role(SELF); WHERE wr1 : SIZEOF(USEDIN(SELF, 'AUTOMOTIVE_DESIGN.ROLE_ASSOCIATION.ITEM_WITH_ROLE')) <= 1; END_ENTITY; -- 10303-41: management_resources_schema ENTITY approval_date_time; date_time : date_time_select; dated_approval : approval; DERIVE role : object_role := get_role(SELF); WHERE wr1 : SIZEOF(USEDIN(SELF, 'AUTOMOTIVE_DESIGN.ROLE_ASSOCIATION.ITEM_WITH_ROLE')) <= 1; END_ENTITY; -- 10303-41: approval_schema ENTITY approval_person_organization; person_organization : person_organization_select; authorized_approval : approval; role : approval_role; END_ENTITY; -- 10303-41: approval_schema ENTITY approval_relationship; name : label; description : OPTIONAL text; relating_approval : approval; related_approval : approval; END_ENTITY; -- 10303-41: approval_schema ENTITY approval_role; role : label; DERIVE description : text := get_description_value(SELF); WHERE wr1 : SIZEOF(USEDIN(SELF, 'AUTOMOTIVE_DESIGN.DESCRIPTION_ATTRIBUTE.DESCRIBED_ITEM')) <= 1; END_ENTITY; -- 10303-41: approval_schema ENTITY approval_status; name : label; END_ENTITY; -- 10303-41: approval_schema ENTITY approximation_tolerance; tolerance : tolerance_select; END_ENTITY; -- 10303-46: presentation_appearance_schema ENTITY approximation_tolerance_deviation; tessellation_type : approximation_method; tolerances : SET [1:2] OF tolerance_deviation_select; definition_space : product_or_presentation_space; WHERE wr1 : (HIINDEX(SELF.tolerances) = 1) XOR (TYPEOF(SELF.tolerances[1]) <> TYPEOF(SELF.tolerances[2])); END_ENTITY; -- 10303-46: presentation_appearance_schema ENTITY approximation_tolerance_parameter; tolerances : SET [1:2] OF tolerance_parameter_select; WHERE wr1 : (HIINDEX(SELF.tolerances) = 1) XOR (TYPEOF(SELF.tolerances[1]) <> TYPEOF(SELF.tolerances[2])); END_ENTITY; -- 10303-46: presentation_appearance_schema ENTITY area_in_set; area : presentation_area; in_set : presentation_set; END_ENTITY; -- 10303-46: presentation_organization_schema ENTITY area_measure_with_unit SUBTYPE OF (measure_with_unit); WHERE wr1 : 'AUTOMOTIVE_DESIGN.AREA_UNIT' IN TYPEOF(SELF\measure_with_unit. unit_component); END_ENTITY; -- 10303-41: measure_schema ENTITY area_unit SUBTYPE OF (named_unit); WHERE wr1 : (SELF\named_unit.dimensions.length_exponent = 2.000000) AND (SELF\ named_unit.dimensions.mass_exponent = 0.000000) AND (SELF\named_unit .dimensions.time_exponent = 0.000000) AND (SELF\named_unit.dimensions. electric_current_exponent = 0.000000) AND (SELF\named_unit.dimensions. thermodynamic_temperature_exponent = 0.000000) AND (SELF\named_unit. dimensions.amount_of_substance_exponent = 0.000000) AND (SELF\named_unit. dimensions.luminous_intensity_exponent = 0.000000); END_ENTITY; -- 10303-41: measure_schema ENTITY asin_function SUBTYPE OF (unary_function_call); END_ENTITY; (* declared in: iso13584_expressions_schema *) ENTITY assembly_component_usage SUPERTYPE OF (ONEOF (next_assembly_usage_occurrence, specified_higher_usage_occurrence, promissory_usage_occurrence)) SUBTYPE OF (product_definition_usage); reference_designator : OPTIONAL identifier; END_ENTITY; -- 10303-44: product_structure_schema ENTITY assembly_component_usage_substitute; name : label; definition : OPTIONAL text; base : assembly_component_usage; substitute : assembly_component_usage; UNIQUE ur1 : base, substitute; WHERE wr1 : base.relating_product_definition :=: substitute. relating_product_definition; wr2 : base :<>: substitute; END_ENTITY; -- 10303-44: product_structure_schema ENTITY atan_function SUBTYPE OF (binary_function_call); END_ENTITY; (* declared in: iso13584_expressions_schema *) ENTITY attribute_classification_assignment ABSTRACT SUPERTYPE; assigned_class : group; attribute_name : label; role : classification_role; END_ENTITY; -- 10303-41: management_resources_schema ENTITY attribute_language_assignment SUBTYPE OF (attribute_classification_assignment); items : SET [1:?] OF attribute_language_item; DERIVE language : label := SELF\attribute_classification_assignment.assigned_class. name; WHERE wr1 : SELF\attribute_classification_assignment.role.name IN ['primary', 'translated']; wr2 : 'AUTOMOTIVE_DESIGN.' + 'LANGUAGE' IN TYPEOF(SELF\ attribute_classification_assignment.assigned_class); END_ENTITY; -- 10303-214: automotive_design ENTITY attribute_value_assignment ABSTRACT SUPERTYPE; attribute_name : label; attribute_value : attribute_type; role : attribute_value_role; END_ENTITY; -- 10303-41: management_resources_schema ENTITY attribute_value_role; name : label; description : OPTIONAL text; END_ENTITY; -- 10303-41: management_resources_schema ENTITY axis1_placement SUBTYPE OF (placement); axis : OPTIONAL direction; DERIVE z : direction := NVL(normalise(axis), dummy_gri||direction([0.0, 0.0, 1.0])); WHERE wr1 : SELF\geometric_representation_item.dim = 3; END_ENTITY; -- 10303-42: geometry_schema ENTITY axis2_placement_2d SUBTYPE OF (placement); ref_direction : OPTIONAL direction; DERIVE p : LIST [2:2] OF direction := build_2axes(ref_direction); WHERE wr1 : SELF\geometric_representation_item.dim = 2; END_ENTITY; -- 10303-42: geometry_schema ENTITY axis2_placement_3d SUBTYPE OF (placement); axis : OPTIONAL direction; ref_direction : OPTIONAL direction; DERIVE p : LIST [3:3] OF direction := build_axes(axis, ref_direction); WHERE wr1 : SELF\placement.location.dim = 3; wr2 : NOT EXISTS(axis) OR (axis.dim = 3); wr3 : NOT EXISTS(ref_direction) OR (ref_direction.dim = 3); wr4 : NOT EXISTS(axis) OR NOT EXISTS(ref_direction) OR (cross_product(axis, ref_direction).magnitude > 0.0); END_ENTITY; -- 10303-42: geometry_schema ENTITY b_spline_curve SUPERTYPE OF (ONEOF (uniform_curve, b_spline_curve_with_knots, quasi_uniform_curve, bezier_curve) ANDOR rational_b_spline_curve) SUBTYPE OF (bounded_curve); degree : INTEGER; control_points_list : LIST [2:?] OF cartesian_point; curve_form : b_spline_curve_form; closed_curve : LOGICAL; self_intersect : LOGICAL; DERIVE upper_index_on_control_points : INTEGER := SIZEOF(control_points_list) - 1; control_points : ARRAY [0 : upper_index_on_control_points] OF cartesian_point := list_to_array(control_points_list, 0, upper_index_on_control_points); WHERE wr1 : ('AUTOMOTIVE_DESIGN.UNIFORM_CURVE' IN TYPEOF(SELF)) OR ( 'AUTOMOTIVE_DESIGN.QUASI_UNIFORM_CURVE' IN TYPEOF(SELF)) OR ( 'AUTOMOTIVE_DESIGN.BEZIER_CURVE' IN TYPEOF(SELF)) OR ( 'AUTOMOTIVE_DESIGN.B_SPLINE_CURVE_WITH_KNOTS' IN TYPEOF(SELF)); END_ENTITY; -- 10303-42: geometry_schema ENTITY b_spline_curve_with_knots SUBTYPE OF (b_spline_curve); knot_multiplicities : LIST [2:?] OF INTEGER; knots : LIST [2:?] OF parameter_value; knot_spec : knot_type; DERIVE upper_index_on_knots : INTEGER := SIZEOF(knots); WHERE wr1 : constraints_param_b_spline(degree, upper_index_on_knots, upper_index_on_control_points, knot_multiplicities, knots); wr2 : SIZEOF(knot_multiplicities) = upper_index_on_knots; END_ENTITY; -- 10303-42: geometry_schema ENTITY b_spline_surface SUPERTYPE OF (ONEOF (b_spline_surface_with_knots, uniform_surface, quasi_uniform_surface, bezier_surface) ANDOR rational_b_spline_surface) SUBTYPE OF (bounded_surface); u_degree : INTEGER; v_degree : INTEGER; control_points_list : LIST [2:?] OF LIST [2:?] OF cartesian_point; surface_form : b_spline_surface_form; u_closed : LOGICAL; v_closed : LOGICAL; self_intersect : LOGICAL; DERIVE u_upper : INTEGER := SIZEOF(control_points_list) - 1; v_upper : INTEGER := SIZEOF(control_points_list[1]) - 1; control_points : ARRAY [0 : u_upper] OF ARRAY [0 : v_upper] OF cartesian_point := make_array_of_array(control_points_list, 0, u_upper, 0, v_upper); WHERE wr1 : ('AUTOMOTIVE_DESIGN.UNIFORM_SURFACE' IN TYPEOF(SELF)) OR ( 'AUTOMOTIVE_DESIGN.QUASI_UNIFORM_SURFACE' IN TYPEOF(SELF)) OR ( 'AUTOMOTIVE_DESIGN.BEZIER_SURFACE' IN TYPEOF(SELF)) OR ( 'AUTOMOTIVE_DESIGN.B_SPLINE_SURFACE_WITH_KNOTS' IN TYPEOF(SELF)); END_ENTITY; -- 10303-42: geometry_schema ENTITY b_spline_surface_with_knots SUBTYPE OF (b_spline_surface); u_multiplicities : LIST [2:?] OF INTEGER; v_multiplicities : LIST [2:?] OF INTEGER; u_knots : LIST [2:?] OF parameter_value; v_knots : LIST [2:?] OF parameter_value; knot_spec : knot_type; DERIVE knot_u_upper : INTEGER := SIZEOF(u_knots); knot_v_upper : INTEGER := SIZEOF(v_knots); WHERE wr1 : constraints_param_b_spline(SELF\b_spline_surface.u_degree, knot_u_upper , SELF\b_spline_surface.u_upper, u_multiplicities, u_knots); wr2 : constraints_param_b_spline(SELF\b_spline_surface.v_degree, knot_v_upper , SELF\b_spline_surface.v_upper, v_multiplicities, v_knots); wr3 : SIZEOF(u_multiplicities) = knot_u_upper; wr4 : SIZEOF(v_multiplicities) = knot_v_upper; END_ENTITY; -- 10303-42: geometry_schema ENTITY background_colour SUBTYPE OF (colour); presentation : area_or_view; UNIQUE ur1 : presentation; END_ENTITY; -- 10303-46: presentation_organization_schema 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, 'AUTOMOTIVE_DESIGN.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | ( 'AUTOMOTIVE_DESIGN.' + 'SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF(sar)) AND (sar.description = 'profile usage') AND (SIZEOF(['AUTOMOTIVE_DESIGN.' + 'CIRCULAR_CLOSED_PROFILE', 'AUTOMOTIVE_DESIGN.' + 'NGON_CLOSED_PROFILE', 'AUTOMOTIVE_DESIGN.' + 'RECTANGULAR_CLOSED_PROFILE', 'AUTOMOTIVE_DESIGN.' + '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, 'AUTOMOTIVE_DESIGN.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | ( 'AUTOMOTIVE_DESIGN.' + 'SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF(sar)) AND (sar.description = 'profile usage'))) = 1))) = 1; wr3 : (SIZEOF(QUERY(pdr <* get_property_definition_representations(SELF) | 'AUTOMOTIVE_DESIGN.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation))) = 1) AND (SIZEOF(QUERY(pdr <* get_property_definition_representations(SELF) | ('AUTOMOTIVE_DESIGN.' + '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) | ( 'AUTOMOTIVE_DESIGN.' + '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) | ( 'AUTOMOTIVE_DESIGN.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation)) AND (SIZEOF(QUERY(i <* pdr.used_representation. items | (i.name = 'base radius') AND (SIZEOF(['AUTOMOTIVE_DESIGN.' + 'MEASURE_REPRESENTATION_ITEM', 'AUTOMOTIVE_DESIGN.' + 'LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(i)) = 2))) <> 1))) = 0; END_ENTITY; -- 10303-214: automotive_design ENTITY bead SUBTYPE OF (feature_definition); WHERE wr1 : (SIZEOF(QUERY(pdr <* get_property_definition_representations(SELF) | 'AUTOMOTIVE_DESIGN.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation))) <= 1) AND (SIZEOF(QUERY(pdr <* get_property_definition_representations(SELF) | ('AUTOMOTIVE_DESIGN.' + '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) | ( 'AUTOMOTIVE_DESIGN.' + '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) | ( 'AUTOMOTIVE_DESIGN.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation)) AND (SIZEOF(QUERY(i <* pdr.used_representation. items | (i.name = 'base radius') AND (SIZEOF(['AUTOMOTIVE_DESIGN.' + 'MEASURE_REPRESENTATION_ITEM', 'AUTOMOTIVE_DESIGN.' + '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, 'AUTOMOTIVE_DESIGN.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | ( 'AUTOMOTIVE_DESIGN.' + 'SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF(sar)) AND (sar.description = 'path feature component usage') AND ( 'AUTOMOTIVE_DESIGN.' + '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, 'AUTOMOTIVE_DESIGN.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | ( 'AUTOMOTIVE_DESIGN.' + 'SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF(sar)) AND (sar.description = 'profile usage') AND (SIZEOF(['AUTOMOTIVE_DESIGN.' + 'OPEN_PATH_PROFILE', 'AUTOMOTIVE_DESIGN.' + 'PARTIAL_CIRCULAR_PROFILE', 'AUTOMOTIVE_DESIGN.' + 'ROUNDED_U_PROFILE', 'AUTOMOTIVE_DESIGN.' + 'SQUARE_U_PROFILE', 'AUTOMOTIVE_DESIGN.' + 'TEE_PROFILE', 'AUTOMOTIVE_DESIGN.' + '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, 'AUTOMOTIVE_DESIGN.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | ( 'AUTOMOTIVE_DESIGN.' + 'FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF(sar)) AND (sar.name = 'bead end usage') AND (sar.description = 'starting') AND ( 'AUTOMOTIVE_DESIGN.' + '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, 'AUTOMOTIVE_DESIGN.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | ( 'AUTOMOTIVE_DESIGN.' + 'FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF(sar)) AND (sar.name = 'bead end usage') AND (sar.description = 'ending') AND ( 'AUTOMOTIVE_DESIGN.' + 'BEAD_END' IN TYPEOF(sar.relating_shape_aspect))) ) = 1))) = 1; END_ENTITY; -- 10303-214: automotive_design ENTITY bead_end SUBTYPE OF (shape_aspect); WHERE wr1 : 'AUTOMOTIVE_DESIGN.' + '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) | 'AUTOMOTIVE_DESIGN.' + '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) | ( 'AUTOMOTIVE_DESIGN.' + '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) | ( 'AUTOMOTIVE_DESIGN.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation)) AND (SIZEOF(QUERY(i <* pdr.used_representation. items | (i.name = 'end length') AND (SIZEOF(['AUTOMOTIVE_DESIGN.' + 'MEASURE_REPRESENTATION_ITEM', 'AUTOMOTIVE_DESIGN.' + 'LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(i)) = 2))) = 1))) = 1); wr6 : (SELF.description <> 'linear') OR (SIZEOF(QUERY(pdr <* get_shape_aspect_property_definition_representations(SELF) | ( 'AUTOMOTIVE_DESIGN.' + '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 ('AUTOMOTIVE_DESIGN.' + 'DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF(i)))) = 1))) = 1); wr7 : SIZEOF(QUERY(sar <* USEDIN(SELF, 'AUTOMOTIVE_DESIGN.SHAPE_ASPECT_RELATIONSHIP.RELATING_SHAPE_ASPECT') | ( 'AUTOMOTIVE_DESIGN.' + 'FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF(sar)) AND (sar.name = 'bead end usage') AND (sar.description IN ['starting', 'ending']) AND ('AUTOMOTIVE_DESIGN.' + '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; -- 10303-214: automotive_design ENTITY bezier_curve SUBTYPE OF (b_spline_curve); END_ENTITY; -- 10303-42: geometry_schema ENTITY bezier_surface SUBTYPE OF (b_spline_surface); END_ENTITY; -- 10303-42: geometry_schema ENTITY binary_boolean_expression ABSTRACT SUPERTYPE OF (ONEOF (xor_expression, equals_expression)) SUBTYPE OF (boolean_expression, binary_generic_expression); END_ENTITY; (* declared in: iso13584_expressions_schema *) ENTITY binary_function_call ABSTRACT SUPERTYPE OF (ONEOF (atan_function)) SUBTYPE OF (binary_numeric_expression); END_ENTITY; (* declared in: iso13584_expressions_schema *) ENTITY binary_generic_expression ABSTRACT SUPERTYPE SUBTYPE OF (generic_expression); operands : LIST [2:2] OF generic_expression; END_ENTITY; (* declared in: iso13584_generic_expressions_schema *) ENTITY binary_numeric_expression ABSTRACT SUPERTYPE OF (ONEOF (minus_expression, div_expression, mod_expression , slash_expression, power_expression, binary_function_call)) SUBTYPE OF (numeric_expression, binary_generic_expression); SELF\binary_generic_expression.operands : LIST [2:2] OF numeric_expression; END_ENTITY; (* declared in: iso13584_expressions_schema *) ENTITY block SUBTYPE OF (geometric_representation_item); position : axis2_placement_3d; x : positive_length_measure; y : positive_length_measure; z : positive_length_measure; END_ENTITY; -- 10303-42: geometric_model_schema ENTITY boolean_defined_function ABSTRACT SUPERTYPE SUBTYPE OF (defined_function, boolean_expression); END_ENTITY; (* declared in: iso13584_expressions_schema *) ENTITY boolean_expression ABSTRACT SUPERTYPE OF (ONEOF (simple_boolean_expression, unary_boolean_expression, binary_boolean_expression, multiple_arity_boolean_expression, comparison_expression, interval_expression, boolean_defined_function)) SUBTYPE OF (expression); END_ENTITY; (* declared in: iso13584_expressions_schema *) ENTITY boolean_literal SUBTYPE OF (simple_boolean_expression, generic_literal); the_value : BOOLEAN; END_ENTITY; (* declared in: iso13584_expressions_schema *) ENTITY boolean_result SUBTYPE OF (geometric_representation_item); operator : boolean_operator; first_operand : boolean_operand; second_operand : boolean_operand; END_ENTITY; -- 10303-42: geometric_model_schema ENTITY boolean_variable SUBTYPE OF (simple_boolean_expression, variable); END_ENTITY; (* declared in: iso13584_expressions_schema *) ENTITY boss SUBTYPE OF (feature_definition); WHERE wr1 : SELF.description IN ['circular', 'rectangular', 'complex']; wr2 : (SELF.description <> 'circular') OR (SIZEOF(QUERY(sa <* get_shape_aspects(SELF) | (sa.description = 'circular profile occurrence') AND (SIZEOF(QUERY(sar <* USEDIN(sa, 'AUTOMOTIVE_DESIGN.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | ( 'AUTOMOTIVE_DESIGN.' + 'SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF(sar)) AND (sar.description = 'profile usage') AND ('AUTOMOTIVE_DESIGN.' + 'CIRCULAR_CLOSED_PROFILE' IN TYPEOF(sar.relating_shape_aspect)))) = 1))) = 1); wr3 : (SELF.description <> 'complex') OR (SIZEOF(QUERY(sa <* get_shape_aspects(SELF) | (sa.description = 'enclosed boundary occurrence') AND (SIZEOF(QUERY(sar <* USEDIN(sa, 'AUTOMOTIVE_DESIGN.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | ( 'AUTOMOTIVE_DESIGN.' + 'SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF(sar)) AND (sar.description = 'profile usage') AND (SIZEOF(['AUTOMOTIVE_DESIGN.' + 'CLOSED_PATH_PROFILE', 'AUTOMOTIVE_DESIGN.' + 'NGON_CLOSED_PROFILE'] * TYPEOF(sar.relating_shape_aspect)) = 1))) = 1))) = 1); wr4 : (SELF.description <> 'rectangular') OR (SIZEOF(QUERY(sa <* get_shape_aspects(SELF) | (sa.description = 'rectangular profile occurrence') AND (SIZEOF(QUERY(sar <* USEDIN(sa, 'AUTOMOTIVE_DESIGN.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | ( 'AUTOMOTIVE_DESIGN.' + 'SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF(sar)) AND (sar.description = 'profile usage') AND ('AUTOMOTIVE_DESIGN.' + 'RECTANGULAR_CLOSED_PROFILE' IN TYPEOF(sar.relating_shape_aspect)))) = 1))) = 1); wr5 : (SIZEOF(QUERY(pdr <* get_property_definition_representations(SELF) | 'AUTOMOTIVE_DESIGN.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation))) <= 1) AND (SIZEOF(QUERY(pdr <* get_property_definition_representations(SELF) | ('AUTOMOTIVE_DESIGN.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND NOT ({1 <= SIZEOF(pdr.used_representation.items) <= 2}))) = 0); wr6 : SIZEOF(QUERY(pdr <* get_property_definition_representations(SELF) | ( 'AUTOMOTIVE_DESIGN.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation)) AND (SIZEOF(QUERY(i <* pdr.used_representation. items | NOT (i.name IN ['orientation', 'fillet radius']))) > 0))) = 0; wr7 : SIZEOF(QUERY(pdr <* get_property_definition_representations(SELF) | ( 'AUTOMOTIVE_DESIGN.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation)) AND (SIZEOF(QUERY(i <* pdr.used_representation. items | (i.name = 'fillet radius') AND (SIZEOF(['AUTOMOTIVE_DESIGN.' + 'MEASURE_REPRESENTATION_ITEM', 'AUTOMOTIVE_DESIGN.' + 'LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(i)) = 2))) > 1))) = 0; wr8 : SIZEOF(QUERY(sa <* get_shape_aspects(SELF) | (sa.description = 'boss hight occurrence') AND (SIZEOF(QUERY(sar <* USEDIN(sa, 'AUTOMOTIVE_DESIGN.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | ( 'AUTOMOTIVE_DESIGN.' + 'SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF(sar)) AND (sar.name = 'boss hight') AND (sar.description = 'path feature component usage') AND ('AUTOMOTIVE_DESIGN.' + '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.description = 'top condition occurrence') AND (SIZEOF(QUERY(sar <* USEDIN(sa, 'AUTOMOTIVE_DESIGN.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | ( 'AUTOMOTIVE_DESIGN.' + 'FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF(sar)) AND (sar.description = 'boss top usage') AND ('AUTOMOTIVE_DESIGN.' + 'BOSS_TOP' IN TYPEOF(sar.relating_shape_aspect)))) = 1))) = 1; wr10 : NOT (SELF.description IN ['rectangular', 'complex']) OR (SIZEOF(QUERY( sa <* get_shape_aspects(SELF) | (sa.description = 'change in boundary occurrence') AND (SIZEOF(QUERY(sar <* USEDIN(sa, 'AUTOMOTIVE_DESIGN.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | ( 'AUTOMOTIVE_DESIGN.' + 'FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF(sar)) AND (sar.description = 'taper usage') AND ('AUTOMOTIVE_DESIGN.' + 'TAPER' IN TYPEOF(sar.relating_shape_aspect)) AND (sar. relating_shape_aspect.description IN ['angle taper', 'directed taper']))) = 1))) <= 1); wr11 : (SELF.description <> 'circular') OR (SIZEOF(QUERY(sa <* get_shape_aspects(SELF) | (sa.description = 'change in diameter occurrence' ) AND (SIZEOF(QUERY(sar <* USEDIN(sa, 'AUTOMOTIVE_DESIGN.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | ( 'AUTOMOTIVE_DESIGN.' + 'FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF(sar)) AND (sar.description = 'taper usage') AND ('AUTOMOTIVE_DESIGN.' + 'TAPER' IN TYPEOF(sar.relating_shape_aspect)) AND (sar. relating_shape_aspect.description IN ['angle taper', 'diameter taper']))) = 1))) <= 1); END_ENTITY; -- 10303-214: automotive_design ENTITY boss_top SUBTYPE OF (shape_aspect); WHERE wr1 : 'AUTOMOTIVE_DESIGN.' + 'FEATURE_COMPONENT_DEFINITION' IN TYPEOF(SELF .of_shape.definition); wr2 : SELF.description IN ['planar', 'complex']; wr3 : (SELF.description <> 'planar') OR (SIZEOF(QUERY(pdr <* get_shape_aspect_property_definition_representations(SELF) | 'AUTOMOTIVE_DESIGN.' + 'DIRECTION_SHAPE_REPRESENTATION' IN TYPEOF(pdr. used_representation))) = 1); wr4 : (SELF.description <> 'planar') OR (SIZEOF(QUERY(pdr <* get_shape_aspect_property_definition_representations(SELF) | 'AUTOMOTIVE_DESIGN.' + 'LOCATION_SHAPE_REPRESENTATION' IN TYPEOF(pdr. used_representation))) = 1); wr5 : (SELF.description <> 'complex') OR (SIZEOF(QUERY(pdr <* get_shape_aspect_property_definition_representations(SELF) | 'AUTOMOTIVE_DESIGN.' + 'FACE_SHAPE_REPRESENTATION' IN TYPEOF(pdr. used_representation))) = 1); wr6 : SIZEOF(QUERY(sar <* USEDIN(SELF, 'AUTOMOTIVE_DESIGN.SHAPE_ASPECT_RELATIONSHIP.RELATING_SHAPE_ASPECT') | ( 'AUTOMOTIVE_DESIGN.' + 'FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF(sar)) AND (sar.name = 'boss top usage') AND (sar.description IN ['starting', 'ending']) AND ('AUTOMOTIVE_DESIGN.' + 'BOSS' IN TYPEOF(sar. related_shape_aspect)) AND (sar.related_shape_aspect.name = 'top condition occurrence'))) = 1; wr7 : (SIZEOF(QUERY(pdr <* get_shape_aspect_property_definition_representations(SELF) | 'AUTOMOTIVE_DESIGN.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation))) <= 1) AND (SIZEOF(QUERY(pdr <* get_shape_aspect_property_definition_representations(SELF) | ( 'AUTOMOTIVE_DESIGN.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation)) AND (SIZEOF(pdr.used_representation.items) > 1))) = 0); wr8 : SIZEOF(QUERY(pdr <* get_shape_aspect_property_definition_representations(SELF) | ( 'AUTOMOTIVE_DESIGN.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation)) AND ((SIZEOF(pdr.used_representation.items) = 0) XOR (SIZEOF(QUERY(i <* pdr.used_representation.items | (i.name = 'top radius') AND (SIZEOF(['AUTOMOTIVE_DESIGN.' + 'MEASURE_REPRESENTATION_ITEM', 'AUTOMOTIVE_DESIGN.' + 'LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(i)) = 2))) = 1)))) <= 1; END_ENTITY; -- 10303-214: automotive_design ENTITY boundary_curve SUBTYPE OF (composite_curve_on_surface); WHERE wr1 : SELF\composite_curve.closed_curve; END_ENTITY; -- 10303-42: geometry_schema ENTITY bounded_curve SUPERTYPE OF (ONEOF (polyline, b_spline_curve, trimmed_curve, bounded_pcurve, bounded_surface_curve, composite_curve)) SUBTYPE OF (curve); END_ENTITY; -- 10303-42: geometry_schema ENTITY bounded_pcurve SUBTYPE OF (pcurve, bounded_curve); WHERE wr1 : 'AUTOMOTIVE_DESIGN.BOUNDED_CURVE' IN TYPEOF(SELF\pcurve. reference_to_curve.items[1]); END_ENTITY; -- 10303-42: geometry_schema ENTITY bounded_surface SUPERTYPE OF (ONEOF (b_spline_surface, rectangular_trimmed_surface, curve_bounded_surface, rectangular_composite_surface)) SUBTYPE OF (surface); END_ENTITY; -- 10303-42: geometry_schema ENTITY bounded_surface_curve SUBTYPE OF (surface_curve, bounded_curve); WHERE wr1 : 'AUTOMOTIVE_DESIGN.BOUNDED_CURVE' IN TYPEOF(SELF\surface_curve. curve_3d); END_ENTITY; -- 10303-42: geometry_schema ENTITY box_domain SUBTYPE OF (founded_item); corner : cartesian_point; xlength : positive_length_measure; ylength : positive_length_measure; zlength : positive_length_measure; WHERE wr1 : SIZEOF(QUERY(item <* USEDIN(SELF, '') | NOT ( 'AUTOMOTIVE_DESIGN.BOXED_HALF_SPACE' IN TYPEOF(item)))) = 0; END_ENTITY; -- 10303-42: geometric_model_schema ENTITY boxed_half_space SUBTYPE OF (half_space_solid); enclosure : box_domain; END_ENTITY; -- 10303-42: geometric_model_schema ENTITY brep_with_voids SUBTYPE OF (manifold_solid_brep); voids : SET [1:?] OF oriented_closed_shell; END_ENTITY; -- 10303-42: geometric_model_schema ENTITY calendar_date SUBTYPE OF (date); day_component : day_in_month_number; month_component : month_in_year_number; WHERE wr1 : valid_calendar_date(SELF); END_ENTITY; -- 10303-41: date_time_schema ENTITY camera_image SUBTYPE OF (mapped_item); WHERE wr1 : 'AUTOMOTIVE_DESIGN.CAMERA_USAGE' IN TYPEOF(SELF\mapped_item. mapping_source); wr2 : 'AUTOMOTIVE_DESIGN.PLANAR_BOX' IN TYPEOF(SELF\mapped_item. mapping_target); wr3 : 'AUTOMOTIVE_DESIGN.GEOMETRIC_REPRESENTATION_ITEM' IN TYPEOF(SELF); END_ENTITY; -- 10303-46: presentation_organization_schema ENTITY camera_image_2d_with_scale SUBTYPE OF (camera_image); DERIVE scale : positive_ratio_measure := SELF\mapped_item.mapping_target\ planar_extent.size_in_x/SELF\mapped_item.mapping_source.mapping_origin\ camera_model_d2.view_window\planar_extent.size_in_x; WHERE wr1 : 'AUTOMOTIVE_DESIGN.' + '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; -- 10303-214: automotive_design 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 : 'AUTOMOTIVE_DESIGN.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 : ('AUTOMOTIVE_DESIGN.' + 'AXIS2_PLACEMENT_2D' IN TYPEOF(SELF\ mapped_item.mapping_target\planar_box.placement)) AND NOT ( 'AUTOMOTIVE_DESIGN.' + 'AXIS2_PLACEMENT_3D' IN TYPEOF(SELF\mapped_item. mapping_target\planar_box.placement)); END_ENTITY; -- 10303-46: presentation_organization_schema ENTITY camera_model SUPERTYPE OF (ONEOF (camera_model_d2, camera_model_d3)) SUBTYPE OF (geometric_representation_item); WHERE wr1 : SIZEOF(USEDIN(SELF, 'AUTOMOTIVE_DESIGN.ITEM_DEFINED_TRANSFORMATION.TRANSFORM_ITEM_1')) + SIZEOF(USEDIN(SELF, 'AUTOMOTIVE_DESIGN.REPRESENTATION_MAP.MAPPING_ORIGIN')) > 0; wr2 : SIZEOF(USEDIN(SELF, 'AUTOMOTIVE_DESIGN.STYLED_ITEM.ITEM')) = 0; END_ENTITY; -- 10303-46: presentation_organization_schema ENTITY camera_model_d2 SUBTYPE OF (camera_model); view_window : planar_box; view_window_clipping : BOOLEAN; WHERE wr1 : SELF\geometric_representation_item.dim = 2; END_ENTITY; -- 10303-46: presentation_organization_schema ENTITY camera_model_d3 SUBTYPE OF (camera_model); view_reference_system : axis2_placement_3d; perspective_of_volume : view_volume; WHERE wr1 : (dot_product(SELF.view_reference_system.p[3], SELF. perspective_of_volume.view_window.placement.p[3]) = 1.0) AND (SELF. view_reference_system.location.coordinates[3] = SELF.perspective_of_volume. view_window.placement.location.coordinates[3]); wr2 : SELF\geometric_representation_item.dim = 3; END_ENTITY; -- 10303-46: presentation_organization_schema ENTITY camera_model_d3_with_hlhsr SUBTYPE OF (camera_model_d3); hidden_line_surface_removal : BOOLEAN; END_ENTITY; -- 10303-46: presentation_organization_schema ENTITY camera_usage SUBTYPE OF (representation_map); WHERE wr1 : NOT ('AUTOMOTIVE_DESIGN.PRESENTATION_REPRESENTATION' IN TYPEOF(SELF\ representation_map.mapped_representation)); wr2 : 'AUTOMOTIVE_DESIGN.CAMERA_MODEL' IN TYPEOF(SELF\representation_map. mapping_origin); END_ENTITY; -- 10303-46: presentation_organization_schema ENTITY cartesian_point SUBTYPE OF (point); coordinates : LIST [1:3] OF length_measure; END_ENTITY; -- 10303-42: geometry_schema 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; -- 10303-42: geometry_schema ENTITY cartesian_transformation_operator_2d SUBTYPE OF (cartesian_transformation_operator); DERIVE u : LIST [2:2] OF direction := base_axis(2, SELF\ cartesian_transformation_operator.axis1, SELF\ cartesian_transformation_operator.axis2, ?); WHERE wr1 : SELF\geometric_representation_item.dim = 2; END_ENTITY; -- 10303-42: geometry_schema ENTITY cartesian_transformation_operator_3d SUBTYPE OF (cartesian_transformation_operator); axis3 : OPTIONAL direction; DERIVE u : LIST [3:3] OF direction := base_axis(3, SELF\ cartesian_transformation_operator.axis1, SELF\ cartesian_transformation_operator.axis2, axis3); WHERE wr1 : SELF\geometric_representation_item.dim = 3; END_ENTITY; -- 10303-42: geometry_schema ENTITY celsius_temperature_measure_with_unit SUBTYPE OF (measure_with_unit); WHERE wr1 : 'AUTOMOTIVE_DESIGN.THERMODYNAMIC_TEMPERATURE_UNIT' IN TYPEOF(SELF\ measure_with_unit.unit_component); END_ENTITY; -- 10303-41: measure_schema ENTITY centre_of_symmetry SUBTYPE OF (derived_shape_aspect); WHERE wr1 : SIZEOF(QUERY(sadr <* SELF\derived_shape_aspect.deriving_relationships | NOT ('AUTOMOTIVE_DESIGN.SYMMETRIC_SHAPE_ASPECT' IN TYPEOF(sadr\ shape_aspect_relationship.related_shape_aspect)))) = 0; END_ENTITY; -- 10303-47: shape_aspect_definition_schema ENTITY certification; name : label; purpose : text; kind : certification_type; END_ENTITY; -- 10303-41: certification_schema ENTITY certification_assignment ABSTRACT SUPERTYPE; assigned_certification : certification; DERIVE role : object_role := get_role(SELF); WHERE wr1 : SIZEOF(USEDIN(SELF, 'AUTOMOTIVE_DESIGN.ROLE_ASSOCIATION.ITEM_WITH_ROLE')) <= 1; END_ENTITY; -- 10303-41: management_resources_schema ENTITY certification_type; description : label; END_ENTITY; -- 10303-41: certification_schema ENTITY chamfer SUBTYPE OF (transition_feature); WHERE wr1 : SIZEOF(QUERY(sar <* USEDIN(SELF, 'AUTOMOTIVE_DESIGN.SHAPE_ASPECT_RELATIONSHIP.RELATING_SHAPE_ASPECT') | ( 'AUTOMOTIVE_DESIGN.' + 'FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF(sar)) AND ('AUTOMOTIVE_DESIGN.' + 'CHAMFER_OFFSET' IN TYPEOF(sar. related_shape_aspect)) AND (sar.related_shape_aspect.description = 'first offset'))) = 1; wr2 : SIZEOF(QUERY(sar <* USEDIN(SELF, 'AUTOMOTIVE_DESIGN.SHAPE_ASPECT_RELATIONSHIP.RELATING_SHAPE_ASPECT') | ( 'AUTOMOTIVE_DESIGN.' + 'FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF(sar)) AND ('AUTOMOTIVE_DESIGN.' + 'CHAMFER_OFFSET' IN TYPEOF(sar. related_shape_aspect)) AND (sar.related_shape_aspect.description = 'second offset'))) = 1; wr3 : SIZEOF(QUERY(pdr <* get_shape_aspect_property_definition_representations(SELF) | ( 'AUTOMOTIVE_DESIGN.' + 'FACE_SHAPE_REPRESENTATION' IN TYPEOF(pdr. used_representation)) AND (pdr.used_representation.name = 'chamfer face'))) = 1; END_ENTITY; -- 10303-214: automotive_design ENTITY chamfer_offset SUBTYPE OF (shape_aspect); WHERE wr1 : SELF.description IN ['first offset', 'second offset']; wr2 : SIZEOF(QUERY(pdr <* get_shape_aspect_property_definition_representations(SELF) | 'AUTOMOTIVE_DESIGN.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation))) = 1; wr3 : SIZEOF(QUERY(pdr <* get_shape_aspect_property_definition_representations(SELF) | ( 'AUTOMOTIVE_DESIGN.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation)) AND (SIZEOF(pdr.used_representation.items) = 1))) = 1; wr4 : (SELF.description <> 'first offset') OR (SIZEOF(QUERY(pdr <* get_shape_aspect_property_definition_representations(SELF) | ( 'AUTOMOTIVE_DESIGN.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation)) AND (SIZEOF(QUERY(i <* pdr.used_representation. items | (i.name = 'offset amount') AND (SIZEOF(['AUTOMOTIVE_DESIGN.' + 'MEASURE_REPRESENTATION_ITEM', 'AUTOMOTIVE_DESIGN.' + 'LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(i)) = 2))) = 1))) = 1); wr5 : (SELF.description <> 'second offset') OR (SIZEOF(QUERY(pdr <* get_shape_aspect_property_definition_representations(SELF) | ( 'AUTOMOTIVE_DESIGN.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation)) AND ((SIZEOF(QUERY(i <* pdr.used_representation. items | (i.name = 'offset amount') AND (SIZEOF(['AUTOMOTIVE_DESIGN.' + 'MEASURE_REPRESENTATION_ITEM', 'AUTOMOTIVE_DESIGN.' + 'LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(i)) = 2))) = 1) OR (SIZEOF(QUERY(i <* pdr.used_representation.items | (i.name = 'offset angle') AND ( 'AUTOMOTIVE_DESIGN.' + 'PLANE_ANGLE_MEASURE_WITH_UNIT' IN TYPEOF(i)))) = 1)))) = 1); wr6 : SIZEOF(QUERY(sar <* USEDIN(SELF, 'AUTOMOTIVE_DESIGN.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | ( 'AUTOMOTIVE_DESIGN.' + 'FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF(sar)) AND ('AUTOMOTIVE_DESIGN.' + 'CHAMFER' IN TYPEOF(sar. relating_shape_aspect)))) >= 1; wr7 : (SELF.description <> 'first offset') OR (SIZEOF(QUERY(pdr <* get_shape_aspect_property_definition_representations(SELF) | ( 'AUTOMOTIVE_DESIGN.' + 'FACE_SHAPE_REPRESENTATION' IN TYPEOF(pdr. used_representation)) AND (pdr.used_representation.name = 'first face shape'))) = 1); wr8 : (SELF.description <> 'second offset') OR (SIZEOF(QUERY(pdr <* get_shape_aspect_property_definition_representations(SELF) | ( 'AUTOMOTIVE_DESIGN.' + 'FACE_SHAPE_REPRESENTATION' IN TYPEOF(pdr. used_representation)) AND (pdr.used_representation.name = 'second face shape'))) = 1); END_ENTITY; -- 10303-214: automotive_design ENTITY character_glyph_symbol SUBTYPE OF (symbol_representation); character_box : planar_extent; baseline_ratio : ratio_measure; DERIVE box_height : length_measure := character_box.size_in_y; WHERE wr1 : {0.0 <= baseline_ratio <= 1.0}; wr2 : item_in_context(SELF.character_box, SELF\representation. context_of_items); wr3 : 'AUTOMOTIVE_DESIGN.POSITIVE_LENGTH_MEASURE' IN TYPEOF(SELF. box_height); END_ENTITY; -- 10303-46: presentation_resource_schema ENTITY characterized_class SUBTYPE OF (characterized_object, class); END_ENTITY; -- 10303-214: automotive_design ENTITY characterized_object; name : label; description : OPTIONAL text; END_ENTITY; -- 10303-41: product_property_definition_schema ENTITY circle SUBTYPE OF (conic); radius : positive_length_measure; END_ENTITY; -- 10303-42: geometry_schema ENTITY circular_closed_profile SUBTYPE OF (shape_aspect); WHERE wr1 : 'AUTOMOTIVE_DESIGN.' + 'FEATURE_COMPONENT_DEFINITION' IN TYPEOF(SELF .of_shape.definition); wr2 : SIZEOF(QUERY(pdr <* get_shape_aspect_property_definition_representations(SELF) | 'AUTOMOTIVE_DESIGN.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation))) = 1; wr3 : SIZEOF(QUERY(pdr <* get_shape_aspect_property_definition_representations(SELF) | ( 'AUTOMOTIVE_DESIGN.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation)) AND (SIZEOF(pdr.used_representation.items) = 2))) = 1; wr4 : SIZEOF(QUERY(pdr <* get_shape_aspect_property_definition_representations(SELF) | ( 'AUTOMOTIVE_DESIGN.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation)) AND (SIZEOF(QUERY(i <* pdr.used_representation. items | (i.name = 'orientation') AND ('AUTOMOTIVE_DESIGN.' + 'PLACEMENT' IN TYPEOF(i)))) = 1))) = 1; wr5 : SIZEOF(QUERY(pdr <* get_shape_aspect_property_definition_representations(SELF) | ( 'AUTOMOTIVE_DESIGN.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation)) AND (SIZEOF(QUERY(i <* pdr.used_representation. items | (i.name = 'diameter') AND (SIZEOF(['AUTOMOTIVE_DESIGN.' + 'MEASURE_REPRESENTATION_ITEM', 'AUTOMOTIVE_DESIGN.' + 'LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(i)) = 2))) = 1))) = 1; END_ENTITY; -- 10303-214: automotive_design ENTITY circular_pattern SUBTYPE OF (replicate_feature); WHERE wr1 : (SIZEOF(QUERY(pdr <* get_property_definition_representations(SELF) | 'AUTOMOTIVE_DESIGN.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation))) = 1) AND (SIZEOF(QUERY(pdr <* get_property_definition_representations(SELF) | ('AUTOMOTIVE_DESIGN.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND {2 <= SIZEOF(pdr.used_representation.items) <= 5})) = 1); wr2 : SIZEOF(QUERY(pdr <* get_property_definition_representations(SELF) | ( 'AUTOMOTIVE_DESIGN.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation)) AND (SIZEOF(QUERY(i <* pdr.used_representation. items | (i.name = 'diameter') AND (SIZEOF(['AUTOMOTIVE_DESIGN.' + 'MEASURE_REPRESENTATION_ITEM', 'AUTOMOTIVE_DESIGN.' + 'LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(i)) = 2))) = 1))) <= 1; wr3 : SIZEOF(QUERY(pdr <* get_property_definition_representations(SELF) | ( 'AUTOMOTIVE_DESIGN.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation)) AND (SIZEOF(QUERY(i <* pdr.used_representation. items | (i.name = 'base feature rotation') AND (SIZEOF([ 'AUTOMOTIVE_DESIGN.' + 'MEASURE_REPRESENTATION_ITEM', 'AUTOMOTIVE_DESIGN.' + 'PLANE_ANGLE_MEASURE_WITH_UNIT'] * TYPEOF(i)) = 2 ))) = 1))) <= 1; wr4 : SIZEOF(QUERY(pdr <* get_property_definition_representations(SELF) | ( 'AUTOMOTIVE_DESIGN.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation)) AND (SIZEOF(QUERY(i <* pdr.used_representation. items | (i.name = 'number of features') AND ('AUTOMOTIVE_DESIGN.' + 'MEASURE_REPRESENTATION_ITEM' IN TYPEOF(i)) AND ('AUTOMOTIVE_DESIGN.' + 'COUNT_MEASURE' IN TYPEOF(i\measure_with_unit.value_component)))) = 1))) = 1; wr5 : SIZEOF(QUERY(pdr <* get_property_definition_representations(SELF) | ( 'AUTOMOTIVE_DESIGN.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation)) AND (SIZEOF(QUERY(i <* pdr.used_representation. items | (i.name = 'angular spacing') AND (SIZEOF(['AUTOMOTIVE_DESIGN.' + 'MEASURE_REPRESENTATION_ITEM', 'AUTOMOTIVE_DESIGN.' + 'LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(i)) = 2))) = 1))) = 1; END_ENTITY; -- 10303-214: automotive_design ENTITY circular_runout_tolerance SUBTYPE OF (geometric_tolerance_with_datum_reference); WHERE wr1 : SIZEOF(SELF\geometric_tolerance_with_datum_reference.datum_system) <= 2 ; END_ENTITY; -- 10303-519: aic_geometric_tolerances ENTITY class SUBTYPE OF (group); END_ENTITY; -- 10303-214: automotive_design ENTITY class_system SUBTYPE OF (group); END_ENTITY; -- 10303-214: automotive_design 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 ('AUTOMOTIVE_DESIGN.' + 'PRODUCT_DEFINITION' IN TYPEOF(i)))) = 0; wr3 : ('AUTOMOTIVE_DESIGN.' + '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 ('AUTOMOTIVE_DESIGN.' + 'PRODUCT_CONCEPT_FEATURE_CATEGORY_USAGE' IN TYPEOF(i)))) = 0); END_ENTITY; -- 10303-214: automotive_design ENTITY classification_assignment ABSTRACT SUPERTYPE; assigned_class : group; role : classification_role; END_ENTITY; -- 10303-41: management_resources_schema ENTITY classification_role; name : label; description : OPTIONAL text; END_ENTITY; -- 10303-41: management_resources_schema ENTITY closed_path_profile SUBTYPE OF (shape_aspect); WHERE wr1 : 'AUTOMOTIVE_DESIGN.' + 'FEATURE_COMPONENT_DEFINITION' IN TYPEOF(SELF .of_shape.definition); wr2 : SIZEOF(QUERY(pdr <* get_shape_aspect_property_definition_representations(SELF) | 'AUTOMOTIVE_DESIGN.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation))) = 1; wr3 : SIZEOF(QUERY(pdr <* get_shape_aspect_property_definition_representations(SELF) | ( 'AUTOMOTIVE_DESIGN.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation)) AND (SIZEOF(pdr.used_representation.items) = 1))) = 1; wr4 : SIZEOF(QUERY(pdr <* get_shape_aspect_property_definition_representations(SELF) | ( 'AUTOMOTIVE_DESIGN.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation)) AND (SIZEOF(QUERY(i <* pdr.used_representation. items | (i.name = 'orientation') AND ('AUTOMOTIVE_DESIGN.' + 'PLACEMENT' IN TYPEOF(i)))) = 1))) = 1; wr5 : SIZEOF(QUERY(pdr <* get_shape_aspect_property_definition_representations(SELF) | 'AUTOMOTIVE_DESIGN.' + 'PATH_SHAPE_REPRESENTATION' IN TYPEOF(pdr. used_representation))) = 1; wr6 : SIZEOF(QUERY(pdr <* get_shape_aspect_property_definition_representations(SELF) | ( 'AUTOMOTIVE_DESIGN.' + 'PATH_SHAPE_REPRESENTATION' IN TYPEOF(pdr. used_representation)) AND (SIZEOF(QUERY(i <* pdr.used_representation.items | i.name = 'profile shape')) = 1))) = 1; END_ENTITY; -- 10303-214: automotive_design ENTITY closed_shell SUBTYPE OF (connected_face_set); END_ENTITY; -- 10303-42: topology_schema ENTITY coaxiality_tolerance SUBTYPE OF (geometric_tolerance_with_datum_reference); WHERE wr1 : SIZEOF(SELF\geometric_tolerance_with_datum_reference.datum_system) <= 2 ; END_ENTITY; -- 10303-519: aic_geometric_tolerances ENTITY colour; END_ENTITY; -- 10303-46: presentation_resource_schema ENTITY colour_rgb SUBTYPE OF (colour_specification); red : REAL; green : REAL; blue : REAL; WHERE wr1 : {0.0 <= red <= 1.0}; wr2 : {0.0 <= green <= 1.0}; wr3 : {0.0 <= blue <= 1.0}; END_ENTITY; -- 10303-46: presentation_resource_schema ENTITY colour_specification SUBTYPE OF (colour); name : label; END_ENTITY; -- 10303-46: presentation_resource_schema ENTITY common_datum SUBTYPE OF (composite_shape_aspect, datum); WHERE wr1 : SIZEOF(SELF.component_relationships) = 2; wr2 : SIZEOF(QUERY(sar <* SELF.component_relationships | NOT (( 'AUTOMOTIVE_DESIGN.DATUM' IN TYPEOF(sar.related_shape_aspect)) AND NOT ( 'AUTOMOTIVE_DESIGN.COMMON_DATUM' IN TYPEOF(sar.related_shape_aspect))))) = 0; END_ENTITY; -- 10303-519: aic_geometric_tolerances ENTITY comparison_equal SUBTYPE OF (comparison_expression); END_ENTITY; (* declared in: iso13584_expressions_schema *) ENTITY comparison_expression ABSTRACT SUPERTYPE OF (ONEOF (comparison_equal, comparison_greater, comparison_greater_equal, comparison_less, comparison_less_equal, comparison_not_equal, like_expression)) SUBTYPE OF (boolean_expression, binary_generic_expression); SELF\binary_generic_expression.operands : LIST [2:2] OF expression; WHERE wr1 : ('AUTOMOTIVE_DESIGN.NUMERIC_EXPRESSION' IN TYPEOF(SELF\ binary_generic_expression.operands[1])) AND ( 'AUTOMOTIVE_DESIGN.NUMERIC_EXPRESSION' IN TYPEOF(SELF\ binary_generic_expression.operands[2])) OR ( 'AUTOMOTIVE_DESIGN.BOOLEAN_EXPRESSION' IN TYPEOF(SELF\ binary_generic_expression.operands[1])) AND ( 'AUTOMOTIVE_DESIGN.BOOLEAN_EXPRESSION' IN TYPEOF(SELF\ binary_generic_expression.operands[2])) OR ( 'AUTOMOTIVE_DESIGN.STRING_EXPRESSION' IN TYPEOF(SELF\ binary_generic_expression.operands[1])) AND ( 'AUTOMOTIVE_DESIGN.STRING_EXPRESSION' IN TYPEOF(SELF\ binary_generic_expression.operands[2])); END_ENTITY; (* declared in: iso13584_expressions_schema *) ENTITY comparison_greater SUBTYPE OF (comparison_expression); END_ENTITY; (* declared in: iso13584_expressions_schema *) ENTITY comparison_greater_equal SUBTYPE OF (comparison_expression); END_ENTITY; (* declared in: iso13584_expressions_schema *) ENTITY comparison_less SUBTYPE OF (comparison_expression); END_ENTITY; (* declared in: iso13584_expressions_schema *) ENTITY comparison_less_equal SUBTYPE OF (comparison_expression); END_ENTITY; (* declared in: iso13584_expressions_schema *) ENTITY comparison_not_equal SUBTYPE OF (comparison_expression); END_ENTITY; (* declared in: iso13584_expressions_schema *) ENTITY composite_curve SUBTYPE OF (bounded_curve); segments : LIST [1:?] OF composite_curve_segment; self_intersect : LOGICAL; DERIVE n_segments : INTEGER := SIZEOF(segments); closed_curve : LOGICAL := segments[n_segments].transition <> discontinuous; WHERE wr1 : NOT closed_curve AND (SIZEOF(QUERY(temp <* segments | temp.transition = discontinuous)) = 1) OR closed_curve AND (SIZEOF(QUERY(temp <* segments | temp.transition = discontinuous)) = 0); END_ENTITY; -- 10303-42: geometry_schema ENTITY composite_curve_on_surface SUPERTYPE OF (boundary_curve) SUBTYPE OF (composite_curve); DERIVE basis_surface : SET [0:2] OF surface := get_basis_surface(SELF); WHERE wr1 : SIZEOF(basis_surface) > 0; wr2 : constraints_composite_curve_on_surface(SELF); END_ENTITY; -- 10303-42: geometry_schema ENTITY composite_curve_segment SUBTYPE OF (founded_item); transition : transition_code; same_sense : BOOLEAN; parent_curve : curve; INVERSE using_curves : BAG [1:?] OF composite_curve FOR segments; WHERE wr1 : 'AUTOMOTIVE_DESIGN.BOUNDED_CURVE' IN TYPEOF(parent_curve); END_ENTITY; -- 10303-42: geometry_schema ENTITY composite_hole SUBTYPE OF (compound_feature); WHERE wr1 : SELF\characterized_object.description IN ['counterbore', 'countersunk'] ; wr2 : SIZEOF(QUERY(sa <* get_shape_aspects(SELF) | ('AUTOMOTIVE_DESIGN.' + 'COMPOSITE_SHAPE_ASPECT' IN TYPEOF(sa)) AND (sa.name = 'compound feature in solid') AND (SIZEOF(QUERY(sar <* USEDIN(sa, 'AUTOMOTIVE_DESIGN.SHAPE_ASPECT_RELATIONSHIP.RELATING_SHAPE_ASPECT') | 'AUTOMOTIVE_DESIGN.' + 'FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF(sar))) = 2))) = 1; wr3 : SIZEOF(QUERY(sa <* get_shape_aspects(SELF) | ('AUTOMOTIVE_DESIGN.' + 'COMPOSITE_SHAPE_ASPECT' IN TYPEOF(sa)) AND (sa.name = 'compound feature in solid') AND (SIZEOF(QUERY(sar <* USEDIN(sa, 'AUTOMOTIVE_DESIGN.SHAPE_ASPECT_RELATIONSHIP.RELATING_SHAPE_ASPECT') | 'AUTOMOTIVE_DESIGN.' + 'FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF(sar))) = 2) AND (SIZEOF(get_round_holes_for_composite_hole(bag_to_set(USEDIN(sa, 'AUTOMOTIVE_DESIGN.SHAPE_ASPECT_RELATIONSHIP.RELATING_SHAPE_ASPECT')))) = 2))) = 1; wr4 : SIZEOF(QUERY(sa <* get_shape_aspects(SELF) | ('AUTOMOTIVE_DESIGN.' + 'COMPOSITE_SHAPE_ASPECT' IN TYPEOF(sa)) AND (sa.name = 'compound feature in solid') AND (SIZEOF(QUERY(rh1 <* get_round_holes_for_composite_hole(bag_to_set(USEDIN(sa, 'AUTOMOTIVE_DESIGN.SHAPE_ASPECT_RELATIONSHIP.RELATING_SHAPE_ASPECT'))) | SIZEOF(QUERY(rh2 <* get_round_holes_for_composite_hole(bag_to_set(USEDIN (sa, 'AUTOMOTIVE_DESIGN.SHAPE_ASPECT_RELATIONSHIP.RELATING_SHAPE_ASPECT' ))) | (rh1 :<>: rh2) AND (get_diameter_for_round_hole(rh1) = get_diameter_for_round_hole(rh2)))) = 0)) = 0))) = 1; wr5 : (SELF.description <> 'countersunk') OR (SIZEOF(QUERY(sa <* get_shape_aspects(SELF) | ('AUTOMOTIVE_DESIGN.' + 'COMPOSITE_SHAPE_ASPECT' IN TYPEOF(sa)) AND (sa.name = 'compound feature in solid') AND (SIZEOF(QUERY(rh <* get_round_holes_for_composite_hole(bag_to_set(USEDIN(sa, 'AUTOMOTIVE_DESIGN.SHAPE_ASPECT_RELATIONSHIP.RELATING_SHAPE_ASPECT'))) | SIZEOF(QUERY(sa1 <* get_shape_aspects(rh) | (sa.description = 'change in diameter occurrence') AND (SIZEOF(QUERY(sar <* USEDIN(sa1, 'AUTOMOTIVE_DESIGN.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | ( sar.description = 'taper usage') AND ('AUTOMOTIVE_DESIGN.' + 'TAPER' IN TYPEOF(sar.relating_shape_aspect)))) = 1))) = 1)) = 1))) = 1); END_ENTITY; -- 10303-214: automotive_design ENTITY composite_shape_aspect SUBTYPE OF (shape_aspect); INVERSE component_relationships : SET [2:?] OF shape_aspect_relationship FOR relating_shape_aspect; END_ENTITY; -- 10303-47: shape_aspect_definition_schema ENTITY composite_text SUBTYPE OF (geometric_representation_item); collected_text : SET [2:?] OF text_or_character; WHERE wr1 : acyclic_composite_text(SELF, SELF.collected_text); END_ENTITY; -- 10303-46: presentation_definition_schema ENTITY composite_text_with_associated_curves SUBTYPE OF (composite_text); associated_curves : SET [1:?] OF curve; END_ENTITY; -- 10303-46: presentation_definition_schema ENTITY composite_text_with_blanking_box SUBTYPE OF (composite_text); blanking : planar_box; END_ENTITY; -- 10303-46: presentation_definition_schema ENTITY composite_text_with_extent SUBTYPE OF (composite_text); extent : planar_extent; END_ENTITY; -- 10303-46: presentation_definition_schema ENTITY compound_feature SUBTYPE OF (feature_definition); WHERE wr1 : SIZEOF(QUERY(sa <* get_shape_aspects(SELF) | (sa.name IN [ 'compound feature in solid', 'compound feature in panel']) AND ( 'AUTOMOTIVE_DESIGN.' + 'COMPOSITE_SHAPE_ASPECT' IN TYPEOF(sa)))) = 1; wr2 : SIZEOF(QUERY(sa <* get_shape_aspects(SELF) | ('AUTOMOTIVE_DESIGN.' + 'COMPOSITE_SHAPE_ASPECT' IN TYPEOF(sa)) AND (SIZEOF(QUERY(sar <* USEDIN( sa, 'AUTOMOTIVE_DESIGN.SHAPE_ASPECT_RELATIONSHIP.RELATING_SHAPE_ASPECT') | NOT ('AUTOMOTIVE_DESIGN.' + 'FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF(sar)))) > 0))) = 0; wr3 : SIZEOF(QUERY(sa <* get_shape_aspects(SELF) | ('AUTOMOTIVE_DESIGN.' + 'COMPOSITE_SHAPE_ASPECT' IN TYPEOF(sa)) AND (SIZEOF(QUERY(sar <* USEDIN( sa, 'AUTOMOTIVE_DESIGN.SHAPE_ASPECT_RELATIONSHIP.RELATING_SHAPE_ASPECT') | NOT (SIZEOF(['AUTOMOTIVE_DESIGN.' + 'INSTANCED_FEATURE', 'AUTOMOTIVE_DESIGN.' + 'PLACED_FEATURE', 'AUTOMOTIVE_DESIGN.' + 'APPLIED_AREA', 'AUTOMOTIVE_DESIGN.' + 'TRANSITION_FEATURE'] * TYPEOF( sar.related_shape_aspect)) = 1))) > 0))) = 0; wr4 : SIZEOF(QUERY(sa <* get_shape_aspects(SELF) | ('AUTOMOTIVE_DESIGN.' + 'COMPOSITE_SHAPE_ASPECT' IN TYPEOF(sa)) AND (SIZEOF(QUERY(sar <* USEDIN( sa, 'AUTOMOTIVE_DESIGN.SHAPE_ASPECT_RELATIONSHIP.RELATING_SHAPE_ASPECT') | ('AUTOMOTIVE_DESIGN.' + 'PLACED_FEATURE' IN TYPEOF(sar. related_shape_aspect)) AND (SIZEOF(QUERY(pdr <* get_property_definition_representations(sar.related_shape_aspect.of_shape. definition) | ('AUTOMOTIVE_DESIGN.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF(QUERY(i <* pdr.used_representation.items | (i.name = 'element placement') AND ('AUTOMOTIVE_DESIGN.' + 'PLACEMENT' IN TYPEOF(i )))) <> 1))) > 0))) > 0))) = 0; wr5 : SIZEOF(QUERY(sa <* get_shape_aspects(SELF) | (sa.name = 'compound feature in solid') AND (SIZEOF(QUERY(sar <* USEDIN(sa, 'AUTOMOTIVE_DESIGN.SHAPE_ASPECT_RELATIONSHIP.RELATING_SHAPE_ASPECT') | SIZEOF(['AUTOMOTIVE_DESIGN.' + 'TRANSITION_FEATURE', 'AUTOMOTIVE_DESIGN.' + 'BOSS', 'AUTOMOTIVE_DESIGN.' + 'APPLIED_AREA'] * TYPEOF(sar.related_shape_aspect)) + SIZEOF(['AUTOMOTIVE_DESIGN.' + 'SLOT', 'AUTOMOTIVE_DESIGN.' + 'POCKET', 'AUTOMOTIVE_DESIGN.' + 'ROUND_HOLE', 'AUTOMOTIVE_DESIGN.' + 'RIB', 'AUTOMOTIVE_DESIGN.' + 'COMPOUND_FEATURE'] * TYPEOF(sar.related_shape_aspect.of_shape.definition)) = 0)) > 0))) = 0; wr6 : SIZEOF(QUERY(sa <* get_shape_aspects(SELF) | (sa.name = 'compound feature in panel') AND (SIZEOF(QUERY(sar <* USEDIN(sa, 'AUTOMOTIVE_DESIGN.SHAPE_ASPECT_RELATIONSHIP.RELATING_SHAPE_ASPECT') | SIZEOF(['AUTOMOTIVE_DESIGN.' + 'TRANSITION_FEATURE'] * TYPEOF(sar. related_shape_aspect)) + SIZEOF(['AUTOMOTIVE_DESIGN.' + 'BEAD', 'AUTOMOTIVE_DESIGN.' + 'HOLE_IN_PANEL', 'AUTOMOTIVE_DESIGN.' + 'FEATURE_IN_PANEL', 'AUTOMOTIVE_DESIGN.' + 'JOGGLE', 'AUTOMOTIVE_DESIGN.' + 'LOCATOR', 'AUTOMOTIVE_DESIGN.' + 'COMPOUND_FEATURE'] * TYPEOF(sar.related_shape_aspect.of_shape.definition)) = 0)) > 0))) = 0; wr7 : SIZEOF(QUERY(sa <* get_shape_aspects(SELF) | (sa.name = 'compound feature in panel') AND (SIZEOF(QUERY(sar <* USEDIN(sa, 'AUTOMOTIVE_DESIGN.SHAPE_ASPECT_RELATIONSHIP.RELATING_SHAPE_ASPECT') | ( 'AUTOMOTIVE_DESIGN.' + 'COMPOUND_FEATURE' IN TYPEOF(sar. related_shape_aspect.of_shape.definition)) AND (sar.related_shape_aspect. name = 'compound feature in solid'))) > 0))) + SIZEOF(QUERY(sa <* get_shape_aspects(SELF) | (sa.name = 'compound feature in solid') AND ( SIZEOF(QUERY(sar <* USEDIN(sa, 'AUTOMOTIVE_DESIGN.SHAPE_ASPECT_RELATIONSHIP.RELATING_SHAPE_ASPECT') | ( 'AUTOMOTIVE_DESIGN.' + 'COMPOUND_FEATURE' IN TYPEOF(sar. related_shape_aspect.of_shape.definition)) AND (sar.related_shape_aspect. name = 'compound feature in panel'))) > 0))) = 0; END_ENTITY; -- 10303-214: automotive_design ENTITY compound_representation_item SUBTYPE OF (representation_item); item_element : compound_item_definition; END_ENTITY; -- 10303-43: representation_schema ENTITY compound_shape_representation SUBTYPE OF (shape_representation); WHERE wr1 : ('AUTOMOTIVE_DESIGN.' + '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(['AUTOMOTIVE_DESIGN.' + 'EDGE_BASED_WIREFRAME_MODEL', 'AUTOMOTIVE_DESIGN.' + 'FACE_BASED_SURFACE_MODEL', 'AUTOMOTIVE_DESIGN.' + 'MAPPED_ITEM', 'AUTOMOTIVE_DESIGN.' + 'AXIS2_PLACEMENT_3D'] * TYPEOF(cbsr_i)) <> 1)) = 0; wr3 : SIZEOF(QUERY(cbsr_i <* SELF.items | SIZEOF(['AUTOMOTIVE_DESIGN.' + 'EDGE_BASED_WIREFRAME_MODEL', 'AUTOMOTIVE_DESIGN.' + 'FACE_BASED_SURFACE_MODEL', 'AUTOMOTIVE_DESIGN.' + 'MAPPED_ITEM'] * TYPEOF(cbsr_i)) = 1)) > 0; wr4 : SIZEOF(QUERY(cbsr_i <* SELF.items | ('AUTOMOTIVE_DESIGN.' + 'MAPPED_ITEM' IN TYPEOF(cbsr_i)) AND (SIZEOF(['AUTOMOTIVE_DESIGN.' + 'COMPOUND_SHAPE_REPRESENTATION', 'AUTOMOTIVE_DESIGN.' + 'EDGE_BASED_WIREFRAME_SHAPE_REPRESENTATION', 'AUTOMOTIVE_DESIGN.' + 'NON_MANIFOLD_SURFACE_SHAPE_REPRESENTATION'] * TYPEOF(cbsr_i\mapped_item. mapping_source)) <> 1))) = 0; END_ENTITY; -- 10303-214: automotive_design ENTITY concat_expression SUBTYPE OF (string_expression, multiple_arity_generic_expression); SELF\multiple_arity_generic_expression.operands : LIST [2:?] OF string_expression; END_ENTITY; (* declared in: iso13584_expressions_schema *) ENTITY concentricity_tolerance SUBTYPE OF (geometric_tolerance_with_datum_reference); WHERE wr1 : SIZEOF(SELF\geometric_tolerance_with_datum_reference.datum_system) = 1; END_ENTITY; -- 10303-519: aic_geometric_tolerances ENTITY concept_feature_operator; name : label; description : OPTIONAL text; END_ENTITY; -- 10303-44: product_concept_schema ENTITY concept_feature_relationship; name : label; description : OPTIONAL text; relating_product_concept_feature : product_concept_feature; related_product_concept_feature : product_concept_feature; END_ENTITY; -- 10303-44: product_concept_schema ENTITY concept_feature_relationship_with_condition SUBTYPE OF (concept_feature_relationship); conditional_operator : concept_feature_operator; END_ENTITY; -- 10303-44: product_concept_schema ENTITY conditional_concept_feature SUBTYPE OF (product_concept_feature); condition : concept_feature_relationship_with_condition; END_ENTITY; -- 10303-44: product_concept_schema ENTITY configurable_item SUBTYPE OF (configuration_item); item_concept_feature : SET [1:?] OF product_concept_feature_association; END_ENTITY; -- 10303-44: configuration_management_schema ENTITY configuration_definition; pair_values : SET [1:?] OF pair_value; t_parameter : motion_parameter_measure; END_ENTITY; -- 10303-105: kinematic_analysis_control_and_result_schema ENTITY configuration_design; configuration : configuration_item; design : configuration_design_item; DERIVE name : label := get_name_value(SELF); description : text := get_description_value(SELF); UNIQUE ur1 : configuration, design; WHERE wr1 : SIZEOF(USEDIN(SELF, 'AUTOMOTIVE_DESIGN.NAME_ATTRIBUTE.NAMED_ITEM')) <= 1; wr2 : SIZEOF(USEDIN(SELF, 'AUTOMOTIVE_DESIGN.DESCRIPTION_ATTRIBUTE.DESCRIBED_ITEM')) <= 1; END_ENTITY; -- 10303-44: configuration_management_schema ENTITY configuration_effectivity SUBTYPE OF (product_definition_effectivity); configuration : configuration_design; UNIQUE ur1 : configuration, usage, id; WHERE wr1 : 'AUTOMOTIVE_DESIGN.PRODUCT_DEFINITION_USAGE' IN TYPEOF(SELF\ product_definition_effectivity.usage); END_ENTITY; -- 10303-44: configuration_management_schema ENTITY configuration_interpolation; previous_configuration_definition : configuration_definition; next_configuration_definition : configuration_definition; interpolation : interpolation_type; END_ENTITY; -- 10303-105: kinematic_analysis_control_and_result_schema ENTITY configuration_item; id : identifier; name : label; description : OPTIONAL text; item_concept : product_concept; purpose : OPTIONAL label; END_ENTITY; -- 10303-44: configuration_management_schema ENTITY configured_effectivity_assignment SUBTYPE OF (effectivity_assignment); items : SET [1:?] OF configured_effectivity_item; WHERE wr1 : (SIZEOF(['AUTOMOTIVE_DESIGN.' + '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 ('AUTOMOTIVE_DESIGN.' + '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 | ( 'AUTOMOTIVE_DESIGN.' + '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 | ( 'AUTOMOTIVE_DESIGN.' + '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, 'AUTOMOTIVE_DESIGN.EFFECTIVITY_CONTEXT_ASSIGNMENT.ASSIGNED_EFFECTIVITY_ASSIGNMENT' ) | 'AUTOMOTIVE_DESIGN.' + 'CONFIGURED_EFFECTIVITY_CONTEXT_ASSIGNMENT' IN TYPEOF(x))) = 1; END_ENTITY; -- 10303-214: automotive_design ENTITY configured_effectivity_context_assignment SUBTYPE OF (effectivity_context_assignment); items : SET [1:?] OF configured_effectivity_context_item; WHERE wr1 : 'AUTOMOTIVE_DESIGN.' + 'CONFIGURED_EFFECTIVITY_ASSIGNMENT' IN TYPEOF (SELF.assigned_effectivity_assignment); wr2 : SIZEOF(SELF.items) = 1; END_ENTITY; -- 10303-214: automotive_design ENTITY conic SUPERTYPE OF (ONEOF (circle, ellipse, hyperbola, parabola)) SUBTYPE OF (curve); position : axis2_placement; END_ENTITY; -- 10303-42: geometry_schema ENTITY conical_surface SUBTYPE OF (elementary_surface); radius : length_measure; semi_angle : plane_angle_measure; WHERE wr1 : radius >= 0.0; END_ENTITY; -- 10303-42: geometry_schema ENTITY connected_edge_set SUBTYPE OF (topological_representation_item); ces_edges : SET [1:?] OF edge; END_ENTITY; -- 10303-42: topology_schema ENTITY connected_face_set SUPERTYPE OF (ONEOF (closed_shell, open_shell)) SUBTYPE OF (topological_representation_item); cfs_faces : SET [1:?] OF face; END_ENTITY; -- 10303-42: topology_schema ENTITY connected_face_sub_set SUBTYPE OF (connected_face_set); parent_face_set : connected_face_set; END_ENTITY; -- 10303-42: topology_schema ENTITY constructive_geometry_representation SUBTYPE OF (representation); WHERE wr1 : ('AUTOMOTIVE_DESIGN.' + 'GEOMETRIC_REPRESENTATION_CONTEXT' IN TYPEOF (SELF.context_of_items)) AND {2 <= SELF.context_of_items\ geometric_representation_context.coordinate_space_dimension <= 3}; wr2 : SIZEOF(QUERY(cgr_i <* SELF.items | SIZEOF(['AUTOMOTIVE_DESIGN.' + 'PLACEMENT', 'AUTOMOTIVE_DESIGN.' + 'CURVE', 'AUTOMOTIVE_DESIGN.' + 'EDGE', 'AUTOMOTIVE_DESIGN.' + 'FACE', 'AUTOMOTIVE_DESIGN.' + 'POINT' , 'AUTOMOTIVE_DESIGN.' + 'SURFACE', 'AUTOMOTIVE_DESIGN.' + 'FACE_SURFACE', 'AUTOMOTIVE_DESIGN.' + 'VERTEX_POINT'] * TYPEOF(cgr_i)) <> 1)) = 0; wr3 : SIZEOF(USEDIN(SELF, 'AUTOMOTIVE_DESIGN.REPRESENTATION_RELATIONSHIP.REP_2')) > 0; wr4 : SIZEOF(USEDIN(SELF, 'AUTOMOTIVE_DESIGN.REPRESENTATION_MAP.MAPPED_REPRESENTATION')) = 0; END_ENTITY; -- 10303-214: automotive_design ENTITY constructive_geometry_representation_relationship SUBTYPE OF (representation_relationship); WHERE wr1 : (SELF.rep_1.context_of_items :=: SELF.rep_2.context_of_items) AND ( 'AUTOMOTIVE_DESIGN.' + 'GEOMETRIC_REPRESENTATION_CONTEXT' IN TYPEOF(SELF .rep_1.context_of_items)); wr2 : 'AUTOMOTIVE_DESIGN.' + 'CONSTRUCTIVE_GEOMETRY_REPRESENTATION' IN TYPEOF(SELF.rep_2); wr3 : SIZEOF(['AUTOMOTIVE_DESIGN.' + 'SHAPE_REPRESENTATION', 'AUTOMOTIVE_DESIGN.' + 'CONSTRUCTIVE_GEOMETRY_REPRESENTATION'] * TYPEOF( SELF.rep_1)) = 1; wr4 : NOT ('AUTOMOTIVE_DESIGN.' + 'REPRESENTATION_RELATIONSHIP_WITH_TRANSFORMATION' IN TYPEOF(SELF)); END_ENTITY; -- 10303-214: automotive_design ENTITY contact_ratio_representation SUBTYPE OF (representation); WHERE wr1 : (SIZEOF(SELF.items) = 1) AND (SIZEOF(QUERY(i <* SELF.items | (SIZEOF([ 'AUTOMOTIVE_DESIGN.' + 'MEASURE_REPRESENTATION_ITEM', 'AUTOMOTIVE_DESIGN.' + 'VALUE_RANGE'] * TYPEOF(i)) = 1) AND (i.name = 'ratio value'))) = 1); wr2 : (SIZEOF(QUERY(pdr <* USEDIN(SELF, 'AUTOMOTIVE_DESIGN.PROPERTY_DEFINITION_REPRESENTATION.USED_REPRESENTATION' ) | pdr.name = 'contact ratio reference')) = 1) AND (SIZEOF(QUERY(pdr <* USEDIN(SELF, 'AUTOMOTIVE_DESIGN.PROPERTY_DEFINITION_REPRESENTATION.USED_REPRESENTATION' ) | (pdr.name = 'contact ratio reference') AND ('AUTOMOTIVE_DESIGN.' + 'PHYSICALLY_MODELLED_PRODUCT_DEFINITION' IN TYPEOF(pdr.definition. definition)))) = 1); wr3 : (SIZEOF(USEDIN(SELF, 'AUTOMOTIVE_DESIGN.PROPERTY_DEFINITION_REPRESENTATION.USED_REPRESENTATION' )) = 1) AND (SIZEOF(QUERY(pdr <* USEDIN(SELF, 'AUTOMOTIVE_DESIGN.PROPERTY_DEFINITION_REPRESENTATION.USED_REPRESENTATION' ) | SIZEOF(QUERY(gpa <* USEDIN(pdr.definition, 'AUTOMOTIVE_DESIGN.GENERAL_PROPERTY_ASSOCIATION.DERIVED_DEFINITION') | ( 'AUTOMOTIVE_DESIGN.' + 'GENERAL_PROPERTY' IN TYPEOF(gpa.base_definition) ) AND (gpa.base_definition.name = 'surface_texture'))) = 1)) = 1); END_ENTITY; -- 10303-214: automotive_design ENTITY context_dependent_invisibility SUBTYPE OF (invisibility); presentation_context : invisibility_context; END_ENTITY; -- 10303-46: presentation_appearance_schema ENTITY context_dependent_over_riding_styled_item SUBTYPE OF (over_riding_styled_item); style_context : SET [1:2] OF style_context_select; WHERE wr1 : (SIZEOF(QUERY(sc <* SELF.style_context | 'AUTOMOTIVE_DESIGN.REPRESENTATION' IN TYPEOF(sc))) = 1) AND (SIZEOF( QUERY(sc <* SELF.style_context | 'AUTOMOTIVE_DESIGN.REPRESENTATION_ITEM' IN TYPEOF(sc))) = 1); END_ENTITY; -- 10303-46: presentation_appearance_schema ENTITY context_dependent_shape_representation; representation_relation : shape_representation_relationship; represented_product_relation : product_definition_shape; DERIVE description : text := get_description_value(SELF); name : label := get_name_value(SELF); WHERE wr1 : 'AUTOMOTIVE_DESIGN.PRODUCT_DEFINITION_RELATIONSHIP' IN TYPEOF(SELF. represented_product_relation.definition); wr2 : SIZEOF(USEDIN(SELF, 'AUTOMOTIVE_DESIGN.DESCRIPTION_ATTRIBUTE.DESCRIBED_ITEM')) <= 1; wr3 : SIZEOF(USEDIN(SELF, 'AUTOMOTIVE_DESIGN.NAME_ATTRIBUTE.NAMED_ITEM')) <= 1; END_ENTITY; -- 10303-41: product_property_representation_schema ENTITY context_dependent_unit SUBTYPE OF (named_unit); name : label; END_ENTITY; -- 10303-41: measure_schema ENTITY contract; name : label; purpose : text; kind : contract_type; END_ENTITY; -- 10303-41: contract_schema ENTITY contract_assignment ABSTRACT SUPERTYPE; assigned_contract : contract; DERIVE role : object_role := get_role(SELF); WHERE wr1 : SIZEOF(USEDIN(SELF, 'AUTOMOTIVE_DESIGN.ROLE_ASSOCIATION.ITEM_WITH_ROLE')) <= 1; END_ENTITY; -- 10303-41: management_resources_schema ENTITY contract_type; description : label; END_ENTITY; -- 10303-41: contract_schema ENTITY conversion_based_unit SUBTYPE OF (named_unit); name : label; conversion_factor : measure_with_unit; END_ENTITY; -- 10303-41: measure_schema ENTITY coordinated_universal_time_offset; hour_offset : INTEGER; minute_offset : OPTIONAL INTEGER; sense : ahead_or_behind; DERIVE actual_minute_offset : INTEGER := NVL(minute_offset, 0); WHERE wr1 : {0 <= hour_offset < 24}; wr2 : {0 <= actual_minute_offset <= 59}; wr3 : NOT (((hour_offset <> 0) OR (actual_minute_offset <> 0)) AND (sense = exact)); END_ENTITY; -- 10303-41: date_time_schema ENTITY cos_function SUBTYPE OF (unary_function_call); END_ENTITY; (* declared in: iso13584_expressions_schema *) 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([ 'AUTOMOTIVE_DESIGN.CSG_SOLID', 'AUTOMOTIVE_DESIGN.MAPPED_ITEM', 'AUTOMOTIVE_DESIGN.AXIS2_PLACEMENT_3D', 'AUTOMOTIVE_DESIGN.SOLID_REPLICA', 'AUTOMOTIVE_DESIGN.REVOLVED_FACE_SOLID', 'AUTOMOTIVE_DESIGN.EXTRUDED_FACE_SOLID'] * TYPEOF(it)) <> 1)) = 0; wr3 : SIZEOF(QUERY(mi <* QUERY(it <* SELF.items | 'AUTOMOTIVE_DESIGN.MAPPED_ITEM' IN TYPEOF(it)) | NOT ( 'AUTOMOTIVE_DESIGN.CSG_SHAPE_REPRESENTATION' IN TYPEOF(mi\mapped_item. mapping_source.mapped_representation)))) = 0; wr4 : SIZEOF(QUERY(sr <* QUERY(it <* SELF.items | 'AUTOMOTIVE_DESIGN.SOLID_REPLICA' IN TYPEOF(it)) | SIZEOF([ 'AUTOMOTIVE_DESIGN.CSG_SOLID', 'AUTOMOTIVE_DESIGN.REVOLVED_FACE_SOLID', 'AUTOMOTIVE_DESIGN.EXTRUDED_FACE_SOLID'] * TYPEOF(sr\solid_replica. parent_solid)) = 0)) = 0; wr5 : SIZEOF(QUERY(it <* SELF.items | NOT ( 'AUTOMOTIVE_DESIGN.AXIS2_PLACEMENT_3D' IN TYPEOF(it)))) > 0; END_ENTITY; -- 10303-515: aic_csg ENTITY csg_solid SUBTYPE OF (solid_model); tree_root_expression : csg_select; END_ENTITY; -- 10303-42: geometric_model_schema ENTITY curve SUPERTYPE OF (ONEOF (line, conic, pcurve, surface_curve, offset_curve_2d, offset_curve_3d, curve_replica)) SUBTYPE OF (geometric_representation_item); END_ENTITY; -- 10303-42: geometry_schema ENTITY curve_bounded_surface SUBTYPE OF (bounded_surface); basis_surface : surface; boundaries : SET [1:?] OF boundary_curve; implicit_outer : BOOLEAN; WHERE wr1 : NOT implicit_outer OR (SIZEOF(QUERY(temp <* boundaries | 'AUTOMOTIVE_DESIGN.OUTER_BOUNDARY_CURVE' IN TYPEOF(temp))) = 0); wr2 : NOT implicit_outer OR ('AUTOMOTIVE_DESIGN.BOUNDED_SURFACE' IN TYPEOF (basis_surface)); wr3 : SIZEOF(QUERY(temp <* boundaries | 'AUTOMOTIVE_DESIGN.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; -- 10303-42: geometry_schema ENTITY curve_dimension SUBTYPE OF (dimension_curve_directed_callout); END_ENTITY; -- 10303-506: aic_draughting_elements 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; -- 10303-42: geometry_schema ENTITY curve_style; name : label; curve_font : curve_font_or_scaled_curve_font_select; curve_width : size_select; curve_colour : colour; END_ENTITY; -- 10303-46: presentation_appearance_schema ENTITY curve_style_font; name : label; pattern_list : LIST [1:?] OF curve_style_font_pattern; END_ENTITY; -- 10303-46: presentation_appearance_schema ENTITY curve_style_font_pattern; visible_segment_length : positive_length_measure; invisible_segment_length : positive_length_measure; END_ENTITY; -- 10303-46: presentation_appearance_schema ENTITY curve_style_rendering; rendering_method : shading_curve_method; rendering_properties : surface_rendering_properties; END_ENTITY; -- 10303-46: presentation_appearance_schema ENTITY curve_swept_solid_shape_representation SUBTYPE OF (shape_representation); WHERE wr1 : SIZEOF(QUERY(it <* SELF.items | NOT (SIZEOF([ 'AUTOMOTIVE_DESIGN_LF.SWEPT_AREA_SOLID', 'AUTOMOTIVE_DESIGN_LF.SWEPT_DISK_SOLID', 'AUTOMOTIVE_DESIGN_LF.MAPPED_ITEM' , 'AUTOMOTIVE_DESIGN_LF.AXIS2_PLACEMENT_3D'] * TYPEOF(it)) = 1))) = 0; wr2 : SIZEOF(QUERY(it <* SELF.items | SIZEOF([ 'AUTOMOTIVE_DESIGN_LF.SWEPT_AREA_SOLID', 'AUTOMOTIVE_DESIGN_LF.SWEPT_DISK_SOLID', 'AUTOMOTIVE_DESIGN_LF.MAPPED_ITEM' ] * TYPEOF(it)) = 1)) > 0; wr3 : SIZEOF(QUERY(mi <* QUERY(it <* items | 'AUTOMOTIVE_DESIGN_LF.MAPPED_ITEM' IN TYPEOF(it)) | NOT ( 'AUTOMOTIVE_DESIGN_LF.CURVE_SWEPT_SOLID_SHAPE_REPRESENTATION' IN TYPEOF(mi\ mapped_item.mapping_source.mapped_representation)))) = 0; wr4 : SIZEOF(QUERY(scsas <* QUERY(it <* SELF.items | 'AUTOMOTIVE_DESIGN_LF.SURFACE_CURVE_SWEPT_AREA_SOLID' IN TYPEOF(it)) | NOT (('AUTOMOTIVE_DESIGN_LF.SURFACE_CURVE' IN TYPEOF(scsas.directrix)) OR ( 'AUTOMOTIVE_DESIGN_LF.PCURVE' IN TYPEOF(scsas.directrix))))) = 0; END_ENTITY; (* declared in: aic_curve_swept_solid *) ENTITY cylindrical_pair SUBTYPE OF (kinematic_pair); END_ENTITY; -- 10303-105: kinematic_structure_schema ENTITY cylindrical_pair_range SUBTYPE OF (simple_pair_range); SELF\simple_pair_range.applies_to_pair : cylindrical_pair; lower_limit_actual_translation : translational_range_measure; upper_limit_actual_translation : translational_range_measure; lower_limit_actual_rotation : rotational_range_measure; upper_limit_actual_rotation : rotational_range_measure; WHERE wr1 : ('AUTOMOTIVE_DESIGN.UNLIMITED_RANGE' IN TYPEOF( lower_limit_actual_translation)) OR ('AUTOMOTIVE_DESIGN.UNLIMITED_RANGE' IN TYPEOF(upper_limit_actual_translation)) XOR ( lower_limit_actual_translation < upper_limit_actual_translation); wr2 : ('AUTOMOTIVE_DESIGN.UNLIMITED_RANGE' IN TYPEOF( lower_limit_actual_rotation)) OR ('AUTOMOTIVE_DESIGN.UNLIMITED_RANGE' IN TYPEOF(upper_limit_actual_rotation)) XOR (lower_limit_actual_rotation < upper_limit_actual_rotation); END_ENTITY; -- 10303-105: kinematic_structure_schema ENTITY cylindrical_pair_value SUBTYPE OF (pair_value); SELF\pair_value.applies_to_pair : cylindrical_pair; actual_translation : length_measure; actual_rotation : plane_angle_measure; END_ENTITY; -- 10303-105: kinematic_structure_schema ENTITY cylindrical_surface SUBTYPE OF (elementary_surface); radius : positive_length_measure; END_ENTITY; -- 10303-42: geometry_schema ENTITY cylindricity_tolerance SUBTYPE OF (geometric_tolerance); WHERE wr1 : NOT ('AUTOMOTIVE_DESIGN.' + 'GEOMETRIC_TOLERANCE_WITH_DATUM_REFERENCE' IN TYPEOF(SELF)); END_ENTITY; -- 10303-519: aic_geometric_tolerances ENTITY data_environment; name : label; description : text; elements : SET [1:?] OF property_definition_representation; END_ENTITY; -- 10303-45: material_property_representation_schema ENTITY date SUPERTYPE OF (calendar_date); year_component : year_number; END_ENTITY; -- 10303-41: date_time_schema ENTITY date_and_time; date_component : date; time_component : local_time; END_ENTITY; -- 10303-41: date_time_schema ENTITY date_and_time_assignment ABSTRACT SUPERTYPE; assigned_date_and_time : date_and_time; role : date_time_role; END_ENTITY; -- 10303-41: management_resources_schema ENTITY date_assignment ABSTRACT SUPERTYPE; assigned_date : date; role : date_role; END_ENTITY; -- 10303-41: management_resources_schema ENTITY date_role; name : label; DERIVE description : text := get_description_value(SELF); WHERE wr1 : SIZEOF(USEDIN(SELF, 'AUTOMOTIVE_DESIGN.DESCRIPTION_ATTRIBUTE.DESCRIBED_ITEM')) <= 1; END_ENTITY; -- 10303-41: date_time_schema ENTITY date_time_role; name : label; DERIVE description : text := get_description_value(SELF); WHERE wr1 : SIZEOF(USEDIN(SELF, 'AUTOMOTIVE_DESIGN.DESCRIPTION_ATTRIBUTE.DESCRIBED_ITEM')) <= 1; END_ENTITY; -- 10303-41: date_time_schema ENTITY dated_effectivity SUBTYPE OF (effectivity); effectivity_end_date : OPTIONAL date_time_or_event_occurrence; effectivity_start_date : date_time_or_event_occurrence; END_ENTITY; -- 10303-41: effectivity_schema ENTITY datum SUBTYPE OF (shape_aspect); identification : identifier; INVERSE established_by_relationships : SET [1:?] OF shape_aspect_relationship FOR related_shape_aspect; WHERE wr1 : SIZEOF(QUERY(x <* SELF\datum.established_by_relationships | SIZEOF( TYPEOF(x\shape_aspect_relationship.relating_shape_aspect) * [ 'AUTOMOTIVE_DESIGN.DATUM_FEATURE', 'AUTOMOTIVE_DESIGN.DATUM_TARGET']) <> 1)) = 0; END_ENTITY; -- 10303-47: shape_aspect_definition_schema ENTITY datum_feature SUBTYPE OF (shape_aspect); INVERSE feature_basis_relationship : shape_aspect_relationship FOR relating_shape_aspect; WHERE wr1 : SIZEOF(QUERY(sar <* bag_to_set(USEDIN(SELF, 'AUTOMOTIVE_DESIGN.SHAPE_ASPECT_RELATIONSHIP.RELATING_SHAPE_ASPECT')) | NOT ('AUTOMOTIVE_DESIGN.DATUM' IN TYPEOF(sar\shape_aspect_relationship. related_shape_aspect)))) = 0; wr2 : SELF\shape_aspect.product_definitional = TRUE; END_ENTITY; -- 10303-47: shape_aspect_definition_schema ENTITY datum_feature_callout SUBTYPE OF (draughting_callout); END_ENTITY; -- 10303-506: aic_draughting_elements ENTITY datum_reference; precedence : INTEGER; referenced_datum : datum; WHERE wr1 : precedence > 0; END_ENTITY; -- 10303-47: shape_aspect_definition_schema ENTITY datum_target SUBTYPE OF (shape_aspect); target_id : identifier; INVERSE target_basis_relationship : shape_aspect_relationship FOR relating_shape_aspect; WHERE wr1 : SIZEOF(QUERY(sar <* bag_to_set(USEDIN(SELF, 'AUTOMOTIVE_DESIGN.SHAPE_ASPECT_RELATIONSHIP.RELATING_SHAPE_ASPECT')) | NOT ('AUTOMOTIVE_DESIGN.DATUM' IN TYPEOF(sar\shape_aspect_relationship. related_shape_aspect)))) = 0; wr2 : SELF\shape_aspect.product_definitional = TRUE; END_ENTITY; -- 10303-47: shape_aspect_definition_schema ENTITY datum_target_callout SUBTYPE OF (draughting_callout); END_ENTITY; -- 10303-506: aic_draughting_elements ENTITY default_tolerance_table SUBTYPE OF (representation); WHERE wr1 : SIZEOF(QUERY(i <* SELF.items | NOT ('AUTOMOTIVE_DESIGN.' + 'DEFAULT_TOLERANCE_TABLE_CELL' IN TYPEOF(i)))) = 0; wr2 : (SIZEOF(QUERY(rr <* USEDIN(SELF, 'AUTOMOTIVE_DESIGN.REPRESENTATION_RELATIONSHIP.REP_1') | rr.name <> 'general tolerance definition')) = 0) AND (SIZEOF(QUERY(rr <* USEDIN(SELF, 'AUTOMOTIVE_DESIGN.REPRESENTATION_RELATIONSHIP.REP_1') | (rr.name = 'general tolerance definition') AND (rr.rep_2.name <> 'default tolerances') )) = 0) AND (SIZEOF(USEDIN(SELF, 'AUTOMOTIVE_DESIGN.REPRESENTATION_RELATIONSHIP.REP_2')) = 0); END_ENTITY; -- 10303-214: automotive_design ENTITY default_tolerance_table_cell SUBTYPE OF (compound_representation_item); WHERE wr1 : SIZEOF(QUERY(x <* USEDIN(SELF, 'AUTOMOTIVE_DESIGN.REPRESENTATION.ITEMS') | 'AUTOMOTIVE_DESIGN.' + '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; -- 10303-214: automotive_design ENTITY defined_character_glyph SUBTYPE OF (geometric_representation_item); definition : defined_glyph_select; placement : axis2_placement; END_ENTITY; -- 10303-46: presentation_definition_schema ENTITY defined_function ABSTRACT SUPERTYPE OF (ONEOF (numeric_defined_function, string_defined_function , boolean_defined_function) ANDOR sql_mappable_defined_function); END_ENTITY; (* declared in: iso13584_expressions_schema *) ENTITY defined_symbol SUBTYPE OF (geometric_representation_item); definition : defined_symbol_select; target : symbol_target; END_ENTITY; -- 10303-46: presentation_definition_schema ENTITY definitional_representation SUBTYPE OF (representation); WHERE wr1 : 'AUTOMOTIVE_DESIGN.PARAMETRIC_REPRESENTATION_CONTEXT' IN TYPEOF(SELF \representation.context_of_items); END_ENTITY; -- 10303-43: representation_schema ENTITY degenerate_pcurve SUBTYPE OF (point); basis_surface : surface; reference_to_curve : definitional_representation; WHERE wr1 : SIZEOF(reference_to_curve\representation.items) = 1; wr2 : 'AUTOMOTIVE_DESIGN.CURVE' IN TYPEOF(reference_to_curve\ representation.items[1]); wr3 : reference_to_curve\representation.items[1]\ geometric_representation_item.dim = 2; END_ENTITY; -- 10303-42: geometry_schema ENTITY degenerate_toroidal_surface SUBTYPE OF (toroidal_surface); select_outer : BOOLEAN; WHERE wr1 : major_radius < minor_radius; END_ENTITY; -- 10303-42: geometry_schema ENTITY derived_shape_aspect SUPERTYPE OF (ONEOF (apex, centre_of_symmetry, geometric_alignment, geometric_intersection, parallel_offset, perpendicular_to, extension, tangent)) SUBTYPE OF (shape_aspect); INVERSE deriving_relationships : SET [1:?] OF shape_aspect_relationship FOR relating_shape_aspect; WHERE wr1 : SIZEOF(QUERY(dr <* SELF\derived_shape_aspect.deriving_relationships | NOT ('AUTOMOTIVE_DESIGN.' + 'SHAPE_ASPECT_DERIVING_RELATIONSHIP' IN TYPEOF(dr)))) = 0; END_ENTITY; -- 10303-47: shape_aspect_definition_schema ENTITY derived_unit; elements : SET [1:?] OF derived_unit_element; DERIVE name : label := get_name_value(SELF); WHERE wr1 : (SIZEOF(elements) > 1) OR (SIZEOF(elements) = 1) AND (elements[1]. exponent <> 1.000000); wr2 : SIZEOF(USEDIN(SELF, 'AUTOMOTIVE_DESIGN.NAME_ATTRIBUTE.NAMED_ITEM')) <= 1; END_ENTITY; -- 10303-41: measure_schema ENTITY derived_unit_element; unit : named_unit; exponent : REAL; END_ENTITY; -- 10303-41: measure_schema ENTITY derived_unit_variable SUBTYPE OF (derived_unit, variable_semantics); INVERSE associated_variable_environment : environment FOR semantics; END_ENTITY; -- 10303-214: automotive_design ENTITY description_attribute; attribute_value : text; described_item : description_attribute_select; END_ENTITY; -- 10303-41: basic_attribute_schema ENTITY descriptive_representation_item SUBTYPE OF (representation_item); description : text; END_ENTITY; -- 10303-45: qualified_measure_schema ENTITY diameter_dimension SUBTYPE OF (dimension_curve_directed_callout); END_ENTITY; -- 10303-506: aic_draughting_elements ENTITY dimension_callout SUBTYPE OF (draughting_callout); WHERE wr1 : ('AUTOMOTIVE_DESIGN_LF.LEADER_DIRECTED_CALLOUT' IN TYPEOF(SELF)) XOR ( SIZEOF(QUERY(dce_1 <* SELF\draughting_callout.contents | 'AUTOMOTIVE_DESIGN_LF.LEADER_CURVE' IN TYPEOF(dce_1))) = 0); wr2 : ('AUTOMOTIVE_DESIGN_LF.PROJECTION_DIRECTED_CALLOUT' IN TYPEOF(SELF)) XOR (SIZEOF(QUERY(dce_1 <* SELF\draughting_callout.contents | 'AUTOMOTIVE_DESIGN_LF.PROJECTION_CURVE' IN TYPEOF(dce_1))) = 0); wr3 : ('AUTOMOTIVE_DESIGN_LF.DIMENSION_CURVE_DIRECTED_CALLOUT' IN TYPEOF(SELF )) XOR (SIZEOF(QUERY(dce_1 <* SELF\draughting_callout.contents | 'AUTOMOTIVE_DESIGN_LF.DIMENSION_CURVE' IN TYPEOF(dce_1))) = 0); END_ENTITY; (* declared in: draughting_dimension_schema *) ENTITY dimension_callout_component_relationship SUBTYPE OF (draughting_callout_relationship); WHERE wr1 : SELF.name IN ['prefix', 'suffix']; wr2 : 'AUTOMOTIVE_DESIGN.STRUCTURED_DIMENSION_CALLOUT' IN TYPEOF(SELF. relating_draughting_callout); wr3 : SIZEOF(TYPEOF(SELF.related_draughting_callout) * [ 'AUTOMOTIVE_DESIGN.LEADER_DIRECTED_CALLOUT', 'AUTOMOTIVE_DESIGN.PROJECTION_DIRECTED_CALLOUT', 'AUTOMOTIVE_DESIGN.DIMENSION_CURVE_DIRECTED_CALLOUT', 'AUTOMOTIVE_DESIGN.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 | 'AUTOMOTIVE_DESIGN.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 | 'AUTOMOTIVE_DESIGN.ANNOTATION_TEXT_OCCURRENCE' IN TYPEOF(con)) | NOT ( ato.name = 'suffix text'))) = 0); END_ENTITY; -- 10303-506: aic_draughting_elements ENTITY dimension_callout_relationship SUBTYPE OF (draughting_callout_relationship); WHERE wr1 : SELF.name IN ['primary', 'secondary']; wr2 : SIZEOF(TYPEOF(SELF.relating_draughting_callout) * [ 'AUTOMOTIVE_DESIGN.ANGULAR_DIMENSION', 'AUTOMOTIVE_DESIGN.CURVE_DIMENSION', 'AUTOMOTIVE_DESIGN.DIAMETER_DIMENSION', 'AUTOMOTIVE_DESIGN.LEADER_DIRECTED_DIMENSION', 'AUTOMOTIVE_DESIGN.LINEAR_DIMENSION', 'AUTOMOTIVE_DESIGN.ORDINATE_DIMENSION', 'AUTOMOTIVE_DESIGN.RADIUS_DIMENSION']) >= 1; wr3 : SIZEOF(TYPEOF(SELF.related_draughting_callout) * [ 'AUTOMOTIVE_DESIGN.DIMENSION_CURVE_DIRECTED_CALLOUT', 'AUTOMOTIVE_DESIGN.PROJECTION_DIRECTED_CALLOUT', 'AUTOMOTIVE_DESIGN.LEADER_DIRECTED_CALLOUT']) = 0; wr4 : SELF.related_draughting_callout.contents * SELF. relating_draughting_callout.contents = SELF.related_draughting_callout. contents; END_ENTITY; -- 10303-506: aic_draughting_elements ENTITY dimension_curve SUBTYPE OF (annotation_curve_occurrence); WHERE wr1 : SIZEOF(QUERY(dct <* USEDIN(SELF, 'AUTOMOTIVE_DESIGN.TERMINATOR_SYMBOL.ANNOTATED_CURVE') | 'AUTOMOTIVE_DESIGN.' + 'DIMENSION_CURVE_TERMINATOR' IN TYPEOF(dct))) <= 2; wr2 : SIZEOF(QUERY(dcdc <* USEDIN(SELF, 'AUTOMOTIVE_DESIGN.DRAUGHTING_CALLOUT.CONTENTS') | 'AUTOMOTIVE_DESIGN.' + 'DIMENSION_CURVE_DIRECTED_CALLOUT' IN TYPEOF(dcdc ))) >= 1; wr3 : (SIZEOF(QUERY(dct1 <* USEDIN(SELF, 'AUTOMOTIVE_DESIGN.TERMINATOR_SYMBOL.ANNOTATED_CURVE') | ( 'AUTOMOTIVE_DESIGN.' + 'DIMENSION_CURVE_TERMINATOR' IN TYPEOF(dct1)) AND (dct1.role = origin))) <= 1) AND (SIZEOF(QUERY(dct2 <* USEDIN(SELF, 'AUTOMOTIVE_DESIGN.TERMINATOR_SYMBOL.ANNOTATED_CURVE') | ( 'AUTOMOTIVE_DESIGN.' + 'DIMENSION_CURVE_TERMINATOR' IN TYPEOF(dct2)) AND (dct2.role = target))) <= 1); END_ENTITY; -- 10303-101: draughting_element_schema ENTITY dimension_curve_directed_callout SUBTYPE OF (draughting_callout); WHERE wr1 : SIZEOF(QUERY(d_c <* SELF\draughting_callout.contents | 'AUTOMOTIVE_DESIGN.DIMENSION_CURVE' IN TYPEOF(d_c))) = 1; wr2 : SIZEOF(SELF\draughting_callout.contents) >= 2; END_ENTITY; -- 10303-101: draughting_element_schema ENTITY dimension_curve_terminator SUBTYPE OF (terminator_symbol); role : dimension_extent_usage; WHERE wr1 : 'AUTOMOTIVE_DESIGN.DIMENSION_CURVE' IN TYPEOF(SELF\terminator_symbol .annotated_curve); END_ENTITY; -- 10303-101: draughting_element_schema ENTITY dimension_pair SUBTYPE OF (draughting_callout_relationship); WHERE wr1 : SELF.name IN ['chained', 'parallel']; wr2 : SIZEOF(TYPEOF(SELF.relating_draughting_callout) * [ 'AUTOMOTIVE_DESIGN.ANGULAR_DIMENSION', 'AUTOMOTIVE_DESIGN.CURVE_DIMENSION', 'AUTOMOTIVE_DESIGN.DIAMETER_DIMENSION', 'AUTOMOTIVE_DESIGN.LINEAR_DIMENSION', 'AUTOMOTIVE_DESIGN.ORDINATE_DIMENSION', 'AUTOMOTIVE_DESIGN.RADIUS_DIMENSION']) = 1; wr3 : SIZEOF(TYPEOF(SELF.related_draughting_callout) * [ 'AUTOMOTIVE_DESIGN.ANGULAR_DIMENSION', 'AUTOMOTIVE_DESIGN.CURVE_DIMENSION', 'AUTOMOTIVE_DESIGN.DIAMETER_DIMENSION', 'AUTOMOTIVE_DESIGN.LINEAR_DIMENSION', 'AUTOMOTIVE_DESIGN.ORDINATE_DIMENSION', 'AUTOMOTIVE_DESIGN.RADIUS_DIMENSION']) = 1; END_ENTITY; -- 10303-506: aic_draughting_elements ENTITY dimension_related_tolerance_zone_element; related_dimension : dimensional_location; related_element : tolerance_zone_definition; END_ENTITY; -- 10303-47: shape_tolerance_schema ENTITY dimension_text_associativity SUBTYPE OF (text_literal, mapped_item); WHERE wr1 : 'AUTOMOTIVE_DESIGN.SHAPE_DIMENSION_REPRESENTATION' IN TYPEOF(SELF\ mapped_item.mapping_source.mapped_representation); wr2 : 'AUTOMOTIVE_DESIGN.DRAUGHTING_CALLOUT' IN TYPEOF(SELF\mapped_item. mapping_target); wr3 : SIZEOF(QUERY(ato <* QUERY(si <* USEDIN(SELF, 'AUTOMOTIVE_DESIGN.STYLED_ITEM.ITEM') | 'AUTOMOTIVE_DESIGN.ANNOTATION_TEXT_OCCURRENCE' IN TYPEOF(si)) | NOT ( SIZEOF(QUERY(dc <* USEDIN(ato, 'AUTOMOTIVE_DESIGN.DRAUGHTING_CALLOUT.CONTENTS') | 'AUTOMOTIVE_DESIGN.DRAUGHTING_CALLOUT' IN TYPEOF(dc)) * [SELF\ mapped_item.mapping_target]) = 1))) = 0; END_ENTITY; -- 10303-520: aic_associative_draughting_elements ENTITY dimensional_characteristic_representation; dimension : dimensional_characteristic; representation : shape_dimension_representation; END_ENTITY; -- 10303-47: shape_dimension_schema ENTITY dimensional_exponents; length_exponent : REAL; mass_exponent : REAL; time_exponent : REAL; electric_current_exponent : REAL; thermodynamic_temperature_exponent : REAL; amount_of_substance_exponent : REAL; luminous_intensity_exponent : REAL; END_ENTITY; -- 10303-41: measure_schema ENTITY dimensional_location SUPERTYPE OF (ONEOF (angular_location, dimensional_location_with_path)) SUBTYPE OF (shape_aspect_relationship); END_ENTITY; -- 10303-47: shape_dimension_schema ENTITY dimensional_location_with_path SUBTYPE OF (dimensional_location); path : shape_aspect; END_ENTITY; -- 10303-47: shape_dimension_schema ENTITY dimensional_size SUPERTYPE OF (ONEOF (angular_size, dimensional_size_with_path)); applies_to : shape_aspect; name : label; WHERE wr1 : applies_to.product_definitional = TRUE; END_ENTITY; -- 10303-47: shape_dimension_schema ENTITY dimensional_size_with_path SUBTYPE OF (dimensional_size); path : shape_aspect; END_ENTITY; -- 10303-47: shape_dimension_schema ENTITY directed_action SUBTYPE OF (executed_action); directive : action_directive; END_ENTITY; -- directed_action: action_schema ENTITY directed_angle SUBTYPE OF (shape_aspect); WHERE wr1 : 'AUTOMOTIVE_DESIGN.' + 'FEATURE_COMPONENT_DEFINITION' IN TYPEOF(SELF .of_shape.definition); wr2 : SIZEOF(QUERY(pdr <* get_shape_aspect_property_definition_representations(SELF) | 'AUTOMOTIVE_DESIGN.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation))) = 1; wr3 : SIZEOF(QUERY(pdr <* get_shape_aspect_property_definition_representations(SELF) | ( 'AUTOMOTIVE_DESIGN.' + '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) | ( 'AUTOMOTIVE_DESIGN.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation)) AND (SIZEOF(QUERY(i <* pdr.used_representation. items | (i.name = 'angle') AND (SIZEOF(['AUTOMOTIVE_DESIGN.' + 'MEASURE_REPRESENTATION_ITEM', 'AUTOMOTIVE_DESIGN.' + 'PLANE_ANGLE_MEASURE_WITH_UNIT'] * TYPEOF(i)) = 2))) = 1))) = 1; END_ENTITY; -- directed_angle: automotive_design ENTITY directed_dimensional_location SUBTYPE OF (dimensional_location); END_ENTITY; -- 10303-214: automotive_design 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; -- 10303-42: geometry_schema ENTITY direction_shape_representation SUBTYPE OF (shape_representation); WHERE wr1 : SIZEOF(SELF.items) = 1; wr2 : SIZEOF(QUERY(i <* SELF.items | 'AUTOMOTIVE_DESIGN.' + 'DIRECTION' IN TYPEOF(i))) = 1; END_ENTITY; -- 10303-214: automotive_design ENTITY div_expression SUBTYPE OF (binary_numeric_expression); END_ENTITY; (* declared in: iso13584_expressions_schema *) ENTITY document; id : identifier; name : label; description : OPTIONAL text; kind : document_type; INVERSE representation_types : SET OF document_representation_type FOR represented_document; END_ENTITY; -- 10303-41: document_schema 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; -- 10303-214: automotive_design ENTITY document_product_association; name : label; description : OPTIONAL text; relating_document : document; related_product : product_or_formation_or_definition; END_ENTITY; -- 10303-41: document_schema ENTITY document_product_equivalence SUBTYPE OF (document_product_association); WHERE wr1 : SELF.name = 'equivalence'; wr2 : NOT ('AUTOMOTIVE_DESIGN.' + 'PRODUCT' IN TYPEOF(SELF.related_product )) OR (SELF.relating_document.kind.product_data_type = 'configuration controlled document') AND (SIZEOF(QUERY(prpc <* USEDIN(SELF. related_product, 'AUTOMOTIVE_DESIGN.PRODUCT_RELATED_PRODUCT_CATEGORY.PRODUCTS') | prpc. name = 'document')) = 1); wr3 : NOT ('AUTOMOTIVE_DESIGN.' + 'PRODUCT_DEFINITION_FORMATION' IN TYPEOF (SELF.related_product)) OR (SELF.relating_document.kind.product_data_type = 'configuration controlled document version') AND (SIZEOF(QUERY(prpc <* USEDIN(SELF.related_product\product_definition_formation.of_product, 'AUTOMOTIVE_DESIGN.PRODUCT_RELATED_PRODUCT_CATEGORY.PRODUCTS') | prpc. name = 'document')) = 1); wr4 : NOT ('AUTOMOTIVE_DESIGN.' + 'PRODUCT_DEFINITION' IN TYPEOF(SELF. related_product)) OR (SELF.relating_document.kind.product_data_type = 'configuration controlled document definition') AND (SIZEOF(QUERY(prpc <* USEDIN(SELF.related_product\product_definition.formation.of_product, 'AUTOMOTIVE_DESIGN.PRODUCT_RELATED_PRODUCT_CATEGORY.PRODUCTS') | prpc. name = 'document')) = 1); END_ENTITY; -- 10303-214: automotive_design ENTITY document_reference ABSTRACT SUPERTYPE; assigned_document : document; source : label; DERIVE role : object_role := get_role(SELF); WHERE wr1 : SIZEOF(USEDIN(SELF, 'AUTOMOTIVE_DESIGN.ROLE_ASSOCIATION.ITEM_WITH_ROLE')) <= 1; END_ENTITY; -- 10303-41: management_resources_schema ENTITY document_relationship; name : label; description : OPTIONAL text; relating_document : document; related_document : document; END_ENTITY; -- 10303-41: document_schema ENTITY document_representation_type; name : label; represented_document : document; END_ENTITY; -- 10303-41: document_schema ENTITY document_type; product_data_type : label; END_ENTITY; -- 10303-41: document_schema ENTITY document_usage_constraint; source : document; subject_element : label; subject_element_value : text; END_ENTITY; -- 10303-41: document_schema ENTITY document_usage_constraint_assignment ABSTRACT SUPERTYPE; assigned_document_usage : document_usage_constraint; role : document_usage_role; END_ENTITY; -- 10303-41: management_resources_schema ENTITY document_usage_role; name : label; description : OPTIONAL text; END_ENTITY; -- 10303-41: management_resources_schema ENTITY draughting_annotation_occurrence SUBTYPE OF (annotation_occurrence); WHERE wr1 : NOT ('AUTOMOTIVE_DESIGN.ANNOTATION_CURVE_OCCURRENCE' IN TYPEOF(SELF) ) OR (SIZEOF(QUERY(sty <* SELF.styles | NOT ((SIZEOF(sty.styles) = 1) AND ( 'AUTOMOTIVE_DESIGN.CURVE_STYLE' IN TYPEOF(sty.styles[1]))))) = 0); wr2 : NOT ('AUTOMOTIVE_DESIGN.ANNOTATION_FILL_AREA_OCCURRENCE' IN TYPEOF( SELF)) OR (SIZEOF(QUERY(sty <* SELF.styles | NOT ((SIZEOF(sty.styles) = 1) AND ('AUTOMOTIVE_DESIGN.FILL_AREA_STYLE' IN TYPEOF(sty.styles[1]))))) = 0); wr3 : NOT ('AUTOMOTIVE_DESIGN.ANNOTATION_FILL_AREA_OCCURRENCE' IN TYPEOF( SELF)) OR (SIZEOF(QUERY(bound <* SELF.item\annotation_fill_area.boundaries | NOT (SIZEOF(QUERY(si <* USEDIN(bound, 'AUTOMOTIVE_DESIGN.STYLED_ITEM.ITEM') | 'AUTOMOTIVE_DESIGN.' + 'ANNOTATION_CURVE_OCCURRENCE' IN TYPEOF(si))) > 0))) = 0); wr4 : NOT ('AUTOMOTIVE_DESIGN.ANNOTATION_SYMBOL_OCCURRENCE' IN TYPEOF(SELF )) OR (SIZEOF(QUERY(sty <* SELF.styles | NOT ((SIZEOF(sty.styles) = 1) AND (SIZEOF(TYPEOF(sty.styles[1]) * ['AUTOMOTIVE_DESIGN.SYMBOL_STYLE', 'AUTOMOTIVE_DESIGN.NULL_STYLE']) = 1)))) = 0); wr5 : NOT (('AUTOMOTIVE_DESIGN.ANNOTATION_SYMBOL_OCCURRENCE' IN TYPEOF( SELF)) AND ('AUTOMOTIVE_DESIGN.ANNOTATION_SYMBOL' IN TYPEOF(SELF.item))) OR (SIZEOF(['AUTOMOTIVE_DESIGN.' + 'DRAUGHTING_SYMBOL_REPRESENTATION', 'AUTOMOTIVE_DESIGN.' + 'DRAUGHTING_SUBFIGURE_REPRESENTATION'] * TYPEOF( SELF.item\mapped_item.mapping_source.mapped_representation)) = 1); wr6 : NOT ('AUTOMOTIVE_DESIGN.ANNOTATION_TEXT_OCCURRENCE' IN TYPEOF(SELF)) OR (SIZEOF(QUERY(sty <* SELF.styles | NOT ((SIZEOF(sty.styles) = 1) AND ( 'AUTOMOTIVE_DESIGN.TEXT_STYLE' IN TYPEOF(sty.styles[1]))))) = 0); wr7 : ('AUTOMOTIVE_DESIGN.ANNOTATION_TEXT_OCCURRENCE' IN TYPEOF(SELF)) OR (SIZEOF(TYPEOF(SELF.item) * ['AUTOMOTIVE_DESIGN.COMPOSITE_TEXT', 'AUTOMOTIVE_DESIGN.TEXT_LITERAL']) = 1); wr8 : NOT (('AUTOMOTIVE_DESIGN.ANNOTATION_TEXT_OCCURRENCE' IN TYPEOF(SELF) ) AND ('AUTOMOTIVE_DESIGN.COMPOSITE_TEXT' IN TYPEOF(SELF.item))) OR ( SIZEOF(QUERY(tl <* SELF.item\composite_text.collected_text | NOT ( 'AUTOMOTIVE_DESIGN.TEXT_LITERAL' IN TYPEOF(tl)))) = 0); wr9 : NOT (('AUTOMOTIVE_DESIGN.ANNOTATION_TEXT_OCCURRENCE' IN TYPEOF(SELF) ) AND ('AUTOMOTIVE_DESIGN.TEXT_LITERAL' IN TYPEOF(SELF.item))) OR (SELF. item\text_literal.alignment IN ['baseline left', 'baseline centre', 'baseline right']); wr10 : NOT (('AUTOMOTIVE_DESIGN.ANNOTATION_TEXT_OCCURRENCE' IN TYPEOF(SELF )) AND ('AUTOMOTIVE_DESIGN.COMPOSITE_TEXT' IN TYPEOF(SELF.item))) OR ( SIZEOF(QUERY(tl <* QUERY(text <* SELF.item\composite_text.collected_text | 'AUTOMOTIVE_DESIGN.TEXT_LITERAL' IN TYPEOF(text)) | NOT (tl\text_literal .alignment IN ['baseline left', 'baseline centre', 'baseline right']))) = 0 ); wr11 : NOT (('AUTOMOTIVE_DESIGN.ANNOTATION_TEXT_OCCURRENCE' IN TYPEOF(SELF )) AND ('AUTOMOTIVE_DESIGN.COMPOSITE_TEXT' IN TYPEOF(SELF.item))) OR check_text_alignment(SELF.item); wr12 : NOT (('AUTOMOTIVE_DESIGN.ANNOTATION_TEXT_OCCURRENCE' IN TYPEOF(SELF )) AND ('AUTOMOTIVE_DESIGN.COMPOSITE_TEXT' IN TYPEOF(SELF.item))) OR check_text_font(SELF.item); wr13 : NOT (('AUTOMOTIVE_DESIGN.ANNOTATION_TEXT_OCCURRENCE' IN TYPEOF(SELF )) AND ('AUTOMOTIVE_DESIGN.COMPOSITE_TEXT' IN TYPEOF(SELF.item))) OR ( SIZEOF(QUERY(tl <* QUERY(text <* SELF.item\composite_text.collected_text | 'AUTOMOTIVE_DESIGN.TEXT_LITERAL' IN TYPEOF(text)) | NOT (SIZEOF(TYPEOF( tl) * ['AUTOMOTIVE_DESIGN.' + 'TEXT_LITERAL_WITH_BLANKING_BOX', 'AUTOMOTIVE_DESIGN.' + 'TEXT_LITERAL_WITH_ASSOCIATED_CURVES']) = 0))) = 0); wr14 : NOT (('AUTOMOTIVE_DESIGN.ANNOTATION_TEXT_OCCURRENCE' IN TYPEOF(SELF )) AND ('AUTOMOTIVE_DESIGN.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, 'AUTOMOTIVE_DESIGN.STYLED_ITEM.ITEM') | 'AUTOMOTIVE_DESIGN.ANNOTATION_CURVE_OCCURRENCE' IN TYPEOF(si))) > 0))) = 0); wr15 : NOT (('AUTOMOTIVE_DESIGN.ANNOTATION_TEXT_OCCURRENCE' IN TYPEOF(SELF )) AND ('AUTOMOTIVE_DESIGN.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, 'AUTOMOTIVE_DESIGN.STYLED_ITEM.ITEM') | 'AUTOMOTIVE_DESIGN.ANNOTATION_CURVE_OCCURRENCE' IN TYPEOF(si))) > 0))) = 0); wr16 : SIZEOF(QUERY(cs <* QUERY(sty <* SELF.styles | 'AUTOMOTIVE_DESIGN.CURVE_STYLE' IN TYPEOF(sty.styles[1])) | NOT (( 'AUTOMOTIVE_DESIGN.LENGTH_MEASURE_WITH_UNIT' IN TYPEOF(cs.styles[1]\ curve_style.curve_width)) AND ( 'AUTOMOTIVE_DESIGN.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 | 'AUTOMOTIVE_DESIGN.FILL_AREA_STYLE' IN TYPEOF(sty.styles[1])) | NOT (( SIZEOF(QUERY(fs <* fas.styles[1]\fill_area_style.fill_styles | 'AUTOMOTIVE_DESIGN.FILL_AREA_STYLE_TILES' IN TYPEOF(fs))) <= 1) AND ( SIZEOF(QUERY(fst <* QUERY(fs <* fas.styles[1]\fill_area_style.fill_styles | 'AUTOMOTIVE_DESIGN.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 | 'AUTOMOTIVE_DESIGN.FILL_AREA_STYLE' IN TYPEOF(sty.styles[1])) | NOT ( SIZEOF(QUERY(fsh <* QUERY(fs <* fas.styles[1]\fill_area_style.fill_styles | 'AUTOMOTIVE_DESIGN.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 | 'AUTOMOTIVE_DESIGN.TEXT_STYLE' IN TYPEOF(sty.styles[1])) | NOT ( 'AUTOMOTIVE_DESIGN.' + 'TEXT_STYLE_WITH_BOX_CHARACTERISTICS' IN TYPEOF( ts.styles[1])))) = 0; wr20 : SIZEOF(QUERY(ts <* QUERY(sty <* SELF.styles | 'AUTOMOTIVE_DESIGN.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; -- 10303-504: aic_draughting_annotation ENTITY draughting_callout SUBTYPE OF (geometric_representation_item); contents : SET [1:?] OF draughting_callout_element; END_ENTITY; -- 10303-101: draughting_element_schema ENTITY draughting_callout_relationship; name : label; description : text; relating_draughting_callout : draughting_callout; related_draughting_callout : draughting_callout; END_ENTITY; -- 10303-101: draughting_element_schema ENTITY draughting_elements SUBTYPE OF (draughting_callout); WHERE wr1 : SIZEOF(QUERY(l_c <* QUERY(con <* SELF.contents | 'AUTOMOTIVE_DESIGN.LEADER_CURVE' IN TYPEOF(con)) | NOT (SIZEOF(QUERY(ldc <* USEDIN(l_c, 'AUTOMOTIVE_DESIGN.DRAUGHTING_CALLOUT.CONTENTS') | 'AUTOMOTIVE_DESIGN.LEADER_DIRECTED_CALLOUT' IN TYPEOF(ldc))) <= 1))) = 0 ; wr2 : NOT ('AUTOMOTIVE_DESIGN.DIMENSION_CURVE_DIRECTED_CALLOUT' IN TYPEOF( SELF)) OR (SIZEOF(QUERY(con <* SELF.contents | 'AUTOMOTIVE_DESIGN.PROJECTION_CURVE' IN TYPEOF(con))) <= 2); wr3 : SIZEOF(QUERY(rc <* USEDIN(SELF, 'AUTOMOTIVE_DESIGN.DRAUGHTING_CALLOUT_RELATIONSHIP.RELATING_DRAUGHTING_CALLOUT' ) | ('AUTOMOTIVE_DESIGN.' + 'DIMENSION_CALLOUT_RELATIONSHIP' IN TYPEOF( rc)) AND (rc.name = 'primary'))) <= 1; wr4 : SIZEOF(QUERY(rc <* USEDIN(SELF, 'AUTOMOTIVE_DESIGN.DRAUGHTING_CALLOUT_RELATIONSHIP.RELATING_DRAUGHTING_CALLOUT' ) | ('AUTOMOTIVE_DESIGN.' + 'DIMENSION_CALLOUT_RELATIONSHIP' IN TYPEOF( rc)) AND (rc.name = 'secondary'))) <= 1; wr5 : SIZEOF(QUERY(sec <* QUERY(rc <* USEDIN(SELF, 'AUTOMOTIVE_DESIGN.DRAUGHTING_CALLOUT_RELATIONSHIP.RELATING_DRAUGHTING_CALLOUT' ) | ('AUTOMOTIVE_DESIGN.' + 'DIMENSION_CALLOUT_RELATIONSHIP' IN TYPEOF( rc)) AND (rc.name = 'secondary')) | NOT (SIZEOF(QUERY(prim <* USEDIN(SELF, 'AUTOMOTIVE_DESIGN.DRAUGHTING_CALLOUT_RELATIONSHIP.RELATING_DRAUGHTING_CALLOUT' ) | ('AUTOMOTIVE_DESIGN.' + 'DIMENSION_CALLOUT_RELATIONSHIP' IN TYPEOF( prim)) AND (prim.name = 'primary'))) = 1))) = 0; END_ENTITY; -- 10303-506: aic_draughting_elements ENTITY draughting_model SUBTYPE OF (representation); UNIQUE ur1 : SELF\representation.name; WHERE wr1 : SIZEOF(QUERY(it <* SELF.items | NOT (SIZEOF([ 'AUTOMOTIVE_DESIGN.MAPPED_ITEM', 'AUTOMOTIVE_DESIGN.STYLED_ITEM', 'AUTOMOTIVE_DESIGN.AXIS2_PLACEMENT', 'AUTOMOTIVE_DESIGN.CAMERA_MODEL' ] * TYPEOF(it)) = 1))) = 0; wr2 : SIZEOF(QUERY(mi <* QUERY(it <* SELF.items | 'AUTOMOTIVE_DESIGN.MAPPED_ITEM' IN TYPEOF(it)) | NOT (SIZEOF([ 'AUTOMOTIVE_DESIGN.SHAPE_REPRESENTATION', 'AUTOMOTIVE_DESIGN.DRAUGHTING_MODEL'] * TYPEOF(mi\mapped_item. mapping_source.mapped_representation)) = 1))) = 0; wr3 : SIZEOF(QUERY(smi <* QUERY(si <* QUERY(it <* SELF.items | 'AUTOMOTIVE_DESIGN.STYLED_ITEM' IN TYPEOF(it)) | 'AUTOMOTIVE_DESIGN.MAPPED_ITEM' IN TYPEOF(si\styled_item.item)) | NOT (( 'AUTOMOTIVE_DESIGN.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 ( 'AUTOMOTIVE_DESIGN.CURVE_STYLE' IN TYPEOF(psa)))) = 1))) = 1)))) = 0; END_ENTITY; -- 10303-520: aic_associative_draughting_elements ENTITY draughting_model_item_association SUBTYPE OF (item_identified_representation_usage); SELF\item_identified_representation_usage.definition : shape_aspect; SELF\item_identified_representation_usage.used_representation : draughting_model; SELF\item_identified_representation_usage.identified_item : draughting_model_item_association_select; WHERE wr1 : NOT ('AUTOMOTIVE_DESIGN_LF.' + 'DATUM_FEATURE_CALLOUT' IN TYPEOF(SELF\ item_identified_representation_usage.identified_item)) OR ( 'AUTOMOTIVE_DESIGN_LF.' + 'DATUM_FEATURE' IN TYPEOF(SELF\ item_identified_representation_usage.definition)); wr2 : NOT ('AUTOMOTIVE_DESIGN_LF.' + 'DATUM_TARGET_CALLOUT' IN TYPEOF(SELF\ item_identified_representation_usage.identified_item)) OR ( 'AUTOMOTIVE_DESIGN_LF.' + 'DATUM_TARGET' IN TYPEOF(SELF\ item_identified_representation_usage.definition)); wr3 : NOT ('AUTOMOTIVE_DESIGN_LF.' + 'ANGULAR_DIMENSION' IN TYPEOF(SELF\ item_identified_representation_usage.identified_item)) OR ( 'AUTOMOTIVE_DESIGN_LF.' + 'ANGULAR_SIZE' IN TYPEOF(SELF\ item_identified_representation_usage.definition)); wr4 : NOT ('AUTOMOTIVE_DESIGN_LF.' + 'CURVE_DIMENSION' IN TYPEOF(SELF\ item_identified_representation_usage.identified_item)) OR ( 'AUTOMOTIVE_DESIGN_LF.' + 'DIMENSIONAL_SIZE' IN TYPEOF(SELF\ item_identified_representation_usage.definition)) AND (SELF\ item_identified_representation_usage.definition.name = 'curve dimension'); wr5 : NOT ('AUTOMOTIVE_DESIGN_LF.' + 'DIAMETER_DIMENSION' IN TYPEOF(SELF\ item_identified_representation_usage.identified_item)) OR ( 'AUTOMOTIVE_DESIGN_LF.' + 'DIMENSIONAL_SIZE' IN TYPEOF(SELF\ item_identified_representation_usage.definition)) AND (SELF\ item_identified_representation_usage.definition.name = 'diameter'); wr6 : NOT ('AUTOMOTIVE_DESIGN_LF.' + 'LINEAR_DIMENSION' IN TYPEOF(SELF\ item_identified_representation_usage.identified_item)) OR ( 'AUTOMOTIVE_DESIGN_LF.' + 'DIMENSIONAL_SIZE' IN TYPEOF(SELF\ item_identified_representation_usage.definition)) AND ((SELF\ item_identified_representation_usage.definition.name = 'heigth') OR (SELF\ item_identified_representation_usage.definition.name = 'length') OR (SELF\ item_identified_representation_usage.definition.name = 'width')); wr7 : NOT ('AUTOMOTIVE_DESIGN_LF.' + 'RADIUS_DIMENSION' IN TYPEOF(SELF\ item_identified_representation_usage.identified_item)) OR ( 'AUTOMOTIVE_DESIGN_LF.' + 'DIMENSIONAL_SIZE' IN TYPEOF(SELF\ item_identified_representation_usage.definition)) AND (SELF\ item_identified_representation_usage.definition.name = 'radius'); wr8 : NOT ('AUTOMOTIVE_DESIGN_LF.' + 'GEOMETRICAL_TOLERANCE_CALLOUT' IN TYPEOF(SELF\item_identified_representation_usage.identified_item)) OR ( 'AUTOMOTIVE_DESIGN_LF.' + 'GEOMETRIC_TOLERANCE' IN TYPEOF(SELF\ item_identified_representation_usage.definition)); wr9 : NOT ('AUTOMOTIVE_DESIGN_LF.' + 'DIMENSIONAL_SIZE' IN TYPEOF(SELF\ item_identified_representation_usage.definition)) OR ( 'AUTOMOTIVE_DESIGN_LF.' + 'DIMENSION_CALLOUT' IN TYPEOF(SELF\ item_identified_representation_usage.identified_item)) OR ( 'AUTOMOTIVE_DESIGN_LF.' + 'DIMENSION_CURVE_DIRECTED_CALLOUT' IN TYPEOF(SELF \item_identified_representation_usage.identified_item)) OR ( 'AUTOMOTIVE_DESIGN_LF.' + 'LEADER_DIRECTED_DIMENSION' IN TYPEOF(SELF\ item_identified_representation_usage.identified_item)) OR ( 'AUTOMOTIVE_DESIGN_LF.' + 'ORDINATE_DIMENSION' IN TYPEOF(SELF\ item_identified_representation_usage.identified_item)) OR ( 'AUTOMOTIVE_DESIGN_LF.' + 'STRUCTURED_DIMENSION_CALLOUT' IN TYPEOF(SELF\ item_identified_representation_usage.identified_item)); END_ENTITY; -- draughting_model_item_association: automotive_design ENTITY draughting_pre_defined_colour SUBTYPE OF (pre_defined_colour); WHERE wr1 : SELF.name IN ['red', 'green', 'blue', 'yellow', 'magenta', 'cyan', 'black', 'white']; END_ENTITY; -- 10303-46: presentation_resource_schema ENTITY draughting_pre_defined_curve_font SUBTYPE OF (pre_defined_curve_font); WHERE wr1 : SELF.name IN ['continuous', 'chain', 'chain double dash', 'dashed', 'dotted']; END_ENTITY; -- 10303-46: presentation_appearance_schema ENTITY draughting_pre_defined_text_font SUBTYPE OF (pre_defined_text_font); WHERE wr1 : SELF.name[1:8] = 'ISO 3098'; END_ENTITY; -- 10303-46: presentation_resource_schema 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; -- 10303-214: automotive_design ENTITY draughting_subfigure_representation SUBTYPE OF (symbol_representation); WHERE wr1 : SIZEOF(QUERY(item <* SELF\representation.items | NOT (SIZEOF([ 'AUTOMOTIVE_DESIGN.ANNOTATION_OCCURRENCE', 'AUTOMOTIVE_DESIGN.DRAUGHTING_CALLOUT', 'AUTOMOTIVE_DESIGN.AXIS2_PLACEMENT'] * TYPEOF(item)) = 1))) = 0; wr2 : SIZEOF(QUERY(item <* SELF\representation.items | SIZEOF([ 'AUTOMOTIVE_DESIGN.ANNOTATION_OCCURRENCE', 'AUTOMOTIVE_DESIGN.DRAUGHTING_CALLOUT'] * TYPEOF(item)) = 1)) >= 1; wr3 : SIZEOF(QUERY(srm <* QUERY(rm <* USEDIN(SELF, 'AUTOMOTIVE_DESIGN.REPRESENTATION_MAP.MAPPED_REPRESENTATION') | 'AUTOMOTIVE_DESIGN.SYMBOL_REPRESENTATION_MAP' IN TYPEOF(rm)) | NOT ( SIZEOF(QUERY(a_s <* QUERY(mi <* srm.map_usage | 'AUTOMOTIVE_DESIGN.ANNOTATION_SYMBOL' IN TYPEOF(mi)) | NOT (SIZEOF( QUERY(aso <* USEDIN(a_s, 'AUTOMOTIVE_DESIGN.STYLED_ITEM.ITEM') | NOT ( 'AUTOMOTIVE_DESIGN.ANNOTATION_SUBFIGURE_OCCURRENCE' IN TYPEOF(aso)))) = 0))) = 0))) > 0; wr4 : NOT acyclic_mapped_item_usage(SELF); wr5 : SIZEOF(SELF.context_of_items.representations_in_context) = 1; END_ENTITY; -- 10303-504: aic_draughting_annotation ENTITY draughting_symbol_representation SUBTYPE OF (symbol_representation); UNIQUE ur1 : SELF\representation.name; WHERE wr1 : SIZEOF(QUERY(item <* SELF\representation.items | NOT (SIZEOF(TYPEOF( item) * ['AUTOMOTIVE_DESIGN.ANNOTATION_CURVE_OCCURRENCE', 'AUTOMOTIVE_DESIGN.ANNOTATION_SYMBOL_OCCURRENCE', 'AUTOMOTIVE_DESIGN.ANNOTATION_FILL_AREA_OCCURRENCE', 'AUTOMOTIVE_DESIGN.ANNOTATION_TEXT_OCCURRENCE', 'AUTOMOTIVE_DESIGN.AXIS2_PLACEMENT']) = 1))) = 0; wr2 : SIZEOF(QUERY(item <* SELF\representation.items | SIZEOF(TYPEOF(item) * ['AUTOMOTIVE_DESIGN.ANNOTATION_CURVE_OCCURRENCE', 'AUTOMOTIVE_DESIGN.ANNOTATION_SYMBOL_OCCURRENCE', 'AUTOMOTIVE_DESIGN.ANNOTATION_FILL_AREA_OCCURRENCE', 'AUTOMOTIVE_DESIGN.ANNOTATION_TEXT_OCCURRENCE']) = 1)) >= 1; wr3 : SIZEOF(QUERY(item <* SELF\representation.items | 'AUTOMOTIVE_DESIGN.ANNOTATION_SUBFIGURE_OCCURRENCE' IN TYPEOF(item))) = 0; wr4 : SIZEOF(QUERY(srm <* QUERY(rm <* USEDIN(SELF, 'AUTOMOTIVE_DESIGN.REPRESENTATION_MAP.MAPPED_REPRESENTATION') | 'AUTOMOTIVE_DESIGN.SYMBOL_REPRESENTATION_MAP' IN TYPEOF(rm)) | NOT ( SIZEOF(QUERY(a_s <* QUERY(mi <* srm.map_usage | 'AUTOMOTIVE_DESIGN.ANNOTATION_SYMBOL' IN TYPEOF(mi)) | NOT (SIZEOF( QUERY(aso <* USEDIN(a_s, 'AUTOMOTIVE_DESIGN.STYLED_ITEM.ITEM') | NOT ( 'AUTOMOTIVE_DESIGN.ANNOTATION_SYMBOL_OCCURRENCE' IN TYPEOF(aso)))) = 0)) ) = 0))) > 0; wr5 : NOT acyclic_mapped_item_usage(SELF); wr6 : SIZEOF(SELF.context_of_items.representations_in_context) = 1; END_ENTITY; -- 10303-504: aic_draughting_annotation ENTITY draughting_text_literal_with_delineation SUBTYPE OF (text_literal_with_delineation); WHERE wr1 : SELF.delineation IN ['underline', 'overline']; END_ENTITY; -- 10303-504: aic_draughting_annotation ENTITY draughting_title; items : SET [1:?] OF draughting_titled_item; language : label; contents : text; END_ENTITY; -- 10303-101: drawing_definition_schema ENTITY drawing_definition; drawing_number : identifier; drawing_type : OPTIONAL label; END_ENTITY; -- 10303-101: drawing_definition_schema ENTITY drawing_revision SUBTYPE OF (presentation_set); revision_identifier : identifier; drawing_identifier : drawing_definition; intended_scale : OPTIONAL text; UNIQUE ur1 : revision_identifier, drawing_identifier; END_ENTITY; -- 10303-101: drawing_definition_schema ENTITY drawing_revision_sequence; predecessor : drawing_revision; successor : drawing_revision; WHERE wr1 : predecessor :<>: successor; END_ENTITY; -- 10303-101: drawing_definition_schema ENTITY drawing_sheet_layout SUBTYPE OF (draughting_symbol_representation); END_ENTITY; -- 10303-214: automotive_design ENTITY drawing_sheet_revision SUBTYPE OF (presentation_area); revision_identifier : identifier; WHERE wr1 : SIZEOF(QUERY(item <* SELF\representation.items | ( 'AUTOMOTIVE_DESIGN.MAPPED_ITEM' IN TYPEOF(item)) AND ( 'AUTOMOTIVE_DESIGN.DRAWING_SHEET_REVISION' IN TYPEOF(item\mapped_item. mapping_source.mapped_representation)))) = 0; END_ENTITY; -- 10303-101: drawing_definition_schema ENTITY drawing_sheet_revision_usage SUBTYPE OF (area_in_set); sheet_number : identifier; UNIQUE ur1 : sheet_number, in_set; WHERE wr1 : ('AUTOMOTIVE_DESIGN.DRAWING_SHEET_REVISION' IN TYPEOF(SELF\ area_in_set.area)) AND ('AUTOMOTIVE_DESIGN.DRAWING_REVISION' IN TYPEOF( SELF\area_in_set.in_set)); END_ENTITY; -- 10303-101: drawing_definition_schema ENTITY edge SUPERTYPE OF (ONEOF (edge_curve, oriented_edge, subedge)) SUBTYPE OF (topological_representation_item); edge_start : vertex; edge_end : vertex; END_ENTITY; -- 10303-42: topology_schema ENTITY edge_based_wireframe_model SUBTYPE OF (geometric_representation_item); ebwm_boundary : SET [1:?] OF connected_edge_set; END_ENTITY; -- 10303-42: geometric_model_schema ENTITY edge_based_wireframe_shape_representation SUBTYPE OF (shape_representation); WHERE wr1 : SIZEOF(QUERY(it <* SELF.items | NOT (SIZEOF([ 'AUTOMOTIVE_DESIGN.EDGE_BASED_WIREFRAME_MODEL', 'AUTOMOTIVE_DESIGN.MAPPED_ITEM', 'AUTOMOTIVE_DESIGN.AXIS2_PLACEMENT_3D'] * TYPEOF(it)) = 1))) = 0; wr2 : SIZEOF(QUERY(it <* SELF.items | SIZEOF([ 'AUTOMOTIVE_DESIGN.EDGE_BASED_WIREFRAME_MODEL', 'AUTOMOTIVE_DESIGN.MAPPED_ITEM'] * TYPEOF(it)) = 1)) >= 1; wr3 : SIZEOF(QUERY(ebwm <* QUERY(it <* SELF.items | 'AUTOMOTIVE_DESIGN.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 ('AUTOMOTIVE_DESIGN.EDGE_CURVE' IN TYPEOF(edges)))) = 0))) = 0))) = 0; wr4 : SIZEOF(QUERY(ebwm <* QUERY(it <* SELF.items | 'AUTOMOTIVE_DESIGN.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 | 'AUTOMOTIVE_DESIGN.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 | 'AUTOMOTIVE_DESIGN.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 (( 'AUTOMOTIVE_DESIGN.VERTEX_POINT' IN TYPEOF(edges.edge_start)) AND ( 'AUTOMOTIVE_DESIGN.VERTEX_POINT' IN TYPEOF(edges.edge_end))))) = 0))) = 0))) = 0; wr6 : SIZEOF(QUERY(ebwm <* QUERY(it <* SELF.items | 'AUTOMOTIVE_DESIGN.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 | 'AUTOMOTIVE_DESIGN.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 | 'AUTOMOTIVE_DESIGN.MAPPED_ITEM' IN TYPEOF(it)) | NOT ( 'AUTOMOTIVE_DESIGN.' + '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; -- 10303-501: aic_edge_based_wireframe ENTITY edge_curve SUBTYPE OF (edge, geometric_representation_item); edge_geometry : curve; same_sense : BOOLEAN; END_ENTITY; -- 10303-42: topology_schema ENTITY edge_loop SUBTYPE OF (loop, path); DERIVE ne : INTEGER := SIZEOF(SELF\path.edge_list); WHERE wr1 : SELF\path.edge_list[1].edge_start :=: SELF\path.edge_list[ne].edge_end; END_ENTITY; -- 10303-42: topology_schema ENTITY edge_round SUBTYPE OF (transition_feature); WHERE wr1 : (SELF.description <> 'constant radius') XOR (SIZEOF(QUERY(pdr <* get_shape_aspect_property_definition_representations(SELF) | 'AUTOMOTIVE_DESIGN.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation))) = 1); wr2 : (SELF.description <> 'constant radius') OR (SIZEOF(QUERY(pdr <* get_shape_aspect_property_definition_representations(SELF) | ( 'AUTOMOTIVE_DESIGN.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation)) AND {1 <= SIZEOF(pdr.used_representation.items) <= 3})) = 1); wr3 : (SELF.description <> 'constant radius') OR (SIZEOF(QUERY(pdr <* get_shape_aspect_property_definition_representations(SELF) | ( 'AUTOMOTIVE_DESIGN.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation)) AND (SIZEOF(QUERY(i <* pdr.used_representation. items | NOT (i.name IN ['radius', 'first offset', 'second offset']))) > 0)) ) = 0); wr4 : (SELF.description <> 'constant radius') OR (SIZEOF(QUERY(pdr <* get_shape_aspect_property_definition_representations(SELF) | ( 'AUTOMOTIVE_DESIGN.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation)) AND (SIZEOF(QUERY(i <* pdr.used_representation. items | (i.name = 'radius') AND (SIZEOF(['AUTOMOTIVE_DESIGN.' + 'MEASURE_REPRESENTATION_ITEM', 'AUTOMOTIVE_DESIGN.' + 'LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(i)) = 2))) = 1))) = 1); wr5 : (SELF.description <> 'constant radius') OR (SIZEOF(QUERY(pdr <* get_shape_aspect_property_definition_representations(SELF) | ( 'AUTOMOTIVE_DESIGN.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation)) AND (SIZEOF(QUERY(i <* pdr.used_representation. items | (i.name = 'first offset') AND (SIZEOF(['AUTOMOTIVE_DESIGN.' + 'MEASURE_REPRESENTATION_ITEM', 'AUTOMOTIVE_DESIGN.' + 'LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(i)) = 2))) <= 1))) = 1); wr6 : (SELF.description <> 'constant radius') OR (SIZEOF(QUERY(pdr <* get_shape_aspect_property_definition_representations(SELF) | ( 'AUTOMOTIVE_DESIGN.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation)) AND (SIZEOF(QUERY(i <* pdr.used_representation. items | (i.name = 'second offset') AND (SIZEOF(['AUTOMOTIVE_DESIGN.' + 'MEASURE_REPRESENTATION_ITEM', 'AUTOMOTIVE_DESIGN.' + 'LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(i)) = 2))) <= 1))) = 1); wr7 : SIZEOF(QUERY(pdr <* get_shape_aspect_property_definition_representations(SELF) | ( 'AUTOMOTIVE_DESIGN.' + 'FACE_SHAPE_REPRESENTATION' IN TYPEOF(pdr. used_representation)) AND (pdr.used_representation.name = 'first face shape'))) = 1; wr8 : SIZEOF(QUERY(pdr <* get_shape_aspect_property_definition_representations(SELF) | ( 'AUTOMOTIVE_DESIGN.' + 'FACE_SHAPE_REPRESENTATION' IN TYPEOF(pdr. used_representation)) AND (pdr.used_representation.name = 'second face shape'))) = 1; wr9 : SIZEOF(QUERY(pdr <* get_shape_aspect_property_definition_representations(SELF) | ( 'AUTOMOTIVE_DESIGN.' + 'FACE_SHAPE_REPRESENTATION' IN TYPEOF(pdr. used_representation)) AND (pdr.used_representation.name = 'edge round face' ))) = 1; END_ENTITY; -- 10303-214: automotive_design 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, 'AUTOMOTIVE_DESIGN.NAME_ATTRIBUTE.NAMED_ITEM')) <= 1; wr2 : SIZEOF(USEDIN(SELF, 'AUTOMOTIVE_DESIGN.DESCRIPTION_ATTRIBUTE.DESCRIBED_ITEM')) <= 1; END_ENTITY; -- 10303-41: effectivity_schema ENTITY effectivity_assignment ABSTRACT SUPERTYPE; assigned_effectivity : effectivity; DERIVE role : object_role := get_role(SELF); WHERE wr1 : SIZEOF(USEDIN(SELF, 'AUTOMOTIVE_DESIGN.ROLE_ASSOCIATION.ITEM_WITH_ROLE')) <= 1; END_ENTITY; -- 10303-41: management_resources_schema ENTITY effectivity_context_assignment ABSTRACT SUPERTYPE; assigned_effectivity_assignment : effectivity_assignment; role : effectivity_context_role; END_ENTITY; -- 10303-41: management_resources_schema ENTITY effectivity_context_role; name : label; description : OPTIONAL text; END_ENTITY; -- 10303-41: management_resources_schema ENTITY effectivity_relationship; name : label; description : OPTIONAL text; related_effectivity : effectivity; relating_effectivity : effectivity; END_ENTITY; -- 10303-41: effectivity_schema ENTITY electric_current_measure_with_unit SUBTYPE OF (measure_with_unit); WHERE wr1 : 'AUTOMOTIVE_DESIGN.ELECTRIC_CURRENT_UNIT' IN TYPEOF(SELF\ measure_with_unit.unit_component); END_ENTITY; -- 10303-41: measure_schema ENTITY electric_current_unit SUBTYPE OF (named_unit); WHERE wr1 : (SELF\named_unit.dimensions.length_exponent = 0.000000) AND (SELF\ named_unit.dimensions.mass_exponent = 0.000000) AND (SELF\named_unit .dimensions.time_exponent = 0.000000) AND (SELF\named_unit.dimensions. electric_current_exponent = 1.000000) AND (SELF\named_unit.dimensions. thermodynamic_temperature_exponent = 0.000000) AND (SELF\named_unit. dimensions.amount_of_substance_exponent = 0.000000) AND (SELF\named_unit. dimensions.luminous_intensity_exponent = 0.000000); END_ENTITY; -- 10303-41: measure_schema ENTITY element_delivery SUBTYPE OF (action); WHERE wr1 : (SIZEOF(QUERY(aa <* USEDIN(SELF, 'AUTOMOTIVE_DESIGN.ACTION_ASSIGNMENT.ASSIGNED_ACTION') | 'AUTOMOTIVE_DESIGN.' + 'APPLIED_ACTION_ASSIGNMENT' IN TYPEOF(aa))) = 1) AND (SIZEOF(QUERY(aaa <* USEDIN(SELF, 'AUTOMOTIVE_DESIGN.ACTION_ASSIGNMENT.ASSIGNED_ACTION') | ( 'AUTOMOTIVE_DESIGN.' + 'APPLIED_ACTION_ASSIGNMENT' IN TYPEOF(aaa)) AND ( aaa.role.name = 'deliverable element') AND (SIZEOF(aaa.items) = 1) AND ( SIZEOF(QUERY(i <* aaa.items | ('AUTOMOTIVE_DESIGN.' + 'APPLIED_ACTION_ASSIGNMENT' IN TYPEOF(i)) AND (SIZEOF(i\ applied_action_assignment.items) = 1) AND (SIZEOF(QUERY(i1 <* aaa\ applied_action_assignment.items | ('AUTOMOTIVE_DESIGN.' + 'CONFIGURATION_ITEM' IN TYPEOF(i1)) OR ('AUTOMOTIVE_DESIGN.' + 'PRODUCT_DEFINITION' IN TYPEOF(i1)) AND (i1\product_definition. frame_of_reference.name = 'physical occurrence') OR ( 'AUTOMOTIVE_DESIGN.' + 'PRODUCT_DEFINITION_FORMATION' IN TYPEOF(i1)) AND (SIZEOF(QUERY(prpc <* USEDIN(i1, 'AUTOMOTIVE_DESIGN.PRODUCT_RELATED_PRODUCT_CATEGORY.PRODUCTS') | prpc\ product_category.name IN ['part', 'raw material', 'tool'])) = 1))) = 1))) = 1))) = 1); wr2 : (SIZEOF(USEDIN(SELF, 'AUTOMOTIVE_DESIGN.APPLIED_ORGANIZATION_ASSIGNMENT.ITEMS')) = 1) AND ( SIZEOF(QUERY(aoa <* USEDIN(SELF, 'AUTOMOTIVE_DESIGN.APPLIED_ORGANIZATION_ASSIGNMENT.ITEMS') | aoa.role. name = 'destination')) = 1); wr3 : (SIZEOF(USEDIN(SELF, 'AUTOMOTIVE_DESIGN.ACTION_PROPERTY.DEFINITION') ) = 1) AND (SIZEOF(QUERY(ap <* USEDIN(SELF, 'AUTOMOTIVE_DESIGN.ACTION_PROPERTY.DEFINITION') | SIZEOF(USEDIN(ap, 'AUTOMOTIVE_DESIGN.ACTION_PROPERTY_REPRESENTATION.PROPERTY')) = 1)) = 1) AND (SIZEOF(QUERY(ap <* USEDIN(SELF, 'AUTOMOTIVE_DESIGN.ACTION_PROPERTY.DEFINITION') | SIZEOF(QUERY(apr <* USEDIN(ap, 'AUTOMOTIVE_DESIGN.ACTION_PROPERTY_REPRESENTATION.PROPERTY') | (apr.representation.name = 'delivery quantity') AND (SIZEOF(apr. representation.items) = 1) AND (SIZEOF(QUERY(i <* apr.representation.i | SIZEOF(['AUTOMOTIVE_DESIGN.' + 'MEASURE_REPRESENTATION_ITEM', 'AUTOMOTIVE_DESIGN.' + 'VALUE_RANGE'] * TYPEOF(i)) = 1)) = 1))) = 1)) = 1); wr4 : SIZEOF(USEDIN(SELF, 'AUTOMOTIVE_DESIGN.ACTION_RELATIONSHIP.RELATING_ACTION')) + SIZEOF( USEDIN(SELF, 'AUTOMOTIVE_DESIGN.ACTION_RELATIONSHIP.RELATED_ACTION')) = 0; END_ENTITY; -- 10303-214: automotive_design ENTITY elementary_surface SUPERTYPE OF (ONEOF (plane, cylindrical_surface, conical_surface, spherical_surface, toroidal_surface)) SUBTYPE OF (surface); position : axis2_placement_3d; END_ENTITY; -- 10303-42: geometry_schema ENTITY ellipse SUBTYPE OF (conic); semi_axis_1 : positive_length_measure; semi_axis_2 : positive_length_measure; END_ENTITY; -- 10303-42: geometry_schema ENTITY environment; syntactic_representation : generic_variable; semantics : variable_semantics; END_ENTITY; (* declared in: iso13584_generic_expressions_schema *) ENTITY equals_expression SUBTYPE OF (binary_boolean_expression); END_ENTITY; (* declared in: iso13584_expressions_schema *) ENTITY evaluated_degenerate_pcurve SUBTYPE OF (degenerate_pcurve); equivalent_point : cartesian_point; END_ENTITY; -- 10303-42: geometry_schema ENTITY event_occurrence; id : identifier; name : label; description : OPTIONAL text; END_ENTITY; -- 10303-41: date_time_schema ENTITY event_occurrence_assignment ABSTRACT SUPERTYPE; assigned_event_occurrence : event_occurrence; role : event_occurrence_role; END_ENTITY; -- 10303-41: management_resources_schema ENTITY event_occurrence_context_assignment ABSTRACT SUPERTYPE; assigned_event_occurrence_assignment : event_occurrence_assignment; role : event_occurrence_context_role; END_ENTITY; -- 10303-41: management_resources_schema ENTITY event_occurrence_context_role; name : label; description : OPTIONAL text; END_ENTITY; -- 10303-41: date_time_schema ENTITY event_occurrence_role; name : label; description : OPTIONAL text; END_ENTITY; -- 10303-41: date_time_schema ENTITY exclusive_product_concept_feature_category SUBTYPE OF (product_concept_feature_category); END_ENTITY; -- 10303-214: automotive_design ENTITY executed_action SUBTYPE OF (action); END_ENTITY; -- 10303-41: action_schema ENTITY exp_function SUBTYPE OF (unary_function_call); END_ENTITY; (* declared in: iso13584_expressions_schema *) ENTITY expression ABSTRACT SUPERTYPE OF (ONEOF (numeric_expression, boolean_expression, string_expression)) SUBTYPE OF (generic_expression); END_ENTITY; (* declared in: iso13584_expressions_schema *) ENTITY expression_conversion_based_unit SUBTYPE OF (context_dependent_unit, variable_semantics); INVERSE associated_variable_environment : environment FOR semantics; END_ENTITY; -- 10303-214: automotive_design ENTITY extension SUBTYPE OF (derived_shape_aspect); WHERE wr1 : SIZEOF(SELF\derived_shape_aspect.deriving_relationships) = 1; END_ENTITY; -- 10303-47: shape_aspect_definition_schema ENTITY external_identification_assignment ABSTRACT SUPERTYPE SUBTYPE OF (identification_assignment); source : external_source; END_ENTITY; -- 10303-41: management_resources_schema ENTITY external_source; source_id : source_item; DERIVE description : text := get_description_value(SELF); WHERE wr1 : SIZEOF(USEDIN(SELF, 'AUTOMOTIVE_DESIGN.DESCRIPTION_ATTRIBUTE.DESCRIBED_ITEM')) <= 1; END_ENTITY; -- 10303-41: external_reference_schema ENTITY externally_defined_character_glyph SUBTYPE OF (externally_defined_item); END_ENTITY; -- 10303-46: presentation_definition_schema ENTITY externally_defined_class SUBTYPE OF (class, externally_defined_item); END_ENTITY; -- 10303-214: automotive_design ENTITY externally_defined_curve_font SUBTYPE OF (externally_defined_item); END_ENTITY; -- 10303-46: presentation_appearance_schema 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, 'AUTOMOTIVE_DESIGN.APPLIED_DOCUMENT_REFERENCE.ITEMS') | adr. assigned_document.description = 'external size dimension specification')); END_ENTITY; -- 10303-214: automotive_design ENTITY externally_defined_feature_definition SUBTYPE OF (feature_definition, externally_defined_item); WHERE wr1 : (SELF\externally_defined_item.item_id = 'external thread') AND (SELF\ externally_defined_item.source.source_id = 'external feature specification' ); wr2 : (SIZEOF(USEDIN(SELF, 'AUTOMOTIVE_DESIGN.APPLIED_CLASSIFICATION_ASSIGNMENT.ITEMS')) = 1) OR ( SIZEOF(USEDIN(SELF, 'AUTOMOTIVE_DESIGN.APPLIED_DOCUMENT_REFERENCE.ITEMS' )) + SIZEOF(USEDIN(SELF, 'AUTOMOTIVE_DESIGN.APPLIED_DOCUMENT_USAGE_CONSTRAINT_ASSIGNMENT.ITEMS')) = 1); wr3 : SIZEOF(QUERY(pdr <* get_property_definition_representations(SELF) | ( 'AUTOMOTIVE_DESIGN.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation)) AND NOT ({6 <= SIZEOF(pdr.used_representation. items) <= 7}))) = 0; wr4 : SIZEOF(QUERY(pdr <* get_property_definition_representations(SELF) | ( 'AUTOMOTIVE_DESIGN.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation)) AND (SIZEOF(QUERY(i <* pdr.used_representation. items | ('AUTOMOTIVE_DESIGN.' + 'DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF(i)) AND (i.name = 'thread side') AND (i\ descriptive_representation_item.description IN ['internal', 'external']))) = 1))) = 1; wr5 : SIZEOF(QUERY(pdr <* get_property_definition_representations(SELF) | ( 'AUTOMOTIVE_DESIGN.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation)) AND (SIZEOF(QUERY(i <* pdr.used_representation. items | (SIZEOF(['AUTOMOTIVE_DESIGN.' + 'MEASURE_REPRESENTATION_ITEM', 'AUTOMOTIVE_DESIGN.' + 'LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(i)) = 2) AND (i.name = 'major diameter'))) = 1))) = 1; wr6 : SIZEOF(QUERY(pdr <* get_property_definition_representations(SELF) | ( 'AUTOMOTIVE_DESIGN.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation)) AND (SIZEOF(QUERY(i <* pdr.used_representation. items | (SIZEOF(['AUTOMOTIVE_DESIGN.' + 'MEASURE_REPRESENTATION_ITEM', 'AUTOMOTIVE_DESIGN.' + 'RATIO_MEASURE_WITH_UNIT'] * TYPEOF(i)) = 2) AND (i.name = 'number of threads'))) = 1))) = 1; wr7 : SIZEOF(QUERY(pdr <* get_property_definition_representations(SELF) | ( 'AUTOMOTIVE_DESIGN.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation)) AND (SIZEOF(QUERY(i <* pdr.used_representation. items | ('AUTOMOTIVE_DESIGN.' + 'DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF(i)) AND (i.name = 'fit class'))) = 1))) = 1; wr8 : SIZEOF(QUERY(pdr <* get_property_definition_representations(SELF) | ( 'AUTOMOTIVE_DESIGN.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation)) AND (SIZEOF(QUERY(i <* pdr.used_representation. items | ('AUTOMOTIVE_DESIGN.' + 'DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF(i)) AND (i.name = 'form'))) = 1))) = 1; wr9 : SIZEOF(QUERY(pdr <* get_property_definition_representations(SELF) | ( 'AUTOMOTIVE_DESIGN.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation)) AND (SIZEOF(QUERY(i <* pdr.used_representation. items | ('AUTOMOTIVE_DESIGN.' + 'DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF(i)) AND (i.name = 'hand') AND (i\descriptive_representation_item. description IN ['left hand', 'right hand']))) = 1))) = 1; wr10 : SIZEOF(QUERY(pdr <* get_property_definition_representations(SELF) | ( 'AUTOMOTIVE_DESIGN.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation)) AND (SIZEOF(QUERY(i <* pdr.used_representation. items | ('AUTOMOTIVE_DESIGN.' + 'DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF(i)) AND (i.name = 'qualifier'))) = 1))) <= 1; wr11 : SIZEOF(QUERY(pdr <* get_property_definition_representations(SELF) | ( 'AUTOMOTIVE_DESIGN.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation)) AND (SIZEOF(QUERY(i <* pdr.used_representation. items | NOT (i.name IN ['thread side', 'major diameter', 'number of threads', 'fit class', 'form', 'hand', 'qualifier']))) > 0))) = 0; END_ENTITY; -- 10303-214: automotive_design ENTITY externally_defined_general_property SUBTYPE OF (general_property, externally_defined_item); END_ENTITY; -- 10303-214: automotive_design ENTITY externally_defined_hatch_style SUBTYPE OF (externally_defined_item, geometric_representation_item); END_ENTITY; -- 10303-46: presentation_appearance_schema ENTITY externally_defined_item; item_id : source_item; source : external_source; END_ENTITY; -- 10303-41: external_reference_schema ENTITY externally_defined_item_relationship; name : label; description : OPTIONAL text; relating_item : externally_defined_item; related_item : externally_defined_item; END_ENTITY; -- 10303-41: external_reference_schema ENTITY externally_defined_style SUBTYPE OF (externally_defined_item); END_ENTITY; -- 10303-46: presentation_appearance_schema ENTITY externally_defined_symbol SUBTYPE OF (externally_defined_item); END_ENTITY; -- 10303-46: presentation_definition_schema ENTITY externally_defined_text_font SUBTYPE OF (externally_defined_item); END_ENTITY; -- 10303-46: presentation_resource_schema ENTITY externally_defined_tile_style SUBTYPE OF (externally_defined_item, geometric_representation_item); END_ENTITY; -- 10303-46: presentation_appearance_schema ENTITY extruded_area_solid SUBTYPE OF (swept_area_solid); extruded_direction : direction; depth : positive_length_measure; WHERE wr1 : dot_product(SELF\swept_area_solid.swept_area.basis_surface\ elementary_surface.position.p[3], extruded_direction) <> 0.0; END_ENTITY; (* declared in: geometric_model_schema *) ENTITY extruded_face_solid SUBTYPE OF (swept_face_solid); extruded_direction : direction; depth : positive_length_measure; WHERE wr1 : dot_product(SELF\swept_face_solid.swept_face.face_geometry\ elementary_surface.position.p[3], extruded_direction) <> 0.0; END_ENTITY; -- 10303-42: geometric_model_schema ENTITY face SUPERTYPE OF (ONEOF (face_surface, subface, oriented_face)) SUBTYPE OF (topological_representation_item); bounds : SET [1:?] OF face_bound; WHERE wr1 : NOT mixed_loop_type_set(list_to_set(list_face_loops(SELF))); wr2 : SIZEOF(QUERY(temp <* bounds | 'AUTOMOTIVE_DESIGN.FACE_OUTER_BOUND' IN TYPEOF(temp))) <= 1; END_ENTITY; -- 10303-42: topology_schema ENTITY face_based_surface_model SUBTYPE OF (geometric_representation_item); fbsm_faces : SET [1:?] OF connected_face_set; END_ENTITY; -- 10303-42: geometric_model_schema ENTITY face_bound SUBTYPE OF (topological_representation_item); bound : loop; orientation : BOOLEAN; END_ENTITY; -- 10303-42: topology_schema ENTITY face_outer_bound SUBTYPE OF (face_bound); END_ENTITY; -- 10303-42: topology_schema ENTITY face_shape_representation SUBTYPE OF (shape_representation); WHERE wr1 : SIZEOF(SELF.items) = 1; wr2 : SIZEOF(QUERY(i <* SELF.items | SIZEOF(['AUTOMOTIVE_DESIGN.' + 'FACE' , 'AUTOMOTIVE_DESIGN.' + 'CLOSED_SHELL', 'AUTOMOTIVE_DESIGN.' + 'OPEN_SHELL'] * TYPEOF(i)) = 1)) = 1; END_ENTITY; -- 10303-214: automotive_design ENTITY face_surface SUBTYPE OF (face, geometric_representation_item); face_geometry : surface; same_sense : BOOLEAN; WHERE wr1 : NOT ('AUTOMOTIVE_DESIGN.ORIENTED_SURFACE' IN TYPEOF(face_geometry)); END_ENTITY; -- 10303-42: topology_schema ENTITY faceted_brep SUBTYPE OF (manifold_solid_brep); END_ENTITY; -- 10303-42: geometric_model_schema ENTITY faceted_brep_shape_representation SUBTYPE OF (shape_representation); WHERE wr1 : SIZEOF(QUERY(it <* items | NOT (SIZEOF([ 'AUTOMOTIVE_DESIGN.FACETED_BREP', 'AUTOMOTIVE_DESIGN.MAPPED_ITEM', 'AUTOMOTIVE_DESIGN.AXIS2_PLACEMENT_3D'] * TYPEOF(it)) = 1))) = 0; wr2 : SIZEOF(QUERY(it <* items | SIZEOF(['AUTOMOTIVE_DESIGN.FACETED_BREP' , 'AUTOMOTIVE_DESIGN.MAPPED_ITEM'] * TYPEOF(it)) = 1)) > 0; wr3 : SIZEOF(QUERY(fbrep <* QUERY(it <* items | 'AUTOMOTIVE_DESIGN.FACETED_BREP' IN TYPEOF(it)) | NOT (SIZEOF(QUERY(csh <* msb_shells(fbrep) | NOT (SIZEOF(QUERY(fcs <* csh\connected_face_set. cfs_faces | NOT (('AUTOMOTIVE_DESIGN.FACE_SURFACE' IN TYPEOF(fcs)) AND ( 'AUTOMOTIVE_DESIGN.PLANE' IN TYPEOF(fcs\face_surface.face_geometry)) AND ('AUTOMOTIVE_DESIGN.CARTESIAN_POINT' IN TYPEOF(fcs\face_surface. face_geometry\elementary_surface.position.location))))) = 0))) = 0))) = 0; wr4 : SIZEOF(QUERY(fbrep <* QUERY(it <* items | 'AUTOMOTIVE_DESIGN.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 | 'AUTOMOTIVE_DESIGN.FACE_OUTER_BOUND' IN TYPEOF(bnds))) = 1))) = 0))) = 0 ))) = 0; wr5 : SIZEOF(QUERY(msb <* QUERY(it <* items | 'AUTOMOTIVE_DESIGN.MANIFOLD_SOLID_BREP' IN TYPEOF(it)) | 'AUTOMOTIVE_DESIGN.ORIENTED_CLOSED_SHELL' IN TYPEOF(msb\ manifold_solid_brep.outer))) = 0; wr6 : SIZEOF(QUERY(brv <* QUERY(it <* items | 'AUTOMOTIVE_DESIGN.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 | 'AUTOMOTIVE_DESIGN.MAPPED_ITEM' IN TYPEOF(it)) | NOT ( 'AUTOMOTIVE_DESIGN.FACETED_BREP_SHAPE_REPRESENTATION' IN TYPEOF(mi\ mapped_item.mapping_source.mapped_representation)))) = 0; END_ENTITY; -- 10303-512: aic_faceted_brep ENTITY feature_component_definition SUBTYPE OF (characterized_object); WHERE wr1 : SIZEOF(get_shape_aspects(SELF)) = 1; END_ENTITY; -- 10303-214: automotive_design ENTITY feature_component_relationship SUBTYPE OF (shape_aspect_relationship); WHERE wr1 : ('AUTOMOTIVE_DESIGN.' + 'TRANSITION_FEATURE' IN TYPEOF(SELF. related_shape_aspect)) OR (SIZEOF(['AUTOMOTIVE_DESIGN.' + 'FEATURE_DEFINITION', 'AUTOMOTIVE_DESIGN.' + 'FEATURE_COMPONENT_DEFINITION'] * TYPEOF(SELF.related_shape_aspect.of_shape .definition)) = 1); END_ENTITY; -- 10303-214: automotive_design ENTITY feature_definition SUBTYPE OF (characterized_object); WHERE wr1 : SIZEOF(QUERY(pdr <* get_property_definition_representations(SELF) | 'AUTOMOTIVE_DESIGN.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation))) <= 1; wr2 : (SIZEOF(QUERY(pdr <* get_property_definition_representations(SELF) | 'AUTOMOTIVE_DESIGN.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation))) = 0) OR (SIZEOF(QUERY(pdr <* get_property_definition_representations(SELF) | ('AUTOMOTIVE_DESIGN.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF(QUERY(i <* pdr.used_representation.items | (i.name = 'orientation') AND ('AUTOMOTIVE_DESIGN.' + 'PLACEMENT' IN TYPEOF(i)))) <= 1))) = 1); wr3 : NOT ((SIZEOF(['AUTOMOTIVE_DESIGN.' + 'BARRING_HOLE', 'AUTOMOTIVE_DESIGN.' + 'BEAD', 'AUTOMOTIVE_DESIGN.' + 'HOLE_IN_PANEL' , 'AUTOMOTIVE_DESIGN.' + 'FEATURE_IN_PANEL', 'AUTOMOTIVE_DESIGN.' + 'JOGGLE', 'AUTOMOTIVE_DESIGN.' + 'LOCATOR'] * TYPEOF(SELF)) = 1) OR ( 'AUTOMOTIVE_DESIGN.' + 'COMPOUND_FEATURE' IN TYPEOF(SELF)) AND (SIZEOF( QUERY(sa <* get_shape_aspects(SELF) | sa.name = 'compound feature in panel' )) = 1)) OR (SIZEOF(QUERY(pdr <* get_property_definition_representations( SELF) | 'AUTOMOTIVE_DESIGN.' + 'DIRECTION_SHAPE_REPRESENTATION' IN TYPEOF(pdr.used_representation))) <= 1) AND ((SIZEOF(QUERY(pdr <* get_property_definition_representations(SELF) | 'AUTOMOTIVE_DESIGN.' + 'DIRECTION_SHAPE_REPRESENTATION' IN TYPEOF(pdr.used_representation))) = 0) OR (SIZEOF(QUERY(pdr <* get_property_definition_representations(SELF) | ( 'AUTOMOTIVE_DESIGN.' + 'DIRECTION_SHAPE_REPRESENTATION' IN TYPEOF(pdr. used_representation)) AND (pdr.used_representation.name = 'punch direction' ))) = 1)); wr4 : (SIZEOF(QUERY(pdr <* get_property_definition_representations(SELF) | 'AUTOMOTIVE_DESIGN.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation))) = 0) OR (SIZEOF(QUERY(pdr <* get_property_definition_representations(SELF) | ('AUTOMOTIVE_DESIGN.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND ('AUTOMOTIVE_DESIGN.' + 'GEOMETRIC_REPRESENTATION_CONTEXT' IN TYPEOF (pdr.used_representation.context_of_items)) AND (pdr.used_representation. context_of_items\geometric_representation_context. coordinate_space_dimension = 3))) = 1); wr5 : NOT ((SIZEOF(['AUTOMOTIVE_DESIGN.' + 'BOSS', 'AUTOMOTIVE_DESIGN.' + 'RIB', 'AUTOMOTIVE_DESIGN.' + 'SLOT', 'AUTOMOTIVE_DESIGN.' + 'ROUND_HOLE', 'AUTOMOTIVE_DESIGN.' + 'POCKET'] * TYPEOF(SELF)) = 1) OR ( 'AUTOMOTIVE_DESIGN.' + 'COMPOUND_FEATURE' IN TYPEOF(SELF)) AND (SIZEOF( QUERY(sa <* get_shape_aspects(SELF) | ('AUTOMOTIVE_DESIGN.' + 'COMPOSITE_SHAPE_ASPECT' IN TYPEOF(sa)) AND (sa.name = 'compound feature in solid'))) = 1)) OR (SIZEOF(QUERY(pdr <* get_property_definition_representations(SELF) | 'AUTOMOTIVE_DESIGN.' + 'DIRECTION_SHAPE_REPRESENTATION' IN TYPEOF(pdr.used_representation))) = 1) AND (SIZEOF(QUERY(pdr <* get_property_definition_representations(SELF) | ( 'AUTOMOTIVE_DESIGN.' + 'DIRECTION_SHAPE_REPRESENTATION' IN TYPEOF(pdr. used_representation)) AND (SIZEOF(QUERY(i <* pdr.used_representation.items | (i.name = 'orientation') AND ('AUTOMOTIVE_DESIGN.' + 'PLACEMENT' IN TYPEOF(i)))) = 1))) = 1); wr6 : SIZEOF(['AUTOMOTIVE_DESIGN.' + 'BEAD', 'AUTOMOTIVE_DESIGN.' + 'BARRING_HOLE', 'AUTOMOTIVE_DESIGN.' + 'BOSS', 'AUTOMOTIVE_DESIGN.' + 'COMPOUND_FEATURE', 'AUTOMOTIVE_DESIGN.' + 'EXTERNALLY_DEFINED_FEATURE_DEFINITION', 'AUTOMOTIVE_DESIGN.' + 'FEATURE_IN_PANEL', 'AUTOMOTIVE_DESIGN.' + 'GENERAL_FEATURE', 'AUTOMOTIVE_DESIGN.' + 'HOLE_IN_PANEL', 'AUTOMOTIVE_DESIGN.' + 'JOGGLE', 'AUTOMOTIVE_DESIGN.' + 'LOCATOR', 'AUTOMOTIVE_DESIGN.' + 'POCKET', 'AUTOMOTIVE_DESIGN.' + 'RIB', 'AUTOMOTIVE_DESIGN.' + 'REPLICATE_FEATURE', 'AUTOMOTIVE_DESIGN.' + 'ROUND_HOLE', 'AUTOMOTIVE_DESIGN.' + 'SLOT', 'AUTOMOTIVE_DESIGN.' + 'THREAD'] * TYPEOF(SELF)) <= 1; END_ENTITY; -- 10303-214: automotive_design 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) | ( 'AUTOMOTIVE_DESIGN.' + '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) | ( 'AUTOMOTIVE_DESIGN.' + '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) | ( 'AUTOMOTIVE_DESIGN.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation)) AND (SIZEOF(QUERY(i <* pdr.used_representation. items | (i.name = 'base radius') AND (SIZEOF(['AUTOMOTIVE_DESIGN.' + 'MEASURE_REPRESENTATION_ITEM', 'AUTOMOTIVE_DESIGN.' + 'LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(i)) = 2))) = 1))) = 1; wr5 : SIZEOF(QUERY(pdr <* get_property_definition_representations(SELF) | ( 'AUTOMOTIVE_DESIGN.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation)) AND (SIZEOF(QUERY(i <* pdr.used_representation. items | (i.name = 'target radius') AND (SIZEOF(['AUTOMOTIVE_DESIGN.' + 'MEASURE_REPRESENTATION_ITEM', 'AUTOMOTIVE_DESIGN.' + '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, 'AUTOMOTIVE_DESIGN.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | ( 'AUTOMOTIVE_DESIGN.' + 'SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF(sar)) AND (sar.name = 'directed angle usage') AND ('AUTOMOTIVE_DESIGN.' + '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, 'AUTOMOTIVE_DESIGN.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | ( 'AUTOMOTIVE_DESIGN.' + 'SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF(sar)) AND (sar.description = 'profile usage') AND (SIZEOF(['AUTOMOTIVE_DESIGN.' + 'CIRCULAR_CLOSED_PROFILE', 'AUTOMOTIVE_DESIGN.' + 'NGON_CLOSED_PROFILE', 'AUTOMOTIVE_DESIGN.' + 'RECTANGULAR_CLOSED_PROFILE', 'AUTOMOTIVE_DESIGN.' + '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) | 'AUTOMOTIVE_DESIGN.' + 'FACE_SHAPE_REPRESENTATION' IN TYPEOF(pdr. used_representation))) <= 1) AND (SIZEOF(QUERY(pdr <* get_property_definition_representations(SELF) | ('AUTOMOTIVE_DESIGN.' + '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) | 'AUTOMOTIVE_DESIGN.' + 'FACE_SHAPE_REPRESENTATION' IN TYPEOF(pdr. used_representation))) = 1); END_ENTITY; -- 10303-214: automotive_design ENTITY feature_pattern SUBTYPE OF (replicate_feature); WHERE wr1 : SIZEOF(QUERY(pdr <* get_property_definition_representations(SELF) | ( 'AUTOMOTIVE_DESIGN.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation)) AND (SIZEOF(QUERY(i <* pdr.used_representation. items | (i.name = 'added instance placement') AND ('AUTOMOTIVE_DESIGN.' + 'PLACEMENT' IN TYPEOF(i)))) > 1))) = 1; wr2 : SIZEOF(QUERY(pdr <* get_property_definition_representations(SELF) | ( 'AUTOMOTIVE_DESIGN.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation)) AND (SIZEOF(QUERY(i <* pdr.used_representation. items | NOT ('AUTOMOTIVE_DESIGN.' + 'PLACEMENT' IN TYPEOF(i)))) > 0))) = 0; END_ENTITY; -- 10303-214: automotive_design ENTITY featured_shape SUBTYPE OF (product_definition_shape); WHERE wr1 : 'AUTOMOTIVE_DESIGN.' + 'PRODUCT_DEFINITION' IN TYPEOF(SELF. definition); wr2 : (SIZEOF(USEDIN(SELF, 'AUTOMOTIVE_DESIGN.PROPERTY_DEFINITION_RELATIONSHIP.RELATED_PROPERTY_DEFINITION' )) = 1) AND (SIZEOF(QUERY(pdr <* USEDIN(SELF, 'AUTOMOTIVE_DESIGN.PROPERTY_DEFINITION_RELATIONSHIP.RELATED_PROPERTY_DEFINITION' ) | (pdr.name = 'featured shape sequence') AND ('AUTOMOTIVE_DESIGN.' + 'PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pdr.relating_property_definition)) AND (pdr.relating_property_definition :<>: SELF))) = 1); wr3 : SIZEOF(QUERY(pdr <* USEDIN(SELF, 'AUTOMOTIVE_DESIGN.PROPERTY_DEFINITION_RELATIONSHIP.RELATED_PROPERTY_DEFINITION' ) | SELF.definition :=: pdr.relating_property_definition.definition)) = 1; wr4 : SIZEOF(QUERY(sa <* USEDIN(SELF, 'AUTOMOTIVE_DESIGN.SHAPE_ASPECT.OF_SHAPE') | SIZEOF([ 'AUTOMOTIVE_DESIGN.' + 'PLACED_FEATURE', 'AUTOMOTIVE_DESIGN.' + 'INSTANCED_FEATURE'] * TYPEOF(sa)) = 1)) >= 1; END_ENTITY; -- 10303-214: automotive_design ENTITY fill_area_style; name : label; fill_styles : SET [1:?] OF fill_style_select; WHERE wr1 : SIZEOF(QUERY(fill_style <* SELF.fill_styles | 'AUTOMOTIVE_DESIGN.' + 'FILL_AREA_STYLE_COLOUR' IN TYPEOF(fill_style))) <= 1; END_ENTITY; -- 10303-46: presentation_appearance_schema ENTITY fill_area_style_colour; name : label; fill_colour : colour; END_ENTITY; -- 10303-46: presentation_appearance_schema ENTITY fill_area_style_hatching SUBTYPE OF (geometric_representation_item); hatch_line_appearance : curve_style; start_of_next_hatch_line : one_direction_repeat_factor; point_of_reference_hatch_line : cartesian_point; pattern_start : cartesian_point; hatch_line_angle : plane_angle_measure; END_ENTITY; -- 10303-46: presentation_appearance_schema ENTITY fill_area_style_tile_symbol_with_style SUBTYPE OF (geometric_representation_item); symbol : annotation_symbol_occurrence; END_ENTITY; -- 10303-46: presentation_appearance_schema ENTITY fill_area_style_tiles SUBTYPE OF (geometric_representation_item); tiling_pattern : two_direction_repeat_factor; tiles : SET [1:?] OF fill_area_style_tile_shape_select; tiling_scale : positive_ratio_measure; END_ENTITY; -- 10303-46: presentation_appearance_schema ENTITY fillet SUBTYPE OF (transition_feature); WHERE wr1 : (SELF.description <> 'constant radius') XOR (SIZEOF(QUERY(pdr <* get_shape_aspect_property_definition_representations(SELF) | 'AUTOMOTIVE_DESIGN.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation))) = 1); wr2 : (SELF.description <> 'constant radius') OR (SIZEOF(QUERY(pdr <* get_shape_aspect_property_definition_representations(SELF) | ( 'AUTOMOTIVE_DESIGN.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation)) AND {1 <= SIZEOF(pdr.used_representation.items) <= 3})) = 1); wr3 : (SELF.description <> 'constant radius') OR (SIZEOF(QUERY(pdr <* get_shape_aspect_property_definition_representations(SELF) | ( 'AUTOMOTIVE_DESIGN.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation)) AND (SIZEOF(QUERY(i <* pdr.used_representation. items | NOT (i.name IN ['radius', 'first offset', 'second offset']))) > 0)) ) = 0); wr4 : (SELF.description <> 'constant radius') OR (SIZEOF(QUERY(pdr <* get_shape_aspect_property_definition_representations(SELF) | ( 'AUTOMOTIVE_DESIGN.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation)) AND (SIZEOF(QUERY(i <* pdr.used_representation. items | (i.name = 'radius') AND (SIZEOF(['AUTOMOTIVE_DESIGN.' + 'MEASURE_REPRESENTATION_ITEM', 'AUTOMOTIVE_DESIGN.' + 'LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(i)) = 2))) = 1))) = 1); wr5 : (SELF.description <> 'constant radius') OR (SIZEOF(QUERY(pdr <* get_shape_aspect_property_definition_representations(SELF) | ( 'AUTOMOTIVE_DESIGN.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation)) AND (SIZEOF(QUERY(i <* pdr.used_representation. items | (i.name = 'first offset') AND (SIZEOF(['AUTOMOTIVE_DESIGN.' + 'MEASURE_REPRESENTATION_ITEM', 'AUTOMOTIVE_DESIGN.' + 'LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(i)) = 2))) <= 1))) = 1); wr6 : (SELF.description <> 'constant radius') OR (SIZEOF(QUERY(pdr <* get_shape_aspect_property_definition_representations(SELF) | ( 'AUTOMOTIVE_DESIGN.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation)) AND (SIZEOF(QUERY(i <* pdr.used_representation. items | (i.name = 'second offset') AND (SIZEOF(['AUTOMOTIVE_DESIGN.' + 'MEASURE_REPRESENTATION_ITEM', 'AUTOMOTIVE_DESIGN.' + 'LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(i)) = 2))) <= 1))) = 1); wr7 : SIZEOF(QUERY(pdr <* get_shape_aspect_property_definition_representations(SELF) | ( 'AUTOMOTIVE_DESIGN.' + 'FACE_SHAPE_REPRESENTATION' IN TYPEOF(pdr. used_representation)) AND (SIZEOF(QUERY(i <* pdr.used_representation.items | i.name = 'first face shape')) = 1))) = 1; wr8 : SIZEOF(QUERY(pdr <* get_shape_aspect_property_definition_representations(SELF) | ( 'AUTOMOTIVE_DESIGN.' + 'FACE_SHAPE_REPRESENTATION' IN TYPEOF(pdr. used_representation)) AND (SIZEOF(QUERY(i <* pdr.used_representation.items | i.name = 'second face shape')) = 1))) = 1; wr9 : SIZEOF(QUERY(pdr <* get_shape_aspect_property_definition_representations(SELF) | ( 'AUTOMOTIVE_DESIGN.' + 'FACE_SHAPE_REPRESENTATION' IN TYPEOF(pdr. used_representation)) AND (SIZEOF(QUERY(i <* pdr.used_representation.items | i.name = 'fillet face')) = 1))) = 1; END_ENTITY; -- 10303-214: automotive_design ENTITY flatness_tolerance SUBTYPE OF (geometric_tolerance); WHERE wr1 : NOT ('AUTOMOTIVE_DESIGN.' + 'GEOMETRIC_TOLERANCE_WITH_DATUM_REFERENCE' IN TYPEOF(SELF)); END_ENTITY; -- 10303-519: aic_geometric_tolerances 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 : ('AUTOMOTIVE_DESIGN.NUMERIC_EXPRESSION' IN TYPEOF(value_to_format)) AND ('AUTOMOTIVE_DESIGN.STRING_EXPRESSION' IN TYPEOF(format_string)); END_ENTITY; (* declared in: iso13584_expressions_schema *) ENTITY founded_item; END_ENTITY; -- 10303-43: representation_schema ENTITY founded_kinematic_path SUBTYPE OF (representation); SELF\representation.items : SET [1:?] OF kinematic_path; SELF\representation.context_of_items : geometric_representation_context; DERIVE paths : SET [1:?] OF kinematic_path := SELF\representation.items; founding : geometric_representation_context := SELF\representation. context_of_items; END_ENTITY; -- 10303-105: kinematic_analysis_control_and_result_schema ENTITY fully_constrained_pair SUBTYPE OF (kinematic_pair); END_ENTITY; -- 10303-105: kinematic_structure_schema ENTITY functionally_defined_transformation; name : label; description : OPTIONAL text; END_ENTITY; -- 10303-43: representation_schema ENTITY gear_pair SUBTYPE OF (kinematic_pair); radius_first_link : length_measure; radius_second_link : length_measure; bevel : plane_angle_measure; helical_angle : plane_angle_measure; gear_ratio : REAL; END_ENTITY; -- 10303-105: kinematic_structure_schema ENTITY gear_pair_range SUBTYPE OF (simple_pair_range); SELF\simple_pair_range.applies_to_pair : gear_pair; lower_limit_actual_rotation_1 : rotational_range_measure; upper_limit_actual_rotation_1 : rotational_range_measure; WHERE wr1 : ('AUTOMOTIVE_DESIGN.UNLIMITED_RANGE' IN TYPEOF( lower_limit_actual_rotation_1)) OR ('AUTOMOTIVE_DESIGN.UNLIMITED_RANGE' IN TYPEOF(upper_limit_actual_rotation_1)) XOR ( lower_limit_actual_rotation_1 < upper_limit_actual_rotation_1); END_ENTITY; -- 10303-105: kinematic_structure_schema ENTITY gear_pair_value SUBTYPE OF (pair_value); SELF\pair_value.applies_to_pair : gear_pair; actual_rotation_1 : plane_angle_measure; DERIVE actual_rotation_2 : plane_angle_measure := -actual_rotation_1 * SELF\ pair_value.applies_to_pair\gear_pair.gear_ratio; END_ENTITY; -- 10303-105: kinematic_structure_schema ENTITY general_feature SUBTYPE OF (feature_definition); WHERE wr1 : (SIZEOF(get_property_definition_representations(SELF)) <= 1) AND ( SIZEOF(QUERY(pdr <* get_property_definition_representations(SELF) | 'AUTOMOTIVE_DESIGN.' + '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, 'AUTOMOTIVE_DESIGN.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | ( 'AUTOMOTIVE_DESIGN.' + '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, 'AUTOMOTIVE_DESIGN.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | ( 'AUTOMOTIVE_DESIGN.' + 'SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF(sar)) AND ('AUTOMOTIVE_DESIGN.' + '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, 'AUTOMOTIVE_DESIGN.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | ( 'AUTOMOTIVE_DESIGN.' + 'SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF(sar)) AND (sar.description = 'profile usage'))) = 1))); wr5 : (SIZEOF(QUERY(sa <* get_shape_aspects(SELF) | 'AUTOMOTIVE_DESIGN.' + 'COMPOSITE_SHAPE_ASPECT' IN TYPEOF(sa))) <= 1) AND (SIZEOF(QUERY(sa <* get_shape_aspects(SELF) | ('AUTOMOTIVE_DESIGN.' + 'COMPOSITE_SHAPE_ASPECT' IN TYPEOF(sa)) AND (sa.name = 'general compound feature') AND (SIZEOF(QUERY(sar <* USEDIN(sa, 'AUTOMOTIVE_DESIGN.SHAPE_ASPECT_RELATIONSHIP.RELATING_SHAPE_ASPECT') | ( 'AUTOMOTIVE_DESIGN.' + 'FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF(sar)) AND ('AUTOMOTIVE_DESIGN.' + 'INSTANCED_FEATURE' IN TYPEOF(sar. related_shape_aspect)))) >= 2))) <= 1); END_ENTITY; -- 10303-214: automotive_design ENTITY general_material_property SUBTYPE OF (general_property); WHERE wr1 : SIZEOF(QUERY(gpa <* USEDIN(SELF, 'AUTOMOTIVE_DESIGN.GENERAL_PROPERTY_ASSOCIATION.BASE_DEFINITION') | NOT ('AUTOMOTIVE_DESIGN.' + 'MATERIAL_PROPERTY' IN TYPEOF(gpa. derived_definition)))) = 0; END_ENTITY; -- 10303-214: automotive_design ENTITY general_property; id : identifier; name : label; description : OPTIONAL text; END_ENTITY; -- 10303-41: product_property_definition_schema ENTITY general_property_association; name : label; description : OPTIONAL text; base_definition : general_property; derived_definition : derived_property_select; WHERE wr1 : SIZEOF(USEDIN(derived_definition, 'AUTOMOTIVE_DESIGN.GENERAL_PROPERTY_ASSOCIATION.DERIVED_DEFINITION')) = 1; wr2 : derived_definition.name = base_definition.name; END_ENTITY; -- 10303-41: product_property_definition_schema ENTITY general_property_relationship; name : label; description : OPTIONAL text; relating_property : general_property; related_property : general_property; END_ENTITY; -- 10303-41: product_property_definition_schema ENTITY generic_character_glyph_symbol ABSTRACT SUPERTYPE SUBTYPE OF (symbol_representation); END_ENTITY; (* declared in: presentation_resource_schema *) ENTITY generic_expression ABSTRACT SUPERTYPE OF (ONEOF (simple_generic_expression, unary_generic_expression, binary_generic_expression, multiple_arity_generic_expression)); WHERE wr1 : is_acyclic(SELF); END_ENTITY; (* declared in: iso13584_generic_expressions_schema *) ENTITY generic_literal ABSTRACT SUPERTYPE SUBTYPE OF (simple_generic_expression); END_ENTITY; (* declared in: iso13584_generic_expressions_schema *) ENTITY generic_variable ABSTRACT SUPERTYPE SUBTYPE OF (simple_generic_expression); INVERSE interpretation : environment FOR syntactic_representation; END_ENTITY; (* declared in: iso13584_generic_expressions_schema *) ENTITY geometric_alignment SUBTYPE OF (derived_shape_aspect); WHERE wr1 : SIZEOF(SELF\derived_shape_aspect.deriving_relationships) > 1; END_ENTITY; -- 10303-47: shape_aspect_definition_schema ENTITY geometric_curve_set SUBTYPE OF (geometric_set); WHERE wr1 : SIZEOF(QUERY(temp <* SELF\geometric_set.elements | 'AUTOMOTIVE_DESIGN.SURFACE' IN TYPEOF(temp))) = 0; END_ENTITY; -- 10303-42: geometric_model_schema ENTITY geometric_intersection SUBTYPE OF (derived_shape_aspect); WHERE wr1 : SIZEOF(SELF\derived_shape_aspect.deriving_relationships) > 1; END_ENTITY; -- 10303-47: shape_aspect_definition_schema ENTITY geometric_item_specific_usage SUBTYPE OF (item_identified_representation_usage); SELF\item_identified_representation_usage.definition : shape_aspect; SELF\item_identified_representation_usage.used_representation : shape_representation; SELF\item_identified_representation_usage.identified_item : geometric_representation_item; END_ENTITY; (* declared in: automotive_design *) ENTITY geometric_representation_context SUBTYPE OF (representation_context); coordinate_space_dimension : dimension_count; END_ENTITY; -- 10303-42: geometry_schema ENTITY geometric_representation_item SUPERTYPE OF (ONEOF (point, direction, vector, placement, cartesian_transformation_operator, curve, surface, edge_curve, face_surface, poly_loop, vertex_point, solid_model, boolean_result, sphere, right_circular_cone, right_circular_cylinder, torus, block, right_angular_wedge , half_space_solid, shell_based_surface_model, face_based_surface_model, edge_based_wireframe_model, geometric_set)) SUBTYPE OF (representation_item); DERIVE dim : dimension_count := dimension_of(SELF); WHERE wr1 : SIZEOF(QUERY(using_rep <* using_representations(SELF) | NOT ( 'AUTOMOTIVE_DESIGN.GEOMETRIC_REPRESENTATION_CONTEXT' IN TYPEOF(using_rep .context_of_items)))) = 0; END_ENTITY; -- 10303-42: geometry_schema ENTITY geometric_set SUPERTYPE OF (geometric_curve_set) SUBTYPE OF (geometric_representation_item); elements : SET [1:?] OF geometric_set_select; END_ENTITY; -- 10303-42: geometric_model_schema ENTITY geometric_tolerance; name : label; description : text; magnitude : measure_with_unit; toleranced_shape_aspect : shape_aspect; WHERE wr1 : ('NUMBER' IN TYPEOF(magnitude\measure_with_unit.value_component)) AND ( magnitude\measure_with_unit.value_component >= 0.0); END_ENTITY; -- 10303-47: shape_tolerance_schema ENTITY geometric_tolerance_relationship; name : label; description : text; relating_geometric_tolerance : geometric_tolerance; related_geometric_tolerance : geometric_tolerance; END_ENTITY; -- 10303-47: shape_tolerance_schema ENTITY geometric_tolerance_with_datum_reference SUBTYPE OF (geometric_tolerance); datum_system : SET [1:?] OF datum_reference; END_ENTITY; -- 10303-47: shape_tolerance_schema ENTITY geometric_tolerance_with_defined_unit SUBTYPE OF (geometric_tolerance); unit_size : measure_with_unit; WHERE wr1 : ('NUMBER' IN TYPEOF(unit_size\measure_with_unit.value_component)) AND ( unit_size\measure_with_unit.value_component > 0.0); END_ENTITY; -- 10303-47: shape_tolerance_schema ENTITY geometrical_tolerance_callout SUBTYPE OF (draughting_callout); END_ENTITY; -- 10303-506: aic_draughting_elements 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) * [ 'AUTOMOTIVE_DESIGN.GEOMETRIC_CURVE_SET', 'AUTOMOTIVE_DESIGN.AXIS2_PLACEMENT_2D', 'AUTOMOTIVE_DESIGN.MAPPED_ITEM']) = 1))) = 0; wr3 : SIZEOF(QUERY(item <* SELF.items | SIZEOF(TYPEOF(item) * [ 'AUTOMOTIVE_DESIGN.GEOMETRIC_CURVE_SET', 'AUTOMOTIVE_DESIGN.MAPPED_ITEM']) = 1)) >= 1; wr4 : SIZEOF(QUERY(mi <* QUERY(item <* SELF.items | 'AUTOMOTIVE_DESIGN.MAPPED_ITEM' IN TYPEOF(item)) | NOT ( 'AUTOMOTIVE_DESIGN.' + 'GEOMETRICALLY_BOUNDED_2D_WIREFRAME_REPRESENTATION' IN TYPEOF(mi\ mapped_item.mapping_source.mapped_representation)))) = 0; wr5 : SIZEOF(QUERY(gcs <* QUERY(item <* SELF.items | 'AUTOMOTIVE_DESIGN.GEOMETRIC_CURVE_SET' IN TYPEOF(item)) | NOT (SIZEOF( QUERY(elem <* gcs\geometric_set.elements | NOT (SIZEOF(TYPEOF(elem) * [ 'AUTOMOTIVE_DESIGN.B_SPLINE_CURVE', 'AUTOMOTIVE_DESIGN.CIRCLE', 'AUTOMOTIVE_DESIGN.COMPOSITE_CURVE', 'AUTOMOTIVE_DESIGN.ELLIPSE', 'AUTOMOTIVE_DESIGN.OFFSET_CURVE_2D', 'AUTOMOTIVE_DESIGN.POINT', 'AUTOMOTIVE_DESIGN.POLYLINE', 'AUTOMOTIVE_DESIGN.TRIMMED_CURVE']) = 1 ))) = 0))) = 0; wr6 : SIZEOF(QUERY(gcs <* QUERY(item <* SELF.items | 'AUTOMOTIVE_DESIGN.GEOMETRIC_CURVE_SET' IN TYPEOF(item)) | NOT (SIZEOF( QUERY(crv <* QUERY(elem <* gcs\geometric_set.elements | 'AUTOMOTIVE_DESIGN.CURVE' IN TYPEOF(elem)) | NOT valid_basis_curve_in_2d_wireframe(crv))) = 0))) = 0; wr7 : SIZEOF(QUERY(gcs <* QUERY(item <* SELF.items | 'AUTOMOTIVE_DESIGN.GEOMETRIC_CURVE_SET' IN TYPEOF(item)) | NOT (SIZEOF( QUERY(pnt <* QUERY(elem <* gcs\geometric_set.elements | 'AUTOMOTIVE_DESIGN.POINT' IN TYPEOF(elem)) | NOT (SIZEOF(TYPEOF(pnt) * [ 'AUTOMOTIVE_DESIGN.CARTESIAN_POINT', 'AUTOMOTIVE_DESIGN.POINT_ON_CURVE']) = 1))) = 0))) = 0; wr8 : SIZEOF(QUERY(gcs <* QUERY(item <* SELF.items | 'AUTOMOTIVE_DESIGN.GEOMETRIC_CURVE_SET' IN TYPEOF(item)) | NOT (SIZEOF( QUERY(pl <* QUERY(elem <* gcs\geometric_set.elements | 'AUTOMOTIVE_DESIGN.POLYLINE' IN TYPEOF(elem)) | NOT (SIZEOF(pl\polyline. points) > 2))) = 0))) = 0; END_ENTITY; -- 10303-503: aic_geometrically_bounded_2d_wireframe ENTITY geometrically_bounded_surface_shape_representation SUBTYPE OF (shape_representation); WHERE wr1 : SIZEOF(QUERY(it <* SELF.items | NOT (SIZEOF([ 'AUTOMOTIVE_DESIGN.GEOMETRIC_SET', 'AUTOMOTIVE_DESIGN.MAPPED_ITEM', 'AUTOMOTIVE_DESIGN.AXIS2_PLACEMENT_3D'] * TYPEOF(it)) = 1))) = 0; wr2 : SIZEOF(QUERY(it <* SELF.items | SIZEOF([ 'AUTOMOTIVE_DESIGN.GEOMETRIC_SET', 'AUTOMOTIVE_DESIGN.MAPPED_ITEM'] * TYPEOF(it)) = 1)) > 0; wr3 : SIZEOF(QUERY(mi <* QUERY(it <* SELF.items | 'AUTOMOTIVE_DESIGN.MAPPED_ITEM' IN TYPEOF(it)) | NOT (( 'AUTOMOTIVE_DESIGN.' + '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 | 'AUTOMOTIVE_DESIGN.GEOMETRIC_SET' IN TYPEOF(mr_it))) > 0)))) = 0; wr4 : SIZEOF(QUERY(gs <* QUERY(it <* SELF.items | 'AUTOMOTIVE_DESIGN.GEOMETRIC_SET' IN TYPEOF(it)) | NOT (SIZEOF(QUERY(pnt <* QUERY(gsel <* gs\geometric_set.elements | 'AUTOMOTIVE_DESIGN.POINT' IN TYPEOF(gsel)) | NOT gbsf_check_point(pnt))) = 0))) = 0; wr5 : SIZEOF(QUERY(gs <* QUERY(it <* SELF.items | 'AUTOMOTIVE_DESIGN.GEOMETRIC_SET' IN TYPEOF(it)) | NOT (SIZEOF(QUERY(cv <* QUERY(gsel <* gs\geometric_set.elements | 'AUTOMOTIVE_DESIGN.CURVE' IN TYPEOF(gsel)) | NOT gbsf_check_curve(cv))) = 0))) = 0; wr6 : SIZEOF(QUERY(gs <* QUERY(it <* SELF.items | 'AUTOMOTIVE_DESIGN.GEOMETRIC_SET' IN TYPEOF(it)) | NOT (SIZEOF(QUERY(sf <* QUERY(gsel <* gs\geometric_set.elements | 'AUTOMOTIVE_DESIGN.SURFACE' IN TYPEOF(gsel)) | NOT gbsf_check_surface(sf ))) = 0))) = 0; wr7 : SIZEOF(QUERY(gs <* QUERY(it <* SELF.items | 'AUTOMOTIVE_DESIGN.GEOMETRIC_SET' IN TYPEOF(it)) | SIZEOF(QUERY(gsel <* gs\geometric_set.elements | 'AUTOMOTIVE_DESIGN.SURFACE' IN TYPEOF(gsel)) ) > 0)) > 0; END_ENTITY; -- 10303-507: aic_geometrically_bounded_surface ENTITY geometrically_bounded_wireframe_shape_representation SUBTYPE OF (shape_representation); WHERE wr1 : SIZEOF(QUERY(it <* SELF.items | NOT (SIZEOF(TYPEOF(it) * [ 'AUTOMOTIVE_DESIGN.GEOMETRIC_CURVE_SET', 'AUTOMOTIVE_DESIGN.AXIS2_PLACEMENT_3D', 'AUTOMOTIVE_DESIGN.MAPPED_ITEM']) = 1))) = 0; wr2 : SIZEOF(QUERY(it <* SELF.items | SIZEOF(TYPEOF(it) * [ 'AUTOMOTIVE_DESIGN.GEOMETRIC_CURVE_SET', 'AUTOMOTIVE_DESIGN.MAPPED_ITEM']) = 1)) >= 1; wr3 : SIZEOF(QUERY(gcs <* QUERY(it <* SELF.items | 'AUTOMOTIVE_DESIGN.GEOMETRIC_CURVE_SET' IN TYPEOF(it)) | NOT (SIZEOF( QUERY(crv <* QUERY(elem <* gcs\geometric_set.elements | 'AUTOMOTIVE_DESIGN.CURVE' IN TYPEOF(elem)) | NOT valid_geometrically_bounded_wf_curve(crv))) = 0))) = 0; wr4 : SIZEOF(QUERY(gcs <* QUERY(it <* SELF.items | 'AUTOMOTIVE_DESIGN.GEOMETRIC_CURVE_SET' IN TYPEOF(it)) | NOT (SIZEOF( QUERY(pnts <* QUERY(elem <* gcs\geometric_set.elements | 'AUTOMOTIVE_DESIGN.POINT' IN TYPEOF(elem)) | NOT valid_geometrically_bounded_wf_point(pnts))) = 0))) = 0; wr5 : SIZEOF(QUERY(gcs <* QUERY(it <* SELF.items | 'AUTOMOTIVE_DESIGN.GEOMETRIC_CURVE_SET' IN TYPEOF(it)) | NOT (SIZEOF( QUERY(cnc <* QUERY(elem <* gcs\geometric_set.elements | 'AUTOMOTIVE_DESIGN.CONIC' IN TYPEOF(elem)) | NOT ( 'AUTOMOTIVE_DESIGN.AXIS2_PLACEMENT_3D' IN TYPEOF(cnc\conic.position)))) = 0))) = 0; wr6 : SIZEOF(QUERY(gcs <* QUERY(it <* SELF.items | 'AUTOMOTIVE_DESIGN.GEOMETRIC_CURVE_SET' IN TYPEOF(it)) | NOT (SIZEOF( QUERY(pline <* QUERY(elem <* gcs\geometric_set.elements | 'AUTOMOTIVE_DESIGN.POLYLINE' IN TYPEOF(elem)) | NOT (SIZEOF(pline\ polyline.points) > 2))) = 0))) = 0; wr7 : SIZEOF(QUERY(mi <* QUERY(it <* SELF.items | 'AUTOMOTIVE_DESIGN.MAPPED_ITEM' IN TYPEOF(it)) | NOT ( 'AUTOMOTIVE_DESIGN.' + 'GEOMETRICALLY_BOUNDED_WIREFRAME_SHAPE_REPRESENTATION' IN TYPEOF(mi\ mapped_item.mapping_source.mapped_representation)))) = 0; END_ENTITY; -- 10303-510: aic_geometrically_bounded_wireframe ENTITY global_uncertainty_assigned_context SUBTYPE OF (representation_context); uncertainty : SET [1:?] OF uncertainty_measure_with_unit; END_ENTITY; -- 10303-43: representation_schema ENTITY global_unit_assigned_context SUBTYPE OF (representation_context); units : SET [1:?] OF unit; END_ENTITY; -- 10303-41: measure_schema ENTITY group; name : label; description : OPTIONAL text; DERIVE id : identifier := get_id_value(SELF); WHERE wr1 : SIZEOF(USEDIN(SELF, 'AUTOMOTIVE_DESIGN.ID_ATTRIBUTE.IDENTIFIED_ITEM' )) <= 1; END_ENTITY; -- 10303-41: group_schema ENTITY group_assignment ABSTRACT SUPERTYPE; assigned_group : group; DERIVE role : object_role := get_role(SELF); WHERE wr1 : SIZEOF(USEDIN(SELF, 'AUTOMOTIVE_DESIGN.ROLE_ASSOCIATION.ITEM_WITH_ROLE')) <= 1; END_ENTITY; -- 10303-41: management_resources_schema ENTITY group_relationship; name : label; description : OPTIONAL text; relating_group : group; related_group : group; END_ENTITY; -- 10303-41: group_schema ENTITY half_space_solid SUBTYPE OF (geometric_representation_item); base_surface : surface; agreement_flag : BOOLEAN; END_ENTITY; -- 10303-42: geometric_model_schema ENTITY hardness_representation SUBTYPE OF (representation); WHERE wr1 : {2 <= SIZEOF(SELF.items) <= 4} AND (SIZEOF(QUERY(i <* items | ( 'AUTOMOTIVE_DESIGN.' + 'DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF(i)) AND (i.name IN ['measuring method', 'measuring position']))) + SIZEOF( QUERY(i <* items | (SIZEOF(['AUTOMOTIVE_DESIGN.' + 'MEASURE_REPRESENTATION_ITEM', 'AUTOMOTIVE_DESIGN.' + '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, 'AUTOMOTIVE_DESIGN.PROPERTY_DEFINITION_REPRESENTATION.USED_REPRESENTATION' )) = 1) AND (SIZEOF(QUERY(pdr <* USEDIN(SELF, 'AUTOMOTIVE_DESIGN.PROPERTY_DEFINITION_REPRESENTATION.USED_REPRESENTATION' ) | SIZEOF(QUERY(gpa <* USEDIN(pdr.definition, 'AUTOMOTIVE_DESIGN.GENERAL_PROPERTY_ASSOCIATION.DERIVED_DEFINITION') | ( 'AUTOMOTIVE_DESIGN.' + 'GENERAL_PROPERTY' IN TYPEOF(gpa.base_definition) ) AND (gpa.base_definition.name = 'surface_texture'))) = 1)) = 1); END_ENTITY; -- 10303-214: automotive_design ENTITY hidden_element_over_riding_styled_item SUBTYPE OF (context_dependent_over_riding_styled_item); WHERE wr1 : SIZEOF(SELF.style_context) = 1; wr2 : 'AUTOMOTIVE_DESIGN.' + 'PRESENTATION_VIEW' IN TYPEOF(SELF. style_context[1]); wr3 : 'AUTOMOTIVE_DESIGN.' + 'CAMERA_IMAGE' IN TYPEOF(SELF.item); wr4 : 'AUTOMOTIVE_DESIGN.' + 'CAMERA_MODEL_D3_WITH_HLHSR' IN TYPEOF(SELF. item\mapped_item.mapping_source.mapping_origin); wr5 : SIZEOF(QUERY(rep <* USEDIN(SELF, 'AUTOMOTIVE_DESIGN.REPRESENTATION.ITEMS') | 'AUTOMOTIVE_DESIGN.' + 'PRESENTATION_VIEW' IN TYPEOF(rep))) > 0; END_ENTITY; -- 10303-214: automotive_design ENTITY hole_bottom SUBTYPE OF (shape_aspect); WHERE wr1 : 'AUTOMOTIVE_DESIGN.' + 'FEATURE_COMPONENT_DEFINITION' IN TYPEOF(SELF .of_shape.definition); wr2 : SELF.description IN ['through', 'flat', 'flat with taper', 'flat with radius', 'spherical', 'conical']; wr3 : NOT (SELF.description IN ['through', 'flat']) OR (SIZEOF( get_shape_aspect_property_definition_representations(SELF)) = 0); wr4 : NOT (SELF.description IN ['flat with radius', 'flat with taper', 'spherical', 'conical']) OR (SIZEOF(QUERY(pdr <* get_shape_aspect_property_definition_representations(SELF) | 'AUTOMOTIVE_DESIGN.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation))) = 1); wr5 : (SELF.description <> 'flat with taper') OR (SIZEOF(QUERY(pdr <* get_shape_aspect_property_definition_representations(SELF) | ( 'AUTOMOTIVE_DESIGN.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation)) AND (SIZEOF(pdr.used_representation.items) = 2))) = 1); wr6 : (SELF.description <> 'conical') OR (SIZEOF(QUERY(pdr <* get_shape_aspect_property_definition_representations(SELF) | ( 'AUTOMOTIVE_DESIGN.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation)) AND {1 <= SIZEOF(pdr.used_representation.items) <= 2})) = 1); wr7 : NOT (SELF.description IN ['flat with radius', 'spherical']) OR (SIZEOF( QUERY(pdr <* get_shape_aspect_property_definition_representations(SELF) | ( 'AUTOMOTIVE_DESIGN.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation)) AND (SIZEOF(pdr.used_representation.items) = 1))) = 1); wr8 : (SELF.description <> 'flat with radius') OR (SIZEOF(QUERY(pdr <* get_shape_aspect_property_definition_representations(SELF) | ( 'AUTOMOTIVE_DESIGN.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation)) AND (SIZEOF(QUERY(i <* pdr.used_representation. items | (i.name = 'corner radius') AND (SIZEOF(['AUTOMOTIVE_DESIGN.' + 'MEASURE_REPRESENTATION_ITEM', 'AUTOMOTIVE_DESIGN.' + 'LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(i)) = 2))) = 1))) = 1); wr9 : (SELF.description <> 'spherical') OR (SIZEOF(QUERY(pdr <* get_shape_aspect_property_definition_representations(SELF) | ( 'AUTOMOTIVE_DESIGN.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation)) AND (SIZEOF(QUERY(i <* pdr.used_representation. items | (i.name = 'radius') AND (SIZEOF(['AUTOMOTIVE_DESIGN.' + 'MEASURE_REPRESENTATION_ITEM', 'AUTOMOTIVE_DESIGN.' + 'LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(i)) = 2))) = 1))) = 1); wr10 : (SELF.description <> 'conical') OR (SIZEOF(QUERY(pdr <* get_shape_aspect_property_definition_representations(SELF) | ( 'AUTOMOTIVE_DESIGN.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation)) AND (SIZEOF(QUERY(i <* pdr.used_representation. items | (i.name = 'tip radius') AND (SIZEOF(['AUTOMOTIVE_DESIGN.' + 'MEASURE_REPRESENTATION_ITEM', 'AUTOMOTIVE_DESIGN.' + 'LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(i)) = 2))) <= 1))) = 1); wr11 : (SELF.description <> 'conical') OR (SIZEOF(QUERY(pdr <* get_shape_aspect_property_definition_representations(SELF) | ( 'AUTOMOTIVE_DESIGN.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation)) AND (SIZEOF(QUERY(i <* pdr.used_representation. items | (i.name = 'tip angle') AND (SIZEOF(['AUTOMOTIVE_DESIGN.' + 'MEASURE_REPRESENTATION_ITEM', 'AUTOMOTIVE_DESIGN.' + 'PLANE_ANGLE_MEASURE_WITH_UNIT'] * TYPEOF(i)) = 2))) = 1))) = 1); wr12 : (SELF.description <> 'flat with taper') OR (SIZEOF(QUERY(pdr <* get_shape_aspect_property_definition_representations(SELF) | ( 'AUTOMOTIVE_DESIGN.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation)) AND (SIZEOF(QUERY(i <* pdr.used_representation. items | (i.name = 'final diameter') AND (SIZEOF(['AUTOMOTIVE_DESIGN.' + 'MEASURE_REPRESENTATION_ITEM', 'AUTOMOTIVE_DESIGN.' + 'LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(i)) = 2))) = 1))) = 1); wr13 : (SELF.description <> 'flat with taper') OR (SIZEOF(QUERY(pdr <* get_shape_aspect_property_definition_representations(SELF) | ( 'AUTOMOTIVE_DESIGN.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation)) AND (SIZEOF(QUERY(i <* pdr.used_representation. items | (i.name = 'taper diameter') AND (SIZEOF(['AUTOMOTIVE_DESIGN.' + 'MEASURE_REPRESENTATION_ITEM', 'AUTOMOTIVE_DESIGN.' + 'PLANE_ANGLE_MEASURE_WITH_UNIT'] * TYPEOF(i)) = 2))) = 1))) = 1); wr14 : SIZEOF(QUERY(sar <* USEDIN(SELF, 'AUTOMOTIVE_DESIGN.SHAPE_ASPECT_RELATIONSHIP.RELATING_SHAPE_ASPECT') | ( 'AUTOMOTIVE_DESIGN.' + 'FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF(sar)) AND (sar.description = 'hole bottom usage') AND (sar.related_shape_aspect. description = 'bottom condition occurrence'))) = 1; wr15 : (SELF.description = 'through') OR (SIZEOF(QUERY(sar <* USEDIN(SELF, 'AUTOMOTIVE_DESIGN.SHAPE_ASPECT_RELATIONSHIP.RELATING_SHAPE_ASPECT') | ( 'AUTOMOTIVE_DESIGN.' + 'FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF(sar)) AND (sar.name IN ['starting', 'ending']))) = 1); END_ENTITY; -- 10303-214: automotive_design 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, 'AUTOMOTIVE_DESIGN.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | ( 'AUTOMOTIVE_DESIGN.' + 'SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF(sar)) AND (sar.description = 'profile usage') AND (SIZEOF(['AUTOMOTIVE_DESIGN.' + 'CIRCULAR_CLOSED_PROFILE', 'AUTOMOTIVE_DESIGN.' + 'NGON_CLOSED_PROFILE', 'AUTOMOTIVE_DESIGN.' + 'RECTANGULAR_CLOSED_PROFILE', 'AUTOMOTIVE_DESIGN.' + '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; -- 10303-214: automotive_design ENTITY homokinetic_pair SUBTYPE OF (universal_pair); WHERE wr1 : NOT EXISTS(SELF.input_skew_angle); END_ENTITY; -- 10303-214: automotive_design ENTITY hyperbola SUBTYPE OF (conic); semi_axis : positive_length_measure; semi_imag_axis : positive_length_measure; END_ENTITY; -- 10303-42: geometry_schema ENTITY id_attribute; attribute_value : identifier; identified_item : id_attribute_select; END_ENTITY; -- 10303-41: basic_attribute_schema ENTITY identification_assignment ABSTRACT SUPERTYPE; assigned_id : identifier; role : identification_role; END_ENTITY; -- 10303-41: management_resources_schema ENTITY identification_role; name : label; description : OPTIONAL text; END_ENTITY; -- 10303-41: management_resources_schema ENTITY inclusion_product_concept_feature SUBTYPE OF (conditional_concept_feature); WHERE wr1 : NOT ('AUTOMOTIVE_DESIGN.' + 'PACKAGE_PRODUCT_CONCEPT_FEATURE' IN TYPEOF(SELF)); wr2 : SIZEOF(QUERY(cfr <* USEDIN(SELF, 'AUTOMOTIVE_DESIGN.CONCEPT_FEATURE_RELATIONSHIP.RELATING_PRODUCT_CONCEPT_FEATURE' ) | 'AUTOMOTIVE_DESIGN.' + 'CONCEPT_FEATURE_RELATIONSHIP_WITH_CONDITION' IN TYPEOF(cfr))) + SIZEOF(QUERY(cfr <* USEDIN(SELF, 'AUTOMOTIVE_DESIGN.CONCEPT_FEATURE_RELATIONSHIP.RELATED_PRODUCT_CONCEPT_FEATURE' ) | 'AUTOMOTIVE_DESIGN.' + 'CONCEPT_FEATURE_RELATIONSHIP_WITH_CONDITION' IN TYPEOF(cfr))) = 0; wr3 : SELF.condition.conditional_operator.name = 'implication'; END_ENTITY; -- 10303-214: automotive_design 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 : ('AUTOMOTIVE_DESIGN.STRING_EXPRESSION' IN TYPEOF(operand)) AND ( 'AUTOMOTIVE_DESIGN.NUMERIC_EXPRESSION' IN TYPEOF(index)); wr2 : is_int_expr(index); END_ENTITY; (* declared in: iso13584_expressions_schema *) ENTITY initial_state; applies_to_mechanism : mechanism; pair_values : SET [1:?] OF pair_value; WHERE wr1 : SIZEOF(QUERY(joint <* applies_to_mechanism.structure_definition.joints | SIZEOF(QUERY(init_val <* pair_values | init_val.applies_to_pair.joint :=: joint)) <> 1)) = 0; END_ENTITY; -- 10303-105: kinematic_structure_schema ENTITY instanced_feature SUBTYPE OF (shape_aspect, feature_definition); WHERE wr1 : 'AUTOMOTIVE_DESIGN.' + 'PRODUCT_DEFINITION' IN TYPEOF(SELF.of_shape. definition); wr2 : SELF.product_definitional; wr3 : SIZEOF(QUERY(pdr <* get_shape_aspect_property_definition_representations(SELF) | ( 'AUTOMOTIVE_DESIGN.' + 'PLANAR_SHAPE_REPRESENTATION' IN TYPEOF(pdr. used_representation)) AND (pdr.used_representation.name = 'maximum feature limit'))) = 1; END_ENTITY; -- 10303-214: automotive_design ENTITY int_literal SUBTYPE OF (literal_number); SELF\literal_number.the_value : INTEGER; END_ENTITY; (* declared in: iso13584_expressions_schema *) ENTITY int_numeric_variable SUBTYPE OF (numeric_variable); END_ENTITY; (* declared in: iso13584_expressions_schema *) ENTITY int_value_function SUBTYPE OF (value_function); END_ENTITY; (* declared in: iso13584_expressions_schema *) ENTITY integer_defined_function ABSTRACT SUPERTYPE SUBTYPE OF (numeric_defined_function); END_ENTITY; (* declared in: iso13584_expressions_schema *) ENTITY interpolated_configuration_sequence; interpolation : SET [1:?] OF configuration_interpolation; END_ENTITY; -- 10303-105: kinematic_analysis_control_and_result_schema ENTITY intersection_curve SUBTYPE OF (surface_curve); WHERE wr1 : SIZEOF(SELF\surface_curve.associated_geometry) = 2; wr2 : associated_surface(SELF\surface_curve.associated_geometry[1]) <> associated_surface(SELF\surface_curve.associated_geometry[2]); END_ENTITY; -- 10303-42: geometry_schema ENTITY interval_expression SUBTYPE OF (boolean_expression, multiple_arity_generic_expression); DERIVE interval_low : generic_expression := SELF\multiple_arity_generic_expression. operands[1]; interval_item : generic_expression := SELF\multiple_arity_generic_expression. operands[2]; interval_high : generic_expression := SELF\multiple_arity_generic_expression. operands[3]; WHERE wr1 : ('AUTOMOTIVE_DESIGN.EXPRESSION' IN TYPEOF(interval_low)) AND ( 'AUTOMOTIVE_DESIGN.EXPRESSION' IN TYPEOF(interval_item)) AND ( 'AUTOMOTIVE_DESIGN.EXPRESSION' IN TYPEOF(interval_high)); wr2 : ('AUTOMOTIVE_DESIGN.STRING_EXPRESSION' IN TYPEOF(SELF.interval_low)) AND ('AUTOMOTIVE_DESIGN.STRING_EXPRESSION' IN TYPEOF(SELF.interval_high )) AND ('AUTOMOTIVE_DESIGN.STRING_EXPRESSION' IN TYPEOF(SELF. interval_item)) OR ('AUTOMOTIVE_DESIGN.STRING_EXPRESSION' IN TYPEOF(SELF .interval_low)) AND ('AUTOMOTIVE_DESIGN.NUMERIC_EXPRESSION' IN TYPEOF( SELF.interval_item)) AND ('AUTOMOTIVE_DESIGN.NUMERIC_EXPRESSION' IN TYPEOF(SELF.interval_high)); END_ENTITY; (* declared in: iso13584_expressions_schema *) ENTITY invisibility; invisible_items : SET [1:?] OF invisible_item; END_ENTITY; -- 10303-46: presentation_appearance_schema ENTITY item_defined_transformation; name : label; description : OPTIONAL text; transform_item_1 : representation_item; transform_item_2 : representation_item; END_ENTITY; -- 10303-43: representation_schema ENTITY item_identified_representation_usage; name : label; description : OPTIONAL text; definition : represented_definition; used_representation : representation; identified_item : representation_item; WHERE wr1 : SELF.used_representation IN using_representations(SELF.identified_item) ; END_ENTITY; (* declared in: product_property_representation_schema *) ENTITY joggle SUBTYPE OF (feature_definition); WHERE wr1 : SIZEOF(QUERY(pdr <* get_property_definition_representations(SELF) | ( 'AUTOMOTIVE_DESIGN.' + '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) | ( 'AUTOMOTIVE_DESIGN.' + '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) | ( 'AUTOMOTIVE_DESIGN.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation)) AND (SIZEOF(QUERY(i <* pdr.used_representation. items | (i.name = 'direction angle 1') AND (SIZEOF(['AUTOMOTIVE_DESIGN.' + 'MEASURE_REPRESENTATION_ITEM', 'AUTOMOTIVE_DESIGN.' + 'PLANE_ANGLE_MEASURE_WITH_UNIT'] * TYPEOF(i)) = 2))) = 1))) = 1; wr4 : SIZEOF(QUERY(pdr <* get_property_definition_representations(SELF) | ( 'AUTOMOTIVE_DESIGN.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation)) AND (SIZEOF(QUERY(i <* pdr.used_representation. items | (i.name = 'direction angle 2') AND (SIZEOF(['AUTOMOTIVE_DESIGN.' + 'MEASURE_REPRESENTATION_ITEM', 'AUTOMOTIVE_DESIGN.' + 'PLANE_ANGLE_MEASURE_WITH_UNIT'] * TYPEOF(i)) = 2))) = 1))) = 1; wr5 : SIZEOF(QUERY(pdr <* get_property_definition_representations(SELF) | ( 'AUTOMOTIVE_DESIGN.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation)) AND (SIZEOF(QUERY(i <* pdr.used_representation. items | (i.name = 'height') AND (SIZEOF(['AUTOMOTIVE_DESIGN.' + 'MEASURE_REPRESENTATION_ITEM', 'AUTOMOTIVE_DESIGN.' + 'LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(i)) = 2))) = 1))) <= 1; wr6 : SIZEOF(QUERY(pdr <* get_property_definition_representations(SELF) | ( 'AUTOMOTIVE_DESIGN.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation)) AND (SIZEOF(QUERY(i <* pdr.used_representation. items | (i.name = 'slope angle 1') AND (SIZEOF(['AUTOMOTIVE_DESIGN.' + 'MEASURE_REPRESENTATION_ITEM', 'AUTOMOTIVE_DESIGN.' + 'PLANE_ANGLE_MEASURE_WITH_UNIT'] * TYPEOF(i)) = 2))) = 1))) = 1; wr7 : SIZEOF(QUERY(pdr <* get_property_definition_representations(SELF) | ( 'AUTOMOTIVE_DESIGN.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation)) AND (SIZEOF(QUERY(i <* pdr.used_representation. items | (i.name = 'slope angle 2') AND (SIZEOF(['AUTOMOTIVE_DESIGN.' + 'MEASURE_REPRESENTATION_ITEM', 'AUTOMOTIVE_DESIGN.' + '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, 'AUTOMOTIVE_DESIGN.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | ( 'AUTOMOTIVE_DESIGN.' + 'SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF(sar)) AND (sar.description = 'path feature component usage') AND ( 'AUTOMOTIVE_DESIGN.' + '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, 'AUTOMOTIVE_DESIGN.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | ( 'AUTOMOTIVE_DESIGN.' + 'FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF(sar)) AND (sar.name = 'joggle termination usage') AND ('AUTOMOTIVE_DESIGN.' + 'JOGGLE_TERMINATION' IN TYPEOF(sar.relating_shape_aspect)))) = 1))) = 1; wr10 : SIZEOF(QUERY(pdr <* get_property_definition_representations(SELF) | ( 'AUTOMOTIVE_DESIGN.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation)) AND (SIZEOF(QUERY(i <* pdr.used_representation. items | (i.name = 'base radius 1') AND (SIZEOF(['AUTOMOTIVE_DESIGN.' + 'MEASURE_REPRESENTATION_ITEM', 'AUTOMOTIVE_DESIGN.' + 'LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(i)) = 2))) = 1))) <= 1; wr11 : SIZEOF(QUERY(pdr <* get_property_definition_representations(SELF) | ( 'AUTOMOTIVE_DESIGN.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation)) AND (SIZEOF(QUERY(i <* pdr.used_representation. items | (i.name = 'base radius 2') AND (SIZEOF(['AUTOMOTIVE_DESIGN.' + 'MEASURE_REPRESENTATION_ITEM', 'AUTOMOTIVE_DESIGN.' + 'LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(i)) = 2))) = 1))) <= 1; wr12 : SIZEOF(QUERY(pdr <* get_property_definition_representations(SELF) | ( 'AUTOMOTIVE_DESIGN.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation)) AND (SIZEOF(QUERY(i <* pdr.used_representation. items | (i.name = 'top radius 1') AND (SIZEOF(['AUTOMOTIVE_DESIGN.' + 'MEASURE_REPRESENTATION_ITEM', 'AUTOMOTIVE_DESIGN.' + 'LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(i)) = 2))) = 1))) <= 1; wr13 : SIZEOF(QUERY(pdr <* get_property_definition_representations(SELF) | ( 'AUTOMOTIVE_DESIGN.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation)) AND (SIZEOF(QUERY(i <* pdr.used_representation. items | (i.name = 'top radius 2') AND (SIZEOF(['AUTOMOTIVE_DESIGN.' + 'MEASURE_REPRESENTATION_ITEM', 'AUTOMOTIVE_DESIGN.' + 'LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(i)) = 2))) = 1))) <= 1; END_ENTITY; -- 10303-214: automotive_design ENTITY joggle_termination SUBTYPE OF (shape_aspect); WHERE wr1 : 'AUTOMOTIVE_DESIGN.' + '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) | 'AUTOMOTIVE_DESIGN.' + '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) | ( 'AUTOMOTIVE_DESIGN.' + '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) | ( 'AUTOMOTIVE_DESIGN.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation)) AND (SIZEOF(QUERY(i <* pdr.used_representation. items | (i.name = 'depth') AND (SIZEOF(['AUTOMOTIVE_DESIGN.' + 'MEASURE_REPRESENTATION_ITEM', 'AUTOMOTIVE_DESIGN.' + '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) | ( 'AUTOMOTIVE_DESIGN.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation)) AND (SIZEOF(QUERY(i <* pdr.used_representation. items | (i.name = 'angle') AND (SIZEOF(['AUTOMOTIVE_DESIGN.' + 'MEASURE_REPRESENTATION_ITEM', 'AUTOMOTIVE_DESIGN.' + 'PLANE_ANGLE_MEASURE_WITH_UNIT'] * TYPEOF(i)) = 2))) = 1))) = 1); wr7 : SIZEOF(QUERY(sar <* USEDIN(SELF, 'AUTOMOTIVE_DESIGN.SHAPE_ASPECT_RELATIONSHIP.RELATING_SHAPE_ASPECT') | ( 'AUTOMOTIVE_DESIGN.' + 'FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF(sar)) AND (sar.name = 'joggle termination usage') AND ('AUTOMOTIVE_DESIGN.' + '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; -- 10303-214: automotive_design ENTITY kinematic_analysis_consistency; control : kinematic_control; result : kinematic_analysis_result; WHERE wr1 : control.controlled_mechanism :=: result.analysed_mechanism; END_ENTITY; -- 10303-105: kinematic_analysis_control_and_result_schema ENTITY kinematic_analysis_result; analysed_mechanism : mechanism; contained_kinematic_results : SET [1:?] OF kinematic_result; WHERE wr1 : (SIZEOF(QUERY(result <* contained_kinematic_results | 'AUTOMOTIVE_DESIGN.RESULTING_PATH' IN TYPEOF(result))) > 0) XOR (SIZEOF( QUERY(result <* contained_kinematic_results | ('AUTOMOTIVE_DESIGN.' + 'INTERPOLATED_CONFIGURATION_SEQUENCE' IN TYPEOF(result)) AND (SIZEOF(QUERY( sequence <* result\interpolated_configuration_sequence.interpolation | sequence.interpolation <> undefined)) > 0))) = 0); END_ENTITY; -- 10303-105: kinematic_analysis_control_and_result_schema ENTITY kinematic_control; controlled_mechanism : mechanism; contained_kinematic_programs : SET [1:?] OF kinematic_analysis_definition; END_ENTITY; -- 10303-105: kinematic_analysis_control_and_result_schema ENTITY kinematic_frame_background_representation SUBTYPE OF (representation); SELF\representation.items : SET [1:?] OF kinematic_frame_background; SELF\representation.context_of_items : geometric_representation_context; WHERE wr1 : SELF\representation.context_of_items\geometric_representation_context. coordinate_space_dimension = 3; END_ENTITY; -- 10303-105: kinematic_structure_schema ENTITY kinematic_frame_background_representation_association SUBTYPE OF (representation_relationship_with_transformation); SELF\representation_relationship_with_transformation.transformation_operator : kinematic_frame_based_transformation; WHERE wr1 : 'AUTOMOTIVE_DESIGN.KINEMATIC_LINK_REPRESENTATION' IN TYPEOF(SELF\ representation_relationship.rep_1); wr2 : 'AUTOMOTIVE_DESIGN.KINEMATIC_FRAME_BACKGROUND_REPRESENTATION' IN TYPEOF(SELF\representation_relationship.rep_2); wr3 : SELF\representation_relationship_with_transformation. transformation_operator\kinematic_frame_based_transformation.transformator IN SELF\representation_relationship.rep_1.items; END_ENTITY; -- 10303-105: kinematic_structure_schema ENTITY kinematic_frame_based_transformation SUBTYPE OF (geometric_representation_item, functionally_defined_transformation) ; transformator : rigid_placement; WHERE wr1 : SELF\geometric_representation_item.dim = 3; END_ENTITY; -- 10303-105: kinematic_structure_schema ENTITY kinematic_ground_representation SUBTYPE OF (representation); INVERSE property : kinematic_property_representation_relation FOR used_representation ; WHERE wr1 : 'AUTOMOTIVE_DESIGN.GEOMETRIC_REPRESENTATION_CONTEXT' IN TYPEOF(SELF\ representation.context_of_items); END_ENTITY; -- 10303-105: kinematic_structure_schema ENTITY kinematic_joint; first_link : kinematic_link; second_link : kinematic_link; INVERSE structure : kinematic_structure FOR joints; WHERE wr1 : first_link :<>: second_link; END_ENTITY; -- 10303-105: kinematic_structure_schema ENTITY kinematic_link; WHERE wr1 : SIZEOF(USEDIN(SELF, 'AUTOMOTIVE_DESIGN.KINEMATIC_JOINT.FIRST_LINK') + USEDIN(SELF, 'AUTOMOTIVE_DESIGN.KINEMATIC_JOINT.SECOND_LINK')) > 0; wr2 : unique_link_usage(SELF); END_ENTITY; -- 10303-105: kinematic_structure_schema ENTITY kinematic_link_representation SUBTYPE OF (representation); SELF\representation.context_of_items : geometric_representation_context; DERIVE link_frame : geometric_representation_context := SELF\representation. context_of_items; INVERSE link_representation_relation : kinematic_link_representation_relation FOR geometric_aspects; WHERE wr1 : SIZEOF(QUERY(item <* SELF\representation.items | NOT (( 'AUTOMOTIVE_DESIGN.RIGID_PLACEMENT' IN TYPEOF(item)) OR ( 'AUTOMOTIVE_DESIGN.CARTESIAN_TRANSFORMATION_OPERATOR_3D' IN TYPEOF(item) )))) = 0; END_ENTITY; -- 10303-105: kinematic_structure_schema ENTITY kinematic_link_representation_association SUBTYPE OF (representation_relationship); SELF\representation_relationship.rep_1 : kinematic_link_representation; WHERE wr1 : SELF\representation_relationship.rep_2.context_of_items :=: SELF\ representation_relationship.rep_1\representation.context_of_items; wr2 : SIZEOF(['AUTOMOTIVE_DESIGN.KINEMATIC_GROUND_REPRESENTATION', 'AUTOMOTIVE_DESIGN.KINEMATIC_LINK_REPRESENTATION'] * TYPEOF(SELF\ representation_relationship.rep_2)) = 0; END_ENTITY; -- 10303-105: kinematic_structure_schema ENTITY kinematic_link_representation_relation; topological_aspects : kinematic_link; geometric_aspects : kinematic_link_representation; UNIQUE ur1 : topological_aspects; END_ENTITY; -- 10303-105: kinematic_structure_schema ENTITY kinematic_pair SUBTYPE OF (item_defined_transformation); joint : kinematic_joint; DERIVE pair_placement_in_first_link_context : rigid_placement := SELF\ item_defined_transformation.transform_item_1; pair_placement_in_second_link_context : rigid_placement := SELF\ item_defined_transformation.transform_item_2; UNIQUE ur1 : joint; WHERE wr1 : coordinated_pair_link_representation(joint.first_link, pair_placement_in_first_link_context); wr2 : coordinated_pair_link_representation(joint.second_link, pair_placement_in_second_link_context); END_ENTITY; -- 10303-105: kinematic_structure_schema ENTITY kinematic_path SUBTYPE OF (representation_item); END_ENTITY; -- 10303-105: kinematic_motion_representation_schema ENTITY kinematic_property_definition SUBTYPE OF (property_definition); ground_definition : characterized_definition; END_ENTITY; -- 10303-105: kinematic_structure_schema ENTITY kinematic_property_representation_relation SUBTYPE OF (property_definition_representation); UNIQUE ur1 : SELF\property_definition_representation.definition; WHERE wr1 : 'AUTOMOTIVE_DESIGN.KINEMATIC_PROPERTY_DEFINITION' IN TYPEOF(SELF\ property_definition_representation.definition); wr2 : 'AUTOMOTIVE_DESIGN.KINEMATIC_GROUND_REPRESENTATION' IN TYPEOF(SELF\ property_definition_representation.used_representation); END_ENTITY; -- 10303-105: kinematic_structure_schema ENTITY kinematic_structure; joints : SET [1:?] OF kinematic_joint; END_ENTITY; -- 10303-105: kinematic_structure_schema ENTITY known_source SUBTYPE OF (external_source, pre_defined_item); END_ENTITY; -- 10303-214: automotive_design ENTITY language SUBTYPE OF (group); END_ENTITY; -- 10303-214: automotive_design ENTITY language_assignment SUBTYPE OF (classification_assignment); items : SET [1:?] OF language_item; WHERE wr1 : 'AUTOMOTIVE_DESIGN.' + 'LANGUAGE' IN TYPEOF(SELF.assigned_class); wr2 : SELF.role.name = 'language'; wr3 : SIZEOF(SELF.items) = SIZEOF(QUERY(i <* SELF.items | ( 'AUTOMOTIVE_DESIGN.' + 'REPRESENTATION' IN TYPEOF(i)) AND (i\ representation.name = 'document content'))); END_ENTITY; -- 10303-214: automotive_design ENTITY leader_curve SUBTYPE OF (annotation_curve_occurrence); WHERE wr1 : SIZEOF(QUERY(ldc <* USEDIN(SELF, 'AUTOMOTIVE_DESIGN.DRAUGHTING_CALLOUT.CONTENTS') | 'AUTOMOTIVE_DESIGN.' + 'LEADER_DIRECTED_CALLOUT' IN TYPEOF(ldc))) >= 1; END_ENTITY; -- 10303-101: draughting_element_schema ENTITY leader_directed_callout SUBTYPE OF (draughting_callout); WHERE wr1 : SIZEOF(QUERY(l_1 <* SELF\draughting_callout.contents | 'AUTOMOTIVE_DESIGN.LEADER_CURVE' IN TYPEOF(l_1))) >= 1; wr2 : SIZEOF(SELF\draughting_callout.contents) >= 2; END_ENTITY; -- 10303-101: draughting_element_schema ENTITY leader_directed_dimension SUBTYPE OF (leader_directed_callout); WHERE wr1 : SIZEOF(QUERY(con <* SELF.contents | 'AUTOMOTIVE_DESIGN.LEADER_CURVE' IN TYPEOF(con))) = 1; END_ENTITY; -- 10303-506: aic_draughting_elements ENTITY leader_terminator SUBTYPE OF (terminator_symbol); WHERE wr1 : 'AUTOMOTIVE_DESIGN.LEADER_CURVE' IN TYPEOF(SELF\terminator_symbol. annotated_curve); END_ENTITY; -- 10303-101: draughting_element_schema ENTITY length_function SUBTYPE OF (numeric_expression, unary_generic_expression); SELF\unary_generic_expression.operand : string_expression; END_ENTITY; (* declared in: iso13584_expressions_schema *) ENTITY length_measure_with_unit SUBTYPE OF (measure_with_unit); WHERE wr1 : 'AUTOMOTIVE_DESIGN.LENGTH_UNIT' IN TYPEOF(SELF\measure_with_unit. unit_component); END_ENTITY; -- 10303-41: measure_schema ENTITY length_unit SUBTYPE OF (named_unit); WHERE wr1 : (SELF\named_unit.dimensions.length_exponent = 1.000000) AND (SELF\ named_unit.dimensions.mass_exponent = 0.000000) AND (SELF\named_unit .dimensions.time_exponent = 0.000000) AND (SELF\named_unit.dimensions. electric_current_exponent = 0.000000) AND (SELF\named_unit.dimensions. thermodynamic_temperature_exponent = 0.000000) AND (SELF\named_unit. dimensions.amount_of_substance_exponent = 0.000000) AND (SELF\named_unit. dimensions.luminous_intensity_exponent = 0.000000); END_ENTITY; -- 10303-41: measure_schema ENTITY light_source SUPERTYPE OF (ONEOF (light_source_ambient, light_source_directional, light_source_positional, light_source_spot)) SUBTYPE OF (geometric_representation_item); light_colour : colour; WHERE wr1 : SIZEOF(USEDIN(SELF, 'AUTOMOTIVE_DESIGN.STYLED_ITEM.ITEM')) = 0; END_ENTITY; -- 10303-46: presentation_organization_schema ENTITY light_source_ambient SUBTYPE OF (light_source); END_ENTITY; -- 10303-46: presentation_organization_schema ENTITY light_source_directional SUBTYPE OF (light_source); orientation : direction; END_ENTITY; -- 10303-46: presentation_organization_schema ENTITY light_source_positional SUBTYPE OF (light_source); position : cartesian_point; constant_attenuation : REAL; distance_attenuation : REAL; END_ENTITY; -- 10303-46: presentation_organization_schema ENTITY light_source_spot SUBTYPE OF (light_source); position : cartesian_point; orientation : direction; concentration_exponent : REAL; constant_attenuation : REAL; distance_attenuation : REAL; spread_angle : positive_plane_angle_measure; END_ENTITY; -- 10303-46: presentation_organization_schema ENTITY like_expression SUBTYPE OF (comparison_expression); WHERE wr1 : ('AUTOMOTIVE_DESIGN.STRING_EXPRESSION' IN TYPEOF(SELF\ comparison_expression.operands[1])) AND ( 'AUTOMOTIVE_DESIGN.STRING_EXPRESSION' IN TYPEOF(SELF\ comparison_expression.operands[2])); END_ENTITY; (* declared in: iso13584_expressions_schema *) ENTITY limits_and_fits; form_variance : label; zone_variance : label; grade : label; source : text; END_ENTITY; -- 10303-47: shape_tolerance_schema ENTITY line SUBTYPE OF (curve); pnt : cartesian_point; dir : vector; WHERE wr1 : dir.dim = pnt.dim; END_ENTITY; -- 10303-42: geometry_schema ENTITY line_profile_tolerance SUBTYPE OF (geometric_tolerance); WHERE wr1 : NOT ('AUTOMOTIVE_DESIGN.' + 'GEOMETRIC_TOLERANCE_WITH_DATUM_REFERENCE' IN TYPEOF(SELF)) OR (SIZEOF(SELF \geometric_tolerance_with_datum_reference.datum_system) <= 3); wr2 : SIZEOF(QUERY(sar <* USEDIN(SELF\geometric_tolerance. toleranced_shape_aspect, 'AUTOMOTIVE_DESIGN.SHAPE_ASPECT_RELATIONSHIP.RELATING_SHAPE_ASPECT') | sar.name IN ['affected plane association', 'resulting intersection curve association'])) = 1; END_ENTITY; -- 10303-519: aic_geometric_tolerances ENTITY linear_dimension SUBTYPE OF (dimension_curve_directed_callout); END_ENTITY; -- 10303-506: aic_draughting_elements ENTITY literal_number ABSTRACT SUPERTYPE OF (ONEOF (int_literal, real_literal)) SUBTYPE OF (simple_numeric_expression, generic_literal); the_value : NUMBER; END_ENTITY; (* declared in: iso13584_expressions_schema *) ENTITY local_time; hour_component : hour_in_day; minute_component : OPTIONAL minute_in_hour; second_component : OPTIONAL second_in_minute; zone : coordinated_universal_time_offset; WHERE wr1 : valid_time(SELF); END_ENTITY; -- 10303-41: date_time_schema ENTITY location_shape_representation SUBTYPE OF (shape_representation); WHERE wr1 : SIZEOF(SELF.items) = 1; wr2 : SIZEOF(QUERY(i <* SELF.items | 'AUTOMOTIVE_DESIGN.' + 'POINT' IN TYPEOF(i))) = 1; END_ENTITY; -- 10303-214: automotive_design ENTITY locator SUBTYPE OF (feature_definition); WHERE wr1 : SIZEOF(QUERY(pdr <* get_property_definition_representations(SELF) | ( 'AUTOMOTIVE_DESIGN.' + '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) | ( 'AUTOMOTIVE_DESIGN.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation)) AND (SIZEOF(QUERY(i <* pdr.used_representation. items | (i.name = 'diameter') AND (SIZEOF(['AUTOMOTIVE_DESIGN.' + 'MEASURE_REPRESENTATION_ITEM', 'AUTOMOTIVE_DESIGN.' + 'LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(i)) = 2))) = 1))) = 1; wr3 : SIZEOF(QUERY(pdr <* get_property_definition_representations(SELF) | ( 'AUTOMOTIVE_DESIGN.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation)) AND (SIZEOF(QUERY(i <* pdr.used_representation. items | (i.name = 'tip radius') AND (SIZEOF(['AUTOMOTIVE_DESIGN.' + 'MEASURE_REPRESENTATION_ITEM', 'AUTOMOTIVE_DESIGN.' + 'LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(i)) = 2))) = 1))) <= 1; wr4 : SIZEOF(QUERY(pdr <* get_property_definition_representations(SELF) | ( 'AUTOMOTIVE_DESIGN.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation)) AND (SIZEOF(QUERY(i <* pdr.used_representation. items | (i.name = 'tip angle') AND (SIZEOF(['AUTOMOTIVE_DESIGN.' + 'MEASURE_REPRESENTATION_ITEM', 'AUTOMOTIVE_DESIGN.' + 'PLANE_ANGLE_MEASURE_WITH_UNIT'] * TYPEOF(i)) = 2))) = 1))) = 1; wr5 : SIZEOF(QUERY(pdr <* get_property_definition_representations(SELF) | ( 'AUTOMOTIVE_DESIGN.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation)) AND (SIZEOF(QUERY(i <* pdr.used_representation. items | (i.name = 'base radius') AND (SIZEOF(['AUTOMOTIVE_DESIGN.' + 'MEASURE_REPRESENTATION_ITEM', 'AUTOMOTIVE_DESIGN.' + 'LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(i)) = 2))) = 1))) <= 1; END_ENTITY; -- 10303-214: automotive_design ENTITY log10_function SUBTYPE OF (unary_function_call); END_ENTITY; (* declared in: iso13584_expressions_schema *) ENTITY log2_function SUBTYPE OF (unary_function_call); END_ENTITY; (* declared in: iso13584_expressions_schema *) ENTITY log_function SUBTYPE OF (unary_function_call); END_ENTITY; (* declared in: iso13584_expressions_schema *) ENTITY loop SUPERTYPE OF (ONEOF (vertex_loop, edge_loop, poly_loop)) SUBTYPE OF (topological_representation_item); END_ENTITY; -- 10303-42: topology_schema ENTITY lot_effectivity SUBTYPE OF (effectivity); effectivity_lot_id : identifier; effectivity_lot_size : measure_with_unit; END_ENTITY; -- 10303-41: effectivity_schema ENTITY luminous_intensity_measure_with_unit SUBTYPE OF (measure_with_unit); WHERE wr1 : 'AUTOMOTIVE_DESIGN.LUMINOUS_INTENSITY_UNIT' IN TYPEOF(SELF\ measure_with_unit.unit_component); END_ENTITY; -- 10303-41: measure_schema ENTITY luminous_intensity_unit SUBTYPE OF (named_unit); WHERE wr1 : (SELF\named_unit.dimensions.length_exponent = 0.000000) AND (SELF\ named_unit.dimensions.mass_exponent = 0.000000) AND (SELF\named_unit .dimensions.time_exponent = 0.000000) AND (SELF\named_unit.dimensions. electric_current_exponent = 0.000000) AND (SELF\named_unit.dimensions. thermodynamic_temperature_exponent = 0.000000) AND (SELF\named_unit. dimensions.amount_of_substance_exponent = 0.000000) AND (SELF\named_unit. dimensions.luminous_intensity_exponent = 1.000000); END_ENTITY; -- 10303-41: measure_schema ENTITY make_from_usage_option SUBTYPE OF (product_definition_usage); ranking : INTEGER; ranking_rationale : text; quantity : measure_with_unit; WHERE wr1 : NOT ('NUMBER' IN TYPEOF(quantity.value_component)) OR (quantity. value_component > 0); END_ENTITY; -- 10303-44: product_structure_schema ENTITY manifold_solid_brep SUBTYPE OF (solid_model); outer : closed_shell; END_ENTITY; -- 10303-42: geometric_model_schema ENTITY manifold_subsurface_shape_representation SUBTYPE OF (shape_representation); WHERE wr1 : SIZEOF(QUERY(it <* SELF.items | NOT (SIZEOF([ 'AUTOMOTIVE_DESIGN.CONNECTED_FACE_SUB_SET', 'AUTOMOTIVE_DESIGN.MAPPED_ITEM', 'AUTOMOTIVE_DESIGN.AXIS2_PLACEMENT_3D'] * TYPEOF(it)) = 1))) = 0; wr2 : SIZEOF(QUERY(it <* SELF.items | SIZEOF([ 'AUTOMOTIVE_DESIGN.CONNECTED_FACE_SUB_SET', 'AUTOMOTIVE_DESIGN.MAPPED_ITEM'] * TYPEOF(it)) = 1)) > 0; wr3 : SIZEOF(QUERY(mi <* QUERY(it <* items | 'AUTOMOTIVE_DESIGN.MAPPED_ITEM' IN TYPEOF(it)) | NOT ( 'AUTOMOTIVE_DESIGN.MANIFOLD_SUBSURFACE_SHAPE_REPRESENTATION' IN TYPEOF( mi\mapped_item.mapping_source.mapped_representation)))) = 0; wr4 : SIZEOF(QUERY(cfss <* QUERY(it <* SELF.items | 'AUTOMOTIVE_DESIGN.CONNECTED_FACE_SUB_SET' IN TYPEOF(it)) | NOT ( 'AUTOMOTIVE_DESIGN.OPEN_SHELL' IN TYPEOF(cfss)))) = 0; wr5 : SIZEOF(QUERY(cfss <* QUERY(it <* SELF.items | 'AUTOMOTIVE_DESIGN.CONNECTED_FACE_SUB_SET' IN TYPEOF(it)) | NOT (( 'AUTOMOTIVE_DESIGN.CONNECTED_FACE_SUB_SET' IN TYPEOF(cfss. parent_face_set)) AND (SIZEOF(QUERY(fac <* cfss.parent_face_set.cfs_faces | NOT advanced_face_properties(fac))) = 0) OR (SIZEOF(QUERY(fac <* cfss. parent_face_set.cfs_faces | NOT ('AUTOMOTIVE_DESIGN.ADVANCED_FACE' IN TYPEOF(fac)))) = 0)))) = 0; wr6 : SIZEOF(QUERY(cfss <* QUERY(it <* SELF.items | 'AUTOMOTIVE_DESIGN.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 | 'AUTOMOTIVE_DESIGN.CONNECTED_FACE_SUB_SET' IN TYPEOF(it)) | NOT (SIZEOF( QUERY(fcs <* cfss\connected_face_set.cfs_faces | ( 'AUTOMOTIVE_DESIGN.SUBFACE' IN TYPEOF(fcs)) AND NOT (SIZEOF(QUERY( elp_fbnds <* QUERY(bnds <* fcs.bounds | 'AUTOMOTIVE_DESIGN.EDGE_LOOP' IN TYPEOF(bnds.bound)) | NOT (SIZEOF(QUERY(oe <* elp_fbnds.bound\path. edge_list | NOT (('AUTOMOTIVE_DESIGN.EDGE_CURVE' IN TYPEOF(oe. edge_element)) OR ('AUTOMOTIVE_DESIGN.SUBEDGE' IN TYPEOF(oe.edge_element ))))) = 0))) = 0))) = 0))) = 0; wr8 : SIZEOF(QUERY(cfss <* QUERY(it <* SELF.items | 'AUTOMOTIVE_DESIGN.CONNECTED_FACE_SUB_SET' IN TYPEOF(it)) | NOT (SIZEOF( QUERY(fcs <* cfss\connected_face_set.cfs_faces | ( 'AUTOMOTIVE_DESIGN.SUBFACE' IN TYPEOF(fcs)) AND NOT (SIZEOF(QUERY( elp_fbnds <* QUERY(bnds <* fcs.bounds | 'AUTOMOTIVE_DESIGN.EDGE_LOOP' IN TYPEOF(bnds.bound)) | NOT (SIZEOF(QUERY(oe <* elp_fbnds.bound\path. edge_list | NOT (('AUTOMOTIVE_DESIGN.VERTEX_POINT' IN TYPEOF(oe. edge_start)) AND ('AUTOMOTIVE_DESIGN.VERTEX_POINT' IN TYPEOF(oe.edge_end ))))) = 0))) = 0))) = 0))) = 0; wr9 : SIZEOF(QUERY(cfss <* QUERY(it <* SELF.items | 'AUTOMOTIVE_DESIGN.CONNECTED_FACE_SUB_SET' IN TYPEOF(it)) | NOT (SIZEOF( QUERY(fcs <* cfss\connected_face_set.cfs_faces | ( 'AUTOMOTIVE_DESIGN.SUBFACE' IN TYPEOF(fcs)) AND NOT (SIZEOF(QUERY(bnds <* fcs.bounds | NOT (SIZEOF(['AUTOMOTIVE_DESIGN.EDGE_LOOP', 'AUTOMOTIVE_DESIGN.VERTEX_LOOP'] * TYPEOF(bnds.bound)) = 1))) = 0))) = 0 ))) = 0; wr10 : SIZEOF(QUERY(cfss <* QUERY(it <* SELF.items | 'AUTOMOTIVE_DESIGN.CONNECTED_FACE_SUB_SET' IN TYPEOF(it)) | NOT (SIZEOF( QUERY(fcs <* cfss\connected_face_set.cfs_faces | ( 'AUTOMOTIVE_DESIGN.SUBFACE' IN TYPEOF(fcs)) AND NOT (SIZEOF(QUERY( elp_fbnds <* QUERY(bnds <* fcs.bounds | 'AUTOMOTIVE_DESIGN.EDGE_LOOP' IN TYPEOF(bnds.bound)) | NOT (SIZEOF(QUERY(oe <* elp_fbnds.bound\path. edge_list | NOT (SIZEOF(['AUTOMOTIVE_DESIGN.LINE', 'AUTOMOTIVE_DESIGN.CONIC', 'AUTOMOTIVE_DESIGN.POLYLINE', 'AUTOMOTIVE_DESIGN.SURFACE_CURVE', 'AUTOMOTIVE_DESIGN.B_SPLINE_CURVE' ] * TYPEOF(oe.edge_element\edge_curve.edge_geometry)) = 1))) = 0))) = 0))) = 0))) = 0; wr11 : SIZEOF(QUERY(cfss <* QUERY(it <* SELF.items | 'AUTOMOTIVE_DESIGN.CONNECTED_FACE_SUB_SET' IN TYPEOF(it)) | NOT (SIZEOF( QUERY(fcs <* cfss\connected_face_set.cfs_faces | ( 'AUTOMOTIVE_DESIGN.SUBFACE' IN TYPEOF(fcs)) AND NOT (SIZEOF(QUERY( elp_fbnds <* QUERY(bnds <* fcs.bounds | 'AUTOMOTIVE_DESIGN.EDGE_LOOP' IN TYPEOF(bnds.bound)) | NOT (SIZEOF(QUERY(oe <* elp_fbnds.bound\path. edge_list | ('AUTOMOTIVE_DESIGN.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 ( 'AUTOMOTIVE_DESIGN.PCURVE' IN TYPEOF(sc_ag)))) = 0))) = 0))) = 0))) = 0) )) = 0; wr12 : SIZEOF(QUERY(cfss <* QUERY(it <* SELF.items | 'AUTOMOTIVE_DESIGN.CONNECTED_FACE_SUB_SET' IN TYPEOF(it)) | NOT (SIZEOF( QUERY(fcs <* cfss\connected_face_set.cfs_faces | ( 'AUTOMOTIVE_DESIGN.SUBFACE' IN TYPEOF(fcs)) AND NOT (SIZEOF(QUERY( elp_fbnds <* QUERY(bnds <* fcs.bounds | 'AUTOMOTIVE_DESIGN.EDGE_LOOP' IN TYPEOF(bnds.bound)) | NOT (SIZEOF(QUERY(oe <* elp_fbnds.bound\path. edge_list | ('AUTOMOTIVE_DESIGN.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; -- 10303-521: aic_manifold_subsurface ENTITY manifold_surface_shape_representation SUBTYPE OF (shape_representation); WHERE wr1 : SIZEOF(QUERY(it <* SELF.items | NOT (SIZEOF([ 'AUTOMOTIVE_DESIGN.SHELL_BASED_SURFACE_MODEL', 'AUTOMOTIVE_DESIGN.MAPPED_ITEM', 'AUTOMOTIVE_DESIGN.AXIS2_PLACEMENT_3D'] * TYPEOF(it)) = 1))) = 0; wr2 : SIZEOF(QUERY(it <* SELF.items | SIZEOF([ 'AUTOMOTIVE_DESIGN.SHELL_BASED_SURFACE_MODEL', 'AUTOMOTIVE_DESIGN.MAPPED_ITEM'] * TYPEOF(it)) = 1)) > 0; wr3 : SIZEOF(QUERY(mi <* QUERY(it <* SELF.items | 'AUTOMOTIVE_DESIGN.MAPPED_ITEM' IN TYPEOF(it)) | NOT (( 'AUTOMOTIVE_DESIGN.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 | 'AUTOMOTIVE_DESIGN.SHELL_BASED_SURFACE_MODEL' IN TYPEOF(mr_it))) > 0)))) = 0; wr4 : SIZEOF(QUERY(sbsm <* QUERY(it <* SELF.items | 'AUTOMOTIVE_DESIGN.SHELL_BASED_SURFACE_MODEL' IN TYPEOF(it)) | NOT ( SIZEOF(QUERY(sh <* sbsm\shell_based_surface_model.sbsm_boundary | NOT ( SIZEOF(['AUTOMOTIVE_DESIGN.OPEN_SHELL', 'AUTOMOTIVE_DESIGN.ORIENTED_CLOSED_SHELL', 'AUTOMOTIVE_DESIGN.CLOSED_SHELL'] * TYPEOF(sh)) = 1))) = 0))) = 0; wr5 : SIZEOF(QUERY(sbsm <* QUERY(it <* SELF.items | 'AUTOMOTIVE_DESIGN.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 ( 'AUTOMOTIVE_DESIGN.FACE_SURFACE' IN TYPEOF(fa)))) = 0))) = 0))) = 0; wr6 : SIZEOF(QUERY(sbsm <* QUERY(it <* SELF.items | 'AUTOMOTIVE_DESIGN.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 (( 'AUTOMOTIVE_DESIGN.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 | 'AUTOMOTIVE_DESIGN.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 (( 'AUTOMOTIVE_DESIGN.ADVANCED_FACE' IN TYPEOF(fa)) OR (SIZEOF(QUERY(bnds <* fa.bounds | NOT (SIZEOF(['AUTOMOTIVE_DESIGN.EDGE_LOOP', 'AUTOMOTIVE_DESIGN.VERTEX_LOOP'] * TYPEOF(bnds.bound)) = 1))) = 0)))) = 0))) = 0))) = 0; wr8 : SIZEOF(QUERY(sbsm <* QUERY(it <* SELF.items | 'AUTOMOTIVE_DESIGN.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 (( 'AUTOMOTIVE_DESIGN.ADVANCED_FACE' IN TYPEOF(fa)) OR (SIZEOF(QUERY( elp_fbnds <* QUERY(bnds <* fa.bounds | 'AUTOMOTIVE_DESIGN.EDGE_LOOP' IN TYPEOF(bnds.bound)) | NOT (SIZEOF(QUERY(oe <* elp_fbnds\path.edge_list | NOT ('AUTOMOTIVE_DESIGN.EDGE_CURVE' IN TYPEOF(oe.edge_element)))) = 0))) = 0)))) = 0))) = 0))) = 0; wr9 : SIZEOF(QUERY(sbsm <* QUERY(it <* SELF.items | 'AUTOMOTIVE_DESIGN.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 (( 'AUTOMOTIVE_DESIGN.ADVANCED_FACE' IN TYPEOF(fa)) OR (SIZEOF(QUERY( elp_fbnds <* QUERY(bnds <* fa.bounds | 'AUTOMOTIVE_DESIGN.EDGE_LOOP' IN TYPEOF(bnds.bound)) | NOT (SIZEOF(QUERY(oe_cv <* QUERY(oe <* elp_fbnds\path .edge_list | 'AUTOMOTIVE_DESIGN.EDGE_CURVE' IN TYPEOF(oe.edge_element)) | NOT (SIZEOF(['AUTOMOTIVE_DESIGN.B_SPLINE_CURVE', 'AUTOMOTIVE_DESIGN.CONIC', 'AUTOMOTIVE_DESIGN.CURVE_REPLICA', 'AUTOMOTIVE_DESIGN.LINE', 'AUTOMOTIVE_DESIGN.OFFSET_CURVE_3D', 'AUTOMOTIVE_DESIGN.PCURVE', 'AUTOMOTIVE_DESIGN.POLYLINE', 'AUTOMOTIVE_DESIGN.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 | 'AUTOMOTIVE_DESIGN.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 (( 'AUTOMOTIVE_DESIGN.ADVANCED_FACE' IN TYPEOF(fa)) OR (SIZEOF(QUERY( elp_fbnds <* QUERY(bnds <* fa.bounds | 'AUTOMOTIVE_DESIGN.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 | 'AUTOMOTIVE_DESIGN.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 (( 'AUTOMOTIVE_DESIGN.ADVANCED_FACE' IN TYPEOF(fa)) OR (SIZEOF(QUERY( elp_fbnds <* QUERY(bnds <* fa.bounds | 'AUTOMOTIVE_DESIGN.EDGE_LOOP' IN TYPEOF(bnds.bound)) | NOT (SIZEOF(QUERY(oe <* elp_fbnds\path.edge_list | NOT (('AUTOMOTIVE_DESIGN.VERTEX_POINT' IN TYPEOF(oe.edge_element. edge_start)) AND ('AUTOMOTIVE_DESIGN.VERTEX_POINT' IN TYPEOF(oe. edge_element.edge_end))))) = 0))) = 0)))) = 0))) = 0))) = 0; wr12 : SIZEOF(QUERY(sbsm <* QUERY(it <* SELF.items | 'AUTOMOTIVE_DESIGN.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 (( 'AUTOMOTIVE_DESIGN.ADVANCED_FACE' IN TYPEOF(fa)) OR (SIZEOF(QUERY( elp_fbnds <* QUERY(bnds <* fa.bounds | 'AUTOMOTIVE_DESIGN.EDGE_LOOP' IN TYPEOF(bnds.bound)) | NOT (SIZEOF(QUERY(oe <* elp_fbnds\path.edge_list | NOT ((SIZEOF(['AUTOMOTIVE_DESIGN.CARTESIAN_POINT', 'AUTOMOTIVE_DESIGN.DEGENERATE_PCURVE', 'AUTOMOTIVE_DESIGN.POINT_ON_CURVE', 'AUTOMOTIVE_DESIGN.POINT_ON_SURFACE'] * TYPEOF(oe.edge_element. edge_start\vertex_point.vertex_geometry)) = 1) AND (SIZEOF([ 'AUTOMOTIVE_DESIGN.CARTESIAN_POINT', 'AUTOMOTIVE_DESIGN.DEGENERATE_PCURVE', 'AUTOMOTIVE_DESIGN.POINT_ON_CURVE', 'AUTOMOTIVE_DESIGN.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 | 'AUTOMOTIVE_DESIGN.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 (( 'AUTOMOTIVE_DESIGN.ADVANCED_FACE' IN TYPEOF(fa)) OR (SIZEOF(QUERY( vlp_fbnds <* QUERY(bnds <* fa.bounds | 'AUTOMOTIVE_DESIGN.VERTEX_LOOP' IN TYPEOF(bnds.bound)) | NOT ('AUTOMOTIVE_DESIGN.VERTEX_POINT' IN TYPEOF (vlp_fbnds\vertex_loop.loop_vertex)))) = 0)))) = 0))) = 0))) = 0; wr14 : SIZEOF(QUERY(sbsm <* QUERY(it <* SELF.items | 'AUTOMOTIVE_DESIGN.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 (( 'AUTOMOTIVE_DESIGN.ADVANCED_FACE' IN TYPEOF(fa)) OR (SIZEOF(QUERY( vlp_fbnds <* QUERY(bnds <* fa.bounds | 'AUTOMOTIVE_DESIGN.VERTEX_LOOP' IN TYPEOF(bnds.bound)) | NOT (SIZEOF([ 'AUTOMOTIVE_DESIGN.CARTESIAN_POINT', 'AUTOMOTIVE_DESIGN.DEGENERATE_PCURVE', 'AUTOMOTIVE_DESIGN.POINT_ON_CURVE', 'AUTOMOTIVE_DESIGN.POINT_ON_SURFACE'] * TYPEOF(vlp_fbnds\vertex_loop. loop_vertex\vertex_point.vertex_geometry)) = 1))) = 0)))) = 0))) = 0))) = 0 ; END_ENTITY; -- 10303-509: aic_manifold_surface ENTITY mapped_item SUBTYPE OF (representation_item); mapping_source : representation_map; mapping_target : representation_item; WHERE wr1 : acyclic_mapped_representation(using_representations(SELF), [SELF]); END_ENTITY; -- 10303-43: representation_schema ENTITY mass_measure_with_unit SUBTYPE OF (measure_with_unit); WHERE wr1 : 'AUTOMOTIVE_DESIGN.MASS_UNIT' IN TYPEOF(SELF\measure_with_unit. unit_component); END_ENTITY; -- 10303-41: measure_schema ENTITY mass_unit SUBTYPE OF (named_unit); WHERE wr1 : (SELF\named_unit.dimensions.length_exponent = 0.000000) AND (SELF\ named_unit.dimensions.mass_exponent = 1.000000) AND (SELF\named_unit .dimensions.time_exponent = 0.000000) AND (SELF\named_unit.dimensions. electric_current_exponent = 0.000000) AND (SELF\named_unit.dimensions. thermodynamic_temperature_exponent = 0.000000) AND (SELF\named_unit. dimensions.amount_of_substance_exponent = 0.000000) AND (SELF\named_unit. dimensions.luminous_intensity_exponent = 0.000000); END_ENTITY; -- 10303-41: measure_schema ENTITY material_designation; name : label; definitions : SET [1:?] OF characterized_definition; END_ENTITY; -- 10303-45: material_property_definition_schema ENTITY material_designation_characterization; name : label; description : text; designation : material_designation; property : characterized_material_property; END_ENTITY; -- 10303-45: material_property_definition_schema ENTITY material_property SUBTYPE OF (property_definition); UNIQUE ur1 : SELF\property_definition.name, SELF\property_definition.definition; WHERE wr1 : ('AUTOMOTIVE_DESIGN.CHARACTERIZED_OBJECT' IN TYPEOF(SELF\ property_definition.definition)) OR (SIZEOF(bag_to_set(USEDIN(SELF, 'AUTOMOTIVE_DESIGN.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')) - QUERY(temp <* bag_to_set(USEDIN(SELF, 'AUTOMOTIVE_DESIGN.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')) | 'AUTOMOTIVE_DESIGN.' + 'MATERIAL_PROPERTY_REPRESENTATION' IN TYPEOF(temp ))) = 0); END_ENTITY; -- 10303-45: material_property_definition_schema ENTITY material_property_representation SUBTYPE OF (property_definition_representation); dependent_environment : data_environment; END_ENTITY; -- 10303-45: material_property_representation_schema ENTITY maximum_function SUBTYPE OF (multiple_arity_function_call); END_ENTITY; (* declared in: iso13584_expressions_schema *) ENTITY measure_qualification; name : label; description : text; qualified_measure : measure_with_unit; qualifiers : SET [1:?] OF value_qualifier; WHERE wr1 : SIZEOF(QUERY(temp <* qualifiers | 'AUTOMOTIVE_DESIGN.PRECISION_QUALIFIER' IN TYPEOF(temp))) < 2; END_ENTITY; -- 10303-45: qualified_measure_schema ENTITY measure_representation_item SUBTYPE OF (representation_item, measure_with_unit); END_ENTITY; -- 10303-45: qualified_measure_schema ENTITY measure_with_unit SUPERTYPE OF (ONEOF (length_measure_with_unit, mass_measure_with_unit, time_measure_with_unit, electric_current_measure_with_unit, thermodynamic_temperature_measure_with_unit, celsius_temperature_measure_with_unit, amount_of_substance_measure_with_unit, luminous_intensity_measure_with_unit, plane_angle_measure_with_unit, solid_angle_measure_with_unit, area_measure_with_unit, volume_measure_with_unit , ratio_measure_with_unit)); value_component : measure_value; unit_component : unit; WHERE wr1 : valid_units(SELF); END_ENTITY; -- 10303-41: measure_schema ENTITY mechanical_design_geometric_presentation_area SUBTYPE OF (presentation_area); WHERE wr1 : SIZEOF(QUERY(it1 <* SELF.items | NOT (( 'AUTOMOTIVE_DESIGN.AXIS2_PLACEMENT' IN TYPEOF(it1)) OR ( 'AUTOMOTIVE_DESIGN.MAPPED_ITEM' IN TYPEOF(it1)) AND ( 'AUTOMOTIVE_DESIGN.PRESENTATION_VIEW' IN TYPEOF(it1\mapped_item. mapping_source.mapped_representation))))) = 0; wr2 : SIZEOF(QUERY(pv <* QUERY(mi1 <* QUERY(it1 <* SELF.items | 'AUTOMOTIVE_DESIGN.MAPPED_ITEM' IN TYPEOF(it1)) | 'AUTOMOTIVE_DESIGN.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 (('AUTOMOTIVE_DESIGN.AXIS2_PLACEMENT' IN TYPEOF(it2)) OR ( 'AUTOMOTIVE_DESIGN.MAPPED_ITEM' IN TYPEOF(it2)) AND NOT ( 'AUTOMOTIVE_DESIGN.' + 'CAMERA_IMAGE_3D_WITH_SCALE' IN TYPEOF(it2)) AND NOT ('AUTOMOTIVE_DESIGN.PRESENTATION_VIEW' IN TYPEOF(it2\mapped_item. mapping_source.mapped_representation))) OR ('AUTOMOTIVE_DESIGN.' + 'CAMERA_IMAGE_3D_WITH_SCALE' IN TYPEOF(it2)) AND NOT ( 'AUTOMOTIVE_DESIGN.' + 'MECHANICAL_DESIGN_GEOMETRIC_PRESENTATION_REPRESENTATION' IN TYPEOF(it2\ mapped_item.mapping_source.mapped_representation)))) = 0))) = 0; wr3 : (SIZEOF(QUERY(ps <* USEDIN(SELF, 'AUTOMOTIVE_DESIGN.PRESENTATION_SIZE.UNIT') | (ps.size\planar_extent. size_in_x <= 0) OR (ps.size\planar_extent.size_in_y <= 0))) = 0) AND ( SIZEOF(QUERY(ais <* USEDIN(SELF, 'AUTOMOTIVE_DESIGN.AREA_IN_SET.AREA') | SIZEOF(QUERY(ps <* USEDIN(ais, 'AUTOMOTIVE_DESIGN.PRESENTATION_SIZE.UNIT') | (ps.size\planar_extent. size_in_x <= 0) OR (ps.size\planar_extent.size_in_y <= 0))) > 0)) = 0); wr4 : (SIZEOF(QUERY(ps <* USEDIN(SELF, 'AUTOMOTIVE_DESIGN.PRESENTATION_SIZE.UNIT') | 'AUTOMOTIVE_DESIGN.' + 'AXIS2_PLACEMENT_2D' IN TYPEOF(ps.size.placement))) = 1) AND (SIZEOF(QUERY( ps <* USEDIN(SELF, 'AUTOMOTIVE_DESIGN.PRESENTATION_SIZE.UNIT') | 'AUTOMOTIVE_DESIGN.' + 'AXIS2_PLACEMENT_3D' IN TYPEOF(ps.size.placement) )) = 0) OR (SIZEOF(QUERY(ais <* USEDIN(SELF, 'AUTOMOTIVE_DESIGN.AREA_IN_SET.AREA') | SIZEOF(QUERY(ps <* USEDIN(ais, 'AUTOMOTIVE_DESIGN.PRESENTATION_SIZE.UNIT') | 'AUTOMOTIVE_DESIGN.' + 'AXIS2_PLACEMENT_2D' IN TYPEOF(ps.size.placement))) = 1)) = 1) AND (SIZEOF( QUERY(ais <* USEDIN(SELF, 'AUTOMOTIVE_DESIGN.AREA_IN_SET.AREA') | SIZEOF (QUERY(ps <* USEDIN(ais, 'AUTOMOTIVE_DESIGN.PRESENTATION_SIZE.UNIT') | 'AUTOMOTIVE_DESIGN.' + 'AXIS2_PLACEMENT_3D' IN TYPEOF(ps.size.placement) )) = 0)) = 1); END_ENTITY; -- 10303-517: aic_mechanical_design_geometric_presentation ENTITY mechanical_design_geometric_presentation_representation SUBTYPE OF (representation); WHERE wr1 : SIZEOF(QUERY(it <* SELF.items | NOT (SIZEOF([ 'AUTOMOTIVE_DESIGN.MAPPED_ITEM', 'AUTOMOTIVE_DESIGN.STYLED_ITEM', 'AUTOMOTIVE_DESIGN.AXIS2_PLACEMENT', 'AUTOMOTIVE_DESIGN.CAMERA_MODEL_D3'] * TYPEOF(it)) = 1))) = 0; wr2 : SIZEOF(QUERY(mi <* QUERY(it <* SELF.items | 'AUTOMOTIVE_DESIGN.MAPPED_ITEM' IN TYPEOF(it)) | NOT (SIZEOF([ 'AUTOMOTIVE_DESIGN.' + 'SHAPE_REPRESENTATION', 'AUTOMOTIVE_DESIGN.' + 'MECHANICAL_DESIGN_GEOMETRIC_PRESENTATION_REPRESENTATION'] * TYPEOF(mi\ mapped_item.mapping_source.mapped_representation)) = 1))) = 0; wr3 : SIZEOF(QUERY(smi <* QUERY(si <* QUERY(it <* SELF.items | 'AUTOMOTIVE_DESIGN.STYLED_ITEM' IN TYPEOF(it)) | 'AUTOMOTIVE_DESIGN.MAPPED_ITEM' IN TYPEOF(si\styled_item.item)) | NOT ( 'AUTOMOTIVE_DESIGN.' + 'SHAPE_REPRESENTATION' IN TYPEOF(smi\styled_item. item\mapped_item.mapping_source.mapped_representation)))) = 0; wr4 : SIZEOF(QUERY(si <* QUERY(it <* SELF.items | 'AUTOMOTIVE_DESIGN.STYLED_ITEM' IN TYPEOF(it)) | NOT (SIZEOF(QUERY(psa <* si\styled_item.styles | NOT (SIZEOF(QUERY(pss <* psa.styles | NOT ( SIZEOF(['AUTOMOTIVE_DESIGN.POINT_STYLE', 'AUTOMOTIVE_DESIGN.CURVE_STYLE', 'AUTOMOTIVE_DESIGN.SURFACE_STYLE_USAGE'] * TYPEOF(pss)) = 1))) = 0))) = 0))) = 0; wr5 : SIZEOF(QUERY(si <* QUERY(it <* SELF.items | 'AUTOMOTIVE_DESIGN.STYLED_ITEM' IN TYPEOF(it)) | NOT (SIZEOF(QUERY(psbc <* QUERY(psa <* si\styled_item.styles | 'AUTOMOTIVE_DESIGN.' + 'PRESENTATION_STYLE_BY_CONTEXT' IN TYPEOF(psa)) | NOT (SIZEOF([ 'AUTOMOTIVE_DESIGN.' + 'REPRESENTATION_ITEM', 'AUTOMOTIVE_DESIGN.REPRESENTATION'] * TYPEOF(psbc\ presentation_style_by_context.style_context)) = 1))) = 0))) = 0; wr6 : SIZEOF(QUERY(si <* QUERY(it <* SELF.items | 'AUTOMOTIVE_DESIGN.STYLED_ITEM' IN TYPEOF(it)) | NOT (SIZEOF(QUERY(psa <* si\styled_item.styles | NOT (SIZEOF(QUERY(ps <* QUERY(pss <* psa.styles | 'AUTOMOTIVE_DESIGN.POINT_STYLE' IN TYPEOF(pss)) | NOT (( 'AUTOMOTIVE_DESIGN.' + 'POSITIVE_LENGTH_MEASURE' IN TYPEOF(ps\ point_style.marker_size)) AND (SIZEOF(['AUTOMOTIVE_DESIGN.COLOUR_RGB', 'AUTOMOTIVE_DESIGN.' + 'DRAUGHTING_PRE_DEFINED_COLOUR'] * TYPEOF(ps\ point_style.marker_colour)) = 1)))) = 0))) = 0))) = 0; wr7 : SIZEOF(QUERY(si <* QUERY(it <* SELF.items | 'AUTOMOTIVE_DESIGN.STYLED_ITEM' IN TYPEOF(it)) | NOT (SIZEOF(QUERY(psa <* si\styled_item.styles | NOT (SIZEOF(QUERY(cs <* QUERY(pss <* psa.styles | 'AUTOMOTIVE_DESIGN.CURVE_STYLE' IN TYPEOF(pss)) | NOT ((SIZEOF([ 'AUTOMOTIVE_DESIGN.COLOUR_RGB', 'AUTOMOTIVE_DESIGN.' + 'DRAUGHTING_PRE_DEFINED_COLOUR'] * TYPEOF(cs\curve_style.curve_colour)) = 1 ) AND ('AUTOMOTIVE_DESIGN.' + 'POSITIVE_LENGTH_MEASURE' IN TYPEOF(cs\ curve_style.curve_width)) AND (SIZEOF([ 'AUTOMOTIVE_DESIGN.CURVE_STYLE_FONT', 'AUTOMOTIVE_DESIGN.' + 'DRAUGHTING_PRE_DEFINED_CURVE_FONT'] * TYPEOF(cs\curve_style.curve_font)) = 1)))) = 0))) = 0))) = 0; wr8 : SIZEOF(QUERY(si <* QUERY(it <* SELF.items | 'AUTOMOTIVE_DESIGN.STYLED_ITEM' IN TYPEOF(it)) | NOT (SIZEOF(QUERY(psa <* si\styled_item.styles | NOT (SIZEOF(QUERY(ssu <* QUERY(pss <* psa. styles | 'AUTOMOTIVE_DESIGN.SURFACE_STYLE_USAGE' IN TYPEOF(pss)) | NOT ( 'AUTOMOTIVE_DESIGN.' + 'SURFACE_SIDE_STYLE' IN TYPEOF(ssu\ surface_style_usage.style)))) = 0))) = 0))) = 0; wr9 : SIZEOF(QUERY(si <* QUERY(it <* SELF.items | 'AUTOMOTIVE_DESIGN.STYLED_ITEM' IN TYPEOF(it)) | NOT (SIZEOF(QUERY(psa <* si\styled_item.styles | NOT (SIZEOF(QUERY(ssu <* QUERY(pss <* psa. styles | 'AUTOMOTIVE_DESIGN.SURFACE_STYLE_USAGE' IN TYPEOF(pss)) | NOT ( SIZEOF(QUERY(sses <* ssu\surface_style_usage.style\surface_side_style. styles | NOT (SIZEOF(['AUTOMOTIVE_DESIGN.' + 'SURFACE_STYLE_PARAMETER_LINE', 'AUTOMOTIVE_DESIGN.' + 'SURFACE_STYLE_CONTROL_GRID', 'AUTOMOTIVE_DESIGN.' + 'SURFACE_STYLE_SILHOUETTE', 'AUTOMOTIVE_DESIGN.' + 'SURFACE_STYLE_SEGMENTATION_CURVE', 'AUTOMOTIVE_DESIGN.' + 'SURFACE_STYLE_FILL_AREA', 'AUTOMOTIVE_DESIGN.' + 'SURFACE_STYLE_BOUNDARY'] * TYPEOF(sses)) = 1))) = 0))) = 0))) = 0))) = 0; wr10 : SIZEOF(QUERY(si <* QUERY(it <* SELF.items | 'AUTOMOTIVE_DESIGN.STYLED_ITEM' IN TYPEOF(it)) | NOT (SIZEOF(QUERY(psa <* si\styled_item.styles | NOT (SIZEOF(QUERY(ssu <* QUERY(pss <* psa. styles | 'AUTOMOTIVE_DESIGN.SURFACE_STYLE_USAGE' IN TYPEOF(pss)) | NOT ( SIZEOF(QUERY(sspl <* QUERY(sses <* ssu\surface_style_usage.style\ surface_side_style.styles | 'AUTOMOTIVE_DESIGN.' + 'SURFACE_STYLE_PARAMETER_LINE' IN TYPEOF(sses)) | NOT (( 'AUTOMOTIVE_DESIGN.CURVE_STYLE' IN TYPEOF(sspl\ surface_style_parameter_line.style_of_parameter_lines)) AND (SIZEOF([ 'AUTOMOTIVE_DESIGN.COLOUR_RGB', 'AUTOMOTIVE_DESIGN.' + 'DRAUGHTING_PRE_DEFINED_COLOUR'] * TYPEOF(sspl\surface_style_parameter_line .style_of_parameter_lines\curve_style.curve_colour)) = 1) AND ( 'AUTOMOTIVE_DESIGN.' + 'POSITIVE_LENGTH_MEASURE' IN TYPEOF(sspl\ surface_style_parameter_line.style_of_parameter_lines\curve_style. curve_width)) AND (SIZEOF(['AUTOMOTIVE_DESIGN.CURVE_STYLE_FONT', 'AUTOMOTIVE_DESIGN.' + 'DRAUGHTING_PRE_DEFINED_CURVE_FONT'] * TYPEOF( sspl\surface_style_parameter_line.style_of_parameter_lines\curve_style. curve_font)) = 1)))) = 0))) = 0))) = 0))) = 0; wr11 : SIZEOF(QUERY(si <* QUERY(it <* SELF.items | 'AUTOMOTIVE_DESIGN.STYLED_ITEM' IN TYPEOF(it)) | NOT (SIZEOF(QUERY(psa <* si\styled_item.styles | NOT (SIZEOF(QUERY(ssu <* QUERY(pss <* psa. styles | 'AUTOMOTIVE_DESIGN.SURFACE_STYLE_USAGE' IN TYPEOF(pss)) | NOT ( SIZEOF(QUERY(sscg <* QUERY(sses <* ssu\surface_style_usage.style\ surface_side_style.styles | 'AUTOMOTIVE_DESIGN.' + 'SURFACE_STYLE_CONTROL_GRID' IN TYPEOF(sses)) | NOT (( 'AUTOMOTIVE_DESIGN.CURVE_STYLE' IN TYPEOF(sscg\ surface_style_control_grid.style_of_control_grid)) AND (SIZEOF([ 'AUTOMOTIVE_DESIGN.COLOUR_RGB', 'AUTOMOTIVE_DESIGN.' + 'DRAUGHTING_PRE_DEFINED_COLOUR'] * TYPEOF(sscg\surface_style_control_grid. style_of_control_grid\curve_style.curve_colour)) = 1) AND ( 'AUTOMOTIVE_DESIGN.' + 'POSITIVE_LENGTH_MEASURE' IN TYPEOF(sscg\ surface_style_control_grid.style_of_control_grid\curve_style.curve_width)) AND (SIZEOF(['AUTOMOTIVE_DESIGN.CURVE_STYLE_FONT', 'AUTOMOTIVE_DESIGN.' + 'DRAUGHTING_PRE_DEFINED_CURVE_FONT'] * TYPEOF( sscg\surface_style_control_grid.style_of_control_grid\curve_style. curve_font)) = 1)))) = 0))) = 0))) = 0))) = 0; wr12 : SIZEOF(QUERY(si <* QUERY(it <* SELF.items | 'AUTOMOTIVE_DESIGN.STYLED_ITEM' IN TYPEOF(it)) | NOT (SIZEOF(QUERY(psa <* si\styled_item.styles | NOT (SIZEOF(QUERY(ssu <* QUERY(pss <* psa. styles | 'AUTOMOTIVE_DESIGN.SURFACE_STYLE_USAGE' IN TYPEOF(pss)) | NOT ( SIZEOF(QUERY(sssh <* QUERY(sses <* ssu\surface_style_usage.style\ surface_side_style.styles | 'AUTOMOTIVE_DESIGN.' + 'SURFACE_STYLE_SILHOUETTE' IN TYPEOF(sses)) | NOT (( 'AUTOMOTIVE_DESIGN.CURVE_STYLE' IN TYPEOF(sssh\surface_style_silhouette. style_of_silhouette)) AND (SIZEOF(['AUTOMOTIVE_DESIGN.COLOUR_RGB', 'AUTOMOTIVE_DESIGN.' + 'DRAUGHTING_PRE_DEFINED_COLOUR'] * TYPEOF(sssh\ surface_style_silhouette.style_of_silhouette\curve_style.curve_colour)) = 1 ) AND ('AUTOMOTIVE_DESIGN.' + 'POSITIVE_LENGTH_MEASURE' IN TYPEOF(sssh\ surface_style_silhouette.style_of_silhouette\curve_style.curve_width)) AND (SIZEOF(['AUTOMOTIVE_DESIGN.CURVE_STYLE_FONT', 'AUTOMOTIVE_DESIGN.' + 'DRAUGHTING_PRE_DEFINED_CURVE_FONT'] * TYPEOF(sssh\ surface_style_silhouette.style_of_silhouette\curve_style.curve_font)) = 1)) )) = 0))) = 0))) = 0))) = 0; wr13 : SIZEOF(QUERY(si <* QUERY(it <* SELF.items | 'AUTOMOTIVE_DESIGN.STYLED_ITEM' IN TYPEOF(it)) | NOT (SIZEOF(QUERY(psa <* si\styled_item.styles | NOT (SIZEOF(QUERY(ssu <* QUERY(pss <* psa. styles | 'AUTOMOTIVE_DESIGN.SURFACE_STYLE_USAGE' IN TYPEOF(pss)) | NOT ( SIZEOF(QUERY(sssc <* QUERY(sses <* ssu\surface_style_usage.style\ surface_side_style.styles | 'AUTOMOTIVE_DESIGN.' + 'SURFACE_STYLE_SEGMENTATION_CURVE' IN TYPEOF(sses)) | NOT (( 'AUTOMOTIVE_DESIGN.CURVE_STYLE' IN TYPEOF(sssc\ surface_style_segmentation_curve.style_of_segmentation_curve)) AND (SIZEOF( ['AUTOMOTIVE_DESIGN.COLOUR_RGB', 'AUTOMOTIVE_DESIGN.' + 'DRAUGHTING_PRE_DEFINED_COLOUR'] * TYPEOF(sssc\ surface_style_segmentation_curve.style_of_segmentation_curve\curve_style. curve_colour)) = 1) AND ('AUTOMOTIVE_DESIGN.' + 'POSITIVE_LENGTH_MEASURE' IN TYPEOF(sssc\surface_style_segmentation_curve. style_of_segmentation_curve\curve_style.curve_width)) AND (SIZEOF([ 'AUTOMOTIVE_DESIGN.CURVE_STYLE_FONT', 'AUTOMOTIVE_DESIGN.' + 'DRAUGHTING_PRE_DEFINED_CURVE_FONT'] * TYPEOF(sssc\ surface_style_segmentation_curve.style_of_segmentation_curve\curve_style. curve_font)) = 1)))) = 0))) = 0))) = 0))) = 0; wr14 : SIZEOF(QUERY(si <* QUERY(it <* SELF.items | 'AUTOMOTIVE_DESIGN.STYLED_ITEM' IN TYPEOF(it)) | NOT (SIZEOF(QUERY(psa <* si\styled_item.styles | NOT (SIZEOF(QUERY(ssu <* QUERY(pss <* psa. styles | 'AUTOMOTIVE_DESIGN.SURFACE_STYLE_USAGE' IN TYPEOF(pss)) | NOT ( SIZEOF(QUERY(ssbd <* QUERY(sses <* ssu\surface_style_usage.style\ surface_side_style.styles | 'AUTOMOTIVE_DESIGN.' + 'SURFACE_STYLE_BOUNDARY' IN TYPEOF(sses)) | NOT (( 'AUTOMOTIVE_DESIGN.CURVE_STYLE' IN TYPEOF(ssbd\surface_style_boundary. style_of_boundary)) AND (SIZEOF(['AUTOMOTIVE_DESIGN.COLOUR_RGB', 'AUTOMOTIVE_DESIGN.' + 'DRAUGHTING_PRE_DEFINED_COLOUR'] * TYPEOF(ssbd\ surface_style_boundary.style_of_boundary\curve_style.curve_colour)) = 1) AND ('AUTOMOTIVE_DESIGN.' + 'POSITIVE_LENGTH_MEASURE' IN TYPEOF(ssbd\ surface_style_boundary.style_of_boundary\curve_style.curve_width)) AND ( SIZEOF(['AUTOMOTIVE_DESIGN.CURVE_STYLE_FONT', 'AUTOMOTIVE_DESIGN.' + 'DRAUGHTING_PRE_DEFINED_CURVE_FONT'] * TYPEOF(ssbd\surface_style_boundary. style_of_boundary\curve_style.curve_font)) = 1)))) = 0))) = 0))) = 0))) = 0 ; END_ENTITY; -- 10303-517: aic_mechanical_design_geometric_presentation ENTITY mechanism; structure_definition : kinematic_structure; base : kinematic_link; containing_property : kinematic_property_definition; WHERE wr1 : SIZEOF(QUERY(joint <* structure_definition.joints | (base :=: joint. first_link) OR (base :=: joint.second_link))) > 0; END_ENTITY; -- 10303-105: kinematic_structure_schema ENTITY mechanism_base_placement SUBTYPE OF (representation_relationship_with_transformation); base_of_mechanism : mechanism; SELF\representation_relationship_with_transformation.transformation_operator : cartesian_transformation_operator_3d; DERIVE SELF\representation_relationship.rep_2 : kinematic_link_representation := representation_of_link(base_of_mechanism.base); UNIQUE ur1 : base_of_mechanism; WHERE wr1 : ('AUTOMOTIVE_DESIGN.KINEMATIC_GROUND_REPRESENTATION' IN TYPEOF(SELF\ representation_relationship.rep_1)) OR ( 'AUTOMOTIVE_DESIGN.KINEMATIC_LINK_REPRESENTATION' IN TYPEOF(SELF\ representation_relationship.rep_1)); wr2 : suitably_based_mechanism(SELF, base_of_mechanism); wr3 : SELF\representation_relationship_with_transformation. transformation_operator IN SELF\representation_relationship.rep_1.items; END_ENTITY; -- 10303-105: kinematic_structure_schema ENTITY minimum_function SUBTYPE OF (multiple_arity_function_call); END_ENTITY; (* declared in: iso13584_expressions_schema *) ENTITY minus_expression SUBTYPE OF (binary_numeric_expression); END_ENTITY; (* declared in: iso13584_expressions_schema *) ENTITY minus_function SUBTYPE OF (unary_function_call); END_ENTITY; (* declared in: iso13584_expressions_schema *) ENTITY mod_expression SUBTYPE OF (binary_numeric_expression); END_ENTITY; (* declared in: iso13584_expressions_schema *) ENTITY modified_geometric_tolerance SUBTYPE OF (geometric_tolerance); modifier : limit_condition; END_ENTITY; -- 10303-47: shape_tolerance_schema ENTITY modified_pattern SUBTYPE OF (replicate_feature); WHERE wr1 : SIZEOF(QUERY(sa <* get_shape_aspects(SELF) | SIZEOF(QUERY(sar <* USEDIN (sa, 'AUTOMOTIVE_DESIGN.SHAPE_ASPECT_RELATIONSHIP.RELATING_SHAPE_ASPECT' ) | (sar.description = 'base pattern') AND (SIZEOF(['AUTOMOTIVE_DESIGN.' + 'CIRCULAR_PATTERN', 'AUTOMOTIVE_DESIGN.' + 'RECTANGULAR_PATTERN'] * TYPEOF(sar.related_shape_aspect.of_shape.definition)) = 1))) = 1)) = 1; wr2 : SIZEOF(QUERY(sa <* get_shape_aspects(SELF) | SIZEOF(QUERY(sar <* USEDIN (sa, 'AUTOMOTIVE_DESIGN.SHAPE_ASPECT_RELATIONSHIP.RELATING_SHAPE_ASPECT' ) | SIZEOF(QUERY(sar1 <* USEDIN(sar.related_shape_aspect, 'AUTOMOTIVE_DESIGN.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | ( sar.related_shape_aspect :<>: sar1.related_shape_aspect) AND (SIZEOF([ 'AUTOMOTIVE_DESIGN.' + 'PATTERN_OFFSET_MEMBERSHIP', 'AUTOMOTIVE_DESIGN.' + 'PATTERN_OMIT_MEMBERSHIP'] * TYPEOF(sar1)) = 1))) = 1)) >= 1)) = 1; END_ENTITY; -- 10303-214: automotive_design ENTITY moments_of_inertia_representation SUBTYPE OF (representation); WHERE wr1 : (SIZEOF(SELF.items) = 1) AND (SIZEOF(QUERY(i <* SELF.items | ( 'AUTOMOTIVE_DESIGN.' + 'COMPOUND_REPRESENTATION_ITEM' IN TYPEOF(i)) AND (i.name = 'moments of inertia matrix'))) = 1); wr2 : SIZEOF(QUERY(i <* SELF.items | ('AUTOMOTIVE_DESIGN.' + 'COMPOUND_REPRESENTATION_ITEM' IN TYPEOF(i)) AND (SIZEOF(i\ compound_representation_item.item_element) = 3) AND ( 'AUTOMOTIVE_DESIGN.' + '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; -- 10303-214: automotive_design ENTITY motion_link_relationship SUPERTYPE OF (resulting_path) SUBTYPE OF (representation_relationship); SELF\representation_relationship.rep_1 : founded_kinematic_path; SELF\representation_relationship.rep_2 : kinematic_link_representation; related_frame : rigid_placement; DERIVE motion : founded_kinematic_path := SELF\representation_relationship.rep_1; frame_link : kinematic_link_representation := SELF\ representation_relationship.rep_2; WHERE wr1 : related_frame IN frame_link\representation.items; END_ENTITY; -- 10303-105: kinematic_analysis_control_and_result_schema ENTITY mult_expression SUBTYPE OF (multiple_arity_numeric_expression); END_ENTITY; (* declared in: iso13584_expressions_schema *) ENTITY multi_language_attribute_assignment SUBTYPE OF (attribute_value_assignment); items : SET [1:?] OF multi_language_attribute_item; DERIVE language : label := get_multi_language(SELF); WHERE wr1 : SELF\attribute_value_assignment.role.name = 'alternate language'; wr2 : (SIZEOF(USEDIN(SELF, 'AUTOMOTIVE_DESIGN.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS')) = 1) AND ( SIZEOF(QUERY(ala <* USEDIN(SELF, 'AUTOMOTIVE_DESIGN.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS') | ala. attribute_name = 'attribute_value')) = 1); END_ENTITY; -- 10303-214: automotive_design 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; (* declared in: iso13584_expressions_schema *) ENTITY multiple_arity_function_call ABSTRACT SUPERTYPE OF (ONEOF (maximum_function, minimum_function)) SUBTYPE OF (multiple_arity_numeric_expression); END_ENTITY; (* declared in: iso13584_expressions_schema *) ENTITY multiple_arity_generic_expression ABSTRACT SUPERTYPE SUBTYPE OF (generic_expression); operands : LIST [2:?] OF generic_expression; END_ENTITY; (* declared in: iso13584_generic_expressions_schema *) ENTITY multiple_arity_numeric_expression ABSTRACT SUPERTYPE OF (ONEOF (plus_expression, mult_expression, multiple_arity_function_call)) SUBTYPE OF (numeric_expression, multiple_arity_generic_expression); SELF\multiple_arity_generic_expression.operands : LIST [2:?] OF numeric_expression; END_ENTITY; (* declared in: iso13584_expressions_schema *) ENTITY name_assignment ABSTRACT SUPERTYPE; assigned_name : label; DERIVE role : object_role := get_role(SELF); WHERE wr1 : SIZEOF(USEDIN(SELF, 'AUTOMOTIVE_DESIGN.ROLE_ASSOCIATION.ITEM_WITH_ROLE')) <= 1; END_ENTITY; -- 10303-41: management_resources_schema ENTITY name_attribute; attribute_value : label; named_item : name_attribute_select; END_ENTITY; -- 10303-41: basic_attribute_schema ENTITY named_unit SUPERTYPE OF (ONEOF (si_unit, conversion_based_unit, context_dependent_unit) ANDOR ONEOF (length_unit, mass_unit, time_unit, electric_current_unit, thermodynamic_temperature_unit, amount_of_substance_unit, luminous_intensity_unit, plane_angle_unit, solid_angle_unit, area_unit, volume_unit, ratio_unit)); dimensions : dimensional_exponents; END_ENTITY; -- 10303-41: measure_schema ENTITY named_unit_variable SUBTYPE OF (named_unit, variable_semantics); INVERSE associated_variable_environment : environment FOR semantics; END_ENTITY; -- 10303-214: automotive_design ENTITY next_assembly_usage_occurrence SUBTYPE OF (assembly_component_usage); END_ENTITY; -- 10303-44: product_structure_schema ENTITY ngon_closed_profile SUBTYPE OF (shape_aspect); WHERE wr1 : 'AUTOMOTIVE_DESIGN.' + 'FEATURE_COMPONENT_DEFINITION' IN TYPEOF(SELF .of_shape.definition); wr2 : SIZEOF(QUERY(pdr <* get_shape_aspect_property_definition_representations(SELF) | 'AUTOMOTIVE_DESIGN.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation))) = 1; wr3 : SIZEOF(QUERY(pdr <* get_shape_aspect_property_definition_representations(SELF) | ( 'AUTOMOTIVE_DESIGN.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation)) AND {3 <= SIZEOF(pdr.used_representation.items) <= 4})) = 1; wr4 : SIZEOF(QUERY(pdr <* get_shape_aspect_property_definition_representations(SELF) | ( 'AUTOMOTIVE_DESIGN.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation)) AND (SIZEOF(QUERY(i <* pdr.used_representation. items | NOT (i.name IN ['orientation', 'number of sides', 'circumscibed diameter', 'diameter across flats', 'corner radius']))) = 0)) ) = 1; wr5 : SIZEOF(QUERY(pdr <* get_shape_aspect_property_definition_representations(SELF) | ( 'AUTOMOTIVE_DESIGN.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation)) AND (SIZEOF(QUERY(i <* pdr.used_representation. items | ('AUTOMOTIVE_DESIGN.' + 'PLACEMENT' IN TYPEOF(i)) AND (i.name = 'orientation'))) = 1))) = 1; wr6 : SIZEOF(QUERY(pdr <* get_property_definition_representations(SELF) | ( 'AUTOMOTIVE_DESIGN.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation)) AND (SIZEOF(QUERY(i <* pdr.used_representation. items | (i.name = 'number of sides') AND ('AUTOMOTIVE_DESIGN.' + 'MEASURE_REPRESENTATION_ITEM' IN TYPEOF(i)) AND ('AUTOMOTIVE_DESIGN.' + 'COUNT_MEASURE' IN TYPEOF(i\measure_with_unit.value_component)))) = 1))) = 1; wr7 : SIZEOF(QUERY(pdr <* get_property_definition_representations(SELF) | ( 'AUTOMOTIVE_DESIGN.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation)) AND (SIZEOF(QUERY(i <* pdr.used_representation. items | (i.name IN ['circumscribed diameter', 'diameter across flats']) AND (SIZEOF(['AUTOMOTIVE_DESIGN.' + 'MEASURE_REPRESENTATION_ITEM', 'AUTOMOTIVE_DESIGN.' + 'LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(i)) = 2))) = 1))) = 1; wr8 : SIZEOF(QUERY(pdr <* get_property_definition_representations(SELF) | ( 'AUTOMOTIVE_DESIGN.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation)) AND (SIZEOF(QUERY(i <* pdr.used_representation. items | i.name = 'corner radius')) <= 1) AND (SIZEOF(QUERY(i <* pdr. used_representation.items | (i.name = 'corner radius') AND (SIZEOF([ 'AUTOMOTIVE_DESIGN.' + 'MEASURE_REPRESENTATION_ITEM', 'AUTOMOTIVE_DESIGN.' + 'LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(i)) = 2))) = SIZEOF(QUERY(i <* pdr.used_representation.items | i.name = 'corner radius'))))) = 1; END_ENTITY; -- 10303-214: automotive_design ENTITY non_manifold_surface_shape_representation SUBTYPE OF (shape_representation); WHERE wr1 : SIZEOF(QUERY(it <* SELF.items | NOT (SIZEOF([ 'AUTOMOTIVE_DESIGN.FACE_BASED_SURFACE_MODEL', 'AUTOMOTIVE_DESIGN.MAPPED_ITEM', 'AUTOMOTIVE_DESIGN.AXIS2_PLACEMENT_3D'] * TYPEOF(it)) = 1))) = 0; wr2 : SIZEOF(QUERY(it <* SELF.items | SIZEOF([ 'AUTOMOTIVE_DESIGN.FACE_BASED_SURFACE_MODEL', 'AUTOMOTIVE_DESIGN.MAPPED_ITEM'] * TYPEOF(it)) = 1)) > 0; wr3 : SIZEOF(QUERY(mi <* QUERY(it <* SELF.items | 'AUTOMOTIVE_DESIGN.MAPPED_ITEM' IN TYPEOF(it)) | NOT (( 'AUTOMOTIVE_DESIGN.' + '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 | 'AUTOMOTIVE_DESIGN.FACE_BASED_SURFACE_MODEL' IN TYPEOF(mr_it))) > 0)))) = 0; wr4 : SIZEOF(QUERY(fbsm <* QUERY(it <* SELF.items | 'AUTOMOTIVE_DESIGN.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([ 'AUTOMOTIVE_DESIGN.FACE_SURFACE', 'AUTOMOTIVE_DESIGN.ORIENTED_FACE'] * TYPEOF(fa)) = 1))) = 0))) = 0))) = 0; wr5 : SIZEOF(QUERY(fbsm <* QUERY(it <* SELF.items | 'AUTOMOTIVE_DESIGN.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 | 'AUTOMOTIVE_DESIGN.FACE_SURFACE' IN TYPEOF(fa)) | NOT (( 'AUTOMOTIVE_DESIGN.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 | 'AUTOMOTIVE_DESIGN.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 | 'AUTOMOTIVE_DESIGN.ORIENTED_FACE' IN TYPEOF(fa)) | NOT (( 'AUTOMOTIVE_DESIGN.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 | 'AUTOMOTIVE_DESIGN.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 (('AUTOMOTIVE_DESIGN.ADVANCED_FACE' IN TYPEOF(fa)) OR (SIZEOF(QUERY(bnds <* fa.bounds | NOT (SIZEOF([ 'AUTOMOTIVE_DESIGN.EDGE_LOOP', 'AUTOMOTIVE_DESIGN.VERTEX_LOOP'] * TYPEOF(bnds.bound)) = 1))) = 0)))) = 0))) = 0))) = 0; wr8 : SIZEOF(QUERY(fbsm <* QUERY(it <* SELF.items | 'AUTOMOTIVE_DESIGN.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 (('AUTOMOTIVE_DESIGN.ADVANCED_FACE' IN TYPEOF(fa)) OR (SIZEOF(QUERY(elp_fbnds <* QUERY(bnds <* fa.bounds | 'AUTOMOTIVE_DESIGN.EDGE_LOOP' IN TYPEOF(bnds.bound)) | NOT (SIZEOF( QUERY(oe <* elp_fbnds\path.edge_list | NOT ( 'AUTOMOTIVE_DESIGN.EDGE_CURVE' IN TYPEOF(oe.edge_element)))) = 0))) = 0) ))) = 0))) = 0))) = 0; wr9 : SIZEOF(QUERY(fbsm <* QUERY(it <* SELF.items | 'AUTOMOTIVE_DESIGN.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 (('AUTOMOTIVE_DESIGN.ADVANCED_FACE' IN TYPEOF(fa)) OR (SIZEOF(QUERY(elp_fbnds <* QUERY(bnds <* fa.bounds | 'AUTOMOTIVE_DESIGN.EDGE_LOOP' IN TYPEOF(bnds.bound)) | NOT (SIZEOF( QUERY(oe_cv <* QUERY(oe <* elp_fbnds\path.edge_list | 'AUTOMOTIVE_DESIGN.EDGE_CURVE' IN TYPEOF(oe.edge_element)) | NOT (SIZEOF (['AUTOMOTIVE_DESIGN.B_SPLINE_CURVE', 'AUTOMOTIVE_DESIGN.CONIC', 'AUTOMOTIVE_DESIGN.CURVE_REPLICA', 'AUTOMOTIVE_DESIGN.LINE', 'AUTOMOTIVE_DESIGN.OFFSET_CURVE_3D', 'AUTOMOTIVE_DESIGN.PCURVE', 'AUTOMOTIVE_DESIGN.POLYLINE', 'AUTOMOTIVE_DESIGN.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 | 'AUTOMOTIVE_DESIGN.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 (('AUTOMOTIVE_DESIGN.ADVANCED_FACE' IN TYPEOF(fa)) OR (SIZEOF(QUERY(elp_fbnds <* QUERY(bnds <* fa.bounds | 'AUTOMOTIVE_DESIGN.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 | 'AUTOMOTIVE_DESIGN.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 (('AUTOMOTIVE_DESIGN.ADVANCED_FACE' IN TYPEOF(fa)) OR (SIZEOF(QUERY(elp_fbnds <* QUERY(bnds <* fa.bounds | 'AUTOMOTIVE_DESIGN.EDGE_LOOP' IN TYPEOF(bnds.bound)) | NOT (SIZEOF( QUERY(oe <* elp_fbnds\path.edge_list | NOT (( 'AUTOMOTIVE_DESIGN.VERTEX_POINT' IN TYPEOF(oe.edge_element.edge_start)) AND ('AUTOMOTIVE_DESIGN.VERTEX_POINT' IN TYPEOF(oe.edge_element.edge_end ))))) = 0))) = 0)))) = 0))) = 0))) = 0; wr12 : SIZEOF(QUERY(fbsm <* QUERY(it <* SELF.items | 'AUTOMOTIVE_DESIGN.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 (('AUTOMOTIVE_DESIGN.ADVANCED_FACE' IN TYPEOF(fa)) OR (SIZEOF(QUERY(elp_fbnds <* QUERY(bnds <* fa.bounds | 'AUTOMOTIVE_DESIGN.EDGE_LOOP' IN TYPEOF(bnds.bound)) | NOT (SIZEOF( QUERY(oe <* elp_fbnds\path.edge_list | NOT ((SIZEOF([ 'AUTOMOTIVE_DESIGN.CARTESIAN_POINT', 'AUTOMOTIVE_DESIGN.DEGENERATE_PCURVE', 'AUTOMOTIVE_DESIGN.POINT_ON_CURVE', 'AUTOMOTIVE_DESIGN.POINT_ON_SURFACE'] * TYPEOF(oe.edge_element. edge_start\vertex_point.vertex_geometry)) = 1) AND (SIZEOF([ 'AUTOMOTIVE_DESIGN.CARTESIAN_POINT', 'AUTOMOTIVE_DESIGN.DEGENERATE_PCURVE', 'AUTOMOTIVE_DESIGN.POINT_ON_CURVE', 'AUTOMOTIVE_DESIGN.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 | 'AUTOMOTIVE_DESIGN.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 (('AUTOMOTIVE_DESIGN.ADVANCED_FACE' IN TYPEOF(fa)) OR (SIZEOF(QUERY(vlp_fbnds <* QUERY(bnds <* fa.bounds | 'AUTOMOTIVE_DESIGN.VERTEX_LOOP' IN TYPEOF(bnds.bound)) | NOT ( 'AUTOMOTIVE_DESIGN.VERTEX_POINT' IN TYPEOF(vlp_fbnds\vertex_loop. loop_vertex)))) = 0)))) = 0))) = 0))) = 0; wr14 : SIZEOF(QUERY(fbsm <* QUERY(it <* SELF.items | 'AUTOMOTIVE_DESIGN.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 (('AUTOMOTIVE_DESIGN.ADVANCED_FACE' IN TYPEOF(fa)) OR (SIZEOF(QUERY(vlp_fbnds <* QUERY(bnds <* fa.bounds | 'AUTOMOTIVE_DESIGN.VERTEX_LOOP' IN TYPEOF(bnds.bound)) | NOT (SIZEOF([ 'AUTOMOTIVE_DESIGN.CARTESIAN_POINT', 'AUTOMOTIVE_DESIGN.DEGENERATE_PCURVE', 'AUTOMOTIVE_DESIGN.POINT_ON_CURVE', 'AUTOMOTIVE_DESIGN.POINT_ON_SURFACE'] * TYPEOF(vlp_fbnds\vertex_loop. loop_vertex\vertex_point.vertex_geometry)) = 1))) = 0)))) = 0))) = 0))) = 0 ; END_ENTITY; -- 10303-508: aic_non_manifold_surface ENTITY not_expression SUBTYPE OF (unary_boolean_expression); SELF\unary_generic_expression.operand : boolean_expression; END_ENTITY; (* declared in: iso13584_expressions_schema *) ENTITY numeric_defined_function ABSTRACT SUPERTYPE OF (ONEOF (integer_defined_function, real_defined_function)) SUBTYPE OF (numeric_expression, defined_function); END_ENTITY; (* declared in: iso13584_expressions_schema *) ENTITY numeric_expression ABSTRACT SUPERTYPE OF (ONEOF (simple_numeric_expression, unary_numeric_expression, binary_numeric_expression, multiple_arity_numeric_expression, length_function, value_function, numeric_defined_function)) SUBTYPE OF (expression); DERIVE is_int : BOOLEAN := is_int_expr(SELF); sql_mappable : BOOLEAN := is_sql_mappable(SELF); END_ENTITY; (* declared in: iso13584_expressions_schema *) ENTITY numeric_variable SUPERTYPE OF (ONEOF (int_numeric_variable, real_numeric_variable)) SUBTYPE OF (simple_numeric_expression, variable); WHERE wr1 : ('AUTOMOTIVE_DESIGN.INT_NUMERIC_VARIABLE' IN TYPEOF(SELF)) OR ( 'AUTOMOTIVE_DESIGN.REAL_NUMERIC_VARIABLE' IN TYPEOF(SELF)); END_ENTITY; (* declared in: iso13584_expressions_schema *) ENTITY object_role; name : label; description : OPTIONAL text; END_ENTITY; -- 10303-41: basic_attribute_schema ENTITY odd_function SUBTYPE OF (unary_boolean_expression); SELF\unary_generic_expression.operand : numeric_expression; WHERE wr1 : is_int_expr(SELF); END_ENTITY; (* declared in: iso13584_expressions_schema *) ENTITY offset_curve_2d SUBTYPE OF (curve); basis_curve : curve; distance : length_measure; self_intersect : LOGICAL; WHERE wr1 : basis_curve.dim = 2; END_ENTITY; -- 10303-42: geometry_schema ENTITY offset_curve_3d SUBTYPE OF (curve); basis_curve : curve; distance : length_measure; self_intersect : LOGICAL; ref_direction : direction; WHERE wr1 : (basis_curve.dim = 3) AND (ref_direction.dim = 3); END_ENTITY; -- 10303-42: geometry_schema ENTITY offset_surface SUBTYPE OF (surface); basis_surface : surface; distance : length_measure; self_intersect : LOGICAL; END_ENTITY; -- 10303-42: geometry_schema ENTITY one_direction_repeat_factor SUBTYPE OF (geometric_representation_item); repeat_factor : vector; END_ENTITY; -- 10303-46: presentation_appearance_schema ENTITY open_path_profile SUBTYPE OF (shape_aspect); WHERE wr1 : 'AUTOMOTIVE_DESIGN.' + 'FEATURE_COMPONENT_DEFINITION' IN TYPEOF(SELF .of_shape.definition); wr2 : SIZEOF(QUERY(pdr <* get_shape_aspect_property_definition_representations(SELF) | 'AUTOMOTIVE_DESIGN.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation))) = 1; wr3 : SIZEOF(QUERY(pdr <* get_shape_aspect_property_definition_representations(SELF) | ( 'AUTOMOTIVE_DESIGN.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation)) AND (SIZEOF(pdr.used_representation.items) = 1))) = 1; wr4 : SIZEOF(QUERY(pdr <* get_shape_aspect_property_definition_representations(SELF) | ( 'AUTOMOTIVE_DESIGN.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation)) AND (SIZEOF(QUERY(i <* pdr.used_representation. items | ('AUTOMOTIVE_DESIGN.' + 'PLACEMENT' IN TYPEOF(i)) AND (i.name = 'orientation'))) = 1))) = 1; wr5 : SIZEOF(QUERY(pdr <* get_shape_aspect_property_definition_representations(SELF) | 'AUTOMOTIVE_DESIGN.' + 'PATH_SHAPE_REPRESENTATION' IN TYPEOF(pdr. used_representation))) = 1; wr6 : (SIZEOF(QUERY(pdr <* get_shape_aspect_property_definition_representations(SELF) | 'AUTOMOTIVE_DESIGN.' + 'PLANAR_SHAPE_REPRESENTATION' IN TYPEOF(pdr. used_representation))) <= 1) AND (SIZEOF(QUERY(pdr <* get_shape_aspect_property_definition_representations(SELF) | 'AUTOMOTIVE_DESIGN.' + 'PLANAR_SHAPE_REPRESENTATION' IN TYPEOF(pdr. used_representation))) = SIZEOF(QUERY(pdr <* get_shape_aspect_property_definition_representations(SELF) | ( 'AUTOMOTIVE_DESIGN.' + 'PLANAR_SHAPE_REPRESENTATION' IN TYPEOF(pdr. used_representation)) AND (pdr.used_representation.name = 'profile limit')) )); END_ENTITY; -- 10303-214: automotive_design ENTITY open_shell SUBTYPE OF (connected_face_set); END_ENTITY; -- 10303-42: topology_schema ENTITY or_expression SUBTYPE OF (multiple_arity_boolean_expression); END_ENTITY; (* declared in: iso13584_expressions_schema *) ENTITY ordinate_dimension SUBTYPE OF (projection_directed_callout); END_ENTITY; -- 10303-506: aic_draughting_elements ENTITY organization; id : OPTIONAL identifier; name : label; description : OPTIONAL text; END_ENTITY; -- 10303-41: person_organization_schema ENTITY organization_assignment ABSTRACT SUPERTYPE; assigned_organization : organization; role : organization_role; END_ENTITY; -- 10303-41: management_resources_schema ENTITY organization_relationship; name : label; description : OPTIONAL text; relating_organization : organization; related_organization : organization; END_ENTITY; -- 10303-41: person_organization_schema ENTITY organization_role; name : label; DERIVE description : text := get_description_value(SELF); WHERE wr1 : SIZEOF(USEDIN(SELF, 'AUTOMOTIVE_DESIGN.DESCRIPTION_ATTRIBUTE.DESCRIBED_ITEM')) <= 1; END_ENTITY; -- 10303-41: person_organization_schema ENTITY organizational_address SUBTYPE OF (address); organizations : SET [1:?] OF organization; description : OPTIONAL text; END_ENTITY; -- 10303-41: person_organization_schema ENTITY organizational_project; name : label; description : OPTIONAL text; responsible_organizations : SET [1:?] OF organization; DERIVE id : identifier := get_id_value(SELF); WHERE wr1 : SIZEOF(USEDIN(SELF, 'AUTOMOTIVE_DESIGN.ID_ATTRIBUTE.IDENTIFIED_ITEM' )) <= 1; END_ENTITY; -- 10303-41: person_organization_schema ENTITY organizational_project_assignment ABSTRACT SUPERTYPE; assigned_organizational_project : organizational_project; role : organizational_project_role; END_ENTITY; -- 10303-41: management_resources_schema ENTITY organizational_project_relationship; name : label; description : OPTIONAL text; relating_organizational_project : organizational_project; related_organizational_project : organizational_project; END_ENTITY; -- 10303-41: person_organization_schema ENTITY organizational_project_role; name : label; description : OPTIONAL text; END_ENTITY; -- 10303-41: management_resources_schema ENTITY oriented_closed_shell SUBTYPE OF (closed_shell); closed_shell_element : closed_shell; orientation : BOOLEAN; DERIVE SELF\connected_face_set.cfs_faces : SET [1:?] OF face := conditional_reverse( SELF.orientation, SELF.closed_shell_element.cfs_faces); WHERE wr1 : NOT ('AUTOMOTIVE_DESIGN.ORIENTED_CLOSED_SHELL' IN TYPEOF(SELF. closed_shell_element)); END_ENTITY; -- 10303-42: topology_schema ENTITY oriented_edge SUBTYPE OF (edge); edge_element : edge; orientation : BOOLEAN; DERIVE SELF\edge.edge_start : vertex := boolean_choose(SELF.orientation, SELF. edge_element.edge_start, SELF.edge_element.edge_end); SELF\edge.edge_end : vertex := boolean_choose(SELF.orientation, SELF. edge_element.edge_end, SELF.edge_element.edge_start); WHERE wr1 : NOT ('AUTOMOTIVE_DESIGN.ORIENTED_EDGE' IN TYPEOF(SELF.edge_element)) ; END_ENTITY; -- 10303-42: topology_schema ENTITY oriented_face SUBTYPE OF (face); face_element : face; orientation : BOOLEAN; DERIVE SELF\face.bounds : SET [1:?] OF face_bound := conditional_reverse(SELF. orientation, SELF.face_element.bounds); WHERE wr1 : NOT ('AUTOMOTIVE_DESIGN.ORIENTED_FACE' IN TYPEOF(SELF.face_element)) ; END_ENTITY; -- 10303-42: topology_schema ENTITY oriented_open_shell SUBTYPE OF (open_shell); open_shell_element : open_shell; orientation : BOOLEAN; DERIVE SELF\connected_face_set.cfs_faces : SET [1:?] OF face := conditional_reverse( SELF.orientation, SELF.open_shell_element.cfs_faces); WHERE wr1 : NOT ('AUTOMOTIVE_DESIGN.ORIENTED_OPEN_SHELL' IN TYPEOF(SELF. open_shell_element)); END_ENTITY; -- 10303-42: topology_schema ENTITY oriented_path SUBTYPE OF (path); path_element : path; orientation : BOOLEAN; DERIVE SELF\path.edge_list : LIST [1:?] OF UNIQUE oriented_edge := conditional_reverse(SELF.orientation, SELF.path_element.edge_list); WHERE wr1 : NOT ('AUTOMOTIVE_DESIGN.ORIENTED_PATH' IN TYPEOF(SELF.path_element)) ; END_ENTITY; -- 10303-42: topology_schema ENTITY oriented_surface SUBTYPE OF (surface); orientation : BOOLEAN; END_ENTITY; -- 10303-42: geometry_schema ENTITY outer_boundary_curve SUBTYPE OF (boundary_curve); END_ENTITY; -- 10303-42: geometry_schema ENTITY over_riding_styled_item SUBTYPE OF (styled_item); over_ridden_style : styled_item; END_ENTITY; -- 10303-46: presentation_appearance_schema ENTITY package_product_concept_feature SUBTYPE OF (product_concept_feature); WHERE wr1 : NOT ('AUTOMOTIVE_DESIGN.' + 'CONDITIONAL_CONCEPT_FEATURE' IN TYPEOF( SELF)); wr2 : SIZEOF(QUERY(cfr <* USEDIN(SELF, 'AUTOMOTIVE_DESIGN.CONCEPT_FEATURE_RELATIONSHIP.RELATING_PRODUCT_CONCEPT_FEATURE' ) | ('AUTOMOTIVE_DESIGN.' + 'CONCEPT_FEATURE_RELATIONSHIP_WITH_CONDITION' IN TYPEOF(cfr)) AND (SIZEOF( QUERY(ipcf <* USEDIN(cfr, 'AUTOMOTIVE_DESIGN.CONDITIONAL_CONCEPT_FEATURE.CONDITION') | 'AUTOMOTIVE_DESIGN.' + 'INCLUSION_PRODUCT_CONCEPT_FEATURE' IN TYPEOF( ipcf))) = 1))) > 0; END_ENTITY; -- 10303-214: automotive_design ENTITY pair_actuator; actuated_pair : kinematic_pair; name : label; UNIQUE ur1 : actuated_pair; END_ENTITY; -- 10303-105: kinematic_structure_schema ENTITY pair_value; applies_to_pair : kinematic_pair; END_ENTITY; -- 10303-105: kinematic_structure_schema ENTITY parabola SUBTYPE OF (conic); focal_dist : length_measure; WHERE wr1 : focal_dist <> 0.0; END_ENTITY; -- 10303-42: geometry_schema ENTITY parallel_offset SUBTYPE OF (derived_shape_aspect); offset : measure_with_unit; WHERE wr1 : SIZEOF(SELF\derived_shape_aspect.deriving_relationships) = 1; END_ENTITY; -- 10303-47: shape_aspect_definition_schema ENTITY parallelism_tolerance SUBTYPE OF (geometric_tolerance_with_datum_reference); WHERE wr1 : SIZEOF(SELF\geometric_tolerance_with_datum_reference.datum_system) < 3; END_ENTITY; -- 10303-519: aic_geometric_tolerances ENTITY parametric_representation_context SUBTYPE OF (representation_context); END_ENTITY; -- 10303-43: representation_schema ENTITY partial_circular_profile SUBTYPE OF (shape_aspect); WHERE wr1 : 'AUTOMOTIVE_DESIGN.' + 'FEATURE_COMPONENT_DEFINITION' IN TYPEOF(SELF .of_shape.definition); wr2 : SIZEOF(QUERY(pdr <* get_shape_aspect_property_definition_representations(SELF) | 'AUTOMOTIVE_DESIGN.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation))) = 1; wr3 : SIZEOF(QUERY(pdr <* get_shape_aspect_property_definition_representations(SELF) | ( 'AUTOMOTIVE_DESIGN.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation)) AND (SIZEOF(pdr.used_representation.items) = 3))) = 1; wr4 : SIZEOF(QUERY(pdr <* get_shape_aspect_property_definition_representations(SELF) | ( 'AUTOMOTIVE_DESIGN.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation)) AND (SIZEOF(QUERY(i <* pdr.used_representation. items | NOT (i.name IN ['orientation', 'sweep angle', 'radius']))) = 0))) = 1; wr5 : SIZEOF(QUERY(pdr <* get_shape_aspect_property_definition_representations(SELF) | ( 'AUTOMOTIVE_DESIGN.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation)) AND (SIZEOF(QUERY(i <* pdr.used_representation. items | ('AUTOMOTIVE_DESIGN.' + 'PLACEMENT' IN TYPEOF(i)) AND (i.name = 'orientation'))) = 1))) = 1; wr6 : SIZEOF(QUERY(pdr <* get_shape_aspect_property_definition_representations(SELF) | ( 'AUTOMOTIVE_DESIGN.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation)) AND (SIZEOF(QUERY(i <* pdr.used_representation. items | (i.name = 'radius') AND (SIZEOF(['AUTOMOTIVE_DESIGN.' + 'MEASURE_REPRESENTATION_ITEM', 'AUTOMOTIVE_DESIGN.' + 'LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(i)) = 2))) = 1))) = 1; wr7 : SIZEOF(QUERY(pdr <* get_shape_aspect_property_definition_representations(SELF) | ( 'AUTOMOTIVE_DESIGN.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation)) AND (SIZEOF(QUERY(i <* pdr.used_representation. items | (i.name = 'sweep angle') AND (SIZEOF(['AUTOMOTIVE_DESIGN.' + 'MEASURE_REPRESENTATION_ITEM', 'AUTOMOTIVE_DESIGN.' + 'PLANE_ANGLE_MEASURE_WITH_UNIT'] * TYPEOF(i)) = 2))) = 1))) = 1; wr8 : (SIZEOF(QUERY(pdr <* get_shape_aspect_property_definition_representations(SELF) | 'AUTOMOTIVE_DESIGN.' + 'PLANAR_SHAPE_REPRESENTATION' IN TYPEOF(pdr. used_representation))) <= 1) AND (SIZEOF(QUERY(pdr <* get_shape_aspect_property_definition_representations(SELF) | 'AUTOMOTIVE_DESIGN.' + 'PLANAR_SHAPE_REPRESENTATION' IN TYPEOF(pdr. used_representation))) = SIZEOF(QUERY(pdr <* get_shape_aspect_property_definition_representations(SELF) | ( 'AUTOMOTIVE_DESIGN.' + 'PLANAR_SHAPE_REPRESENTATION' IN TYPEOF(pdr. used_representation)) AND (pdr.used_representation.name = 'profile limit')) )); END_ENTITY; -- 10303-214: automotive_design ENTITY path SUPERTYPE OF (ONEOF (edge_loop, oriented_path)) SUBTYPE OF (topological_representation_item); edge_list : LIST [1:?] OF UNIQUE oriented_edge; WHERE wr1 : path_head_to_tail(SELF); END_ENTITY; -- 10303-42: topology_schema ENTITY path_feature_component SUBTYPE OF (shape_aspect); WHERE wr1 : 'AUTOMOTIVE_DESIGN.' + 'FEATURE_COMPONENT_DEFINITION' IN TYPEOF(SELF .of_shape.definition); wr2 : SELF.description IN ['partial circular', 'complete circular', 'linear' , 'complex']; wr3 : SIZEOF(QUERY(pdr <* get_shape_aspect_property_definition_representations(SELF) | 'AUTOMOTIVE_DESIGN.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation))) = 1; wr4 : SIZEOF(QUERY(pdr <* get_shape_aspect_property_definition_representations(SELF) | ( 'AUTOMOTIVE_DESIGN.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation)) AND (SIZEOF(QUERY(i <* pdr.used_representation. items | ('AUTOMOTIVE_DESIGN.' + 'PLACEMENT' IN TYPEOF(i)) AND (i.name = 'orientation'))) = 1))) = 1; wr5 : (SELF.description <> 'partial circular') OR (SIZEOF(QUERY(pdr <* get_shape_aspect_property_definition_representations(SELF) | ( 'AUTOMOTIVE_DESIGN.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation)) AND (SIZEOF(pdr.used_representation.items) = 3))) = 1); wr6 : (SELF.description <> 'partial circular') OR (SIZEOF(QUERY(pdr <* get_shape_aspect_property_definition_representations(SELF) | ( 'AUTOMOTIVE_DESIGN.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation)) AND (SIZEOF(QUERY(i <* pdr.used_representation. items | (i.name = 'radius') AND (SIZEOF(['AUTOMOTIVE_DESIGN.' + 'MEASURE_REPRESENTATION_ITEM', 'AUTOMOTIVE_DESIGN.' + 'LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(i)) = 2))) = 1))) = 1); wr7 : (SELF.description <> 'partial circular') OR (SIZEOF(QUERY(pdr <* get_shape_aspect_property_definition_representations(SELF) | ( 'AUTOMOTIVE_DESIGN.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation)) AND (SIZEOF(QUERY(i <* pdr.used_representation. items | (i.name = 'sweep angle') AND (SIZEOF(['AUTOMOTIVE_DESIGN.' + 'MEASURE_REPRESENTATION_ITEM', 'AUTOMOTIVE_DESIGN.' + 'PLANE_ANGLE_MEASURE_WITH_UNIT'] * TYPEOF(i)) = 2))) = 1))) = 1); wr8 : (SELF.description <> 'complete circular') OR (SIZEOF(QUERY(pdr <* get_shape_aspect_property_definition_representations(SELF) | ( 'AUTOMOTIVE_DESIGN.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation)) AND (SIZEOF(pdr.used_representation.items) = 2))) = 1); wr9 : (SELF.description <> 'complete circular') OR (SIZEOF(QUERY(pdr <* get_shape_aspect_property_definition_representations(SELF) | ( 'AUTOMOTIVE_DESIGN.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation)) AND (SIZEOF(QUERY(i <* pdr.used_representation. items | (i.name = 'radius') AND (SIZEOF(['AUTOMOTIVE_DESIGN.' + 'MEASURE_REPRESENTATION_ITEM', 'AUTOMOTIVE_DESIGN.' + 'LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(i)) = 2))) = 1))) = 1); wr10 : (SELF.description <> 'linear') OR (SIZEOF(QUERY(pdr <* get_shape_aspect_property_definition_representations(SELF) | ( 'AUTOMOTIVE_DESIGN.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation)) AND (SIZEOF(pdr.used_representation.items) = 2))) = 1); wr11 : (SELF.description <> 'linear') OR (SIZEOF(QUERY(pdr <* get_shape_aspect_property_definition_representations(SELF) | ( 'AUTOMOTIVE_DESIGN.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation)) AND (SIZEOF(QUERY(i <* pdr.used_representation. items | (i.name = 'distance') AND (SIZEOF(['AUTOMOTIVE_DESIGN.' + 'MEASURE_REPRESENTATION_ITEM', 'AUTOMOTIVE_DESIGN.' + 'LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(i)) = 2))) = 1))) = 1); wr12 : (SELF.description <> 'complex') OR (SIZEOF(QUERY(pdr <* get_shape_aspect_property_definition_representations(SELF) | ( 'AUTOMOTIVE_DESIGN.' + 'PATH_SHAPE_REPRESENTATION' IN TYPEOF(pdr. used_representation)) AND (pdr.name = 'sweep path'))) = 1) AND (SIZEOF( QUERY(pdr <* get_shape_aspect_property_definition_representations(SELF) | ( 'AUTOMOTIVE_DESIGN.' + 'PATH_SHAPE_REPRESENTATION' IN TYPEOF(pdr. used_representation)) AND (pdr.name = 'sweep path') AND (SIZEOF(QUERY(i <* pdr.used_representation.items | (i.name = 'path curve') AND ( 'AUTOMOTIVE_DESIGN.' + 'CURVE' IN TYPEOF(i)))) = 1))) = 1); wr13 : (SELF.description <> 'complex') OR (SIZEOF(QUERY(pdr <* get_shape_aspect_property_definition_representations(SELF) | ( 'AUTOMOTIVE_DESIGN.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation)) AND (SIZEOF(pdr.used_representation.items) = 1))) = 1); END_ENTITY; -- 10303-214: automotive_design ENTITY path_shape_representation SUBTYPE OF (shape_representation); WHERE wr1 : SIZEOF(SELF.items) = 1; wr2 : SIZEOF(QUERY(i <* SELF.items | SIZEOF(['AUTOMOTIVE_DESIGN.' + 'BOUNDED_CURVE', 'AUTOMOTIVE_DESIGN.' + 'EDGE_CURVE', 'AUTOMOTIVE_DESIGN.' + 'PATH'] * TYPEOF(i)) = 1)) = 1; END_ENTITY; -- 10303-214: automotive_design ENTITY pattern_offset_membership SUBTYPE OF (feature_component_relationship); WHERE wr1 : SIZEOF(['AUTOMOTIVE_DESIGN.' + 'CIRCULAR_PATTERN', 'AUTOMOTIVE_DESIGN.' + 'RECTANGULAR_PATTERN'] * TYPEOF(SELF. relating_shape_aspect.of_shape.definition)) = 1; wr2 : SIZEOF(QUERY(sar <* USEDIN(SELF.related_shape_aspect, 'AUTOMOTIVE_DESIGN.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | ( 'AUTOMOTIVE_DESIGN.' + 'FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF(sar)) AND ('AUTOMOTIVE_DESIGN.' + 'MODIFIED_PATTERN' IN TYPEOF(sar. relating_shape_aspect.of_shape.definition)) AND (sar.description = 'modified pattern'))) >= 1; wr3 : SIZEOF(get_property_definition_representations(SELF. related_shape_aspect.of_shape.definition)) = 1; wr4 : NOT ('AUTOMOTIVE_DESIGN.' + 'CIRCULAR_PATTERN' IN TYPEOF(SELF. relating_shape_aspect.of_shape.definition)) OR (SIZEOF(QUERY(pdr <* get_property_definition_representations(SELF.related_shape_aspect.of_shape. definition) | SIZEOF(pdr.used_representation.items) = 2)) = 1); wr5 : NOT ('AUTOMOTIVE_DESIGN.' + 'CIRCULAR_PATTERN' IN TYPEOF(SELF. relating_shape_aspect.of_shape.definition)) OR (SIZEOF(QUERY(pdr <* get_property_definition_representations(SELF.related_shape_aspect.of_shape. definition) | SIZEOF(QUERY(i <* pdr.used_representation.items | (i.name = 'index number') AND ('AUTOMOTIVE_DESIGN.' + 'MEASURE_REPRESENTATION_ITEM' IN TYPEOF(i)) AND ('AUTOMOTIVE_DESIGN.' + 'COUNT_MEASURE' IN TYPEOF(i\measure_with_unit.value_component)))) = 1)) = 1 ); wr6 : NOT ('AUTOMOTIVE_DESIGN.' + 'CIRCULAR_PATTERN' IN TYPEOF(SELF. relating_shape_aspect.of_shape.definition)) OR (SIZEOF(QUERY(pdr <* get_property_definition_representations(SELF.related_shape_aspect.of_shape. definition) | SIZEOF(QUERY(i <* pdr.used_representation.items | (i.name = 'offset') AND (SIZEOF(['AUTOMOTIVE_DESIGN.' + 'MEASURE_REPRESENTATION_ITEM', 'AUTOMOTIVE_DESIGN.' + 'PLANE_ANGLE_MEASURE_WITH_UNIT'] * TYPEOF(i)) = 2))) = 1)) = 1); wr7 : NOT ('AUTOMOTIVE_DESIGN.' + 'RECTANGULAR_PATTERN' IN TYPEOF(SELF. relating_shape_aspect.of_shape.definition)) OR (SIZEOF(QUERY(pdr <* get_property_definition_representations(SELF.related_shape_aspect.of_shape. definition) | SIZEOF(pdr.used_representation.items) = 3)) = 1); wr8 : NOT ('AUTOMOTIVE_DESIGN.' + 'RECTANGULAR_PATTERN' IN TYPEOF(SELF. relating_shape_aspect.of_shape.definition)) OR (SIZEOF(QUERY(pdr <* get_property_definition_representations(SELF.related_shape_aspect.of_shape. definition) | SIZEOF(QUERY(i <* pdr.used_representation.items | (i.name = 'row index') AND ('AUTOMOTIVE_DESIGN.' + 'MEASURE_REPRESENTATION_ITEM' IN TYPEOF(i)) AND ('AUTOMOTIVE_DESIGN.' + 'COUNT_MEASURE' IN TYPEOF(i\ measure_with_unit.value_component)))) = 1)) = 1); wr9 : NOT ('AUTOMOTIVE_DESIGN.' + 'RECTANGULAR_PATTERN' IN TYPEOF(SELF. relating_shape_aspect.of_shape.definition)) OR (SIZEOF(QUERY(pdr <* get_property_definition_representations(SELF.related_shape_aspect.of_shape. definition) | SIZEOF(QUERY(i <* pdr.used_representation.items | (i.name = 'column index') AND ('AUTOMOTIVE_DESIGN.' + 'MEASURE_REPRESENTATION_ITEM' IN TYPEOF(i)) AND ('AUTOMOTIVE_DESIGN.' + 'COUNT_MEASURE' IN TYPEOF(i\measure_with_unit.value_component)))) = 1)) = 1 ); wr10 : NOT ('AUTOMOTIVE_DESIGN.' + 'RECTANGULAR_PATTERN' IN TYPEOF(SELF. relating_shape_aspect.of_shape.definition)) OR (SIZEOF(QUERY(pdr <* get_property_definition_representations(SELF.related_shape_aspect.of_shape. definition) | SIZEOF(QUERY(i <* pdr.used_representation.items | (i.name = 'offset distance') AND (SIZEOF(['AUTOMOTIVE_DESIGN.' + 'MEASURE_REPRESENTATION_ITEM', 'AUTOMOTIVE_DESIGN.' + 'LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(i)) = 2))) = 1)) = 1); wr11 : NOT ('AUTOMOTIVE_DESIGN.' + 'RECTANGULAR_PATTERN' IN TYPEOF(SELF. relating_shape_aspect.of_shape.definition)) OR (SIZEOF(QUERY(pdr <* get_property_definition_representations(SELF.related_shape_aspect.of_shape. definition) | ('AUTOMOTIVE_DESIGN.' + 'DIRECTION_SHAPE_REPRESENTATION' IN TYPEOF(pdr.used_representation)) AND (pdr.used_representation.name = 'offset direction'))) = 1); END_ENTITY; -- 10303-214: automotive_design ENTITY pattern_omit_membership SUBTYPE OF (feature_component_relationship); WHERE wr1 : SIZEOF(['AUTOMOTIVE_DESIGN.' + 'CIRCULAR_PATTERN', 'AUTOMOTIVE_DESIGN.' + 'RECTANGULAR_PATTERN'] * TYPEOF(SELF. relating_shape_aspect.of_shape.definition)) = 1; wr2 : SIZEOF(QUERY(sar <* USEDIN(SELF.related_shape_aspect, 'AUTOMOTIVE_DESIGN.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | ( 'AUTOMOTIVE_DESIGN.' + 'FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF(sar)) AND ('AUTOMOTIVE_DESIGN.' + 'MODIFIED_PATTERN' IN TYPEOF(sar. relating_shape_aspect.of_shape.definition)) AND (sar.description = 'modified pattern'))) >= 1; wr3 : SIZEOF(get_property_definition_representations(SELF. related_shape_aspect.of_shape.definition)) = 1; wr4 : NOT ('AUTOMOTIVE_DESIGN.' + 'CIRCULAR_PATTERN' IN TYPEOF(SELF. relating_shape_aspect.of_shape.definition)) OR (SIZEOF(QUERY(pdr <* get_property_definition_representations(SELF.related_shape_aspect.of_shape. definition) | SIZEOF(pdr.used_representation.items) = 1)) = 1); wr5 : NOT ('AUTOMOTIVE_DESIGN.' + 'CIRCULAR_PATTERN' IN TYPEOF(SELF. relating_shape_aspect.of_shape.definition)) OR (SIZEOF(QUERY(pdr <* get_property_definition_representations(SELF.related_shape_aspect.of_shape. definition) | SIZEOF(QUERY(i <* pdr.used_representation.items | (i.name = 'index number') AND ('AUTOMOTIVE_DESIGN.' + 'MEASURE_REPRESENTATION_ITEM' IN TYPEOF(i)) AND ('AUTOMOTIVE_DESIGN.' + 'COUNT_MEASURE' IN TYPEOF(i\measure_with_unit.value_component)))) = 1)) = 1 ); wr6 : NOT ('AUTOMOTIVE_DESIGN.' + 'RECTANGULAR_PATTERN' IN TYPEOF(SELF. relating_shape_aspect.of_shape.definition)) OR (SIZEOF(QUERY(pdr <* get_property_definition_representations(SELF.related_shape_aspect.of_shape. definition) | SIZEOF(pdr.used_representation.items) = 2)) = 1); wr7 : NOT ('AUTOMOTIVE_DESIGN.' + 'RECTANGULAR_PATTERN' IN TYPEOF(SELF. relating_shape_aspect.of_shape.definition)) OR (SIZEOF(QUERY(pdr <* get_property_definition_representations(SELF.related_shape_aspect.of_shape. definition) | SIZEOF(QUERY(i <* pdr.used_representation.items | (i.name = 'row index') AND ('AUTOMOTIVE_DESIGN.' + 'MEASURE_REPRESENTATION_ITEM' IN TYPEOF(i)) AND ('AUTOMOTIVE_DESIGN.' + 'COUNT_MEASURE' IN TYPEOF(i\ measure_with_unit.value_component)))) = 1)) = 1); wr8 : NOT ('AUTOMOTIVE_DESIGN.' + 'RECTANGULAR_PATTERN' IN TYPEOF(SELF. relating_shape_aspect.of_shape.definition)) OR (SIZEOF(QUERY(pdr <* get_property_definition_representations(SELF.related_shape_aspect.of_shape. definition) | SIZEOF(QUERY(i <* pdr.used_representation.items | (i.name = 'column index') AND ('AUTOMOTIVE_DESIGN.' + 'MEASURE_REPRESENTATION_ITEM' IN TYPEOF(i)) AND ('AUTOMOTIVE_DESIGN.' + 'COUNT_MEASURE' IN TYPEOF(i\measure_with_unit.value_component)))) = 1)) = 1 ); END_ENTITY; -- 10303-214: automotive_design ENTITY pcurve SUBTYPE OF (curve); basis_surface : surface; reference_to_curve : definitional_representation; WHERE wr1 : SIZEOF(reference_to_curve\representation.items) = 1; wr2 : 'AUTOMOTIVE_DESIGN.CURVE' IN TYPEOF(reference_to_curve\ representation.items[1]); wr3 : reference_to_curve\representation.items[1]\ geometric_representation_item.dim = 2; END_ENTITY; -- 10303-42: geometry_schema ENTITY perpendicular_to SUBTYPE OF (derived_shape_aspect); WHERE wr1 : SIZEOF(SELF\derived_shape_aspect.deriving_relationships) = 1; END_ENTITY; -- 10303-47: shape_aspect_definition_schema ENTITY perpendicularity_tolerance SUBTYPE OF (geometric_tolerance_with_datum_reference); WHERE wr1 : SIZEOF(SELF\geometric_tolerance_with_datum_reference.datum_system) <= 3 ; END_ENTITY; -- 10303-519: aic_geometric_tolerances 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; -- 10303-41: person_organization_schema ENTITY person_and_organization; the_person : person; the_organization : organization; DERIVE name : label := get_name_value(SELF); description : text := get_description_value(SELF); WHERE wr1 : SIZEOF(USEDIN(SELF, 'AUTOMOTIVE_DESIGN.NAME_ATTRIBUTE.NAMED_ITEM')) <= 1; wr2 : SIZEOF(USEDIN(SELF, 'AUTOMOTIVE_DESIGN.DESCRIPTION_ATTRIBUTE.DESCRIBED_ITEM')) <= 1; END_ENTITY; -- 10303-41: person_organization_schema ENTITY person_and_organization_address SUBTYPE OF (organizational_address, personal_address); WHERE wr1 : SIZEOF(SELF\personal_address.people) = 1; wr2 : SIZEOF(SELF\organizational_address.organizations) = 1; wr3 : SIZEOF(QUERY(pao <* USEDIN(SELF.people[1], 'AUTOMOTIVE_DESIGN.PERSON_AND_ORGANIZATION.THE_PERSON') | pao. the_organization :=: SELF\organizational_address.organizations[1])) = 1; END_ENTITY; -- 10303-214: automotive_design ENTITY person_and_organization_assignment ABSTRACT SUPERTYPE; assigned_person_and_organization : person_and_organization; role : person_and_organization_role; END_ENTITY; -- 10303-41: management_resources_schema ENTITY person_and_organization_role; name : label; DERIVE description : text := get_description_value(SELF); WHERE wr1 : SIZEOF(USEDIN(SELF, 'AUTOMOTIVE_DESIGN.DESCRIPTION_ATTRIBUTE.DESCRIBED_ITEM')) <= 1; END_ENTITY; -- 10303-41: person_organization_schema ENTITY personal_address SUBTYPE OF (address); people : SET [1:?] OF person; description : OPTIONAL text; END_ENTITY; -- 10303-41: person_organization_schema ENTITY physically_modelled_product_definition SUBTYPE OF (product_definition_with_associated_documents); WHERE wr1 : SELF.frame_of_reference\application_context_element.name = 'physical model occurrence'; wr2 : (SIZEOF(documentation_ids) = 1) AND (SIZEOF(QUERY(d <* documentation_ids | SIZEOF(QUERY(drt <* d.representation_types | drt.name = 'physical')) = 1)) = 1); END_ENTITY; -- 10303-214: automotive_design ENTITY placed_datum_target_feature SUBTYPE OF (datum_target); WHERE wr1 : SELF.description IN ['point', 'line', 'rectangle', 'circle']; wr2 : SIZEOF(QUERY(pdr <* get_shape_aspect_property_definition_representations(SELF) | 'AUTOMOTIVE_DESIGN.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation))) = 1; wr3 : SIZEOF(QUERY(pdr <* get_shape_aspect_property_definition_representations(SELF) | ( 'AUTOMOTIVE_DESIGN.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation)) AND (SIZEOF(QUERY(i <* pdr.used_representation. items | (i.name = 'orientation') AND ('AUTOMOTIVE_DESIGN.' + 'PLACEMENT' IN TYPEOF(i)))) = 1))) = 1; wr4 : (SELF.description <> 'point') OR (SIZEOF(QUERY(pdr <* get_shape_aspect_property_definition_representations(SELF) | ( 'AUTOMOTIVE_DESIGN.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation)) AND (SIZEOF(pdr.used_representation.items) = 1))) = 1); wr5 : (SELF.description <> 'circle') OR (SIZEOF(QUERY(pdr <* get_shape_aspect_property_definition_representations(SELF) | ( 'AUTOMOTIVE_DESIGN.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation)) AND (SIZEOF(pdr.used_representation.items) = 2))) = 1); wr6 : (SELF.description <> 'rectangle') OR (SIZEOF(QUERY(pdr <* get_shape_aspect_property_definition_representations(SELF) | ( 'AUTOMOTIVE_DESIGN.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation)) AND (SIZEOF(pdr.used_representation.items) = 3))) = 1); wr7 : (SELF.description <> 'circle') OR (SIZEOF(QUERY(pdr <* get_shape_aspect_property_definition_representations(SELF) | ( 'AUTOMOTIVE_DESIGN.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation)) AND (SIZEOF(QUERY(i <* pdr.used_representation. items | (i.name = 'target diameter') AND (SIZEOF(['AUTOMOTIVE_DESIGN.' + 'MEASURE_REPRESENTATION_ITEM', 'AUTOMOTIVE_DESIGN.' + 'LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(i)) = 2))) = 1))) = 1); wr8 : (SELF.description <> 'line') OR (SIZEOF(QUERY(pdr <* get_shape_aspect_property_definition_representations(SELF) | ( 'AUTOMOTIVE_DESIGN.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation)) AND (SIZEOF(QUERY(i <* pdr.used_representation. items | (i.name = 'target length') AND (SIZEOF(['AUTOMOTIVE_DESIGN.' + 'MEASURE_REPRESENTATION_ITEM', 'AUTOMOTIVE_DESIGN.' + 'LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(i)) = 2))) = 1))) = 1); wr9 : (SELF.description <> 'rectangle') OR (SIZEOF(QUERY(pdr <* get_shape_aspect_property_definition_representations(SELF) | ( 'AUTOMOTIVE_DESIGN.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation)) AND (SIZEOF(QUERY(i <* pdr.used_representation. items | (i.name = 'target length') AND (SIZEOF(['AUTOMOTIVE_DESIGN.' + 'MEASURE_REPRESENTATION_ITEM', 'AUTOMOTIVE_DESIGN.' + 'LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(i)) = 2))) = 1))) = 1); wr10 : (SELF.description <> 'rectangle') OR (SIZEOF(QUERY(pdr <* get_shape_aspect_property_definition_representations(SELF) | ( 'AUTOMOTIVE_DESIGN.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation)) AND (SIZEOF(QUERY(i <* pdr.used_representation. items | (i.name = 'target width') AND (SIZEOF(['AUTOMOTIVE_DESIGN.' + 'MEASURE_REPRESENTATION_ITEM', 'AUTOMOTIVE_DESIGN.' + 'LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(i)) = 2))) = 1))) = 1); END_ENTITY; -- 10303-214: automotive_design ENTITY placed_feature SUBTYPE OF (shape_aspect); WHERE wr1 : 'AUTOMOTIVE_DESIGN.' + 'PRODUCT_DEFINITION' IN TYPEOF(SELF.of_shape. definition); wr2 : SIZEOF(QUERY(pdr <* get_shape_aspect_property_definition_representations(SELF) | ( 'AUTOMOTIVE_DESIGN.' + 'SHAPE_REPRESENTATION' IN TYPEOF(pdr. used_representation)) AND (pdr.used_representation.name = 'feature definition placement') AND (SIZEOF(QUERY(i <* pdr. used_representation.items | ('AUTOMOTIVE_DESIGN.' + 'MAPPED_ITEM' IN TYPEOF(i)) AND (SIZEOF(QUERY(pdr1 <* USEDIN(i\mapped_item.mapping_source. mapped_representation, 'AUTOMOTIVE_DESIGN.PROPERTY_DEFINITION_REPRESENTATION.USED_REPRESENTATION' ) | 'AUTOMOTIVE_DESIGN.' + 'FEATURE_DEFINITION' IN TYPEOF(pdr1. definition\property_definition.definition))) = 1))) = 1))) = 1; wr3 : SIZEOF(QUERY(pdr <* get_shape_aspect_property_definition_representations(SELF) | ( 'AUTOMOTIVE_DESIGN.' + 'PLANAR_SHAPE_REPRESENTATION' IN TYPEOF(pdr. used_representation)) AND (pdr.used_representation.name = 'maximum feature limit'))) = 1; END_ENTITY; -- 10303-214: automotive_design ENTITY placement SUPERTYPE OF (ONEOF (axis1_placement, axis2_placement_2d, axis2_placement_3d)) SUBTYPE OF (geometric_representation_item); location : cartesian_point; END_ENTITY; -- 10303-42: geometry_schema ENTITY planar_box SUBTYPE OF (planar_extent); placement : axis2_placement; END_ENTITY; -- 10303-46: presentation_resource_schema ENTITY planar_curve_pair SUBTYPE OF (kinematic_pair); curve_1 : curve; curve_2 : curve; orientation : BOOLEAN; WHERE wr1 : frame_associated_to_background(SELF\kinematic_pair. pair_placement_in_first_link_context, curve_1); wr2 : frame_associated_to_background(SELF\kinematic_pair. pair_placement_in_second_link_context, curve_2); END_ENTITY; -- 10303-105: kinematic_structure_schema ENTITY planar_curve_pair_range SUBTYPE OF (simple_pair_range); SELF\simple_pair_range.applies_to_pair : planar_curve_pair; range_on_curve_1 : trimmed_curve; range_on_curve_2 : trimmed_curve; WHERE wr1 : SELF\simple_pair_range.applies_to_pair\planar_curve_pair.curve_1 :=: range_on_curve_1.basis_curve; wr2 : SELF\simple_pair_range.applies_to_pair\planar_curve_pair.curve_2 :=: range_on_curve_2.basis_curve; END_ENTITY; -- 10303-105: kinematic_structure_schema ENTITY planar_extent SUBTYPE OF (geometric_representation_item); size_in_x : length_measure; size_in_y : length_measure; END_ENTITY; -- 10303-46: presentation_resource_schema ENTITY planar_pair SUBTYPE OF (kinematic_pair); END_ENTITY; -- 10303-105: kinematic_structure_schema ENTITY planar_pair_range SUBTYPE OF (simple_pair_range); SELF\simple_pair_range.applies_to_pair : planar_pair; lower_limit_actual_rotation : rotational_range_measure; upper_limit_actual_rotation : rotational_range_measure; lower_limit_actual_translation_x : translational_range_measure; upper_limit_actual_translation_x : translational_range_measure; lower_limit_actual_translation_y : translational_range_measure; upper_limit_actual_translation_y : translational_range_measure; WHERE wr1 : ('AUTOMOTIVE_DESIGN.UNLIMITED_RANGE' IN TYPEOF( lower_limit_actual_rotation)) OR ('AUTOMOTIVE_DESIGN.UNLIMITED_RANGE' IN TYPEOF(upper_limit_actual_rotation)) XOR (lower_limit_actual_rotation < upper_limit_actual_rotation); wr2 : ('AUTOMOTIVE_DESIGN.UNLIMITED_RANGE' IN TYPEOF( lower_limit_actual_translation_x)) OR ( 'AUTOMOTIVE_DESIGN.UNLIMITED_RANGE' IN TYPEOF( upper_limit_actual_translation_x)) XOR (lower_limit_actual_translation_x < upper_limit_actual_translation_x); wr3 : ('AUTOMOTIVE_DESIGN.UNLIMITED_RANGE' IN TYPEOF( lower_limit_actual_translation_y)) OR ( 'AUTOMOTIVE_DESIGN.UNLIMITED_RANGE' IN TYPEOF( upper_limit_actual_translation_y)) XOR (lower_limit_actual_translation_y < upper_limit_actual_translation_y); END_ENTITY; -- 10303-105: kinematic_structure_schema ENTITY planar_pair_value SUBTYPE OF (pair_value); SELF\pair_value.applies_to_pair : planar_pair; actual_rotation : plane_angle_measure; actual_translation_x : length_measure; actual_translation_y : length_measure; END_ENTITY; -- 10303-105: kinematic_structure_schema ENTITY planar_shape_representation SUBTYPE OF (shape_representation); WHERE wr1 : SIZEOF(SELF.items) = 1; wr2 : SIZEOF(QUERY(i <* SELF.items | 'AUTOMOTIVE_DESIGN.' + 'PLANE' IN TYPEOF(i))) = 1; wr3 : SELF.name IN ['profile limit', 'maximum feature limit']; wr4 : (SELF.name <> 'maximum feature limit') OR (SIZEOF(QUERY(pdr <* USEDIN( SELF, 'AUTOMOTIVE_DESIGN.PROPERTY_DEFINITION_REPRESENTATION.USED_REPRESENTATION' ) | SIZEOF(QUERY(sa <* get_shape_aspects(pdr.definition\property_definition .definition) | SIZEOF(['AUTOMOTIVE_DESIGN.' + 'INSTANCED_FEATURE', 'AUTOMOTIVE_DESIGN.' + 'PLACED_FEATURE'] * TYPEOF(sa)) = 1)) = 1)) = 1); wr5 : (SELF.name <> 'profile limit') OR (SIZEOF(QUERY(pdr <* USEDIN(SELF, 'AUTOMOTIVE_DESIGN.PROPERTY_DEFINITION_REPRESENTATION.USED_REPRESENTATION' ) | SIZEOF(QUERY(sa <* get_shape_aspects(pdr.definition\property_definition .definition) | SIZEOF(['AUTOMOTIVE_DESIGN.' + 'OPEN_PATH_PROFILE', 'AUTOMOTIVE_DESIGN.' + 'PARTIAL_CIRCULAR_PROFILE', 'AUTOMOTIVE_DESIGN.' + 'ROUNDED_U_PROFILE', 'AUTOMOTIVE_DESIGN.' + 'SQUARE_U_PROFILE', 'AUTOMOTIVE_DESIGN.' + 'TEE_PROFILE', 'AUTOMOTIVE_DESIGN.' + 'VEE_PROFILE'] * TYPEOF(sa)) = 1)) = 1)) = 1); END_ENTITY; -- 10303-214: automotive_design ENTITY plane SUBTYPE OF (elementary_surface); END_ENTITY; -- 10303-42: geometry_schema ENTITY plane_angle_measure_with_unit SUBTYPE OF (measure_with_unit); WHERE wr1 : 'AUTOMOTIVE_DESIGN.PLANE_ANGLE_UNIT' IN TYPEOF(SELF\ measure_with_unit.unit_component); END_ENTITY; -- 10303-41: measure_schema ENTITY plane_angle_unit SUBTYPE OF (named_unit); WHERE wr1 : (SELF\named_unit.dimensions.length_exponent = 0.000000) AND (SELF\ named_unit.dimensions.mass_exponent = 0.000000) AND (SELF\named_unit .dimensions.time_exponent = 0.000000) AND (SELF\named_unit.dimensions. electric_current_exponent = 0.000000) AND (SELF\named_unit.dimensions. thermodynamic_temperature_exponent = 0.000000) AND (SELF\named_unit. dimensions.amount_of_substance_exponent = 0.000000) AND (SELF\named_unit. dimensions.luminous_intensity_exponent = 0.000000); END_ENTITY; -- 10303-41: measure_schema ENTITY plus_expression SUBTYPE OF (multiple_arity_numeric_expression); END_ENTITY; (* declared in: iso13584_expressions_schema *) ENTITY plus_minus_tolerance; range : tolerance_method_definition; toleranced_dimension : dimensional_characteristic; UNIQUE ur1 : toleranced_dimension; END_ENTITY; -- 10303-47: shape_tolerance_schema ENTITY pocket SUBTYPE OF (feature_definition); WHERE wr1 : SELF.description IN ['open rectangular', 'closed rectangular', 'complex']; wr2 : (SELF.description <> 'complex') OR (SIZEOF(QUERY(sa <* get_shape_aspects(SELF) | (sa.description = 'boundary occurrence') AND ( SIZEOF(QUERY(sar <* USEDIN(sa, 'AUTOMOTIVE_DESIGN.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | ( 'AUTOMOTIVE_DESIGN.' + 'SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF(sar)) AND (sar.description = 'profile usage') AND (SIZEOF(['AUTOMOTIVE_DESIGN.' + 'CIRCULAR_CLOSED_PROFILE', 'AUTOMOTIVE_DESIGN.' + 'NGON_CLOSED_PROFILE', 'AUTOMOTIVE_DESIGN.' + 'CLOSED_PATH_PROFILE', 'AUTOMOTIVE_DESIGN.' + 'PARTIAL_CIRCULAR_PROFILE', 'AUTOMOTIVE_DESIGN.' + 'ROUNDED_U_PROFILE', 'AUTOMOTIVE_DESIGN.' + 'VEE_PROFILE', 'AUTOMOTIVE_DESIGN.' + 'TEE_PROFILE', 'AUTOMOTIVE_DESIGN.' + 'OPEN_PATH_PROFILE'] * TYPEOF(sar. relating_shape_aspect)) = 1))) = 1))) = 1); wr3 : (SELF.description <> 'closed rectangular') OR (SIZEOF(QUERY(sa <* get_shape_aspects(SELF) | (sa.description = 'closed boundary occurrence') AND (SIZEOF(QUERY(sar <* USEDIN(sa, 'AUTOMOTIVE_DESIGN.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | ( 'AUTOMOTIVE_DESIGN.' + 'SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF(sar)) AND (sar.description = 'profile usage') AND ('AUTOMOTIVE_DESIGN.' + 'RECTANGULAR_CLOSED_PROFILE' IN TYPEOF(sar.relating_shape_aspect)))) = 1))) = 1); wr4 : (SELF.description <> 'open rectangular') OR (SIZEOF(QUERY(sa <* get_shape_aspects(SELF) | (sa.description = 'open boundary occurrence') AND (SIZEOF(QUERY(sar <* USEDIN(sa, 'AUTOMOTIVE_DESIGN.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | ( 'AUTOMOTIVE_DESIGN.' + 'SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF(sar)) AND (sar.description = 'profile usage') AND ('AUTOMOTIVE_DESIGN.' + 'SQUARE_U_PROFILE' IN TYPEOF(sar.relating_shape_aspect)))) = 1))) = 1); wr5 : SIZEOF(QUERY(sa <* get_shape_aspects(SELF) | (sa.description = 'pocket depth occurrence') AND (SIZEOF(QUERY(sar <* USEDIN(sa, 'AUTOMOTIVE_DESIGN.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | ( 'AUTOMOTIVE_DESIGN.' + 'SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF(sar)) AND (sar.name = 'pocket depth') AND (sar.description = 'path feature component usage') AND ('AUTOMOTIVE_DESIGN.' + 'PATH_FEATURE_COMPONENT' IN TYPEOF(sar.relating_shape_aspect)) AND (sar. relating_shape_aspect.description = 'linear'))) = 1))) = 1; wr6 : SIZEOF(QUERY(sa <* get_shape_aspects(SELF) | (sa.description = 'bottom condition occurrence') AND (SIZEOF(QUERY(sar <* USEDIN(sa, 'AUTOMOTIVE_DESIGN.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | ( 'AUTOMOTIVE_DESIGN.' + 'FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF(sar)) AND (sar.description = 'pocket bottom usage') AND ('AUTOMOTIVE_DESIGN.' + 'POCKET_BOTTOM' IN TYPEOF(sar.relating_shape_aspect)))) = 1))) = 1; wr7 : SIZEOF(QUERY(sa <* get_shape_aspects(SELF) | (sa.description = 'change in boundary occurrence') AND (SIZEOF(QUERY(sar <* USEDIN(sa, 'AUTOMOTIVE_DESIGN.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | ( 'AUTOMOTIVE_DESIGN.' + 'FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF(sar)) AND (sar.description = 'taper usage') AND ('AUTOMOTIVE_DESIGN.' + 'TAPER' IN TYPEOF(sar.relating_shape_aspect)) AND (sar. relating_shape_aspect.description IN ['angle taper', 'directed taper']))) = 1))) <= 1; wr8 : SIZEOF(QUERY(pdr <* get_property_definition_representations(SELF) | ( 'AUTOMOTIVE_DESIGN.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation)) AND NOT ({1 <= SIZEOF(pdr.used_representation. items) <= 2}))) = 0; wr9 : SIZEOF(QUERY(pdr <* get_property_definition_representations(SELF) | ( 'AUTOMOTIVE_DESIGN.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation)) AND (SIZEOF(QUERY(i <* pdr.used_representation. items | NOT (i.name IN ['orientation', 'fillet radius 1']))) > 0))) = 0; wr10 : SIZEOF(QUERY(pdr <* get_property_definition_representations(SELF) | ( 'AUTOMOTIVE_DESIGN.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation)) AND (SIZEOF(QUERY(i <* pdr.used_representation. items | (i.name = 'base radius') AND (SIZEOF(['AUTOMOTIVE_DESIGN.' + 'MEASURE_REPRESENTATION_ITEM', 'AUTOMOTIVE_DESIGN.' + 'LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(i)) = 2))) = 1))) <= 1; END_ENTITY; -- 10303-214: automotive_design ENTITY pocket_bottom SUBTYPE OF (shape_aspect); WHERE wr1 : 'AUTOMOTIVE_DESIGN.' + '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(pdr <* get_shape_aspect_property_definition_representations(SELF) | 'AUTOMOTIVE_DESIGN.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation))) <= 1) AND (SIZEOF(QUERY(pdr <* get_shape_aspect_property_definition_representations(SELF) | ( 'AUTOMOTIVE_DESIGN.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation)) AND (SIZEOF(pdr.used_representation.items) = 1) AND (SIZEOF(QUERY(i <* pdr.used_representation.items | (i.name = 'radius') AND (SIZEOF(['AUTOMOTIVE_DESIGN.' + 'MEASURE_REPRESENTATION_ITEM', 'AUTOMOTIVE_DESIGN.' + 'LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(i)) = 2))) = 1))) <= 1); wr4 : NOT (SELF.description IN ['planar', 'complex']) OR (SIZEOF(QUERY(sar <* USEDIN(SELF, 'AUTOMOTIVE_DESIGN.SHAPE_ASPECT_RELATIONSHIP.RELATING_SHAPE_ASPECT') | ( 'AUTOMOTIVE_DESIGN.' + 'FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF(sar)) AND (sar.name IN ['starting', 'ending']))) = 1); wr5 : (SELF.description <> 'complex') OR (SIZEOF(QUERY(pdr <* get_shape_aspect_property_definition_representations(SELF) | 'AUTOMOTIVE_DESIGN.' + 'FACE_SHAPE_REPRESENTATION' IN TYPEOF(pdr. used_representation))) = 1) AND (SIZEOF(QUERY(pdr <* get_shape_aspect_property_definition_representations(SELF) | ( 'AUTOMOTIVE_DESIGN.' + 'FACE_SHAPE_REPRESENTATION' IN TYPEOF(pdr. used_representation)) AND (pdr.used_representation.name = 'floor'))) = 1); wr6 : (SELF.description <> 'planar') OR (SIZEOF(QUERY(pdr <* get_shape_aspect_property_definition_representations(SELF) | 'AUTOMOTIVE_DESIGN.' + 'LOCATION_SHAPE_REPRESENTATION' IN TYPEOF(pdr. used_representation))) = 1) AND (SIZEOF(QUERY(pdr <* get_shape_aspect_property_definition_representations(SELF) | ( 'AUTOMOTIVE_DESIGN.' + 'LOCATION_SHAPE_REPRESENTATION' IN TYPEOF(pdr. used_representation)) AND (pdr.used_representation.name = 'floor location') )) = 1); wr7 : (SELF.description <> 'planar') OR (SIZEOF(QUERY(pdr <* get_shape_aspect_property_definition_representations(SELF) | 'AUTOMOTIVE_DESIGN.' + 'DIRECTION_SHAPE_REPRESENTATION' IN TYPEOF(pdr. used_representation))) = 1) AND (SIZEOF(QUERY(pdr <* get_shape_aspect_property_definition_representations(SELF) | ( 'AUTOMOTIVE_DESIGN.' + 'DIRECTION_SHAPE_REPRESENTATION' IN TYPEOF(pdr. used_representation)) AND (pdr.used_representation.name = 'floor normal'))) = 1); wr8 : (SELF.description <> 'through') OR (SIZEOF(QUERY(pdr <* get_shape_aspect_property_definition_representations(SELF) | 'AUTOMOTIVE_DESIGN.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation))) = 0); wr9 : (SIZEOF(QUERY(sar <* USEDIN(SELF, 'AUTOMOTIVE_DESIGN.SHAPE_ASPECT_RELATIONSHIP.RELATING_SHAPE_ASPECT') | 'AUTOMOTIVE_DESIGN.' + 'FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF(sar))) = 1) AND (SIZEOF(QUERY(sar <* USEDIN(SELF, 'AUTOMOTIVE_DESIGN.SHAPE_ASPECT_RELATIONSHIP.RELATING_SHAPE_ASPECT') | ( 'AUTOMOTIVE_DESIGN.' + 'FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF(sar)) AND (sar.description = 'pocket bottom usage') AND ('AUTOMOTIVE_DESIGN.' + 'POCKET' IN TYPEOF(sar.related_shape_aspect.of_shape.definition)) AND ( sar.related_shape_aspect.of_shape.definition\characterized_object. description = 'bottom condition occurrence'))) = 1); END_ENTITY; -- 10303-214: automotive_design ENTITY point SUPERTYPE OF (ONEOF (cartesian_point, point_on_curve, point_on_surface, point_replica, degenerate_pcurve)) SUBTYPE OF (geometric_representation_item); END_ENTITY; -- 10303-42: geometry_schema ENTITY point_on_curve SUBTYPE OF (point); basis_curve : curve; point_parameter : parameter_value; END_ENTITY; -- 10303-42: geometry_schema ENTITY point_on_planar_curve_pair SUBTYPE OF (kinematic_pair); pair_curve : curve; orientation : BOOLEAN; WHERE wr1 : frame_associated_to_background(SELF\kinematic_pair. pair_placement_in_first_link_context, pair_curve); END_ENTITY; -- 10303-105: kinematic_structure_schema ENTITY point_on_planar_curve_pair_range SUBTYPE OF (simple_pair_range); SELF\simple_pair_range.applies_to_pair : point_on_planar_curve_pair; range_on_pair_curve : trimmed_curve; lower_limit_yaw : rotational_range_measure; upper_limit_yaw : rotational_range_measure; lower_limit_pitch : rotational_range_measure; upper_limit_pitch : rotational_range_measure; lower_limit_roll : rotational_range_measure; upper_limit_roll : rotational_range_measure; WHERE wr1 : SELF\simple_pair_range.applies_to_pair\point_on_planar_curve_pair. pair_curve :=: range_on_pair_curve.basis_curve; wr2 : ('AUTOMOTIVE_DESIGN.UNLIMITED_RANGE' IN TYPEOF(lower_limit_yaw)) OR ('AUTOMOTIVE_DESIGN.UNLIMITED_RANGE' IN TYPEOF(upper_limit_yaw)) XOR ( lower_limit_yaw < upper_limit_yaw); wr3 : ('AUTOMOTIVE_DESIGN.UNLIMITED_RANGE' IN TYPEOF(lower_limit_pitch)) OR ('AUTOMOTIVE_DESIGN.UNLIMITED_RANGE' IN TYPEOF(upper_limit_pitch)) XOR (lower_limit_pitch < upper_limit_pitch); wr4 : ('AUTOMOTIVE_DESIGN.UNLIMITED_RANGE' IN TYPEOF(lower_limit_roll)) OR ('AUTOMOTIVE_DESIGN.UNLIMITED_RANGE' IN TYPEOF(upper_limit_roll)) XOR ( lower_limit_roll < upper_limit_roll); END_ENTITY; -- 10303-105: kinematic_structure_schema ENTITY point_on_planar_curve_pair_value SUBTYPE OF (pair_value); SELF\pair_value.applies_to_pair : point_on_planar_curve_pair; actual_point_on_curve : point_on_curve; input_orientation : spatial_rotation; DERIVE actual_orientation : ypr_rotation := convert_spatial_to_ypr_rotation(SELF\ pair_value.applies_to_pair, input_orientation); WHERE wr1 : SELF\pair_value.applies_to_pair\point_on_planar_curve_pair.pair_curve :=: actual_point_on_curve.basis_curve; END_ENTITY; -- 10303-105: kinematic_structure_schema ENTITY point_on_surface SUBTYPE OF (point); basis_surface : surface; point_parameter_u : parameter_value; point_parameter_v : parameter_value; END_ENTITY; -- 10303-42: geometry_schema ENTITY point_on_surface_pair SUBTYPE OF (kinematic_pair); pair_surface : surface; WHERE wr1 : frame_associated_to_background(SELF\kinematic_pair. pair_placement_in_first_link_context, pair_surface); END_ENTITY; -- 10303-105: kinematic_structure_schema ENTITY point_on_surface_pair_range SUBTYPE OF (simple_pair_range); SELF\simple_pair_range.applies_to_pair : point_on_surface_pair; range_on_pair_surface : rectangular_trimmed_surface; lower_limit_yaw : rotational_range_measure; upper_limit_yaw : rotational_range_measure; lower_limit_pitch : rotational_range_measure; upper_limit_pitch : rotational_range_measure; lower_limit_roll : rotational_range_measure; upper_limit_roll : rotational_range_measure; WHERE wr1 : SELF\simple_pair_range.applies_to_pair\point_on_surface_pair. pair_surface :=: range_on_pair_surface.basis_surface; wr2 : ('AUTOMOTIVE_DESIGN.UNLIMITED_RANGE' IN TYPEOF(lower_limit_yaw)) OR ('AUTOMOTIVE_DESIGN.UNLIMITED_RANGE' IN TYPEOF(upper_limit_yaw)) XOR ( lower_limit_yaw < upper_limit_yaw); wr3 : ('AUTOMOTIVE_DESIGN.UNLIMITED_RANGE' IN TYPEOF(lower_limit_pitch)) OR ('AUTOMOTIVE_DESIGN.UNLIMITED_RANGE' IN TYPEOF(upper_limit_pitch)) XOR (lower_limit_pitch < upper_limit_pitch); wr4 : ('AUTOMOTIVE_DESIGN.UNLIMITED_RANGE' IN TYPEOF(lower_limit_roll)) OR ('AUTOMOTIVE_DESIGN.UNLIMITED_RANGE' IN TYPEOF(upper_limit_roll)) XOR ( lower_limit_roll < upper_limit_roll); END_ENTITY; -- 10303-105: kinematic_structure_schema ENTITY point_on_surface_pair_value SUBTYPE OF (pair_value); SELF\pair_value.applies_to_pair : point_on_surface_pair; actual_point_on_surface : point_on_surface; input_orientation : spatial_rotation; DERIVE actual_orientation : ypr_rotation := convert_spatial_to_ypr_rotation(SELF\ pair_value.applies_to_pair, input_orientation); WHERE wr1 : SELF\pair_value.applies_to_pair\point_on_surface_pair.pair_surface :=: actual_point_on_surface.basis_surface; END_ENTITY; -- 10303-105: kinematic_structure_schema ENTITY point_placement_shape_representation SUBTYPE OF (shape_representation); WHERE wr1 : SIZEOF(QUERY(i <* SELF.items | SIZEOF(['AUTOMOTIVE_DESIGN.' + 'COMPOUND_REPRESENTATION_ITEM', 'AUTOMOTIVE_DESIGN.' + 'MAPPED_ITEM', 'AUTOMOTIVE_DESIGN.' + 'AXIS2_PLACEMENT_3D'] * TYPEOF(i)) <> 1)) = 0; wr2 : SIZEOF(QUERY(i <* SELF.items | SIZEOF(['AUTOMOTIVE_DESIGN.' + 'COMPOUND_REPRESENTATION_ITEM', 'AUTOMOTIVE_DESIGN.' + 'MAPPED_ITEM'] * TYPEOF(i)) = 1)) > 0; END_ENTITY; -- 10303-214: automotive_design 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; -- 10303-42: geometry_schema ENTITY point_style; name : label; marker : marker_select; marker_size : size_select; marker_colour : colour; END_ENTITY; -- 10303-46: presentation_appearance_schema ENTITY poly_loop SUBTYPE OF (loop, geometric_representation_item); polygon : LIST [3:?] OF UNIQUE cartesian_point; END_ENTITY; -- 10303-42: topology_schema ENTITY polyline SUBTYPE OF (bounded_curve); points : LIST [2:?] OF cartesian_point; END_ENTITY; -- 10303-42: geometry_schema ENTITY position_tolerance SUBTYPE OF (geometric_tolerance); WHERE wr1 : NOT ('AUTOMOTIVE_DESIGN.' + 'GEOMETRIC_TOLERANCE_WITH_DATUM_REFERENCE' IN TYPEOF(SELF)) OR (SIZEOF(SELF \geometric_tolerance_with_datum_reference.datum_system) <= 3); END_ENTITY; -- 10303-519: aic_geometric_tolerances ENTITY power_expression SUBTYPE OF (binary_numeric_expression); END_ENTITY; (* declared in: iso13584_expressions_schema *) ENTITY pre_defined_colour SUBTYPE OF (pre_defined_item, colour); END_ENTITY; -- 10303-46: presentation_resource_schema ENTITY pre_defined_curve_font SUBTYPE OF (pre_defined_item); END_ENTITY; -- 10303-46: presentation_appearance_schema 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; -- 10303-214: automotive_design 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; -- 10303-214: automotive_design ENTITY pre_defined_item; name : label; END_ENTITY; -- 10303-41: external_reference_schema ENTITY pre_defined_marker SUBTYPE OF (pre_defined_item); END_ENTITY; -- 10303-46: presentation_appearance_schema 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; -- 10303-214: automotive_design ENTITY pre_defined_presentation_style SUBTYPE OF (pre_defined_item); END_ENTITY; -- 10303-46: presentation_appearance_schema 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; -- 10303-214: automotive_design ENTITY pre_defined_symbol SUBTYPE OF (pre_defined_item); END_ENTITY; -- 10303-46: presentation_definition_schema ENTITY pre_defined_terminator_symbol SUBTYPE OF (pre_defined_symbol); WHERE wr1 : SELF.name IN ['blanked arrow', 'blanked box', 'blanked dot', 'dimension origin', 'filled arrow', 'filled box', 'filled dot', 'integral symbol', 'open arrow', 'slash', 'unfilled arrow']; END_ENTITY; -- 10303-214: automotive_design ENTITY pre_defined_text_font SUBTYPE OF (pre_defined_item); END_ENTITY; -- 10303-46: presentation_resource_schema ENTITY precision_qualifier; precision_value : INTEGER; END_ENTITY; -- 10303-45: qualified_measure_schema ENTITY presentation_area SUBTYPE OF (presentation_representation); WHERE wr1 : (SIZEOF(QUERY(ais <* USEDIN(SELF, 'AUTOMOTIVE_DESIGN.AREA_IN_SET.AREA') | SIZEOF(USEDIN(ais, 'AUTOMOTIVE_DESIGN.PRESENTATION_SIZE.UNIT')) = 1)) > 0) OR (SIZEOF( USEDIN(SELF, 'AUTOMOTIVE_DESIGN.PRESENTATION_SIZE.UNIT')) = 1); END_ENTITY; -- 10303-46: presentation_organization_schema ENTITY presentation_layer_assignment; name : label; description : text; assigned_items : SET [1:?] OF layered_item; END_ENTITY; -- 10303-46: presentation_organization_schema ENTITY presentation_representation SUBTYPE OF (representation); WHERE wr1 : SELF\representation.context_of_items\geometric_representation_context. coordinate_space_dimension = 2; wr2 : 'AUTOMOTIVE_DESIGN.GEOMETRIC_REPRESENTATION_CONTEXT' IN TYPEOF(SELF\ representation.context_of_items); END_ENTITY; -- 10303-46: presentation_organization_schema ENTITY presentation_set; INVERSE areas : SET [1:?] OF area_in_set FOR in_set; END_ENTITY; -- 10303-46: presentation_organization_schema ENTITY presentation_size; unit : presentation_size_assignment_select; size : planar_box; WHERE wr1 : ('AUTOMOTIVE_DESIGN.PRESENTATION_REPRESENTATION' IN TYPEOF(SELF.unit )) AND item_in_context(SELF.size, SELF.unit\representation.context_of_items ) OR ('AUTOMOTIVE_DESIGN.AREA_IN_SET' IN TYPEOF(SELF.unit)) AND (SIZEOF( QUERY(ais <* SELF.unit\area_in_set.in_set.areas | NOT item_in_context(SELF. size, ais.area\representation.context_of_items))) = 0); END_ENTITY; -- 10303-46: presentation_organization_schema ENTITY presentation_style_assignment; styles : SET [1:?] OF presentation_style_select; WHERE wr1 : SIZEOF(QUERY(style1 <* SELF.styles | NOT (SIZEOF(QUERY(style2 <* SELF. styles - style1 | NOT ((TYPEOF(style1) <> TYPEOF(style2)) OR (SIZEOF([ 'AUTOMOTIVE_DESIGN.' + 'SURFACE_STYLE_USAGE', 'AUTOMOTIVE_DESIGN.' + 'EXTERNALLY_DEFINED_STYLE'] * TYPEOF(style1)) = 1)))) = 0))) = 0; wr2 : SIZEOF(QUERY(style1 <* SELF.styles | 'AUTOMOTIVE_DESIGN.SURFACE_STYLE_USAGE' IN TYPEOF(style1))) <= 2; END_ENTITY; -- 10303-46: presentation_appearance_schema ENTITY presentation_style_by_context SUBTYPE OF (presentation_style_assignment); style_context : style_context_select; END_ENTITY; -- 10303-46: presentation_appearance_schema ENTITY presentation_view SUBTYPE OF (presentation_representation); END_ENTITY; -- 10303-46: presentation_organization_schema ENTITY presented_item ABSTRACT SUPERTYPE; END_ENTITY; -- 10303-46: presentation_organization_schema ENTITY presented_item_representation; presentation : presentation_representation_select; item : presented_item; END_ENTITY; -- 10303-46: presentation_organization_schema ENTITY prismatic_pair SUBTYPE OF (kinematic_pair); END_ENTITY; -- 10303-105: kinematic_structure_schema ENTITY prismatic_pair_range SUBTYPE OF (simple_pair_range); SELF\simple_pair_range.applies_to_pair : prismatic_pair; lower_limit_actual_translation : translational_range_measure; upper_limit_actual_translation : translational_range_measure; WHERE wr1 : ('AUTOMOTIVE_DESIGN.UNLIMITED_RANGE' IN TYPEOF( lower_limit_actual_translation)) OR ('AUTOMOTIVE_DESIGN.UNLIMITED_RANGE' IN TYPEOF(upper_limit_actual_translation)) XOR ( lower_limit_actual_translation < upper_limit_actual_translation); END_ENTITY; -- 10303-105: kinematic_structure_schema ENTITY prismatic_pair_value SUBTYPE OF (pair_value); SELF\pair_value.applies_to_pair : prismatic_pair; actual_translation : length_measure; END_ENTITY; -- 10303-105: kinematic_structure_schema ENTITY process_operation SUBTYPE OF (action_method); WHERE wr1 : SIZEOF(QUERY(amr <* USEDIN(SELF, 'AUTOMOTIVE_DESIGN.ACTION_METHOD_RELATIONSHIP.RELATING_METHOD') | NOT ( 'AUTOMOTIVE_DESIGN.' + 'PROCESS_OPERATION' IN TYPEOF(amr.related_method) ) OR (SELF :=: amr.related_method))) = 0; wr2 : SIZEOF(QUERY(amr <* USEDIN(SELF, 'AUTOMOTIVE_DESIGN.ACTION_METHOD_RELATIONSHIP.RELATED_METHOD') | NOT ( 'AUTOMOTIVE_DESIGN.' + 'PROCESS_OPERATION' IN TYPEOF(amr.relating_method )) OR (SELF :=: amr.relating_method))) = 0; END_ENTITY; -- 10303-214: automotive_design ENTITY process_plan SUBTYPE OF (action); WHERE wr1 : SIZEOF(QUERY(ar <* USEDIN(SELF, 'AUTOMOTIVE_DESIGN.ACTION_RELATIONSHIP.RELATED_ACTION') | SIZEOF([ 'AUTOMOTIVE_DESIGN.' + 'PROCESS_PLAN', 'AUTOMOTIVE_DESIGN.' + 'PRODUCT_PROCESS_PLAN'] * TYPEOF(ar.relating_action)) <> 1)) = 0; wr2 : SIZEOF(QUERY(ar <* USEDIN(SELF, 'AUTOMOTIVE_DESIGN.ACTION_RELATIONSHIP.RELATING_ACTION') | (SIZEOF([ 'AUTOMOTIVE_DESIGN.' + 'PROCESS_PLAN', 'AUTOMOTIVE_DESIGN.' + 'PRODUCT_PROCESS_PLAN'] * TYPEOF(ar.related_action)) = 1) OR (ar.name = 'process operation occurrence') AND ('AUTOMOTIVE_DESIGN.' + 'PROCESS_OPERATION' IN TYPEOF(ar.related_action.chosen_method)))) = SIZEOF( USEDIN(SELF, 'AUTOMOTIVE_DESIGN.ACTION_RELATIONSHIP.RELATING_ACTION')); END_ENTITY; -- 10303-214: automotive_design ENTITY process_product_association; name : label; description : text; defined_product : characterized_product_definition; process : product_definition_process; END_ENTITY; -- 10303-49: process_property_schema ENTITY process_property_association; name : label; description : text; process : property_process; property_or_shape : property_or_shape_select; END_ENTITY; -- 10303-49: process_property_schema ENTITY product; id : identifier; name : label; description : OPTIONAL text; frame_of_reference : SET [1:?] OF product_context; END_ENTITY; -- 10303-41: product_definition_schema ENTITY product_category; name : label; description : OPTIONAL text; DERIVE id : identifier := get_id_value(SELF); WHERE wr1 : SIZEOF(USEDIN(SELF, 'AUTOMOTIVE_DESIGN.ID_ATTRIBUTE.IDENTIFIED_ITEM' )) <= 1; END_ENTITY; -- 10303-41: product_definition_schema ENTITY product_category_relationship; name : label; description : OPTIONAL text; category : product_category; sub_category : product_category; WHERE wr1 : acyclic_product_category_relationship(SELF, [SELF.sub_category]); END_ENTITY; -- 10303-41: product_definition_schema ENTITY product_class SUBTYPE OF (product_concept, characterized_object); END_ENTITY; -- 10303-214: automotive_design ENTITY product_concept; id : identifier; name : label; description : OPTIONAL text; market_context : product_concept_context; UNIQUE ur1 : id; END_ENTITY; -- 10303-44: product_concept_schema ENTITY product_concept_context SUBTYPE OF (application_context_element); market_segment_type : label; END_ENTITY; -- 10303-41: application_context_schema ENTITY product_concept_feature; id : identifier; name : label; description : OPTIONAL text; END_ENTITY; -- 10303-44: product_concept_schema ENTITY product_concept_feature_association; name : label; description : OPTIONAL text; concept : product_concept; feature : product_concept_feature; END_ENTITY; -- 10303-44: product_concept_schema ENTITY product_concept_feature_category SUBTYPE OF (group); WHERE wr1 : SIZEOF(QUERY(aga <* USEDIN(SELF, 'AUTOMOTIVE_DESIGN.GROUP_ASSIGNMENT.ASSIGNED_GROUP') | ( 'AUTOMOTIVE_DESIGN.' + 'APPLIED_GROUP_ASSIGNMENT' IN TYPEOF(aga)) AND (( aga.role.name <> 'specification category member') OR (SIZEOF(QUERY(i <* aga .items | ('AUTOMOTIVE_DESIGN.' + 'PRODUCT_CONCEPT_FEATURE' IN TYPEOF(i)) AND NOT ('AUTOMOTIVE_DESIGN.' + 'CONDITIONAL_CONCEPT_FEATURE' IN TYPEOF (i)))) <> SIZEOF(aga.items))))) = 0; END_ENTITY; -- 10303-214: automotive_design ENTITY product_concept_feature_category_usage SUBTYPE OF (group_assignment); items : SET [1:?] OF category_usage_item; WHERE wr1 : 'AUTOMOTIVE_DESIGN.' + 'PRODUCT_CONCEPT_FEATURE_CATEGORY' IN TYPEOF( SELF.assigned_group); wr2 : SELF.role.name IN ['mandatory category usage', 'optional category usage']; END_ENTITY; -- 10303-214: automotive_design ENTITY product_concept_relationship; name : label; description : OPTIONAL text; relating_product_concept : product_concept; related_product_concept : product_concept; END_ENTITY; -- 10303-44: product_concept_schema ENTITY product_context SUBTYPE OF (application_context_element); discipline_type : label; END_ENTITY; -- 10303-41: application_context_schema ENTITY product_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, 'AUTOMOTIVE_DESIGN.NAME_ATTRIBUTE.NAMED_ITEM')) <= 1; END_ENTITY; -- 10303-41: product_definition_schema ENTITY product_definition_context SUBTYPE OF (application_context_element); life_cycle_stage : label; END_ENTITY; -- 10303-41: application_context_schema ENTITY product_definition_context_association; definition : product_definition; frame_of_reference : product_definition_context; role : product_definition_context_role; END_ENTITY; -- 10303-41: product_definition_schema ENTITY product_definition_context_role; name : label; description : OPTIONAL text; END_ENTITY; -- 10303-41: product_definition_schema ENTITY product_definition_effectivity SUBTYPE OF (effectivity); usage : product_definition_relationship; WHERE wr1 : SIZEOF(USEDIN(SELF, 'AUTOMOTIVE_DESIGN.EFFECTIVITY_ASSIGNMENT.ASSIGNED_EFFECTIVITY')) = 0; END_ENTITY; -- 10303-41: product_definition_schema ENTITY product_definition_formation; id : identifier; description : OPTIONAL text; of_product : product; UNIQUE ur1 : id, of_product; END_ENTITY; -- 10303-41: product_definition_schema ENTITY product_definition_formation_relationship; id : identifier; name : label; description : OPTIONAL text; relating_product_definition_formation : product_definition_formation; related_product_definition_formation : product_definition_formation; END_ENTITY; -- 10303-41: product_definition_schema ENTITY product_definition_formation_with_specified_source SUBTYPE OF (product_definition_formation); make_or_buy : source; END_ENTITY; -- 10303-41: product_definition_schema ENTITY product_definition_occurrence_relationship; name : label; description : OPTIONAL text; occurrence : product_definition; occurrence_usage : assembly_component_usage; WHERE wr1 : occurrence_usage.relating_product_definition :<>: occurrence; wr2 : occurrence_usage.related_product_definition :<>: occurrence; wr3 : occurrence.formation :=: occurrence_usage.related_product_definition. formation; END_ENTITY; -- 10303-44: product_structure_schema ENTITY product_definition_process SUBTYPE OF (action); identification : identifier; INVERSE product_definitions : SET [1:?] OF process_product_association FOR process; END_ENTITY; -- 10303-49: process_property_schema ENTITY product_definition_relationship; id : identifier; name : label; description : OPTIONAL text; relating_product_definition : product_definition; related_product_definition : product_definition; END_ENTITY; -- 10303-41: product_definition_schema ENTITY product_definition_resource SUBTYPE OF (action_resource, product_definition); WHERE wr1 : SIZEOF(USEDIN(SELF, 'AUTOMOTIVE_DESIGN.REQUIREMENT_FOR_ACTION_RESOURCE.RESOURCES')) > 0; wr2 : SELF.frame_of_reference.name IN ['part_definition', 'part occurrence', 'physical occurrence']; END_ENTITY; -- 10303-214: automotive_design ENTITY product_definition_shape SUBTYPE OF (property_definition); UNIQUE ur1 : SELF\property_definition.definition; WHERE wr1 : SIZEOF(['AUTOMOTIVE_DESIGN.CHARACTERIZED_PRODUCT_DEFINITION', 'AUTOMOTIVE_DESIGN.CHARACTERIZED_OBJECT'] * TYPEOF(SELF\ property_definition.definition)) > 0; END_ENTITY; -- 10303-41: product_property_definition_schema ENTITY product_definition_substitute; description : OPTIONAL text; context_relationship : product_definition_relationship; substitute_definition : product_definition; DERIVE name : label := get_name_value(SELF); WHERE wr1 : context_relationship.related_product_definition :<>: substitute_definition; wr2 : SIZEOF(USEDIN(SELF, 'AUTOMOTIVE_DESIGN.NAME_ATTRIBUTE.NAMED_ITEM')) <= 1; END_ENTITY; -- 10303-41: product_definition_schema ENTITY product_definition_usage SUPERTYPE OF (ONEOF (make_from_usage_option, assembly_component_usage)) SUBTYPE OF (product_definition_relationship); UNIQUE ur1 : SELF\product_definition_relationship.id, SELF\ product_definition_relationship.relating_product_definition, SELF\ product_definition_relationship.related_product_definition; WHERE wr1 : acyclic_product_definition_relationship(SELF, [SELF\ product_definition_relationship.related_product_definition], 'AUTOMOTIVE_DESIGN.PRODUCT_DEFINITION_USAGE'); END_ENTITY; -- 10303-44: product_structure_schema ENTITY product_definition_with_associated_documents SUBTYPE OF (product_definition); documentation_ids : SET [1:?] OF document; END_ENTITY; -- 10303-41: product_definition_schema ENTITY product_identification SUBTYPE OF (configuration_item, characterized_object); WHERE wr1 : SIZEOF(QUERY(cd <* USEDIN(SELF, 'AUTOMOTIVE_DESIGN.CONFIGURATION_DESIGN.CONFIGURATION') | ( 'AUTOMOTIVE_DESIGN.' + 'PRODUCT_DEFINITION_FORMATION' IN TYPEOF(cd. design)) AND (SIZEOF(QUERY(prpc <* USEDIN(cd.design\ product_definition_formation.of_product, 'AUTOMOTIVE_DESIGN.PRODUCT_RELATED_PRODUCT_CATEGORY.PRODUCTS') | prpc. name IN ['part', 'raw material', 'tool'])) > 0))) <= 1; wr2 : 'AUTOMOTIVE_DESIGN.' + 'PRODUCT_CLASS' IN TYPEOF(SELF.item_concept); wr3 : NOT ('AUTOMOTIVE_DESIGN.' + 'CONFIGURABLE_ITEM' IN TYPEOF(SELF)) OR ('AUTOMOTIVE_DESIGN.' + 'PRODUCT_SPECIFICATION' IN TYPEOF(SELF)); END_ENTITY; -- 10303-214: automotive_design ENTITY product_process_plan SUBTYPE OF (product_definition_process); WHERE wr1 : SIZEOF(QUERY(ar <* USEDIN(SELF, 'AUTOMOTIVE_DESIGN.ACTION_RELATIONSHIP.RELATED_ACTION') | SIZEOF([ 'AUTOMOTIVE_DESIGN.' + 'PROCESS_PLAN', 'AUTOMOTIVE_DESIGN.' + 'PRODUCT_PROCESS_PLAN'] * TYPEOF(ar.relating_action)) <> 1)) = 0; wr2 : SIZEOF(QUERY(ar <* USEDIN(SELF, 'AUTOMOTIVE_DESIGN.ACTION_RELATIONSHIP.RELATING_ACTION') | (SIZEOF([ 'AUTOMOTIVE_DESIGN.' + 'PROCESS_PLAN', 'AUTOMOTIVE_DESIGN.' + 'PRODUCT_PROCESS_PLAN'] * TYPEOF(ar.related_action)) = 1) OR (ar.name = 'process operation occurrence') AND ('AUTOMOTIVE_DESIGN.' + 'PROCESS_OPERATION' IN TYPEOF(ar.related_action.chosen_method)))) = SIZEOF( USEDIN(SELF, 'AUTOMOTIVE_DESIGN.ACTION_RELATIONSHIP.RELATING_ACTION')); wr3 : SIZEOF(QUERY(ppa <* USEDIN(SELF, 'AUTOMOTIVE_DESIGN.PROCESS_PRODUCT_ASSOCIATION.PROCESS') | (ppa.name <> 'produced output') OR NOT ('AUTOMOTIVE_DESIGN.' + 'PRODUCT_DEFINITION' IN TYPEOF(ppa.defined_product)))) = 0; END_ENTITY; -- 10303-214: automotive_design ENTITY product_related_product_category SUBTYPE OF (product_category); products : SET [1:?] OF product; END_ENTITY; -- 10303-41: product_definition_schema ENTITY product_specification SUBTYPE OF (product_identification, configurable_item); END_ENTITY; -- 10303-214: automotive_design ENTITY projected_zone_definition SUBTYPE OF (tolerance_zone_definition); projection_end : shape_aspect; projected_length : measure_with_unit; WHERE wr1 : ('NUMBER' IN TYPEOF(projected_length\measure_with_unit.value_component) ) AND (projected_length\measure_with_unit.value_component > 0.0); wr2 : derive_dimensional_exponents(projected_length\measure_with_unit. unit_component) = dimensional_exponents(1, 0, 0, 0, 0, 0, 0); END_ENTITY; -- 10303-47: shape_tolerance_schema ENTITY projection_curve SUBTYPE OF (annotation_curve_occurrence); END_ENTITY; -- 10303-101: draughting_element_schema ENTITY projection_directed_callout SUBTYPE OF (draughting_callout); WHERE wr1 : SIZEOF(QUERY(p_1 <* SELF\draughting_callout.contents | 'AUTOMOTIVE_DESIGN.PROJECTION_CURVE' IN TYPEOF(p_1))) = 1; wr2 : SIZEOF(SELF\draughting_callout.contents) >= 2; END_ENTITY; -- 10303-101: draughting_element_schema ENTITY promissory_usage_occurrence SUBTYPE OF (assembly_component_usage); END_ENTITY; -- 10303-44: product_structure_schema ENTITY property_definition; name : label; description : OPTIONAL text; definition : characterized_definition; DERIVE id : identifier := get_id_value(SELF); WHERE wr1 : SIZEOF(USEDIN(SELF, 'AUTOMOTIVE_DESIGN.ID_ATTRIBUTE.IDENTIFIED_ITEM' )) <= 1; END_ENTITY; -- 10303-41: product_property_definition_schema ENTITY property_definition_relationship; name : label; description : text; relating_property_definition : property_definition; related_property_definition : property_definition; END_ENTITY; -- 10303-45: material_property_definition_schema ENTITY property_definition_representation; definition : represented_definition; used_representation : representation; DERIVE description : text := get_description_value(SELF); name : label := get_name_value(SELF); WHERE wr1 : SIZEOF(USEDIN(SELF, 'AUTOMOTIVE_DESIGN.DESCRIPTION_ATTRIBUTE.DESCRIBED_ITEM')) <= 1; wr2 : SIZEOF(USEDIN(SELF, 'AUTOMOTIVE_DESIGN.NAME_ATTRIBUTE.NAMED_ITEM')) <= 1; END_ENTITY; -- 10303-41: product_property_representation_schema ENTITY property_process SUBTYPE OF (action); identification : identifier; INVERSE properties : SET [1:?] OF process_property_association FOR process; END_ENTITY; -- 10303-49: process_property_schema ENTITY qualified_representation_item SUBTYPE OF (representation_item); qualifiers : SET [1:?] OF value_qualifier; WHERE wr1 : SIZEOF(QUERY(temp <* qualifiers | 'AUTOMOTIVE_DESIGN.PRECISION_QUALIFIER' IN TYPEOF(temp))) < 2; END_ENTITY; -- 10303-45: qualified_measure_schema ENTITY qualitative_uncertainty SUBTYPE OF (uncertainty_qualifier); uncertainty_value : text; END_ENTITY; -- 10303-45: qualified_measure_schema ENTITY quantified_assembly_component_usage SUBTYPE OF (assembly_component_usage); quantity : measure_with_unit; WHERE wr1 : NOT ('NUMBER' IN TYPEOF(quantity.value_component)) OR (quantity. value_component > 0); END_ENTITY; -- 10303-44: product_structure_schema ENTITY quasi_uniform_curve SUBTYPE OF (b_spline_curve); END_ENTITY; -- 10303-42: geometry_schema ENTITY quasi_uniform_surface SUBTYPE OF (b_spline_surface); END_ENTITY; -- 10303-42: geometry_schema ENTITY rack_and_pinion_pair SUBTYPE OF (kinematic_pair); pinion_radius : length_measure; END_ENTITY; -- 10303-105: kinematic_structure_schema ENTITY rack_and_pinion_pair_range SUBTYPE OF (simple_pair_range); SELF\simple_pair_range.applies_to_pair : rack_and_pinion_pair; lower_limit_rack_displacement : translational_range_measure; upper_limit_rack_displacement : translational_range_measure; WHERE wr1 : ('AUTOMOTIVE_DESIGN.UNLIMITED_RANGE' IN TYPEOF( lower_limit_rack_displacement)) OR ('AUTOMOTIVE_DESIGN.UNLIMITED_RANGE' IN TYPEOF(upper_limit_rack_displacement)) XOR ( lower_limit_rack_displacement < upper_limit_rack_displacement); END_ENTITY; -- 10303-105: kinematic_structure_schema ENTITY rack_and_pinion_pair_value SUBTYPE OF (pair_value); SELF\pair_value.applies_to_pair : rack_and_pinion_pair; actual_displacement : length_measure; DERIVE actual_rotation : plane_angle_measure := convert_plane_angle_for_pair_from_radian(SELF\pair_value.applies_to_pair, - actual_displacement/SELF\pair_value.applies_to_pair\rack_and_pinion_pair. pinion_radius); END_ENTITY; -- 10303-105: kinematic_structure_schema ENTITY radius_dimension SUBTYPE OF (dimension_curve_directed_callout); WHERE wr1 : SIZEOF(QUERY(con <* SELF.contents | 'AUTOMOTIVE_DESIGN.PROJECTION_CURVE' IN TYPEOF(con))) <= 1; END_ENTITY; -- 10303-506: aic_draughting_elements ENTITY ratio_measure_with_unit SUBTYPE OF (measure_with_unit); WHERE wr1 : 'AUTOMOTIVE_DESIGN.RATIO_UNIT' IN TYPEOF(SELF\measure_with_unit. unit_component); END_ENTITY; -- 10303-41: measure_schema ENTITY ratio_unit SUBTYPE OF (named_unit); WHERE wr1 : (SELF\named_unit.dimensions.length_exponent = 0.000000) AND (SELF\ named_unit.dimensions.mass_exponent = 0.000000) AND (SELF\named_unit .dimensions.time_exponent = 0.000000) AND (SELF\named_unit.dimensions. electric_current_exponent = 0.000000) AND (SELF\named_unit.dimensions. thermodynamic_temperature_exponent = 0.000000) AND (SELF\named_unit. dimensions.amount_of_substance_exponent = 0.000000) AND (SELF\named_unit. dimensions.luminous_intensity_exponent = 0.000000); END_ENTITY; -- 10303-41: measure_schema ENTITY rational_b_spline_curve SUBTYPE OF (b_spline_curve); weights_data : LIST [2:?] OF REAL; DERIVE weights : ARRAY [0 : upper_index_on_control_points] OF REAL := list_to_array (weights_data, 0, upper_index_on_control_points); WHERE wr1 : SIZEOF(weights_data) = SIZEOF(SELF\b_spline_curve.control_points_list); wr2 : curve_weights_positive(SELF); END_ENTITY; -- 10303-42: geometry_schema ENTITY rational_b_spline_surface SUBTYPE OF (b_spline_surface); weights_data : LIST [2:?] OF LIST [2:?] OF REAL; DERIVE weights : ARRAY [0 : u_upper] OF ARRAY [0 : v_upper] OF REAL := make_array_of_array(weights_data, 0, u_upper, 0, v_upper); WHERE wr1 : (SIZEOF(weights_data) = SIZEOF(SELF\b_spline_surface. control_points_list)) AND (SIZEOF(weights_data[1]) = SIZEOF(SELF\ b_spline_surface.control_points_list[1])); wr2 : surface_weights_positive(SELF); END_ENTITY; -- 10303-42: geometry_schema ENTITY real_defined_function ABSTRACT SUPERTYPE SUBTYPE OF (numeric_defined_function); END_ENTITY; (* declared in: iso13584_expressions_schema *) ENTITY real_literal SUBTYPE OF (literal_number); SELF\literal_number.the_value : REAL; END_ENTITY; (* declared in: iso13584_expressions_schema *) ENTITY real_numeric_variable SUBTYPE OF (numeric_variable); END_ENTITY; (* declared in: iso13584_expressions_schema *) ENTITY rectangular_closed_profile SUBTYPE OF (shape_aspect); WHERE wr1 : 'AUTOMOTIVE_DESIGN.' + 'FEATURE_COMPONENT_DEFINITION' IN TYPEOF(SELF .of_shape.definition); wr2 : SIZEOF(QUERY(pdr <* get_shape_aspect_property_definition_representations(SELF) | 'AUTOMOTIVE_DESIGN.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation))) = 1; wr3 : SIZEOF(QUERY(pdr <* get_shape_aspect_property_definition_representations(SELF) | ( 'AUTOMOTIVE_DESIGN.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation)) AND {3 <= SIZEOF(pdr.used_representation.items) <= 4})) = 1; wr4 : SIZEOF(QUERY(pdr <* get_shape_aspect_property_definition_representations(SELF) | ( 'AUTOMOTIVE_DESIGN.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation)) AND (SIZEOF(QUERY(i <* pdr.used_representation. items | NOT (i.name IN ['orientation', 'length', 'width', 'corner radius']) )) > 0))) = 0; wr5 : SIZEOF(QUERY(pdr <* get_shape_aspect_property_definition_representations(SELF) | ( 'AUTOMOTIVE_DESIGN.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation)) AND (SIZEOF(QUERY(i <* pdr.used_representation. items | ('AUTOMOTIVE_DESIGN.' + 'PLACEMENT' IN TYPEOF(i)) AND (i.name = 'orientation'))) = 1))) = 1; wr6 : SIZEOF(QUERY(pdr <* get_shape_aspect_property_definition_representations(SELF) | ( 'AUTOMOTIVE_DESIGN.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation)) AND (SIZEOF(QUERY(i <* pdr.used_representation. items | (SIZEOF(['AUTOMOTIVE_DESIGN.' + 'MEASURE_REPRESENTATION_ITEM', 'AUTOMOTIVE_DESIGN.' + 'LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(i)) = 2) AND (i.name = 'width'))) = 1))) = 1; wr7 : SIZEOF(QUERY(pdr <* get_shape_aspect_property_definition_representations(SELF) | ( 'AUTOMOTIVE_DESIGN.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation)) AND (SIZEOF(QUERY(i <* pdr.used_representation. items | (SIZEOF(['AUTOMOTIVE_DESIGN.' + 'MEASURE_REPRESENTATION_ITEM', 'AUTOMOTIVE_DESIGN.' + 'LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(i)) = 2) AND (i.name = 'length'))) = 1))) = 1; wr8 : (SIZEOF(QUERY(pdr <* get_shape_aspect_property_definition_representations(SELF) | ( 'AUTOMOTIVE_DESIGN.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation)) AND (SIZEOF(QUERY(i <* pdr.used_representation. items | i.name = 'corner radius')) = 1))) <= 1) AND (SIZEOF(QUERY(pdr <* get_shape_aspect_property_definition_representations(SELF) | ( 'AUTOMOTIVE_DESIGN.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation)) AND (SIZEOF(QUERY(i <* pdr.used_representation. items | SIZEOF(['AUTOMOTIVE_DESIGN.' + 'MEASURE_REPRESENTATION_ITEM', 'AUTOMOTIVE_DESIGN.' + 'LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(i)) = 2)) = 1))) <= 1); END_ENTITY; -- 10303-214: automotive_design 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; -- 10303-42: geometry_schema ENTITY rectangular_pattern SUBTYPE OF (replicate_feature); WHERE wr1 : SIZEOF(QUERY(pdr <* get_property_definition_representations(SELF) | ( 'AUTOMOTIVE_DESIGN.' + 'DIRECTION_SHAPE_REPRESENTATION' IN TYPEOF(pdr. used_representation)) AND (pdr.used_representation.name = 'row layout direction'))) = 1; wr2 : SIZEOF(QUERY(pdr <* get_property_definition_representations(SELF) | ( 'AUTOMOTIVE_DESIGN.' + 'DIRECTION_SHAPE_REPRESENTATION' IN TYPEOF(pdr. used_representation)) AND (pdr.used_representation.name = 'column layout direction'))) = 1; wr3 : SIZEOF(QUERY(pdr <* get_property_definition_representations(SELF) | ( 'AUTOMOTIVE_DESIGN.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation)) AND (SIZEOF(pdr.used_representation.items) = 5))) = 1; wr4 : SIZEOF(QUERY(pdr <* get_property_definition_representations(SELF) | ( 'AUTOMOTIVE_DESIGN.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation)) AND (SIZEOF(QUERY(i <* pdr.used_representation. items | (i.name = 'number of rows') AND ('AUTOMOTIVE_DESIGN.' + 'MEASURE_REPRESENTATION_ITEM' IN TYPEOF(i)) AND ('AUTOMOTIVE_DESIGN.' + 'COUNT_MEASURE' IN TYPEOF(i\measure_with_unit.value_component)))) = 1))) = 1; wr5 : SIZEOF(QUERY(pdr <* get_property_definition_representations(SELF) | ( 'AUTOMOTIVE_DESIGN.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation)) AND (SIZEOF(QUERY(i <* pdr.used_representation. items | (i.name = 'number of columnws') AND ('AUTOMOTIVE_DESIGN.' + 'MEASURE_REPRESENTATION_ITEM' IN TYPEOF(i)) AND ('AUTOMOTIVE_DESIGN.' + 'COUNT_MEASURE' IN TYPEOF(i\measure_with_unit.value_component)))) = 1))) = 1; wr6 : SIZEOF(QUERY(pdr <* get_property_definition_representations(SELF) | ( 'AUTOMOTIVE_DESIGN.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation)) AND (SIZEOF(QUERY(i <* pdr.used_representation. items | (i.name = 'row spacing') AND (SIZEOF(['AUTOMOTIVE_DESIGN.' + 'MEASURE_REPRESENTATION_ITEM', 'AUTOMOTIVE_DESIGN.' + 'LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(i)) = 2))) = 1))) = 1; wr7 : SIZEOF(QUERY(pdr <* get_property_definition_representations(SELF) | ( 'AUTOMOTIVE_DESIGN.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation)) AND (SIZEOF(QUERY(i <* pdr.used_representation. items | (i.name = 'column spacing') AND (SIZEOF(['AUTOMOTIVE_DESIGN.' + 'MEASURE_REPRESENTATION_ITEM', 'AUTOMOTIVE_DESIGN.' + 'LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(i)) = 2))) = 1))) = 1; END_ENTITY; -- 10303-214: automotive_design 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 : ('AUTOMOTIVE_DESIGN.ELEMENTARY_SURFACE' IN TYPEOF(basis_surface)) AND NOT ('AUTOMOTIVE_DESIGN.PLANE' IN TYPEOF(basis_surface)) OR ( 'AUTOMOTIVE_DESIGN.SURFACE_OF_REVOLUTION' IN TYPEOF(basis_surface)) OR ( usense = (u2 > u1)); wr4 : ('AUTOMOTIVE_DESIGN.SPHERICAL_SURFACE' IN TYPEOF(basis_surface)) OR ('AUTOMOTIVE_DESIGN.TOROIDAL_SURFACE' IN TYPEOF(basis_surface)) OR ( vsense = (v2 > v1)); END_ENTITY; -- 10303-42: geometry_schema ENTITY referenced_modified_datum SUBTYPE OF (datum_reference); modifier : limit_condition; END_ENTITY; -- 10303-47: shape_aspect_definition_schema ENTITY relative_event_occurrence SUBTYPE OF (event_occurrence); base_event : event_occurrence; offset : time_measure_with_unit; END_ENTITY; -- 10303-41: date_time_schema ENTITY rep_item_group SUBTYPE OF (group, representation_item); WHERE wr1 : SIZEOF(USEDIN(SELF, 'AUTOMOTIVE_DESIGN.PRESENTATION_LAYER_ASSIGNMENT.ASSIGNED_ITEMS')) > 0; wr2 : SIZEOF(QUERY(r <* USEDIN(SELF, 'AUTOMOTIVE_DESIGN.REPRESENTATION.ITEMS') | r.name = 'group representation')) > 0; wr3 : SIZEOF(QUERY(ga <* USEDIN(SELF, 'AUTOMOTIVE_DESIGN.GROUP_ASSIGNMENT.ASSIGNED_GROUP') | ga.role.name <> 'group membership')) = 0; wr4 : SIZEOF(['AUTOMOTIVE_DESIGN.' + 'GEOMETRIC_REPRESENTATION_ITEM', 'AUTOMOTIVE_DESIGN.' + 'TOPOLOGICAL_REPRESENTATION_ITEM', 'AUTOMOTIVE_DESIGN.' + 'MAPPED_ITEM', 'AUTOMOTIVE_DESIGN.' + 'STYLED_ITEM'] * TYPEOF(SELF)) = 1; END_ENTITY; -- 10303-214: automotive_design ENTITY reparametrised_composite_curve_segment SUBTYPE OF (composite_curve_segment); param_length : parameter_value; WHERE wr1 : param_length > 0.0; END_ENTITY; -- 10303-42: geometry_schema ENTITY replicate_feature SUBTYPE OF (feature_definition); WHERE wr1 : SIZEOF(QUERY(pdr <* get_property_definition_representations(SELF) | 'AUTOMOTIVE_DESIGN.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation))) = 1; wr2 : SIZEOF(QUERY(pdr <* get_property_definition_representations(SELF) | ( 'AUTOMOTIVE_DESIGN.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation)) AND (SIZEOF(QUERY(i <* pdr.used_representation. items | (i.name = 'orientation') AND ('AUTOMOTIVE_DESIGN.' + 'PLACEMENT' IN TYPEOF(i)))) = 1))) = 1; wr3 : SIZEOF(QUERY(sa <* get_shape_aspects(SELF) | SIZEOF(QUERY(sar <* USEDIN (sa, 'AUTOMOTIVE_DESIGN.SHAPE_ASPECT_RELATIONSHIP.RELATING_SHAPE_ASPECT' ) | ('AUTOMOTIVE_DESIGN.' + 'FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF( sar)) AND (sar.name = 'pattern basis') AND ('AUTOMOTIVE_DESIGN.' + 'FEATURE_DEFINITION' IN TYPEOF(sar.related_shape_aspect.of_shape.definition )))) = 1)) = 1; END_ENTITY; -- 10303-214: automotive_design ENTITY representation; 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, 'AUTOMOTIVE_DESIGN.ID_ATTRIBUTE.IDENTIFIED_ITEM' )) <= 1; wr2 : SIZEOF(USEDIN(SELF, 'AUTOMOTIVE_DESIGN.DESCRIPTION_ATTRIBUTE.DESCRIBED_ITEM')) <= 1; END_ENTITY; -- 10303-43: representation_schema ENTITY representation_context; context_identifier : identifier; context_type : text; INVERSE representations_in_context : SET [1:?] OF representation FOR context_of_items ; END_ENTITY; -- 10303-43: representation_schema ENTITY representation_item; name : label; WHERE wr1 : SIZEOF(using_representations(SELF)) > 0; END_ENTITY; -- 10303-43: representation_schema ENTITY representation_map; mapping_origin : representation_item; mapped_representation : representation; INVERSE map_usage : SET [1:?] OF mapped_item FOR mapping_source; WHERE wr1 : item_in_context(SELF.mapping_origin, SELF.mapped_representation. context_of_items); END_ENTITY; -- 10303-43: representation_schema ENTITY representation_relationship; name : label; description : OPTIONAL text; rep_1 : representation; rep_2 : representation; END_ENTITY; -- 10303-43: representation_schema ENTITY representation_relationship_with_transformation SUBTYPE OF (representation_relationship); transformation_operator : transformation; WHERE wr1 : SELF\representation_relationship.rep_1.context_of_items :<>: SELF\ representation_relationship.rep_2.context_of_items; END_ENTITY; -- 10303-43: representation_schema ENTITY requirement_for_action_resource SUBTYPE OF (action_resource_requirement); resources : SET [1:?] OF action_resource; END_ENTITY; -- 10303-49: process_property_schema ENTITY resource_property; name : label; description : text; resource : characterized_resource_definition; END_ENTITY; -- 10303-49: process_property_schema ENTITY resource_property_representation; name : label; description : text; property : resource_property; representation : representation; END_ENTITY; -- 10303-49: process_property_representation_schema ENTITY resource_requirement_type; name : label; description : text; END_ENTITY; -- 10303-49: process_property_schema ENTITY resulting_path SUBTYPE OF (motion_link_relationship); controlling_joints : SET [1:?] OF kinematic_joint; END_ENTITY; -- 10303-105: kinematic_analysis_control_and_result_schema ENTITY retention SUBTYPE OF (action); WHERE wr1 : SIZEOF(QUERY(aa <* USEDIN(SELF, 'AUTOMOTIVE_DESIGN.ACTION_ASSIGNMENT.ASSIGNED_ACTION') | ( 'AUTOMOTIVE_DESIGN.' + 'APPLIED_ACTION_ASSIGNMENT' IN TYPEOF(aa)) AND ( aa.role.name = 'retention'))) >= 1; wr2 : (SIZEOF(QUERY(atia <* USEDIN(SELF, 'AUTOMOTIVE_DESIGN.APPLIED_TIME_INTERVAL_ASSIGNMENT.ITEMS') | atia.role. name = 'minimum retention period')) = 1) AND (SIZEOF(QUERY(atia <* USEDIN( SELF, 'AUTOMOTIVE_DESIGN.APPLIED_TIME_INTERVAL_ASSIGNMENT.ITEMS') | atia .role.name = 'maximum retention period')) = 1) AND (SIZEOF(QUERY(atia1 <* USEDIN(SELF, 'AUTOMOTIVE_DESIGN.APPLIED_TIME_INTERVAL_ASSIGNMENT.ITEMS') | (atia1.role.name = 'minimum retention period') AND ( 'AUTOMOTIVE_DESIGN.' + '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, 'AUTOMOTIVE_DESIGN.APPLIED_TIME_INTERVAL_ASSIGNMENT.ITEMS') | (atia2. role.name = 'maximum retention period') AND ('AUTOMOTIVE_DESIGN.' + '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, 'AUTOMOTIVE_DESIGN.ACTION_RELATIONSHIP.RELATING_ACTION')) + SIZEOF( USEDIN(SELF, 'AUTOMOTIVE_DESIGN.ACTION_RELATIONSHIP.RELATED_ACTION')) = 0; END_ENTITY; -- 10303-214: automotive_design ENTITY revolute_pair SUBTYPE OF (kinematic_pair); END_ENTITY; -- 10303-105: kinematic_structure_schema ENTITY revolute_pair_range SUBTYPE OF (simple_pair_range); SELF\simple_pair_range.applies_to_pair : revolute_pair; lower_limit_actual_rotation : rotational_range_measure; upper_limit_actual_rotation : rotational_range_measure; WHERE wr1 : ('AUTOMOTIVE_DESIGN.UNLIMITED_RANGE' IN TYPEOF( lower_limit_actual_rotation)) OR ('AUTOMOTIVE_DESIGN.UNLIMITED_RANGE' IN TYPEOF(upper_limit_actual_rotation)) XOR (lower_limit_actual_rotation < upper_limit_actual_rotation); END_ENTITY; -- 10303-105: kinematic_structure_schema ENTITY revolute_pair_value SUBTYPE OF (pair_value); SELF\pair_value.applies_to_pair : revolute_pair; actual_rotation : plane_angle_measure; END_ENTITY; -- 10303-105: kinematic_structure_schema ENTITY revolved_area_solid SUBTYPE OF (swept_area_solid); axis : axis1_placement; angle : plane_angle_measure; DERIVE axis_line : line := representation_item('')||geometric_representation_item() ||curve()||line(axis.location, representation_item('')|| geometric_representation_item()||vector(axis.z, 1.0)); END_ENTITY; -- 10303-42: geometric_model_schema ENTITY revolved_face_solid SUBTYPE OF (swept_face_solid); axis : axis1_placement; angle : plane_angle_measure; DERIVE axis_line : line := representation_item('')||geometric_representation_item() ||curve()||line(axis.location, representation_item('')|| geometric_representation_item()||vector(axis.z, 1.0)); END_ENTITY; -- 10303-42: geometric_model_schema ENTITY rib SUBTYPE OF (feature_definition); WHERE wr1 : SIZEOF(QUERY(pdr <* get_property_definition_representations(SELF) | ( 'AUTOMOTIVE_DESIGN.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation)) AND NOT ({1 <= SIZEOF(pdr.used_representation. items) <= 3}))) = 0; wr2 : SIZEOF(QUERY(pdr <* get_property_definition_representations(SELF) | ( 'AUTOMOTIVE_DESIGN.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation)) AND (SIZEOF(QUERY(i <* pdr.used_representation. items | NOT (i.name IN ['orientation', 'fillet radius', 'shoulder radius']) )) > 0))) = 0; wr3 : SIZEOF(QUERY(pdr <* get_property_definition_representations(SELF) | ( 'AUTOMOTIVE_DESIGN.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation)) AND (SIZEOF(QUERY(i <* pdr.used_representation. items | (i.name = 'fillet radius') AND (SIZEOF(['AUTOMOTIVE_DESIGN.' + 'MEASURE_REPRESENTATION_ITEM', 'AUTOMOTIVE_DESIGN.' + 'LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(i)) = 2))) = 1))) <= 1; wr4 : SIZEOF(QUERY(pdr <* get_property_definition_representations(SELF) | ( 'AUTOMOTIVE_DESIGN.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation)) AND (SIZEOF(QUERY(i <* pdr.used_representation. items | (i.name = 'shoulder radius') AND (SIZEOF(['AUTOMOTIVE_DESIGN.' + 'MEASURE_REPRESENTATION_ITEM', 'AUTOMOTIVE_DESIGN.' + 'LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(i)) = 2))) = 1))) <= 1; wr5 : SIZEOF(QUERY(sa <* get_shape_aspects(SELF) | (sa.description = 'swept shape occurrence') AND (SIZEOF(QUERY(sar <* USEDIN(sa, 'AUTOMOTIVE_DESIGN.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | ( 'AUTOMOTIVE_DESIGN.' + 'SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF(sar)) AND (sar.description = 'profile usage') AND (SIZEOF(['AUTOMOTIVE_DESIGN.' + 'PARTIAL_CIRCULAR_PROFILE', 'AUTOMOTIVE_DESIGN.' + 'SQUARE_U_PROFILE' , 'AUTOMOTIVE_DESIGN.' + 'ROUNDED_U_PROFILE', 'AUTOMOTIVE_DESIGN.' + 'TEE_PROFILE', 'AUTOMOTIVE_DESIGN.' + 'VEE_PROFILE', 'AUTOMOTIVE_DESIGN.' + 'OPEN_PATH_PROFILE'] * TYPEOF(sar. relating_shape_aspect)) = 1))) = 1))) = 1; wr6 : SIZEOF(QUERY(sa <* get_shape_aspects(SELF) | (sa.description = 'course of travel occurrence') AND (SIZEOF(QUERY(sar <* USEDIN(sa, 'AUTOMOTIVE_DESIGN.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | ( 'AUTOMOTIVE_DESIGN.' + 'SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF(sar)) AND (sar.name = 'course of travel') AND ('AUTOMOTIVE_DESIGN.' + 'PATH_FEATURE_COMPONENT' IN TYPEOF(sar.relating_shape_aspect)))) = 1))) = 1 ; wr7 : SIZEOF(QUERY(sa <* get_shape_aspects(SELF) | (sa.description = 'change in boundary occurrence') AND (SIZEOF(QUERY(sar <* USEDIN(sa, 'AUTOMOTIVE_DESIGN.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | ( 'AUTOMOTIVE_DESIGN.' + 'FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF(sar)) AND (sar.description = 'taper usage') AND ('AUTOMOTIVE_DESIGN.' + 'TAPER' IN TYPEOF(sar.relating_shape_aspect)) AND (sar. relating_shape_aspect.description = 'directed taper'))) = 1))) <= 1; END_ENTITY; -- 10303-214: automotive_design 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; -- 10303-42: geometric_model_schema ENTITY right_circular_cone SUBTYPE OF (geometric_representation_item); position : axis1_placement; height : positive_length_measure; radius : length_measure; semi_angle : plane_angle_measure; WHERE wr1 : radius >= 0.0; END_ENTITY; -- 10303-42: geometric_model_schema ENTITY right_circular_cylinder SUBTYPE OF (geometric_representation_item); position : axis1_placement; height : positive_length_measure; radius : positive_length_measure; END_ENTITY; -- 10303-42: geometric_model_schema ENTITY role_association; role : object_role; item_with_role : role_select; END_ENTITY; -- 10303-41: basic_attribute_schema ENTITY rolling_curve_pair SUBTYPE OF (planar_curve_pair); END_ENTITY; -- 10303-105: kinematic_structure_schema ENTITY rolling_curve_pair_value SUBTYPE OF (pair_value); SELF\pair_value.applies_to_pair : rolling_curve_pair; actual_point_on_curve_1 : point_on_curve; WHERE wr1 : SELF\pair_value.applies_to_pair\planar_curve_pair.curve_1 :=: actual_point_on_curve_1.basis_curve; END_ENTITY; -- 10303-105: kinematic_structure_schema ENTITY rolling_surface_pair SUBTYPE OF (surface_pair); END_ENTITY; -- 10303-105: kinematic_structure_schema ENTITY rolling_surface_pair_value SUBTYPE OF (pair_value); SELF\pair_value.applies_to_pair : rolling_surface_pair; actual_point_on_surface : point_on_surface; actual_rotation : plane_angle_measure; WHERE wr1 : SELF\pair_value.applies_to_pair\surface_pair.surface_1 :=: actual_point_on_surface.basis_surface; END_ENTITY; -- 10303-105: kinematic_structure_schema ENTITY rotation_about_direction; direction_of_axis : direction; rotation_angle : plane_angle_measure; WHERE wr1 : SIZEOF(direction_of_axis.direction_ratios) = 3; END_ENTITY; -- 10303-105: kinematic_structure_schema ENTITY round_hole SUBTYPE OF (feature_definition); WHERE wr1 : SIZEOF(QUERY(sa <* get_shape_aspects(SELF) | (sa.description = 'diameter occurrence') AND (SIZEOF(QUERY(sar <* USEDIN(sa, 'AUTOMOTIVE_DESIGN.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | ( 'AUTOMOTIVE_DESIGN.' + 'SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF(sar)) AND (sar.name = 'diameter') AND (sar.description = 'profile usage') AND ( 'AUTOMOTIVE_DESIGN.' + 'CIRCULAR_CLOSED_PROFILE' IN TYPEOF(sar. relating_shape_aspect)))) = 1))) = 1; wr2 : SIZEOF(QUERY(sa <* get_shape_aspects(SELF) | (sa.description = 'hole depth occurrence') AND (SIZEOF(QUERY(sar <* USEDIN(sa, 'AUTOMOTIVE_DESIGN.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | ( 'AUTOMOTIVE_DESIGN.' + 'SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF(sar)) AND (sar.name = 'hole depth') AND (sar.description = 'path feature component usage') AND ('AUTOMOTIVE_DESIGN.' + 'PATH_FEATURE_COMPONENT' IN TYPEOF(sar.relating_shape_aspect)) AND (sar. relating_shape_aspect.description = 'linear'))) = 1))) = 1; wr3 : SIZEOF(QUERY(sa <* get_shape_aspects(SELF) | (sa.description = 'bottom condition occurrence') AND (SIZEOF(QUERY(sar <* USEDIN(sa, 'AUTOMOTIVE_DESIGN.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | ( 'AUTOMOTIVE_DESIGN.' + 'FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF(sar)) AND (sar.description = 'hole bottom usage') AND ('AUTOMOTIVE_DESIGN.' + 'HOLE_BOTTOM' IN TYPEOF(sar.relating_shape_aspect)))) = 1))) <= 1; wr4 : SIZEOF(QUERY(sa <* get_shape_aspects(SELF) | (sa.description = 'change in diameter occurrence') AND (SIZEOF(QUERY(sar <* USEDIN(sa, 'AUTOMOTIVE_DESIGN.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | ( 'AUTOMOTIVE_DESIGN.' + 'FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF(sar)) AND (sar.description = 'taper usage') AND ('AUTOMOTIVE_DESIGN.' + 'TAPER' IN TYPEOF(sar.relating_shape_aspect)))) = 1))) = 1; wr5 : SIZEOF(QUERY(pdr <* get_property_definition_representations(SELF) | ( 'AUTOMOTIVE_DESIGN.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation)) AND (SIZEOF(pdr.used_representation.items) <> 1)) ) = 0; END_ENTITY; -- 10303-214: automotive_design ENTITY rounded_u_profile SUBTYPE OF (shape_aspect); WHERE wr1 : 'AUTOMOTIVE_DESIGN.' + 'FEATURE_COMPONENT_DEFINITION' IN TYPEOF(SELF .of_shape.definition); wr2 : SIZEOF(QUERY(pdr <* get_shape_aspect_property_definition_representations(SELF) | 'AUTOMOTIVE_DESIGN.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation))) = 1; wr3 : SIZEOF(QUERY(pdr <* get_shape_aspect_property_definition_representations(SELF) | ( 'AUTOMOTIVE_DESIGN.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation)) AND (SIZEOF(pdr.used_representation.items) = 2))) = 1; wr4 : SIZEOF(QUERY(pdr <* get_shape_aspect_property_definition_representations(SELF) | ( 'AUTOMOTIVE_DESIGN.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation)) AND (SIZEOF(QUERY(i <* pdr.used_representation. items | NOT (i.name IN ['width', 'orientation']))) > 0))) = 0; wr5 : SIZEOF(QUERY(pdr <* get_shape_aspect_property_definition_representations(SELF) | ( 'AUTOMOTIVE_DESIGN.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation)) AND (SIZEOF(QUERY(i <* pdr.used_representation. items | ('AUTOMOTIVE_DESIGN.' + 'PLACEMENT' IN TYPEOF(i)) AND (i.name = 'orientation'))) = 1))) = 1; wr6 : SIZEOF(QUERY(pdr <* get_shape_aspect_property_definition_representations(SELF) | ( 'AUTOMOTIVE_DESIGN.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation)) AND (SIZEOF(QUERY(i <* pdr.used_representation. items | (SIZEOF(['AUTOMOTIVE_DESIGN.' + 'MEASURE_REPRESENTATION_ITEM', 'AUTOMOTIVE_DESIGN.' + 'LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(i)) = 2) AND (i.name = 'width'))) = 1))) = 1; wr7 : (SIZEOF(QUERY(pdr <* get_shape_aspect_property_definition_representations(SELF) | 'AUTOMOTIVE_DESIGN.' + 'PLANAR_SHAPE_REPRESENTATION' IN TYPEOF(pdr. used_representation))) <= 1) AND (SIZEOF(QUERY(pdr <* get_shape_aspect_property_definition_representations(SELF) | ( 'AUTOMOTIVE_DESIGN.' + 'PLANAR_SHAPE_REPRESENTATION' IN TYPEOF(pdr. used_representation)) AND (pdr.used_representation.name = 'profile limit')) ) <= 1); END_ENTITY; -- 10303-214: automotive_design ENTITY roundness_tolerance SUBTYPE OF (geometric_tolerance); WHERE wr1 : NOT ('AUTOMOTIVE_DESIGN.' + 'GEOMETRIC_TOLERANCE_WITH_DATUM_REFERENCE' IN TYPEOF(SELF)); END_ENTITY; -- 10303-519: aic_geometric_tolerances ENTITY ruled_surface_swept_area_solid SUBTYPE OF (surface_curve_swept_area_solid); WHERE wr1 : ('AUTOMOTIVE_DESIGN_LF.B_SPLINE_SURFACE' IN TYPEOF(SELF. reference_surface)) AND (SELF.reference_surface\b_spline_surface.u_degree = 1); wr2 : ('AUTOMOTIVE_DESIGN_LF.PCURVE' IN TYPEOF(SELF.directrix)) OR ( 'AUTOMOTIVE_DESIGN_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; (* declared in: aic_curve_swept_solid *) ENTITY runout_zone_definition SUBTYPE OF (tolerance_zone_definition); orientation : runout_zone_orientation; END_ENTITY; -- 10303-47: shape_tolerance_schema ENTITY runout_zone_orientation; angle : measure_with_unit; END_ENTITY; -- 10303-47: shape_tolerance_schema ENTITY runout_zone_orientation_reference_direction SUBTYPE OF (runout_zone_orientation); orientation_defining_relationship : shape_aspect_relationship; END_ENTITY; -- 10303-47: shape_tolerance_schema ENTITY screw_pair SUBTYPE OF (kinematic_pair); pitch : length_measure; END_ENTITY; -- 10303-105: kinematic_structure_schema ENTITY screw_pair_range SUBTYPE OF (simple_pair_range); SELF\simple_pair_range.applies_to_pair : screw_pair; lower_limit_actual_rotation : rotational_range_measure; upper_limit_actual_rotation : rotational_range_measure; WHERE wr1 : ('AUTOMOTIVE_DESIGN.UNLIMITED_RANGE' IN TYPEOF( lower_limit_actual_rotation)) OR ('AUTOMOTIVE_DESIGN.UNLIMITED_RANGE' IN TYPEOF(upper_limit_actual_rotation)) XOR (lower_limit_actual_rotation < upper_limit_actual_rotation); END_ENTITY; -- 10303-105: kinematic_structure_schema ENTITY screw_pair_value SUBTYPE OF (pair_value); SELF\pair_value.applies_to_pair : screw_pair; actual_rotation : plane_angle_measure; DERIVE actual_translation : length_measure := SELF\pair_value.applies_to_pair\ screw_pair.pitch * plane_angle_for_pair_in_radian(SELF\pair_value. applies_to_pair, actual_rotation)/2 * PI; END_ENTITY; -- 10303-105: kinematic_structure_schema ENTITY seam_curve SUBTYPE OF (surface_curve); WHERE wr1 : SIZEOF(SELF\surface_curve.associated_geometry) = 2; wr2 : associated_surface(SELF\surface_curve.associated_geometry[1]) = associated_surface(SELF\surface_curve.associated_geometry[2]); wr3 : 'AUTOMOTIVE_DESIGN.PCURVE' IN TYPEOF(SELF\surface_curve. associated_geometry[1]); wr4 : 'AUTOMOTIVE_DESIGN.PCURVE' IN TYPEOF(SELF\surface_curve. associated_geometry[2]); END_ENTITY; -- 10303-42: geometry_schema ENTITY seam_edge SUBTYPE OF (oriented_edge); pcurve_reference : pcurve; WHERE wr1 : ('AUTOMOTIVE_DESIGN.EDGE_CURVE' IN TYPEOF(edge_element)) AND ( 'AUTOMOTIVE_DESIGN.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; -- 10303-42: topology_schema ENTITY security_classification; name : label; purpose : text; security_level : security_classification_level; END_ENTITY; -- 10303-41: security_classification_schema ENTITY security_classification_assignment ABSTRACT SUPERTYPE; assigned_security_classification : security_classification; DERIVE role : object_role := get_role(SELF); WHERE wr1 : SIZEOF(USEDIN(SELF, 'AUTOMOTIVE_DESIGN.ROLE_ASSOCIATION.ITEM_WITH_ROLE')) <= 1; END_ENTITY; -- 10303-41: management_resources_schema ENTITY security_classification_level; name : label; END_ENTITY; -- 10303-41: security_classification_schema ENTITY serial_numbered_effectivity SUBTYPE OF (effectivity); effectivity_start_id : identifier; effectivity_end_id : OPTIONAL identifier; END_ENTITY; -- 10303-41: effectivity_schema ENTITY shape_aspect; name : label; description : OPTIONAL text; of_shape : product_definition_shape; product_definitional : LOGICAL; DERIVE id : identifier := get_id_value(SELF); WHERE wr1 : SIZEOF(USEDIN(SELF, 'AUTOMOTIVE_DESIGN.ID_ATTRIBUTE.IDENTIFIED_ITEM' )) <= 1; END_ENTITY; -- 10303-41: product_property_definition_schema 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; wr3 : SIZEOF(QUERY(pd <* USEDIN(SELF, 'AUTOMOTIVE_DESIGN.PROPERTY_DEFINITION.DEFINITION') | NOT (SIZEOF(QUERY( sdr <* QUERY(pdr <* USEDIN(pd, 'AUTOMOTIVE_DESIGN.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | 'AUTOMOTIVE_DESIGN.SHAPE_DEFINITION_REPRESENTATION' IN TYPEOF(pdr)) | NOT (SIZEOF(QUERY(it <* sdr.used_representation.items | NOT ( 'AUTOMOTIVE_DESIGN.CURVE' IN TYPEOF(it)) AND (SIZEOF(QUERY(aco <* USEDIN (it, 'AUTOMOTIVE_DESIGN.STYLED_ITEM.ITEM') | SIZEOF(TYPEOF(aco) * [ 'AUTOMOTIVE_DESIGN.LEADER_CURVE', 'AUTOMOTIVE_DESIGN.PROJECTION_CURVE']) = 1)) + SIZEOF(USEDIN(it, 'AUTOMOTIVE_DESIGN.ANNOTATION_FILL_AREA.BOUNDARIES')) >= 1))) = 1))) = 0 ))) = 0; wr4 : SIZEOF(QUERY(pd <* USEDIN(SELF, 'AUTOMOTIVE_DESIGN.PROPERTY_DEFINITION.DEFINITION') | NOT (SIZEOF(QUERY( sdr <* QUERY(pdr <* USEDIN(pd, 'AUTOMOTIVE_DESIGN.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | 'AUTOMOTIVE_DESIGN.SHAPE_DEFINITION_REPRESENTATION' IN TYPEOF(pdr)) | NOT check_associative_shape_aspects(sdr))) = 0))) = 0; END_ENTITY; -- 10303-520: aic_associative_draughting_elements ENTITY shape_aspect_deriving_relationship SUBTYPE OF (shape_aspect_relationship); WHERE wr1 : 'AUTOMOTIVE_DESIGN.DERIVED_SHAPE_ASPECT' IN TYPEOF(SELF\ shape_aspect_relationship.relating_shape_aspect); END_ENTITY; -- 10303-47: shape_aspect_definition_schema ENTITY shape_aspect_relationship; name : label; description : OPTIONAL text; relating_shape_aspect : shape_aspect; related_shape_aspect : shape_aspect; DERIVE id : identifier := get_id_value(SELF); WHERE wr1 : SIZEOF(USEDIN(SELF, 'AUTOMOTIVE_DESIGN.ID_ATTRIBUTE.IDENTIFIED_ITEM' )) <= 1; END_ENTITY; -- 10303-41: product_property_definition_schema ENTITY shape_aspect_transition SUBTYPE OF (shape_aspect_relationship); WHERE wr1 : SIZEOF(QUERY(pdr_1 <* get_shape_aspect_property_definition_representations(SELF. relating_shape_aspect) | SIZEOF(QUERY(pdr_2 <* get_shape_aspect_property_definition_representations(SELF. related_shape_aspect) | SIZEOF(QUERY(item_1 <* pdr_1.used_representation. items | SIZEOF(QUERY(item_2 <* pdr_2.used_representation.items | NOT (( 'AUTOMOTIVE_DESIGN.' + 'EDGE' IN TYPEOF(item_1)) AND ( 'AUTOMOTIVE_DESIGN.' + 'EDGE' IN TYPEOF(item_2)) XOR ( 'AUTOMOTIVE_DESIGN.' + 'FACE' IN TYPEOF(item_1)) AND ( 'AUTOMOTIVE_DESIGN.' + 'FACE' IN TYPEOF(item_2))))) > 0)) > 0)) > 0)) = 0; wr2 : SIZEOF(QUERY(pdr_1 <* get_shape_aspect_property_definition_representations(SELF. relating_shape_aspect) | SIZEOF(QUERY(pdr_2 <* get_shape_aspect_property_definition_representations(SELF. related_shape_aspect) | SIZEOF(QUERY(item_1 <* pdr_1.used_representation. items | SIZEOF(QUERY(item_2 <* pdr_2.used_representation.items | ( 'AUTOMOTIVE_DESIGN.' + 'EDGE' IN TYPEOF(item_1)) AND ( 'AUTOMOTIVE_DESIGN.' + 'EDGE' IN TYPEOF(item_2)) AND NOT ((item_1\edge. edge_start :=: item_2\edge.edge_start) OR (item_1\edge.edge_start :=: item_2\edge.edge_end) OR (item_1\edge.edge_end :=: item_2\edge.edge_start) OR (item_1\edge.edge_end :=: item_2\edge.edge_end)))) > 0)) > 0)) > 0)) = 0 ; wr3 : SIZEOF(QUERY(pdr_1 <* get_shape_aspect_property_definition_representations(SELF. relating_shape_aspect) | SIZEOF(QUERY(pdr_2 <* get_shape_aspect_property_definition_representations(SELF. related_shape_aspect) | SIZEOF(QUERY(item_1 <* pdr_1.used_representation. items | SIZEOF(QUERY(item_2 <* pdr_2.used_representation.items | ( 'AUTOMOTIVE_DESIGN.' + 'FACE' IN TYPEOF(item_1)) AND ( 'AUTOMOTIVE_DESIGN.' + 'FACE' IN TYPEOF(item_2)) AND (SIZEOF(QUERY(f_1 <* item_1\face.bounds | ('AUTOMOTIVE_DESIGN.' + 'EDGE_LOOP' IN TYPEOF( f_1.bound)) AND (SIZEOF(QUERY(f_2 <* item_2\face.bounds | ( 'AUTOMOTIVE_DESIGN.' + 'EDGE_LOOP' IN TYPEOF(f_2.bound)) AND (SIZEOF( QUERY(oe_1 <* f_1.bound\path.edge_list | SIZEOF(QUERY(oe_2 <* f_2.bound\ path.edge_list | oe_1.edge_element :=: oe_2.edge_element)) = 0)) = 0))) = 0 ))) = 0))) = 0)) = 0)) = 0)) = 0; wr4 : SELF.name IN ['g0', 'g1', 'g2']; END_ENTITY; -- 10303-214: automotive_design ENTITY shape_defining_relationship SUBTYPE OF (shape_aspect_relationship); WHERE wr1 : (SELF\shape_aspect_relationship.description <> 'profile usage') OR ( SIZEOF(['AUTOMOTIVE_DESIGN.' + 'RECTANGULAR_CLOSED_PROFILE', 'AUTOMOTIVE_DESIGN.' + 'CIRCULAR_CLOSED_PROFILE', 'AUTOMOTIVE_DESIGN.' + 'NGON_CLOSED_PROFILE', 'AUTOMOTIVE_DESIGN.' + 'CLOSED_PATH_PROFILE', 'AUTOMOTIVE_DESIGN.' + 'OPEN_PATH_PROFILE', 'AUTOMOTIVE_DESIGN.' + 'PARTIAL_CIRCULAR_PROFILE', 'AUTOMOTIVE_DESIGN.' + 'ROUNDED_U_PROFILE', 'AUTOMOTIVE_DESIGN.' + 'SQUARE_U_PROFILE', 'AUTOMOTIVE_DESIGN.' + 'TEE_PROFILE', 'AUTOMOTIVE_DESIGN.' + 'VEE_PROFILE'] * TYPEOF(SELF\ shape_aspect_relationship.relating_shape_aspect)) = 1); wr2 : (SELF\shape_aspect_relationship.description <> 'path feature component usage') OR ('AUTOMOTIVE_DESIGN.' + 'PATH_FEATURE_COMPONENT' IN TYPEOF(SELF\shape_aspect_relationship. relating_shape_aspect)); END_ENTITY; -- 10303-214: automotive_design ENTITY shape_definition_representation SUBTYPE OF (property_definition_representation); WHERE wr1 : ('AUTOMOTIVE_DESIGN.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(SELF. definition)) OR ('AUTOMOTIVE_DESIGN.SHAPE_DEFINITION' IN TYPEOF(SELF. definition.definition)); wr2 : 'AUTOMOTIVE_DESIGN.SHAPE_REPRESENTATION' IN TYPEOF(SELF. used_representation); END_ENTITY; -- 10303-41: product_property_representation_schema ENTITY shape_dimension_representation SUBTYPE OF (shape_representation); WHERE wr1 : SIZEOF(QUERY(temp <* SELF\representation.items | NOT ( 'AUTOMOTIVE_DESIGN.MEASURE_REPRESENTATION_ITEM' IN TYPEOF(temp)))) = 0; wr2 : SIZEOF(SELF\representation.items) <= 3; wr3 : SIZEOF(QUERY(pos_mri <* QUERY(real_mri <* SELF\representation.items | 'REAL' IN TYPEOF(real_mri\measure_with_unit.value_component)) | NOT ( pos_mri\measure_with_unit.value_component > 0.0))) = 0; END_ENTITY; -- 10303-47: shape_dimension_schema ENTITY shape_representation SUBTYPE OF (representation); END_ENTITY; -- 10303-41: product_property_representation_schema ENTITY shape_representation_relationship SUBTYPE OF (representation_relationship); WHERE wr1 : 'AUTOMOTIVE_DESIGN.SHAPE_REPRESENTATION' IN TYPEOF(SELF\ representation_relationship.rep_1) + TYPEOF(SELF\ representation_relationship.rep_2); END_ENTITY; -- 10303-41: product_property_representation_schema ENTITY shape_representation_with_parameters SUBTYPE OF (shape_representation); WHERE wr1 : SIZEOF(QUERY(i <* SELF.items | SIZEOF(['AUTOMOTIVE_DESIGN.' + 'PLACEMENT', 'AUTOMOTIVE_DESIGN.' + 'MEASURE_REPRESENTATION_ITEM', 'AUTOMOTIVE_DESIGN.' + 'DESCRIPTIVE_REPRESENTATION_ITEM'] * TYPEOF(i)) = 1)) = SIZEOF(SELF.items); END_ENTITY; -- 10303-214: automotive_design 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; -- 10303-42: geometric_model_schema ENTITY si_unit SUBTYPE OF (named_unit); prefix : OPTIONAL si_prefix; name : si_unit_name; DERIVE SELF\named_unit.dimensions : dimensional_exponents := dimensions_for_si_unit( name); END_ENTITY; -- 10303-41: measure_schema ENTITY simple_boolean_expression ABSTRACT SUPERTYPE OF (ONEOF (boolean_literal, boolean_variable)) SUBTYPE OF (boolean_expression, simple_generic_expression); END_ENTITY; (* declared in: iso13584_expressions_schema *) ENTITY simple_generic_expression ABSTRACT SUPERTYPE OF (ONEOF (generic_literal, generic_variable)) SUBTYPE OF (generic_expression); END_ENTITY; (* declared in: iso13584_generic_expressions_schema *) ENTITY simple_numeric_expression ABSTRACT SUPERTYPE OF (ONEOF (literal_number, numeric_variable)) SUBTYPE OF (numeric_expression, simple_generic_expression); END_ENTITY; (* declared in: iso13584_expressions_schema *) ENTITY simple_pair_range; applies_to_pair : kinematic_pair; END_ENTITY; -- 10303-105: kinematic_structure_schema ENTITY simple_string_expression ABSTRACT SUPERTYPE OF (ONEOF (string_literal, string_variable)) SUBTYPE OF (string_expression, simple_generic_expression); END_ENTITY; (* declared in: iso13584_expressions_schema *) ENTITY sin_function SUBTYPE OF (unary_function_call); END_ENTITY; (* declared in: iso13584_expressions_schema *) ENTITY slash_expression SUBTYPE OF (binary_numeric_expression); END_ENTITY; (* declared in: iso13584_expressions_schema *) ENTITY sliding_curve_pair SUBTYPE OF (planar_curve_pair); END_ENTITY; -- 10303-105: kinematic_structure_schema ENTITY sliding_curve_pair_value SUBTYPE OF (pair_value); SELF\pair_value.applies_to_pair : sliding_curve_pair; actual_point_on_curve_1 : point_on_curve; actual_point_on_curve_2 : point_on_curve; WHERE wr1 : SELF\pair_value.applies_to_pair\planar_curve_pair.curve_1 :=: actual_point_on_curve_1.basis_curve; wr2 : SELF\pair_value.applies_to_pair\planar_curve_pair.curve_2 :=: actual_point_on_curve_2.basis_curve; END_ENTITY; -- 10303-105: kinematic_structure_schema ENTITY sliding_surface_pair SUBTYPE OF (surface_pair); END_ENTITY; -- 10303-105: kinematic_structure_schema ENTITY sliding_surface_pair_value SUBTYPE OF (pair_value); SELF\pair_value.applies_to_pair : sliding_surface_pair; actual_point_on_surface_1 : point_on_surface; actual_point_on_surface_2 : point_on_surface; actual_rotation : plane_angle_measure; WHERE wr1 : SELF\pair_value.applies_to_pair\surface_pair.surface_1 :=: actual_point_on_surface_1.basis_surface; wr2 : SELF\pair_value.applies_to_pair\surface_pair.surface_2 :=: actual_point_on_surface_2.basis_surface; END_ENTITY; -- 10303-105: kinematic_structure_schema ENTITY slot SUBTYPE OF (feature_definition); WHERE wr1 : SIZEOF(QUERY(pdr <* get_property_definition_representations(SELF) | ( 'AUTOMOTIVE_DESIGN.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation)) AND (SIZEOF(pdr.used_representation.items) = 1))) = 1; wr2 : SIZEOF(QUERY(sa <* get_shape_aspects(SELF) | (sa.description = 'swept shape occurrence') AND (SIZEOF(QUERY(sar <* USEDIN(sa, 'AUTOMOTIVE_DESIGN.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | ( 'AUTOMOTIVE_DESIGN.' + 'SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF(sar)) AND (sar.description = 'profile usage') AND (SIZEOF(['AUTOMOTIVE_DESIGN.' + 'SQUARE_U_PROFILE', 'AUTOMOTIVE_DESIGN.' + 'PARTIAL_CIRCULAR_PROFILE' , 'AUTOMOTIVE_DESIGN.' + 'ROUNDED_U_PROFILE', 'AUTOMOTIVE_DESIGN.' + 'VEE_PROFILE', 'AUTOMOTIVE_DESIGN.' + 'TEE_PROFILE', 'AUTOMOTIVE_DESIGN.' + 'OPEN_PATH_PROFILE'] * TYPEOF(sar. relating_shape_aspect)) = 1))) = 1))) = 1; wr3 : SIZEOF(QUERY(sa <* get_shape_aspects(SELF) | (sa.description = 'course of travel occurrence') AND (SIZEOF(QUERY(sar <* USEDIN(sa, 'AUTOMOTIVE_DESIGN.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | ( 'AUTOMOTIVE_DESIGN.' + 'SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF(sar)) AND (sar.name = 'course of travel') AND (sar.description = 'path feature component usage') AND ('AUTOMOTIVE_DESIGN.' + 'PATH_FEATURE_COMPONENT' IN TYPEOF(sar.relating_shape_aspect)))) = 1))) = 1 ; wr4 : SIZEOF(QUERY(sa <* get_shape_aspects(SELF) | (sa.description = 'end condition occurrence') AND (SIZEOF(QUERY(sar <* USEDIN(sa, 'AUTOMOTIVE_DESIGN.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | ( 'AUTOMOTIVE_DESIGN.' + 'FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF(sar)) AND (sar.name = 'starting') AND (sar.description = 'slot end usage') AND ( 'AUTOMOTIVE_DESIGN.' + 'SLOT_END' IN TYPEOF(sar.relating_shape_aspect))) ) = 1))) = 1; wr5 : SIZEOF(QUERY(sa <* get_shape_aspects(SELF) | (sa.description = 'end condition occurrence') AND (SIZEOF(QUERY(sar <* USEDIN(sa, 'AUTOMOTIVE_DESIGN.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | ( 'AUTOMOTIVE_DESIGN.' + 'FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF(sar)) AND (sar.name = 'ending') AND (sar.description = 'slot end usage') AND ( 'AUTOMOTIVE_DESIGN.' + 'SLOT_END' IN TYPEOF(sar.relating_shape_aspect))) ) = 1))) = 1; END_ENTITY; -- 10303-214: automotive_design ENTITY slot_end SUBTYPE OF (shape_aspect); WHERE wr1 : 'AUTOMOTIVE_DESIGN.' + 'FEATURE_COMPONENT_DEFINITION' IN TYPEOF(SELF .of_shape.definition); wr2 : SELF.description IN ['open', 'radiused', 'flat', 'woodruff']; wr3 : (SELF.description IN ['open', 'radiused']) XOR (SIZEOF(QUERY(pdr <* get_shape_aspect_property_definition_representations(SELF) | 'AUTOMOTIVE_DESIGN.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation))) = 0); wr4 : NOT (SELF.description IN ['flat', 'woodruff']) XOR (SIZEOF(QUERY(pdr <* get_shape_aspect_property_definition_representations(SELF) | 'AUTOMOTIVE_DESIGN.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation))) = 1); wr5 : (SELF.description <> 'flat') OR (SIZEOF(QUERY(pdr <* get_shape_aspect_property_definition_representations(SELF) | ( 'AUTOMOTIVE_DESIGN.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation)) AND (SIZEOF(pdr.used_representation.items) = 2))) = 1); wr6 : (SELF.description <> 'flat') OR (SIZEOF(QUERY(pdr <* get_shape_aspect_property_definition_representations(SELF) | ( 'AUTOMOTIVE_DESIGN.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation)) AND (SIZEOF(QUERY(i <* pdr.used_representation. items | (i.name = 'first radius') AND (SIZEOF(['AUTOMOTIVE_DESIGN.' + 'MEASURE_REPRESENTATION_ITEM', 'AUTOMOTIVE_DESIGN.' + 'LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(i)) = 2))) = 1))) = 1); wr7 : (SELF.description <> 'flat') OR (SIZEOF(QUERY(pdr <* get_shape_aspect_property_definition_representations(SELF) | ( 'AUTOMOTIVE_DESIGN.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation)) AND (SIZEOF(QUERY(i <* pdr.used_representation. items | (i.name = 'second radius') AND (SIZEOF(['AUTOMOTIVE_DESIGN.' + 'MEASURE_REPRESENTATION_ITEM', 'AUTOMOTIVE_DESIGN.' + 'LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(i)) = 2))) = 1))) = 1); wr8 : (SELF.description <> 'woodruff') OR (SIZEOF(QUERY(pdr <* get_shape_aspect_property_definition_representations(SELF) | ( 'AUTOMOTIVE_DESIGN.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation)) AND (SIZEOF(pdr.used_representation.items) = 1))) = 1); wr9 : (SELF.description <> 'woodruff') OR (SIZEOF(QUERY(pdr <* get_shape_aspect_property_definition_representations(SELF) | ( 'AUTOMOTIVE_DESIGN.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation)) AND (SIZEOF(QUERY(i <* pdr.used_representation. items | (i.name = 'radius') AND (SIZEOF(['AUTOMOTIVE_DESIGN.' + 'MEASURE_REPRESENTATION_ITEM', 'AUTOMOTIVE_DESIGN.' + 'LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(i)) = 2))) = 1))) = 1); wr10 : SIZEOF(QUERY(sar <* USEDIN(SELF, 'AUTOMOTIVE_DESIGN.SHAPE_ASPECT_RELATIONSHIP.RELATING_SHAPE_ASPECT') | ( 'AUTOMOTIVE_DESIGN.' + 'FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF(sar)) AND (sar.name IN ['starting', 'ending']) AND (sar.description = 'slot end usage') AND ('AUTOMOTIVE_DESIGN.' + 'SLOT' 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 = 'slot end occurrence'))) = 1; END_ENTITY; -- 10303-214: automotive_design ENTITY solid_angle_measure_with_unit SUBTYPE OF (measure_with_unit); WHERE wr1 : 'AUTOMOTIVE_DESIGN.SOLID_ANGLE_UNIT' IN TYPEOF(SELF\ measure_with_unit.unit_component); END_ENTITY; -- 10303-41: measure_schema ENTITY solid_angle_unit SUBTYPE OF (named_unit); WHERE wr1 : (SELF\named_unit.dimensions.length_exponent = 0.000000) AND (SELF\ named_unit.dimensions.mass_exponent = 0.000000) AND (SELF\named_unit .dimensions.time_exponent = 0.000000) AND (SELF\named_unit.dimensions. electric_current_exponent = 0.000000) AND (SELF\named_unit.dimensions. thermodynamic_temperature_exponent = 0.000000) AND (SELF\named_unit. dimensions.amount_of_substance_exponent = 0.000000) AND (SELF\named_unit. dimensions.luminous_intensity_exponent = 0.000000); END_ENTITY; -- 10303-41: measure_schema ENTITY solid_model SUPERTYPE OF (ONEOF (csg_solid, manifold_solid_brep, swept_face_solid, solid_replica)) SUBTYPE OF (geometric_representation_item); END_ENTITY; -- 10303-42: geometric_model_schema ENTITY solid_replica SUBTYPE OF (solid_model); parent_solid : solid_model; transformation : cartesian_transformation_operator_3d; WHERE wr1 : acyclic_solid_replica(SELF, parent_solid); wr2 : parent_solid\geometric_representation_item.dim = 3; END_ENTITY; -- 10303-42: geometric_model_schema ENTITY specified_higher_usage_occurrence SUBTYPE OF (assembly_component_usage); upper_usage : assembly_component_usage; next_usage : next_assembly_usage_occurrence; UNIQUE ur1 : upper_usage, next_usage; WHERE wr1 : SELF :<>: upper_usage; wr2 : SELF\product_definition_relationship.relating_product_definition :=: upper_usage.relating_product_definition; wr3 : SELF\product_definition_relationship.related_product_definition :=: next_usage.related_product_definition; wr4 : (upper_usage.related_product_definition :=: next_usage. relating_product_definition) OR (SIZEOF(QUERY(pdr <* USEDIN(upper_usage. related_product_definition, 'AUTOMOTIVE_DESIGN.PRODUCT_DEFINITION_RELATIONSHIP.RELATED_PRODUCT_DEFINITION' ) | pdr.relating_product_definition :=: next_usage. relating_product_definition)) = 1); wr5 : SIZEOF(['AUTOMOTIVE_DESIGN.NEXT_ASSEMBLY_USAGE_OCCURRENCE', 'AUTOMOTIVE_DESIGN.SPECIFIED_HIGHER_USAGE_OCCURRENCE'] * TYPEOF( upper_usage)) = 1; END_ENTITY; -- 10303-44: product_structure_schema ENTITY sphere SUBTYPE OF (geometric_representation_item); radius : positive_length_measure; centre : point; END_ENTITY; -- 10303-42: geometric_model_schema ENTITY spherical_pair SUBTYPE OF (kinematic_pair); END_ENTITY; -- 10303-105: kinematic_structure_schema ENTITY spherical_pair_range SUBTYPE OF (simple_pair_range); SELF\simple_pair_range.applies_to_pair : spherical_pair; lower_limit_yaw : rotational_range_measure; upper_limit_yaw : rotational_range_measure; lower_limit_pitch : rotational_range_measure; upper_limit_pitch : rotational_range_measure; lower_limit_roll : rotational_range_measure; upper_limit_roll : rotational_range_measure; WHERE wr1 : ('AUTOMOTIVE_DESIGN.UNLIMITED_RANGE' IN TYPEOF(lower_limit_yaw)) OR ('AUTOMOTIVE_DESIGN.UNLIMITED_RANGE' IN TYPEOF(upper_limit_yaw)) XOR ( lower_limit_yaw < upper_limit_yaw); wr2 : ('AUTOMOTIVE_DESIGN.UNLIMITED_RANGE' IN TYPEOF(lower_limit_pitch)) OR ('AUTOMOTIVE_DESIGN.UNLIMITED_RANGE' IN TYPEOF(upper_limit_pitch)) XOR (lower_limit_pitch < upper_limit_pitch); wr3 : ('AUTOMOTIVE_DESIGN.UNLIMITED_RANGE' IN TYPEOF(lower_limit_roll)) OR ('AUTOMOTIVE_DESIGN.UNLIMITED_RANGE' IN TYPEOF(upper_limit_roll)) XOR ( lower_limit_roll < upper_limit_roll); END_ENTITY; -- 10303-105: kinematic_structure_schema ENTITY spherical_pair_value SUBTYPE OF (pair_value); SELF\pair_value.applies_to_pair : spherical_pair; input_orientation : spatial_rotation; DERIVE actual_orientation : ypr_rotation := convert_spatial_to_ypr_rotation(SELF\ pair_value.applies_to_pair, input_orientation); END_ENTITY; -- 10303-105: kinematic_structure_schema ENTITY spherical_surface SUBTYPE OF (elementary_surface); radius : positive_length_measure; END_ENTITY; -- 10303-42: geometry_schema ENTITY sql_mappable_defined_function ABSTRACT SUPERTYPE SUBTYPE OF (defined_function); END_ENTITY; (* declared in: iso13584_expressions_schema *) ENTITY square_root_function SUBTYPE OF (unary_function_call); END_ENTITY; (* declared in: iso13584_expressions_schema *) ENTITY square_u_profile SUBTYPE OF (shape_aspect); WHERE wr1 : 'AUTOMOTIVE_DESIGN.' + 'FEATURE_COMPONENT_DEFINITION' IN TYPEOF(SELF .of_shape.definition); wr2 : SIZEOF(QUERY(pdr <* get_shape_aspect_property_definition_representations(SELF) | 'AUTOMOTIVE_DESIGN.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation))) = 1; wr3 : SIZEOF(QUERY(pdr <* get_shape_aspect_property_definition_representations(SELF) | ( 'AUTOMOTIVE_DESIGN.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation)) AND {4 <= SIZEOF(pdr.used_representation.items) <= 6})) = 1; wr4 : SIZEOF(QUERY(pdr <* get_shape_aspect_property_definition_representations(SELF) | ( 'AUTOMOTIVE_DESIGN.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation)) AND (SIZEOF(QUERY(i <* pdr.used_representation. items | NOT (i.name IN ['orientation', 'width', 'first angle', 'second angle', 'first radius', 'second radius']))) > 0))) = 0; wr5 : SIZEOF(QUERY(pdr <* get_shape_aspect_property_definition_representations(SELF) | ( 'AUTOMOTIVE_DESIGN.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation)) AND (SIZEOF(QUERY(i <* pdr.used_representation. items | ('AUTOMOTIVE_DESIGN.' + 'PLACEMENT' IN TYPEOF(i)) AND (i.name = 'orientation'))) = 1))) = 1; wr6 : SIZEOF(QUERY(pdr <* get_shape_aspect_property_definition_representations(SELF) | ( 'AUTOMOTIVE_DESIGN.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation)) AND (SIZEOF(QUERY(i <* pdr.used_representation. items | (SIZEOF(['AUTOMOTIVE_DESIGN.' + 'MEASURE_REPRESENTATION_ITEM', 'AUTOMOTIVE_DESIGN.' + 'LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(i)) = 2) AND (i.name = 'width'))) = 1))) = 1; wr7 : SIZEOF(QUERY(pdr <* get_shape_aspect_property_definition_representations(SELF) | ( 'AUTOMOTIVE_DESIGN.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation)) AND (SIZEOF(QUERY(i <* pdr.used_representation. items | (SIZEOF(['AUTOMOTIVE_DESIGN.' + 'MEASURE_REPRESENTATION_ITEM', 'AUTOMOTIVE_DESIGN.' + 'PLANE_ANGLE_MEASURE_WITH_UNIT'] * TYPEOF(i)) = 2 ) AND (i.name = 'first angle'))) = 1))) = 1; wr8 : SIZEOF(QUERY(pdr <* get_shape_aspect_property_definition_representations(SELF) | ( 'AUTOMOTIVE_DESIGN.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation)) AND (SIZEOF(QUERY(i <* pdr.used_representation. items | (SIZEOF(['AUTOMOTIVE_DESIGN.' + 'MEASURE_REPRESENTATION_ITEM', 'AUTOMOTIVE_DESIGN.' + 'PLANE_ANGLE_MEASURE_WITH_UNIT'] * TYPEOF(i)) = 2 ) AND (i.name = 'second angle'))) = 1))) = 1; wr9 : (SIZEOF(QUERY(pdr <* get_shape_aspect_property_definition_representations(SELF) | ( 'AUTOMOTIVE_DESIGN.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation)) AND (SIZEOF(QUERY(i <* pdr.used_representation. items | i.name = 'first radius')) = 1))) <= 1) AND (SIZEOF(QUERY(pdr <* get_shape_aspect_property_definition_representations(SELF) | ( 'AUTOMOTIVE_DESIGN.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation)) AND (SIZEOF(QUERY(i <* pdr.used_representation. items | (SIZEOF(['AUTOMOTIVE_DESIGN.' + 'MEASURE_REPRESENTATION_ITEM', 'AUTOMOTIVE_DESIGN.' + 'LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(i)) = 2) AND (i.name = 'first radius'))) = 1))) <= 1); wr10 : (SIZEOF(QUERY(pdr <* get_shape_aspect_property_definition_representations(SELF) | ( 'AUTOMOTIVE_DESIGN.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation)) AND (SIZEOF(QUERY(i <* pdr.used_representation. items | i.name = 'second radius')) = 1))) <= 1) AND (SIZEOF(QUERY(pdr <* get_shape_aspect_property_definition_representations(SELF) | ( 'AUTOMOTIVE_DESIGN.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation)) AND (SIZEOF(QUERY(i <* pdr.used_representation. items | (SIZEOF(['AUTOMOTIVE_DESIGN.' + 'MEASURE_REPRESENTATION_ITEM', 'AUTOMOTIVE_DESIGN.' + 'LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(i)) = 2) AND (i.name = 'second radius'))) = 1))) <= 1); wr11 : (SIZEOF(QUERY(pdr <* get_shape_aspect_property_definition_representations(SELF) | 'AUTOMOTIVE_DESIGN.' + 'PLANAR_SHAPE_REPRESENTATION' IN TYPEOF(pdr. used_representation))) <= 1) AND (SIZEOF(QUERY(pdr <* get_shape_aspect_property_definition_representations(SELF) | ( 'AUTOMOTIVE_DESIGN.' + 'PLANAR_SHAPE_REPRESENTATION' IN TYPEOF(pdr. used_representation)) AND (pdr.used_representation.name = 'profile limit')) ) <= 1); END_ENTITY; -- 10303-214: automotive_design ENTITY standard_uncertainty SUBTYPE OF (uncertainty_qualifier); uncertainty_value : REAL; END_ENTITY; -- 10303-45: qualified_measure_schema ENTITY straightness_tolerance SUBTYPE OF (geometric_tolerance); WHERE wr1 : NOT ('AUTOMOTIVE_DESIGN.' + 'GEOMETRIC_TOLERANCE_WITH_DATUM_REFERENCE' IN TYPEOF(SELF)); END_ENTITY; -- 10303-519: aic_geometric_tolerances ENTITY string_defined_function ABSTRACT SUPERTYPE SUBTYPE OF (defined_function, string_expression); END_ENTITY; (* declared in: iso13584_expressions_schema *) ENTITY string_expression ABSTRACT SUPERTYPE OF (ONEOF (simple_string_expression, index_expression, substring_expression, concat_expression, format_function, string_defined_function)) SUBTYPE OF (expression); END_ENTITY; (* declared in: iso13584_expressions_schema *) ENTITY string_literal SUBTYPE OF (simple_string_expression, generic_literal); the_value : STRING; END_ENTITY; (* declared in: iso13584_expressions_schema *) ENTITY string_variable SUBTYPE OF (simple_string_expression, variable); END_ENTITY; (* declared in: iso13584_expressions_schema *) ENTITY structured_dimension_callout SUBTYPE OF (draughting_callout); WHERE wr1 : SIZEOF(TYPEOF(SELF) * ['AUTOMOTIVE_DESIGN.DATUM_FEATURE_CALLOUT', 'AUTOMOTIVE_DESIGN.DATUM_TARGET_CALLOUT', 'AUTOMOTIVE_DESIGN.GEOMETRICAL_TOLERANCE_CALLOUT', 'AUTOMOTIVE_DESIGN.LEADER_DIRECTED_CALLOUT', 'AUTOMOTIVE_DESIGN.PROJECTION_DIRECTED_CALLOUT', 'AUTOMOTIVE_DESIGN.DIMENSION_CURVE_DIRECTED_CALLOUT']) = 0; wr2 : SIZEOF(QUERY(ato <* QUERY(con <* SELF.contents | 'AUTOMOTIVE_DESIGN.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 | 'AUTOMOTIVE_DESIGN.ANNOTATION_TEXT_OCCURRENCE' IN TYPEOF(con)) | ato. name = 'dimension value')) >= 1; wr4 : SIZEOF(QUERY(dcr <* USEDIN(SELF, 'AUTOMOTIVE_DESIGN.DRAUGHTING_CALLOUT_RELATIONSHIP.RELATING_DRAUGHTING_CALLOUT' ) | ('AUTOMOTIVE_DESIGN.' + 'DIMENSION_CALLOUT_COMPONENT_RELATIONSHIP' IN TYPEOF(dcr)) AND (dcr.name = 'prefix'))) <= 1; wr5 : SIZEOF(QUERY(dcr <* USEDIN(SELF, 'AUTOMOTIVE_DESIGN.DRAUGHTING_CALLOUT_RELATIONSHIP.RELATING_DRAUGHTING_CALLOUT' ) | ('AUTOMOTIVE_DESIGN.' + 'DIMENSION_CALLOUT_COMPONENT_RELATIONSHIP' IN TYPEOF(dcr)) AND (dcr.name = 'suffix'))) <= 1; wr6 : NOT (SIZEOF(QUERY(ato <* QUERY(con <* SELF.contents | 'AUTOMOTIVE_DESIGN.ANNOTATION_TEXT_OCCURRENCE' IN TYPEOF(con)) | ato. name = 'prefix text')) > 0) OR (SIZEOF(QUERY(dcr <* USEDIN(SELF, 'AUTOMOTIVE_DESIGN.DRAUGHTING_CALLOUT_RELATIONSHIP.RELATING_DRAUGHTING_CALLOUT' ) | ('AUTOMOTIVE_DESIGN.' + 'DIMENSION_CALLOUT_COMPONENT_RELATIONSHIP' IN TYPEOF(dcr)) AND (dcr.name = 'prefix'))) = 1); wr7 : NOT (SIZEOF(QUERY(ato <* QUERY(con <* SELF.contents | 'AUTOMOTIVE_DESIGN.ANNOTATION_TEXT_OCCURRENCE' IN TYPEOF(con)) | ato. name = 'suffix text')) > 0) OR (SIZEOF(QUERY(dcr <* USEDIN(SELF, 'AUTOMOTIVE_DESIGN.DRAUGHTING_CALLOUT_RELATIONSHIP.RELATING_DRAUGHTING_CALLOUT' ) | ('AUTOMOTIVE_DESIGN.' + 'DIMENSION_CALLOUT_COMPONENT_RELATIONSHIP' IN TYPEOF(dcr)) AND (dcr.name = 'suffix'))) = 1); END_ENTITY; -- 10303-506: aic_draughting_elements ENTITY styled_item SUBTYPE OF (representation_item); styles : SET [1:?] OF presentation_style_assignment; item : representation_item; WHERE wr1 : (SIZEOF(SELF.styles) = 1) XOR (SIZEOF(QUERY(pres_style <* SELF.styles | NOT ('AUTOMOTIVE_DESIGN.' + 'PRESENTATION_STYLE_BY_CONTEXT' IN TYPEOF (pres_style)))) = 0); END_ENTITY; -- 10303-46: presentation_appearance_schema ENTITY subedge SUBTYPE OF (edge); parent_edge : edge; END_ENTITY; -- 10303-42: topology_schema ENTITY subface SUBTYPE OF (face); parent_face : face; WHERE wr1 : NOT mixed_loop_type_set(list_to_set(list_face_loops(SELF)) + list_to_set(list_face_loops(parent_face))); END_ENTITY; -- 10303-42: topology_schema ENTITY substring_expression SUBTYPE OF (string_expression, multiple_arity_generic_expression); DERIVE operand : generic_expression := SELF\multiple_arity_generic_expression. operands[1]; index1 : generic_expression := SELF\multiple_arity_generic_expression. operands[2]; index2 : generic_expression := SELF\multiple_arity_generic_expression. operands[3]; WHERE wr1 : ('AUTOMOTIVE_DESIGN.STRING_EXPRESSION' IN TYPEOF(operand)) AND ( 'AUTOMOTIVE_DESIGN.NUMERIC_EXPRESSION' IN TYPEOF(index1)) AND ( 'AUTOMOTIVE_DESIGN.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; (* declared in: iso13584_expressions_schema *) ENTITY surface SUPERTYPE OF (ONEOF (elementary_surface, swept_surface, bounded_surface, offset_surface, surface_replica)) SUBTYPE OF (geometric_representation_item); END_ENTITY; -- 10303-42: geometry_schema ENTITY surface_condition_callout SUBTYPE OF (draughting_callout); WHERE wr1 : SIZEOF(QUERY(c <* SELF.contents | SIZEOF(['AUTOMOTIVE_DESIGN.' + 'ANNOTATION_CURVE_OCCURRENCE', 'AUTOMOTIVE_DESIGN.' + 'ANNOTATION_SYMBOL_OCCURRENCE', 'AUTOMOTIVE_DESIGN.' + 'ANNOTATION_TEXT_OCCURRENCE'] * TYPEOF(c)) <> 1)) = 0; END_ENTITY; -- 10303-214: automotive_design 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 : ('AUTOMOTIVE_DESIGN.PCURVE' IN TYPEOF(associated_geometry[1])) OR ( master_representation <> pcurve_s1); wr3 : ('AUTOMOTIVE_DESIGN.PCURVE' IN TYPEOF(associated_geometry[2])) OR ( master_representation <> pcurve_s2); wr4 : NOT ('AUTOMOTIVE_DESIGN.PCURVE' IN TYPEOF(curve_3d)); END_ENTITY; -- 10303-42: geometry_schema ENTITY surface_of_linear_extrusion SUBTYPE OF (swept_surface); extrusion_axis : vector; END_ENTITY; -- 10303-42: geometry_schema ENTITY surface_curve_swept_area_solid SUBTYPE OF (swept_area_solid); directrix : curve; start_param : REAL; end_param : REAL; reference_surface : surface; WHERE wr1 : NOT ('AUTOMOTIVE_DESIGN_LF.SURFACE_CURVE' IN TYPEOF(directrix)) OR ( reference_surface IN directrix\surface_curve.basis_surface); END_ENTITY; (* declared in: geometric_model_schema *) ENTITY surface_of_revolution SUBTYPE OF (swept_surface); axis_position : axis1_placement; DERIVE axis_line : line := representation_item('')||geometric_representation_item() ||curve()||line(axis_position.location, representation_item('')|| geometric_representation_item()||vector(axis_position.z, 1.0)); END_ENTITY; -- 10303-42: geometry_schema ENTITY surface_pair SUBTYPE OF (kinematic_pair); surface_1 : surface; surface_2 : surface; orientation : BOOLEAN; WHERE wr1 : frame_associated_to_background(SELF\kinematic_pair. pair_placement_in_first_link_context, surface_1); wr2 : frame_associated_to_background(SELF\kinematic_pair. pair_placement_in_second_link_context, surface_2); END_ENTITY; -- 10303-105: kinematic_structure_schema ENTITY surface_pair_range SUBTYPE OF (simple_pair_range); SELF\simple_pair_range.applies_to_pair : surface_pair; range_on_surface_1 : rectangular_trimmed_surface; range_on_surface_2 : rectangular_trimmed_surface; lower_limit_actual_rotation : rotational_range_measure; upper_limit_actual_rotation : rotational_range_measure; WHERE wr1 : SELF\simple_pair_range.applies_to_pair\surface_pair.surface_1 :=: range_on_surface_1.basis_surface; wr2 : SELF\simple_pair_range.applies_to_pair\surface_pair.surface_2 :=: range_on_surface_2.basis_surface; wr3 : ('AUTOMOTIVE_DESIGN.UNLIMITED_RANGE' IN TYPEOF( lower_limit_actual_rotation)) OR ('AUTOMOTIVE_DESIGN.UNLIMITED_RANGE' IN TYPEOF(upper_limit_actual_rotation)) XOR (lower_limit_actual_rotation < upper_limit_actual_rotation); END_ENTITY; -- 10303-105: kinematic_structure_schema ENTITY surface_patch SUBTYPE OF (founded_item); parent_surface : bounded_surface; u_transition : transition_code; v_transition : transition_code; u_sense : BOOLEAN; v_sense : BOOLEAN; INVERSE using_surfaces : BAG [1:?] OF rectangular_composite_surface FOR segments; WHERE wr1 : NOT ('AUTOMOTIVE_DESIGN.CURVE_BOUNDED_SURFACE' IN TYPEOF( parent_surface)); END_ENTITY; -- 10303-42: geometry_schema ENTITY surface_profile_tolerance SUBTYPE OF (geometric_tolerance); WHERE wr1 : NOT ('AUTOMOTIVE_DESIGN.' + 'GEOMETRIC_TOLERANCE_WITH_DATUM_REFERENCE' IN TYPEOF(SELF)) OR (SIZEOF(SELF \geometric_tolerance_with_datum_reference.datum_system) <= 3); END_ENTITY; -- 10303-519: aic_geometric_tolerances ENTITY surface_rendering_properties; rendered_colour : colour; END_ENTITY; -- 10303-46: presentation_appearance_schema ENTITY surface_replica SUBTYPE OF (surface); parent_surface : surface; transformation : cartesian_transformation_operator_3d; WHERE wr1 : acyclic_surface_replica(SELF, parent_surface); END_ENTITY; -- 10303-42: geometry_schema ENTITY surface_side_style; name : label; styles : SET [1:7] OF surface_style_element_select; WHERE wr1 : SIZEOF(QUERY(style1 <* SELF.styles | SIZEOF(QUERY(style2 <* SELF.styles - style1 | TYPEOF(style1) = TYPEOF(style2))) > 0)) = 0; END_ENTITY; -- 10303-46: presentation_appearance_schema ENTITY surface_style_boundary; style_of_boundary : curve_or_render; END_ENTITY; -- 10303-46: presentation_appearance_schema ENTITY surface_style_control_grid; style_of_control_grid : curve_or_render; END_ENTITY; -- 10303-46: presentation_appearance_schema ENTITY surface_style_fill_area; fill_area : fill_area_style; END_ENTITY; -- 10303-46: presentation_appearance_schema ENTITY surface_style_parameter_line; style_of_parameter_lines : curve_or_render; direction_counts : SET [1:2] OF direction_count_select; WHERE wr1 : (HIINDEX(SELF.direction_counts) = 1) XOR (TYPEOF(SELF.direction_counts[ 1]) <> TYPEOF(SELF.direction_counts[2])); END_ENTITY; -- 10303-46: presentation_appearance_schema ENTITY surface_style_reflectance_ambient; ambient_reflectance : REAL; END_ENTITY; -- 10303-46: presentation_appearance_schema ENTITY surface_style_reflectance_ambient_diffuse SUBTYPE OF (surface_style_reflectance_ambient); diffuse_reflectance : REAL; END_ENTITY; -- 10303-46: presentation_appearance_schema ENTITY surface_style_reflectance_ambient_diffuse_specular SUBTYPE OF (surface_style_reflectance_ambient_diffuse); specular_reflectance : REAL; specular_exponent : REAL; specular_colour : colour; END_ENTITY; -- 10303-46: presentation_appearance_schema ENTITY surface_style_rendering; rendering_method : shading_surface_method; surface_colour : colour; END_ENTITY; -- 10303-46: presentation_appearance_schema ENTITY surface_style_rendering_with_properties SUBTYPE OF (surface_style_rendering); properties : SET [1:2] OF rendering_properties_select; WHERE wr1 : (HIINDEX(SELF.properties) = 1) XOR (TYPEOF(SELF.properties[1]) <> TYPEOF(SELF.properties[2])); END_ENTITY; -- 10303-46: presentation_appearance_schema ENTITY surface_style_segmentation_curve; style_of_segmentation_curve : curve_or_render; END_ENTITY; -- 10303-46: presentation_appearance_schema ENTITY surface_style_silhouette; style_of_silhouette : curve_or_render; END_ENTITY; -- 10303-46: presentation_appearance_schema ENTITY surface_style_transparent; transparency : REAL; WHERE wr1 : {0.0 <= transparency <= 1.0}; END_ENTITY; -- 10303-46: presentation_appearance_schema ENTITY surface_style_usage; side : surface_side; style : surface_side_style_select; END_ENTITY; -- 10303-46: presentation_appearance_schema ENTITY surface_texture_representation SUBTYPE OF (representation); WHERE wr1 : SIZEOF(QUERY(i <* SELF.items | SIZEOF(['AUTOMOTIVE_DESIGN.' + 'MEASURE_REPRESENTATION_ITEM', 'AUTOMOTIVE_DESIGN.' + 'VALUE_RANGE', 'AUTOMOTIVE_DESIGN.' + 'DESCRIPTIVE_REPRESENTATION_ITEM'] * TYPEOF(i)) <> 1)) = 0; wr2 : (SIZEOF(QUERY(i <* SELF.items | 'AUTOMOTIVE_DESIGN.' + 'DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF(i))) = 1) AND (SIZEOF(QUERY(i <* SELF.items | ('AUTOMOTIVE_DESIGN.' + 'DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF(i)) AND (i.name = 'measuring method'))) = 1); wr3 : SIZEOF(QUERY(i <* SELF.items | SIZEOF(['AUTOMOTIVE_DESIGN.' + 'MEASURE_REPRESENTATION_ITEM', 'AUTOMOTIVE_DESIGN.' + 'VALUE_RANGE'] * TYPEOF(i)) = 1)) > 0; wr4 : (SIZEOF(USEDIN(SELF, 'AUTOMOTIVE_DESIGN.REPRESENTATION_RELATIONSHIP.REP_1')) <= 1) AND ( SIZEOF(USEDIN(SELF, 'AUTOMOTIVE_DESIGN.REPRESENTATION_RELATIONSHIP.REP_2')) = 0) AND (SIZEOF (QUERY(rr <* USEDIN(SELF, 'AUTOMOTIVE_DESIGN.REPRESENTATION_RELATIONSHIP.REP_1') | rr.rep_2.name = 'measuring direction')) = SIZEOF(USEDIN(SELF, 'AUTOMOTIVE_DESIGN.REPRESENTATION_RELATIONSHIP.REP_1'))); wr5 : (SIZEOF(USEDIN(SELF, 'AUTOMOTIVE_DESIGN.PROPERTY_DEFINITION_REPRESENTATION.USED_REPRESENTATION' )) = 1) AND (SIZEOF(QUERY(pdr <* USEDIN(SELF, 'AUTOMOTIVE_DESIGN.PROPERTY_DEFINITION_REPRESENTATION.USED_REPRESENTATION' ) | SIZEOF(QUERY(gpa <* USEDIN(pdr.definition, 'AUTOMOTIVE_DESIGN.GENERAL_PROPERTY_ASSOCIATION.DERIVED_DEFINITION') | ( 'AUTOMOTIVE_DESIGN.' + 'GENERAL_PROPERTY' IN TYPEOF(gpa.base_definition) ) AND (gpa.base_definition.name = 'surface_texture'))) = 1)) = 1); END_ENTITY; -- 10303-214: automotive_design 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 : 'AUTOMOTIVE_DESIGN_LF.PLANE' IN TYPEOF(swept_area.basis_surface); END_ENTITY; (* declared in: geometric_model_schema *) ENTITY swept_disk_solid SUBTYPE OF (solid_model); directrix : curve; radius : positive_length_measure; inner_radius : OPTIONAL positive_length_measure; start_param : REAL; end_param : REAL; WHERE wr1 : directrix.dim = 3; wr2 : NOT EXISTS(inner_radius) OR (radius > inner_radius); END_ENTITY; (* declared in: geometric_model_schema *) ENTITY swept_face_solid SUPERTYPE OF (ONEOF (extruded_face_solid, revolved_face_solid)) SUBTYPE OF (solid_model); swept_face : face_surface; WHERE wr1 : 'AUTOMOTIVE_DESIGN.PLANE' IN TYPEOF(swept_face.face_geometry); END_ENTITY; -- 10303-42: geometric_model_schema ENTITY swept_surface SUPERTYPE OF (ONEOF (surface_of_linear_extrusion, surface_of_revolution)) SUBTYPE OF (surface); swept_curve : curve; END_ENTITY; -- 10303-42: geometry_schema ENTITY symbol_colour; colour_of_symbol : colour; END_ENTITY; -- 10303-46: presentation_appearance_schema ENTITY symbol_representation SUBTYPE OF (representation); END_ENTITY; -- 10303-46: presentation_definition_schema ENTITY symbol_representation_map SUBTYPE OF (representation_map); WHERE wr1 : 'AUTOMOTIVE_DESIGN.SYMBOL_REPRESENTATION' IN TYPEOF(SELF\ representation_map.mapped_representation); wr2 : 'AUTOMOTIVE_DESIGN.AXIS2_PLACEMENT' IN TYPEOF(SELF\ representation_map.mapping_origin); END_ENTITY; -- 10303-46: presentation_definition_schema ENTITY symbol_style; name : label; style_of_symbol : symbol_style_select; END_ENTITY; -- 10303-46: presentation_appearance_schema ENTITY symbol_target SUBTYPE OF (geometric_representation_item); placement : axis2_placement; x_scale : positive_ratio_measure; y_scale : positive_ratio_measure; END_ENTITY; -- 10303-46: presentation_definition_schema ENTITY symmetric_shape_aspect SUBTYPE OF (shape_aspect); INVERSE basis_relationships : SET [1:?] OF shape_aspect_relationship FOR relating_shape_aspect; WHERE wr1 : SIZEOF(QUERY(x <* SELF\symmetric_shape_aspect.basis_relationships | 'AUTOMOTIVE_DESIGN.CENTRE_OF_SYMMETRY' IN TYPEOF(x\ shape_aspect_relationship.related_shape_aspect))) >= 1; END_ENTITY; -- 10303-47: shape_aspect_definition_schema ENTITY symmetry_tolerance SUBTYPE OF (geometric_tolerance_with_datum_reference); WHERE wr1 : SIZEOF(SELF\geometric_tolerance_with_datum_reference.datum_system) <= 3 ; END_ENTITY; -- 10303-519: aic_geometric_tolerances ENTITY tactile_appearance_representation SUBTYPE OF (representation); WHERE wr1 : SIZEOF(QUERY(i <* SELF.items | SIZEOF(['AUTOMOTIVE_DESIGN.' + 'MEASURE_REPRESENTATION_ITEM', 'AUTOMOTIVE_DESIGN.' + 'VALUE_RANGE'] * TYPEOF(i)) <> 1)) = 0; wr2 : SIZEOF(QUERY(i <* SELF.items | name = 'depth')) <= 1; wr3 : (SIZEOF(USEDIN(SELF, 'AUTOMOTIVE_DESIGN.PROPERTY_DEFINITION_REPRESENTATION.USED_REPRESENTATION' )) = 1) AND (SIZEOF(QUERY(pdr <* USEDIN(SELF, 'AUTOMOTIVE_DESIGN.PROPERTY_DEFINITION_REPRESENTATION.USED_REPRESENTATION' ) | SIZEOF(QUERY(gpa <* USEDIN(pdr.definition, 'AUTOMOTIVE_DESIGN.GENERAL_PROPERTY_ASSOCIATION.DERIVED_DEFINITION') | ( 'AUTOMOTIVE_DESIGN.' + 'GENERAL_PROPERTY' IN TYPEOF(gpa.base_definition) ) AND (gpa.base_definition.name = 'surface_texture'))) = 1)) = 1); END_ENTITY; -- 10303-214: automotive_design ENTITY tan_function SUBTYPE OF (unary_function_call); END_ENTITY; (* declared in: iso13584_expressions_schema *) ENTITY tangent SUBTYPE OF (derived_shape_aspect); WHERE wr1 : SIZEOF(SELF\derived_shape_aspect.deriving_relationships) = 1; END_ENTITY; -- 10303-47: shape_aspect_definition_schema ENTITY taper SUBTYPE OF (shape_aspect); WHERE wr1 : 'AUTOMOTIVE_DESIGN.' + 'FEATURE_COMPONENT_DEFINITION' IN TYPEOF(SELF .of_shape.definition); wr2 : SELF.description IN ['angle taper', 'diameter taper', 'directed taper'] ; wr3 : SIZEOF(QUERY(pdr <* get_shape_aspect_property_definition_representations(SELF) | 'AUTOMOTIVE_DESIGN.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation))) = 1; wr4 : SIZEOF(QUERY(pdr <* get_shape_aspect_property_definition_representations(SELF) | ( 'AUTOMOTIVE_DESIGN.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation)) AND (SIZEOF(pdr.used_representation.items) = 1))) = 1; wr5 : (SELF.description <> 'angle taper') OR (SIZEOF(QUERY(pdr <* get_shape_aspect_property_definition_representations(SELF) | ( 'AUTOMOTIVE_DESIGN.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation)) AND (SIZEOF(QUERY(i <* pdr.used_representation. items | (SIZEOF(['AUTOMOTIVE_DESIGN.' + 'MEASURE_REPRESENTATION_ITEM', 'AUTOMOTIVE_DESIGN.' + 'PLANE_ANGLE_MEASURE_WITH_UNIT'] * TYPEOF(i)) = 2 ) AND (i.name = 'taper angle'))) = 1))) = 1); wr6 : (SELF.description <> 'diameter taper') OR (SIZEOF(QUERY(pdr <* get_shape_aspect_property_definition_representations(SELF) | ( 'AUTOMOTIVE_DESIGN.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation)) AND (SIZEOF(QUERY(i <* pdr.used_representation. items | (SIZEOF(['AUTOMOTIVE_DESIGN.' + 'MEASURE_REPRESENTATION_ITEM', 'AUTOMOTIVE_DESIGN.' + 'LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(i)) = 2) AND (i.name = 'taper diameter'))) = 1))) = 1); wr7 : (SELF.description <> 'directed taper') OR (SIZEOF(QUERY(pdr <* get_shape_aspect_property_definition_representations(SELF) | ( 'AUTOMOTIVE_DESIGN.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation)) AND (SIZEOF(QUERY(i <* pdr.used_representation. items | (SIZEOF(['AUTOMOTIVE_DESIGN.' + 'MEASURE_REPRESENTATION_ITEM', 'AUTOMOTIVE_DESIGN.' + 'PLANE_ANGLE_MEASURE_WITH_UNIT'] * TYPEOF(i)) = 2 ) AND (i.name = 'angle'))) = 1))) = 1); wr8 : (SELF.description <> 'directed taper') OR (SIZEOF(QUERY(pdr <* get_shape_aspect_property_definition_representations(SELF) | 'AUTOMOTIVE_DESIGN.' + 'DIRECTION_SHAPE_REPRESENTATION' IN TYPEOF(pdr. used_representation))) = 1) AND (SIZEOF(QUERY(pdr <* get_shape_aspect_property_definition_representations(SELF) | ( 'AUTOMOTIVE_DESIGN.' + 'DIRECTION_SHAPE_REPRESENTATION' IN TYPEOF(pdr. used_representation)) AND (pdr.used_representation.name = 'direction'))) = 1); END_ENTITY; -- 10303-214: automotive_design ENTITY tee_profile SUBTYPE OF (shape_aspect); WHERE wr1 : 'AUTOMOTIVE_DESIGN.' + 'FEATURE_COMPONENT_DEFINITION' IN TYPEOF(SELF .of_shape.definition); wr2 : SIZEOF(QUERY(pdr <* get_shape_aspect_property_definition_representations(SELF) | 'AUTOMOTIVE_DESIGN.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation))) = 1; wr3 : SIZEOF(QUERY(pdr <* get_shape_aspect_property_definition_representations(SELF) | ( 'AUTOMOTIVE_DESIGN.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation)) AND {9 <= SIZEOF(pdr.used_representation.items) <= 10})) = 1; wr4 : SIZEOF(QUERY(pdr <* get_shape_aspect_property_definition_representations(SELF) | ( 'AUTOMOTIVE_DESIGN.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation)) AND (SIZEOF(QUERY(i <* pdr.used_representation. items | NOT (i.name IN ['orientation', 'width', 'depth', 'cross bar width' , 'cross bar depth', 'first offset', 'second offset', 'first angle', 'second angle', 'radius']))) > 0))) = 0; wr5 : SIZEOF(QUERY(pdr <* get_shape_aspect_property_definition_representations(SELF) | ( 'AUTOMOTIVE_DESIGN.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation)) AND (SIZEOF(QUERY(i <* pdr.used_representation. items | ('AUTOMOTIVE_DESIGN.' + 'PLACEMENT' IN TYPEOF(i)) AND (i.name = 'orientation'))) = 1))) = 1; wr6 : SIZEOF(QUERY(pdr <* get_shape_aspect_property_definition_representations(SELF) | ( 'AUTOMOTIVE_DESIGN.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation)) AND (SIZEOF(QUERY(i <* pdr.used_representation. items | (SIZEOF(['AUTOMOTIVE_DESIGN.' + 'MEASURE_REPRESENTATION_ITEM', 'AUTOMOTIVE_DESIGN.' + 'LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(i)) = 2) AND (i.name = 'width'))) = 1))) = 1; wr7 : SIZEOF(QUERY(pdr <* get_shape_aspect_property_definition_representations(SELF) | ( 'AUTOMOTIVE_DESIGN.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation)) AND (SIZEOF(QUERY(i <* pdr.used_representation. items | (SIZEOF(['AUTOMOTIVE_DESIGN.' + 'MEASURE_REPRESENTATION_ITEM', 'AUTOMOTIVE_DESIGN.' + 'LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(i)) = 2) AND (i.name = 'depth'))) = 1))) = 1; wr8 : SIZEOF(QUERY(pdr <* get_shape_aspect_property_definition_representations(SELF) | ( 'AUTOMOTIVE_DESIGN.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation)) AND (SIZEOF(QUERY(i <* pdr.used_representation. items | (SIZEOF(['AUTOMOTIVE_DESIGN.' + 'MEASURE_REPRESENTATION_ITEM', 'AUTOMOTIVE_DESIGN.' + 'LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(i)) = 2) AND (i.name = 'cross bar width'))) = 1))) = 1; wr9 : SIZEOF(QUERY(pdr <* get_shape_aspect_property_definition_representations(SELF) | ( 'AUTOMOTIVE_DESIGN.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation)) AND (SIZEOF(QUERY(i <* pdr.used_representation. items | (SIZEOF(['AUTOMOTIVE_DESIGN.' + 'MEASURE_REPRESENTATION_ITEM', 'AUTOMOTIVE_DESIGN.' + 'LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(i)) = 2) AND (i.name = 'cross bar depth'))) = 1))) = 1; wr10 : SIZEOF(QUERY(pdr <* get_shape_aspect_property_definition_representations(SELF) | ( 'AUTOMOTIVE_DESIGN.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation)) AND (SIZEOF(QUERY(i <* pdr.used_representation. items | (SIZEOF(['AUTOMOTIVE_DESIGN.' + 'MEASURE_REPRESENTATION_ITEM', 'AUTOMOTIVE_DESIGN.' + 'LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(i)) = 2) AND (i.name = 'first offset'))) = 1))) = 1; wr11 : SIZEOF(QUERY(pdr <* get_shape_aspect_property_definition_representations(SELF) | ( 'AUTOMOTIVE_DESIGN.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation)) AND (SIZEOF(QUERY(i <* pdr.used_representation. items | (SIZEOF(['AUTOMOTIVE_DESIGN.' + 'MEASURE_REPRESENTATION_ITEM', 'AUTOMOTIVE_DESIGN.' + 'LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(i)) = 2) AND (i.name = 'second offset'))) = 1))) = 1; wr12 : SIZEOF(QUERY(pdr <* get_shape_aspect_property_definition_representations(SELF) | ( 'AUTOMOTIVE_DESIGN.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation)) AND (SIZEOF(QUERY(i <* pdr.used_representation. items | (SIZEOF(['AUTOMOTIVE_DESIGN.' + 'MEASURE_REPRESENTATION_ITEM', 'AUTOMOTIVE_DESIGN.' + 'PLANE_ANGLE_MEASURE_WITH_UNIT'] * TYPEOF(i)) = 2 ) AND (i.name = 'first angle'))) = 1))) = 1; wr13 : SIZEOF(QUERY(pdr <* get_shape_aspect_property_definition_representations(SELF) | ( 'AUTOMOTIVE_DESIGN.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation)) AND (SIZEOF(QUERY(i <* pdr.used_representation. items | (SIZEOF(['AUTOMOTIVE_DESIGN.' + 'MEASURE_REPRESENTATION_ITEM', 'AUTOMOTIVE_DESIGN.' + 'PLANE_ANGLE_MEASURE_WITH_UNIT'] * TYPEOF(i)) = 2 ) AND (i.name = 'second angle'))) = 1))) = 1; wr14 : (SIZEOF(QUERY(pdr <* get_shape_aspect_property_definition_representations(SELF) | ( 'AUTOMOTIVE_DESIGN.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation)) AND (SIZEOF(QUERY(i <* pdr.used_representation. items | i.name = 'radius')) = 1))) <= 1) AND (SIZEOF(QUERY(pdr <* get_shape_aspect_property_definition_representations(SELF) | ( 'AUTOMOTIVE_DESIGN.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation)) AND (SIZEOF(QUERY(i <* pdr.used_representation. items | (SIZEOF(['AUTOMOTIVE_DESIGN.' + 'MEASURE_REPRESENTATION_ITEM', 'AUTOMOTIVE_DESIGN.' + 'LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(i)) = 2) AND (i.name = 'radius'))) = 1))) <= 1); wr15 : (SIZEOF(QUERY(pdr <* get_shape_aspect_property_definition_representations(SELF) | 'AUTOMOTIVE_DESIGN.' + 'PLANAR_SHAPE_REPRESENTATION' IN TYPEOF(pdr. used_representation))) <= 1) AND (SIZEOF(QUERY(pdr <* get_shape_aspect_property_definition_representations(SELF) | ( 'AUTOMOTIVE_DESIGN.' + 'PLANAR_SHAPE_REPRESENTATION' IN TYPEOF(pdr. used_representation)) AND (pdr.used_representation.name = 'profile limit')) ) <= 1); END_ENTITY; -- 10303-214: automotive_design ENTITY terminator_symbol SUBTYPE OF (annotation_symbol_occurrence); annotated_curve : annotation_curve_occurrence; END_ENTITY; -- 10303-101: draughting_element_schema ENTITY text_literal SUBTYPE OF (geometric_representation_item); literal : presentable_text; placement : axis2_placement; alignment : text_alignment; path : text_path; font : font_select; END_ENTITY; -- 10303-46: presentation_definition_schema ENTITY text_literal_with_associated_curves SUBTYPE OF (text_literal); associated_curves : SET [1:?] OF curve; END_ENTITY; -- 10303-46: presentation_definition_schema ENTITY text_literal_with_blanking_box SUBTYPE OF (text_literal); blanking : planar_box; END_ENTITY; -- 10303-46: presentation_definition_schema ENTITY text_literal_with_delineation SUBTYPE OF (text_literal); delineation : text_delineation; END_ENTITY; -- 10303-46: presentation_definition_schema ENTITY text_literal_with_extent SUBTYPE OF (text_literal); extent : planar_extent; END_ENTITY; -- 10303-46: presentation_definition_schema ENTITY text_string_representation SUBTYPE OF (representation); WHERE wr1 : SIZEOF(QUERY(item <* SELF\representation.items | SIZEOF([ 'AUTOMOTIVE_DESIGN.TEXT_LITERAL', 'AUTOMOTIVE_DESIGN.ANNOTATION_TEXT' , 'AUTOMOTIVE_DESIGN.ANNOTATION_TEXT_CHARACTER', 'AUTOMOTIVE_DESIGN.DEFINED_CHARACTER_GLYPH', 'AUTOMOTIVE_DESIGN.COMPOSITE_TEXT', 'AUTOMOTIVE_DESIGN.AXIS2_PLACEMENT'] * TYPEOF(item)) = 0)) = 0; wr2 : SIZEOF(QUERY(item <* SELF\representation.items | NOT (SIZEOF([ 'AUTOMOTIVE_DESIGN.TEXT_LITERAL', 'AUTOMOTIVE_DESIGN.ANNOTATION_TEXT' , 'AUTOMOTIVE_DESIGN.ANNOTATION_TEXT_CHARACTER', 'AUTOMOTIVE_DESIGN.DEFINED_CHARACTER_GLYPH', 'AUTOMOTIVE_DESIGN.COMPOSITE_TEXT'] * TYPEOF(item)) = 0))) >= 1; wr3 : SIZEOF(QUERY(a2p <* QUERY(item <* SELF\representation.items | 'AUTOMOTIVE_DESIGN.AXIS2_PLACEMENT' IN TYPEOF(item)) | NOT ((SIZEOF( QUERY(at <* QUERY(item <* SELF\representation.items | 'AUTOMOTIVE_DESIGN.' + 'ANNOTATION_TEXT' IN TYPEOF(item)) | at\ mapped_item.mapping_target :=: a2p)) >= 1) OR (SIZEOF(QUERY(atc <* QUERY( item <* SELF\representation.items | 'AUTOMOTIVE_DESIGN.' + 'ANNOTATION_TEXT_CHARACTER' IN TYPEOF(item)) | atc\mapped_item. mapping_target :=: a2p)) >= 1)))) = 0; END_ENTITY; -- 10303-46: presentation_definition_schema ENTITY text_style; name : label; character_appearance : character_style_select; END_ENTITY; -- 10303-46: presentation_appearance_schema ENTITY text_style_for_defined_font; text_colour : colour; END_ENTITY; -- 10303-46: presentation_appearance_schema ENTITY text_style_with_box_characteristics SUBTYPE OF (text_style); characteristics : SET [1:4] OF box_characteristic_select; WHERE wr1 : SIZEOF(QUERY(c1 <* SELF.characteristics | SIZEOF(QUERY(c2 <* SELF. characteristics - c1 | TYPEOF(c1) = TYPEOF(c2))) > 0)) = 0; END_ENTITY; -- 10303-46: presentation_appearance_schema ENTITY text_style_with_mirror SUBTYPE OF (text_style); mirror_placement : axis2_placement; END_ENTITY; -- 10303-46: presentation_appearance_schema ENTITY text_style_with_spacing SUBTYPE OF (text_style); character_spacing : character_spacing_select; END_ENTITY; -- 10303-46: presentation_appearance_schema ENTITY thermodynamic_temperature_measure_with_unit SUBTYPE OF (measure_with_unit); WHERE wr1 : 'AUTOMOTIVE_DESIGN.THERMODYNAMIC_TEMPERATURE_UNIT' IN TYPEOF(SELF\ measure_with_unit.unit_component); END_ENTITY; -- 10303-41: measure_schema ENTITY thermodynamic_temperature_unit SUBTYPE OF (named_unit); WHERE wr1 : (SELF\named_unit.dimensions.length_exponent = 0.000000) AND (SELF\ named_unit.dimensions.mass_exponent = 0.000000) AND (SELF\named_unit .dimensions.time_exponent = 0.000000) AND (SELF\named_unit.dimensions. electric_current_exponent = 0.000000) AND (SELF\named_unit.dimensions. thermodynamic_temperature_exponent = 1.000000) AND (SELF\named_unit. dimensions.amount_of_substance_exponent = 0.000000) AND (SELF\named_unit. dimensions.luminous_intensity_exponent = 0.000000); END_ENTITY; -- 10303-41: measure_schema ENTITY thread SUBTYPE OF (feature_definition); WHERE wr1 : SIZEOF(QUERY(pdr <* get_property_definition_representations(SELF) | ( 'AUTOMOTIVE_DESIGN.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation)) AND NOT ({7 <= SIZEOF(pdr.used_representation. items) <= 10}))) = 0; wr2 : SIZEOF(QUERY(pdr <* get_property_definition_representations(SELF) | ( 'AUTOMOTIVE_DESIGN.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation)) AND (SIZEOF(QUERY(i <* pdr.used_representation. items | (i\descriptive_representation_item.description IN ['internal', 'external']) AND ('AUTOMOTIVE_DESIGN.' + 'DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF(i)))) = 1))) = 1; wr3 : SIZEOF(QUERY(pdr <* get_property_definition_representations(SELF) | ( 'AUTOMOTIVE_DESIGN.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation)) AND (SIZEOF(QUERY(i <* pdr.used_representation. items | (i.name = 'major diameter') AND (SIZEOF(['AUTOMOTIVE_DESIGN.' + 'MEASURE_REPRESENTATION_ITEM', 'AUTOMOTIVE_DESIGN.' + 'LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(i)) = 2))) = 1))) = 1; wr4 : SIZEOF(QUERY(pdr <* get_property_definition_representations(SELF) | ( 'AUTOMOTIVE_DESIGN.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation)) AND (SIZEOF(QUERY(i <* pdr.used_representation. items | (i.name = 'minor diameter') AND (SIZEOF(['AUTOMOTIVE_DESIGN.' + 'MEASURE_REPRESENTATION_ITEM', 'AUTOMOTIVE_DESIGN.' + 'LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(i)) = 2))) = 1))) <= 1; wr5 : SIZEOF(QUERY(pdr <* get_property_definition_representations(SELF) | ( 'AUTOMOTIVE_DESIGN.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation)) AND (SIZEOF(QUERY(i <* pdr.used_representation. items | (i.name = 'pitch diameter') AND (SIZEOF(['AUTOMOTIVE_DESIGN.' + 'MEASURE_REPRESENTATION_ITEM', 'AUTOMOTIVE_DESIGN.' + 'LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(i)) = 2))) = 1))) = 1; wr6 : SIZEOF(QUERY(pdr <* get_property_definition_representations(SELF) | ( 'AUTOMOTIVE_DESIGN.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation)) AND (SIZEOF(QUERY(i <* pdr.used_representation. items | (i.name = 'crest') AND (SIZEOF(['AUTOMOTIVE_DESIGN.' + 'MEASURE_REPRESENTATION_ITEM', 'AUTOMOTIVE_DESIGN.' + 'LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(i)) = 2))) = 1))) <= 1; wr7 : SIZEOF(QUERY(pdr <* get_property_definition_representations(SELF) | ( 'AUTOMOTIVE_DESIGN.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation)) AND (SIZEOF(QUERY(i <* pdr.used_representation. items | (i.name = 'number of threads') AND (SIZEOF(['AUTOMOTIVE_DESIGN.' + 'MEASURE_REPRESENTATION_ITEM', 'AUTOMOTIVE_DESIGN.' + 'RATIO_MEASURE_WITH_UNIT'] * TYPEOF(i)) = 2))) = 1))) = 1; wr8 : SIZEOF(QUERY(pdr <* get_property_definition_representations(SELF) | ( 'AUTOMOTIVE_DESIGN.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation)) AND (SIZEOF(QUERY(i <* pdr.used_representation. items | (i.name = 'fit class') AND ('AUTOMOTIVE_DESIGN.' + 'DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF(i)))) = 1))) = 1; wr9 : SIZEOF(QUERY(pdr <* get_property_definition_representations(SELF) | ( 'AUTOMOTIVE_DESIGN.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation)) AND (SIZEOF(QUERY(i <* pdr.used_representation. items | (i.name = 'form') AND ('AUTOMOTIVE_DESIGN.' + 'DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF(i)))) = 1))) = 1; wr10 : SIZEOF(QUERY(pdr <* get_property_definition_representations(SELF) | ( 'AUTOMOTIVE_DESIGN.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation)) AND (SIZEOF(QUERY(i <* pdr.used_representation. items | (i.name = 'hand') AND (i\descriptive_representation_item. description IN ['left hand', 'right hand']) AND ('AUTOMOTIVE_DESIGN.' + 'DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF(i)))) = 1))) = 1; wr11 : SIZEOF(QUERY(pdr <* get_property_definition_representations(SELF) | ( 'AUTOMOTIVE_DESIGN.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation)) AND (SIZEOF(QUERY(i <* pdr.used_representation. items | (i.name = 'qualifier') AND ('AUTOMOTIVE_DESIGN.' + 'DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF(i)))) = 1))) <= 1; wr12 : SIZEOF(QUERY(pdr <* get_property_definition_representations(SELF) | ( 'AUTOMOTIVE_DESIGN.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation)) AND (SIZEOF(QUERY(i <* pdr.used_representation. items | NOT (i.name IN ['thread side', 'major diameter', 'minor diameter', 'pitch diameter', 'crest', 'number of threads', 'fit class', 'form', 'hand' , 'qualifier']))) > 0))) = 0; END_ENTITY; -- 10303-214: automotive_design ENTITY time_interval; id : identifier; name : label; description : OPTIONAL text; END_ENTITY; -- 10303-41: date_time_schema ENTITY time_interval_assignment ABSTRACT SUPERTYPE; assigned_time_interval : time_interval; role : time_interval_role; END_ENTITY; -- 10303-41: management_resources_schema ENTITY time_interval_based_effectivity SUBTYPE OF (effectivity); effectivity_period : time_interval; END_ENTITY; -- 10303-41: effectivity_schema ENTITY time_interval_role; name : label; description : OPTIONAL text; END_ENTITY; -- 10303-41: date_time_schema ENTITY time_interval_with_bounds SUBTYPE OF (time_interval); primary_bound : OPTIONAL date_time_or_event_occurrence; secondary_bound : OPTIONAL date_time_or_event_occurrence; duration : OPTIONAL time_measure_with_unit; WHERE wr1 : NOT (EXISTS(secondary_bound) AND EXISTS(duration)); wr2 : EXISTS(primary_bound) OR EXISTS(secondary_bound); END_ENTITY; -- 10303-41: date_time_schema ENTITY time_measure_with_unit SUBTYPE OF (measure_with_unit); WHERE wr1 : 'AUTOMOTIVE_DESIGN.TIME_UNIT' IN TYPEOF(SELF\measure_with_unit. unit_component); END_ENTITY; -- 10303-41: measure_schema ENTITY time_unit SUBTYPE OF (named_unit); WHERE wr1 : (SELF\named_unit.dimensions.length_exponent = 0.000000) AND (SELF\ named_unit.dimensions.mass_exponent = 0.000000) AND (SELF\named_unit .dimensions.time_exponent = 1.000000) AND (SELF\named_unit.dimensions. electric_current_exponent = 0.000000) AND (SELF\named_unit.dimensions. thermodynamic_temperature_exponent = 0.000000) AND (SELF\named_unit. dimensions.amount_of_substance_exponent = 0.000000) AND (SELF\named_unit. dimensions.luminous_intensity_exponent = 0.000000); END_ENTITY; -- 10303-41: measure_schema ENTITY tolerance_value; lower_bound : measure_with_unit; upper_bound : measure_with_unit; WHERE wr1 : upper_bound\measure_with_unit.value_component > lower_bound\ measure_with_unit.value_component; wr2 : upper_bound\measure_with_unit.unit_component = lower_bound\ measure_with_unit.unit_component; END_ENTITY; -- 10303-47: shape_tolerance_schema ENTITY tolerance_zone SUBTYPE OF (shape_aspect); defining_tolerance : SET [1:?] OF geometric_tolerance; form : tolerance_zone_form; END_ENTITY; -- 10303-47: shape_tolerance_schema ENTITY tolerance_zone_definition SUPERTYPE OF (ONEOF (projected_zone_definition, runout_zone_definition)); zone : tolerance_zone; boundaries : SET [1:?] OF shape_aspect; END_ENTITY; -- 10303-47: shape_tolerance_schema ENTITY tolerance_zone_form; name : label; END_ENTITY; -- 10303-47: shape_tolerance_schema ENTITY topological_representation_item SUPERTYPE OF (ONEOF (vertex, edge, face_bound, face, connected_edge_set, connected_face_set, loop ANDOR path)) SUBTYPE OF (representation_item); END_ENTITY; -- 10303-42: topology_schema ENTITY toroidal_surface SUBTYPE OF (elementary_surface); major_radius : positive_length_measure; minor_radius : positive_length_measure; END_ENTITY; -- 10303-42: geometry_schema ENTITY torus SUBTYPE OF (geometric_representation_item); position : axis1_placement; major_radius : positive_length_measure; minor_radius : positive_length_measure; WHERE wr1 : major_radius > minor_radius; END_ENTITY; -- 10303-42: geometric_model_schema ENTITY total_runout_tolerance SUBTYPE OF (geometric_tolerance_with_datum_reference); WHERE wr1 : SIZEOF(SELF\geometric_tolerance_with_datum_reference.datum_system) <= 2 ; END_ENTITY; -- 10303-519: aic_geometric_tolerances ENTITY transition_feature SUBTYPE OF (shape_aspect); WHERE wr1 : 'AUTOMOTIVE_DESIGN.' + 'PRODUCT_DEFINITION' IN TYPEOF(SELF.of_shape. definition); wr2 : SIZEOF(['AUTOMOTIVE_DESIGN.' + 'CHAMFER', 'AUTOMOTIVE_DESIGN.' + 'EDGE_ROUND', 'AUTOMOTIVE_DESIGN.' + 'FILLET'] * TYPEOF(SELF)) = 1; END_ENTITY; -- 10303-214: automotive_design 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; -- 10303-42: geometry_schema ENTITY two_direction_repeat_factor SUBTYPE OF (one_direction_repeat_factor); second_repeat_factor : vector; END_ENTITY; -- 10303-46: presentation_appearance_schema ENTITY type_qualifier; name : label; END_ENTITY; -- 10303-45: qualified_measure_schema ENTITY unary_boolean_expression ABSTRACT SUPERTYPE OF (ONEOF (not_expression, odd_function)) SUBTYPE OF (boolean_expression, unary_generic_expression); END_ENTITY; (* declared in: iso13584_expressions_schema *) ENTITY unary_function_call ABSTRACT SUPERTYPE OF (ONEOF (abs_function, minus_function, sin_function, cos_function, tan_function, asin_function, acos_function, exp_function, log_function, log2_function, log10_function, square_root_function)) SUBTYPE OF (unary_numeric_expression); END_ENTITY; (* declared in: iso13584_expressions_schema *) ENTITY unary_generic_expression ABSTRACT SUPERTYPE SUBTYPE OF (generic_expression); operand : generic_expression; END_ENTITY; (* declared in: iso13584_generic_expressions_schema *) ENTITY unary_numeric_expression ABSTRACT SUPERTYPE OF (ONEOF (unary_function_call)) SUBTYPE OF (numeric_expression, unary_generic_expression); SELF\unary_generic_expression.operand : numeric_expression; END_ENTITY; (* declared in: iso13584_expressions_schema *) ENTITY uncertainty_assigned_representation SUBTYPE OF (representation); uncertainty : SET [1:?] OF uncertainty_measure_with_unit; END_ENTITY; -- 10303-43: representation_schema ENTITY uncertainty_measure_with_unit SUBTYPE OF (measure_with_unit); name : label; description : OPTIONAL text; WHERE wr1 : valid_measure_value(SELF\measure_with_unit.value_component); END_ENTITY; -- 10303-43: representation_schema ENTITY uncertainty_qualifier SUPERTYPE OF (ONEOF (standard_uncertainty, qualitative_uncertainty)); measure_name : label; description : text; END_ENTITY; -- 10303-45: qualified_measure_schema ENTITY unconstrained_pair SUBTYPE OF (kinematic_pair); END_ENTITY; -- 10303-105: kinematic_structure_schema ENTITY unconstrained_pair_value SUBTYPE OF (pair_value); SELF\pair_value.applies_to_pair : unconstrained_pair; actual_placement : axis2_placement_3d; END_ENTITY; -- 10303-105: kinematic_structure_schema ENTITY uniform_curve SUBTYPE OF (b_spline_curve); END_ENTITY; -- 10303-42: geometry_schema ENTITY uniform_surface SUBTYPE OF (b_spline_surface); END_ENTITY; -- 10303-42: geometry_schema ENTITY universal_pair SUBTYPE OF (kinematic_pair); input_skew_angle : OPTIONAL plane_angle_measure; DERIVE 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; -- 10303-105: kinematic_structure_schema ENTITY universal_pair_range SUBTYPE OF (simple_pair_range); SELF\simple_pair_range.applies_to_pair : universal_pair; lower_limit_first_rotation : rotational_range_measure; upper_limit_first_rotation : rotational_range_measure; lower_limit_second_rotation : rotational_range_measure; upper_limit_second_rotation : rotational_range_measure; WHERE wr1 : ('AUTOMOTIVE_DESIGN.UNLIMITED_RANGE' IN TYPEOF( lower_limit_first_rotation)) OR ('AUTOMOTIVE_DESIGN.UNLIMITED_RANGE' IN TYPEOF(upper_limit_first_rotation)) XOR (lower_limit_first_rotation < upper_limit_first_rotation); wr2 : ('AUTOMOTIVE_DESIGN.UNLIMITED_RANGE' IN TYPEOF( lower_limit_second_rotation)) OR ('AUTOMOTIVE_DESIGN.UNLIMITED_RANGE' IN TYPEOF(upper_limit_second_rotation)) XOR (lower_limit_second_rotation < upper_limit_second_rotation); END_ENTITY; -- 10303-105: kinematic_structure_schema ENTITY universal_pair_value SUBTYPE OF (pair_value); SELF\pair_value.applies_to_pair : universal_pair; first_rotation_angle : plane_angle_measure; second_rotation_angle : plane_angle_measure; END_ENTITY; -- 10303-105: kinematic_structure_schema ENTITY value_function SUPERTYPE OF (int_value_function) SUBTYPE OF (numeric_expression, unary_generic_expression); SELF\unary_generic_expression.operand : string_expression; END_ENTITY; (* declared in: iso13584_expressions_schema *) ENTITY value_range SUBTYPE OF (compound_representation_item); WHERE wr1 : ('AUTOMOTIVE_DESIGN.' + '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; -- 10303-214: automotive_design ENTITY value_representation_item SUBTYPE OF (representation_item); value_component : measure_value; WHERE wr1 : SIZEOF(QUERY(rep <* using_representations(SELF) | NOT ( 'AUTOMOTIVE_DESIGN.GLOBAL_UNIT_ASSIGNED_CONTEXT' IN TYPEOF(rep. context_of_items)))) = 0; END_ENTITY; -- 10303-43: representation_schema ENTITY variable ABSTRACT SUPERTYPE OF (ONEOF (numeric_variable, boolean_variable, string_variable)) SUBTYPE OF (generic_variable); END_ENTITY; (* declared in: iso13584_expressions_schema *) ENTITY variable_semantics ABSTRACT SUPERTYPE; END_ENTITY; (* declared in: iso13584_generic_expressions_schema *) ENTITY vector SUBTYPE OF (geometric_representation_item); orientation : direction; magnitude : length_measure; WHERE wr1 : magnitude >= 0.0; END_ENTITY; -- 10303-42: geometry_schema ENTITY vector_style SUBTYPE OF (pre_defined_terminator_symbol, curve_style); END_ENTITY; -- 10303-214: automotive_design ENTITY vee_profile SUBTYPE OF (shape_aspect); WHERE wr1 : 'AUTOMOTIVE_DESIGN.' + 'FEATURE_COMPONENT_DEFINITION' IN TYPEOF(SELF .of_shape.definition); wr2 : SIZEOF(QUERY(pdr <* get_shape_aspect_property_definition_representations(SELF) | 'AUTOMOTIVE_DESIGN.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation))) = 1; wr3 : SIZEOF(QUERY(pdr <* get_shape_aspect_property_definition_representations(SELF) | ( 'AUTOMOTIVE_DESIGN.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation)) AND {3 <= SIZEOF(pdr.used_representation.items) <= 4})) = 1; wr4 : SIZEOF(QUERY(pdr <* get_shape_aspect_property_definition_representations(SELF) | ( 'AUTOMOTIVE_DESIGN.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation)) AND (SIZEOF(QUERY(i <* pdr.used_representation. items | NOT (i.name IN ['orientation', 'profile angle', 'tilt angle', 'profile radius']))) > 0))) = 0; wr5 : SIZEOF(QUERY(pdr <* get_shape_aspect_property_definition_representations(SELF) | ( 'AUTOMOTIVE_DESIGN.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation)) AND (SIZEOF(QUERY(i <* pdr.used_representation. items | ('AUTOMOTIVE_DESIGN.' + 'PLACEMENT' IN TYPEOF(i)) AND (i.name = 'orientation'))) = 1))) = 1; wr6 : SIZEOF(QUERY(pdr <* get_shape_aspect_property_definition_representations(SELF) | ( 'AUTOMOTIVE_DESIGN.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation)) AND (SIZEOF(QUERY(i <* pdr.used_representation. items | (SIZEOF(['AUTOMOTIVE_DESIGN.' + 'MEASURE_REPRESENTATION_ITEM', 'AUTOMOTIVE_DESIGN.' + 'PLANE_ANGLE_MEASURE_WITH_UNIT'] * TYPEOF(i)) = 2 ) AND (i.name = 'profile angle'))) = 1))) = 1; wr7 : SIZEOF(QUERY(pdr <* get_shape_aspect_property_definition_representations(SELF) | ( 'AUTOMOTIVE_DESIGN.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation)) AND (SIZEOF(QUERY(i <* pdr.used_representation. items | (SIZEOF(['AUTOMOTIVE_DESIGN.' + 'MEASURE_REPRESENTATION_ITEM', 'AUTOMOTIVE_DESIGN.' + 'PLANE_ANGLE_MEASURE_WITH_UNIT'] * TYPEOF(i)) = 2 ) AND (i.name = 'tilt angle'))) = 1))) = 1; wr8 : (SIZEOF(QUERY(pdr <* get_shape_aspect_property_definition_representations(SELF) | ( 'AUTOMOTIVE_DESIGN.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation)) AND (SIZEOF(QUERY(i <* pdr.used_representation. items | i.name = 'profile radius')) = 1))) <= 1) AND (SIZEOF(QUERY(pdr <* get_shape_aspect_property_definition_representations(SELF) | ( 'AUTOMOTIVE_DESIGN.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation)) AND (SIZEOF(QUERY(i <* pdr.used_representation. items | (i.name = 'profile radius') AND ('AUTOMOTIVE_DESIGN.' + 'MEASURE_REPRESENTATION_ITEM' IN TYPEOF(i)) AND ('AUTOMOTIVE_DESIGN.' + 'LENGTH_MEASURE_WITH_UNIT' IN TYPEOF(i)))) = 1))) <= 1); wr9 : (SIZEOF(QUERY(pdr <* get_shape_aspect_property_definition_representations(SELF) | 'AUTOMOTIVE_DESIGN.' + 'PLANAR_SHAPE_REPRESENTATION' IN TYPEOF(pdr. used_representation))) <= 1) AND (SIZEOF(QUERY(pdr <* get_shape_aspect_property_definition_representations(SELF) | ( 'AUTOMOTIVE_DESIGN.' + 'PLANAR_SHAPE_REPRESENTATION' IN TYPEOF(pdr. used_representation)) AND (pdr.used_representation.name = 'profile limit')) ) <= 1); END_ENTITY; -- 10303-214: automotive_design ENTITY versioned_action_request; id : identifier; version : label; purpose : text; description : OPTIONAL text; END_ENTITY; -- 10303-41: action_schema ENTITY versioned_action_request_relationship; id : identifier; name : label; description : OPTIONAL text; relating_versioned_action_request : versioned_action_request; related_versioned_action_request : versioned_action_request; END_ENTITY; -- 10303-41: action_schema ENTITY vertex SUBTYPE OF (topological_representation_item); END_ENTITY; -- 10303-42: topology_schema ENTITY vertex_loop SUBTYPE OF (loop); loop_vertex : vertex; END_ENTITY; -- 10303-42: topology_schema ENTITY vertex_point SUBTYPE OF (vertex, geometric_representation_item); vertex_geometry : point; END_ENTITY; -- 10303-42: topology_schema ENTITY view_volume SUBTYPE OF (founded_item); projection_type : central_or_parallel; projection_point : cartesian_point; view_plane_distance : length_measure; front_plane_distance : length_measure; front_plane_clipping : BOOLEAN; back_plane_distance : length_measure; back_plane_clipping : BOOLEAN; view_volume_sides_clipping : BOOLEAN; view_window : planar_box; END_ENTITY; -- 10303-46: presentation_organization_schema ENTITY visual_appearance_representation SUBTYPE OF (representation); WHERE wr1 : {2 <= SIZEOF(SELF.items) <= 5} AND (SIZEOF(QUERY(i <* items | ( 'AUTOMOTIVE_DESIGN.' + 'DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF(i)) AND (i.name IN ['colour id', 'colour name', 'lustre', 'pattern', 'transparency']))) = 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(USEDIN(SELF, 'AUTOMOTIVE_DESIGN.PROPERTY_DEFINITION_REPRESENTATION.USED_REPRESENTATION' )) = 1) AND (SIZEOF(QUERY(pdr <* USEDIN(SELF, 'AUTOMOTIVE_DESIGN.PROPERTY_DEFINITION_REPRESENTATION.USED_REPRESENTATION' ) | SIZEOF(QUERY(gpa <* USEDIN(pdr.definition, 'AUTOMOTIVE_DESIGN.GENERAL_PROPERTY_ASSOCIATION.DERIVED_DEFINITION') | ( 'AUTOMOTIVE_DESIGN.' + 'GENERAL_PROPERTY' IN TYPEOF(gpa.base_definition) ) AND (gpa.base_definition.name = 'surface_texture'))) = 1)) = 1); END_ENTITY; -- 10303-214: automotive_design ENTITY volume_measure_with_unit SUBTYPE OF (measure_with_unit); WHERE wr1 : 'AUTOMOTIVE_DESIGN.VOLUME_UNIT' IN TYPEOF(SELF\measure_with_unit. unit_component); END_ENTITY; -- 10303-41: measure_schema ENTITY volume_unit SUBTYPE OF (named_unit); WHERE wr1 : (SELF\named_unit.dimensions.length_exponent = 3.000000) AND (SELF\ named_unit.dimensions.mass_exponent = 0.000000) AND (SELF\named_unit .dimensions.time_exponent = 0.000000) AND (SELF\named_unit.dimensions. electric_current_exponent = 0.000000) AND (SELF\named_unit.dimensions. thermodynamic_temperature_exponent = 0.000000) AND (SELF\named_unit. dimensions.amount_of_substance_exponent = 0.000000) AND (SELF\named_unit. dimensions.luminous_intensity_exponent = 0.000000); END_ENTITY; -- 10303-41: measure_schema ENTITY xor_expression SUBTYPE OF (binary_boolean_expression); SELF\binary_generic_expression.operands : LIST [2:2] OF boolean_expression; END_ENTITY; (* declared in: iso13584_expressions_schema *) FUNCTION acyclic(arg1 : generic_expression; arg2 : SET OF generic_expression) : BOOLEAN; LOCAL result : BOOLEAN; END_LOCAL; IF 'AUTOMOTIVE_DESIGN.SIMPLE_GENERIC_EXPRESSION' IN TYPEOF(arg1) THEN RETURN (TRUE); END_IF; IF arg1 IN arg2 THEN RETURN (FALSE); END_IF; IF 'AUTOMOTIVE_DESIGN.UNARY_GENERIC_EXPRESSION' IN TYPEOF(arg1) THEN RETURN (acyclic(arg1\unary_generic_expression.operand, arg2 + [arg1])); END_IF; IF 'AUTOMOTIVE_DESIGN.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 'AUTOMOTIVE_DESIGN.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; END_FUNCTION; (* declared in: iso13584_generic_expressions_schema *) FUNCTION acyclic_composite_text(start_composite : composite_text; child_text : SET [1:?] OF text_or_character) : LOGICAL; LOCAL i : INTEGER; local_composite_text : SET OF composite_text; local_annotation_text : SET OF annotation_text; local_children : SET OF text_or_character; END_LOCAL; local_composite_text := QUERY(child <* child_text | 'AUTOMOTIVE_DESIGN.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 | 'AUTOMOTIVE_DESIGN.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([ 'AUTOMOTIVE_DESIGN.ANNOTATION_TEXT', 'AUTOMOTIVE_DESIGN.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; -- 10303-46: presentation_definition_schema FUNCTION acyclic_curve_replica(rep : curve_replica; parent : curve) : BOOLEAN; IF NOT ('AUTOMOTIVE_DESIGN.CURVE_REPLICA' IN TYPEOF(parent)) THEN RETURN (TRUE); END_IF; IF parent :=: rep THEN RETURN (FALSE); ELSE RETURN (acyclic_curve_replica(rep, parent\curve_replica.parent_curve)); END_IF; END_FUNCTION; -- 10303-42: geometry_schema FUNCTION acyclic_mapped_item_usage(rep : representation) : BOOLEAN; LOCAL items : SET OF representation_item; END_LOCAL; items := QUERY(item <* rep.items | 'AUTOMOTIVE_DESIGN.MAPPED_ITEM' IN TYPEOF(item)); IF SIZEOF(items) = 0 THEN RETURN (FALSE); ELSE REPEAT i := 1 TO HIINDEX(items); IF items[i]\mapped_item.mapping_source.mapped_representation :=: rep THEN RETURN (TRUE); ELSE RETURN (acyclic_mapped_item_usage(items[i]\mapped_item.mapping_source. mapped_representation)); END_IF; END_REPEAT; RETURN (FALSE); END_IF; END_FUNCTION; -- 10303-504: aic_draughting_annotation FUNCTION acyclic_mapped_representation(parent_set : SET OF representation; children_set : SET OF representation_item) : BOOLEAN; LOCAL x : SET OF representation_item; y : SET OF representation_item; END_LOCAL; x := QUERY(z <* children_set | 'AUTOMOTIVE_DESIGN.MAPPED_ITEM' IN TYPEOF(z )); IF SIZEOF(x) > 0 THEN REPEAT i := 1 TO HIINDEX(x); IF x[i]\mapped_item.mapping_source.mapped_representation IN parent_set THEN RETURN (FALSE); END_IF; IF NOT acyclic_mapped_representation(parent_set + x[i]\mapped_item. mapping_source.mapped_representation, x[i]\mapped_item.mapping_source. mapped_representation.items) THEN RETURN (FALSE); END_IF; END_REPEAT; END_IF; x := children_set - x; IF SIZEOF(x) > 0 THEN REPEAT i := 1 TO HIINDEX(x); y := QUERY(z <* bag_to_set(USEDIN(x[i], '')) | 'AUTOMOTIVE_DESIGN.REPRESENTATION_ITEM' IN TYPEOF(z)); IF NOT acyclic_mapped_representation(parent_set, y) THEN RETURN (FALSE); END_IF; END_REPEAT; END_IF; RETURN (TRUE); END_FUNCTION; -- 10303-43: representation_schema FUNCTION acyclic_point_replica(rep : point_replica; parent : point) : BOOLEAN; IF NOT ('AUTOMOTIVE_DESIGN.POINT_REPLICA' IN TYPEOF(parent)) THEN RETURN (TRUE); END_IF; IF parent :=: rep THEN RETURN (FALSE); ELSE RETURN (acyclic_point_replica(rep, parent\point_replica.parent_pt)); END_IF; END_FUNCTION; -- 10303-42: geometry_schema FUNCTION acyclic_product_category_relationship(relation : product_category_relationship; children : SET OF product_category) : BOOLEAN; LOCAL x : SET OF product_category_relationship; local_children : SET OF product_category; END_LOCAL; REPEAT i := 1 TO HIINDEX(children); IF relation.category :=: children[i] THEN RETURN (FALSE); END_IF; END_REPEAT; x := bag_to_set(USEDIN(relation.category, 'AUTOMOTIVE_DESIGN.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; -- 10303-41: product_definition_schema FUNCTION acyclic_product_definition_relationship(relation : product_definition_relationship; relatives : SET [1:?] OF product_definition ; specific_relation : STRING) : BOOLEAN; LOCAL x : SET OF product_definition_relationship; END_LOCAL; IF relation.relating_product_definition IN relatives THEN RETURN (FALSE); END_IF; x := QUERY(pd <* bag_to_set(USEDIN(relation.relating_product_definition, 'AUTOMOTIVE_DESIGN.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; -- 10303-41: product_definition_schema FUNCTION acyclic_solid_replica(rep : solid_replica; parent : solid_model) : BOOLEAN; IF NOT ('AUTOMOTIVE_DESIGN.SOLID_REPLICA' IN TYPEOF(parent)) THEN RETURN (TRUE); END_IF; IF parent :=: rep THEN RETURN (FALSE); ELSE RETURN (acyclic_solid_replica(rep, parent\solid_replica.parent_solid)); END_IF; END_FUNCTION; -- 10303-42: geometric_model_schema FUNCTION acyclic_surface_replica(rep : surface_replica; parent : surface) : BOOLEAN; IF NOT ('AUTOMOTIVE_DESIGN.SURFACE_REPLICA' IN TYPEOF(parent)) THEN RETURN (TRUE); END_IF; IF parent :=: rep THEN RETURN (FALSE); ELSE RETURN (acyclic_surface_replica(rep, parent\surface_replica.parent_surface) ); END_IF; END_FUNCTION; -- 10303-42: geometry_schema FUNCTION advanced_face_properties(testface : face) : BOOLEAN; IF 'AUTOMOTIVE_DESIGN.ADVANCED_FACE' IN TYPEOF(testface) THEN RETURN (TRUE); END_IF; IF 'AUTOMOTIVE_DESIGN.SUBFACE' IN TYPEOF(testface) THEN RETURN (advanced_face_properties(testface.parent_face)); ELSE RETURN (FALSE); END_IF; END_FUNCTION; -- 10303-521: aic_manifold_subsurface 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; -- 10303-46: presentation_organization_schema FUNCTION assembly_shape_is_defined(assy : next_assembly_usage_occurrence) : BOOLEAN; LOCAL sdr_set : SET OF shape_definition_representation := []; srr_set : SET OF shape_representation_relationship := []; sdr1_set : SET OF shape_definition_representation := []; pd_set : SET OF property_definition := []; pdr_set : SET OF product_definition_relationship := []; pds_set : SET OF product_definition_shape := []; prop_set : SET OF property_definition := []; END_LOCAL; pd_set := bag_to_set(USEDIN(assy.related_product_definition, 'AUTOMOTIVE_DESIGN.PROPERTY_DEFINITION.DEFINITION')); pdr_set := QUERY(pdr <* bag_to_set(USEDIN(assy.related_product_definition, 'AUTOMOTIVE_DESIGN.PRODUCT_DEFINITION_RELATIONSHIP.RELATED_PRODUCT_DEFINITION' )) | SIZEOF(USEDIN(pdr, 'AUTOMOTIVE_DESIGN.PROPERTY_DEFINITION.DEFINITION' )) > 0); IF SIZEOF(pd_set) > 0 THEN REPEAT i := 1 TO HIINDEX(pd_set); sdr_set := sdr_set + QUERY(pdr <* USEDIN(pd_set[i], 'AUTOMOTIVE_DESIGN.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | 'AUTOMOTIVE_DESIGN.SHAPE_DEFINITION_REPRESENTATION' IN TYPEOF(pdr)); END_REPEAT; END_IF; IF SIZEOF(pdr_set) > 0 THEN REPEAT i := 1 TO HIINDEX(pdr_set); prop_set := prop_set + bag_to_set(USEDIN(pdr_set[i], 'AUTOMOTIVE_DESIGN.PROPERTY_DEFINITION.DEFINITION')); END_REPEAT; IF SIZEOF(prop_set) > 0 THEN REPEAT i := 1 TO HIINDEX(prop_set); sdr_set := sdr_set + QUERY(pdr <* USEDIN(prop_set[i], 'AUTOMOTIVE_DESIGN.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | 'AUTOMOTIVE_DESIGN.SHAPE_DEFINITION_REPRESENTATION' IN TYPEOF(pdr )); END_REPEAT; END_IF; END_IF; IF SIZEOF(sdr_set) > 0 THEN REPEAT i := 1 TO HIINDEX(sdr_set); srr_set := QUERY(rr <* bag_to_set(USEDIN(sdr_set[i]\ property_definition_representation.used_representation, 'AUTOMOTIVE_DESIGN.REPRESENTATION_RELATIONSHIP.REP_2')) | 'AUTOMOTIVE_DESIGN.SHAPE_REPRESENTATION_RELATIONSHIP' IN TYPEOF(rr)); pd_set := bag_to_set(USEDIN(assy.relating_product_definition, 'AUTOMOTIVE_DESIGN.PROPERTY_DEFINITION.DEFINITION')); IF SIZEOF(pd_set) > 0 THEN REPEAT i := 1 TO HIINDEX(pd_set); sdr1_set := sdr1_set + QUERY(pdr <* USEDIN(pd_set[i], 'AUTOMOTIVE_DESIGN.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | 'AUTOMOTIVE_DESIGN.SHAPE_DEFINITION_REPRESENTATION' IN TYPEOF( pdr)); END_REPEAT; END_IF; IF (SIZEOF(sdr_set) > 0) AND (SIZEOF(sdr1_set) > 0) THEN IF SIZEOF(srr_set) > 0 THEN REPEAT j := 1 TO HIINDEX(srr_set); IF SIZEOF(QUERY(pdr <* bag_to_set(USEDIN(srr_set[j]\ representation_relationship.rep_1, 'AUTOMOTIVE_DESIGN.PROPERTY_DEFINITION_REPRESENTATION.USED_REPRESENTATION' )) | 'AUTOMOTIVE_DESIGN.SHAPE_DEFINITION_REPRESENTATION' IN TYPEOF(pdr)) * sdr1_set) >= 1 THEN pds_set := QUERY(x <* bag_to_set(USEDIN(assy, 'AUTOMOTIVE_DESIGN.PROPERTY_DEFINITION.DEFINITION')) | 'AUTOMOTIVE_DESIGN.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(x)); IF SIZEOF(pds_set) = 0 THEN RETURN (FALSE); END_IF; REPEAT k := 1 TO HIINDEX(pds_set); IF SIZEOF(QUERY(cdsr <* USEDIN(pds_set[k], 'AUTOMOTIVE_DESIGN.CONTEXT_DEPENDENT_SHAPE_REPRESENTATION.REPRESENTED_PRODUCT_RELATION' ) | cdsr.representation_relation :=: srr_set[j])) > 0 THEN RETURN (FALSE); END_IF; END_REPEAT; END_IF; END_REPEAT; END_IF; END_IF; END_REPEAT; END_IF; RETURN (TRUE); END_FUNCTION; -- 10303-214: automotive_design FUNCTION associated_surface(arg : pcurve_or_surface) : surface; LOCAL surf : surface; END_LOCAL; IF 'AUTOMOTIVE_DESIGN.PCURVE' IN TYPEOF(arg) THEN surf := arg.basis_surface; ELSE surf := arg; END_IF; RETURN (surf); END_FUNCTION; -- 10303-42: geometry_schema FUNCTION bag_to_set(the_bag : BAG OF GENERIC : intype) : SET OF GENERIC : intype; LOCAL the_set : SET OF GENERIC : intype := []; END_LOCAL; IF SIZEOF(the_bag) > 0 THEN REPEAT i := 1 TO HIINDEX(the_bag); the_set := the_set + the_bag[i]; END_REPEAT; END_IF; RETURN (the_set); END_FUNCTION; -- 10303-41: support_resource_schema FUNCTION base_axis(dim : INTEGER; axis1 : direction; axis2 : direction; axis3 : direction) : LIST [2:3] OF direction; LOCAL u : LIST [2:3] OF direction; factor : REAL; d1 : 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; -- 10303-42: geometry_schema 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; -- 10303-42: topology_schema FUNCTION build_2axes(ref_direction : direction) : LIST [2:2] OF direction; LOCAL d : direction := NVL(normalise(ref_direction), dummy_gri||direction([1.0 ])); END_LOCAL; RETURN ([d, orthogonal_complement(d)]); END_FUNCTION; -- 10303-42: geometry_schema 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)).orientation, d1]); END_FUNCTION; -- 10303-42: geometry_schema FUNCTION check_associative_shape_aspects(sdr : shape_definition_representation) : BOOLEAN; LOCAL sr1 : SET OF representation; sr2 : SET OF representation; dm : SET OF representation; pv : SET OF representation; END_LOCAL; IF SIZEOF(sdr.used_representation.items) <> 2 THEN RETURN (FALSE); END_IF; sr1 := using_representations(sdr.used_representation.items[1]); sr2 := using_representations(sdr.used_representation.items[2]); REPEAT i := 1 TO HIINDEX(sr1); dm := representations_mapped_into(sr1[i]); REPEAT j := 1 TO HIINDEX(dm); IF 'AUTOMOTIVE_DESIGN.DRAUGHTING_MODEL' IN TYPEOF(dm[j]) THEN IF dm[j] IN sr2 THEN RETURN (TRUE); END_IF; pv := representations_mapped_into(dm[j]); REPEAT k := 1 TO HIINDEX(pv); IF 'AUTOMOTIVE_DESIGN.PRESENTATION_VIEW' IN TYPEOF(pv[k]) THEN IF pv[k] IN sr2 THEN RETURN (TRUE); END_IF; END_IF; END_REPEAT; END_IF; END_REPEAT; END_REPEAT; REPEAT i := 1 TO HIINDEX(sr2); dm := representations_mapped_into(sr2[i]); REPEAT j := 1 TO HIINDEX(dm); IF 'AUTOMOTIVE_DESIGN.DRAUGHTING_MODEL' IN TYPEOF(dm[j]) THEN IF dm[j] IN sr1 THEN RETURN (TRUE); END_IF; pv := representations_mapped_into(dm[j]); REPEAT k := 1 TO HIINDEX(pv); IF 'AUTOMOTIVE_DESIGN.PRESENTATION_VIEW' IN TYPEOF(pv[k]) THEN IF pv[k] IN sr1 THEN RETURN (TRUE); END_IF; END_IF; END_REPEAT; END_IF; END_REPEAT; END_REPEAT; RETURN (FALSE); END_FUNCTION; -- 10303-520: aic_associative_draughting_elements 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; -- 10303-504: aic_draughting_annotation 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; -- 10303-504: aic_draughting_annotation FUNCTION closed_shell_reversed(a_shell : closed_shell) : oriented_closed_shell; LOCAL the_reverse : oriented_closed_shell; END_LOCAL; IF 'AUTOMOTIVE_DESIGN.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; -- 10303-42: topology_schema FUNCTION conditional_reverse(p : BOOLEAN; an_item : reversible_topology) : reversible_topology; IF p THEN RETURN (an_item); ELSE RETURN (topology_reversed(an_item)); END_IF; END_FUNCTION; -- 10303-42: topology_schema FUNCTION constraints_composite_curve_on_surface(c : composite_curve_on_surface) : BOOLEAN; LOCAL n_segments : INTEGER := SIZEOF(c.segments); END_LOCAL; REPEAT k := 1 TO n_segments; IF NOT ('AUTOMOTIVE_DESIGN.PCURVE' IN TYPEOF(c\composite_curve.segments[ k].parent_curve)) AND NOT ('AUTOMOTIVE_DESIGN.SURFACE_CURVE' IN TYPEOF(c \composite_curve.segments[k].parent_curve)) AND NOT ( 'AUTOMOTIVE_DESIGN.COMPOSITE_CURVE_ON_SURFACE' IN TYPEOF(c\ composite_curve.segments[k].parent_curve)) THEN RETURN (FALSE); END_IF; END_REPEAT; RETURN (TRUE); END_FUNCTION; -- 10303-42: geometry_schema FUNCTION constraints_geometry_shell_based_surface_model(m : shell_based_surface_model) : BOOLEAN; LOCAL result : BOOLEAN := TRUE; END_LOCAL; REPEAT j := 1 TO SIZEOF(m.sbsm_boundary); IF NOT ('AUTOMOTIVE_DESIGN.OPEN_SHELL' IN TYPEOF(m.sbsm_boundary[j])) AND NOT ('AUTOMOTIVE_DESIGN.CLOSED_SHELL' IN TYPEOF(m.sbsm_boundary[j])) THEN result := FALSE; RETURN (result); END_IF; END_REPEAT; RETURN (result); END_FUNCTION; -- 10303-42: geometric_model_schema FUNCTION constraints_param_b_spline(degree : INTEGER; up_knots : INTEGER; up_cp : INTEGER; knot_mult : LIST OF INTEGER; knots : LIST OF parameter_value) : BOOLEAN; LOCAL result : BOOLEAN := TRUE; k : INTEGER; sum : INTEGER; END_LOCAL; sum := knot_mult[1]; REPEAT i := 2 TO up_knots; sum := sum + knot_mult[i]; END_REPEAT; IF (degree < 1) OR (up_knots < 2) OR (up_cp < degree) OR (sum <> degree + up_cp + 2) THEN result := FALSE; RETURN (result); END_IF; k := knot_mult[1]; IF (k < 1) OR (k > degree + 1) THEN result := FALSE; RETURN (result); END_IF; REPEAT i := 2 TO up_knots; 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; -- 10303-42: geometry_schema FUNCTION constraints_rectangular_composite_surface(s : rectangular_composite_surface) : BOOLEAN; REPEAT i := 1 TO s.n_u; REPEAT j := 1 TO s.n_v; IF NOT (('AUTOMOTIVE_DESIGN.B_SPLINE_SURFACE' IN TYPEOF(s.segments[i][ j].parent_surface)) OR ( 'AUTOMOTIVE_DESIGN.RECTANGULAR_TRIMMED_SURFACE' IN TYPEOF(s.segments[i ][j].parent_surface))) THEN RETURN (FALSE); END_IF; END_REPEAT; END_REPEAT; REPEAT i := 1 TO s.n_u - 1; 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; -- 10303-42: geometry_schema FUNCTION control_characters_free(s : STRING) : BOOLEAN; LOCAL ch : STRING; END_LOCAL; REPEAT i := 1 TO LENGTH(s); ch := s[i]; IF (ch = '\x9') OR (ch = '\xA') OR (ch = '\xD') THEN RETURN (FALSE); END_IF; END_REPEAT; RETURN (TRUE); END_FUNCTION; (* declared in: presentation_definition_schema *) FUNCTION convert_plane_angle_for_pair_from_radian(pair : kinematic_pair; angle_expr : REAL) : plane_angle_measure; LOCAL link_rep : kinematic_link_representation := representation_of_link(pair.joint .first_link); link_cntxt : representation_context; pa_units : SET OF unit := []; pau : unit; conv_factor : REAL := 1.0; result : plane_angle_measure; END_LOCAL; link_cntxt := link_rep\representation.context_of_items; IF NOT ('AUTOMOTIVE_DESIGN.GLOBAL_UNIT_ASSIGNED_CONTEXT' IN TYPEOF( link_cntxt)) THEN RETURN (?); END_IF; pa_units := QUERY(unit <* link_cntxt\global_unit_assigned_context.units | 'AUTOMOTIVE_DESIGN.PLANE_ANGLE_UNIT' IN TYPEOF(unit)); IF SIZEOF(pa_units) <> 1 THEN RETURN (?); END_IF; pau := pa_units[1]; IF NOT ('AUTOMOTIVE_DESIGN.SI_UNIT' IN TYPEOF(pau)) AND NOT ( 'AUTOMOTIVE_DESIGN.CONVERSION_BASED_UNIT' IN TYPEOF(pau)) THEN RETURN (?); END_IF; REPEAT WHILE 'AUTOMOTIVE_DESIGN.CONVERSION_BASED_UNIT' IN TYPEOF(pau); conv_factor := conv_factor * pau\conversion_based_unit.conversion_factor. value_component; pau := pau\conversion_based_unit.conversion_factor.unit_component; IF NOT ('AUTOMOTIVE_DESIGN.SI_UNIT' IN TYPEOF(pau)) AND NOT ( 'AUTOMOTIVE_DESIGN.CONVERSION_BASED_UNIT' IN TYPEOF(pau)) OR NOT ( 'AUTOMOTIVE_DESIGN.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 : conv_factor := 1.E18 * conv_factor; si_prefix.peta : conv_factor := 1.E15 * conv_factor; si_prefix.tera : conv_factor := 1.E12 * conv_factor; si_prefix.giga : conv_factor := 1.E9 * conv_factor; si_prefix.mega : conv_factor := 1.E6 * conv_factor; si_prefix.kilo : conv_factor := 1.E3 * conv_factor; si_prefix.hecto : conv_factor := 1.E2 * conv_factor; si_prefix.deca : conv_factor := 1.E1 * conv_factor; si_prefix.deci : conv_factor := 1.E-1 * conv_factor; si_prefix.centi : conv_factor := 1.E-2 * conv_factor; si_prefix.milli : conv_factor := 1.E-3 * conv_factor; si_prefix.micro : conv_factor := 1.E-6 * conv_factor; si_prefix.nano : conv_factor := 1.E-9 * conv_factor; si_prefix.pico : conv_factor := 1.E-12 * conv_factor; si_prefix.femto : conv_factor := 1.E-15 * conv_factor; si_prefix.atto : conv_factor := 1.E-18 * conv_factor; END_CASE; result := angle_expr/conv_factor; RETURN (result); END_FUNCTION; -- 10303-105: kinematic_structure_schema 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 'AUTOMOTIVE_DESIGN.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 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 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; ELSE 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_IF; ya := ya * ucf; pa := pa * ucf; ra := ra * ucf; RETURN ([ya, pa, ra]); END_FUNCTION; -- 10303-105: kinematic_structure_schema FUNCTION coordinated_pair_link_representation(link : kinematic_link; pair_placement : rigid_placement) : BOOLEAN; LOCAL link_rep : kinematic_link_representation; END_LOCAL; link_rep := representation_of_link(link); IF link_rep = ? THEN RETURN (FALSE); ELSE IF NOT (pair_placement IN link_rep\representation.items) THEN RETURN (FALSE); ELSE RETURN (TRUE); END_IF; END_IF; END_FUNCTION; -- 10303-105: kinematic_structure_schema 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 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_IF; END_FUNCTION; -- 10303-42: geometry_schema FUNCTION curve_weights_positive(b : rational_b_spline_curve) : BOOLEAN; LOCAL result : BOOLEAN := TRUE; END_LOCAL; REPEAT i := 0 TO b.upper_index_on_control_points; IF b.weights[i] <= 0.0 THEN result := FALSE; RETURN (result); END_IF; END_REPEAT; RETURN (result); END_FUNCTION; -- 10303-42: geometry_schema FUNCTION default_tolerance_table_cell_wr2(agg : AGGREGATE OF representation_item) : BOOLEAN; IF SIZEOF(agg) <= 5 THEN RETURN (TRUE); ELSE RETURN (FALSE); END_IF; END_FUNCTION; -- 10303-214: automotive_design FUNCTION default_tolerance_table_cell_wr3(agg : AGGREGATE OF representation_item) : BOOLEAN; IF (SIZEOF(QUERY(i <* agg | ( 'AUTOMOTIVE_DESIGN.MEASURE_REPRESENTATION_ITEM' IN TYPEOF(i)) AND (i\ representation_item.name = 'significant number of digits'))) = 1) OR (SIZEOF( QUERY(i <* agg | ('AUTOMOTIVE_DESIGN.MEASURE_REPRESENTATION_ITEM' IN TYPEOF(i)) AND (i\representation_item.name = 'lower limit'))) = 1) AND ( SIZEOF(QUERY(i <* agg | ('AUTOMOTIVE_DESIGN.MEASURE_REPRESENTATION_ITEM' IN TYPEOF(i)) AND (i\representation_item.name = 'upper limit'))) = 1) THEN RETURN (TRUE); ELSE RETURN (FALSE); END_IF; END_FUNCTION; -- 10303-214: automotive_design FUNCTION default_tolerance_table_cell_wr4(agg : AGGREGATE OF representation_item) : BOOLEAN; IF (SIZEOF(QUERY(i <* agg | ( 'AUTOMOTIVE_DESIGN.MEASURE_REPRESENTATION_ITEM' IN TYPEOF(i)) AND (i\ representation_item.name = 'plus minus tolerance value'))) = 1) OR (SIZEOF( QUERY(i <* agg | ('AUTOMOTIVE_DESIGN.MEASURE_REPRESENTATION_ITEM' IN TYPEOF(i)) AND (i\representation_item.name = 'lower tolerance value'))) = 1) AND (SIZEOF(QUERY(i <* agg | ( 'AUTOMOTIVE_DESIGN.MEASURE_REPRESENTATION_ITEM' IN TYPEOF(i)) AND (i\ representation_item.name = 'upper tolerance value'))) = 1) THEN RETURN (TRUE); ELSE RETURN (FALSE); END_IF; END_FUNCTION; -- 10303-214: automotive_design FUNCTION default_tolerance_table_cell_wr5(agg : AGGREGATE OF representation_item) : BOOLEAN; IF (SIZEOF(QUERY(i <* agg | 'AUTOMOTIVE_DESIGN.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF(i))) <= 1) AND (SIZEOF(QUERY(i <* agg | 'AUTOMOTIVE_DESIGN.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF(i))) = SIZEOF(QUERY(i <* agg | ( 'AUTOMOTIVE_DESIGN.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF(i)) AND (i\ representation_item.name = 'cell description')))) THEN RETURN (TRUE); ELSE RETURN (FALSE); END_IF; END_FUNCTION; -- 10303-214: automotive_design FUNCTION dependently_instantiated(set_of_input_instances : SET OF GENERIC; set_of_input_types : SET OF STRING; previous_in_chain : LIST OF GENERIC) : BOOLEAN; (* generated by longform-generator *) LOCAL number_of_input_instances : INTEGER; number_of_referring_instances : INTEGER; bag_of_referring_instances : BAG OF GENERIC := []; dependently_instantiated_flag : BOOLEAN; previous_in_chain_plus : LIST OF GENERIC := []; recursion : BOOLEAN; 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 EXISTS(previous_in_chain) THEN recursion := TRUE; REPEAT k := 1 TO SIZEOF(previous_in_chain); IF previous_in_chain[k] :=: bag_of_referring_instances[j] THEN recursion := FALSE; ESCAPE; END_IF; END_REPEAT; END_IF; IF recursion 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_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 'AUTOMOTIVE_DESIGN.DERIVED_UNIT' IN TYPEOF(x) THEN REPEAT i := LOINDEX(x.elements) TO HIINDEX(x.elements); result.length_exponent := result.length_exponent + x.elements[i].exponent * x.elements[i].unit.dimensions.length_exponent; result.mass_exponent := result.mass_exponent + x.elements[i].exponent * x .elements[i].unit.dimensions.mass_exponent; result.time_exponent := result.time_exponent + x.elements[i].exponent * x .elements[i].unit.dimensions.time_exponent; result.electric_current_exponent := result.electric_current_exponent + x. elements[i].exponent * x.elements[i].unit.dimensions. electric_current_exponent; result.thermodynamic_temperature_exponent := result. thermodynamic_temperature_exponent + x.elements[i].exponent * x.elements[ i].unit.dimensions.thermodynamic_temperature_exponent; result.amount_of_substance_exponent := result. amount_of_substance_exponent + x.elements[i].exponent * x.elements[i]. unit.dimensions.amount_of_substance_exponent; result.luminous_intensity_exponent := result.luminous_intensity_exponent + x.elements[i].exponent * x.elements[i].unit.dimensions. luminous_intensity_exponent; END_REPEAT; ELSE result := x.dimensions; END_IF; RETURN (result); END_FUNCTION; -- 10303-41: measure_schema FUNCTION dimension_of(item : geometric_representation_item) : dimension_count; LOCAL x : SET OF representation; y : representation_context; dim : dimension_count; END_LOCAL; IF 'AUTOMOTIVE_DESIGN.CARTESIAN_POINT' IN TYPEOF(item) THEN dim := SIZEOF(item\cartesian_point.coordinates); RETURN (dim); END_IF; IF 'AUTOMOTIVE_DESIGN.DIRECTION' IN TYPEOF(item) THEN dim := SIZEOF(item\direction.direction_ratios); RETURN (dim); END_IF; IF 'AUTOMOTIVE_DESIGN.VECTOR' IN TYPEOF(item) THEN dim := SIZEOF(item\vector.orientation\direction.direction_ratios); RETURN (dim); END_IF; x := using_representations(item); y := x[1].context_of_items; dim := y\geometric_representation_context.coordinate_space_dimension; RETURN (dim); END_FUNCTION; -- 10303-42: geometry_schema FUNCTION dimensions_for_si_unit(n : si_unit_name) : dimensional_exponents; CASE n OF metre : RETURN (dimensional_exponents(1.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000)); gram : RETURN (dimensional_exponents(0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000)); second : RETURN (dimensional_exponents(0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 0.000000)); ampere : RETURN (dimensional_exponents(0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000)); kelvin : RETURN (dimensional_exponents(0.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000)); mole : RETURN (dimensional_exponents(0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000)); candela : RETURN (dimensional_exponents(0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 1.000000)); radian : RETURN (dimensional_exponents(0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000)); steradian : RETURN (dimensional_exponents(0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000)); hertz : RETURN (dimensional_exponents(0.000000, 0.000000, -1.000000, 0.000000, 0.000000, 0.000000, 0.000000)); newton : RETURN (dimensional_exponents(1.000000, 1.000000, -2.000000, 0.000000, 0.000000, 0.000000, 0.000000)); pascal : RETURN (dimensional_exponents(-1.000000, 1.000000, -2.000000, 0.000000, 0.000000, 0.000000, 0.000000)); joule : RETURN (dimensional_exponents(2.000000, 1.000000, -2.000000, 0.000000, 0.000000, 0.000000, 0.000000)); watt : RETURN (dimensional_exponents(2.000000, 1.000000, -3.000000, 0.000000, 0.000000, 0.000000, 0.000000)); coulomb : RETURN (dimensional_exponents(0.000000, 0.000000, 1.000000, 1.000000, 0.000000, 0.000000, 0.000000)); volt : RETURN (dimensional_exponents(2.000000, 1.000000, -3.000000, -1.000000, 0.000000, 0.000000, 0.000000)); farad : RETURN (dimensional_exponents(-2.000000, -1.000000, 4.000000, 1.000000, 0.000000, 0.000000, 0.000000)); ohm : RETURN (dimensional_exponents(2.000000, 1.000000, -3.000000, -2.000000, 0.000000, 0.000000, 0.000000)); siemens : RETURN (dimensional_exponents(-2.000000, -1.000000, 3.000000, 2.000000, 0.000000, 0.000000, 0.000000)); weber : RETURN (dimensional_exponents(2.000000, 1.000000, -2.000000, -1.000000, 0.000000, 0.000000, 0.000000)); tesla : RETURN (dimensional_exponents(0.000000, 1.000000, -2.000000, -1.000000, 0.000000, 0.000000, 0.000000)); henry : RETURN (dimensional_exponents(2.000000, 1.000000, -2.000000, -2.000000, 0.000000, 0.000000, 0.000000)); degree_celsius : RETURN (dimensional_exponents(0.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000)); lumen : RETURN (dimensional_exponents(0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 1.000000)); lux : RETURN (dimensional_exponents(-2.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 1.000000)); becquerel : RETURN (dimensional_exponents(0.000000, 0.000000, -1.000000, 0.000000, 0.000000, 0.000000, 0.000000)); gray : RETURN (dimensional_exponents(2.000000, 0.000000, -2.000000, 0.000000, 0.000000, 0.000000, 0.000000)); sievert : RETURN (dimensional_exponents(2.000000, 0.000000, -2.000000, 0.000000, 0.000000, 0.000000, 0.000000)); OTHERWISE : RETURN (?); END_CASE; END_FUNCTION; -- 10303-41: measure_schema 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 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_IF; END_IF; RETURN (scalar); END_FUNCTION; -- 10303-42: geometry_schema FUNCTION edge_reversed(an_edge : edge) : oriented_edge; LOCAL the_reverse : oriented_edge; END_LOCAL; IF 'AUTOMOTIVE_DESIGN.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; -- 10303-42: topology_schema FUNCTION face_bound_reversed(a_face_bound : face_bound) : face_bound; LOCAL the_reverse : face_bound; END_LOCAL; IF 'AUTOMOTIVE_DESIGN.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; -- 10303-42: topology_schema FUNCTION face_reversed(a_face : face) : oriented_face; LOCAL the_reverse : oriented_face; END_LOCAL; IF 'AUTOMOTIVE_DESIGN.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; -- 10303-42: topology_schema FUNCTION first_proj_axis(z_axis : direction; arg : direction) : direction; LOCAL x_axis : direction; v : direction; z : direction; x_vec : vector; END_LOCAL; IF NOT EXISTS(z_axis) THEN RETURN (?); ELSE z := normalise(z_axis); IF NOT EXISTS(arg) THEN IF (z.direction_ratios <> [1.0, 0.0, 0.0]) AND (z.direction_ratios <> [- 1.0, 0.0, 0.0]) THEN v := dummy_gri||direction([1.0, 0.0, 0.0]); ELSE v := dummy_gri||direction([0.0, 1.0, 0.0]); END_IF; ELSE IF arg.dim <> 3 THEN RETURN (?); END_IF; IF cross_product(arg, z).magnitude = 0.0 THEN RETURN (?); ELSE v := normalise(arg); END_IF; END_IF; x_vec := scalar_times_vector(dot_product(v, z), z); x_axis := vector_difference(v, x_vec).orientation; x_axis := normalise(x_axis); END_IF; RETURN (x_axis); END_FUNCTION; -- 10303-42: geometry_schema FUNCTION frame_associated_to_background(frame : rigid_placement; background : kinematic_frame_background) : BOOLEAN; LOCAL rep_bag : BAG OF kinematic_frame_background_representation; trf_bag : BAG OF kinematic_frame_based_transformation; trm_bag : BAG OF kinematic_frame_based_transformation; ass_bag : BAG OF kinematic_frame_background_representation_association; rep : kinematic_frame_background_representation; ass : kinematic_frame_background_representation_association; END_LOCAL; rep_bag := QUERY(bg <* USEDIN(background, 'AUTOMOTIVE_DESIGN.REPRESENTATION.ITEMS') | 'AUTOMOTIVE_DESIGN.' + 'KINEMATIC_FRAME_BACKGROUND_REPRESENTATION' IN TYPEOF(bg)); IF SIZEOF(rep_bag) = 0 THEN RETURN (FALSE); END_IF; trf_bag := USEDIN(frame, 'AUTOMOTIVE_DESIGN.KINEMATIC_FRAME_BASED_TRANSFORMATION.TRANSFORMATOR'); IF SIZEOF(trf_bag) = 0 THEN RETURN (FALSE); END_IF; REPEAT i := 1 TO HIINDEX(rep_bag); rep := rep_bag[i]; ass_bag := QUERY(kfbra <* USEDIN(rep, 'AUTOMOTIVE_DESIGN.REPRESENTATION_RELATIONSHIP.REP_2') | 'AUTOMOTIVE_DESIGN.' + 'KINEMATIC_FRAME_BACKGROUND_REPRESENTATION_ASSOCIATION' IN TYPEOF(kfbra)); IF SIZEOF(ass_bag) > 0 THEN REPEAT j := 1 TO HIINDEX(ass_bag); ass := ass_bag[j]; trm_bag := QUERY(trm <* trf_bag | trm :=: ass\ representation_relationship_with_transformation.transformation_operator ); IF SIZEOF(trm_bag) > 0 THEN RETURN (TRUE); END_IF; END_REPEAT; END_IF; END_REPEAT; RETURN (FALSE); END_FUNCTION; -- 10303-105: kinematic_structure_schema FUNCTION gbsf_check_curve(cv : representation_item) : BOOLEAN; IF SIZEOF(['AUTOMOTIVE_DESIGN.BOUNDED_CURVE', 'AUTOMOTIVE_DESIGN.CONIC' , 'AUTOMOTIVE_DESIGN.CURVE_REPLICA', 'AUTOMOTIVE_DESIGN.LINE', 'AUTOMOTIVE_DESIGN.OFFSET_CURVE_3D'] * TYPEOF(cv)) > 1 THEN RETURN (FALSE); END_IF; IF SIZEOF(['AUTOMOTIVE_DESIGN.CIRCLE', 'AUTOMOTIVE_DESIGN.ELLIPSE', 'AUTOMOTIVE_DESIGN.TRIMMED_CURVE'] * TYPEOF(cv)) = 1 THEN RETURN (TRUE); ELSE IF ('AUTOMOTIVE_DESIGN.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 ('AUTOMOTIVE_DESIGN.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 'AUTOMOTIVE_DESIGN.CURVE_REPLICA' IN TYPEOF(cv) THEN RETURN (gbsf_check_curve(cv\curve_replica.parent_curve)); ELSE IF ('AUTOMOTIVE_DESIGN.OFFSET_CURVE_3D' IN TYPEOF(cv)) AND ((cv\ offset_curve_3d.self_intersect = FALSE) OR (cv\offset_curve_3d .self_intersect = UNKNOWN)) AND NOT ('AUTOMOTIVE_DESIGN.POLYLINE' IN TYPEOF(cv\offset_curve_3d.basis_curve)) THEN RETURN (gbsf_check_curve(cv\offset_curve_3d.basis_curve)); ELSE IF 'AUTOMOTIVE_DESIGN.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 'AUTOMOTIVE_DESIGN.POLYLINE' IN TYPEOF(cv) THEN IF SIZEOF(cv\polyline.points) >= 3 THEN RETURN (TRUE); END_IF; ELSE IF 'AUTOMOTIVE_DESIGN.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 'AUTOMOTIVE_DESIGN.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 'AUTOMOTIVE_DESIGN.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; -- 10303-507: aic_geometrically_bounded_surface FUNCTION gbsf_check_point(pnt : point) : BOOLEAN; IF 'AUTOMOTIVE_DESIGN.CARTESIAN_POINT' IN TYPEOF(pnt) THEN RETURN (TRUE); ELSE IF 'AUTOMOTIVE_DESIGN.POINT_ON_CURVE' IN TYPEOF(pnt) THEN RETURN (gbsf_check_curve(pnt\point_on_curve.basis_curve)); ELSE IF 'AUTOMOTIVE_DESIGN.POINT_ON_SURFACE' IN TYPEOF(pnt) THEN RETURN (gbsf_check_surface(pnt\point_on_surface.basis_surface)); ELSE IF 'AUTOMOTIVE_DESIGN.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; -- 10303-507: aic_geometrically_bounded_surface FUNCTION gbsf_check_surface(sf : surface) : BOOLEAN; IF ('AUTOMOTIVE_DESIGN.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(['AUTOMOTIVE_DESIGN.SPHERICAL_SURFACE', 'AUTOMOTIVE_DESIGN.TOROIDAL_SURFACE', 'AUTOMOTIVE_DESIGN.CURVE_BOUNDED_SURFACE', 'AUTOMOTIVE_DESIGN.RECTANGULAR_TRIMMED_SURFACE'] * TYPEOF(sf)) = 1 THEN RETURN (TRUE); ELSE IF ('AUTOMOTIVE_DESIGN.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 'AUTOMOTIVE_DESIGN.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 'AUTOMOTIVE_DESIGN.SURFACE_REPLICA' IN TYPEOF(sf) THEN RETURN (gbsf_check_surface(sf\surface_replica.parent_surface)); ELSE IF 'AUTOMOTIVE_DESIGN.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; -- 10303-507: aic_geometrically_bounded_surface 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 'AUTOMOTIVE_DESIGN.PCURVE' IN TYPEOF(c) THEN surfs := [c\pcurve.basis_surface]; ELSE IF 'AUTOMOTIVE_DESIGN.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 'AUTOMOTIVE_DESIGN.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; -- 10303-42: geometry_schema FUNCTION get_description_value(obj : description_attribute_select) : text; LOCAL description_bag : BAG OF description_attribute := USEDIN(obj, 'AUTOMOTIVE_DESIGN.DESCRIPTION_ATTRIBUTE.DESCRIBED_ITEM'); END_LOCAL; IF SIZEOF(description_bag) = 1 THEN RETURN (description_bag[1].attribute_value); ELSE RETURN (?); END_IF; END_FUNCTION; -- 10303-41: basic_attribute_schema FUNCTION get_diameter_for_round_hole(rh : round_hole) : REAL; LOCAL sa_set : SET OF shape_aspect; sar_set : SET OF shape_aspect_relationship; pdr_set : SET OF property_definition_representation; ri_set : SET OF representation_item; END_LOCAL; sa_set := get_shape_aspects(rh); REPEAT i := 1 TO HIINDEX(sa_set); IF sa_set[i].description = 'diameter occurrence' THEN sar_set := bag_to_set(USEDIN(sa_set[i], 'AUTOMOTIVE_DESIGN.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT')); REPEAT j := 1 TO HIINDEX(sar_set); IF (sar_set[j].name = 'diameter') AND (sar_set[j].description = 'profile usage') AND ( 'AUTOMOTIVE_DESIGN.SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF(sar_set[j] )) AND ('AUTOMOTIVE_DESIGN.CIRCULAR_CLOSED_PROFILE' IN TYPEOF( sar_set[j].relating_shape_aspect)) THEN pdr_set := get_shape_aspect_property_definition_representations( sar_set[j].relating_shape_aspect); REPEAT k := 1 TO HIINDEX(pdr_set); IF 'AUTOMOTIVE_DESIGN.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr_set[k].used_representation) THEN ri_set := pdr_set[k].used_representation.items; REPEAT l := 1 TO HIINDEX(ri_set); IF ('AUTOMOTIVE_DESIGN.MEASURE_REPRESENTATION_ITEM' IN TYPEOF(ri_set[l])) AND ( 'AUTOMOTIVE_DESIGN.LENGTH_MEASURE_WITH_UNIT' IN TYPEOF( ri_set[l])) THEN RETURN (ri_set[l]\measure_with_unit.value_component); END_IF; END_REPEAT; END_IF; END_REPEAT; END_IF; END_REPEAT; END_IF; END_REPEAT; RETURN (?); END_FUNCTION; -- 10303-214: automotive_design FUNCTION get_id_value(obj : id_attribute_select) : identifier; LOCAL id_bag : BAG OF id_attribute := USEDIN(obj, 'AUTOMOTIVE_DESIGN.ID_ATTRIBUTE.IDENTIFIED_ITEM'); END_LOCAL; IF SIZEOF(id_bag) = 1 THEN RETURN (id_bag[1].attribute_value); ELSE RETURN (?); END_IF; END_FUNCTION; -- 10303-41: basic_attribute_schema FUNCTION get_multi_language(x : multi_language_attribute_assignment) : label; LOCAL alas : BAG OF attribute_language_assignment := USEDIN(x, 'AUTOMOTIVE_DESIGN.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS'); END_LOCAL; IF SIZEOF(alas) > 0 THEN RETURN (alas[1].language); END_IF; RETURN (?); END_FUNCTION; -- 10303-214: automotive_design FUNCTION get_name_value(obj : name_attribute_select) : label; LOCAL name_bag : BAG OF name_attribute := USEDIN(obj, 'AUTOMOTIVE_DESIGN.NAME_ATTRIBUTE.NAMED_ITEM'); END_LOCAL; IF SIZEOF(name_bag) = 1 THEN RETURN (name_bag[1].attribute_value); ELSE RETURN (?); END_IF; END_FUNCTION; -- 10303-41: basic_attribute_schema FUNCTION get_property_definition_representations(c_def_instance : characterized_definition) : SET OF property_definition_representation; LOCAL pd_set : SET OF property_definition := []; pdr_set : SET OF property_definition_representation := []; END_LOCAL; pd_set := bag_to_set(USEDIN(c_def_instance, 'AUTOMOTIVE_DESIGN.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], 'AUTOMOTIVE_DESIGN.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')); END_REPEAT; RETURN (pdr_set); END_FUNCTION; -- 10303-41: product_property_representation_schema FUNCTION get_role(obj : role_select) : object_role; LOCAL role_bag : BAG OF role_association := USEDIN(obj, 'AUTOMOTIVE_DESIGN.ROLE_ASSOCIATION.ITEM_WITH_ROLE'); END_LOCAL; IF SIZEOF(role_bag) = 1 THEN RETURN (role_bag[1].role); ELSE RETURN (?); END_IF; END_FUNCTION; -- 10303-41: basic_attribute_schema FUNCTION get_round_holes_for_composite_hole(sar_instance_set : SET OF shape_aspect_relationship) : SET OF round_hole; LOCAL rh_set : SET OF round_hole := []; pdr_set : SET OF property_definition_representation; pdr_set1 : SET OF property_definition_representation; ri_set : SET OF representation_item; END_LOCAL; REPEAT i := 1 TO HIINDEX(sar_instance_set); IF SIZEOF(['AUTOMOTIVE_DESIGN.INSTANCED_FEATURE', 'AUTOMOTIVE_DESIGN.ROUND_HOLE'] * TYPEOF(sar_instance_set[i]. related_shape_aspect)) >= 2 THEN rh_set := rh_set + sar_instance_set[i].related_shape_aspect; END_IF; IF 'AUTOMOTIVE_DESIGN.PLACED_FEATURE' IN TYPEOF(sar_instance_set[i]) THEN pdr_set := get_shape_aspect_property_definition_representations( sar_instance_set[i].related_shape_aspect); REPEAT j := 1 TO HIINDEX(pdr_set); IF (pdr_set[j].used_representation.name = 'feature definition placement') AND ( 'AUTOMOTIVE_DESIGN.SHAPE_REPRESENTATION' IN TYPEOF(pdr_set[j]. used_representation)) THEN ri_set := pdr_set[j].used_representation.items; REPEAT k := 1 TO HIINDEX(ri_set); IF ('AUTOMOTIVE_DESIGN.MAPPED_ITEM' IN TYPEOF(ri_set[k])) AND ( 'AUTOMOTIVE_DESIGN.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(ri_set[k]\mapped_item.mapping_source.mapped_representation) ) THEN pdr_set1 := bag_to_set(USEDIN(ri_set[k]\mapped_item. mapping_source.mapped_representation, 'AUTOMOTIVE_DESIGN.PROPERTY_DEFINITION_REPRESENTATION.USED_REPRESENTATION' )); REPEAT l := 1 TO HIINDEX(pdr_set1); IF 'AUTOMOTIVE_DESIGN.ROUND_HOLE' IN TYPEOF(pdr_set1[l]. definition.definition) THEN rh_set := rh_set + pdr_set1[l].definition.definition; END_IF; END_REPEAT; END_IF; END_REPEAT; END_IF; END_REPEAT; END_IF; END_REPEAT; RETURN (rh_set); END_FUNCTION; -- 10303-214: automotive_design 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, 'AUTOMOTIVE_DESIGN.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], 'AUTOMOTIVE_DESIGN.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | 'AUTOMOTIVE_DESIGN.SHAPE_DEFINITION_REPRESENTATION' IN TYPEOF(pdr)); END_REPEAT; RETURN (pdr_set); END_FUNCTION; -- 10303-214: automotive_design 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, 'AUTOMOTIVE_DESIGN.PROPERTY_DEFINITION.DEFINITION') | 'AUTOMOTIVE_DESIGN.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], 'AUTOMOTIVE_DESIGN.SHAPE_ASPECT.OF_SHAPE')); END_REPEAT; RETURN (pdr_set); END_FUNCTION; -- 10303-41: product_property_definition_schema FUNCTION is_acyclic(arg : generic_expression) : BOOLEAN; RETURN (acyclic(arg, [])); END_FUNCTION; (* declared in: iso13584_generic_expressions_schema *) FUNCTION is_int_expr(arg : numeric_expression) : BOOLEAN; LOCAL i : INTEGER; END_LOCAL; IF 'AUTOMOTIVE_DESIGN.INT_LITERAL' IN TYPEOF(arg) THEN RETURN (TRUE); END_IF; IF 'AUTOMOTIVE_DESIGN.REAL_LITERAL' IN TYPEOF(arg) THEN RETURN (FALSE); END_IF; IF 'AUTOMOTIVE_DESIGN.INT_NUMERIC_VARIABLE' IN TYPEOF(arg) THEN RETURN (TRUE); END_IF; IF 'AUTOMOTIVE_DESIGN.REAL_NUMERIC_VARIABLE' IN TYPEOF(arg) THEN RETURN (FALSE); END_IF; IF 'AUTOMOTIVE_DESIGN.ABS_FUNCTION' IN TYPEOF(arg) THEN RETURN (is_int_expr(arg\unary_numeric_expression.operand)); END_IF; IF 'AUTOMOTIVE_DESIGN.MINUS_FUNCTION' IN TYPEOF(arg) THEN RETURN (is_int_expr(arg\unary_numeric_expression.operand)); END_IF; IF ('AUTOMOTIVE_DESIGN.SIN_FUNCTION' IN TYPEOF(arg)) OR ( 'AUTOMOTIVE_DESIGN.COS_FUNCTION' IN TYPEOF(arg)) OR ( 'AUTOMOTIVE_DESIGN.TAN_FUNCTION' IN TYPEOF(arg)) OR ( 'AUTOMOTIVE_DESIGN.ASIN_FUNCTION' IN TYPEOF(arg)) OR ( 'AUTOMOTIVE_DESIGN.ACOS_FUNCTION' IN TYPEOF(arg)) OR ( 'AUTOMOTIVE_DESIGN.ATAN_FUNCTION' IN TYPEOF(arg)) OR ( 'AUTOMOTIVE_DESIGN.EXP_FUNCTION' IN TYPEOF(arg)) OR ( 'AUTOMOTIVE_DESIGN.LOG_FUNCTION' IN TYPEOF(arg)) OR ( 'AUTOMOTIVE_DESIGN.LOG2_FUNCTION' IN TYPEOF(arg)) OR ( 'AUTOMOTIVE_DESIGN.LOG10_FUNCTION' IN TYPEOF(arg)) OR ( 'AUTOMOTIVE_DESIGN.SQUARE_ROOT_FUNCTION' IN TYPEOF(arg)) THEN RETURN (FALSE); END_IF; IF ('AUTOMOTIVE_DESIGN.PLUS_EXPRESSION' IN TYPEOF(arg)) OR ( 'AUTOMOTIVE_DESIGN.MULT_EXPRESSION' IN TYPEOF(arg)) OR ( 'AUTOMOTIVE_DESIGN.MAXIMUM_FUNCTION' IN TYPEOF(arg)) OR ( 'AUTOMOTIVE_DESIGN.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 ('AUTOMOTIVE_DESIGN.MINUS_EXPRESSION' IN TYPEOF(arg)) OR ( 'AUTOMOTIVE_DESIGN.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 ('AUTOMOTIVE_DESIGN.DIV_EXPRESSION' IN TYPEOF(arg)) OR ( 'AUTOMOTIVE_DESIGN.MOD_EXPRESSION' IN TYPEOF(arg)) THEN RETURN (TRUE); END_IF; IF 'AUTOMOTIVE_DESIGN.SLASH_EXPRESSION' IN TYPEOF(arg) THEN RETURN (FALSE); END_IF; IF 'AUTOMOTIVE_DESIGN.LENGTH_FUNCTION' IN TYPEOF(arg) THEN RETURN (TRUE); END_IF; IF 'AUTOMOTIVE_DESIGN.VALUE_FUNCTION' IN TYPEOF(arg) THEN IF 'AUTOMOTIVE_DESIGN.INT_VALUE_FUNCTION' IN TYPEOF(arg) THEN RETURN (TRUE); ELSE RETURN (FALSE); END_IF; END_IF; IF 'AUTOMOTIVE_DESIGN.INTEGER_DEFINED_FUNCTION' IN TYPEOF(arg) THEN RETURN (TRUE); END_IF; IF 'AUTOMOTIVE_DESIGN.REAL_DEFINED_FUNCTION' IN TYPEOF(arg) THEN RETURN (FALSE); END_IF; IF 'AUTOMOTIVE_DESIGN.BOOLEAN_DEFINED_FUNCTION' IN TYPEOF(arg) THEN RETURN (FALSE); END_IF; IF 'AUTOMOTIVE_DESIGN.STRING_DEFINED_FUNCTION' IN TYPEOF(arg) THEN RETURN (FALSE); END_IF; RETURN (FALSE); END_FUNCTION; (* declared in: iso13584_expressions_schema *) FUNCTION is_sql_mappable(arg : expression) : BOOLEAN; LOCAL i : INTEGER; END_LOCAL; IF 'AUTOMOTIVE_DESIGN.SIMPLE_NUMERIC_EXPRESSION' IN TYPEOF(arg) THEN RETURN (TRUE); END_IF; IF 'AUTOMOTIVE_DESIGN.SQL_MAPPABLE_DEFINED_FUNCTION' IN TYPEOF(arg) THEN RETURN (TRUE); END_IF; IF 'AUTOMOTIVE_DESIGN.MINUS_FUNCTION' IN TYPEOF(arg) THEN RETURN (is_sql_mappable(arg\unary_numeric_expression.operand)); END_IF; IF ('AUTOMOTIVE_DESIGN.ABS_FUNCTION' IN TYPEOF(arg)) OR ( 'AUTOMOTIVE_DESIGN.SIN_FUNCTION' IN TYPEOF(arg)) OR ( 'AUTOMOTIVE_DESIGN.COS_FUNCTION' IN TYPEOF(arg)) OR ( 'AUTOMOTIVE_DESIGN.TAN_FUNCTION' IN TYPEOF(arg)) OR ( 'AUTOMOTIVE_DESIGN.ASIN_FUNCTION' IN TYPEOF(arg)) OR ( 'AUTOMOTIVE_DESIGN.ACOS_FUNCTION' IN TYPEOF(arg)) OR ( 'AUTOMOTIVE_DESIGN.ATAN_FUNCTION' IN TYPEOF(arg)) OR ( 'AUTOMOTIVE_DESIGN.EXP_FUNCTION' IN TYPEOF(arg)) OR ( 'AUTOMOTIVE_DESIGN.LOG_FUNCTION' IN TYPEOF(arg)) OR ( 'AUTOMOTIVE_DESIGN.LOG2_FUNCTION' IN TYPEOF(arg)) OR ( 'AUTOMOTIVE_DESIGN.LOG10_FUNCTION' IN TYPEOF(arg)) OR ( 'AUTOMOTIVE_DESIGN.SQUARE_ROOT_FUNCTION' IN TYPEOF(arg)) OR ( 'AUTOMOTIVE_DESIGN.VALUE_FUNCTION' IN TYPEOF(arg)) OR ( 'AUTOMOTIVE_DESIGN.LENGTH_FUNCTION' IN TYPEOF(arg)) THEN RETURN (FALSE); END_IF; IF ('AUTOMOTIVE_DESIGN.PLUS_EXPRESSION' IN TYPEOF(arg)) OR ( 'AUTOMOTIVE_DESIGN.MULT_EXPRESSION' IN TYPEOF(arg)) OR ( 'AUTOMOTIVE_DESIGN.MAXIMUM_FUNCTION' IN TYPEOF(arg)) OR ( 'AUTOMOTIVE_DESIGN.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 ('AUTOMOTIVE_DESIGN.MINUS_EXPRESSION' IN TYPEOF(arg)) OR ( 'AUTOMOTIVE_DESIGN.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 ('AUTOMOTIVE_DESIGN.DIV_EXPRESSION' IN TYPEOF(arg)) OR ( 'AUTOMOTIVE_DESIGN.MOD_EXPRESSION' IN TYPEOF(arg)) OR ( 'AUTOMOTIVE_DESIGN.POWER_EXPRESSION' IN TYPEOF(arg)) THEN RETURN (FALSE); END_IF; IF 'AUTOMOTIVE_DESIGN.SIMPLE_BOOLEAN_EXPRESSION' IN TYPEOF(arg) THEN RETURN (TRUE); END_IF; IF 'AUTOMOTIVE_DESIGN.NOT_EXPRESSION' IN TYPEOF(arg) THEN RETURN (is_sql_mappable(arg\unary_generic_expression.operand)); END_IF; IF ('AUTOMOTIVE_DESIGN.ODD_FUNCTION' IN TYPEOF(arg)) OR ( 'AUTOMOTIVE_DESIGN.XOR_EXPRESSION' IN TYPEOF(arg)) THEN RETURN (FALSE); END_IF; IF ('AUTOMOTIVE_DESIGN.AND_EXPRESSION' IN TYPEOF(arg)) OR ( 'AUTOMOTIVE_DESIGN.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 'AUTOMOTIVE_DESIGN.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 ('AUTOMOTIVE_DESIGN.COMPARISON_EQUAL' IN TYPEOF(arg)) OR ( 'AUTOMOTIVE_DESIGN.COMPARISON_GREATER' IN TYPEOF(arg)) OR ( 'AUTOMOTIVE_DESIGN.COMPARISON_GREATER_EQUAL' IN TYPEOF(arg)) OR ( 'AUTOMOTIVE_DESIGN.COMPARISON_LESS' IN TYPEOF(arg)) OR ( 'AUTOMOTIVE_DESIGN.COMPARISON_LESS_EQUAL' IN TYPEOF(arg)) OR ( 'AUTOMOTIVE_DESIGN.COMPARISON_NOT_EQUAL' IN TYPEOF(arg)) OR ( 'AUTOMOTIVE_DESIGN.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 'AUTOMOTIVE_DESIGN.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 ('AUTOMOTIVE_DESIGN.NUMERIC_DEFINED_FUNCTION' IN TYPEOF(arg)) OR ( 'AUTOMOTIVE_DESIGN.BOOLEAN_DEFINED_FUNCTION' IN TYPEOF(arg)) OR ( 'AUTOMOTIVE_DESIGN.STRING_DEFINED_FUNCTION' IN TYPEOF(arg)) THEN RETURN (FALSE); END_IF; IF 'AUTOMOTIVE_DESIGN.SIMPLE_STRING_EXPRESSION' IN TYPEOF(arg) THEN RETURN (TRUE); END_IF; IF ('AUTOMOTIVE_DESIGN.INDEX_EXPRESSION' IN TYPEOF(arg)) OR ( 'AUTOMOTIVE_DESIGN.SUBSTRING_EXPRESSION' IN TYPEOF(arg)) OR ( 'AUTOMOTIVE_DESIGN.CONCAT_EXPRESSION' IN TYPEOF(arg)) OR ( 'AUTOMOTIVE_DESIGN.FORMAT_FUNCTION' IN TYPEOF(arg)) THEN RETURN (FALSE); END_IF; RETURN (FALSE); END_FUNCTION; (* declared in: iso13584_expressions_schema *) FUNCTION item_correlation(items : SET OF GENERIC; c_items : SET OF STRING) : LOGICAL; LOCAL c_types : SET OF STRING := []; c_hit : INTEGER := 0; END_LOCAL; REPEAT i := 1 TO HIINDEX(c_items); c_types := c_types + ['AUTOMOTIVE_DESIGN.' + c_items[i]]; END_REPEAT; REPEAT i := 1 TO HIINDEX(items); IF SIZEOF(c_types * TYPEOF(items[i])) = 1 THEN c_hit := c_hit + 1; END_IF; END_REPEAT; IF SIZEOF(items) = c_hit THEN RETURN (TRUE); ELSE RETURN (FALSE); END_IF; END_FUNCTION; -- 10303-214: automotive_design FUNCTION item_in_context(item : representation_item; cntxt : representation_context) : BOOLEAN; LOCAL y : BAG OF representation_item; END_LOCAL; IF SIZEOF(USEDIN(item, 'AUTOMOTIVE_DESIGN.REPRESENTATION.ITEMS') * cntxt. representations_in_context) > 0 THEN RETURN (TRUE); ELSE y := QUERY(z <* USEDIN(item, '') | 'AUTOMOTIVE_DESIGN.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; -- 10303-43: representation_schema FUNCTION leap_year(year : year_number) : BOOLEAN; IF (year MOD 4 = 0) AND (year MOD 100 <> 0) OR (year MOD 400 = 0) THEN RETURN (TRUE); ELSE RETURN (FALSE); END_IF; END_FUNCTION; -- 10303-41: date_time_schema FUNCTION list_face_loops(f : face) : LIST OF loop; LOCAL loops : LIST OF loop := []; END_LOCAL; REPEAT i := 1 TO SIZEOF(f.bounds); loops := loops + f.bounds[i].bound; END_REPEAT; RETURN (loops); END_FUNCTION; -- 10303-42: topology_schema FUNCTION list_of_topology_reversed(a_list : list_of_reversible_topology_item) : list_of_reversible_topology_item; LOCAL the_reverse : list_of_reversible_topology_item; END_LOCAL; the_reverse := []; REPEAT i := 1 TO SIZEOF(a_list); the_reverse := topology_reversed(a_list[i]) + the_reverse; END_REPEAT; RETURN (the_reverse); END_FUNCTION; -- 10303-42: topology_schema FUNCTION list_to_array(lis : LIST 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; -- 10303-42: geometry_schema FUNCTION list_to_set(l : LIST 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; -- 10303-42: topology_schema FUNCTION make_array_of_array(lis : LIST [1:?] OF LIST [1:?] OF GENERIC : t; low1 : INTEGER; u1 : INTEGER; low2 : INTEGER; u2 : INTEGER) : ARRAY [low1:u1 ] OF ARRAY [low2:u2] OF GENERIC : t; LOCAL res : ARRAY [low1:u1] OF ARRAY [low2:u2] OF GENERIC : t; END_LOCAL; IF u1 - low1 + 1 <> SIZEOF(lis) THEN RETURN (?); END_IF; IF u2 - low2 + 1 <> SIZEOF(lis[1]) THEN RETURN (?); END_IF; res := [list_to_array(lis[1], low2, u2) : 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; -- 10303-42: geometry_schema FUNCTION mixed_loop_type_set(l : SET OF loop) : LOGICAL; LOCAL poly_loop_type : LOGICAL; END_LOCAL; IF SIZEOF(l) <= 1 THEN RETURN (FALSE); END_IF; poly_loop_type := 'AUTOMOTIVE_DESIGN.POLY_LOOP' IN TYPEOF(l[1]); REPEAT i := 2 TO SIZEOF(l); IF ('AUTOMOTIVE_DESIGN.POLY_LOOP' IN TYPEOF(l[i])) <> poly_loop_type THEN RETURN (TRUE); END_IF; END_REPEAT; RETURN (FALSE); END_FUNCTION; -- 10303-42: topology_schema FUNCTION msb_shells(brep : manifold_solid_brep) : SET [1:?] OF closed_shell; IF SIZEOF(QUERY(msbtype <* TYPEOF(brep) | msbtype LIKE '*BREP_WITH_VOIDS')) >= 1 THEN RETURN (brep\brep_with_voids.voids + brep.outer); ELSE RETURN ([brep.outer]); END_IF; END_FUNCTION; -- 10303-42: geometric_model_schema FUNCTION msf_curve_check(cv : representation_item) : BOOLEAN; IF SIZEOF(['AUTOMOTIVE_DESIGN.BOUNDED_CURVE', 'AUTOMOTIVE_DESIGN.CONIC' , 'AUTOMOTIVE_DESIGN.CURVE_REPLICA', 'AUTOMOTIVE_DESIGN.LINE', 'AUTOMOTIVE_DESIGN.OFFSET_CURVE_3D'] * TYPEOF(cv)) > 1 THEN RETURN (FALSE); END_IF; IF ('AUTOMOTIVE_DESIGN.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(['AUTOMOTIVE_DESIGN.CONIC', 'AUTOMOTIVE_DESIGN.LINE'] * TYPEOF(cv)) = 1 THEN RETURN (TRUE); ELSE IF 'AUTOMOTIVE_DESIGN.CURVE_REPLICA' IN TYPEOF(cv) THEN RETURN (msf_curve_check(cv\curve_replica.parent_curve)); ELSE IF ('AUTOMOTIVE_DESIGN.OFFSET_CURVE_3D' IN TYPEOF(cv)) AND ((cv\ offset_curve_3d.self_intersect = FALSE) OR (cv\offset_curve_3d .self_intersect = UNKNOWN)) AND NOT ('AUTOMOTIVE_DESIGN.POLYLINE' IN TYPEOF(cv\offset_curve_3d.basis_curve)) THEN RETURN (msf_curve_check(cv\offset_curve_3d.basis_curve)); ELSE IF 'AUTOMOTIVE_DESIGN.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 'AUTOMOTIVE_DESIGN.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 'AUTOMOTIVE_DESIGN.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 'AUTOMOTIVE_DESIGN.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 'AUTOMOTIVE_DESIGN.POLYLINE' IN TYPEOF(cv) THEN IF SIZEOF(cv\polyline.points) >= 3 THEN RETURN (TRUE); END_IF; END_IF; END_IF; END_IF; END_IF; END_IF; END_IF; END_IF; RETURN (FALSE); END_FUNCTION; -- 10303-509: aic_manifold_surface FUNCTION msf_surface_check(surf : surface) : BOOLEAN; IF 'AUTOMOTIVE_DESIGN.ELEMENTARY_SURFACE' IN TYPEOF(surf) THEN RETURN (TRUE); ELSE IF 'AUTOMOTIVE_DESIGN.SWEPT_SURFACE' IN TYPEOF(surf) THEN RETURN (msf_curve_check(surf\swept_surface.swept_curve)); ELSE IF ('AUTOMOTIVE_DESIGN.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 'AUTOMOTIVE_DESIGN.SURFACE_REPLICA' IN TYPEOF(surf) THEN RETURN (msf_surface_check(surf\surface_replica.parent_surface)); ELSE IF ('AUTOMOTIVE_DESIGN.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; -- 10303-509: aic_manifold_surface FUNCTION nmsf_curve_check(cv : representation_item) : BOOLEAN; IF SIZEOF(['AUTOMOTIVE_DESIGN.BOUNDED_CURVE', 'AUTOMOTIVE_DESIGN.CONIC' , 'AUTOMOTIVE_DESIGN.CURVE_REPLICA', 'AUTOMOTIVE_DESIGN.LINE', 'AUTOMOTIVE_DESIGN.OFFSET_CURVE_3D'] * TYPEOF(cv)) > 1 THEN RETURN (FALSE); ELSE IF ('AUTOMOTIVE_DESIGN.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(['AUTOMOTIVE_DESIGN.CONIC', 'AUTOMOTIVE_DESIGN.LINE'] * TYPEOF(cv)) = 1 THEN RETURN (TRUE); ELSE IF 'AUTOMOTIVE_DESIGN.CURVE_REPLICA' IN TYPEOF(cv) THEN RETURN (nmsf_curve_check(cv\curve_replica.parent_curve)); ELSE IF ('AUTOMOTIVE_DESIGN.OFFSET_CURVE_3D' IN TYPEOF(cv)) AND ((cv\ offset_curve_3d.self_intersect = FALSE) OR (cv\offset_curve_3d .self_intersect = UNKNOWN)) AND NOT ('AUTOMOTIVE_DESIGN.POLYLINE' IN TYPEOF(cv\offset_curve_3d.basis_curve)) THEN RETURN (nmsf_curve_check(cv\offset_curve_3d.basis_curve)); ELSE IF 'AUTOMOTIVE_DESIGN.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 'AUTOMOTIVE_DESIGN.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 'AUTOMOTIVE_DESIGN.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 'AUTOMOTIVE_DESIGN.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 'AUTOMOTIVE_DESIGN.POLYLINE' IN TYPEOF(cv) THEN IF SIZEOF(cv\polyline.points) >= 3 THEN RETURN (TRUE); END_IF; END_IF; END_IF; END_IF; END_IF; END_IF; END_IF; END_IF; END_IF; RETURN (FALSE); END_FUNCTION; -- 10303-508: aic_non_manifold_surface FUNCTION nmsf_surface_check(surf : surface) : BOOLEAN; IF 'AUTOMOTIVE_DESIGN.ELEMENTARY_SURFACE' IN TYPEOF(surf) THEN RETURN (TRUE); ELSE IF 'AUTOMOTIVE_DESIGN.SWEPT_SURFACE' IN TYPEOF(surf) THEN RETURN (nmsf_curve_check(surf\swept_surface.swept_curve)); ELSE IF ('AUTOMOTIVE_DESIGN.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 'AUTOMOTIVE_DESIGN.SURFACE_REPLICA' IN TYPEOF(surf) THEN RETURN (nmsf_surface_check(surf\surface_replica.parent_surface)); ELSE IF ('AUTOMOTIVE_DESIGN.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; -- 10303-508: aic_non_manifold_surface FUNCTION normalise(arg : vector_or_direction) : vector_or_direction; LOCAL ndim : INTEGER; v : direction; result : vector_or_direction; vec : vector; mag : REAL; END_LOCAL; IF NOT EXISTS(arg) THEN result := ?; ELSE ndim := arg.dim; IF 'AUTOMOTIVE_DESIGN.VECTOR' IN TYPEOF(arg) THEN v := dummy_gri||direction(arg.orientation.direction_ratios); IF arg.magnitude = 0.0 THEN RETURN (?); ELSE vec := dummy_gri||vector(v, 1.0); END_IF; 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 'AUTOMOTIVE_DESIGN.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; -- 10303-42: geometry_schema FUNCTION open_shell_reversed(a_shell : open_shell) : oriented_open_shell; LOCAL the_reverse : oriented_open_shell; END_LOCAL; IF 'AUTOMOTIVE_DESIGN.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; -- 10303-42: topology_schema FUNCTION orthogonal_complement(vec : direction) : direction; LOCAL result : direction; END_LOCAL; IF (vec.dim <> 2) OR NOT EXISTS(vec) THEN RETURN (?); ELSE result := dummy_gri||direction([-vec.direction_ratios[2], vec. direction_ratios[1]]); RETURN (result); END_IF; END_FUNCTION; -- 10303-42: geometry_schema FUNCTION path_head_to_tail(a_path : path) : LOGICAL; LOCAL n : INTEGER; p : LOGICAL := TRUE; END_LOCAL; n := SIZEOF(a_path.edge_list); REPEAT i := 2 TO n; p := p AND (a_path.edge_list[i - 1].edge_end :=: a_path.edge_list[i]. edge_start); END_REPEAT; RETURN (p); END_FUNCTION; -- 10303-42: topology_schema FUNCTION path_reversed(a_path : path) : oriented_path; LOCAL the_reverse : oriented_path; END_LOCAL; IF 'AUTOMOTIVE_DESIGN.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; -- 10303-42: topology_schema FUNCTION plane_angle_for_pair_in_radian(pair : kinematic_pair; angle : plane_angle_measure) : plane_angle_measure; LOCAL converted_angle : plane_angle_measure := angle; link_rep : kinematic_link_representation := representation_of_link(pair.joint .first_link); link_cntxt : representation_context; pa_units : SET OF unit := []; pau : unit; END_LOCAL; link_cntxt := link_rep\representation.context_of_items; IF NOT ('AUTOMOTIVE_DESIGN.GLOBAL_UNIT_ASSIGNED_CONTEXT' IN TYPEOF( link_cntxt)) THEN RETURN (?); END_IF; pa_units := QUERY(unit <* link_cntxt\global_unit_assigned_context.units | 'AUTOMOTIVE_DESIGN.PLANE_ANGLE_UNIT' IN TYPEOF(unit)); IF SIZEOF(pa_units) <> 1 THEN RETURN (?); END_IF; pau := pa_units[1]; IF NOT ('AUTOMOTIVE_DESIGN.SI_UNIT' IN TYPEOF(pau)) AND NOT ( 'AUTOMOTIVE_DESIGN.CONVERSION_BASED_UNIT' IN TYPEOF(pau)) THEN RETURN (?); END_IF; REPEAT WHILE 'AUTOMOTIVE_DESIGN.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 ('AUTOMOTIVE_DESIGN.SI_UNIT' IN TYPEOF(pau)) AND NOT ( 'AUTOMOTIVE_DESIGN.CONVERSION_BASED_UNIT' IN TYPEOF(pau)) OR NOT ( 'AUTOMOTIVE_DESIGN.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; -- 10303-105: kinematic_structure_schema FUNCTION representation_of_link(link : kinematic_link) : kinematic_link_representation; LOCAL link_rep_rel : BAG OF kinematic_link_representation_relation; END_LOCAL; link_rep_rel := USEDIN(link, 'AUTOMOTIVE_DESIGN.KINEMATIC_LINK_REPRESENTATION_RELATION.TOPOLOGICAL_ASPECTS' ); IF SIZEOF(link_rep_rel) = 0 THEN RETURN (?); ELSE RETURN (link_rep_rel[1].geometric_aspects); END_IF; END_FUNCTION; -- 10303-105: kinematic_structure_schema FUNCTION representations_mapped_into(rep : representation) : SET OF representation; LOCAL results : SET OF representation := []; rm : SET OF representation_map; mi : SET OF mapped_item := []; END_LOCAL; rm := bag_to_set(USEDIN(rep, 'AUTOMOTIVE_DESIGN.REPRESENTATION_MAP.MAPPED_REPRESENTATION')); REPEAT i := 1 TO HIINDEX(rm); mi := mi + rm[i].map_usage; END_REPEAT; REPEAT j := 1 TO HIINDEX(mi); results := results + USEDIN(mi[j], 'AUTOMOTIVE_DESIGN.REPRESENTATION.ITEMS'); END_REPEAT; RETURN (results); END_FUNCTION; -- 10303-520: aic_associative_draughting_elements 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 'AUTOMOTIVE_DESIGN.VECTOR' IN TYPEOF(vec) THEN v := dummy_gri||direction(vec.orientation.direction_ratios); mag := scalar * vec.magnitude; ELSE v := dummy_gri||direction(vec.direction_ratios); mag := scalar; END_IF; IF mag < 0.0 THEN REPEAT i := 1 TO SIZEOF(v.direction_ratios); v.direction_ratios[i] := -v.direction_ratios[i]; END_REPEAT; mag := -mag; END_IF; result := dummy_gri||vector(normalise(v), mag); END_IF; RETURN (result); END_FUNCTION; -- 10303-42: geometry_schema FUNCTION second_proj_axis(z_axis : direction; x_axis : direction; arg : direction) : direction; LOCAL y_axis : vector; v : direction; temp : vector; END_LOCAL; IF NOT EXISTS(arg) THEN v := dummy_gri||direction([0.0, 1.0, 0.0]); ELSE v := arg; END_IF; temp := scalar_times_vector(dot_product(v, z_axis), z_axis); y_axis := vector_difference(v, temp); temp := scalar_times_vector(dot_product(v, x_axis), x_axis); y_axis := vector_difference(y_axis, temp); y_axis := normalise(y_axis); RETURN (y_axis.orientation); END_FUNCTION; -- 10303-42: geometry_schema FUNCTION set_of_topology_reversed(a_set : set_of_reversible_topology_item) : set_of_reversible_topology_item; LOCAL the_reverse : set_of_reversible_topology_item; END_LOCAL; the_reverse := []; REPEAT i := 1 TO SIZEOF(a_set); the_reverse := the_reverse + topology_reversed(a_set[i]); END_REPEAT; RETURN (the_reverse); END_FUNCTION; -- 10303-42: topology_schema FUNCTION shell_reversed(a_shell : shell) : shell; IF 'AUTOMOTIVE_DESIGN.OPEN_SHELL' IN TYPEOF(a_shell) THEN RETURN (open_shell_reversed(a_shell)); ELSE IF 'AUTOMOTIVE_DESIGN.CLOSED_SHELL' IN TYPEOF(a_shell) THEN RETURN (closed_shell_reversed(a_shell)); ELSE RETURN (?); END_IF; END_IF; END_FUNCTION; -- 10303-42: topology_schema FUNCTION suitably_based_mechanism(mbp : mechanism_base_placement; mech : mechanism) : BOOLEAN; LOCAL kprop : kinematic_property_definition; kgrep : kinematic_ground_representation; klrep : kinematic_link_representation; klnk : kinematic_link; kjnts : BAG OF kinematic_joint; nmechs : BAG OF mechanism; nmbps : BAG OF mechanism_base_placement; END_LOCAL; kprop := mech.containing_property; IF 'AUTOMOTIVE_DESIGN.KINEMATIC_GROUND_REPRESENTATION' IN TYPEOF(mbp\ representation_relationship.rep_1) THEN kgrep := mbp\representation_relationship.rep_1; IF kgrep.property\property_definition_representation.definition :=: kprop THEN RETURN (TRUE); ELSE RETURN (FALSE); END_IF; ELSE klrep := mbp\representation_relationship.rep_1; klnk := klrep.link_representation_relation.topological_aspects; kjnts := USEDIN(klnk, 'AUTOMOTIVE_DESIGN.KINEMATIC_JOINT.FIRST_LINK') + USEDIN(klnk, 'AUTOMOTIVE_DESIGN.KINEMATIC_JOINT.SECOND_LINK'); nmechs := USEDIN(kjnts[1].structure, 'AUTOMOTIVE_DESIGN.MECHANISM.STRUCTURE_DEFINITION'); IF nmechs[1] :=: mech THEN RETURN (FALSE); ELSE IF nmechs[1].containing_property :<>: kprop THEN RETURN (FALSE); ELSE nmbps := USEDIN(nmechs[1], 'AUTOMOTIVE_DESIGN.MECHANISM_BASE_PLACEMENT.BASE_OF_MECHANISM'); IF SIZEOF(nmbps) = 0 THEN RETURN (FALSE); ELSE RETURN (suitably_based_mechanism(nmbps[1], mech)); END_IF; END_IF; END_IF; END_IF; END_FUNCTION; -- 10303-105: kinematic_structure_schema 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; -- 10303-214: automotive_design 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; -- 10303-42: geometry_schema FUNCTION topology_reversed(an_item : reversible_topology) : reversible_topology ; IF 'AUTOMOTIVE_DESIGN.EDGE' IN TYPEOF(an_item) THEN RETURN (edge_reversed(an_item)); END_IF; IF 'AUTOMOTIVE_DESIGN.PATH' IN TYPEOF(an_item) THEN RETURN (path_reversed(an_item)); END_IF; IF 'AUTOMOTIVE_DESIGN.FACE_BOUND' IN TYPEOF(an_item) THEN RETURN (face_bound_reversed(an_item)); END_IF; IF 'AUTOMOTIVE_DESIGN.FACE' IN TYPEOF(an_item) THEN RETURN (face_reversed(an_item)); END_IF; IF 'AUTOMOTIVE_DESIGN.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; -- 10303-42: topology_schema FUNCTION type_check_function(the_type : GENERIC; sub_names : SET OF STRING; criterion : INTEGER) : LOGICAL; IF NOT EXISTS(the_type) OR NOT ({0 <= criterion <= 3}) OR (SIZEOF(sub_names) = 0) THEN RETURN (UNKNOWN); ELSE CASE criterion OF 0 : RETURN (SIZEOF(sub_names * TYPEOF(the_type)) > 0); 1 : RETURN (SIZEOF(sub_names * TYPEOF(the_type)) = 0); 2 : RETURN (SIZEOF(sub_names * TYPEOF(the_type)) = 1); 3 : RETURN (SIZEOF(sub_names * TYPEOF(the_type)) <= 1); END_CASE; END_IF; END_FUNCTION; -- 10303-41: support_resource_schema FUNCTION unique_link_usage(link : kinematic_link) : BOOLEAN; LOCAL mechs : SET OF mechanism; joints : SET OF kinematic_joint; struct : kinematic_structure; END_LOCAL; joints := bag_to_set(USEDIN(link, 'AUTOMOTIVE_DESIGN.KINEMATIC_JOINT.FIRST_LINK') + USEDIN(link, 'AUTOMOTIVE_DESIGN.KINEMATIC_JOINT.SECOND_LINK')); struct := joints[1].structure; REPEAT i := 2 TO SIZEOF(joints); IF joints[i].structure :<>: struct THEN RETURN (FALSE); END_IF; END_REPEAT; mechs := bag_to_set(USEDIN(struct, 'AUTOMOTIVE_DESIGN.MECHANISM.STRUCTURE_DEFINITION')); IF SIZEOF(mechs) <> 1 THEN RETURN (FALSE); END_IF; RETURN (TRUE); END_FUNCTION; -- 10303-105: kinematic_structure_schema FUNCTION using_items(item : founded_item_select; checked_items : SET OF founded_item_select) : SET OF founded_item_select; LOCAL new_check_items : SET OF founded_item_select; result_items : SET OF founded_item_select; next_items : SET OF founded_item_select; END_LOCAL; result_items := []; new_check_items := checked_items + item; next_items := QUERY(z <* bag_to_set(USEDIN(item, '')) | ( 'AUTOMOTIVE_DESIGN.REPRESENTATION_ITEM' IN TYPEOF(z)) OR ( 'AUTOMOTIVE_DESIGN.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; -- 10303-43: representation_schema FUNCTION using_representations(item : founded_item_select) : SET OF representation; LOCAL results : SET OF representation; result_bag : BAG OF representation; intermediate_items : SET OF founded_item_select; END_LOCAL; results := []; result_bag := USEDIN(item, 'AUTOMOTIVE_DESIGN.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], 'AUTOMOTIVE_DESIGN.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; -- 10303-43: representation_schema FUNCTION valid_basis_curve_in_2d_wireframe(crv : curve) : BOOLEAN; IF SIZEOF(['AUTOMOTIVE_DESIGN.POLYLINE', 'AUTOMOTIVE_DESIGN.B_SPLINE_CURVE', 'AUTOMOTIVE_DESIGN.ELLIPSE', 'AUTOMOTIVE_DESIGN.CIRCLE'] * TYPEOF(crv)) = 1 THEN RETURN (TRUE); ELSE IF 'AUTOMOTIVE_DESIGN.TRIMMED_CURVE' IN TYPEOF(crv) THEN IF SIZEOF(['AUTOMOTIVE_DESIGN.LINE', 'AUTOMOTIVE_DESIGN.PARABOLA', 'AUTOMOTIVE_DESIGN.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 'AUTOMOTIVE_DESIGN.OFFSET_CURVE_2D' IN TYPEOF(crv) THEN RETURN (valid_basis_curve_in_2d_wireframe(crv\offset_curve_2d. basis_curve)); ELSE IF 'AUTOMOTIVE_DESIGN.CURVE_REPLICA' IN TYPEOF(crv) THEN RETURN (valid_basis_curve_in_2d_wireframe(crv\curve_replica. parent_curve)); ELSE IF 'AUTOMOTIVE_DESIGN.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; -- 10303-503: aic_geometrically_bounded_2d_wireframe 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; -- 10303-41: date_time_schema FUNCTION valid_geometrically_bounded_wf_curve(crv : curve) : BOOLEAN; IF SIZEOF(['AUTOMOTIVE_DESIGN.POLYLINE', 'AUTOMOTIVE_DESIGN.B_SPLINE_CURVE', 'AUTOMOTIVE_DESIGN.ELLIPSE', 'AUTOMOTIVE_DESIGN.CIRCLE'] * TYPEOF(crv)) = 1 THEN RETURN (TRUE); ELSE IF 'AUTOMOTIVE_DESIGN.TRIMMED_CURVE' IN TYPEOF(crv) THEN IF SIZEOF(['AUTOMOTIVE_DESIGN.LINE', 'AUTOMOTIVE_DESIGN.PARABOLA', 'AUTOMOTIVE_DESIGN.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 'AUTOMOTIVE_DESIGN.OFFSET_CURVE_3D' IN TYPEOF(crv) THEN RETURN (valid_geometrically_bounded_wf_curve(crv\offset_curve_3d. basis_curve)); ELSE IF 'AUTOMOTIVE_DESIGN.CURVE_REPLICA' IN TYPEOF(crv) THEN RETURN (valid_geometrically_bounded_wf_curve(crv\curve_replica. parent_curve)); ELSE IF 'AUTOMOTIVE_DESIGN.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; -- 10303-510: aic_geometrically_bounded_wireframe FUNCTION valid_geometrically_bounded_wf_point(pnt : point) : BOOLEAN; IF 'AUTOMOTIVE_DESIGN.CARTESIAN_POINT' IN TYPEOF(pnt) THEN RETURN (TRUE); ELSE IF 'AUTOMOTIVE_DESIGN.POINT_ON_CURVE' IN TYPEOF(pnt) THEN RETURN (valid_geometrically_bounded_wf_curve(pnt\point_on_curve. basis_curve)); ELSE IF 'AUTOMOTIVE_DESIGN.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; -- 10303-510: aic_geometrically_bounded_wireframe 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; -- 10303-43: representation_schema FUNCTION valid_time(time : local_time) : BOOLEAN; IF EXISTS(time.second_component) THEN RETURN (EXISTS(time.minute_component)); ELSE RETURN (TRUE); END_IF; END_FUNCTION; -- 10303-41: date_time_schema FUNCTION valid_units(m : measure_with_unit) : BOOLEAN; IF 'AUTOMOTIVE_DESIGN.LENGTH_MEASURE' IN TYPEOF(m.value_component) THEN IF derive_dimensional_exponents(m.unit_component) <> dimensional_exponents( 1.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000) THEN RETURN (FALSE); END_IF; END_IF; IF 'AUTOMOTIVE_DESIGN.MASS_MEASURE' IN TYPEOF(m.value_component) THEN IF derive_dimensional_exponents(m.unit_component) <> dimensional_exponents( 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000) THEN RETURN (FALSE); END_IF; END_IF; IF 'AUTOMOTIVE_DESIGN.TIME_MEASURE' IN TYPEOF(m.value_component) THEN IF derive_dimensional_exponents(m.unit_component) <> dimensional_exponents( 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 0.000000) THEN RETURN (FALSE); END_IF; END_IF; IF 'AUTOMOTIVE_DESIGN.ELECTRIC_CURRENT_MEASURE' IN TYPEOF(m. value_component) THEN IF derive_dimensional_exponents(m.unit_component) <> dimensional_exponents( 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000) THEN RETURN (FALSE); END_IF; END_IF; IF 'AUTOMOTIVE_DESIGN.THERMODYNAMIC_TEMPERATURE_MEASURE' IN TYPEOF(m. value_component) THEN IF derive_dimensional_exponents(m.unit_component) <> dimensional_exponents( 0.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000) THEN RETURN (FALSE); END_IF; END_IF; IF 'AUTOMOTIVE_DESIGN.CELSIUS_TEMPERATURE_MEASURE' IN TYPEOF(m. value_component) THEN IF derive_dimensional_exponents(m.unit_component) <> dimensional_exponents( 0.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000) THEN RETURN (FALSE); END_IF; END_IF; IF 'AUTOMOTIVE_DESIGN.AMOUNT_OF_SUBSTANCE_MEASURE' IN TYPEOF(m. value_component) THEN IF derive_dimensional_exponents(m.unit_component) <> dimensional_exponents( 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000) THEN RETURN (FALSE); END_IF; END_IF; IF 'AUTOMOTIVE_DESIGN.LUMINOUS_INTENSITY_MEASURE' IN TYPEOF(m. value_component) THEN IF derive_dimensional_exponents(m.unit_component) <> dimensional_exponents( 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 1.000000) THEN RETURN (FALSE); END_IF; END_IF; IF 'AUTOMOTIVE_DESIGN.PLANE_ANGLE_MEASURE' IN TYPEOF(m.value_component) THEN IF derive_dimensional_exponents(m.unit_component) <> dimensional_exponents( 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000) THEN RETURN (FALSE); END_IF; END_IF; IF 'AUTOMOTIVE_DESIGN.SOLID_ANGLE_MEASURE' IN TYPEOF(m.value_component) THEN IF derive_dimensional_exponents(m.unit_component) <> dimensional_exponents( 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000) THEN RETURN (FALSE); END_IF; END_IF; IF 'AUTOMOTIVE_DESIGN.AREA_MEASURE' IN TYPEOF(m.value_component) THEN IF derive_dimensional_exponents(m.unit_component) <> dimensional_exponents( 2.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000) THEN RETURN (FALSE); END_IF; END_IF; IF 'AUTOMOTIVE_DESIGN.VOLUME_MEASURE' IN TYPEOF(m.value_component) THEN IF derive_dimensional_exponents(m.unit_component) <> dimensional_exponents( 3.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000) THEN RETURN (FALSE); END_IF; END_IF; IF 'AUTOMOTIVE_DESIGN.RATIO_MEASURE' IN TYPEOF(m.value_component) THEN IF derive_dimensional_exponents(m.unit_component) <> dimensional_exponents( 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000) THEN RETURN (FALSE); END_IF; END_IF; IF 'AUTOMOTIVE_DESIGN.POSITIVE_LENGTH_MEASURE' IN TYPEOF(m.value_component ) THEN IF derive_dimensional_exponents(m.unit_component) <> dimensional_exponents( 1.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000) THEN RETURN (FALSE); END_IF; END_IF; IF 'AUTOMOTIVE_DESIGN.POSITIVE_PLANE_ANGLE_MEASURE' IN TYPEOF(m. value_component) THEN IF derive_dimensional_exponents(m.unit_component) <> dimensional_exponents( 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000) THEN RETURN (FALSE); END_IF; END_IF; RETURN (TRUE); END_FUNCTION; -- 10303-41: measure_schema FUNCTION valid_wireframe_edge_curve(crv : curve) : BOOLEAN; IF SIZEOF(['AUTOMOTIVE_DESIGN.LINE', 'AUTOMOTIVE_DESIGN.CONIC', 'AUTOMOTIVE_DESIGN.B_SPLINE_CURVE', 'AUTOMOTIVE_DESIGN.POLYLINE'] * TYPEOF(crv)) = 1 THEN RETURN (TRUE); ELSE IF 'AUTOMOTIVE_DESIGN.CURVE_REPLICA' IN TYPEOF(crv) THEN RETURN (valid_wireframe_edge_curve(crv\curve_replica.parent_curve)); ELSE IF 'AUTOMOTIVE_DESIGN.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; -- 10303-501: aic_edge_based_wireframe FUNCTION valid_wireframe_vertex_point(pnt : point) : BOOLEAN; IF 'AUTOMOTIVE_DESIGN.CARTESIAN_POINT' IN TYPEOF(pnt) THEN RETURN (TRUE); ELSE IF 'AUTOMOTIVE_DESIGN.POINT_REPLICA' IN TYPEOF(pnt) THEN RETURN (valid_wireframe_vertex_point(pnt\point_replica.parent_pt)); END_IF; END_IF; RETURN (FALSE); END_FUNCTION; -- 10303-501: aic_edge_based_wireframe FUNCTION value_range_aggregate_rep_item(agg : AGGREGATE OF representation_item ) : BOOLEAN; FUNCTION cri(agg : AGGREGATE OF representation_item) : BOOLEAN; IF (SIZEOF(agg) = 3) AND (SIZEOF(QUERY(i1 <* agg | 'AUTOMOTIVE_DESIGN.' + 'MEASURE_REPRESENTATION_ITEM' IN TYPEOF(i1))) = 3) THEN RETURN (TRUE); ELSE RETURN (FALSE); END_IF; END_FUNCTION; -- 10303-214: automotive_design IF (SIZEOF(agg) = 3) AND (SIZEOF(QUERY(i <* agg | ('AUTOMOTIVE_DESIGN.' + 'COMPOUND_REPRESENTATION_ITEM' IN TYPEOF(i)) AND cri(i\ compound_representation_item.item_element))) = 1) THEN RETURN (TRUE); ELSE RETURN (FALSE); END_IF; END_FUNCTION; -- 10303-214: automotive_design FUNCTION value_range_wr1(agg : AGGREGATE OF representation_item) : BOOLEAN; IF (SIZEOF(agg) = 2) AND ((SIZEOF(QUERY(i1 <* agg | 'AUTOMOTIVE_DESIGN.MEASURE_REPRESENTATION_ITEM' IN TYPEOF(i1))) = 2) OR ( SIZEOF(QUERY(i2 <* agg | 'AUTOMOTIVE_DESIGN.VALUE_REPRESENTATION_ITEM' IN TYPEOF(i2))) = 2)) THEN RETURN (TRUE); ELSE RETURN (FALSE); END_IF; END_FUNCTION; -- 10303-214: automotive_design FUNCTION value_range_wr2(agg : AGGREGATE OF representation_item) : BOOLEAN; IF (SIZEOF(QUERY(i <* agg | i.name = 'upper limit')) = 1) AND (SIZEOF(QUERY(i <* agg | i.name = 'lower limit')) = 1) THEN RETURN (TRUE); ELSE RETURN (FALSE); END_IF; END_FUNCTION; -- 10303-214: automotive_design FUNCTION value_range_wr3(agg : AGGREGATE OF representation_item) : BOOLEAN; IF SIZEOF(QUERY(i1 <* agg | ( 'AUTOMOTIVE_DESIGN.MEASURE_REPRESENTATION_ITEM' IN TYPEOF(i1)) AND (SIZEOF (QUERY(i2 <* agg | ('AUTOMOTIVE_DESIGN.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_FUNCTION; -- 10303-214: automotive_design 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 IF 'AUTOMOTIVE_DESIGN.VECTOR' IN TYPEOF(arg1) THEN mag1 := arg1.magnitude; vec1 := arg1.orientation; ELSE mag1 := 1.0; vec1 := arg1; END_IF; IF 'AUTOMOTIVE_DESIGN.VECTOR' IN TYPEOF(arg2) THEN mag2 := arg2.magnitude; vec2 := arg2.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_IF; RETURN (result); END_FUNCTION; -- 10303-42: geometry_schema FUNCTION ypr_index(ypr : ypr_enumeration) : INTEGER; CASE ypr OF yaw : RETURN (1); pitch : RETURN (2); roll : RETURN (3); END_CASE; RETURN (?); END_FUNCTION; -- 10303-105: kinematic_structure_schema RULE application_protocol_definition_required FOR (application_context); WHERE wr1 : SIZEOF(QUERY(ac <* application_context | SIZEOF(QUERY(apd <* USEDIN(ac , 'AUTOMOTIVE_DESIGN.APPLICATION_PROTOCOL_DEFINITION.APPLICATION') | apd .application_interpreted_model_schema_name = 'AUTOMOTIVE_DESIGN')) > 0)) > 0; END_RULE; -- 10303-214: automotive_design RULE approval_person_organization_requires_date_time FOR ( approval_person_organization); WHERE wr1 : SIZEOF(QUERY(apo <* approval_person_organization | SIZEOF(QUERY(u <* USEDIN(apo, 'AUTOMOTIVE_DESIGN.APPLIED_DATE_ASSIGNMENT.ITEMS') | u.role. name = 'sign off')) + SIZEOF(QUERY(u <* USEDIN(apo, 'AUTOMOTIVE_DESIGN.APPLIED_DATE_AND_TIME_ASSIGNMENT.ITEMS') | u.role. name = 'sign off')) <> 1)) = 0; END_RULE; -- 10303-214: automotive_design RULE approval_requires_approval_assignment FOR (approval); WHERE wr1 : SIZEOF(QUERY(a <* approval | SIZEOF(USEDIN(a, 'AUTOMOTIVE_DESIGN.APPROVAL_ASSIGNMENT.ASSIGNED_APPROVAL')) = 0)) = 0; END_RULE; -- 10303-214: automotive_design RULE compatible_dimension FOR (cartesian_point, direction, representation_context, geometric_representation_context); WHERE wr1 : SIZEOF(QUERY(x <* cartesian_point | SIZEOF(QUERY(y <* geometric_representation_context | item_in_context(x, y) AND (HIINDEX(x. coordinates) <> y.coordinate_space_dimension))) > 0)) = 0; wr2 : SIZEOF(QUERY(x <* direction | SIZEOF(QUERY(y <* geometric_representation_context | item_in_context(x, y) AND (HIINDEX(x. direction_ratios) <> y.coordinate_space_dimension))) > 0)) = 0; END_RULE; -- 10303-42: geometry_schema RULE complex_product_requires_product_definition FOR (product_definition, product_definition_formation, product_related_product_category); WHERE wr1 : SIZEOF(QUERY(pdf <* product_definition_formation | (SIZEOF(QUERY(prpc <* USEDIN(pdf.of_product, 'AUTOMOTIVE_DESIGN.PRODUCT_RELATED_PRODUCT_CATEGORY.PRODUCTS') | prpc. name = 'functionality')) = 1) AND (SIZEOF(QUERY(pd <* USEDIN(pdf, 'AUTOMOTIVE_DESIGN.PRODUCT_DEFINITION.FORMATION') | pd. frame_of_reference.name = 'functional definition')) <> 1) OR (SIZEOF(QUERY( prpc <* USEDIN(pdf.of_product, 'AUTOMOTIVE_DESIGN.PRODUCT_RELATED_PRODUCT_CATEGORY.PRODUCTS') | prpc. name = 'conceptual design')) = 1) AND (SIZEOF(QUERY(pd <* USEDIN(pdf, 'AUTOMOTIVE_DESIGN.PRODUCT_DEFINITION.FORMATION') | pd. frame_of_reference.name = 'conceptual definition')) <> 1) OR (SIZEOF(QUERY( prpc <* USEDIN(pdf.of_product, 'AUTOMOTIVE_DESIGN.PRODUCT_RELATED_PRODUCT_CATEGORY.PRODUCTS') | prpc. name = 'alternative solution')) = 1) AND (SIZEOF(QUERY(pd <* USEDIN(pdf, 'AUTOMOTIVE_DESIGN.PRODUCT_DEFINITION.FORMATION') | pd. frame_of_reference.name = 'alternative definition')) <> 1))) = 0; END_RULE; -- 10303-214: automotive_design RULE compound_features_of_equal_type FOR (compound_feature, shape_aspect_relationship); WHERE wr1 : SIZEOF(QUERY(sar <* shape_aspect_relationship | (sar.name = 'compound feature ordering') AND (SIZEOF(QUERY(fcr <* USEDIN(sar. relating_shape_aspect, 'AUTOMOTIVE_DESIGN.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | ( 'AUTOMOTIVE_DESIGN.' + 'FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF(fcr)) AND ('AUTOMOTIVE_DESIGN.' + 'COMPOSITE_SHAPE_ASPECT' IN TYPEOF(fcr. relating_shape_aspect)) AND (fcr.relating_shape_aspect.name IN [ 'compound feature in solid', 'compound feature in panel']))) = 0) AND ( SIZEOF(QUERY(fcr <* USEDIN(sar.related_shape_aspect, 'AUTOMOTIVE_DESIGN.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | ( 'AUTOMOTIVE_DESIGN.' + 'FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF(fcr)) AND ('AUTOMOTIVE_DESIGN.' + 'COMPOSITE_SHAPE_ASPECT' IN TYPEOF(fcr. relating_shape_aspect)) AND (fcr.relating_shape_aspect.name IN [ 'compound feature in solid', 'compound feature in panel']))) = 0))) = 0; END_RULE; -- 10303-214: automotive_design 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)) > 0)) > 0)) = 0; wr3 : SIZEOF(QUERY(qri <* qualified_representation_item | SIZEOF(QUERY(u1 <* qri.qualifiers | ('AUTOMOTIVE_DESIGN.' + 'UNCERTAINTY_QUALIFIER' IN TYPEOF(u1)) AND (SIZEOF(QUERY(u2 <* qri.qualifiers | ( 'AUTOMOTIVE_DESIGN.' + 'UNCERTAINTY_QUALIFIER' IN TYPEOF(u2)) AND (u2\ uncertainty_qualifier.measure_name = u1\uncertainty_qualifier.measure_name) )) > 0))) > 0)) = 0; END_RULE; -- 10303-214: automotive_design RULE coordinated_assembly_and_shape FOR (next_assembly_usage_occurrence); WHERE wr1 : SIZEOF(QUERY(nauo <* next_assembly_usage_occurrence | NOT assembly_shape_is_defined(nauo))) = 0; END_RULE; -- 10303-214: automotive_design RULE curve_font_usage FOR (curve_style_font, externally_defined_curve_font, pre_defined_curve_font); WHERE wr1 : SIZEOF(QUERY(csf <* curve_style_font | SIZEOF(USEDIN(csf, 'AUTOMOTIVE_DESIGN.CURVE_STYLE.CURVE_FONT')) = 0)) = 0; wr2 : SIZEOF(QUERY(pdcf <* pre_defined_curve_font | SIZEOF(USEDIN(pdcf, 'AUTOMOTIVE_DESIGN.CURVE_STYLE.CURVE_FONT')) = 0)) = 0; wr3 : SIZEOF(QUERY(edcf <* externally_defined_curve_font | NOT (SIZEOF(USEDIN (edcf, 'AUTOMOTIVE_DESIGN.CURVE_STYLE.CURVE_FONT')) >= 1))) = 0; END_RULE; -- 10303-214: automotive_design RULE dependent_instantiable_action_directive FOR (action_directive); WHERE wr1 : SIZEOF(QUERY(a <* action_directive | NOT (SIZEOF(USEDIN(a, '')) > 0))) = 0; END_RULE; -- 10303-214: automotive_design RULE dependent_instantiable_action_resource_type FOR (action_resource_type); WHERE wr1 : SIZEOF(QUERY(a <* action_resource_type | NOT (SIZEOF(USEDIN(a, '')) > 0 ))) = 0; END_RULE; -- 10303-214: automotive_design RULE dependent_instantiable_approval_role FOR (approval_role); WHERE wr1 : SIZEOF(QUERY(a <* approval_role | NOT (SIZEOF(USEDIN(a, '')) > 0))) = 0 ; END_RULE; -- 10303-214: automotive_design RULE dependent_instantiable_attribute_value_role FOR (attribute_value_role); WHERE wr1 : SIZEOF(QUERY(a <* attribute_value_role | NOT (SIZEOF(USEDIN(a, '')) > 0 ))) = 0; END_RULE; -- 10303-214: automotive_design RULE dependent_instantiable_classification_role FOR (classification_role); WHERE wr1 : SIZEOF(QUERY(c <* classification_role | NOT (SIZEOF(USEDIN(c, '')) > 0) )) = 0; END_RULE; -- 10303-214: automotive_design RULE dependent_instantiable_colour_rgb FOR (colour_rgb); WHERE wr1 : SIZEOF(QUERY(c <* colour_rgb | NOT (SIZEOF(USEDIN(c, '')) > 0))) = 0; END_RULE; -- 10303-214: automotive_design RULE dependent_instantiable_contract_type FOR (contract_type); WHERE wr1 : SIZEOF(QUERY(c <* contract_type | NOT (SIZEOF(USEDIN(c, '')) > 0))) = 0 ; END_RULE; -- 10303-214: automotive_design RULE dependent_instantiable_curve_style FOR (curve_style); WHERE wr1 : SIZEOF(QUERY(c <* curve_style | NOT (SIZEOF(USEDIN(c, '')) > 0))) = 0; END_RULE; -- 10303-214: automotive_design RULE dependent_instantiable_date FOR (date); WHERE wr1 : SIZEOF(QUERY(d <* date | NOT (SIZEOF(USEDIN(d, '')) > 0))) = 0; END_RULE; -- 10303-214: automotive_design RULE dependent_instantiable_date_and_time FOR (date_and_time); WHERE wr1 : SIZEOF(QUERY(d <* date_and_time | NOT (SIZEOF(USEDIN(d, '')) > 0))) = 0 ; END_RULE; -- 10303-214: automotive_design RULE dependent_instantiable_date_role FOR (date_role); WHERE wr1 : SIZEOF(QUERY(d <* date_role | NOT (SIZEOF(USEDIN(d, '')) > 0))) = 0; END_RULE; -- 10303-214: automotive_design RULE dependent_instantiable_date_time_role FOR (date_time_role); WHERE wr1 : SIZEOF(QUERY(d <* date_time_role | NOT (SIZEOF(USEDIN(d, '')) > 0))) = 0; END_RULE; -- 10303-214: automotive_design RULE dependent_instantiable_derived_unit FOR (derived_unit); WHERE wr1 : SIZEOF(QUERY(d <* derived_unit | NOT (SIZEOF(USEDIN(d, '')) > 0))) = 0; END_RULE; -- 10303-214: automotive_design RULE dependent_instantiable_dimensional_size FOR (dimensional_size); WHERE wr1 : SIZEOF(QUERY(d <* dimensional_size | NOT (SIZEOF(USEDIN(d, '')) > 0))) = 0; END_RULE; -- 10303-214: automotive_design RULE dependent_instantiable_document_usage_role FOR (document_usage_role); WHERE wr1 : SIZEOF(QUERY(d <* document_usage_role | NOT (SIZEOF(USEDIN(d, '')) > 0) )) = 0; END_RULE; -- 10303-214: automotive_design RULE dependent_instantiable_effectivity_context_role FOR ( effectivity_context_role); WHERE wr1 : SIZEOF(QUERY(e <* effectivity_context_role | NOT (SIZEOF(USEDIN(e, '')) > 0))) = 0; END_RULE; -- 10303-214: automotive_design RULE dependent_instantiable_event_occurrence_role FOR (event_occurrence_role); WHERE wr1 : SIZEOF(QUERY(e <* event_occurrence_role | NOT (SIZEOF(USEDIN(e, '')) > 0))) = 0; END_RULE; -- 10303-214: automotive_design RULE dependent_instantiable_externally_defined_symbol FOR ( externally_defined_symbol); WHERE wr1 : SIZEOF(QUERY(e <* externally_defined_symbol | NOT (SIZEOF(USEDIN(e, '') ) > 0))) = 0; END_RULE; -- 10303-214: automotive_design RULE dependent_instantiable_fill_area_style FOR (fill_area_style); WHERE wr1 : SIZEOF(QUERY(f <* fill_area_style | NOT (SIZEOF(USEDIN(f, '')) > 0))) = 0; END_RULE; -- 10303-214: automotive_design RULE dependent_instantiable_fill_area_style_colour FOR (fill_area_style_colour ); WHERE wr1 : SIZEOF(QUERY(f <* fill_area_style_colour | NOT (SIZEOF(USEDIN(f, '')) > 0))) = 0; END_RULE; -- 10303-214: automotive_design RULE dependent_instantiable_identification_role FOR (identification_role); WHERE wr1 : SIZEOF(QUERY(i <* identification_role | NOT (SIZEOF(USEDIN(i, '')) > 0) )) = 0; END_RULE; -- 10303-214: automotive_design RULE dependent_instantiable_measure_with_unit FOR (measure_with_unit); WHERE wr1 : SIZEOF(QUERY(m <* measure_with_unit | NOT (SIZEOF(USEDIN(m, '')) > 0))) = 0; END_RULE; -- 10303-214: automotive_design RULE dependent_instantiable_named_unit FOR (named_unit); WHERE wr1 : SIZEOF(QUERY(n <* named_unit | NOT (SIZEOF(USEDIN(n, '')) > 0))) = 0; END_RULE; -- 10303-214: automotive_design RULE dependent_instantiable_object_role FOR (object_role); WHERE wr1 : SIZEOF(QUERY(o <* object_role | NOT (SIZEOF(USEDIN(o, '')) > 0))) = 0; END_RULE; -- 10303-214: automotive_design RULE dependent_instantiable_organization_role FOR (organization_role); WHERE wr1 : SIZEOF(QUERY(o <* organization_role | NOT (SIZEOF(USEDIN(o, '')) > 0))) = 0; END_RULE; -- 10303-214: automotive_design RULE dependent_instantiable_organizational_project_role FOR ( organizational_project_role); WHERE wr1 : SIZEOF(QUERY(o <* organizational_project_role | NOT (SIZEOF(USEDIN(o, '')) > 0))) = 0; END_RULE; -- 10303-214: automotive_design RULE dependent_instantiable_person_and_organization_role FOR ( person_and_organization_role); WHERE wr1 : SIZEOF(QUERY(p <* person_and_organization_role | NOT (SIZEOF(USEDIN(p, '')) > 0))) = 0; END_RULE; -- 10303-214: automotive_design RULE dependent_instantiable_pre_defined_colour FOR (pre_defined_colour); WHERE wr1 : SIZEOF(QUERY(p <* pre_defined_colour | NOT (SIZEOF(USEDIN(p, '')) > 0)) ) = 0; END_RULE; -- 10303-214: automotive_design RULE dependent_instantiable_pre_defined_symbol FOR (pre_defined_symbol); WHERE wr1 : SIZEOF(QUERY(p <* pre_defined_symbol | NOT (SIZEOF(USEDIN(p, '')) > 0)) ) = 0; END_RULE; -- 10303-214: automotive_design RULE dependent_instantiable_precision_qualifier FOR (precision_qualifier); WHERE wr1 : SIZEOF(QUERY(p <* precision_qualifier | NOT (SIZEOF(USEDIN(p, '')) > 0) )) = 0; END_RULE; -- 10303-214: automotive_design RULE dependent_instantiable_presentation_style_by_context FOR ( presentation_style_by_context); WHERE wr1 : SIZEOF(QUERY(p <* presentation_style_by_context | NOT (SIZEOF(USEDIN(p , '')) > 0))) = 0; END_RULE; -- 10303-214: automotive_design RULE dependent_instantiable_product_definition_context_role FOR ( product_definition_context_role); WHERE wr1 : SIZEOF(QUERY(p <* product_definition_context_role | NOT (SIZEOF(USEDIN( p, '')) > 0))) = 0; END_RULE; -- 10303-214: automotive_design RULE dependent_instantiable_resource_requirement_type FOR ( resource_requirement_type); WHERE wr1 : SIZEOF(QUERY(r <* resource_requirement_type | NOT (SIZEOF(USEDIN(r, '') ) > 0))) = 0; END_RULE; -- 10303-214: automotive_design RULE dependent_instantiable_retention FOR (retention); WHERE wr1 : SIZEOF(QUERY(r <* retention | NOT (SIZEOF(USEDIN(r, '')) > 0))) = 0; END_RULE; -- 10303-214: automotive_design RULE dependent_instantiable_standard_uncertainty FOR (standard_uncertainty); WHERE wr1 : SIZEOF(QUERY(s <* standard_uncertainty | NOT (SIZEOF(USEDIN(s, '')) > 0 ))) = 0; END_RULE; -- 10303-214: automotive_design RULE dependent_instantiable_symbol_colour FOR (symbol_colour); WHERE wr1 : SIZEOF(QUERY(s <* symbol_colour | NOT (SIZEOF(USEDIN(s, '')) > 0))) = 0 ; END_RULE; -- 10303-214: automotive_design RULE dependent_instantiable_text_style FOR (text_style); WHERE wr1 : SIZEOF(QUERY(t <* text_style | NOT (SIZEOF(USEDIN(t, '')) > 0))) = 0; END_RULE; -- 10303-214: automotive_design RULE dependent_instantiable_text_style_for_defined_font FOR ( text_style_for_defined_font); WHERE wr1 : SIZEOF(QUERY(t <* text_style_for_defined_font | NOT (SIZEOF(USEDIN(t, '')) > 0))) = 0; END_RULE; -- 10303-214: automotive_design RULE dependent_instantiable_time_interval_role FOR (time_interval_role); WHERE wr1 : SIZEOF(QUERY(t <* time_interval_role | NOT (SIZEOF(USEDIN(t, '')) > 0)) ) = 0; END_RULE; -- 10303-214: automotive_design RULE dependent_instantiable_tolerance_value FOR (tolerance_value); WHERE wr1 : SIZEOF(QUERY(t <* tolerance_value | NOT (SIZEOF(USEDIN(t, '')) > 0))) = 0; END_RULE; -- 10303-214: automotive_design RULE dependent_instantiable_type_qualifier FOR (type_qualifier); WHERE wr1 : SIZEOF(QUERY(t <* type_qualifier | NOT (SIZEOF(USEDIN(t, '')) > 0))) = 0; END_RULE; -- 10303-214: automotive_design RULE dependent_instantiable_uncertainty_qualifier FOR (uncertainty_qualifier); WHERE wr1 : SIZEOF(QUERY(u <* uncertainty_qualifier | NOT (SIZEOF(USEDIN(u, '')) > 0))) = 0; END_RULE; -- 10303-214: automotive_design RULE design_constraint_requires_product_definition FOR (product_definition, product_definition_formation, product_related_product_category); WHERE wr1 : SIZEOF(QUERY(pdf <* product_definition_formation | (SIZEOF(QUERY(prpc <* USEDIN(pdf.of_product, 'AUTOMOTIVE_DESIGN.PRODUCT_RELATED_PRODUCT_CATEGORY.PRODUCTS') | prpc. name = 'requirement')) > 0) AND (SIZEOF(QUERY(pd <* USEDIN(pdf, 'AUTOMOTIVE_DESIGN.PRODUCT_DEFINITION.FORMATION') | pd. frame_of_reference.name = 'design constraint definition')) <> 1))) = 0; END_RULE; -- 10303-214: automotive_design RULE dimensionality_is_two_or_three FOR (geometric_representation_context); WHERE wr1 : SIZEOF(QUERY(g <* geometric_representation_context | NOT ((g. coordinate_space_dimension = 2) OR (g.coordinate_space_dimension = 3)))) = 0; END_RULE; -- 10303-214: automotive_design RULE draughting_subfigure_representation_layers FOR ( draughting_subfigure_representation); WHERE wr1 : SIZEOF(QUERY(dsr <* draughting_subfigure_representation | NOT (SIZEOF( QUERY(item <* dsr\representation.items | ('AUTOMOTIVE_DESIGN.' + 'ANNOTATION_OCCURRENCE' IN TYPEOF(item)) AND (SIZEOF(USEDIN(item, 'AUTOMOTIVE_DESIGN.PRESENTATION_LAYER_ASSIGNMENT.ASSIGNED_ITEMS')) = 0)) ) = 0))) = 0; END_RULE; -- 10303-214: automotive_design RULE drawing_sheet_annotation_layers FOR (drawing_sheet_revision); WHERE wr1 : SIZEOF(QUERY(dsr <* drawing_sheet_revision | NOT (SIZEOF(QUERY(ao <* QUERY(it <* dsr\representation.items | 'AUTOMOTIVE_DESIGN.' + 'ANNOTATION_OCCURRENCE' IN TYPEOF(it)) | NOT (SIZEOF(USEDIN(ao, 'AUTOMOTIVE_DESIGN.PRESENTATION_LAYER_ASSIGNMENT.ASSIGNED_ITEMS')) >= 1) )) = 0))) = 0; END_RULE; -- 10303-214: automotive_design RULE drawing_sheet_layout_usage FOR (mapped_item); WHERE wr1 : SIZEOF(QUERY(dsl <* QUERY(mi <* mapped_item | 'AUTOMOTIVE_DESIGN.' + 'DRAWING_SHEET_LAYOUT' IN TYPEOF(mi.mapping_source.mapped_representation )) | NOT (SIZEOF(USEDIN(dsl, '')) = SIZEOF(QUERY(dsr <* USEDIN(dsl, 'AUTOMOTIVE_DESIGN.REPRESENTATION.ITEMS') | 'AUTOMOTIVE_DESIGN.' + 'DRAWING_SHEET_REVISION' IN TYPEOF(dsr)))))) = 0; END_RULE; -- 10303-214: automotive_design RULE drawing_view_annotation_layers FOR (presentation_view); WHERE wr1 : SIZEOF(QUERY(pv <* presentation_view | NOT (SIZEOF(QUERY(ao <* QUERY(it <* pv\representation.items | 'AUTOMOTIVE_DESIGN.' + 'ANNOTATION_OCCURRENCE' IN TYPEOF(it)) | NOT (SIZEOF(USEDIN(ao, 'AUTOMOTIVE_DESIGN.PRESENTATION_LAYER_ASSIGNMENT.ASSIGNED_ITEMS')) >= 1) )) = 0))) = 0; END_RULE; -- 10303-214: automotive_design RULE event_occurrence_requires_event_occurrence_assignment FOR ( event_occurrence, event_occurrence_assignment, relative_event_occurrence); WHERE wr1 : SIZEOF(QUERY(eo <* event_occurrence | (SIZEOF(USEDIN(eo, 'AUTOMOTIVE_DESIGN.RELATIVE_EVENT_OCCURRENCE.BASE_EVENT')) = 0) AND ( SIZEOF(USEDIN(eo, 'AUTOMOTIVE_DESIGN.EVENT_OCCURRENCE_ASSIGNMENT.ASSIGNED_EVENT_OCCURRENCE' )) = 0))) = 0; END_RULE; -- 10303-214: automotive_design RULE executed_action_requires_action_status FOR (executed_action); WHERE wr1 : SIZEOF(QUERY(ea <* executed_action | SIZEOF(USEDIN(ea, 'AUTOMOTIVE_DESIGN.ACTION_STATUS.ASSIGNED_ACTION')) > 1)) = 0; END_RULE; -- 10303-214: automotive_design RULE externally_defined_class_with_known_source_requirement FOR ( externally_defined_class); WHERE wr1 : SIZEOF(QUERY(edc <* externally_defined_class | ('AUTOMOTIVE_DESIGN.' + 'KNOWN_SOURCE' IN TYPEOF(edc.source)) AND (SIZEOF(QUERY(aoa <* USEDIN( edc, 'AUTOMOTIVE_DESIGN.APPLIED_ORGANIZATION_ASSIGNMENT.ITEMS') | aoa. role.name = 'class supplier')) = 0))) = 0; END_RULE; -- 10303-214: automotive_design RULE fill_area_style_tile_symbol_constraint FOR ( fill_area_style_tile_symbol_with_style); WHERE wr1 : SIZEOF(QUERY(fast <* fill_area_style_tile_symbol_with_style | ( 'AUTOMOTIVE_DESIGN.' + 'DEFINED_SYMBOL' IN TYPEOF(fast.symbol\ styled_item.item)) AND NOT ('AUTOMOTIVE_DESIGN.' + 'EXTERNALLY_DEFINED_SYMBOL' IN TYPEOF(fast.symbol\styled_item.item\ defined_symbol.definition)))) = 0; END_RULE; -- 10303-214: automotive_design RULE full_model_change_completeness_for_action_property FOR (action_property); WHERE wr1 : SIZEOF(QUERY(ap <* action_property | (ap.name = 'full model change') AND (SIZEOF(QUERY(apr <* USEDIN(ap, 'AUTOMOTIVE_DESIGN.ACTION_PROPERTY_REPRESENTATION.PROPERTY') | apr.name = 'original representation')) = 0))) = 0; wr2 : SIZEOF(QUERY(ap <* action_property | (ap.name = 'full model change') AND (SIZEOF(QUERY(apr <* USEDIN(ap, 'AUTOMOTIVE_DESIGN.ACTION_PROPERTY_REPRESENTATION.PROPERTY') | apr.name = 'replacement representation')) = 0))) = 0; wr3 : SIZEOF(QUERY(ap <* action_property | SIZEOF(QUERY(apr1 <* USEDIN(ap, 'AUTOMOTIVE_DESIGN.ACTION_PROPERTY_REPRESENTATION.PROPERTY') | (apr1. name = 'added elements') AND (SIZEOF(QUERY(apr2 <* USEDIN(ap, 'AUTOMOTIVE_DESIGN.ACTION_PROPERTY_REPRESENTATION.PROPERTY') | (apr2. name = 'replacement representation') AND (SIZEOF(QUERY(i1 <* apr1. representation.items | SIZEOF(QUERY(i2 <* apr2.representation.items | i1 :=: i2)) > 0)) <> SIZEOF(apr1.representation.items)))) > 0))) > 0)) = 0; wr4 : SIZEOF(QUERY(ap <* action_property | SIZEOF(QUERY(apr1 <* USEDIN(ap, 'AUTOMOTIVE_DESIGN.ACTION_PROPERTY_REPRESENTATION.PROPERTY') | (apr1. name = 'deleted elements') AND (SIZEOF(QUERY(apr2 <* USEDIN(ap, 'AUTOMOTIVE_DESIGN.ACTION_PROPERTY_REPRESENTATION.PROPERTY') | (apr2. name = 'original representation') AND (SIZEOF(QUERY(i1 <* apr1. representation.items | SIZEOF(QUERY(i2 <* apr2.representation.items | i1 :=: i2)) > 0)) <> SIZEOF(apr1.representation.items)))) > 0))) > 0)) = 0; END_RULE; -- 10303-214: automotive_design RULE full_model_change_completeness_for_property_definition FOR ( property_definition); WHERE wr1 : SIZEOF(QUERY(pd <* property_definition | (pd.name = 'full model change' ) AND (SIZEOF(QUERY(pdr <* USEDIN(pd, 'AUTOMOTIVE_DESIGN.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | pdr .name = 'original representation')) = 0))) = 0; wr2 : SIZEOF(QUERY(pd <* property_definition | (pd.name = 'full model change' ) AND (SIZEOF(QUERY(pdr <* USEDIN(pd, 'AUTOMOTIVE_DESIGN.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | pdr .name = 'replacement representation')) = 0))) = 0; wr3 : SIZEOF(QUERY(pd <* property_definition | SIZEOF(QUERY(pdr <* USEDIN(pd , 'AUTOMOTIVE_DESIGN.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ( pdr.name = 'added elements') AND (SIZEOF(QUERY(i <* pdr.used_representation .items | SIZEOF(QUERY(pdr1 <* USEDIN(pd, 'AUTOMOTIVE_DESIGN.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ( pdr1.name = 'replacement representation') AND NOT (i IN pdr1. used_representation.items))) > 0)) > 0))) > 0)) = 0; wr4 : SIZEOF(QUERY(pd <* property_definition | SIZEOF(QUERY(pdr <* USEDIN(pd , 'AUTOMOTIVE_DESIGN.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ( pdr.name = 'deleted elements') AND (SIZEOF(QUERY(i <* pdr. used_representation.items | SIZEOF(QUERY(pdr1 <* USEDIN(pd, 'AUTOMOTIVE_DESIGN.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ( pdr1.name = 'original representation') AND NOT (i IN pdr1. used_representation.items))) > 0)) > 0))) > 0)) = 0; END_RULE; -- 10303-214: automotive_design RULE global_length_and_angle_units_2d_or_3d FOR (global_unit_assigned_context); WHERE wr1 : SIZEOF(QUERY(guac <* global_unit_assigned_context | SIZEOF(guac.units) < 2)) = 0; wr2 : SIZEOF(QUERY(guac <* global_unit_assigned_context | (SIZEOF(QUERY(x <* guac.units | 'AUTOMOTIVE_DESIGN.' + 'LENGTH_UNIT' IN TYPEOF(x))) <> 1) OR (SIZEOF(QUERY(x <* guac.units | 'AUTOMOTIVE_DESIGN.' + 'PLANE_ANGLE_UNIT' IN TYPEOF(x))) <> 1))) = 0; END_RULE; -- 10303-214: automotive_design RULE person_requires_person_and_organization FOR (person); WHERE wr1 : SIZEOF(QUERY(p <* person | SIZEOF(USEDIN(p, 'AUTOMOTIVE_DESIGN.PERSON_AND_ORGANIZATION.THE_PERSON')) = 0)) = 0; END_RULE; -- 10303-214: automotive_design RULE physical_instance_requires_product_definition FOR (product_definition, product_definition_formation, product_related_product_category); WHERE wr1 : SIZEOF(QUERY(pdf <* product_definition_formation | (SIZEOF(QUERY(prpc <* USEDIN(pdf.of_product, 'AUTOMOTIVE_DESIGN.PRODUCT_RELATED_PRODUCT_CATEGORY.PRODUCTS') | prpc. name = 'physically realized product')) > 0) AND (SIZEOF(QUERY(pd <* USEDIN( pdf, 'AUTOMOTIVE_DESIGN.PRODUCT_DEFINITION.FORMATION') | pd. frame_of_reference.name = 'physical occurrence')) <> 1))) = 0; END_RULE; -- 10303-214: automotive_design RULE plib_class_reference_requires_version FOR (externally_defined_class); WHERE wr1 : SIZEOF(QUERY(edc <* externally_defined_class | ('AUTOMOTIVE_DESIGN.' + 'KNOWN_SOURCE' IN TYPEOF(edc.source)) AND (SIZEOF(QUERY(aei <* USEDIN( edc, 'AUTOMOTIVE_DESIGN.APPLIED_EXTERNAL_IDENTIFICATION_ASSIGNMENT.ITEMS') | aei.role.name = 'version')) <> 1))) = 0; wr2 : SIZEOF(QUERY(edc <* externally_defined_class | ('AUTOMOTIVE_DESIGN.' + 'KNOWN_SOURCE' IN TYPEOF(edc.source)) AND (SIZEOF(QUERY(aei <* USEDIN( edc, 'AUTOMOTIVE_DESIGN.APPLIED_IDENTIFICATION_ASSIGNMENT.ITEMS') | aei. role.name = 'version')) > 0))) = 0; END_RULE; -- 10303-214: automotive_design RULE plib_property_reference_requires_name_scope FOR ( externally_defined_general_property); WHERE wr1 : SIZEOF(QUERY(edgp <* externally_defined_general_property | ( 'AUTOMOTIVE_DESIGN.' + 'KNOWN_SOURCE' IN TYPEOF(edgp.source)) AND ( SIZEOF(QUERY(edir <* USEDIN(edgp, 'AUTOMOTIVE_DESIGN.EXTERNALLY_DEFINED_ITEM_RELATIONSHIP.RELATING_ITEM') | (edir.name = 'name scope') AND ('AUTOMOTIVE_DESIGN.' + 'EXTERNALLY_DEFINED_CLASS' IN TYPEOF(edir.related_item)) AND ( 'AUTOMOTIVE_DESIGN.' + 'KNOWN_SOURCE' IN TYPEOF(edir.related_item.source )))) <> 1))) = 0; END_RULE; -- 10303-214: automotive_design RULE plib_property_reference_requires_version FOR ( externally_defined_general_property); WHERE wr1 : SIZEOF(QUERY(edgp <* externally_defined_general_property | ( 'AUTOMOTIVE_DESIGN.' + 'KNOWN_SOURCE' IN TYPEOF(edgp.source)) AND ( SIZEOF(QUERY(edir <* USEDIN(edgp, 'AUTOMOTIVE_DESIGN.APPLIED_EXTERNAL_IDENTIFICATION_ASSIGNMENT.ITEMS') | edir.role.name = 'version')) <> 1))) = 0; END_RULE; -- 10303-214: automotive_design RULE presentation_layer_assignment_constraint_2d_or_3d FOR ( presentation_layer_assignment); WHERE wr1 : SIZEOF(QUERY(pla <* presentation_layer_assignment | NOT (SIZEOF(QUERY( pnt <* QUERY(item <* pla.assigned_items | 'AUTOMOTIVE_DESIGN.' + 'POINT' IN TYPEOF(item)) | NOT (SIZEOF(QUERY(rep <* USEDIN(pnt, 'AUTOMOTIVE_DESIGN.REPRESENTATION.ITEMS') | 'AUTOMOTIVE_DESIGN.' + 'SHAPE_REPRESENTATION' IN TYPEOF(rep))) = 0))) = 0))) = 0; wr2 : SIZEOF(QUERY(pla <* presentation_layer_assignment | NOT (SIZEOF(QUERY( crv <* QUERY(item <* pla.assigned_items | 'AUTOMOTIVE_DESIGN.' + 'CURVE' IN TYPEOF(item)) | NOT (SIZEOF(QUERY(rep <* USEDIN(crv, 'AUTOMOTIVE_DESIGN.REPRESENTATION.ITEMS') | 'AUTOMOTIVE_DESIGN.' + 'SHAPE_REPRESENTATION' IN TYPEOF(rep))) = 0))) = 0))) = 0; wr3 : SIZEOF(QUERY(pla <* presentation_layer_assignment | NOT (SIZEOF(QUERY( srf <* QUERY(item <* pla.assigned_items | 'AUTOMOTIVE_DESIGN.' + 'SURFACE' IN TYPEOF(item)) | NOT (SIZEOF(QUERY(rep <* USEDIN(srf, 'AUTOMOTIVE_DESIGN.REPRESENTATION.ITEMS') | 'AUTOMOTIVE_DESIGN.' + 'SHAPE_REPRESENTATION' IN TYPEOF(rep))) = 0))) = 0))) = 0; wr4 : SIZEOF(QUERY(pla <* presentation_layer_assignment | NOT (SIZEOF(QUERY( ao <* QUERY(item <* pla.assigned_items | 'AUTOMOTIVE_DESIGN.' + 'ANNOTATION_OCCURRENCE' IN TYPEOF(item)) | NOT (SIZEOF(QUERY(ur <* using_representations(ao) | NOT (SIZEOF(TYPEOF(ur) * [ 'AUTOMOTIVE_DESIGN.' + 'DRAUGHTING_SUBFIGURE_REPRESENTATION', 'AUTOMOTIVE_DESIGN.' + 'DRAUGHTING_MODEL', 'AUTOMOTIVE_DESIGN.' + 'PRESENTATION_AREA', 'AUTOMOTIVE_DESIGN.' + 'PRESENTATION_VIEW']) = 1))) = 0))) = 0))) = 0; END_RULE; -- 10303-214: automotive_design RULE presentation_view_presented_once FOR (presentation_view); WHERE wr1 : SIZEOF(QUERY(pv <* presentation_view | SIZEOF(QUERY(rm <* USEDIN(pv, 'AUTOMOTIVE_DESIGN.REPRESENTATION_MAP.MAPPED_REPRESENTATION') | (SIZEOF( USEDIN(rm, 'AUTOMOTIVE_DESIGN.MAPPED_ITEM.MAPPING_SOURCE')) <> 1) OR ( SIZEOF(QUERY(mi <* USEDIN(rm, 'AUTOMOTIVE_DESIGN.MAPPED_ITEM.MAPPING_SOURCE') | (SIZEOF(USEDIN(mi, 'AUTOMOTIVE_DESIGN.REPRESENTATION.ITEMS')) <> 1) OR (SIZEOF(QUERY(r <* USEDIN(mi, 'AUTOMOTIVE_DESIGN.REPRESENTATION.ITEMS') | NOT ( 'AUTOMOTIVE_DESIGN.' + 'PRESENTATION_AREA' IN TYPEOF(r)))) <> 0))) <> 0) )) <> 0)) = 0; END_RULE; -- 10303-214: automotive_design RULE product_concept_feature_requires_category FOR (product_concept_feature, product_concept_feature_category); WHERE wr1 : SIZEOF(QUERY(pcf <* product_concept_feature | (SIZEOF([ 'AUTOMOTIVE_DESIGN.' + 'INCLUSION_PRODUCT_CONCEPT_FEATURE', 'AUTOMOTIVE_DESIGN.' + 'CONDITIONAL_CONCEPT_FEATURE'] * TYPEOF(pcf)) = 0 ) AND (SIZEOF(QUERY(aga <* USEDIN(pcf, 'AUTOMOTIVE_DESIGN.APPLIED_GROUP_ASSIGNMENT.ITEMS') | (aga.role.name = 'specification category member') AND ('AUTOMOTIVE_DESIGN.' + 'PRODUCT_CONCEPT_FEATURE_CATEGORY' IN TYPEOF(aga.assigned_group)))) <> 1))) = 0; END_RULE; -- 10303-214: automotive_design RULE product_definition_replacement_requires_effectivity_assignment FOR ( applied_effectivity_assignment, product_definition_relationship); WHERE wr1 : SIZEOF(QUERY(pdr <* product_definition_relationship | (pdr.name = 'definition replacement') AND (SIZEOF(USEDIN(pdr, 'AUTOMOTIVE_DESIGN.APPLIED_EFFECTIVITY_ASSIGNMENT.ITEMS')) = 0))) = 0; END_RULE; -- 10303-214: automotive_design RULE product_requires_category FOR (product, product_related_product_category); WHERE wr1 : SIZEOF(QUERY(p <* product | SIZEOF(USEDIN(p, 'AUTOMOTIVE_DESIGN.PRODUCT_RELATED_PRODUCT_CATEGORY.PRODUCTS')) = 0)) = 0; END_RULE; -- 10303-214: automotive_design RULE product_requires_id_owner FOR (product); WHERE wr1 : SIZEOF(QUERY(prod <* product | (SIZEOF(QUERY(prpc <* USEDIN(prod, 'AUTOMOTIVE_DESIGN.PRODUCT_RELATED_PRODUCT_CATEGORY.PRODUCTS') | prpc. name IN ['part', 'tool', 'raw material'])) > 0) AND (SIZEOF(QUERY(apoa <* USEDIN(prod, 'AUTOMOTIVE_DESIGN.APPLIED_PERSON_AND_ORGANIZATION_ASSIGNMENT.ITEMS') | apoa\person_and_organization_assignment.role.name = 'id owner')) + SIZEOF( QUERY(oa <* USEDIN(prod, 'AUTOMOTIVE_DESIGN.APPLIED_ORGANIZATION_ASSIGNMENT.ITEMS') | oa\ organization_assignment.role.name = 'id owner')) <> 1))) = 0; END_RULE; -- 10303-214: automotive_design RULE product_requires_version FOR (product); WHERE wr1 : SIZEOF(QUERY(prod <* product | SIZEOF(USEDIN(prod, 'AUTOMOTIVE_DESIGN.PRODUCT_DEFINITION_FORMATION.OF_PRODUCT')) = 0)) = 0; END_RULE; -- 10303-214: automotive_design RULE restrict_action_resource_requirement_for_process_operation FOR (action, action_resource_requirement); WHERE wr1 : SIZEOF(QUERY(a <* action | (a.name = 'process operation') AND (SIZEOF( QUERY(arr <* USEDIN(a, 'AUTOMOTIVE_DESIGN.ACTION_RESOURCE_REQUIREMENT.OPERATIONS') | arr.name = 'reference tool')) > 1))) = 0; wr2 : SIZEOF(QUERY(arr <* action_resource_requirement | (arr.name = 'reference tool') AND NOT ('AUTOMOTIVE_DESIGN.' + 'REQUIREMENT_FOR_ACTION_RESOURCE' IN TYPEOF(arr)) AND (SIZEOF(QUERY(ar <* arr\requirement_for_action_resource.resources | 'AUTOMOTIVE_DESIGN.' + 'PRODUCT_DEFINITION_RESOURCE' IN TYPEOF(ar))) <> 1))) = 0; wr3 : SIZEOF(QUERY(arr <* action_resource_requirement | (arr.name <> 'reference tool') AND (arr.name <> 'non reference tool'))) = 0; END_RULE; -- 10303-214: automotive_design RULE restrict_alternative_definition FOR (product_definition, product_definition_context); WHERE wr1 : SIZEOF(QUERY(pd <* product_definition | (pd.frame_of_reference.name = 'alternative definition') AND (SIZEOF(QUERY(pdr <* USEDIN(pd, 'AUTOMOTIVE_DESIGN.PRODUCT_DEFINITION_RELATIONSHIP.RELATED_PRODUCT_DEFINITION' ) | pdr.name = 'solution alternative definition')) <> 1))) = 0; wr2 : SIZEOF(QUERY(pd <* product_definition | (pd.frame_of_reference.name = 'alternative definition') AND NOT (pd.name IN ['technical', 'supplier', 'final', 'technical supplier', 'technical final', 'supplier final', 'technical supplier final', '']))) = 0; wr3 : SIZEOF(QUERY(pd <* product_definition | (pd.frame_of_reference.name = 'alternative definition') AND (pd.name IN ['supplier', 'technical supplier' , 'supplier final', 'technical supplier final']) AND (SIZEOF(QUERY(aoa <* USEDIN(pd.formation, 'AUTOMOTIVE_DESIGN.APPLIED_ORGANIZATION_ASSIGNMENT.ITEMS') | aoa.role. name = 'supplier')) <> 1))) = 0; wr4 : SIZEOF(QUERY(pd <* product_definition | (pd.frame_of_reference.name = 'alternative definition') AND (pd.name IN ['final', 'technical final', 'supplier final', 'technical supplier final']) AND (SIZEOF(QUERY(pdr <* USEDIN(pd, 'AUTOMOTIVE_DESIGN.PRODUCT_DEFINITION_RELATIONSHIP.RELATING_PRODUCT_DEFINITION' ) | pdr.name = 'final specification')) = 0) AND (SIZEOF(QUERY(pd <* USEDIN( pd, 'AUTOMOTIVE_DESIGN.PROPERTY_DEFINITION.DEFINITION') | SIZEOF(QUERY( pdr <* USEDIN(pd, 'AUTOMOTIVE_DESIGN.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ( pdr.used_representation.name = 'final item characteristics') AND (SIZEOF( QUERY(i <* pdr.used_representation.items | 'AUTOMOTIVE_DESIGN.' + 'DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF(i))) = SIZEOF(pdr. used_representation.items)) AND (SIZEOF(pdr.used_representation.items) >= 2 ) AND (SIZEOF(QUERY(i <* pdr.used_representation.items | i.name = 'final item status')) = 1))) > 0)) = 0))) = 0; END_RULE; -- 10303-214: automotive_design RULE restrict_applied_action_assignment FOR (applied_action_assignment, object_role); WHERE wr1 : SIZEOF(QUERY(aaa <* applied_action_assignment | (aaa.role.description = 'activity element') AND NOT ('AUTOMOTIVE_DESIGN.' + 'EXECUTED_ACTION' IN TYPEOF(aaa.assigned_action)))) = 0; wr2 : SIZEOF(QUERY(aaa <* applied_action_assignment | (aaa.role.description = 'activity element') AND NOT item_correlation(aaa.items, ['ACTION', 'ACTION_METHOD', 'ACTION_PROPERTY', 'ASSEMBLY_COMPONENT_USAGE_SUBSTITUTE', 'CONFIGURATION_ITEM', 'CONFIGURATION_EFFECTIVITY', 'CONFIGURED_EFFECTIVITY_ASSIGNMENT', 'DOCUMENT_FILE', 'DRAUGHTING_MODEL', 'DRAWING_REVISION', 'GENERAL_PROPERTY', 'MATERIAL_DESIGNATION', 'MECHANICAL_DESIGN_GEOMETRIC_PRESENTATION_REPRESENTATION', 'PRESENTATION_AREA', 'PRODUCT', 'PRODUCT_CONCEPT', 'PRODUCT_CONCEPT_FEATURE', 'PRODUCT_CONCEPT_FEATURE_ASSOCIATION', 'PRODUCT_CONCEPT_FEATURE_CATEGORY', 'PRODUCT_CONCEPT_FEATURE_CATEGORY_USAGE', 'PRODUCT_DEFINITION', 'PRODUCT_DEFINITION_FORMATION', 'PRODUCT_DEFINITION_RELATIONSHIP', 'PRODUCT_DEFINITION_SUBSTITUTE', 'PROPERTY_DEFINITION', 'RESOURCE_PROPERTY' , 'SHAPE_ASPECT', 'SHAPE_REPRESENTATION']))) = 0; wr3 : SIZEOF(QUERY(aaa <* applied_action_assignment | (NOT EXISTS(aaa.role) OR (aaa.role.description = 'activity element')) AND (SIZEOF(QUERY(i <* aaa. items | 'AUTOMOTIVE_DESIGN.' + 'APPLIED_ACTION_ASSIGNMENT' IN TYPEOF(i)) ) > 0))) = 0; wr4 : SIZEOF(QUERY(aaa <* applied_action_assignment | (aaa.role.name = 'deliverable element') AND (NOT ('AUTOMOTIVE_DESIGN.' + 'ELEMENT_DELIVERY' IN TYPEOF(aaa.assigned_action)) OR (SIZEOF(QUERY(i <* aaa.items | 'AUTOMOTIVE_DESIGN.' + 'APPLIED_ACTION_ASSIGNMENT' IN TYPEOF (i))) > 1) OR (SIZEOF(QUERY(i <* aaa.items | ('AUTOMOTIVE_DESIGN.' + 'APPLIED_ACTION_ASSIGNMENT' IN TYPEOF(i)) AND (i\action_assignment.role. description <> 'activity element'))) > 0)))) = 0; wr5 : SIZEOF(QUERY(aaa <* applied_action_assignment | (aaa.role.name = 'retention') AND NOT ('AUTOMOTIVE_DESIGN.' + 'RETENTION' IN TYPEOF(aaa. assigned_action)))) = 0; wr6 : SIZEOF(QUERY(aaa <* applied_action_assignment | (aaa.role.name = 'retention') AND NOT item_correlation(aaa.items, ['ACTION', 'ACTION_DIRECTIVE', 'ACTION_PROPERTY', 'ACTION_RELATIONSHIP', 'APPLIED_ACTION_ASSIGNMENT', 'APPLIED_CLASSIFICATION_ASSIGNMENT', 'ASSEMBLY_COMPONENT_USAGE_SUBSTITUTE', 'CERTIFICATION', 'CLASS_SYSTEM', 'CONFIGURATION_EFFECTIVITY', 'CONFIGURATION_ITEM', 'CONFIGURED_EFFECTIVITY_ASSIGNMENT', 'DOCUMENT_FILE', 'DRAUGHTING_MODEL', 'DRAWING_REVISION', 'GENERAL_PROPERTY', 'MATERIAL_DESIGNATION', 'MECHANICAL_DESIGN_GEOMETRIC_PRESENTATION_REPRESENTATION', 'ORGANIZATIONAL_PROJECT', 'PRESENTATION_AREA', 'PRODUCT', 'PRODUCT_CONCEPT' , 'PRODUCT_CONCEPT_FEATURE', 'PRODUCT_CONCEPT_FEATURE_ASSOCIATION', 'PRODUCT_CONCEPT_FEATURE_CATEGORY', 'PRODUCT_CONCEPT_FEATURE_CATEGORY_USAGE', 'PRODUCT_DEFINITION', 'PRODUCT_DEFINITION_FORMATION', 'PRODUCT_DEFINITION_RELATIONSHIP', 'PRODUCT_DEFINITION_SUBSTITUTE', 'PROPERTY_DEFINITION', 'RESOURCE_PROPERTY' , 'SHAPE_REPRESENTATION', 'VERSIONED_ACTION_REQUEST']))) = 0; wr7 : SIZEOF(QUERY(aaa <* applied_action_assignment | (aaa.role.name = 'test activity') AND NOT item_correlation(aaa.items, ['PROPERTY_DEFINITION' ]))) = 0; END_RULE; -- 10303-214: automotive_design RULE restrict_applied_action_request_assignment FOR ( applied_action_request_assignment, object_role); WHERE wr1 : SIZEOF(QUERY(aara <* applied_action_request_assignment | aara.role.name <> 'scope')) = 0; END_RULE; -- 10303-214: automotive_design RULE restrict_applied_classification_assignment_role FOR ( applied_classification_assignment); WHERE wr1 : SIZEOF(QUERY(aca <* applied_classification_assignment | ( 'AUTOMOTIVE_DESIGN.' + 'CLASS' IN TYPEOF(aca.assigned_class)) AND NOT ( aca.role.name IN ['definitional', 'non-definitional', '']))) = 0; wr2 : SIZEOF(QUERY(aca <* applied_classification_assignment | (aca.role.name IN ['definitional', 'non-definitional', '']) AND NOT ( 'AUTOMOTIVE_DESIGN.' + 'CLASS' IN TYPEOF(aca.assigned_class)))) = 0; wr3 : SIZEOF(QUERY(aca <* applied_classification_assignment | ( 'AUTOMOTIVE_DESIGN.' + 'CLASS_SYSTEM' IN TYPEOF(aca.assigned_class)) AND (aca.role.name <> 'class system membership'))) = 0; wr4 : SIZEOF(QUERY(aca <* applied_classification_assignment | (aca.role.name = 'class system membership') AND NOT ('AUTOMOTIVE_DESIGN.' + 'CLASS_SYSTEM' IN TYPEOF(aca.assigned_class)))) = 0; END_RULE; -- 10303-214: automotive_design RULE restrict_applied_event_occurrence_assignment FOR ( applied_event_occurrence_assignment); WHERE wr1 : SIZEOF(QUERY(eo <* applied_event_occurrence_assignment | (eo\ event_occurrence_assignment.role.name = 'event context') AND (SIZEOF(eo. items) > 1))) = 0; END_RULE; -- 10303-214: automotive_design RULE restrict_applied_organizational_project_assignment FOR ( applied_organizational_project_assignment, object_role); WHERE wr1 : SIZEOF(QUERY(aopa <* applied_organizational_project_assignment | (aopa. role.name = 'affecting project') AND NOT item_correlation(aopa.items, [ 'PRODUCT_CONCEPT']))) = 0; wr2 : SIZEOF(QUERY(aopa <* applied_organizational_project_assignment | (aopa. role.name = 'work program') AND NOT item_correlation(aopa.items, [ 'EXECUTED_ACTION']))) = 0; END_RULE; -- 10303-214: automotive_design RULE restrict_approval FOR (approval, approval_date_time); WHERE wr1 : SIZEOF(QUERY(a <* approval | SIZEOF(USEDIN(a, 'AUTOMOTIVE_DESIGN.APPROVAL_DATE_TIME.DATED_APPROVAL')) > 2)) = 0; wr2 : SIZEOF(QUERY(adt <* approval_date_time | NOT EXISTS(adt.role) OR NOT ( adt.role.name IN ['actual', 'planned']))) = 0; wr3 : SIZEOF(QUERY(a <* approval | SIZEOF(QUERY(adt <* USEDIN(a, 'AUTOMOTIVE_DESIGN.APPROVAL_DATE_TIME.DATED_APPROVAL') | adt.role.name = 'actual')) > 1)) = 0; wr4 : SIZEOF(QUERY(a <* approval | SIZEOF(QUERY(adt <* USEDIN(a, 'AUTOMOTIVE_DESIGN.APPROVAL_DATE_TIME.DATED_APPROVAL') | adt.role.name = 'planned')) > 1)) = 0; END_RULE; -- 10303-214: automotive_design RULE restrict_camera_image_in_view FOR (camera_image, presentation_view); WHERE wr1 : SIZEOF(QUERY(ci <* camera_image | SIZEOF(QUERY(r <* USEDIN(ci, 'AUTOMOTIVE_DESIGN.REPRESENTATION.ITEMS') | 'AUTOMOTIVE_DESIGN.' + 'PRESENTATION_VIEW' IN TYPEOF(r))) <> 1)) = 0; wr2 : SIZEOF(QUERY(pv <* presentation_view | SIZEOF(QUERY(ri <* pv\ representation.items | 'AUTOMOTIVE_DESIGN.' + 'CAMERA_IMAGE' IN TYPEOF( ri))) > 1)) = 0; END_RULE; -- 10303-214: automotive_design 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 | ( 'AUTOMOTIVE_DESIGN.' + 'POINT' IN TYPEOF(i)) AND (i.name = 'centre point'))) <> 1)))) = 0; END_RULE; -- 10303-214: automotive_design RULE restrict_class_system_assignment_for_approval_status FOR ( applied_classification_assignment, approval_status); WHERE wr1 : SIZEOF(QUERY(ent <* approval_status | SIZEOF(QUERY(ia <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.APPLIED_CLASSIFICATION_ASSIGNMENT.ITEMS') | ia.role. name = 'class system membership')) > 1)) = 0; END_RULE; -- 10303-214: automotive_design RULE restrict_class_system_assignment_for_class FOR ( applied_classification_assignment, class); WHERE wr1 : SIZEOF(QUERY(c <* class | SIZEOF(QUERY(aca <* USEDIN(c, 'AUTOMOTIVE_DESIGN.CLASSIFICATION_ASSIGNMENT.ASSIGNED_CLASS') | (aca. role.name = 'class system membership') AND ('AUTOMOTIVE_DESIGN.' + 'APPLIED_CLASSIFICATION_ASSIGNMENT' IN TYPEOF(aca)))) > 1)) = 0; END_RULE; -- 10303-214: automotive_design RULE restrict_class_system_assignment_for_descriptive_representation_item FOR ( applied_classification_assignment, descriptive_representation_item); WHERE wr1 : SIZEOF(QUERY(ent <* descriptive_representation_item | SIZEOF(QUERY(ia <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.APPLIED_CLASSIFICATION_ASSIGNMENT.ITEMS') | ia.role. name = 'class system membership')) > 1)) = 0; END_RULE; -- 10303-214: automotive_design RULE restrict_class_system_assignment_for_document_type FOR ( applied_classification_assignment, document_type); WHERE wr1 : SIZEOF(QUERY(ent <* document_type | SIZEOF(QUERY(ia <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.APPLIED_CLASSIFICATION_ASSIGNMENT.ITEMS') | ia.role. name = 'class system membership')) > 1)) = 0; END_RULE; -- 10303-214: automotive_design RULE restrict_class_system_assignment_for_security_classification_level FOR ( applied_classification_assignment, security_classification_level); WHERE wr1 : SIZEOF(QUERY(ent <* security_classification_level | SIZEOF(QUERY(ia <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.APPLIED_CLASSIFICATION_ASSIGNMENT.ITEMS') | ia.role.name = 'class system membership')) > 1)) = 0; END_RULE; -- 10303-214: automotive_design 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, 'AUTOMOTIVE_DESIGN.CONCEPT_FEATURE_RELATIONSHIP_WITH_CONDITION.CONDITIONAL_OPERATOR' ) | SIZEOF(QUERY(ccf <* USEDIN(cfrwc, 'AUTOMOTIVE_DESIGN.CONDITIONAL_CONCEPT_FEATURE.CONDITION') | NOT ( 'AUTOMOTIVE_DESIGN.' + '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, 'AUTOMOTIVE_DESIGN.CONCEPT_FEATURE_RELATIONSHIP_WITH_CONDITION.CONDITIONAL_OPERATOR' ) | cfrwc.related_product_concept_feature :<>: cfrwc. relating_product_concept_feature)) > 0))) = 0; END_RULE; -- 10303-214: automotive_design RULE restrict_configuration_design_for_product_class FOR (configuration_design , product_class); WHERE wr1 : SIZEOF(QUERY(cd <* configuration_design | (cd.name = 'functionality') AND (NOT ('AUTOMOTIVE_DESIGN.' + '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 ('AUTOMOTIVE_DESIGN.' + '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 ('AUTOMOTIVE_DESIGN.' + 'PRODUCT_CLASS' IN TYPEOF(cd.configuration.item_concept)))) = 0; wr4 : SIZEOF(QUERY(cd <* configuration_design | (cd.name = 'design constraint usage') AND (NOT ('AUTOMOTIVE_DESIGN.' + 'PRODUCT_DEFINITION' IN TYPEOF(cd.design)) OR (cd.design\product_definition .frame_of_reference.name <> 'design constraint definition')))) = 0; wr5 : SIZEOF(QUERY(cd <* configuration_design | (cd.name = 'physical instance basis') AND (NOT ('AUTOMOTIVE_DESIGN.' + 'PRODUCT_DEFINITION' IN TYPEOF(cd.design)) OR (cd.design\product_definition .frame_of_reference.name <> 'physical occurrence')))) = 0; wr6 : SIZEOF(QUERY(cd <* configuration_design | (cd.name = 'physical instance basis') AND NOT ('AUTOMOTIVE_DESIGN.' + 'PRODUCT_IDENTIFICATION' IN TYPEOF(cd.configuration)))) = 0; END_RULE; -- 10303-214: automotive_design RULE restrict_default_settings FOR (applied_document_reference, representation ); WHERE wr1 : (SIZEOF(QUERY(r <* representation | (r.name = 'default tolerances') AND (r.context_of_items.context_type = 'default setting') AND (SIZEOF(r.items) <> 1))) = 0) AND (SIZEOF(QUERY(r <* representation | (r.name = 'default tolerances') AND (r.context_of_items.context_type = 'default setting') AND (SIZEOF(QUERY(i <* r.items | ( 'AUTOMOTIVE_DESIGN.' + 'DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF(i)) AND (i.name = 'tolerance class'))) <> 1))) = 0); wr2 : SIZEOF(QUERY(r <* representation | (r.name = 'default tolerances') AND (r.context_of_items.context_type = 'default setting') AND (SIZEOF(QUERY(adr <* USEDIN(r, 'AUTOMOTIVE_DESIGN.APPLIED_DOCUMENT_REFERENCE.ITEMS') | adr.role.name = 'general tolerance definition')) + SIZEOF(QUERY(rr <* USEDIN(r, 'AUTOMOTIVE_DESIGN.REPRESENTATION_RELATIONSHIP.REP_2') | (rr. name = 'general tolerance definition') AND ('AUTOMOTIVE_DESIGN.' + 'DEFAULT_TOLERANCE_TABLE' IN TYPEOF(rr.rep_1)))) <> 1))) = 0; END_RULE; -- 10303-214: automotive_design RULE restrict_default_thickness FOR (representation); WHERE wr1 : (SIZEOF(QUERY(r <* representation | (r.name = 'default thickness') AND (r.context_of_items.context_type = 'default setting') AND (SIZEOF(QUERY(i <* r.items | 'AUTOMOTIVE_DESIGN.' + 'DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF(i))) > 1))) = 0) AND (SIZEOF(QUERY(r <* representation | (r.name = 'default thickness') AND (r.context_of_items.context_type = 'default setting') AND (SIZEOF(QUERY(i <* r.items | ( 'AUTOMOTIVE_DESIGN.' + 'DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF(i)) AND (i.name <> 'parameter name'))) > 0))) = 0); wr2 : (SIZEOF(QUERY(r <* representation | (r.name = 'default thickness') AND (r.context_of_items.context_type = 'default setting') AND (SIZEOF(r.items) > 2))) = 0) AND (SIZEOF(QUERY(r <* representation | (r.name = 'default thickness') AND (r.context_of_items.context_type = 'default setting') AND (SIZEOF(QUERY(i <* r.items | SIZEOF([ 'AUTOMOTIVE_DESIGN.' + 'DESCRIPTIVE_REPRESENTATION_ITEM', 'AUTOMOTIVE_DESIGN.' + 'MEASURE_REPRESENTATION_ITEM'] * TYPEOF(i)) <> 1) ) > 0))) = 0); wr3 : SIZEOF(QUERY(r <* representation | (r.name = 'default thickness') AND ( r.context_of_items.context_type = 'default setting') AND (SIZEOF(QUERY(i <* r.items | ('AUTOMOTIVE_DESIGN.' + 'MEASURE_REPRESENTATION_ITEM' IN TYPEOF(i)) AND (i.name = 'thickness value'))) <> 1))) = 0; END_RULE; -- 10303-214: automotive_design RULE restrict_drawing FOR (draughting_title, drawing_revision); WHERE wr1 : SIZEOF(QUERY(dr <* drawing_revision | (SIZEOF(dr.areas) = 0) OR (SIZEOF (QUERY(ais <* dr.areas | NOT ('AUTOMOTIVE_DESIGN.' + 'DRAWING_SHEET_REVISION' IN TYPEOF(ais.area)))) > 0))) = 0; wr2 : SIZEOF(QUERY(dr <* drawing_revision | SIZEOF(USEDIN(dr, 'AUTOMOTIVE_DESIGN.DRAUGHTING_TITLE.ITEMS')) > 1)) = 0; wr3 : SIZEOF(QUERY(dr <* drawing_revision | SIZEOF(QUERY(ais <* dr.areas | SIZEOF(USEDIN(ais.area, 'AUTOMOTIVE_DESIGN.DRAUGHTING_TITLE.ITEMS')) > 1 )) > 0)) = 0; wr4 : SIZEOF(QUERY(dr <* drawing_revision | SIZEOF(QUERY(ais <* dr.areas | SIZEOF(QUERY(item <* ais.area.items | SIZEOF(TYPEOF(item) * [ 'AUTOMOTIVE_DESIGN.' + 'STYLED_ITEM', 'AUTOMOTIVE_DESIGN.' + 'MAPPED_ITEM', 'AUTOMOTIVE_DESIGN.' + 'AXIS2_PLACEMENT', 'AUTOMOTIVE_DESIGN.' + 'PLANAR_BOX']) <> 1)) > 0)) > 0)) = 0; wr5 : SIZEOF(QUERY(dr <* drawing_revision | SIZEOF(QUERY(ais <* dr.areas | SIZEOF(QUERY(item <* ais.area.items | SIZEOF(TYPEOF(item) * [ 'AUTOMOTIVE_DESIGN.' + 'STYLED_ITEM', 'AUTOMOTIVE_DESIGN.' + 'MAPPED_ITEM']) = 0)) > 0)) > 0)) = 0; wr6 : SIZEOF(QUERY(dr <* drawing_revision | SIZEOF(QUERY(ais <* dr.areas | SIZEOF(QUERY(p_b <* QUERY(item <* ais.area.items | 'AUTOMOTIVE_DESIGN.' + 'PLANAR_BOX' IN TYPEOF(item)) | SIZEOF(USEDIN(p_b, 'AUTOMOTIVE_DESIGN.PRESENTATION_SIZE.SIZE')) <> 1)) > 0)) > 0)) = 0; wr7 : SIZEOF(QUERY(dr <* drawing_revision | SIZEOF(QUERY(ais <* dr.areas | SIZEOF(QUERY(mi <* QUERY(item <* ais.area.items | 'AUTOMOTIVE_DESIGN.' + 'MAPPED_ITEM' IN TYPEOF(item)) | 'AUTOMOTIVE_DESIGN.' + 'PRESENTATION_VIEW' IN TYPEOF(mi\mapped_item.mapping_source. mapped_representation))) = 0)) > 0)) = 0; wr8 : SIZEOF(QUERY(dr <* drawing_revision | SIZEOF(QUERY(ais <* dr.areas | SIZEOF(QUERY(a2p <* QUERY(item <* ais.area.items | 'AUTOMOTIVE_DESIGN.' + 'AXIS2_PLACEMENT' IN TYPEOF(item)) | SIZEOF(USEDIN(a2p, 'AUTOMOTIVE_DESIGN.MAPPED_ITEM.MAPPING_TARGET')) = 0)) > 0)) > 0)) = 0; wr9 : SIZEOF(QUERY(dr <* drawing_revision | SIZEOF(QUERY(ais <* dr.areas | SIZEOF(ais.area.context_of_items.representations_in_context) > 1)) > 0)) = 0; wr10 : SIZEOF(QUERY(dr <* drawing_revision | SIZEOF(QUERY(ais <* dr.areas | SIZEOF(QUERY(mi <* QUERY(item <* ais.area.items | 'AUTOMOTIVE_DESIGN.' + 'MAPPED_ITEM' IN TYPEOF(item)) | SIZEOF(USEDIN(mi\mapped_item. mapping_source.mapped_representation, 'AUTOMOTIVE_DESIGN.REPRESENTATION_MAP.MAPPED_REPRESENTATION')) <> 1)) > 0)) > 0)) = 0; wr11 : SIZEOF(QUERY(dr <* drawing_revision | SIZEOF(QUERY(ais <* dr.areas | SIZEOF(QUERY(mi <* QUERY(item <* ais.area.items | 'AUTOMOTIVE_DESIGN.' + 'MAPPED_ITEM' IN TYPEOF(item)) | SIZEOF(QUERY(pv_item <* mi\mapped_item. mapping_source.mapped_representation.items | SIZEOF(TYPEOF(pv_item) * [ 'AUTOMOTIVE_DESIGN.' + 'STYLED_ITEM', 'AUTOMOTIVE_DESIGN.' + 'CAMERA_IMAGE', 'AUTOMOTIVE_DESIGN.' + 'AXIS2_PLACEMENT']) <> 1)) > 0)) > 0)) > 0)) = 0; wr12 : SIZEOF(QUERY(dr <* drawing_revision | SIZEOF(QUERY(ais <* dr.areas | SIZEOF(QUERY(mi <* QUERY(item <* ais.area.items | 'AUTOMOTIVE_DESIGN.' + 'MAPPED_ITEM' IN TYPEOF(item)) | SIZEOF(QUERY(a2p <* QUERY(pv_item <* mi \mapped_item.mapping_source.mapped_representation.items | 'AUTOMOTIVE_DESIGN.' + 'AXIS2_PLACEMENT' IN TYPEOF(pv_item)) | SIZEOF( QUERY(rm <* USEDIN(a2p, 'AUTOMOTIVE_DESIGN.REPRESENTATION_MAP.MAPPING_ORIGIN') | SIZEOF(QUERY(mi <* QUERY(item <* ais.area.items | 'AUTOMOTIVE_DESIGN.' + 'MAPPED_ITEM' IN TYPEOF(item)) | mi\mapped_item.mapping_source :=: rm)) > 0)) = 1)) <> 1) ) > 0)) > 0)) = 0; wr13 : SIZEOF(QUERY(dr <* drawing_revision | SIZEOF(QUERY(ais <* dr.areas | SIZEOF(QUERY(mi <* QUERY(item <* ais.area.items | 'AUTOMOTIVE_DESIGN.' + 'MAPPED_ITEM' IN TYPEOF(item)) | SIZEOF(mi\mapped_item.mapping_source. mapped_representation.context_of_items.representations_in_context) <> 1)) > 0)) > 0)) = 0; END_RULE; -- 10303-214: automotive_design RULE restrict_effectivity_assignment_for_class_category_usage FOR ( applied_effectivity_assignment, product_concept_feature_category_usage); WHERE wr1 : SIZEOF(QUERY(aea <* applied_effectivity_assignment | (SIZEOF(QUERY(i <* aea.items | 'AUTOMOTIVE_DESIGN.PRODUCT_CONCEPT_FEATURE_CATEGORY_USAGE' IN TYPEOF(i)) ) > 0) AND ((SIZEOF(QUERY(i <* aea.items | 'AUTOMOTIVE_DESIGN.PRODUCT_CONCEPT_FEATURE_CATEGORY_USAGE' IN TYPEOF(i)) ) <> SIZEOF(aea.items)) OR (SIZEOF(TYPEOF(aea.assigned_effectivity) * [ 'AUTOMOTIVE_DESIGN.TIME_INTERVAL_BASED_EFFECTIVITY', 'AUTOMOTIVE_DESIGN.DATED_EFFECTIVITY', 'AUTOMOTIVE_DESIGN.SERIAL_NUMBERED_EFFECTIVITY', 'AUTOMOTIVE_DESIGN.LOT_EFFECTIVITY', 'AUTOMOTIVE_DESIGN.PRODUCT_DEFINITION_EFFECTIVITY']) > 0) OR (aea. assigned_effectivity.id <> 'class usage') OR (SIZEOF(QUERY(cueca <* USEDIN( aea, 'AUTOMOTIVE_DESIGN.EFFECTIVITY_CONTEXT_ASSIGNMENT.ASSIGNED_EFFECTIVITY_ASSIGNMENT' ) | 'AUTOMOTIVE_DESIGN.CLASS_USAGE_EFFECTIVITY_CONTEXT_ASSIGNMENT' IN TYPEOF(cueca))) = 0)))) = 0; END_RULE; -- 10303-214: automotive_design RULE restrict_effectivity_for_effectivity_relationship FOR ( effectivity_relationship); WHERE wr1 : SIZEOF(QUERY(er <* effectivity_relationship | (SIZEOF([ 'AUTOMOTIVE_DESIGN.' + 'LOT_EFFECTIVITY', 'AUTOMOTIVE_DESIGN.' + 'SERIAL_NUMBERED_EFFECTIVITY', 'AUTOMOTIVE_DESIGN.' + 'PRODUCT_DEFINITION_EFFECTIVITY'] * TYPEOF(er.relating_effectivity)) > 0) OR (SIZEOF(['AUTOMOTIVE_DESIGN.' + 'LOT_EFFECTIVITY', 'AUTOMOTIVE_DESIGN.' + 'SERIAL_NUMBERED_EFFECTIVITY', 'AUTOMOTIVE_DESIGN.' + 'PRODUCT_DEFINITION_EFFECTIVITY'] * TYPEOF(er. related_effectivity)) > 0))) = 0; END_RULE; -- 10303-214: automotive_design RULE restrict_effectivity_usage FOR (configured_effectivity_assignment, effectivity); WHERE wr1 : SIZEOF(QUERY(e <* effectivity | (SIZEOF(['AUTOMOTIVE_DESIGN.' + 'DATED_EFFECTIVITY', 'AUTOMOTIVE_DESIGN.' + 'TIME_INTERVAL_BASED_EFFECTIVITY'] * TYPEOF(e)) = 0) AND (SIZEOF(QUERY(er <* USEDIN(e, 'AUTOMOTIVE_DESIGN.EFFECTIVITY_RELATIONSHIP.RELATED_EFFECTIVITY') | er. name = 'inheritance')) = 0) AND (e.id = 'configuration validity') AND ( SIZEOF(QUERY(cea <* USEDIN(e, 'AUTOMOTIVE_DESIGN.EFFECTIVITY_ASSIGNMENT.ASSIGNED_EFFECTIVITY') | 'AUTOMOTIVE_DESIGN.' + 'CONFIGURED_EFFECTIVITY_ASSIGNMENT' IN TYPEOF(cea ))) = 0) AND (e.id = 'class usage') AND (SIZEOF(QUERY(aea <* USEDIN(e, 'AUTOMOTIVE_DESIGN.EFFECTIVITY_ASSIGNMENT.ASSIGNED_EFFECTIVITY') | ( 'AUTOMOTIVE_DESIGN.' + 'APPLIED_EFFECTIVITY_ASSIGNMENT' IN TYPEOF(aea)) AND (SIZEOF(QUERY(i <* aea.items | 'AUTOMOTIVE_DESIGN.' + 'PRODUCT_CONCEPT_FEATURE_CATEGORY_USAGE' IN TYPEOF(i))) > 0))) = 0))) = 0; END_RULE; -- 10303-214: automotive_design RULE restrict_externally_defined_item_relationship FOR ( externally_defined_item_relationship); WHERE wr1 : SIZEOF(QUERY(edir <* externally_defined_item_relationship | (edir.name = 'name scope') AND (NOT ('AUTOMOTIVE_DESIGN.' + 'EXTERNALLY_DEFINED_GENERAL_PROPERTY' IN TYPEOF(edir.relating_item)) OR NOT ('AUTOMOTIVE_DESIGN.' + 'KNOWN_SOURCE' IN TYPEOF(edir.relating_item. source)) OR NOT ('AUTOMOTIVE_DESIGN.' + 'EXTERNALLY_DEFINED_CLASS' IN TYPEOF(edir.related_item)) OR NOT ('AUTOMOTIVE_DESIGN.' + 'KNOWN_SOURCE' IN TYPEOF(edir.related_item.source))))) = 0; END_RULE; -- 10303-214: automotive_design RULE restrict_group_relationship_for_general_classification_hierarchy FOR ( class, group_relationship); WHERE wr1 : SIZEOF(QUERY(gr <* group_relationship | (gr.name = 'class hierarchy') AND (NOT ('AUTOMOTIVE_DESIGN.' + 'CLASS' IN TYPEOF(gr.related_group)) OR NOT ('AUTOMOTIVE_DESIGN.' + 'CLASS' IN TYPEOF(gr.relating_group))))) = 0; END_RULE; -- 10303-214: automotive_design RULE restrict_group_relationship_for_specification_category FOR ( group_relationship, product_concept_feature_category); WHERE wr1 : SIZEOF(QUERY(gr <* group_relationship | (gr.name = 'specification category hierarchy') AND (NOT ('AUTOMOTIVE_DESIGN.' + 'PRODUCT_CONCEPT_FEATURE_CATEGORY' IN TYPEOF(gr.related_group)) OR NOT ( 'AUTOMOTIVE_DESIGN.' + 'PRODUCT_CONCEPT_FEATURE_CATEGORY' IN TYPEOF(gr. relating_group))))) = 0; END_RULE; -- 10303-214: automotive_design RULE restrict_multi_language_for_action FOR (action); WHERE wr1 : SIZEOF(QUERY(ent <* action | SIZEOF(QUERY(mlaa <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS') | (mlaa. attribute_name <> 'description') AND (mlaa.attribute_name <> 'name'))) > 0) ) = 0; wr2 : SIZEOF(QUERY(ent <* action | SIZEOF(QUERY(ala <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS') | (ala. attribute_name <> 'description') AND (ala.attribute_name <> 'name'))) > 0)) = 0; wr3 : SIZEOF(QUERY(ent <* action | SIZEOF(QUERY(mlaa1 <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS') | SIZEOF( QUERY(mlaa2 <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS') | (mlaa1. attribute_name = mlaa2.attribute_name) AND (mlaa1.language = mlaa2.language ))) > 1)) + SIZEOF(QUERY(ala1 <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS') | SIZEOF(QUERY( ala2 <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS') | (ala1. attribute_name = ala2.attribute_name) AND (ala1.language = ala2.language))) > 1)) > 0)) = 0; END_RULE; -- 10303-214: automotive_design RULE restrict_multi_language_for_action_directive FOR (action_directive); WHERE wr1 : SIZEOF(QUERY(ent <* action_directive | SIZEOF(QUERY(mlaa <* USEDIN(ent , 'AUTOMOTIVE_DESIGN.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS') | mlaa. attribute_name <> 'comment')) > 0)) = 0; wr2 : SIZEOF(QUERY(ent <* action_directive | SIZEOF(QUERY(ala <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS') | ala. attribute_name <> 'comment')) > 0)) = 0; wr3 : SIZEOF(QUERY(ent <* action_directive | SIZEOF(QUERY(mlaa1 <* USEDIN(ent , 'AUTOMOTIVE_DESIGN.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS') | SIZEOF(QUERY(mlaa2 <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS') | (mlaa1. attribute_name = mlaa2.attribute_name) AND (mlaa1.language = mlaa2.language ))) > 1)) + SIZEOF(QUERY(ala1 <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS') | SIZEOF(QUERY( ala2 <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS') | (ala1. attribute_name = ala2.attribute_name) AND (ala1.language = ala2.language))) > 1)) > 0)) = 0; END_RULE; -- 10303-214: automotive_design RULE restrict_multi_language_for_action_method FOR (action_method); WHERE wr1 : SIZEOF(QUERY(ent <* action_method | SIZEOF(QUERY(mlaa <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS') | (mlaa. attribute_name <> 'description') AND (mlaa.attribute_name <> 'name'))) > 0) ) = 0; wr2 : SIZEOF(QUERY(ent <* action_method | SIZEOF(QUERY(ala <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS') | (ala. attribute_name <> 'description') AND (ala.attribute_name <> 'name'))) > 0)) = 0; wr3 : SIZEOF(QUERY(ent <* action_method | SIZEOF(QUERY(mlaa1 <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS') | SIZEOF( QUERY(mlaa2 <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS') | (mlaa1. attribute_name = mlaa2.attribute_name) AND (mlaa1.language = mlaa2.language ))) > 1)) + SIZEOF(QUERY(ala1 <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS') | SIZEOF(QUERY( ala2 <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS') | (ala1. attribute_name = ala2.attribute_name) AND (ala1.language = ala2.language))) > 1)) > 0)) = 0; END_RULE; -- 10303-214: automotive_design RULE restrict_multi_language_for_action_property FOR (action_property); WHERE wr1 : SIZEOF(QUERY(ent <* action_property | SIZEOF(QUERY(mlaa <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS') | mlaa. attribute_name <> 'description')) > 0)) = 0; wr2 : SIZEOF(QUERY(ent <* action_property | SIZEOF(QUERY(ala <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS') | ala. attribute_name <> 'description')) > 0)) = 0; wr3 : SIZEOF(QUERY(ent <* action_property | SIZEOF(QUERY(mlaa1 <* USEDIN(ent , 'AUTOMOTIVE_DESIGN.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS') | SIZEOF(QUERY(mlaa2 <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS') | (mlaa1. attribute_name = mlaa2.attribute_name) AND (mlaa1.language = mlaa2.language ))) > 1)) + SIZEOF(QUERY(ala1 <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS') | SIZEOF(QUERY( ala2 <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS') | (ala1. attribute_name = ala2.attribute_name) AND (ala1.language = ala2.language))) > 1)) > 0)) = 0; END_RULE; -- 10303-214: automotive_design RULE restrict_multi_language_for_action_relationship FOR (action_relationship); WHERE wr1 : SIZEOF(QUERY(ent <* action_relationship | SIZEOF(QUERY(mlaa <* USEDIN( ent, 'AUTOMOTIVE_DESIGN.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS') | mlaa.attribute_name <> 'description')) > 0)) = 0; wr2 : SIZEOF(QUERY(ent <* action_relationship | SIZEOF(QUERY(ala <* USEDIN( ent, 'AUTOMOTIVE_DESIGN.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS') | ala. attribute_name <> 'description')) > 0)) = 0; wr3 : SIZEOF(QUERY(ent <* action_relationship | SIZEOF(QUERY(mlaa1 <* USEDIN( ent, 'AUTOMOTIVE_DESIGN.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS') | SIZEOF(QUERY(mlaa2 <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS') | (mlaa1. attribute_name = mlaa2.attribute_name) AND (mlaa1.language = mlaa2.language ))) > 1)) + SIZEOF(QUERY(ala1 <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS') | SIZEOF(QUERY( ala2 <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS') | (ala1. attribute_name = ala2.attribute_name) AND (ala1.language = ala2.language))) > 1)) > 0)) = 0; END_RULE; -- 10303-214: automotive_design RULE restrict_multi_language_for_alternate_product_relationship FOR ( alternate_product_relationship); WHERE wr1 : SIZEOF(QUERY(ent <* alternate_product_relationship | SIZEOF(QUERY(mlaa <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS') | mlaa. attribute_name <> 'basis')) > 0)) = 0; wr2 : SIZEOF(QUERY(ent <* alternate_product_relationship | SIZEOF(QUERY(ala <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS') | ala.attribute_name <> 'basis')) > 0)) = 0; wr3 : SIZEOF(QUERY(ent <* alternate_product_relationship | SIZEOF(QUERY(mlaa1 <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS') | SIZEOF( QUERY(mlaa2 <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS') | (mlaa1. attribute_name = mlaa2.attribute_name) AND (mlaa1.language = mlaa2.language ))) > 1)) + SIZEOF(QUERY(ala1 <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS') | SIZEOF(QUERY( ala2 <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS') | (ala1. attribute_name = ala2.attribute_name) AND (ala1.language = ala2.language))) > 1)) > 0)) = 0; END_RULE; -- 10303-214: automotive_design RULE restrict_multi_language_for_application_context FOR (application_context); WHERE wr1 : SIZEOF(QUERY(ent <* application_context | SIZEOF(QUERY(mlaa <* USEDIN( ent, 'AUTOMOTIVE_DESIGN.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS') | mlaa.attribute_name <> 'description')) > 0)) = 0; wr2 : SIZEOF(QUERY(ent <* application_context | SIZEOF(QUERY(ala <* USEDIN( ent, 'AUTOMOTIVE_DESIGN.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS') | ala. attribute_name <> 'description')) > 0)) = 0; wr3 : SIZEOF(QUERY(ent <* application_context | SIZEOF(QUERY(mlaa1 <* USEDIN( ent, 'AUTOMOTIVE_DESIGN.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS') | SIZEOF(QUERY(mlaa2 <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS') | (mlaa1. attribute_name = mlaa2.attribute_name) AND (mlaa1.language = mlaa2.language ))) > 1)) + SIZEOF(QUERY(ala1 <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS') | SIZEOF(QUERY( ala2 <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS') | (ala1. attribute_name = ala2.attribute_name) AND (ala1.language = ala2.language))) > 1)) > 0)) = 0; END_RULE; -- 10303-214: automotive_design RULE restrict_multi_language_for_approval_relationship FOR ( approval_relationship); WHERE wr1 : SIZEOF(QUERY(ent <* approval_relationship | SIZEOF(QUERY(mlaa <* USEDIN (ent, 'AUTOMOTIVE_DESIGN.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS') | mlaa.attribute_name <> 'description')) > 0)) = 0; wr2 : SIZEOF(QUERY(ent <* approval_relationship | SIZEOF(QUERY(ala <* USEDIN( ent, 'AUTOMOTIVE_DESIGN.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS') | ala. attribute_name <> 'description')) > 0)) = 0; wr3 : SIZEOF(QUERY(ent <* approval_relationship | SIZEOF(QUERY(mlaa1 <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS') | SIZEOF( QUERY(mlaa2 <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS') | (mlaa1. attribute_name = mlaa2.attribute_name) AND (mlaa1.language = mlaa2.language ))) > 1)) + SIZEOF(QUERY(ala1 <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS') | SIZEOF(QUERY( ala2 <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS') | (ala1. attribute_name = ala2.attribute_name) AND (ala1.language = ala2.language))) > 1)) > 0)) = 0; END_RULE; -- 10303-214: automotive_design RULE restrict_multi_language_for_assembly_component_usage_substitute FOR ( assembly_component_usage_substitute); WHERE wr1 : SIZEOF(QUERY(ent <* assembly_component_usage_substitute | SIZEOF(QUERY( mlaa <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS') | mlaa. attribute_name <> 'definition')) > 0)) = 0; wr2 : SIZEOF(QUERY(ent <* assembly_component_usage_substitute | SIZEOF(QUERY( ala <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS') | ala. attribute_name <> 'definition')) > 0)) = 0; wr3 : SIZEOF(QUERY(ent <* assembly_component_usage_substitute | SIZEOF(QUERY( mlaa1 <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS') | SIZEOF( QUERY(mlaa2 <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS') | (mlaa1. attribute_name = mlaa2.attribute_name) AND (mlaa1.language = mlaa2.language ))) > 1)) + SIZEOF(QUERY(ala1 <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS') | SIZEOF(QUERY( ala2 <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS') | (ala1. attribute_name = ala2.attribute_name) AND (ala1.language = ala2.language))) > 1)) > 0)) = 0; END_RULE; -- 10303-214: automotive_design RULE restrict_multi_language_for_certification FOR (certification); WHERE wr1 : SIZEOF(QUERY(ent <* certification | SIZEOF(QUERY(mlaa <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS') | (mlaa. attribute_name <> 'name') AND (mlaa.attribute_name <> 'purpose'))) > 0)) = 0; wr2 : SIZEOF(QUERY(ent <* certification | SIZEOF(QUERY(ala <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS') | (ala. attribute_name <> 'name') AND (ala.attribute_name <> 'purpose'))) > 0)) = 0 ; wr3 : SIZEOF(QUERY(ent <* certification | SIZEOF(QUERY(mlaa1 <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS') | SIZEOF( QUERY(mlaa2 <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS') | (mlaa1. attribute_name = mlaa2.attribute_name) AND (mlaa1.language = mlaa2.language ))) > 1)) + SIZEOF(QUERY(ala1 <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS') | SIZEOF(QUERY( ala2 <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS') | (ala1. attribute_name = ala2.attribute_name) AND (ala1.language = ala2.language))) > 1)) > 0)) = 0; END_RULE; -- 10303-214: automotive_design RULE restrict_multi_language_for_configuration_design FOR (configuration_design ); WHERE wr1 : SIZEOF(QUERY(ent <* configuration_design | SIZEOF(QUERY(mlaa <* USEDIN( ent, 'AUTOMOTIVE_DESIGN.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS') | mlaa.attribute_name <> 'description')) > 0)) = 0; wr2 : SIZEOF(QUERY(ent <* configuration_design | SIZEOF(QUERY(ala <* USEDIN( ent, 'AUTOMOTIVE_DESIGN.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS') | ala. attribute_name <> 'description')) > 0)) = 0; wr3 : SIZEOF(QUERY(ent <* configuration_design | SIZEOF(QUERY(mlaa1 <* USEDIN (ent, 'AUTOMOTIVE_DESIGN.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS') | SIZEOF(QUERY(mlaa2 <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS') | (mlaa1. attribute_name = mlaa2.attribute_name) AND (mlaa1.language = mlaa2.language ))) > 1)) + SIZEOF(QUERY(ala1 <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS') | SIZEOF(QUERY( ala2 <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS') | (ala1. attribute_name = ala2.attribute_name) AND (ala1.language = ala2.language))) > 1)) > 0)) = 0; END_RULE; -- 10303-214: automotive_design RULE restrict_multi_language_for_configuration_item FOR (configuration_item); WHERE wr1 : SIZEOF(QUERY(ent <* configuration_item | SIZEOF(QUERY(mlaa <* USEDIN( ent, 'AUTOMOTIVE_DESIGN.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS') | ( mlaa.attribute_name <> 'description') AND (mlaa.attribute_name <> 'name'))) > 0)) = 0; wr2 : SIZEOF(QUERY(ent <* configuration_item | SIZEOF(QUERY(ala <* USEDIN(ent , 'AUTOMOTIVE_DESIGN.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS') | (ala. attribute_name <> 'description') AND (ala.attribute_name <> 'name'))) > 0)) = 0; wr3 : SIZEOF(QUERY(ent <* configuration_item | SIZEOF(QUERY(mlaa1 <* USEDIN( ent, 'AUTOMOTIVE_DESIGN.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS') | SIZEOF(QUERY(mlaa2 <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS') | (mlaa1. attribute_name = mlaa2.attribute_name) AND (mlaa1.language = mlaa2.language ))) > 1)) + SIZEOF(QUERY(ala1 <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS') | SIZEOF(QUERY( ala2 <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS') | (ala1. attribute_name = ala2.attribute_name) AND (ala1.language = ala2.language))) > 1)) > 0)) = 0; END_RULE; -- 10303-214: automotive_design RULE restrict_multi_language_for_contract FOR (contract); WHERE wr1 : SIZEOF(QUERY(ent <* contract | SIZEOF(QUERY(mlaa <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS') | mlaa. attribute_name <> 'purpose')) > 0)) = 0; wr2 : SIZEOF(QUERY(ent <* contract | SIZEOF(QUERY(ala <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS') | ala. attribute_name <> 'purpose')) > 0)) = 0; wr3 : SIZEOF(QUERY(ent <* contract | SIZEOF(QUERY(mlaa1 <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS') | SIZEOF( QUERY(mlaa2 <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS') | (mlaa1. attribute_name = mlaa2.attribute_name) AND (mlaa1.language = mlaa2.language ))) > 1)) + SIZEOF(QUERY(ala1 <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS') | SIZEOF(QUERY( ala2 <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS') | (ala1. attribute_name = ala2.attribute_name) AND (ala1.language = ala2.language))) > 1)) > 0)) = 0; END_RULE; -- 10303-214: automotive_design RULE restrict_multi_language_for_data_environment FOR (data_environment); WHERE wr1 : SIZEOF(QUERY(ent <* data_environment | SIZEOF(QUERY(mlaa <* USEDIN(ent , 'AUTOMOTIVE_DESIGN.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS') | mlaa. attribute_name <> 'description')) > 0)) = 0; wr2 : SIZEOF(QUERY(ent <* data_environment | SIZEOF(QUERY(ala <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS') | ala. attribute_name <> 'description')) > 0)) = 0; wr3 : SIZEOF(QUERY(ent <* data_environment | SIZEOF(QUERY(mlaa1 <* USEDIN(ent , 'AUTOMOTIVE_DESIGN.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS') | SIZEOF(QUERY(mlaa2 <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS') | (mlaa1. attribute_name = mlaa2.attribute_name) AND (mlaa1.language = mlaa2.language ))) > 1)) + SIZEOF(QUERY(ala1 <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS') | SIZEOF(QUERY( ala2 <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS') | (ala1. attribute_name = ala2.attribute_name) AND (ala1.language = ala2.language))) > 1)) > 0)) = 0; END_RULE; -- 10303-214: automotive_design RULE restrict_multi_language_for_date_role FOR (date_role); WHERE wr1 : SIZEOF(QUERY(ent <* date_role | SIZEOF(QUERY(mlaa <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS') | mlaa. attribute_name <> 'description')) > 0)) = 0; wr2 : SIZEOF(QUERY(ent <* date_role | SIZEOF(QUERY(ala <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS') | ala. attribute_name <> 'description')) > 0)) = 0; wr3 : SIZEOF(QUERY(ent <* date_role | SIZEOF(QUERY(mlaa1 <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS') | SIZEOF( QUERY(mlaa2 <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS') | (mlaa1. attribute_name = mlaa2.attribute_name) AND (mlaa1.language = mlaa2.language ))) > 1)) + SIZEOF(QUERY(ala1 <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS') | SIZEOF(QUERY( ala2 <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS') | (ala1. attribute_name = ala2.attribute_name) AND (ala1.language = ala2.language))) > 1)) > 0)) = 0; END_RULE; -- 10303-214: automotive_design RULE restrict_multi_language_for_date_time_role FOR (date_time_role); WHERE wr1 : SIZEOF(QUERY(ent <* date_time_role | SIZEOF(QUERY(mlaa <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS') | mlaa. attribute_name <> 'description')) > 0)) = 0; wr2 : SIZEOF(QUERY(ent <* date_time_role | SIZEOF(QUERY(ala <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS') | ala. attribute_name <> 'description')) > 0)) = 0; wr3 : SIZEOF(QUERY(ent <* date_time_role | SIZEOF(QUERY(mlaa1 <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS') | SIZEOF( QUERY(mlaa2 <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS') | (mlaa1. attribute_name = mlaa2.attribute_name) AND (mlaa1.language = mlaa2.language ))) > 1)) + SIZEOF(QUERY(ala1 <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS') | SIZEOF(QUERY( ala2 <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS') | (ala1. attribute_name = ala2.attribute_name) AND (ala1.language = ala2.language))) > 1)) > 0)) = 0; END_RULE; -- 10303-214: automotive_design RULE restrict_multi_language_for_descriptive_representation_item FOR ( descriptive_representation_item); WHERE wr1 : SIZEOF(QUERY(ent <* descriptive_representation_item | SIZEOF(QUERY(mlaa <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS') | mlaa. attribute_name <> 'description')) > 0)) = 0; wr2 : SIZEOF(QUERY(ent <* descriptive_representation_item | SIZEOF(QUERY(ala <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS') | ala.attribute_name <> 'description')) > 0)) = 0; wr3 : SIZEOF(QUERY(ent <* descriptive_representation_item | SIZEOF(QUERY( mlaa1 <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS') | SIZEOF( QUERY(mlaa2 <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS') | (mlaa1. attribute_name = mlaa2.attribute_name) AND (mlaa1.language = mlaa2.language ))) > 1)) + SIZEOF(QUERY(ala1 <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS') | SIZEOF(QUERY( ala2 <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS') | (ala1. attribute_name = ala2.attribute_name) AND (ala1.language = ala2.language))) > 1)) > 0)) = 0; END_RULE; -- 10303-214: automotive_design RULE restrict_multi_language_for_document_relationship FOR ( document_relationship); WHERE wr1 : SIZEOF(QUERY(ent <* document_relationship | SIZEOF(QUERY(mlaa <* USEDIN (ent, 'AUTOMOTIVE_DESIGN.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS') | mlaa.attribute_name <> 'description')) > 0)) = 0; wr2 : SIZEOF(QUERY(ent <* document_relationship | SIZEOF(QUERY(ala <* USEDIN( ent, 'AUTOMOTIVE_DESIGN.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS') | ala. attribute_name <> 'description')) > 0)) = 0; wr3 : SIZEOF(QUERY(ent <* document_relationship | SIZEOF(QUERY(mlaa1 <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS') | SIZEOF( QUERY(mlaa2 <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS') | (mlaa1. attribute_name = mlaa2.attribute_name) AND (mlaa1.language = mlaa2.language ))) > 1)) + SIZEOF(QUERY(ala1 <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS') | SIZEOF(QUERY( ala2 <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS') | (ala1. attribute_name = ala2.attribute_name) AND (ala1.language = ala2.language))) > 1)) > 0)) = 0; END_RULE; -- 10303-214: automotive_design RULE restrict_multi_language_for_draughting_title FOR (draughting_title); WHERE wr1 : SIZEOF(QUERY(ent <* draughting_title | SIZEOF(QUERY(mlaa <* USEDIN(ent , 'AUTOMOTIVE_DESIGN.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS') | mlaa. attribute_name <> 'contents')) > 0)) = 0; wr2 : SIZEOF(QUERY(ent <* draughting_title | SIZEOF(QUERY(ala <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS') | (ala. attribute_name <> 'contents') AND (ala.attribute_name <> 'language'))) > 0) ) = 0; wr3 : SIZEOF(QUERY(ent <* draughting_title | SIZEOF(QUERY(mlaa1 <* USEDIN(ent , 'AUTOMOTIVE_DESIGN.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS') | SIZEOF(QUERY(mlaa2 <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS') | (mlaa1. attribute_name = mlaa2.attribute_name) AND (mlaa1.language = mlaa2.language ))) > 1)) + SIZEOF(QUERY(ala1 <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS') | SIZEOF(QUERY( ala2 <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS') | (ala1. attribute_name = ala2.attribute_name) AND (ala1.language = ala2.language))) > 1)) > 0)) = 0; END_RULE; -- 10303-214: automotive_design RULE restrict_multi_language_for_effectivity FOR (effectivity); WHERE wr1 : SIZEOF(QUERY(ent <* effectivity | SIZEOF(QUERY(mlaa <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS') | mlaa. attribute_name <> 'description')) > 0)) = 0; wr2 : SIZEOF(QUERY(ent <* effectivity | SIZEOF(QUERY(ala <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS') | ala. attribute_name <> 'description')) > 0)) = 0; wr3 : SIZEOF(QUERY(ent <* effectivity | SIZEOF(QUERY(mlaa1 <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS') | SIZEOF( QUERY(mlaa2 <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS') | (mlaa1. attribute_name = mlaa2.attribute_name) AND (mlaa1.language = mlaa2.language ))) > 1)) + SIZEOF(QUERY(ala1 <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS') | SIZEOF(QUERY( ala2 <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS') | (ala1. attribute_name = ala2.attribute_name) AND (ala1.language = ala2.language))) > 1)) > 0)) = 0; END_RULE; -- 10303-214: automotive_design RULE restrict_multi_language_for_effectivity_relationship FOR ( effectivity_relationship); WHERE wr1 : SIZEOF(QUERY(ent <* effectivity_relationship | SIZEOF(QUERY(mlaa <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS') | mlaa. attribute_name <> 'description')) > 0)) = 0; wr2 : SIZEOF(QUERY(ent <* effectivity_relationship | SIZEOF(QUERY(ala <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS') | ala.attribute_name <> 'description')) > 0)) = 0; wr3 : SIZEOF(QUERY(ent <* effectivity_relationship | SIZEOF(QUERY(mlaa1 <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS') | SIZEOF( QUERY(mlaa2 <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS') | (mlaa1. attribute_name = mlaa2.attribute_name) AND (mlaa1.language = mlaa2.language ))) > 1)) + SIZEOF(QUERY(ala1 <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS') | SIZEOF(QUERY( ala2 <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS') | (ala1. attribute_name = ala2.attribute_name) AND (ala1.language = ala2.language))) > 1)) > 0)) = 0; END_RULE; -- 10303-214: automotive_design RULE restrict_multi_language_for_event_occurrence FOR (event_occurrence); WHERE wr1 : SIZEOF(QUERY(ent <* event_occurrence | SIZEOF(QUERY(mlaa <* USEDIN(ent , 'AUTOMOTIVE_DESIGN.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS') | mlaa. attribute_name <> 'description')) > 0)) = 0; wr2 : SIZEOF(QUERY(ent <* event_occurrence | SIZEOF(QUERY(ala <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS') | ala. attribute_name <> 'description')) > 0)) = 0; wr3 : SIZEOF(QUERY(ent <* event_occurrence | SIZEOF(QUERY(mlaa1 <* USEDIN(ent , 'AUTOMOTIVE_DESIGN.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS') | SIZEOF(QUERY(mlaa2 <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS') | (mlaa1. attribute_name = mlaa2.attribute_name) AND (mlaa1.language = mlaa2.language ))) > 1)) + SIZEOF(QUERY(ala1 <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS') | SIZEOF(QUERY( ala2 <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS') | (ala1. attribute_name = ala2.attribute_name) AND (ala1.language = ala2.language))) > 1)) > 0)) = 0; END_RULE; -- 10303-214: automotive_design RULE restrict_multi_language_for_external_source FOR (external_source); WHERE wr1 : SIZEOF(QUERY(ent <* external_source | SIZEOF(QUERY(mlaa <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS') | mlaa. attribute_name <> 'description')) > 0)) = 0; wr2 : SIZEOF(QUERY(ent <* external_source | SIZEOF(QUERY(ala <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS') | ala. attribute_name <> 'description')) > 0)) = 0; wr3 : SIZEOF(QUERY(ent <* external_source | SIZEOF(QUERY(mlaa1 <* USEDIN(ent , 'AUTOMOTIVE_DESIGN.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS') | SIZEOF(QUERY(mlaa2 <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS') | (mlaa1. attribute_name = mlaa2.attribute_name) AND (mlaa1.language = mlaa2.language ))) > 1)) + SIZEOF(QUERY(ala1 <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS') | SIZEOF(QUERY( ala2 <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS') | (ala1. attribute_name = ala2.attribute_name) AND (ala1.language = ala2.language))) > 1)) > 0)) = 0; END_RULE; -- 10303-214: automotive_design RULE restrict_multi_language_for_general_property FOR (general_property); WHERE wr1 : SIZEOF(QUERY(ent <* general_property | SIZEOF(QUERY(mlaa <* USEDIN(ent , 'AUTOMOTIVE_DESIGN.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS') | mlaa. attribute_name <> 'description')) > 0)) = 0; wr2 : SIZEOF(QUERY(ent <* general_property | SIZEOF(QUERY(ala <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS') | ala. attribute_name <> 'description')) > 0)) = 0; wr3 : SIZEOF(QUERY(ent <* general_property | SIZEOF(QUERY(mlaa1 <* USEDIN(ent , 'AUTOMOTIVE_DESIGN.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS') | SIZEOF(QUERY(mlaa2 <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS') | (mlaa1. attribute_name = mlaa2.attribute_name) AND (mlaa1.language = mlaa2.language ))) > 1)) + SIZEOF(QUERY(ala1 <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS') | SIZEOF(QUERY( ala2 <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS') | (ala1. attribute_name = ala2.attribute_name) AND (ala1.language = ala2.language))) > 1)) > 0)) = 0; END_RULE; -- 10303-214: automotive_design RULE restrict_multi_language_for_general_property_relationship FOR ( general_property_relationship); WHERE wr1 : SIZEOF(QUERY(ent <* general_property_relationship | SIZEOF(QUERY(mlaa <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS') | mlaa. attribute_name <> 'description')) > 0)) = 0; wr2 : SIZEOF(QUERY(ent <* general_property_relationship | SIZEOF(QUERY(ala <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS') | ala.attribute_name <> 'description')) > 0)) = 0; wr3 : SIZEOF(QUERY(ent <* general_property_relationship | SIZEOF(QUERY(mlaa1 <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS') | SIZEOF( QUERY(mlaa2 <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS') | (mlaa1. attribute_name = mlaa2.attribute_name) AND (mlaa1.language = mlaa2.language ))) > 1)) + SIZEOF(QUERY(ala1 <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS') | SIZEOF(QUERY( ala2 <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS') | (ala1. attribute_name = ala2.attribute_name) AND (ala1.language = ala2.language))) > 1)) > 0)) = 0; END_RULE; -- 10303-214: automotive_design RULE restrict_multi_language_for_geometric_representation_item FOR ( geometric_representation_item); WHERE wr1 : SIZEOF(QUERY(ent <* geometric_representation_item | SIZEOF(QUERY(mlaa <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS') | mlaa. attribute_name <> 'name')) > 0)) = 0; wr2 : SIZEOF(QUERY(ent <* geometric_representation_item | SIZEOF(QUERY(ala <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS') | ala.attribute_name <> 'name')) > 0)) = 0; wr3 : SIZEOF(QUERY(ent <* geometric_representation_item | SIZEOF(QUERY(mlaa1 <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS') | SIZEOF( QUERY(mlaa2 <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS') | (mlaa1. attribute_name = mlaa2.attribute_name) AND (mlaa1.language = mlaa2.language ))) > 1)) + SIZEOF(QUERY(ala1 <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS') | SIZEOF(QUERY( ala2 <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS') | (ala1. attribute_name = ala2.attribute_name) AND (ala1.language = ala2.language))) > 1)) > 0)) = 0; END_RULE; -- 10303-214: automotive_design RULE restrict_multi_language_for_geometric_tolerance FOR (geometric_tolerance); WHERE wr1 : SIZEOF(QUERY(ent <* geometric_tolerance | SIZEOF(QUERY(mlaa <* USEDIN( ent, 'AUTOMOTIVE_DESIGN.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS') | ( mlaa.attribute_name <> 'description') AND (mlaa.attribute_name <> 'name'))) > 0)) = 0; wr2 : SIZEOF(QUERY(ent <* geometric_tolerance | SIZEOF(QUERY(ala <* USEDIN( ent, 'AUTOMOTIVE_DESIGN.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS') | (ala. attribute_name <> 'description') AND (ala.attribute_name <> 'name'))) > 0)) = 0; wr3 : SIZEOF(QUERY(ent <* geometric_tolerance | SIZEOF(QUERY(mlaa1 <* USEDIN( ent, 'AUTOMOTIVE_DESIGN.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS') | SIZEOF(QUERY(mlaa2 <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS') | (mlaa1. attribute_name = mlaa2.attribute_name) AND (mlaa1.language = mlaa2.language ))) > 1)) + SIZEOF(QUERY(ala1 <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS') | SIZEOF(QUERY( ala2 <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS') | (ala1. attribute_name = ala2.attribute_name) AND (ala1.language = ala2.language))) > 1)) > 0)) = 0; END_RULE; -- 10303-214: automotive_design RULE restrict_multi_language_for_group FOR (group); WHERE wr1 : SIZEOF(QUERY(ent <* group | SIZEOF(QUERY(mlaa <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS') | (mlaa. attribute_name <> 'description') AND (mlaa.attribute_name <> 'name'))) > 0) ) = 0; wr2 : SIZEOF(QUERY(ent <* group | SIZEOF(QUERY(ala <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS') | (ala. attribute_name <> 'description') AND (ala.attribute_name <> 'name'))) > 0)) = 0; wr3 : SIZEOF(QUERY(ent <* group | SIZEOF(QUERY(mlaa1 <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS') | SIZEOF( QUERY(mlaa2 <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS') | (mlaa1. attribute_name = mlaa2.attribute_name) AND (mlaa1.language = mlaa2.language ))) > 1)) + SIZEOF(QUERY(ala1 <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS') | SIZEOF(QUERY( ala2 <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS') | (ala1. attribute_name = ala2.attribute_name) AND (ala1.language = ala2.language))) > 1)) > 0)) = 0; END_RULE; -- 10303-214: automotive_design RULE restrict_multi_language_for_group_relationship FOR (group_relationship); WHERE wr1 : SIZEOF(QUERY(ent <* group_relationship | SIZEOF(QUERY(mlaa <* USEDIN( ent, 'AUTOMOTIVE_DESIGN.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS') | mlaa.attribute_name <> 'description')) > 0)) = 0; wr2 : SIZEOF(QUERY(ent <* group_relationship | SIZEOF(QUERY(ala <* USEDIN(ent , 'AUTOMOTIVE_DESIGN.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS') | ala. attribute_name <> 'description')) > 0)) = 0; wr3 : SIZEOF(QUERY(ent <* group_relationship | SIZEOF(QUERY(mlaa1 <* USEDIN( ent, 'AUTOMOTIVE_DESIGN.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS') | SIZEOF(QUERY(mlaa2 <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS') | (mlaa1. attribute_name = mlaa2.attribute_name) AND (mlaa1.language = mlaa2.language ))) > 1)) + SIZEOF(QUERY(ala1 <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS') | SIZEOF(QUERY( ala2 <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS') | (ala1. attribute_name = ala2.attribute_name) AND (ala1.language = ala2.language))) > 1)) > 0)) = 0; END_RULE; -- 10303-214: automotive_design RULE restrict_multi_language_for_identification_role FOR (identification_role); WHERE wr1 : SIZEOF(QUERY(ent <* identification_role | SIZEOF(QUERY(mlaa <* USEDIN( ent, 'AUTOMOTIVE_DESIGN.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS') | mlaa.attribute_name <> 'description')) > 0)) = 0; wr2 : SIZEOF(QUERY(ent <* identification_role | SIZEOF(QUERY(ala <* USEDIN( ent, 'AUTOMOTIVE_DESIGN.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS') | ala. attribute_name <> 'description')) > 0)) = 0; wr3 : SIZEOF(QUERY(ent <* identification_role | SIZEOF(QUERY(mlaa1 <* USEDIN( ent, 'AUTOMOTIVE_DESIGN.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS') | SIZEOF(QUERY(mlaa2 <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS') | (mlaa1. attribute_name = mlaa2.attribute_name) AND (mlaa1.language = mlaa2.language ))) > 1)) + SIZEOF(QUERY(ala1 <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS') | SIZEOF(QUERY( ala2 <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS') | (ala1. attribute_name = ala2.attribute_name) AND (ala1.language = ala2.language))) > 1)) > 0)) = 0; END_RULE; -- 10303-214: automotive_design RULE restrict_multi_language_for_kinematic_pair FOR (kinematic_pair); WHERE wr1 : SIZEOF(QUERY(ent <* kinematic_pair | SIZEOF(QUERY(mlaa <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS') | mlaa. attribute_name <> 'name')) > 0)) = 0; wr2 : SIZEOF(QUERY(ent <* kinematic_pair | SIZEOF(QUERY(ala <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS') | ala. attribute_name <> 'name')) > 0)) = 0; wr3 : SIZEOF(QUERY(ent <* kinematic_pair | SIZEOF(QUERY(mlaa1 <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS') | SIZEOF( QUERY(mlaa2 <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS') | (mlaa1. attribute_name = mlaa2.attribute_name) AND (mlaa1.language = mlaa2.language ))) > 1)) + SIZEOF(QUERY(ala1 <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS') | SIZEOF(QUERY( ala2 <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS') | (ala1. attribute_name = ala2.attribute_name) AND (ala1.language = ala2.language))) > 1)) > 0)) = 0; END_RULE; -- 10303-214: automotive_design RULE restrict_multi_language_for_mapped_item FOR (mapped_item); WHERE wr1 : SIZEOF(QUERY(ent <* mapped_item | SIZEOF(QUERY(mlaa <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS') | mlaa. attribute_name <> 'name')) > 0)) = 0; wr2 : SIZEOF(QUERY(ent <* mapped_item | SIZEOF(QUERY(ala <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS') | ala. attribute_name <> 'name')) > 0)) = 0; wr3 : SIZEOF(QUERY(ent <* mapped_item | SIZEOF(QUERY(mlaa1 <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS') | SIZEOF( QUERY(mlaa2 <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS') | (mlaa1. attribute_name = mlaa2.attribute_name) AND (mlaa1.language = mlaa2.language ))) > 1)) + SIZEOF(QUERY(ala1 <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS') | SIZEOF(QUERY( ala2 <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS') | (ala1. attribute_name = ala2.attribute_name) AND (ala1.language = ala2.language))) > 1)) > 0)) = 0; END_RULE; -- 10303-214: automotive_design RULE restrict_multi_language_for_name_assignment FOR (name_assignment); WHERE wr1 : SIZEOF(QUERY(ent <* name_assignment | SIZEOF(QUERY(mlaa <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS') | mlaa. attribute_name <> 'assigned_name')) > 0)) = 0; wr2 : SIZEOF(QUERY(ent <* name_assignment | SIZEOF(QUERY(ala <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS') | ala. attribute_name <> 'assigned_name')) > 0)) = 0; wr3 : SIZEOF(QUERY(ent <* name_assignment | SIZEOF(QUERY(mlaa1 <* USEDIN(ent , 'AUTOMOTIVE_DESIGN.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS') | SIZEOF(QUERY(mlaa2 <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS') | (mlaa1. attribute_name = mlaa2.attribute_name) AND (mlaa1.language = mlaa2.language ))) > 1)) + SIZEOF(QUERY(ala1 <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS') | SIZEOF(QUERY( ala2 <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS') | (ala1. attribute_name = ala2.attribute_name) AND (ala1.language = ala2.language))) > 1)) > 0)) = 0; END_RULE; -- 10303-214: automotive_design RULE restrict_multi_language_for_organization_relationship FOR ( organization_relationship); WHERE wr1 : SIZEOF(QUERY(ent <* organization_relationship | SIZEOF(QUERY(mlaa <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS') | mlaa. attribute_name <> 'description')) > 0)) = 0; wr2 : SIZEOF(QUERY(ent <* organization_relationship | SIZEOF(QUERY(ala <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS') | ala.attribute_name <> 'description')) > 0)) = 0; wr3 : SIZEOF(QUERY(ent <* organization_relationship | SIZEOF(QUERY(mlaa1 <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS') | SIZEOF( QUERY(mlaa2 <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS') | (mlaa1. attribute_name = mlaa2.attribute_name) AND (mlaa1.language = mlaa2.language ))) > 1)) + SIZEOF(QUERY(ala1 <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS') | SIZEOF(QUERY( ala2 <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS') | (ala1. attribute_name = ala2.attribute_name) AND (ala1.language = ala2.language))) > 1)) > 0)) = 0; END_RULE; -- 10303-214: automotive_design RULE restrict_multi_language_for_organization_role FOR (organization_role); WHERE wr1 : SIZEOF(QUERY(ent <* organization_role | SIZEOF(QUERY(mlaa <* USEDIN(ent , 'AUTOMOTIVE_DESIGN.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS') | mlaa. attribute_name <> 'description')) > 0)) = 0; wr2 : SIZEOF(QUERY(ent <* organization_role | SIZEOF(QUERY(ala <* USEDIN(ent , 'AUTOMOTIVE_DESIGN.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS') | ala. attribute_name <> 'description')) > 0)) = 0; wr3 : SIZEOF(QUERY(ent <* organization_role | SIZEOF(QUERY(mlaa1 <* USEDIN( ent, 'AUTOMOTIVE_DESIGN.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS') | SIZEOF(QUERY(mlaa2 <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS') | (mlaa1. attribute_name = mlaa2.attribute_name) AND (mlaa1.language = mlaa2.language ))) > 1)) + SIZEOF(QUERY(ala1 <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS') | SIZEOF(QUERY( ala2 <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS') | (ala1. attribute_name = ala2.attribute_name) AND (ala1.language = ala2.language))) > 1)) > 0)) = 0; END_RULE; -- 10303-214: automotive_design RULE restrict_multi_language_for_organizational_project FOR ( organizational_project); WHERE wr1 : SIZEOF(QUERY(ent <* organizational_project | SIZEOF(QUERY(mlaa <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS') | (mlaa. attribute_name <> 'description') AND (mlaa.attribute_name <> 'name'))) > 0) ) = 0; wr2 : SIZEOF(QUERY(ent <* organizational_project | SIZEOF(QUERY(ala <* USEDIN (ent, 'AUTOMOTIVE_DESIGN.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS') | (ala. attribute_name <> 'description') AND (ala.attribute_name <> 'name'))) > 0)) = 0; wr3 : SIZEOF(QUERY(ent <* organizational_project | SIZEOF(QUERY(mlaa1 <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS') | SIZEOF( QUERY(mlaa2 <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS') | (mlaa1. attribute_name = mlaa2.attribute_name) AND (mlaa1.language = mlaa2.language ))) > 1)) + SIZEOF(QUERY(ala1 <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS') | SIZEOF(QUERY( ala2 <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS') | (ala1. attribute_name = ala2.attribute_name) AND (ala1.language = ala2.language))) > 1)) > 0)) = 0; END_RULE; -- 10303-214: automotive_design RULE restrict_multi_language_for_organizational_project_relationship FOR ( organizational_project_relationship); WHERE wr1 : SIZEOF(QUERY(ent <* organizational_project_relationship | SIZEOF(QUERY( mlaa <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS') | mlaa. attribute_name <> 'description')) > 0)) = 0; wr2 : SIZEOF(QUERY(ent <* organizational_project_relationship | SIZEOF(QUERY( ala <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS') | ala. attribute_name <> 'description')) > 0)) = 0; wr3 : SIZEOF(QUERY(ent <* organizational_project_relationship | SIZEOF(QUERY( mlaa1 <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS') | SIZEOF( QUERY(mlaa2 <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS') | (mlaa1. attribute_name = mlaa2.attribute_name) AND (mlaa1.language = mlaa2.language ))) > 1)) + SIZEOF(QUERY(ala1 <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS') | SIZEOF(QUERY( ala2 <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS') | (ala1. attribute_name = ala2.attribute_name) AND (ala1.language = ala2.language))) > 1)) > 0)) = 0; END_RULE; -- 10303-214: automotive_design RULE restrict_multi_language_for_pair_actuator FOR (pair_actuator); WHERE wr1 : SIZEOF(QUERY(ent <* pair_actuator | SIZEOF(QUERY(mlaa <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS') | mlaa. attribute_name <> 'name')) > 0)) = 0; wr2 : SIZEOF(QUERY(ent <* pair_actuator | SIZEOF(QUERY(ala <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS') | ala. attribute_name <> 'name')) > 0)) = 0; wr3 : SIZEOF(QUERY(ent <* pair_actuator | SIZEOF(QUERY(mlaa1 <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS') | SIZEOF( QUERY(mlaa2 <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS') | (mlaa1. attribute_name = mlaa2.attribute_name) AND (mlaa1.language = mlaa2.language ))) > 1)) + SIZEOF(QUERY(ala1 <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS') | SIZEOF(QUERY( ala2 <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS') | (ala1. attribute_name = ala2.attribute_name) AND (ala1.language = ala2.language))) > 1)) > 0)) = 0; END_RULE; -- 10303-214: automotive_design RULE restrict_multi_language_for_person_and_organization_role FOR ( person_and_organization_role); WHERE wr1 : SIZEOF(QUERY(ent <* person_and_organization_role | SIZEOF(QUERY(mlaa <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS') | mlaa. attribute_name <> 'description')) > 0)) = 0; wr2 : SIZEOF(QUERY(ent <* person_and_organization_role | SIZEOF(QUERY(ala <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS') | ala.attribute_name <> 'description')) > 0)) = 0; wr3 : SIZEOF(QUERY(ent <* person_and_organization_role | SIZEOF(QUERY(mlaa1 <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS') | SIZEOF( QUERY(mlaa2 <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS') | (mlaa1. attribute_name = mlaa2.attribute_name) AND (mlaa1.language = mlaa2.language ))) > 1)) + SIZEOF(QUERY(ala1 <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS') | SIZEOF(QUERY( ala2 <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS') | (ala1. attribute_name = ala2.attribute_name) AND (ala1.language = ala2.language))) > 1)) > 0)) = 0; END_RULE; -- 10303-214: automotive_design RULE restrict_multi_language_for_presentation_layer_assignment FOR ( presentation_layer_assignment); WHERE wr1 : SIZEOF(QUERY(ent <* presentation_layer_assignment | SIZEOF(QUERY(mlaa <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS') | mlaa. attribute_name <> 'description')) > 0)) = 0; wr2 : SIZEOF(QUERY(ent <* presentation_layer_assignment | SIZEOF(QUERY(ala <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS') | ala.attribute_name <> 'description')) > 0)) = 0; wr3 : SIZEOF(QUERY(ent <* presentation_layer_assignment | SIZEOF(QUERY(mlaa1 <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS') | SIZEOF( QUERY(mlaa2 <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS') | (mlaa1. attribute_name = mlaa2.attribute_name) AND (mlaa1.language = mlaa2.language ))) > 1)) + SIZEOF(QUERY(ala1 <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS') | SIZEOF(QUERY( ala2 <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS') | (ala1. attribute_name = ala2.attribute_name) AND (ala1.language = ala2.language))) > 1)) > 0)) = 0; END_RULE; -- 10303-214: automotive_design RULE restrict_multi_language_for_process_product_association FOR ( process_product_association); WHERE wr1 : SIZEOF(QUERY(ent <* process_product_association | SIZEOF(QUERY(mlaa <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS') | mlaa. attribute_name <> 'description')) > 0)) = 0; wr2 : SIZEOF(QUERY(ent <* process_product_association | SIZEOF(QUERY(ala <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS') | ala.attribute_name <> 'description')) > 0)) = 0; wr3 : SIZEOF(QUERY(ent <* process_product_association | SIZEOF(QUERY(mlaa1 <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS') | SIZEOF( QUERY(mlaa2 <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS') | (mlaa1. attribute_name = mlaa2.attribute_name) AND (mlaa1.language = mlaa2.language ))) > 1)) + SIZEOF(QUERY(ala1 <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS') | SIZEOF(QUERY( ala2 <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS') | (ala1. attribute_name = ala2.attribute_name) AND (ala1.language = ala2.language))) > 1)) > 0)) = 0; END_RULE; -- 10303-214: automotive_design RULE restrict_multi_language_for_product FOR (product); WHERE wr1 : SIZEOF(QUERY(ent <* product | SIZEOF(QUERY(mlaa <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS') | (mlaa. attribute_name <> 'description') AND (mlaa.attribute_name <> 'name'))) > 0) ) = 0; wr2 : SIZEOF(QUERY(ent <* product | SIZEOF(QUERY(ala <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS') | (ala. attribute_name <> 'description') AND (ala.attribute_name <> 'name'))) > 0)) = 0; wr3 : SIZEOF(QUERY(ent <* product | SIZEOF(QUERY(mlaa1 <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS') | SIZEOF( QUERY(mlaa2 <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS') | (mlaa1. attribute_name = mlaa2.attribute_name) AND (mlaa1.language = mlaa2.language ))) > 1)) + SIZEOF(QUERY(ala1 <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS') | SIZEOF(QUERY( ala2 <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS') | (ala1. attribute_name = ala2.attribute_name) AND (ala1.language = ala2.language))) > 1)) > 0)) = 0; END_RULE; -- 10303-214: automotive_design RULE restrict_multi_language_for_product_concept FOR (product_concept); WHERE wr1 : SIZEOF(QUERY(ent <* product_concept | SIZEOF(QUERY(mlaa <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS') | (mlaa. attribute_name <> 'description') AND (mlaa.attribute_name <> 'name'))) > 0) ) = 0; wr2 : SIZEOF(QUERY(ent <* product_concept | SIZEOF(QUERY(ala <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS') | (ala. attribute_name <> 'description') AND (ala.attribute_name <> 'name'))) > 0)) = 0; wr3 : SIZEOF(QUERY(ent <* product_concept | SIZEOF(QUERY(mlaa1 <* USEDIN(ent , 'AUTOMOTIVE_DESIGN.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS') | SIZEOF(QUERY(mlaa2 <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS') | (mlaa1. attribute_name = mlaa2.attribute_name) AND (mlaa1.language = mlaa2.language ))) > 1)) + SIZEOF(QUERY(ala1 <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS') | SIZEOF(QUERY( ala2 <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS') | (ala1. attribute_name = ala2.attribute_name) AND (ala1.language = ala2.language))) > 1)) > 0)) = 0; END_RULE; -- 10303-214: automotive_design RULE restrict_multi_language_for_product_concept_feature FOR ( product_concept_feature); WHERE wr1 : SIZEOF(QUERY(ent <* product_concept_feature | SIZEOF(QUERY(mlaa <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS') | (mlaa. attribute_name <> 'description') AND (mlaa.attribute_name <> 'name'))) > 0) ) = 0; wr2 : SIZEOF(QUERY(ent <* product_concept_feature | SIZEOF(QUERY(ala <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS') | ( ala.attribute_name <> 'description') AND (ala.attribute_name <> 'name'))) > 0)) = 0; wr3 : SIZEOF(QUERY(ent <* product_concept_feature | SIZEOF(QUERY(mlaa1 <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS') | SIZEOF( QUERY(mlaa2 <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS') | (mlaa1. attribute_name = mlaa2.attribute_name) AND (mlaa1.language = mlaa2.language ))) > 1)) + SIZEOF(QUERY(ala1 <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS') | SIZEOF(QUERY( ala2 <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS') | (ala1. attribute_name = ala2.attribute_name) AND (ala1.language = ala2.language))) > 1)) > 0)) = 0; END_RULE; -- 10303-214: automotive_design RULE restrict_multi_language_for_product_concept_feature_association FOR ( product_concept_feature_association); WHERE wr1 : SIZEOF(QUERY(ent <* product_concept_feature_association | SIZEOF(QUERY( mlaa <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS') | mlaa. attribute_name <> 'description')) > 0)) = 0; wr2 : SIZEOF(QUERY(ent <* product_concept_feature_association | SIZEOF(QUERY( ala <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS') | ala. attribute_name <> 'description')) > 0)) = 0; wr3 : SIZEOF(QUERY(ent <* product_concept_feature_association | SIZEOF(QUERY( mlaa1 <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS') | SIZEOF( QUERY(mlaa2 <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS') | (mlaa1. attribute_name = mlaa2.attribute_name) AND (mlaa1.language = mlaa2.language ))) > 1)) + SIZEOF(QUERY(ala1 <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS') | SIZEOF(QUERY( ala2 <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS') | (ala1. attribute_name = ala2.attribute_name) AND (ala1.language = ala2.language))) > 1)) > 0)) = 0; END_RULE; -- 10303-214: automotive_design RULE restrict_multi_language_for_product_concept_relationship FOR ( product_concept_relationship); WHERE wr1 : SIZEOF(QUERY(ent <* product_concept_relationship | SIZEOF(QUERY(mlaa <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS') | mlaa. attribute_name <> 'description')) > 0)) = 0; wr2 : SIZEOF(QUERY(ent <* product_concept_relationship | SIZEOF(QUERY(ala <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS') | ala.attribute_name <> 'description')) > 0)) = 0; wr3 : SIZEOF(QUERY(ent <* product_concept_relationship | SIZEOF(QUERY(mlaa1 <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS') | SIZEOF( QUERY(mlaa2 <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS') | (mlaa1. attribute_name = mlaa2.attribute_name) AND (mlaa1.language = mlaa2.language ))) > 1)) + SIZEOF(QUERY(ala1 <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS') | SIZEOF(QUERY( ala2 <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS') | (ala1. attribute_name = ala2.attribute_name) AND (ala1.language = ala2.language))) > 1)) > 0)) = 0; END_RULE; -- 10303-214: automotive_design RULE restrict_multi_language_for_product_definition FOR (product_definition); WHERE wr1 : SIZEOF(QUERY(ent <* product_definition | SIZEOF(QUERY(mlaa <* USEDIN( ent, 'AUTOMOTIVE_DESIGN.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS') | ( mlaa.attribute_name <> 'description') AND (mlaa.attribute_name <> 'name'))) > 0)) = 0; wr2 : SIZEOF(QUERY(ent <* product_definition | SIZEOF(QUERY(ala <* USEDIN(ent , 'AUTOMOTIVE_DESIGN.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS') | (ala. attribute_name <> 'description') AND (ala.attribute_name <> 'name'))) > 0)) = 0; wr3 : SIZEOF(QUERY(ent <* product_definition | SIZEOF(QUERY(mlaa1 <* USEDIN( ent, 'AUTOMOTIVE_DESIGN.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS') | SIZEOF(QUERY(mlaa2 <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS') | (mlaa1. attribute_name = mlaa2.attribute_name) AND (mlaa1.language = mlaa2.language ))) > 1)) + SIZEOF(QUERY(ala1 <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS') | SIZEOF(QUERY( ala2 <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS') | (ala1. attribute_name = ala2.attribute_name) AND (ala1.language = ala2.language))) > 1)) > 0)) = 0; END_RULE; -- 10303-214: automotive_design RULE restrict_multi_language_for_product_definition_formation FOR ( product_definition_formation); WHERE wr1 : SIZEOF(QUERY(ent <* product_definition_formation | SIZEOF(QUERY(mlaa <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS') | mlaa. attribute_name <> 'description')) > 0)) = 0; wr2 : SIZEOF(QUERY(ent <* product_definition_formation | SIZEOF(QUERY(ala <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS') | ala.attribute_name <> 'description')) > 0)) = 0; wr3 : SIZEOF(QUERY(ent <* product_definition_formation | SIZEOF(QUERY(mlaa1 <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS') | SIZEOF( QUERY(mlaa2 <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS') | (mlaa1. attribute_name = mlaa2.attribute_name) AND (mlaa1.language = mlaa2.language ))) > 1)) + SIZEOF(QUERY(ala1 <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS') | SIZEOF(QUERY( ala2 <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS') | (ala1. attribute_name = ala2.attribute_name) AND (ala1.language = ala2.language))) > 1)) > 0)) = 0; END_RULE; -- 10303-214: automotive_design RULE restrict_multi_language_for_product_definition_formation_relationship FOR (product_definition_formation_relationship); WHERE wr1 : SIZEOF(QUERY(ent <* product_definition_formation_relationship | SIZEOF( QUERY(mlaa <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS') | mlaa. attribute_name <> 'description')) > 0)) = 0; wr2 : SIZEOF(QUERY(ent <* product_definition_formation_relationship | SIZEOF( QUERY(ala <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS') | ala. attribute_name <> 'description')) > 0)) = 0; wr3 : SIZEOF(QUERY(ent <* product_definition_formation_relationship | SIZEOF( QUERY(mlaa1 <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS') | SIZEOF( QUERY(mlaa2 <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS') | (mlaa1. attribute_name = mlaa2.attribute_name) AND (mlaa1.language = mlaa2.language ))) > 1)) + SIZEOF(QUERY(ala1 <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS') | SIZEOF(QUERY( ala2 <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS') | (ala1. attribute_name = ala2.attribute_name) AND (ala1.language = ala2.language))) > 1)) > 0)) = 0; END_RULE; -- 10303-214: automotive_design RULE restrict_multi_language_for_product_definition_relationship FOR ( product_definition_relationship); WHERE wr1 : SIZEOF(QUERY(ent <* product_definition_relationship | SIZEOF(QUERY(mlaa <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS') | mlaa. attribute_name <> 'description')) > 0)) = 0; wr2 : SIZEOF(QUERY(ent <* product_definition_relationship | SIZEOF(QUERY(ala <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS') | ala.attribute_name <> 'description')) > 0)) = 0; wr3 : SIZEOF(QUERY(ent <* product_definition_relationship | SIZEOF(QUERY( mlaa1 <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS') | SIZEOF( QUERY(mlaa2 <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS') | (mlaa1. attribute_name = mlaa2.attribute_name) AND (mlaa1.language = mlaa2.language ))) > 1)) + SIZEOF(QUERY(ala1 <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS') | SIZEOF(QUERY( ala2 <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS') | (ala1. attribute_name = ala2.attribute_name) AND (ala1.language = ala2.language))) > 1)) > 0)) = 0; END_RULE; -- 10303-214: automotive_design RULE restrict_multi_language_for_product_definition_substitute FOR ( product_definition_substitute); WHERE wr1 : SIZEOF(QUERY(ent <* product_definition_substitute | SIZEOF(QUERY(mlaa <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS') | mlaa. attribute_name <> 'description')) > 0)) = 0; wr2 : SIZEOF(QUERY(ent <* product_definition_substitute | SIZEOF(QUERY(ala <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS') | ala.attribute_name <> 'description')) > 0)) = 0; wr3 : SIZEOF(QUERY(ent <* product_definition_substitute | SIZEOF(QUERY(mlaa1 <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS') | SIZEOF( QUERY(mlaa2 <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS') | (mlaa1. attribute_name = mlaa2.attribute_name) AND (mlaa1.language = mlaa2.language ))) > 1)) + SIZEOF(QUERY(ala1 <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS') | SIZEOF(QUERY( ala2 <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS') | (ala1. attribute_name = ala2.attribute_name) AND (ala1.language = ala2.language))) > 1)) > 0)) = 0; END_RULE; -- 10303-214: automotive_design RULE restrict_multi_language_for_product_related_product_category FOR ( product_related_product_category); WHERE wr1 : SIZEOF(QUERY(ent <* product_related_product_category | SIZEOF(QUERY( mlaa <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS') | mlaa. attribute_name <> 'description')) > 0)) = 0; wr2 : SIZEOF(QUERY(ent <* product_related_product_category | SIZEOF(QUERY(ala <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS') | ala.attribute_name <> 'description')) > 0)) = 0; wr3 : SIZEOF(QUERY(ent <* product_related_product_category | SIZEOF(QUERY( mlaa1 <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS') | SIZEOF( QUERY(mlaa2 <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS') | (mlaa1. attribute_name = mlaa2.attribute_name) AND (mlaa1.language = mlaa2.language ))) > 1)) + SIZEOF(QUERY(ala1 <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS') | SIZEOF(QUERY( ala2 <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS') | (ala1. attribute_name = ala2.attribute_name) AND (ala1.language = ala2.language))) > 1)) > 0)) = 0; END_RULE; -- 10303-214: automotive_design RULE restrict_multi_language_for_property_definition FOR (property_definition); WHERE wr1 : SIZEOF(QUERY(ent <* property_definition | SIZEOF(QUERY(mlaa <* USEDIN( ent, 'AUTOMOTIVE_DESIGN.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS') | ( mlaa.attribute_name <> 'description') AND (mlaa.attribute_name <> 'name'))) > 0)) = 0; wr2 : SIZEOF(QUERY(ent <* property_definition | SIZEOF(QUERY(ala <* USEDIN( ent, 'AUTOMOTIVE_DESIGN.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS') | (ala. attribute_name <> 'description') AND (ala.attribute_name <> 'name'))) > 0)) = 0; wr3 : SIZEOF(QUERY(ent <* property_definition | SIZEOF(QUERY(mlaa1 <* USEDIN( ent, 'AUTOMOTIVE_DESIGN.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS') | SIZEOF(QUERY(mlaa2 <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS') | (mlaa1. attribute_name = mlaa2.attribute_name) AND (mlaa1.language = mlaa2.language ))) > 1)) + SIZEOF(QUERY(ala1 <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS') | SIZEOF(QUERY( ala2 <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS') | (ala1. attribute_name = ala2.attribute_name) AND (ala1.language = ala2.language))) > 1)) > 0)) = 0; END_RULE; -- 10303-214: automotive_design RULE restrict_multi_language_for_property_definition_relationship FOR ( property_definition_relationship); WHERE wr1 : SIZEOF(QUERY(ent <* property_definition_relationship | SIZEOF(QUERY( mlaa <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS') | mlaa. attribute_name <> 'description')) > 0)) = 0; wr2 : SIZEOF(QUERY(ent <* property_definition_relationship | SIZEOF(QUERY(ala <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS') | ala.attribute_name <> 'description')) > 0)) = 0; wr3 : SIZEOF(QUERY(ent <* property_definition_relationship | SIZEOF(QUERY( mlaa1 <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS') | SIZEOF( QUERY(mlaa2 <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS') | (mlaa1. attribute_name = mlaa2.attribute_name) AND (mlaa1.language = mlaa2.language ))) > 1)) + SIZEOF(QUERY(ala1 <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS') | SIZEOF(QUERY( ala2 <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS') | (ala1. attribute_name = ala2.attribute_name) AND (ala1.language = ala2.language))) > 1)) > 0)) = 0; END_RULE; -- 10303-214: automotive_design RULE restrict_multi_language_for_representation FOR (representation); WHERE wr1 : SIZEOF(QUERY(ent <* representation | SIZEOF(QUERY(mlaa <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS') | (mlaa. attribute_name <> 'description') AND (mlaa.attribute_name <> 'name'))) > 0) ) = 0; wr2 : SIZEOF(QUERY(ent <* representation | SIZEOF(QUERY(ala <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS') | (ala. attribute_name <> 'description') AND (ala.attribute_name <> 'name'))) > 0)) = 0; wr3 : SIZEOF(QUERY(ent <* representation | SIZEOF(QUERY(mlaa1 <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS') | SIZEOF( QUERY(mlaa2 <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS') | (mlaa1. attribute_name = mlaa2.attribute_name) AND (mlaa1.language = mlaa2.language ))) > 1)) + SIZEOF(QUERY(ala1 <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS') | SIZEOF(QUERY( ala2 <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS') | (ala1. attribute_name = ala2.attribute_name) AND (ala1.language = ala2.language))) > 1)) > 0)) = 0; END_RULE; -- 10303-214: automotive_design RULE restrict_multi_language_for_representation_relationship FOR ( representation_relationship); WHERE wr1 : SIZEOF(QUERY(ent <* representation_relationship | SIZEOF(QUERY(mlaa <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS') | mlaa. attribute_name <> 'description')) > 0)) = 0; wr2 : SIZEOF(QUERY(ent <* representation_relationship | SIZEOF(QUERY(ala <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS') | ala.attribute_name <> 'description')) > 0)) = 0; wr3 : SIZEOF(QUERY(ent <* representation_relationship | SIZEOF(QUERY(mlaa1 <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS') | SIZEOF( QUERY(mlaa2 <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS') | (mlaa1. attribute_name = mlaa2.attribute_name) AND (mlaa1.language = mlaa2.language ))) > 1)) + SIZEOF(QUERY(ala1 <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS') | SIZEOF(QUERY( ala2 <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS') | (ala1. attribute_name = ala2.attribute_name) AND (ala1.language = ala2.language))) > 1)) > 0)) = 0; END_RULE; -- 10303-214: automotive_design RULE restrict_multi_language_for_requirement_for_action_resource FOR ( requirement_for_action_resource); WHERE wr1 : SIZEOF(QUERY(ent <* requirement_for_action_resource | SIZEOF(QUERY(mlaa <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS') | mlaa. attribute_name <> 'description')) > 0)) = 0; wr2 : SIZEOF(QUERY(ent <* requirement_for_action_resource | SIZEOF(QUERY(ala <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS') | ala.attribute_name <> 'description')) > 0)) = 0; wr3 : SIZEOF(QUERY(ent <* requirement_for_action_resource | SIZEOF(QUERY( mlaa1 <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS') | SIZEOF( QUERY(mlaa2 <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS') | (mlaa1. attribute_name = mlaa2.attribute_name) AND (mlaa1.language = mlaa2.language ))) > 1)) + SIZEOF(QUERY(ala1 <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS') | SIZEOF(QUERY( ala2 <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS') | (ala1. attribute_name = ala2.attribute_name) AND (ala1.language = ala2.language))) > 1)) > 0)) = 0; END_RULE; -- 10303-214: automotive_design RULE restrict_multi_language_for_resource_property FOR (resource_property); WHERE wr1 : SIZEOF(QUERY(ent <* resource_property | SIZEOF(QUERY(mlaa <* USEDIN(ent , 'AUTOMOTIVE_DESIGN.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS') | mlaa. attribute_name <> 'description')) > 0)) = 0; wr2 : SIZEOF(QUERY(ent <* resource_property | SIZEOF(QUERY(ala <* USEDIN(ent , 'AUTOMOTIVE_DESIGN.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS') | ala. attribute_name <> 'description')) > 0)) = 0; wr3 : SIZEOF(QUERY(ent <* resource_property | SIZEOF(QUERY(mlaa1 <* USEDIN( ent, 'AUTOMOTIVE_DESIGN.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS') | SIZEOF(QUERY(mlaa2 <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS') | (mlaa1. attribute_name = mlaa2.attribute_name) AND (mlaa1.language = mlaa2.language ))) > 1)) + SIZEOF(QUERY(ala1 <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS') | SIZEOF(QUERY( ala2 <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS') | (ala1. attribute_name = ala2.attribute_name) AND (ala1.language = ala2.language))) > 1)) > 0)) = 0; END_RULE; -- 10303-214: automotive_design RULE restrict_multi_language_for_resource_requirement_type FOR ( resource_requirement_type); WHERE wr1 : SIZEOF(QUERY(ent <* resource_requirement_type | SIZEOF(QUERY(mlaa <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS') | mlaa. attribute_name <> 'description')) > 0)) = 0; wr2 : SIZEOF(QUERY(ent <* resource_requirement_type | SIZEOF(QUERY(ala <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS') | ala.attribute_name <> 'description')) > 0)) = 0; wr3 : SIZEOF(QUERY(ent <* resource_requirement_type | SIZEOF(QUERY(mlaa1 <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS') | SIZEOF( QUERY(mlaa2 <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS') | (mlaa1. attribute_name = mlaa2.attribute_name) AND (mlaa1.language = mlaa2.language ))) > 1)) + SIZEOF(QUERY(ala1 <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS') | SIZEOF(QUERY( ala2 <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS') | (ala1. attribute_name = ala2.attribute_name) AND (ala1.language = ala2.language))) > 1)) > 0)) = 0; END_RULE; -- 10303-214: automotive_design RULE restrict_multi_language_for_security_classification FOR ( security_classification); WHERE wr1 : SIZEOF(QUERY(ent <* security_classification | SIZEOF(QUERY(mlaa <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS') | (mlaa. attribute_name <> 'name') AND (mlaa.attribute_name <> 'purpose'))) > 0)) = 0; wr2 : SIZEOF(QUERY(ent <* security_classification | SIZEOF(QUERY(ala <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS') | ( ala.attribute_name <> 'name') AND (ala.attribute_name <> 'purpose'))) > 0)) = 0; wr3 : SIZEOF(QUERY(ent <* security_classification | SIZEOF(QUERY(mlaa1 <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS') | SIZEOF( QUERY(mlaa2 <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS') | (mlaa1. attribute_name = mlaa2.attribute_name) AND (mlaa1.language = mlaa2.language ))) > 1)) + SIZEOF(QUERY(ala1 <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS') | SIZEOF(QUERY( ala2 <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS') | (ala1. attribute_name = ala2.attribute_name) AND (ala1.language = ala2.language))) > 1)) > 0)) = 0; END_RULE; -- 10303-214: automotive_design RULE restrict_multi_language_for_shape_aspect FOR (shape_aspect); WHERE wr1 : SIZEOF(QUERY(ent <* shape_aspect | SIZEOF(QUERY(mlaa <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS') | mlaa. attribute_name <> 'description')) > 0)) = 0; wr2 : SIZEOF(QUERY(ent <* shape_aspect | SIZEOF(QUERY(ala <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS') | ala. attribute_name <> 'description')) > 0)) = 0; wr3 : SIZEOF(QUERY(ent <* shape_aspect | SIZEOF(QUERY(mlaa1 <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS') | SIZEOF( QUERY(mlaa2 <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS') | (mlaa1. attribute_name = mlaa2.attribute_name) AND (mlaa1.language = mlaa2.language ))) > 1)) + SIZEOF(QUERY(ala1 <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS') | SIZEOF(QUERY( ala2 <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS') | (ala1. attribute_name = ala2.attribute_name) AND (ala1.language = ala2.language))) > 1)) > 0)) = 0; END_RULE; -- 10303-214: automotive_design RULE restrict_multi_language_for_shape_aspect_relationship FOR ( shape_aspect_relationship); WHERE wr1 : SIZEOF(QUERY(ent <* shape_aspect_relationship | SIZEOF(QUERY(mlaa <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS') | mlaa. attribute_name <> 'description')) > 0)) = 0; wr2 : SIZEOF(QUERY(ent <* shape_aspect_relationship | SIZEOF(QUERY(ala <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS') | ala.attribute_name <> 'description')) > 0)) = 0; wr3 : SIZEOF(QUERY(ent <* shape_aspect_relationship | SIZEOF(QUERY(mlaa1 <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS') | SIZEOF( QUERY(mlaa2 <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS') | (mlaa1. attribute_name = mlaa2.attribute_name) AND (mlaa1.language = mlaa2.language ))) > 1)) + SIZEOF(QUERY(ala1 <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS') | SIZEOF(QUERY( ala2 <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS') | (ala1. attribute_name = ala2.attribute_name) AND (ala1.language = ala2.language))) > 1)) > 0)) = 0; END_RULE; -- 10303-214: automotive_design RULE restrict_multi_language_for_styled_item FOR (styled_item); WHERE wr1 : SIZEOF(QUERY(ent <* styled_item | SIZEOF(QUERY(mlaa <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS') | mlaa. attribute_name <> 'name')) > 0)) = 0; wr2 : SIZEOF(QUERY(ent <* styled_item | SIZEOF(QUERY(ala <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS') | ala. attribute_name <> 'name')) > 0)) = 0; wr3 : SIZEOF(QUERY(ent <* styled_item | SIZEOF(QUERY(mlaa1 <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS') | SIZEOF( QUERY(mlaa2 <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS') | (mlaa1. attribute_name = mlaa2.attribute_name) AND (mlaa1.language = mlaa2.language ))) > 1)) + SIZEOF(QUERY(ala1 <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS') | SIZEOF(QUERY( ala2 <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS') | (ala1. attribute_name = ala2.attribute_name) AND (ala1.language = ala2.language))) > 1)) > 0)) = 0; END_RULE; -- 10303-214: automotive_design RULE restrict_multi_language_for_time_interval_role FOR (time_interval_role); WHERE wr1 : SIZEOF(QUERY(ent <* time_interval_role | SIZEOF(QUERY(mlaa <* USEDIN( ent, 'AUTOMOTIVE_DESIGN.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS') | mlaa.attribute_name <> 'description')) > 0)) = 0; wr2 : SIZEOF(QUERY(ent <* time_interval_role | SIZEOF(QUERY(ala <* USEDIN(ent , 'AUTOMOTIVE_DESIGN.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS') | ala. attribute_name <> 'description')) > 0)) = 0; wr3 : SIZEOF(QUERY(ent <* time_interval_role | SIZEOF(QUERY(mlaa1 <* USEDIN( ent, 'AUTOMOTIVE_DESIGN.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS') | SIZEOF(QUERY(mlaa2 <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS') | (mlaa1. attribute_name = mlaa2.attribute_name) AND (mlaa1.language = mlaa2.language ))) > 1)) + SIZEOF(QUERY(ala1 <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS') | SIZEOF(QUERY( ala2 <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS') | (ala1. attribute_name = ala2.attribute_name) AND (ala1.language = ala2.language))) > 1)) > 0)) = 0; END_RULE; -- 10303-214: automotive_design RULE restrict_multi_language_for_topological_representation_item FOR ( topological_representation_item); WHERE wr1 : SIZEOF(QUERY(ent <* topological_representation_item | SIZEOF(QUERY(mlaa <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS') | mlaa. attribute_name <> 'name')) > 0)) = 0; wr2 : SIZEOF(QUERY(ent <* topological_representation_item | SIZEOF(QUERY(ala <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS') | ala.attribute_name <> 'name')) > 0)) = 0; wr3 : SIZEOF(QUERY(ent <* topological_representation_item | SIZEOF(QUERY( mlaa1 <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS') | SIZEOF( QUERY(mlaa2 <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS') | (mlaa1. attribute_name = mlaa2.attribute_name) AND (mlaa1.language = mlaa2.language ))) > 1)) + SIZEOF(QUERY(ala1 <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS') | SIZEOF(QUERY( ala2 <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS') | (ala1. attribute_name = ala2.attribute_name) AND (ala1.language = ala2.language))) > 1)) > 0)) = 0; END_RULE; -- 10303-214: automotive_design RULE restrict_multi_language_for_uncertainty_measure_with_unit FOR ( uncertainty_measure_with_unit); WHERE wr1 : SIZEOF(QUERY(ent <* uncertainty_measure_with_unit | SIZEOF(QUERY(mlaa <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS') | mlaa. attribute_name <> 'description')) > 0)) = 0; wr2 : SIZEOF(QUERY(ent <* uncertainty_measure_with_unit | SIZEOF(QUERY(ala <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS') | ala.attribute_name <> 'description')) > 0)) = 0; wr3 : SIZEOF(QUERY(ent <* uncertainty_measure_with_unit | SIZEOF(QUERY(mlaa1 <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS') | SIZEOF( QUERY(mlaa2 <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS') | (mlaa1. attribute_name = mlaa2.attribute_name) AND (mlaa1.language = mlaa2.language ))) > 1)) + SIZEOF(QUERY(ala1 <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS') | SIZEOF(QUERY( ala2 <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS') | (ala1. attribute_name = ala2.attribute_name) AND (ala1.language = ala2.language))) > 1)) > 0)) = 0; END_RULE; -- 10303-214: automotive_design RULE restrict_multi_language_for_uncertainty_qualifier FOR ( uncertainty_qualifier); WHERE wr1 : SIZEOF(QUERY(ent <* uncertainty_qualifier | SIZEOF(QUERY(mlaa <* USEDIN (ent, 'AUTOMOTIVE_DESIGN.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS') | mlaa.attribute_name <> 'description')) > 0)) = 0; wr2 : SIZEOF(QUERY(ent <* uncertainty_qualifier | SIZEOF(QUERY(ala <* USEDIN( ent, 'AUTOMOTIVE_DESIGN.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS') | ala. attribute_name <> 'description')) > 0)) = 0; wr3 : SIZEOF(QUERY(ent <* uncertainty_qualifier | SIZEOF(QUERY(mlaa1 <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS') | SIZEOF( QUERY(mlaa2 <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS') | (mlaa1. attribute_name = mlaa2.attribute_name) AND (mlaa1.language = mlaa2.language ))) > 1)) + SIZEOF(QUERY(ala1 <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS') | SIZEOF(QUERY( ala2 <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS') | (ala1. attribute_name = ala2.attribute_name) AND (ala1.language = ala2.language))) > 1)) > 0)) = 0; END_RULE; -- 10303-214: automotive_design RULE restrict_multi_language_for_versioned_action_request FOR ( versioned_action_request); WHERE wr1 : SIZEOF(QUERY(ent <* versioned_action_request | SIZEOF(QUERY(mlaa <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS') | mlaa. attribute_name <> 'description')) > 0)) = 0; wr2 : SIZEOF(QUERY(ent <* versioned_action_request | SIZEOF(QUERY(ala <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS') | ala.attribute_name <> 'description')) > 0)) = 0; wr3 : SIZEOF(QUERY(ent <* versioned_action_request | SIZEOF(QUERY(mlaa1 <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS') | SIZEOF( QUERY(mlaa2 <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS') | (mlaa1. attribute_name = mlaa2.attribute_name) AND (mlaa1.language = mlaa2.language ))) > 1)) + SIZEOF(QUERY(ala1 <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS') | SIZEOF(QUERY( ala2 <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS') | (ala1. attribute_name = ala2.attribute_name) AND (ala1.language = ala2.language))) > 1)) > 0)) = 0; END_RULE; -- 10303-214: automotive_design RULE restrict_multi_language_for_versioned_action_request_relationship FOR ( versioned_action_request_relationship); WHERE wr1 : SIZEOF(QUERY(ent <* versioned_action_request_relationship | SIZEOF( QUERY(mlaa <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS') | mlaa. attribute_name <> 'description')) > 0)) = 0; wr2 : SIZEOF(QUERY(ent <* versioned_action_request_relationship | SIZEOF( QUERY(ala <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS') | ala. attribute_name <> 'description')) > 0)) = 0; wr3 : SIZEOF(QUERY(ent <* versioned_action_request_relationship | SIZEOF( QUERY(mlaa1 <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS') | SIZEOF( QUERY(mlaa2 <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS') | (mlaa1. attribute_name = mlaa2.attribute_name) AND (mlaa1.language = mlaa2.language ))) > 1)) + SIZEOF(QUERY(ala1 <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS') | SIZEOF(QUERY( ala2 <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS') | (ala1. attribute_name = ala2.attribute_name) AND (ala1.language = ala2.language))) > 1)) > 0)) = 0; END_RULE; -- 10303-214: automotive_design RULE restrict_name_assignment_for_kinematic_joint FOR (kinematic_joint); WHERE wr1 : SIZEOF(QUERY(ent <* kinematic_joint | SIZEOF(USEDIN(ent, 'AUTOMOTIVE_DESIGN.APPLIED_NAME_ASSIGNMENT.ITEMS')) > 1)) = 0; END_RULE; -- 10303-214: automotive_design RULE restrict_name_assignment_for_kinematic_link FOR (kinematic_link); WHERE wr1 : SIZEOF(QUERY(ent <* kinematic_link | SIZEOF(USEDIN(ent, 'AUTOMOTIVE_DESIGN.APPLIED_NAME_ASSIGNMENT.ITEMS')) > 1)) = 0; END_RULE; -- 10303-214: automotive_design RULE restrict_name_assignment_for_kinematic_structure FOR (kinematic_structure ); WHERE wr1 : SIZEOF(QUERY(ent <* kinematic_structure | SIZEOF(USEDIN(ent, 'AUTOMOTIVE_DESIGN.APPLIED_NAME_ASSIGNMENT.ITEMS')) > 1)) = 0; END_RULE; -- 10303-214: automotive_design RULE restrict_name_for_known_source FOR (known_source); WHERE wr1 : SIZEOF(QUERY(ks <* known_source | ks.name <> 'ISO 13584 library')) = 0; END_RULE; -- 10303-214: automotive_design RULE restrict_part_occurrence FOR (product_definition, product_definition_occurrence_relationship); WHERE wr1 : SIZEOF(QUERY(pd <* product_definition | (pd.frame_of_reference.name = 'part occurrence') AND NOT (pd.name IN ['single instance', 'selected instance', 'quantified instance', 'specified instance']))) = 0; wr2 : SIZEOF(QUERY(pd <* product_definition | (pd.frame_of_reference.name = 'part occurrence') AND (SIZEOF(QUERY(pdr <* USEDIN(pd, 'AUTOMOTIVE_DESIGN.PRODUCT_DEFINITION_RELATIONSHIP.RELATED_PRODUCT_DEFINITION' ) | pdr.name = 'definition usage')) <> 1) AND (SIZEOF(QUERY(cd <* USEDIN(pd , 'AUTOMOTIVE_DESIGN.CONFIGURATION_DESIGN.DESIGN') | (cd.name = 'occurrence usage definition') AND NOT ('AUTOMOTIVE_DESIGN.' + 'PRODUCT_IDENTIFICATION' IN TYPEOF(cd.configuration)))) <> 1))) = 0; wr3 : SIZEOF(QUERY(pd <* product_definition | (pd.frame_of_reference.name = 'part occurrence') AND (SIZEOF(QUERY(cd <* USEDIN(pd, 'AUTOMOTIVE_DESIGN.PRODUCT_DEFINITION_RELATIONSHIP.RELATED_PRODUCT_DEFINITION' ) | 'AUTOMOTIVE_DESIGN.' + 'PRODUCT_DEFINITION_USAGE' IN TYPEOF(cd))) = 0) AND (SIZEOF(USEDIN(pd, 'AUTOMOTIVE_DESIGN.PRODUCT_DEFINITION_OCCURRENCE_RELATIONSHIP.OCCURRENCE' )) = 0))) = 0; wr4 : SIZEOF(QUERY(pd <* product_definition | (pd.frame_of_reference.name = 'part occurrence') AND (pd.name = 'selected instance') AND (SIZEOF(QUERY( prd <* USEDIN(pd, 'AUTOMOTIVE_DESIGN.PROPERTY_DEFINITION.DEFINITION') | (prd.name = 'occurrence selection') AND (SIZEOF(QUERY(pdr <* USEDIN(prd, 'AUTOMOTIVE_DESIGN.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ( pdr.used_representation.name = 'selection criteria') AND (SIZEOF(pdr. used_representation.items) = 2) AND (SIZEOF(QUERY(i <* pdr. used_representation.items | (SIZEOF(['AUTOMOTIVE_DESIGN.' + 'MEASURE_REPRESENTATION_ITEM', 'AUTOMOTIVE_DESIGN.' + 'VALUE_RANGE'] * TYPEOF(i)) = 1) AND (i.name = 'selection quantity'))) = 1) AND (SIZEOF( QUERY(i <* pdr.used_representation.items | ('AUTOMOTIVE_DESIGN.' + 'DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF(i)) AND (i.name = 'selection control'))) = 1))) = 1))) = 0))) = 0; wr5 : SIZEOF(QUERY(pd <* product_definition | (pd.frame_of_reference.name = 'part occurrence') AND (pd.name = 'quantified instance') AND (SIZEOF(QUERY( ppd <* USEDIN(pd, 'AUTOMOTIVE_DESIGN.PROPERTY_DEFINITION.DEFINITION') | (ppd.name = 'occurrence quantity') AND (SIZEOF(QUERY(pdr <* USEDIN(ppd, 'AUTOMOTIVE_DESIGN.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ( pdr.used_representation.name = 'quantity') AND (SIZEOF(pdr. used_representation.items) = 1) AND (SIZEOF(QUERY(i <* pdr. used_representation.items | ('AUTOMOTIVE_DESIGN.' + 'MEASURE_REPRESENTATION_ITEM' IN TYPEOF(i)) AND (i.name = 'quantity measure'))) = 1))) = 1))) = 0))) = 0; wr6 : SIZEOF(QUERY(pd <* product_definition | (pd.frame_of_reference.name = 'part occurrence') AND (pd.name = 'specified instance') AND (SIZEOF(QUERY( pdor <* USEDIN(pd, 'AUTOMOTIVE_DESIGN.PRODUCT_DEFINITION_OCCURRENCE_RELATIONSHIP.OCCURRENCE' ) | 'AUTOMOTIVE_DESIGN.' + 'SPECIFIED_HIGHER_USAGE_OCCURRENCE' IN TYPEOF (pdor.occurrence_usage))) = 0))) = 0; END_RULE; -- 10303-214: automotive_design RULE restrict_process_product_association FOR (process_product_association); WHERE wr1 : SIZEOF(QUERY(ppa <* process_product_association | NOT (ppa.name IN [ 'input', 'output', 'produced output']))) = 0; wr2 : SIZEOF(QUERY(ppa <* process_product_association | NOT (ppa.name IN [ 'input', 'output']) OR (SIZEOF(QUERY(ar <* USEDIN(ppa.process, 'AUTOMOTIVE_DESIGN.ACTION_RELATIONSHIP.RELATED_ACTION') | ar.name = 'process operation occurrence')) = 0))) = 0; wr3 : SIZEOF(QUERY(ppa <* process_product_association | (ppa.name <> 'produced output') OR ('AUTOMOTIVE_DESIGN.' + 'PRODUCT_DEFINITION' IN TYPEOF(ppa.defined_product)) AND (SIZEOF(QUERY(prpc <* USEDIN(ppa. defined_product\product_definition.formation.of_product, 'AUTOMOTIVE_DESIGN.PRODUCT_RELATED_PRODUCT_CATEGORY.PRODUCTS') | prpc. name IN ['part', 'tool', 'raw material'])) = 0))) = 0; END_RULE; -- 10303-214: automotive_design RULE restrict_product_categories_for_tool_part_relationship FOR ( product_definition_relationship); WHERE wr1 : SIZEOF(QUERY(pdr <* product_definition_relationship | (pdr.name = 'tool part relationship') AND ((SIZEOF(QUERY(prpc <* USEDIN(pdr. relating_product_definition.formation.of_product, 'AUTOMOTIVE_DESIGN.PRODUCT_RELATED_PRODUCT_CATEGORY.PRODUCTS') | prpc. name = 'tool')) < 1) OR (SIZEOF(QUERY(prpc <* USEDIN(pdr. related_product_definition.formation.of_product, 'AUTOMOTIVE_DESIGN.PRODUCT_RELATED_PRODUCT_CATEGORY.PRODUCTS') | prpc. name = 'part')) < 1)))) = 0; END_RULE; -- 10303-214: automotive_design RULE restrict_product_category_for_product FOR (product); WHERE wr1 : SIZEOF(QUERY(p <* product | SIZEOF(QUERY(prpc <* USEDIN(p, 'AUTOMOTIVE_DESIGN.PRODUCT_RELATED_PRODUCT_CATEGORY.PRODUCTS') | prpc. name IN ['part', 'raw material', 'tool', 'document', 'functionality', 'conceptual product', 'alternative solution', 'requirement', 'physically realized product', 'tool', 'raw material'])) = 0)) = 0; wr2 : SIZEOF(QUERY(p <* product | SIZEOF(QUERY(prpc <* USEDIN(p, 'AUTOMOTIVE_DESIGN.PRODUCT_RELATED_PRODUCT_CATEGORY.PRODUCTS') | prpc. name IN ['part', 'raw material', 'tool', 'document', 'functionality', 'conceptual product', 'alternative solution', 'requirement', 'physically realized product'])) > 1)) = 0; END_RULE; -- 10303-214: automotive_design RULE restrict_product_definition_context_for_external_properties FOR ( general_property_association, product_definition); WHERE wr1 : SIZEOF(QUERY(pd <* product_definition | (SIZEOF(QUERY(propd <* USEDIN( pd, 'AUTOMOTIVE_DESIGN.PROPERTY_DEFINITION.DEFINITION') | SIZEOF(QUERY( gpa <* USEDIN(propd, 'AUTOMOTIVE_DESIGN.GENERAL_PROPERTY_ASSOCIATION.DERIVED_DEFINITION') | 'AUTOMOTIVE_DESIGN.' + 'EXTERNALLY_DEFINED_GENERAL_PROPERTY' IN TYPEOF( gpa.base_definition))) > 0)) > 0) AND (SIZEOF(QUERY(pdca <* USEDIN(pd, 'AUTOMOTIVE_DESIGN.PRODUCT_DEFINITION_CONTEXT_ASSOCIATION.DEFINITION') | (pdca.frame_of_reference.name = 'external') AND (pdca.role.name = 'external'))) = 0))) = 0; END_RULE; -- 10303-214: automotive_design RULE restrict_product_definition_context_for_product FOR (product_definition, product_related_product_category); WHERE wr1 : SIZEOF(QUERY(pd <* product_definition | (pd.frame_of_reference.name IN ['part definition', 'part occurrence']) AND (SIZEOF(QUERY(prpc <* USEDIN(pd .formation.of_product, 'AUTOMOTIVE_DESIGN.PRODUCT_RELATED_PRODUCT_CATEGORY.PRODUCTS') | prpc. name IN ['part', 'raw material', 'tool'])) = 0))) = 0; wr2 : SIZEOF(QUERY(pd <* product_definition | (pd.frame_of_reference.name = 'functional definition') AND (SIZEOF(QUERY(prpc <* USEDIN(pd.formation. of_product, 'AUTOMOTIVE_DESIGN.PRODUCT_RELATED_PRODUCT_CATEGORY.PRODUCTS') | prpc. name = 'functionality')) = 0))) = 0; wr3 : SIZEOF(QUERY(pd <* product_definition | (pd.frame_of_reference.name = 'conceptual definition') AND (SIZEOF(QUERY(prpc <* USEDIN(pd.formation. of_product, 'AUTOMOTIVE_DESIGN.PRODUCT_RELATED_PRODUCT_CATEGORY.PRODUCTS') | prpc. name = 'conceptual product')) = 0))) = 0; wr4 : SIZEOF(QUERY(pd <* product_definition | (pd.frame_of_reference.name = 'alternative definition') AND (SIZEOF(QUERY(prpc <* USEDIN(pd.formation. of_product, 'AUTOMOTIVE_DESIGN.PRODUCT_RELATED_PRODUCT_CATEGORY.PRODUCTS') | prpc. name = 'alternative solution')) = 0))) = 0; wr5 : SIZEOF(QUERY(pd <* product_definition | (pd.frame_of_reference.name = 'design constraint definition') AND (SIZEOF(QUERY(prpc <* USEDIN(pd. formation.of_product, 'AUTOMOTIVE_DESIGN.PRODUCT_RELATED_PRODUCT_CATEGORY.PRODUCTS') | prpc. name = 'requirement')) = 0))) = 0; wr6 : SIZEOF(QUERY(pd <* product_definition | (pd.frame_of_reference.name = 'physical occurrence') AND (SIZEOF(QUERY(prpc <* USEDIN(pd.formation. of_product, 'AUTOMOTIVE_DESIGN.PRODUCT_RELATED_PRODUCT_CATEGORY.PRODUCTS') | prpc. name = 'physically realized product')) = 0))) = 0; wr7 : SIZEOF(QUERY(pd <* product_definition | (pd.frame_of_reference.name = 'physical document definition') AND (SIZEOF(QUERY(prpc <* USEDIN(pd. formation.of_product, 'AUTOMOTIVE_DESIGN.PRODUCT_RELATED_PRODUCT_CATEGORY.PRODUCTS') | prpc. name = 'document')) = 0))) = 0; END_RULE; -- 10303-214: automotive_design RULE restrict_product_definition_for_mating_tree FOR (product_definition); WHERE wr1 : SIZEOF(QUERY(pd <* product_definition | (SIZEOF(QUERY(pdca <* USEDIN(pd , 'AUTOMOTIVE_DESIGN.PRODUCT_DEFINITION_CONTEXT_ASSOCIATION.DEFINITION') | pdca.frame_of_reference.name = 'mating definition')) = 1) AND (SIZEOF( QUERY(pdr <* USEDIN(pd, 'AUTOMOTIVE_DESIGN.PRODUCT_DEFINITION_RELATIONSHIP.RELATING_PRODUCT_DEFINITION' ) | pdr.name = 'mating membership')) <> 2))) = 0; wr2 : SIZEOF(QUERY(pd <* product_definition | (SIZEOF(QUERY(pdca <* USEDIN(pd , 'AUTOMOTIVE_DESIGN.PRODUCT_DEFINITION_CONTEXT_ASSOCIATION.DEFINITION') | pdca.frame_of_reference.name = 'mating definition')) = 1) AND NOT ({1 <= SIZEOF(QUERY(pdr <* USEDIN(pd, 'AUTOMOTIVE_DESIGN.PRODUCT_DEFINITION_RELATIONSHIP.RELATING_PRODUCT_DEFINITION' ) | (pdr.name = 'mating membership') AND (pdr.related_product_definition. frame_of_reference.name = 'part occurrence'))) <= 2}))) = 0; wr3 : SIZEOF(QUERY(pd <* product_definition | (SIZEOF(QUERY(pdca <* USEDIN(pd , 'AUTOMOTIVE_DESIGN.PRODUCT_DEFINITION_CONTEXT_ASSOCIATION.DEFINITION') | pdca.frame_of_reference.name = 'mating definition')) = 1) AND (SIZEOF( QUERY(pdr <* USEDIN(pd, 'AUTOMOTIVE_DESIGN.PRODUCT_DEFINITION_RELATIONSHIP.RELATING_PRODUCT_DEFINITION' ) | (pdr.name = 'mating membership') AND (SIZEOF(QUERY(pdca <* USEDIN(pdr. related_product_definition, 'AUTOMOTIVE_DESIGN.PRODUCT_DEFINITION_CONTEXT_ASSOCIATION.DEFINITION') | pdca.frame_of_reference.name = 'mating definition')) = 1))) > 1))) = 0; END_RULE; -- 10303-214: automotive_design RULE restrict_product_definition_substitute FOR (product_definition_substitute ); WHERE wr1 : SIZEOF(QUERY(pds <* product_definition_substitute | SIZEOF(USEDIN(pds, 'AUTOMOTIVE_DESIGN.APPLIED_EFFECTIVITY_ASSIGNMENT.ITEMS')) = 0)) = 0; wr2 : SIZEOF(QUERY(pds <* product_definition_substitute | pds. substitute_definition.frame_of_reference.name <> 'part occurrence')) = 0; wr3 : SIZEOF(QUERY(pds <* product_definition_substitute | ( 'AUTOMOTIVE_DESIGN.' + 'ASSEMBLY_COMPONENT_USAGE' IN TYPEOF(pds. context_relationship)) AND (SIZEOF(USEDIN(pds.context_relationship, 'AUTOMOTIVE_DESIGN.PRODUCT_DEFINITION_OCCURRENCE_RELATIONSHIP.OCCURRENCE_USAGE' )) = 0) AND ('AUTOMOTIVE_DESIGN.' + 'PRODUCT_DEFINITION_RELATIONSHIP' IN TYPEOF(pds.context_relationship)) AND (pds.context_relationship. related_product_definition.frame_of_reference.name <> 'part occurrence'))) = 0; END_RULE; -- 10303-214: automotive_design RULE restrict_product_definitions_for_product_definition_relationship FOR ( assembly_component_usage, 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; wr2 : 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; wr3 : SIZEOF(QUERY(pdr <* product_definition_relationship | ( 'AUTOMOTIVE_DESIGN.' + 'ASSEMBLY_COMPONENT_USAGE' IN TYPEOF(pdr)) AND (( pdr.relating_product_definition.frame_of_reference.name <> 'part definition') OR (pdr.related_product_definition.frame_of_reference. name <> 'part definition')) AND ((pdr.relating_product_definition. frame_of_reference.name <> 'physical occurrence') OR (pdr. related_product_definition.frame_of_reference.name <> 'physical occurrence' )))) = 0; wr4 : SIZEOF(QUERY(pdr <* product_definition_relationship | ( 'AUTOMOTIVE_DESIGN.' + 'ASSEMBLY_COMPONENT_USAGE' IN TYPEOF(pdr)) AND ( pdr.name = 'selected instance usage') AND ((pdr.relating_product_definition .frame_of_reference.name <> 'part definition') OR (pdr. related_product_definition.frame_of_reference.name <> 'part definition')))) = 0; wr5 : SIZEOF(QUERY(pdr <* product_definition_relationship | (pdr.name = 'physical realization') AND ((pdr.relating_product_definition. frame_of_reference.name <> 'part definition') OR (pdr. related_product_definition.frame_of_reference.name <> 'physical occurrence' )))) = 0; wr6 : SIZEOF(QUERY(pdr <* product_definition_relationship | (pdr.name = 'physical occurrence usage') AND (NOT ('AUTOMOTIVE_DESIGN.' + 'ASSEMBLY_COMPONENT_USAGE' IN TYPEOF(pdr)) OR (pdr. relating_product_definition.frame_of_reference.name <> 'physical occurrence') OR (pdr.related_product_definition. frame_of_reference.name <> 'physical occurrence')))) = 0; wr7 : 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; wr8 : 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, 'AUTOMOTIVE_DESIGN.PRODUCT_DEFINITION_CONTEXT_ASSOCIATION.DEFINITION') | (pdca.role.name = 'part definition type') AND (pdca.frame_of_reference. name = 'collection definition'))) = 0)))) = 0; wr9 : 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; wr10 : SIZEOF(QUERY(pdr <* product_definition_relationship | (pdr.name = 'final specification') AND (NOT (pdr.relating_product_definition.name IN [ 'final', 'technical final', 'supplier final', 'technical supplier final']) OR (pdr.relating_product_definition.frame_of_reference.name <> 'alternative definition') OR NOT (pdr.related_product_definition. frame_of_reference.name IN ['part definition', 'physical occurrence'])))) = 0; END_RULE; -- 10303-214: automotive_design RULE restrict_properties_of_document_file FOR (document_file); WHERE wr1 : SIZEOF(QUERY(df <* document_file | SIZEOF(QUERY(pd <* USEDIN(df, 'AUTOMOTIVE_DESIGN.PROPERTY_DEFINITION.DEFINITION') | pd.name = 'document property')) > 1)) = 0; wr2 : SIZEOF(QUERY(df <* document_file | SIZEOF(QUERY(rt <* df. representation_types | ('AUTOMOTIVE_DESIGN.' + 'DOCUMENT_REPRESENTATION_TYPE' IN TYPEOF(rt)) AND (rt.name IN ['digital', 'physical']))) = 0)) = 0; END_RULE; -- 10303-214: automotive_design RULE restrict_properties_of_document_representation FOR (product_definition); WHERE wr1 : SIZEOF(QUERY(pd <* product_definition | (pd.frame_of_reference.name IN ['physical document definition', 'digital document definition', 'physical model occurrence']) AND (SIZEOF(QUERY(pd1 <* USEDIN(pd, 'AUTOMOTIVE_DESIGN.PROPERTY_DEFINITION.DEFINITION') | pd1.name = 'document property')) > 1))) = 0; END_RULE; -- 10303-214: automotive_design RULE restrict_representation_for_document_content_property FOR (representation , representation_item); WHERE wr1 : SIZEOF(QUERY(r <* representation | (r.name = 'document content') AND (( SIZEOF(r.items) < 1) OR (SIZEOF(r.items) > 3)))) = 0; wr2 : SIZEOF(QUERY(ri <* representation_item | (SIZEOF(QUERY(r <* USEDIN(ri, 'AUTOMOTIVE_DESIGN.REPRESENTATION.ITEMS') | r.name = 'document content') ) > 0) AND NOT (ri.name IN ['detail level', 'geometry type', 'real world scale']))) = 0; wr3 : SIZEOF(QUERY(r <* representation | (r.name = 'document content') AND ( SIZEOF(QUERY(i <* r.items | (i.name = 'detail level') AND ( 'AUTOMOTIVE_DESIGN.' + 'DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF(i)))) > 1))) = 0; wr4 : SIZEOF(QUERY(r <* representation | (r.name = 'document content') AND ( SIZEOF(QUERY(i <* r.items | (i.name = 'geometry type') AND ( 'AUTOMOTIVE_DESIGN.' + 'DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF(i)))) > 1))) = 0; wr5 : SIZEOF(QUERY(r <* representation | (r.name = 'document content') AND ( SIZEOF(QUERY(i <* r.items | (i.name = 'real world scale') AND (SIZEOF([ 'AUTOMOTIVE_DESIGN.' + 'MEASURE_REPRESENTATION_ITEM', 'AUTOMOTIVE_DESIGN.' + 'VALUE_REPRESENTATION_ITEM'] * TYPEOF(i)) = 1))) > 1))) = 0; END_RULE; -- 10303-214: automotive_design RULE restrict_representation_for_document_creation_property FOR (representation , representation_item); WHERE wr1 : SIZEOF(QUERY(r <* representation | (r.name = 'document creation') AND ( (SIZEOF(r.items) < 1) OR (SIZEOF(r.items) > 3)))) = 0; wr2 : SIZEOF(QUERY(ri <* representation_item | (SIZEOF(QUERY(r <* USEDIN(ri, 'AUTOMOTIVE_DESIGN.REPRESENTATION.ITEMS') | r.name = 'document creation' )) > 0) AND NOT (ri.name IN ['creating interface', 'creating system', 'operating system']))) = 0; wr3 : SIZEOF(QUERY(r <* representation | (r.name = 'document creation') AND ( SIZEOF(QUERY(i <* r.items | (i.name = 'creating interface') AND ( 'AUTOMOTIVE_DESIGN.' + 'DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF(i)))) > 1))) = 0; wr4 : SIZEOF(QUERY(r <* representation | (r.name = 'document creation') AND ( SIZEOF(QUERY(i <* r.items | (i.name = 'creating system') AND ( 'AUTOMOTIVE_DESIGN.' + 'DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF(i)))) <> 1))) = 0; wr5 : SIZEOF(QUERY(r <* representation | (r.name = 'document creation') AND ( SIZEOF(QUERY(i <* r.items | (i.name = 'operating system') AND ( 'AUTOMOTIVE_DESIGN.' + 'DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF(i)))) > 1))) = 0; END_RULE; -- 10303-214: automotive_design RULE restrict_representation_for_document_format_property FOR (representation, representation_item); WHERE wr1 : SIZEOF(QUERY(r <* representation | (r.name = 'document format') AND (( SIZEOF(r.items) < 1) OR (SIZEOF(r.items) > 3)))) = 0; wr2 : SIZEOF(QUERY(ri <* representation_item | (SIZEOF(QUERY(r <* USEDIN(ri, 'AUTOMOTIVE_DESIGN.REPRESENTATION.ITEMS') | r.name = 'document format')) > 0) AND NOT (ri.name IN ['character code', 'data format', 'size format']) )) = 0; wr3 : SIZEOF(QUERY(r <* representation | (r.name = 'document format') AND ( SIZEOF(QUERY(i <* r.items | (i.name = 'character code') AND ( 'AUTOMOTIVE_DESIGN.' + 'DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF(i)))) > 1))) = 0; wr4 : SIZEOF(QUERY(r <* representation | (r.name = 'document format') AND ( SIZEOF(QUERY(i <* r.items | (i.name = 'data format') AND ( 'AUTOMOTIVE_DESIGN.' + 'DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF(i)))) > 1))) = 0; wr5 : SIZEOF(QUERY(r <* representation | (r.name = 'document format') AND ( SIZEOF(QUERY(i <* r.items | (i.name = 'size format') AND ( 'AUTOMOTIVE_DESIGN.' + 'PLANAR_EXTENT' IN TYPEOF(i)))) > 1))) = 0; END_RULE; -- 10303-214: automotive_design RULE restrict_representation_for_document_properties FOR (property_definition, representation, representation_context); WHERE wr1 : SIZEOF(QUERY(pd <* property_definition | (pd.name = 'document property' ) AND (SIZEOF(QUERY(pdr <* USEDIN(pd, 'AUTOMOTIVE_DESIGN.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | NOT (pdr.used_representation.name IN ['document content', 'document creation', 'document format', 'document size']))) > 0))) = 0; wr2 : SIZEOF(QUERY(r <* representation | (r.name IN ['document content', 'document creation', 'document format', 'document size']) AND (SIZEOF( QUERY(pdr <* USEDIN(r, 'AUTOMOTIVE_DESIGN.PROPERTY_DEFINITION_REPRESENTATION.USED_REPRESENTATION' ) | ('AUTOMOTIVE_DESIGN.' + 'PROPERTY_DEFINITION' IN TYPEOF(pdr. definition)) AND (pdr.definition.name = 'document property'))) = 0))) = 0; wr3 : SIZEOF(QUERY(r <* representation | (r.name IN ['document content', 'document creation', 'document format', 'document size']) AND (r. context_of_items.context_type <> 'document parameters'))) = 0; wr4 : SIZEOF(QUERY(rc <* representation_context | (rc.context_type = 'document parameters') AND (SIZEOF(QUERY(r <* USEDIN(rc, 'AUTOMOTIVE_DESIGN.REPRESENTATION.CONTEXT_OF_ITEMS') | NOT (r.name IN [ 'document content', 'document creation', 'document format', 'document size' ]))) > 0))) = 0; END_RULE; -- 10303-214: automotive_design RULE restrict_representation_for_document_size_property FOR (representation, representation_item); WHERE wr1 : SIZEOF(QUERY(r <* representation | (r.name = 'document size') AND (( SIZEOF(r.items) < 1) OR (SIZEOF(r.items) > 2)))) = 0; wr2 : SIZEOF(QUERY(ri <* representation_item | (SIZEOF(QUERY(r <* USEDIN(ri, 'AUTOMOTIVE_DESIGN.REPRESENTATION.ITEMS') | r.name = 'document size')) > 0) AND NOT (ri.name IN ['file size', 'page count']))) = 0; wr3 : SIZEOF(QUERY(r <* representation | (r.name = 'document size') AND ( SIZEOF(QUERY(i <* r.items | (i.name = 'file size') AND (SIZEOF([ 'AUTOMOTIVE_DESIGN.' + 'MEASURE_REPRESENTATION_ITEM', 'AUTOMOTIVE_DESIGN.' + 'VALUE_RANGE', 'AUTOMOTIVE_DESIGN.' + 'VALUE_REPRESENTATION_ITEM'] * TYPEOF(i)) = 1))) > 1))) = 0; wr4 : SIZEOF(QUERY(r <* representation | (r.name = 'document size') AND ( SIZEOF(QUERY(i <* r.items | (i.name = 'page count') AND (SIZEOF([ 'AUTOMOTIVE_DESIGN.' + 'MEASURE_REPRESENTATION_ITEM', 'AUTOMOTIVE_DESIGN.' + 'VALUE_RANGE', 'AUTOMOTIVE_DESIGN.' + 'VALUE_REPRESENTATION_ITEM'] * TYPEOF(i)) = 1))) > 1))) = 0; END_RULE; -- 10303-214: automotive_design RULE restrict_representation_for_surface_condition FOR ( property_definition_representation); WHERE wr1 : SIZEOF(QUERY(pdr <* property_definition_representation | ( 'AUTOMOTIVE_DESIGN_LF.' + 'PROPERTY_DEFINITION' IN TYPEOF(pdr.definition)) AND NOT surface_condition_correlation(pdr.definition, pdr. used_representation))) = 0; END_RULE; -- 10303-214: automotive_design RULE restrict_representation_item_for_hybrid_geometric_model_3d FOR ( shape_representation); WHERE wr1 : SIZEOF(QUERY(sr <* shape_representation | (sr.name = 'hybrid 3d shape representation') AND (SIZEOF(QUERY(i <* sr.items | NOT ( 'AUTOMOTIVE_DESIGN.' + 'GEOMETRIC_REPRESENTATION_ITEM' IN TYPEOF(i)))) > 0))) = 0; END_RULE; -- 10303-214: automotive_design RULE restrict_treatment_result FOR (representation); WHERE wr1 : (SIZEOF(QUERY(r <* representation | (r.name = 'treatment result') AND ( SIZEOF(r.items) > 2))) = 0) AND (SIZEOF(QUERY(r <* representation | (r.name = 'treatment result') AND (SIZEOF(QUERY(i <* r.items | NOT ( 'AUTOMOTIVE_DESIGN.' + 'DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF(i)))) > 0))) = 0); wr2 : SIZEOF(QUERY(r <* representation | (r.name = 'treatment result') AND ( SIZEOF(QUERY(i <* r.items | i.name = 'result')) = 0))) = 0; wr3 : SIZEOF(QUERY(r <* representation | (r.name = 'treatment result') AND ( SIZEOF(QUERY(i <* r.items | i.name = 'purpose')) > 1))) = 0; END_RULE; -- 10303-214: automotive_design RULE restrict_version_assignment_for_action FOR (action); WHERE wr1 : SIZEOF(QUERY(ent <* action | SIZEOF(QUERY(ia <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.APPLIED_IDENTIFICATION_ASSIGNMENT.ITEMS') | ia.role. name = 'version')) > 1)) = 0; END_RULE; -- 10303-214: automotive_design RULE restrict_version_assignment_for_action_directive FOR (action_directive); WHERE wr1 : SIZEOF(QUERY(ent <* action_directive | SIZEOF(QUERY(ia <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.APPLIED_IDENTIFICATION_ASSIGNMENT.ITEMS') | ia.role. name = 'version')) > 1)) = 0; END_RULE; -- 10303-214: automotive_design RULE restrict_version_assignment_for_action_method FOR (action_method); WHERE wr1 : SIZEOF(QUERY(ent <* action_method | SIZEOF(QUERY(ia <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.APPLIED_IDENTIFICATION_ASSIGNMENT.ITEMS') | ia.role. name = 'version')) > 1)) = 0; END_RULE; -- 10303-214: automotive_design RULE restrict_version_assignment_for_applied_identification_assignment FOR ( applied_identification_assignment); WHERE wr1 : SIZEOF(QUERY(ent <* applied_identification_assignment | SIZEOF(QUERY(ia <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.APPLIED_IDENTIFICATION_ASSIGNMENT.ITEMS') | ia.role. name = 'version')) > 1)) = 0; END_RULE; -- 10303-214: automotive_design RULE restrict_version_assignment_for_class FOR (class); WHERE wr1 : SIZEOF(QUERY(ent <* class | SIZEOF(QUERY(ia <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.APPLIED_IDENTIFICATION_ASSIGNMENT.ITEMS') | ia.role. name = 'version')) > 1)) = 0; END_RULE; -- 10303-214: automotive_design RULE restrict_version_assignment_for_configuration_item FOR (configuration_item ); WHERE wr1 : SIZEOF(QUERY(ent <* configuration_item | SIZEOF(QUERY(ia <* USEDIN(ent , 'AUTOMOTIVE_DESIGN.APPLIED_IDENTIFICATION_ASSIGNMENT.ITEMS') | ia.role .name = 'version')) > 1)) = 0; END_RULE; -- 10303-214: automotive_design RULE restrict_version_assignment_for_document_file FOR (document_file); WHERE wr1 : SIZEOF(QUERY(ent <* document_file | SIZEOF(QUERY(ia <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.APPLIED_IDENTIFICATION_ASSIGNMENT.ITEMS') | ia.role. name = 'version')) > 1)) = 0; END_RULE; -- 10303-214: automotive_design RULE restrict_version_assignment_for_draughting_model FOR (draughting_model); WHERE wr1 : SIZEOF(QUERY(ent <* draughting_model | SIZEOF(QUERY(ia <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.APPLIED_IDENTIFICATION_ASSIGNMENT.ITEMS') | ia.role. name = 'version')) > 1)) = 0; END_RULE; -- 10303-214: automotive_design RULE restrict_version_assignment_for_effectivity FOR (effectivity); WHERE wr1 : SIZEOF(QUERY(ent <* effectivity | SIZEOF(QUERY(ia <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.APPLIED_IDENTIFICATION_ASSIGNMENT.ITEMS') | ia.role. name = 'version')) > 1)) = 0; END_RULE; -- 10303-214: automotive_design RULE restrict_version_assignment_for_general_property FOR (general_property); WHERE wr1 : SIZEOF(QUERY(ent <* general_property | SIZEOF(QUERY(ia <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.APPLIED_IDENTIFICATION_ASSIGNMENT.ITEMS') | ia.role. name = 'version')) > 1)) = 0; END_RULE; -- 10303-214: automotive_design RULE restrict_version_assignment_for_mechanical_design_geometric_presentation_representation FOR (mechanical_design_geometric_presentation_representation); WHERE wr1 : SIZEOF(QUERY(ent <* mechanical_design_geometric_presentation_representation | SIZEOF(QUERY(ia <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.APPLIED_IDENTIFICATION_ASSIGNMENT.ITEMS') | ia.role. name = 'version')) > 1)) = 0; END_RULE; -- 10303-214: automotive_design RULE restrict_version_assignment_for_presentation_area FOR (presentation_area); WHERE wr1 : SIZEOF(QUERY(ent <* presentation_area | SIZEOF(QUERY(ia <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.APPLIED_IDENTIFICATION_ASSIGNMENT.ITEMS') | ia.role. name = 'version')) > 1)) = 0; END_RULE; -- 10303-214: automotive_design RULE restrict_version_assignment_for_product_concept FOR (product_concept); WHERE wr1 : SIZEOF(QUERY(ent <* product_concept | SIZEOF(QUERY(ia <* USEDIN(ent, 'AUTOMOTIVE_DESIGN.APPLIED_IDENTIFICATION_ASSIGNMENT.ITEMS') | ia.role. name = 'version')) > 1)) = 0; END_RULE; -- 10303-214: automotive_design RULE restrict_version_assignment_for_product_concept_feature FOR ( product_concept_feature); WHERE wr1 : SIZEOF(QUERY(ent <* product_concept_feature | SIZEOF(QUERY(ia <* USEDIN (ent, 'AUTOMOTIVE_DESIGN.APPLIED_IDENTIFICATION_ASSIGNMENT.ITEMS') | ia. role.name = 'version')) > 1)) = 0; END_RULE; -- 10303-214: automotive_design RULE restrict_version_assignment_for_shape_representation FOR ( shape_representation); WHERE wr1 : SIZEOF(QUERY(ent <* shape_representation | SIZEOF(QUERY(ia <* USEDIN( ent, 'AUTOMOTIVE_DESIGN.APPLIED_IDENTIFICATION_ASSIGNMENT.ITEMS') | ia. role.name = 'version')) > 1)) = 0; END_RULE; -- 10303-214: automotive_design RULE restrict_viewing_plane_usage FOR (geometric_tolerance); WHERE wr1 : SIZEOF(QUERY(gt <* geometric_tolerance | SIZEOF(QUERY(sar <* USEDIN(gt. toleranced_shape_aspect, 'AUTOMOTIVE_DESIGN.SHAPE_ASPECT_RELATIONSHIP.RELATING_SHAPE_ASPECT') | sar.name = 'affected plane association')) > 1)) = 0; wr2 : SIZEOF(QUERY(gt <* geometric_tolerance | SIZEOF(QUERY(sar <* USEDIN(gt. toleranced_shape_aspect, 'AUTOMOTIVE_DESIGN.SHAPE_ASPECT_RELATIONSHIP.RELATING_SHAPE_ASPECT') | ( sar.name = 'affected plane association') AND NOT (SIZEOF([ 'AUTOMOTIVE_DESIGN.' + 'LINE_PROFILE_TOLERANCE', 'AUTOMOTIVE_DESIGN.' + 'PARALLELISM_TOLERANCE', 'AUTOMOTIVE_DESIGN.' + 'PERPENDICULARITY_TOLERANCE', 'AUTOMOTIVE_DESIGN.' + 'POSITION_TOLERANCE', 'AUTOMOTIVE_DESIGN.' + 'STRAIGHTNESS_TOLERANCE', 'AUTOMOTIVE_DESIGN.' + 'SYMMETRY_TOLERANCE'] * TYPEOF(gt)) <> 1))) > 0)) = 0; END_RULE; -- 10303-214: automotive_design RULE restrict_zone_boundary FOR (tolerance_zone_definition); WHERE wr1 : SIZEOF(QUERY(tzd <* tolerance_zone_definition | SIZEOF(tzd.boundaries) > 2)) = 0; END_RULE; -- 10303-214: automotive_design RULE retention_requires_retention_assignment FOR (retention); WHERE wr1 : SIZEOF(QUERY(r <* retention | SIZEOF(QUERY(aa <* USEDIN(r, 'AUTOMOTIVE_DESIGN.ACTION_ASSIGNMENT.ASSIGNED_ACTION') | ( 'AUTOMOTIVE_DESIGN.' + 'APPLIED_ACTION_ASSIGNMENT' IN TYPEOF(aa)) AND ( aa.role.name = 'retention'))) = 0)) = 0; END_RULE; -- 10303-214: automotive_design RULE security_classification_requires_security_classification_assignment FOR ( security_classification); WHERE wr1 : SIZEOF(QUERY(sc <* security_classification | SIZEOF(USEDIN(sc, 'AUTOMOTIVE_DESIGN.SECURITY_CLASSIFICATION_ASSIGNMENT.ASSIGNED_SECURITY_CLASSIFICATION' )) = 0)) = 0; END_RULE; -- 10303-214: automotive_design RULE selected_instance_usage_requires_representation FOR ( assembly_component_usage, representation); WHERE wr1 : SIZEOF(QUERY(acr <* assembly_component_usage | (acr.name = 'selected instance usage') AND (SIZEOF(QUERY(pd <* USEDIN(acr, 'AUTOMOTIVE_DESIGN.PROPERTY_DEFINITION.DEFINITION') | (pd.name = 'occurrence selection') AND (SIZEOF(QUERY(pdr <* USEDIN(pd, 'AUTOMOTIVE_DESIGN.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ( pdr.used_representation.name = 'selection criteria') AND (SIZEOF(pdr. used_representation.items) = 2) AND (SIZEOF(QUERY(i <* pdr. used_representation.items | (SIZEOF(['AUTOMOTIVE_DESIGN.' + 'MEASURE_REPRESENTATION_ITEM', 'AUTOMOTIVE_DESIGN.' + 'VALUE_RANGE'] * TYPEOF(i)) = 1) AND (i.name = 'selection quantity'))) = 1) AND (SIZEOF( QUERY(i <* pdr.used_representation.items | ('AUTOMOTIVE_DESIGN.' + 'DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF(i)) AND (i.name = 'selection control'))) = 1))) > 0))) = 0))) = 0; END_RULE; -- 10303-214: automotive_design RULE sheets_belong_to_one_drawing FOR (drawing_sheet_revision); WHERE wr1 : SIZEOF(QUERY(dsr <* drawing_sheet_revision | SIZEOF(QUERY(dsru <* USEDIN(dsr, 'AUTOMOTIVE_DESIGN.AREA_IN_SET.AREA') | 'AUTOMOTIVE_DESIGN.' + 'DRAWING_SHEET_REVISION_USAGE' IN TYPEOF(dsru))) <> 1)) = 0; END_RULE; -- 10303-214: automotive_design RULE styled_curve FOR (styled_item); WHERE wr1 : SIZEOF(QUERY(si <* styled_item | ('AUTOMOTIVE_DESIGN.' + 'CURVE' IN TYPEOF(si.item)) AND (SIZEOF(QUERY(psa <* si.styles | SIZEOF(QUERY(cs <* psa.styles | 'AUTOMOTIVE_DESIGN.' + 'CURVE_STYLE' IN TYPEOF(cs))) > 0)) <> 1))) = 0; END_RULE; -- 10303-214: automotive_design RULE subtype_exclusiveness_action FOR (action); WHERE wr1 : SIZEOF(QUERY(a <* action | NOT type_check_function(a, [ 'AUTOMOTIVE_DESIGN.' + 'ELEMENT_DELIVERY', 'AUTOMOTIVE_DESIGN.' + 'EXECUTED_ACTION', 'AUTOMOTIVE_DESIGN.' + 'PROCESS_PLAN', 'AUTOMOTIVE_DESIGN.' + 'PRODUCT_DEFINITION_PROCESS', 'AUTOMOTIVE_DESIGN.' + 'PROPERTY_PROCESS', 'AUTOMOTIVE_DESIGN.' + 'RETENTION'], 3))) = 0; END_RULE; -- 10303-214: automotive_design RULE subtype_exclusiveness_characterized_object FOR (characterized_object); WHERE wr1 : SIZEOF(QUERY(co <* characterized_object | NOT type_check_function(co, [ 'AUTOMOTIVE_DESIGN.' + 'CHARACTERIZED_CLASS', 'AUTOMOTIVE_DESIGN.' + 'DOCUMENT_FILE', 'AUTOMOTIVE_DESIGN.' + 'FEATURE_COMPONENT_DEFINITION', 'AUTOMOTIVE_DESIGN.' + 'FEATURE_DEFINITION', 'AUTOMOTIVE_DESIGN.' + 'PRODUCT_CLASS', 'AUTOMOTIVE_DESIGN.' + 'PRODUCT_IDENTIFICATION'], 3))) = 0; END_RULE; -- 10303-214: automotive_design RULE subtype_exclusiveness_classification_assignment FOR ( classification_assignment); WHERE wr1 : SIZEOF(QUERY(ca <* classification_assignment | NOT type_check_function( ca, ['AUTOMOTIVE_DESIGN.' + 'APPLIED_CLASSIFICATION_ASSIGNMENT', 'AUTOMOTIVE_DESIGN.' + 'LANGUAGE_ASSIGNMENT'], 3))) = 0; END_RULE; -- 10303-214: automotive_design RULE subtype_exclusiveness_colour FOR (colour); WHERE wr1 : SIZEOF(QUERY(c <* colour | NOT type_check_function(c, [ 'AUTOMOTIVE_DESIGN.' + 'COLOUR_SPECIFICATION', 'AUTOMOTIVE_DESIGN.' + 'PRE_DEFINED_COLOUR'], 3))) = 0; END_RULE; -- 10303-214: automotive_design RULE subtype_exclusiveness_compound_representation_item FOR ( compound_representation_item); WHERE wr1 : SIZEOF(QUERY(cri <* compound_representation_item | NOT type_check_function(cri, ['AUTOMOTIVE_DESIGN.' + 'DEFAULT_TOLERANCE_TABLE_CELL', 'AUTOMOTIVE_DESIGN.' + 'VALUE_RANGE'], 3 ))) = 0; END_RULE; -- 10303-214: automotive_design RULE subtype_exclusiveness_document_reference FOR (document_reference); WHERE wr1 : SIZEOF(QUERY(dr <* document_reference | NOT type_check_function(dr, [ 'AUTOMOTIVE_DESIGN.' + 'APPLIED_DOCUMENT_REFERENCE', 'AUTOMOTIVE_DESIGN.' + 'DRAUGHTING_SPECIFICATION_REFERENCE'], 3))) = 0; END_RULE; -- 10303-214: automotive_design RULE subtype_exclusiveness_effectivity FOR (effectivity); WHERE wr1 : SIZEOF(QUERY(e <* effectivity | NOT type_check_function(e, [ 'AUTOMOTIVE_DESIGN.' + 'PRODUCT_DEFINITION_EFFECTIVITY', 'AUTOMOTIVE_DESIGN.' + 'TIME_INTERVAL_BASED_EFFECTIVITY'], 3))) = 0; END_RULE; -- 10303-214: automotive_design RULE subtype_exclusiveness_effectivity_assignment FOR (effectivity_assignment); WHERE wr1 : SIZEOF(QUERY(ea <* effectivity_assignment | NOT type_check_function(ea , ['AUTOMOTIVE_DESIGN.' + 'APPLIED_EFFECTIVITY_ASSIGNMENT', 'AUTOMOTIVE_DESIGN.' + 'APPLIED_INEFFECTIVITY_ASSIGNMENT', 'AUTOMOTIVE_DESIGN.' + 'CONFIGURED_EFFECTIVITY_ASSIGNMENT'], 3))) = 0; END_RULE; -- 10303-214: automotive_design RULE subtype_exclusiveness_effectivity_context_assignment FOR ( effectivity_context_assignment); WHERE wr1 : SIZEOF(QUERY(eca <* effectivity_context_assignment | NOT type_check_function(eca, ['AUTOMOTIVE_DESIGN.' + 'CLASS_USAGE_EFFECTIVITY_CONTEXT_ASSIGNMENT', 'AUTOMOTIVE_DESIGN.' + 'CONFIGURED_EFFECTIVITY_CONTEXT_ASSIGNMENT'], 3))) = 0; END_RULE; -- 10303-214: automotive_design RULE subtype_exclusiveness_externally_defined_item FOR (externally_defined_item ); WHERE wr1 : SIZEOF(QUERY(edi <* externally_defined_item | NOT type_check_function( edi, ['AUTOMOTIVE_DESIGN.' + 'EXTERNALLY_DEFINED_CHARACTER_GLYPH', 'AUTOMOTIVE_DESIGN.' + 'EXTERNALLY_DEFINED_CLASS', 'AUTOMOTIVE_DESIGN.' + 'EXTERNALLY_DEFINED_CURVE_FONT', 'AUTOMOTIVE_DESIGN.' + 'EXTERNALLY_DEFINED_FEATURE_DEFINITION', 'AUTOMOTIVE_DESIGN.' + 'EXTERNALLY_DEFINED_GENERAL_PROPERTY', 'AUTOMOTIVE_DESIGN.' + 'EXTERNALLY_DEFINED_HATCH_STYLE', 'AUTOMOTIVE_DESIGN.' + 'EXTERNALLY_DEFINED_STYLE', 'AUTOMOTIVE_DESIGN.' + 'EXTERNALLY_DEFINED_SYMBOL', 'AUTOMOTIVE_DESIGN.' + 'EXTERNALLY_DEFINED_TEXT_FONT', 'AUTOMOTIVE_DESIGN.' + 'EXTERNALLY_DEFINED_TILE_STYLE'], 3))) = 0; END_RULE; -- 10303-214: automotive_design RULE subtype_exclusiveness_feature_component_relationship FOR ( feature_component_relationship); WHERE wr1 : SIZEOF(QUERY(fcr <* feature_component_relationship | NOT type_check_function(fcr, ['AUTOMOTIVE_DESIGN.' + 'PATTERN_OFFSET_MEMBERSHIP', 'AUTOMOTIVE_DESIGN.' + 'PATTERN_OMIT_MEMBERSHIP'], 3))) = 0; END_RULE; -- 10303-214: automotive_design RULE subtype_exclusiveness_feature_definition FOR (feature_definition); WHERE wr1 : SIZEOF(QUERY(fd <* feature_definition | NOT type_check_function(fd, [ 'AUTOMOTIVE_DESIGN.' + 'BARRING_HOLE', 'AUTOMOTIVE_DESIGN.' + 'BEAD' , 'AUTOMOTIVE_DESIGN.' + 'BOSS', 'AUTOMOTIVE_DESIGN.' + 'COMPOUND_FEATURE', 'AUTOMOTIVE_DESIGN.' + 'EXTERNALLY_DEFINED_FEATURE_DEFINITION', 'AUTOMOTIVE_DESIGN.' + 'FEATURE_IN_PANEL', 'AUTOMOTIVE_DESIGN.' + 'GENERAL_FEATURE', 'AUTOMOTIVE_DESIGN.' + 'HOLE_IN_PANEL', 'AUTOMOTIVE_DESIGN.' + 'JOGGLE', 'AUTOMOTIVE_DESIGN.' + 'LOCATOR', 'AUTOMOTIVE_DESIGN.' + 'POCKET', 'AUTOMOTIVE_DESIGN.' + 'REPLICATE_FEATURE', 'AUTOMOTIVE_DESIGN.' + 'RIB', 'AUTOMOTIVE_DESIGN.' + 'ROUND_HOLE', 'AUTOMOTIVE_DESIGN.' + 'SLOT', 'AUTOMOTIVE_DESIGN.' + 'THREAD'], 3))) = 0; END_RULE; -- 10303-214: automotive_design RULE subtype_exclusiveness_founded_item FOR (founded_item); WHERE wr1 : SIZEOF(QUERY(fi <* founded_item | NOT type_check_function(fi, [ 'AUTOMOTIVE_DESIGN.' + 'COMPOSITE_CURVE_SEGMENT', 'AUTOMOTIVE_DESIGN.' + 'SURFACE_PATCH', 'AUTOMOTIVE_DESIGN.' + 'VIEW_VOLUME'], 3))) = 0; END_RULE; -- 10303-214: automotive_design RULE subtype_exclusiveness_geometric_tolerance FOR (geometric_tolerance); WHERE wr1 : SIZEOF(QUERY(gt <* geometric_tolerance | NOT type_check_function(gt, [ 'AUTOMOTIVE_DESIGN.' + 'ANGULARITY_TOLERANCE', 'AUTOMOTIVE_DESIGN.' + 'CIRCULAR_RUNOUT_TOLERANCE', 'AUTOMOTIVE_DESIGN.' + 'COAXIALITY_TOLERANCE', 'AUTOMOTIVE_DESIGN.' + 'CONCENTRICITY_TOLERANCE' , 'AUTOMOTIVE_DESIGN.' + 'CYLINDRICITY_TOLERANCE', 'AUTOMOTIVE_DESIGN.' + 'FLATNESS_TOLERANCE', 'AUTOMOTIVE_DESIGN.' + 'LINE_PROFILE_TOLERANCE', 'AUTOMOTIVE_DESIGN.' + 'PARALLELISM_TOLERANCE' , 'AUTOMOTIVE_DESIGN.' + 'PERPENDICULARITY_TOLERANCE', 'AUTOMOTIVE_DESIGN.' + 'POSITION_TOLERANCE', 'AUTOMOTIVE_DESIGN.' + 'ROUNDNESS_TOLERANCE', 'AUTOMOTIVE_DESIGN.' + 'STRAIGHTNESS_TOLERANCE', 'AUTOMOTIVE_DESIGN.' + 'SURFACE_PROFILE_TOLERANCE', 'AUTOMOTIVE_DESIGN.' + 'SYMMETRY_TOLERANCE', 'AUTOMOTIVE_DESIGN.' + 'TOTAL_RUNOUT_TOLERANCE'], 3))) = 0; END_RULE; -- 10303-214: automotive_design RULE subtype_exclusiveness_group FOR (group); WHERE wr1 : SIZEOF(QUERY(g <* group | NOT type_check_function(g, [ 'AUTOMOTIVE_DESIGN.' + 'CLASS', 'AUTOMOTIVE_DESIGN.' + 'CLASS_SYSTEM' , 'AUTOMOTIVE_DESIGN.' + 'LANGUAGE', 'AUTOMOTIVE_DESIGN.' + 'PRODUCT_CONCEPT_FEATURE_CATEGORY', 'AUTOMOTIVE_DESIGN.' + 'REP_ITEM_GROUP'], 3))) = 0; END_RULE; -- 10303-214: automotive_design RULE subtype_exclusiveness_group_assignment FOR (group_assignment); WHERE wr1 : SIZEOF(QUERY(ga <* group_assignment | NOT type_check_function(ga, [ 'AUTOMOTIVE_DESIGN.' + 'APPLIED_GROUP_ASSIGNMENT', 'AUTOMOTIVE_DESIGN.' + 'PRODUCT_CONCEPT_FEATURE_CATEGORY_USAGE'], 3))) = 0; END_RULE; -- 10303-214: automotive_design RULE subtype_exclusiveness_identification_assignment FOR ( identification_assignment); WHERE wr1 : SIZEOF(QUERY(ia <* identification_assignment | NOT type_check_function( ia, ['AUTOMOTIVE_DESIGN.' + 'APPLIED_IDENTIFICATION_ASSIGNMENT', 'AUTOMOTIVE_DESIGN.' + 'EXTERNAL_IDENTIFICATION_ASSIGNMENT'], 3))) = 0; END_RULE; -- 10303-214: automotive_design RULE subtype_exclusiveness_mapped_item FOR (mapped_item); WHERE wr1 : SIZEOF(QUERY(mi <* mapped_item | NOT type_check_function(mi, [ 'AUTOMOTIVE_DESIGN.' + 'ANNOTATION_SYMBOL', 'AUTOMOTIVE_DESIGN.' + 'ANNOTATION_TEXT', 'AUTOMOTIVE_DESIGN.' + 'ANNOTATION_TEXT_CHARACTER', 'AUTOMOTIVE_DESIGN.' + 'CAMERA_IMAGE', 'AUTOMOTIVE_DESIGN.' + 'DIMENSION_TEXT_ASSOCIATIVITY'], 3))) = 0; END_RULE; -- 10303-214: automotive_design RULE subtype_exclusiveness_pre_defined_item FOR (pre_defined_item); WHERE wr1 : SIZEOF(QUERY(pdi <* pre_defined_item | NOT type_check_function(pdi, [ 'AUTOMOTIVE_DESIGN.' + 'KNOWN_SOURCE', 'AUTOMOTIVE_DESIGN.' + 'PRE_DEFINED_COLOUR', 'AUTOMOTIVE_DESIGN.' + 'PRE_DEFINED_CURVE_FONT', 'AUTOMOTIVE_DESIGN.' + 'PRE_DEFINED_MARKER', 'AUTOMOTIVE_DESIGN.' + 'PRE_DEFINED_PRESENTATION_STYLE', 'AUTOMOTIVE_DESIGN.' + 'PRE_DEFINED_SYMBOL', 'AUTOMOTIVE_DESIGN.' + 'PRE_DEFINED_TEXT_FONT'], 3 ))) = 0; END_RULE; -- 10303-214: automotive_design RULE subtype_exclusiveness_pre_defined_symbol FOR (pre_defined_symbol); WHERE wr1 : SIZEOF(QUERY(pds <* pre_defined_symbol | NOT type_check_function(pds, [ 'AUTOMOTIVE_DESIGN.' + 'PRE_DEFINED_DIMENSION_SYMBOL', 'AUTOMOTIVE_DESIGN.' + 'PRE_DEFINED_GEOMETRICAL_TOLERANCE_SYMBOL', 'AUTOMOTIVE_DESIGN.' + 'PRE_DEFINED_POINT_MARKER_SYMBOL', 'AUTOMOTIVE_DESIGN.' + 'PRE_DEFINED_SURFACE_CONDITION_SYMBOL', 'AUTOMOTIVE_DESIGN.' + 'PRE_DEFINED_TERMINATOR_SYMBOL'], 3))) = 0; END_RULE; -- 10303-214: automotive_design RULE subtype_exclusiveness_presentation_area FOR (presentation_area); WHERE wr1 : SIZEOF(QUERY(pa <* presentation_area | NOT type_check_function(pa, [ 'AUTOMOTIVE_DESIGN.' + 'DRAWING_SHEET_REVISION', 'AUTOMOTIVE_DESIGN.' + 'MECHANICAL_DESIGN_GEOMETRIC_PRESENTATION_AREA'], 3))) = 0; END_RULE; -- 10303-214: automotive_design RULE subtype_exclusiveness_presentation_representation FOR ( presentation_representation); WHERE wr1 : SIZEOF(QUERY(pr <* presentation_representation | NOT type_check_function(pr, ['AUTOMOTIVE_DESIGN.' + 'PRESENTATION_AREA', 'AUTOMOTIVE_DESIGN.' + 'PRESENTATION_VIEW'], 3))) = 0; END_RULE; -- 10303-214: automotive_design RULE subtype_exclusiveness_property_definition FOR (property_definition); WHERE wr1 : SIZEOF(QUERY(pd <* property_definition | NOT type_check_function(pd, [ 'AUTOMOTIVE_DESIGN.' + 'KINEMATIC_PROPERTY_DEFINITION', 'AUTOMOTIVE_DESIGN.' + 'MATERIAL_PROPERTY', 'AUTOMOTIVE_DESIGN.' + 'PRODUCT_DEFINITION_SHAPE'], 3))) = 0; END_RULE; -- 10303-214: automotive_design RULE subtype_exclusiveness_property_definition_representation FOR ( property_definition_representation); WHERE wr1 : SIZEOF(QUERY(pdr <* property_definition_representation | NOT type_check_function(pdr, ['AUTOMOTIVE_DESIGN.' + 'KINEMATIC_PROPERTY_REPRESENTATION_RELATION', 'AUTOMOTIVE_DESIGN.' + 'MATERIAL_PROPERTY_REPRESENTATION', 'AUTOMOTIVE_DESIGN.' + 'SHAPE_DEFINITION_REPRESENTATION'], 3))) = 0; END_RULE; -- 10303-214: automotive_design RULE subtype_exclusiveness_replicate_feature FOR (replicate_feature); WHERE wr1 : SIZEOF(QUERY(rf <* replicate_feature | NOT type_check_function(rf, [ 'AUTOMOTIVE_DESIGN.' + 'CIRCULAR_PATTERN', 'AUTOMOTIVE_DESIGN.' + 'FEATURE_PATTERN', 'AUTOMOTIVE_DESIGN.' + 'MODIFIED_PATTERN', 'AUTOMOTIVE_DESIGN.' + 'RECTANGULAR_PATTERN'], 3))) = 0; END_RULE; -- 10303-214: automotive_design RULE subtype_exclusiveness_representation FOR (representation); WHERE wr1 : SIZEOF(QUERY(r <* representation | NOT type_check_function(r, [ 'AUTOMOTIVE_DESIGN.' + 'CONSTRUCTIVE_GEOMETRY_REPRESENTATION', 'AUTOMOTIVE_DESIGN.' + 'CONTACT_RATIO_REPRESENTATION', 'AUTOMOTIVE_DESIGN.' + 'DEFAULT_TOLERANCE_TABLE', 'AUTOMOTIVE_DESIGN.' + 'DEFINITIONAL_REPRESENTATION', 'AUTOMOTIVE_DESIGN.' + 'DRAUGHTING_MODEL', 'AUTOMOTIVE_DESIGN.' + 'FOUNDED_KINEMATIC_PATH', 'AUTOMOTIVE_DESIGN.' + 'HARDNESS_REPRESENTATION', 'AUTOMOTIVE_DESIGN.' + 'KINEMATIC_FRAME_BACKGROUND_REPRESENTATION', 'AUTOMOTIVE_DESIGN.' + 'KINEMATIC_GROUND_REPRESENTATION', 'AUTOMOTIVE_DESIGN.' + 'KINEMATIC_LINK_REPRESENTATION', 'AUTOMOTIVE_DESIGN.' + 'MECHANICAL_DESIGN_GEOMETRIC_PRESENTATION_REPRESENTATION', 'AUTOMOTIVE_DESIGN.' + 'MOMENTS_OF_INERTIA_REPRESENTATION', 'AUTOMOTIVE_DESIGN.' + 'PRESENTATION_REPRESENTATION', 'AUTOMOTIVE_DESIGN.' + 'SHAPE_REPRESENTATION', 'AUTOMOTIVE_DESIGN.' + 'SURFACE_TEXTURE_REPRESENTATION', 'AUTOMOTIVE_DESIGN.' + 'SYMBOL_REPRESENTATION', 'AUTOMOTIVE_DESIGN.' + 'TACTILE_APPEARANCE_REPRESENTATION', 'AUTOMOTIVE_DESIGN.' + 'TEXT_STRING_REPRESENTATION', 'AUTOMOTIVE_DESIGN.' + 'VISUAL_APPEARANCE_REPRESENTATION'], 3))) = 0; END_RULE; -- 10303-214: automotive_design RULE subtype_exclusiveness_representation_item FOR (representation_item); WHERE wr1 : SIZEOF(QUERY(ri <* representation_item | NOT type_check_function(ri, [ 'AUTOMOTIVE_DESIGN.' + 'COMPOUND_REPRESENTATION_ITEM', 'AUTOMOTIVE_DESIGN.' + 'KINEMATIC_PATH', 'AUTOMOTIVE_DESIGN.' + 'MEASURE_REPRESENTATION_ITEM', 'AUTOMOTIVE_DESIGN.' + 'REP_ITEM_GROUP', 'AUTOMOTIVE_DESIGN.' + 'VALUE_REPRESENTATION_ITEM'], 3))) = 0; END_RULE; -- 10303-214: automotive_design RULE subtype_exclusiveness_representation_map FOR (representation_map); WHERE wr1 : SIZEOF(QUERY(rm <* representation_map | NOT type_check_function(rm, [ 'AUTOMOTIVE_DESIGN.' + 'CAMERA_USAGE', 'AUTOMOTIVE_DESIGN.' + 'SYMBOL_REPRESENTATION_MAP'], 3))) = 0; END_RULE; -- 10303-214: automotive_design RULE subtype_exclusiveness_representation_relationship FOR ( representation_relationship); WHERE wr1 : SIZEOF(QUERY(rr <* representation_relationship | NOT type_check_function(rr, ['AUTOMOTIVE_DESIGN.' + 'CONSTRUCTIVE_GEOMETRY_REPRESENTATION_RELATIONSHIP', 'AUTOMOTIVE_DESIGN.' + 'KINEMATIC_LINK_REPRESENTATION_ASSOCIATION', 'AUTOMOTIVE_DESIGN.' + 'MOTION_LINK_RELATIONSHIP'], 3))) = 0; END_RULE; -- 10303-214: automotive_design RULE subtype_exclusiveness_representation_relationship_with_transformation FOR (representation_relationship_with_transformation); WHERE wr1 : SIZEOF(QUERY(rrwt <* representation_relationship_with_transformation | NOT type_check_function(rrwt, ['AUTOMOTIVE_DESIGN.' + 'KINEMATIC_FRAME_BACKGROUND_REPRESENTATION_ASSOCIATION', 'AUTOMOTIVE_DESIGN.' + 'MECHANISM_BASE_PLACEMENT'], 3))) = 0; END_RULE; -- 10303-214: automotive_design RULE subtype_exclusiveness_shape_aspect FOR (shape_aspect); WHERE wr1 : SIZEOF(QUERY(sa <* shape_aspect | NOT type_check_function(sa, [ 'AUTOMOTIVE_DESIGN.' + 'APPLIED_AREA', 'AUTOMOTIVE_DESIGN.' + 'BEAD_END', 'AUTOMOTIVE_DESIGN.' + 'BOSS_TOP', 'AUTOMOTIVE_DESIGN.' + 'CHAMFER_OFFSET', 'AUTOMOTIVE_DESIGN.' + 'CIRCULAR_CLOSED_PROFILE', 'AUTOMOTIVE_DESIGN.' + 'CLOSED_PATH_PROFILE', 'AUTOMOTIVE_DESIGN.' + 'DIRECTED_ANGLE', 'AUTOMOTIVE_DESIGN.' + 'HOLE_BOTTOM', 'AUTOMOTIVE_DESIGN.' + 'INSTANCED_FEATURE', 'AUTOMOTIVE_DESIGN.' + 'JOGGLE_TERMINATION', 'AUTOMOTIVE_DESIGN.' + 'NGON_CLOSED_PROFILE', 'AUTOMOTIVE_DESIGN.' + 'OPEN_PATH_PROFILE', 'AUTOMOTIVE_DESIGN.' + 'PARTIAL_CIRCULAR_PROFILE', 'AUTOMOTIVE_DESIGN.' + 'PATH_FEATURE_COMPONENT', 'AUTOMOTIVE_DESIGN.' + 'PLACED_FEATURE', 'AUTOMOTIVE_DESIGN.' + 'POCKET_BOTTOM', 'AUTOMOTIVE_DESIGN.' + 'RECTANGULAR_CLOSED_PROFILE', 'AUTOMOTIVE_DESIGN.' + 'ROUNDED_U_PROFILE' , 'AUTOMOTIVE_DESIGN.' + 'SLOT_END', 'AUTOMOTIVE_DESIGN.' + 'SQUARE_U_PROFILE', 'AUTOMOTIVE_DESIGN.' + 'TAPER', 'AUTOMOTIVE_DESIGN.' + 'TEE_PROFILE', 'AUTOMOTIVE_DESIGN.' + 'TOLERANCE_ZONE', 'AUTOMOTIVE_DESIGN.' + 'TRANSITION_FEATURE', 'AUTOMOTIVE_DESIGN.' + 'VEE_PROFILE'], 3))) = 0; END_RULE; -- 10303-214: automotive_design RULE subtype_exclusiveness_shape_aspect_relationship FOR ( shape_aspect_relationship); WHERE wr1 : SIZEOF(QUERY(sar <* shape_aspect_relationship | NOT type_check_function (sar, ['AUTOMOTIVE_DESIGN.' + 'DIMENSIONAL_LOCATION', 'AUTOMOTIVE_DESIGN.' + 'FEATURE_COMPONENT_RELATIONSHIP', 'AUTOMOTIVE_DESIGN.' + 'SHAPE_ASPECT_ASSOCIATIVITY', 'AUTOMOTIVE_DESIGN.' + 'SHAPE_ASPECT_DERIVING_RELATIONSHIP', 'AUTOMOTIVE_DESIGN.' + 'SHAPE_ASPECT_TRANSITION', 'AUTOMOTIVE_DESIGN.' + 'SHAPE_DEFINING_RELATIONSHIP'], 3))) = 0; END_RULE; -- 10303-214: automotive_design RULE subtype_exclusiveness_shape_representation_feature_geometry FOR ( shape_representation); WHERE wr1 : SIZEOF(QUERY(sr <* shape_representation | NOT type_check_function(sr, [ 'AUTOMOTIVE_DESIGN.' + 'DIRECTION_SHAPE_REPRESENTATION', 'AUTOMOTIVE_DESIGN.' + 'FACE_SHAPE_REPRESENTATION', 'AUTOMOTIVE_DESIGN.' + 'LOCATION_SHAPE_REPRESENTATION', 'AUTOMOTIVE_DESIGN.' + 'PATH_SHAPE_REPRESENTATION', 'AUTOMOTIVE_DESIGN.' + 'PLANAR_SHAPE_REPRESENTATION'], 3))) = 0; END_RULE; -- 10303-214: automotive_design RULE subtype_exclusiveness_shape_representation_geometry FOR ( shape_representation); WHERE wr1 : SIZEOF(QUERY(sr <* shape_representation | NOT type_check_function(sr, [ 'AUTOMOTIVE_DESIGN.' + 'ADVANCED_BREP_SHAPE_REPRESENTATION', 'AUTOMOTIVE_DESIGN.' + 'COMPOUND_SHAPE_REPRESENTATION', 'AUTOMOTIVE_DESIGN.' + 'CSG_SHAPE_REPRESENTATION', 'AUTOMOTIVE_DESIGN.' + 'EDGE_BASED_WIREFRAME_SHAPE_REPRESENTATION', 'AUTOMOTIVE_DESIGN.' + 'FACETED_BREP_SHAPE_REPRESENTATION', 'AUTOMOTIVE_DESIGN.' + 'GEOMETRICALLY_BOUNDED_2D_WIREFRAME_REPRESENTATION', 'AUTOMOTIVE_DESIGN.' + 'GEOMETRICALLY_BOUNDED_SURFACE_SHAPE_REPRESENTATION', 'AUTOMOTIVE_DESIGN.' + 'GEOMETRICALLY_BOUNDED_WIREFRAME_SHAPE_REPRESENTATION', 'AUTOMOTIVE_DESIGN.' + 'MANIFOLD_SURFACE_SHAPE_REPRESENTATION', 'AUTOMOTIVE_DESIGN.' + 'NON_MANIFOLD_SURFACE_SHAPE_REPRESENTATION', 'AUTOMOTIVE_DESIGN.' + 'POINT_PLACEMENT_SHAPE_REPRESENTATION'], 3))) = 0 ; END_RULE; -- 10303-214: automotive_design RULE subtype_exclusiveness_symbol_representation FOR (symbol_representation); WHERE wr1 : SIZEOF(QUERY(sr <* symbol_representation | NOT type_check_function(sr, ['AUTOMOTIVE_DESIGN.' + 'CHARACTER_GLYPH_SYMBOL', 'AUTOMOTIVE_DESIGN.' + 'DRAUGHTING_SUBFIGURE_REPRESENTATION', 'AUTOMOTIVE_DESIGN.' + 'DRAUGHTING_SYMBOL_REPRESENTATION'], 3))) = 0; END_RULE; -- 10303-214: automotive_design RULE subtype_exclusiveness_transition_feature FOR (transition_feature); WHERE wr1 : SIZEOF(QUERY(tf <* transition_feature | NOT type_check_function(tf, [ 'AUTOMOTIVE_DESIGN.' + 'CHAMFER', 'AUTOMOTIVE_DESIGN.' + 'EDGE_ROUND' , 'AUTOMOTIVE_DESIGN.' + 'FILLET'], 3))) = 0; END_RULE; -- 10303-214: automotive_design RULE subtype_mandatory_address FOR (address); WHERE wr1 : SIZEOF(QUERY(a <* address | NOT type_check_function(a, [ 'AUTOMOTIVE_DESIGN.' + 'ORGANIZATIONAL_ADDRESS', 'AUTOMOTIVE_DESIGN.' + 'PERSONAL_ADDRESS'], 0))) = 0; END_RULE; -- 10303-214: automotive_design RULE subtype_mandatory_annotation_occurrence FOR (annotation_occurrence); WHERE wr1 : SIZEOF(QUERY(ao <* annotation_occurrence | NOT type_check_function(ao, ['AUTOMOTIVE_DESIGN.' + 'ANNOTATION_CURVE_OCCURRENCE', 'AUTOMOTIVE_DESIGN.' + 'ANNOTATION_FILL_AREA_OCCURRENCE', 'AUTOMOTIVE_DESIGN.' + 'ANNOTATION_SYMBOL_OCCURRENCE', 'AUTOMOTIVE_DESIGN.' + 'ANNOTATION_TEXT_OCCURRENCE', 'AUTOMOTIVE_DESIGN.' + 'DRAUGHTING_ANNOTATION_OCCURRENCE'], 0))) = 0; END_RULE; -- 10303-214: automotive_design RULE subtype_mandatory_camera_image FOR (camera_image); WHERE wr1 : SIZEOF(QUERY(ci <* camera_image | NOT type_check_function(ci, [ 'AUTOMOTIVE_DESIGN.' + 'CAMERA_IMAGE_2D_WITH_SCALE', 'AUTOMOTIVE_DESIGN.' + 'CAMERA_IMAGE_3D_WITH_SCALE'], 0))) = 0; END_RULE; -- 10303-214: automotive_design RULE subtype_mandatory_camera_model FOR (camera_model); WHERE wr1 : SIZEOF(QUERY(cm <* camera_model | NOT type_check_function(cm, [ 'AUTOMOTIVE_DESIGN.' + 'CAMERA_MODEL_D2', 'AUTOMOTIVE_DESIGN.' + 'CAMERA_MODEL_D3'], 0))) = 0; END_RULE; -- 10303-214: automotive_design RULE subtype_mandatory_colour_specification FOR (colour_specification); WHERE wr1 : SIZEOF(QUERY(cs <* colour_specification | NOT type_check_function(cs, [ 'AUTOMOTIVE_DESIGN.' + 'COLOUR_RGB'], 0))) = 0; END_RULE; -- 10303-214: automotive_design RULE subtype_mandatory_configurable_item FOR (configurable_item); WHERE wr1 : SIZEOF(QUERY(ci <* configurable_item | NOT type_check_function(ci, [ 'AUTOMOTIVE_DESIGN.' + 'PRODUCT_SPECIFICATION'], 0))) = 0; END_RULE; -- 10303-214: automotive_design RULE subtype_mandatory_document_product_association FOR ( document_product_association); WHERE wr1 : SIZEOF(QUERY(dpa <* document_product_association | NOT type_check_function(dpa, ['AUTOMOTIVE_DESIGN.' + 'DOCUMENT_PRODUCT_EQUIVALENCE'], 0))) = 0; END_RULE; -- 10303-214: automotive_design RULE subtype_mandatory_draughting_callout FOR (draughting_callout); WHERE wr1 : SIZEOF(QUERY(dc <* draughting_callout | NOT type_check_function(dc, [ 'AUTOMOTIVE_DESIGN.' + 'DATUM_FEATURE_CALLOUT', 'AUTOMOTIVE_DESIGN.' + 'DATUM_TARGET_CALLOUT', 'AUTOMOTIVE_DESIGN.' + 'DIMENSION_CURVE_DIRECTED_CALLOUT', 'AUTOMOTIVE_DESIGN.' + 'DRAUGHTING_ELEMENTS', 'AUTOMOTIVE_DESIGN.' + 'GEOMETRICAL_TOLERANCE_CALLOUT', 'AUTOMOTIVE_DESIGN.' + 'LEADER_DIRECTED_CALLOUT', 'AUTOMOTIVE_DESIGN.' + 'PROJECTION_DIRECTED_CALLOUT', 'AUTOMOTIVE_DESIGN.' + 'STRUCTURED_DIMENSION_CALLOUT', 'AUTOMOTIVE_DESIGN.' + 'SURFACE_CONDITION_CALLOUT'], 0))) = 0; END_RULE; -- 10303-214: automotive_design RULE subtype_mandatory_externally_defined_item FOR (externally_defined_item); WHERE wr1 : SIZEOF(QUERY(edi <* externally_defined_item | NOT type_check_function( edi, ['AUTOMOTIVE_DESIGN.' + 'EXTERNALLY_DEFINED_CHARACTER_GLYPH', 'AUTOMOTIVE_DESIGN.' + 'EXTERNALLY_DEFINED_CLASS', 'AUTOMOTIVE_DESIGN.' + 'EXTERNALLY_DEFINED_CURVE_FONT', 'AUTOMOTIVE_DESIGN.' + 'EXTERNALLY_DEFINED_FEATURE_DEFINITION', 'AUTOMOTIVE_DESIGN.' + 'EXTERNALLY_DEFINED_GENERAL_PROPERTY', 'AUTOMOTIVE_DESIGN.' + 'EXTERNALLY_DEFINED_HATCH_STYLE', 'AUTOMOTIVE_DESIGN.' + 'EXTERNALLY_DEFINED_STYLE', 'AUTOMOTIVE_DESIGN.' + 'EXTERNALLY_DEFINED_SYMBOL', 'AUTOMOTIVE_DESIGN.' + 'EXTERNALLY_DEFINED_TEXT_FONT', 'AUTOMOTIVE_DESIGN.' + 'EXTERNALLY_DEFINED_TILE_STYLE'], 0))) = 0; END_RULE; -- 10303-214: automotive_design RULE subtype_mandatory_founded_item FOR (founded_item); WHERE wr1 : SIZEOF(QUERY(fi <* founded_item | NOT type_check_function(fi, [ 'AUTOMOTIVE_DESIGN.' + 'COMPOSITE_CURVE_SEGMENT', 'AUTOMOTIVE_DESIGN.' + 'SURFACE_PATCH', 'AUTOMOTIVE_DESIGN.' + 'VIEW_VOLUME'], 0))) = 0; END_RULE; -- 10303-214: automotive_design RULE subtype_mandatory_geometric_tolerance FOR (geometric_tolerance); WHERE wr1 : SIZEOF(QUERY(gt <* geometric_tolerance | NOT type_check_function(gt, [ 'AUTOMOTIVE_DESIGN.' + 'ANGULARITY_TOLERANCE', 'AUTOMOTIVE_DESIGN.' + 'CIRCULAR_RUNOUT_TOLERANCE', 'AUTOMOTIVE_DESIGN.' + 'COAXIALITY_TOLERANCE', 'AUTOMOTIVE_DESIGN.' + 'CONCENTRICITY_TOLERANCE' , 'AUTOMOTIVE_DESIGN.' + 'CYLINDRICITY_TOLERANCE', 'AUTOMOTIVE_DESIGN.' + 'FLATNESS_TOLERANCE', 'AUTOMOTIVE_DESIGN.' + 'LINE_PROFILE_TOLERANCE', 'AUTOMOTIVE_DESIGN.' + 'PARALLELISM_TOLERANCE' , 'AUTOMOTIVE_DESIGN.' + 'PERPENDICULARITY_TOLERANCE', 'AUTOMOTIVE_DESIGN.' + 'POSITION_TOLERANCE', 'AUTOMOTIVE_DESIGN.' + 'ROUNDNESS_TOLERANCE', 'AUTOMOTIVE_DESIGN.' + 'STRAIGHTNESS_TOLERANCE', 'AUTOMOTIVE_DESIGN.' + 'SURFACE_PROFILE_TOLERANCE', 'AUTOMOTIVE_DESIGN.' + 'SYMMETRY_TOLERANCE', 'AUTOMOTIVE_DESIGN.' + 'TOTAL_RUNOUT_TOLERANCE'], 0))) = 0; END_RULE; -- 10303-214: automotive_design RULE subtype_mandatory_pre_defined_colour FOR (pre_defined_colour); WHERE wr1 : SIZEOF(QUERY(pdc <* pre_defined_colour | NOT type_check_function(pdc, [ 'AUTOMOTIVE_DESIGN.' + 'DRAUGHTING_PRE_DEFINED_COLOUR'], 0))) = 0; END_RULE; -- 10303-214: automotive_design RULE subtype_mandatory_pre_defined_curve_font FOR (pre_defined_curve_font); WHERE wr1 : SIZEOF(QUERY(pdcf <* pre_defined_curve_font | NOT type_check_function( pdcf, ['AUTOMOTIVE_DESIGN.' + 'DRAUGHTING_PRE_DEFINED_CURVE_FONT'], 0))) = 0; END_RULE; -- 10303-214: automotive_design RULE subtype_mandatory_pre_defined_item FOR (pre_defined_item); WHERE wr1 : SIZEOF(QUERY(pdi <* pre_defined_item | NOT type_check_function(pdi, [ 'AUTOMOTIVE_DESIGN.' + 'KNOWN_SOURCE', 'AUTOMOTIVE_DESIGN.' + 'PRE_DEFINED_COLOUR', 'AUTOMOTIVE_DESIGN.' + 'PRE_DEFINED_CURVE_FONT', 'AUTOMOTIVE_DESIGN.' + 'PRE_DEFINED_MARKER', 'AUTOMOTIVE_DESIGN.' + 'PRE_DEFINED_PRESENTATION_STYLE', 'AUTOMOTIVE_DESIGN.' + 'PRE_DEFINED_SYMBOL', 'AUTOMOTIVE_DESIGN.' + 'PRE_DEFINED_TEXT_FONT'], 0 ))) = 0; END_RULE; -- 10303-214: automotive_design RULE subtype_mandatory_pre_defined_symbol FOR (pre_defined_symbol); WHERE wr1 : SIZEOF(QUERY(pds <* pre_defined_symbol | NOT type_check_function(pds, [ 'AUTOMOTIVE_DESIGN.' + 'PRE_DEFINED_GEOMETRICAL_TOLERANCE_SYMBOL', 'AUTOMOTIVE_DESIGN.' + 'PRE_DEFINED_SURFACE_CONDITION_SYMBOL', 'AUTOMOTIVE_DESIGN.' + 'PRE_DEFINED_DIMENSION_SYMBOL', 'AUTOMOTIVE_DESIGN.' + 'PRE_DEFINED_POINT_MARKER_SYMBOL', 'AUTOMOTIVE_DESIGN.' + 'PRE_DEFINED_TERMINATOR_SYMBOL'], 0))) = 0; END_RULE; -- 10303-214: automotive_design RULE subtype_mandatory_pre_defined_text_font FOR (pre_defined_text_font); WHERE wr1 : SIZEOF(QUERY(pdtf <* pre_defined_text_font | NOT type_check_function( pdtf, ['AUTOMOTIVE_DESIGN.' + 'DRAUGHTING_PRE_DEFINED_TEXT_FONT'], 0))) = 0; END_RULE; -- 10303-214: automotive_design RULE terminator_symbol_constraint FOR (terminator_symbol); WHERE wr1 : SIZEOF(QUERY(ts <* terminator_symbol | ('AUTOMOTIVE_DESIGN.' + 'DEFINED_SYMBOL' IN TYPEOF(ts.item)) AND NOT ('AUTOMOTIVE_DESIGN.' + 'PRE_DEFINED_TERMINATOR_SYMBOL' IN TYPEOF(ts.item\defined_symbol.definition )))) = 0; END_RULE; -- 10303-214: automotive_design 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, 'AUTOMOTIVE_DESIGN.TEXT_LITERAL.FONT')) = 0)) = 0; wr2 : SIZEOF(QUERY(edtf <* externally_defined_text_font | SIZEOF(USEDIN(edtf , 'AUTOMOTIVE_DESIGN.TEXT_LITERAL.FONT')) = 0)) = 0; END_RULE; -- 10303-214: automotive_design RULE validate_dependently_instantiable_entity_data_types FOR ( boolean_defined_function, coordinated_universal_time_offset, defined_function , derived_unit_element, dimensional_exponents, founded_kinematic_path, generic_character_glyph_symbol, integer_defined_function, kinematic_frame_background_representation, kinematic_frame_background_representation_association, kinematic_frame_based_transformation, kinematic_path, motion_link_relationship, numeric_defined_function, one_direction_repeat_factor, oriented_open_shell, oriented_path, product_concept_context, product_context, real_defined_function, rotation_about_direction, sql_mappable_defined_function, string_defined_function, surface_rendering_properties, swept_area_solid, symbol_target, two_direction_repeat_factor); (* generated by longform-generator *) 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 := two_direction_repeat_factor + symbol_target + swept_area_solid + surface_rendering_properties + string_defined_function + sql_mappable_defined_function + rotation_about_direction + real_defined_function + product_context + product_concept_context + oriented_path + oriented_open_shell + one_direction_repeat_factor + numeric_defined_function + motion_link_relationship + kinematic_path + kinematic_frame_based_transformation + kinematic_frame_background_representation_association + kinematic_frame_background_representation + integer_defined_function + generic_character_glyph_symbol + founded_kinematic_path + dimensional_exponents + derived_unit_element + defined_function + coordinated_universal_time_offset + boolean_defined_function; 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; RULE versioned_action_request_requires_date_and_person_or_organization FOR ( versioned_action_request); WHERE wr1 : SIZEOF(QUERY(va <* versioned_action_request | SIZEOF(QUERY(adapaoa <* USEDIN(va, 'AUTOMOTIVE_DESIGN.APPLIED_PERSON_AND_ORGANIZATION_ASSIGNMENT.ITEMS') | adapaoa.role.name = 'requestor')) + SIZEOF(QUERY(adaoa <* USEDIN(va, 'AUTOMOTIVE_DESIGN.APPLIED_ORGANIZATION_ASSIGNMENT.ITEMS') | adaoa.role. name = 'requestor')) = 0)) = 0; wr2 : SIZEOF(QUERY(va <* versioned_action_request | SIZEOF(QUERY(adapaoa <* USEDIN(va, 'AUTOMOTIVE_DESIGN.APPLIED_PERSON_AND_ORGANIZATION_ASSIGNMENT.ITEMS') | adapaoa.role.name = 'notified person or organization')) + SIZEOF(QUERY( adaoa <* USEDIN(va, 'AUTOMOTIVE_DESIGN.APPLIED_ORGANIZATION_ASSIGNMENT.ITEMS') | adaoa.role. name = 'notified person or organization')) = 0)) = 0; END_RULE; -- 10303-214: automotive_design RULE versioned_action_request_requires_status FOR (action_request_status, versioned_action_request); WHERE wr1 : SIZEOF(QUERY(ar <* versioned_action_request | NOT (SIZEOF(QUERY(ars <* action_request_status | ar :=: ars.assigned_request)) = 1))) = 0; END_RULE; -- 10303-214: automotive_design END_SCHEMA;
© ISO 2010 — All rights reserved