stepcode/data/ap214e3/AP214E3_2010.exp
2011-07-16 12:14:34 -04:00

18748 lines
840 KiB
Text

-- AIM longform EXPRESS of ISO/DIS 10303-214:2007
--
--
-- Title: Core data for automotive mechanical design processes
-- Author: MSc. Antonio Alvaro de Assis Moura
-- Dr. Guenter Staub
-- 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: 2009-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_curve_swept_solid ;
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 = 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 = management_resources_schema ;
schema = material_property_definition_schema ;
schema = material_property_representation_schema ;
schema = measure_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 = 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; -- 10303-101: draughting_element_schema
TYPE annotation_symbol_occurrence_item = SELECT
(annotation_symbol, defined_symbol);
END_TYPE; -- 10303-46: presentation_definition_schema
TYPE annotation_text_occurrence_item = SELECT
(text_literal, annotation_text, annotation_text_character,
defined_character_glyph, composite_text);
END_TYPE; -- 10303-46: 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, date_and_time, local_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; -- 10303-214: 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,
organizational_project, 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, versioned_action_request);
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
(draughting_callout, presentation_layer_assignment, representation,
styled_item);
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
(amount_of_substance_measure, area_measure, celsius_temperature_measure,
context_dependent_measure, count_measure, descriptive_measure,
electric_current_measure, length_measure, luminous_intensity_measure,
mass_measure, numeric_measure, non_negative_length_measure, parameter_value,
plane_angle_measure, positive_length_measure, positive_plane_angle_measure,
positive_ratio_measure, ratio_measure, solid_angle_measure,
thermodynamic_temperature_measure, time_measure, volume_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; (* declared in: 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; -- 10303-41: 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, document_type,
draughting_model, drawing_revision, effectivity, event_occurrence,
executed_action, general_property, material_designation,
mechanical_design_geometric_presentation_representation, organization,
organization_relationship, organizational_project, person_and_organization,
presentation_area, product, product_concept, product_concept_feature,
product_concept_feature_association, product_concept_feature_category,
product_concept_feature_category_usage, product_definition,
product_definition_formation, product_definition_formation_relationship,
product_definition_relationship, product_definition_substitute,
property_definition, requirement_for_action_resource, resource_property,
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, document_type, draughting_model, drawing_revision,
event_occurrence, executed_action, general_property, material_designation,
mechanical_design_geometric_presentation_representation, organization,
organization_relationship, organizational_project, person_and_organization,
presentation_area, product, product_concept, product_concept_feature,
product_concept_feature_association, product_concept_feature_category,
product_concept_feature_category_usage, product_definition,
product_definition_formation, product_definition_formation_relationship,
product_definition_relationship, product_definition_substitute,
property_definition, requirement_for_action_resource, resource_property,
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; -- 10303-101: draughting_element_schema
TYPE positive_length_measure = non_negative_length_measure;
WHERE
wr1 : SELF > 0.0;
END_TYPE; -- 10303-41: measure_schema
TYPE positive_plane_angle_measure = plane_angle_measure;
WHERE
wr1 : SELF > 0.0;
END_TYPE; -- 10303-41: measure_schema
TYPE positive_ratio_measure = ratio_measure;
WHERE
wr1 : SELF > 0.0;
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;
WHERE
wr1 : control_characters_free(SELF);
END_TYPE; -- 10303-46: presentation_definition_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.0};
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, presentation_set, representation,
representation_item, shape_representation_relationship);
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; -- 10303-46: 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
(derived_unit, named_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; (* declared in: 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; (* declared in: 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.0) AND (SELF\named_unit
.dimensions.mass_exponent = 0.0) AND (SELF\named_unit.dimensions.
time_exponent = 0.0) AND (SELF\named_unit.dimensions.
electric_current_exponent = 0.0) AND (SELF\named_unit.dimensions.
thermodynamic_temperature_exponent = 0.0) AND (SELF\named_unit.dimensions.
amount_of_substance_exponent = 1.0) AND (SELF\named_unit.dimensions.
luminous_intensity_exponent = 0.0);
END_ENTITY; -- 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; (* declared in: 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; (* declared in: aic_geometric_tolerances *)
ENTITY annotation_curve_occurrence
SUBTYPE OF (annotation_occurrence);
SELF\styled_item.item : curve;
END_ENTITY; -- 10303-46: presentation_definition_schema
ENTITY annotation_fill_area
SUBTYPE OF (geometric_representation_item);
boundaries : SET [1:?] OF curve;
WHERE
wr1 : (SELF\geometric_representation_item.dim = 3) OR (SIZEOF(QUERY(curve <*
SELF.boundaries | NOT (('AUTOMOTIVE_DESIGN.CIRCLE' IN TYPEOF(curve)) OR
('AUTOMOTIVE_DESIGN.ELLIPSE' IN TYPEOF(curve)) OR (
'AUTOMOTIVE_DESIGN.B_SPLINE_CURVE' IN TYPEOF(curve)) AND (curve\
b_spline_curve.closed_curve = TRUE) OR (
'AUTOMOTIVE_DESIGN.COMPOSITE_CURVE' IN TYPEOF(curve)) AND (curve\
composite_curve.closed_curve = TRUE) OR ('AUTOMOTIVE_DESIGN.POLYLINE' IN
TYPEOF(curve)) AND (curve\polyline.points[LOINDEX(curve\polyline.points)]
= curve\polyline.points[HIINDEX(curve\polyline.points)])))) = 0);
END_ENTITY; -- 10303-46: presentation_definition_schema
ENTITY annotation_fill_area_occurrence
SUBTYPE OF (annotation_occurrence);
fill_style_target : point;
SELF\styled_item.item : annotation_fill_area;
END_ENTITY; -- 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);
wr2 : SIZEOF(QUERY(reps <* using_representations(SELF) | NOT (
'AUTOMOTIVE_DESIGN.ANNOTATION_REPRESENTATION_SELECT' IN TYPEOF(reps))))
= 0;
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; (* declared in: 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.' + 'PLANAR_BOX' IN TYPEOF(SELF\styled_item.
item)) OR ('AUTOMOTIVE_DESIGN.' + 'AXIS2_PLACEMENT_3D' IN TYPEOF(SELF\
styled_item.item\planar_box.placement));
wr3 : ('AUTOMOTIVE_DESIGN.' + 'PLANAR_BOX' IN TYPEOF(SELF\styled_item.item
)) AND ('AUTOMOTIVE_DESIGN.' + 'CURVE_STYLE' IN TYPEOF(SELF\styled_item.
styles[1]\presentation_style_assignment.styles[1])) OR (
'AUTOMOTIVE_DESIGN.' + 'PLANE' IN TYPEOF(SELF\styled_item.item)) AND (
'AUTOMOTIVE_DESIGN.' + '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; -- 10303-101: 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; (* declared in: aic_draughting_annotation *)
ENTITY annotation_symbol
SUBTYPE OF (mapped_item);
SELF\mapped_item.mapping_source : symbol_representation_map;
SELF\mapped_item.mapping_target : symbol_target;
WHERE
wr1 : 'AUTOMOTIVE_DESIGN.GEOMETRIC_REPRESENTATION_ITEM' IN TYPEOF(SELF);
END_ENTITY; -- 10303-46: presentation_definition_schema
ENTITY annotation_symbol_occurrence
SUBTYPE OF (annotation_occurrence);
SELF\styled_item.item : annotation_symbol_occurrence_item;
END_ENTITY; -- 10303-46: presentation_definition_schema
ENTITY annotation_text
SUBTYPE OF (mapped_item);
SELF\mapped_item.mapping_target : axis2_placement;
WHERE
wr1 : 'AUTOMOTIVE_DESIGN.TEXT_STRING_REPRESENTATION' IN TYPEOF(SELF\
mapped_item.mapping_source.mapped_representation);
wr2 : '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;
SELF\mapped_item.mapping_target : axis2_placement;
WHERE
wr1 : 'AUTOMOTIVE_DESIGN.CHARACTER_GLYPH_SYMBOL' IN TYPEOF(SELF\
mapped_item.mapping_source.mapped_representation);
wr2 : 'AUTOMOTIVE_DESIGN.GEOMETRIC_REPRESENTATION_ITEM' IN TYPEOF(SELF);
END_ENTITY; -- 10303-46: presentation_definition_schema
ENTITY annotation_text_occurrence
SUBTYPE OF (annotation_occurrence);
SELF\styled_item.item : annotation_text_occurrence_item;
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
SUBTYPE OF (founded_item);
tolerance : tolerance_select;
END_ENTITY; -- 10303-46: presentation_appearance_schema
ENTITY approximation_tolerance_deviation
SUBTYPE OF (founded_item);
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
SUBTYPE OF (founded_item);
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 (derived_unit);
WHERE
wr1 : derive_dimensional_exponents(SELF) = dimensional_exponents(2.0, 0.0,
0.0, 0.0, 0.0, 0.0, 0.0);
END_ENTITY; -- 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
SUPERTYPE OF (camera_image_3d_with_scale)
SUBTYPE OF (mapped_item);
SELF\mapped_item.mapping_source : camera_usage;
SELF\mapped_item.mapping_target : planar_box;
WHERE
wr1 : '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
ABSTRACT 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;
wr2 : NOT ('AUTOMOTIVE_DESIGN.CAMERA_IMAGE_2D_WITH_SCALE' IN TYPEOF(SELF))
;
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);
SELF\representation_map.mapping_origin : camera_model;
WHERE
wr1 : NOT ('AUTOMOTIVE_DESIGN.PRESENTATION_REPRESENTATION' IN TYPEOF(SELF\
representation_map.mapped_representation));
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 (generic_character_glyph_symbol);
character_box : planar_extent;
baseline_ratio : ratio_measure;
DERIVE
box_height : length_measure := character_box.size_in_y;
WHERE
wr1 : {0.0 <= baseline_ratio <= 1.0};
wr2 : item_in_context(SELF.character_box, SELF\representation.
context_of_items);
wr3 : '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; (* declared in: 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; (* declared in: 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; (* declared in: 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; (* declared in: 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 : LIST [1:?] OF style_context_select;
WHERE
wr1 : (SIZEOF(QUERY(sc <* SELF.style_context |
'AUTOMOTIVE_DESIGN.REPRESENTATION_ITEM' IN TYPEOF(sc))) = 1) OR (SIZEOF(
QUERY(sc <* SELF.style_context | 'AUTOMOTIVE_DESIGN.MAPPED_ITEM' IN
TYPEOF(sc))) = SIZEOF(style_context)) OR (SIZEOF(QUERY(sc <* SELF.
style_context | 'AUTOMOTIVE_DESIGN.SHAPE_REPRESENTATION_RELATIONSHIP' IN
TYPEOF(sc))) = SIZEOF(style_context));
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;
DERIVE
SELF\named_unit.dimensions : dimensional_exponents :=
derive_dimensional_exponents(conversion_factor\measure_with_unit.
unit_component);
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; (* declared in: 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; (* declared in: 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
SUBTYPE OF (founded_item);
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
SUBTYPE OF (founded_item);
name : label;
pattern_list : LIST [1:?] OF curve_style_font_pattern;
END_ENTITY; -- 10303-46: presentation_appearance_schema
ENTITY curve_style_font_pattern
SUBTYPE OF (founded_item);
visible_segment_length : positive_length_measure;
invisible_segment_length : positive_length_measure;
END_ENTITY; -- 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.SWEPT_AREA_SOLID',
'AUTOMOTIVE_DESIGN.SWEPT_DISK_SOLID', 'AUTOMOTIVE_DESIGN.MAPPED_ITEM'
, 'AUTOMOTIVE_DESIGN.AXIS2_PLACEMENT_3D'] * TYPEOF(it)) = 1))) = 0;
wr2 : SIZEOF(QUERY(it <* SELF.items | SIZEOF([
'AUTOMOTIVE_DESIGN.SWEPT_AREA_SOLID',
'AUTOMOTIVE_DESIGN.SWEPT_DISK_SOLID', '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.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.SURFACE_CURVE_SWEPT_AREA_SOLID' IN TYPEOF(it)) | NOT
(('AUTOMOTIVE_DESIGN.SURFACE_CURVE' IN TYPEOF(scsas.directrix)) OR (
'AUTOMOTIVE_DESIGN.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; (* declared in: 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; (* declared in: 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; (* declared in: 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
SUPERTYPE OF (ONEOF (area_unit, volume_unit));
elements : SET [1:?] OF derived_unit_element;
DERIVE
name : label := get_name_value(SELF);
WHERE
wr1 : (SIZEOF(elements) > 1) OR (SIZEOF(elements) = 1) AND (elements[1].
exponent <> 1.0);
wr2 : SIZEOF(USEDIN(SELF, '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; (* declared in: aic_draughting_elements *)
ENTITY dimension_callout
SUBTYPE OF (draughting_callout);
WHERE
wr1 : ('AUTOMOTIVE_DESIGN.LEADER_DIRECTED_CALLOUT' IN TYPEOF(SELF)) XOR (
SIZEOF(QUERY(dce_1 <* SELF\draughting_callout.contents |
'AUTOMOTIVE_DESIGN.LEADER_CURVE' IN TYPEOF(dce_1))) = 0);
wr2 : ('AUTOMOTIVE_DESIGN.PROJECTION_DIRECTED_CALLOUT' IN TYPEOF(SELF))
XOR (SIZEOF(QUERY(dce_1 <* SELF\draughting_callout.contents |
'AUTOMOTIVE_DESIGN.PROJECTION_CURVE' IN TYPEOF(dce_1))) = 0);
wr3 : ('AUTOMOTIVE_DESIGN.DIMENSION_CURVE_DIRECTED_CALLOUT' IN TYPEOF(SELF
)) XOR (SIZEOF(QUERY(dce_1 <* SELF\draughting_callout.contents |
'AUTOMOTIVE_DESIGN.DIMENSION_CURVE' IN TYPEOF(dce_1))) = 0);
END_ENTITY; -- 10303-101: 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; (* declared in: 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; (* declared in: 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\dimension_curve_terminator.role = dimension_extent_usage.origin)))
<= 1) AND (SIZEOF(QUERY(dct2 <* USEDIN(SELF,
'AUTOMOTIVE_DESIGN.TERMINATOR_SYMBOL.ANNOTATED_CURVE') | (
'AUTOMOTIVE_DESIGN.' + 'DIMENSION_CURVE_TERMINATOR' IN TYPEOF(dct2)) AND
(dct2\dimension_curve_terminator.role = dimension_extent_usage.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; (* declared in: 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; (* declared in: 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; -- 10303-41: 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; -- 10303-214: 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; (* declared in: aic_draughting_annotation *)
ENTITY draughting_callout
SUBTYPE OF (geometric_representation_item);
contents : SET [1:?] OF draughting_callout_element;
WHERE
wr1 : (SIZEOF(QUERY(l_1 <* SELF\draughting_callout.contents |
'AUTOMOTIVE_DESIGN.LEADER_CURVE' IN TYPEOF(l_1))) = 0) OR (
'AUTOMOTIVE_DESIGN.LEADER_DIRECTED_CALLOUT' IN TYPEOF(SELF)) AND (SIZEOF
(QUERY(l_1 <* SELF\draughting_callout.contents |
'AUTOMOTIVE_DESIGN.PROJECTION_CURVE' IN TYPEOF(l_1))) = 0) OR (
'AUTOMOTIVE_DESIGN.PROJECTION_DIRECTED_CALLOUT' IN TYPEOF(SELF)) AND (
SIZEOF(QUERY(l_1 <* SELF\draughting_callout.contents |
'AUTOMOTIVE_DESIGN.DIMENSION_CURVE' IN TYPEOF(l_1))) = 0) OR (
'AUTOMOTIVE_DESIGN.DIMENSION_CURVE_DIRECTED_CALLOUT' IN TYPEOF(SELF));
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; (* declared in: 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; (* declared in: 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.' + 'DATUM_FEATURE_CALLOUT' IN TYPEOF(SELF\
item_identified_representation_usage.identified_item)) OR (
'AUTOMOTIVE_DESIGN.' + 'DATUM_FEATURE' IN TYPEOF(SELF\
item_identified_representation_usage.definition));
wr2 : NOT ('AUTOMOTIVE_DESIGN.' + 'DATUM_TARGET_CALLOUT' IN TYPEOF(SELF\
item_identified_representation_usage.identified_item)) OR (
'AUTOMOTIVE_DESIGN.' + 'DATUM_TARGET' IN TYPEOF(SELF\
item_identified_representation_usage.definition));
wr3 : NOT ('AUTOMOTIVE_DESIGN.' + 'ANGULAR_DIMENSION' IN TYPEOF(SELF\
item_identified_representation_usage.identified_item)) OR (
'AUTOMOTIVE_DESIGN.' + 'ANGULAR_SIZE' IN TYPEOF(SELF\
item_identified_representation_usage.definition));
wr4 : NOT ('AUTOMOTIVE_DESIGN.' + 'CURVE_DIMENSION' IN TYPEOF(SELF\
item_identified_representation_usage.identified_item)) OR (
'AUTOMOTIVE_DESIGN.' + 'DIMENSIONAL_SIZE' IN TYPEOF(SELF\
item_identified_representation_usage.definition)) AND (SELF\
item_identified_representation_usage.definition.name = 'curve dimension');
wr5 : NOT ('AUTOMOTIVE_DESIGN.' + 'DIAMETER_DIMENSION' IN TYPEOF(SELF\
item_identified_representation_usage.identified_item)) OR (
'AUTOMOTIVE_DESIGN.' + 'DIMENSIONAL_SIZE' IN TYPEOF(SELF\
item_identified_representation_usage.definition)) AND (SELF\
item_identified_representation_usage.definition.name = 'diameter');
wr6 : NOT ('AUTOMOTIVE_DESIGN.' + 'LINEAR_DIMENSION' IN TYPEOF(SELF\
item_identified_representation_usage.identified_item)) OR (
'AUTOMOTIVE_DESIGN.' + '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.' + 'RADIUS_DIMENSION' IN TYPEOF(SELF\
item_identified_representation_usage.identified_item)) OR (
'AUTOMOTIVE_DESIGN.' + 'DIMENSIONAL_SIZE' IN TYPEOF(SELF\
item_identified_representation_usage.definition)) AND (SELF\
item_identified_representation_usage.definition.name = 'radius');
wr8 : NOT ('AUTOMOTIVE_DESIGN.' + 'GEOMETRICAL_TOLERANCE_CALLOUT' IN
TYPEOF(SELF\item_identified_representation_usage.identified_item)) OR (
'AUTOMOTIVE_DESIGN.' + 'GEOMETRIC_TOLERANCE' IN TYPEOF(SELF\
item_identified_representation_usage.definition));
wr9 : NOT ('AUTOMOTIVE_DESIGN.' + 'DIMENSIONAL_SIZE' IN TYPEOF(SELF\
item_identified_representation_usage.definition)) OR (
'AUTOMOTIVE_DESIGN.' + 'DIMENSION_CALLOUT' IN TYPEOF(SELF\
item_identified_representation_usage.identified_item)) OR (
'AUTOMOTIVE_DESIGN.' + 'DIMENSION_CURVE_DIRECTED_CALLOUT' IN TYPEOF(SELF
\item_identified_representation_usage.identified_item)) OR (
'AUTOMOTIVE_DESIGN.' + 'LEADER_DIRECTED_DIMENSION' IN TYPEOF(SELF\
item_identified_representation_usage.identified_item)) OR (
'AUTOMOTIVE_DESIGN.' + 'ORDINATE_DIMENSION' IN TYPEOF(SELF\
item_identified_representation_usage.identified_item)) OR (
'AUTOMOTIVE_DESIGN.' + 'STRUCTURED_DIMENSION_CALLOUT' IN TYPEOF(SELF\
item_identified_representation_usage.identified_item));
END_ENTITY; -- 10303-214: 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 IN ['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; (* declared in: 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; (* declared in: aic_draughting_annotation *)
ENTITY draughting_text_literal_with_delineation
SUBTYPE OF (text_literal_with_delineation);
WHERE
wr1 : SELF.delineation IN ['underline', 'overline'];
END_ENTITY; (* declared in: 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; (* declared in: 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.0) AND (SELF\named_unit
.dimensions.mass_exponent = 0.0) AND (SELF\named_unit.dimensions.
time_exponent = 0.0) AND (SELF\named_unit.dimensions.
electric_current_exponent = 1.0) AND (SELF\named_unit.dimensions.
thermodynamic_temperature_exponent = 0.0) AND (SELF\named_unit.dimensions.
amount_of_substance_exponent = 0.0) AND (SELF\named_unit.dimensions.
luminous_intensity_exponent = 0.0);
END_ENTITY; -- 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.items
| 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, founded_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; -- 10303-42: 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; (* declared in: 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
SUBTYPE OF (founded_item);
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; (* declared in: 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;
DERIVE
users : SET OF founded_item_select := using_items(SELF, []);
WHERE
wr1 : SIZEOF(users) > 0;
wr2 : NOT (SELF IN users);
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; -- 10303-46: 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; -- 10303-214: 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; (* declared in: 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;
END_ENTITY; (* declared in: 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; (* declared in: 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; (* declared in: 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; -- 10303-41: 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; (* declared in: 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; (* declared in: 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.0) AND (SELF\named_unit
.dimensions.mass_exponent = 0.0) AND (SELF\named_unit.dimensions.
time_exponent = 0.0) AND (SELF\named_unit.dimensions.
electric_current_exponent = 0.0) AND (SELF\named_unit.dimensions.
thermodynamic_temperature_exponent = 0.0) AND (SELF\named_unit.dimensions.
amount_of_substance_exponent = 0.0) AND (SELF\named_unit.dimensions.
luminous_intensity_exponent = 0.0);
END_ENTITY; -- 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; (* declared in: aic_geometric_tolerances *)
ENTITY linear_dimension
SUBTYPE OF (dimension_curve_directed_callout);
END_ENTITY; (* declared in: 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.0) AND (SELF\named_unit
.dimensions.mass_exponent = 0.0) AND (SELF\named_unit.dimensions.
time_exponent = 0.0) AND (SELF\named_unit.dimensions.
electric_current_exponent = 0.0) AND (SELF\named_unit.dimensions.
thermodynamic_temperature_exponent = 0.0) AND (SELF\named_unit.dimensions.
amount_of_substance_exponent = 0.0) AND (SELF\named_unit.dimensions.
luminous_intensity_exponent = 1.0);
END_ENTITY; -- 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; (* declared in: 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; (* declared in: 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.0) AND (SELF\named_unit
.dimensions.mass_exponent = 1.0) AND (SELF\named_unit.dimensions.
time_exponent = 0.0) AND (SELF\named_unit.dimensions.
electric_current_exponent = 0.0) AND (SELF\named_unit.dimensions.
thermodynamic_temperature_exponent = 0.0) AND (SELF\named_unit.dimensions.
amount_of_substance_exponent = 0.0) AND (SELF\named_unit.dimensions.
luminous_intensity_exponent = 0.0);
END_ENTITY; -- 10303-41: measure_schema
ENTITY material_designation;
name : label;
definitions : SET [1:?] OF characterized_definition;
WHERE
wr1 : SIZEOF(QUERY(temp <* SELF\material_designation.definitions |
'AUTOMOTIVE_DESIGN.' + 'CHARACTERIZED_OBJECT' IN TYPEOF(temp))) = 0;
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;
wr2 : NOT ('AUTOMOTIVE_DESIGN.REPRESENTATION_ITEM' IN TYPEOF(SELF\
measure_qualification.qualified_measure));
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\presentation_area,
'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\presentation_area,
'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\presentation_area,
'AUTOMOTIVE_DESIGN.PRESENTATION_SIZE.UNIT') | 'AUTOMOTIVE_DESIGN.' +
'AXIS2_PLACEMENT_2D' IN TYPEOF(ps.size.placement))) = 1) AND (SIZEOF(QUERY(
ps <* USEDIN(SELF\presentation_area,
'AUTOMOTIVE_DESIGN.PRESENTATION_SIZE.UNIT') | 'AUTOMOTIVE_DESIGN.' +
'AXIS2_PLACEMENT_3D' IN TYPEOF(ps.size.placement))) = 0) OR (SIZEOF(QUERY(
ais <* USEDIN(SELF\presentation_area,
'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\presentation_area,
'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; (* declared in: 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; (* declared in: 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, 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; (* declared in: 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; (* declared in: 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; (* declared in: 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; (* declared in: 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.0) AND (SELF\named_unit
.dimensions.mass_exponent = 0.0) AND (SELF\named_unit.dimensions.
time_exponent = 0.0) AND (SELF\named_unit.dimensions.
electric_current_exponent = 0.0) AND (SELF\named_unit.dimensions.
thermodynamic_temperature_exponent = 0.0) AND (SELF\named_unit.dimensions.
amount_of_substance_exponent = 0.0) AND (SELF\named_unit.dimensions.
luminous_intensity_exponent = 0.0);
END_ENTITY; -- 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
SUBTYPE OF (founded_item);
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; (* declared in: 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 (founded_item, 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
SUPERTYPE OF (ONEOF (presentation_area, presentation_view))
SUBTYPE OF (representation);
SELF\representation.context_of_items : geometric_representation_context;
WHERE
wr1 : SELF\representation.context_of_items\geometric_representation_context.
coordinate_space_dimension = 2;
wr2 : ('AUTOMOTIVE_DESIGN.PRESENTATION_AREA' IN TYPEOF(SELF)) OR (SIZEOF(
QUERY(prr <* USEDIN(SELF,
'AUTOMOTIVE_DESIGN.REPRESENTATION_RELATIONSHIP.REP_2') |
'AUTOMOTIVE_DESIGN.PRESENTATION_REPRESENTATION' IN TYPEOF(prr\
representation_relationship.rep_1))) > 0) OR (SIZEOF(QUERY(rm <* USEDIN(
SELF, 'AUTOMOTIVE_DESIGN.REPRESENTATION_MAP.MAPPED_REPRESENTATION') |
SIZEOF(QUERY(mi <* USEDIN(rm,
'AUTOMOTIVE_DESIGN.MAPPED_ITEM.MAPPING_SOURCE') | SIZEOF(QUERY(rep <*
using_representations(mi) | 'AUTOMOTIVE_DESIGN.' +
'PRESENTATION_REPRESENTATION' IN TYPEOF(rep))) > 0)) > 0)) > 0);
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;
UNIQUE
ur1 : unit;
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
SUBTYPE OF (founded_item);
styles : SET [1:?] OF presentation_style_select;
WHERE
wr1 : SIZEOF(QUERY(style1 <* SELF.styles | NOT (SIZEOF(QUERY(style2 <* SELF.
styles - style1 | NOT ((TYPEOF(style1) <> TYPEOF(style2)) OR (SIZEOF([
'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;
wr3 : SIZEOF(QUERY(style1 <* SELF.styles | (
'AUTOMOTIVE_DESIGN.SURFACE_STYLE_USAGE' IN TYPEOF(style1)) AND (SIZEOF(
QUERY(style2 <* SELF.styles - style1 | (
'AUTOMOTIVE_DESIGN.SURFACE_STYLE_USAGE' IN TYPEOF(style2)) AND ((style1\
surface_style_usage.side = both) OR (style2\surface_style_usage.side = both
) OR (style1\surface_style_usage.side = style2\surface_style_usage.side))))
> 0))) = 0;
END_ENTITY; -- 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; (* declared in: 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.0) AND (SELF\named_unit
.dimensions.mass_exponent = 0.0) AND (SELF\named_unit.dimensions.
time_exponent = 0.0) AND (SELF\named_unit.dimensions.
electric_current_exponent = 0.0) AND (SELF\named_unit.dimensions.
thermodynamic_temperature_exponent = 0.0) AND (SELF\named_unit.dimensions.
amount_of_substance_exponent = 0.0) AND (SELF\named_unit.dimensions.
luminous_intensity_exponent = 0.0);
END_ENTITY; -- 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
SUPERTYPE OF (ONEOF (compound_representation_item, mapped_item,
value_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; (* declared in: aic_geometric_tolerances *)
ENTITY ruled_surface_swept_area_solid
SUBTYPE OF (surface_curve_swept_area_solid);
WHERE
wr1 : ('AUTOMOTIVE_DESIGN.B_SPLINE_SURFACE' IN TYPEOF(SELF.
reference_surface)) AND (SELF.reference_surface\b_spline_surface.u_degree
= 1);
wr2 : ('AUTOMOTIVE_DESIGN.PCURVE' IN TYPEOF(SELF.directrix)) OR (
'AUTOMOTIVE_DESIGN.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; (* declared in: 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);
WHERE
wr1 : NOT (('AUTOMOTIVE_DESIGN.MASS_UNIT' IN TYPEOF(SELF)) AND (SIZEOF(
USEDIN(SELF, 'AUTOMOTIVE_DESIGN.DERIVED_UNIT_ELEMENT.UNIT')) > 0)) OR (
prefix = si_prefix.kilo);
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.0) AND (SELF\named_unit
.dimensions.mass_exponent = 0.0) AND (SELF\named_unit.dimensions.
time_exponent = 0.0) AND (SELF\named_unit.dimensions.
electric_current_exponent = 0.0) AND (SELF\named_unit.dimensions.
thermodynamic_temperature_exponent = 0.0) AND (SELF\named_unit.dimensions.
amount_of_substance_exponent = 0.0) AND (SELF\named_unit.dimensions.
luminous_intensity_exponent = 0.0);
END_ENTITY; -- 10303-41: measure_schema
ENTITY solid_model
SUPERTYPE OF (ONEOF (csg_solid, manifold_solid_brep, swept_face_solid,
swept_area_solid, swept_disk_solid, solid_replica))
SUBTYPE OF (geometric_representation_item);
END_ENTITY; -- 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; (* declared in: 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; (* declared in: 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_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.SURFACE_CURVE' IN TYPEOF(directrix)) OR (
reference_surface IN directrix\surface_curve.basis_surface);
END_ENTITY; -- 10303-42: geometric_model_schema
ENTITY surface_of_linear_extrusion
SUBTYPE OF (swept_surface);
extrusion_axis : vector;
END_ENTITY; -- 10303-42: geometry_schema
ENTITY surface_of_revolution
SUBTYPE OF (swept_surface);
axis_position : axis1_placement;
DERIVE
axis_line : line := representation_item('')||geometric_representation_item()
||curve()||line(axis_position.location, representation_item('')||
geometric_representation_item()||vector(axis_position.z, 1.0));
END_ENTITY; -- 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; (* declared in: 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
SUBTYPE OF (founded_item);
name : label;
styles : SET [1:7] OF surface_style_element_select;
WHERE
wr1 : SIZEOF(QUERY(style1 <* SELF.styles | SIZEOF(QUERY(style2 <* SELF.styles
- style1 | TYPEOF(style1) = TYPEOF(style2))) > 0)) = 0;
END_ENTITY; -- 10303-46: presentation_appearance_schema
ENTITY surface_style_boundary
SUBTYPE OF (founded_item);
style_of_boundary : curve_or_render;
END_ENTITY; -- 10303-46: presentation_appearance_schema
ENTITY surface_style_control_grid
SUBTYPE OF (founded_item);
style_of_control_grid : curve_or_render;
END_ENTITY; -- 10303-46: presentation_appearance_schema
ENTITY surface_style_fill_area
SUBTYPE OF (founded_item);
fill_area : fill_area_style;
END_ENTITY; -- 10303-46: presentation_appearance_schema
ENTITY surface_style_parameter_line
SUBTYPE OF (founded_item);
style_of_parameter_lines : curve_or_render;
direction_counts : SET [1:2] OF direction_count_select;
WHERE
wr1 : (HIINDEX(SELF.direction_counts) = 1) XOR (TYPEOF(SELF.direction_counts[
1]) <> TYPEOF(SELF.direction_counts[2]));
END_ENTITY; -- 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
SUBTYPE OF (founded_item);
style_of_segmentation_curve : curve_or_render;
END_ENTITY; -- 10303-46: presentation_appearance_schema
ENTITY surface_style_silhouette
SUBTYPE OF (founded_item);
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
SUBTYPE OF (founded_item);
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.PLANE' IN TYPEOF(swept_area.basis_surface);
END_ENTITY; -- 10303-42: 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; -- 10303-42: 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);
SELF\representation_map.mapped_representation : symbol_representation;
SELF\representation_map.mapping_origin : axis2_placement;
END_ENTITY; -- 10303-46: presentation_definition_schema
ENTITY symbol_style
SUBTYPE OF (founded_item);
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; (* declared in: 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);
SELF\representation.items : SET [1:?] OF text_string_representation_item;
WHERE
wr1 : 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;
wr2 : 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
SUBTYPE OF (founded_item);
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.0) AND (SELF\named_unit
.dimensions.mass_exponent = 0.0) AND (SELF\named_unit.dimensions.
time_exponent = 0.0) AND (SELF\named_unit.dimensions.
electric_current_exponent = 0.0) AND (SELF\named_unit.dimensions.
thermodynamic_temperature_exponent = 1.0) AND (SELF\named_unit.dimensions.
amount_of_substance_exponent = 0.0) AND (SELF\named_unit.dimensions.
luminous_intensity_exponent = 0.0);
END_ENTITY; -- 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.0) AND (SELF\named_unit
.dimensions.mass_exponent = 0.0) AND (SELF\named_unit.dimensions.
time_exponent = 1.0) AND (SELF\named_unit.dimensions.
electric_current_exponent = 0.0) AND (SELF\named_unit.dimensions.
thermodynamic_temperature_exponent = 0.0) AND (SELF\named_unit.dimensions.
amount_of_substance_exponent = 0.0) AND (SELF\named_unit.dimensions.
luminous_intensity_exponent = 0.0);
END_ENTITY; -- 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; (* declared in: 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 (derived_unit);
WHERE
wr1 : derive_dimensional_exponents(SELF) = dimensional_exponents(3.0, 0.0,
0.0, 0.0, 0.0, 0.0, 0.0);
END_ENTITY; -- 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; (* declared in: 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; (* declared in: 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\pcurve.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, 0.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))\vector.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; (* declared in: 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; (* declared in: 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; (* declared in: 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; -- 10303-46: 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 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\derived_unit.elements) TO HIINDEX(x\derived_unit.
elements);
result.length_exponent := result.length_exponent + x\derived_unit.
elements[i]\derived_unit_element.exponent * x\derived_unit.elements[i]\
derived_unit_element.unit\named_unit.dimensions.length_exponent;
result.mass_exponent := result.mass_exponent + x\derived_unit.elements[i]
\derived_unit_element.exponent * x\derived_unit.elements[i]\
derived_unit_element.unit\named_unit.dimensions.mass_exponent;
result.time_exponent := result.time_exponent + x\derived_unit.elements[i]
\derived_unit_element.exponent * x\derived_unit.elements[i]\
derived_unit_element.unit\named_unit.dimensions.time_exponent;
result.electric_current_exponent := result.electric_current_exponent + x\
derived_unit.elements[i]\derived_unit_element.exponent * x\derived_unit.
elements[i]\derived_unit_element.unit\named_unit.dimensions.
electric_current_exponent;
result.thermodynamic_temperature_exponent := result.
thermodynamic_temperature_exponent + x\derived_unit.elements[i]\
derived_unit_element.exponent * x\derived_unit.elements[i]\
derived_unit_element.unit\named_unit.dimensions.
thermodynamic_temperature_exponent;
result.amount_of_substance_exponent := result.
amount_of_substance_exponent + x\derived_unit.elements[i]\
derived_unit_element.exponent * x\derived_unit.elements[i]\
derived_unit_element.unit\named_unit.dimensions.
amount_of_substance_exponent;
result.luminous_intensity_exponent := result.luminous_intensity_exponent
+ x\derived_unit.elements[i]\derived_unit_element.exponent * x\
derived_unit.elements[i]\derived_unit_element.unit\named_unit.dimensions.
luminous_intensity_exponent;
END_REPEAT;
ELSE
result := x\named_unit.dimensions;
END_IF;
RETURN (result);
END_FUNCTION; -- 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.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0));
gram :
RETURN (dimensional_exponents(0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0));
second :
RETURN (dimensional_exponents(0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0));
ampere :
RETURN (dimensional_exponents(0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0));
kelvin :
RETURN (dimensional_exponents(0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0));
mole :
RETURN (dimensional_exponents(0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0));
candela :
RETURN (dimensional_exponents(0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0));
radian :
RETURN (dimensional_exponents(0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0));
steradian :
RETURN (dimensional_exponents(0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0));
hertz :
RETURN (dimensional_exponents(0.0, 0.0, -1.0, 0.0, 0.0, 0.0, 0.0));
newton :
RETURN (dimensional_exponents(1.0, 1.0, -2.0, 0.0, 0.0, 0.0, 0.0));
pascal :
RETURN (dimensional_exponents(-1.0, 1.0, -2.0, 0.0, 0.0, 0.0, 0.0));
joule :
RETURN (dimensional_exponents(2.0, 1.0, -2.0, 0.0, 0.0, 0.0, 0.0));
watt :
RETURN (dimensional_exponents(2.0, 1.0, -3.0, 0.0, 0.0, 0.0, 0.0));
coulomb :
RETURN (dimensional_exponents(0.0, 0.0, 1.0, 1.0, 0.0, 0.0, 0.0));
volt :
RETURN (dimensional_exponents(2.0, 1.0, -3.0, -1.0, 0.0, 0.0, 0.0));
farad :
RETURN (dimensional_exponents(-2.0, -1.0, 4.0, 1.0, 0.0, 0.0, 0.0));
ohm :
RETURN (dimensional_exponents(2.0, 1.0, -3.0, -2.0, 0.0, 0.0, 0.0));
siemens :
RETURN (dimensional_exponents(-2.0, -1.0, 3.0, 2.0, 0.0, 0.0, 0.0));
weber :
RETURN (dimensional_exponents(2.0, 1.0, -2.0, -1.0, 0.0, 0.0, 0.0));
tesla :
RETURN (dimensional_exponents(0.0, 1.0, -2.0, -1.0, 0.0, 0.0, 0.0));
henry :
RETURN (dimensional_exponents(2.0, 1.0, -2.0, -2.0, 0.0, 0.0, 0.0));
degree_celsius :
RETURN (dimensional_exponents(0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0));
lumen :
RETURN (dimensional_exponents(0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0));
lux :
RETURN (dimensional_exponents(-2.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0));
becquerel :
RETURN (dimensional_exponents(0.0, 0.0, -1.0, 0.0, 0.0, 0.0, 0.0));
gray :
RETURN (dimensional_exponents(2.0, 0.0, -2.0, 0.0, 0.0, 0.0, 0.0));
sievert :
RETURN (dimensional_exponents(2.0, 0.0, -2.0, 0.0, 0.0, 0.0, 0.0));
OTHERWISE : RETURN (?);
END_CASE;
END_FUNCTION; -- 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; (* declared in: 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; (* declared in: 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; (* declared in: 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\round_hole;
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;
LOCAL
return_set : SET [1:?] OF closed_shell := [brep.outer];
END_LOCAL;
IF SIZEOF(QUERY(msbtype <* TYPEOF(brep) | msbtype LIKE '*BREP_WITH_VOIDS'))
>= 1 THEN
return_set := return_set + brep\brep_with_voids.voids;
END_IF;
RETURN (return_set);
END_FUNCTION; -- 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; (* declared in: 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; (* declared in: 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; (* declared in: 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; (* declared in: 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\vector.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; (* declared in: 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\vector.orientation.direction_ratios);
mag := scalar * vec.magnitude;
ELSE
v := dummy_gri||direction(vec.direction_ratios);
mag := scalar;
END_IF;
IF mag < 0.0 THEN
REPEAT i := 1 TO SIZEOF(v.direction_ratios);
v.direction_ratios[i] := -v.direction_ratios[i];
END_REPEAT;
mag := -mag;
END_IF;
result := dummy_gri||vector(normalise(v), mag);
END_IF;
RETURN (result);
END_FUNCTION; -- 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; (* declared in: 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; (* declared in: 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; (* declared in: 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.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0) 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.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0) 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.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0) 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.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0) 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.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0) 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.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0) 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.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0) 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.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0) 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.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0) 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.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0) 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.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0) 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.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0) 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.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0) 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.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0) 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.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0) THEN
RETURN (FALSE);
END_IF;
END_IF;
IF 'AUTOMOTIVE_DESIGN.ACCELERATION_MEASURE' IN TYPEOF(m.value_component)
THEN
IF derive_dimensional_exponents(m.unit_component) <> dimensional_exponents(
1.0, 0.0, -2.0, 0.0, 0.0, 0.0, 0.0) THEN
RETURN (FALSE);
END_IF;
END_IF;
IF 'AUTOMOTIVE_DESIGN.CAPACITANCE_MEASURE' IN TYPEOF(m.value_component)
THEN
IF derive_dimensional_exponents(m.unit_component) <> dimensional_exponents(
-2.0, -1.0, 4.0, 1.0, 0.0, 0.0, 0.0) THEN
RETURN (FALSE);
END_IF;
END_IF;
IF 'AUTOMOTIVE_DESIGN.ELECTRIC_CHARGE_MEASURE' IN TYPEOF(m.value_component
) THEN
IF derive_dimensional_exponents(m.unit_component) <> dimensional_exponents(
0.0, 0.0, 1.0, 1.0, 0.0, 0.0, 0.0) THEN
RETURN (FALSE);
END_IF;
END_IF;
IF 'AUTOMOTIVE_DESIGN.CONDUCTANCE_MEASURE' IN TYPEOF(m.value_component)
THEN
IF derive_dimensional_exponents(m.unit_component) <> dimensional_exponents(
-2.0, -1.0, 3.0, 2.0, 0.0, 0.0, 0.0) THEN
RETURN (FALSE);
END_IF;
END_IF;
IF 'AUTOMOTIVE_DESIGN.ELECTRIC_POTENTIAL_MEASURE' IN TYPEOF(m.
value_component) THEN
IF derive_dimensional_exponents(m.unit_component) <> dimensional_exponents(
2.0, 1.0, -3.0, -1.0, 0.0, 0.0, 0.0) THEN
RETURN (FALSE);
END_IF;
END_IF;
IF 'AUTOMOTIVE_DESIGN.ENERGY_MEASURE' IN TYPEOF(m.value_component) THEN
IF derive_dimensional_exponents(m.unit_component) <> dimensional_exponents(
2.0, 1.0, -2.0, 0.0, 0.0, 0.0, 0.0) THEN
RETURN (FALSE);
END_IF;
END_IF;
IF 'AUTOMOTIVE_DESIGN.FORCE_MEASURE' IN TYPEOF(m.value_component) THEN
IF derive_dimensional_exponents(m.unit_component) <> dimensional_exponents(
1.0, 1.0, -2.0, 0.0, 0.0, 0.0, 0.0) THEN
RETURN (FALSE);
END_IF;
END_IF;
IF 'AUTOMOTIVE_DESIGN.FREQUENCY_MEASURE' IN TYPEOF(m.value_component) THEN
IF derive_dimensional_exponents(m.unit_component) <> dimensional_exponents(
0.0, 0.0, -1.0, 0.0, 0.0, 0.0, 0.0) THEN
RETURN (FALSE);
END_IF;
END_IF;
IF 'AUTOMOTIVE_DESIGN.ILLUMINANCE_MEASURE' IN TYPEOF(m.value_component)
THEN
IF derive_dimensional_exponents(m.unit_component) <> dimensional_exponents(
-2.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0) THEN
RETURN (FALSE);
END_IF;
END_IF;
IF 'AUTOMOTIVE_DESIGN.INDUCTANCE_MEASURE' IN TYPEOF(m.value_component)
THEN
IF derive_dimensional_exponents(m.unit_component) <> dimensional_exponents(
2.0, 1.0, -2.0, -2.0, 0.0, 0.0, 0.0) THEN
RETURN (FALSE);
END_IF;
END_IF;
IF 'AUTOMOTIVE_DESIGN.LUMINOUS_FLUX_MEASURE' IN TYPEOF(m.value_component)
THEN
IF derive_dimensional_exponents(m.unit_component) <> dimensional_exponents(
0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0) THEN
RETURN (FALSE);
END_IF;
END_IF;
IF 'AUTOMOTIVE_DESIGN.MAGNETIC_FLUX_MEASURE' IN TYPEOF(m.value_component)
THEN
IF derive_dimensional_exponents(m.unit_component) <> dimensional_exponents(
2.0, 1.0, -2.0, -1.0, 0.0, 0.0, 0.0) THEN
RETURN (FALSE);
END_IF;
END_IF;
IF 'AUTOMOTIVE_DESIGN.MAGNETIC_FLUX_DENSITY_MEASURE' IN TYPEOF(m.
value_component) THEN
IF derive_dimensional_exponents(m.unit_component) <> dimensional_exponents(
0.0, 1.0, -2.0, -1.0, 0.0, 0.0, 0.0) THEN
RETURN (FALSE);
END_IF;
END_IF;
IF 'AUTOMOTIVE_DESIGN.POWER_MEASURE' IN TYPEOF(m.value_component) THEN
IF derive_dimensional_exponents(m.unit_component) <> dimensional_exponents(
2.0, 1.0, -3.0, 0.0, 0.0, 0.0, 0.0) THEN
RETURN (FALSE);
END_IF;
END_IF;
IF 'AUTOMOTIVE_DESIGN.PRESSURE_MEASURE' IN TYPEOF(m.value_component) THEN
IF derive_dimensional_exponents(m.unit_component) <> dimensional_exponents(
-1.0, 1.0, -2.0, 0.0, 0.0, 0.0, 0.0) THEN
RETURN (FALSE);
END_IF;
END_IF;
IF 'AUTOMOTIVE_DESIGN.RESISTANCE_MEASURE' IN TYPEOF(m.value_component)
THEN
IF derive_dimensional_exponents(m.unit_component) <> dimensional_exponents(
2.0, 1.0, -3.0, -2.0, 0.0, 0.0, 0.0) THEN
RETURN (FALSE);
END_IF;
END_IF;
IF 'AUTOMOTIVE_DESIGN.VELOCITY_MEASURE' IN TYPEOF(m.value_component) THEN
IF derive_dimensional_exponents(m.unit_component) <> dimensional_exponents(
1.0, 0.0, -1.0, 0.0, 0.0, 0.0, 0.0) THEN
RETURN (FALSE);
END_IF;
END_IF;
IF 'AUTOMOTIVE_DESIGN.RADIOACTIVITY_MEASURE' IN TYPEOF(m.value_component)
THEN
IF derive_dimensional_exponents(m.unit_component) <> dimensional_exponents(
0.0, 0.0, -1.0, 0.0, 0.0, 0.0, 0.0) THEN
RETURN (FALSE);
END_IF;
END_IF;
IF 'AUTOMOTIVE_DESIGN.ABSORBED_DOSE_MEASURE' IN TYPEOF(m.value_component)
THEN
IF derive_dimensional_exponents(m.unit_component) <> dimensional_exponents(
2.0, 0.0, -2.0, 0.0, 0.0, 0.0, 0.0) THEN
RETURN (FALSE);
END_IF;
END_IF;
IF 'AUTOMOTIVE_DESIGN.DOSE_EQUIVALENT_MEASURE' IN TYPEOF(m.value_component
) THEN
IF derive_dimensional_exponents(m.unit_component) <> dimensional_exponents(
2.0, 0.0, -2.0, 0.0, 0.0, 0.0, 0.0) THEN
RETURN (FALSE);
END_IF;
END_IF;
RETURN (TRUE);
END_FUNCTION; -- 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; (* declared in: 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; (* declared in: 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\vector.orientation;
ELSE
mag1 := 1.0;
vec1 := arg1;
END_IF;
IF 'AUTOMOTIVE_DESIGN.VECTOR' IN TYPEOF(arg2) THEN
mag2 := arg2.magnitude;
vec2 := arg2\vector.orientation;
ELSE
mag2 := 1.0;
vec2 := arg2;
END_IF;
vec1 := normalise(vec1);
vec2 := normalise(vec2);
ndim := SIZEOF(vec1.direction_ratios);
mag := 0.0;
res := dummy_gri||direction(vec1.direction_ratios);
REPEAT i := 1 TO ndim;
res.direction_ratios[i] := mag1 * vec1.direction_ratios[i] - mag2 * vec2.
direction_ratios[i];
mag := mag + res.direction_ratios[i] * res.direction_ratios[i];
END_REPEAT;
IF mag > 0.0 THEN
result := dummy_gri||vector(res, SQRT(mag));
ELSE
result := dummy_gri||vector(vec1, 0.0);
END_IF;
END_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_LF')) > 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) AND (SIZEOF(USEDIN(eo,
'AUTOMOTIVE_DESIGN.DATED_EFFECTIVITY.EFFECTIVITY_START_DATE')) = 0) AND
(SIZEOF(USEDIN(eo,
'AUTOMOTIVE_DESIGN.DATED_EFFECTIVITY.EFFECTIVITY_END_DATE')) = 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.' + '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 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;