Schema: automotive_design
SCHEMA automotive_design;
USE FROM
ISO13584_expressions_schema -- ISO 13584-20
(abs_function,
acos_function,
and_expression,
asin_function,
atan_function,
binary_boolean_expression,
binary_function_call,
binary_numeric_expression,
boolean_expression,
boolean_literal,
boolean_variable,
comparison_equal,
comparison_expression,
comparison_greater,
comparison_greater_equal,
comparison_less,
comparison_less_equal,
comparison_not_equal,
concat_expression,
cos_function,
div_expression,
equals_expression,
exp_function,
expression,
format_function,
index_expression,
int_literal,
int_numeric_variable,
int_value_function,
interval_expression,
length_function,
like_expression,
literal_number,
log10_function,
log2_function,
log_function,
maximum_function,
minimum_function,
minus_expression,
minus_function,
mod_expression,
mult_expression,
multiple_arity_boolean_expression,
multiple_arity_function_call,
multiple_arity_numeric_expression,
not_expression,
numeric_expression,
numeric_variable,
odd_function,
or_expression,
plus_expression,
power_expression,
real_literal,
real_numeric_variable,
simple_boolean_expression,
simple_numeric_expression,
simple_string_expression,
sin_function,
slash_expression,
square_root_function,
string_expression,
string_literal,
string_variable,
substring_expression,
tan_function,
unary_boolean_expression,
unary_function_call,
unary_numeric_expression,
value_function,
variable,
xor_expression);
REFERENCE FROM
ISO13584_expressions_schema -- ISO 13584-20
(is_SQL_mappable,
is_int_expr,
used_functions);
USE FROM
action_schema -- ISO 10303-41
(action,
action_directive,
action_method,
action_method_relationship,
action_relationship,
action_request_solution,
action_request_status,
action_resource,
action_resource_type,
action_status,
directed_action,
executed_action,
versioned_action_request);
USE FROM
application_context_schema -- ISO 10303-41
(application_context,
application_context_element,
application_context_relationship,
application_protocol_definition,
product_definition_context);
USE FROM
approval_schema -- ISO 10303-41
(approval,
approval_date_time,
approval_person_organization,
approval_relationship,
approval_role,
approval_status);
USE FROM
basic_attribute_schema -- ISO 10303-41
(description_attribute,
description_attribute_select,
id_attribute,
id_attribute_select,
name_attribute,
name_attribute_select,
object_role,
role_association,
role_select);
USE FROM
certification_schema -- ISO 10303-41
(certification,
certification_type);
USE FROM
configuration_management_schema -- ISO 10303-44
(configurable_item,
configuration_design,
configuration_effectivity,
configuration_item);
USE FROM
contract_schema -- ISO 10303-41
(contract,
contract_type);
USE FROM
date_time_schema -- ISO 10303-41
(calendar_date,
date,
date_and_time,
date_role,
date_time_role,
event_occurrence,
event_occurrence_context_role,
event_occurrence_role,
local_time,
relative_event_occurrence,
time_interval,
time_interval_role,
time_interval_with_bounds);
USE FROM
document_schema -- ISO 10303-41
(document,
document_product_association,
document_relationship,
document_representation_type,
document_type,
document_usage_constraint);
USE FROM
draughting_element_schema -- ISO 10303-101
(dimension_curve,
dimension_curve_directed_callout,
dimension_curve_terminator,
draughting_callout,
draughting_callout_relationship,
leader_curve,
leader_directed_callout,
leader_terminator,
projection_curve,
projection_directed_callout,
terminator_symbol);
USE FROM
drawing_definition_schema -- ISO 10303-101
(draughting_title,
drawing_definition,
drawing_revision,
drawing_revision_sequence,
drawing_sheet_revision,
drawing_sheet_revision_usage);
USE FROM
effectivity_schema -- ISO 10303-41
(dated_effectivity,
effectivity,
effectivity_relationship,
lot_effectivity,
serial_numbered_effectivity,
time_interval_based_effectivity);
USE FROM
external_reference_schema -- ISO 10303-41
(external_source,
externally_defined_item,
externally_defined_item_relationship,
pre_defined_item);
USE FROM
geometric_model_schema -- ISO 10303-42
(block,
boolean_result,
brep_with_voids,
csg_solid,
edge_based_wireframe_model,
extruded_face_solid,
face_based_surface_model,
faceted_brep,
geometric_curve_set,
geometric_set,
half_space_solid,
manifold_solid_brep,
revolved_face_solid,
right_angular_wedge,
right_circular_cone,
right_circular_cylinder,
shell_based_surface_model,
solid_model,
solid_replica,
sphere,
swept_face_solid,
torus);
USE FROM
geometry_schema -- ISO 10303-42
(axis1_placement,
axis2_placement_2d,
axis2_placement_3d,
b_spline_curve,
b_spline_surface,
bounded_curve,
bounded_surface,
cartesian_point,
cartesian_transformation_operator,
cartesian_transformation_operator_2d,
cartesian_transformation_operator_3d,
circle,
composite_curve,
conic,
conical_surface,
curve,
curve_bounded_surface,
cylindrical_surface,
degenerate_pcurve,
degenerate_toroidal_surface,
direction,
elementary_surface,
ellipse,
geometric_representation_context,
geometric_representation_item,
hyperbola,
line,
offset_curve_2d,
offset_curve_3d,
offset_surface,
oriented_surface,
parabola,
pcurve,
placement,
plane,
point,
point_on_curve,
point_on_surface,
point_replica,
polyline,
rectangular_composite_surface,
rectangular_trimmed_surface,
spherical_surface,
surface,
surface_curve,
surface_of_linear_extrusion,
surface_of_revolution,
toroidal_surface,
trimmed_curve);
USE FROM
group_schema -- ISO 10303-41
(group,
group_relationship);
USE FROM
kinematic_analysis_control_and_result_schema -- ISO 10303-104
(configuration_definition,
configuration_interpolation,
interpolated_configuration_sequence,
kinematic_analysis_consistency,
kinematic_analysis_result,
kinematic_control,
resulting_path);
USE FROM
kinematic_structure_schema -- ISO 10303-105
(cylindrical_pair,
cylindrical_pair_range,
cylindrical_pair_value,
fully_constrained_pair,
gear_pair,
gear_pair_range,
gear_pair_value,
initial_state,
kinematic_ground_representation,
kinematic_joint,
kinematic_link,
kinematic_link_representation,
kinematic_link_representation_association,
kinematic_link_representation_relation,
kinematic_pair,
kinematic_property_definition,
kinematic_property_representation_relation,
kinematic_structure,
mechanism,
mechanism_base_placement,
pair_actuator,
pair_value,
planar_curve_pair,
planar_curve_pair_range,
planar_pair,
planar_pair_range,
planar_pair_value,
point_on_planar_curve_pair,
point_on_planar_curve_pair_range,
point_on_planar_curve_pair_value,
point_on_surface_pair,
point_on_surface_pair_range,
point_on_surface_pair_value,
prismatic_pair,
prismatic_pair_range,
prismatic_pair_value,
rack_and_pinion_pair,
rack_and_pinion_pair_range,
rack_and_pinion_pair_value,
revolute_pair,
revolute_pair_range,
revolute_pair_value,
rolling_curve_pair,
rolling_curve_pair_value,
rolling_surface_pair,
rolling_surface_pair_value,
screw_pair,
screw_pair_range,
screw_pair_value,
simple_pair_range,
sliding_curve_pair,
sliding_curve_pair_value,
sliding_surface_pair,
sliding_surface_pair_value,
spherical_pair,
spherical_pair_range,
spherical_pair_value,
surface_pair,
surface_pair_range,
unconstrained_pair,
unconstrained_pair_value,
universal_pair,
universal_pair_range,
universal_pair_value,
unlimited_range);
USE FROM
management_resources_schema -- ISO 10303-41
(action_assignment,
action_request_assignment,
approval_assignment,
attribute_classification_assignment,
attribute_value_assignment,
attribute_value_role,
certification_assignment,
classification_assignment,
classification_role,
contract_assignment,
date_and_time_assignment,
date_assignment,
document_reference,
document_usage_constraint_assignment,
document_usage_role,
effectivity_assignment,
effectivity_context_assignment,
effectivity_context_role,
event_occurrence_assignment,
event_occurrence_context_assignment,
external_identification_assignment,
group_assignment,
identification_assignment,
identification_role,
name_assignment,
organization_assignment,
organizational_project_assignment,
organizational_project_role,
person_and_organization_assignment,
security_classification_assignment,
time_interval_assignment);
USE FROM
material_property_definition_schema -- ISO 10303-45
(material_designation,
material_designation_characterization,
material_property,
property_definition_relationship);
USE FROM
material_property_representation_schema -- ISO 10303-45
(data_environment,
material_property_representation);
USE FROM
measure_schema -- ISO 10303-41
(amount_of_substance_measure,
amount_of_substance_measure_with_unit,
amount_of_substance_unit,
area_measure,
area_measure_with_unit,
area_unit,
celsius_temperature_measure,
celsius_temperature_measure_with_unit,
context_dependent_measure,
context_dependent_unit,
conversion_based_unit,
count_measure,
derived_unit,
descriptive_measure,
electric_current_measure,
electric_current_measure_with_unit,
electric_current_unit,
global_unit_assigned_context,
length_measure,
length_measure_with_unit,
length_unit,
luminous_intensity_measure,
luminous_intensity_measure_with_unit,
luminous_intensity_unit,
mass_measure,
mass_measure_with_unit,
mass_unit,
measure_with_unit,
named_unit,
numeric_measure,
parameter_value,
plane_angle_measure,
plane_angle_measure_with_unit,
plane_angle_unit,
positive_length_measure,
positive_plane_angle_measure,
positive_ratio_measure,
ratio_measure,
ratio_measure_with_unit,
ratio_unit,
si_unit,
solid_angle_measure,
solid_angle_measure_with_unit,
solid_angle_unit,
thermodynamic_temperature_measure,
thermodynamic_temperature_measure_with_unit,
thermodynamic_temperature_unit,
time_measure,
time_measure_with_unit,
time_unit,
volume_measure,
volume_measure_with_unit,
volume_unit);
USE FROM
person_organization_schema -- ISO 10303-41
(address,
organization,
organization_relationship,
organization_role,
organizational_address,
organizational_project,
organizational_project_relationship,
person,
person_and_organization,
person_and_organization_role,
personal_address);
USE FROM
presentation_appearance_schema -- ISO 10303-46
(approximation_tolerance,
approximation_tolerance_deviation,
approximation_tolerance_parameter,
context_dependent_over_riding_styled_item,
curve_style,
curve_style_font,
curve_style_rendering,
curve_tolerance_deviation,
curve_tolerance_parameter,
externally_defined_curve_font,
externally_defined_hatch_style,
externally_defined_style,
externally_defined_tile_style,
fill_area_style,
fill_area_style_colour,
fill_area_style_hatching,
fill_area_style_tiles,
invisibility,
null_style,
over_riding_styled_item,
point_style,
pre_defined_curve_font,
pre_defined_marker,
pre_defined_presentation_style,
presentation_style_assignment,
presentation_style_by_context,
styled_item,
surface_side_style,
surface_style_boundary,
surface_style_control_grid,
surface_style_fill_area,
surface_style_parameter_line,
surface_style_reflectance_ambient,
surface_style_reflectance_ambient_diffuse,
surface_style_reflectance_ambient_diffuse_specular,
surface_style_rendering,
surface_style_rendering_with_properties,
surface_style_segmentation_curve,
surface_style_silhouette,
surface_style_transparent,
surface_style_usage,
symbol_style,
text_style,
text_style_with_box_characteristics,
text_style_with_mirror,
surface_tolerance_deviation,
surface_tolerance_parameter,
u_direction_count,
v_direction_count);
USE FROM
presentation_definition_schema -- ISO 10303-46
(annotation_curve_occurrence,
annotation_fill_area,
annotation_fill_area_occurrence,
annotation_occurrence,
annotation_occurrence_relationship,
annotation_symbol,
annotation_symbol_occurrence,
annotation_text,
annotation_text_character,
annotation_text_occurrence,
composite_text,
composite_text_with_associated_curves,
composite_text_with_blanking_box,
composite_text_with_extent,
defined_character_glyph,
defined_symbol,
externally_defined_character_glyph,
externally_defined_symbol,
pre_defined_symbol,
symbol_representation,
symbol_representation_map,
text_literal,
text_literal_with_associated_curves,
text_literal_with_blanking_box,
text_literal_with_delineation,
text_literal_with_extent,
text_string_representation);
USE FROM
presentation_organization_schema -- ISO 10303-46
(area_in_set,
camera_image,
camera_model,
camera_model_d2,
camera_model_d3,
camera_model_d3_with_hlhsr,
camera_usage,
light_source,
light_source_ambient,
light_source_directional,
light_source_positional,
light_source_spot,
presentation_area,
presentation_layer_assignment,
presentation_representation,
presentation_set,
presentation_size,
presentation_view,
presented_item,
presented_item_representation,
view_volume);
USE FROM
presentation_resource_schema -- ISO 10303-46
(character_glyph_symbol,
colour,
colour_rgb,
colour_specification,
externally_defined_text_font,
planar_box,
planar_extent,
pre_defined_colour,
pre_defined_text_font);
USE FROM
process_property_representation_schema -- ISO 10303-49
(action_property_representation,
resource_property_representation);
USE FROM
process_property_schema -- ISO 10303-49
(action_property,
action_resource_requirement,
process_product_association,
process_property_association,
product_definition_process,
property_process,
requirement_for_action_resource,
resource_property,
resource_requirement_type);
USE FROM
product_concept_schema -- ISO 10303-44
(concept_feature_operator,
concept_feature_relationship,
concept_feature_relationship_with_condition,
conditional_concept_feature,
product_concept,
product_concept_feature,
product_concept_feature_association,
product_concept_relationship);
USE FROM
product_definition_schema -- ISO 10303-41
(product,
product_category,
product_category_relationship,
product_definition,
product_definition_context_association,
product_definition_context_role,
product_definition_effectivity,
product_definition_formation,
product_definition_formation_relationship,
product_definition_formation_with_specified_source,
product_definition_relationship,
product_definition_substitute,
product_definition_with_associated_documents,
product_related_product_category);
USE FROM
product_property_definition_schema -- ISO 10303-41
(characterized_object,
general_property,
general_property_association,
general_property_relationship,
product_definition_shape,
property_definition,
shape_aspect,
shape_aspect_relationship);
REFERENCE FROM
product_property_definition_schema -- ISO 10303-41
(get_shape_aspects);
USE FROM
product_property_representation_schema -- ISO 10303-41
(context_dependent_shape_representation,
property_definition_representation,
shape_definition_representation,
shape_representation,
shape_representation_relationship);
REFERENCE FROM
product_property_representation_schema -- ISO 10303-41
(get_property_definition_representations);
USE FROM
product_structure_schema -- ISO 10303-44
(alternate_product_relationship,
assembly_component_usage,
assembly_component_usage_substitute,
make_from_usage_option,
next_assembly_usage_occurrence,
product_definition_occurrence_relationship,
product_definition_usage,
promissory_usage_occurrence,
quantified_assembly_component_usage,
specified_higher_usage_occurrence);
USE FROM
qualified_measure_schema -- ISO 10303-45
(descriptive_representation_item,
measure_qualification,
measure_representation_item,
precision_qualifier,
qualified_representation_item,
standard_uncertainty,
type_qualifier,
uncertainty_qualifier);
USE FROM
representation_schema -- ISO 10303-43
(compound_representation_item,
founded_item,
functionally_defined_transformation,
global_uncertainty_assigned_context,
item_defined_transformation,
list_representation_item,
mapped_item,
representation,
representation_context,
representation_item,
representation_map,
representation_relationship,
representation_relationship_with_transformation,
set_representation_item,
uncertainty_assigned_representation,
uncertainty_measure_with_unit,
value_representation_item);
REFERENCE FROM
representation_schema -- ISO 10303-43
(using_representations);
USE FROM
security_classification_schema -- ISO 10303-41
(security_classification,
security_classification_level);
USE FROM
shape_aspect_definition_schema -- ISO 10303-47
(apex,
centre_of_symmetry,
composite_shape_aspect,
datum,
datum_feature,
datum_reference,
datum_target,
derived_shape_aspect,
extension,
geometric_alignment,
geometric_intersection,
limit_condition,
parallel_offset,
perpendicular_to,
referenced_modified_datum,
shape_aspect_deriving_relationship,
tangent);
USE FROM
shape_dimension_schema -- ISO 10303-47
(angular_location,
angular_size,
dimensional_characteristic_representation,
dimensional_location,
dimensional_location_with_path,
dimensional_size,
dimensional_size_with_path,
shape_dimension_representation);
USE FROM
shape_tolerance_schema -- ISO 10303-47
(geometric_tolerance,
geometric_tolerance_relationship,
geometric_tolerance_with_datum_reference,
geometric_tolerance_with_defined_unit,
limits_and_fits,
modified_geometric_tolerance,
plus_minus_tolerance,
projected_zone_definition,
runout_zone_definition,
runout_zone_orientation,
tolerance_value,
tolerance_zone,
tolerance_zone_definition,
tolerance_zone_form);
USE FROM
support_resource_schema -- ISO 10303-41
(label,
identifier);
REFERENCE FROM
support_resource_schema -- ISO 10303-41
(bag_to_set,
type_check_function);
USE FROM
topology_schema -- ISO 10303-42
(closed_shell,
connected_edge_set,
connected_face_set,
connected_face_sub_set,
edge,
edge_curve,
edge_loop,
face,
face_bound,
face_outer_bound,
face_surface,
loop,
open_shell,
oriented_closed_shell,
oriented_edge,
oriented_face,
path,
poly_loop,
seam_edge,
subedge,
subface,
topological_representation_item,
vertex,
vertex_loop,
vertex_point);
USE FROM
ISO13584_generic_expressions_schema;
-- ISO 13584-20
USE FROM
aic_advanced_brep;
-- ISO 10303-514
USE FROM
aic_associative_draughting_elements;
-- ISO 10303-520
USE FROM
aic_csg;
-- ISO 10303-515
USE FROM
aic_draughting_annotation;
-- ISO 10303-504
USE FROM
aic_draughting_elements;
-- ISO 10303-506
USE FROM
aic_edge_based_wireframe;
-- ISO 10303-501
USE FROM
aic_faceted_brep;
-- ISO 10303-512
USE FROM
aic_geometric_tolerances;
-- ISO 10303-519
USE FROM
aic_geometrically_bounded_2d_wireframe;
-- ISO 10303-503
USE FROM
aic_geometrically_bounded_surface;
-- ISO 10303-507
USE FROM
aic_geometrically_bounded_wireframe;
-- ISO 10303-510
USE FROM
aic_manifold_surface;
-- ISO 10303-509
USE FROM
aic_mechanical_design_geometric_presentation;
-- ISO 10303-517
USE FROM
aic_non_manifold_surface;
-- ISO 10303-508
USE FROM
aic_topologically_bounded_surface;
-- ISO 10303-511
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;
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,
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;
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;
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);
END_TYPE;
TYPE category_usage_item =
SELECT
(product_class);
END_TYPE;
TYPE certification_item =
SELECT
(product_definition,
product_definition_formation,
product_definition_formation_relationship,
product_definition_relationship);
END_TYPE;
TYPE classification_item =
SELECT
(action,
action_directive,
action_method,
action_property,
action_relationship,
approval_status,
class,
configuration_item,
contract,
document_file,
document_type,
executed_action,
feature_definition,
general_feature,
general_property,
material_designation,
organizational_project,
planar_extent,
plus_minus_tolerance,
process_operation,
product,
product_concept,
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;
TYPE class_usage_effectivity_context_item =
SELECT
(product_definition);
END_TYPE;
TYPE configured_effectivity_context_item =
SELECT
(product_concept_feature_association);
END_TYPE;
TYPE configured_effectivity_item =
SELECT
(action_relationship,
process_plan,
product_definition,
product_process_plan);
END_TYPE;
TYPE contract_item =
SELECT
(drawing_revision,
executed_action,
product_definition_formation);
END_TYPE;
TYPE date_and_time_item =
SELECT
(action,
action_directive,
action_method,
action_property,
action_relationship,
action_request_solution,
alternate_product_relationship,
applied_action_assignment,
applied_classification_assignment,
applied_organization_assignment,
applied_person_and_organization_assignment,
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;
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;
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,
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;
TYPE effectivity_item =
SELECT
(action,
action_method,
action_method_relationship,
action_property,
action_relationship,
assembly_component_usage_substitute,
class_system,
configuration_design,
configuration_item,
configured_effectivity_assignment,
document_file,
draughting_model,
drawing_revision,
general_property,
material_designation,
mechanical_design_geometric_presentation_representation,
presentation_area,
product,
product_concept,
product_concept_feature,
product_concept_feature_association,
product_concept_feature_category,
product_concept_feature_category_usage,
product_definition,
product_definition_formation,
product_definition_formation_relationship,
product_definition_relationship,
product_definition_substitute,
property_definition,
requirement_for_action_resource,
resource_property,
security_classification,
shape_aspect,
shape_representation);
END_TYPE;
TYPE 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;
TYPE external_identification_item =
SELECT
(document_file,
externally_defined_class,
externally_defined_general_property,
product_definition);
END_TYPE;
TYPE group_item =
SELECT
(geometric_representation_item,
mapped_item,
product_concept_feature,
shape_aspect,
styled_item,
topological_representation_item);
END_TYPE;
TYPE identification_item =
SELECT
(action,
action_directive,
action_method,
action_property,
applied_identification_assignment,
approval_status,
class,
class_system,
configuration_item,
dimensional_size,
document_file,
document_type,
draughting_model,
effectivity,
general_property,
measure_representation_item,
mechanical_design_geometric_presentation_representation,
organization,
person_and_organization,
presentation_area,
product,
product_concept,
product_concept_feature,
product_concept_feature_category,
product_definition,
product_definition_formation,
product_definition_relationship,
property_definition,
property_definition_relationship,
security_classification_level,
shape_aspect_relationship,
shape_representation);
END_TYPE;
TYPE language_item =
SELECT
(representation);
END_TYPE;
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);
END_TYPE;
TYPE name_item =
SELECT
(kinematic_joint,
kinematic_link,
kinematic_structure);
END_TYPE;
TYPE organizational_project_item =
SELECT
(executed_action,
product_concept);
END_TYPE;
TYPE organization_item =
SELECT
(action,
action_directive,
action_method,
action_property,
action_relationship,
action_request_solution,
alternate_product_relationship,
applied_action_assignment,
applied_classification_assignment,
applied_identification_assignment,
applied_organization_assignment,
applied_person_and_organization_assignment,
approval,
approval_status,
assembly_component_usage_substitute,
certification,
class,
class_system,
configuration_design,
configuration_effectivity,
configuration_item,
configured_effectivity_assignment,
contract,
document_file,
draughting_model,
drawing_revision,
effectivity,
event_occurrence,
executed_action,
general_property,
material_designation,
mechanical_design_geometric_presentation_representation,
organization_relationship,
organizational_project,
person_and_organization,
presentation_area,
product,
product_concept,
product_concept_feature,
product_concept_feature_association,
product_concept_feature_category,
product_concept_feature_category_usage,
product_definition,
product_definition_formation,
product_definition_formation_relationship,
product_definition_relationship,
product_definition_substitute,
property_definition,
requirement_for_action_resource,
resource_property,
security_classification,
security_classification_level,
shape_representation,
versioned_action_request);
END_TYPE;
TYPE person_and_organization_item =
SELECT
(action,
action_directive,
action_method,
action_property,
action_relationship,
action_request_solution,
alternate_product_relationship,
applied_action_assignment,
applied_classification_assignment,
applied_organization_assignment,
applied_person_and_organization_assignment,
approval_status,
assembly_component_usage_substitute,
certification,
class,
class_system,
configuration_design,
configuration_effectivity,
configuration_item,
configured_effectivity_assignment,
contract,
document_file,
draughting_model,
drawing_revision,
event_occurrence,
executed_action,
general_property,
material_designation,
mechanical_design_geometric_presentation_representation,
organization_relationship,
organizational_project,
person_and_organization,
presentation_area,
product,
product_concept,
product_concept_feature,
product_concept_feature_association,
product_concept_feature_category,
product_concept_feature_category_usage,
product_definition,
product_definition_formation,
product_definition_formation_relationship,
product_definition_relationship,
product_definition_substitute,
property_definition,
requirement_for_action_resource,
resource_property,
security_classification,
security_classification_level,
shape_representation,
versioned_action_request);
END_TYPE;
TYPE presented_item_select =
SELECT
(action,
action_method,
action_relationship,
product_concept,
product_concept_feature,
product_concept_feature_category,
product_definition,
product_definition_formation,
product_definition_relationship);
END_TYPE;
TYPE 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;
TYPE specified_item =
SELECT
(drawing_revision);
END_TYPE;
TYPE time_interval_item =
SELECT
(action,
action_directive,
action_method,
action_property,
action_relationship,
action_request_solution,
alternate_product_relationship,
applied_action_assignment,
applied_classification_assignment,
applied_person_and_organization_assignment,
approval_status,
assembly_component_usage_substitute,
certification,
class,
class_system,
configuration_design,
configuration_effectivity,
configuration_item,
configured_effectivity_assignment,
contract,
document_file,
draughting_model,
drawing_revision,
executed_action,
general_property,
material_designation,
mechanical_design_geometric_presentation_representation,
organization_relationship,
organizational_project,
person_and_organization,
presentation_area,
product,
product_concept,
product_concept_feature,
product_concept_feature_association,
product_concept_feature_category,
product_concept_feature_category_usage,
product_definition,
product_definition_formation,
product_definition_formation_relationship,
product_definition_relationship,
product_definition_substitute,
property_definition,
requirement_for_action_resource,
resource_property,
security_classification,
security_classification_level,
shape_representation,
versioned_action_request);
END_TYPE;
ENTITY applied_action_assignment
SUBTYPE OF (action_assignment);
items : SET[1:?] OF action_item;
END_ENTITY;
ENTITY applied_action_request_assignment
SUBTYPE OF (action_request_assignment);
items : SET[1:?] OF action_request_item;
END_ENTITY;
ENTITY applied_approval_assignment
SUBTYPE OF (approval_assignment);
items : SET[1:?] OF approval_item;
END_ENTITY;
ENTITY applied_area
SUBTYPE OF (shape_aspect);
WHERE
WR1: 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;
ENTITY applied_certification_assignment
SUBTYPE OF (certification_assignment);
items : SET[1:?] OF certification_item;
END_ENTITY;
ENTITY applied_classification_assignment
SUBTYPE OF (classification_assignment);
items : SET[1:?] OF classification_item;
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.'+ 'APPLICATION_CONTEXT' ,'AUTOMOTIVE_DESIGN.'+ 'APPROVAL_STATUS' ,'AUTOMOTIVE_DESIGN.'+ 'ASSEMBLY_COMPONENT_USAGE'
,'AUTOMOTIVE_DESIGN.'+ 'CONFIGURATION_ITEM' ,'AUTOMOTIVE_DESIGN.'+ 'CONTRACT' , '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.'+ 'SECURITY_CLASSIFICATION_LEVEL'
,'AUTOMOTIVE_DESIGN.'+ 'APPROVAL_STATUS']* TYPEOF (i))<>1)) =0);
END_ENTITY;
ENTITY applied_contract_assignment
SUBTYPE OF (contract_assignment);
items : SET[1:?] OF contract_item;
END_ENTITY;
ENTITY applied_date_and_time_assignment
SUBTYPE OF (date_and_time_assignment);
items : SET[1:?] OF date_and_time_item;
END_ENTITY;
ENTITY applied_date_assignment
SUBTYPE OF (date_assignment);
items : SET[1:?] OF date_item;
WHERE
WR1: (NOT (SELF.role. name = 'actual end')) OR item_correlation (SELF.items , ['ACTION' ,'ORGANIZATIONAL_PROJECT' , 'EFFECTIVITY']);
END_ENTITY;
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;
ENTITY applied_document_usage_constraint_assignment
SUBTYPE OF (document_usage_constraint_assignment);
items : SET[1:?] OF document_reference_item;
END_ENTITY;
ENTITY applied_effectivity_assignment
SUBTYPE OF (effectivity_assignment);
items : SET[1:?] OF effectivity_item;
WHERE
WR1: SIZEOF (['AUTOMOTIVE_DESIGN.'+ 'LOT_EFFECTIVITY' ,'AUTOMOTIVE_DESIGN.'+ 'SERIAL_NUMBERED_EFFECTIVITY' ,'AUTOMOTIVE_DESIGN.'+
'PRODUCT_DEFINITION_EFFECTIVITY']* TYPEOF (SELF.assigned_effectivity)) =0;
END_ENTITY;
ENTITY applied_event_occurrence_assignment
SUBTYPE OF (event_occurrence_assignment);
items : SET[1:?] OF event_occurrence_item;
END_ENTITY;
ENTITY applied_external_identification_assignment
SUBTYPE OF (external_identification_assignment);
items : SET[1:?] OF external_identification_item;
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;
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;
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_DEFINITION']);
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;
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;
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;
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;
ENTITY applied_organizational_project_assignment
SUBTYPE OF (organizational_project_assignment);
items : SET[1:?] OF organizational_project_item;
END_ENTITY;
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;
ENTITY applied_presented_item
SUBTYPE OF (presented_item);
items : SET[1:?] OF presented_item_select;
END_ENTITY;
ENTITY applied_security_classification_assignment
SUBTYPE OF (security_classification_assignment);
items : SET[1:?] OF security_classification_item;
END_ENTITY;
ENTITY applied_time_interval_assignment
SUBTYPE OF (time_interval_assignment);
items : SET[1:?] OF time_interval_item;
END_ENTITY;
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;
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;
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 ='end condition at path start') 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 ='end condition at path end') AND ('AUTOMOTIVE_DESIGN.'+'BEAD_END'
IN TYPEOF (sar. relating_shape_aspect))))=1))) =1;
END_ENTITY;
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 ['end condition at path start' , 'end condition
at path end']) 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;
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;
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 ['boss height start' , 'boss height end' ]) 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;
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;
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;
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;
ENTITY characterized_class
SUBTYPE OF (characterized_object, class);
END_ENTITY;
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;
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;
ENTITY class
SUBTYPE OF (group);
END_ENTITY;
ENTITY class_system
SUBTYPE OF (group);
END_ENTITY;
ENTITY class_usage_effectivity_context_assignment
SUBTYPE OF (effectivity_context_assignment);
items : SET[1:?] OF class_usage_effectivity_context_item;
WHERE
WR1: SELF.role. name = 'class usage influence';
WR2: SIZEOF (QUERY (i <* SELF.items | NOT ('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;
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;
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;
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;
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;
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;
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;
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;
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;
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_condition'))) =1)) =1);
END_ENTITY;
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;
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;
ENTITY derived_unit_variable
SUBTYPE OF (derived_unit, variable_semantics);
INVERSE
associated_variable_environment : environment FOR semantics;
END_ENTITY;
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;
ENTITY directed_dimensional_location
SUBTYPE OF (dimensional_location);
END_ENTITY;
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;
ENTITY document_file
SUBTYPE OF (document, characterized_object);
WHERE
WR1: SELF\characterized_object. name ='';
WR2: NOT EXISTS (SELF\characterized_object. description);
WR3: SIZEOF (QUERY (drt <* SELF\document. representation_types | drt. name IN ['digital' ,'physical'])) =1;
END_ENTITY;
ENTITY document_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;
ENTITY draughting_pre_defined_text_font
SUBTYPE OF (pre_defined_text_font);
WHERE
WR1: SELF.name IN [ 'ISO 3098-1 font A' , 'ISO 3098-1 font B' ];
END_ENTITY;
ENTITY draughting_specification_reference
SUBTYPE OF (document_reference);
specified_items : SET[1:?] OF specified_item;
WHERE
WR1: (SELF.assigned_document. kind.product_data_type ='draughting specification');
END_ENTITY;
ENTITY drawing_sheet_layout
SUBTYPE OF (draughting_symbol_representation);
END_ENTITY;
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;
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;
ENTITY exclusive_product_concept_feature_category
SUBTYPE OF (product_concept_feature_category);
END_ENTITY;
ENTITY expression_conversion_based_unit
SUBTYPE OF (context_dependent_unit, variable_semantics);
INVERSE
associated_variable_environment : environment FOR semantics;
END_ENTITY;
ENTITY externally_defined_class
SUBTYPE OF (class, externally_defined_item);
END_ENTITY;
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;
ENTITY externally_defined_general_property
SUBTYPE OF (general_property, externally_defined_item);
END_ENTITY;
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;
ENTITY feature_component_definition
SUBTYPE OF (characterized_object);
WHERE
WR1: SIZEOF (get_shape_aspects (SELF)) =1;
END_ENTITY;
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;
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;
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;
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;
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;
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;
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;
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;
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_condition'))) =1)) =1);
END_ENTITY;
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;
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 [ 'hole depth start' , 'hole depth
end' ]))) =1);
END_ENTITY;
ENTITY hole_in_panel
SUBTYPE OF (feature_definition);
WHERE
WR1: SIZEOF (QUERY (sa <* get_shape_aspects (SELF) | (sa. name = 'hole profile') AND (sa. description ='closed profile occurrence')
AND (SIZEOF (QUERY (sar <* USEDIN (sa ,'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;
ENTITY homokinetic_pair
SUBTYPE OF (universal_pair);
WHERE
WR1: NOT EXISTS (SELF.input_skew_angle);
END_ENTITY;
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;
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;
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;
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;
ENTITY known_source
SUBTYPE OF (external_source, pre_defined_item);
END_ENTITY;
ENTITY language
SUBTYPE OF (group);
WHERE
WR1: (SIZEOF (QUERY (ca <* USEDIN (SELF ,'AUTOMOTIVE_DESIGN.'+'CLASSIFICATION_ASSIGNMENT.'+'ASSIGNED_CLASS') | 'AUTOMOTIVE_DESIGN.'+'LANGUAGE_ASSIGNMENT'
IN TYPEOF (ca))) >0) OR (SIZEOF (QUERY (aca <* USEDIN (SELF ,'AUTOMOTIVE_DESIGN.'+'ATTRIBUTE_CLASSIFICATION_ASSIGNMENT.'+'ASSIGNED_CLASS')
| 'AUTOMOTIVE_DESIGN.'+'ATTRIBUTE_LANGUAGE_ASSIGNMENT' IN TYPEOF (aca))) >0);
END_ENTITY;
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;
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;
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;
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;
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;
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;
ENTITY named_unit_variable
SUBTYPE OF (named_unit, variable_semantics);
INVERSE
associated_variable_environment : environment FOR semantics;
END_ENTITY;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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 [ 'pocket depth' , 'pocket depth
end' ])))=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;
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;
ENTITY pre_defined_dimension_symbol
SUBTYPE OF (pre_defined_symbol);
WHERE
WR1: SELF.name IN [ 'arc length' , 'conical taper' ,'counterbore' , 'countersink' , 'depth' , 'diameter' ,'plus minus' , 'radius'
, 'slope' , 'spherical diameter' ,'spherical radius' , 'square'];
END_ENTITY;
ENTITY pre_defined_geometrical_tolerance_symbol
SUBTYPE OF (pre_defined_symbol);
WHERE
WR1: SELF.name IN ['angularity' , 'basic dimension' ,'blanked datum reference' , 'circular runout' ,'circularity' , 'concentricity'
, 'cylindricity' ,'datum target identification' , 'diameter' ,'filled datum reference' , 'flatness' ,'least material condition'
, 'maximum material condition' ,'parallelism' , 'perpendicularity' , 'position' ,'profile of a line' , 'profile of a surface'
,'projected tolerance zone' , 'regardless of feature size' ,'straightness' , 'symmetry' , 'total runout' ];
END_ENTITY;
ENTITY pre_defined_point_marker_symbol
SUBTYPE OF (pre_defined_marker, pre_defined_symbol);
WHERE
WR1: SELF.name IN ['asterisk' , 'circle' , 'dot' , 'plus' ,'square' , 'triangle' , 'x'];
END_ENTITY;
ENTITY pre_defined_surface_condition_symbol
SUBTYPE OF (pre_defined_symbol);
WHERE
WR1: SELF.name IN ['000' , '010' , '020' , '030' , '040' , '050', '060' , '070' , '001' , '011' , '021' , '031' , '041' ,'051'
, '061' , '071' , '100' , '110' , '120' , '130' ,'140' , '150' , '160' , '170' , '101' , '111' , '121' ,'131' , '141' , '151'
, '161' , '171' , '200' , '210' ,'220' , '230' , '240' , '250' , '260' , '270' , '201' ,'211' , '221' , '231' , '241' , '251'
, '261' , '271'];
END_ENTITY;
ENTITY pre_defined_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;
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;
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;
ENTITY product_class
SUBTYPE OF (product_concept, characterized_object);
END_ENTITY;
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;
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;
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;
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;
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;
ENTITY product_specification
SUBTYPE OF (product_identification, configurable_item);
END_ENTITY;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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 = '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;
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 = 'course of travel end') AND (sar. description= 'slot end usage') AND ('AUTOMOTIVE_DESIGN.'+
'SLOT_END' IN TYPEOF (sar. relating_shape_aspect)))) =1))) =1;
END_ENTITY;
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 [ 'course of travel start' ,'course of travel end' ]) 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;
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;
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;
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_condition'))) =1)) =1);
END_ENTITY;
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_condition'))) =1)) =1);
END_ENTITY;
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;
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;
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;
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;
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;
ENTITY vector_style
SUBTYPE OF (pre_defined_terminator_symbol, curve_style);
END_ENTITY;
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;
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_condition'))) =1)) =1);
END_ENTITY;
RULE
application_protocol_definition_required FOR
(application_context);
WHERE
WR1: SIZEOF (QUERY (ac <* application_context | (SIZEOF (QUERY (apd <* USEDIN (ac ,'AUTOMOTIVE_DESIGN.APPLICATION_PROTOCOL_DEFINITION.APPLICATION')
| apd. application_interpreted_model_schema_name='automotive_design')) >0))) >0;
END_RULE;
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;
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;
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;
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) OR (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;
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)) >0)) >0)) =0) OR (SIZEOF (global_uncertainty_assigned_context) =1);
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;
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;
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;
RULE
dependent_instantiable_action_directive FOR
(action_directive);
WHERE
WR1: SIZEOF (QUERY (a <* action_directive | NOT (SIZEOF (USEDIN (a , '')) >0))) =0;
END_RULE;
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;
RULE
dependent_instantiable_approval_role FOR
(approval_role);
WHERE
WR1: SIZEOF (QUERY (a <* approval_role | NOT (SIZEOF (USEDIN (a , '')) >0))) =0;
END_RULE;
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;
RULE
dependent_instantiable_classification_role FOR
(classification_role);
WHERE
WR1: SIZEOF (QUERY (c <* classification_role | NOT (SIZEOF (USEDIN (c , '')) >0))) =0;
END_RULE;
RULE
dependent_instantiable_colour_rgb FOR
(colour_rgb);
WHERE
WR1: SIZEOF (QUERY (c <* colour_rgb | NOT (SIZEOF (USEDIN (c , '')) >0))) =0;
END_RULE;
RULE
dependent_instantiable_contract_type FOR
(contract_type);
WHERE
WR1: SIZEOF (QUERY (c <* contract_type | NOT (SIZEOF (USEDIN (c , '')) >0))) =0;
END_RULE;
RULE
dependent_instantiable_curve_style FOR
(curve_style);
WHERE
WR1: SIZEOF (QUERY (c <* curve_style | NOT (SIZEOF (USEDIN(c , '')) >0))) =0;
END_RULE;
RULE
dependent_instantiable_date FOR
(date);
WHERE
WR1: SIZEOF (QUERY (d <* date | NOT (SIZEOF (USEDIN (d ,'')) >0))) =0;
END_RULE;
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;
RULE
dependent_instantiable_date_role FOR
(date_role);
WHERE
WR1: SIZEOF (QUERY (d <* date_role | NOT (SIZEOF (USEDIN (d , '')) >0))) =0;
END_RULE;
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;
RULE
dependent_instantiable_derived_unit FOR
(derived_unit);
WHERE
WR1: SIZEOF (QUERY (d <* derived_unit | NOT (SIZEOF (USEDIN(d , '')) >0))) =0;
END_RULE;
RULE
dependent_instantiable_dimensional_size FOR
(dimensional_size);
WHERE
WR1: SIZEOF (QUERY (d <* dimensional_size | NOT (SIZEOF (USEDIN (d , '')) >0))) =0;
END_RULE;
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;
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;
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;
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;
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;
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;
RULE
dependent_instantiable_identification_role FOR
(identification_role);
WHERE
WR1: SIZEOF (QUERY (i <* identification_role | NOT (SIZEOF (USEDIN (i , '')) >0))) =0;
END_RULE;
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;
RULE
dependent_instantiable_named_unit FOR
(named_unit);
WHERE
WR1: SIZEOF (QUERY (n <* named_unit | NOT (SIZEOF (USEDIN (n , '')) >0))) =0;
END_RULE;
RULE
dependent_instantiable_object_role FOR
(object_role);
WHERE
WR1: SIZEOF (QUERY (o <* object_role | NOT (SIZEOF (USEDIN(o , '')) >0))) =0;
END_RULE;
RULE
dependent_instantiable_organization_role FOR
(organization_role);
WHERE
WR1: SIZEOF (QUERY (o <* organization_role | NOT (SIZEOF (USEDIN (o , '')) >0))) =0;
END_RULE;
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;
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;
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;
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;
RULE
dependent_instantiable_precision_qualifier FOR
(precision_qualifier);
WHERE
WR1: SIZEOF (QUERY (p <* precision_qualifier | NOT (SIZEOF (USEDIN (p , '')) >0))) =0;
END_RULE;
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;
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;
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;
RULE
dependent_instantiable_retention FOR
(retention);
WHERE
WR1: SIZEOF (QUERY (r <* retention | NOT (SIZEOF (USEDIN (r , '')) >0))) =0;
END_RULE;
RULE
dependent_instantiable_standard_uncertainty FOR
(standard_uncertainty);
WHERE
WR1: SIZEOF (QUERY (s <* standard_uncertainty | NOT (SIZEOF(USEDIN (s , '')) >0))) =0;
END_RULE;
RULE
dependent_instantiable_symbol_colour FOR
(symbol_colour);
WHERE
WR1: SIZEOF (QUERY (s <* symbol_colour | NOT (SIZEOF (USEDIN (s , '')) >0))) =0;
END_RULE;
RULE
dependent_instantiable_text_style FOR
(text_style);
WHERE
WR1: SIZEOF (QUERY (t <* text_style | NOT (SIZEOF (USEDIN (t , '')) >0))) =0;
END_RULE;
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;
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;
RULE
dependent_instantiable_tolerance_value FOR
(tolerance_value);
WHERE
WR1: SIZEOF (QUERY (t <* tolerance_value | NOT (SIZEOF (USEDIN (t , '')) >0))) =0;
END_RULE;
RULE
dependent_instantiable_type_qualifier FOR
(type_qualifier);
WHERE
WR1: SIZEOF (QUERY (t <* type_qualifier | NOT (SIZEOF (USEDIN (t , '')) >0))) =0;
END_RULE;
RULE
dependent_instantiable_uncertainty_qualifier FOR
(uncertainty_qualifier);
WHERE
WR1: SIZEOF (QUERY (u <* uncertainty_qualifier | NOT (SIZEOF(USEDIN (u , '')) >0))) =0;
END_RULE;
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;
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;
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;
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;
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;
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;
RULE
event_occurrence_requires_event_occurrence_assignment FOR
(event_occurrence, event_occurrence_assignment, relative_event_occurrence);
WHERE
WR1: SIZEOF (QUERY (eo <* event_occurrence | (SIZEOF (USEDIN (eo ,'AUTOMOTIVE_DESIGN.'+'RELATIVE_EVENT_OCCURRENCE.'+'BASE_EVENT'))
=0) AND (SIZEOF (USEDIN (eo ,'AUTOMOTIVE_DESIGN.'+'EVENT_OCCURRENCE_ASSIGNMENT.'+'ASSIGNED_EVENT_OCCURRENCE')) =0))) =0;
END_RULE;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
RULE
product_concept_feature_requires_category FOR
(product_concept_feature, product_concept_feature_category);
WHERE
WR1: SIZEOF (QUERY (pcf <* product_concept_feature | 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;
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;
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;
RULE
product_requires_person_organization 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')) =1))) =0;
END_RULE;
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;
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;
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 ,'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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
RULE
restrict_class_system_assignment_for_planar_extent FOR
(applied_classification_assignment, planar_extent);
WHERE
WR1: SIZEOF (QUERY (pe <* planar_extent | (pe\ representation_item.name = 'size format') AND (SIZEOF (QUERY (aca <* USEDIN
(pe ,'AUTOMOTIVE_DESIGN.APPLIED_CLASSIFICATION_ASSIGNMENT.ITEMS') | aca\ classification_assignment.role. name ='class system
membership')) >1))) =0;
END_RULE;
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;
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;
END_RULE;
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 | ('AUTOMOTIVE_DESIGN.'+ 'PRODUCT_DEFINITION' IN TYPEOF (cd. design)) AND (cd.
design\product_definition. frame_of_reference.name<> 'design constraint definition') AND ((cd. configuration.name<> 'design
constraint usage') OR NOT ('AUTOMOTIVE_DESIGN.'+ 'PRODUCT_CLASS' IN TYPEOF(cd. configuration.item_concept))))) =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;
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;
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;
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;
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) OR (SIZEOF (QUERY (i <* aea. items | ('AUTOMOTIVE_DESIGN.'+'PRODUCT_CONCEPT_FEATURE_CATEGORY_USAGE' IN
TYPEOF (i)))) <> SIZEOF (aea. items))) AND ((SIZEOF (TYPEOF (aea. assigned_effectivity)) >1) 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;
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;
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;
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;
RULE
restrict_general_property_association_for_externally_defined_general_property FOR
(general_property_association);
WHERE
WR1: SIZEOF (QUERY (gpa <* general_property_association | (gpa. name IN ['definitional' , 'non-definitional']) AND NOT ('AUTOMOTIVE_DESIGN.'+'EXTERNALLY_DEFINED_GENERAL_PROPERTY'
IN TYPEOF (gpa. base_definition)))) =0;
END_RULE;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
RULE
restrict_name_for_known_source FOR
(known_source);
WHERE
WR1: SIZEOF (QUERY (ks <* known_source | (ks. name<>'ISO 13584 library'))) =0;
END_RULE;
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;
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;
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;
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' ])) =0))=0;
WR2: SIZEOF (QUERY (p <* product | SIZEOF (QUERY (prpc <* USEDIN (p ,'AUTOMOTIVE_DESIGN.'+'PRODUCT_RELATED_PRODUCT_CATEGORY.'+'PRODUCTS')
| prpc. name IN ['part' , 'document' ,'functionality' , 'conceptual product' ,'alternative solution' , 'requirement' ,'physically
realized product' ])) >1)) =0;
END_RULE;
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') | (gpa.
name ='definitional')))>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;
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;
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;
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;
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 occurrence') 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.name IN [ 'part definition' ,'physical occurrence'
]))) =0;
END_RULE;
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;
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;
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;
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) <2) 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;
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) >2))))
=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' ]))) =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;
END_RULE;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
RULE
restrict_zone_boundary FOR
(tolerance_zone_definition);
WHERE
WR1: SIZEOF (QUERY (tzd <* tolerance_zone_definition | SIZEOF(tzd. boundaries) >2)) =0;
END_RULE;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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.'+'DESCRIPTIVE_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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
FUNCTION default_tolerance_table_cell_wr2
(agg : AGGREGATE OF representation_item) : BOOLEAN;
BEGIN
IF SIZEOF(agg) <= 5 THEN
RETURN(TRUE);
ELSE
RETURN(FALSE);
END_IF;
END;
END_FUNCTION;
FUNCTION default_tolerance_table_cell_wr3
(agg : AGGREGATE OF representation_item) : BOOLEAN;
BEGIN
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;
END_FUNCTION;
FUNCTION default_tolerance_table_cell_wr4
(agg : AGGREGATE OF representation_item) : BOOLEAN;
BEGIN
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;
END_FUNCTION;
FUNCTION default_tolerance_table_cell_wr5
(agg : AGGREGATE OF representation_item) : BOOLEAN;
BEGIN
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;
END_FUNCTION;
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;
FUNCTION get_multi_language
(x : attribute_value_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;
FUNCTION get_round_holes_for_composite_hole
(sar_instance_set : SET OF shape_aspect_relationship) : SET OF round_hole;
LOCAL
rh_set : SET OF round_hole := [];
pdr_set : SET OF property_definition_representation;
pdr_set1 : SET OF property_definition_representation;
ri_set : SET OF representation_item;
END_LOCAL;
REPEAT i:=1 to HIINDEX (sar_instance_set);
IF (SIZEOF (['AUTOMOTIVE_DESIGN.INSTANCED_FEATURE' ,
'AUTOMOTIVE_DESIGN.ROUND_HOLE'] * TYPEOF
(sar_instance_set[i].related_shape_aspect)) >= 2)
THEN
rh_set := rh_set + sar_instance_set[i].related_shape_aspect;
END_IF;
IF ('AUTOMOTIVE_DESIGN.PLACED_FEATURE' IN TYPEOF
(sar_instance_set[i]))
THEN
pdr_set := get_shape_aspect_property_definition_representations
(sar_instance_set[i].related_shape_aspect);
REPEAT j:=1 to HIINDEX(pdr_set);
IF ((pdr_set[j].used_representation.name =
'feature definition placement') AND
('AUTOMOTIVE_DESIGN.SHAPE_REPRESENTATION' IN TYPEOF
(pdr_set[j].used_representation)))
THEN
ri_set := pdr_set[j].used_representation.items;
REPEAT k:=1 to HIINDEX(ri_set);
IF (('AUTOMOTIVE_DESIGN.MAPPED_ITEM' IN TYPEOF
(ri_set[k])) AND
('AUTOMOTIVE_DESIGN.'+
'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN
TYPEOF(ri_set[k]\mapped_item.mapping_source.
mapped_representation)))
THEN
pdr_set1 := bag_to_set (USEDIN(ri_set[k]\mapped_item.mapping_source.mapped_representation ,
'AUTOMOTIVE_DESIGN.PROPERTY_DEFINITION_REPRESENTATION.'+
'USED_REPRESENTATION'));
REPEAT l:=1 to HIINDEX(pdr_set1);
IF ('AUTOMOTIVE_DESIGN.ROUND_HOLE' IN TYPEOF
(pdr_set1[l].definition.definition))
THEN
rh_set := rh_set + pdr_set1[l].definition.definition;
END_IF;
END_REPEAT;
END_IF;
END_REPEAT;
END_IF;
END_REPEAT;
END_IF;
END_REPEAT;
RETURN (rh_set);
END_FUNCTION;
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;
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;
FUNCTION value_range_aggregate_rep_item
(agg : AGGREGATE OF representation_item) : BOOLEAN;
FUNCTION cri (agg : AGGREGATE OF representation_item) : BOOLEAN;
BEGIN
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;
END_FUNCTION;
FUNCTION value_range_wr1
(agg : AGGREGATE OF representation_item) : BOOLEAN;
BEGIN
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;
END_FUNCTION;
FUNCTION value_range_wr2
(agg : AGGREGATE OF representation_item) : BOOLEAN;
BEGIN
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;
END_FUNCTION;
FUNCTION value_range_wr3
(agg : AGGREGATE OF representation_item) : BOOLEAN;
BEGIN
IF (SIZEOF(QUERY (i <* agg | (
'AUTOMOTIVE_DESIGN.MEASURE_REPRESENTATION_ITEM' IN
TYPEOF(i))))
<> 2) OR (SIZEOF(QUERY (i1 <* agg |
('AUTOMOTIVE_DESIGN.MEASURE_REPRESENTATION_ITEM'
IN TYPEOF (i1))
AND
(SIZEOF(QUERY (i2 <* agg
| ((i1\measure_with_unit.unit_component
:=: i2\measure_with_unit.unit_component) OR
(i1\measure_with_unit.unit_component :=:
i2\measure_with_unit.unit_component))))
= 2))) = 2) THEN
RETURN(TRUE);
ELSE
RETURN(FALSE);
END_IF;
END;
END_FUNCTION;
END_SCHEMA; -- automotive_design